Enhanced Email
Enhanced Email is the Salesforce setting that stores inbound and outbound email as EmailMessage records and attachments as ContentDocument files, replacing the legacy model that stored email as Activities with Attachment records.
Definition
Enhanced Email is the Salesforce setting that stores inbound and outbound email as EmailMessage records and attachments as ContentDocument files, replacing the legacy model that stored email as Activities with Attachment records. The change unifies email handling under a single object model accessible through Lightning, queryable through SOQL on the EmailMessage object, and reportable through standard report types. Enhanced Email has been on by default in new orgs since 2017 and is the foundation for every modern email feature: Email-to-Case threading, the Email Composer in Lightning, the Outlook and Gmail integrations, and the Activity Timeline display of email on records.
The setting is org-wide and one-way: enabling cannot be reversed without a Salesforce support case. The activation rewrites the underlying storage model for all subsequent email, which is why Salesforce treats it as a permanent migration. Existing email Activity records from before activation remain accessible but in their original storage; new email lands under EmailMessage. Most orgs created after 2017 never need to think about Enhanced Email because it is already on; older orgs with legacy data may still have a mix of both storage models.
What Enhanced Email changes in the data model
EmailMessage versus Activity-based email
Under the legacy model, email was a Task record with the IsActivity flag and a Description containing the body, plus an Attachment record for any file. Under Enhanced Email, email is an EmailMessage record with structured fields for HasAttachment, FromAddress, ToAddress, CcAddress, BccAddress, TextBody, HtmlBody, and Subject. EmailMessage links to its parent records (Case, Lead, Contact, Opportunity, Account) through the related EmailMessageRelation object. Reporting against EmailMessage is straightforward; reporting against the legacy Activity-based email required custom report types and field workarounds.
Activation is one-way
Once Enhanced Email is activated, the platform writes all new email to EmailMessage. Reverting requires a Salesforce support case and effectively involves a data migration back. Plan the activation deliberately: confirm any Apex, integrations, or reporting that touches email is compatible with the EmailMessage schema before flipping the switch. Most modern integrations are; legacy custom code built against the Task-based model needs review.
Email threading and conversations
Enhanced Email supports threading: replies and forwards link back to the original EmailMessage through the ParentId field, building a conversation tree on the Case or Contact. The platform uses the In-Reply-To and References headers to determine threading, plus a Salesforce-specific thread token for internal traffic. Threading is what makes the Email Composer feel like a real mail client; the legacy model treated each Task as an independent record with no relationship to others in the thread.
Attachments as ContentDocument
Under Enhanced Email, attachments are ContentDocument records linked to the EmailMessage through ContentDocumentLink. This unifies email attachments with the rest of Salesforce Files: same sharing model, same Lightning UI, same storage allocation. The legacy model stored attachments as Attachment records, which lacked version history, sharing flexibility, and the modern Files UI. Files-as-attachments is the better foundation for any workflow that needs to find or share attached files later.
Email-to-Case behavior
Email-to-Case writes incoming email as EmailMessage records under Enhanced Email mode, replacing the legacy approach of writing them as Tasks. The threading capability lets the Case page show every email in the conversation in chronological order, with quoted-reply detection and HTML rendering. This is the largest user-facing improvement Enhanced Email brought to Service Cloud: the Case Feed becomes a usable customer conversation history rather than a list of opaque Activity records.
Apex API changes
The Apex APIs for sending and receiving email work with EmailMessage under Enhanced Email. Messaging.SingleEmailMessage produces an EmailMessage on save; InboundEmailHandler implementations can write EmailMessage records directly. Legacy code that constructed Task records to log email needs to migrate to EmailMessage. Both APIs return the same envelope object for outbound, so most send paths require minimal code changes; inbound logging code may need more rework.
Reporting and queries
Standard report types ship for EmailMessage, with grouping by ParentObject, From, To, CreatedDate, and other structured fields. SOQL queries are also straightforward: SELECT Subject, FromAddress, ToAddress, MessageDate FROM EmailMessage WHERE ParentId = ... returns the email conversation for any record. The legacy Activity-based reporting required custom report types and free-text searches; Enhanced Email is the better long-term home for any email analytics.
Activate Enhanced Email safely
Activating Enhanced Email is a single toggle in Setup, but the audit work before the flip determines whether the activation is uneventful or disruptive. The steps below cover the safe activation path for an existing org.
- Check current activation status
Setup > Email > Enhanced Email. The page shows whether the feature is already on. Orgs created after 2017 typically show Active.
- Audit Apex code touching email
Search the org for Apex that creates Tasks to log email or queries Attachment on emails. Identify code that needs migration to EmailMessage and ContentDocument.
- Audit integrations
Check any third-party tool that reads or writes email data. Confirm compatibility with EmailMessage; legacy tools that depend on the Task-based model may need updates from the vendor.
- Audit reports
List reports that report on email Activities. Plan rebuilds against EmailMessage standard report types after activation, because the Activity-based reports may show partial data post-activation.
- Test in a sandbox
Enable Enhanced Email in a Full sandbox. Test every integration, custom code path, and report against the post-activation data model. Confirm everything works.
- Plan a maintenance window
Schedule the activation during a low-traffic window. Although the activation is fast, any in-flight email sends or receives may behave inconsistently during the brief switch.
- Activate in production
Setup > Email > Enhanced Email > Enable. Confirm activation. Monitor email send and receive for 24 hours post-activation; any issues need rapid diagnosis.
Master org-wide switch. One-way migration.
Setting that uses Enhanced Email threading to auto-link replies to the original Case. Recommended for Service Cloud orgs.
Modern email writing UI. Works only with Enhanced Email; legacy Activity-based email used a different composer.
Lightning page component that surfaces email under a record. Wired to EmailMessage; replaces the legacy Email Activities related list.
Some advanced features (Email Composer, threading actions) require specific permissions. Audit profile and permission set settings after activation.
- Activation is one-way without a support case. Plan the audit work thoroughly because reverting is operationally expensive.
- Apex code that queries Attachment for email files will return nothing post-activation. Update to ContentDocumentLink before activation, or those queries will silently return empty results.
- Legacy Activity-based email reports may break. Rebuild against EmailMessage standard report types as part of the activation rollout.
- Threading depends on In-Reply-To and References headers. Mail systems that strip these (some corporate gateways) produce broken threads even with Enhanced Email active.
- Pre-activation email Activities remain in their original storage. Reporting that mixes pre- and post-activation email needs to query both Activity and EmailMessage.
About the Author
Dipojjal Chakrabarti is a B2C Solution Architect with 29 Salesforce certifications and over 13 years in the Salesforce ecosystem. He runs salesforcedictionary.com to help admins, developers, architects, and cert/interview candidates sharpen their fundamentals. More about Dipojjal.
Test your knowledge
Q1. Why is understanding Enhanced Email important for Salesforce admins?
Q2. In which area of Salesforce would you typically find Enhanced Email?
Q3. Can a Salesforce admin configure Enhanced Email without writing code?
Discussion
Loading discussion…