Mindket

Telegram bot that sorts text and voice and describes photos

Newversion 1 · updated

Overview

An n8n workflow for a Telegram bot that handles text, voice notes and photos. It labels text and transcripts as a task or another message, and it describes photos with OpenAI.

Telegram bot that sorts text and voice and describes photos 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.

At a glance

Runs in
  • n8n Cloud: import the file there and switch it on
  • Your own n8n server: the same file, with a public HTTPS address
  • Other labels: rewrite the two categories in the classifier nodes
  • Other photo questions: set a prompt in Analyze Image

Platform

Connects 2 apps

How it works

Trigger

Telegram message

It starts when Telegram posts a new message to the workflow's webhook address:

  • The update from Telegram, with the sender, the chat and the text, voice note or photo

Actions

  1. The sender's first name, last name and id are checked against the values you set, and anyone else gets a short error reply
  2. The message is sorted by kind: text, voice note or photo
  3. A text, or the transcript of a voice note made with gpt-transcribe, is labelled by OpenAI (gpt-6-luna) as a task or another message and sent back with that label
  4. A photo is downloaded, described by OpenAI (gpt-6-luna) and the description is sent back
  5. Three helper steps register the test or the production webhook with Telegram, or report its status, when you run them by hand

Result

A reply in the same Telegram chat: the text or transcript with its label, or a written description of the photo

Integrations

What you need before you start.

Telegram

Chat app

Delivers each message and file to n8n and sends the replies.

NeedsA bot token from BotFather and a webhook that points at your n8n

OpenAI

Language model

Labels text on gpt-6-luna, turns voice into text with gpt-transcribe and describes photos on gpt-6-luna.

NeedsAn OpenAI API key

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
21 steps, starting when its webhook is called
Not reached
7 nodes no run reaches: Set Webhook Test URL, Get Telegram Webhook Info, Test Webhook Status, Production Webhook Status, Set Webhook Production URL and 2 more
AI
3 steps call an AI model: Text Classifier Audio, Text Classifier and Analyze Image
Sign-ins
Signs in to: Telegram, OpenAI and api.telegram.org
API keys
No API key is left in the file; 1 blank in it for your own key
Step types
Mindket’s checker reads all 11 of its step types

Read from the workflow’s file, not from a run.

About

What it is

This n8n workflow lets a Telegram bot understand three kinds of message. A text, or the transcript of a voice note, is labelled as a task or another message and sent back with that label. A photo is described in words. Thirty nodes do the work, beside ten sticky notes.

Who it suits

People who want to capture quick thoughts by text or voice and have photos explained. Skip it if you expect the workflow to create tasks in another app, since it only labels and replies.

Who uses it, and how
IndustryWho uses itHow they use itExample
PersonalBusy professionalsCapture to-dos by voice while on the moveA user records a reminder to send an invoice and gets it back labelled as a task.
Field workSite supervisorsDescribe photos taken on siteA supervisor sends a photo of a delivery and reads a written description.
Small businessShop ownersSort quick notes from the shop floorAn owner types a note about restocking cups and sees it labelled as a task.
AccessibilityPeople with low visionHave a photo explained in wordsA user sends a photo of a shelf and reads what is on it.

You need a Telegram bot, an OpenAI key and an n8n that Telegram can reach over the internet.

Where to use it

Telegram posts every message to a web address, so your n8n needs a public HTTPS address. After that you use the bot from any Telegram chat with it.

  • n8n Cloud: import the file there and switch it on
  • Your own n8n server: the same file, with a public HTTPS address
  • Other labels: rewrite the two categories in the classifier nodes
  • Other photo questions: set a prompt in Analyze Image

Setup

Download saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. The last step tells Telegram where to send messages, and three helper nodes can do it for you.

What you need first
NeedDetail
n8nA server or n8n Cloud with a public HTTPS address
TelegramA bot token from BotFather, for a Telegram credential
OpenAIAn API key, for an OpenAI credential
  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. In Telegram, ask BotFather for a new bot and copy its token.
  3. Add a Telegram credential and select it in every Telegram node.
  4. Add an OpenAI credential and select it in Audio Classifier Model, Text Classifier Model, Transcribe Recording and Analyze Image.
  5. In Validation, replace the example first name, last name and numeric id with your own Telegram details.
  6. In Telegram Token & Webhooks, replace <YOUR_TELEGRAM_BOT_TOKEN> with your token and keep the word bot in front of it. Replace <YOUR_N8N_ADDRESS> in the two web addresses with your public n8n address. In the three status nodes, replace <YOUR_TELEGRAM_CHAT_ID> with your chat id.
  7. Switch the workflow on and run Set Webhook Production URL from the editor to register the address with Telegram.
  8. Send your bot a text, a voice note and a photo.

How to use it

Message the bot. A text comes back as “Task message” or “Other message” with your words in italics. A voice note does the same with its transcript. A photo comes back as a written description. Messages from anyone else get a short error reply.

What to change for a different result
To changeWhere
Who may use the botFirst name, last name and id in Validation
The labelsThe categories in Text Classifier and Text Classifier Audio
What the bot says about photosThe prompt in Analyze Image
The webhook addressThe values in Telegram Token & Webhooks

