PeopleForce

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 added
  • employee_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 / PATCH on 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

FieldTypeNotes
data.idintegerThe job profile history record ID, not the job profile ID.
data.attributes.effective_ondateThe date the record takes effect.
data.employeeobjectEmployee identity: id, employee_number, first_name, last_name, and email. employee_number is null when unset.
data.job_profileobjectThe assigned job profile: id and name.
data.job_groupobject or nullThe job group the profile belongs to: id and name. null if the profile has no job group.
data.metaobjectcreated_at and updated_at for the history record.

On this page