Running agents as workflow steps
The headline change is that AI agents now run inside a workflow as ordinary steps. An agent can read context, decide, and hand its output to the next block in the same run. The Custom agent block configures a model with an instruction prompt and a set of tools. You can pick GPT, Sonnet, Opus, or Gemini Pro. Its access to your workspace is read-only, gated by the “Run as” permission model. So an agent can read records, notes, emails, and call recordings, but it cannot write or delete on its own. When you want a change saved, you place an explicit write block after it. A minimal agent step needs three things: a model, a prompt, and the record context it should read.{{ steps.custom_agent.output }} and feed it into an Update record write or a Slack message. The Web agent block is the former “Research record” block rebuilt. You ask a question about a record, and the agent researches across the web to answer it. You can also describe a workflow in plain language in the canvas and let Ask Attio assemble it block by block, live.
Writing custom logic with native code
The Execute code block runs your own JavaScript as a step. This removes the external webhook round-trip that data shaping used to require. You export amain(inputs) function, and whatever it returns becomes the block’s output. Transformations, custom scoring, and payload reshaping now run inline, beside the records they touch. Each run has a 100-second timeout.
jane@acme.com and an employee count of 1,200, this block returns { "domain": "acme.com", "tier": "enterprise" }. A later block reads that as {{ steps.execute_code.tier }}. The cost of Execute code scales with the work it does. So its credit cost is listed as Variable (complexity-based) rather than a flat per-run figure. For heavier integration logic, the Send HTTP request block pairs naturally with code. It calls an external API, and code parses the response in the same workflow.