---
title: "Booked call research with confirmation email and SMS"
kind: "Kit"
category: "Business"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/64cc5038-bb56-454c-9ab3-d01515d7f456"
updated: "2026-11-09"
---

# Booked call research with confirmation email and SMS

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An n8n workflow for booked sales calls. An agent researches each company from your Google Sheet with Tavily and matches your products, and a second agent writes a confirmation email, subject line and text message. Nothing is sent.

Booked call research with confirmation email and SMS is an n8n workflow in the Business category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-09. Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

## About

### What it is

This n8n workflow prepares you for a sales call that someone has just booked. You press Execute workflow, and it reads the booked calls in a Google Sheet that have no research yet. For each one, an AI agent searches the web with Tavily for the company’s background, tech stack and news, and picks three of your products from a Products tab. A second agent then writes a short confirmation email, a subject line and a text message, using a matching story from your Success Stories tab. Both agents write their results back to the row. Thirteen nodes run it. Nothing is sent.

### Who it suits

Salespeople and small agencies who take bookings from a form or a calendar link and want to arrive prepared, with a message ready to read. It fits a team that already keeps its bookings in a sheet. Skip it if you want the messages sent for you or the run to start by itself. The file has a manual trigger and no sending step.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Agencies and consultancies | Account executives | Paste each new booking into \`Meeting Data\` and run it before the call | A web agency runs it each morning and reads one company brief for every booked call. |
| Software and SaaS | Founders who sell their own product | Keep one row for each plan in \`Products\` so the matches stay accurate | A founder lists three plans, and each prospect gets the closest one named. |
| B2B services | Business development reps | Fill \`Success Stories\` with past clients grouped by industry | A rep adds six client stories, and each message cites the one nearest to the prospect. |
| Training and coaching | Sales trainers | Read the drafts as examples of a short, personal confirmation | A trainer goes through a week of drafts with a new rep. |

You need some n8n and a sheet with three tabs: importing a file, adding three credentials and filling the tabs with your own products and stories. Its author puts setup at about 12 minutes, which assumes the sheet and the accounts already exist.

### Where to use it

Any n8n that can reach OpenAI, Tavily and Google will run it. The results land in the sheet where you already track your bookings.

- n8n Cloud: import the file into a new workflow there
- Your own n8n server: the same file and steps
- Google Sheets: the research and the drafts sit beside each booking, ready to read before the call
- An email or SMS tool: add a node after \`Sales Writing Assistant\` to send the messages yourself

### How to set it up

Get it saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. Make the sheet first, since five nodes point at it.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server of your own |
| OpenAI | An API key. Both agents use \`gpt-4.1\` |
| Tavily | An account and its API key, for the web search |
| Google | An account that can edit the sheet, for a Google Sheets OAuth2 credential |
| A sheet | Three tabs: \`Meeting Data\`, \`Products\` and \`Success Stories\` |

The sheet’s three tabs

| Tab | Columns |
| --- | --- |
| \`Meeting Data\` | Call Date, Name, Email, Company Name, Website, Business Type, Project, then company\_overview, tech\_stack, company\_updates, primary\_solution, solution\_2, solution\_3, email\_subject, email\_text, sms |
| \`Products\` | Your catalogue, one row for each product, with plain column headers |
| \`Success Stories\` | One row for each client story: the person’s first name, company, business type, result and the solution used |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. Make the sheet with the three tabs, then copy its ID: the long part of its address between `/d/` and `/edit`.
3. Add a Google Sheets OAuth2 credential. In `Review Calls`, `Update Sheet`, `Update Sheets 2`, `Product List` and `Testimonials Tool`, select it and replace `YOUR_SHEET_ID` with the ID. Each node finds its tab by name.
4. Add an OpenAI credential and select it in `OpenAI Chat Model` and `OpenAI Chat Model1`.
5. In `Tavily`, replace `<YOUR_TAVILY_KEY>` in the Authorization header with your key. The brackets go too, so the header reads Bearer, a space and the key.
6. In `Sales Writing Assistant`, replace `YOUR_NAME` and `YOUR_COMPANY` in the template and the examples with your own.
7. Add one booked call to `Meeting Data`, a product or two to `Products` and a story to `Success Stories`.
8. Save, then press Execute workflow.

### How to use it

Add a row for each booked call, fill its first seven columns and leave the other nine empty. Press Execute workflow. The run takes one row at a time. A long sheet takes a while. When it ends, the research columns and the three writing columns are filled for each new row. A row that already has a `company_overview` is skipped, so you can run it again after adding more bookings.

What to change for a different result

| To change | Where |
| --- | --- |
| Who the messages sound like | \`YOUR\_NAME\` and \`YOUR\_COMPANY\` in the template and examples of \`Sales Writing Assistant\` |
| Tone and length | The system message of \`Sales Writing Assistant\`, which asks for a short, plain message |
| What the research covers | The system message of \`AI Agent\` and the JSON body of \`Tavily\`, which searches news only |
| Your offer | The rows of \`Products\` and \`Success Stories\`, the only things the agents know about you |
| Model | \`OpenAI Chat Model\` and \`OpenAI Chat Model1\`, both \`gpt-4.1\` |

### Example

You add this booking to `Meeting Data` and leave the research columns empty.

A booked call

| Column | Value |
| --- | --- |
| Call Date | Thursday |
| Name | Priya Nair |
| Email | priya@brightline.example |
| Company Name | Brightline Print |
| Website | https://brightline.example |
| Business Type | Online print shop |
| Project | Sending order status updates automatically |

The first agent fills the six research columns. `company_overview` holds a short summary of the shop, `tech_stack` the tools it seems to use and `company_updates` its recent news. The other three name the products from `Products` that fit best. The second agent answers in its parser’s shape, shown here with the content cut:

```json
{
  "subject": "…",
  "email": "…",
  "text_message": "…"
}
```

The email follows the template in its prompt: a greeting by first name, a line about the booking, one story from `Success Stories` and a closing line. The text message is short and casual. Nothing is sent, so read both and send them yourself.

### For newcomers and experts

**If you are new.** n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. An agent is a node that decides which of its tools to call, here a web search and a few sheet lookups. Its tools hang under it on thin lines. Run one booking first. Then open each agent to see which tools it called and what it wrote.

**For experts.** Two agents share the work, and each ends by writing to the sheet itself through a tool, so the update happens inside the agent step and not in a node after it.

The two agents and their search

| Node | Tools or call | What to know |
| --- | --- | --- |
| \`AI Agent\` | \`Tavily\`, \`Product List\`, \`Update Sheet\` | Its prompt makes the update mandatory. A parser holds its reply to six fields |
| \`Sales Writing Assistant\` | \`Testimonials Tool\`, \`Update Sheets 2\` | Writes the subject, the email and the text. A parser holds its reply to \`subject\`, \`email\` and \`text\_message\` |
| \`Tavily\` | A POST to the search endpoint | It asks for news with an answer and the raw page text, three results at a time, so each result is long |

Both update tools find the row by `Email`, so keep one row for each address.

### Good to know

It spends money at two vendors, sends nothing, and has two gaps in its prompts.

- Billing: OpenAI bills two \`gpt-4.1\` agent runs for each row, and Tavily counts every search the agent decides to make
- Nothing is sent: the email and the text only land in the sheet
- Call date: the writing agent’s input holds no \`Call Date\`, though its template mentions the meeting date. Add it to the agent’s text if you want it in the message
- A missing tool: its prompt lists an \`Email Agent\` the file does not have, so the agent writes the email itself
- Your data: the prospect’s name, email, company and project go to OpenAI, and the agent’s search words go to Tavily. Check the rules for contacting people where you and they are before you send anything
- Your key: the Tavily key sits in a header, so take it out before you share the workflow
- Credentials: the JSON holds none, and nothing from its author’s sheet. The author’s name and company in the writing prompt are placeholders

## README

```markdown
# Booked call research with confirmation email and SMS

