A rep has been emailing a buyer for six weeks. The contact record shows every message. The opportunity, where your forecast, pipeline reviews, and deal reports derive data, shows nothing.
If Salesforce emails are not showing on opportunity records in your org, the cause is rarely a bug. It is almost always one of three things: how Salesforce relates an activity to records, how Einstein Activity Capture decides where an email belongs, or missing Opportunity Contact Roles. Each has a fix. Some fixes are settings. Some are process.
Why Salesforce Emails Don't Appear on Opportunities
An email logged to Salesforce lands on the records its activity is related to. A logged email can name several people (contacts or leads), but it is related to only one other record, such as an account or an opportunity. If that one record is the account, or nothing at all, the opportunity never sees the email.
The gap is easy to miss because activities roll up. An email related to a contact appears on that contact’s account. An email related to an opportunity also appears on the opportunity’s account. Nothing rolls sideways from a contact to an opportunity. So, a rep can do everything right on the contact side, and the opportunity timeline still stays empty.
That leaves two questions for any email capture setup: who decides which opportunity an email belongs to, and what happens when that decision cannot be made?
Cause 1: Einstein Activity Capture Isn't Linking Emails to Opportunities
Einstein Activity Capture (EAC) captures email and calendar activity automatically. For an email to reach an opportunity, Salesforce documents several conditions (Salesforce Help):
- The Opportunity Contact Role must already exist when the email is captured. Salesforce’s wording: “the opportunity contact role must already be created for emails to be linked to opportunities.”
- The record must exist when EAC captures the email. An opportunity created after the conversation started does not pick up the earlier emails.
- If a contact belongs to several accounts, only the primary account is used.
How the email is stored also matters. Captured email that is not synced as Salesforce activity appears on timelines but is not reliable for reports or automation (Salesforce Break). Salesforce now directs orgs to the Sync Email as Salesforce Activity setting, which saves emails as EmailMessage and Task records. Orgs set up before Summer ’25 may still need to migrate.
For teams struggling with these limitations, an Einstein Activity Capture alternative can provide more control over email matching, storage, and Salesforce reporting.
Cause 2: Missing Opportunity Contact Roles
Opportunity Contact Roles are the link between a person and a deal. Most automatic capture tools, EAC included, use them to decide which opportunity an email belongs to. When the roles are missing, there is no path from the email address to the opportunity.
- They go missing for ordinary reasons:
Depending on how an opportunity was created, it may start with no Contact Roles, or only the one contact from lead conversion - A new stakeholder joins the deal, but nobody adds them to the opportunity
- Reps treat Contact Roles as optional because nothing on the page layout requires them
A second problem appears when one contact sits on several open opportunities, such as a renewal and an upsell at the same account. A tool that cannot choose between them may fall back to the account. The email is saved, but on the wrong record for deal-level reporting. Understanding how to automatically match emails to Salesforce records can help teams identify which matching rules are needed to keep opportunity activity accurate.
5 Ways to Fix Emails Not Showing on Salesforce Opportunities
Work through these in order. The first three cost nothing.
- Audit Contact Roles. Run a report of open opportunities with no Contact Roles. In most orgs, this report alone explains the missing emails.
- Make Contact Roles part of the process. Add the Contact Roles related list to the opportunity page layout, and consider a validation rule or Flow that requires a primary Contact Role before a stage change.
- Allow multiple contacts on activities. Turn on Allow Users to Relate Multiple Contacts to Tasks and Events under Setup > Feature Settings > Sales > Activity Settings. One email can then reach every contact on the thread.
- If your team uses EAC, migrate to Sync Email as Salesforce Activity. Captured email that stays outside the activity layer is weak for reports and automation. For configuration instructions, see this guide to setting up Einstein Activity Capture
- Backfill what was missed. Emails sent before a Contact Role existed will not move on their own. Relate key threads manually, or use a tool that can re-match history.
These steps fix most gaps. They also depend on reps keeping Contact Roles current — and that is the part that tends to slip.
How Match My Email Automatically Links Emails to Salesforce Opportunities
Match My Email runs in the background and matches every email address in a message header to the email fields in your Salesforce org. When it finds a match, it saves a permanent copy of the email and its attachments in Salesforce (how opportunity matching works).
For opportunities, the rules are explicit:
- Open opportunities only. Closed deals do not collect new email.
- Contact Roles first. If a contact on the email is a Contact Role on an open opportunity, the email goes to that opportunity, including roles reps set manually.
- A fallback when roles are missing. When the email is saved as a Task and no Contact Role is defined, Match My Email rolls the match down from the account to the first open opportunity it finds (matching details).
- Custom fields when Contact Roles don’t fit. Matching can also run on a custom field, for orgs that track deal contacts differently.
None of this needs a rep to click “log.” Matching runs against your existing data model, so the emails land as standard Salesforce records your reports and automation already understand.
If opportunities in your org still show empty timelines, confirm that Opportunity matching is turned on in the Match My Email Control Panel, and that the opportunity page layout shows email. For additional troubleshooting, see Why Didn’t My Email Messages Match into Salesforce?
Every matched email on the right opportunity. Start a free trial or book a walkthrough with our team.
FAQs
Why do Salesforce emails show on Contacts but not Opportunities?
An email associated with a Contact isn’t automatically linked to an Opportunity. The activity needs the correct Opportunity relationship, or the email capture system must be configured to establish that relationship.
Does Einstein Activity Capture automatically link emails to Opportunities?
Yes, but only when certain conditions are met. Salesforce uses record relationships, including Opportunity Contact Roles, to determine whether captured emails should appear on an Opportunity.
Can Salesforce automatically link emails to multiple Opportunities?
Standard Salesforce activity relationships have limitations, and automatic matching depends on the email capture tool being used. When a Contact is associated with multiple Opportunities, determining the correct Opportunity can be challenging.
How do I recover missing emails on Salesforce Opportunities?
Start by checking whether the emails were captured and whether the correct Contact Roles and activity relationships exist. Depending on the setup, emails may need to be manually reassociated or matched using a Salesforce email integration.


