- Offload
- Posts
- š¤ Automate Your Business Proposals with AI
š¤ Automate Your Business Proposals with AI
Learn to use AI with make.com and Tally to automate document creation from call transcripts
šš¼ Hey there! Welcome to a free workflow teardown edition of Offload, a newsletter for professionals to learn how to build products and automate work with AI and no-code tools.
In this edition, you'll learn how to automate the creation of templated documents from meeting transcripts using AI, Tally, and Make.
While this example focuses on turning a sales call into a business proposal, the same process applies to things like scopes of work, investment memos, client plans, and internal summaries.
Letās dive in šš¼
-Offload This-
From call transcript to business proposal
People spend a lot of time preparing templated documents based on information provided in a meeting. A. LOT.
For example, you do that great sales call, with solid rapport, clear needs ⦠then you have to write the freaking proposal š¢
Today's teardown will solve this.
Youāll learn how to automate the creation of a business proposal from a sales call transcript using AI ā summarizing the conversation, extracting key insights, and preparing templated documents.
But this isnāt just about sales. This same workflow works for tons of other cases:
Briefing call ā Scope of Work
Pitch meeting ā Investment Memo
Discovery call ā Client Plan
Sync call ā Internal Summary
If your meeting leads to a document, this pattern applies.
Learning to set this up takes maybe a couple of hours. It can free you hundreds of hours every month - and even more mental energy.
Here is what you are building:

Letās break it down.
1. Setting up an input form
Go to Tally.so and create a free account and create a form
In it, create three questions
Client name ā short answer type
Client company ā short answer type
Call transcript ā long answer type
This is how your users will submit transcriptions to the workflow

Publish the form and go to Make.com.
2. Getting inputs into the workflow
Create a new scenario and add a Tally module as trigger.
Select the option to watch new responses webhook
Create a connection with Tally and select the form created
Save the scenario

In make.com, at the bottom of the page, toggle the āimmediate as arriveā and click āRun onceā. Now itās waiting for inputs from Tally.
We are going to test this module and get test data for the next modules
Go back to Tally and submit an answer to the form using the following inputs:
Client name: Edward
Client company: DeathStar Inc.
Call transcript: a dummy transcript (you can use the example below)
|
After that, you should get something like the image below in make:

It means data is coming from Tally to Make.com, which is what we need for the next steps.
3. Set variables to work on
Add a set variables module.
Add three variables and name whatever you like. Here are some names you can use
client_name
client_company
call_transcript
Now you have to map each variable to an item from a previous module. Since you have tested the Tally module before, you will be able to access them:

Save and right-click the set variables module. Click the option ārun this module onlyā. A popover will appear with empty variables for you to fill in manually.
Get the data from the output of the Tally module and manually input the data required, and hit ok.
What you just did was to save āworking dataā as variables for the next modules.
Let us enter the AI realm of this workflow.
4. Summarize transcription
Add a new module and select OpenAI, then select the option āCreate a Completion (prompt)ā A setting popover will appear. You should already have a connection to use the OpenAI APIs, but if you are new to this, follow the steps in this post I've made recently. Select the o4-mini as the model, and letās now set up the prompt. | ![]() |
In the Text Content field you will add the āSummarizer Promptā shared in the section āPrompts Usedā below.
Under the #Input section of the prompt, you should map the ācall transcriptā field from the āset variablesā module.

Hit save and test this OpenAI module. It will require the call transcript as input; just copy and paste the dummy call to test the output. You should get something like this:

Copy the Content of the output to test the next step.
4. Format summaries into JSON
Now you are going to format this output into a JSON format.
For this, add a new OpenAI module, and select chat completion again.
Add a message with the role user again, just like the previous one.
For the message, use the prompt Prompt JSON Format (shared below), mapping the output from the previous OpenAI module as input for the one.

Save this module and right click to test it. Paste the output you copied in the last module test into the message input field.

Hit Ok and check if the output from this module follows the JSON structure
{
ākey 1ā: āvalue 1ā,
ākey 2ā: āvalue 2ā,
}
The output is now in a JSON format, so you can āparseā it into separate variables.
4. Create separate variables
This is what you're going to do in the same scenario:
Add a JSON module called āparse JSONā
In the JSON string, map the output from the last AI module you created, and save.

