Salesforce ATS + Testlify Integration

Complete setup and user guide — from Salesforce admin configuration to day-to-day use

This guide covers the full Salesforce ↔ Testlify integration in two parts:

  • Part I — Salesforce Admin Setup: one-time configuration performed by a Salesforce System Administrator (creating the connected app, granting field permissions, configuring picklist values, and verifying the setup).
  • Part II — Connect & Use the Integration: connecting Testlify to Salesforce, linking assessments, and the day-to-day flow of sending assessments and tracking results through a hiring pipeline.

If you're a Salesforce Administrator setting this up for the first time, start at Part I. If setup is already complete, jump to Part II.

What This Integration Does

  • Automatically creates a matching Testlify assessment invite whenever a candidate is added to a job in Salesforce.
  • Sends the assessment invite to the candidate by email — no manual step in Testlify required.
  • Syncs the candidate's assessment status, score, completion date, and full report back onto the Salesforce Applicant record.

Before You Begin

  • Salesforce System Administrator access, with access to Salesforce Setup.
  • Your Testlify integration details, including the OAuth callback URL supplied by Testlify.
  • Your Salesforce domain / My Domain URL (e.g. yourcompany--sandbox.sandbox.my.salesforce.com).
  • Admin access to Testlify (Settings > Integrations).
  • At least one Testlify assessment you want to use for the role you're hiring for.

PART I · SALESFORCE ADMIN SETUP (ONE-TIME)

1. Create the Connected App

Salesforce now manages connected apps through the External Client App Manager. This is where Testlify's OAuth credentials are generated.

Step 1: Open the External Client App Manager

In Salesforce, go to Setup, then search for and open External Client App Manager under Apps > External Client Apps.


Setup > External Client Apps > External Client App Manager. Click New External Client App to start.

Step 2: Enter basic information

Fill in the External Client App Name, API Name, Contact Email, and set Distribution State to Local. Click Create.


Basic Information for the new app.

Step 3: Enable OAuth settings and scopes

Open the new app and enable OAuth Settings. Enter the OAuth Callback URL supplied by Testlify, then move the following scopes into Selected OAuth Scopes:

  • Access the identity URL service (id, profile, email, address, phone)
  • Manage user data via APIs (api)
  • Manage user data via Web browsers (web)
  • Full access (full)
  • Access Connect REST API resources (chatter_api)
  • Access Visualforce applications (visualforce)


Enter the callback URL and select the required OAuth scopes.

Step 4: Configure flow enablement and security policies

Under the app's Policies, enable Authorization Code and Credentials Flow. Under Security, keep “Require secret for Web Server Flow”, “Require secret for Refresh Token Flow”, and “Enable Refresh Token Rotation” checked (these are Salesforce defaults for most orgs).

Authorization Code and Credentials Flow enabled, with the default security requirements in place.

Step 5: Save and confirm the app is enabled

Save your changes. The app's status should now show as Enabled. Open the OAuth Settings section and click Consumer Key and Secret to reveal and copy both values — you'll paste these into Testlify in Part II.

Confirm the app shows an Enabled status before continuing.

Security: Keep the Consumer Key and Consumer Secret private. Treat them like a password — don't paste them into chat, email, or shared documents.

2. Grant Field Permissions for Testlify Fields

Testlify writes assessment results onto a custom object in your ATS. Before that data can be seen, the fields it uses need to be made visible to the right profile(s), typically System Administrator.

Step 6: Open Object Manager

In Setup, search for Object Manager and open it.

Setup > Object Manager.

Step 7: Open the ATS Applicant object

Find and open ATS Applicant (API name: bpats__ATS_Applicant__c).

Locate ATS Applicant in the object list.

Step 8: Locate the Testlify fields

Open Fields & Relationships. You'll find four Testlify fields on this object:

  • Testlify Assessment Score (Testlify_Assessment_Score__c) — Number
  • Testlify Assessment Status (Testlify_Assessment_Status__c) — Picklist
  • Testlify Completed Date (Testlify_Completed_Date__c) — Date/Time
  • Testlify Report URL (Testlify_Report_URL__c) — URL

