← the journal·2026-10-16
Put your marketing on a Grok Bot routine with ReachPill

A Grok Bot is xAI's agent that runs on its own persistent cloud computer, with a browser, files and a terminal. It keeps working when your laptop is closed. It uses the same kinds of MCP servers, plugins and skills as Cursor, and it can run on a schedule or react to events such as a GitHub pull request or a Slack thread.
That makes it a good fit for ReachPill. Connect once, and your bot can run campaigns, publish posts and report on them, on its own schedule.
What you need
- MCP server:
https://app.reachpill.com/mcp(streamable HTTP; a bearer API key or OAuth 2.1) - Skill file:
https://app.reachpill.com/docs/skill.md, with the ground rules, the main workflows and the full tool catalog, written for agents - OpenAPI spec:
https://app.reachpill.com/openapi.yaml - An API key from ReachPill under Settings → MCP → API keys
Connect it
Create a test key first. In ReachPill, open Settings → MCP → API keys and create a key starting with
mg_test_. With a test key, generations finish instantly with placeholder images at no cost, and publishing goes to a simulated channel, so your bot's first tests are completely safe.Ask your bot to connect. Send it this:
Connect the ReachPill MCP server at https://app.reachpill.com/mcp (streamable HTTP, bearer API key — I will enter it in the secure input dialog). Its skill file with workflows and the tool catalog is at https://app.reachpill.com/docs/skill.md — read it and keep it as a skill named "reachpill". List the tools and test them read-only first.
Enter the key in the secure form your bot sends you. Never paste it into the chat.
Write permission rules under Settings → General → Agent. A sensible start is: reading reports is fine, and anything that publishes, approves or spends needs your OK. Grok's review agent checks proposed actions against these rules and asks you when it's unsure.
Switch to a live key (
mg_live_…) once the loop works.
The same message, ready to copy, is on the Grok Bot tab under Settings → MCP in ReachPill.
Routines worth setting up
Scheduling is what sets a Grok Bot apart. Run each routine once by hand, check the result, and only then make it recurring.
A Monday campaign report
Every Monday at 9am, send me the report for each active ReachPill campaign and list the posts waiting for review.
The bot calls get_campaign_report, which shows results per post grouped by what each post was about. Then it calls list_campaign_occurrences filtered to posts waiting for review. Both are read-only, so they're safe to allow without approval.
Announce every release
When a release is published in our GitHub repo, announce it to LinkedIn and X through ReachPill.
The bot listens for the GitHub event and calls announce_release with the tag and release notes. ReachPill turns them into on-brand posts that lead with what changed since the last version.
You don't need a bot for this one. ReachPill has its own release sources (create_release_source): a GitHub Action, a public releases feed or a read-only GitHub App can feed it directly. Use the bot when you want it to decide something first, for example skipping patch releases.
Morning approvals
Each morning, approve today's ReachPill posts, unless one breaks a content rule.
The bot calls approve_occurrences for today's date range. ReachPill checks every post against the campaign's content rules (banned terms and required spellings, such as your product name's capitalization) and refuses to approve one that breaks them. That rule is enforced in ReachPill, not in the bot's instructions. Posts that fail come back to you, and get_occurrence shows what's wrong and the exact image that would go out.
What else your bot can do
Everything in ReachPill is an MCP tool, so a bot can do anything you'd do in the console:
- Set up your brand from your website:
derive_brand, thenupdate_brand_kit. - Post now or schedule:
get_social_slotsandschedule_social_post, with edit, cancel and retry.reschedule_occurrencemoves a campaign post even after it's scheduled. - Run campaigns on autopilot:
create_campaignandplan_campaign_arcplan the posts and cadence. Review them withapprove_occurrence,reject_occurrenceandedit_occurrence. - Publish posts you wrote: a provided-content campaign takes your captions exactly as written. The bot uploads your images (
create_upload_urlandconfirm_upload, orupload_mediafor a public URL) and adds the posts withimport_campaign_posts. Each post has its own id, so a re-run updates posts instead of duplicating them. Placeholders like{SITE_URL}are filled in at scheduling, and ReachPill e-mails you if a post misses its slot. - Use images without AI: set a campaign's
media.sourcetobrandfor your Brand Kit background with the headline, an optional screenshot and your logo composed on it. No image model runs, so it costs no credits.nonemakes text-only posts. Per post,image_modecan becomposite,brand,as_isornone. - Write blog articles:
create_blog_post,generate_blog_post, thenpublish_blog_postto your GitHub repo or a webhook. - Track spend:
get_balance,get_usage_summaryandget_spend_breakdown.
Posts keep going when credits run out
A routine shouldn't break because a balance hit zero. If your ReachPill credits run out, or your own AI provider key goes missing or gets locked, a post that needed an AI image goes out on your brand background instead. You're told in the queue and by e-mail. Set a campaign's media.fallback to hold if you'd rather such posts wait.
One limit: when ReachPill writes the captions, it still needs a language model, so with no credits and no text key of your own, those posts wait until you top up. Posts you wrote yourself keep publishing.
What costs money
- Billed: AI-generated images, including the
compositeimage mode (paid in ReachPill credits, or to your own provider if you use your own AI key), and captions ReachPill writes for you - Free: the
brand,as_isandnoneimage modes, and publishing and scheduling
Keep it safe
- Start with a test key so your bot's tests and first routines cost nothing and post nowhere.
- Enter keys only in the secure form, never in the chat.
- Remember sign-ins are shared. Tools and sign-ins are shared by every bot on your account, so a ReachPill connection made by one bot is usable by the others. Write permission rules with that in mind.
- Rely on enforced controls, not instructions. Telling a bot "always ask me first" isn't the same as a rule it can't break. ReachPill's campaign review settings are enforced on its side: if a campaign requires review, nothing in it publishes until a person approves it, whichever bot is asking.
Ready? Create a test key and send your bot the message above.