Using Webhook Subscribers is incredibly versatile: it allows you to integrate Avenue with any platform that accepts inbound Webhooks! Using Webhooks as a Subscriber will allow you to send a custom webhook every time a new Avenue Signal is created.
Setting up a Webhook Integration
Step 1. Go to Settings in the Navigation menu. Scroll all the way to Integrations, and click to add a new Integration
Step 2. From there, select Webhooks and click Continue.
Step 3. Define your Webhook integration. Provide the base URL for the webhook, and specify any headers. You can use these headers for any authorization tokens that your webhook would require.
You're all set! You can now reuse this webhook integration as a Avenue Subscriber.
Using Webhooks as Signal Subscribers
Setting up your Webhook Subscriber in Avenue
To use your Webhook Integration as a Signal Subscriber, select Webhook as the Notification Type, then select your existing webhook integration from the dropdown.
Expert tip. Check that your Webhook Integration works as expected by clicking on the "Send Test Signal" button on the right. You'll see a green success popup appear if your webhook sent successfully.
Receiving Avenue webhooks at your destination
We send webhooks in the following format:
{
"id": the id of the new signal
"workflow_id": the id of the workflow that triggered the signal
"title": the title of the signal
"body": the body of the signal
"data": the signal data
}
Note. You can use the signal and workflow ids to generate links to the monitors and signals.
create a link to the monitor:
https://app.useavenue.com/monitors/{{workflow_id}}
create a link to the signal:
https://app.useavenue.com/monitors/{{workflow_id}}/signal/{{id}}
Understanding the Signal data field
Depending on how you set up your monitor, the format of the data field will vary.
If you created an Event monitor:
If you selected for your Signal to aggregate row data, then the data will be an array containing each row of the Signal's data.
If you did not select to aggregate the Signal's row data, then the data field will contains an object representing the row data
If you create a Metric monitor:
The data field will be an object in the following format
{
"metric.threshold": workflow.metricThreshold,
"metric.value": metricValue,
"metric.comparisonOperator": workflow.metricComparisonOperator,
}