Auto-Draft Proposals From a Google Doc Template in 30 Minutes
Fill out a short brief. Get a polished proposal draft generated from your template, ready to edit and send. Save 45 minutes per proposal. Ship it today.
The build: fill out a 6-question brief form, get a Google Doc proposal generated from your template with personalized sections, ready to review and send.
Total time: 30 minutes.
What you'll need
- A Google Doc proposal template (your existing one is fine)
- Tally or Typeform for the brief
- n8n
- Google Docs API (via Google service account)
- AI API key
Step 1: Audit your template (5 min)
Open your existing proposal template in Google Docs. Identify the sections that change per proposal:
- Client name
- Problem statement
- Approach
- Deliverables
- Timeline
- Investment
Mark these in your template with placeholders like {{client_name}}, {{problem_statement}}, etc.
If your template doesn't have a clear structure, fix that first. AI can't generate good content from a chaotic template.
Step 2: Create the brief form (5 min)
In Tally, build a 6-question form:
- Client name
- What's their problem (in their words, paste from emails)
- What's the scope (high-level)
- What's the timeline (rough)
- What's the budget range (rough)
- Any constraints or unique context
Step 3: Webhook to n8n (2 min)
Point the Tally webhook at an n8n Webhook trigger.
Step 4: Generate each section with AI (10 min)
Add an AI node. Generate each variable section with a separate prompt for tone consistency.
Example for the problem statement:
Write the "Problem" section of a consulting proposal.
Client: {{ name }}
Their problem (in their words): {{ problem_raw }}
Industry context: {{ industry }}
Format: 2 paragraphs.
- Paragraph 1: restate their problem in clear, professional language (their voice, sharpened)
- Paragraph 2: the cost of NOT solving it (specific, not generic)
Length: 120-180 words total. Match the tone of these examples: {2-3 SAMPLES_FROM_YOUR_BEST_PROPOSALS}.
Banned phrases: "in today's fast-paced environment", "leverage", "synergize", "robust", "seamless", "paradigm".Do similar for approach, deliverables, timeline, investment.
Step 5: Generate Google Doc (5 min)
Add a Google Docs node in n8n. Use the "Create from template" action.
Pass each AI-generated section as a variable replacement.
The output is a new Google Doc with all placeholders filled in.
Step 6: Notify (3 min)
Add a Slack notification (or email) with the link to the generated doc.
Format:
:memo: Draft proposal generated for *{{ name }}*
Review and edit: {{ doc_url }}Common gotchas
- Google service account permissions: the service account needs edit access to the template doc. Create one in Google Cloud Console, share the template with the service account email.
- Placeholders are case-sensitive in some Google Docs replacement tools. Be consistent.
- Long AI outputs occasionally include markdown formatting (headers, bullets) that doesn't render in Google Docs. Add a "plain text only" instruction to each prompt.
What I do with this
A new client conversation usually wraps with "I'll send a proposal by tomorrow." Before this system, that meant 45 minutes of writing.
Now I fill the form on the train. Open the generated doc when I'm at my desk. Edit for 8-12 minutes. Send.
The AI does the structure and the boring parts. I keep editorial control over the parts that matter.
What to add next
- Multiple template versions (small engagement, large engagement, retainer)
- Auto-generated SOW alongside the proposal
- Calendly link insertion based on engagement type
- E-sign integration (HelloSign, DocuSign)
Don't over-engineer. The 6-question form to a draft doc is 80% of the value.
Get the next one.
Field notes from real deployments, written the way this one was. No schedule promised and nothing sold to you. Unsubscribe whenever.