Overview
Webhooks are a powerful tool that allow you to receive real-time notifications from Acadio when specific events occur. By using webhooks, you can automate workflows, trigger actions, and integrate Acadio with other applications and services. Webhooks are a simple and efficient way to keep your systems in sync and ensure that your data is always up-to-date.
Integration
Integrating webhooks with Acadio is a straightforward process that can be completed in a few simple steps.
- Log into your Acadio Admin portal and navigate to the Settings from the main menu.
- From the Settings section, click on Manage Integrations.
- Click the Install button within the Webhooks integration.
- Enter a secret key, this is used to sign and verify the payload is from Acadio.
- Create subscriptions to topics (see list of subscriptions below).
- Add an Email address to receive notifications on failure.
- Click Save to create the webhook.
Subscriptions
Subscriptions allow you to specify which topics you want to receive notifications for. Acadio provides a range of topics that you can subscribe to, including:
- Assessment Session Created
Pattern: assessment/session/create
A new assessment session for a student has been created. - Assessment Session Completed
Pattern: assessment/session/complete
An assessment session for a student was completed. - Course Completion Created
Pattern: course/completion/create
A student has completed a course that is reportable. - Course Completion Updated
Pattern: course/completion/update
A student course completion was updated (moved from the pending state to ready). - Course Completion Report
Pattern: course/completion/report
Student selects a regulator(s) for a course completion, for example they select a regulator to report to at the end of the course. - Course Activity Created
Pattern: course/activity/create
A student has started an activity. * This event fires (at most) once a day. - Course Activity Updated
Pattern: course/activity/update
A student has completed an activity. - Credit Created
Pattern: credits/credit/create
A credit was created. - Credit Updated
Pattern: credits/credit/update
A credit was updated. - User Credit Created
Pattern: credits/user/create
A credit was assigned to a user. - User Credit Updated
Pattern: credits/user/update
A credit was updated in relation to a user. - User Created
Pattern: identity/user/create
A new user was created. - User Updated
Pattern: identity/user/update
A user was updated. - Survey Created
Pattern: surveys/survey/create
A survey was created. - Survey Updated
Pattern: surveys/survey/update
A survey was updated. - Survey Completed
Pattern: surveys/survey/complete
A survey was completed by a user. - More coming soon...
By subscribing to specific topics, you can customize the notifications you receive and tailor them to your specific needs. However, if you want to listen to more than one topic, you can use the wildcard character (*) to subscribe to all topics.
For example, if you want to receive notifications for all course-related events, you can subscribe to the following topics:
- Topic: course/*
Additionally, you can subscribe to all topics by using the wildcard character (*) as follows:
- Topic: *
This will ensure that you receive notifications for all course-related events, such as course creation, updates, and deletions.
Endpoints must be a secure, publicly accessible url, and return a 2xx status code to confirm receipt of the payload. Acadio will retry sending the payload up to 6 times if it does not receive a 2xx status code.
Securing Webhooks
Acadio uses a secret key to sign and verify the payload to ensure the security and integrity of your webhook notifications. This secret key is customized when you create/update the webhook and is unique to each integration. By using the secret key, you can verify that the payload is from Acadio and has not been tampered with during transit.
Acadio utilizes a HMAC SHA-256 signature to sign the JSON payload using the secret key. The signature is included in the headers of the request as X-Acadio-Hmac-Sha256
.
Disconnecting
To disconnect a webhook, navigate to the platform Settings and click Manage Integrations. Locate the Webhooks integration and click the Deactivate button.