Disclaimer: This website requires Please enable JavaScript in your browser settings for the best experience.

HomeDev guideRecipesAPI Reference
Dev guideUser GuidesLegal TermsNuGetDev CommunityOptimizely AcademySubmit a ticketLog In
Dev guide

Manage webhooks

How to register, get, or delete webhooks in Optimizely Graph.

Optimizely Graph provides endpoints to manage your webhooks by the specific account.

📘

Note

See the API Reference for information on managing webhooks.

🚧

Important

Authentication required, use either Basic or HMAC authentication.

Register a webhook with notification filters

  1. Use a REST client tool, for example, Postman or Insomnia.
  2. Send a POST request with the URL: https://cg.optimizely.com/api/webhooks.
  3. Use either Basic or HMAC authentication within the request.
  4. Prepare the request 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 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"]
    • Available values for subject
      • doc – For updating events involving only a single content.
      • bulk – For updating events involving multiple content in one request.
      • * – Update both event types, doc and bulk.
        • If you are not sure, use * for the subject.
  • (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 that have 'Published' status.
       {
         "request" : {
            "url" : <your_webhook_url>,
            "method": "post"
         },
         "filters": [
           { "status": { "eq": "Published" } }
         ],
       }
      
    • Filters docs that have 'Published' or 'Draft' status.
      {
         "request" : {
            "url" : <your_webhook_url>,
            "method": "post"
         },
         "filters": [
           { "status": { "eq": "Published" } },
           { "status": { "eq": "Draft" } }
         ],
      }
      
    • Filters docs that have 'Published' status and id '123'.
       {
         "request" : {
            "url" : <your_webhook_url>,
            "method": "post"
         },
         "filters": [
           {
             "status": { "eq": "Published" },
             "id": { "eq": "123" }
           }
         ]
       }
      
    • Filters docs that have custom fields like 'siteId' (for example, with multiple sites).

      📘

      Note

      Custom fields are case-sensitive.

       {
         "request" : {
            "url" : <your_webhook_url>,
            "method": "post"
         },
         "filters": [
           {
             "siteId": { "eq": "site_id" }
           }
         ]
       }
      
    • Filters docs that have custom fields like page name and 'Published' status (assume that the page name is not changed).
      {
        "request" : {
           "url" : <your_webhook_url>,
           "method": "post"
        },
        "filters": [
          {
            "Name": { "eq": "Alloy Plan" },
            "status": { "eq": "Published" }
          }
        ]
      }
      

List all registered webhooks

  1. Use the REST client tool.
  2. Send a GET request with the URL: https://cg.optimizely.com/api/webhooks.
  3. Use either Basic or HMAC authentication within the request.

Example response:

[
  {
    "id": <guid>,
    "request" : {
      "url" : <your_webhook_url>,
      "method": "post"
    },
    "filters": [
      {
        "status": { "eq": "Published" }
      }
    ]
  }
]

Delete a registered webhook

  1. Use a REST client tool to list all webhooks and get the ID of the webhook you want to delete.
  2. Send a DELETE request with the URL: https://cg.optimizely.com/api/webhooks/{id} (ID of registered webhook).
  3. Use either Basic or HMAC authentication within the request.