Map lemlist's 4 unsubscribe fields — Do not contact, Email unsubscribed, Phone unsubscribed, LinkedIn unsubscribed — to boolean checkbox fields in HubSpot, Salesforce, or Pipedrive.
Once mapped, statuses sync both ways automatically. Do not contact acts as a master switch that unsubscribes all channels at once. Mapping is opt-in — nothing syncs until you map the fields.
Why this matters
Unsubscribe statuses can sync both ways between lemlist and supported CRMs, helping your team stay compliant and preventing outreach on channels a contact has opted out from.
Prerequisites
You should already have a supported CRM connected to lemlist: HubSpot, Salesforce, or Pipedrive.
You should already know how to access your team integration settings in lemlist.
Your CRM should have boolean checkbox fields available for mapping.
How unsubscribe sync works
lemlist now includes 4 default contact fields that can be mapped to CRM fields:
Do not contact (global)
Email unsubscribed
Phone unsubscribed
LinkedIn unsubscribed
These fields are boolean:
true= unsubscribedfalseor empty = not unsubscribed
Once mapped, each field syncs both ways between lemlist and your CRM.
Phase 1: Open your CRM field mapping settings
Open Settings from your lemlist workspace. Click your profile in the bottom-left corner, then select Settings. This is where team-wide CRM configuration lives.
Go to your CRM integration settings. In the left sidebar, click Integrations, then on your connected CRM click Settings. This opens the integration configuration where field mappings are managed.
Phase 2: Map the unsubscribe fields
Open the Field Mapping tab and map each unsubscribe field. In your CRM settings, go to Field Mapping, search for the lemlist field you want to map, such as Do not contact, then select the matching CRM checkbox field from the dropdown. Repeat this for all unsubscribe fields you want to sync.
Important: mapping is opt-in. Nothing syncs until your team maps these fields.
What to map
Do not contact: Global unsubscribe status across all channels.
Email unsubscribed: Blocks email outreach.
Phone unsubscribed: Blocks calling and phone-based outreach.
LinkedIn unsubscribed: Blocks LinkedIn outreach.
CRM-specific setup notes
Salesforce
Email unsubscribed: Salesforce can suggest its native
Email Opt Out(HasOptedOutOfEmail).Phone unsubscribed: Salesforce can suggest its native
Do Not Call(DoNotCall).Do not contact and LinkedIn unsubscribed: create custom boolean fields.
HubSpot
HubSpot does not provide a native writable field suggestion for this setup.
Unsubscribed from all email(hs_email_optout) is read-only and calculated by HubSpot, so it cannot be written through the API and is not offered for mapping.Create or map custom checkbox properties for all 4 fields.
Pipedrive
Create and map custom boolean fields for these statuses.
Use boolean fields only. If you map a field of another type, the sync will fail. After correcting the mapping, the unsubscribe values will sync on the next cycle.
Phase 3: Understand what syncs from lemlist to the CRM
When a contact is unsubscribed in lemlist, the mapped CRM field is updated automatically. This includes unsubscribes coming from:
the lemlist app
the browser extension
the API
bounces
abuse or spam reports
unsubscribe link clicks from the lead
Channel fields turn true as soon as at least one value for that channel is unsubscribed.
For example, if a contact has 3 email addresses and only 1 is unsubscribed, Email unsubscribed becomes true.
Phase 4: Understand what syncs from the CRM to lemlist
When someone checks a mapped unsubscribe field in the CRM, lemlist picks up that change during the next field-mapping sync cycle.
After that:
the contact is unsubscribed in lemlist for the relevant scope or channel
they stop being contacted in campaigns on that channel
the action is recorded in the contact history as coming from CRM sync
Note: CRM → lemlist is a polling sync, not instant. Changes made in the CRM are applied on the next sync cycle.
Phase 5: Master the “Do not contact” master switch
Do not contact is the most important field to understand because it acts as a master switch.
If you tick “Do not contact” in the CRM
The contact is unsubscribed globally in lemlist.
Every email address, phone number, and LinkedIn URL on that contact is unsubscribed.
Because those channels are now unsubscribed in lemlist, lemlist pushes the related channel fields back to the CRM.
That means Email unsubscribed, Phone unsubscribed, and LinkedIn unsubscribed will also become
truefor whichever of those fields are mapped.
In practice, checking one box in the CRM can result in all 3 channel fields being checked too.
If you untick “Do not contact” in the CRM
The contact is re-subscribed globally in lemlist.
Their email, phone, and LinkedIn unsubscribe statuses are also cleared.
The 3 channel fields can return to
falsein the CRM.This only works if none of the unsubscribes are protected.
If you untick only one channel field
For example, if you set Email unsubscribed to false:
email is re-enabled in lemlist
Do not contact is released
phone and LinkedIn remain unsubscribed if they were still opted out
This is useful when you want to reopen only one communication channel without changing the others.
The same logic applies from the lemlist side
If you mark a contact as Do not contact in lemlist, all 3 channels are unsubscribed and the 4 mapped fields are pushed back to the CRM.
Important: “Do not contact” is not just a label. It triggers a full global unsubscribe across email, phone, and LinkedIn, and that status propagates back to mapped CRM fields.
Phase 6: Know which unsubscribes cannot be reversed
Some unsubscribe states are protected and cannot be removed from the CRM.
This includes unsubscribes caused by:
hard bounces
abuse or spam complaints
unsubscribe link clicks from the lead
domain-level unsubscribe entries
team-level unsubscribe entries
If a CRM change tries to set one of these protected unsubscribes to false, lemlist rejects the change as a whole.
That means:
nothing is re-subscribed
the change is logged as a field rejection:
crm_sync_unsub_state_protectedthe sync stops retrying that same rejected update
For example, if an email hard-bounced, unticking a CRM checkbox will not make that address contactable again.
Practical example
Here’s a common workflow:
Your team maps Do not contact, Email unsubscribed, Phone unsubscribed, and LinkedIn unsubscribed to CRM checkbox fields.
A rep marks a contact as Do not contact in the CRM.
On the next sync cycle, lemlist globally unsubscribes the contact and unsubscribes all email, phone, and LinkedIn values.
lemlist then pushes the channel fields back to the CRM as
true.Campaigns stop contacting that lead across all mapped channels.
Push existing unsubscribe data to your CRM
If you already have unsubscribe data stored in lemlist, mapping the fields does not automatically backfill all historical statuses into the CRM.
To push existing unsubscribe stock:
map the unsubscribe fields first
run a bulk Search & connect on the relevant contacts
This allows the unsubscribe statuses already stored in lemlist to be pushed to your CRM records.
Troubleshooting and common pitfalls
Issue: The unsubscribe field does not sync
Root cause: The mapped CRM field is not boolean.
Check the field type in your CRM.
Replace it with a checkbox/boolean field.
Update the mapping in lemlist.
Wait for the next sync cycle.
Issue: A contact stays unsubscribed even after unticking the CRM field
Root cause: The unsubscribe is protected.
Review whether the contact had a bounce, spam complaint, unsubscribe-link action, or a domain/team-level unsubscribe.
Check the contact for the rejection log
crm_sync_unsub_state_protected.Do not expect CRM unticks to override protected states.
Issue: The CRM was updated, but lemlist did not change immediately
Root cause: CRM → lemlist sync is polling-based, not real time.
Wait for the next field-mapping sync cycle.
Recheck the contact after the sync runs.
If needed, confirm the mapping is still active.
Issue: Checking “Do not contact” also checked all channel fields
Root cause: This is expected behavior.
Do not contact globally unsubscribes the contact.
That global unsubscribe also unsubscribes email, phone, and LinkedIn values.
lemlist then pushes those channel states back to the CRM as
true.
Issue: I changed the contact in both lemlist and the CRM
Root cause: Both systems changed before the next sync cycle.
In this case, the most recent change wins.
Review timestamps if the final result seems unexpected.
Additional behavior to know
The 4 unsubscribe fields are computed and visible on contacts for all teams, even if CRM sync is not enabled.
The CRM push/pull behavior is gated by the
unsubsCrmSyncbeta flag.Both sync directions are protected against loops, so a value pulled from the CRM is not immediately pushed back, and vice versa.
Field rejections self-heal once the CRM value changes again.



