---
title: "Telegram marketing agent for images, videos and posts"
kind: "Kit"
category: "Marketing & SEO"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/c2d82812-e65f-446d-93e9-2c16e59c7912"
updated: "2026-11-09"
---

# Telegram marketing agent for images, videos and posts

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

An n8n workflow for a Telegram bot that takes marketing requests by text, voice note or captioned photo. A Gemini agent passes each one to your own sub-workflow for an image, a video, or a LinkedIn, Instagram or Facebook post.

Telegram marketing agent for images, videos and posts is an n8n workflow in the Marketing \& SEO 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 puts a Telegram bot in front of your content workflows. You tell the bot what you need, typed, spoken or as a photo with a caption. A Gemini 2.5 Pro agent works out which kind of content you asked for: a picture, a clip, or a post for one of three networks. Then it calls the sub-workflow you built for that job. Voice notes are transcribed first, and photos go to Cloudinary so the video tool gets a link. The bot answers with a short line. 24 nodes, six of them notes.

### Who it suits

Small teams and solo marketers who already have n8n workflows that make images, videos or posts, and want to start them from a phone. Skip it if you have none yet. This file makes nothing by itself, and the five sub-workflows are not in it.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Small businesses | Owners who do their own marketing | Ask for a post or a flyer between jobs | A café owner sends a voice note asking for an Instagram post about the new lunch menu. |
| Agencies | Account managers | Put one bot in front of the agency’s content workflows | An account manager types a LinkedIn post request for a client right after a call. |
| Online retail | Product marketers | Send a product photo with a caption to start a video | A marketer photographs a new sneaker and asks for a short summer ad in the caption. |
| Events | Event organizers | Ask for a poster image as soon as plans change | An organizer requests a poster with the new date while still at the venue. |

You need solid n8n: importing a file, three credentials, five values, and five sub-workflows that accept the right fields. Its author puts setup at about 11 minutes, which leaves out building the sub-workflows.

### Where to use it

Any n8n that Telegram can reach over the internet will run it.

- n8n Cloud: import the file into a new workflow there
- Your own n8n server: it needs a public HTTPS address for Telegram’s webhook
- Telegram: on a phone or a computer, wherever you chat with the bot
- Your content workflows: each tool calls one sub-workflow, and you can add more

### How to set it up

Get it saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. Build the sub-workflows before you publish.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server Telegram can reach |
| Telegram | A bot and its token, from BotFather |
| Google Gemini | An API key, for the agent and the transcription |
| Cloudinary | A cloud name and an unsigned upload preset |
| Sub-workflows | Five of your own, and a Kie.ai key for the video one |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. Add a Telegram credential and select it in `Telegram Trigger`, `Download Voice File`, `Get a file` and `Telegram`.
3. Add a `Google Gemini (PaLM) API` credential and select it in `Transcribe Audio` and `2.5 Flash`.
4. Fill the five fields of `API Values`: three from Cloudinary, then your Gemini and Kie.ai keys.
5. Build the five sub-workflows, each starting with a trigger that accepts the fields below.
6. Pick the matching sub-workflow in `Create Image`, `Video`, `LinkedIn`, `Instagram` and `Facebook`.
7. In `Telegram Trigger`, add your Telegram user ID under Restrict to User IDs.
8. Save and press Publish.

Each sub-workflow receives these fields from its tool. `chatID` lets it send its result to the chat itself:

```text
Create Image   imageTitle (four words at most), imagePrompt, chatID
Video          Image link, User request, chatID, Cloud name, folder, Upload Preset, Kie.ai API
LinkedIn       postTopic, targetAudience, chatID, Gemini API
Instagram      postTopic, targetAudience, chatID, Gemini API
Facebook       postTopic, targetAudience, chatID, Gemini API
```

### How to use it

Message the bot. A request for a LinkedIn post about your new prices, aimed at small business owners, reaches the LinkedIn tool with a topic and an audience. A voice note works the same way once it is transcribed. For a video from a picture, send the photo with your request as its caption. A photo with no caption gets no answer. The bot replies with one line, and the result comes from your sub-workflow.

What to change for a different result

| To change | Where |
| --- | --- |
| The agent’s rules | The system message of \`Marketing Team Agent\` |
| The model | \`2.5 Flash\`, which runs \`models/gemini-2.5-pro\` despite its name |
| Message types | The three rules of \`Switch\` |
| The photo folder | \`folder\` in \`API Values\` |
| The reply | The text of \`Telegram\`, and the two fixed lines in the agent’s prompt |

### Example

You send a photo of a new sneaker with the caption “short ad video, summer mood”. After the upload, the agent receives this text:

```text
Image Link: https://res.cloudinary.com/<your cloud name>/image/upload/…/sneaker.jpg

