---
title: "Telegram bot that describes any photo you send with OpenAI"
kind: "Kit"
category: "Productivity"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/1f7f6c02-76a1-4f04-89ef-0f5787ea5c60"
updated: "2026-11-12"
---

# Telegram bot that describes any photo you send with OpenAI

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

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 2026-11-12. 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 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.

### Who it suits

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.

Who uses it, and how

| 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.

### Where to use it

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.

- n8n Cloud: import the file, publish it and send your bot a photo
- Your own n8n server: the same steps, with the server open to Telegram over HTTPS
- Another question: change the Text Input field of \`Analyze image\` to ask for something other than a description
- Another model: pick any OpenAI model that takes images in \`Analyze image\`

### How to set it up

Download saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. Setup is a Telegram bot and an OpenAI key.

What you need first

| 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 |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. Add a Telegram credential with your bot’s token and select it in `Get the Image`, `Send Content for the Analyzed image` and `Update Telegram Error Message`.
3. Add an OpenAI credential and select it in `Analyze image`. The node is set to `gpt-6-luna`, so check Good to know before you rely on it.
4. Press Execute workflow, send your bot a photo and check the reply.
5. Publish the workflow so the bot answers all day.

### How to use 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.

What to change for a different result

| 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\` |

### Example

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.

### 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 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.

Where to look closer

| 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 |

### Good to know

The file called a model that OpenAI shut down in 2024, and nothing checks who sends the bot a photo.

- Model: the file’s \`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 2027
- Answer length: the node caps the answer at 300 tokens unless told otherwise. \`gpt-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 back
- Photos only: a photo sent as a file has no \`photo\` field, and a text message has none either, so both get the reply that asks for an image
- Open bot: nothing checks who sends a photo, so anyone who finds the bot can spend your OpenAI credit. Telegram Trigger version 1.2 and later offers Restrict to User IDs under Additional Fields, and the file’s trigger is version 1.1. To limit it, swap in a current Telegram Trigger, turn on Download Images/Files and fill in Restrict to User IDs
- Your data: each photo goes to OpenAI
- Not run: nothing here was run against Telegram or OpenAI. The notes come from n8n’s source and the vendors’ pages
- Credentials: the JSON holds none

## README

```markdown
# Telegram bot that describes any photo you send with OpenAI

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 that asks for an image.

## What is inside

- `workflow.json`: the workflow as n8n exports it, 8 nodes, two of them sticky notes. It holds no credential. One note holds
  Mindket's setup notes, and the other is a coloured frame behind the nodes.
- `README.md`: these notes.

## What we changed from the original copy

- The Telegram nodes and the OpenAI node were linked to credentials in their author's n8n. The links are gone, so select your
  own.
- `Analyze image` was version 1.3 of the OpenAI node, which sends the model `gpt-4-vision-preview`. OpenAI shut that model down
  in 2024. The node is now version 1.4, with the model set to `gpt-6-luna` and the answer length raised to 1500 tokens.
- The long sticky note was rewritten. It named the author's own bot, and it described two nodes, a Merge and an Aggregate, that
  are not in the file. The new note has the setup steps and a few warnings.
- The Telegram Trigger's and the Wait node's webhook ids are gone, and n8n makes new ones when you import the file.
- The export's instance id is gone.
- Nothing else.

## Before you start

- An n8n instance that Telegram can reach over HTTPS, on n8n Cloud or on your own server.
- A Telegram bot and its token, made by messaging BotFather in Telegram.
- An OpenAI API key with access to a model that takes images.

## Set it up

1. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`.
2. Add a Telegram credential with your bot's token. Select it in `Get the Image`, `Send Content for the Analyzed image` and
   `Update Telegram Error Message`.
3. Add an OpenAI credential and select it in `Analyze image`. The node is set to `gpt-6-luna`, so read Good to know before you
   rely on it.
4. Press Execute workflow, send your bot a photo and check the reply.
5. Publish the workflow so the bot answers all day.

## How a run goes

1. `Get the Image` takes a new message. It listens for `message` updates only. When the message holds a photo, the node
   downloads it in its large size into the binary field `data`.
2. `Switch ( image or not )` checks the message for a `photo` field. A message that has one goes to `Analyze image`. Every other
   message goes to `Wait`.
3. `Analyze image` sends the photo and the node's default question, which asks what is in the image, to the model. With Simplify
   on, it returns one `content` field.
4. `Send Content for the Analyzed image` sends that text to the chat the photo came from, with n8n's attribution line turned off.
5. `Wait` pauses three seconds, and `Update Telegram Error Message` then sends the reply `Please Upload an Image ....`.

## Change the look

- 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`.

## Good to know

- Model: n8n's source shows version 1.3 of the OpenAI node's Analyze Image 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. Mindket's copy uses 1.4 with `gpt-6-luna`, the replacement OpenAI names for `gpt-4o`. The model page lists
  text and image input for it. The node's own default, `gpt-4o`, is listed for shutdown on 14 January 2027.
- Answer length: the node caps the answer at 300 tokens unless told otherwise. `gpt-6-luna` reasons before it answers. OpenAI's
  reasoning guide says the output 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 back.
- A photo sent as a file has no `photo` field, and neither has a text message, so both get the request for an image.
- Nothing checks who sends the bot a photo, so anyone who finds the bot can spend your OpenAI credit. Telegram Trigger version 1.2
  and later offers Restrict to User IDs under Additional Fields, and the file's trigger is version 1.1. To limit it, swap in a
  current Telegram Trigger, turn on Download Images/Files and fill in Restrict to User IDs.
- Your data: each photo goes to OpenAI.
- Not run: nothing here was run against Telegram or OpenAI. These notes come from n8n's source and the vendors' pages, read on 12
  November 2026.
```

## What is in it

3 files, 12 KB, downloaded as a zip.

```text
NOTICE.md  631 B
README.md  5 KB
workflow.json  6 KB
```

## Workflow check

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

- Steps: 6 steps, starting on a Telegram event
- AI: 1 step calls an AI model: Analyze image
- Sign-ins: Signs in to: OpenAI and Telegram
- API keys: No API key is left in the file
- Step types: Mindket’s checker reads all 5 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/1f7f6c02-76a1-4f04-89ef-0f5787ea5c60)
- [Its page on Mindket](https://mindket.com/p/1f7f6c02-76a1-4f04-89ef-0f5787ea5c60)
