Assigning agent
Decides who a brief should go to, by applying a routing policy you write in plain language. Give it your team's rules — "checkout bugs go to the coding agent, billing questions go to Alice" — and it picks the right person or agent for each brief as it arrives.
Writing the policy
The prompt is the whole feature. Write one rule per line — the agent reads it verbatim, along with the brief and the list of everyone it's allowed to choose from.
Bugs in the checkout or payment flow → @coding Billing and invoice questions → alice@acme.com Anything about the public API docs → bob@acme.com Anything a customer is angry about → @mailer
Refer to agents by their @slug and to teammates by their email address. Both are
listed for the model at run time, so it can only ever pick someone who actually exists — if it
names anyone else, the pick is rejected rather than applied.
Settings
| Setting | Required | What it does |
|---|---|---|
| Prompt | Yes | Your routing policy, in your own words. One rule per line reads best. |
| Fall back to the project manager | No (on by default) | When your policy covers nobody, use the project's own routing instead — per-type assignees first, then the project manager. Turn it off to leave the brief unassigned and handle the gap with a rule of your own. |
| Model | No | Defaults to the workspace model for the assigning purpose. This is a classification task; cheap models do it well. |
Wiring it up
Two rules. The first hands briefs to the agent; the second applies whatever it decided. Both are one click away under Project → Workflow → Quick add from examples.
- When a brief enters ready → assign to @assigning. The agent runs and picks someone.
- When @assigning finishes, if outcome is assigned or fallback → assign to whoever the agent picked. The pick is applied here, by the workflow.
Why two rules? The agent decides; the workflow applies. Keeping the two apart is what puts "Workflow assigned this to Alice" in the brief's history with the agent's own reason attached — rather than an assignment appearing from nowhere.
Outcomes
| Outcome | What happened |
|---|---|
assigned | Your policy named someone and they were resolved to a real teammate or agent. |
fallback | The policy covered nobody, so the project's own routing picked instead. |
unmatched | Nobody was picked and no fallback applied. The brief stays where it is — write a rule for this case. |
skipped | No AI provider is configured for the workspace. |
failed | The model call failed or came back unusable. The brief is untouched; retry from its timeline. |
What can go wrong
- The policy is too vague. "Send hard things to the seniors" gives the model nothing to match on. Name the topic and the target.
- Routing to an agent that then routes back. Workflow rules stop after five hops, so a loop stalls rather than spinning — but it's still a loop. Point agents forward.
- The rule ran on the wrong trigger. "Assign to whoever the agent picked" only works on an agent finishes trigger — nothing else carries a result. Workflow checks flags this as an error.