Webhook Subscription
Log in to add to favouritesProperties
Name | Type | Format | Description |
---|---|---|---|
id | string | GUID | The unique identifier of the subscription as a 128 bit GUID |
name | string | The name of the subscription | |
description | string | The description of the subscription | |
invokeUrl | string | URI | The url specifying the address to which event notifications should be pushed |
enabled | boolean | A property indicating if the subscription is currently active | |
method | string | The HTTP method for the workflow event. POST, PUT, DELETE, etc. Defaults to POST | |
topics | object[...] | topic | An array of topics describing the events to which this subscription has subscribed to |
headers | object | A dictionary of dictionaries providing headers information for the subscription | |
templates | object | A dictionary of dictionaries providing template information for the subscription | |
version | object | version | The version of the subscription |
Example
An example webhook subscription resource
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
{
"id": "3a7ce8e3-9c9f-4242-be20-35edb29c4a07",
"name": "name",
"description": "some description",
// Urls can be templated
"url": "https://external.mywebsite.com/handlewebhooks/{/resource/sys.id}",
"enabled": true,
"method": "POST",
"topics": [
{
"resourceType": "entry",
"event": ["updated", "created"],
"language": ["fr-fr"],
"contentTypeId": ["blog", "news"],
"owner": "t.durden"
},
{
"resourceType": "entry",
"event": ["published"],
"contentTypeId": ["news"],
"owner": "t.durden"
},
{
"resourceType": "contentType",
"event": ["created"]
},
{
"resourceType": "entry",
"event": ["workflowEventRaised"],
"contentTypeId": ["blog"],
"owner": "t.durden",
"workflowEvent" : ["contensisentrybasic.draft.submit", "contensisentryapproval.awaitingApproval.approve"]
},
{
"resourceType": "entry",
"event": ["workflowEventRaised"],
"contentTypeId": ["news"],
"owner": "t.durden",
"workflowEvent" : ["contensisentryapproval.awaitingApproval.declined"]
},
{
"resourceType": "entry",
"event": ["workflowStateChanged"],
"contentTypeId": ["blog"],
"owner": "t.durden",
"workflowState" : ["contensisentryapproval.awaitingApproval"]
}
],
"headers": {
"target": {
"value": "internal"
},
// Headers can be templated
"department": {
"value": "{/resource/department}"
},
// Headers can be specified as secret, which means that the value can be set but won't be returned
// Set
"secretHeaderSet": {
"secret": true,
"value": "cs7vdsdvj~8"
},
// Get
"secretHeaderGet": {
"value": "************",
"secret": true
}
// NOTE: A header will not be returned if it has no value
},
"templates": {
// For entry events return a custom structure with specific pieces of data
"entry": "{\n\"event\": \"{/event/name}\",\n\"user\": \"{/user/firstName} {/user/lastName}\",\n\"id\": \"{/resource/sys/id}\",\n\"title\": \"{/resource/entryTitle}\",\n\"description\": \"{/resource/entryDescription}\",\n\"department\": \"{/resource/department}\"}",
// A news specific template
"entry.news": "{\n\"event\": \"{/event/name}\",\n\"id\": \"{/resource/sys/id}\",\n\"title\": \"{/resource/entryTitle}\",\n\"headline\": \"{/resource/headline}\"}",
// For content type events return the entire content type resource (root)
"contentType": "{/resource/}"
// For all other events if a template for a resource is not supplied then return the default webhook request structure
},
"version": {
"createdBy": "t.durden",
"created": "2020-09-01T08:59:49Z",
"modifiedBy": "m.singer",
"modified": "2020-09-05T08:59:49Z",
"versionNo": "1.0"
}
}