> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.rightbrain.ai/v-1/docs/api/task-forwarders/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.rightbrain.ai/_mcp/server. # Webhooks & forwarders > Create webhook and email task forwarders, attach one to a task, and deliver each run result to an external system. A task forwarder delivers a task's run result to somewhere outside Rightbrain automatically, every time the task runs. Two types exist: **webhook** (an HTTP POST to a URL you control) and **email** (a templated message to one or more recipients). A forwarder is a project-level resource. You create it once, then attach it to a task by setting the task revision's `task_forwarder_id`. From then on, each run of that task fires the forwarder. All requests use bearer authentication — see [Authentication](/docs/api/authentication). ## List forwarder types Fetch the available types and their config schemas. This endpoint returns a plain array, not a paginated result set. **`cURL`** ```bash title="cURL" curl https://app.rightbrain.ai/api/v1/org/{org_id}/project/{project_id}/task_forwarder_type \ -H "Authorization: Bearer YOUR_TOKEN" ``` ## Create a forwarder #### Webhook Delivers the run result as an HTTP POST to `destination_url`, which must be an HTTPS URL. Optionally set a `signing_key` under `config_sensitive` — Rightbrain uses it to sign the forwarded payload so your receiver can verify authenticity. The signing key is encrypted at rest. **`cURL`** ```bash title="cURL" curl -X POST https://app.rightbrain.ai/api/v1/org/{org_id}/project/{project_id}/task_forwarder \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "forwarder_type": "webhook", "name": "Post results to our ingest endpoint", "config": { "destination_url": "https://api.example.com/rightbrain/ingest" }, "config_sensitive": { "signing_key": "your-shared-secret" } }' ``` #### Email Sends a templated email to `recipient_emails` (with optional `cc_emails` and `bcc_emails`). The `subject_template` and `body_template` support `{variable}` placeholders that are filled from the task's run data. **`cURL`** ```bash title="cURL" curl -X POST https://app.rightbrain.ai/api/v1/org/{org_id}/project/{project_id}/task_forwarder \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "forwarder_type": "email", "name": "Email the summary to the ops team", "config": { "recipient_emails": ["ops@example.com"], "cc_emails": [], "subject_template": "New summary for {customer_name}", "body_template": "Summary:\n\n{summary}" } }' ``` ## Attach a forwarder to a task Set the forwarder's ID as `task_forwarder_id` on the task revision when you create or update the task. Every run served by that revision then delivers its result through the forwarder. **`cURL`** ```bash title="cURL" curl -X POST https://app.rightbrain.ai/api/v1/org/{org_id}/project/{project_id}/task/{task_id} \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{"task_forwarder_id": "0190a234-8dc6-6d08-aea9-928fcecad8f1"}' ``` Updating a task creates a new revision, and new revisions start inactive — the forwarder takes effect once that revision is active. The attachment is versioned like any other task change. See [Versioning & revisions](/docs/production/revisions). ## Manage forwarders **`Forwarder endpoints`** ```text title="Forwarder endpoints" GET .../task_forwarder list forwarders (paginated) POST .../task_forwarder create a forwarder GET .../task_forwarder/{id} fetch a forwarder POST .../task_forwarder/{id} update a forwarder ``` ## Common patterns * **Notify a channel.** Point a webhook forwarder at an automation platform (Zapier, Make, n8n) that relays into Slack, Teams, or a database. * **Human-readable digest.** Use an email forwarder with a `body_template` that renders the fields your task outputs. * **Verified delivery.** Set a `signing_key` on a webhook forwarder and verify the signature at your endpoint before trusting the payload. #### [Triggers & runs](/docs/concepts/triggers-and-runs) Start runs from webhooks, schedules, and inboxes. #### [Run tasks via the API](/docs/api/run-tasks) The run endpoint whose results forwarders deliver. > Build reliable AI agents that run inside your existing tools and workflows. Rightbrain developer documentation.