Inputs
Outputs
Reference the agent’s answer in a later block as
{{ steps.custom_agent.response }}.
Behavior
The agent runs once per workflow run and returns a single text response. It does not remember anything between runs. By default it cannot see any record, list entry, or note. It sees that data only when you pass it in through variables or grant a read-only tool. Tool access is read-only and gated by the “Run as” permission model. The agent reads only what the chosen member can see, and it never writes to your workspace on its own. To turn on Attio data tools, web access, or MCP-connected app tools, the member named in Run as must first approve sharing. They do this through Share access in their Ask Attio settings. For any MCP tools, that member must also connect their own apps. The response is not saved automatically. It lives only as a run variable, so it disappears after the run unless a later block stores it. To keep the answer, follow the agent with Update record or Update list entry and write it to a field. Cost scales with tokens, not with a flat per-run fee. A long system prompt, a large block of passed-in context, and a verbose answer all raise the token count. More tokens mean a higher credit cost for a single run.Gotchas
- The agent answers with nothing useful. The agent starts with no context. An empty or vague answer usually means you passed in no variables and granted no tools. Fix it by adding the records you need to the prompt, or by granting a read-only Attio tool through Run as.
- The response vanishes after the run. The output is a run variable, not a saved field. It is gone once the run ends. Add an Update record or Update list entry block and map
{{ steps.custom_agent.response }}into a field. - The agent sees more of the workspace than you intended. Granting Attio data tools exposes everything the Run as member can read, which can be the whole workspace. Choose the Run as member carefully, and grant only the tools the task needs.
- The run costs more than expected. With token-based pricing, large context and long answers cost more per run. Filter and trim what you pass in. Use Filter earlier in the workflow so the agent runs only when it should.
- The answer is hard to act on. The output is free text, not structured data, so branching on it is fragile. For a fixed set of categories, use Classify text or Classify record instead. You can also instruct the agent to answer with one exact word and branch with Switch.
Examples
Writing an account brief from notes and calls
A Record command on the Companies object passes the company into a Custom agent. The agent reads its notes and call recordings, then writes the result back to a field.
The agent returns a brief such as
Acme: active renewal; champion Jane Lee (VP Ops); last call 3 days ago; risk: budget freeze; next step: send ROI deck.. An Update record block then stores it in the account_brief field.
Deciding the next action from mixed context
A Manual run feeds enriched lead data into a Custom agent that recommends one next action. A Switch block then routes on that answer.route, and the downstream Switch block sends the lead to the enterprise sales path.