Back to articles
22 min read

AI Proposal Automation for Agencies: Claude + n8n Guide

Cut proposal time from 4–6 hours to 20 minutes. Step-by-step Claude + n8n build guide for agencies: transcripts, case studies, PandaDoc, and Slack approval.

AI Proposal Automation for Agencies: The Complete Claude + n8n Build Guide

Table of Contents

The discovery call ended an hour ago. You have three pages of notes, a Slack thread with three different stakeholders adding last-minute requirements, and a prospect who said they're "also talking to two other agencies." Your account manager sits down to write the proposal. Four hours later, it's done — or done enough. By then, your prospect has already had a follow-up call with someone else.

This is the proposal bottleneck, and it's a problem where AI proposal automation delivers a measurable fix. At 15 proposals per month at four to six hours each, your team is spending 60 to 90 hours monthly on sales documents — the equivalent of one full-time hire, consumed before a deal is signed. According to AdAI's May 2026 analysis of agency proposal workflows, agencies routinely turn down 30 to 40 percent of qualified inbound leads simply because writing proposals is too slow.

The fix isn't "use ChatGPT to write faster." That's still manual — just with a different keyboard. The fix is a connected pipeline that reads your discovery call transcript, pulls relevant case studies from your library, assembles a scoped and priced proposal, and routes it to a human for a 20-minute review before pushing to PandaDoc. Claude and n8n make that build practical today.

This guide walks you through the architecture and each step of the build — including the Model Context Protocol (MCP, a standard that lets Claude connect directly to your n8n instance and other tools) workflow that agencies like Michel Lieben's $6.5M ARR operation are already running in production.


Why Proposal Time Is a Bigger Revenue Problem Than It Looks

When agency owners actually track hours spent on proposal writing, the number tends to surprise them. Sixty to ninety hours per month is the mechanical cost. The strategic cost is harder to see: qualified leads going cold, senior account managers doing data-entry work, and a close rate that's lower than it should be because proposals arrive late or feel generic.

Personalization is what moves close rates. Agencies using AI-generated proposals tailored to discovery call outputs see close rates 32 percentage points higher than those relying on generic templates (AdAI, May 2026). If you close five deals per month at a $5,000 monthly retainer average, a five to eight-point lift in close rate — while tripling proposal output — works out to roughly $120,000 in incremental annual revenue against tooling costs of $400 to $2,000 per year.

The enterprise data is blunter. An independent MH&A consultancy study tracking AutogenAI customers found that companies using AI proposal automation grew revenue 12.4% year-over-year, while comparable non-users shrank 7.1% — a 19-point gap tied specifically to proposal process efficiency (AutogenAI blog, May 2025). One customer, a global firm handling government RFPs that previously consumed 400+ hours each, cut that time by 70% and attributed $25 million in incremental revenue to the change.

The pattern holds at agency scale. The math makes the case; the workflow below shows you how to capture it.


The Stack Before You Start Building

You don't need to adopt every tool in this list on day one. The core pipeline requires four pieces:

  • Claude API (Anthropic) — reads transcripts, selects case studies, and drafts proposal sections
  • n8n — the low-code workflow orchestrator that wires every tool together, handles triggers, and manages approval routing
  • A transcript source — Fathom or Fireflies, both of which expose REST APIs for pulling call summaries and full transcripts
  • A proposal delivery tool — PandaDoc or Proposify, both with n8n-compatible APIs for template population and send

Supporting tools that extend the pipeline:

  • HubSpot (or another CRM) — triggers the workflow when a deal stage changes and receives status updates after proposal send
  • Airtable or Notion — stores your tagged case study library for dynamic selection
  • Slack — receives the draft proposal with an approval button before client send
  • ClickUp or Asana — creates the onboarding project automatically once a proposal is signed

If your agency already runs HubSpot and Slack, you're two-thirds of the way to the full stack. The Claude API adds about $20–60/month in usage at typical agency proposal volumes.


Step 1: Build Your Modular Proposal Template

Before any automation is useful, the proposal itself needs to be built in modules — discrete sections that Claude can populate independently and n8n can assemble in order.

A working modular structure:

  1. Executive Summary — the problem in the client's words, the outcome you're delivering
  2. Current State / Problem — what's broken or underperforming
  3. Proposed Solution — your approach, why it fits this client specifically
  4. Relevant Case Studies (2–3 selected dynamically) — matched to industry and outcome type
  5. Scope of Work — service line breakdown with deliverable clarity
  6. Pricing — tier options or a fixed quote, formatted from your rate card
  7. Timeline — milestone schedule
  8. Next Steps — what happens when they sign

