
The blank page is the delay
Proposals slip by days for a reason unrelated to difficulty. Opening an empty template at six in the evening is unappealing, and everything else on the list is easier to begin.
All the material already exists. It is spread across the CRM record, the call notes, and the price list, and it has never been consolidated into a single document.
One rule makes this safe: pricing is looked up, never written. A model asked to produce a proposal generates numbers and a plausible price in a customer-facing document, which is the worst output for automation.
Scope and timeline are different. Those come from what was actually discussed, and a draft that gets them roughly right is a far better starting point than a template that says nothing.
How the ActionFlow runs on the canvas
Opportunity data is read by a Salesforce or HubSpot node when a rep triggers the flow, and an HTTP Request node pulls the linked call notes.
A Generate Object node extracts what was agreed upon: scope items, timeline, named stakeholders, and any commitments made on the call. Extracting into structure before writing is what lets the next steps treat pricing and prose differently.
Pricing enters through a Google Sheets or PostgreSQL node holding the price list. The scope items from the extraction are matched against it by a Filter node. No AI node touches a number here. The lookup returns what the list says or nothing.
A Generate Text node then writes the prose sections around those fixed values: scope narrative, timeline explanation, assumptions.
A Validate node checks that every required section is present and that every scope item matched a price. Anything unmatched is flagged rather than silently omitted, because the customer discovers a missing line in a proposal.
A Google Docs node produces a draft that the rep can edit, and a Slack node notifies them when it is ready, listing any unmatched items.
Nodes this ActionFlow uses
- Salesforce (Integration): reads the opportunity record. HubSpot fits the same slot.
- HTTP Request (Util): pulls the linked call notes.
- Generate Object (AI Core): extracts scope, timeline, stakeholders, and commitments as structure.
- Google Sheets (Integration): holds the price list. PostgreSQL and Airtable fit the same slot.
- Filter (Data): matches scope items against the price list. No AI node writes a number.
- Generate Text (AI Core): writes the prose around the fixed values.
- Validate (Data): flags unmatched scope items rather than omitting them.
- Google Docs (Integration): produces the editable draft.
Frequently asked questions
Start building AI workflows
Create a free account, open a template or a blank canvas, and run your first ActionFlow.
Newsletter
Get product updates
New nodes, agents, and product notes. We send mail only when we have something worth opening.