---
title: "Telegram assistant with Pinecone contacts and tool workflows"
kind: "Kit"
category: "Productivity"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/4cf932b1-c3e5-4d24-9a3b-f049bb2db5f3"
updated: "2026-11-09"
---

# Telegram assistant with Pinecone contacts and tool workflows

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

An n8n Telegram bot that hands each request to one of six tool workflows for email, calendar and project sheets, and finds contacts’ emails in Pinecone. You supply the six tool workflows.

Telegram assistant with Pinecone contacts and tool workflows is an n8n workflow in the Productivity 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 is a Telegram bot that hands each request to a tool workflow of its own. You message the bot in plain words. An agent on gpt-4o picks one of six tools: read or send email, read or add calendar events, update or summarize a project sheet. It looks up a contact’s email in a Pinecone index. Each of the six tools is a separate n8n workflow that you import or build first. Fourteen nodes make it up.

### Who it suits

People who already run small tool workflows for mail, calendar and projects, and want one chat to reach them all. It takes more setting up than an assistant with its tools inside. Skip it if you have none of the six yet and want one file that does everything.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Consulting | Solo consultants | Ask the bot for the day’s meetings on the way to work | A consultant asks what is on today and gets a short summary of three meetings. |
| Agencies | Project leads | Update a project’s status from the phone | A lead writes that the website copy is approved, and the project sheet changes. |
| Sales | Account managers | Email a contact by name without looking up the address | A manager asks the bot to email Sam the new price list, and Pinecone finds the address. |
| Freelancing | Freelancers | Ask for yesterday’s unread email | A freelancer reads a summary of yesterday’s mail before starting work. |

You need solid n8n: six tool workflows, three credentials and a Pinecone index with your contacts in it. Its author puts setup at about 11 minutes, which assumes the six tools already exist.

### Where to use it

A published n8n that Telegram can reach over HTTPS, with the six tool workflows saved in the same instance.

- n8n Cloud: import the file and the six tools there, then publish this one
- Your own n8n server: it needs a public HTTPS address for Telegram’s webhook
- Telegram: on your phone or desktop, in a private chat with your bot
- Pinecone: one namespace holds your contacts, filled by another workflow

### How to set it up

Get it saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. Import or build the six tool workflows first.

What you need first