User Request: short ad video, summer mood
```

It calls `video` with that link and that request, plus your Cloudinary values and the Kie.ai key. Your video sub-workflow makes the clip and sends it to the chat. The bot itself answers with the success line from its prompt.

### 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. The agent sits in the middle, with its model and tools hanging under it on thin lines. Each tool here is a whole other workflow. Build the image one first and point `Create Image` at it. Then ask the bot for an image of a red bicycle and open the run to see the tool call.

**For experts.** The agent is a router with no memory. Its prompt forbids it to write content, so every result you see comes from a sub-workflow.

The steps that matter

| Node | Model or call | What to know |
| --- | --- | --- |
| \`Transcribe Audio\` | \`gemini-2.5-flash\`, audio transcription | Its answer sits in \`content.parts\[0\].text\`, which the agent’s prompt now reads |
| \`Marketing Team Agent\` | \`gemini-2.5-pro\` through \`2.5 Flash\` | Six tools, \`Think\` among them. Its prompt asks for one tool call, then for several |
| \`Image Upload\` | POST to Cloudinary’s image upload endpoint | Goes on after an error, so a failed upload reaches the agent as an empty link |
| The five tools | Call n8n Workflow tools | \`Create Image\`, \`Video\` and \`LinkedIn\` set their tool names. \`Instagram\` and \`Facebook\` take theirs from the node’s name |

### Good to know

You build the five sub-workflows, and the bot answers anyone until you restrict it.

- Who can use it: without a user restriction on \`Telegram Trigger\`, anyone who finds the bot can spend your Gemini, Cloudinary and Kie.ai credit
- Photo size: \`Get a file\` takes the medium copy Telegram sends. Use \`{{ $json.message.photo.last().file\_id }}\` there for the largest
- No memory: the prompt mentions one, but the agent has none, so each message stands alone
- One call or several: ask for two networks at once and expect one result, since the prompt also says one tool call only
- Models: Google’s deprecations page, read on 2 November 2026, gives no shutdown date for \`gemini-2.5-pro\` or \`gemini-2.5-flash\`
- Keys in a plain node: the Gemini and Kie.ai keys in \`API Values\` travel to the sub-workflows as fields and show in every run’s data
- Your data: voice notes and requests go to Google, and photos turn public on Cloudinary through the unsigned preset
- Billing: each message costs a \`gemini-2.5-pro\` agent run, a voice note one transcription more, and each sub-workflow bills on its own
- Credentials: the JSON holds none, and its tools point at none of its author’s workflows

## README

````markdown
# Telegram marketing agent for images, videos and posts

An n8n workflow for a Telegram bot that takes marketing requests by text, voice note or captioned photo. A Gemini agent
reads each request and hands it to one of five sub-workflows of your own: an image, a video, or a post for LinkedIn,
Instagram or Facebook. The sub-workflows do the making. This file is the front desk.

## What is inside

- `workflow.json`: the workflow as n8n exports it, 24 nodes. Six are sticky notes that name its parts: the trigger, the
  three kinds of message, the agent, its model, the tools and the reply. It holds no credential.
- `README.md`: these notes.

## What we changed from the original copy

- The five tool nodes pointed at sub-workflows in the author's own n8n: `Create Image`, `Create Video`, `LinkedIn Post`,
  `Insta post` and `Facebook post`. Each now arrives empty, and you pick your own.
- A voice note never reached the agent. `Transcribe Audio` returns Gemini's answer as `content.parts[0].text`, while
  `Marketing Team Agent` read only `$json.text`, so it got an empty prompt in place of what was said. Its prompt now reads
  `{{ $json.text || $json.content.parts[0].text }}`, which leaves text and photo messages as they were.

## Before you start

- An n8n instance, on n8n Cloud or your own server, reachable from the internet so Telegram can call it.
- A Telegram bot and its token, from BotFather.
- A Gemini API key from Google AI Studio.
- A Cloudinary account with an unsigned upload preset, for photos.
- Five sub-workflows of your own, one for each tool (below), and whatever keys they need. The video one gets a Kie.ai
  key from this workflow.

## 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 `Telegram Trigger`, `Download Voice File`, `Get a file`
   and `Telegram`.
3. Add a `Google Gemini (PaLM) API` credential with your key. Select it in `Transcribe Audio` and `2.5 Flash`.
4. Open `API Values` and fill the five fields: `Cloud name`, `folder` and `Upload Preset` from Cloudinary, then your
   Gemini key in `Gemini API` and your Kie.ai key in `Kie ai API`.
5. Build or import the five sub-workflows. Each starts with an Execute Workflow Trigger that accepts the fields listed
   below.
6. Open `Create Image`, `Video`, `LinkedIn`, `Instagram` and `Facebook`, and pick the matching sub-workflow in each.
7. In `Telegram Trigger`, add your Telegram user ID under Restrict to User IDs, so strangers cannot use the bot.
8. Save and press Publish. n8n registers the bot's webhook with Telegram when the workflow goes live.

## What each sub-workflow receives

All five get `chatID`, the Telegram chat the request came from, so each can send its own result to the user. The rest
of the fields come from the agent, which fills them from the message, or from `API Values`.

```text
Create Image   imageTitle (four words at most), imagePrompt, chatID
Video          Image link, User request, chatID, Cloud name, folder, Upload Preset, Kie.ai API
LinkedIn       postTopic, targetAudience, chatID, Gemini API
Instagram      postTopic, targetAudience, chatID, Gemini API
Facebook       postTopic, targetAudience, chatID, Gemini API
```

## How a run goes

1. `Telegram Trigger` receives each new message, and `API Values` adds your five values to it.
2. `Switch` sorts the message, and the first rule that matches wins. A voice note goes to `Download Voice File` and
   `Transcribe Audio`, which has `gemini-2.5-flash` write out what was said. Plain text goes to `Set 'Text'`. A photo with
   a caption goes to `Get a file`, then `Image Upload` puts it on Cloudinary, and `Set` writes the request as the image's
   address plus the caption.
3. `Marketing Team Agent` reads the request with the model in `2.5 Flash` and calls one tool. Its system message tells it
   never to ask questions or write content itself. When it is unsure it uses `Think`, and when it still cannot decide it
   makes an image.
4. The chosen sub-workflow runs and does the work.
5. `Telegram` sends the agent's last words to the chat, or `Done.` when it has none. The prompt asks for one fixed line on
   success and another on failure.

A photo sent with no caption matches no rule, so the bot does not answer it.

## Change the look

- What the agent may do: its system message in `Marketing Team Agent`. Add a tool there and in the canvas to give it a
  sixth job.
- The model: `2.5 Flash` runs `models/gemini-2.5-pro`, despite its name. Pick a Flash model there for lower cost.
- Which messages it accepts: the three rules of `Switch`.
- Where photos go: `folder` in `API Values`.
- The reply: the text of `Telegram`, and the two fixed lines in the agent's prompt.

## Good to know

- Who can use it: without a user restriction on `Telegram Trigger`, anyone who finds the bot can spend your Gemini,
  Cloudinary and Kie.ai credit.
- Photo size: `Get a file` takes the second of the sizes Telegram sends with each photo, a medium copy, and that is what the
  video sub-workflow gets. Use `{{ $json.message.photo.last().file_id }}` in its file ID for the largest.
- A failed upload: `Image Upload` carries on after an error, so the agent then gets an empty image address.
- No memory: the system message mentions a memory, but the agent has none, so each message stands alone.
- One call or several: the prompt says to make exactly one tool call, and later to call every tool a request names.
  Expect one result when you ask for posts on two networks at once.
- Models: Google's deprecations page, read on 2 November 2026, gives no shutdown date for `gemini-2.5-pro` or
  `gemini-2.5-flash`.
- Keys in a plain node: the Gemini and Kie.ai keys in `API Values` travel to the sub-workflows as fields, and they show in
  every run's execution data. Take them out before you share the workflow.
- Your data: voice notes and requests go to Google, photos become public on Cloudinary through the unsigned preset, and
  the sub-workflows get whatever the agent passes on.
- Costs: each message costs a `gemini-2.5-pro` agent run, a voice note one `gemini-2.5-flash` call more, and each
  sub-workflow bills on its own.
````

## What is in it

2 files, 35 KB, downloaded as a zip.

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

## Workflow check

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

- Steps: 11 steps, starting on a Telegram event
- AI: 2 steps call an AI model: Transcribe Audio and Marketing Team Agent
- Sign-ins: Signs in to: Telegram and Google Gemini
- API keys: No API key is left in the file
- Step types: Mindket’s checker reads all 7 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/c2d82812-e65f-446d-93e9-2c16e59c7912)
- [Its page on Mindket](https://mindket.com/p/c2d82812-e65f-446d-93e9-2c16e59c7912)
