anaksor-ocr
Sokheng · Kit
Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…
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 . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.
Telegram message
It starts when your bot receives a Telegram message, with:
A Telegram chat that reads and sends your email, checks and adds events and updates your projects
What you need before you start.
Chat
Brings each message to the trigger and sends the agent’s answer back to the same person.
NeedsA bot token from BotFather
Language and embedding models
Runs gpt-4o for the agent and the contact search, and text-embedding-3-small to search the contacts.
NeedsOpenAI API key
Contact store
Holds your contacts in a Contacts namespace, which the agent searches for names and emails.
NeedsPinecone API key, and an index you fill yourself
Checked by Mindket on 13 Nov 2026
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.
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.
| 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.
A published n8n that Telegram can reach over HTTPS, with the six tool workflows saved in the same instance.
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.
| 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 |
workflow.json.⚙️Get Emails to ⚙️Summarize Database, pick the matching workflow from the list.Telegram Trigger and Telegram.OpenAI Chat Model, OpenAI Chat Model1 and Embeddings OpenAI.Pinecone Vector Store and replace YOUR_PINECONE_INDEX with your index’s name.Telegram Trigger, restrict the bot to your own user ID.| 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 |
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.
| 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 |
You send the bot this.
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:
{
"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.
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.
| 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 |
The bot acts at once, answers anyone until you restrict it and remembers nothing.
message.text, so a photo or a voice note reaches it with no wordsContacts namespace with text-embedding-3-small, the model the search usesgpt-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 replacementPinecone Vector Store named two contacts, one with a personal address, and now holds a sampleAn 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.
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).
Pinecone Vector Store named the author's index, and its note listed two contacts, one with a personal emailYOUR_PINECONE_INDEX, and the note shows a sample contact.text-embedding-3-small. YourContacts.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:
{
"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.
workflow.json.⚙️Get Emails to ⚙️Summarize Database, pick the matching workflow from the list.Telegram Trigger and Telegram.OpenAI Chat Model, OpenAI Chat Model1 and Embeddings OpenAI.Pinecone Vector Store and replace YOUR_PINECONE_INDEX with your index'sContacts namespace, one record for each person with a name and an email, embeddedtext-embedding-3-small.Telegram Trigger, under Additional Fields, add Restrict to User IDs with your own Telegram user ID.To find your user ID, message the bot once while you test the workflow and read message.from.id in the trigger's
output.
Telegram Trigger passes the message to AI Personal Assistant. The agent reads message.text, with today's dateVector Store Tool, Contacts_Data to the model. It searchesOpenAI Chat Model1 answer from the matches.response.Telegram sends the agent's answer to the sender's user ID.AI Personal Assistant.AI Personal Assistant, keyed by{{ $('Telegram Trigger').item.json.message.chat.id }}, to let it follow a conversation.gpt-4o in OpenAI Chat Model and OpenAI Chat Model1.gpt-4o-2024-08-06 and gpt-4o-2024-11-20) forgpt-6-luna as its replacement. Change both chat models before then.README.md 6 KB workflow.json 10 KB
Sokheng · Kit
Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…
Qwen · Kit
Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…
ACE-Step · Kit
Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…
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…
zarazhangrui · Skill
Builds HTML presentations from scratch or from a PowerPoint file and shows visual style previews to pick from, for people who want web slides with no CSS or Ja…
iptv-org · Kit
Collects publicly available live TV channels from many countries into playlists that any video player with live streaming can open. Made for viewers and for de…