| Need | Detail |
| --- | --- |
| n8n | Published, and reachable by Telegram over HTTPS |
| Telegram | A bot token from BotFather |
| OpenAI | An API key for \`gpt-4o\` and \`text-embedding-3-small\` |
| Pinecone | An API key, and an index of 1,536 dimensions with a \`Contacts\` namespace |
| Six tool workflows | One for each tool, each taking \`query\` and returning \`response\` |

1. Import the six tool workflows, add their own credentials and save each one.
2. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
3. In each of the six tool nodes, from `⚙️Get Emails` to `⚙️Summarize Database`, pick the matching workflow from the list.
4. Add a Telegram credential with the bot token and select it in `Telegram Trigger` and `Telegram`.
5. Add an OpenAI credential and select it in `OpenAI Chat Model`, `OpenAI Chat Model1` and `Embeddings OpenAI`.
6. Add a Pinecone credential, select it in `Pinecone Vector Store` and replace `YOUR_PINECONE_INDEX` with your index’s name.
7. Under Additional Fields in `Telegram Trigger`, restrict the bot to your own user ID.
8. Save, press Publish and send the bot a message.

A tool workflow for each node

| Node | What it is asked for | A Mindket listing that fits |
| --- | --- | --- |
| \`⚙️Get Emails\` | Email from a given day | Summarize unread Gmail by date |
| \`⚙️Send Email\` | An email to send | Write and send Gmail from a plain request |
| \`⚙️Get Calendar\` | A day’s events | Google Calendar day summary tool |
| \`⚙️Set Calendar Event\` | A new event | Plain-text Google Calendar event tool |
| \`⚙️Update Database\` | A project’s notes and status | Log project updates to Google Sheets |
| \`⚙️Summarize Database\` | A summary of every project | Google Sheets project summary tool |

### How to use it

Message the bot as you would a person, asking what is on tomorrow or to email Sam that the call moves to 3pm. The agent reads the message, calls the tools it needs and answers in the same chat. It keeps no memory, so each message has to carry its own details: the person, the day and what should happen.

What to change for a different result

| To change | Where |
| --- | --- |
| What the agent knows and may do | The system message of \`AI Personal Assistant\`, which gives it today’s date |
| What each tool does | The tool workflow it calls. The node’s description tells the agent when to use it |
| Contacts | The records in your Pinecone \`Contacts\` namespace |
| Models | \`gpt-4o\` in \`OpenAI Chat Model\` and \`OpenAI Chat Model1\` |
| A memory | Add a Simple Memory node to \`AI Personal Assistant\`, keyed by the Telegram chat’s ID |

### Example

You send the bot this.

```text
Send Sam an email saying the review moves to Thursday at 10.
```

The agent asks `Contacts_Data` for Sam’s address. That tool searches Pinecone and has its own gpt-4o read the matches. The agent then calls `send_email` with an object in this shape:

```json
{
  "sendTo": "sam@example.com",
  "subject": "…",
  "message": "…"
}
```

Your send workflow mails it and answers with `response`. The bot then replies in the chat that it is done.

### 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 most tools are other workflows, so a fault can sit in one of them. Test each tool workflow alone first.

**For experts.** Five tools pass the agent’s words as a string in `query`. `⚙️Send Email` has a schema, so its `query` is an object with `sendTo`, `subject` and `message`, and optionally `ccList`, `bccList`, `emailType` and `senderName`. Each tool returns the `response` field of its workflow’s last node, the default of these version 1.2 tool nodes.

The tools the agent sees

| Node | Tool name | Input |
| --- | --- | --- |
| \`⚙️Get Emails\` | \`get\_emails\` | Text |
| \`⚙️Send Email\` | \`send\_email\` | An object |
| \`⚙️Get Calendar\` | \`get\_calendar\` | Text |
| \`⚙️Set Calendar Event\` | \`set\_event\` | Text |
| \`⚙️Update Database\` | \`update\_database\` | Text |
| \`⚙️Summarize Database\` | \`Summarize\_Database\` | Text |
| \`Vector Store Tool\` | \`Contacts\_Data\` | A question, answered from Pinecone by \`OpenAI Chat Model1\` |

### Good to know

The bot acts at once, answers anyone until you restrict it and remembers nothing.

- Restrict it: the trigger answers every chat that finds the bot, and the agent can send mail as you. Limit it to your user ID first
- No confirmation: email goes out the moment the agent decides to send it
- No memory: a follow-up such as send it has nothing to point back to
- Text only: the agent reads \`message.text\`, so a photo or a voice note reaches it with no words
- Contacts: nothing in this file fills Pinecone. Load your contacts into the \`Contacts\` namespace with \`text-embedding-3-small\`, the model the search uses
- Billing: OpenAI bills the agent, the contact search’s model and each embedding. Pinecone bills by its plan, and each tool workflow adds its own calls
- Model date: OpenAI’s deprecations page, read on 2 November 2026, lists GPT-4o (\`gpt-4o-2024-08-06\` and \`gpt-4o-2024-11-20\`) for removal from the API on 14 January 2027, with \`gpt-6-luna\` as its replacement
- Credentials: the JSON holds none. The original’s note on \`Pinecone Vector Store\` named two contacts, one with a personal address, and now holds a sample

## README

````markdown
# Telegram assistant with Pinecone contacts and tool workflows

An n8n workflow for a Telegram bot that works through other workflows. Message it in plain words. An agent on gpt-4o
picks one of six tool workflows for email, calendar and a project sheet, finds a contact's email in Pinecone when you
name someone, and answers in the chat.

## What is inside

- `workflow.json`: the workflow as n8n exports it, fourteen nodes. It holds no credential.
- `README.md`: these notes.

The six tool workflows are not in the file. Import or build them first (below).

## What we changed from the original copy

- The six tool nodes pointed at workflows in their author's own n8n. They now point at none until you pick yours.
- `Pinecone Vector Store` named the author's index, and its note listed two contacts, one with a personal email
  address. The index is now `YOUR_PINECONE_INDEX`, and the note shows a sample contact.

## Before you start

- An n8n instance that Telegram can reach over HTTPS, on n8n Cloud or your own server.
- A Telegram bot token from BotFather.
- An OpenAI API key.
- A Pinecone account, its API key, and an index with 1,536 dimensions, the size of `text-embedding-3-small`. Your
  contacts go in a namespace named `Contacts`.
- The six tool workflows, saved in the same n8n.

## The six tool workflows

Each tool node runs a workflow of yours and hands it the agent's words in `query`. Each workflow must end on a node
whose output has a `response` field: that field is what goes back to the agent. These listings on Mindket take `query`
and return `response`, one for each node:

| Node | Tool name | What it is asked for | A listing that fits |
|---|---|---|---|
| `⚙️Get Emails` | `get_emails` | Email from a given day | Summarize unread Gmail by date |
| `⚙️Send Email` | `send_email` | An email to send | Write and send Gmail from a plain request |
| `⚙️Get Calendar` | `get_calendar` | A day's events | Google Calendar day summary tool |
| `⚙️Set Calendar Event` | `set_event` | A new event | Plain-text Google Calendar event tool |
| `⚙️Update Database` | `update_database` | A project's notes and status | Log project updates to Google Sheets |
| `⚙️Summarize Database` | `Summarize_Database` | A summary of every project | Google Sheets project summary tool |

Five of them get `query` as text. `⚙️Send Email` has a schema, so its `query` is an object:

```json
{
  "sendTo": "sam@example.com",
  "subject": "Review moved",
  "message": "Hi Sam, the review moves to Thursday at 10.",
  "ccList": [],
  "bccList": [],
  "emailType": "Text",
  "senderName": "Alex"
}
```

`sendTo`, `subject` and `message` are required, the rest optional. A send workflow that reads `query` as JSON copes
with either shape.

## Set it up

1. Import the six tool workflows, add their own credentials and save each one.
2. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`.
3. In each tool node, from `⚙️Get Emails` to `⚙️Summarize Database`, pick the matching workflow from the list.
4. Add a Telegram credential with the bot token and select it in `Telegram Trigger` and `Telegram`.
5. Add an OpenAI credential and select it in `OpenAI Chat Model`, `OpenAI Chat Model1` and `Embeddings OpenAI`.
6. Add a Pinecone credential, select it in `Pinecone Vector Store` and replace `YOUR_PINECONE_INDEX` with your index's
   name.
