Last updated:
How does outbound email sync to Salesforce work?
When outbound email syncs to Salesforce, campaign activity from your sequencing tool—Smartlead, Instantly, EmailBison, or HeyReach—is automatically written into Salesforce as native CRM records. Emails sent, replies received, bounces, and unsubscribes appear on the Lead or Contact record and can trigger Salesforce Flows, without manual data entry or BCC workarounds.
Here’s exactly how the process works, which Salesforce objects are created, and what you need to configure it.
The sync mechanism: webhooks and the Salesforce API
Outbound sequencing tools publish events in real time via webhooks—HTTP requests sent when something happens in a campaign. A tool like OutboundSync receives those webhook payloads, maps the data to Salesforce’s data model, and writes it via the Salesforce REST API.
The result is that Salesforce stays updated as your sequences run, typically within seconds of each event.
Step by step: what happens when an outbound email is sent
- Sequencer sends the email. Smartlead, Instantly, or another tool sends the email from your configured mailbox.
- Webhook fires. The sequencer sends a webhook payload containing the event type, contact email, campaign name, mailbox used, timestamp, and optionally the email subject and body.
- Record lookup in Salesforce. OutboundSync searches Salesforce for a matching Lead or Contact by email address. The search order and fallback behavior (create new Lead, create new Contact, or skip) are configurable.
- Salesforce objects are written. The integration creates or updates:
- An EmailMessage record (Enhanced Email) linked to the Lead or Contact
- A Task record for activity logging and handoff queues
- Field updates on the Lead or Contact record (last activity date, campaign name, reply status, custom fields)
- Account association. If the Contact is linked to an Account, the EmailMessage is also associated with the Account record, making the activity visible from the account view.
- Suppression check (bidirectional sync). If configured, OutboundSync reads Salesforce reports or lists (customers, competitors, opted-out prospects) and pushes them back to the sequencer as exclusion lists, blocking future sends.
What data lands in Salesforce
EmailMessage records (Enhanced Email)
EmailMessage is Salesforce’s structured email storage format. Each sent email, reply, and bounce is stored as an EmailMessage record with fields for subject, body, sender, recipient, timestamp, and direction (inbound vs. outbound). EmailMessage records are linked to the Contact or Lead and surface in the Activity Timeline on that record.
Enhanced Email also supports:
- Deduplication (prevents the same email being logged twice if multiple sync paths are active)
- Compatibility with Einstein Activity Capture and Salesforce Inbox
- Relationship to the Account via the Contact association
Task records
Task records provide a lightweight activity log entry that feeds into Salesforce activity queues and reports. Many orgs create a Task alongside each EmailMessage for backward compatibility with existing reports and dashboards built around the Task object. Tasks can also trigger assignment rules, escalation rules, and Salesforce Flows.
Lead and Contact field updates
The sync updates standard and custom fields on Lead and Contact records: last activity date, lead status, campaign name, sequence name, reply classification (interested, not interested, unsubscribed), and any custom fields mapped in the integration settings.
New Lead, Contact, and Account records
If a prospect doesn’t exist in Salesforce yet, the integration can create a new Lead or Contact. If creating a Contact, OutboundSync can also look up an existing Account by email domain and associate the new Contact automatically. This keeps Salesforce complete without requiring pre-import before each campaign.
Leads vs. Contacts: which object should outbound sync to?
Salesforce has two person objects that outbound teams interact with differently:
| Object | Typical use | When to use |
|---|---|---|
| Lead | Cold prospect, not yet qualified | Most outbound campaigns targeting net-new prospects |
| Contact | Person associated with an Account | Existing accounts, warm outbound, post-conversion follow-up |
Most teams sync cold outbound prospects as Leads. Once a Lead is qualified and converted, Salesforce creates a Contact, Account, and optionally an Opportunity. Some teams—particularly those with simple data models or ABM-focused processes—skip the Lead object entirely and create Contacts directly.
OutboundSync supports syncing to either object, with configurable lookup order (check Contacts first, then Leads, or vice versa).
Triggering Salesforce Flows from outbound events
Unlike HubSpot, Salesforce doesn’t have a native “timeline event” object for third-party app events. Instead, outbound sync drives Salesforce automation through field updates on Lead and Contact records.
When OutboundSync updates a field—such as setting Last_Outbound_Email_Date__c to today, or changing Lead_Status to “Replied”—Salesforce Flows can use those field changes as entry conditions. This enables automation like:
- Alert an AE when a Lead’s status changes to “Interested”
- Create an Opportunity when a Lead replies and books a meeting
- Add a Contact to a Salesforce campaign when they receive an outbound email
- Change a Lead owner when the prospect requests to be contacted by a senior rep
- Trigger a follow-up Task when a lead bounces
The key is mapping the right outbound events to the right Salesforce fields during integration setup, so Flows have clean data to act on.
Contact matching and duplicate prevention
The default matching method is email address. OutboundSync queries Salesforce for a Lead or Contact with the incoming email. If found, it updates the existing record. If not found, it creates a new one (or skips, depending on configuration).
To reduce duplicates:
- Update-only mode: only updates existing records, never creates new ones
- Custom field lookup: match on an external ID or Salesforce record ID if you’ve pre-loaded records before launching campaigns
- Lookup order: check Contacts first, then Leads—or configure a specific object preference
- Account matching: match new Contacts to an existing Account by email domain
What you need to set up the sync
- A Salesforce org (Professional, Enterprise, or Unlimited edition; some features like custom objects require specific editions)
- An outbound sequencing tool — Smartlead, Instantly, EmailBison, or HeyReach
- An OutboundSync account — OutboundSync handles the webhook-to-Salesforce mapping, record matching, and object creation
- Salesforce Connected App credentials — set up during OutboundSync onboarding via OAuth; no custom development required
Most teams have their first campaigns syncing within a day of setup.
Frequently Asked Questions
How does outbound email sync to Salesforce work?
Outbound email sync to Salesforce works by connecting your sequencing tool (Smartlead, Instantly, EmailBison) to Salesforce via webhook or API. When a campaign event fires—email sent, reply received, bounce, unsubscribe—the integration writes it to Salesforce as an EmailMessage record, Task, or field update on a Contact or Lead, typically within seconds.
What Salesforce objects does outbound sync create?
A full outbound sync creates EmailMessage records (Enhanced Email) for sent and received emails, Task records for activity logging and handoffs, field updates on Contact or Lead records (last activity date, campaign status, custom fields), and optionally new Contact, Lead, or Account records when a prospect isn’t already in Salesforce.
Should outbound contacts sync to Salesforce Leads or Contacts?
Most outbound teams sync cold prospects as Leads, since they haven’t yet been qualified. Once a Lead is converted through the sales process, Salesforce creates a Contact and Account. Some teams skip the Lead object entirely and create Contacts directly if their process doesn’t use the Lead-to-Contact conversion workflow.
Can Salesforce Flows trigger based on outbound email events?
Yes. When outbound sync updates a field on a Lead or Contact record—such as last outbound email date, reply status, or a custom campaign field—Salesforce Flows can use those field changes as entry criteria. This allows automation like alerting an AE when a prospect replies, or changing a Lead status when they book a meeting.
What is the difference between EmailMessage and Task records in Salesforce for outbound email?
EmailMessage (Enhanced Email) stores the full email content as a structured record linked to the Contact, Lead, or Account. Task records are simpler activity log entries used for queues and handoffs. Modern Salesforce orgs prefer EmailMessage for outbound sync because it supports better reporting, deduplication, and Inbox/Einstein Activity Capture compatibility.
Founder & President, OutboundSync
15+ years in B2B sales and operations. Former HubSpot Solutions Partner and Smartlead expert. Built the agency that became OutboundSync.
Similar posts
Using HubSpot AI Connectors with OutboundSync
Connect HubSpot to ChatGPT and Claude for AI access to your CRM data. Use OutboundSync data in AI prompts to analyze campaigns, reply times, and message traits—and optimize outbound without pre-built dashboards.
Harris Kenny
How does outbound email sync to HubSpot work?
Learn how outbound email sync to HubSpot works: what data moves, how contacts are matched, and what you need to set it up with tools like Smartlead and Instantly.
Harris Kenny
What is outbound CRM integration?
Outbound CRM integration connects sales engagement platforms like Smartlead and Instantly to HubSpot or Salesforce, automatically syncing campaign activity as structured data.
Harris Kenny