RaabtaHQ
List triggers

List triggers

GET/api/v1/triggers

scope assistants:readPaginated

What can wake an assistant without a person asking: a schedule, an event in the CRM, a one-off time, or a call from another system.

Query parameters

NameTypeDescription
limitoptional
integerPage size, 1–100Default: 20
cursoroptional
stringThe `next_cursor` from the previous page
assistant_idoptional
string (uuid)Only triggers for this assistant
kindoptional
string (enum)Only triggers of this kindrecurringonceeventwebhook
enabledoptional
string (enum)Only enabled, or only disabledtruefalse
Request
curl "https://your-crm.example.com/api/v1/triggers?limit=20" \
  -H "Authorization: Bearer $RAABTA_API_KEY"
Response · 200 OK
{
  "data": [
    {
      "id": "4b5c6d7e-8f9a-4b0c-8d1e-2f3a4b5c6d7e",
      "assistant_id": "8f2c1d3e-4a5b-4c6d-9e0f-1a2b3c4d5e6f",
      "name": "Weekly no-show follow-up",
      "enabled": true,
      "kind": "recurring",
      "goal": "Message anyone who missed an appointment this week and offer to rebook.",
      "period": "weekly",
      "send_time": "10:00",
      "day_of_week": 1,
      "day_of_month": null,
      "run_at": null,
      "event_key": null,
      "audience_type": "segment",
      "contact_id": null,
      "segment_id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
      "max_targets": 50,
      "respect_quiet_hours": true,
      "last_fired_at": "2026-09-01T10:00:00.000Z",
      "last_error": null,
      "created_at": "2026-08-10T12:00:00.000Z",
      "updated_at": "2026-09-01T10:00:00.000Z"
    }
  ],
  "meta": {
    "next_cursor": null,
    "has_more": false,
    "limit": 20
  }
}

Response

Wrapped in { data: [...], meta }
NameTypeDescription
idrequired
string (uuid)Trigger id
assistant_idrequired
string (uuid)The assistant this fires
namerequired
stringTrigger name
enabledrequired
booleanTriggers are created switched OFF; enable them explicitly
kindrequired
string (enum)What wakes the assistantrecurringonceeventwebhook
goalrequired
stringWhat the assistant is asked to do when this fires
periodrequired
string (enum) | nullRecurring triggers onlydailyweeklymonthly
send_timerequired
string | nullRecurring only, as HH:MM in the account timezone
day_of_weekrequired
integer | nullRecurring weekly, where 0 is Sunday
day_of_monthrequired
integer | nullRecurring monthly, 1 to 31, clamped to the end of a short month
run_atrequired
string (date-time) | nullOne-off triggers only: when it fires
event_keyrequired
string | nullEvent triggers only: which event, from the catalogue
audience_typerequired
string (enum)Who a firing acts onnonecontactsegment
contact_idrequired
string (uuid) | nullSet when the audience is a single contact
segment_idrequired
string (uuid) | nullSet when the audience is a segment
max_targetsrequired
integerCeiling on runs started per firing, 1 to 500
respect_quiet_hoursrequired
booleanDefer a firing that lands outside the account sending hours
last_fired_atrequired
string (date-time) | nullWhen it last fired
last_errorrequired
string | nullWhy the last firing produced no run, if it produced none
created_atrequired
string (date-time)When it was created
updated_atrequired
string (date-time)When it was last edited

Errors

StatusCodeWhen
400bad_requestThe request could not be parsed: malformed JSON, an invalid cursor, or a query parameter of the wrong shape.
400validation_errorThe body or query failed validation. `details` lists each failing field with a `path` and a `message`.
401unauthorizedNo usable API key: the Authorization header is missing or malformed, or the key is unknown, revoked or expired. The three are deliberately indistinguishable.
403forbiddenThe key is valid but lacks the scope this endpoint requires, or the request came from an address outside the key’s IP allowlist. The message says which.
403account_suspendedThe account this key belongs to is suspended. Rotating the key will not help; contact support.
429rate_limitedThe per-key budget, or the per-IP budget for failed authentication, is exhausted. Honour `Retry-After` before retrying.
500internalSomething failed on our side. Safe to retry with the same Idempotency-Key; quote `request_id` if it persists.