Proposal automation usually fails at the input layer, not the AI layer. Give a model loose call notes and pricing that lives in someone’s head, and it still writes something. It just doesn’t match the engagement.
We build proposal workflows like this through our AI integration service, so weigh that. Every fact below about Anthropic, HubSpot and PandaDoc was checked against their own documentation in October 2026.
Short answer: Proposal drafting suits AI when the inputs are structured. Capture discovery as fields, keep a library of scope blocks and let code, not the model, handle prices. Ask Claude for output that follows a JSON schema, save it as a draft in your proposal tool or CRM, and have a named person review it. In our worked example below, the model cost per draft is a few cents. The real work is your inputs.
What the Platforms Document
As of October 2026, from Anthropic, HubSpot and PandaDoc documentation:
| Topic | What the documentation says |
|---|---|
| Claude Sonnet 5.5 price | $2 per million input tokens, $10 per million output tokens |
| Batch API | 50% off input and output, for requests that can run asynchronously |
| Prompt caching | Reuses a repeated part of the prompt; a cache hit on Sonnet 5.5 costs $0.10 per million tokens |
| Structured outputs | Claude’s JSON response follows a schema you send; strict: true validates tool inputs |
| Prompt structure | XML tags keep instructions, context and inputs apart; 3–5 examples work best |
| HubSpot quotes | Creating one needs Revenue Hub Professional or Enterprise; API quotes start as DRAFT |
| HubSpot associations | A quote must link to line items, a contact and a deal |
| PandaDoc API | Template variables (“tokens”) and pricing tables can be filled when a document is created |
Sources: Anthropic pricing, Claude structured outputs, Claude prompting best practices, HubSpot quotes API, HubSpot line items API, PandaDoc create document.
Why Proposals Are Worth Automating
Most firms that sell custom work write proposals the same way. Someone senior reads the call notes, turns them into scope language, checks the rate card, builds a fee table and writes an introduction. The judgment in that is real. Much of the rest is assembly.
We don’t publish time-saved figures, because they depend on your volume and inputs. Measure your own baseline first: how long a proposal takes from call to sent.
Where repetition lives in a typical proposal workflow
A large part of every proposal repeats: discovery-phase scope, payment terms, deliverables structure, project management. What really differs is the client’s problem, timeline, budget and exact scope. Mostly repeated, slightly customised: that’s where automation works well.
To find your split, mark which paragraphs in your last ten proposals were copied. Those become your library.
The actual time cost of writing proposals by hand
A proposal written from scratch involves:
- reviewing the call notes
- translating messy notes into scope language
- checking your rate card and building a fee table
- writing an introduction that links the client’s problem to your approach
- assembling a document that reads as if it was written for that client
The judgment part, how to scope and how to frame the price, is yours. The rest is production, which the workflow below takes over.
What AI Proposal Automation Actually Does (and Does Not Do)
A language model doesn’t know your rate card, your scope blocks or the language your best clients respond to, unless you put them in the prompt. What it does well is turn structured inputs into clear, client-specific prose, quickly.
Hand it loose notes and you get a plausible document with the wrong scope, the wrong prices and a tone that sounds like nobody.
The input problem: garbage in, generic out
Output quality follows input quality. The inputs that matter are:
- structured fields from your discovery call, not a transcript
- your scope block library
- your pricing logic
- client context: industry, team size, the pain point
Anthropic’s prompting guidance points the same way. It recommends wrapping each type of content in its own XML tags, such as instructions, context and input, and says 3–5 examples give the best results (source). For proposals, the examples are past proposals you’d happily send again.
With codified inputs, Claude produces a draft your team only needs to check. Without them, it writes marketing copy in the shape of a proposal. Our guide to defining AI automation inputs and outputs covers pinning both down.
Where off-the-shelf tools break for custom-work firms
SaaS proposal tools are built around templates, content libraries and pricing tables. That suits standard services, like a monthly retainer or a fixed set of tiers. For custom work, such as a bespoke WordPress build, every project differs in ways that matter. A template holds the structure. It can’t decide which scope applies.
The fix is a structured input layer in front of the document tool you already use. PandaDoc’s API, for example, lets you create a document from a template and fill its variables and pricing tables at creation (source).
How to Build a Proposal Automation Workflow for Professional Services
A working system has four parts. Remove any one and the drafts get worse.
Step 1: Capture structured discovery data (not just call notes)
Stop saving call notes as paragraphs. Build an intake form, even a simple one, with required fields for:
- the client’s main problem, in one sentence
- timeline and budget range
- the deliverables they mentioned
- constraints: integrations, existing platforms, internal stakeholders
Fields take about as long as a note and give you data instead of prose. Any tool works if the result is machine-readable.
Step 2: Define your scope blocks and pricing logic
A scope block is a modular description of a deliverable: precise enough to go straight into a proposal, general enough to reuse. A web agency might have blocks for discovery and architecture, design per page template, CMS development, integrations, testing and launch, and post-launch support. Each holds a standard description, an effort range and your pricing rule.
Store them in a spreadsheet, a JSON file or a database. That’s your proposal library. The AI connects the blocks you select into a readable document. It doesn’t invent scope.
For teams working on custom WordPress development, scope blocks are especially useful, because sites tend to vary by part (post types, integrations, templates) rather than as a whole.
In HubSpot, scope blocks can map to products. A line item is created from an existing product when you pass its hs_product_id, and each line item belongs to one parent record, so a deal and its quote need separate sets (source).
Keep prices out of the model’s hands. Code looks up the rates and does the arithmetic. Claude gets the finished fee table to describe, not to calculate.
Step 3: Connect inputs to a language model with a constrained prompt
Give the model the intake data, the selected scope blocks and fee table, relevant sections from past proposals, your voice and formatting standards, and explicit instructions. Anthropic recommends setting a role in the system prompt to focus Claude’s behaviour and tone (source), so a role line and your voice guide go there.
Then constrain the output. With structured outputs, you send a JSON schema and the response follows it, so required fields can’t go missing and the result parses cleanly (source). A proposal schema might hold introduction, approach, scope_sections (one per block ID), assumptions and open_questions. Your code then checks that every block ID returned is one you selected.
Next, write the draft into your document tool. In HubSpot, an API-created quote needs a title, an expiry date and a template type, must be associated with line items, a contact and a deal, and starts as DRAFT. Approval states are mostly managed in HubSpot’s interface and approval workflows (source). That’s a sensible default: the automation drafts, a person publishes.
A workflow tool with a Claude API step can run this; see our post on Claude with Make and Zapier.
Step 4: Human review layer, what to check and why
Every draft gets a defined check, not heavy editing:
- scope matches the selected blocks
- the fee table matches the rate lookup
- every client fact appears in the intake data
- client-specific language lands
- formatting is right before sending
The review is the quality gate that makes automation safe. One pricing error can cost more than the time saved. Our post on human review checkpoints covers what a reviewer needs to see.
What a Draft Costs to Run
Our own worked example from Anthropic’s published prices (source); the token counts are assumptions, so measure your real prompts. One draft on Claude Sonnet 5.5 with 8,000 input tokens and 3,000 output tokens costs $0.016 for input and $0.03 for output: about $0.05 a draft, or $4.60 for 100. Prompt caching can cut the input side, since the scope library repeats on every call.
When to Use a SaaS Tool vs. a Custom-Built Automation
It depends on how much your scope varies between clients.
SaaS tools are right when your services are standardised
If you sell three tiers and clients pick one, a proposal tool’s templates, content library and pricing tables probably cover it. The customisation ceiling is lower, but so is the setup.
Custom automation is right when scope varies significantly per client
For firms that scope every engagement from scratch, such as consultancies, web agencies and law firms billing by matter, a template can’t decide the scope. A custom layer combining the intake form, scope library and a constrained prompt gives the model the structure it needs, and still writes into the tool you use for sending and signing.
Writing down your scope library and pricing rules is usually the longer job, and it improves proposals before any automation runs.
Related Posts
- Document generation automation: which document workflows to build first
- Connecting Claude to your CRM: connectors vs the direct API
- AI time and billing automation: scope logs and billing for service firms
- Case study draft automation: the same intake pattern for case studies
FAQ
Can AI write a full proposal without human input?
No. Without scope, pricing and client context, it produces plausible content that’s wrong where it matters. You supply the knowledge, and a person approves the draft.
How long does it take to build a custom proposal automation workflow?
It depends mostly on your inputs, so we don’t quote a standard timeline. If your scope blocks, pricing rules and intake form exist, the build is mainly the prompt, the schema and the connection to your document tool. If they don’t, writing them down is the bigger job.
What data does AI need to generate a useful proposal draft?
The client’s problem and context, the selected scope blocks with a fee table, your standard terms and deliverables language, and any constraints. An intake form and a scope library cover most of it. Transcripts, informal notes or “use our previous proposals” aren’t enough on their own.
Will clients be able to tell the proposal was AI-generated?
Generic-sounding proposals usually come from thin inputs. With specific client data, precise scope blocks and your documented voice, the draft reads much more like your own work.
What is the difference between proposal automation and a proposal template?
A template is a fixed document you edit by hand for each client. Automation assembles a draft from structured inputs, so the person’s job shifts from writing to reviewing. Only one scales with volume without adding writing time.
Can I automate proposals inside HubSpot?
Partly. The quotes API lets your code create a quote with line items, a contact and a deal, and set clickwrap or e-signature acceptance through hs_acceptance_method (source). It needs Revenue Hub Professional or Enterprise, and API quotes start as drafts. The prose still comes from your intake and prompt.