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 workflow that answers photos sent to a Telegram bot. The photo goes to an OpenAI vision model and the bot replies with a description. Any message that is not a photo gets a short reply asking for an image.
Telegram bot that describes any photo you send with OpenAI 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 someone sends your bot a message. If the message holds a photo, n8n downloads it, and the trigger reads:
A Telegram reply that describes the photo you sent, or a short request for an image
What you need before you start.
Chat
Receives the photo and sends the description or the request for an image.
NeedsTelegram bot token
Vision model
Looks at the photo and writes the description.
NeedsOpenAI API key with access to a model that takes images
Checked by Mindket on 13 Nov 2026
This n8n workflow describes photos for you inside Telegram. You send a photo to your bot, n8n downloads it and an OpenAI model looks at it. The bot replies in the same chat with a text description. Any other message waits three seconds and then gets a reply that asks for an image. Eight nodes do the work, two of them sticky notes.
People who want a quick description of a picture without leaving Telegram. It is made for people who already use n8n and have an OpenAI key. Skip it if you need to keep a record, since the workflow stores nothing.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Accessibility | People with low vision | Hear what a picture shows | A user sends a photo of a street sign and reads what the model says it shows. |
| Content | Social media managers | Draft a caption or alt text from a picture | A manager sends a product photo and gets a description to edit. |
| Retail | Shop staff | Find out what an item is | A clerk sends a photo of an unlabelled box and asks what is in it. |
| Education | Teachers | Explain a diagram or a picture | A teacher sends a photo of a diagram and reads the model’s description. |
You need a little n8n: import a file, add two credentials and make a Telegram bot.
Any n8n that Telegram can reach over HTTPS and that can reach OpenAI will run it. The bot answers in the chat the photo came from.
Analyze image to ask for something other than a descriptionAnalyze imageDownload saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Setup is a Telegram bot and an OpenAI key.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own, open to Telegram over HTTPS |
| Telegram | A bot and its token from BotFather |
| OpenAI | An API key with access to a model that takes images |
workflow.json.Get the Image, Send Content for the Analyzed image and Update Telegram Error Message.Analyze image. The node is set to gpt-6-luna, so check Good to know before you rely on it.Send your bot a photo as a photo, not as a file. The reply comes after a few seconds and says what the model sees. Any text or file gets a reply that asks for an image.
| To change | Where |
|---|---|
| The question asked about the photo | The Text Input field of Analyze image |
| How long the answer can be | The Length of Description option in Analyze image |
| The model | The Model field of Analyze image |
| The reply to a message that is not a photo | The text of Update Telegram Error Message |
| How long it waits before that reply | The amount in Wait |
You send a photo of a desk with a laptop and a plant on it.
The bot replies with a few sentences that name the laptop and the plant and say where they sit. Treat the description as a model’s guess, since it can miss or misread details.
If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. A Telegram bot is an account that a program controls. Telegram hands each message sent to it over to n8n. A vision model takes an image and a question and writes an answer.
For experts. Get the Image downloads a photo in its large size into the binary field data. Switch ( image or not ) sends a message that has a photo field to Analyze image. Every other message goes to Wait. Analyze image is the OpenAI node’s Analyze Image operation with a binary input and Simplify on, so it returns one content field. That field is what Send Content for the Analyzed image sends.
| Node | What it does | What to know |
|---|---|---|
Get the Image | Takes each new message and downloads its photo | It listens for message updates only |
Switch ( image or not ) | Checks the message for a photo field | A photo sent as a file has none and takes the other path |
Analyze image | Sends the photo and a question to an OpenAI model | The question is the node’s default, which asks what is in the image |
Send Content for the Analyzed image | Sends the description back to the chat | It turns off n8n’s attribution line |
Wait | Pauses three seconds | It only delays the reply to a message that is not a photo |
Update Telegram Error Message | Asks the sender for an image | Its text is Please Upload an Image |
The file called a model that OpenAI shut down in 2024, and nothing checks who sends the bot a photo.
Analyze image node was version 1.3. n8n’s source shows that version sending gpt-4-vision-preview, and OpenAI’s deprecations page, read on 12 November 2026, lists that model as shut down on 6 December 2024. Version 1.4 and later let you choose the model, so Mindket’s copy uses 1.4 with gpt-6-luna, the replacement OpenAI names for gpt-4o. Its model page lists text and image input. The node’s own default, gpt-4o, is listed for shutdown on 14 January 2027gpt-6-luna reasons before it answers, and OpenAI’s reasoning guide says the cap counts reasoning tokens and can run out before any text appears. So Mindket’s copy sets 1500. This was not run from here, so send a photo and check that a description comes backphoto field, and a text message has none either, so both get the reply that asks for an imageAn n8n workflow that answers photos sent to a Telegram bot. The photo goes to an OpenAI vision model, and the bot replies with a
description. Any message that is not a photo gets a short reply that asks for an image.
workflow.json: the workflow as n8n exports it, 8 nodes, two of them sticky notes. It holds no credential. One note holdsREADME.md: these notes.Analyze image was version 1.3 of the OpenAI node, which sends the model gpt-4-vision-preview. OpenAI shut that model downgpt-6-luna and the answer length raised to 1500 tokens.workflow.json.Get the Image, Send Content for the Analyzed image andUpdate Telegram Error Message.Analyze image. The node is set to gpt-6-luna, so read Good to know before youGet the Image takes a new message. It listens for message updates only. When the message holds a photo, the nodedata.Switch ( image or not ) checks the message for a photo field. A message that has one goes to Analyze image. Every otherWait.Analyze image sends the photo and the node's default question, which asks what is in the image, to the model. With Simplifycontent field.Send Content for the Analyzed image sends that text to the chat the photo came from, with n8n's attribution line turned off.Wait pauses three seconds, and Update Telegram Error Message then sends the reply Please Upload an Image .....Analyze image.Analyze image.Analyze image.Update Telegram Error Message.Wait.gpt-4-vision-preview, and OpenAI'sgpt-6-luna, the replacement OpenAI names for gpt-4o. The model page listsgpt-4o, is listed for shutdown on 14 January 2027.gpt-6-luna reasons before it answers. OpenAI'sphoto field, and neither has a text message, so both get the request for an image.NOTICE.md 631 B README.md 5 KB workflow.json 6 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…