Off Limits Policies and Off Limits Policy Line Items

Overview

In Executive Search, commercial contracts and agreements with clientsClosed A Company is the organization where the contact works. This can also be called the Client. often include policies and clauses that can not be breached. These can include clauses preventing a clientClosed A Company is the organization where the contact works. This can also be called the Client.'s staff from being contacted in regards to other rolesClosed A job (vacancy, position, role) is an opening for which a customer's client needs a placement.. CandidatesClosed A person looking for a job. A candidate can also be referred to as a Job Seeker, Applicant, or Provider. that should be excluded from being contacted for a certain positionClosed A job (vacancy, position, role) is an opening for which a customer's client needs a placement. are referred to as Off Limits candidates. This article covers Off Limits Policies and Off Limits Policy Line Items. Use the links below to skip to a specific section:

Off Limits Policies

A CandidateClosed A person looking for a job. A candidate can also be referred to as a Job Seeker, Applicant, or Provider. can become Off Limits as a result of:

To manage and track the assignment of the Off Limits attribute to candidates, we use Off Limits policies to define the criteria for a Contact, Account, ATS stage, or Job Role to become Off Limits.

One important functionality of the Off Limits feature is the calculation/recalculation mechanism, used to ensure that the Candidates are only Off Limits while a policy is applicable to them. Bullhorn for Salesforce continually checks if candidates:

  • Start to meet a policy.
  • Still meet the criteria of a policy.
  • No longer meet the criteria of a policy.

Bullhorn for Salesforce achieves this by performing a recalculation when required. A list of Off Limits recalculation triggers is provided later in this document.

Overall, the Off Limits UserClosed In Salesforce terminology, this is anybody that has login access to an instance. In BH4SF instances, usually the staff of recruiting companies functionality can be divided in two main parts:

  • Definition of Off Limits rules and consequent tagging of Candidates as Off Limits.
  • Enforcement of the Off Limits constraint.

Off Limits Policy Logic

This section focuses on how the Off Limit logic works and how users control how the logic is applied to Contacts. Three objects are mainly responsible for the configuration and tracking of the Off Limits attribute:

  • Off Limit Policy (TR1__Off_Limit_Policy__c)
  • Off Limit Info (TR1__Off_Limit_Info__c)
  • Off Limit Line Item (TR1__Off_Limit_Line_Item__c)

Off Limits Policy Object

Off Limits Policies are configured by creating a record against the Off Limit Policy object. The following four types of Off Limits Policies are available out of the box:

  • Account Policy: Created for nominated AccountsClosed A business entity/company (and optionally for any associated child account in the hierarchy). Once created, the recalculation mechanism triggers and finds all Candidates with an Employment History record related to the associated Account and marked as "current" and verified. Contacts meeting those criteria become Off Limits.
  • Contact Policy: Created for nominated contacts and result in those Contacts becoming immediately Off Limits.
  • ATS Stage Policy: Define a specific ATS stage as Off Limits (or optionally an ATS stage for a certain Job record type and/or Job Status). No Contact becomes Off Limits as a direct consequence of the policy being created. Instead, Contacts become Off Limits when they are moved to an applicable ATS Stage.
  • Job Role Policy: Define a specific Job Role as Off Limits (or optionally a Job Role for a certain Job record type and/or Job Status). No Contact becomes Off Limits as a direct consequence of the policy being created. Instead, Contacts only become Off Limits when they are assigned to the Job Role.
    • ATS Stage policies and Job Role policies are also referred to as "System Policies" and are similar in behavior.

Users should disable policies rather than delete them. Manual deletion is available, but it results in the policy and all related Off Limit Line Items being deleted. The Delete permission should only be granted to selected users or profiles, and these users should be made aware of the implications of deleting a policy.

Additionally, when a policy is deleted manually and there is a very high number of Off Limit Policy Line Items related to it, users might be unable to complete the operation due to errors: “Too many line item deletion trigger DML exception”. A setting can be used to set a threshold over which the operation is performed asynchronously to avoid errors. See Off Limits: Configuration Guide for detailed steps.

Off Limits Line Item Object

When a policy is created or updated, the recalculation mechanism finds all Candidates that are affected by the policy and creates an Off Limit Line Item record for each one.

