Salesforce Sync

Updated 

The Salesforce Sync action node enables you to send data from a Sprinklr workflow back to Salesforce. This is particularly useful for updating Salesforce records with details such as survey distribution status or responses.

This action can be used in the following scenarios:

  • Salesforce Outbound Message workflows: To send back static values or status flags based on delivery outcomes (e.g., Delivered, Quarantined, Failed).

  • Survey Response Event workflows: To send back dynamic data, including profile fields, transaction details, survey responses, and related metadata (such as response status or expiry date).

You can refer to the Survey Workflow Overview report to get further details.

Prerequisites

This feature is generally available as part of CFM. No specific permissions are required to access this node.

How it works?

  1. The Salesforce Sync node can be added to a workflow triggered by:

    • Salesforce Outbound Message.

    • Survey Response.

  2. Salesforce Outbound Message Event:

    • Can only sync static text or workflow variables.

    • Best suited for flag updates (e.g., "Survey Sent Successfully").

  3. Survey Response Event: Can sync dynamic values like:

    • Survey Responses

    • Response status (e.g., “Responded”), based on ‘Survey Distribution Status’ node.

    • Survey metadata (e.g., survey expiry).

    • Profile and transaction field values.

Note: Use a branching or decision box to control what values get pushed back depending on delivery or response status.

Connected Salesforce Account:
Ensure a valid Salesforce account is connected via the Salesforce Connector module before using this node.

Navigate to Salesforce Sync Action

Add an action within your CFM workflow:

  • Add an action.

  • Click on Salesforce Sync.

Step 1: Account Setup: Salesforce Environment

  1. From the dropdown, select an existing connected Salesforce user. This user must have:

    1. Write Access to the relevant Salesforce objects.

    2. Already been connected through the Sprinklr Marketplace ('CFM - Salesforce' App).

  2. To add a new user:

    1. Click the dropdown → Click + Salesforce Account.

    2. You'll be redirected to the Sprinklr Marketplace.

    3. Select the CFM Salesforce app.

    4. Complete the authorization flow with the new Salesforce user.

    5. Once added, return to the original page and click refresh – the new account will appear in the list.

    6. Once you select a connected Salesforce user account, you’ll see Connector Details like, Connector Name and Salesforce Environment Type.

Step 2: Configure Sync Action

You will now see two options:

  1. Create New Object: To create a new record in Salesforce.

  2. Update Existing Object: To update an existing record.

Select Salesforce Object

  • You will see a list of objects (standard + custom) that the selected user has access to:

    • Standard: Account, Case, Lead, etc.

    • Custom: Any custom object defined in your Salesforce instance

Note: If new fields or objects have been added in Salesforce after account connection, click Refresh to sync the latest schema.

Field Mapping: Create New Object

  • Once you select the object, a field mapping screen appears.

  • On the left side, choose the Salesforce field you want to populate.

  • On the right side, select:

    • A Sprinklr field , or

    • Enter a static value directly (no quotes required)

      e.g., Type Invitation Sent, not "Invitation Sent".

Field Mapping: Update Existing Object

  1. Mandatory:

    1. You must map the Record ID to identify which record in Salesforce to update.

    2. Choose the field in Sprinklr that stores this ID.

  2. Remaining Mapping:

    1. Proceed to map any fields you want to update:

    2. Left: Salesforce field to be updated.

    3. Right: Sprinklr source field or a static value.

Salesforce Sync: Outbound Message Event vs. Response Event

The Salesforce Sync node behaves differently depending on which event is used to trigger the workflow. Below is a breakdown of how it works for the two main use cases:

Aspect

Survey Response Event

Salesforce Outbound Message Event

Direction of Sync

Survey Response (trigger event) → Sprinklr → Salesforce

Salesforce (trigger event) → Sprinklr → Salesforce

Common Action

Usually Update Existing Object (update records in Salesforce)

Can Create New Object or Update Existing Object

Record ID Location

Stored in profile or transaction fields in Sprinklr (must be provided)

Available in Current Workflow Object Fields (from Salesforce outbound message)

Typical Use Case

Sync survey responses, expiry date, static strings, or internal data back to Salesforce records

Updating a Salesforce record with survey status

Risk of Infinite Loop

Low (originates inside Sprinklr)

High if sync triggers Salesforce updates that trigger outbound message again

Salesforce Sync in Salesforce Outbound Event

  • Use “Current Workflow Object Fields” to fetch the Record ID.

  • If using a standard object, the field name typically appears as: Object Name ID(e.g.,Case ID).

  • If using a custom object, the field is generally named Record ID.

  • Best used when syncing immediately after a Survey Distribution is triggered, for example, to update the survey status in Salesforce.

    • Use the Survey Distribution Status condition box to branch workflows and send different values based on delivery status (e.g., Sent, Quarantined, Failed, Not Sent due to Opt-Out, etc.).

  • When entering static values (like status labels), type the text directly into the input box:

    • Do not use quotation marks (" ").

    • Example: Enter Invitation Sent, not "Invitation Sent".

Salesforce Sync in Survey Response Event

  • Use a Profile Field or Transaction Field that stores the Salesforce Record ID to identify the record.

  • When entering static values, type the string directly into the input box:

    • Do not use quotation marks (" ").

    • Example: Enter Response Received, not "Response Received".

  • Alternatively, use dynamic values by selecting a field from Sprinklr, such as:

    • Survey Question Response

    • Contact Fields

    • Profile Custom Fields

    • Response Custom Fields

    • Response Date

    • Transaction Fields

    • Response Metadata → Survey Response ID

