Read First Introduction & Overview
The 2cloudnine Bullhorn for Salesforce (BH4SF) Integration provides a flexible and seamless solution for integrating the Bullhorn for Salesforce (BH4SF) and 2cloudnine Payroll. Its primary purpose is the creation and updating of 2cloudnine Assignments from the BH4SF Job and Closing Report objects. With the 2cloudnine BH4SF Integration a recruiter is able to manage their temp and perm employees using BH4SF and have the data seamlessly flow to 2cloudnine. Middle and back office functions are then able to pick up and manage this data without a need to interact with the BH4SF records. The purpose of this user guide is to provide instructions related to the deployment and configuration of the 2cloudnine BH4SF integration. The intended audience for this document is system Administrators, recruiters, Payroll and finance users.Important NotesThe following packages must be installed in the org before you can install the 2cloudnine
BH4SF Integration package.
- 2cloudnine Payroll
- 2cloudnine Time2Pay Extension
- Talent Rover
- Unofficial SF FlowActionsBasePack
- Unofficial SF FlowScreenComponentsBasePack
- Unofficial SF Datatable
Pre-Deployment Steps
Prior to the deployment of components you must first install the following packages. Failure to install these packages will result in a failed deployment validation.Install ‘Unofficial SF Flow’ Packages
The screen flows used throughout the 2cloudnine BH4SF Integration includes functionality provided in the unofficial SF Flow Action and Screen Component Basepacks. These packages must be installed before you can install the 2cloudnine BH4SF Integration package. To install the Flow Action and Screen Component Basepacks:- Go to the Unofficial SF site for the Flow action and screen components basepacks.
- Install the 2 packages into your Salesforce Org (Links provided for both sandbox
and production).
- FlowActionsBasePack
- FlowScreenComponentsBasePack
- Go to the Unofficial SF site for Datatables.
- Install the package into your Salesforce Org (Links provided for both sandbox and production).
Deployment Steps
The 2cloudnine BH4SF Integration is currently only available via the deployment of the required components and not via a package installation. All components are stored in a 2cloudnine managed org and can only be deployed via a request to 2cloudnine. The following document outlines all components that make up the 2cloudnine BH4SF Integration.Post Deployment Configuration 1. Apply Security
The ‘2cloudnine BH4SF Integration’ contains components across the standard salesforce, Bullhorn and 2cloudnine packages that require user access in order to successfully function. Typically all functions (front, middle and back) will require access to these components. To streamline these security requirements, the 2cloudnine BH4SF integration includes a 2cloudnine BH4SF permission set that can be applied to these users.2cloudnine BH4SF Permission Set
A permission set ‘2cloudnine BH4SF’ is included in the deployment and contains access to all the required components. To apply the ‘2cloudnine BH4SF’ Permission Set:- Go to ‘Setup’
- Search for and select ‘Permission Sets’
- Select the ‘2cloudnine BH4SF’ permission set’
- Select the button ‘Manage Assignments’
- Select the button ‘Add Assignments’
- Search for and select each user to assign the permission set to and click Next
- Select the ‘Assign’ button.
2cloudnine Rate Calculator Permission Set
The ‘2cloudnine BH4SF Integration’ utilises the Rate Calculator for management of Assignment Rates and oncosts. Users who require access to manage Rates and related records and functionality of the Rate Calculator, must be granted access to the 2cloudnine Rate Calculator via the ‘2cloudnine Rate Calculator’ permission set. To apply the ‘2cloudnine Rate Calculator’ Permission Set:- Go to ‘Setup’
- Search for and select ‘Permission Sets’
- Select the ‘2cloudnine Rate Calculator’ permission set
- Select the button ‘Manage Assignments’
- Select the button ‘Add Assignments’
- Search for and select each user to assign the permission set to and click Next
- Select the ‘Assign’ button.
2. Flows
The 2cloudnine BH4SF Integration utilises multiple screen and record triggered flows in the creation and synchronisation of records between 2cloudnine and BH4SF. To utilise these flows you must install prerequisite packages from Unofficial SF and then activate the flows.Activate Flows
Prior to using the 2cloudnine BH4SF Integration all flows included within the managed package must be activated. To activate the flows:- Go to Setup
- Search for and select Flows
- Search for and Select ‘2c9 - Create Job Assignment Template’
- Select ‘Activate’
- Repeat these steps for all flows listed in the flow glossary at the bottom of this document.
3. Lightning Page and Page Layout Assignments
The 2cloudnine BH4SF integration includes lightning record pages and page layouts which contain relevant fields and components required for end users. If the customer chooses to retain their own Lightning pages and layouts, ensure these layouts are referenced to verify that all necessary fields and components are included in the customer’s own layouts. For fields in the integration, please refer to the component workbook. Lightning Pages
Page Layouts
Client Page Layout
While the 2cloudnine BH4SF Integration provides a default page layout for the Account object, front office systems commonly use their own record types and page layouts. As a result, you will typically need to manually add the necessary 2cloudnine fields to your custom Account layout. However, with the introduction of Assignment Templates (refer to the 2cloudnine Bullhorn for Salesforce (BH4SF) Integration User Guide), most 2cloudnine fields are no longer required on the Account record. When updating an existing front office Account layout, only the following fields and related lists are generally needed:Job & Closing Report Page Layouts
The 2cloudnine BH4SF does not contain page layouts for the Job & Closing report objects by default. This is because these pages are usually heavily customised in each org, based upon their front office requirements. As a result we recommend adding the following fields and related lists to your respective Job and Closing report layouts. JOB
You MUST add the field ‘Assignment Template’ to the Job page layout. If this is not
done, any cloned Jobs will not correctly copy across the correct Assignment
Template data.
CLOSING REPORT
4. Enable Template Validation Override
Validations on the Assignment object are a critical part of the 2c9 product, designed to ensure data integrity by enforcing strict criteria for record creation and updates. These validations prevent errors and maintain consistency across records. However, for the custom ‘Template’ record type, these validations need to be bypassed to accommodate the streamlined data entry requirements specific to templates. This functionality ensures that Assignment records for ‘Template’ can be successfully created and updated with minimal data. To achieve this, validation overrides are applied to the Assignment object for the ‘Template’ record type. This approach allows flexibility for templates while ensuring that all validations remain enforced for other record types, such as ‘Temp,’ to preserve overall data integrity. For more details on Assignment Templates, refer to the user guide. To enable Assignment validation overrides for the ‘Template’ record type:- Go to Setup
- Search for and select ‘Custom Settings’
- Locate the custom setting labelled ‘Disable Assignment RecordType Validation’ and click ‘Manage’
- Click ‘New’
- Enter the required details:
- Name = A name for the setting, e.g. ‘Template’
- Custom Record Type Id = Record Type Id of the Template from the above step (e.g. 0126F000001MobVQAS)
- Click ‘Save’
5. Enable Invoice Setting Override
Currently the 2cloudnine product only supports the creation of 1 set of Invoice Settings per Account. If a user attempts to add a second set (e.g. A different Invoice Entity), the system will fire a validation and prevent the record from saving. Due to this limitation and the requirement for staffing agencies to have multiple Invoice Settings per Account, the use of Invoice Setting overrides are required, ensuring a single Account can have as many different Invoice Settings as required. To enable Invoice Setting- Go to Setup
- Search for and select ‘Custom Settings’
- Locate the custom setting labelled ‘Override TC9P Validation’ and select ‘Manage’
- Select the ‘Edit’ button.
- Set ‘Override Invoice Setting’ to TRUE.
- Select ‘Save’.
6. Update FEE Record Type
The 2cloudnine BH4SF Integration allows users to generate Invoiceable Fee records from the Account, Job, Closing Report and Assignment objects. To support this, a custom record type called ‘FEE’ has been added to both the Invoiceable Fee and Invoice Item objects. This helps consolidate non-permanent placement fees into a single record type, simplifying system maintenance. While the FEE record types are included with the components, you must ensure that all required values are added to the Fee Type picklist. To assign the Fee Type picklist values to the FEE record types:- Go to Setup
- Select Object Manager
- Search for and select the ‘Invoice Item’ object
- Select ‘Record Types’
- Select the ‘FEE’ record type
- Select the ‘Fee Type’ picklist.
- Assign all ‘Available’ values into the ‘Selected Values’ and select Save.
- Repeat for the Invoiceable Fee and Pay Transaction objects.
7. Create Default Records (Optional)
Global Assignment Templates
Global Assignment Templates are predefined “Template” Assignment records linked to a parent Account. These templates can be automatically copied when creating new Accounts, streamlining setup and ensuring consistency. Why Use Global Assignment Templates?- Reduces administrative effort when onboarding new Accounts.
- Improves data integrity by maintaining consistent default values.
- Flexible setup—an org can have:
- A single global Assignment Template.
- Multiple templates linked to one or more Template Accounts.
- Go to the app launcher and search for and select ‘Assignments’
- Select the ‘New’ button
- Select the ‘Template’ Record Type
- Complete all relevant information that would apply to a Global template ensuring the client is set to your global template account.
- Select Save
- Repeat steps 1-5 for each template you require
Scenario 1: Single Entity Org (Basic Setup)
A customer with a single Payment and Invoice Entity wants a simple way to manage
templates.
- They create an Account record named “Template Account.”
- They then set up one Assignment Template linked to this account, defining key global defaults like the Payment Entity and Schedules.
Scenario 2: Single Entity Org (Advanced Setup)
A customer with a single Payment and Invoice Entity needs more flexibility, such as
making templates specific to Job Roles.
- They create an Account record named “Template Account.”
- Instead of one, they create multiple Assignment Templates under this account, each tailored with specific details like: Interpretation Rules, Rate Calculator Templates and other Job Role specific information.
Scenario 3: Multi-Entity Org
A customer has two separate Payment and Invoice Entities and wants to ensure that
new Accounts only have access to the templates relevant to their entity.
- They create two Template Account records:
- “Entity 1 Template Account”
- “Entity 2 Template Account”
- For each Template Account, they create Assignment Templates with details specific to that entity, such as the Payment Entity and Schedules.
Global Invoice Settings Templates
Like Assignment Templates, Global Invoice Settings allow default middle and back-office data to be applied to new or updated Account records. The Global Invoice Setting Template is linked to the Assignment Template created in the previous step. Within each Invoice Setting Template Group, four required Invoice Settings must be configured. To create a Global Invoice Setting Template, configure related Invoice Settings, and apply them to an Assignment Template:- Open the app launcher, search for, and select Template Groups’
- Select the ‘New’ button
- Select the ‘Invoice Settings’ Record Type
- Enter a name for the template group and select Save.
- Open the newly created Template Group, go to the Related tab, and click New under Invoice Settings
- Create the 4 required Invoice Setting records (Refer to the QRG for details).
- Go the first Assignment template from the above setup
- Locate the lookup field ‘Invoice Settings Template Group’ and update it with the newly created Invoice Setting Template Group.
- Repeat steps 1-8 for all required global Invoice Settings Templates.
8. Update Custom Metadata (Conditionally Compulsory)
When using Global Assignment Templates, the following configuration is mandatory. This step ensures that Template Accounts (created in the previous step) are assigned to a defined picklist value. This picklist allows new or updated Account records to determine the appropriate source for their Assignment Templates.Update Picklists
The integration includes picklist fields on both the Account object and Assignment Templates custom metadata object. These picklist values are used to align Account records with custom metadata for querying purposes. Therefore, the values in these picklists must match. The values of these fields are customer-driven based on the Template Account setup. For example, if Template Accounts are configured by Payment Entity, it would be logical to define the picklist values using the names of the Payment Entities. To update the Account picklist:- Go to Setup > Object Manager
- Search for and select ‘Account’
- Select ‘Fields and Relationships’
- Select ‘Assignment Template Group’.
- Select ‘New’ in the values section
- Add any required picklist values
- Select Save.
- Go to Setup
- Search for and select ‘Custom Metadata Types’
- Select ‘Assignment Templates’
- Select ‘Assignment Template Group’
- Select ‘New’ in the values section
- Add any required picklist values
- Select Save.
Create Custom Metadata
This configuration step maps the Template Accounts to the picklist values from the previous step. To create the custom metadata- Go to Setup
- Search for and select ‘Custom Metadata Types’
- Select ‘Manage Records’ on ‘Assignment Templates’
- Select ‘New’
-
Enter all fields:
- Label - The name of the mapping (e.g. Payment Entity)
- Assignment Template Name - The API name, this defaults from the label.
- Assignment Template Group - The picklist value used to map the Accounts ‘Assignment Template Group’ to this custom metadata.
- Account ID - The ID of the template Account that will store the Assignment Templates.
- Select Save
- Repeat steps 1-6 for all required mappings.
ExampleUsing scenario 3 from the global template scenario above, two template Accounts have
been created:
- Entity 1 Template Account
- Entity 2 Template Account
- Label = Entity 1 Mapping
- Assignment Template Name = Entity_1_Mapping
- Assignment Template Group = Entity 1 (As configured in above step)
- Account ID = Entity 1 Template Account > Record ID
- Label = Entity 2 Mapping
- Assignment Template Name = Entity_2_Mapping
- Assignment Template Group = Entity 2 (As configured in above step)
- Account ID = Entity 2 Template Account > Record ID