- 1. Getting Started
- 2. What's New
- 3. Dashboard
- 4. Contacts
- 5. Components
- 6. Channels
- 7. Campaigns
- 8. Reports
- 9. Points
- 10. Stages
- 11. Categories
- 12.1. Citrix Plugins
- 12.2. Clearbit
- 12.3. ConnectWise
- 12.4. FullContact
- 12.5. Gmail
- 12.6. Hubspot CRM
- 12.7. iContact
- 12.8. Mailchimp
- 12.9. Microsoft Dynamics CRM
- 12.10. Microsoft Outlook
- 12.11. Pipedrive
- 12.12. Salesforce CRM
- 12.13. Sugar CRM
- 12.14. Twitter
- 12.15. vTiger CRM
- 12.16. Zapier
- 12.17. Zoho CRM
- 12.18. Social login
- 12.19. Field Mapping
- 12.20. Integration Testing
- 13. Use Cases
- 14. Cron Jobs
- 15. SAML SSO
- 16. Search
- 17. Queue Support (RabbitMQ/Beanstalkd)
- 18. Themes
- 19. Translations
- 20. Tips & Tricks
- 21. Variables
- Published with GitBook
Mautic - Salesforce CRM plugin
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
- Create a Salesforce CRM account if you don't have one already.
Your Mautic instance has to run on
Salesforce will not allow you to create an App with a
Configure the Mautic Salesforce plugin
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
- Click on Setup (top right corner)
- Scroll down to Build in bottom left corner
- Scroll down to Connected Apps
Create a new app like this:
| Field | Value | | ----: | :---- | | Connected App Name | Mautic | | API Name | Mautic | | Contact Email | your Salesforce account email | | Description | Integration with Mautic | | Enable OAuth Settings |
<ticked>| | 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, offline_access) | 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.
- You can pull leads and/or push leads from and to the integration.
- Push leads is done through a Form action or a Campaign action.
- Pull leads is done through command line and it can be setup as a cron job.
Feature specific settings
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.
If Update blank values is checked
- When pulling contacts from Salesfoce: it will check for fields mapped fields in Mautic and it will update these fields with Salesforce data regardless of the arrow direction set in the configuration.
- When pushing data to Salesforce it will check for blank mapped fields in Salesforce and it will update these with Mautic's data regardless of the directions of the arrows setup in the configuration.
Select the objects you wish to pull or push records from.
- You can push Mautic Contacts to the Lead and Contact object in Salesforce.
- You can push activities (Contact's timeline records) to a custom object in Salesforce.
- Pulling records will be done from Leads and/or Contacts objects into Contacts in Mautic and Accounts from Salesforce will be pulled into Mautic Companies.
Command to push/pull records from Salesforce
To push or pull records from Salesforce you need to run the Mautic integration commands:
Pull records from the Leads object in Salesforce
php app/console mautic:integration:synccontacts --integration=Salesforce
mautic:integration:fetchleads is a alias of this command.
Push activities to the Salesforce custom object described below
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".
Setting up Mautic's Custom Object in Salesforce
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 Information
|Custom Object name||(namespace)mautic_timeline|
|Namespace Prefix||mautic (no underscores)|
Custom Fields & Relationships
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.
Salesforce Campaigns and Mautic
Mautic can communicate with Salesforce campaigns through trigger actions in Mautic Campaigns and Forms, and through Mautic Segments.
In Mautic Campaigns
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.
In Mautic Segments
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.
Syncing Salesforce Email Opt Out with Mautic Do Not Contact
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
- In Mautic's configuration for the Salesforce integration, on the Features tab, check the box to
Use latest updated Do Not Contact record
- Map the Salesforce
Email Opt Outfield to Mautic's
Do Not Contact by emailfield
- Now the Do Not Contact status will update to the integration
Test the plugin
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