Updated

Post to Telegram from n8n with an AI agent

Yes, an n8n workflow can post to Telegram through Postgale. Attach an MCP Client Tool node pointed at https://postgale.com/mcp to an n8n AI Agent node (or call the REST API from an HTTP Request node) with a Postgale API key, connect your Telegram account in Postgale once, and the agent can channel and group posts, photos, videos, albums, edits and deletes. A person can be required to approve every post, reply and message before it goes out.

Can n8n post to Telegram?

Postgale is the secure layer for AI agents on social media. MCP (Model Context Protocol) is the open standard that lets AI assistants such as Claude and Cursor use outside tools. An MCP server is what they connect to. n8n does not reach Telegram on its own; with Postgale connected it gets tools for the Telegram accounts you connected and nothing else.

TaskWhat Postgale does
PublishText up to 4096 characters, one photo, video or document, or an album of 2 to 10 items with a caption; MarkdownV2 or HTML formatting; silent delivery; scheduling.
EditChange the text of a message or the caption of a media post or album.
DeleteRemove a message, or every message of an album.
MetricsThe chat’s member count as an account metric. Telegram gives bots no per-post views.

What do you need?

  • A Telegram channel or group where you are an admin who can add other admins.
  • A Postgale workspace, and a sign-in or an API key for the agent.
  • Optional media on a public HTTPS URL (upload it with upload_media): photos up to 10 MB, videos and documents up to 50 MB.
  • n8n, set up as below (Workflows with the HTTP Request or MCP Client Tool node).

Step 1: connect your Telegram channel or group

  1. Create a Postgale workspace and open Dashboard → Accounts → Telegram. You get a one-time code that is valid for 15 minutes.
  2. In Telegram, add Postgale’s bot to your channel or group as an admin with the right to post messages.
  3. Post /connect followed by the code in the chat. The channel or group appears in Postgale within seconds.
  4. Connect your AI tool: add https://postgale.com/mcp in ChatGPT, Claude or Cursor and sign in to Postgale, or create a key under Dashboard → API keys for n8n or your own code.

An agent can also start the connection itself: the connect_account tool (or POST /api/v1/connect/telegram) returns the code and the steps for the person who runs the chat. The agent never gets a token.

Step 2: connect n8n to Postgale

UseNodeWhen
Fixed stepsHTTP RequestYour workflow knows what to post (a new blog post, a product update, a form submission). Call POST /api/v1/posts with the content and the account ids.
An agent decidesMCP Client Tool attached to an AI Agent nodeThe model reads the input (an inbox, a brief, a trigger) and chooses among Postgale’s tools: list accounts, upload media, create or schedule posts, read and reply to comments and messages.

How do I set up the MCP Client Tool node?

  1. In Postgale, open Dashboard → API keys, create a key and copy it (it starts with sk_ and is shown once). Connect the social accounts the agent may use under Dashboard → Accounts.
  2. Add an AI Agent node with your model, and attach an MCP Client Tool node to it.
  3. In the MCP Client Tool node set the endpoint to https://postgale.com/mcp, the transport to HTTP streamable, and authentication to a Bearer or Header Auth credential carrying Authorization: Bearer sk_….
  4. Leave the tool list on “all” to start, or select only the read-only tools until you trust the workflow.
  5. Give the agent a system prompt that states the account ids it may use and whether it must save drafts or may schedule.
Ask your agent“You manage the Northline accounts in Postgale (ids in the context). For each new blog post in the input, draft one Instagram caption with the cover image and one Threads post, save them as drafts, and reply with the Postgale post ids.”

How do I set up the HTTP Request node?

  1. In Postgale, open Dashboard → API keys, create a key and copy it (it starts with sk_ and is shown once). Connect the social accounts the agent may use under Dashboard → Accounts.
  2. In n8n create a credential of type Header Auth with name Authorization and value Bearer sk_… (your key).
  3. Add an HTTP Request node: method POST, URL https://postgale.com/api/v1/posts, authentication Header Auth with that credential, body type JSON:
