Salesforce distinguishes between the user making the API calls and the owner assigned to each record.
Note: Every operation uses the connection and the permissions of the user who authorized Salesforce. Choosing a different owner does not change those permissions and does not make Enginy act as that user.
Configuring User Mapping
Open Integrations, find Salesforce, click Configure and go to User Mapping. You will find three sections.
Identities Mapping
Connects each Enginy identity or sender with a Salesforce User. Enginy uses this mapping to suggest the owner for campaigns associated with that identity.
Users Mapping
Connects Enginy users with Salesforce Users. It is used in exports started by a person from Enginy.
Default CRM owner
This is the workspace fallback owner. Enginy uses it when it finds neither a selected owner nor a mapping for the user starting the export.
Save your changes when you are done.
Priority order in a manual export
When using Export to CRM, Enginy resolves the owner in this order:
The owner selected in the modal.
The Salesforce User assigned to the Enginy user in
Users Mapping.Default CRM owner.
If none resolves, Enginy does not send an OwnerId.
On new records, the resolved owner is included when the record is created. On existing records, Enginy keeps the Salesforce owner unless you turn on Overwrite existing value.
The owner of a campaign
In a campaign's settings you can configure Contacts CRM Export, Conversations CRM Export and the CRM owner.
If the identity has a Salesforce User in Identities Mapping, Enginy can use it as the initial selection. You can change it before scheduling the campaign.
The owner saved on the campaign is used for:
The Contact or Lead Enginy exports from that campaign.
The Salesforce Tasks created for emails and LinkedIn messages.
The activities Enginy associates with the record.
If you want to change the owner of a Contact or Lead that already exists, turn on the option to overwrite the existing owner.
A campaign that is scheduled, paused or completed may block changes to its CRM export settings.
What Campaign Mapping does
Campaign Mapping writes information calculated by Enginy into Contact or Lead fields. On its own it does not create a Salesforce Campaign and does not add records to Campaign Members — that is a separate feature, Campaign member sync, covered further down.
The destination depends on the default object:
With Contact, Enginy updates the Salesforce Contact.
With Lead, Enginy updates the Salesforce Lead.
Important: Before saving, confirm that the selected field exists on the target object. This matters particularly if you use Lead as the default object.
The available values are grouped into:
Sequence: Campaign Sequence Details, Campaign Engagement Status, Sequence Status and Campaign Reply Analysis.
Email: Campaign Opens, Campaign Clicks, Campaign Open Analysis and Campaign Click Analysis.
General: Campaigns, Senders and Activities.
Conversation Tags: Conversation Tags and Conversation Tag Categories.
For Campaigns and Senders you can decide whether to keep aggregated information or overwrite it with the most recent value.
Mirroring campaigns as Campaign Members
Salesforce is the only CRM where Enginy can mirror a campaign into Salesforce Campaigns. It has its own panel, Campaign member sync, alongside Campaign mapping in the setup modal.
Turn on Enable campaign member sync and every Enginy campaign mirrors its contacts into Salesforce as campaign members. Each campaign gets a Salesforce campaign created automatically unless you override it for that campaign, and member statuses are created for you.
Status mapping
Maps each Enginy sequence status onto a Salesforce member status label. There are six of them: Not Started, Ongoing, Replied, Finished, Error and Paused.
Leave one empty and that status is never written. The field shows Don't update when it is unset.
Source field
Stamps a field on the records this sync creates, so you can trace or exclude them later. You choose the field name and the value — LeadSource set to Enginy is the usual pair. Don't stamp created records turns it off.
Note: This is workspace-level: switching it on applies it to every campaign, not just new ones.
Exporting Contacts from a campaign
Contacts CRM Export controls when the Contact or Lead is created or updated:
No: does not export contacts from that campaign.Yes: exports the campaign's contacts.Only when a contact replies: exports when the contact replies.
If the record does not exist in Salesforce yet and export is enabled, Enginy tries to create it before logging its activities.
Exporting conversations as Salesforce Tasks
Conversations CRM Export controls when activities are sent:
No: does not create Tasks.Yes: logs the conversations.Only when a contact replies: logs the conversation when the contact replies.
Enginy creates one Salesforce Task for each compatible email or LinkedIn message. The Task includes Subject, Description, ActivityDate, OwnerId if the campaign has an owner, Status Completed for messages already sent, and a reference to the Contact or Lead.
For LinkedIn, Enginy uses a Task with TaskSubType = Email and adds [LinkedIn] to the Subject.
How Tasks are related
When the object is Contact, WhoId points to the Contact and WhatId can point to the related Account. When the object is Lead, WhoId points to the Lead and no relationship with an Account is created.
The connected user needs permission to create Tasks and access to the related records. Salesforce has no specific Tasks panel inside Salesforce Setup, so these permissions must be reviewed directly in Salesforce.
When campaign fields reach Salesforce
Two things changed here recently, and they are worth stating plainly because the old behaviour caught people out.
Campaign Mapping fields do not depend on message logging
Conversations CRM Export controls whether messages are logged as Tasks. It does not control whether Campaign Mapping fields are written.
Important: The two used to be coupled. Turning conversation export off also stopped Sequence Status from updating, silently. They are now independent, and campaign fields mirror every send and reply whatever the message-logging setting says.
Sequence Status also syncs on enrollment, so it appears when the contact enters the campaign rather than only after the first message is logged.
Status also syncs on lifecycle changes
Status used to reach Salesforce only on message events. It now also syncs when you:
Pause or resume a contact.
Block a lead.
Add contacts to a campaign, or remove them from one.
A blocked lead is reported with a blocked status rather than dropping out of the sync.
Good to know: These syncs never fail the action that triggered them. Pausing a contact still works if Salesforce is unreachable, and the failure surfaces in the sync status instead.
When to review the mappings
Review User Mapping and Campaign Mapping when a user is deactivated in Salesforce, a campaign's owner changes, Default object when exporting is changed, or fields used in Campaign Mapping are deleted or renamed.