To give users visibility on any Off Limit Line Item associated with a Contact (or Account), an Off Limit Policies component can be added to the page layout. This enables users to quickly check the status of any Off Limit Line Item (whether it is active or not), the start and end date, and any other relevant data. It also allows users to enable or disable an Off Limit Line Item and to enter a reason for the action.

To check the customization options available for this component, please refer to theOff Limits: Configuration Guide.

If an Off Limit Line Item was disabled by the system, it cannot be re-enabled. The Enable button is grayed out.

The Off Limit Line Item record identifies a Candidate as being Off Limits. Candidates are Off Limits for as long as they have an active Off Limit Line Item record applied and they stop being Off Limits when the Off Limit Line Item becomes disabled.

For detailed information on the scenarios when Off Limit Line Items are created and disabled see the Creating, Updating and Disabling or Deleting Off Limit Line Items section.

Off Limit Line Items Order of Execution

Based on Out of the Box (OOTB) Rank Logic

Based on Global Rank Logic

The main difference with the OOTB Rank logic is that if the Global Rank configuration is preferred, then not only the Rank value but also the behavior type (Warn/Block) will be factored in when the order of execution is calculated.

The Rank field is part of the TR1_Off_Limit_Policy_c object and is propagated to related Off Limit Line Items records. Here’s how the Rank logic works:

  • The Rank field is populated by number, the lowest number having the highest precedence. The lowest number is one. Negative numbers are not allowed.
  • If the rank of a policy changes, it does not propagate to previously created related Line Items.
  • In the case of multiple Line Items applying to the same scenario, the Rank logic is enforced only if all Line Items have a rank value. If not, then we fall back on default logic. In the case of conflict when applying the Rank logic, we fall back on default logic.
  • The Rank logic only considers Rank attribute, not behavior type (Warn/Block).
  • If there are multiple Line Items, the one with the lowest Rank wins.
  • If there are multiple Line Items with same rank the one with longest duration wins.
  • If Duration is the same, then the Line Item related to the most recently created policy wins.

Users are allowed to update the fields after the policy is created, except for the following cases:

  • If users update the Rank field only, the update is allowed.
  • If users update the ‘Type’ field after changing the Rank value, this triggers a check of the default values setting: when a different value for Rank is detected, the following message is shown and the Rank field value is reverted back to the default value.

There is an option to override the OOTB Rank logic and set a default value at Org level to have the Rank field automatically populated on policy record creation. For details, see the Configure Org defaults for Policy Rank and Policy Rank +Type section of Off Limits: Configuration Guide.

Fall Back Logic

This logic is used if Rank is not set. When there are multiple Off Limit Line Items affecting the same Contact, the current order of execution is:

  • Strictest: Off Limit Line Items configured for Block behavior take precedence over Off Limit Line Items configured for Warn behavior.
  • Most Recent and Strictest: When there are several Off Limit Line Items configured for Block behavior, the one most recently created takes precedence.
  • Most Recent: If there are no Off Limit Line Items configured for Block behavior, the most recently created takes precedence.

If there are multiple Off Limit Line Items with the same created date, like when multiple Line Item records are created in one transaction, the Off Limit Line Item that has the latest End Date takes precedence. If the Duration is the same, then the one associated with the most recently created policy takes precedence.

Off Limit Info Object

Technically, the Off Limit Line Item object is a junction object between the Off Limit Policy object and the Off Limit Info object. Off Limit Info records can be described as summary records. They are generated when a policy applies to a Contact and they show all the information relevant to that Contact/Policy.

Off Limits Contacts will only have one Off Limit Info record associated with them per Policy, but they can be associated with multiple Off Limit Line Item records.

Off Limit Info plays a vital role for the recalculation mechanism. However, since all its field values are calculated through back end logic, it is not necessary for the end user to be familiar with it.

Identification of Off Limits Candidates and Enforcement of the Restrictions

The Off Limits Icon

Users will see this customizable icon next to Off Limits Contacts and Accounts in the following locations:

Enforcement of Off Limits Restrictions

Bullhorn for Salesforce has a number of actions that users perform after selecting one or more Candidates. Once the selection is made and the action chosen, that’s when Bullhorn for Salesforce checks if any of the selected Candidates are marked as Off Limits.

Bullhorn for Salesforce identifies an Off Limits Checkpoint as a trigger to check if an Off Limits action needs to be applied. If an Off Limits Candidate is identified at a checkpoint, users receive a notification, and one of two dialogs occurs:

  • Warn: Users are notified of Off Limits Candidates and can choose if they want to include them in the action or not.
  • Block: Users are notified of Off Limits Candidates and are prevented from including them in the action.

