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_template>" } } ], "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_template>

Yes

GraphQL query which specifies the webhook payload structure.

See How to prepare GraphQL query template 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%" } }