Build this in Google Docs or Notion using clearly labeled section placeholders. Each section maps to a variable that Claude fills. The template doesn't change between proposals — the content inside each module does.

Tag each section with what data it requires. Executive Summary needs the client's stated goals from the discovery call. Case Studies needs their industry and the outcome type they care about (cost savings, lead gen, speed to market). Pricing needs the services selected and the client's indicated budget range.

This tagging becomes the Claude prompt structure in Step 3.


Step 2: Set Up Your Discovery Call Trigger

The pipeline starts when a deal in your CRM moves to a "Proposal Requested" stage. In HubSpot, create a workflow that fires a webhook to n8n the moment that stage change happens. The webhook payload should include: deal ID, company name, company industry, primary contact name, budget discussed (if captured as a CRM property), and the services discussed.

In n8n, configure a Webhook trigger node to receive this payload. Add a HubSpot node immediately after to fetch any additional deal properties not in the webhook. Then add an HTTP Request node to call Fathom or Fireflies and retrieve the call transcript tied to that deal.

Both Fathom and Fireflies let you retrieve transcripts via API using the meeting date and associated contact. The Fireflies GraphQL API accepts a query filtered by attendee email; Fathom's REST endpoint works similarly. Your n8n node sends the client's email from the CRM deal and gets back the full transcript text plus an AI-generated summary.

At the end of this step, your n8n workflow has: the transcript, the deal properties from HubSpot, and a structured payload ready to send to Claude.


Step 3: Build the Claude Node That Drafts the Proposal

