How-to
Find your goal, open the page, follow the steps.
Building the recipe itself is in Build; numbers are in Limits.
By goal
| I want to | Page |
|---|---|
| Call my agent from my backend and stream the answer | Run tasks from your backend |
| Put a chat in my web app | Add a chat to your web app |
| Talk to my agent in Slack | Put your agent in Slack |
| Start work from a webhook, email, CI, or a batch job | Start work from your systems |
| Run every morning, or once at a set time | Run on a schedule |
| Let the agent set its own reminders | Let the agent schedule follow-ups |
| Review every pull request | Review every pull request |
| Ask the user a question or for approval mid-task | Ask the user mid-task |
| Have someone approve before anything goes out | Draft, then approve |
| Get JSON my code can parse | Get structured output |
| Send a file in and get a report out | Send files in and out |
| Answer from my own documents, with citations | Answer from your documents |
| Let each user connect their own account | Per-user tool access |
| Control memory, or delete a user’s data | Memory and deleting data |
| Pick the model, or bring my own key | Choose models |
| Split work between a main agent and helpers | Split work across agents |
| Serve many customers from one agent | Serve many customers |
By surface
Where a task starts decides its owner, memory, connections, and approvals. One person in Slack, your app, and the CLI is three members (who owns a task).
| Surface | Approvals | Post to Slack | Input files |
|---|---|---|---|
| Slack channel or DM | Ask in the thread; no interrupts | Only from a Slack-started task | channels fetch_file |
Your app, API key + user_id | Interrupts, or a draft | No | Upload and attach |
| Your app, end-user sign-in | Interrupts, or a draft | No | Upload from browser or server |
| Your service, webhook, or batch | A draft your backend acts on | No | Upload and attach |
| A platform schedule | A draft | When it posts into a Slack task | None of its own |
| CLI as a team member | Interrupts, via tasks resume | No | --file @./path |
Not supported, do this instead
| Not supported | Do this instead |
|---|---|
| Inbound email or third-party webhooks | Your service receives them and starts a task. |
| Other chat apps (Teams, WhatsApp) | Your service relays each message (relay a chat app). |
| Real-time voice | Your voice backend answers, relays the transcript as a task, and delivers the result later. |
| Live hand-off to a human in chat | Build it in your app; the agent drafts. |
| Desktop software, or driving a website | Expose it as an HTTPS API or MCP server. |
Also not combinable: conversation_id memory with follow-ups, and app
sign-in or Slack tasks with an experiment.
Last updated on