Skip to content
Textkernel Saleforce Connector
Candidate Engagement automation

Setting up Candidate Engagement Automation (BETA)๐Ÿ”—

This section describes the procedure to set up Textkernel Candidate Engagement, so that you can automatically engage with your Candidates using WhatsApp. The integration toolkit is flexible, so you can integrate candidate engagement into your specific workflows and style of working. This feature is an optional paid addon.


Before configuring the candidate engagement workflow, the automations need to be set up outside of Salesforce in the Textkernel Joboti environment. For information about configuring automations, please refer to Textkernel Joboti Documentation.


This feature makes REST api calls into Salesforce. Based on your Salesforce license and user count you have a limited daily allocation.

Overall architecture๐Ÿ”—

The diagram illustrates the overall architecture of Textkernel Candidate Engagement.

Candidate Engagement architecture

The integration supports a flexible recruiter data model so that it is compatible with a range of Salesforce configurations. The integration is also flexible so that Textkernel automations can be triggered from a wide range of interactive or automated workflows. In order to trigger the Candidate Engagement automation, a Texterkernel Candidate Engagement Request record is created. This initiates an asynchrous callout to the Textkernel platform, which then engages with the Candidate. The Candidate discussion is visible and manageable inside Salesforce via the Smart Inbox user interface. In addition, the transcript is stored and incrementally updated on a Texkternel Candidate Engagement Response record, which is linked to the relevant Candidate record via a Lookup relationship.

Configure the OAuth 2.0 Connected App๐Ÿ”—

This feature uses a Salesforce Connected App to implement OAuth 2.0 so that Textkernel's backend platform can authenticate to Salesforce APIs. The setup procedure is documented in Configure Connected App and Automation API Webhook within the Basic Textkernel Connector setup guide within this Admin installation guide.

As part of that procedure, you will configure the integration user and provide the following information to Textkernel:

  • OAuth 2.0 Consumer Key
  • OAuth 2.0 Consumer Secret
  • OAuth 2.0 Token URL


Candidate Engagement automations can only access Salesforce data that is visible to the integration user. If automations need to read data from or be triggered from candidates, job submissions, jobs, then make sure the integration user has the correct permissions to read the data.

Connect Salesforce to the Textkernel Candidate Engagement environment๐Ÿ”—

After you purchase Textkernel Candidate Engagement licenses and provide your OAuth credentials to Textkernel, Textkernel's professional services will start your implementation project. Textkernel will provide you with credentials (environment ID, username, and password) so that you can connect your Salesforce org to the Textkernel infrastructure.

During implementation, Textkernel professional services will also ask you some questions about your specific Salesforce data model, so that the automations are properly connected to your relevant Candidate and Job data model.

Once that has been setup, you can continue with this configuration:

Add a Salesforce Remote Site Setting๐Ÿ”—

This is necessary to make outbound calls from Salesforce to this Textkernel endpoint

  1. Go to Salesforce Setup

  2. Find Remote Site Settings.

  3. Click on New Remote Site button to define a new remote site that your org needs to connect with.

  4. Provide a Name for the remote site.

  5. In the Remote Site URL field, enter the URL:

  6. Save the remote site configuration.

Configure the Textkernel App to activate Candidate Engagement๐Ÿ”—

  1. Go to Textkernel App -> Candidate Engagement tab

  2. Go to the panel "1. Candidate engagement settings" section.

    The values will be provided by Textkernel professional services: * Environment ID * Username * Password

  3. Press โ€œSave credentialsโ€.

Load your configured automations from Textkernel into Salesforce๐Ÿ”—

  1. Go to the panel "2. Available Automations"

  2. Press the โ€œRefresh listโ€ button

  3. If everything is configured correctly, you should see a confirmation message, and the panel should update to display a list of automations that have been configured in the Textkernel Candidate Engagement platform.


Check the Compatible objects column. This lists the Salesforce API object names for the objects which can trigger an automation. It is important that the values are correct, otherwise you won't be able to trigger the automation from the desired object.

Candidate Engagement Settings

Add the Candidate Engagement Smart Inbox๐Ÿ”—

The Candidate Engagement Smart Inbox shows recruiters the relevant WhatsApp conversation threads. For more information on the feature, please look at the Textkernel Joboti Documentation. The Smart Inbox can be visible in 2 places in the Salesforce UI.

View the Smart Inbox from Textkernel Portal๐Ÿ”—

The Smart Inbox is available as a tab inside the Textkernel Portal UI. In that context, recruiters see all conversations they are entitled to access. You'll need to complete the Configure Textkernel Portal procedure in the Basic Textkernel Connector setup section to enable this view.

View the Smart Inbox from the Candidate record๐Ÿ”—

The Smart Inbox is also available as a widget on the Candidate page layout in Salesforce. In this context, the Smart Inbox will filter the discussions to only show the relevant discussions with that particular Candidate. The procedure below explains how to configure this

  1. Go to an example Candidate page in your ATS. (It could be a custom object, or you could be using the Contact object or another standard object).

  2. Open the Setup dropdown menu

  3. Click on Edit page.

  4. Select the UI element where you would like to add a new Tab.

  5. On the right side, press Add Tab.

    Add Tab

  6. Create a new custom tab that adds the Textkernel Portal Lightning Web Component to the page.

    Add Portal LWC

  7. Press โ€œSaveโ€

Now you should see a Tab on your Candidate page, with the Smart Inbox embedded inside.

Configure Candidate Engagement workflows๐Ÿ”—

Now that you have connected Salesforce to your Candidate Engagement environment, you want to trigger your automations from the right points in your Salesforce workflow. Salesforce is highly customizable, so you can trigger the candidate engagement automations from different contexts to fit them into your Salesforce workflows. The integration package provides generic components that can be fit into your specific Salesforce page layouts.