This is the core of the AI proposal automation pipeline. In n8n, add an HTTP Request node configured to call the Anthropic Messages API (https://api.anthropic.com/v1/messages).

Your system prompt should look something like this (adapt to your agency's voice and service lines):

You are a senior account strategist at [Agency Name]. Your job is to write a first-draft proposal for a prospective client based on their discovery call transcript and CRM context.

Use this structure:
1. Executive Summary (2–3 sentences, use the client's language from the transcript)
2. Current State / Problem (what they described as broken or underperforming)
3. Proposed Solution (how our approach specifically addresses their situation)
4. Case Studies (placeholder — [CASE_STUDY_1], [CASE_STUDY_2])
5. Scope of Work (list the services discussed, with one-sentence deliverable descriptions)
6. Pricing (use the format: [SERVICE]: $[AMOUNT]/month)
7. Timeline (milestone-based, starting from contract signature)
8. Next Steps

Tone: direct, confident, client-focused. No filler sentences. No generic statements about "your success being our priority."

Output valid JSON with one key per section.

The user message to Claude includes the transcript text and the deal properties from HubSpot, formatted as a structured block. Asking Claude to output JSON makes the next step — case study injection and PandaDoc formatting — deterministic and easier to parse in n8n.

Set the model to claude-sonnet-4-5 or the current production Sonnet version. Temperature around 0.3 keeps output consistent across proposals for the same service type while still adapting to the client's specific language.

Claude's output at this step covers roughly 75–90% of a production-ready proposal. The remaining gap is human judgment on strategic positioning and pricing sign-off.


Step 4: Connect Your Tagged Case Study Library for Auto-Selection

Static case study selection is one of the biggest weaknesses in template-based proposals. The same three case studies appear in every deck regardless of whether the prospect is a SaaS company or a regional retailer. Dynamic selection fixes this.

In Airtable (or Notion with a database view), tag every case study with:

  • Industry (SaaS, e-commerce, professional services, healthcare, etc.)
  • Outcome type (lead generation, cost reduction, speed to delivery, churn reduction, brand awareness)
  • Deal size (SMB, mid-market, enterprise)
  • Service line (SEO, paid media, CRM automation, content, etc.)

In n8n, add an Airtable node after the Claude drafting step. Pull the 5–8 case studies that match the client's industry and primary outcome type. Pass those as context to a second Claude call with a short prompt: "Given this client's situation, select the 2–3 most relevant case studies from this list and write a brief 60-word narrative connecting each to the client's problem."

This two-step approach — retrieve first, then select and narrate — is more reliable than asking Claude to retrieve from memory, which can produce fabricated outcomes. It's a standard safeguard for LLM-powered business processes.

Inject the selected case study narratives into the JSON output from Step 3, replacing the [CASE_STUDY_1] and [CASE_STUDY_2] placeholders.


Step 5: Apply Pricing Logic and Scope Assembly

AI-generated pricing is the highest-risk section of a proposal. The way to handle it without errors is to never ask Claude to invent pricing — have it apply your rate card rules to the services discussed.

Store your rate card in a Google Sheet or Airtable table: each row is a service line, with columns for deliverables, minimum commitment, and price per unit/month. In n8n, add a Google Sheets node to fetch the rates for the services identified in the Claude output. Then pass those rates back to Claude with this prompt: "Format the pricing section using exactly these rates. Do not add or remove services. Do not invent discounts. If the client's stated budget is below the minimum for any service, flag it with [NEEDS REVIEW] rather than adjusting the price."

The [NEEDS REVIEW] flag matters — it makes the human review step in Step 6 actionable rather than a reading exercise. Your reviewer immediately knows where to focus.

For scope, the same principle applies: Claude assembles the Scope of Work from the services identified in the transcript, using your pre-written deliverable descriptions from a Notion database. It selects and sequences pre-approved descriptions rather than generating new ones from scratch.


Step 6: Push to PandaDoc and Route for Human Review

With the JSON assembled and pricing checked, n8n's next job is formatting and routing.

Add a PandaDoc node (or HTTP Request to the PandaDoc API). PandaDoc's API accepts a template ID plus a tokens object where each key maps to a template field. Your n8n node maps the Claude JSON output keys to the PandaDoc token names. The API call creates a draft document in your PandaDoc workspace.

Then add a Slack node that posts to your #proposals channel. The message should include: the client name, deal value, services in scope, and a direct link to the PandaDoc draft — plus an Approve button wired to an n8n Wait node. The reviewer opens the PandaDoc link, makes edits directly in PandaDoc (pricing sign-off, tone adjustments, any strategic repositioning), then hits Approve in Slack.

The Wait node holds the pipeline until that approval fires. Once it does, n8n calls PandaDoc's send API to deliver the proposal to the client. Total human time: 15–20 minutes on review and edits, versus four to six hours of writing from scratch.

After send, n8n updates the HubSpot deal stage to "Proposal Sent" and logs the send timestamp.


Step 7: Automate Follow-Up with Claude Managed Agents

Sending the proposal isn't the end of the workflow. Most proposals need at least one follow-up before the client decides — and timing matters.

Anthropic launched Claude Managed Agents with scheduled deployment support in public beta on June 10, 2026. That means you can now run a Claude agent on a daily schedule — no manual trigger — to check your CRM for proposals sent but not opened in 48 hours, draft a personalized follow-up, and stage it for approval.

The setup:

  1. Create a Claude Managed Agent via the Anthropic API with a daily schedule
  2. Store your CRM API credentials in Vault environment variables (Claude Managed Agents do not handle credential injection directly — credentials must be pre-stored)
  3. The agent queries HubSpot daily for proposals in "Sent" status with no open event in the past 48 hours
  4. For each, it drafts a follow-up email using the proposal content and any prior interaction notes from the CRM
  5. The email is staged as a Gmail or Outlook draft; your account manager approves or it auto-sends based on a deal-size threshold you configure
  6. The agent logs follow-up activity back to the CRM deal record

For deals above a certain value (say, $10,000 monthly retainer), require human approval before sending. Below that threshold, auto-send is a reasonable default if your follow-up template has been reviewed and tested.


How a $6.5M ARR Agency Uses Claude + n8n to Build Client Workflows in Minutes

Michel Lieben, founder of a $6.5M ARR automation agency, runs a version of this architecture at scale — not just for his own proposals but as the delivery engine for client workflows.

His setup: Claude (Sonnet) connected to his n8n instance via an MCP server (Model Context Protocol implementation via the open-source n8n-mcp package, available on GitHub). When he describes a workflow in plain English — including the AI proposal automation pipeline outlined above — Claude generates the complete n8n workflow JSON, including node wiring, field mappings, trigger conditions, conditionals, and error handling documentation.

"Claude can now build advanced n8n workflows from a single prompt," Lieben wrote in an April 2026 LinkedIn post that drew more than 725 comments. "This completely changed how we build automations at our agency."

The result: Claude handles approximately 90% of the workflow complexity (per Lieben's report). Build time for a repeatable client workflow dropped from three hours to roughly a 10-minute conversation. His agency now manages simultaneous projects for clients generating more than $10 million in ARR.

A two-person agency using a similar approach — RSL/A Marketing — cut their email sequence drafting time from four hours to 45 minutes and grew their monthly automation capacity from 10 to 30 client projects, handling five simultaneous projects where they previously managed two. Total AI tooling cost: under $60 per month (Buildberg.co, May 2026).

The productivity gains at both scales follow the same pattern: Claude handles the drafting and workflow construction; n8n handles the orchestration; humans handle the judgment calls.


Building the Pipeline with Claude's MCP Integration

If you want Claude to build and iterate on your n8n proposal workflow interactively — rather than wiring nodes manually — the MCP method is worth the one-time setup.

Setup note: This requires one technical step: installing the n8n-mcp server (GitHub: czlonkowski/n8n-mcp), which runs as a local server and gives Claude live read/write access to your n8n instance. If you're on n8n Cloud and not self-hosting, this still applies — the MCP server communicates with n8n via the n8n API. It takes roughly 30 minutes and involves running an npm install command and adding your n8n API key. Do it once, or hand it to a developer. After that, the entire workflow build is plain English conversation with Claude.

Once the MCP server is running:

  1. Open Claude and describe the proposal workflow you want to build — include the trigger, the tools involved, the approval step, and any conditional logic
  2. Claude generates the complete n8n workflow JSON, including all node configurations
  3. Claude posts the workflow directly to your n8n instance via the API
  4. Claude runs a test, reads any error outputs from n8n, and self-corrects node by node
  5. You review the roughly 40–50% that needs business logic tuning — pricing thresholds, approval routing rules, who gets notified for which deal size
  6. Add API credentials manually in the n8n credential manager (Claude does not inject credentials)

As Buildberg.co put it in their May 2026 Claude Code agency guide: "For an automation agency, this turns a 3-hour wiring job into a 10-minute conversation, especially for repeatable client workflows."


Where Human Review Fits — and Why It Should Stay

Automation skeptics often frame "human review" as a limitation of AI proposals. It's not. It's the part where your judgment creates differentiation that AI can't replicate.

Claude drafts what can be systematized: structure, case study selection, scope assembly, pricing formatting. What it can't know without your input: whether this prospect is price-sensitive despite the budget they mentioned, whether a competitor's recent stumble creates an angle worth naming, or whether the relationship history between your MD and the prospect's CMO means you should lead with a different tone.

The 20-minute review is where you apply that knowledge. The AI draft gives you a complete starting point — you're editing a near-final document, not staring at a blank page.

Keep the Slack approval step even when you're confident in the AI output. It creates a consistent checkpoint, produces an audit trail, and means a rogue AI draft never reaches a client without a human seeing it first.

The same principle applies to pricing. Never remove the human sign-off on pricing — regardless of how well the rate card rules are defined. Edge cases accumulate. A client who mentioned a budget range below your standard minimum needs a judgment call, not an automated rule.


Error Handling in Your n8n Proposal Workflow

Production workflows fail. The Fathom API returns an empty transcript because the call was taken via phone. The Airtable case study query returns zero results for an unusual industry vertical. The Claude API returns a 529 overload error during a busy period. PandaDoc rejects a document because a token field is empty.

Build these error paths in n8n from the start:

  • No transcript found: Route to a fallback node that sends a Slack alert to the account manager to manually paste the call notes. Don't let the workflow fail silently.
  • Claude API error: Add a retry node with exponential backoff (n8n's built-in error workflow handles this). If three retries fail, alert via Slack and pause the workflow at the failed node for manual resume.
  • Empty case study match: Lower the tag matching criteria progressively — try industry + service line, then industry only, then outcome type only. If still empty, insert a [CASE STUDY NEEDED — NO MATCH] placeholder so the reviewer knows to add one manually.
  • PandaDoc template mismatch: Log the raw Claude JSON output to a Google Sheet as a fallback so the content is never lost, even if the formatting step fails.

Add n8n's Error Trigger workflow to catch unhandled exceptions across all your workflow executions. Route those errors to a dedicated #n8n-errors Slack channel with the workflow name, node that failed, and a link to the execution log.

A workflow that fails silently is worse than one that fails loudly. Build the alerts first.


Metrics That Tell You the System Is Working

Once the AI proposal automation pipeline is live, track four numbers weekly:

Proposal cycle time — time from "Proposal Requested" CRM stage to proposal sent. Target: under two hours. If you're above that, find the bottleneck (usually the human review step or a transcript retrieval delay).

Human edit rate — what percentage of proposals require substantive edits (not just minor tone tweaks) before approval. If it's above 40%, your Claude system prompt or case study library needs tuning. Below 20% is the goal.

Proposal-to-close rate — track this against your pre-automation baseline. A 5–8 point lift is the benchmark; if you're not seeing it after 30 proposals, the bottleneck is likely proposal quality or timing, not volume.

Proposal volume per account manager — with the time savings, your team should be responding to more opportunities. If volume isn't going up, the saved hours are being absorbed elsewhere (which may still be valuable — redirecting to delivery is a legitimate win).

Also track the case study library: log which case studies get selected most often, and which never get selected. The ones that never get picked are either tagged wrong or genuinely weak — fix the tags or retire the case study.


How to Start Your AI Proposal Automation This Week

The fastest path to a working first version is to skip the full pipeline and start with one node: connect Claude to your next real discovery call transcript via a single n8n HTTP Request. Feed in the transcript, your agency's service descriptions, and a one-page rate card snapshot. Ask Claude to output a structured proposal draft. Review it against your manually written version for the same client.

That comparison — what Claude gets right, what it misses — will tell you exactly where to focus your system prompt tuning and what data you need to add to the input. Run that test five times before building the full pipeline. The automation is only as good as the prompts and data behind it, and five real proposals will teach you more than any tutorial.

Once the prompt is dialed in, add the n8n trigger and the PandaDoc push. Ship the pipeline to your team after you've approved ten AI-drafted proposals yourself. By the time your team starts using it, you'll have fixed the rough edges.


Frequently Asked Questions

How long does it take to set up an AI proposal automation system?

For a basic pipeline — Claude API connected to n8n, pulling from a transcript tool and pushing to PandaDoc — plan two to three full days. That includes building the case study library, testing with five to ten real proposals, and tuning the Claude system prompt based on output quality. The MCP integration for Claude-built n8n workflows adds half a day of technical setup but speeds up subsequent workflow iteration significantly.

Can AI proposals be as personalized as hand-written ones?

Yes, if the input data is specific. Claude's output is only as personalized as the discovery call transcript and CRM context you feed it. A transcript with specific client quotes, stated goals, and described pain points produces a proposal that reads more personalized than most hand-written ones — because it reflects the client's own language back to them. The weakness is institutional knowledge: Claude doesn't know your relationship history or office politics. That's what the human review step is for.

What's the difference between using Claude directly versus orchestrating it with n8n?

Using Claude directly means manually copying transcript text, pasting prompts, and formatting the output into your proposal document. Useful for a first draft, but not repeatable at scale. n8n orchestration means the entire pipeline — from CRM trigger to PandaDoc send — runs without manual steps. You shift from doing the work to reviewing the output. The n8n layer also handles the conditional logic, error routing, and multi-step data retrieval that a single Claude conversation can't manage.

Do I need a developer to build this workflow?

For the base pipeline (n8n Cloud, no MCP), most operations-savvy account managers can build it using n8n's visual interface over a few days. The Anthropic API call requires following their documentation to format the HTTP request correctly. For the MCP integration that lets Claude build workflows interactively, a developer or technical ops person needs about 30 minutes for the server install. After that, no ongoing developer involvement is needed.

What CRMs work best with n8n for proposal automation?

HubSpot has the most mature n8n integration — native node with deal stage webhooks, company enrichment, and contact association. Salesforce works via REST API with more setup complexity. Pipedrive has a solid native n8n node and is common at smaller agencies. If you're on a CRM without a native n8n node, the HTTP Request node covers most REST APIs — check n8n's community nodes first.

How do I handle pricing in AI-generated proposals without errors?

Never let Claude invent prices. Store your rate card in a structured format (Airtable, Google Sheets) and have n8n retrieve the exact rates before passing them to Claude for formatting only. Ask Claude to flag — not adjust — any situation where the client's stated budget doesn't align with the rate card minimum. Pricing sign-off should always require a human approval step regardless of deal size.

#AI proposal automation#n8n workflows#Claude API#agency automation#proposal software

Ready to automate your business?

Let's talk about the workflows that would make the biggest difference for your team.

Free audit