Hermoso is a marketing MCP server: 922+ tools over one OAuth’d endpoint that let an agent research the ads already running in a market, generate finished image and video ads, publish them, and build the paid campaigns behind them. Grok Bot reaches all of it through one connection. This page covers one slice of that: what Grok Bot can actually do on Telegram, and what Telegram will not let it do.
Connect Hermoso to Grok Bot
- Fastest: add the Hermoso Marketing Bot template. Open the template and add it to Grok Bot. It arrives wired to Hermoso but with no key, because templates never carry secrets, so it asks for one: create a key under MCP & CLI → Terminal & API keys and paste it into the Bot’s chat. A key carries real spend authority, so treat it like a password.
- Or sign in from the Bot’s own terminal. Every Bot gets a browser, a filesystem and a shell, so the keyless install works there too:
Thenpm install -g hermoso && hermoso auth loginhermosocommand is then available to the Bot with nothing pasted into a config file. Settings → Plugins is a catalog of pre-built connectors that does not list Hermoso, so the template and the terminal are the ways in today. - Using Grok Build instead? xAI’s terminal coding agent is a separate product with its own setup: see Hermoso in Grok Build.
- Ask a Bot for something. “Pull my three closest competitors’ longest-running ads and remix the best hook into a 9:16 video,” or “post this render to the channel.” The agent picks the tools; you approve the spend.
Hermoso is not affiliated with or endorsed by xAI and does not claim to be. The Hermoso Marketing Bot template is published by Hermoso; the same steps are in the app under MCP & CLI, on the Grok Bot tab of the agent setup.
Then connect Telegram itself, once, under Settings → Connectors in Hermoso by pasting a bot token from @BotFather, and add that bot to your channel as an administrator. There is no consent screen: the token is the credential, and the bot is who posts.
The Telegram tools Grok Bot gets
post_to_telegram: sends a message as your bot to the chat you name: text up to 4,096 characters, or one photo, one video, or an album of 2 to 10 with photos and video mixed.schedule_post: queues it with itschatIdon the same calendar as every other channel.list_telegram_chats: the chats that messaged the bot in the last 24 hours. It helps find an id, and it is not a list of every chat the bot is in.edit_telegram_message / pin_telegram_message: fix a message’s text or caption without losing its views, and pin or unpin the call to action.create_telegram_invite_link: a named invite link per campaign, with an optional expiry, member cap or join approval, so you can see who joined from where.telegram_account: the chat’s subscriber or member count, title, description and invite link.list_telegram_dms: what people sent the bot in the last 24 hours, newest first, to answer withpost_to_telegram.delete_telegram_message: removes a message the bot sent, within Telegram’s 48-hour window, after a confirm step.
Telegram connects with a bot token, not a sign-in screen. Make a bot with @BotFather in Telegram, paste its token under Settings → Connectors, then add the bot to your channel as an administrator with Post Messages, or to a group as a member who can post. Hermoso posts as that bot, never as you. Two limits are Telegram’s and worth planning around: a bot gets no per-post views and no post history, so the subscriber count and named invite links are the numbers you have; and messages sent to the bot are kept for 24 hours, then gone. Publishing costs no credits.
Telegram limits worth knowing before you automate anything
| Text | A Telegram message runs to 4,096 characters, but only 1,024 once a photo or video is attached, because the text becomes a caption. It is enforced when the post is created or queued, so an overlong post is refused while you are still there to fix it instead of being silently cut on the way out. |
|---|---|
| Visibility | Sent or not sent, with no draft, unlisted or private form. Who sees it is decided by the chat: “post to a private group or channel and only its members see it.” silent delivers without a notification sound and changes nothing about who can see the message. |
| Carousel | 2 to 10 items as an album, and photos and video may be mixed. Both bounds are Telegram’s own, from the Bot API’s sendMediaGroup (“must include 2-10 items”), and so is the mixing. The album shows one caption, on its first item. Hermoso uploads the files instead of passing links, which raises Telegram’s ceilings to 10MB per photo and 50MB per video. |
| Which account | chatId, required on every post: a public channel’s @username or the numeric id (a supergroup or channel starts with -100). The Bot API has no method that lists the chats a bot is in, so Hermoso cannot know them and never guesses. |
Try it in Grok Bot
Ask for it in ordinary language. These are plain sentences, not a DSL:
“Every Monday, read our Telegram channel’s subscriber count, post a short weekly update with this week’s best render, and pin it.”
That walks render_ad → post_to_telegram → pin_telegram_message → create_telegram_invite_link. Approval is Grok Bot’s setting rather than ours, and the shared machine is the reason to think about it: isolation is per user, not per Bot, so anything one Bot connects, every Bot on that machine can reach.
Grok Bot on Telegram: the part that bites
telegram_account returns the member count, title and invite link for a chat you name. Per-post numbers are another story: the Bot API carries no view count on a message and no history, so a Bot cannot tell you how one post did. Chart the subscriber count by the week and split new joiners by named invite links; those are the numbers Telegram gives.
For a long unattended run the hermoso CLI is the cheaper path: the agent shells out per command instead of carrying an 922+ tool manifest through every turn of a job that might run for days.
Research Telegram before you post
There is no Telegram ad library and no channel search in Hermoso, so it claims no competitor research on Telegram. Research the creative where it is public (the Meta, Google and LinkedIn ad libraries plus organic TikTok, Instagram, YouTube, Reddit and Threads) and post the finished ad here.
The paid half
There are no Telegram ads in Hermoso, and we do not imply any. Telegram here is a channel you own and run through your bot: post, pin, edit, count subscribers and track invites. The paid tools cover Meta, Google Ads, Microsoft Advertising, Reddit Ads, LinkedIn, Pinterest, X Ads, TikTok Ads, Snapchat Ads, ChatGPT Ads, Apple Search Ads and AppLovin Ads.
What Grok Bot cannot do on its own
An agent with a budget is only useful if the blast radius is bounded, so the fence is in the server rather than in a prompt. Every ad campaign, ad set, ad group and ad is created paused, and the status switches that arm real money refuse to run without an explicit confirmation flag. Every render is quoted first (hermoso_capabilities publishes each model’s exact credit cost before anything spends). Credits are reserved before the first provider call and settled at the exact cost afterwards, so a failed dispatch refunds rather than leaving you billed for nothing. Deletes are confirm-gated too, and every campaign tree is read back from the ad platform before your agent tells you what it built.
One step is deliberately yours: creating the bot with @BotFather and adding it to your channel. Everything after that is a tool call.
The rest of the matrix
From Grok Bot, post to: Facebook · Instagram · Threads · TikTok · YouTube · X · LinkedIn · Pinterest · Bluesky. Or see everything Grok Bot can publish to.
Post to Telegram from: Claude · ChatGPT · Claude Code · Cursor · Codex · Cline · OpenClaw · Hermes · Gemini CLI · Perplexity · Le Chat · Claude Cowork · Perplexity Computer · Paperclip
Frequently asked questions
Can Grok Bot post to Telegram?
Yes, through Hermoso's MCP server. Add the Hermoso Marketing Bot template from x.ai/bot/THQqogUKuhn1whWU0hrmb, which arrives wired to Hermoso and asks for an API key you create under MCP & CLI, Terminal & API keys. Or run npm install -g hermoso && hermoso auth login in the Bot's own terminal, which stores the credential with nothing pasted. Grok Bot then has 922+ tools, including the ones that publish to Telegram, plus the ones that research the ads already running in your market and render the creative in the first place.
How do I connect Telegram to Grok Bot?
Two steps, once each. Add the Hermoso Marketing Bot template from x.ai/bot/THQqogUKuhn1whWU0hrmb, which arrives wired to Hermoso and asks for an API key you create under MCP & CLI, Terminal & API keys. Or run npm install -g hermoso && hermoso auth login in the Bot's own terminal, which stores the credential with nothing pasted. Then make a bot with @BotFather in Telegram, paste its token under Settings → Connectors in Hermoso, and add the bot to your channel as an administrator with Post Messages. After that Grok Bot publishes to Telegram as an ordinary tool call, naming the chat each time.
What is the Telegram caption limit when posting from Grok Bot?
A text-only Telegram message runs to 4,096 characters; once a photo or video is attached the text is a caption and the limit is 1,024. Hermoso says which budget applied. Hermoso enforces it when the post is created or queued, so Grok Bot is told immediately rather than failing later when nobody is watching.
Can Grok Bot run Telegram ads as well as posting?
No. There are no Telegram ads in Hermoso. Telegram here is a channel you run through your own bot: posts, pins, edits, invite links and the subscriber count.
Can Grok Bot post privately or as a draft to Telegram?
There is no draft or private message in the Bot API. Privacy on Telegram belongs to the chat: post to a private group or channel and only its members see it. Hermoso refuses a visibility Telegram cannot honour at the moment you ask for it, rather than quietly publishing something weaker.
Can Grok Bot research Telegram before it posts?
No. Hermoso has no Telegram ad library or channel search. It researches the creative on the public ad libraries and organic platforms, and Telegram is where you post the result.
Start free with 30 credits at signup and 250+ more to earn. Every feature is on every plan. Credits are spent only on AI models and Ad Spy research; posting, scheduling, ads management and analytics are free.
Start free → See pricing