An n8n workflow for sales calls that people book. For each booking in a Google Sheet, an AI agent researches the company on
the web and matches your products. A second agent then writes a confirmation email, a subject line and a text message from
your own success stories. Everything is written back to the sheet, and nothing is sent.

## What is inside

- `workflow.json`: the workflow as n8n exports it, thirteen nodes and no sticky notes. It holds no credential, and the
  Tavily key that sat in one header is replaced by a placeholder.
- `README.md`: these notes.

## What we changed from the original copy

- The key in the Authorization header of `Tavily` is now `<YOUR_TAVILY_KEY>`.
- The author's sheet and its three tab ids are gone. The five Google Sheets nodes ask for `YOUR_SHEET_ID` and find their
  tab by name: `Meeting Data`, `Products` or `Success Stories`.
- The writing prompt signed off with its author's name and company, in the template, the example and the text message. They
  are now `YOUR_NAME` and `YOUR_COMPANY`.

## Before you start

- An n8n instance, on n8n Cloud or your own server.
- An OpenAI API key that can use `gpt-4.1`.
- A Tavily account and its API key.
- A Google account, and a Google Sheet with three tabs (below).

## Set it up

1. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`.
2. Make the sheet with the three tabs below, then copy its ID: the long part of its address between `/d/` and `/edit`.
3. Add a Google Sheets OAuth2 credential. In `Review Calls`, `Update Sheet`, `Update Sheets 2`, `Product List` and
   `Testimonials Tool`, select it and replace `YOUR_SHEET_ID` with the ID. Each node finds its tab by name.
4. Add an OpenAI credential and select it in `OpenAI Chat Model` and `OpenAI Chat Model1`.
5. In `Tavily`, replace `<YOUR_TAVILY_KEY>` in the Authorization header with your key. The brackets go too, so the header
   reads Bearer, a space and the key.
6. In `Sales Writing Assistant`, replace `YOUR_NAME` and `YOUR_COMPANY` in the template and the examples with your own.
7. Add one booked call to `Meeting Data`, a product or two to `Products` and a story to `Success Stories`.
8. Save, then press Execute workflow at the bottom of the canvas.

## The sheet

| Tab | Columns |
|---|---|
| `Meeting Data` | `Call Date`, `Name`, `Email`, `Company Name`, `Website`, `Business Type`, `Project`, then `company_overview`, `tech_stack`, `company_updates`, `primary_solution`, `solution_2`, `solution_3`, `email_subject`, `email_text`, `sms` |
| `Products` | Your catalogue, one row for each product, with plain column headers the agent can read |
| `Success Stories` | One row for each client story. The writing prompt asks for the person's first name, the company, its business type, the result, the outcome and the solution used |

Fill the first seven columns of `Meeting Data` for each booking and leave the other nine empty: the workflow writes them.
Spell the headers as above, because the two update tools match them by name.

## How a run goes

1. `When clicking ‘Test workflow’` starts `Review Calls`, which reads the rows of `Meeting Data` whose `company_overview` is
   empty. A row that already has a company overview is skipped, so you can run it again after adding bookings.
2. `AI Agent` takes one row at a time. It searches with `Tavily`, looks up your products with `Product List`, and must end
   by calling `Update Sheet` with six fields: `company_overview`, `tech_stack`, `company_updates`, `primary_solution`,
   `solution_2` and `solution_3`. A structured parser holds its reply to those six.
3. `Sales Writing Assistant` receives the row and those six fields. It looks for a similar client in `Testimonials Tool`,
   writes a subject, an email and a text message, and saves them as `email_subject`, `email_text` and `sms` through
   `Update Sheets 2`. A second parser holds its reply to `subject`, `email` and `text_message`.

Both update tools find the row by `Email`, so keep one row for each address.

## Change the look

- Voice and length: the system message in `Sales Writing Assistant`. It asks for a short, personal message in a plain
  voice, and gives a template, an example and a text message to follow.
- What the research covers: the system message in `AI Agent` and the JSON body of `Tavily`. The body asks for news
  results, three at a time, with an answer and the raw page text.
- Your offer: the rows of `Products` and `Success Stories`. The agents only know what those tabs and the search hold.
- Model: `OpenAI Chat Model` and `OpenAI Chat Model1` both use `gpt-4.1`.

## Good to know

- Nothing is sent. The email and the text message only land in the sheet, so add your own sending node after
  `Sales Writing Assistant` when you want that.
- The writing agent's input has no `Call Date`, although its template mentions the meeting date. To put the date in the
  message, add a line such as `Call Date: {{ $('Review Calls').item.json['Call Date'] }}` to the text of
  `Sales Writing Assistant`.
- Its prompt lists an `Email Agent` as a tool. The file has no such node, so the agent writes the email itself.
- The first agent is told to call `Update Sheet` and not to answer with JSON alone. If a row stays empty, open the run and
  check whether the tool was called.
- Each row costs two `gpt-4.1` agent runs and as many Tavily searches as the agent decides to make. Try two rows first.
- The prospect's name, email, company and project go to OpenAI, and the agent's search words go to Tavily. Check the rules
  for contacting people where you and they are before you send anything.
- The Tavily key sits in a header, so take it out before you share the workflow.
```

## What is in it

2 files, 35 KB, downloaded as a zip.

```text
README.md  6 KB
workflow.json  29 KB
```

## Workflow check

Checked by Mindket on 13 Nov 2026. Read from the workflow’s file, not from a run.

- Steps: 4 steps, starting by hand
- AI: 2 steps call an AI model: AI Agent and Sales Writing Assistant
- Sign-ins: Signs in to: Google Sheets and OpenAI
- API keys: No API key is left in the file
- Step types: Mindket’s checker reads all 3 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/64cc5038-bb56-454c-9ab3-d01515d7f456)
- [Its page on Mindket](https://mindket.com/p/64cc5038-bb56-454c-9ab3-d01515d7f456)
