Automations
Automations in Allpage: its screens, what you can do there and its operations.
Availability. Works when the business has it turned on and its plan includes it. Otherwise its tools answer needs (kind module) with how to turn it on: business.useTool, or a plan that includes it.
Screens
- Automations (/automations)
What you can do
- Turn on a ready-made automation: the assistant asks you first
- Change an automation: the assistant asks you first
- Turn off a ready-made automation: the assistant can do it on its own
- Start an automation: the assistant can do it on its own
- Save an automation draft: the assistant can do it on its own
- Turn on an automation you built: the assistant asks you first
- Turn off an automation you built: the assistant can do it on its own
- Delete an automation: the assistant can do it on its own
- Preview an automation: happens right away
- Walk through an automation: happens right away
- Send me a test: only you can do it, on its screen
For apps
Tools
- automation_enable (Turn on a ready-made automation): customers see it: waits for the owner’s approval unless they chose Just do it for your app
- automation_setParams (Change an automation): customers see it: waits for the owner’s approval unless they chose Just do it for your app
- automation_disable (Turn off a ready-made automation): a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
- automation_createWorkflow (Start an automation): a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
- automation_saveWorkflow (Save an automation draft): a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
- automation_publishWorkflow (Turn on an automation you built): customers see it: waits for the owner’s approval unless they chose Just do it for your app
- automation_disableWorkflow (Turn off an automation you built): a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
- automation_archiveWorkflow (Delete an automation): a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
- automation_previewWorkflow (Preview an automation): runs right away
- automation_simulateWorkflow (Walk through an automation): runs right away
Reads
- automation_templates (Automations you can turn on, in every area unless you name one)
- automation_summary (What’s going on)
Only the owner, in Allpage
- Send me a test
The owner’s screens
- Automations (/automations)
Operations
Each one's input and output, as JSON Schema. Ids are typed (typed ids).
playbook.archiveWorkflow
Delete an automation
- Kind
- Change
- Tool
automation_archiveWorkflow- Scope
playbook:write- Reached by
- API, MCP
a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"workflowId": {
"type": "string",
"pattern": "^wfl_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A workflow id: wfl_ and 26 letters and digits."
}
},
"required": [
"workflowId"
],
"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"
}
}
}
]
}playbook.createWorkflow
Start an automation
- Kind
- Change
- Tool
automation_createWorkflow- Scope
playbook:write- Reached by
- API, MCP
a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"trigger": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"fromTemplate": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"copyOf": {
"type": "string",
"pattern": "^wfl_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A workflow id: wfl_ and 26 letters and digits."
}
},
"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"
}
}
}
]
}playbook.disable
Turn off a ready-made automation
- Kind
- Change
- Tool
automation_disable- Scope
playbook:write- Reached by
- API, MCP, ChatGPT
a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"playbookId": {
"type": "string",
"minLength": 1
}
},
"required": [
"playbookId"
],
"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"
}
}
}
]
}playbook.disableWorkflow
Turn off an automation you built
- Kind
- Change
- Tool
automation_disableWorkflow- Scope
playbook:write- Reached by
- API, MCP
a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"workflowId": {
"type": "string",
"pattern": "^wfl_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A workflow id: wfl_ and 26 letters and digits."
}
},
"required": [
"workflowId"
],
"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"
}
}
}
]
}playbook.enable
Turn on a ready-made automation
- Kind
- Change
- Tool
automation_enable- Scope
playbook:write- Reached by
- API, MCP, ChatGPT
customers see it: waits for the owner’s approval unless they chose Just do it for your app
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"playbookId": {
"type": "string",
"minLength": 1
},
"params": {
"default": {},
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"playbookId"
],
"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"
}
}
}
]
}playbook.previewWorkflow
Preview an automation
- Kind
- Change
- Tool
automation_previewWorkflow- Scope
playbook:read- Reached by
- API, MCP
runs right away
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"workflowId": {
"type": "string",
"pattern": "^wfl_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A workflow id: wfl_ and 26 letters and digits."
},
"graph": {
"description": "The builder’s unsaved draft. Leave it out to use the saved draft of workflowId.",
"type": "object",
"properties": {
"nodes": {
"maxItems": 60,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"kind": {
"type": "string",
"const": "trigger"
},
"event": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"where": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean"
]
}
},
"params": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"id",
"kind",
"event"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"kind": {
"type": "string",
"const": "wait"
},
"wait": {
"anyOf": [
{
"type": "object",
"properties": {
"from": {
"type": "string",
"const": "anchor"
},
"ms": {
"type": "integer",
"minimum": -34560000000,
"maximum": 34560000000
}
},
"required": [
"from",
"ms"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"from": {
"type": "string",
"const": "previous"
},
"ms": {
"type": "integer",
"minimum": 0,
"maximum": 34560000000
},
"at": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
}
},
"required": [
"from",
"ms"
],
"additionalProperties": false
}
]
}
},
"required": [
"id",
"kind",
"wait"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"kind": {
"type": "string",
"const": "branch"
},
"rule": {
"$ref": "#/$defs/__schema0"
},
"checks": {
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
}
},
"required": [
"id",
"kind"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"kind": {
"type": "string",
"const": "action"
},
"action": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"input": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"id",
"kind",
"action",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"kind": {
"type": "string",
"const": "end"
}
},
"required": [
"id",
"kind"
],
"additionalProperties": false
}
]
}
},
"edges": {
"maxItems": 80,
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"to": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"when": {
"type": "string",
"enum": [
"yes",
"no"
]
}
},
"required": [
"from",
"to"
],
"additionalProperties": false
}
},
"exitWhen": {
"$ref": "#/$defs/__schema0"
},
"once": {
"type": "string",
"enum": [
"subject",
"customer",
"per-event"
]
}
},
"required": [
"nodes",
"edges"
],
"additionalProperties": false
}
},
"additionalProperties": false,
"$defs": {
"__schema0": {
"anyOf": [
{
"type": "object",
"properties": {
"all": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
}
},
"required": [
"all"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"any": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
}
},
"required": [
"any"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"not": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"not"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"count": {
"type": "object",
"properties": {
"event": {
"type": "string",
"minLength": 1
},
"since": {
"anyOf": [
{
"type": "object",
"properties": {
"event": {
"type": "string",
"minLength": 1
}
},
"required": [
"event"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"minimum": 1,
"maximum": 3650
}
},
"required": [
"days"
],
"additionalProperties": false
}
]
},
"where": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean"
]
}
}
},
"required": [
"event"
],
"additionalProperties": false
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"eq": {
"type": "number"
}
},
"required": [
"count"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"sum": {
"type": "object",
"properties": {
"event": {
"type": "string",
"minLength": 1
},
"since": {
"anyOf": [
{
"type": "object",
"properties": {
"event": {
"type": "string",
"minLength": 1
}
},
"required": [
"event"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"minimum": 1,
"maximum": 3650
}
},
"required": [
"days"
],
"additionalProperties": false
}
]
},
"where": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean"
]
}
},
"field": {
"type": "string",
"minLength": 1
}
},
"required": [
"event",
"field"
],
"additionalProperties": false
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"eq": {
"type": "number"
}
},
"required": [
"sum"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"daysSince": {
"type": "object",
"properties": {
"event": {
"type": "string",
"minLength": 1
}
},
"required": [
"event"
],
"additionalProperties": false
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"eq": {
"type": "number"
}
},
"required": [
"daysSince"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"visited": {
"type": "object",
"properties": {
"offeringId": {
"description": "One offering’s visits only.",
"type": "string",
"pattern": "^off_[0-9a-hjkmnp-tv-z]{26}$"
},
"kind": {
"description": "One kind of offering only: class, appointment, workshop.",
"type": "string",
"pattern": "^[a-z_]{1,40}$"
},
"since": {
"type": "object",
"properties": {
"days": {
"type": "integer",
"minimum": 1,
"maximum": 3650
}
},
"required": [
"days"
],
"additionalProperties": false
}
},
"additionalProperties": false
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"eq": {
"type": "number"
}
},
"required": [
"visited"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"daysSinceVisit": {
"type": "object",
"properties": {
"offeringId": {
"description": "One offering’s visits only.",
"type": "string",
"pattern": "^off_[0-9a-hjkmnp-tv-z]{26}$"
},
"kind": {
"description": "One kind of offering only: class, appointment, workshop.",
"type": "string",
"pattern": "^[a-z_]{1,40}$"
}
},
"additionalProperties": false
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"eq": {
"type": "number"
}
},
"required": [
"daysSinceVisit"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"hasGrant": {
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"productId": {
"type": "string"
},
"benefit": {
"description": "A membership or pack by its benefit name: membership:gold.",
"type": "string",
"pattern": "^(membership|pack|pass):[a-z0-9][a-z0-9_-]{0,62}$"
}
},
"additionalProperties": false
}
},
"required": [
"hasGrant"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"balance": {
"type": "object",
"properties": {
"unit": {
"type": "string",
"minLength": 1
}
},
"required": [
"unit"
],
"additionalProperties": false
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"eq": {
"type": "number"
}
},
"required": [
"balance"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"tag": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 40
}
},
"required": [
"name"
],
"additionalProperties": false
}
},
"required": [
"tag"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"channel": {
"type": "object",
"properties": {
"is": {
"type": "string",
"pattern": "^[a-z0-9_-]{1,40}$"
}
},
"required": [
"is"
],
"additionalProperties": false
}
},
"required": [
"channel"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"field": {
"type": "object",
"properties": {
"record": {
"type": "string",
"const": "customer"
},
"key": {
"type": "string",
"minLength": 1,
"maxLength": 40
}
},
"required": [
"record",
"key"
],
"additionalProperties": false
},
"is": {
"type": [
"string",
"number",
"boolean"
]
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"exists": {
"type": "boolean"
}
},
"required": [
"field"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"state": {
"type": "object",
"properties": {
"key": {
"type": "string",
"minLength": 1
}
},
"required": [
"key"
],
"additionalProperties": false
},
"is": {
"type": [
"string",
"number",
"boolean"
]
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"exists": {
"type": "boolean"
}
},
"required": [
"state"
],
"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"
}
}
}
]
}playbook.publishWorkflow
Turn on an automation you built
- Kind
- Change
- Tool
automation_publishWorkflow- Scope
playbook:write- Reached by
- API, MCP
customers see it: waits for the owner’s approval unless they chose Just do it for your app
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"workflowId": {
"type": "string",
"pattern": "^wfl_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A workflow id: wfl_ and 26 letters and digits."
},
"inProgress": {
"default": "continue",
"type": "string",
"enum": [
"continue",
"stop"
]
}
},
"required": [
"workflowId"
],
"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"
}
}
}
]
}playbook.saveWorkflow
Save an automation draft
- Kind
- Change
- Tool
automation_saveWorkflow- Scope
playbook:write- Reached by
- API, MCP
a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"workflowId": {
"type": "string",
"pattern": "^wfl_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A workflow id: wfl_ and 26 letters and digits."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"draft": {
"type": "object",
"properties": {
"nodes": {
"maxItems": 60,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"kind": {
"type": "string",
"const": "trigger"
},
"event": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"where": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean"
]
}
},
"params": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"id",
"kind",
"event"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"kind": {
"type": "string",
"const": "wait"
},
"wait": {
"anyOf": [
{
"type": "object",
"properties": {
"from": {
"type": "string",
"const": "anchor"
},
"ms": {
"type": "integer",
"minimum": -34560000000,
"maximum": 34560000000
}
},
"required": [
"from",
"ms"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"from": {
"type": "string",
"const": "previous"
},
"ms": {
"type": "integer",
"minimum": 0,
"maximum": 34560000000
},
"at": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
}
},
"required": [
"from",
"ms"
],
"additionalProperties": false
}
]
}
},
"required": [
"id",
"kind",
"wait"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"kind": {
"type": "string",
"const": "branch"
},
"rule": {
"$ref": "#/$defs/__schema0"
},
"checks": {
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
}
},
"required": [
"id",
"kind"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"kind": {
"type": "string",
"const": "action"
},
"action": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"input": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"id",
"kind",
"action",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"kind": {
"type": "string",
"const": "end"
}
},
"required": [
"id",
"kind"
],
"additionalProperties": false
}
]
}
},
"edges": {
"maxItems": 80,
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"to": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"when": {
"type": "string",
"enum": [
"yes",
"no"
]
}
},
"required": [
"from",
"to"
],
"additionalProperties": false
}
},
"exitWhen": {
"$ref": "#/$defs/__schema0"
},
"once": {
"type": "string",
"enum": [
"subject",
"customer",
"per-event"
]
}
},
"required": [
"nodes",
"edges"
],
"additionalProperties": false
}
},
"required": [
"workflowId"
],
"additionalProperties": false,
"$defs": {
"__schema0": {
"anyOf": [
{
"type": "object",
"properties": {
"all": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
}
},
"required": [
"all"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"any": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
}
},
"required": [
"any"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"not": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"not"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"count": {
"type": "object",
"properties": {
"event": {
"type": "string",
"minLength": 1
},
"since": {
"anyOf": [
{
"type": "object",
"properties": {
"event": {
"type": "string",
"minLength": 1
}
},
"required": [
"event"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"minimum": 1,
"maximum": 3650
}
},
"required": [
"days"
],
"additionalProperties": false
}
]
},
"where": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean"
]
}
}
},
"required": [
"event"
],
"additionalProperties": false
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"eq": {
"type": "number"
}
},
"required": [
"count"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"sum": {
"type": "object",
"properties": {
"event": {
"type": "string",
"minLength": 1
},
"since": {
"anyOf": [
{
"type": "object",
"properties": {
"event": {
"type": "string",
"minLength": 1
}
},
"required": [
"event"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"minimum": 1,
"maximum": 3650
}
},
"required": [
"days"
],
"additionalProperties": false
}
]
},
"where": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean"
]
}
},
"field": {
"type": "string",
"minLength": 1
}
},
"required": [
"event",
"field"
],
"additionalProperties": false
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"eq": {
"type": "number"
}
},
"required": [
"sum"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"daysSince": {
"type": "object",
"properties": {
"event": {
"type": "string",
"minLength": 1
}
},
"required": [
"event"
],
"additionalProperties": false
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"eq": {
"type": "number"
}
},
"required": [
"daysSince"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"visited": {
"type": "object",
"properties": {
"offeringId": {
"description": "One offering’s visits only.",
"type": "string",
"pattern": "^off_[0-9a-hjkmnp-tv-z]{26}$"
},
"kind": {
"description": "One kind of offering only: class, appointment, workshop.",
"type": "string",
"pattern": "^[a-z_]{1,40}$"
},
"since": {
"type": "object",
"properties": {
"days": {
"type": "integer",
"minimum": 1,
"maximum": 3650
}
},
"required": [
"days"
],
"additionalProperties": false
}
},
"additionalProperties": false
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"eq": {
"type": "number"
}
},
"required": [
"visited"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"daysSinceVisit": {
"type": "object",
"properties": {
"offeringId": {
"description": "One offering’s visits only.",
"type": "string",
"pattern": "^off_[0-9a-hjkmnp-tv-z]{26}$"
},
"kind": {
"description": "One kind of offering only: class, appointment, workshop.",
"type": "string",
"pattern": "^[a-z_]{1,40}$"
}
},
"additionalProperties": false
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"eq": {
"type": "number"
}
},
"required": [
"daysSinceVisit"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"hasGrant": {
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"productId": {
"type": "string"
},
"benefit": {
"description": "A membership or pack by its benefit name: membership:gold.",
"type": "string",
"pattern": "^(membership|pack|pass):[a-z0-9][a-z0-9_-]{0,62}$"
}
},
"additionalProperties": false
}
},
"required": [
"hasGrant"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"balance": {
"type": "object",
"properties": {
"unit": {
"type": "string",
"minLength": 1
}
},
"required": [
"unit"
],
"additionalProperties": false
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"eq": {
"type": "number"
}
},
"required": [
"balance"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"tag": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 40
}
},
"required": [
"name"
],
"additionalProperties": false
}
},
"required": [
"tag"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"channel": {
"type": "object",
"properties": {
"is": {
"type": "string",
"pattern": "^[a-z0-9_-]{1,40}$"
}
},
"required": [
"is"
],
"additionalProperties": false
}
},
"required": [
"channel"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"field": {
"type": "object",
"properties": {
"record": {
"type": "string",
"const": "customer"
},
"key": {
"type": "string",
"minLength": 1,
"maxLength": 40
}
},
"required": [
"record",
"key"
],
"additionalProperties": false
},
"is": {
"type": [
"string",
"number",
"boolean"
]
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"exists": {
"type": "boolean"
}
},
"required": [
"field"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"state": {
"type": "object",
"properties": {
"key": {
"type": "string",
"minLength": 1
}
},
"required": [
"key"
],
"additionalProperties": false
},
"is": {
"type": [
"string",
"number",
"boolean"
]
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"exists": {
"type": "boolean"
}
},
"required": [
"state"
],
"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"
}
}
}
]
}playbook.setParams
Change an automation
- Kind
- Change
- Tool
automation_setParams- Scope
playbook:write- Reached by
- API, MCP, ChatGPT
customers see it: waits for the owner’s approval unless they chose Just do it for your app
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"playbookId": {
"type": "string",
"minLength": 1
},
"params": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"playbookId",
"params"
],
"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"
}
}
}
]
}playbook.simulateWorkflow
Walk through an automation
- Kind
- Change
- Tool
automation_simulateWorkflow- Scope
playbook:read- Reached by
- API, MCP
runs right away
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"workflowId": {
"type": "string",
"pattern": "^wfl_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A workflow id: wfl_ and 26 letters and digits."
},
"graph": {
"description": "The builder’s unsaved draft. Leave it out to use the saved draft of workflowId.",
"type": "object",
"properties": {
"nodes": {
"maxItems": 60,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"kind": {
"type": "string",
"const": "trigger"
},
"event": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"where": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean"
]
}
},
"params": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"id",
"kind",
"event"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"kind": {
"type": "string",
"const": "wait"
},
"wait": {
"anyOf": [
{
"type": "object",
"properties": {
"from": {
"type": "string",
"const": "anchor"
},
"ms": {
"type": "integer",
"minimum": -34560000000,
"maximum": 34560000000
}
},
"required": [
"from",
"ms"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"from": {
"type": "string",
"const": "previous"
},
"ms": {
"type": "integer",
"minimum": 0,
"maximum": 34560000000
},
"at": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
}
},
"required": [
"from",
"ms"
],
"additionalProperties": false
}
]
}
},
"required": [
"id",
"kind",
"wait"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"kind": {
"type": "string",
"const": "branch"
},
"rule": {
"$ref": "#/$defs/__schema0"
},
"checks": {
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
}
},
"required": [
"id",
"kind"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"kind": {
"type": "string",
"const": "action"
},
"action": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"input": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"id",
"kind",
"action",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"kind": {
"type": "string",
"const": "end"
}
},
"required": [
"id",
"kind"
],
"additionalProperties": false
}
]
}
},
"edges": {
"maxItems": 80,
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"to": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"when": {
"type": "string",
"enum": [
"yes",
"no"
]
}
},
"required": [
"from",
"to"
],
"additionalProperties": false
}
},
"exitWhen": {
"$ref": "#/$defs/__schema0"
},
"once": {
"type": "string",
"enum": [
"subject",
"customer",
"per-event"
]
}
},
"required": [
"nodes",
"edges"
],
"additionalProperties": false
},
"customerId": {
"type": "string",
"pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A customer id: cus_ and 26 letters and digits."
}
},
"additionalProperties": false,
"$defs": {
"__schema0": {
"anyOf": [
{
"type": "object",
"properties": {
"all": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
}
},
"required": [
"all"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"any": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
}
},
"required": [
"any"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"not": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"not"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"count": {
"type": "object",
"properties": {
"event": {
"type": "string",
"minLength": 1
},
"since": {
"anyOf": [
{
"type": "object",
"properties": {
"event": {
"type": "string",
"minLength": 1
}
},
"required": [
"event"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"minimum": 1,
"maximum": 3650
}
},
"required": [
"days"
],
"additionalProperties": false
}
]
},
"where": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean"
]
}
}
},
"required": [
"event"
],
"additionalProperties": false
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"eq": {
"type": "number"
}
},
"required": [
"count"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"sum": {
"type": "object",
"properties": {
"event": {
"type": "string",
"minLength": 1
},
"since": {
"anyOf": [
{
"type": "object",
"properties": {
"event": {
"type": "string",
"minLength": 1
}
},
"required": [
"event"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"minimum": 1,
"maximum": 3650
}
},
"required": [
"days"
],
"additionalProperties": false
}
]
},
"where": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean"
]
}
},
"field": {
"type": "string",
"minLength": 1
}
},
"required": [
"event",
"field"
],
"additionalProperties": false
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"eq": {
"type": "number"
}
},
"required": [
"sum"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"daysSince": {
"type": "object",
"properties": {
"event": {
"type": "string",
"minLength": 1
}
},
"required": [
"event"
],
"additionalProperties": false
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"eq": {
"type": "number"
}
},
"required": [
"daysSince"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"visited": {
"type": "object",
"properties": {
"offeringId": {
"description": "One offering’s visits only.",
"type": "string",
"pattern": "^off_[0-9a-hjkmnp-tv-z]{26}$"
},
"kind": {
"description": "One kind of offering only: class, appointment, workshop.",
"type": "string",
"pattern": "^[a-z_]{1,40}$"
},
"since": {
"type": "object",
"properties": {
"days": {
"type": "integer",
"minimum": 1,
"maximum": 3650
}
},
"required": [
"days"
],
"additionalProperties": false
}
},
"additionalProperties": false
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"eq": {
"type": "number"
}
},
"required": [
"visited"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"daysSinceVisit": {
"type": "object",
"properties": {
"offeringId": {
"description": "One offering’s visits only.",
"type": "string",
"pattern": "^off_[0-9a-hjkmnp-tv-z]{26}$"
},
"kind": {
"description": "One kind of offering only: class, appointment, workshop.",
"type": "string",
"pattern": "^[a-z_]{1,40}$"
}
},
"additionalProperties": false
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"eq": {
"type": "number"
}
},
"required": [
"daysSinceVisit"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"hasGrant": {
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"productId": {
"type": "string"
},
"benefit": {
"description": "A membership or pack by its benefit name: membership:gold.",
"type": "string",
"pattern": "^(membership|pack|pass):[a-z0-9][a-z0-9_-]{0,62}$"
}
},
"additionalProperties": false
}
},
"required": [
"hasGrant"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"balance": {
"type": "object",
"properties": {
"unit": {
"type": "string",
"minLength": 1
}
},
"required": [
"unit"
],
"additionalProperties": false
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"eq": {
"type": "number"
}
},
"required": [
"balance"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"tag": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 40
}
},
"required": [
"name"
],
"additionalProperties": false
}
},
"required": [
"tag"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"channel": {
"type": "object",
"properties": {
"is": {
"type": "string",
"pattern": "^[a-z0-9_-]{1,40}$"
}
},
"required": [
"is"
],
"additionalProperties": false
}
},
"required": [
"channel"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"field": {
"type": "object",
"properties": {
"record": {
"type": "string",
"const": "customer"
},
"key": {
"type": "string",
"minLength": 1,
"maxLength": 40
}
},
"required": [
"record",
"key"
],
"additionalProperties": false
},
"is": {
"type": [
"string",
"number",
"boolean"
]
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"exists": {
"type": "boolean"
}
},
"required": [
"field"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"state": {
"type": "object",
"properties": {
"key": {
"type": "string",
"minLength": 1
}
},
"required": [
"key"
],
"additionalProperties": false
},
"is": {
"type": [
"string",
"number",
"boolean"
]
},
"gte": {
"type": "number"
},
"lte": {
"type": "number"
},
"exists": {
"type": "boolean"
}
},
"required": [
"state"
],
"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"
}
}
}
]
}playbook.summary
What’s going on
- Kind
- Read
- Tool
automation_summary- Scope
playbook:read- Reached by
- API, MCP
Read-only.
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
}Output
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"oneOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"facts": {
"type": "array",
"items": {
"type": "string"
},
"description": "One-line facts, e.g. \"3 bookings today\"."
},
"attention": {
"description": "Things that need the owner, each with a plain reason.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"text": {
"type": "string"
},
"href": {
"type": "string"
}
},
"required": [
"id",
"text"
],
"additionalProperties": false
}
},
"happening": {
"description": "What’s on today, each at its time.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"at": {
"type": "number",
"description": "Epoch milliseconds."
},
"text": {
"type": "string"
},
"href": {
"type": "string"
}
},
"required": [
"id",
"at",
"text"
],
"additionalProperties": false
}
},
"metrics": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"value": {
"type": "number"
},
"prior": {
"type": "number"
},
"unit": {
"type": "string",
"enum": [
"count",
"money"
]
},
"href": {
"type": "string"
}
},
"required": [
"id",
"label",
"value"
],
"additionalProperties": false
}
}
},
"required": [
"title",
"facts"
],
"additionalProperties": false
}
},
"required": [
"status",
"title",
"change",
"result"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "refused"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
},
"required": [
"status",
"title",
"change",
"message"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "needs"
},
"kind": {
"type": "string",
"enum": [
"module",
"portal",
"business",
"limit",
"paused",
"reauth"
]
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"status",
"kind",
"title",
"change",
"message"
],
"additionalProperties": {}
}
]
}playbook.templates
Automations you can turn on, in every area unless you name one
- Kind
- Read
- Tool
automation_templates- Scope
playbook:read- Reached by
- API, MCP, ChatGPT
Read-only.
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"module": {
"type": "string",
"maxLength": 40
}
},
"additionalProperties": false
}Output
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"oneOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Turn it on with playbook.enable and this id."
},
"title": {
"type": "string"
},
"summary": {
"type": "string"
},
"defaults": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"on": {
"type": "boolean"
},
"params": {
"description": "Its settings, when it’s on.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"id",
"title",
"summary",
"defaults",
"on"
],
"additionalProperties": false
}
}
},
"required": [
"status",
"title",
"change",
"result"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "refused"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
},
"required": [
"status",
"title",
"change",
"message"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "needs"
},
"kind": {
"type": "string",
"enum": [
"module",
"portal",
"business",
"limit",
"paused",
"reauth"
]
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"status",
"kind",
"title",
"change",
"message"
],
"additionalProperties": {}
}
]
}