Salesforce
Integrate Instruqt with Salesforce and choose among options to create new leads as well as enrich existent leads and contacts with track play information.
Overview
Learn how to easily connect Instruqt to Salesforce and configure options to enrich leads and contacts with play data such as:
Which tracks the user has played
Time spent in each completed play
Feedback provided (including comments).
Create and configure the Instruqt Integration User in Salesforce
Instruqt integrates with salesforce using a connected app. It's important to properly configure a Salesforce Integration User specifically for Instruqt and follow security best practices with the minimum access required to install and use the integration effectively.
Learn more about how the integration works and which custom objects are created in the Architecture section.
1. Create the Instruqt Integration User
Navigate to Setup → Users → New User
Fill in the following details:
Name:
Instruqt Integration
User License:
Salesforce Integration
Profile:
Minimum Access - API Only Integrations
Under Permission Set License Assignments, add:
Salesforce API Integration
2. Create a Permission Set for Installation
Navigate to Setup → Permission Sets → New
Fill in the following details:
Label:
Instruqt Integration
API Name:
Instruqt_Integration
License:
None
Configure Object Permissions:
Object Settings
Contacts
Object Permissions
✅ Read ✅ View All Records
Field Permissions:
Email:
✅ Read accessPhone:
✅ Read accessTitle:
✅ Read access
Leads
Object Permissions:
✅ Read ✅ Create ✅ Edit ✅ View All Records
Field Permissions:
Email:
✅ Read & Edit accessPhone:
✅ Read & Edit accessTitle:
✅ Read & Edit access
System Permissions
✅
Customize Application
✅
Modify Metadata Through Metadata API Functions
✅
View All Data
Manage Assignments
Assign the Instruqt Integration User to the permission set just created.
Enable the integration
Enabling the connection between Instruqt and Salesforce is easy and requires only a few steps:
Go to play.instruqt.com and navigate to the menu Settings > Integrations. ↳ The integrations page is displayed with the platforms enabled to your account.
Inside the Salesforce section click on Connect. ↳ The integration configuration modal is displayed.
Click again on Connect and select the desired account type (Production or Sandbox). ↳ A salesforce authorization pop-up or tab is opened. You might be required to log-in. The list of permissions required by the integrations is displayed. Learn more about the Required OAuth Scopes.
You need now to allow access to Instruqt via our subprocessor Paragon (check our subprocessor list for more information). Review the data displayed and click on Allow. ↳ The configuration modal on the Integrations page now displays the configuration of the workflows.
Make sure the first workflow, Match existing leads or contacts, is enabled. This workflow is necessary to link Instruqt plays to existing Leads and Contacts.
In most cases, it’s recommended to enable the second workflow, “Create Lead on Form Submission”, as well. This workflow is disabled by default because it requires additional configuration.
When enabling it, make sure to set the New Lead Status according to your preferences to ensure it’s properly configured.
Note: This workflow will not create duplicate entries if a Lead or Contact with the same email address already exists. ↳ Any change to the configuration is saved automatically.
Integration configuration modal Review all other workflows to match your preferences. ↳ The configuration is saved automatically.
All set! You can now close the modal. It might take a few minutes before the integration is live.
Adjust the Permission Set for Secure Access (Post-Installation)
Once the installation is complete, privileges must be granted to the newly created custom objects. To enhance security, it’s also recommended to limit the integration user’s access by following the principle of least privilege.
Object Settings Adjustments
Instruqt Plays
Object Permissions:
✅ Read
✅ Create
✅ Edit
✅ Delete
✅ View All Records
✅ Modify All Records
✅ View All Fields
Field Permissions:
✅ Read access to all fields
✅ Edit access to all fields
Instruqt Tracks
Object Permissions:
✅ Read
✅ Create
✅ Edit
✅ Delete
✅ View All Records
✅ Modify All Records
✅ View All Fields
Field Permissions:
✅ Read access to all fields
✅ Edit access to all fields
System Permissions Adjustments
❌ Remove:
View All Data
❌ You may also remove the following unnecessary global permissions required by
View All Data
:View Login Forensics Events
View Reports in Public Folders
View Event Log Files
View Dashboards in Public Folders
View Real-Time Event Monitoring Data
Visualize the data on Salesforce
Chatter
Out of the box the integration will send updates to the chatter section of both Leads and Contacts, including:
Track started by the lead / contact
Track completed by the lead / contact, including time spent until completion
Track score feedback, if provided
Track written feedback, if provided

Display Instruqt information as related lists on Leads and Contacts
Besides the chatter it's also possible to visualize the data with the custom object Instruqt_Play
in various ways.
One of the options is to displayed as dynamic related list, as described below.

