Integrate resonance with Salesforce

Resonance can push a contact to Salesforce CRM based on Contact actions or Point Triggers.

Requirements #

  • Create a Salesforce CRM account if you don’t have one already.
  • Your Mautic instance has to run on https://.Salesforce will not allow you to create an App with a http:// callback URL.

Configure the Mautic Salesforce plugin #

Authorize App #

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

  1. Click on Setup (top right corner)
    • Scroll down to Build in bottom left corner
  2. Create
  3. Apps
    • Scroll down to Connected Apps
  4. Click NewSalesforce CRM Create an App
  5. Create a new app like this:FieldValueConnected App NameResonanceAPI NameResonanceContact Emailyour Salesforce account emailDescriptionIntegration with MauticEnable OAuth Settings<ticked>Callback URL OAuth ScopesAccess 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).
  6. Copy the Consumer Key and Secret.Salesforce CRM Create an App keys
  7. Insert the credentials from the Salesforce App into the Resonance Salesforce plugin and Authorize App.Consumer ID is the Consumer KeySalesforce CRM Authorize
  8. Configure the field mapping.
    • Formula fields from Salesforce will be pulled and can be saved into a Resonance custom field.
    • Salesforce’s lead Id can be matched to a Resonance custom field.

Features #

Enabled features #

  • 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.
Salesforce CRM features

Feature specific settings #

  • Sandbox – when using a sandbox account to test, Resonance 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 Resonance 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 Resonance 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 Resonance CDP’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 Resonance 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 Resonance 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 bin/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 bin/console mautic:integration:pushactivity --integration=Salesforce

mautic:integration:pushleadactivity is a alias of this command.

Usage #

Both commands take these parameters:

  mautic:integration:pushactivity [options]
  mautic:integration:synccontacts [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 Resonance 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)resonance_timeline
Plural LabelTimelines
Object nameresonance_timeline
Namespace Prefixresonance(no underscores)
API name(namespace)resonance_timeline__c
Salesforce CRM activity namespace
Salesforce CRM activity object timeline

Custom Fields & Relationships #

API names of fields:

ReferenceId must be set as a unique field in Salesforce to prevent duplicating activity entries

Field LabelAPI NameData TypeIndexed
Description(namespace)Description\__cLong Text Area(131072).
MauticLead(namespace)MauticLead\__cNumber(18, 0) (External ID).
Salesforce CRM activity object

When enabling the activity object, you need to tick the Activity checkbox in the Resonance plugin configuration and also specify the namespace prefix if it’s available in SalesforceSalesforce CRM activity namespace

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 CRM activity filters

Salesforce Campaigns and Resonance #

Resonance can communicate with Salesforce campaigns through trigger actions in Resonance Campaigns and Forms, and through Resonance Segments.

In Resonance 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.Salesforce CRM push to campaigns

In Resonance Segments #

You can create a Resonance 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.Salesforce CRM Campaign Member Segments

Syncing Salesforce Email Opt Out with Resonance Do Not Contact #

Prepare Salesforce #

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.

1-Under the Setup menu, go to Build -> Customize then do the following for each of Lead and Contact’s layouts

2- Add the Email Opt Out field

3- Continue by going to the customise fields

4-Select the Email Opt Out field and edit the field level security option

5- Check to see if the field is visible at all levels. If not, select it and save.

6- 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

Prepare Resonance CDP #

  1. In Resonance CDP’s configuration for the Salesforce integration, on the Features tab, check the box to Use latest updated Do Not Contact record
  2. Map the Salesforce Email Opt Out field to Mautic’s Do Not Contact by email field
  3. Now the Do Not Contact status will update to the integration
Shopping Cart
Supportscreen tag