Separate documentation is available with full details on checkpoint logic and the configuration of the Warn/Block behavior. See Off Limits Policies: Warn/Block Behavior for more information.

The Recalculation Mechanism

This is a high-level list of all the events or actions that trigger a recalculation. See

  • Create/Update/Delete Off Limit Policy record (update of some fields only triggers recalculation)
  • Disable/Enable Off Limit Policy
  • Create/Update/Delete Application V2Closed A BH4SF custom object introduced when new data model ATSv2 was added to the core product record (update of some fields only triggers recalculation)
  • Create/Update/Delete Employment History record (update of some fields only triggers recalculation)
  • Create/Update/Delete Job Role record (update of any field triggers recalculation)
  • Update Job record (update of some fields only triggers recalculation)

Additional Information

Creating, Updating and Disabling or Deleting Off Limit Line Items

When Off Limit Line Items records are created and disabled, this determines when candidates become Off Limits or are no longer Off Limits.

When is an Off Limit Line Item Created?

  • When a Policy is created:
    • When a Contact policy is created: An Off Limit Line Item and an Off Limit Info record are created for that Contact.
    • When an Account policy is created:
      • An Off Limit Line Item is created for all the candidates related to the parent Account via Employment History (and to the Candidates related to any child account if the same policy is propagated to them).
      • Off Limit Line Items are created for Account records for data consistency.
      • An Off Limit Info record is created.
    • When an ATS Stage/Job Role policy is created: No Off Limit Line Item is created.
  • When a Candidate is applied to a Job or a Candidate is moved through ATS:
    • An Off Limit Line Item is created if there’s a match against an ATS stage policy.
    • An Off Limit Info record is created.
  • When a Job Role is added or changed:
    • An Off Limit Line Item is created if there’s a match against a Job Role policy.
    • An Off Limit Info record also is created.
  • When designated Job fields are changed and the Job has stages or roles referenced in an ATS Stage or Job Role policy:
    • An Off Limit Line Item is created.
    • An Off Limit Info record is created.

When an ATS Stages Policy or Job Role Policy is created and activated or deactivated, only future stage changes are considered for Off Limit Line Items creation.

When is an Off Limit Line Item Updated?

  • When a Policy is updated:
    • When a Contact policy is updated:
      • No changes on related Off Limit Line Item records are applied.
      • If the start or end date are changed, there’s no update on Off Limit Line Item record as BH4SF uses the policy lookup for reference.
      • Except for the case when the policy is disabled, then the Off Limit Line Item is also disabled.
      • The related Off Limit Info record is marked as being flagged for recalculation.
    • When an Account policy is updated:
      • No changes are made to Off Limit Line Items for the Candidates related to the parent Account via Employment History.
      • If the start or end date are changed, there’s no update on Off Limit Line Item records as Bullhorn for Salesforce uses the policy lookup for reference.
      • Except for the case when the policy is disabled, then the Off Limit Line Item is also disabled.
      • The related Off Limit Info record is marked as "Dirty" (meaning flagged for recalculation).
    • When an ATS Stage/Job Role policy is updated:
      • The Off Limit Line Item records of Contacts matching the policies only are updated.
      • If the policy Duration is updated, it does not trigger an update to the Off Limit Line Item Duration.
      • If the policy is disabled, the default behavior is that the Off Limit Line Item remains enabled until it has run its course. But it is possible to configure the policy so that any associated Off Limit Line Item is disabled if the policy gets disabled.
      • The related Off Limit Info record is marked as "Dirty" (meaning flagged for recalculation).
  • When a candidate is progressed in ATS: The related Off Limit Info record is marked as being flagged for recalculation.
  • When a Job Role is added or changed:The related Off Limit Info record is marked as being flagged for recalculation.
  • When designated Job fields are changed and the Job has stages or roles referenced in an ATS Stage or Job Role policy: The related Off Limit Info record is marked as being flagged for recalculation

When is an Off Limit Line Item Disabled or Deleted?

An Off Limit Line Item gets automatically disabled when the end date recorded on it equals "Today". A daily batch runs in the background and identifies all expired badges.

If an Account Policy or a Contact Policy is disabled or deleted, the related Off Limit Line Items are no longer relevant. They are excluded from calculation or recalculations.

