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-VersionAx-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
| Type | Description |
|---|---|
calendar.event_created | Occurs when a new calendar event is created. |
calendar.event_updated | Occurs when an calendar event is updated. |
calendar.event_deleted | Occurs 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
| Type | Description |
|---|---|
contact.contact_created | Occurs when a new contact is created. |
contact.contact_updated | Occurs when an existing contact is updated. |
contact.contact_deleted | Occurs when a contact is deleted. |
contact.contact_merged | Occurs when contacts are merged. |
Example message object for contact.contact_* events:
{
"contact": {
"id": 123456
}
}
Course Management
Venue
| Type | Description |
|---|---|
course.venue_created | Occurs when a contact or organisation is allocated to a workshop for the first time. |
course.venue_updated | Will 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_deleted | Occurs when a venue is removed. |
Example message object for course.venue_* events:
{
"venue": {
"id": 123456
}
}
Qualification
| Type | Description |
|---|---|
course.qualification_created | Occurs when a new qualification is created. |
course.qualification_updated | Occurs when an existing qualification is updated. |
course.qualification_deleted | Occurs when a qualification is removed. |
Example message object for course.qualification_* events:
{
"qualification": {
"id": 123456
}
}
Workshop Type
| Type | Description |
|---|---|
course.workshop_type_created | Occurs when a new workshop type is created. |
course.workshop_type_updated | Occurs when an existing workshop type is updated. |
course.workshop_type_deleted | Occurs when a workshop type is removed. |
Example message object for course.workshop_type_* events:
{
"workshopType": {
"id": 123456
}
}
Workshop
| Type | Description |
|---|---|
course.workshop_created | Occurs when a new workshop instance is created. |
course.workshop_updated | Occurs when an existing workshop instance is updated. |
course.workshop_deleted | Occurs when a workshop instance is removed. |
Example message object for course.workshop_* events:
{
"workshop": {
"id": 123456
}
}
Class
| Type | Description |
|---|---|
course.class_created | Occurs when a new class is created. |
course.class_updated | Occurs when an existing class is updated. |
course.class_deleted | Occurs 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
| Type | Description |
|---|---|
student.workshop_enrolment_created | Occurs when a user enrols a contact into a workshop. |
student.workshop_enrolment_updated | Occurs when a student's enrolment details in a workshop are updated. |
student.workshop_enrolment_deleted | Occurs when a student's workshop enrolment is removed. |
student.workshop_enrolment_status_changed | Occurs 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
| Type | Description |
|---|---|
student.class_enrolment_created | Occurs when a contact is enrolled in a class. |
student.class_enrolment_updated | Occurs when a student's enrolment details in a class are updated. |
student.class_enrolment_deleted | Occurs when a student's class enrolment is removed. |
student.class_enrolment_status_changed | Occurs 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
| Type | Description |
|---|---|
student.unit_enrolment_created | Occurs when a contact is enrolled in a unit of competency. |
student.unit_enrolment_status_changed | Occurs 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
| Type | Description |
|---|---|
student.activity_enrolment_created | Occurs when a new E-Learning or Assessment activity enrolment is created. |
student.activity_enrolment_updated | Occurs when an E-Learning or Assessment activity enrolment is updated. |
student.activity_enrolment_deleted | Occurs 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
| Type | Description |
|---|---|
trainer.trainer_created | Occurs when a contact is created as a trainer. |
trainer.trainer_updated | Occurs when an existing trainer's information is updated, including updates to the related contact. |
trainer.trainer_deleted | Occurs when a trainer is removed. |
Example message object for trainer.trainer_* events:
{
"trainer": {
"id": 123456
}
}