What a Grok Bot routine is
In xAI's words, a routine “tells one Bot when to run a workflow: on a schedule, or when something happens.” It belongs to one Bot, uses that Bot's memory and skills, and posts its results in the Bot's chat.
- Schedules: plain phrases such as “every weekday at 8:00 AM” or “every 2 hours”, in the time zone set in Settings.
- Events: a Slack trigger; a GitHub, Linear, Sentry or PagerDuty event; an email to the Bot's own address; or a webhook call.
- A new routine doesn't run when you create it. It waits for its next scheduled time; use Test to run it now.
- Routines run on the Bot's cloud computer, so they keep going when your laptop is closed.
- Every run, tests included, uses your Grok Bot usage.
How to create a routine in Grok Bot
Ask the Bot that should own the job
On desktop, open that Bot's chat and describe the job and when it should run. Say where the input comes from, what result you want, what needs your approval and what to do if a source is missing. On the phone, open the Bot's profile, tap Add routine under Routines, and finish the message that starts “Set up a routine to”.
# Ask the Bot that should own the job, in its chat Set up a routine to sort my overnight Gmail every weekday at 7:00 AM, draft replies to anything urgent and send me the list. Don't send anything. Set up a routine every Sunday at 6:00 PM: review next week's Google Calendar, flag conflicts and overloaded days, and message me a Monday plan. Set up a routine every 2 hours on weekdays: check the #launch Slack channel for questions about pricing and draft answers for my approval.Check “When to run” and the time zone
Open the routine and read When to run to confirm the saved schedule; if it's wrong, choose Edit and describe the fix. The time zone lives in Settings, under Bot, in the Timezone field. Auto-detect uses your computer's zone, so pick a fixed one if the work belongs somewhere else.
Test it once
On desktop, open the routine and choose Test. It shows Running… until the run finishes, and the result appears in the Bot's chat. Tests do real work, such as changing files or using sites, so keep anything that writes or sends behind your approval. If a routine has no Test button, ask the Bot to do the job once in chat with safe input.
Pause, resume or delete
On desktop, click the Bot's name, open Details and use the switch on the routine's row, or open the routine and choose Pause or Resume. On the phone, open the routine from the Bot's profile and turn off Active; swipe the row to delete it. Deleting can't be undone.
How to trigger a routine with a webhook
A webhook lets another service start a routine, for example your store when a refund is requested, or a form when someone signs up.
Add the trigger
Ask the Bot to add a webhook trigger to the routine.
Copy the URL and key
On desktop, open the routine and find its Webhook section: POST to (the URL), key (the secret) and header (the full Authorization header). Click a field to copy it.
# Copy "POST to" and "key" from the routine's Webhook section (desktop) curl -X POST "https://<POST to URL from the routine>" \ -H "Authorization: Bearer <key>" \ -H "Content-Type: application/json" \ -d '{"order": "1042", "status": "refund requested"}' # 200 = a run started (check the Bot's chat for the result) # anything else = no run startedSend a POST and read the response
Send an HTTP POST with the key as
Authorization: Bearer <key>. You can include a JSON body; the Bot receives it with the routine's instructions. A 200 means a run started, not that it finished. Any other response means no run started: check that the routine isn't paused and that you're using the current key.
Slack, GitHub and other event triggers
- Slack: fire when the Bot is mentioned, when a word or phrase appears, when someone reacts to a message, or on any message, in one channel or all of Slack. Connect Slack on the Cursor account that owns the Bot first.
- GitHub, Linear, Sentry and PagerDuty: start a routine from an event in those tools; these triggers run through Cursor account integrations and may need their own connection.
- Email: a routine can start from an email sent to the Bot's own address.
- Only new activity starts a run. Keep triggers narrow: a busy channel watched for every message burns usage fast.
Grok Bot routine limits
| Limit | Value |
|---|---|
| Routines per Bot | Up to 50 |
| Shortest schedule | 5 minutes between runs |
| Runs per hour, all routines together | Up to 300 |
| Runs per hour, one routine | Up to 200 |
| Run history kept | The 20 most recent runs per routine |
| Over a rate limit | The run fails with “Automation run rate limit exceeded” |
| After a long absence | Grok Bot may ask whether to keep routines running, and pauses them if you don't answer |
Grok Bot routines not working? What to check
- It never ran: a new routine waits for its next scheduled time. Choose Test to run it now.
- It's paused: on desktop the row switch is off; on the phone Active is off. Grok Bot can also pause routines itself after you've been away.
- Wrong time: read When to run, then check the Timezone in Settings > Bot. Auto-detect follows the computer you're on.
- A Slack trigger didn't fire: the message has to be new, in the watched channel, and contain the matching phrase.
- The webhook didn't start a run: any response other than 200 means it didn't. Check the routine isn't paused and that the key is current.
- A run failed with a rate limit: narrow the trigger or widen the schedule, then rerun with Test or by sending the webhook again. xAI also lists failures from a shared Grok Bot limit as a known issue; those aren't retried automatically.
- Usage ran out: every run uses your weekly usage. Pause routines you don't need and widen schedules. On The X Subscription extra usage comes from prepaid credit; on legacy Cursor plans, from on-demand usage if it's turned on.
- “Sync failed”: xAI's routine docs don't describe this error. Open the routine, check its schedule and trigger, and run Test; if it keeps failing, contact Grok Bot support from the app.
Routine ideas from xAI's own examples
These come from the use cases in xAI's docs; each drafts work and waits for your approval before anything goes out.
| Routine | When | What it does |
|---|---|---|
| Morning briefing | Every morning | Summarizes overnight changes across your apps and drafts a team post |
| Inbox manager | Overnight | Sorts Gmail by urgency and drafts replies to urgent threads without sending |
| Week ahead | Sunday evening | Reviews Google Calendar, flags conflicts and sends a Monday plan |
| Meeting notes | Every evening | Pulls action items with owners from Granola notes and drafts a Slack post |
| Project updates | Fridays | Drafts Notion progress updates and adds them after your approval |
| Campaign team | Mondays, 9 AM | Pulls sign-up data, drafts launch content and fact-checks it against the numbers |
| Competitive intelligence | Weekly | Reports competitors' launches and price changes with links |
| Month-end close | 1st of the month | Matches invoices, reconciles expenses and lists exceptions for sign-off |
Routines for your coding agent, too
Grok Bot routines suit work that lives in Gmail, Slack and Notion. If the work lives in a code repository, Crewmark gives your own Claude Code or Codex the same rhythm: an AI employee with a role, a goal in numbers, working hours and a heartbeat that wakes it to take the next issue from a board.
Hire an employee on your agent
Run the setup command in a Claude Code or Codex conversation; that conversation becomes the employee. See what an AI employee is.
Set hours and a heartbeat
It wakes every 15 to 240 minutes during the hours you choose, even overnight. See how to make Claude Code proactive and Codex scheduled tasks.
Compare personal agents
See the Grok Bot guide and personal AI agents compared.
FAQ
How do I schedule a routine in Grok Bot?
Ask the Bot that should own the job, in its chat, to set up a routine and say when, for example “every weekday at 8:00 AM”. On the phone, open the Bot's profile and tap Add routine. Then open the routine and check When to run and your time zone.
Why isn't my Grok Bot routine running?
Usually it's waiting for its first scheduled time, it's paused, or the time zone is off. Run Test to check it works, make sure Active is on, and read When to run. Webhook calls that don't get a 200 don't start a run.
How do I trigger a Grok Bot routine with a webhook?
Ask the Bot to add a webhook trigger, then copy the URL and key from the routine's Webhook section on desktop and send an HTTP POST with Authorization: Bearer <key>. A JSON body is passed to the Bot.
How often can a Grok Bot routine run?
At most every five minutes. Each routine can run up to 200 times an hour and all routines together up to 300, and a Bot can have up to 50 routines.
Do routines run when my computer is off?
Yes. Bots work on a cloud computer, so scheduled and triggered runs keep going with your laptop closed, and the Bot notifies you when it's done.
Do Grok Bot routines cost usage?
Yes. Every run, including Test runs, uses your Grok Bot usage, and frequent schedules or busy Slack triggers use it fastest.
Checked against xAI's Grok Bot documentation and Cursor's Grok Bot plans page on November 10, 2026.