/
Webhook configuration object

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

Parameter

Required

Description

<webhook_configuration_name>

Yes

Webhook configuration name.

<webhook_configuration_description>

No

Webhook configuration description.

<event_id>

No

doo Event ID.

If specified, the webhook configuration will be attached only to the specified event.

If neither <event_id> nor <event_guide_id> is specified, the webhook configuration will be attached to the whole organization.

<event_guide_id>

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 <event_id> nor <event_guide_id> is specified, the webhook configuration will be attached to the whole organization.

<webhook_type>

Yes

Webhook type name from Supported resources and webhook types without on_ preffix.

<external_endpoint_url>

Yes

External API endpoint where doo sends the webhook payload for the specified webhook type.

See Webhook requests from doo to the external system

<graphql_query>

Yes

GraphQL query which specifies the webhook payload structure.

See How to prepare GraphQL query for webhook configuration?

<external_oauth_endpoint_url>

Yes, if authentication object does exist in the configuration object

External authorization OAuth API endpoint where doo can retrieve the access_token.

See Webhook requests from doo to the external system

<external_client_secret>

Yes, if authentication object does exist in the configuration object

A valid OAuth Client Secret which doo will use to retrieve theaccess_token.

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%" } }

Related content

Create webhook configuration
Create webhook configuration
More like this
Supported resources and webhook types
Supported resources and webhook types
Read with this
Authorization request
Authorization request
More like this
Webhooks
Read with this
Webhook initialization
Webhook initialization
More like this
Webhook Management API
Webhook Management API
Read with this