PeopleForce

Early access

Company API v4 is the next-generation API and is under active development. Endpoints and fields may still change.

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