Webhooks allow you to build or set up integrations, which subscribe to certain events in the Etlworks Integrator. When one of those events is triggered, we'll send an
HTTP POST or
GET request to the Webhook's configured URL. Webhooks can be used to update your external system about events happening in the Etlworks Integrator.
Create a Webhook
Only users with the Administrator role can create Webhooks. To set up a Webhook, go to the
Webhooks page of your account. From there, click
Alternatively, you can choose to build and manage a Webhook through the Webhooks API.
Webhooks require a few configuration options before you can make use of them. We'll go through each of these settings below.
The payload URL is the URL of the server that will receive the webhook
The URL can be empty if the webhook triggered by the event is meant to send the email notification only.
The Webhook can make either
GET requests to your server. Regardless of your choice, you will receive several headers in the Webhook request:
X-Etl-Webhook-Event-Id: unique ID of a Webhook request.
X-Etl-Webhook-Event: the name of the event that triggered a Webhook request.
X-Etl-Webhook-Id: the ID of the Webhook.
X-Etl-Webhook-Entity-Id: the ID of the object that was affected during an event. For example, if the event is
Flow.Createdthen it will be the ID of the newly created Flow.
X-Etl-Webhook-Entity-URL: the API URL that can be used to retrieve the entity.
If you select
POST method for your Webhook, then you will also receive a payload as the body of the request which contains all the information related to the event that happened in the system.
Webhooks can be delivered using different content types:
application/jsoncontent type will deliver the JSON payload directly as the body of the
Postrequest. Here's a payload example:
application/x-www-form-urlencodedcontent type will send the payload as URL encoded form parameters. Here's a payload example:
Slack Incoming Webhookcontent type will send payload in the Slack Block Kit format and can be used to setup Slack integration, read more here.
Include Entity is selected, then all entity data will be included in the payload. Note that an entity ID will be specified in the payload regardless of this option.
By default, Webhooks are enabled. You can choose to temporarily disable the delivery of Webhook payloads by deselecting
Events are at the core of Webhooks. These Webhooks fire whenever a certain action is taken in the system. You can choose to receive Webhooks on
All events, or click on
Select individual events and then select only those events that you are interested in.
The following events are available:
Custom Payload Template
Optional payload template. Template can contain tokens represented by the default JSON payload attribute name surrounded by the double curly braces. To access entity object attributes use 'entity' dot entity attribute name, for example: 'entity.name'. Each token will be replaced with actual values. These are always available attributes: eventId, eventType, webhookId, entityId, entityUrl, timestamp. Entity attributes differ based on the event type.
Setting a Webhook secret allows you to ensure that
POST requests sent to the payload URL are from the Etlworks Integrator and weren't tempered with. When you set a secret, you'll receive the
X-Etl-Webhook-Signature header in the Webhook
The value of that header is equal to the HMAC SHA-1 hash signature of the payload (request body). To verify the request, you can calculate the signature of the payload on your side using the same secret and compare it to the one you received in the
If your endpoint is protected by Basic Authentication, you can provide a username and password. Webhook will make sure to set the proper authentication header on the request.
Custom headers allows you to specify any number of additional headers you would like to be set on the Webhook request
Debug a Webhook
After you created your Webhook(s), you can inspect recent deliveries by clicking on
View events lets you see the last 100 events of each Webhook. By expanding an individual delivery, you'll be able to witness precisely what information the Etlworks Integrator is attempting to send to your server. This includes both the HTTP Request and Response headers and payload.