Huashu Design
alchaincyf · Skill
Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…
An n8n workflow that turns a recorded sales call into a proposal. A form starts it, OpenAI transcribes the call and drafts the proposal text, your Google Docs template is filled in, and Gmail holds a draft with the PDF attached.
Sales proposal from a call recording is an n8n workflow in the Business category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.
Form submission
It starts when someone submits the Jotform form with:
A personal proposal as a PDF, waiting as a draft addressed to the prospect
What you need before you start.
Form
Starts each run and supplies the prospect’s details and the link to the recording.
NeedsJotform account, and a form with five labeled questions
File storage
Copies the template, downloads the recording and exports the finished copy as a PDF.
NeedsGoogle account connected with OAuth
Transcript and writing
Transcribes the call and writes the proposal’s parts with GPT-4.1 mini.
NeedsOpenAI API key
Document
Replaces each placeholder in the copy with its text.
NeedsGoogle account connected with OAuth, and a template with the placeholders
Saves a draft to the prospect with the PDF attached.
NeedsGoogle account connected with OAuth
Checked by Mindket on 13 Nov 2026
This n8n workflow turns a recorded sales call into a proposal draft. A Jotform submission starts it, carrying the prospect’s details and a Google Drive link to the recording. The eight nodes run in a line. n8n copies your proposal template in Drive, downloads the recording and has OpenAI transcribe it. GPT-4.1 mini then writes the proposal’s parts as JSON: the prospect’s problem in their own words, a named solution with its scope and price, and one upsell. A Google Docs node fills the copy, Drive exports it as a PDF, and Gmail saves a draft to the prospect with the PDF attached. Nothing is sent until you press send.
Freelancers and small agencies that sell AI systems, automation or other services after a first sales call, and spend days writing the proposal that follows. The prompt is written for that kind of seller, so anyone else should rewrite it first.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Automation and AI agencies | Founders and sales leads | Submit the form after each first call with a prospect and read the draft that lands in Gmail | A founder submits the form after a call and finds a PDF proposal waiting as a draft. |
| Software consultancies | Solo consultants | Keep one Google Docs template and let every call fill a fresh copy | A consultant sees one named copy per prospect appear in Drive, each with its own scope and price. |
| Marketing and web studios | Account managers | Rewrite the prompt’s price rule and wording for their own service lines | A studio swaps the price range for its own packages and gets quotes in that band. |
| Training providers | Sales teams | Let the recording’s own words shape the problem statement | A trainer’s proposal opens with the problem the buyer described on the call. |
Skip it if your recordings do not live in Google Drive, or if a proposal must go out without anyone reading it. The download step reads a Drive link, and the last step only drafts.
Any n8n that can reach Jotform, Google and OpenAI. Jotform has to reach it back, since a submission starts the run.
Get it saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Have these ready before you import it.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| Jotform | An account and a form with five questions labeled First Name, Last Name, Company Name, Call Link and Email |
| Google Docs | A proposal template in your Drive that holds the placeholders listed below |
| A Google account for Drive, Docs and Gmail, connected to n8n with OAuth | |
| OpenAI | An API key, for the transcript and the proposal text |
workflow.json.JotForm Trigger, choose your form where it says YOUR_FORM_ID.Google Drive node and put the ID of your template document in YOUR_TEMPLATE_DOC_ID.OpenAI and OpenAI1.Gmail, replace YOUR_NAME at the end of the message with your name, and change the wording if you like.Submit the form with the prospect’s name, company and email, and a link to the call recording in Google Drive. The Google account n8n uses must be able to read that file. The run goes on without you and ends with a draft in Gmail.
| Part | Placeholders to put in the document |
|---|---|
| Prospect and date | {{prospectFirstName}}, {{companyName}}, {{date}} |
| Problem | {{problemStatement}}, {{problemStatementBulletOne}}, {{problemStatementBulletTwo}}, {{problemStatementBulletThree}} |
| Solution | {{aiSystem}}, {{solutionStatement}}, {{solutionStatementBulletOne}}, {{solutionStatementBulletTwo}}, {{solutionStatementBulletThree}}, {{whyThisWorks}}, {{workScope}} |
| Price | {{price}}, {{solutionPricingType}}, {{50percentDiscount}} |
| Upsell | {{upsellOne}}, {{upsellOneScope}}, {{upsellOneBulletOne}}, {{upsellOneBulletTwo}}, {{upsellOneBulletThree}}, {{upsellOnePricing}}, {{upsellOnePricingType}} |
Two of them are searched for with a space after them, {{problemStatementBulletTwo}} and {{upsellOneBulletOne}}. Type a space after each in the template, or delete the space in the Docs node, or they stay as typed.
A consultant saves the recording of a call with a clinic owner to Drive and submits the form with its link. A copy of the template named after the clinic appears in Drive, and the draft goes to the owner’s address with the proposal attached. The model’s answer comes back as JSON, trimmed here:
{
"problemStatement": "…",
"problemStatementBulletOne": "…",
"aiSystem": "…",
"solutionStatement": "…",
"whyThisWorks": "…",
"workScope": "…",
"price": "…",
"solutionPricingType": "…",
"50percentDiscount": "…",
"upsellOne": "…",
"upsellOnePricing": "…"
}The draft’s subject is the company name, a bar and the solution’s name followed by Proposal. The body is a short note that greets the prospect by first name and points to the attachment.
If you are new. This is a short template, since the nodes run in a single line. Send a short test recording first, and open the run under Executions to see what each node received. A wrong template ID or an unreadable recording shows up there.
For experts. Two OpenAI nodes carry the work. The transcription node names no model in the file, and OpenAI1 runs gpt-4.1-mini with JSON output switched on. Its system message holds the format, a sample answer and the pricing rule: a price between $2,000 and $10,000, set at 5 to 10 percent of a year’s value to the buyer. It also returns half the price, which your template can show as a deposit or a discount.
Each submission spends OpenAI credit and leaves a copy in Drive, and the draft needs your eyes.
An n8n workflow. Submit a Jotform form with a prospect's details and a Google Drive link to the call recording, and it
returns a proposal as a PDF, waiting as a Gmail draft. The page says the email is sent. The file only saves a draft, and
these notes follow the file.
workflow.json: the workflow as n8n exports it, eight nodes in one line. It holds no credential. Your form, yourREADME.md: these notes.First Name, Last Name, Company Name, Call Link andEmail. The workflow reads the answers by those labels.workflow.json.JotForm Trigger and choose your form where it says YOUR_FORM_ID.Google Drive,Google Drive1, Google Drive2, Google Docs and Gmail.Google Drive, the first Drive node, and put the ID of your template document where it saysYOUR_TEMPLATE_DOC_ID. The ID is the long part of the document's address between /d/ and /edit.OpenAI and OpenAI1.Gmail. At the end of the message, replace YOUR_NAME with your name. Change the subject or the wording if you like.If submissions do not reach n8n after you publish, copy the production address from JotForm Trigger into the form's
webhook integration in Jotform.
The Docs node replaces each of these placeholders in the copy. Put the ones you want in your template, typed exactly.
| Part | Placeholders |
|---|---|
| Prospect and date | {{prospectFirstName}}, {{companyName}}, {{date}} |
| Problem | {{problemStatement}}, {{problemStatementBulletOne}}, {{problemStatementBulletTwo}}, {{problemStatementBulletThree}} |
| Solution | {{aiSystem}}, {{solutionStatement}}, {{solutionStatementBulletOne}}, {{solutionStatementBulletTwo}}, {{solutionStatementBulletThree}}, {{whyThisWorks}}, {{workScope}} |
| Price | {{price}}, {{solutionPricingType}}, {{50percentDiscount}} |
| Upsell | {{upsellOne}}, {{upsellOneScope}}, {{upsellOneBulletOne}}, {{upsellOneBulletTwo}}, {{upsellOneBulletThree}}, {{upsellOnePricing}}, {{upsellOnePricingType}} |
Two of them are searched for with a space after them: {{problemStatementBulletTwo}} and {{upsellOneBulletOne}}. Type a
space after each in the template, or delete the space in the matching line of the Google Docs node. Without that, the
two stay in the document as typed.
{{50percentDiscount}} is half the price. Your template can call it a deposit, a discount or leave it out.
Google Drive copies the template and names the copy with the company name followed by | Ai Proposal.Google Drive1 downloads the recording from the Call Link answer, and OpenAI transcribes it.OpenAI1 gets the prospect's name, company and the transcript, and answers in JSON.Google Docs replaces the placeholders in the copy. Google Drive2 exports the copy as proposal.pdf.Gmail saves a draft to the Email answer, with the PDF attached. The subject is the company name, a bar and theOpenAI1. It sets the format, a sample answer and the pricing rule, aOpenAI1 runs gpt-4.1-mini. Pick another in the node.Gmail.README.md 5 KB workflow.json 15 KB
alchaincyf · Skill
Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…
op7418 · Skill
Skill that makes single-file HTML slide decks, slide illustrations and platform covers in two visual styles, with a presenter mode for rehearsal. For speakers…
alirezarezvani · Skill
Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…
perplexity-ai · Kit
Picks the best option for a decision from text and images, such as which team should handle a request, with a probability for each choice, for developers who b…
numind · Kit
Reads documents as text or images and fills a JSON template with the fields you ask for, or converts the pages to Markdown. A 4B model for teams that process s…
nace-ai · Kit
Scores yes or no, multiple choice and rating questions about a document in one pass, with a probability for every option. An 8B decision model from Nace.AI tha…