Get Legacy Report Field Map
Changed onReturns the mapping from the field identifiers the deprecated Reports > Get Company Report (get-company-report) endpoint emitted to the field names the Custom Reports and Datasets endpoints use today. Use it to repoint automations that still reference legacy identifiers — a field that came back as location before the report migration is jobInformationLocation afterward. To translate legacy report IDs rather than field identifiers, use Get Legacy Report ID Map (get-legacy-report-id-map) instead.
The map covers the whole company and is not paginated. It is not scoped to the calling user's reports or field permissions, so a field appearing here does not mean the caller can read its data.
A legacy identifier can map to more than one field. The legacy report emitted an amount column and its currency-code column under a single identifier, so payRate maps to both compensationPayRate and compensationPayRateCurrencyCode. The identifier alone cannot tell you which one a given report used, so compare type or fieldLabel against the column you are replacing. An identifier that is absent from the response has no equivalent field at all — that column was lost in the migration, and there is nothing to point an automation at.
Some legacy fields encoded a category in the field itself: a legacy "Vacation" time off field returned only vacation hours. These map to a general field plus a qualifier, and you have to apply it. If you request the mapped fieldName on its own, you get every category rather than the one the legacy field returned. The operator differs by field — time off policy qualifiers use equal, while time off category, benefit plan, and training qualifiers use includes and expect the value wrapped in an array. To reproduce a legacy "Safety Training" due-date column, request trainingDueDate and filter {"field": "trainingName", "operator": "includes", "value": ["Safety Training"]}.
Qualifier values are legacy names carried over without validation, so a category, plan, or training that has since been renamed or removed will produce a qualifier that matches nothing. Check the value against Datasets > Get Field Options (v1.2) (get-field-options-v1_2) before repointing an automation.
The map is cached per account for up to an hour, so a field that was just added or renamed may not appear immediately.
OAuth Scopes: report
Request
- Base URLhttps://companySubDomain.bamboohr.com
- AuthOAuth 2Authorization code/authorize.phpToken URL/token.phpScopesreport
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Response
Returns an object containing a single mappings array, with one entry per legacy-identifier-to-field mapping in the account.
Example response
{
"mappings": [
{
"legacyFieldId": "location",
"fieldName": "jobInformationLocation",
"fieldLabel": "Location",
"type": "text",
"entityName": "jobInformation",
"qualifier": {
"fieldName": "timeOffCategory",
"operator": "includes",
"value": "Vacation"
}
}
]
}Changes
- info
endpoint added
- info