Webhooks are notifications, sent as HTTP post requests, that you can subscribe to within your external systems. The webhooks allow you to receive near real-time updates on changes in your workspace, such as a when a new certificate  is generated, or when a new user is invited.

Setting up a Webhook

You can setup webhooks to be notified of actions with the workspace data where your integration is installed.

Specify the URL to Receive Requests

You’ll need to setup your own endpoint to receive notification requests. The endpoint needs to have a URL that is publicly reachable and run under HTTPS. You can either use a single URL for multiple events, or create specific endpoints for each task. When you have the URL ready, make a copy and head over the Integrations page on Seably to register it.

If you don't have a URL available one of the simplest tool for testing webhooks is Request Bin. Request Bin lets you create a webhook URL and send data to it to see how it's recognized in a human readable form. Go to requestbin.com, click Create a RequestBin, then copy the URL it gives you and paste it as your endpoint URL for testing.

Subscribe to a Webhook Events

You’ll then need to select which events you want to receive with the notification request. Select in the list among available events:

  • Certificate: Created (certificate.created) - This webhook is sent each time a user within your workspace completes a course.

We will add more events continuously, and if you have a need for a specific event, please let us know.

Unsubscribe to a Webhook Event 

On the Integrations page under Webhooks, click the "three dots" on the far right of the subscription in the table. From there you can edit or remove an active Webhook endpoint.

Datastructure and payload

Our webhooks send their data as HTTP post requests with JSON data. The payloads share the same data structures as our sync API, with the addition of a top-level webhook specific object.

For instance when a certificate is created the request will look like this

{
event: "certificate.created",
payload: {
data: {
"type": "certificate",
"id": "SB-00000001",
--- Rest follows certificate object from API-documentation ---
}
}
}

To learn more about the data structures, please see our API-documentation

Did this answer your question?