The Salesforce Integration

In this article:

Setting up the Salesforce integration:


Salesforce integration overview

Delighted’s Salesforce (SFDC) integration offers the ability to:

  • Trigger Delighted surveys: Automatically send an email survey to a customer, based on activity in Salesforce. These triggers can be one of our presets—like a contact being updated, or custom workflows built directly in your Salesforce instance.
  • Sync response data to contacts: Automatically sync response data to matching contacts in Salesforce. When syncing feedback, you’ll be able to see a contact’s most recent score, comment, response timestamp, and any properties passed over with the survey request.
  • Sync response data to the account level: Automatically roll response data synced to contacts up to the account level in Salesforce.

Premium integration

Salesforce is a premium integration limited to specific plan levels. For more information, see our Pricing page.

Back to top

Advantages of the Salesforce integration

Delighted’s Salesforce integration can help drive workflows and serve as the foundation for custom reports. Here are some of the key benefits of the integration:

  • Consolidate your dashboards: Syncing data from Delighted to Salesforce in real-time ensures that you’ll have both feedback and existing SFDC data in a single location, allowing you all the necessary data right at your fingertips.
  • Enable workflows and automation: Our integration pushes over all the response data—from scores to timestamps—to your Salesforce instance. As Contact records are updated with new feedback, consider leveraging Workflows and/or Apex Triggers to automate processes based on freshly synced Delighted responses.
  • Allow for custom reporting: Generate reports that focus on Delighted response data, or draw on a blend of Delighted data and existing SFDC data (ex. tracking NPS over time, highlighting NPS in conjunction with other metrics like MRR).
  • Help identify customers prior to churn: Delighted's Salesforce integration syncs scores in real-time to set the foundation for quick follow-up with dissatisfied customers before they call it quits.
  • Help identify customers for upgrades: Positive feedback can be a strong indicator of customers interested in additional product offerings, upgrades, cross-selling opportunities, and added MRR.

Back to top

Best practices when using the Salesforce integration

