Webhooks
Webhooks in Allpage: its screens, what you can do there and its operations.
Availability. Every business has it.
What you can do
- Add a webhook: only you can do it, on its screen
- Change a webhook: only you can do it, on its screen
- Remove a webhook: only you can do it, on its screen
- Change a webhook’s secret: only you can do it, on its screen
- Send a webhook again: only you can do it, on its screen
- Send a test webhook: only you can do it, on its screen
- Subscribe to events: only you can do it, on its screen
- Unsubscribe from events: only you can do it, on its screen
For apps
Reads
- webhooks_endpoints (Webhooks)
- webhooks_deliveries (Webhook deliveries)
- webhooks_summary (What’s going on)
Only the owner, in Allpage
- Add a webhook
- Change a webhook
- Remove a webhook
- Change a webhook’s secret
- Send a webhook again
- Send a test webhook
- Subscribe to events
- Unsubscribe from events
Operations
Each one's input and output, as JSON Schema. Ids are typed (typed ids).
webhooks.subscribe
Subscribe to events
- Kind
- Change
- Tool
webhooks_subscribe- Scope
webhooks:write- Reached by
- API
Reaches only what the app can already read: runs right away, unless the owner set this area to Never.
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"url": {
"label": "Link",
"control": "url",
"type": "string",
"maxLength": 2000
},
"events": {
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"maxLength": 80
}
}
},
"required": [
"url",
"events"
],
"additionalProperties": false
}Output
{
"oneOf": [
{
"type": "object",
"required": [
"status",
"title",
"change"
],
"properties": {
"status": {
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {},
"undo": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"input": {}
}
}
}
},
{
"type": "object",
"required": [
"status",
"proposalId"
],
"properties": {
"status": {
"const": "proposed"
},
"proposalId": {
"type": "string"
},
"preview": {},
"approveAt": {
"type": "string",
"format": "uri"
}
}
},
{
"type": "object",
"required": [
"status",
"check"
],
"properties": {
"status": {
"const": "pending"
},
"message": {
"type": "string"
},
"check": {
"type": "string"
},
"checkInput": {
"type": "object"
}
}
},
{
"type": "object",
"required": [
"status",
"message"
],
"properties": {
"status": {
"const": "refused"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"status",
"kind",
"message"
],
"properties": {
"status": {
"const": "needs"
},
"kind": {
"type": "string"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
]
}webhooks.unsubscribe
Unsubscribe from events
- Kind
- Change
- Tool
webhooks_unsubscribe- Scope
webhooks:write- Reached by
- API
Reaches only what the app can already read: runs right away, unless the owner set this area to Never.
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^whe_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A webhook endpoint id: whe_ and 26 letters and digits."
}
},
"required": [
"id"
],
"additionalProperties": false
}Output
{
"oneOf": [
{
"type": "object",
"required": [
"status",
"title",
"change"
],
"properties": {
"status": {
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {},
"undo": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"input": {}
}
}
}
},
{
"type": "object",
"required": [
"status",
"proposalId"
],
"properties": {
"status": {
"const": "proposed"
},
"proposalId": {
"type": "string"
},
"preview": {},
"approveAt": {
"type": "string",
"format": "uri"
}
}
},
{
"type": "object",
"required": [
"status",
"check"
],
"properties": {
"status": {
"const": "pending"
},
"message": {
"type": "string"
},
"check": {
"type": "string"
},
"checkInput": {
"type": "object"
}
}
},
{
"type": "object",
"required": [
"status",
"message"
],
"properties": {
"status": {
"const": "refused"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"status",
"kind",
"message"
],
"properties": {
"status": {
"const": "needs"
},
"kind": {
"type": "string"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
]
}