This article outlines the main steps to integrate Greenhouse with Enboarder. Greenhouse's integration utilizes Greenhouse's Webhook feature and Harvest API.
The current integration supports one function/status: "When the Candidate is hiredâ. This event in Greenhouse will launch a new hire into an Enboarder workflow.
Before you begin: Like anything worth doing, integrations take time. Please allow up to 4 weeks for this integration to be completed, this includes time for scoping, development and testing. Youâll also need to have a system expert and/or system administrator to assist in the completion of this integration.
Note: This integration gets triggered immediately after setting it up.
How does it work?
Greenhouse is an ATS and therefore is a one-way integration to Enboarder. This means that while you can launch Workflows directly from Greenhouse, you can't cancel or update details of active Workflows once they're launched. This is a manual process for you or your Enboarder admins.
Integration Setup in Greenhouse portal
Create a Greenhouse API Key:
Log into Greenhouse and go to Configure > Dev Center > API Credential Management.
Create a new API key + manage Permissions. (Permissions needed are around querying Jobs and Users).
Give a name to the API Key (e.g. âEnboarder Integration APIâ or similar).
Copy the API Key value and keep it handy for further configurations.
Please provide below scopes:
Candidates â Get: Retrieve Candidate
Users â
Get: Retrieve User
Get: List Users
Offers â
Get: Retrieve Offer
Get: List Offers
Jobs â
Get: Retrieve Job
Get: List Jobs
Get: Get hiring team
Custom Fields â Get: custom fields
Set up your Greenhouse API Key within Enboarder:
Log into Enboarder as an admin user and go to Settings > Apps and Integrations > App Center.
Click on the Greenhouse tile (or search if you can't see it).
Add your Greenhouse Integration API key, generated in the Greenhouse portal in the previous step, and click on 'Integrate Now'.
There are two flags on this screen. Please tick them based on business requirements:
"Enforce Push To Enboarder" flag - tick this flag if you only want to launch the candidate if the "push to enboarder" tag is present in your Greenhouse payload and its value is yes.
"Enforce Candidate ID as Unique ID" flag - tick this flag if you want to restrict the same candidate from being launched more than once in Enboarder. Enboarder will reject the duplicate payload if sent again for an existing candidate with the same job.
Upon successful integration, Enboarder will show as integrated.Â
Webhook Configuration
These are the steps to configure a Webhook in Greenhouse.
Log into Greenhouse, go to Configure > Dev Center.
Select âWeb Hooksâ
Select âWeb Hooksâ again
Name this webhook: (Create a user-friendly name).
When: âCandidate has been hiredâ.
Endpoint URLs:
AU: https://api.syd.e1.enboarder.com/ats/greenhouse/c/hired
EU: https://api.fra.e1.enboarder.com/ats/greenhouse/c/hired
US: https://api.ore.e1.enboarder.com/ats/greenhouse/c/hired
CA: https://api.can.e1.enboarder.com/ats/greenhouse/c/hiredIf you're not sure which URL is yours, ask your Enboarder Contact
Secret key: Greenhouse API Key created in Step 1 above (for harvest API).
Error recipient email: any admin user email (optional).
Basic Authorization credentials (inside Advanced Settings).
Username: Enboarder API Key (can be found in Enboarder from Settings > Apps and Integrations > Extensions).
Password: blank (Do not specify any value).
General Integration Notes
Candidate Information will be coming from the candidate record in Greenhouse. The first valid Mobile number will be used as a valid mobile in Enboarder for communication. The first email address will be stored in Enboarder for the Candidate.
Offer start date will be âKey Dateâ in Enboarder.
Greenhouse has 4 Hiring team roles. These will be mapped to managers in Enboarder. If the Manager Label matches these roles then those managers will be mapped as Enboarder Stakeholders. Â The Manager Labels that will match will be âHiring Managerâ, âRecruiterâ, âSourcerâ, âCoordinatorâ.
Hiring team Info from Greenhouse will be picked from the first Job record coming from Greenhouse.
Stakeholders will only have an email in Greenhouse. If there are multiple emails associated with manager users in Greenhouse, only the first email will be used.
Custom fields in Greenhouse will be mapped to Category fields in Enboarder. This will be based on name match (case sensitivity is not important). Â Values should also match the value defined in Enboarder. This will be critical to put people in the correct Workflow.
Custom Fields in Enboarder will be matched to Custom fields in Greenhouse.
Department name will be picked from the first job â Departments â first Department if it is not defined as a custom field in the offer, candidate or job sections.
Custom fields mapping for User data type and multi-select data type
In Greenhouse system, the admin can add a custom field of data type user and multi-select as well. Here is a mapping of these two fields in Enboarder
Multi-Select - If the data type of field Multi-Select then the user can select multiple values. In Enboarder system will pick the first value from the selected list and map it to a custom field.
2. User - If the data type of field is User, the system will add two fields in the payload and also try to map it with existing stakeholder
In Enboarder simplified payload, you will see two fields
buddy - Mapped with the name of the user
buddy_email - mapped to the email of the user
Mapping Extra Managers via Custom Fields
Greenhouse only supports 4 manager roles  (Hiring Manager, Recruiter, Sourcer, Coordinator). To map extra managers with mobile numbers of emails Custom fields should be used.  The convention to be used for the âImmutable Field Keyâ value of the custom field should be lower case manager label defined in Enboarder with spaces converted to â_â ( For example if the Stakeholder label in Enboarder is Line Manager, the key in Greenhouse should be line_manager).
To define Mobile or Email for this manager user the Key name convention same as the manager label but suffixed with _mobile or _email. ( Example line_manager_mobile)
Customization for hires to be ignored OR launched in Enboarder
A custom field can be created most appropriately in the Offer section and given the respective values before the candidate is hired.Â
Only one of the below approaches can be used for an account based on your preference.
IGNORE
The placements with any of above rows will be ignored in Enboarder. All others will be launched in Enboarder.
Note: Â If Push to Enboarder key is not part of payload, the workflow will be launched in database. Â During integration if "Enforce Push To Enboarder" checkbox is enabled, then candidate will only launch if "push to Enboarder" tag is present with value "yes"
LAUNCH
The placements with any of above rows will be launched in Enboarder. All others will be ignored in Enboarder.
Outcome of workflow if both keys are present
Location Detail:
The system will search all of the payloads to find if the location exists in the custom fields below. The system will populate the info as per below:
payload â offer â custom fields
payload â Candidate â custom fields
payload â custom fields
payload â jobsâfirst job â Custom fields
Note: If the location type is multi-select, then it will pick the first value selected.
â
If location is not found in the above tags the system will populate the info indicated below:
It will pick the first office address (payload > jobs > the first job > first office), then check if the name attribute is there, then pick this as the location value. Otherwise, it will pick Country and City from the location tag by splitting its value with a comma.
"offices": [
          { "name": "Brisbane", -> Map to Location if present
           "location": "St Lucia, Queensland", -> Map to Country and City.
           "id": 59283
          }
       ]
Creating data in a Test Box
Login to Greenhouse portal and click on Add a candidate button.
Fill in required information like email, name, phone, and assign him a job. If the job is not created then first create a job. Then Click on Add candidate button.
On the Candidate detail page, click on the Move Stage button and select offer.
Click on Manage offer link
Click on Create offer button and fill in the hire date, etc on the offer page.
On the next page click on Mark Candidate as Hired button. Then fill in the information for the offer accepted on the next page and click save.
The candidate is now hired and the webhook will send data to Enboarder!
Parent-Child Mapping
In order to launch workflows into a specific Enboarder account from the one Greenhouse instance, you will need to integrate with the parent account in Enboarder and then have the employee data pushed to a child account based on a criteria in the payload that you configure.
Parent-child flow with the Greenhouse integration
A custom field with the name subsidiarycompanyid will need to be created in the Greenhouse offer section. You will define which values are required in this field
The same values should also be provided to Enboarder support so that they can configure your child accounts with these same values
When the candidate is created in Greenhouse, a value will be added to this field in the offer
When the candidate is moved to the hire stage, the Enboarder webhook is called
Enboarder checks the value of subsidiarycompanyid, and if the ID from the custom field that you created matches with any of the child accounts, the candidate will be launched into a workflow in that child account. If there is no ID match for a child account, then the candidate will be launched into the parent account
Set up in Enboarder
We need a mapping of your child account names and the unique ID of each child account. The child account ID can be any ID that is unique per child account and available in Greenhouse. This ID will be used to find the child account in Enboarder. The ID can be alphanumeric or string. It should be passed to our system as a string.
Example: If you have 3 child accounts in Enboarder and are using the office location city as the child account ID (assuming that you have only one office per city), you will need to send our support team the below data in a CSV file:
| Child Account Name | External id |
1 | Account 1 | Sydney |
2 | Account 2 | Brisbane |
3 | Account 3 | London |
âSet up in Greenhouse
You will need to create a custom field (ideally a Dropdown) with a label set as subsidiarycompanyid. The values of this field should be the same that were providedto our support team above. Ex- ( Sydney, Brisbane, London)
In the offer section, you will need to add the value as shown below:
Got questions? Start a chat with the team using the Chat in the top right of any Enboarder page. If you're setting this up for the first time, always begin by looping in your Customer Success Manager.