Salesforce Connector – Contact Syncing

Engaging Networks keeps track of which supporters require syncing via an internal ‘last modified’ timestamp.

Engaging Networks then compares Contacts that have been altered, after this timestamp, against EN Last Modified Date on the Contact.

In order for the Contact sync to work effectively, two Flow rules must be managed that allow Engaging Networks to be able to pull and push Contacts in the correct manner.

Contact Push

Every twenty minutes, Engaging Networks will push supporters who have been altered since the last push.

Only supporters with a Last Name will be pushed, in respecting Salesforce’s minimum Contact requirements.

Duplicate Management

Engaging Networks utilizes Salesforce’s Bulk API to upsert supporters as Contacts.

There are two options for how Engaging Networks finds the respective Contacts, configured under Sync Settings in Engaging Networks: ‘Fuzzy Matching’ or ‘Leverage Salesforce’. For more information, please refer to ‘Sync Settings’.

If a suitable match is found, the Id will be copied to the Contact Id, and the supporter record will be eligible for re-push in the next Contact push.

If you have additional Duplicate Rules configured in your Salesforce org (for example, matching rules that look at Phone Number or Street Address), these rules can cause problems for the Contact Sync which supports First Name + Last Name + Email only. We recommend:

  • if possible for your situation, set any additional duplicate rules to “Report” instead of “Alert + Report”

  • otherwise, set conditions on those duplicate rules using the “Current User” filter, so the rules do not apply to the EN integration user

These settings allow Engaging Networks to lookup Contacts on receiving the following errors examples : 

FIELD_CUSTOM_VALIDATION_EXCEPTION:Failed to create Account for Contact Raya Tester. Duplicate Alert:-
FIELD_CUSTOM_VALIDATION_EXCEPTION:Failed to create Account for Contact Jim Tester. Use one of these records?:--
FIELD_CUSTOM_VALIDATION_EXCEPTION:A record with this email address already exists.:Email --

For initial integrations, be sure that ‘active’ Contact segments are brought over to Engaging Networks, prior to launch. This will reduce the need for Engaging Networks creating new Contacts.

Preferred Email, Personal Email, Work Email or Alternate Email?

It is important to note that Engaging Networks’ unique identifier is the Email Address.

Currently, our integration model maintains a one-to-one representation of Supporters to Contacts.

Supporting a single Contact with multiple email addresses linked to different supporters in Engaging Networks isn’t feasible, as the Contact Id serves as a unique identifier within the Engaging Networks Salesforce sync process. This ensures that updates to the Email Address on the Contact are reflected in Engaging Networks.

If your organization stores multiple email addresses on a Contact, Engaging Networks can support up to two with an account setting to aid management.
Under Hello > Account Settings > Account Preferences, there’s a setting titled ‘Check Primary and Secondary Email address on Page Processing.’

If this setting is enabled, during on-page processing, the system will check whether the email address provided is found in either the primary and/or secondary email address field. If a match is found, no supporter record will be created.

If the email address is found in either of these fields, the existing supporter record will be retained.

The email address used in the submission will be the one that receives the auto-responder.

In Salesforce, the Contact ID will remain unchanged, and a new Contact will not be created, ensuring that the Contact retains both email addresses.

When using this setting, make sure to specify the ‘Secondary Email’ field in the Contact Mapping settings in Engaging Networks to correspond with the field on the Contact record that contains the alternate email address.

Contact Pull

Engaging Networks will pull Contacts whose EN Last Modified Date has been modified since the last ‘pull’ has occurred.

There are two Flow rules that require setup to help with this process.

Contact Id Lookup

A unique addition to the Salesforce sync is on import, Engaging Networks first utilizes the Contact’s Id to check for existing supporters. If a match is found, the supporter will be updated.

A good use case for this use is a Contact Email update.

Supporter A and Contact A are linked and have the email address supportera@email.com

Updating Contact A’s email address to contacta@email.com will update Supporter A’s email address in Engaging Networks.

Engaging Networks sees Email Address as the unique identifier.

If Contact B does not yet exist in Engaging Networks (or Contact Id does not match an existing supporter) then their Email Address will be used as the next identifier.

Merging Supporters and Contacts

Automatic merging to Engaging Networks from Salesforce can be facilitated by enabling the 'Reflect merges done in Salesforce' setting under Sync Settings.

Please note that a maximum of manually merging two Contacts is currently supported, and your account must be running a package higher than version 1.32. Merges done inside Engaging Networks will not be reflected as Salesforce is seen as the database of record.

For manual merges outside of this setting, it's advisable to first merge supporters in Engaging Networks and then merge the corresponding Contacts in Salesforce. It's crucial to ensure that the correct Contact Id and Supporter Id is retained on the Engaging Networks supporter's record.

Common Errors

“INVALID_CROSS_REFERENCE_KEY:invalid cross reference id:–“

The supporter in Engaging Networks has an invalid Id stored in Contact Id. Clear out the Contact Id via Lookup Supporters or replace with valid Id from Salesforce.

“FIELD_CUSTOM_VALIDATION_EXCEPTION:Failed to create Account for Contact Jim Tester. Use one of these records?:–“

For initial integrations, be sure that ‘active’ Contact segments are brought over to Engaging Networks, prior to launch. This will reduce the need for Engaging Networks creating new Contacts.