How to use it?

The Salesforce Sync action node is used in workflows to push data from Sprinklr back into Salesforce, ensuring your CRM always has the latest status, metadata, or survey responses captured in Sprinklr.

You can use this node in two types of workflows:

  1. Salesforce Outbound Message Workflows

    1. Common Purpose: Update Salesforce with delivery status (e.g., whether a survey was successfully sent).

    2. Steps:

      1. Trigger: Salesforce sends an outbound message to Sprinklr.

      2. Sprinklr processes the event and optionally creates a profile/transaction.

      3. Salesforce Sync node sends a static message or a flag (like "DELIVERED" or "FAILED") back to a field in Salesforce.

        Use Case Example

        A B2B company sends feedback surveys after every support interaction. If the survey fails to send due to an invalid email or contact method, Sprinklr updates a custom field Survey_Status__c in Salesforce as “FAILED,” allowing the support team to follow up manually.

  2. Survey Response Event Workflow

    1. Common Purpose: Update Salesforce when a user completes a survey or when a response status changes.

    2. Steps:

      1. Trigger: A user completes or partially completes a survey.

      2. Sprinklr extracts data (Record ID) from the response and related profile/transaction.

      3. Salesforce Sync node pushes this data back to the relevant Salesforce record.

        Use Case Example 1:

        A retail brand collects Net Promoter Score (NPS) from post-purchase surveys. When a user submits a survey, their score and feedback are pushed to Salesforce, updating fields like NPS_Score__c and Customer_Comment__c on the related Contact record.

        Use Case Example 2:

        A healthcare provider sends appointment satisfaction surveys. If a user doesn’t respond within 5 days, a Survey Response Event triggers a workflow that sets Survey_Status__c to “Expired” in Salesforce. This helps customer service prioritize follow-ups.

Common Actions in the Node

When configuring the Salesforce Sync node:

  • Select the connected Salesforce account.

  • Choose the Salesforce object and record to update.

  • Map Sprinklr fields (e.g., profile fields, transaction fields, or workflow variables) to the desired Salesforce fields.

  • Test the flow using real or simulated events to confirm correct field mapping and updates.

The feature can be tested in the following way:

  1. Add Actions and Conditions: Set up all relevant nodes and define logic paths.

  2. Verify in Salesforce:

    • Check that the target fields have been updated.

    • Use Salesforce's field history tracking or reports to confirm.

  3. Test Failures: Simulate scenarios where:

    • The Salesforce field is locked or read-only.

    • The user lacks permissions.

    • The record doesn’t exist.

Key points to note:

  1. Field Permissions: The connected Salesforce user must have write access to all the fields and the records being updated.

  2. Dynamic Field-Level Governance: Field writability access to the connected may depend on the current value of that field.

  3. Rate Limits: High-volume workflows may exceed Salesforce API rate limits.


FAQs

Yes, provided the connected Salesforce user has permission to write to those fields.

The node will fail silently; backend logs can be used to identify failures.

Yes, using the Survey Response Event workflow and Salesforce Sync node.

  1. Several reasons can prevent a successful sync from Sprinklr to Salesforce. Below are the most common causes and examples:

    1. Field-Level Write Restrictions

      1. The connected Salesforce user doesn’t have write access to the target field.

      2. Example:

        A field like Lead Status is set to read-only through field-level security, or it's not exposed in the API-enabled layout.

    2. User Permission Issues

      1. The Salesforce user integrated with Sprinklr lacks sufficient permissions to write to the required records or object.

    3. Salesforce API Rate Limits

      1. Salesforce may enforce daily and concurrent API call limits based on the license tier of the customer

    4. Record Not Found

      1. The record ID passed from Sprinklr doesn’t exist in Salesforce or was deleted.

    5. Invalid Field Values

      1. The value passed does not meet the formatting, datatype, or validation rules of the Salesforce field

      2. Examples:

        1. A non-date value like "Tomorrow" is passed to a Date/Time field.

        2. A typo "Inprogres" is passed to a Picklist field expecting "In Progress".

        3. A Checkboxfield expects true or false, but receives "yes".

    6. Field Validation Rules

      1. Salesforce has custom validation rules that reject updates under specific conditions.

      2. Example:

        A rule blocks any change to the Status field unless the Lead Source is "Web"

        , if Sprinklr passes an update without this condition, the sync fails.

    7. Required Field Missing

      1. The Salesforce object enforces required fields which were not passed in the sync.

      2. Example:

        While updating a Lead record, the Company field is required and missing in the payload.

    8. Record Locking Conflicts

      1. The record in Salesforce is temporarily locked due to another concurrent process.

      2. Example: A Salesforce flow or process builder is updating the same record at the time of sync.

    9. Wrong Object Mapping

      1. Syncing to the wrong object or object ID due to misconfiguration.

      2. Example:

        Trying to update a Lead using an ID that actually belongs to a Contact.

    10. Unsupported Field Types or Custom Metadata

      1. Some Salesforce fields (e.g., encrypted, formula, or calculated fields) cannot be updated externally.

      2. Example:

        Attempting to update a Formula Field like Full Name = First Name + Last Name will silently fail.