Prerequisites
- A workspace plan that includes the new Workflows engine and its agent and AI blocks. Pro is recommended for the volume this recipe assumes. Plan allowances live on Credits & pricing explained.
- A funding-signal source, such as a data provider or your own enrichment job. It needs to POST a JSON event to an Attio webhook when a company raises a round.
- The Slack integration connected to your workspace, with the workflow authorized to post to your account-owner channel. See Third-party blocks.
- An existing sequence, for example
Funding congrats: outbound, whose first email opens with a variable for the tailored angle. - On the Companies object: a long-text attribute for the angle (
funding_angle), two attributes for the round (last_round_stageandlast_round_amount), and an owner attribute (owner). - A read-only identity for the Web agent, assigned through the Run as permission model. This lets the agent read records and the public web, but it cannot write. See Permissions & workflow access.
How it works
The webhook delivers the raw funding event. The rest of the workflow turns that event into a tailored first touch. It does this without spending a token on a raise you would never sell into. First, Parse JSON turns the payload into named variables. Then a free Filter checks the raised company against your ICP threshold and stops the run when it does not qualify. Only qualified accounts reach the token-priced Web agent. The Filter is the cost guard here. It keeps the agent off the raises you do not want. Once an account passes, the agent reads the company and the round read-only and returns one funding-aware outreach angle. From there, three blocks act on it. Update record saves that angle. Enroll in sequence starts the tailored outbound, and a Slack message tells the owner to get ahead of the competition.- Webhook received fires when a funding-signal source POSTs a round event.
- Parse JSON extracts the company, stage, and amount from the payload. Free.
- Filter continues only when the company meets the ICP threshold, and stops the run otherwise. Free.
- Find records pulls the target contacts at the account. Free.
- Web agent researches one funding-aware angle, read-only.
- Update record saves the angle and round details to the company.
- Enroll in sequence starts the tailored outbound with the angle as the first line.
- Slack notifies the account owner.
Build steps
1
Add the webhook trigger
Create a new workflow. Click the Add trigger button and choose Webhook received. Copy the generated endpoint URL into your funding-signal source so it POSTs there on each round. Send one test event so Attio captures a sample payload to map against.
2
Parse the funding event
Add a Parse JSON block immediately after the trigger to turn the webhook body into named variables. This block is free.
3
4
Find the contacts at the account
Add a Find records block to pull the people you will actually enroll. This block is free.
5
Research the angle with a read-only Web agent
Add a Web agent after Find records. Set its Run as identity to your read-only research user. The agent can then read the record and the public web, but it cannot write back. Keep the prompt to one tightly scoped output: a funding-aware angle, not generic research.
Use a prompt that forces a verifiable, funding-specific opening line:
6
Save the angle
Add an Update record block to write the angle and round details to the company. The Web agent does not save anything on its own.
7
Enroll the contacts with the tailored first line
Add an Enroll in sequence block. Loop over the contacts that Find records returned and enroll each into the funding sequence, passing the angle as the first-line variable.
8
Notify the owner over Slack
Add a Slack block so the account owner knows to move now.
Variable mapping
Credit cost worked example
The Parse JSON, Filter, and Find records blocks are free logic and lookups, so they never consume credits. The Web agent is the token-based cost. Each Update record, Enroll in sequence, and Slack call costs 1 credit. The whole point of the Filter is that the agent runs only on the small slice of raises you want. Assume 300 funding events hit the webhook a month and the ICP Filter passes about 20% of them, so 60 accounts.
The fixed-rate floor is roughly 180 credits a month: 60 writes, 60 enroll calls, and 60 Slack messages. The variable ceiling is the Web agent total. Do not assume a fixed number for it. Sample about 10 representative raises, run them, and read the actual per-run credit cost in the run viewer before you scale. Gating with the Filter is what keeps that agent line off all 300 events. Compare the monthly total against your plan’s allowance on Credits & pricing explained.
Test plan
- POST a real ICP-fit funding event to the webhook endpoint, for example a $40M Series B at a 200-person EMEA company with a populated
domain. - Open the run in run history and confirm Parse JSON extracted
company,domain,stage, andamount. - Confirm the Filter passed. Expect a green continue.
- Confirm Find records returned the expected contacts at the account, such as Priya Sharma.
- Confirm the Web agent returned a funding-aware angle keyed to the round, and that its Run as identity is read-only.
- Confirm Update record wrote
funding_angle,last_round_stage, andlast_round_amount. Confirm Enroll in sequence enrolled the contacts with the angle as the first line. Confirm Slack posted to the owner. - Run a deliberately failing input. POST an event with an empty
domainand anamount_usdof250000. The Filter stops the run before the Web agent. Verify in run history that no agent, enroll, or write block executed and that no tokens were spent.
Failure modes
Variations
Job-change signal instead of funding
Point the Webhook received trigger at a job-change source, and have Parse JSON extract the person’s new title and company. Filter to ICP companies and seniority, then have the Web agent write an angle about the new role rather than the round. Everything downstream stays the same. That is Update record, Enroll in sequence, and Slack. Only the signal and the angle prompt change.Summarize record for a cheaper tier
For high volume or smaller raises where public-web research is not worth the cost, replace the Web agent with Summarize record. It is still token-based. But it works only from data already in Attio, with no web browsing, so it costs less per run. Keep Parse JSON, the Filter, Find records, and the routing unchanged. Only the research block changes.See also
- AI ICP-fit research and routing
- Permissions & workflow access
- Web agent
- Enroll in sequence
- Credits & pricing explained
Source: Attio Workflows block library. Last reviewed against the Attio Help Center, June 2026.