Instruqt Docs
  • 🚩Getting started
    • Overview
    • Setting up
      • Study Room
    • Quickstart
  • 🛤️Tracks
    • Manage tracks
      • Create tracks
      • Edit locally
      • Test tracks
      • Track logs
      • Track time limits
      • Track feedback
      • Developer workflow
      • Track tags
      • Track authors
      • Delete tracks
      • Custom layouts
      • Version control
      • Loading experience
    • Challenges
      • Create challenges
      • Challenge tabs
      • Challenge order
      • Skip challenges
      • Add quizzes
      • Assignment display
      • Assignment editor
    • Share tracks
      • Live Events
        • Instructor tools
      • Track invites
      • Embed tracks
      • Landing pages
  • 🏖️Sandboxes
    • Overview
    • Sandbox hosts
      • Add hosts
      • Custom VM images
      • Custom container images
      • Public images
      • Windows VMs
      • Website service
      • SSL certificates
    • Cloud accounts
      • Securing your cloud accounts
      • Cloud Client
      • AWS accounts
        • AWS Environment Variables
        • AWS Managed Policies
        • AWS IAM Policies
        • AWS SCP Policies
      • Azure subscriptions
        • Azure Environment Variables
        • Azure Roles
        • Azure Resource Providers
      • GCP projects
        • GCP Environment Variables
        • GCP IAM Permissions
    • Lifecycle scripts
      • Scripting overview
      • Track scripts
      • Challenge scripts
      • Example scripts
      • Helper scripts
    • UI Checks
    • Global Sandbox Settings
      • Hot start
      • Sandbox presets
      • Custom resources
      • Cloud services and regions
        • Allowed services and regions
    • Secrets and variables
      • Runtime variables
      • Runtime parameters
      • Secrets
  • ⚙️Settings
    • Integrations
      • Salesforce (Beta)
      • HubSpot (Beta)
      • HubSpot (Using zapier)
      • LTI
      • Version control
        • GitHub
    • Authentication
      • SSO
      • API keys
    • Platform
      • API
      • Webhooks
      • Track limits
  • 💡Reference
    • Feature overview
    • Instruqt CLI
      • Commands
      • Configuration files
      • Assets
    • Instruqt platform
      • Networking
      • Host machine types
      • Quotas and limits
      • Roles and permissions
      • Network access
      • Requirements
  • 🛟Resources
    • Content design tips
    • Advanced use cases
    • Templates
    • FAQ
      • Running Windows Client Hosts on Instruqt
      • Using Cleanup Scripts in SaaS and Cloud Environments
      • Instruqt Regional Configurations and Restrictions
      • Troubleshooting Instruqt CLI Authentication Issues
      • Copy a Track from One Organization to Another via CLI
      • Network Configuration: IP and MAC Address Control
      • Container Troubleshooting in Instruqt
Powered by GitBook
On this page
  • Overview
  • Create and configure the Instruqt Integration User in Salesforce
  • 1. Create the Instruqt Integration User
  • 2. Create a Permission Set for Installation
  • Enable the integration
  • Adjust the Permission Set for Secure Access (Post-Installation)
  • Visualize the data on Salesforce
  • Chatter
  • Display Instruqt information as related lists on Leads and Contacts
  • Adding Instruqt plays to related lists
  • Summary of the Process
  • Architecture
  • Overview
  • Salesforce Connected App
  • Custom objects & relationships

Was this helpful?

Edit on GitHub
  1. Settings
  2. Integrations

Salesforce (Beta)

Integrate Instruqt with Salesforce and choose among options to create new leads as well as enrich existent leads and contacts with track play information.

PreviousIntegrationsNextHubSpot (Beta)

Last updated 1 month ago

Was this helpful?

Note: This feature is currently in beta and may not be available to all customers. Please contact Instruqt support to enable it for your organization.

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

Any interactions of the integration will be performed using an access grant (and limited) by the integration user account.


1. Create the Instruqt Integration User

  1. Navigate to Setup → Users → New User

  2. Fill in the following details:

    • Name: Instruqt Integration

    • User License: Salesforce Integration

    • Profile: Minimum Access - API Only Integrations

  3. Under Permission Set License Assignments, add:

    • Salesforce API Integration


