Configure Search and Match workflow integrationπ
Once the automatic indexation process is configured, the next step is to configure workflows so that Recruiters working in Salesforce can use the Textkernelβs indexed Search and Match data to quickly find the relevant Candidates/Vacancies, and then trigger relevant inside Salesforce.
Your particular workflows will be custom to the way you work in Salesforce, but Textkernel provides several generic integration mechanisms to enable you to quickly build integrated workflows.
There are two different ways to initiate matching workflows from Salesforce:
-
Best-match components (widgets): inside the Textkernel Connector managed package, we include some best-matching widgets that present top match results inside Salesforce. These widgets are optimized to allow recruiters to take a single quick action on the match results within Salesforce very quickly. The widgets support the two primary use match use cases:
-
match best candidates from a job
-
match best jobs from a candidate
-
Quick action buttons: we also provide some example code in our Unlocked Components package to add buttons that trigger match workflows and redirect users to our full search UI. The components are open source, and can be used as-is, or you can copy them and customize them. A wider range of matches are supported this way:
-
match best candidates from a job/vacancy
- match best jobs from a candidate
- rank applicants from a job/vacancy
- find similar candidates from a candidate
There are advantages and disadvantages to both approaches. The buttons take less space on your layout, but the widgets let recruiters take one high-priority workflow action more quickly with fewer clicks.
Using Best-Match widgetsπ
Best Matching Candidates from Job/Vacancyπ
Use case: Recruiters see this widget whenever they open the Job/Vacancy. They can click on the configurable action button (eg "Add to List") to trigger a Platform Event with the selected Candidates. (All are selected by default). Alternatively, they can Click on the button View all in Textkernel to see the full match results, adjust the match query, and/or trigger other workflow actions that are available in the Textkernel Search environment.
Two automatic matching widgets are included in the managed package:
- Textkernel Auto Match Candidates: widget for the Vacancy page that shows the top N matching Salesforce Candidates for the Vacancy
- Textkernel Auto Match Vacancies: widget for the Candidate page that shows the top N matching Salesforce Vacancies for the Candidate
Both Auto Match widgets support a configurable Action button. This Action should be configured for the most common workflow a Recruiter wants to use to apply the match results. (For example, it might be to create a Job Submission, but that depends on the ATS and its specific workflows.) Once configured, the user can select the desired matching records and click the Action button. The Action button generate a Salesforce Platform Event for the Group Action. (See the section below discussing group record workflow actions. The Auto Match widgets generate the same Platform Event structure).
Best Matching Vacancies from Candidateπ
Use case: Recruiters see this widget whenever they open the Candidate. They can click on the configurable action button (eg "Add to List") to trigger a Platform Event with the selected Job/Vacancies. (All are selected by default). Alternatively, they can Click on View all in Textkernel to see the full match results, adjust the match query, and/or trigger other workflow actions that are available in the Textkernel Search environment.
Configuring the Best-Match widgetsπ
Shared configuration for both widgetsπ
Both Best-Match widgets query the Textkernel Search environment in the background, and this is the first thing to configure.
Go to Salesforce Setup --> Textkernel App --> Search and Match Setup --> UI Component Settings
-
Under Search endpoint, enter the value that Textkernel support provided for your environment.
-
Under Job search environment enter the values that Textkernel support provided for your environment.
-
Under Candidate search environment enter the values that Textkernel support provided for your environment.
-
Be sure to Save all these changes.
Now the Best-Match widgets can query the Textkernel Search environment.
Textkernel Best Matching Candidates widgetπ
(This procedure assumes you have a Lightning Record page for the Job/Vacancy Page)
- Select a specific Vacancy Record
- Go to Setup -> Edit Page, to open the Lightning App Builder for your Vacancy Record Page
- Drag the Custom-Managed widget Textkernel Auto Match Candidates onto the desired page location
-
Select the widget, so that you see the configuration choices on the right-hand side:
-
Visible Fields: type in a comma-separated list of API field names from your Candidate Object. The first field is special and should be the record name, since it will be the header for each match result. The intent is to include the most critical data, so that the match results can be quickly read by the recruiter
-
Number of Results: pick an integer to configure the limit on how match results you want to display on the page. (You can show up to 20 results)
-
Action Button Label: this is the text label which will appear on the Action button
-
Action Button API Name: this is the Action Name that will be used for the Platform Events generated when the Recruiter presses the action button. Setting this enables you to see that the Platform Event was triggered by this widget
- Click Save to save your changes.
- Return to your Vacancy record and now users with access to the widget will see the match results whenever they view a Vacancy.
-
Textkernel Best Matching Vacancies widgetπ
The procedure to configure this widget is analogous to the other widget, except this widget should be added to the Candidate page. The widget is added to the page using the Edit Page process, and the fields are similar, except the visible field list includes field names from the Vacancy object instead of the Candidate object.
Using Match Buttons (from Candidate or Job/Vacancy)π
Use case: The recruiter inside Salesforce, viewing a Vacancy or Candidate record. They can click a button, which redirects the user to TK Portal and loads match results displaying the appropriate match results. They can refine the results in the search environment, compare them, and then select appropriate workflow actions to complete the process (eg create a job submission, start email outreach process, add to a general list, etc).
Here is how the buttons might look on a page in Salesforce:
Supported use cases when matching from a job/vacancy:
- match best candidates from a job/vacancy - given a particular job with its description and requirements in Salesforce, click a button to find the best-matching candidates in the internal Salesforce candidate pool who would be a good match for the role.
- rank applicants from a job/vacancy - given a particular job with its description and requirements in Salesforce, click a button to rank the candidates who have already applied for the job (ie created a job submission type of record) to quickly identify the strongest applicants.
Supported use cases when matching from a candidate:
- match best jobs/vacancies from a candidate - given a particular candidate profile in Salesforce, click a button to find the best-matching job openings in the Salesforce database that are a fit for the candidate.
- find similar candidates from a candidate - given a particular candidate profile in Salesforce, find other candidates with a similar profile.
Important
If you are using the rank applicants use case, it only works if your search indexation is configured properly. If search indexation is not configured properly you will always see 0 results when pressing the quick action button. Job submission records need to be indexed to Textkernel (using Flow or Apex) and the Textkernel App -> Search and Match Setup -> Candidate Data Mapping Job Submission must be configured properly. When configuring the Job Submission, the relevant job/vacancy ID (the unique Salesforce alphanumeric record ID) must be mapped to the "Job ID" field.
Configuring the Unlocked Sample Component packageπ
Install Unlocked Components Packageπ
The Unlocked Components package needs to be installed to create the Quick Action buttons.
Install the unlocked package and enter the password (see package descriptions). This package should be installed for all users.
You should also assign users access to the included permission set: Textkernel - Unlocked Components Access.
Adding a Quick Action button to the Vacancy (or Candidate)π
The Unlocked Components package includes 4 components which you can use in your org together with Quick Action buttons. The components are either Lightning Components or Lightning Web Components. Here are the supported use cases:
- searchCandidates: call this from your main job/vacancy page layout to match best candidates from a job/vacancy
-
rankApplicants: call this from your main job/vacancy page layout to rank applicants from a job/vacancy
-
searchJobs: call this from your main candidate page layout to match best jobs/vacancies from a candidate
- searchCandidatesfromCandidates: call this from your main candidate page to find similar candidates from a candidate
Each of these LC/LWCs constructs a URL and redirects the Salesforce Recruiter user to TK portal and sends the appropriate match context to display the desired search results. This package is unlocked so you can look to see what is happening in the code itself.
To setup a Quick Action calling the LC or LWC:
Go to SFDC Setup β Object Manager β Candidate/Vacancy β Buttons, Links and Actions β New Action
Select the following settings:
- Action Type: Lightning Component OR Lightning Web Component
- Lightning Component: select the appropriate LC or LWC for the desired use case (eg searchJobs)
- Label: pick an appropriate label for the action button
- Name: pick an appropriate API name for the action
Match candidates from a job/vacancyπ
Here is how it might look for this use case. Be sure to select Lightning Component for the Action Type, and then select the correct choice from the drop-down:
Rank applicants from a job/vacancyπ
Here is how it might look for this use case. Be sure to select Lightning Web Component for the Action Type, and then select the correct choice from the drop-down:
Match jobs/vacancies from a candidateπ
Here is how it might look for this use case. Be sure to select Lightning Component for the Action Type, and then select the correct choice from the drop-down:
Find similar candidates from a candidateπ
Here is how it might look for this use case. Be sure to select Lightning Web Component for the Action Type, and then select the correct choice from the drop-down:
Place the buttons on your candidate or vacancy page layout.π
Now you need to place the buttons on your layout.
- Go back to Candidate/Vacancy Object β Page Layouts section β select your Layout
- From Mobile & Lightning Actions drag the new quick action and drop it to Salesforce Mobile and Lightning Experience Actions section where you want to display it
- Save the layout.
Sending match results from Textkernel Portal back to Salesforceπ
When Recruiters are working in TK Portal, they usually want to take a list of interesting Candidates/Vacancies, and do something useful back Salesforce to complete the workflow. They might have started directly in TK Portal, been directed there by opening an email alert, or been redirected there by one of the match components.
This next section describes how to setup these actions from TK Portal to complete the workflows.
Single record workflow actions (from TK search results)π
Use case: user selects a single record in the Textkernel search/match query results, and clicks on a button inside TK Portal to complete the workflow for that record in Salesforce. Supported workflows are listed below. These actions are both implemented as a redirect which opens a new browser tab displaying the appropriate page to the Recruiter.
- Open Vacancy record detail page inside Salesforce
- Open Candidate record detail page inside Salesforce
These buttons work without additional configuration needed in Salesforce.
Group record workflow actions (from TK search results)π
Use case: user selects a group of records in the Textkernel search query results, and triggers an action against the set of selected Salesforce records. The workflow is completed when the Salesforce org handles the request which passes the relevant data to Salesforce, and then some workflow action is taken against the group of records. This offers a generic interface to offer workflows for a set of IDs, such as adding a list of Candidates to an email automation workflow, or change a data-field on a set of candidate records inside Salesforce).
For Group records, the package generates a Salesforce Platform Event, called Textkernel Portal Action which includes the following data:
- Action name (name of the action triggered inside TK Portal, to indicate what to do with the list)
- Selected records (comma separated list of record ids saved in long text field on platform event)
- Object API Name of selected records
- Parent record (Vacancy Id or Candidate Id which initiated the search in Textkernel)
- UserId (Id of current interactive user)
Consuming Platform Events in Salesforceπ
To integrate with the Platform Event, create a Platform Event-Triggered Flow process that runs in the background to consume the Platform Event when it occurs and feed into the workflow process without user interaction. You can use standard Flow features to send notifications to users, so that they know whether it completed or if there were errors.
An example of a Flow is included in the unlocked package, which is called: Textkernel - Portal Action - Create Textkernel List. This example flow writes the list of IDs to a Textkernel List custom object. You can copy this and change it to suit your needs and build other workflows. For example you could write to other data model elements specific to your ATS, or trigger an email workflow.
Info
More details about monitoring Textkernel Platform Events are provided in the Operational Guide. There is a very useful monitoring panel to help you see which Platform Events are sent to Salesforce from Textkernel.