Manage webhooks
How to register, get, or delete webhooks in Optimizely Graph.
Optimizely Graph provides endpoints to let you manage your webhooks by the specific account.
Note
You can check the API Reference page for information on managing webhooks.
Register a webhook with notification filters
Use a REST client tool, for example, Postman or Insomnia, to send a registration request through the URL: https://cg.optimizely.com/api/webhooks
with the HMAC key (generated by the app key and secret key you received when your account was created) by POST method with the body:
{
"disabled": false,
"request" : {
"url" : <your_webhook_url>,
"method": "post"
},
"topic": ["{subject}.{action}"],
"filters": [
{
[field]: { [operator]: {value} }
}
]
}
- disabled – Boolean. Set to true to disable the webhook.
- request – Object. Represents the HTTP request to the webhook, including method (GET, POST, and so on), headers, query parameters, and body.
- topic – Array of strings. Filters events by
subject
andaction
. Use an asterisk (*) as a wildcard.
Examples:- Filter all events –
topics: ["*.*"]
- Filter all 'doc' events –
topics: ["doc.*"]
- Filter all 'updated' events –
topics: ["*.updated"]
- Filter 'doc updated' events –
topics: ["doc.updated"]
- Filter 'doc updated' or 'bulk completed' events –
topics: ["doc.updated", "bulk.completed"]
- Filter all events –
- (Optional) Filters property – An object containing key-value pairs, where each key is a filter name, and the value is an array of filter objects. Filters help you receive specific notifications.
Examples:- Filters docs which has 'Published' status:
{ "request" : { "url" : <your_webhook_url>, "method": "post" }, "filters": [ { "status": { "eq": "Published" } } ], }
- Filters docs which have 'Published' or 'Draft' status:
{ "request" : { "url" : <your_webhook_url>, "method": "post" }, "filters": [ { "status": { "eq": "Published" } }, { "status": { "eq": "Draft" } } ], }
- Filters docs which have 'Published' status and id '123':
{ "request" : { "url" : <your_webhook_url>, "method": "post" }, "filters": [ { "status": { "eq": "Published" }, "id": { "eq": "123" } } ] }
- Filters docs which has 'Published' status:
List all registered webhooks
Use the REST client tool to send a request through the URL: https://cg.optimizely.com/api/webhooks
with the HMAC key by GET method.
The result looks like:
[
{
"id": <guid>,
"request" : {
"url" : <your_webhook_url>,
"method": "post"
},
"filters": [
{
"status": { "eq": "Published" }
}
]
}
]
Delete a registered webhook
Use a REST client tool to list all webhooks and get the ID of the webhook you want to delete.
Use the REST client tool again to send a request through the URL: https://cg.optimizely.com/api/webhooks/{guid}
with HMAC key by DELETE method ( is ID of registered webhook).
Updated about 2 months ago