2. Create a Permission Set for Installation

  1. Navigate to Setup → Permission Sets → New

  2. Fill in the following details:

    • Label: Instruqt Integration

    • API Name: Instruqt_Integration

    • License: None

  3. Configure Object Permissions:

    1. Object Settings

      1. Contacts

        1. Object Permissions

          • ✅ Read ✅ View All Records

        2. Field Permissions:

          • Email: ✅ Read access

          • Phone: ✅ Read access

          • Title: ✅ Read access

      2. Leads

        1. Object Permissions:

          • ✅ Read ✅ Create ✅ Edit ✅ View All Records

        2. Field Permissions:

          • Email: ✅ Read & Edit access

          • Phone: ✅ Read & Edit access

          • Title: ✅ Read & Edit access

    2. System Permissions

      1. ✅ Customize Application

        1. ✅ Modify Metadata Through Metadata API Functions

        2. ✅ View All Data

  4. 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:

  1. Inside the Salesforce section click on Connect. ↳ The integration configuration modal is displayed.

  2. Enable the first workflow Create Lead on Form Submission and select the New Lead Status according to your preferences. Enabling this workflow is mandatory, but it won't duplicate entries in case there is already a Lead or Contact with the same email address, first name and last name. ↳ The configuration is saved automatically.

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

Make sure the custom objects (Instruqt Play and Instruqt Track) have been fully created before adjusting the permissions. You can verify it by accessing the Salesforce object manager. The object creation might take a few minutes.

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

Depending on your salesforce setup, this tab might also be called "Activity".

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

  1. In Salesforce go to the settings from top right corner.

  2. Go to Object Manager from left panel.

  3. Find the Instruqt Play object and click on it.

  4. Then click on the Fields & Relatioinship from left panel.

  5. Click on the Lead property.

  6. 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.

  7. 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.

  1. Click on "Edit Page". In case you don't see that option you might need to contact you salesforce administrator.

  2. On the left toolbar, under components, click on "Dynamic Related List" and drag it to the desired place in the layout.

  3. Now configure your Dynamic Related List on the right, by changing the "Related List" field to "Instruqt Plays".

  4. Scroll down "Related List Fields" section and click on the button "Add field".

  5. 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.

  6. 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!

To test the integration, open an incognito browser tab and access an Instruqt invite with the “Anyone leaving their details” setting enabled. Fill out the invite form with test user data and submit it.

If the integration is working correctly, a new Lead will be created in Salesforce, or an existing Lead or Contact will be updated. The matched record should be enriched with Instruqt data in Chatter and the “Instruqt Play” object, depending on your setup.


Summary of the Process

  1. Create a dedicated Salesforce Integration User with minimum API-only access.

  2. Create a Permission Set with temporary broader permissions to allow installation.

  3. Connect the integration in the Instruqt platform and authorize with the correct OAuth scopes.

  4. Reduce permissions post-installation to restrict access while ensuring functionality.

  5. 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

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

Required OAuth Scopes

When authorizing the Salesforce connection, ensure the following OAuth Scopes are selected:

  • id, profile, email, address, phone → Access the identity URL service

  • openid → Access unique user identifiers

  • lightning → Access Lightning applications

  • chatter_api → Access Connect REST API resources

  • api → 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 Label
    Field Name
    Data Type
    Indexed

    Created 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 Label
    Field Name
    Data Type
    Indexed

    Contact

    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

Instruqt integrates with salesforce using a . 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 section.

Go to and navigate to the menu Settings > Integrations. ↳ The integrations page is displayed with the platforms enabled to your account.

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 .

You need now to allow access to Instruqt via our subprocessor Paragon (check our 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.

Example of giving visibility to Standard Users and Administrators.

Go to the leads page in Salesforce and open any lead. Click again on settings from top right corner.

Add any fields relevant to you. Here is as an example: Selected fields: Description, Created Date, Time Spent, Feedback.

serves as a middleman that connects Instruqt's events and activities to a CRM system like Salesforce.

API access is obtained using a configured with OAuth authentication.

⚙️
connected app
play.instruqt.com
subprocessor list
Paragon
connected app
Architecture
Required OAuth Scopes
Instruqt Tutorials - Instruqt + Salesforce Integration
Configuration modal
Chatter example in a Lead
Example of a dynamic related list in a Lead