ATS v2: High Volume Recruiting Configuration

Note: To take advantage of the features mentioned in this documentation, your Org needs to be using Package Version 7.16 or newer. See Release Notes for more details about which features were introduced in each release. If you would like to upgrade to the current release, contact Bullhorn for Salesforce Support.

This article applies to ATS v2s using the ATS v2 data model only.

Overview

This article covers the settings involved in the configuration of ATS v2 High Volume. These settings are already configured for standard high volume functionality but you may want to change them based on your needs. You will need to create the Bulk ActionClosed An action that is performed for a large volume of data (for example, an email sent after selecting a large number of Candidates) Definition records.

This article is intended for System Administrators.

ATS Action Modes

There are three different processes to perform Bullhorn ATS Actions, such as moving candidatesClosed A person looking for a job. A candidate can also be referred to as a Job Seeker, Applicant, or Provider. to a different stage:

The only difference an end user will notice is that UI and Mass Action Mode records are updated in real time while Bulk Mode takes longer. Users will be able to check progress in the Bulk Monitor tab of the jobClosed A job (vacancy, position, role) is an opening for which a customer's client needs a placement. record. See ATS v2: High Volume Recruiting for more information. Bulk Action Definitions are used by two Bullhorn for Salesforce functionalities, ATS v2 High Volume and the 2020 Email Editor.

UI Mode Configuration

  1. Go to Setup > Custom Metadata TypesATS Action Configuration.
  2. Enter a value in the UI Limit field.

The value entered in this field determines the maximum number of records to be processed in UI Mode. For example, if the value entered is 20 and a user selects up to 20 Candidates in ATS v2 and performs an action that action will happen in UI Mode. If the user selects 21 or more candidates the action will be performed in Mass or Bulk Mode instead.

The 2020 Email Editor has a hard-coded limit of 10. When that limit is reached Bulk Mode will automatically be used, ignoring any user-entered UI Limit.

Bulk Action Definitions Configuration

Mass and Bulk Actions are configured using the Bulk Action Definition Object. Use the following fields for configuration:

  • Action Name: Name of the action (i.e. Reject/Unreject). Case sensitive.
  • Bulk Action Limit: The maximum number of records that can be selected for bulk action. If the number of selected records is higher than the Bulk Action Limit the action will not be triggered and an error message will be displayed.
  • Bulk Threshold: This value defines the boundary between Mass Actions and Bulk Actions. When the number of selected records is lower than the Bulk Threshold the action is performed in Mass Action mode. If the number of records is equal to or higher than the Bulk Threshold the action is performed in Bulk Mode.
    • The UI Limit value cannot be larger than the Bulk Threshold Value.
  • Chunk Size: Selected records are split into chunks in Bulk Action mode. The action is executed asynchronously for each chunk. Chunk Size determines how many records are contained in each chunk, i.e., how many records will be updated in a single transaction.
  • Handler Name: This field contains the name of the class that implements the BHHV_BulkActionHandler interface. This class executes action specific logic.
  • Target Object: APIClosed API, or Application Programming Interface, is used by customers to create custom career portals or to take advantage of Data Mirror/DataMart. Bullhorn prefers to use REST API. name of the object this action is designed for and on the object where the Bulk Monitor will be displayed. It is always TR1__Job__c.

In Orgs where ATS v2 High Volume or the 2020 Email Editor is configured for the first time, the following script should be run in the Developer Console to generate the baseline Bulk Action Definition records:

Copy
Set<String> definitionNamesToRemove = new Set<String>{
'Add To Call List', 'Apply To Other Job', 'Cancel Schedules', 'Edit Schedules', 'Internal Interview',
'Mass Placement', 'Move To Offer', 'Move To Stage', 'Move To Submittal', 'Move To Send Out',
'Reject/Unreject', 'Email', 'EML_BulkMailer', 'Bulk DML','EML_BulkICSMailer'};
 
delete [SELECT Id FROM TR1__BHHV_Bulk_Action_Log__c];
delete [SELECT Id FROM TR1__BHHV_Bulk_Action_Definition__c WHERE Name IN: definitionNamesToRemove];
TR1.BulkActionDefinitionUtility.createDefinitions();

The last line of code is a post deployment step run every time a new feature requires bulk action definitions. This code can be run in Orgs with Bulk Action Definitions already created as it does not override existing records, only adds new ones.

Once the script is executed the following records will be created on the Bulk Action Definitions Object:

The performance of mass/bulk actions depends heavily on the objects involved in the background and related background actions, so it will vary from case to case, and from Org to Org. Refer to this article as the general configuration, but if problems or errors appear while a bulk action is performed, then the values should be decreased.

