Tally to Google Slides, proposals ready to send
You finish a great call, you have solid notes, and then… the proposal somehow takes the rest of your afternoon. Copying bullets into a deck, rewriting sections so they sound “proposal-ready,” and hunting down the right template is the quiet time-killer.
This is where Tally proposal automation earns its keep. Agency owners feel it when “quick proposals” stack up. A sales lead trying to keep momentum feels it too. And if you’re a marketing consultant, you already know the awkward gap between “great meeting” and “sent proposal.”
This workflow turns short client notes into a polished Google Slides proposal and a ready-to-review Gmail draft. You’ll see exactly what it does, what you need, and what to watch for when you set it up.
How This Automation Works
See how this solves the problem:
n8n Workflow Template: Tally to Google Slides, proposals ready to send
flowchart LR
subgraph sg0["Presentation Generat Flow"]
direction LR
n0@{ icon: "mdi:cog", form: "rounded", label: "Replace text", pos: "b", h: 48 }
n1@{ icon: "mdi:robot", form: "rounded", label: "Presentation Generator", pos: "b", h: 48 }
n2@{ icon: "mdi:message-outline", form: "rounded", label: "Draft Email (Text)", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Copy Template", pos: "b", h: 48 }
n4["<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/code.svg' width='40' height='40' /></div><br/>Set Date Format"]
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", pos: "b", h: 48 }
n7["<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/webhook.dark.svg' width='40' height='40' /></div><br/>Webhook1"]
n7 --> n5
n5 --> n1
n0 --> n2
n3 --> n0
n4 --> n3
n1 --> n4
end
subgraph sg1["On form submission Flow"]
direction LR
n6["<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/form.svg' width='40' height='40' /></div><br/>On form submission"]
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 n6 trigger
class n1 ai
class n7 api
class n4 code
class n6 disabled
classDef customIcon fill:none,stroke:none
class n4,n7,n6 customIcon
The Challenge: Turning Call Notes into a Proposal (Fast)
Raw notes are not a proposal. They’re shorthand, half sentences, and scattered context you understood in the moment. Then you sit down to “just write it up,” and suddenly you’re rewriting the scope, re-ordering sections, cleaning up language, and trying to make a deck look like something a client can sign off on. Meanwhile, the follow-up email is still unsent, which means the client’s excitement cools off and the next meeting slips. Honestly, it’s not hard work. It’s just repetitive work that steals time from actual delivery.
It adds up fast. Here’s where it breaks down in real life.
- You rewrite the same “approach and timeline” section every week because your notes aren’t structured.
- Deck templates get duplicated, but details still end up inconsistent across slides and emails.
- Follow-up emails get delayed because you’re waiting for the proposal to feel “done.”
- Small errors creep in when you copy-paste names, dates, and deliverables across tools.
The Fix: Tally → OpenAI → Google Slides + Gmail
This automation starts with a simple Tally form you fill in during the meeting (or right after). That form sends the intake to n8n through a webhook, so you are not manually transferring notes anywhere. n8n maps those fields into a clean structure, then OpenAI expands your short bullets into a well-written proposal narrative that actually reads like a deliverable. Next, the workflow duplicates your Google Slides template, swaps the placeholders with the generated content (plus today’s date), and creates a Gmail draft that references the proposal you just generated. You review, tweak anything you want, and hit send.
The workflow kicks off when Tally submits your notes. OpenAI builds the proposal copy, then Google Drive and Google Slides handle the deck creation. Finally, Gmail prepares the follow-up message so you can move fast without sounding rushed.
What Changes: Before vs. After
| What This Eliminates | Impact You’ll See |
|---|---|
|
|
Real-World Impact
Say you send 5 proposals a week. Manually, you might spend about 20 minutes rewriting notes, another 20 minutes formatting a slide deck, and 10 minutes crafting the follow-up email, so roughly 50 minutes per proposal (about 4 hours a week). With this workflow, you spend about 5 minutes filling the Tally form, then wait a few minutes for the deck and email draft to appear. That’s closer to 30 minutes total for the week’s admin work, not half a day.
Requirements
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Tally.so to capture structured client intake.
- Google Drive + Google Slides to duplicate a template and fill slides.
- Gmail to create the follow-up as a draft.
- OpenAI API key (get it from the OpenAI API dashboard).
Skill level: Intermediate. You’ll connect accounts, paste an API key, and match intake fields to slide placeholders.
Need help implementing this? Talk to an automation expert (free 15-minute consultation).
The Workflow Flow
Tally submission triggers the workflow. A completed form sends your meeting notes into n8n via an incoming webhook, so the automation starts the moment you hit submit.
The intake gets cleaned up and organized. n8n maps your fields (client name, goals, deliverables, timeline, budget notes) into a predictable structure that the rest of the workflow can trust.
OpenAI expands notes into proposal language. The AI step turns short bullets into coherent sections you can put in front of a client, while keeping the original details intact.
A Google Slides deck is generated from your template. The workflow duplicates the template in Google Drive, swaps placeholder text in Google Slides, then drafts a follow-up email in Gmail using the proposal details.
You can easily modify the slide template and the proposal sections to match your services and pricing style. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Webhook Trigger
Set up the inbound request that starts the workflow and feeds intake data into the mapping step.
- Add and open Incoming Webhook Trigger.
- Set HTTP Method to
POST. - Set Path to
unique pathand copy the generated webhook URL for your intake form or system. - Connect Incoming Webhook Trigger to Map Intake Fields to match the workflow execution flow.
Step 2: Map Form Inputs with Set Fields
Normalize incoming data into named fields for downstream AI generation and document updates.
- Open Map Intake Fields and keep Assignments as configured.
- Verify each field uses the correct expressions, for example set firName to
{{ $json.body.data.fields[0].value }}and clientBusiness to{{ $json.body.data.fields[3].value }}. - Confirm downstream fields like extraDetails use
{{ $json.body.data.fields[10].value }}so long-text content is preserved. - Connect Map Intake Fields to Proposal Content Builder.
Step 3: Set Up AI Proposal Generation
Configure the LLM node to generate a full proposal JSON object based on mapped inputs.
- Open Proposal Content Builder and confirm Model is
gpt-4o. - Enable JSON Output so the node returns structured fields for slide replacement.
- Credential Required: Connect your openAiApi credentials.
- Keep the prompt content as provided to ensure all required proposal fields are generated.
Step 4: Generate Slides and Email Draft
Format the date, duplicate the slide template, replace placeholders, and draft an email with the proposal link.
- Open Format Current Date and keep the JavaScript Code as-is to output
currentDate. - In Duplicate Slide Template, set Operation to
copy, set Name to{{ $('Map Intake Fields').item.json.clientBusiness }} Proposal, and set File ID to your slide template ID (replace{{Gdrive file id of slide}}). - Credential Required: Connect your googleDriveOAuth2Api credentials in Duplicate Slide Template.
- In Swap Slide Text, keep Operation as
replaceTextand Presentation ID as{{ $json.id }}. - Verify key replacements, such as {{proposalTitle}} to
{{ $('Proposal Content Builder').item.json.message.content.clientBusiness }}and {{clientName}} to{{ $('Proposal Content Builder').item.json.message.content.clientName }}. - Credential Required: Connect your googleSlidesOAuth2Api credentials in Swap Slide Text.
- In Compose Email Draft, keep Resource set to
draftand confirm Message includes the slide URL with{{ $('Duplicate Slide Template').item.json.id }}. - Set Send To to
{{ $('Utility: Form Intake Trigger').item.json.Email }}or replace it with a valid mapped email field if you are not using Utility: Form Intake Trigger. - Credential Required: Connect your gmailOAuth2 credentials in Compose Email Draft.
{{ $('Map Intake Fields').item.json.email }} or enable the form trigger.
Step 5: Test and Activate Your Workflow
Run a controlled test to confirm AI output, slide generation, and email drafting all work end-to-end.
- Click Execute Workflow on Incoming Webhook Trigger and send a sample POST payload that matches your form fields.
- Confirm Proposal Content Builder returns a complete JSON object with all required proposal fields.
- Verify Duplicate Slide Template creates a new presentation and Swap Slide Text replaces placeholders correctly.
- Check that Compose Email Draft creates a Gmail draft with the correct proposal link.
- When satisfied, toggle the workflow Active to run in production.
Watch Out For
- Google Drive/Google Slides permissions can be finicky. If duplication or text replacement fails, check the connected Google account access and the template file sharing settings first.
- If you’re using Wait behavior implicitly (API latency from Slides or OpenAI), processing times vary. Bump up any wait/retry handling if downstream nodes fail on empty responses.
- Default AI prompts are generic. Add your brand voice and your “proposal structure rules” early, or you will keep rewriting the same sections every time.
Common Questions
About an hour if your Google template is ready.
Yes, but someone needs to be comfortable connecting accounts and testing a webhook once. After that, it’s mostly matching form fields to the slide placeholders you want filled.
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 (usually a few cents per proposal draft).
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.
Start with the “Map Intake Fields” step, because that decides what the AI sees and what ends up in your deck. If you want a shorter proposal, adjust the instructions in the “Proposal Content Builder” (OpenAI) step so it outputs fewer sections. You can also swap the slide template by changing which file the “Duplicate Slide Template” step copies, then update the placeholder names used by “Swap Slide Text.” Common tweaks include adding a pricing slide, changing tone to match your brand, and generating two versions (short and detailed) from the same intake.
Most of the time it’s permissions. Make sure the connected Google account can access the slide template in Drive, and re-authenticate the Google credentials in n8n if the token expired. If the deck duplicates but text doesn’t swap, it’s usually mismatched placeholders (the workflow is looking for text that doesn’t exist in your template). Rate limits can also show up if you generate a lot of decks back-to-back.
On n8n Cloud Starter, you can run thousands of workflow executions per month, which is plenty for most proposal pipelines. If you self-host, there’s no execution cap; your server resources become the limit. Practically, this workflow is gated more by Google Slides and OpenAI response time than by n8n itself, so expect a few minutes per proposal when things are humming.
Often, yes. n8n is simply more flexible when you want one workflow to handle mapping fields, generating AI content, duplicating a template, and then drafting an email, all with branching and retries. It’s also nice that you can self-host for high volume without paying per task. Zapier and Make can still be great if you want the simplest possible build and you’re okay with fewer customization options in the middle. If you’re torn, Talk to an automation expert and we’ll sanity-check your setup.
The workflow handles the repetitive parts so your follow-up goes out on time and your proposals stay consistent. Set it up once, then get your evenings back.
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.