Example

You send a voice note that says to book the dentist for Tuesday. The workflow downloads it, turns it into text, and the classifier files it under task. The bot replies with “Task message” and your words.

You then send a photo of a cat on a sofa. The bot replies with a sentence that describes a cat on a sofa.

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. A webhook is an address n8n listens on, and Telegram posts each new message to it. A classifier is an AI step that puts a text into one of your groups.

For experts. Message Router has four outputs, one each for voice, text and photo plus a fallback that sends the error reply. The photo goes through Extract from File to Base64 and Convert to Image File so that Analyze Image can read it as base64. Validation must pass the incoming fields on, or the router sees no message.

Where to look closer
NodeWhat it doesWhat to know
Listen for Telegram EventsWebhook 2, POST on the path your-endpointThe address is public, so the sender check is the only gate
ValidationSet 3.4 with the include other fields option onIt holds the example name and id you replace
Message RouterSwitch 3.2, outputs for audio, text, image and everything elseThe fallback sends the error reply
Text ClassifierText Classifier 1 with two categories, task and otherIt uses Text Classifier Model on gpt-6-luna
Name the voice fileCode 2, sets the file name and typeTelegram’s ending oga is not on OpenAI’s list of formats
Transcribe RecordingHTTP Request 4.2, a POST to the transcription addressIt uses model gpt-transcribe and the OpenAI credential
Text Classifier AudioText Classifier 1 with the same two categoriesIt reads the transcript field text
Extract from File to Base64Extract From File 1, binary to property, keep source JSONIt keeps result.file_path for the next node
Analyze ImageOpenAI 1.6, Image, Analyze, from base64It uses gpt-6-luna and allows 1500 tokens
Telegram Token & WebhooksSet 3.4 with the token and two addressesIt feeds the three helper requests

Good to know

The original left its models unset, used a speech model that is ending, and had two flaws that stopped the flow.

  • Models: the two classifier models had no model set, so they ran on the node’s default gpt-5-mini, although they were named gpt-4o-mini. OpenAI’s deprecations page, read on 12 November 2026, lists gpt-5-mini as shutting down on 11 December 2026. The image step named gpt-4o-mini, and OpenAI lists the dated snapshot of that model for shutdown on 14 January 2027 with gpt-6-luna as the replacement. Mindket’s copy uses gpt-6-luna for all three, which OpenAI’s model page lists for text and image input
  • Speech to text: n8n’s OpenAI node always sends whisper-1, which OpenAI’s page lists for shutdown on 26 February 2027 with gpt-transcribe as a replacement. Mindket’s copy calls OpenAI’s transcription address with an HTTP Request node and gpt-transcribe. OpenAI’s speech to text guide lists ogg but not oga, the ending Telegram gives voice notes, so Name the voice file renames the file first
  • A message path that stopped: Validation did not pass the incoming fields on, so the router never saw the message and every message got the error reply. Mindket’s copy turns on the include other fields option
  • A file name that was missing: Convert to Image File reads result.file_path, which Extract from File to Base64 drops unless it keeps the source JSON. Mindket’s copy turns Keep Source to JSON on
  • The photo limit: Analyze Image allows 300 tokens by default, and OpenAI’s reasoning guide says a reasoning model counts its thinking in the limit, so the copy raises it to 1500
  • Labels only: nothing creates a task anywhere, so add your own step after the task messages
  • Sizes: Telegram’s Bot API page says bots can download files up to 20 MB, and OpenAI’s guide allows 25 MB for audio
  • A public address: anyone who learns the webhook address can post a made-up update. Telegram can send a secret token in a header when you register the webhook, and the Webhook node can check it with Header Auth
  • Telegram’s HTML mode: the task and other messages repeat your text in HTML mode. Telegram’s documentation asks for <, > and & to be escaped, so a text with them can fail to send
  • A caption: the photo’s caption is saved by Image Schema but no step uses it
  • Your bot token: it sits in Telegram Token & Webhooks as plain text, so it is stored with the workflow and shows in execution data. Clear it after you register the webhook
  • Not run against Telegram or OpenAI: Mindket ran the flow with stand-ins for both and saw all three kinds of message reach a reply. The helper requests to Telegram were not run
  • Your data: texts, voice notes and photos go to OpenAI, and the chat runs through Telegram
  • Credentials: the JSON holds none, so add the Telegram and OpenAI credentials yourself

README and files

README

Telegram bot that sorts text and voice and describes photos

An n8n workflow for a Telegram bot that handles text, voice notes and photos. A text, or the transcript of a voice note, is labelled
by OpenAI as a task or another message and sent back with that label. A photo is described in words.

What is inside

  • workflow.json: the workflow as n8n exports it, thirty working nodes and ten sticky notes. It holds no credential.
  • README.md: these notes.

