AgentDBDocs

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

stable added in 1.0.0-rc.6 changes data

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}/flows scope records:write
CLI
agentdb flows create

Arguments

ArgumentTypeRequiredDescription
namestringyesName of the flow. (min length 1, max length 100)
triggerobjectyesWhat starts the flow, e.g. a record created in an object.
whereobjectobject
actionsobject[]yesWhat the flow does, in order (1 to 10 actions). (max 10 items)
max_depthintegerinteger, 1–5, default 3
status"active" | "paused"string, one of: active, paused, default "active"
for_eachobjectobject
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "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
        }
      }
    ]
  }
}
MCP via agentdb_execute
{
  "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
          }
        }
      ]
    }
  }
}
REST
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}}]}'
CLI
agentdb flows create [options]

#flows_delete

stable added in 1.0.0-rc.6 changes data destructive

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

ArgumentTypeRequiredDescription
flow_idstringyesFlow id (flw_...)
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "flows_delete",
  "arguments": {
    "flow_id": "flw_example"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "flows_delete",
    "arguments": {
      "flow_id": "flw_example"
    }
  }
}
REST
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 '{}'
CLI
agentdb flows delete [options] <flow_id>

#flows_get

stable added in 1.0.0-rc.6 read-only

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

ArgumentTypeRequiredDescription
flow_idstringyesFlow id (flw_...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "flows_get",
  "arguments": {
    "flow_id": "flw_example"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "flows_get",
    "arguments": {
      "flow_id": "flw_example"
    }
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/flows/flw_example" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"
CLI
agentdb flows get [options] <flow_id>

#flows_list

stable added in 1.0.0-rc.6 read-only

List flows.

MCP tool
flows_list
REST
GET /v1/workspaces/{ws}/flows scope records:read
CLI
agentdb flows list

Arguments

ArgumentTypeRequiredDescription
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "flows_list",
  "arguments": {}
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "flows_list",
    "arguments": {}
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/flows" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"
CLI
agentdb flows list [options]

#flows_runs

stable added in 1.0.0-rc.6 read-only

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-runs scope records:read
CLI
agentdb flows runs

Arguments

ArgumentTypeRequiredDescription
flow_idstringstring, up to 64 characters
status"succeeded" | "failed" | "skipped"string, one of: succeeded, failed, skipped
limitintegerinteger, 1–100, default 50
cursorintegerinteger, at least 1
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "flows_runs",
  "arguments": {
    "flow_id": "flw_example",
    "status": "failed",
    "limit": 20
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "flows_runs",
    "arguments": {
      "flow_id": "flw_example",
      "status": "failed",
      "limit": 20
    }
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/flow-runs" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"
CLI
agentdb flows runs [options]

#flows_test

stable added in 1.0.0-rc.6 read-only

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/test scope records:read
CLI
agentdb flows test

Arguments

ArgumentTypeRequiredDescription
flow_idstringstring, up to 64 characters
flowobjectobject
record_idstringRecord id. (max length 64)
event"record.created" | "record.updated" | "record.deleted"string, one of: record.created, record.updated, record.deleted
fieldsstring[]string[], up to 50 items
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "flows_test",
  "arguments": {
    "flow_id": "flw_example",
    "record_id": "rec_example",
    "event": "record.updated",
    "fields": [
      "stage"
    ]
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "flows_test",
    "arguments": {
      "flow_id": "flw_example",
      "record_id": "rec_example",
      "event": "record.updated",
      "fields": [
        "stage"
      ]
    }
  }
}
REST
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"]}'
CLI
agentdb flows test [options]

#flows_update

stable added in 1.0.0-rc.6 changes data

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

ArgumentTypeRequiredDescription
namestringstring, 1–100 characters
triggerobjectobject
whereobject | nullobject | null
actionsobject[]object[], up to 10 items
max_depthintegerinteger, 1–5
status"active" | "paused"string, one of: active, paused
for_eachobject | nullobject | null
flow_idstringyesFlow id (flw_...)
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "flows_update",
  "arguments": {
    "flow_id": "flw_example",
    "status": "paused"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "flows_update",
    "arguments": {
      "flow_id": "flw_example",
      "status": "paused"
    }
  }
}
REST
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"}'
CLI
agentdb flows update [options] <flow_id>

#jobs_create

stable added in 1.0.0-rc.6 changes data

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}/jobs scope records:write
CLI
agentdb jobs create

Arguments

ArgumentTypeRequiredDescription
namestringyesName of the job. (min length 1, max length 100)
scheduleobjectyesWhen it runs: once at a time, every interval, or a cron expression.
actionobjectyesWhat 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_attemptsintegerinteger, 1–10, default 5
status"active" | "paused"string, one of: active, paused, default "active"
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "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"
      }
    }
  }
}
MCP via agentdb_execute
{
  "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"
        }
      }
    }
  }
}
REST
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"}}}'
CLI
agentdb jobs create [options]

