Webhook configuration object
Configuration object
{
"name": "<webhook_configuration_name>",
"description": "<webhook_configuration_description>",
"event_id": "<event_id>",
"event_guide_id": "<event_guide_id>",
"hooks": [
{
"type": "<webhook_type>",
"method": "POST",
"endpoint": "<external_endpoint_url>",
"origin": {
"method": "POST",
"endpoint": "https://gql.doo.net",
"body": "<graphql_query>"
}
}
],
"authentication": {
"grant_type": "client_credentials",
"endpoint": "<external_oauth_endpoint_url>",
"credentials": {
"client_id": "doo",
"client_secret": "<external_client_secret>"
},
"header_format": "Authorization",
"header_value_format": "Bearer %ACCESS_TOKEN%"
}
}
If the <external_endpoint_url>
is not protected with OAuth, you can omit the authentication
object in the configuration object. In this case, doo will send the webhook request without access_token
. See Webhook requests from doo to the external system for more information.
Parameters
In the configuration object, you can see a lot more configurations than described in the table below. We do not recommend changing any parameters that are not listed in the table below.
Parameter | Required | Description |
---|---|---|
| Yes | Webhook configuration name. |
| No | Webhook configuration description. |
| No | doo Event ID. If specified, the webhook configuration will be attached only to the specified event. If neither |
| No | doo Event Guide ID. If specified, the webhook configuration will be attached to all the events created with the specified event guide. If neither |
| Yes | Webhook type name from Supported resources and webhook types without |
| Yes | External API endpoint where doo sends the webhook payload for the specified webhook type. |
| Yes | GraphQL query which specifies the webhook payload structure. |
| Yes, if | External authorization OAuth API endpoint where doo can retrieve the |
| Yes, if | A valid OAuth Client Secret which doo will use to retrieve the |
Example
{
"name": "Test webhook",
"description": "Event creation and updates webhook subscription",
"hooks": [
{
"type": "event_created",
"method": "POST",
"endpoint": "https://company.com/receive-doo-webhooks",
"origin": {
"method": "POST",
"endpoint": "https://gql.doo.net",
"body": "{\"operationName\":null,\"variables\":{\"eventId\":\"%EVENT_ID%\"},\"query\":\"query ($eventId: ID!) {event(id: $eventId) { id title }}\"}"
}
},
{
"type": "event_updated",
"method": "POST",
"endpoint": "https://company.com/receive-doo-webhooks",
"origin": {
"method": "POST",
"endpoint": "https://gql.doo.net",
"body": "{\"operationName\":null,\"variables\":{\"eventId\":\"%EVENT_ID%\"},\"query\":\"query ($eventId: ID!) {event(id: $eventId) { id title }}\"}"
}
}
],
"authentication": {
"grant_type": "client_credentials",
"endpoint": "https://company.com/authorize-doo-webhooks",
"credentials": {
"client_id": "doo",
"client_secret": "super-strong-secret"
},
"header_format": "Authorization",
"header_value_format": "Bearer %ACCESS_TOKEN%"
}
}