Skip to main content

Webhooks

Overview

Webhooks allow you to subscribe to certain events that happen in aXcelerate. When one of these events are triggered we’ll send a HTTP POST payload to the webhook’s configured URL.

To ensure webhook events are triggered, you must first enable webhooks in your account. Go to the Web & Other Integrations tab within System Settings to enable them. After enabling, configure a Webhook URL listener on the Webhooks configuration page found under Settings > Webhooks.

Payload

All webhook event payloads will have the following structure with all information pertaining to the specific event will be contained within the message object:

{
"type": "namespace.event_name",
"message": {
// object(s) specific to the event
},
"clientId": 12345678,
"messageId": "669ee575-71c1-5cf2-97ee-bb20be1f817d",
"timestamp": "2024-02-25T23:30:38.056Z"
}

Signed Payloads

Each event request sent to your endpoint will include two additional headers:

  • Ax-Signature-Version
  • Ax-Signature

You can provide a private key within the aXcelerate interface, where webhook endpoints and event listeners are managed. This key will be utilised to generate a signature unique to the payload.

If a private key is supplied, the Ax-Signature-Version header will be set to 1. Conversely, if no private key is provided, Ax-Signature-Version will be 0, and Ax-Signature will remain empty. In cases where a private key is provided, we employ the sha256 algorithm to produce a hash from the payload using it for the value of Ax-Signature.

It's important to note that aXcelerate will not verify whether your endpoint validates the signature for each payload. It will be incumbent upon developers to ensure that incoming payloads have been accurately signed before processing them.

Retries

If your system does not return a HTTP 2xx Response, the event will enter into a retry process where 20 additional delivery attempts will be made.

Calendar Management

TypeDescription
calendar.event_createdOccurs when a new calendar event is created.
calendar.event_updatedOccurs when an calendar event is updated.
calendar.event_deletedOccurs when a calendar event is removed.

Example message object for calendar.event_* events:

{
"event": {
"id": "ev_505553",
"type": "ev",
"startDateTime": "2024-10-25 11:15",
"endDateTime": "2024-10-25 11:45",
"text": "tes",
"colour": "c10b0b",
"contactIds": [
6341338
],
"description": null,
"private": false,
"ownerContactId": 6341338,
"domainId": null,
"showAsBusy": false,
"isAllDay": false
}
}

Contact Management

TypeDescription
contact.contact_createdOccurs when a new contact is created.
contact.contact_updatedOccurs when an existing contact is updated.
contact.contact_deletedOccurs when a contact is deleted.
contact.contact_mergedOccurs when contacts are merged.

Example message object for contact.contact_* events:

{
"contact": {
"id": 123456
}
}

Course Management

Venue

TypeDescription
course.venue_createdOccurs when a contact or organisation is allocated to a workshop for the first time.
course.venue_updatedWill trigger when an Organisation is updated if it has associated venues, and/or when the Venue Setup details are updated from within a Workshop, and/or when a Room is updated where it has been linked to a Venue.
course.venue_deletedOccurs when a venue is removed.

Example message object for course.venue_* events:

{
"venue": {
"id": 123456
}
}

Qualification

TypeDescription
course.qualification_createdOccurs when a new qualification is created.
course.qualification_updatedOccurs when an existing qualification is updated.
course.qualification_deletedOccurs when a qualification is removed.

Example message object for course.qualification_* events:

{
"qualification": {
"id": 123456
}
}

Workshop Type

TypeDescription
course.workshop_type_createdOccurs when a new workshop type is created.
course.workshop_type_updatedOccurs when an existing workshop type is updated.
course.workshop_type_deletedOccurs when a workshop type is removed.

Example message object for course.workshop_type_* events:

{
"workshopType": {
"id": 123456
}
}

Workshop

TypeDescription
course.workshop_createdOccurs when a new workshop instance is created.
course.workshop_updatedOccurs when an existing workshop instance is updated.
course.workshop_deletedOccurs when a workshop instance is removed.

Example message object for course.workshop_* events:

{
"workshop": {
"id": 123456
}
}

Class

TypeDescription
course.class_createdOccurs when a new class is created.
course.class_updatedOccurs when an existing class is updated.
course.class_deletedOccurs when a class is removed.

Example message object for course.class_* events:

{
"class": {
"id": 123456
}
}

Enrolment Management

Enrolment events will be specifically for an enrolment process (i.e. before the student enrolment has actually been created). An event example may be enrolment.enrolment_commenced.

Student Management

Workshop

TypeDescription
student.workshop_enrolment_createdOccurs when a user enrols a contact into a workshop.
student.workshop_enrolment_updatedOccurs when a student's enrolment details in a workshop are updated.
student.workshop_enrolment_deletedOccurs when a student's workshop enrolment is removed.
student.workshop_enrolment_status_changedOccurs when the status of a student's workshop enrolment changes.

Example message object for student.workshop_enrolment_* events:

{
"enrolment": {
"student": {
"contactId": 123456
},
"workshop": {
"id": 123456,
"workshopType": {
"id": 123456
}
},
"status": "B"
}
}

Class

TypeDescription
student.class_enrolment_createdOccurs when a contact is enrolled in a class.
student.class_enrolment_updatedOccurs when a student's enrolment details in a class are updated.
student.class_enrolment_deletedOccurs when a student's class enrolment is removed.
student.class_enrolment_status_changedOccurs when the status of a student's class enrolment changes.

Example message object for student.class_enrolment_* events:

{
"enrolment": {
"student": {
"contactId": 123456
},
"class": {
"id": 123456,
}
}
}

Unit

TypeDescription
student.unit_enrolment_createdOccurs when a contact is enrolled in a unit of competency.
student.unit_enrolment_status_changedOccurs when the status of a student's unit enrolment changes.

Example message object for student.unit_enrolment_* events:

{
"enrolment": {
"student": {
"contactId": 123456
},
"class": {
"id": 123456
},
"unit": {
"id": 123456,
"code": "BSBWOR401A"
},
"outcomeCode": 70,
"status": "CA"
}
}

Activity

TypeDescription
student.activity_enrolment_createdOccurs when a new E-Learning or Assessment activity enrolment is created.
student.activity_enrolment_updatedOccurs when an E-Learning or Assessment activity enrolment is updated.
student.activity_enrolment_deletedOccurs when an E-Learning or Assessment activity enrolment is removed.

Example message object for student.activity_enrolment_* events:

{
"enrolment": {
"id": 123456,
"activity": {
"id": 123456,
"name": "Name of the activity",
"platform": {
"type": "assessment",
"externalTaskId": 123456,
}
},
"status": "completed",
"startDate": "2024-11-23 00:00:00",
"endDate": "2024-11-23 23:59:59",
"student": {
"contactId": 12345
}
}
}

Trainer Management

TypeDescription
trainer.trainer_createdOccurs when a contact is created as a trainer.
trainer.trainer_updatedOccurs when an existing trainer's information is updated, including updates to the related contact.
trainer.trainer_deletedOccurs when a trainer is removed.

Example message object for trainer.trainer_* events:

{
"trainer": {
"id": 123456
}
}