Below we will discuss the general configuration approach with some examples, but each customer's specific implementation can vary, depending on their workflows and ATS data model.

Allow recruiters to manually trigger an automation with a single record (e.g. a single Candidate or Job Submission)๐Ÿ”—

In this scenario, the recruiter will press a button on the Record Detail Page that will trigger candidate engagement to use a template to engage with a Candidate. To configure this:

  • Go to Salesforce Setup โ†’ Object Manager โ†’ Object (eg Contact)

  • Go to Buttons, Links and Actions, and press โ€œnew Actionโ€

  • Action Type : Lightning Web Component

  • Lightning Web Component : candidateEngagementAutomation

  • Give the button an appropriate label that makes sense in your workflow. (For example "trigger WhatsApp" or something similar).

  • press โ€œSaveโ€

Save Button

  • go to the object's Page Layouts, choose needed Page layout where you want to add a button

  • add it to the โ€œSalesforce Mobile and Lightning Experience Actionsโ€ section

  • press โ€œSaveโ€

Add Button to Layout

Allow recruiters to manually trigger an automation with a list of records (e.g. Candidates)๐Ÿ”—

In this scenario, the recruiter will select a set of relevant records on the list view page, then press a button that will trigger candidate engagement to use a template to engage with a list of Candidates. (Each Candidate is contacted independently, using the same template). To configure this:

  1. Define a List View Button:

    • Go to Salesforce Setup โ†’ Object Manager โ†’ Object (eg Contact)

    • Select Buttons, Links and Actions. Press "New Button or Link"

    • add the text: /flow/Textkernel1/Candidate_Engagement_Automation_ListView

    • Save your changes

    Add New Button

  2. Then add your button to the List View Button layout for this object. (If you don't see that choice on the left menu, you may need to configure the object to Allow Search and/or Allow Activities).

Fully automatic candidate engagement๐Ÿ”—

In addition to manually-triggered workflows, Candidate Engagement can also be fully automated using Salesforce Flow or APEX code. For example, whenever a new Job Submission is created in your ATS, a Flow could be triggered that checks some filtering conditions on the Job Submission, and then proceeds to trigger a Candidate Engagement message over WhatsApp to see whether the Candidate is interested in discussing the role with the recruiter owning the role.

Use Flow/APEX to trigger the automation๐Ÿ”—

To trigger the Candidate Engagement, you need to create a new Textkernel Candidate Engagement Request (TCE Request) record, and set the Status field to Requested. The TCE Request has all the information needed to make an asynchronous API callout to Textkernel's platform and trigger the automation. When creating the TCE Request, you must always:

  1. Set the appropriate Automation ID field value. (This ID is from the list configured in Textkernel, which you can view in the Textkernel App's Candidate Engagement tab).

  2. Set the Linked Record ID field value. (So, for example, if you trigger the automation from a Candidate Context, you should send the Salesforce ID for that record). The record is sent as a Text string, to keep the interface data-model independent.

  3. Set the Status field value to Requested. Once Textkernel received the request, it will update the Status value to either Submitted or Error.

The managed package includes a Flow called Textkernel - Send Candidate Engagement Request that asynchronously initiates the automation when the TCE Request record is created, or updated to Status Requested. By default, when you install the managed package this Flow is activated. You cannot view or change it, but you can turn it on and off.

Writing the WhatsApp transcript back to the Candidate record๐Ÿ”—

It is often desirable to store the full WhatsApp transcript from candidate engagement back to the ATS, which is the master system of record.

As candidates respond to messages in WhatsApp, Textkernel updates the transcript, and that information is stored inside Salesforce on a generic Textkernel Candidate Engagement Response (TCE Response) entity.

On these records, each candidate has a running Transcript field that is incrementally updated with the discussion.

In order to link this record properly into your data model, you need to create a Lookup relationship between the Contact (parent) and the TCE Response entity (child).

You'll need to name the lookup relationship with a specific api name, and then Textkernel will write your candidate ID to the correct field to link the transcript back to your candidate record. It is standard Salesforce admin knowledge on adding a field to a custome object, so this procedure will assume that knowledge and focus on the critical parts.

  1. Go to Salesforce Setup -> Object Manager

  2. Edit the Textkernel Candidate Engagement Response object's fields and relationships

  3. Add a new custom field with the API name LinkedRecord_Id__c. (It must be this exact name!) The field type is Lookup Relationship. Click Next.

  4. On the next screen select your Candidate object to be the parent in the relationship. Click Next.

  5. Do NOT check the Required checkbox. Otherwise, it could create problems deleting and creating records.

Complete the rest of the setup wizard.


The OAuth integration user must have the permissions configured to write to the Salesforce field where you want to write back transcript data.

Build data expiration policy๐Ÿ”—

You'll want to decide how long to retain the Candidate Engagement records. The Textkernel Candidate Engagement Requests and Textkernel Candidate Engagement Responses are useful for debugging, but they don't need to retained forever. So, you should implement logic that regularly purges old records to manage your Salesforce data storage usage.

(Optional) Connecting to your recruiter's Calendar๐Ÿ”—

When configured, the candidate engagement automation allows candidates to directly schedule an appointment with the recruiter's calendar. The setup procedure is described in the Textkernel Joboti Documentation.

(Optional) Triggering notifications๐Ÿ”—

When configured, candidate engagement sends notifications to the responsible recruiter when a candidate posts a new response to a WhatsApp discussion thread. In this way, recruiters are notified they ought to check the conversation thread in the Smart Inbox.