Changelog
Every change to the RaabtaHQ public API, newest first: endpoints added, fields changed, behaviour fixed, and anything deprecated ahead of removal.
AI assistants
The assistant layer joins the API: configure assistants, start runs and watch them, and answer the approvals they raise.
- added
Assistants, with their tool grants, schedule, channel bindings and delegation policy.
- added
Granting tools to an assistant, with `enabled` resolved against each tool’s catalogue default — so the answer is what the assistant can do, not merely what was overridden.
- added
The tool catalogue, and the instruction library assistants draw their standing guidance from.
- added
Memories — what an assistant has learned about the account, another assistant or one contact. Written on the natural key, so the same key twice updates rather than duplicates.
- added
Triggers: what wakes an assistant on a schedule, on a CRM event, or when another system calls in. Preview resolves the audience and spends nothing; firing starts runs and does.
- added
Runs. Starting one returns 202 with a queued run — poll it, or subscribe to assistant.run_completed. The event feed is the whole timeline: every tick, message, tool decision and handoff.
- added
Human approvals. A run that needs a decision parks until somebody answers or the timeout rule fires, and holds that conversation’s run slot while it waits.
- added
AI spend and the monthly budget, in billed figures that match the invoice.
- added
Seven scopes: assistants:read and :write, runs:read and :start, asks:read and :answer, and ai:usage. A run bound to a contact can reply on your channels, so runs:start says so in its description.
Inquiries
A website contact form can now post straight into the Raabta HQ inbox. Submissions land in Inquiries in the dashboard, notify the team, and fan out to any webhook endpoint subscribed to them.
- added
Inquiries: submit an inquiry from your own form backend, list and filter the inbox, read one, move it through triage, delete it, and list or add internal notes.
- added
Two scopes: inquiries:read and inquiries:write. As everywhere else, write implies read.
- added
Two webhook events: inquiry.created, delivered as the submission arrives, and inquiry.status_changed.
Public API v1
The first public release of the REST API: seven resources, cursor pagination on every list, Idempotency-Key on every create, and an OpenAPI 3.1 document generated from the same definitions these pages are.
- added
GET /me — identify a key, its account, and the scopes it can exercise.
- added
Contacts: list, create, get and update contacts; add and remove tags; set custom-field values; list and add notes; list tags, create tags and list custom-field definitions.
- GET
/api/v1/contacts - POST
/api/v1/contacts - GET
/api/v1/contacts/{id} - PATCH
/api/v1/contacts/{id} - POST
/api/v1/contacts/{id}/tags - DELETE
/api/v1/contacts/{id}/tags/{tag_id} - PUT
/api/v1/contacts/{id}/custom-fields - GET
/api/v1/contacts/{id}/notes - POST
/api/v1/contacts/{id}/notes - GET
/api/v1/tags - POST
/api/v1/tags - GET
/api/v1/custom-fields
- GET
- added
Conversations: list and get threads, list their messages, change status or assignment, mark read, hand over to a human, return to the assistant, and list team members.
- added
Messages: send a text, template or media message to a thread or a phone number, and read one message with its delivery status.
- added
Templates: list and get approved WhatsApp message templates.
- added
Broadcasts: create and send a template campaign, list and get campaigns, list per-recipient delivery, and cancel a scheduled one.
- added
Pipelines and deals: list pipelines with their stages; list, create, get, update, move, close, reopen and delete deals.
- added
Webhooks: register HTTPS endpoints, subscribe them to events, rotate a signing secret, send a test ping, and inspect or redeliver individual deliveries.
- GET
/api/v1/webhooks - POST
/api/v1/webhooks - GET
/api/v1/webhooks/{id} - PATCH
/api/v1/webhooks/{id} - DELETE
/api/v1/webhooks/{id} - POST
/api/v1/webhooks/{id}/rotate-secret - POST
/api/v1/webhooks/{id}/test - GET
/api/v1/webhooks/{id}/deliveries - GET
/api/v1/webhooks/{id}/deliveries/{delivery_id} - POST
/api/v1/webhooks/{id}/deliveries/{delivery_id}/redeliver
- GET
- added
The OpenAPI 3.1 document at /api/v1/openapi.json, generated from the endpoint registry.