#jobs_get

stable added in 1.0.0-rc.6 read-only

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

ArgumentTypeRequiredDescription
job_idstringyesJob id (job_...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "jobs_get",
  "arguments": {
    "job_id": "job_example"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "jobs_get",
    "arguments": {
      "job_id": "job_example"
    }
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/jobs/job_example" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"
CLI
agentdb jobs get [options] <job_id>

#jobs_list

stable added in 1.0.0-rc.6 read-only

List jobs.

MCP tool
jobs_list
REST
GET /v1/workspaces/{ws}/jobs scope records:read
CLI
agentdb jobs list

Arguments

ArgumentTypeRequiredDescription
status"active" | "paused" | "cancelled" | "completed"string, one of: active, paused, cancelled, completed
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "jobs_list",
  "arguments": {
    "status": "active"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "jobs_list",
    "arguments": {
      "status": "active"
    }
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/jobs" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"
CLI
agentdb jobs list [options]

#jobs_retry_run

stable added in 1.0.0-rc.6 changes data

Retry a dead run. Same idempotency key.

MCP tool
jobs_retry_run
REST
POST /v1/workspaces/{ws}/job-runs/{run}/retry scope records:write

Arguments

ArgumentTypeRequiredDescription
run_idstringyesRun id (run_...)
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

run_id comes from jobs_runs.

MCP
{
  "tool": "jobs_retry_run",
  "arguments": {
    "run_id": "jrn_example"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "jobs_retry_run",
    "arguments": {
      "run_id": "jrn_example"
    }
  }
}
REST
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

stable added in 1.0.0-rc.6 changes data

Run a job now.

MCP tool
jobs_run_now
REST
POST /v1/workspaces/{ws}/jobs/{job}/run scope records:write

Arguments

ArgumentTypeRequiredDescription
job_idstringyesJob id (job_...)
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "jobs_run_now",
  "arguments": {
    "job_id": "job_example"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "jobs_run_now",
    "arguments": {
      "job_id": "job_example"
    }
  }
}
REST
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

stable added in 1.0.0-rc.6 read-only

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-runs scope records:read
CLI
agentdb jobs runs

Arguments

ArgumentTypeRequiredDescription
job_idstringstring, up to 64 characters
status"pending" | "running" | "succeeded" | "dead" | "cancelled"string, one of: pending, running, succeeded, dead, cancelled
limitintegerinteger, 1–100, default 50
cursorintegerinteger, at least 1
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "jobs_runs",
  "arguments": {
    "job_id": "job_example",
    "limit": 20
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "jobs_runs",
    "arguments": {
      "job_id": "job_example",
      "limit": 20
    }
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/job-runs" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"
CLI
agentdb jobs runs [options]

#jobs_update

stable added in 1.0.0-rc.6 changes data

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

ArgumentTypeRequiredDescription
namestringstring, 1–100 characters
scheduleobjectWhen it runs: once at a time, every interval, or a cron expression.
actionobjectobject
missed"skip" | "run_once" | "run_all"string, one of: skip, run_once, run_all
max_attemptsintegerinteger, 1–10
status"active" | "paused" | "cancelled"string, one of: active, paused, cancelled
job_idstringyesJob id (job_...)
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "jobs_update",
  "arguments": {
    "job_id": "job_example",
    "status": "paused"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "jobs_update",
    "arguments": {
      "job_id": "job_example",
      "status": "paused"
    }
  }
}
REST
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"}'
CLI
agentdb jobs update [options] <job_id>

#schedule_preview

stable added in 1.0.0-rc.6 read-only

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/preview scope records:read

Arguments

ArgumentTypeRequiredDescription
scheduleobjectyesWhen it runs: once at a time, every interval, or a cron expression.
countintegerinteger, 1–50, default 5
afterstringstring, up to 40 characters
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "schedule_preview",
  "arguments": {
    "schedule": {
      "type": "rrule",
      "rule": "FREQ=WEEKLY;BYDAY=MO",
      "start": "2026-01-05T09:00:00Z",
      "timezone": "Europe/Amsterdam"
    },
    "count": 3
  }
}
MCP via agentdb_execute
{
  "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
    }
  }
}
REST
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

stable added in 1.0.0-rc.6 changes data

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}/webhooks scope records:write
CLI
agentdb webhooks create

Arguments

ArgumentTypeRequiredDescription
namestringstring, 1–100 characters
urlstringyesHTTPS 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 []
objectsstring[]string[], up to 50 items
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "webhooks_create",
  "arguments": {
    "name": "Deal changes",
    "url": "https://hooks.example.test/agentdb",
    "events": [
      "record.created",
      "record.updated"
    ],
    "objects": [
      "deal"
    ]
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "webhooks_create",
    "arguments": {
      "name": "Deal changes",
      "url": "https://hooks.example.test/agentdb",
      "events": [
        "record.created",
        "record.updated"
      ],
      "objects": [
        "deal"
      ]
    }
  }
}
REST
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"]}'
CLI
agentdb webhooks create [options] <url>

