In this document, there may be references to outdated terminology such as
- lists or lead lists, and
- anonymous leads
- leads were renamed to contacts
- lead lists were renamed to segments
- anonymous leads were renamed to visitors
Your Mautic instance has to run on
Salesforce will not allow you to create an App with a
http:// callback URL.
There is official documentation about how to get the Consumer Key and Consumer Secret although it doesn't seem to be updated.
Follow these steps to get the Salesforce Consumer credentials
Create a new app like this:
|Connected App Name||Mautic|
|Contact Email||your Salesforce account email|
|Description||Integration with Mautic|
|Enable OAuth Settings|
|Callback URL (in Mautic version 2.15)||https://example.com/plugins/integrations/authcallback/Salesforce|
|Selected OAuth Scopes||Access and manage your data (api), _Perform requests on your behalf at any time (refresh_token, offlineaccess)|
Make sure the Selected OAuth Scopes are Access and manage your data (api) and Perform requests on your behalf at any time (refresh_token, offline_access).
Copy the Consumer Key and Secret.
Insert the credentials from the Salesforce App into the Mautic Salesforce plugin and Authorize App.
Consumer ID is the Consumer Key
Configure the field mapping.
Sandbox - when using a sandbox account to test, Mautic will use the test URL for the API provided by Salesforce.
Updating of a Contact's Owner can be be enabled by turning on Update Contact Owner. This is not enabled by default. In order for a Contact in Mautic to match a User in Salesforce the email addresses in the two systems must be identical.
Select the objects you wish to pull or push records from.
To push or pull records from Salesforce you need to run the Mautic integration commands:
php app/console mautic:integration:synccontacts --integration=Salesforce
mautic:integration:fetchleads is a alias of this command.
php app/console mautic:integration:pushactivity --integration=Salesforce
mautic:integration:pushleadactivity is a alias of this command.
Both commands take these parameters:
Usage: mautic:integration:pushactivity [options] mautic:integration:synccontacts [options] Options: -i, --integration=INTEGRATION Integration name. Integration must be enabled and authorised. -d, --start-date=START-DATE Set start date for updated values. -t, --end-date=END-DATE Set end date for updated values. -a, --time-interval[=TIME-INTERVAL] Send time interval to check updates on Salesforce, it should be a correct php formatted time interval in the past eg:(-10 minutes)
--time-interval This parameter is used to setup the amount of time we want to pull records from. Possible entries: "-10 days", "-1 day", "-10 minutes", "-1 minute". Maximum time interval "-29 days".
To be able to push Contact timeline activities to the Salesforce integration you need to setup a Custom Object in Salesforce, as described below.
We will describe the name of the fields and object that result after completing the process of creating the Custom Object.
In this example, Salesforce has given the Custom Object a namespace name of
mautic__. (Note: there are two underscores with no space between).
Use the text in bold when creating your custom fields.
|Custom Object name||(namespace)mautic_timeline|
|Namespace Prefix||mautic (no underscores)|
API names of fields:
ReferenceIdmust be set as a unique field in Salesforce to prevent duplicating activity entries
|Field Label||API Name||Data Type||Indexed|
|Description||(namespace)Description\__c||Long Text Area(131072)||.|
|MauticLead||(namespace)MauticLead\__c||Number(18, 0) (External ID)||.|
When enabling the activity object, you need to tick the Activity checkbox in the Mautic plugin configuration and also specify the namespace prefix if it's available in Salesforce
You can filter what contact timeline activities to push to your custom object in Salesforce using the Events to include in the activity sync selector. If this is left blank all activity types will be pushed to your activity object in Salesforce.
Mautic can communicate with Salesforce campaigns through trigger actions in Mautic Campaigns and Forms, and through Mautic Segments.
In a campaign you can Push contacts to Salesforce integration, to a specific campaign. From the configuration window you can select the campaign and the status you wish your campaign members to have when inserted to the Salesforce campaign.
Follow similar procedure for a Form action to push to Salesforce integration.
You can create a Mautic Segments composed of Contacts that are in a Salesforce campaign. To do this create a segment filter Integration Campaign Member option, then in the filter properties select the name of the campaign you wish to get campaign members from.
In Salesforce, make sure the Email Opt Out field is visible to edit and that field history tracking has been set for the Email Opt Out field.
a. Under the Setup menu, go to Build -> Customize then do the following for each of Lead and Contact's layouts
a. Add the Email Opt Out field
a. Continue by going to the customise fields
a. Select the Email Opt Out field and edit the field level security option
a. Check to see if the field is visible at all levels. If not, select it and save.
a. Setup Field History by going to Setup->Customize->Leads->Fields menu (and also the Contacts fields menu) and Set History Tracking on the Email Opt Out fields
Use latest updated Do Not Contact record
Email Opt Outfield to Mautic's
Do Not Contact by emailfield
Follow these steps to test the integration.
The REST API is not enabled for this Organization.
This means the API is not turned on in your Salesforce account. Read more
Found errors? Think you can improve this documentation? Prefer code to UI? edit this page on Github