What we changed from the original copy

  • Validation did not pass the incoming fields on, so the router saw no message and every message got the error reply. Its
    include other fields option is now on.
  • Extract from File to Base64 now keeps the source JSON, because Convert to Image File reads result.file_path from it.
  • The two classifier models had no model set and were named gpt-4o-mini. They are now Audio Classifier Model and
    Text Classifier Model on gpt-6-luna.
  • Analyze Image now uses gpt-6-luna with a limit of 1500 tokens.
  • n8n's OpenAI node, which always sends whisper-1, is replaced in Transcribe Recording by an HTTP Request node that uses
    gpt-transcribe. A new Code node, Name the voice file, renames the downloaded file to voice.ogg before it goes out.
  • The bot token, the host of the two webhook addresses and three chat ids are now placeholders.

Before you start

  • An n8n instance with a public HTTPS address, on n8n Cloud or on your own server.
  • A Telegram account and a bot token from BotFather.
  • An OpenAI API key.

Set it up

  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. In Telegram, ask BotFather for a new bot and copy its token.
  3. Add a Telegram credential and select it in every Telegram node.
  4. Add an OpenAI credential and select it in Audio Classifier Model, Text Classifier Model, Transcribe Recording and
    Analyze Image.
  5. In Validation, replace the example first name, last name and numeric id with your own Telegram details. The id is the number
    under message, from, id in the data Listen for Telegram Events receives.
  6. In Telegram Token & Webhooks, replace <YOUR_TELEGRAM_BOT_TOKEN> with your token and keep the word bot in front of it.
    Replace <YOUR_N8N_ADDRESS> in the two web addresses with your public n8n address. If you change the webhook path
    your-endpoint, change it in both addresses too. In the three status nodes, replace <YOUR_TELEGRAM_CHAT_ID> with your chat id.
  7. Switch the workflow on and run Set Webhook Production URL from the editor to register the address with Telegram. `Get Telegram
    Webhook Info` shows the result in your chat.
  8. Send your bot a text, a voice note and a photo.

How a run goes

  1. Listen for Telegram Events receives the update, and Validation with Check User & Chat ID compares the sender with your
    details. Anyone else gets the reply from Error message.
  2. Message Router sorts the message by kind.
  3. A text goes through Edit Fields to Text Classifier, which sends Text Task Message or Text Other Message.
  4. A voice note goes through Get Audio File, Name the voice file and Transcribe Recording, then Text Classifier Audio, which
    sends Audio Task Message or Audio Other Message.
  5. A photo goes through Image Schema, Get Image, Extract from File to Base64 and Convert to Image File to Analyze Image,
    and Image Message sends the description.
  6. The helper nodes under Telegram Token & Webhooks run only when you run them by hand.

What to change for a different result

  • Who may use the bot: the first name, last name and id in Validation.
  • The labels: the categories in Text Classifier and Text Classifier Audio.
  • What the bot says about photos: set a prompt in Analyze Image.
  • The webhook address: the values in Telegram Token & Webhooks.

Good to know

  • The two classifier models ran on the node's default gpt-5-mini, which OpenAI's deprecations page, read on 12 November 2026,
    lists for shutdown on 11 December 2026. The image step named gpt-4o-mini, and the page lists the dated snapshot of that model for
    shutdown on 14 January 2027 with gpt-6-luna as the replacement. OpenAI's model page lists text and image input for gpt-6-luna.
  • The same page lists whisper-1 for shutdown on 26 February 2027 with gpt-transcribe as a replacement. OpenAI's speech to text
    guide lists ogg among its formats but not oga, the ending Telegram gives voice notes.
  • OpenAI's reasoning guide says a reasoning model counts its thinking in the token limit, and Analyze Image allows 300 tokens by
    default, so the copy raises it to 1500.
  • Nothing creates a task anywhere. The workflow only labels and replies.
  • Telegram's Bot API page says bots can download files up to 20 MB, and OpenAI's guide allows 25 MB for audio.
  • Anyone who learns the webhook address can post a made-up update. Telegram can send a secret token in a header when you register the
    webhook, and the Webhook node can check it with Header Auth.
  • The task and other messages repeat your text in HTML mode, and Telegram's documentation asks for <, > and & to be escaped, so
    a text that holds them can fail to send.
  • The caption of a photo is saved by Image Schema, but no step uses it.
  • The bot token sits in Telegram Token & Webhooks as plain text, so it is stored with the workflow and shows in execution data.
    Clear it after you register the webhook.
  • Not run against Telegram or OpenAI. The flow was run with stand-ins for both: all three kinds of message reached a reply. The
    helper requests to Telegram were not run.
  • Texts, voice notes and photos go to OpenAI, and the chat runs through Telegram.
Files
NOTICE.md  631 B
README.md  6 KB
workflow.json  29 KB

3 files, 35 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-12

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

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…

New29.4k

Guizang PPT Skill

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…

New29.8k

Claude Code Skills & Plugins

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…

New29.8k

Similar in Productivity

See all in Productivity

Frontend Slides

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…

New32.3k

IPTV

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…

New144k

upscaler

uwg · Kit

Holds a set of image upscaling models gathered from the OpenModelDB community, for people who want to enlarge low-resolution pictures with AI on their own comp…

New