For ATS Stage Policies and Job Roles policies, the behavior is slightly different: if the policy is disabled, the default behavior is that the associated Off Limit Line Item remains enabled until it has run its course. But it is possible to configure the policy so that any associated Off Limit Line Item is disabled if the policy gets disabled.

This is what happens automatically:

  • Policy is disabled: Related Off Limit Line Items are disabled for Account and Contact policies. For system policies, whether the related Off Limit Line Items are disabled or not depends on configuration.
  • Policy is manually deleted: Related Off Limit Line Items are deleted. Best practice for users is to disable policies, not to delete them as all attached data will be lost. Users deleting policies receive a warning.

Off Limits Recalculation Trigger Points

Create/Update/Delete Off Limit Policy Record

Recalculation is triggered when any Off Limit Policy record is created, changed or deleted.

Policy Record is Created Record is Updated Record is Deleted
Contact Related Off Limit Info record is created and marked as “Dirty”.

Related Off Limit Info record is updated and marked as “Dirty”.

Only triggered when Reason and/or Active fields are updated.

Related Off Limit Info record only gets deactivated if there are no active Off Limit Line Items after the policy is deleted.

If there are other active policies associated with the same Contact, the Off Limit Info record is unaffected. If there are no other active policies but active Line Items, the Off Limit Info record gets updated.

Account Related Off Limit Info record is created for Account (and child accounts) and marked as “Dirty” Related Off Limit Info record is created for all Contacts with current Employment History for policy Account and marked as “Dirty”.

Related Off Limit Info record is updated and marked as “Dirty” for the Account and any child accounts.

Only triggered when Reason and/or Active fields are updated.

Related Off Limit Info record only gets deactivated if there are no active Off Limit Line Items after the policy is deleted.

If there are other active policies associated with the same Contact, the Off Limit Info record is unaffected. If there are no other active policies but active Line Items, the Off Limit Info record gets updated.

ATS Stage /Job Role

No action is triggered.

Related Off Limit Info record is only created and marked as "Dirty" when a Contact is moved to ATS Stage/ assigned a Job Role after the policy is enabled.

Recalculation is triggered when these fields on a related Job record are updated: Job Status, Job Closed Reason, Executive/Non-Executive JobsClosed A job (vacancy, position, role) is an opening for which a customer's client needs a placement..

Related Off Limit Info record only gets deactivated if there are no active Off Limit Line Items after the policy is deleted.

If there are other active policies associated with the same Contact, the Off Limit Info record is unaffected. If there are no other active policies but active Line Items, the Off Limit Info record gets updated.

Create/Update/Delete Other Managed Object Record

Recalculation is triggered when record is created, changed or deleted.

Object Record is Created Record is Updated Record is Delete
Applicationv2 Recalculation is triggered when an Applicationv2 record is created. Recalculation is triggered when these Applicationv2 fields are updated: Stage, Reject/Unreject. Recalculation is triggered when an Applicationv2 record is deleted.
Employment History Recalculation is triggered when an Employment History record is created. Recalculation is triggered when these Employment History fields are updated: Account, Verified, Current. Recalculation is triggered when an Employment History record is deleted.
Job Role Recalculation is triggered when a Job Role record is created. Recalculation is triggered when any Job Role field is updated. Recalculation is triggered when a Job Role record is deleted.
Job N/A Recalculation is triggered when these Job fields are updated: Job Status, Record Type, Job Closed Reason, Executive/Non-Executive Jobs. N/A

Enable/Disable Off Limit Policy

This section is only applicable to Account Policies and Contact Policies.

Recalculation is triggered when the Active checkbox is updated. Checking or unchecking the Active checkbox on a policy (enabling or disabling a policy) updates the Active checkbox on the related Off Limit Info record and results in the record being marked as "Dirty" or being disabled.

Batches Triggering Recalculations

Batch Setting Action
OffLimitPolicyRecalcTodayStartDateBatch Batch for enabling a policy when Start Date = Today (Daily is required).
OffLimitPolicyDisablePassedBatch Batch for disabling policy when End Date=Today(Daily is required).
OLLineItemDisableExpiredBatch Batch to update expired line items to disable (Daily is required).
EmploymentHistoryUpdateCurrentBatch Batch to mark Current__c = false when EmploymentHistory__c.End_Date__c < TODAY (Daily is required).