Salesforce Integration

In this article:

Setting up the Salesforce integration:


Suggested next article: The Embed Platform: Embedding Surveys in your Emails.

Salesforce integration overview

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

1 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
2 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
3 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. 

Key benefits of the Delighted Salesforce integration . . .
1 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
2 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
3 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)
4 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
5 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 three best practices to make your Delighted integration seamless:

1 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
2 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.
3 Be aware of any workflows or restrictions  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 the "Salesforce" tile
Click “Connect & 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” → seen 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” → and 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

Embedding Delighted CX projects into Salesforce Marketing Hub emails

Skip a step! 

Seamlessly embed Delighted surveys in your Salesforce Hub emails and collect valuable customer feedback on the spot. Embedding can improve response rates and streamline the user experience.

Add fully customized Delighted surveys with a few clicks — no coding needed! 


Request your survey's HTML code

Email us to request your project's HTML. Let us know which project you'll be using by finding the project's name in your dropdown menu.
Important: Make sure you’ve set up the Link platform – which provides us with your survey’s HTML code with all of your specific customizations and properties.

Add the HTML to Salesforce

Add the survey to your email survey by pasting in the HTML we'll share over. 

Deanonymize feedback using properties

By default, your embedded surveys will be anonymous.

However, you can append information like email addresses or purchasing data by appending those details to the end of your survey links within the HTML. See Passing properties with the Link platform.

Note: Learn more by reading the full article: The Embed Platform: Embedding Surveys in your Emails

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 projects with one Salesforce instance?


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

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

With this configuration, individual contact records in Salesforce will carry information about which project the response is tied to. You’ll be able to easily create downstream reports or workflows on a project-by-project 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 project a response came from in Salesforce?

Currently, the best way to tell which project a response is tied to is to pass a property called "Project 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

How can I connect to a Sandbox Salesforce account?

To connect to a Salesforce Sandbox account, navigate to instead of using the Salesforce integration link in-product.

Back to top

Still need help? Contact Us Contact Us