← the journal·2026-10-16

Put your marketing on a Grok Bot routine with ReachPill

A round black robot biting a green ReachPill capsule, next to a petri dish of pills and a small analytics screen

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

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

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

  3. Enter the key in the secure form your bot sends you. Never paste it into the chat.

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

  5. 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, then update_brand_kit.
  • Post now or schedule: get_social_slots and schedule_social_post, with edit, cancel and retry. reschedule_occurrence moves a campaign post even after it's scheduled.
  • Run campaigns on autopilot: create_campaign and plan_campaign_arc plan the posts and cadence. Review them with approve_occurrence, reject_occurrence and edit_occurrence.
  • Publish posts you wrote: a provided-content campaign takes your captions exactly as written. The bot uploads your images (create_upload_url and confirm_upload, or upload_media for a public URL) and adds the posts with import_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.source to brand for 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. none makes text-only posts. Per post, image_mode can be composite, brand, as_is or none.
  • Write blog articles: create_blog_post, generate_blog_post, then publish_blog_post to your GitHub repo or a webhook.
  • Track spend: get_balance, get_usage_summary and get_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 composite image 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_is and none image 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.