#webhooks_delete

stable added in 1.0.0-rc.6 changes data destructive

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

ArgumentTypeRequiredDescription
webhook_idstringyesWebhook id (whk_...)
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "webhooks_delete",
  "arguments": {
    "webhook_id": "whk_example"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "webhooks_delete",
    "arguments": {
      "webhook_id": "whk_example"
    }
  }
}
REST
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 '{}'
CLI
agentdb webhooks delete [options] <webhook_id>

#webhooks_deliveries

stable added in 1.0.0-rc.6 read-only

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-deliveries scope records:read
CLI
agentdb webhooks deliveries

Arguments

ArgumentTypeRequiredDescription
webhook_idstringstring, up to 64 characters
status"pending" | "delivering" | "succeeded" | "dead" | "cancelled"string, one of: pending, delivering, succeeded, dead, cancelled
limitintegerinteger, 1–100, default 50
cursorintegerinteger, at least 1
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "webhooks_deliveries",
  "arguments": {
    "webhook_id": "whk_example",
    "status": "dead",
    "limit": 20
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "webhooks_deliveries",
    "arguments": {
      "webhook_id": "whk_example",
      "status": "dead",
      "limit": 20
    }
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/webhook-deliveries" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"
CLI
agentdb webhooks deliveries [options]

#webhooks_get

stable added in 1.0.0-rc.6 read-only

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

ArgumentTypeRequiredDescription
webhook_idstringyesWebhook id (whk_...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "webhooks_get",
  "arguments": {
    "webhook_id": "whk_example"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "webhooks_get",
    "arguments": {
      "webhook_id": "whk_example"
    }
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/webhooks/whk_example" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"
CLI
agentdb webhooks get [options] <webhook_id>

#webhooks_list

stable added in 1.0.0-rc.6 read-only

List webhooks. Shows status (active, paused, disabled + reason) and failure counts, never secrets.

MCP tool
webhooks_list
REST
GET /v1/workspaces/{ws}/webhooks scope records:read
CLI
agentdb webhooks list

Arguments

ArgumentTypeRequiredDescription
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "webhooks_list",
  "arguments": {}
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "webhooks_list",
    "arguments": {}
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/webhooks" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"
CLI
agentdb webhooks list [options]

#webhooks_redeliver

stable added in 1.0.0-rc.6 changes data

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}/redeliver scope records:write
CLI
agentdb webhooks redeliver

Arguments

ArgumentTypeRequiredDescription
delivery_idstringyesDelivery id (dlv_...)
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

delivery_id comes from webhooks_deliveries.

MCP
{
  "tool": "webhooks_redeliver",
  "arguments": {
    "delivery_id": "whd_example"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "webhooks_redeliver",
    "arguments": {
      "delivery_id": "whd_example"
    }
  }
}
REST
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 '{}'
CLI
agentdb webhooks redeliver [options] <delivery_id>

#webhooks_rotate_secret

stable added in 1.0.0-rc.6 changes data

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-secret scope records:write
CLI
agentdb webhooks rotate-secret

Arguments

ArgumentTypeRequiredDescription
grace_secondsintegerinteger, 0–604800, default 86400
webhook_idstringyesWebhook id (whk_...)
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "webhooks_rotate_secret",
  "arguments": {
    "webhook_id": "whk_example",
    "grace_seconds": 3600
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "webhooks_rotate_secret",
    "arguments": {
      "webhook_id": "whk_example",
      "grace_seconds": 3600
    }
  }
}
REST
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}'
CLI
agentdb webhooks rotate-secret [options] <webhook_id>

#webhooks_test

stable added in 1.0.0-rc.6 changes data

Send a signed test delivery.

MCP tool
webhooks_test
REST
POST /v1/workspaces/{ws}/webhooks/{webhook}/test scope records:write
CLI
agentdb webhooks test

Arguments

ArgumentTypeRequiredDescription
webhook_idstringyesWebhook id (whk_...)
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "webhooks_test",
  "arguments": {
    "webhook_id": "whk_example"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "webhooks_test",
    "arguments": {
      "webhook_id": "whk_example"
    }
  }
}
REST
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 '{}'
CLI
agentdb webhooks test [options] <webhook_id>

#webhooks_update

stable added in 1.0.0-rc.6 changes data

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

ArgumentTypeRequiredDescription
namestringstring, 1–100 characters
urlstringstring, 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
objectsstring[] | nullstring[] | null
status"active" | "paused"string, one of: active, paused
webhook_idstringyesWebhook id (whk_...)
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "webhooks_update",
  "arguments": {
    "webhook_id": "whk_example",
    "status": "paused"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "webhooks_update",
    "arguments": {
      "webhook_id": "whk_example",
      "status": "paused"
    }
  }
}
REST
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"}'
CLI
agentdb webhooks update [options] <webhook_id>