Automation
Webhooks, scheduled jobs (once/cron/RRULE) and trigger flows.
Start with: webhooks_create, jobs_create, flows_create, flows_test, schedule_preview.
24 operations. Discover them from an agent with agentdb_capabilities {"category": "automation"}.
#flows_create
Create a flow: a rule that reacts to changes. Triggers: record.created | record.updated | record.deleted | field.changed {object, fields} | schedule (run by a job's run_flow); optional where (records_query format) checked on the record after the change; actions set_field, create_record {object, data, links?}, delete_record {cascade?}, notify {recipient, title} (AgentInbox), webhook {webhook_id, include_record}, schedule {delay_seconds|at, action}, propose {operation, params, input} (asks a human, see approvals_submit). Data values may be placeholders like "{{record.id}}", "{{record.data.email}}", "{{now+4h}}" or "{{today+30d}}". Sweeps: a schedule trigger with an object and for_each {limit, rollups?, having?} runs the actions for each record matching where (run it from a job's run_flow). Loop protection: a flow ignores its own writes and chains stop at max_depth (default 3). Try it first with flows_test.
- MCP tool
flows_create- REST
POST /v1/workspaces/{ws}/flowsscope records:write- CLI
agentdb flows create
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
name | string | yes | Name of the flow. (min length 1, max length 100) |
trigger | object | yes | What starts the flow, e.g. a record created in an object. |
where | object | object | |
actions | object[] | yes | What the flow does, in order (1 to 10 actions). (max 10 items) |
max_depth | integer | integer, 1–5, default 3 | |
status | "active" | "paused" | string, one of: active, paused, default "active" | |
for_each | object | object | |
idempotency_key | string | Optional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again. | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "flows_create",
"arguments": {
"name": "Tag won deals",
"trigger": {
"type": "field.changed",
"object": "deal",
"fields": [
"stage"
]
},
"where": {
"all": [
{
"field": "stage",
"op": "eq",
"value": "won"
}
]
},
"actions": [
{
"type": "set_field",
"data": {
"needs_invoice": true
}
}
]
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "flows_create",
"arguments": {
"name": "Tag won deals",
"trigger": {
"type": "field.changed",
"object": "deal",
"fields": [
"stage"
]
},
"where": {
"all": [
{
"field": "stage",
"op": "eq",
"value": "won"
}
]
},
"actions": [
{
"type": "set_field",
"data": {
"needs_invoice": true
}
}
]
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/flows" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Tag won deals","trigger":{"type":"field.changed","object":"deal","fields":["stage"]},"where":{"all":[{"field":"stage","op":"eq","value":"won"}]},"actions":[{"type":"set_field","data":{"needs_invoice":true}}]}'agentdb flows create [options]#flows_delete
Delete a flow and its runs.
- MCP tool
flows_delete- REST
DELETE /v1/workspaces/{ws}/flows/{flow}scope records:write- CLI
agentdb flows delete
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
flow_id | string | yes | Flow id (flw_...) |
idempotency_key | string | Optional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again. | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "flows_delete",
"arguments": {
"flow_id": "flw_example"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "flows_delete",
"arguments": {
"flow_id": "flw_example"
}
}
}curl -s -X DELETE "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/flows/flw_example" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'agentdb flows delete [options] <flow_id>#flows_get
One flow with versions and run counts.
- MCP tool
flows_get- REST
GET /v1/workspaces/{ws}/flows/{flow}scope records:read- CLI
agentdb flows get
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
flow_id | string | yes | Flow id (flw_...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "flows_get",
"arguments": {
"flow_id": "flw_example"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "flows_get",
"arguments": {
"flow_id": "flw_example"
}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/flows/flw_example" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb flows get [options] <flow_id>#flows_list
List flows.
- MCP tool
flows_list- REST
GET /v1/workspaces/{ws}/flowsscope records:read- CLI
agentdb flows list
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "flows_list",
"arguments": {}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "flows_list",
"arguments": {}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/flows" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb flows list [options]#flows_runs
Flow run history. Audit: event, record, depth, status succeeded | failed | skipped (with reason, e.g. max_depth) and per-action results.
- MCP tool
flows_runs- REST
GET /v1/workspaces/{ws}/flow-runsscope records:read- CLI
agentdb flows runs
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
flow_id | string | string, up to 64 characters | |
status | "succeeded" | "failed" | "skipped" | string, one of: succeeded, failed, skipped | |
limit | integer | integer, 1–100, default 50 | |
cursor | integer | integer, at least 1 | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "flows_runs",
"arguments": {
"flow_id": "flw_example",
"status": "failed",
"limit": 20
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "flows_runs",
"arguments": {
"flow_id": "flw_example",
"status": "failed",
"limit": 20
}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/flow-runs" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb flows runs [options]#flows_test
Dry-run a flow. Does a record match the flow's trigger and condition, and what would its actions do? Runs the actions in a transaction that is rolled back; nothing is written or sent.
- MCP tool
flows_test- REST
POST /v1/workspaces/{ws}/flows/testscope records:read- CLI
agentdb flows test
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
flow_id | string | string, up to 64 characters | |
flow | object | object | |
record_id | string | Record id. (max length 64) | |
event | "record.created" | "record.updated" | "record.deleted" | string, one of: record.created, record.updated, record.deleted | |
fields | string[] | string[], up to 50 items | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "flows_test",
"arguments": {
"flow_id": "flw_example",
"record_id": "rec_example",
"event": "record.updated",
"fields": [
"stage"
]
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "flows_test",
"arguments": {
"flow_id": "flw_example",
"record_id": "rec_example",
"event": "record.updated",
"fields": [
"stage"
]
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/flows/test" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"flow_id":"flw_example","record_id":"rec_example","event":"record.updated","fields":["stage"]}'agentdb flows test [options]#flows_update
Change, pause or resume a flow. A new version is kept.
- MCP tool
flows_update- REST
PATCH /v1/workspaces/{ws}/flows/{flow}scope records:write- CLI
agentdb flows update
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
name | string | string, 1–100 characters | |
trigger | object | object | |
where | object | null | object | null | |
actions | object[] | object[], up to 10 items | |
max_depth | integer | integer, 1–5 | |
status | "active" | "paused" | string, one of: active, paused | |
for_each | object | null | object | null | |
flow_id | string | yes | Flow id (flw_...) |
idempotency_key | string | Optional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again. | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "flows_update",
"arguments": {
"flow_id": "flw_example",
"status": "paused"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "flows_update",
"arguments": {
"flow_id": "flw_example",
"status": "paused"
}
}
}curl -s -X PATCH "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/flows/flw_example" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"status":"paused"}'agentdb flows update [options] <flow_id>#jobs_create
Schedule a one-off or recurring job. Schedules: once {at}, cron {expression, timezone} or rrule {rule, start, timezone} (IANA zones; DST: a time in a spring-forward gap runs after the gap, a repeated time runs once). Action: create_record (e.g. an agent_task record your agent polls), update_record, webhook {webhook_id, payload} or run_flow. Each occurrence runs at least once with a stable idempotency_key; record actions take effect exactly once. missed: run_once (default) | skip | run_all after downtime.
- MCP tool
jobs_create- REST
POST /v1/workspaces/{ws}/jobsscope records:write- CLI
agentdb jobs create
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
name | string | yes | Name of the job. (min length 1, max length 100) |
schedule | object | yes | When it runs: once at a time, every interval, or a cron expression. |
action | object | yes | What the job does when it runs, e.g. call a webhook. |
missed | "skip" | "run_once" | "run_all" | string, one of: skip, run_once, run_all, default "run_once" | |
max_attempts | integer | integer, 1–10, default 5 | |
status | "active" | "paused" | string, one of: active, paused, default "active" | |
idempotency_key | string | Optional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again. | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "jobs_create",
"arguments": {
"name": "Weekly follow-up",
"schedule": {
"type": "cron",
"expression": "0 9 * * 1",
"timezone": "Europe/Amsterdam"
},
"action": {
"type": "create_record",
"object": "task",
"data": {
"title": "Review open deals"
}
}
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "jobs_create",
"arguments": {
"name": "Weekly follow-up",
"schedule": {
"type": "cron",
"expression": "0 9 * * 1",
"timezone": "Europe/Amsterdam"
},
"action": {
"type": "create_record",
"object": "task",
"data": {
"title": "Review open deals"
}
}
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/jobs" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Weekly follow-up","schedule":{"type":"cron","expression":"0 9 * * 1","timezone":"Europe/Amsterdam"},"action":{"type":"create_record","object":"task","data":{"title":"Review open deals"}}}'agentdb jobs create [options]#jobs_get
One job with its next 5 run times.
- MCP tool
jobs_get- REST
GET /v1/workspaces/{ws}/jobs/{job}scope records:read- CLI
agentdb jobs get
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
job_id | string | yes | Job id (job_...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "jobs_get",
"arguments": {
"job_id": "job_example"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "jobs_get",
"arguments": {
"job_id": "job_example"
}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/jobs/job_example" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb jobs get [options] <job_id>#jobs_list
List jobs.
- MCP tool
jobs_list- REST
GET /v1/workspaces/{ws}/jobsscope records:read- CLI
agentdb jobs list
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
status | "active" | "paused" | "cancelled" | "completed" | string, one of: active, paused, cancelled, completed | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "jobs_list",
"arguments": {
"status": "active"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "jobs_list",
"arguments": {
"status": "active"
}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/jobs" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb jobs list [options]#jobs_retry_run
Retry a dead run. Same idempotency key.
- MCP tool
jobs_retry_run- REST
POST /v1/workspaces/{ws}/job-runs/{run}/retryscope records:write
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
run_id | string | yes | Run id (run_...) |
idempotency_key | string | Optional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again. | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
run_id comes from jobs_runs.
{
"tool": "jobs_retry_run",
"arguments": {
"run_id": "jrn_example"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "jobs_retry_run",
"arguments": {
"run_id": "jrn_example"
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/job-runs/jrn_example/retry" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'#jobs_run_now
Run a job now.
- MCP tool
jobs_run_now- REST
POST /v1/workspaces/{ws}/jobs/{job}/runscope records:write
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
job_id | string | yes | Job id (job_...) |
idempotency_key | string | Optional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again. | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "jobs_run_now",
"arguments": {
"job_id": "job_example"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "jobs_run_now",
"arguments": {
"job_id": "job_example"
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/jobs/job_example/run" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'#jobs_runs
Job run history. Newest first: scheduled_for, status (pending, running, succeeded, dead), attempts, result or last_error. Filter by job_id and status.
- MCP tool
jobs_runs- REST
GET /v1/workspaces/{ws}/job-runsscope records:read- CLI
agentdb jobs runs
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
job_id | string | string, up to 64 characters | |
status | "pending" | "running" | "succeeded" | "dead" | "cancelled" | string, one of: pending, running, succeeded, dead, cancelled | |
limit | integer | integer, 1–100, default 50 | |
cursor | integer | integer, at least 1 | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "jobs_runs",
"arguments": {
"job_id": "job_example",
"limit": 20
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "jobs_runs",
"arguments": {
"job_id": "job_example",
"limit": 20
}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/job-runs" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb jobs runs [options]#jobs_update
Change, pause, resume or cancel a job. status: paused | active (resumes from now) | cancelled (final; queued runs are cancelled).
- MCP tool
jobs_update- REST
PATCH /v1/workspaces/{ws}/jobs/{job}scope records:write- CLI
agentdb jobs update
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
name | string | string, 1–100 characters | |
schedule | object | When it runs: once at a time, every interval, or a cron expression. | |
action | object | object | |
missed | "skip" | "run_once" | "run_all" | string, one of: skip, run_once, run_all | |
max_attempts | integer | integer, 1–10 | |
status | "active" | "paused" | "cancelled" | string, one of: active, paused, cancelled | |
job_id | string | yes | Job id (job_...) |
idempotency_key | string | Optional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again. | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "jobs_update",
"arguments": {
"job_id": "job_example",
"status": "paused"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "jobs_update",
"arguments": {
"job_id": "job_example",
"status": "paused"
}
}
}curl -s -X PATCH "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/jobs/job_example" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"status":"paused"}'agentdb jobs update [options] <job_id>#schedule_preview
Preview a schedule's next times. Nothing is created. Also the helper for recurrence fields: pass {type: rrule, rule: <field value>}.
- MCP tool
schedule_preview- REST
POST /v1/workspaces/{ws}/schedule/previewscope records:read
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
schedule | object | yes | When it runs: once at a time, every interval, or a cron expression. |
count | integer | integer, 1–50, default 5 | |
after | string | string, up to 40 characters | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "schedule_preview",
"arguments": {
"schedule": {
"type": "rrule",
"rule": "FREQ=WEEKLY;BYDAY=MO",
"start": "2026-01-05T09:00:00Z",
"timezone": "Europe/Amsterdam"
},
"count": 3
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "schedule_preview",
"arguments": {
"schedule": {
"type": "rrule",
"rule": "FREQ=WEEKLY;BYDAY=MO",
"start": "2026-01-05T09:00:00Z",
"timezone": "Europe/Amsterdam"
},
"count": 3
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/schedule/preview" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"schedule":{"type":"rrule","rule":"FREQ=WEEKLY;BYDAY=MO","start":"2026-01-05T09:00:00Z","timezone":"Europe/Amsterdam"},"count":3}'#webhooks_create
Register a signed https webhook for change events. Events: record.created/updated/deleted, relationship.*, schema.changed, file.changed, webhook.disabled, message.posted/edited/deleted, channel.changed, inbox.item, conversation.changed, approval.submitted/decided/executed/expired; "*" = all; optionally only some objects. Returns the signing secret ONCE (whsec_…). Every request carries X-AgentDB-Signature: t=<unix>,v1=HMAC-SHA256(secret, t + '.' + body); reject timestamps older than 5 minutes. Delivery is at-least-once in event order per webhook; de-duplicate on X-AgentDB-Event-Id. Private, loopback and metadata addresses are refused. Payloads carry ids, not record values.
- MCP tool
webhooks_create- REST
POST /v1/workspaces/{ws}/webhooksscope records:write- CLI
agentdb webhooks create
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
name | string | string, 1–100 characters | |
url | string | yes | HTTPS address that receives the events. (min length 1, max length 2048) |
events | "record.created" | "record.updated" | "record.deleted" | "record.archived" | "record.unarchived" | "record.restored" | "record.purged" | "relationship.linked" | "relationship.unlinked" | "schema.changed" | "file.changed" | "webhook.disabled" | "message.posted" | "message.edited" | "message.deleted" | "channel.changed" | "inbox.item" | "conversation.changed" | "approval.submitted" | "approval.decided" | "approval.executed" | "approval.expired" | "calendar.reminder" | "connector.inbound" | "connector.sync_failed" | "*"[] | "record.created" | "record.updated" | "record.deleted" | "record.archived" | "record.unarchived" | "record.restored" | "record.purged" | "relationship.linked" | "relationship.unlinked" | "schema.changed" | "file.changed" | "webhook.disabled" | "message.posted" | "message.edited" | "message.deleted" | "channel.changed" | "inbox.item" | "conversation.changed" | "approval.submitted" | "approval.decided" | "approval.executed" | "approval.expired" | "calendar.reminder" | "connector.inbound" | "connector.sync_failed" | "*"[], up to 26 items, default [] | |
objects | string[] | string[], up to 50 items | |
idempotency_key | string | Optional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again. | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "webhooks_create",
"arguments": {
"name": "Deal changes",
"url": "https://hooks.example.test/agentdb",
"events": [
"record.created",
"record.updated"
],
"objects": [
"deal"
]
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "webhooks_create",
"arguments": {
"name": "Deal changes",
"url": "https://hooks.example.test/agentdb",
"events": [
"record.created",
"record.updated"
],
"objects": [
"deal"
]
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/webhooks" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Deal changes","url":"https://hooks.example.test/agentdb","events":["record.created","record.updated"],"objects":["deal"]}'agentdb webhooks create [options] <url>#webhooks_delete
Delete a webhook. Queued deliveries are cancelled at once; nothing more is sent to it.
- MCP tool
webhooks_delete- REST
DELETE /v1/workspaces/{ws}/webhooks/{webhook}scope records:write- CLI
agentdb webhooks delete
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
webhook_id | string | yes | Webhook id (whk_...) |
idempotency_key | string | Optional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again. | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "webhooks_delete",
"arguments": {
"webhook_id": "whk_example"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "webhooks_delete",
"arguments": {
"webhook_id": "whk_example"
}
}
}curl -s -X DELETE "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/webhooks/whk_example" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'agentdb webhooks delete [options] <webhook_id>#webhooks_deliveries
Webhook delivery log. Newest first: status (pending, delivering, succeeded, dead = gave up after retries, cancelled), attempts, last HTTP status and error. Filter by webhook_id and status.
- MCP tool
webhooks_deliveries- REST
GET /v1/workspaces/{ws}/webhook-deliveriesscope records:read- CLI
agentdb webhooks deliveries
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
webhook_id | string | string, up to 64 characters | |
status | "pending" | "delivering" | "succeeded" | "dead" | "cancelled" | string, one of: pending, delivering, succeeded, dead, cancelled | |
limit | integer | integer, 1–100, default 50 | |
cursor | integer | integer, at least 1 | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "webhooks_deliveries",
"arguments": {
"webhook_id": "whk_example",
"status": "dead",
"limit": 20
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "webhooks_deliveries",
"arguments": {
"webhook_id": "whk_example",
"status": "dead",
"limit": 20
}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/webhook-deliveries" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb webhooks deliveries [options]#webhooks_get
One webhook with delivery counts by status.
- MCP tool
webhooks_get- REST
GET /v1/workspaces/{ws}/webhooks/{webhook}scope records:read- CLI
agentdb webhooks get
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
webhook_id | string | yes | Webhook id (whk_...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "webhooks_get",
"arguments": {
"webhook_id": "whk_example"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "webhooks_get",
"arguments": {
"webhook_id": "whk_example"
}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/webhooks/whk_example" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb webhooks get [options] <webhook_id>#webhooks_list
List webhooks. Shows status (active, paused, disabled + reason) and failure counts, never secrets.
- MCP tool
webhooks_list- REST
GET /v1/workspaces/{ws}/webhooksscope records:read- CLI
agentdb webhooks list
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "webhooks_list",
"arguments": {}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "webhooks_list",
"arguments": {}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/webhooks" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb webhooks list [options]#webhooks_redeliver
Send a delivery again. Works for dead, succeeded or cancelled deliveries; same event id.
- MCP tool
webhooks_redeliver- REST
POST /v1/workspaces/{ws}/webhook-deliveries/{delivery}/redeliverscope records:write- CLI
agentdb webhooks redeliver
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
delivery_id | string | yes | Delivery id (dlv_...) |
idempotency_key | string | Optional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again. | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
delivery_id comes from webhooks_deliveries.
{
"tool": "webhooks_redeliver",
"arguments": {
"delivery_id": "whd_example"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "webhooks_redeliver",
"arguments": {
"delivery_id": "whd_example"
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/webhook-deliveries/whd_example/redeliver" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'agentdb webhooks redeliver [options] <delivery_id>#webhooks_rotate_secret
Rotate the signing secret. The new one is returned once; the previous one keeps signing as a second v1 value for grace_seconds (default 24 h) so receivers can switch without downtime.
- MCP tool
webhooks_rotate_secret- REST
POST /v1/workspaces/{ws}/webhooks/{webhook}/rotate-secretscope records:write- CLI
agentdb webhooks rotate-secret
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
grace_seconds | integer | integer, 0–604800, default 86400 | |
webhook_id | string | yes | Webhook id (whk_...) |
idempotency_key | string | Optional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again. | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "webhooks_rotate_secret",
"arguments": {
"webhook_id": "whk_example",
"grace_seconds": 3600
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "webhooks_rotate_secret",
"arguments": {
"webhook_id": "whk_example",
"grace_seconds": 3600
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/webhooks/whk_example/rotate-secret" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"grace_seconds":3600}'agentdb webhooks rotate-secret [options] <webhook_id>#webhooks_test
Send a signed test delivery.
- MCP tool
webhooks_test- REST
POST /v1/workspaces/{ws}/webhooks/{webhook}/testscope records:write- CLI
agentdb webhooks test
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
webhook_id | string | yes | Webhook id (whk_...) |
idempotency_key | string | Optional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again. | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "webhooks_test",
"arguments": {
"webhook_id": "whk_example"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "webhooks_test",
"arguments": {
"webhook_id": "whk_example"
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/webhooks/whk_example/test" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'agentdb webhooks test [options] <webhook_id>#webhooks_update
Change a webhook. url, events, objects, name; status paused stops sending (events still queue), active resumes (also after an automatic disable).
- MCP tool
webhooks_update- REST
PATCH /v1/workspaces/{ws}/webhooks/{webhook}scope records:write- CLI
agentdb webhooks update
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
name | string | string, 1–100 characters | |
url | string | string, 1–2048 characters | |
events | "record.created" | "record.updated" | "record.deleted" | "record.archived" | "record.unarchived" | "record.restored" | "record.purged" | "relationship.linked" | "relationship.unlinked" | "schema.changed" | "file.changed" | "webhook.disabled" | "message.posted" | "message.edited" | "message.deleted" | "channel.changed" | "inbox.item" | "conversation.changed" | "approval.submitted" | "approval.decided" | "approval.executed" | "approval.expired" | "calendar.reminder" | "connector.inbound" | "connector.sync_failed" | "*"[] | "record.created" | "record.updated" | "record.deleted" | "record.archived" | "record.unarchived" | "record.restored" | "record.purged" | "relationship.linked" | "relationship.unlinked" | "schema.changed" | "file.changed" | "webhook.disabled" | "message.posted" | "message.edited" | "message.deleted" | "channel.changed" | "inbox.item" | "conversation.changed" | "approval.submitted" | "approval.decided" | "approval.executed" | "approval.expired" | "calendar.reminder" | "connector.inbound" | "connector.sync_failed" | "*"[], up to 26 items | |
objects | string[] | null | string[] | null | |
status | "active" | "paused" | string, one of: active, paused | |
webhook_id | string | yes | Webhook id (whk_...) |
idempotency_key | string | Optional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again. | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "webhooks_update",
"arguments": {
"webhook_id": "whk_example",
"status": "paused"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "webhooks_update",
"arguments": {
"webhook_id": "whk_example",
"status": "paused"
}
}
}curl -s -X PATCH "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/webhooks/whk_example" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"status":"paused"}'agentdb webhooks update [options] <webhook_id>