The four Testlify fields on the ATS Applicant object.

Step 9: Open a field and view its accessibility

Click into a Testlify field (for example, Testlify Assessment Score), then click View Field Accessibility.

Custom Field Definition Detail > View Field Accessibility.

Step 10: Grant access to the right profile

On the Field Accessibility page, find the profile that should see this field (typically System Administrator) and click its current access level to edit it.

Click the profile's access link (Hidden/Editable) to change it.

Check Visible (and Read-Only only if the field should not be editable), then Save.

Check Visible for the profile, then Save.

Note: Repeat Steps 9–10 for all four Testlify fields: Assessment Score, Assessment Status, Completed Date, and Report URL.

3. Configure the Testlify Status Picklist

The Testlify Assessment Status field is a picklist. It needs specific values that match the statuses Testlify sends back.

Step 11: Open the Testlify Assessment Status field

In Fields & Relationships on the ATS Applicant object, open Testlify Assessment Status.

Testlify Assessment Status is a Picklist field.

Step 12: Add the required picklist values

Open the picklist Values and add any of the following that are missing, then save:

  • Completed
  • Pass
  • Fail
  • invited
  • started
  • expired

Active picklist values for Testlify Assessment Status.

4. Verify the Setup

Step 13: Verify the object via the Salesforce REST API

Confirm the object is reachable via the API using a request like this (replace {domain} with your Salesforce domain and <ACCESS_TOKEN> with a valid OAuth access token):

curl --location 'https://{domain}/services/data/v62.0/sobjects/bpats__ATS_Applicant__c' \

  --header 'Authorization: Bearer <ACCESS_TOKEN>' \

  --header 'Content-Type: application/json'

A successful response returns the object's metadata.

Step 14: Log out and log back in

Important: After completing all of the above, log out of Salesforce and log back in so the new permissions and settings take effect.

Expected Result

  • Connected App (External Client App) created and OAuth enabled.
  • Testlify fields are accessible to the right profile(s).
  • Testlify Status picklist values are configured.
  • The Salesforce object metadata is returned successfully from the API call.

PART II · CONNECT & USE THE INTEGRATION

5. Connect Salesforce to Testlify

With the Connected App in place, link it to Testlify. This is done once.

Step 15: Open Integrations in Testlify

Go to Settings > Integrations. Salesforce is listed alongside your other supported integrations.

Settings > Integrations — Salesforce shown as an available/active integration.

Step 16: Enter your Salesforce Connected App credentials

Open the Salesforce integration and enter the Client ID (Consumer Key), Client Secret (Consumer Secret), and Auth Host (Login URL) from Part I, Step 5. Click Next.

Enter the Client ID, Client Secret, and Auth Host, then click Next.

Note: Once connected successfully, Salesforce will show an “Active” status in your Integrations list.

6. Link a Testlify Assessment to Your ATS

Step 17: Open the assessment's Integration tab

Open (or create) the assessment you want candidates for this role to take, then go to Settings > Integration.

Step 18: Link the assessment

Click Link to connect this assessment to jobs coming from your ATS.

Until an assessment is linked, you'll see “No ATS has been linked to this assessment.” Click Link to connect it.

7. Create a Job Requisition in Salesforce

Step 19: Start a new requisition

In your Salesforce ATS, go to the Requisitions tab and click New.

Requisitions > New.

Step 20: Fill in the requisition details

Complete the requisition fields (job family, working details, effective dates, etc.) and click Save.

Fill in the requisition fields, then click Save.

Step 21: Confirm the requisition was created

Salesforce confirms the new requisition and opens its record page, which includes the ATS Kanban board for tracking applicants.

A confirmation banner appears, and the requisition record opens automatically.

8. Add a Candidate to the Job

Step 22: Open Add Candidates to Job

On the requisition record, open the ATS Kanban tab and click Add Candidates to Job.

ATS Kanban tab > Add Candidates to Job.

Step 23: Search for the candidate

