Google Slides + Airtable, proposals ready to send
Proposals usually don’t fail because you lack a template. They fail because the details live in a messy transcript, half the numbers get retyped, and someone forgets to update the CRM.
Sales reps feel it when deals stall after “I’ll send something today.” Agency owners feel it when every deck looks slightly different. And ops leads end up cleaning Airtable later. This proposal automation turns a call transcript into a branded Google Slides proposal and updates Airtable automatically, so you can send faster without the usual mistakes.
Below is the workflow, what it automates, the results you can expect, and the gotchas to avoid when you set it up.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Google Slides + Airtable, proposals ready to send
flowchart LR
subgraph sg0["When chat message received Flow"]
direction LR
n0@{ icon: "mdi:cog", form: "rounded", label: "Replace text in a presentation", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "Copy file", pos: "b", h: 48 }
n2@{ icon: "mdi:cog", form: "rounded", label: "Share file", pos: "b", h: 48 }
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Update record"]
n4@{ icon: "mdi:robot", form: "rounded", label: "Message a model", pos: "b", h: 48 }
n5@{ icon: "mdi:play-circle", form: "rounded", label: "When chat message received", pos: "b", h: 48 }
n1 --> n0
n2 --> n3
n4 --> n1
n5 --> n4
n0 --> n2
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n5 trigger
class n4 ai
class n3 database
classDef customIcon fill:none,stroke:none
class n3 customIcon
The Problem: Proposal Creation Is Still Manual (And It Shows)
A sales call ends, you have a transcript, and now you’re “just” supposed to turn it into a clean proposal. In reality, you hunt for basics like company name, budget, and timeline, then copy them into a Slides template while trying not to miss a line item. Next you email the deck, share Drive access, and then someone has to remember to update Airtable so the pipeline doesn’t lie. It’s repetitive work, but it demands full attention because one wrong number or a missed requirement creates awkward follow-ups and slow approvals.
It adds up fast. Here’s where it usually breaks down.
- You reread long transcripts to find four or five critical details, and the context switching alone drains your focus.
- Template variables get missed or inconsistently filled, so you end up doing a second “quality pass” before sending.
- Drive sharing is done in a rush, which means clients can’t access the file and you look disorganized.
- Airtable doesn’t get updated until later (or never), so forecasting and follow-ups become guesswork.
The Solution: Transcript → Slides Proposal → Airtable Update
This workflow starts with one simple input: you paste a sales call transcript into an n8n chat trigger. From there, an OpenAI step reads the transcript and extracts the details you actually need for a proposal, like the company name, goals, budget, and requirements. Those details are structured as clean JSON so the rest of the workflow can use them reliably (no “copy the second paragraph and hope it’s right”). Next, the workflow duplicates your Google Slides template from Google Drive, renames it to something like “Acme Proposal,” and swaps template variables such as {Company_Name} and {Budget} with the extracted values. Finally, it grants access to the finished file and updates the Airtable record so your pipeline shows “Proposal Sent” without anyone chasing it.
The workflow kicks off from the chat input. AI turns unstructured transcript text into usable fields, then Google Drive and Google Slides handle the document creation. Airtable is updated at the end so your team stays in sync.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you send 10 proposals a week. Manually, you might spend about 30 minutes pulling details from the transcript, 20 minutes updating a Slides template, and another 10 minutes sharing the file and updating Airtable, so roughly 1 hour each. That’s about 10 hours a week. With this workflow, you paste the transcript (2 minutes), wait for extraction and slide updates (about 10 minutes), then review and hit send. You get most of that 10 hours back, and your CRM stays current without extra steps.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Airtable to track leads and proposal status.
- Google Drive to store and duplicate the Slides template.
- Google Slides to generate the proposal deck from variables.
- Gmail to send or share the finished proposal.
- OpenAI API key (get it from your OpenAI dashboard under API keys).
- Google Cloud credentials (create in Google Cloud Console with Slides + Drive scopes).
- Airtable access token (create in Airtable under developer settings).
Skill level: Intermediate. You’ll connect accounts, set permissions/scopes, and map a few fields in Airtable and Slides.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
You paste the transcript to trigger the workflow. The chat trigger collects the text, which is perfect for “just finished the call, need a proposal” moments.
AI extracts the fields you care about. OpenAI reads the transcript and outputs structured JSON like company name, goals, budget, and requirements so downstream steps don’t rely on fragile copy-paste.
A branded Slides proposal gets created from your template. n8n duplicates the Google Slides file from Drive, renames it using the company name, then replaces placeholders (for example, {Company_Name} and {Budget}) throughout the deck.
Sharing and CRM tracking happen at the end. The workflow grants access to the file for the client (or your internal team), and Airtable is updated so the lead status reflects reality.
You can easily modify the template variables to match your deck structure based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Chat Trigger
Set up the workflow entry point so incoming chat messages start the automation.
- Add the Incoming Chat Trigger node as the trigger.
- Keep default settings in Incoming Chat Trigger unless you need custom chat options.
- Note the execution order starts with Incoming Chat Trigger → AI Extraction Prompt.
Step 2: Connect Google Drive, Google Slides, and Airtable
Connect credentials for file creation, slide editing, sharing, and CRM updates.
- Open Duplicate Slide File and confirm Operation is set to
copy. - Credential Required: Connect your googleDriveOAuth2Api credentials in Duplicate Slide File.
- Open Swap Text in Slides and confirm Operation is set to
replaceText. - Credential Required: Connect your googleSlidesOAuth2Api credentials in Swap Text in Slides.
- Open Grant File Access and confirm Operation is set to
share. - Credential Required: Connect your googleDriveOAuth2Api credentials in Grant File Access.
- Open Modify Airtable Entry and confirm Operation is set to
update. - Credential Required: Connect your airtableTokenApi credentials in Modify Airtable Entry.
Step 3: Set Up the AI Extraction Prompt
Configure the AI prompt to extract proposal data from incoming chat input and output JSON fields used downstream.
- Open AI Extraction Prompt and set the model to
GPT-4.1-MINI. - Ensure JSON Output is enabled (
true). - In the user message, set the content to
={{ $json.chatInput }}. - Credential Required: Connect your openAiApi credentials in AI Extraction Prompt.
email, company, client, project_title, goals, deliverables, timeline_weeks, and budget_usd. If the model output deviates, later nodes will fail to replace text or share files.Step 4: Configure Proposal File Creation and Personalization
Duplicate the template, replace placeholders in the presentation, and share the finished proposal.
- In Duplicate Slide File, set Name to
={{ $json.message.content.company }} proposaland choose your template file in File ID. - In Swap Text in Slides, set Presentation ID to
={{ $json.id }}. - In Swap Text in Slides, confirm each replacement rule uses AI values, such as
={{ $('AI Extraction Prompt').item.json.message.content.company }},={{ $('AI Extraction Prompt').item.json.message.content.client }}, and={{ $('AI Extraction Prompt').item.json.message.content.project_title }}. - In Grant File Access, set File ID to
={{ $json.presentationId }}and Email Address to={{ $('AI Extraction Prompt').item.json.message.content.email }}.
{Company Name}, {project_title}, {budget}) to ensure replacements work.Step 5: Configure CRM Status Update
Update the lead record after the proposal is shared.
- In Modify Airtable Entry, select your Base and Table (e.g.,
New LeadandNew Leads Pipeline). - Set Matching Columns to
Emailso updates target the correct lead. - Map Email to
={{ $('AI Extraction Prompt').item.json.message.content.email }}and set LeadStatus toProposal sent.
Step 6: Test and Activate Your Workflow
Verify the full flow from chat input to proposal delivery and CRM update.
- Click Execute Workflow and send a sample chat message to Incoming Chat Trigger.
- Confirm AI Extraction Prompt outputs valid JSON with the required keys.
- Verify a new presentation is created by Duplicate Slide File, personalized by Swap Text in Slides, and shared by Grant File Access.
- Check Modify Airtable Entry updated the matching record to
Proposal sent. - Toggle the workflow to Active to enable production use.
Common Gotchas
- Google Drive and Google Slides credentials can expire or be missing scopes. If things break, check the n8n credential settings and confirm you enabled Drive file creation plus Slides editing permissions.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Frequently Asked Questions
About 45 minutes if your Google and Airtable accounts are ready.
No. You will mostly connect accounts and map fields between the AI output, Google Slides placeholders, and Airtable.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API usage, which is usually a few cents per proposal depending on transcript length.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and it’s the point of using Google Slides variables. Update your Slides template placeholders (like {Company_Name}, {Budget}, {Timeline}), then adjust the “Swap Text in Slides” mappings to match. You can also tweak the AI extraction prompt so it outputs exactly the fields your template expects, including service tiers, deliverables, or payment terms. If you run multiple offer types, keep two templates in Drive and route to the right one with a simple If condition based on the transcript.
Usually it’s a permissions issue. Confirm your Google credential in n8n includes the right scopes for both Drive file creation and Slides editing, then reconnect the account. Also check that the template file lives in a Drive you can access, especially if it’s in a shared drive with stricter policies. Frankly, shared drives are the most common culprit.
A lot. The practical limit is your n8n plan and your API quotas, not the workflow itself.
Often, yes, because this workflow needs clean data extraction, templated document generation, and a reliable CRM update at the end. n8n makes branching and data shaping easier when transcripts don’t look the same every time, and you can self-host for high volume without paying per tiny step. Zapier and Make can still work if you keep the logic simple, but you may hit limits once you add retries, conditional paths, or richer field mapping. If your team expects to generate many proposals weekly, n8n tends to stay predictable as you scale. Talk to an automation expert if you want a quick recommendation based on your volume and tools.
Set it up once, then let the workflow handle the repeatable parts. You get cleaner proposals, faster sends, and an Airtable pipeline you can actually trust.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.