HTTP Request body (JSON)
{
  "content": "{{ $json.caption }}",
  "scheduledFor": "{{ $json.publishAt }}",
  "platforms": [
    {
      "accountId": "acc_instagram",
      "platformSpecificData": {
        "mediaUrl": "{{ $json.imageUrl }}"
      }
    },
    {
      "accountId": "acc_threads"
    }
  ]
}
  1. Get the account ids once with a GET to https://postgale.com/api/v1/accounts using the same credential.
  2. Optional: send an x-request-id header built from your trigger id, so a re-run of the workflow returns the same post instead of a duplicate.
  3. To know when the post is live, add a Webhook node and register its URL in Postgale (Dashboard → Webhooks); Postgale sends post.published or post.failed, signed with HMAC-SHA256.

What can I ask the agent to do on Telegram?

Check the connection first: “Which Telegram accounts are connected in Postgale?” Then, in plain language:

Ask your agent“Post this week’s changelog to our Telegram channel with the two screenshots as an album, silently.”
Ask your agent“Schedule a Telegram post for Friday at 5pm with the opening hours in bold (HTML formatting).”
Ask your agent“Fix the typo in the caption of this morning’s Telegram post.”
POST /api/v1/posts (Telegram)
{
  "content": "<b>This week</b>: faster sync, dark mode and 12 fixes.",
  "platforms": [
    {
      "accountId": "acc_tg",
      "platformSpecificData": {
        "mediaUrls": [
          "https://media.example.com/sync.png",
          "https://media.example.com/dark.png"
        ],
        "parseMode": "HTML",
        "disableNotification": true
      }
    }
  ],
  "scheduledFor": "2026-11-06T17:00:00Z"
}

Which Telegram rules does Postgale enforce?

  • Text is limited to 4096 characters and captions to 1024, counted after formatting markup; a longer post is refused before it reaches Telegram.
  • Albums have 2 to 10 items, and documents cannot share an album with photos or videos.
  • Files are uploaded by Postgale within Telegram’s bot limits: 10 MB per photo, 50 MB per video or document.
  • When Telegram asks to slow down, Postgale waits the time Telegram gives before retrying.
  • If the bot is removed or loses the right to post, the account is marked as needing reconnection and your webhook hears about it.

How do I keep a person in the loop?

  • Approval: tick “Hold posts from this app for approval” when you sign in, or in the Postgale dashboard require approval for the API key the agent uses (or for the whole workspace, or one account). Posts then wait as pending approval; comment replies and moderation, direct messages, WhatsApp sends and edits to live posts wait in the same queue. A person approves, edits or rejects each one in Dashboard → Approvals; the agent’s own key or sign-in cannot approve.
  • Tool annotations: every Postgale tool declares whether it only reads, writes, or publishes or sends live, deletes or spends. Clients that honour annotations ask before destructive tools run.
  • Audit log: every write the agent makes is recorded with the key or the connected app, the action and the time.
  • Revoking: each sign-in appears under Dashboard → Connected apps and each key under Dashboard → API keys; either can be revoked at any time.

What can’t an agent do on Telegram through Postgale?

  • Post to personal chats or to chats where the bot is not an admin.
  • Read views or reactions per post. The Bot API does not give them to bots.
  • Delete messages older than 48 hours. Telegram does not allow it.

Common questions

Yes, an n8n workflow can post to Telegram through Postgale. Attach an MCP Client Tool node pointed at https://postgale.com/mcp to an n8n AI Agent node (or call the REST API from an HTTP Request node) with a Postgale API key, connect your Telegram account in Postgale once, and the agent can channel and group posts, photos, videos, albums, edits and deletes. A person can be required to approve every post, reply and message before it goes out.

No. A chat admin makes Postgale’s bot an admin of the channel or group and posts a one-time code there; there is no Telegram password or bot token involved. An n8n AI agent only holds a Postgale API key or sign-in, which you can revoke at any time.

Yes. Turn on approval for the API key it uses, the account or the whole workspace. Posts, replies and messages then wait in the Postgale dashboard until a person approves, edits or rejects them; an n8n AI agent’s own access cannot approve.

Yes. Ask for a date and time; Postgale stores the post as scheduled and publishes it then, and reports the result (post.published or post.failed) on your webhook and in get_post.