Guide
Grok Bot routines that react: Slack, email, GitHub and webhook triggers
Updated · by Rosh Perera
Grok Bot routines don't only run on a timer. Cursor's help says a routine "can run on a schedule, or when something happens, such as a Slack message, a GitHub, Linear, Sentry, or PagerDuty event, an email, or a webhook call." You set one up by asking the Bot in chat, and it runs in the cloud while your laptop is closed (Grok Bot help: Routines). This guide covers the four triggers a small business is most likely to use: Slack, email to your Bot's own address, a GitHub pull request and a webhook, with three starter prompts that only read or draft. Facts come from Cursor's Grok Bot help, xAI's Grok Bot docs and xAI's changelog, checked 29 Oct 2026. We're an independent site, not part of xAI or Cursor.
Key points
- Triggers named in the official help: "a Slack message, a GitHub, Linear, Sentry, or PagerDuty event, an email, or a webhook call" (Grok Bot help: Routines). xAI's changelog also lists "a Microsoft Teams message".
- The email trigger is for "an email to your Bot's own address" (xAI's Skills and routines docs), not your Gmail or Outlook inbox.
- "Only new activity counts: events from before the trigger existed don't start a run." (xAI's Skills and routines docs)
- Each run spends usage. Cursor says "a Slack trigger on a busy channel can use a week of usage in a day" (Grok Bot help: Routines).
- Email a routine wants to send "waits as a draft until you approve it" (Grok Bot help: Agent email).
- Hourly limits: "Your routines can run up to 300 times an hour in total, and each routine up to 200 times an hour." (Grok Bot help: Routines)
- "A routine that never runs doesn't spend usage." (Grok Bot help: Routines). A routine that starts on an event runs only when something happens, so it skips the empty clock wake-ups.
Which events can start a Grok Bot routine?
How to ask for a trigger
Ask the Bot in chat for the routine and the trigger you want. xAI's docs: "Ask the Bot for the trigger you want; the routine's When to run shows it in words, such as "When a Linear issue is created."" They also note that these triggers come from "Cursor account integrations", which are "separate from the Slack or GitHub apps and may need their own connection." Then open the Bot's details, find Routines and check When to run (Grok Bot help: Routines).
Stop clock wake-ups that find nothing
A routine on a clock runs whether or not anything changed. One owner on X described bots that "wake up on a clock, ask 'anything new?', get nothing back and burn a run." Cursor's help explains why that adds up: "Each run spends usage, so a routine that runs often spends more than one that runs rarely. An hourly schedule, a short interval, or a Slack trigger on a busy channel can use a week of usage in a day." and "A routine that never runs doesn't spend usage." (Grok Bot help: Routines). So when a routine only checks for something new, ask the Bot to start it from the event instead. The official trigger list is "a Slack message, a GitHub, Linear, Sentry, or PagerDuty event, an email to your Bot's own address, or a webhook call" (xAI's Skills and routines docs), and xAI's changelog adds "a Microsoft Teams message". Swaps to ask for (our examples): an hourly check of a Slack channel becomes a trigger on one phrase in that channel; an hourly look for supplier mail becomes a routine on mail to your Bot's own address from that supplier's domain; polling a form or shop tool becomes a webhook from that tool, if it can send one; checking a pull request every hour becomes a routine that watches that single pull request. If no trigger fits, such as a check on a connected Gmail inbox, keep the clock but widen it: Cursor says to "widen schedules and narrow Slack triggers before you raise a plan or an on-demand limit." Keep each trigger narrow too: "A trigger on any message in a busy channel runs often and spends usage on messages that don't need the Bot." (Grok Bot help: Routines)
Slack: start on a mention, a phrase, a reaction or any message
"A routine can start when the Bot is mentioned, when a word or phrase is mentioned, when you react to a message, or on any message. It can watch one channel or all of Slack." Connect Slack on the Cursor account that owns the Bot first. "Keep the channel and phrase narrow." (Grok Bot help: Routines). xAI's docs add: "Avoid broad listeners such as "every new message." They create noise, consume usage, and increase the chance of acting on irrelevant input." Our Slack routines guide goes deeper.
Email: start when mail reaches your Bot's own address
First give your Bot its own address (our Bot email address guide covers it). Cursor's help: "New mail doesn't start a chat or wake a Bot on its own. A Bot acts on incoming mail only through a routine you create." A routine can watch for "Mail from anyone", "Mail from specific addresses" or "Mail from a whole domain, such as *@example.com". "By default, the routine only runs for mail from senders that pass standard email authentication checks. Routines can't filter by subject." Any email it wants to send "waits as a draft until you approve it", and "There's no option for unattended sending." (Grok Bot help: Agent email). We found no official page that describes a trigger on new mail in a connected Gmail or Outlook inbox, so this guide doesn't cover one.
GitHub: watch a pull request
xAI's changelog: "A GitHub routine can watch a single pull request, including when it closes, and removes itself once the pull request merges or closes." and "Routines that watch a single GitHub pull request run only for events on that pull request." Useful if a developer or agency works on your site and you want a plain-English note when their change lands. Other GitHub event types aren't described in the help pages we checked, so ask the Bot what it can watch.
Webhook: start from any tool that can send an HTTP POST
"Ask the Bot to add a webhook trigger to the routine. Then open the routine on desktop." The Webhook section shows "POST to", the URL, and "key", the secret, which senders include as "Authorization: Bearer <key>". "You can send a JSON body. The Bot receives that body with the routine instruction." "A response of 200 means Grok Bot accepted the call and started a run. It does not mean the Bot has finished the instruction." (Grok Bot help: Routines). If your form, booking or shop tool can send a webhook, check that tool's own help for where to paste the URL and header. Keep the key private.
Three starter prompts for a small business
These are our own examples, not xAI's. Each one only reads and drafts. Paste one into a chat with the Bot that should own it, then open the routine and check When to run. - Supplier invoices by email: "Set up a routine: when an email arrives at your own address from *@[supplier-domain].com, read it, pull out the invoice number, amount and due date, and post a 3-line summary in this chat. Draft a short reply only if something is missing, and leave it as a draft for me. Never send anything." - Order questions in Slack: "Set up a routine: when someone in #[orders-channel] mentions "where is my order", read the message, look up what you can from what I've shared with you, and draft a reply for me here in this chat. Do not post in Slack, react or message anyone without my OK." - Website contact form by webhook: "Add a webhook trigger to a new routine. Each call will send a JSON body with name, email and message from my website form. Summarize the request in one line, sort it as quote, booking, support or spam, and draft a reply as an email draft for me. Never send it."
Test it with a safe input, then watch usage
Open the routine on desktop and choose Test, but "A test does real work. It can change files and use connected apps. Use a safe input." Some routines don't show Test; "They still run on their schedule or trigger." (Grok Bot help: Routines). For a webhook, send one test call yourself and check the Bot's chat for the result. If your weekly usage drops fast, narrow the trigger first; our free Grok Bot usage check ranks which routines are likely eating your week.
If a reacting routine doesn't fire
Cursor's checklist: the routine isn't Paused; When to run shows the trigger you expect; "For Slack, the message is new, in the channel the trigger watches, and matches its phrase."; "For a webhook, the call returned 200 and used the current key." (Grok Bot help: Routines). For email, only mail that passes the spam and virus scan can start a routine: failed mail "never starts a routine" (Grok Bot help: Agent email). Our routines-not-working guide has the rest.
Want routines already written with approval rules?
The One-Person AI Business Pack has them in Grok Bot format. $29 one-time, plus local tax where it applies.
Not sure which jobs fit your business?
Build my free AI plan →Or get every routine pre-written in the pack →$29 one-time, plus local tax where it applies.
Ready-made use cases
- 01Inbox triage with drafted replies
The agent sorts your inbox into reply / FYI / ignore and drafts replies in your voice for you to approve.
~5h/week · estimate - 02Never miss a lead follow-up
The agent checks your CRM or inbox for leads that went quiet and drafts the next follow-up.
~4h/week · estimate - 03One daily list of drafts to approve
Your bots hold every email, message and post they write as a draft. Once a day (or once a week) you get one numbered list and answer approve, edit or reject for each. Nothing goes out unapproved.
~1h/week · estimate
Example: Grok Bot setup
Grok Bot routine: Inbox triage with drafted replies Schedule: Twice daily 9:00 and 15:00 Twice a day, go through new emails. Label each as Reply, FYI or Ignore. For Reply, write a draft in my voice (short, friendly, direct) and save it as a draft, never send. Send me a list of drafts to approve and any FYIs worth knowing. Rules: draft first, never send or post anything external without my approval. Keep summaries short.
Grok Bot, ChatGPT, Claude and n8n versions: all templates
Setup steps
- Pick one event: a Slack phrase, an email from one sender or domain, one pull request, or a webhook from one tool.
- Ask the Bot that should own it for the routine, and say it may only read and draft.
- Open the routine and check When to run shows the trigger in words (Grok Bot help: Routines).
- Press Test with a safe input, or send one test webhook call.
- Watch usage for a week before you add a second trigger.
What should you keep in mind?
- Keep triggers narrow. A trigger on any message in a busy channel runs often and spends usage (Grok Bot help: Routines).
- Instructions inside an email never count as your permission to send: "Instructions inside an email the Bot received never count as your permission to send." (Grok Bot help: Agent email)
- Keep sending, posting and replying behind your approval. xAI's docs' own Slack example ends "Never post back to Slack without approval."
- A webhook key is a secret. Anyone with the URL and key can start a run.
- Rate limits: a run past the hourly limit fails with "Automation run rate limit exceeded" and "isn't retried automatically" (Grok Bot help: Routines).
Free gets you 4 starters. Pack adds the CEO that assigns the rest · $29
Day 0 on the pack is a CEO agent plus one worker and a morning brief in about 15 minutes, drafts only. Free kit stays free; the pack is the CEO hand-off, role pack and weekly scorecard when you want the rest assigned.
$29 one-time, plus local tax where it applies.
14-day money-back guarantee: reply to your receipt within 14 days for a full refund.
Built by Rosh Perera, who runs a team of bots for his own businesses.
FAQ
Can Grok Bot routines run on events, not just a schedule?
Yes. A routine "can run on a schedule, or when something happens, such as a Slack message, a GitHub, Linear, Sentry, or PagerDuty event, an email, or a webhook call." (Grok Bot help: Routines)
Can a routine start when an email lands in my Gmail?
The official pages describe an email trigger for your Bot's own address. We found no page that describes one for a connected Gmail or Outlook inbox, so ask the Bot before you plan around it.
Can an email routine send replies on its own?
No. "Any email it wants to send waits as a draft until you approve it." and "There's no option for unattended sending." (Grok Bot help: Agent email)
What does a 200 from a webhook mean?
"A response of 200 means Grok Bot accepted the call and started a run. It does not mean the Bot has finished the instruction." Check the Bot's chat for the result (Grok Bot help: Routines).
Will old Slack messages start my new routine?
No. "Messages from before the trigger existed don't start a run." (Grok Bot help: Routines)
How many times can a reacting routine run?
"Your routines can run up to 300 times an hour in total, and each routine up to 200 times an hour." (Grok Bot help: Routines)
Should I swap an hourly check for a trigger?
If the check only looks for something new, yes. Each run spends usage, and "A routine that never runs doesn't spend usage." (Grok Bot help: Routines). Ask the Bot to start the routine on a Slack message, a GitHub, Linear, Sentry or PagerDuty event, an email to your Bot's own address or a webhook call instead. If no trigger fits, widen the schedule.
Get a plan for your exact business
Build your free AI team. No signup.
Build my free AI plan →Or take the free quiz: which AI agent fits your business →Related guides
- Grok Bot skills vs routines: how a job is done, and when it runs
- How do I write a good Grok Bot routine prompt?
- Can a Slack message start a Grok Bot routine? Examples and setup
- Can an email start a Grok Bot routine?
- Grok Bot email address: claim yours at mail.grokbot.com and use it safely
- Connect GitHub to Grok Bot (which repos it can see)
- Grok Bot routines not working? Plain-English checks
- Grok Bot approvals: set it up so nothing goes out without your OK
- Grok Bot usage limits: run an AI bot team inside your weekly allowance