Below are a few of the best practices to make your Delighted integration seamless:

  • Verify your Salesforce edition: Not all Salesforce editions include use of the API. Check Salesforce’s Trailblazer Community page to confirm that your edition/API is supported.
  • Install the integration with a generic user: User account changes, security updates, or adjustments to access-related settings in Salesforce can result in expired access and token-based issues. To sidestep this issue completely, consider installing the integration while signed in as a generic user (ex. vs.
  • Be aware of any workflows or restrictions: When setting up the integration, be sure to clear any workflows or configurations in Salesforce that would restrict updating of Contact records. There is a potential to encounter issues when running the sync if you’re triggering flows off of Delighted objects/fields or have custom configurations that require specific conditions be met before updating a Contact record.

Back to top

Setting up the integration package (required)

No matter whether you’re syncing responses back to Salesforce, triggering survey sends, or both, you’ll need to start by installing the Delighted integration package in Salesforce.

In Delighted, head to the "Integrations" tab and choose Salesforce.
Click “Connect and turn on.”

You’ll be redirected to Salesforce. If prompted, enter your login credentials.

Authorize the Delighted connection and click “Install” to complete. We recommend installing for All Users. You can click on “View Components” to see what data we’ll be syncing over.

Approve third-party access and let the install complete.

Back to top

Syncing responses to Salesforce

The Salesforce integration works by syncing response data in three phases:

  1. Response is received in Delighted: After this, we wait 10 minutes so that the respondent has time to add a comment.
  2. We search for a matching Contact record in Salesforce: By default, we will look to match by email address. However, if you include the property salesforce_contact_id, we will sync based on that Contact ID.
  3. Feedback is synced to the matching Contact: Feedback is synced in two ways—the most recent score left by that respondent will flow into a Custom Field, while any other details that you want included (from the response timestamp to the property data you sent with the survey request) will be synced to a Related List.

There are a few components required to facilitate the integration between Delighted and Salesforce:

  • Custom Fields: Each field is designed to show an aspect of the Delighted response within Salesforce. For example, Timestamp will show the exact timestamp the response received within Delighted. Delighted’s Custom Fields are great components to pull in for any custom reporting you’re doing within Salesforce.
  • Apex Class/Triggers: Apex components are required for Delighted to interact with the Salesforce API because they power the syncing action. 
  • Custom Objects: Custom Objects are like the parent of your Custom Fields. For example, the “Delighted Response” Custom Object contains all related Custom Fields for the package (ex. Comment, Permalink, Properties, etc.). If you’d like to find the API name for each of the Custom Fields for the Delighted package, the Custom Object is a great place to locate them.
  • API Access: Syncing data from Delighted to Salesforce requires making calls to the Salesforce API. We make about 6 HTTP requests to the Salesforce API for each survey response.

Within each Contact record’s Related List, you’ll see all responses provided by that respondent.

You can also find all Delighted response data under the “All Tabs” section for “Delighted Responses.”

Back to top

Setting up the response sync

Once the Delighted integration package has been installed, you’re ready to enable the response data sync! To do this:

In Delighted, head to the Integrations page and choose Salesforce.
Check the box to Sync responses to contacts and accounts.
Save your changes.
Configure the contact layout (details below).
Configure the account layout (details below).

Configuring the contact layout

Go to Salesforce and log in.

Head to any available Contact record.

Click “Edit Layout” on the top right-hand corner of the page.

Drag and drop the Last Delighted Response field to your Contact record.

Drag and drop the Delighted Related List to the Related List section of your Contact record.

Optional: Edit your Related List to reorder where the Delighted information appears in your Contacts.

Save your changes.

Configuring the account level layout

If you'd like to have your Delighted feedback roll up to the account level, follow the steps for the Contact layout, but on the account level! This will display an account-level score based on feedback from the contacts associated with that account.

Back to top

Testing and troubleshooting the sync connection

Once you set up the sync, you may want to test your connection or may have a need to troubleshoot the connection.

Testing the connection

To test the integration, you’ll want to create a contact in Salesforce with an email address that you have access to and send a Delighted survey to that email. Then, confirm that the response data was synced correctly.

From the main Salesforce page, click the “+” icon in your navigational menu (next to “Subscriptions”).
From the All Tabs page, click on the link for “Contacts.”
On the Contacts page, click “New” (often under the Recent Contacts field).
Enter the Contact details, including the email address to send the survey (choose one that you have access to for testing purposes).
Click “Save.”
Head to Delighted and click “Survey people.”
Click “Survey people” under the Email platform.
Enter the test email address.
Click “Next: Review.”
Click “Send immediately.”
Check your email and respond to the survey.
Note: the throttle period will apply to this email survey, so be sure to reach out to get that throttle disabled for testing or use an email that you haven't sent to yet.
Wait approximately 10 minutes for the default delay to pass, then check the Salesforce Contact record to see your test response data synced over!

Troubleshooting the connection

If you need to troubleshoot Delighted-SFDC syncing:

  • Consider the delay: While we delay syncing for 10 minutes, we recommend waiting 30 minutes to sync over as there may be other concurrent activity in your SFDC instance that is slowing API activity.
  • Confirm the email address: Be sure that the email on the Contact record exactly matches the email listed on the Delighted response. 
  • Confirm the Contact record: We only sync to the Contact records (versus Person Accounts, etc).
  • Try a hard reset: If all the above looks correct and you’re still not seeing data sync across, try running a hard reset by: 
    Turning off the SFDC integration in Delighted.
    Removing the integration from Delighted.
    Removing the Delighted package from SFDC.
    Reinstalling the integration again via Delighted.

If you’re still having issues with the integration after reviewing the above, contact our Concierge Team!

Back to top

Triggering surveys from Salesforce

The Delighted Salesforce integration allows you to automatically trigger surveys based on either standard triggers that are preconfigured in Delighted, or based on custom triggers that you can set up in your Salesforce instance.

Currently, the Salesforce integration supports triggering based on the following Entities:

  • Account
  • Case
  • Contact
  • Opportunity

Read more about triggering surveys from Salesforce below, or skip ahead to learn how to set up preset triggers or custom triggers.

How does Delighted determine which Contacts on an Account are surveyed?

For Account and Opportunity, by default, we’ll trigger a survey only to Accounts with 2 or fewer Contacts. In those instances, we’ll trigger a survey to all Contacts on the account or opportunity. If an Account has 3 or more Contacts, we will not dispatch the survey.

Alternatively, you can use the Custom Field setting to specify the exact contact we should survey. Note that if a Custom Field has been set up to identify the Delighted survey contact, the survey will send to that contact, regardless of how many contacts are on the account.

To set up the survey contact:


Go to Object Manager in Salesforce.


On the following page, click on "Account."


Click on "Fields & Relationships."


Click on “New.”


Click on “Lookup Relationship.”


On the next page, click on “Contact” for the “Related To” drop-down menu.


Configure the "New Relationship" fields as shown below:

  • Field Label: Delighted Survey Contact
  • Field Name: x_DelightedInc_Survey_Contact
  • Description: Which contact should be surveyed in Delighted for Account level triggers (e.g. Opportunity, Account)?
  • Help Text: Which contact should be surveyed in Delighted for Account level triggers (e.g. Opportunity, Account)?
  • Child Relationship Name: Accounts
  • Required: Leave unchecked
  • What to do if the lookup record is deleted? Leave checked as “Clear the value of this field. You can't choose this option if you make this field required.”
  • Lookup Filter: Nothing required

This should look like:


For “Step 4. Establish field-level security for reference field”, configure permissions as needed.


For “Step 5. Add reference field to Page Layouts”, add to all page layouts on an Account level.


For “Step 6. Add custom related lists”, add to all Related Lists.


Click “Save.”

The field is now available on your Account layout to select one specific Contact to be surveyed.

Back to top

Properties passed when triggering surveys

The properties that are automatically passed to Delighted depend on which object in Salesforce is used as the trigger for survey sends. See below for the complete list of properties based on each object—this list applies whether you are using preset or custom triggers.

Triggered by Case

  • sfdc_case_id:
  • sfdc_case_created_date:
  • sfdc_case_status:
  • sfdc_case_closed:
  • sfdc_case_owner_id:
  • sfdc_case_owner_name:
  • sfdc_case_origin:
  • sfdc_case_priority:
  • sfdc_case_subject:
  • sfdc_case_number:
  • sfdc_case_account_name:
  • sfdc_case_account_id:

Triggered by Account

  • sfdc_account_name:
  • sfdc_account_owner_id:
  • sfdc_account_owner_name:
  • sfdc_parent_account_id:
  • sfdc_account_industry:

Triggered by Opportunity

  • sfdc_opportunity_id:
  • sfdc_opportunity_name:
  • sfdc_opportunity_closed:
  • sfdc_opportunity_won:
  • sfdc_opportunity_stage:
  • sfdc_opportunity_amount:
  • sfdc_opportunity_expected_revenue:
  • sfdc_opportunity_forecast_category:
  • sfdc_opportunity_close_date:
  • sfdc_opportunity_lead_source:
  • sfdc_opportunity_contact_id:
  • sfdc_opportunity_account_id:
  • sfdc_opportunity_owner_id:
  • sfdc_opportunity_owner_name:
  • sfdc_opportunity_account_name:

Triggered by Contact

  • sfdc_contact_id:
  • sfdc_contact_name:
  • sfdc_contact_lead_source:
  • sfdc_contact_owner_id:
  • sfdc_contact_owner_name:
  • sfdc_contact_department:
  • sfdc_contact_account_id:
  • sfdc_contact_account_name:

It is not possible to pass custom properties when triggering your survey from within Salesforce.

Back to top

Setting up preset triggers

Delighted’s Salesforce integration includes a handful of Standard Triggers (preset triggers), which include the following events:

  • Account Created
  • Case Created
  • Case Closed
  • Contact Created
  • Opportunity Created
  • Opportunity Won
  • Opportunity Lost

Important details

  • For Case and Contact, we’ll dispatch the survey to the Contact associated with those entities.
  • For Account and Opportunity, by default, we’ll trigger a survey only to Accounts with 3 or less Contacts. If an Account has more than 3 Contacts, we will not dispatch the survey. If you need to trigger a survey to an Account or Opportunity that has more than 3 associated Contacts, please check out Triggering surveys from Salesforce for details on sending based on a Custom Field added to the Account.
  • You cannot create duplicate triggers (ex. You can only have one “Account Created” trigger)
  • If using an Account Created trigger, be sure to select a delay that is not Immediate, as that will give the system time to look-up any Contacts that are associated with the Account after it is created. The exception here is if you set a Custom Field on the Account when creating it. (More on this in ‘How does Delighted determine which Contacts on an Account are surveyed?)

How to set up


Click on “Trigger surveys from Salesforce activity.”


Click on “Use standard triggers” and then “+ Add a new trigger.”


Select your preferred trigger and delay.


Click on “Save changes” to register the updated settings.

Back to top

Setting up custom survey triggers

Custom Triggers allow you to define the exact rules regarding what triggers a Delighted survey. Using a combination of Flows and Outbound Messages, you can define specific conditions for triggering surveys—all directly within your Salesforce instance.

We currently support the creation of Flows and Outbound Messages for:

  • Accounts
  • Cases
  • Contacts
  • Opportunities

Important Details

  • Be sure that the Outbound Message and Flow are both built around the same entity (ex. Case, Account, etc.)
  • If you’re testing and need to be able to send a survey to the same contact more than once a week, send us a note and we can help reduce the throttle period while you test

How to set up


Click on “Configure custom triggers on Salesforce.”


Copy the URL shown underneath “Your Salesforce outbound message target URL” by clicking the icon to the far right of the URL.


Head to your Salesforce instance.


Go to your Outbound Messages section.


Create a new Outbound Message.


Select the Object associated with your Outbound Message. (Note: This must be either Account; Case; Opportunity; or Contact).


Edit the Outbound Message:

  • Name: Name the message whatever you’d like! We recommend “Delighted Outbound Message”
  • Unique Name: This will auto-fill after completing the Name field. You can leave as-is
  • Description: Include detail to help you recall the intent of this message, something like “Used for calling the Delighted API”
  • Endpoint URL: Paste the URL from Step 2 above, or jump back to your Delighted Salesforce page to grab that URL again
  • User to Send As: Leave this as the default selection
  • Protected Component: Leave this as the default selection (unchecked)
  • Send Session ID: Check this box
  • Fields to Send: Leave this as the default selection


Click “Save.”


Head to your Flows.


Click on “New Flow.”


Choose “Record-Triggered Flow” and click “Create.”


Configure the Start settings:

  • Object: This must be either Account; Case; Opportunity; or Contact and must match the Object selected in Step 6
  • Trigger the Flow When: Choose what type of event should trigger the flow, like a record being created
  • Condition Requirements: This is where you’ll add the custom conditions that will trigger your Delighted survey send, such as a Contact being updated with a “Subscriber” field. This can be configured as you prefer—no requirements on the Delighted side!
  • Optimize the Flow for: Choose “Actions and Related Records”
  • Leave “Include a Run Asynchronously path...” unchecked


Click “Done.”


Click the “+” button below the Start event you just created.


Search for the Outbound Message you created in Step 8 (likely named “Delighted Outbound Message”) and select it.


Configure the Action settings:

  • Label: Name this something you’ll recognize, like “Send Delighted Survey”
  • API Name: This will be auto-generated; you can leave it as-is
  • Description: Add details about the survey trigger, if you’d like—nothing required here!


Click “Done.”


If you’d like, you have the option to add other steps to your Flow. Read more about the Flow Builder in the Salesforce documentation here.


Click “Save” and configure your Flow settings:

  • Flow Label: Name your Flow, something like “Send Delighted Survey after Contact Created”
  • Flow API Name: This will be auto-generated; you can leave it as-is
  • Description: Add details about the Flow, if you’d like—nothing required here!


Click "Save."


Click "Activate."

You’re all set! Your Custom Trigger is now up and running!

Back to top

Where can I find the Delighted package in Salesforce?

If you or your team needs to review the Delighted components further, such as grabbing a custom field name for reporting purposes, follow the  steps below:

From your main SFDC dashboard, use the Quick Find function and type in Installed.
Once you see the InstalledPackages, click through that link.
On the Installed Packages page, find the package with the Package Name of Delighted and click through that link.
On the following page, click on the View Components button to reveal all components related to the package.

Back to top

Can I integrate multiple Delighted Templates with one Salesforce instance?


Each Template is independent, so you’ll need to set up the integration for each desired Template.

Keep in mind, however, that when a response syncs from Delighted to Salesforce, we won’t automatically mark which Template it has come from. Instead, consider including a property called ‘TemplateName’ in each scheduled survey. The value of this property should match the name of the Template as it’s configured in Delighted.

With this configuration, individual contact records in Salesforce will carry information about which Template the response is tied to. You’ll be able to easily create downstream reports or workflows on a Template-by-Template basis.

Back to top

What versions of Salesforce are supported?

Delighted's Salesforce integration works on both Salesforce Classic and Salesforce Lightning instances.

Back to top

How can I tell which Template a response came from in Salesforce?

Currently, the best way to tell which Template a response is tied to is to pass a property called "Template name" when scheduling your survey to send. This property will sync back to Salesforce with the rest of your survey properties!

Back to top

How can I convert custom triggers set up with Workflow Rules into Flows in Salesforce?

To learn more about migrating your Workflow Rules to Flows, visit the Salesforce help center here.

Back to top

Still need help? Contact Us Contact Us