HomeDev guideAPI ReferenceGraphQL
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 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 eventstopics: ["*.*"]
      • Filter all 'doc' eventstopics: ["doc.*"]
      • Filter all 'updated' eventstopics: ["*.updated"]
      • Filter 'doc updated' eventstopics: ["doc.updated"]
      • Filter 'doc updated' or 'bulk completed' eventstopics: ["doc.updated", "bulk.completed"]
  • (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" }
             }
           ]
         }
        

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