Aptem Webhooks: User type

Overview

This webhook sends notifications when User accounts of type Learner or Participant are created or updated.
It does not support other user types (e.g. Admin, Employer).

The payload for a User webhook mirrors the payload of a GetUserById API response:

  • id

  • status

  • jobActiveSync

  • username

  • firstName

  • lastName

  • email

  • phone

  • caseOwnerId

  • caseOwnerFirstName

  • caseOwnerLastName

  • referenceNumber

  • groupId

  • dateOfBirth

  • postCode

  • address1

  • address2

  • townCity

  • countyState

  • programmeId

  • programmeStartDate

  • programmeEndDate

  • employerId

  • employerAddressId

  • mentorId

  • IAEnglish

  • IAMath

  • IAICT

  • diagEnglish

  • diagMath

  • diagIct

  • managerFirstName

  • managerLastName

  • managerEmail

  • managerPhone

  • title

  • preferredName

  • gender

  • personalEmail

  • authenticationType

  • authType

  • idP

  • samlUserId

  • recognisedPriorLearningHours

  • plannedHours

  • weeklyHours

  • nationalInsuranceNumber

  • programmeStatus

  • country

  • landline

  • managerId

  • learningProviderId

  • AND event (“update” or “create”)

 

Create event

For the Create event type, the webhook is sent once a new learner is created in the tenant.

Note: A Create webhook is typically followed by an Update webhook. This is because some user properties (e.g. address, group, programme) are only assigned after the learner is created.

Payload

The payload for Create event type includes “event”:”create” field.

Example: 

{
  "id": 5060,
  "status": "Prospect",
  "jobActiveSync": false,
  "username": "",
  "firstName": "Patricia",
  "lastName": "Holland",
  "email": "",
  "phone": null,
  "caseOwnerId": 0,
  "caseOwnerFirstName": null,
  "caseOwnerLastName": null,
  "referenceNumber": null,
  "groupId": 0,
  "dateOfBirth": "",
  "postCode": null,
  "address1": null,
  "address2": null,
  "townCity": null,
  "countyState": null,
  "programmeId": null,
  "programmeStartDate": null,
  "programmeEndDate": null,
  "employerId": null,
  "employerAddressId": null,
  "mentorId": null,
  "IAEnglish": null,
  "IAMath": null,
  "IAICT": null,
  "diagEnglish": null,
  "diagMath": null,
  "diagIct": null,
  "managerFirstName": null,
  "managerLastName": null,
  "managerEmail": null,
  "managerPhone": null,
  "title": null,
  "preferredName": null,
  "gender": null,
  "personalEmail": null,
  "authenticationType": "Aptem",
  "authType": "Aptem",
  "idP": null,
  "samlUserId": null,
  "recognisedPriorLearningHours": null,
  "plannedHours": null,
  "weeklyHours": null,
  "nationalInsuranceNumber": null,
  "programmeStatus": null,
  "country": null,
  "landline": null,
  "managerId": null,
  "learningProviderId": null,
  "event": "create"
}

 

Update event

For the Update event type, the webhook is triggered when specific user fields are updated.

The webhook is sent when changes occur to key fields, including:

  • id

  • firstName

  • lastName

  • username

  • title

  • preferredName

  • gender

  • email

  • personalEmail

  • dateOfBirth

  • postCode

  • address1

  • address2

  • townCity

  • countyState

  • phone (Mobile phone number)

  • status (Subscription status)

  • caseOwnerId

  • referenceNumber

  • groupId

  • employerId

  • managerId

  • employerAddressId

  • authenticationType

  • idP (‘SAML Identity provider’ field from the Edit User screen)

  • programmeId (including scenario where a learner is moved to an account programme)

  • programmeStartDate

  • programmeEndDate

Notes

  • Due to the API returning only a single groupId, changes to group assignments across multiple hierarchies may not always trigger a webhook. A webhook is only sent when the groupId value itself changes in the API response.
  • Updates to the following fields alone will not trigger a webhook:

    • Country
    • Programme Status
    • Landline
    • CaseOwnerFirstName
    • CaseOwnerLastName
    • NationalInsuranceNumber
    • ManagerFirstName
    • ManagerLastName
    • ManagerEmail
    • ManagerPhone
    • MentorId
    • LearningProviderId
    • authType
    • samlUserId
    • recognisedPriorLearningHours
    • plannedHours
    • weeklyHours
    • IAEnglish
    • IAMath
    • IAICT
    • diagEnglish
    • diagMath
    • diagIct
    • jobActiveSync

 

Payload

The payload for update event type includes “event”:”update” field.

Example: 

{
  "id": 1000,
  "status": "Full access",
  "jobActiveSync": false,
  "username": "exampleuser",
  "firstName": "Jane",
  "lastName": "Smith",
  "email": "jane.smith@example.com",
  "phone": "+44700000000",
  "caseOwnerId": 1001,
  "caseOwnerFirstName": "John",
  "caseOwnerLastName": "Doe",
  "referenceNumber": null,
  "groupId": 1,
  "dateOfBirth": "2000-01-01",
  "postCode": "EX1 1AA",
  "address1": "1 Example Street",
  "address2": "Example Area",
  "townCity": "Example Town",
  "countyState": "Example County",
  "programmeId": 1000,
  "programmeStartDate": "2026-01-01",
  "programmeEndDate": "2027-01-01",
  "employerId": 1,
  "employerAddressId": 1,
  "mentorId": 1000,
  "IAEnglish": 6,
  "IAMath": null,
  "IAICT": null,
  "diagEnglish": null,
  "diagMath": null,
  "diagIct": null,
  "managerFirstName": "Example",
  "managerLastName": "Manager",
  "managerEmail": "manager@example.com",
  "managerPhone": null,
  "title": "Mrs",
  "preferredName": "Jane",
  "gender": "Female",
  "personalEmail": "jane.personal@example.com",
  "authenticationType": "Aptem",
  "authType": "Aptem",
  "idP": null,
  "samlUserId": null,
  "recognisedPriorLearningHours": null,
  "plannedHours": 125,
  "weeklyHours": 30,
  "nationalInsuranceNumber": "AA000000A",
  "programmeStatus": "Active",
  "country": "United Kingdom",
  "landline": "+44000000000",
  "managerId": 1000,
  "learningProviderId": 1,
  "event": "update"
}

 

Delete event

The Delete event type is not supported.

 

Duplicated webhooks

You may occasionally receive multiple webhooks for the same learner in quick succession. This happens because updates are processed in stages within the system.

For example, when moving a learner to an account programme:

  • One webhook may be sent when programmeId is updated to the new value
  • A second webhook may follow when programmeId is updated again (e.g. set to null)

Each change will be reflected in the payload.

Was this article helpful?
0 out of 0 found this helpful