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 register 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 property – A Boolean value indicates whether the webhook is disabled or not. If set to true, the webhook will not be triggered.
- Request property – An object representing the HTTP request made to the webhook. It typically includes information such as the request method (GET, POST, and so on), headers, query parameters, and body.
- Topic property – A list of strings that are used to filter out events concerning event
'subject'
and'action'
. The asterisk symbol (*) can be used as a wildcard to filter any value that matches with part of the event. When a wildcard is not provided, it will work as a no-filter or match-all way.- Value structure –
{subject}.{action}
- 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 –
- Value structure –
- (Optional) Filters property – An object that contains key-value pairs. Each key represents a filter name. The corresponding value is an array of partial filter objects. Each partial filter object contains properties specific to that filter. Applying filters lets you receive the notifications you want.
- 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 has '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:
- Examples:
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 23 days ago