Our native Salesforce integration allows you to synchronize any customer information and customer feedback stored in your Salesforce instance.

You can configure which objects to sync, and in what way. The integration periodically checks for new records in your account and sends them to EnjoyHQ.

This integration is different from other ones we offer. It is installed and managed within your Salesforce instance and may not operate as expected based on your ogranization's Salesforce configuration.
The EnjoyHQ-Salesforce integration is awaiting a ground-up refactor. You may experience instability and poor performance based on your current Salesforce configuration. Please reach out to for more information.
Customers on Salesforce Enterprise (and above) plans can install the integration.


In order to install the Salesforce application you have to have administrator privileges or you need to ask the administrator of your instance.

The installation consists of two parts.

Installing the Salesforce application

Follow THIS LINK to initiate installation of the Salesforce application. Current version is 1.1

If you installed previous version of the integration, branded as NomNom/NomNom you will have to uninstall it first.

Activate the option "install for all users" so that the integration settings can be managed by anyone after installation.

Confirm that you allow the application to send your user and feedback data to your EnjoyHQ account.

Once Salesforce confirms installation of the package you can move to the next step.

If the installation fails with the message "Missing Feature: Apex Classes" - it means that your edition of Salesforce is most likely on Salesforce Professional or Salesforce Lightning Essential plan and is not supported.
If the installation fails with the message about missing custom objects, please refer to this Salesforce support article - most likely there's a lingering old configuration in your Salesforce account which will need cleaning up by Salesforce's support.
Connecting Salesforce and EnjoyHQ accounts
We have recently changed our name from NomNom to EnjoyHQ so you might see the old branding here and there.

From within Salesforce, open the app launcher and select EnjoyHQ or NomNom (as that's the vendor name):

When active, navigate to the Authentication tab. From there you will find a handy link which will take you to your EnjoyHQ account where you can generate a new API key. Copy the key and input it in the form shown above.

When confirmed (as shown) you can configure what data to send to EnjoyHQ and how.

Setting up the data synchronization process

Historical data imports - once setup the integration will only synchronize data based on your active mappings, and only fetch new or updated objects based on your synchronization schedule (1 hour, a day etc)

Talk to your Salesforce administrator!

Before you get started with the setup of actual data sync, it's best to plan the following:

  • What data do you need? (feedback, customer attributes)
  • How is it stored in Salesforce? (Is it stored in standard objects like Cases, or are any custom objects used?)
  • How should it be sent to your EnjoyHQ account (do you need to send only selected customer attributes, raw feedback, etc)

At this stage is best to involve your Salesforce administrator (if that's you, reading this, hello! 👋), as they will know everything about your current setup.

Our recommended approach is to create custom objects with only the data that you need to sync to EnjoyHQ, via cross-object formulas and similar tools. While our integration supports pulling attributes of related objects, it's usually better to limit choices to improve performance and access control.

Synchronizing customer information and customer feedback

Being a CRM - Salesforce stores a lot of information about your customers. You can not only fetch data about your contacts, but also include data about their parent objects, such as accounts.

Based on our experience, we suggest creating custom objects or formula fields dedicated for synchronizing with your EnjoyHQ - this way your core objects will not be scanned as often and can be changed independently as well as you can guarantee that only the data you need is fetched and synchronized into your account. Your Salesforce admin can help you with the setup!

Once object mappings are configured, the integration will check for new or updated records in your Salesforce instance and send them to your EnjoyHQ account. You can set the schedule interval in the "Settings" tab.

Fetching customer data

Here's an example mapping of Salesforce Contacts to EnjoyHQ's Customer (User) data, which will be visible in the document's sidebar and people's tab. Just like other integrations - the data fetched from Salesforce will be merged with other data and associated with the feedback across all data sources in EnjoyHQ.

When a new mapping is created for the first time, the integration will fetch up to most recently updated records on the next scheduler "tick". From there it will synchronize any new or updated records added to your accounts on an hourly schedule (by default). If you want to perform the sync immediately click on the "Synchronize All Mappings Now" button - it will pick any configured object which changed within the last hour.

If you want to synchronize more historical data, you can update each mapped object's "updated at" timestamp field to trigger a bigger sync. Bear in mind, that your Salesforce instance needs to have enough resources to prepare the historical import (memory, scheduler capacity etc)

Here's an example mapping:

When creating a new mapping, it's best to tick the "is active?" checkbox. This means that after saving your mapping - the integration will fetch all existing records and send them to your EnjoyHQ account.

The UI allows you to pick the base object (in this example we use Contact) and map its attributes to EnjoyHQ user attributes. Additionally, you can select a parent object - in rows 3 and 4 we've picked couple of attributes present on the Account object, which has been set up as a parent of a Contact.

You can only map same objects once, meaning you cannot create multiple mappings for the same combinations of source and target objects. For example, only one mapping between Notes and Documents is allowed.

You always have to select the email field - that's how EnjoyHQ will be able to associate user data from different sources.

For company properties, we suggest prefixing all property names with "company." - that will ensure consistency in property naming.

Fetching feedback data

The most common scenario is to fetch call or task notes logged in Salesforce - these notes often contain feedback from your customers or leads.

Here's an example mapping:

When creating a new mapping, it's best to tick the "is active?" checkbox. This means that after saving your mapping - the integration will fetch all existing records and send them to your EnjoyHQ account.

The UI allows you to pick a base object (in this example we use Task) and map its attributes to EnjoyHQ document attributes. Additionally, you can select a parent object - in rows 6 we've picked the email address of associated Contact object - this will automatically associate feedback contained in the Task comment with a user in EnjoyHQ, just like the task is related to a contact in Salesforce.

You always have to select the content-body field - as that will form the content of your document.

Additionally, you can map other attributes as document's tags or properties.

Just like with User data - it will be refreshed every hour (by default) and synchronize new or updated records.

For more complicated objects you can also reference child objects, this can be useful when referencing agent notes in cases:

Select an object from "Child Objects" list and map it in a similar way to main document attributes. The comments will then appear under the main feedback content in EnjoyHQ.

How Did We Do?

Powered by HelpDocs (opens in a new tab)