Webhooks
Ryan avatar
Written by Ryan
Updated over a week ago

Webhooks are notifications, sent as HTTP post requests, that you can subscribe to in 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

To get started using our webhooks you first need administrative access to your organization's Seably account. When you have access you can navigate to the Integration settings page which is located under Manage → Settings.

Specify the URL to Receive Requests

First off, you’ll need to setup your own endpoint to receive our POST 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

When you have the URL you need to select which events you want to receive. 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 webhook specific top-level 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?