Skip to main content

Owners, Campaign Mapping, and activities in Salesforce

Salesforce distinguishes between the user making the API calls and the owner assigned to each record. Covers User Mapping, Campaign Mapping and Campaign member sync.

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:

  1. The owner selected in the modal.

  2. The Salesforce User assigned to the Enginy user in Users Mapping.

  3. 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.

Did this answer your question?