Learning objective
By the end of this tutorial, you'll know how to choose which lemlist activities sync to Salesforce, configure how each activity type is stored, and give your sales team a complete outreach timeline inside their CRM — without switching tools.
Why this matters
When your sales team lives in Salesforce, they need to know what's happened with a prospect before picking up the phone or sending a follow-up. Activity sync brings every email sent, open, click, reply and call from lemlist directly into the lead's Salesforce activity timeline. AEs can pick up qualified leads with full context — without asking the SDR for a briefing.
Prerequisites
Your Salesforce integration is connected in lemlist (see How to connect lemlist to Salesforce)
You have lemlist admin access
Phase 1: Choose which activities to sync
Step 1: Open the Activities tab
In the Salesforce integration, open the Activities tab. You'll see a list of all lemlist event types — each can be individually enabled or disabled. Start by thinking about what your sales team actually needs to see in Salesforce, and only enable those.
Step 2: Enable or disable activity types
Toggle each activity type on or off based on what's useful for your team. Email Sent, Reply Received, and Interested are the highest-value signals for most sales teams. Open and Click are useful for advanced reporting but can create noise if AEs aren't actively using that data.
Phase 2: Configure how activities are stored
Step 3: Choose the Salesforce activity type for each event
For each enabled activity, choose how it's stored in Salesforce. The right choice depends on how your Salesforce team reads the activity feed.
Tasks: logged as completed actions. Best for outreach history (emails, replies) — most teams use this for lemlist activity
Events: logged as calendar-style entries. Better suited for meetings or scheduled calls
Step 4: Select from the activity type dropdown
In the Salesforce integration, open the Activities tab, then enable or disable each activity type you want to sync.
To change the Salesforce activity type for an item, click the activity type dropdown on the right side of that row.
Select the desired activity type from the list.
Phase 3: Sync your calls
A call placed with lemlist is logged in Salesforce as a Task with the subtype Call, carrying the call duration and the outcome. The activity is titled "Call done from [campaign name]", and calls placed outside a campaign sync too. The contact has to exist in Salesforce first — a call on a contact that isn't synced yet waits until it is.
Step 5: Set how call outcomes are written
The call outcome is written to the Task's Call Result field (CallDisposition). In the Calls row of the Activities tab you can type the exact value you want sent for each call status. If you leave it blank, lemlist sends the label of the call status as it reads in lemlist — a call marked No answer arrives as "No answer".
This field is free text, not a dropdown, and nothing checks it against your org. In a stock Salesforce org, Call Result accepts any string, so whatever you type lands. If your admin converted Call Result into a restricted picklist, Salesforce rejects any value that isn't one of its options and the call fails to sync. Before typing anything here, check what your Call Result picklist actually accepts and match it exactly.
Step 6: Decide what travels with the call
Four independent toggles control what lemlist sends alongside the call: Calls note, Calls recording, Calls transcript, Calls summary. They are on by default.
Everything enabled is written into the Task Description, always in the same order — the rep's note, the AI summary, the recording link, then the transcript. A section with nothing in it is skipped.
The Description fills up progressively. The Task is created as soon as the call ends with whatever exists at that moment, then rewritten when the transcript arrives, and rewritten again when the AI summary is generated.
The recording link is public. Anyone who opens it from the Salesforce record can listen to the call — no lemlist account required — and the link never expires and cannot be revoked. Turn off Calls recording if that isn't acceptable for your team.
A few things worth knowing before you turn these on:
The Description is rebuilt, not merged. Editing it by hand in Salesforce is overwritten on the next refresh. Write call notes in lemlist.
The AI summary is synced, not generated. It is pushed only if the call already has one — syncing never triggers a summary.
lemlist calls only. Calls coming from the Aircall or Ringover integrations do not carry a recording, transcript or summary.
Salesforce has the tightest length limit of the supported CRMs — the Task Description holds 32,000 characters, which is roughly half an hour of conversation. Longer content is cut from the end, so the transcript goes first, and nothing warns you that it happened.
Practical example
An SDR team enables three activity types: Email Sent → Task, Reply Received → Task, Interested → Task. They skip Open and Click to keep the Salesforce activity feed clean. When an AE picks up a qualified lead, they see the full outreach history — email sent date, the reply, when the SDR marked them as interested — without leaving Salesforce or messaging the SDR.
Unsubscribe limitation: lemlist does not push updates to Salesforce when a lead is added directly to the Unsubscribe section. The unsubscribe activity only syncs if the lead manually unsubscribes from a campaign.
Troubleshooting
Activities not appearing in Salesforce
Root cause: The activity type may be disabled, or there may be a permission issue on the Salesforce side.
Check the Activities tab and confirm the relevant types are toggled on
Open the Logs tab and look for sync errors on activity records
Verify the connected Salesforce user has Create permissions on the Task or Event object
Calls fail to sync, or the Call Result is wrong
Root cause: The value lemlist sends for the call outcome isn't one your Call Result field accepts. This happens when the field has been converted to a restricted picklist and the value typed in the Calls row — or the lemlist call status label used when that row is blank — doesn't match one of its options.
Open the Logs tab and check the error on the call record
Compare your Call Result picklist values with what lemlist is sending
Type the exact matching value in the Calls row of the Activities tab
A call has no transcript or summary in Salesforce
Root cause: Neither exists when the call ends — both are added on a later refresh. The call may also have no summary at all, or may have come from Aircall or Ringover rather than lemlist calling.
Give it time and reopen the Task
Check the call in lemlist actually has a transcript and a summary
Confirm Calls transcript and Calls summary are on in the Calls row
On a long call, check whether the Description hit the 32,000 character limit — the transcript is cut first
A call Description edited in Salesforce reverted
Root cause: lemlist rebuilds the Description on every refresh instead of merging it, so manual edits are replaced.
Write the note in lemlist on the call record instead
Unsubscribe not syncing to Salesforce
Root cause: This is a known limitation — only manual campaign unsubscribes sync. Bulk or direct unsubscribes added to the Unsubscribe section do not.
Track unsubscribe status separately in Salesforce if full coverage is required
For compliance-sensitive workflows, manage unsubscribe status directly in Salesforce



