Last week FuseIT released an S4S upgrade for Sitecore 9.3. This post is a commentary on the changes and other S4S updates in 2020.
Changed updates to converted leads
There are a few challenges to updating a Salesforce lead via the API:
- Lead may have been deleted
- Do we create a new lead? Yes
- Lead may have been converted to a contact
- Do we update the contact instead? Yes
- Lead may have been converted to a contact and the contact deleted
- Do we create a new lead?
- Do we create a new contact? Yes
- Do we do anything?
The new logic, embodied in the Sitecore Form Save Action, queries the Salesforce lead record for the Lead.IsConverted field to determine what to do next. As seen above, the next action will either be, create a new lead, update an existing contact, or create a new contact.
Email click-throughs in Sitecore and Salesforce
This new feature solves a common problem of syncing email recipients in Sitecore, Salesforce, and email automation solutions like Pardot, Salesforce Marketing Cloud, Marketo, and Eloqua. The solution is to auto-create a cross-system identifier in Salesforce then share it with the other systems. In email click-throughs, the id is passed to Sitecore as a query string parameter and used to identify the correct xDB contact. This enables S4S to push Sitecore analytics to Salesforce leads/contacts even if they have not completed a Sitecore form to identify themselves to Sitecore. Read more about this in Perspectives.
Allow Duplicates to be created in Salesforce
Some customers want duplicate leads or contacts to be created when Sitecore web forms are submitted to Salesforce. This is accommodated by the "Always Create Salesforce Object" checkbox in the S4S Forms Mapping Wizard. This release introduced the config, "S4SMapping.EnableDuplicateAllowSave" to override Salesforce Duplicate rules.
Sitecore Analytics Bulk Updater Changes
The bulk updater now only updates the last sync date if there was no error during the update. The updater will now sync Sitecore analytic records which have been updated since the last successful run. It is no longer necessary to manually reset the last sync date before the error occurred to retry syncing.
You can now specify which Salesforce Org is updated by the bulk updater. The Orgs that need to be updated can be listed in the new S4S.Analytics.BulkUpdateConnectionStrings configuration setting in S4SAnalytics.config with multiple connections being separated by a vertical bar or pipe ( | ).
S4S Web Service Security
Web service security has been improved to include API keys. The new release requires an API key to be stored on the Sitecore web server, for each web service, and in the corresponding S4S Salesforce packages. A GUID needs to be generated and set in the ‘Web Service API Key’ field of the Salesforce package custom setting and also saved into the appropriate configuration in Sitecore. For the S4S analytics web service, this is the S4S.Analytics.ApiKey configuration setting in S4SAnalytics.config and for the S4S personalization web service, this is the S4S.Personalization.ApiKey configuration setting in S4SFacets.config. The web services can be configured to use different keys or the same key can be used for both. By default, the web services require the API key to be configured for them to work.
Web service security has been improved to optionally include the use of client-side certificates. A certificate can now be generated in Salesforce and imported into the Sitecore web server. The Salesforce packages can then be configured to use the certificate in the call to the web services.
S4S Personalization Salesforce Package
The new S4S Personalization Salesforce package includes a bug fix. When trying to create a new profile and changing the profile before saving, the corresponding pattern cards and profile keys were not being displayed correctly. Now when creating a new profile the pattern cards and profile keys displayed on the screen match the currently select profile. Note this package should be compatible with previous versions of S4S from 2.900.18222.3 and above. For these versions, a GUID needs to be added to the new ‘Web Service API Key’ field of the Salesforce package to enable the callout to the web service.
S4S Now Packages
The S4S Now Salesforce package lets sales operators identify and seize Sitecore web sessions during sales or support calls. An associated Sitecore package installs a control that shows each visitor a unique session number link, usually made visible in the page footer. During sales conversations, the visitor tells the sales operator the unique number which allows the web session to be identified in Salesforce.
Operators in Salesforce can personalize the live session or redirect the visitors to any URL if the visitor clicks on the unique identifier link. A new S4SInfo facet field is used to store the redirect URL.
Form Mapping Wizard Failure Support
Sitecore forms can be mapped to Salesforce using the S4S Mapping Wizard. If Salesforce goes offline or becomes unavailable for any reason, important web form submissions could be lost. To mitigate this, recent S4S releases can capture form submission errors and, with the form field values, send an email to a nominated email recipient.