Job Record Type

Job Record Type: (TR1__Job_Record_Type__mdt)

Clickpath: Setup > Custom Metadata Types > Job Record Type

This Custom Metadata Type is a Job Record Type classifier referenced in other settings. Upon package install these four records are available:

  • Consulting
  • Permanent
  • Retained
  • Fixed Term

If your Org uses any other Job Record Types, add a record for each. You only need to enter Label/ Job Record Type Name on the record.

Bullhorn ATS Config per Job Record Type

ATS Config per Job Record Type: (TR1__ATS_Config_per_Job_Record_Type__mdt)

Clickpath: Setup > Custom Metadata Types > ATS Config per Job Record Type

This Custom Metadata Type defines the Bullhorn ATS default view and the set of fields to display for Tabular View based on Job Record Type.

These are the main fields on this Custom Metadata Type record:

Bullhorn ATS Action Configuration

ATS Action Configuration: (TR1__ATS_Action_Configuration__mdt)

Clickpath: Setup > Custom Metadata Types > ATS Action Configuration

The most important information stored in this Custom Metadata Type is the UI Limit. The value that you enter here determines the max number of records that will be processed in UI mode.

For example, if the value here is 10, when a user selects up to 10 Candidates in ATS v2 and performs an action, that action will be in UI Mode . If the user selects more than 10 Candidates, the Action will be performed in Mass or Bulk Mode.

These are the main fields on this Custom Metadata Type record:

On first installing the package, this Custom Metadata Type will have the following list of records, with fields populated as per this table:

ATS HV Settings

ATS HV Settings: (TR1__ATS_HV_Settings__mdt)

Clickpath: Setup > Custom Metadata Types > ATS HV Settings

This Custom Metadata Type sets the retention period for Bulk Action logs.The value is stored in the Bulk Action Log Retention Period field. If a log is older (in days) than the value in this field then it will not be displayed in Bulk Monitor.

ATS Configuration Settings

ATS Configuration Settings: (TR1__ATS_Configuration_Settings__c)

Clickpath: Setup > Custom Settings > ATS Configuration Settings

This Custom Setting stores settings for various ATS v2 features. Two are related to the set up of ATS High Volume:

Custom Action Implementation

This section contains guidance for implementing Custom Bulk Actions in your Org. Some developer experience may be necessary.

  1. Implement the TR1__BHHV_BulkActionHandler interface. There are 2 methods that have to be implemented:
    • handle(Set<Id> recordIds, String parameters) - This method should contain all the business logic for the given custom action. It will be invoked directly in a mass action scenario. The method should return an instance of BHHV_BulkActionResult.
    • handle(Set<Id> recordIds, String parameters, Id bulkActionLogDetailId) - This method is used in bulk action scenarios. Implementation should call the method above and then publish the TR1__BHHV_Bulk_Action_Response__e platform event using bulkActionLogDetailId and BHHV_BulkActionResult from handle method call.
  2. Create a TR1__BHHV_Bulk_Action_Definition__c record where:
    • Action Name - Your action identifier. The name should be unique. You will send Action Name to BHHV_Bulk_Action_Controller which invokes Bulk Action.
    • Handler Name - The name of your class from step 1.
    • Target Object - TR1__Job__c.
    • Bulk Threshold - Any set of records whose size is above the threshold will be handled in Bulk (asynchronous) mode. Otherwise it will be handled in Mass (synchronous) mode.
    • Bulk Action Limit - Maximum amount of records that can be processed in a single bulk action.
    • Chunk Size - In bulk mode, records are processed in chunks. Chunk size is determined by TR1__BHHV_BulkActionHandler implementation from step 1. If Bulk action fails to execute with SOQL Limit error you can try to decrease Chunk Size.

  3. Create an Aura component for a custom action. After the component is developed it should be configured in the TR1__ATS_Job_Custom_Action__mdt custom Metadata.
  4. From this Aura component invoke TR1__BHHV_BulkActionController.invokeAction(String actionDataJSON). Where actionDataJSON is a JSON string that contains
    • bulkActionDefinitionId - ID of TR1__BHHV_Bulk_Action_Definition__c from step 2.
    • entityId - Job Id.
    • objectIds - List of TR1__Application_V2__c record Ids.
    • parameters - Any parameters that you want to pass to the implementation of TR1__BHHV_BulkActionHandler from step 1. This parameter is passed directly to the handle method therefore its structure is up to the developer’s consideration.