Adding Instruqt plays to related lists
In Salesforce go to the settings from top right corner.
Go to Object Manager from left panel.
Find the Instruqt Play object and click on it.
Then click on the Fields & Relatioinship from left panel.
Click on the Lead property.
Click on the Set Field-Level Security and enable Visible to the profiles you want to be able to visualise Instruqt Plays (for instance: "Standard User" and "System Adminstrator") and click on Save.
Example of giving visibility to Standard Users and Administrators. Repeat the step above for every field you want to make visible for each profile. We advice to enable at least Lead, Contact, Instruqt Track, Feedback, Invitation link, Score and Time Spent.
Now that the field-level security visibility is correctly set we can add the Instruqt plays to the Lead and Contact pages layout.
Go to the leads page in Salesforce and open any lead. Click again on settings from top right corner.
Click on "Edit Page". In case you don't see that option you might need to contact you salesforce administrator.
On the left toolbar, under components, click on "Dynamic Related List" and drag it to the desired place in the layout.
Now configure your Dynamic Related List on the right, by changing the "Related List" field to "Instruqt Plays".
Scroll down "Related List Fields" section and click on the button "Add field".
Add any fields relevant to you. Here is as an example:
Selected fields: Description, Created Date, Time Spent, Feedback.
Click now on "Save" and followed by "Activate". Assign as Org or App default and choose between Desktop, Mobile or both as preferred. ↳ Done! You now have Instruqt data in your Leads. In case you are not able to visualize the dynamic related list after saving it, make sure you have set the Field-Level Security visibility properly to all fields you are using.
Repeat the process on a "Contact" page to add the Instruqt Plays as well.
You have now configured your salesforce to display Instruqt plays on both Leads and Contacts!
Summary of the Process
Create a dedicated Salesforce Integration User with minimum API-only access.
Create a Permission Set with temporary broader permissions to allow installation.
Connect the integration in the Instruqt platform and authorize with the correct OAuth scopes.
Reduce permissions post-installation to restrict access while ensuring functionality.
Configure Instruqt data visualization in Salesforce (e.g. Dynamic Related Lists).
This setup ensures security best practices, data protection, and smooth integration functionality for Instruqt in Salesforce.
Architecture
Overview
Paragon serves as a middleman that connects Instruqt's events and activities to a CRM system like Salesforce.
For each of the designated events enabled on our customers' Salesforce connection page, Instruqt prepares the necessary data and sends it to the Paragon APIs. Within Paragon, our defined workflows activate and transform the provided data into the appropriate format for Salesforce. Finally, these workflows call Salesforce's internal APIs to complete the integration.
Salesforce Connected App
API access is obtained using a connected app configured with OAuth authentication.
Required OAuth Scopes
When authorizing the Salesforce connection, ensure the following OAuth Scopes are selected:
id
,profile
,email
,address
,phone
→ Access the identity URL serviceopenid
→ Access unique user identifierslightning
→ Access Lightning applicationschatter_api
→ Access Connect REST API resourcesapi
→ Manage user data via APIs (Required for creating and updating records)refresh_token
→ Perform requests at any time without requiring re-authentication
Why These OAuth Scopes?
id
,profile
,email
,address
,phone
: Required to identify the user and retrieve basic profile details.openid
: Ensures unique user identifiers are available for authentication.lightning
: Allows access to Lightning applications within Salesforce.chatter_api
: Grants access to Connect REST API resources for collaboration features.api
: Needed to interact with records (e.g., Leads, Contacts, and custom objects).refresh_token
: Ensures that the integration doesn’t require users to re-authenticate frequently.
Custom objects & relationships
The Instruqt app creates two new objects: Instruqt_Play and Instruqt_Track.
The Instruqt_Play object has Lookup Fields that connects to both native Lead
and Contact objects.
No data is written onto fields in the Lead or Contact object record.
Below are described the details of the Instruqt custom objects.
Instruqt_Track
Field LabelField NameData TypeIndexedCreated By
CreatedById
Lookup(User)
False
Last Modified By
LastModifiedById
Lookup(User)
False
Owner
OwnerId
Lookup(User,Group)
True
Title
Name
Text(80)
True
Track Slug
Track_Slug__c
Text(255)
Instruqt_Play
Field LabelField NameData TypeIndexedContact
Contact__c
Lookup(Contact)
True
Created By
CreatedById
Lookup(User)
False
Description
Name
Text(80)
True
Feedback
Feedback__c
Text Area(255)
False
Instruqt Track
Instruqt_Track__c
Lookup(Instruqt_Track)
True
Invitation Link
Invitation_Link__c
URL(255)
False
Last Modified By
LastModifiedById
Lookup(User)
False
Lead
Lead__c
Lookup(Lead)
True
Owner
OwnerId
Lookup(User,Group)
True
Participant ID
Participant_ID__c
Text(15)
False
Score
Score__c
Number(1, 0)
False
Time Spent
Time_Spent__c
Text(15)
False
Time Spent Seconds
Time_Spent_Seconds__c
Number(10, 0)
False
Last updated
Was this helpful?