Employee job profile
Webhook topics and example payloads for employee job profile records.
Alongside an employee's profile attributes, PeopleForce keeps a job profile history for each employee. As with position and salary, add a new record rather than editing the existing one so the history of moves is preserved.
The job profile record emits these webhooks:
employee_job_profile_create— a job profile record is addedemployee_job_profile_update— a job profile record is updated
Both fire immediately for any employee, active or terminated.
When they fire
A delivery is sent when the record is saved through any of these paths:
- the Job profile section of an employee's profile
- the Public API (
POST/PATCHon an employee's job profiles) - an approved employee change request that adds a job profile record — this
emits
employee_job_profile_create - compliance workforce-planning verification, which adds a record
employee_job_profile_update fires only when the save changes at least one
stored value. A request that submits identical values sends nothing.
A failed save sends nothing.
Employee job profile created
Action: employee_job_profile_create.
{
"action": "employee_job_profile_create",
"data": {
"id": 4,
"attributes": {
"effective_on": "2026-08-14"
},
"employee": {
"id": 6,
"employee_number": "IT-1029",
"first_name": "Charles",
"last_name": "Lancaster",
"email": "charles@example.com"
},
"job_profile": {
"id": 2,
"name": "Senior Developer"
},
"job_group": {
"id": 1,
"name": "Engineering"
},
"meta": {
"created_at": "2026-08-14T14:18:40.723Z",
"updated_at": "2026-08-14T14:18:40.723Z"
}
}
}Employee job profile updated
Action: employee_job_profile_update. The payload shape matches
employee_job_profile_create, with the updated values.
{
"action": "employee_job_profile_update",
"data": {
"id": 2,
"attributes": {
"effective_on": "2026-08-01"
},
"employee": {
"id": 4,
"employee_number": null,
"first_name": "Alex",
"last_name": "Johnstone",
"email": "alex@example.com"
},
"job_profile": {
"id": 1,
"name": "Developer"
},
"job_group": {
"id": 1,
"name": "Engineering"
},
"meta": {
"created_at": "2026-08-14T14:15:40.159Z",
"updated_at": "2026-08-14T14:18:09.037Z"
}
}
}Field reference
| Field | Type | Notes |
|---|---|---|
data.id | integer | The job profile history record ID, not the job profile ID. |
data.attributes.effective_on | date | The date the record takes effect. |
data.employee | object | Employee identity: id, employee_number, first_name, last_name, and email. employee_number is null when unset. |
data.job_profile | object | The assigned job profile: id and name. |
data.job_group | object or null | The job group the profile belongs to: id and name. null if the profile has no job group. |
data.meta | object | created_at and updated_at for the history record. |