In the Add Candidate to Job window, click the Contact field and start typing the candidate's name.

Click the Contact field to search your existing candidates.

Matching candidates appear as you type.

Step 24: Select the candidate and save

Select the correct candidate from the results, confirm it appears as a chip in the Contact field, then click Save.

With the candidate selected, click Save.

Note: The candidate now appears in the Sourcing column of the ATS Kanban board.

9. Automatic Assessment Invite

Step 25: Testlify creates the invite automatically

As soon as the candidate is saved to the job, Testlify automatically creates or updates a matching assessment (named after the requisition) and emails the candidate an invite. No manual step in Testlify is required.

Testlify confirms the assessment was updated with the new candidate invite.

Step 26: Confirm delivery in Testlify

Open the linked assessment in Testlify and check All Candidates. The candidate appears with a Delivered status.

The candidate's invite status shows as Delivered.

10. Track Results

Step 27: Watch for the completed score in Testlify

Once the candidate completes the assessment, their score and grading automatically appear in Testlify under All Candidates.

Score and grading populate automatically once the candidate finishes.

Step 28: See the candidate on the Salesforce Kanban board

Back in Salesforce, the candidate's card appears on the ATS Kanban board with their live applicant status.

The candidate's card shows their current stage and status.

Note: You can drag candidate cards between Sourcing, Recruiter Review, and Hiring Manager Review to move them through your pipeline.

Example: the candidate card moved to the Hiring Manager Review column.

Step 29: Open the applicant record

Click into the ATS Applicant record to see the full detail view, including the linked Job and current ATS Stage.

The Applicant record header shows the candidate, linked Job, ATS Stage, and status.

Step 30: Review the synced Testlify fields

Scroll down on the Applicant record to see the fields configured in Part I sync automatically from Testlify:

  • Testlify Assessment Status — e.g. Completed
  • Testlify Assessment Score — the candidate's overall score
  • Testlify Completed Date — when the candidate finished the assessment
  • Testlify Report URL — a direct link to the full PDF assessment report

These fields update automatically — no manual data entry needed.

Step 31: Open the full assessment report

Click the Testlify Report URL link on the Applicant record to open the candidate's full PDF assessment report, including their score breakdown and completion details.

The full report opens as a PDF, showing score, completion time, and candidate details.

Field Reference

The Testlify fields on the Salesforce ATS Applicant object (bpats__ATS_Applicant__c):

Field Label API Name Type What It Means
Testlify Assessment Status Testlify_Assessment_Status__c Picklist Whether the candidate has started or completed the assessment. Values: Completed, Pass, Fail, invited, started, expired.
Testlify Assessment Score Testlify_Assessment_Score__c Number The candidate's overall score on the linked assessment.
Testlify Completed Date Testlify_Completed_Date__c Date/Time The date and time the candidate finished the assessment.
Testlify Report URL Testlify_Report_URL__c URL A direct link to the candidate's full PDF assessment report.

Troubleshooting & Tips

Setup issues (Part I)

  • Field doesn't appear on the Applicant record — confirm field-level security was granted to the profile you're logged in as (Part I, Step 10), then log out and back in.
  • API verification call fails — confirm the access token is valid and unexpired, and that the domain in the URL matches your Salesforce My Domain exactly.
  • Consumer Key/Secret not visible — you need “Customize Application” or admin permissions on the External Client App to view them.

Day-to-day issues (Part II)

  • “No ATS has been linked to this assessment” — repeat Part II, Section 6 to link the assessment to your ATS.
  • Candidate didn't receive an invite — confirm the Salesforce integration status shows Active under Testlify Settings > Integrations.
  • Fields on the Applicant record aren't updating — confirm the candidate was added to the correct Job/Requisition, and that the linked assessment matches that job.
  • Credentials need to change — if the Consumer Secret is rotated in Salesforce, update it in Testlify under Settings > Integrations > Salesforce.
  • Still stuck — reach out to your Testlify support contact or your Salesforce administrator.
Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.

Still need help? Contact Us Contact Us