7. Load your contacts into the `Contacts` namespace, one record for each person with a name and an email, embedded
   with `text-embedding-3-small`.
8. In `Telegram Trigger`, under Additional Fields, add Restrict to User IDs with your own Telegram user ID.
9. Save, press Publish and message the bot.

To find your user ID, message the bot once while you test the workflow and read `message.from.id` in the trigger's
output.

## How a message is answered

1. `Telegram Trigger` passes the message to `AI Personal Assistant`. The agent reads `message.text`, with today's date
   in its system message.
2. When the request names a person, the agent asks `Vector Store Tool`, `Contacts_Data` to the model. It searches
   Pinecone and has `OpenAI Chat Model1` answer from the matches.
3. The agent calls the tool workflows it needs and reads each `response`.
4. `Telegram` sends the agent's answer to the sender's user ID.

## Change the result

- What the agent knows and may do: the system message of `AI Personal Assistant`.
- When each tool is used: the description in each tool node, which the model reads.
- Memory: there is none, so each message stands alone. Add a Simple Memory node to `AI Personal Assistant`, keyed by
  `{{ $('Telegram Trigger').item.json.message.chat.id }}`, to let it follow a conversation.
- Models: `gpt-4o` in `OpenAI Chat Model` and `OpenAI Chat Model1`.

## Good to know

- Until you restrict it, the trigger answers every chat that finds the bot, and the agent can send mail as you.
- Email goes out the moment the agent decides to send it, with no question first.
- The agent reads text only. A photo, a file or a voice note reaches it with no words.
- Nothing in this file writes to Pinecone. Records embedded with another model will not match the search.
- OpenAI bills the agent, the contact search's model and each embedding. Pinecone bills by its plan, and each tool
  workflow adds its own calls.
- OpenAI's deprecations page, read on 2 November 2026, lists GPT-4o (`gpt-4o-2024-08-06` and `gpt-4o-2024-11-20`) for
  removal from the API on 14 January 2027, with `gpt-6-luna` as its replacement. Change both chat models before then.
- Your messages go to OpenAI, and your contacts sit in your Pinecone index.
````

## What is in it

2 files, 15 KB, downloaded as a zip.

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

## Workflow check

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

- Steps: 3 steps, starting on a Telegram event
- AI: 1 step calls an AI model: AI Personal Assistant
- Sign-ins: Signs in to: Pinecone, OpenAI and Telegram
- 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/4cf932b1-c3e5-4d24-9a3b-f049bb2db5f3)
- [Its page on Mindket](https://mindket.com/p/4cf932b1-c3e5-4d24-9a3b-f049bb2db5f3)
