Okta’s BambooHR integration, by default, only provides the first and last names of the user’s manager/supervisor, whereas the manager’s email address may be more useful for other downstream apps.
BambooHR has an unpublished field in their API called supervisorEmail. However, this field is not an option in the Okta BambooHR schema GUI. The workaround is to use the Okta API to add the attribute.
- BambooHR integration
- API
- Okta Integration Network (OIN)
PLEASE READ BEFORE STARTING: This is just an example. Please use this information at your own risk, as the steps could change when a product update is released. It is recommended that this be tested in a test/preview environment.
The attribute needs to exist on the BambooHR side and in Okta for it to be synced.
These are the required steps that will create the attribute in Okta under the Bamboo application profile:
- Create an admin-level API token using these instructions.
- In Okta Admin Console, go to the BambooHR app and then grab the instance ID from the URL in the address bar.
- For example,
https://<OKTA-DOMAIN>-admin.okta.com/admin/app/bamboohr/instance/<THIS IS THE BAMBOOHR INSTANCE ID>/#tab-general
- For example,
- Open Terminal and run the code below, replacing
<...>where necessary. - Now, in Okta Admin Console, when checking back in the BambooHR profile (Directory > Profile Editor), the Supervisor Email will be seen as a custom attribute.
- Set up the preferred mapping from BambooHR to Okta profiles. If the values do not update immediately, a new import may be required.
- For safety, delete the Okta API token once finished.
Preferred alternative: Use Postman and Okta Schemas API.
- The API call with Postman POST:
{{orgurl}}/api/v1/meta/schemas/apps/{{AppInstanceId}}/default
NOTE: Do not forget to set the headers for Authorization ( SSWS {{apikey}}, Content-Type (application/json), and Accept (application/json)).
- Here is the RAW call if no specific tools are used:
curl -v -X POST -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: SSWS <OKTA=API-TOKEN>" -d '{ "definitions": { "custom": { "id": "#custom", "type": "object", "properties": { "supervisorEmail": { "title": "Supervisor Email", "description": "The email address of this users supervisor", "externalName": "supervisorEmail", "scope": "NONE", "type": "string", "required": false } }, "required": [] } } }' "https://<OKTA-DOMAIN>/api/v1/meta/schemas/apps/<BAMBOOHR INSTANCE ID>/default"