Grab the output from the previous module and test this one (right click > run this module)
You will see that the module OUTPUT is now a bundle with independent variables.

These are the variables we are going to use to create the document. Now, lets move to the file creation.
5. Create .doc template
The first thing you need to do is create a document template.
In this example, the objective is just to show how to map variables from the make.com workflow into your template. So, we are not making it super detailed.
In Google docs, create a .doc file to work as your template and save it in a drive folder.
In the screenshot below, you can see an example of how to set up the template.

Your template should use as placeholders for the content that is coming from Make.
IMPORTANT: to every key you created as JSON in Make, you should have a corresponding tag as a placeholder in the doc template.
You are almost done.
6. Create Document module
Go back to make.com and create a module from Google Docs, called ācreate a document from a templateā.
In the configuration popover, you should be able to trace back in the āDocument IDā section to the template you just created.

As soon as you do it, you will see that the Values section below will pull all the tags you created in the template.

Fill in the Title and drive location you wish to save new documents. You can make the Title variable if you want.
Hit save, and let's test this baby. Hopefully, you will reach something like the video below.

Youāre Done
This workflow takes a manual, repetitive task and turns it into an automated process. It works for proposals, reports, plans ⦠any document that starts with a conversation.
Suggestions to Improve Further:
Get the transcript as a file and not text
Improve your template for something nice looking
This is it! I really hope you manage to make this work. Let me know if you need any help, and if you have any suggestions for the workflow or this guide.
-Tools of the Build-
Make.com*: a no-code automation platform that connects different apps and services using visual workflows. Useful when you want to automate complex tasks across tools like Airtable, Gmail, OpenAI, and more.
Tally.so*: a no-code form builder that lets you create forms quickly without design or coding skills. Useful when you need to collect data, feedback, or payments with simple, shareable forms.
ChatGPT: a conversational AI developed by OpenAI that can understand prompts and generate human-like text responses. Well, you should know this alreadyā¦
* Indicates links that are commissioned. You help me if you use them.
-Prompts Used-
Summarizer Prompt
#Role
You are a world-class transcript analyzer with a particular expertise in preparing sales proposals from call transcripts with clients.
#Task
Your task is to summarize a call transcript into content blocks
You will think step-by-step through the following process to ensure a good outcome:
-Identify what is the context of the client (the challenge the client faces)
-Identify what are the client needs (the objective of the service)
-Identify what is the proposed solution name (the name of the service)
-Identify the solution scope (what is included in the service)
-Identify the duration of the service (for how long the service will be delivered)
-Identify the solution pricing (what is the pricing of the service)
-Identify the next steps
#Context
This task is crucial for my company and the output will be used to create a service sales proposal
#Instructions
- It is extremely important to my career that you use exclusively the information provided in the transcript and inputs here, NEVER creating data or information
- Your output will be in english, unless specified otherwise
- If you don't find any of the required information, simply indicate "NA". DO NOT invent information.
##Output specifications
The output should be a summary text for each of the following items:
- Context: [The context of the client is ...]
- Objective: [The client requires ...]
- Proposal: [Name of the service]
- Scope: [The service includes ...]
- Duration: [The service will last ...]
- Pricing: [Price]
- Next steps: [Next Steps]
#Input
[input variable here]
Prompt JSON Format
#Role
You are a world-class text-to-json parser, specialized in parsing text into json format with key-value pairs.
#Task
Your task is parse the received text into json organizing the content received in pre-determined json keys, as per the output template below.
#Output specifications
- The output should return ONLY valid JSON formatting, following the keys below.
- You should only fill the "value" items of the key-value pairs below.
##Output format
{
"context": "[The context of the client is ...]",
"objective": "[The objective is ...]",
"service": "[Service name]",
"scope": "[The service includes ...]",
"duration": "[The service will last ...]",
"pricing": "[Price]",
}
#Input
[input variable here]
#Notes
- Do not invent information; attaining your conclusions exclusively from the transcript information.
-Any feedback-
Before you go, Iād love to know what you thought of today's newsletter to help me improve the content for you.
How do you rate today's edition? |