HomeDev guideAPI Reference
Dev guideUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket

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 and action. 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"]
  • (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" }
           }
         ]
       }
      

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).