Skip to content
TheBestSuperintelligence

Build workflows

Skills vs routines in Grok Bot: method first, schedule second

By Tal Slavin · Last checked · Next review 2026-11-20

◈ Executive SummaryCited · Documentation

Skills vs routines in Grok Bot: method first, schedule second

Grok Bot skills store how to do a task; routines decide when a Bot runs it. Limits, triggers, October 2026 changes and a 5-point gate before you schedule.

◈Key Takeaways (5)
  • •A skill is the method: steps, rules, output format and approval points. A routine is the trigger.
  • •Skills sit in one library shared by all your Bots; a routine belongs to a single Bot.
  • •Each Bot gets up to 50 routines, scheduled at least five minutes apart.
  • •Since 0.75.5, routines can run 300 times an hour in total and 200 per routine.
  • •Routine approvals expire after about 30 minutes, and routine sends wait as drafts.
☰On this page (10 sections)
  1. 01.At a glance
  2. 02.Which one do you need?
  3. 03.Build the skill first
  4. 04.The schedule gate
  5. 05.Timing and cost traps
  6. 06.Approvals when nobody is watching
  7. 07.October changes, fault by fault
  8. 08.Our take
  9. 09.Frequently asked questions
  10. 10.Sources & Further Reading

A skill is how a job gets done: steps, decision rules, output format and approval points. A routine is when one Bot runs that job, on a schedule or after an event. Save and test the skill first; attach a routine only once the method works without you explaining it again.

If you already have a routine that refuses to fire, jump to our routines not running fixes. The workflows and prompts below are our editorial examples, not tested packaged skills.

At a glance#

Skill Routine
Holds Method: steps, rules, output format, approval points Trigger: a schedule or an event for one Bot
Scope One private library shared by all your Bots; up to 200 skills from installed plugins (0.71.2) Owned by one Bot; deleting the Bot deletes its routines
Created by Asking a Bot to save a finished task, or Teach a task (records up to ten minutes of your screen) Asking the owning Bot in chat; edited from that Bot's Routines list
Started by Your request; type / in the desktop composer A schedule, Slack, GitHub, Linear, Sentry or PagerDuty events, email to the Bot (including tagged addresses like name+shop@), webhooks
Limits Demonstrations capture screen only, no microphone audio 50 routines per Bot, 20 recent run records each, schedules ≥5 minutes apart, 300 runs/hour total and 200 per routine (0.75.5)
Testing Run on a second, safe input Test does real work and spends usage

On a Shared Bot (formerly Team Bot), owners and managers can let collaborators create routines since 0.75.2.

Which one do you need?#

Reach for a skill when you keep explaining the same method: classifying a customer question, structuring a research brief, reconciling a weekly export. Reach for a routine when a known trigger should start a job the Bot already understands.

If the method changes every run, a schedule will not make it predictable. It will just make it unpredictable on time.

Example: a competitor-update skill defines which product pages to check, what counts as a meaningful change, and how to cite it. A separate routine asks for that comparison every Monday in your time zone. Keep them apart, because the same skill is useful on demand before a meeting.

Build the skill first#

  1. Do the task once by hand with the Bot and inspect the output.
  2. Pull out the reusable rules, including what a correct empty result looks like.
  3. Run the method on a different input that includes a missing source or ambiguous case.
  4. Save the revised method as a skill.
  5. Decide whether the job is frequent enough to schedule. Many are not.

Paste this once a task has worked, and attach the accepted result so the Bot can separate style preferences from real rules:

Turn the attached accepted result into a reusable skill. Write out:

  • Purpose, in one sentence.

  • Required inputs, including anything that was specific to this example

    and should become a parameter.

  • The method, step by step, with decision rules.

  • Output structure.

  • Acceptance checks a correct result must pass.

  • What to do when a source is empty, missing, stale or contradicts another.

Output stays a draft for my review. Any external change (send, post, buy,

delete) needs my separate approval. Show me the skill plus one new test

input before we schedule anything.

Our workflow brief guide covers writing the outcome and acceptance checks in more depth.

The schedule gate#

Our editorial threshold: three varied inputs that each produce useful output with no extra explanation. That is a practical bar, not a reliability guarantee. Keep the accepted outputs so you can compare future runs against them; our evaluation guide shows how.

Tick all five before turning a routine on:

  • The method is useful even without a schedule.
  • Owner Bot and time zone are explicit, When to run shows what you meant, and the post-save summary names the right recipient.
  • A failed input produces a visible failure, not last week's report recycled.
  • A repeat run has a defined outcome and cannot duplicate a write.
  • Event triggers are narrow: a mention or phrase in one channel, not all of Slack.

Since the October 11 changelog entry (0.69.0 to 0.70.2), the Bot summarizes what a routine does and who gets the result right after you save it. If the summary is wrong, fix it before the first run.

Set the reporting window separately from the run time. A Monday run could cover the last calendar week, the last seven full days, or everything since the last successful run. Pick one explicitly to avoid gaps and double counting.

Timing and cost traps#

  • First run is the next slot, not now. A daily 8:00 routine created at 8:05 first runs tomorrow.
  • Time zone follows Settings. The Timezone setting under Bot auto-detects from the computer you are on unless you set it.
  • Every run costs usage, tests included. Frequent schedules and busy Slack triggers drain the weekly allowance fast; see usage limits.

Approvals when nobody is watching#

Routines run while you are away, so their approval cards can sit unanswered. Cursor's help and the official docs, checked October 29, say approvals raised by routines, triggers or other Bots expire after about 30 minutes and the action does not run. Turn on notifications for routine-owning Bots, or decide ahead of time which narrow actions may proceed without you.

Since 0.68.0, saved approval rules live under Custom Rules in Settings; Always allow on a card adds one. Keep sending, purchasing, deleting and publishing behind Ask first rules, which win when both match. Leave email and Slack draft cards on: 0.64.0 lets you disable drafts per Bot, after which that Bot sends directly. Our permissions guide turns this into a worksheet.

Stop ends a stuck Bot within about 30 seconds since 0.68.1, but Stop is not undo: a Send it interrupts still goes out.

Since 0.75.5, chat-requested emails and Slack messages can go out once Auto-review allows them, but routine sends still wait as drafts. For the Bot's own address, Cursor's help says a routine can read, summarize and draft, with no option for unattended sending. Have routines deliver to chat or a Slack channel instead.

October changes, fault by fault#

Symptom → Fix, based on the changelog and Cursor's routines help as of October 25, 2026:

  • "Automation run rate limit exceeded" → Narrow the trigger and rerun. Limits rose to 300 runs an hour in total (from 100) and 200 per routine in 0.75.5. Over-limit runs are not retried, and a limit shared across all Grok Bot routines can cause this below your own cap, a known issue. Rerun with Test or resend the webhook.
  • Run stalls at a login → Answer in chat. Since 0.71.2 a routine asks you in chat when it needs to sign in, instead of stopping silently. Notifications keep that from sitting unanswered.
  • Connector signed out → Reconnect. Since 0.75.2 the chat shows a Reconnect card, at most once a day. Runs before you reconnect lack that connector.
  • One routine reads every email → Use tagged addresses. Routines can read the Bot's inboxes (0.75.2), and since 0.71.2 a routine on name+shop@ runs only for that tag's mail. Give each mail job its own tag.
  • Webhook returns 200 but nothing shows → Check chat. Since 0.75.2 the routine menu shows the URL and a hidden key, sent as Authorization: Bearer . A 200 means a run started, not finished. Guard the key like a password.
  • Result lost after you messaged mid-run → Nothing to do. Since 0.75.2 results still arrive, and pause/resume keeps your last choice across devices.

Our take#

Most failed automations are skills that were never finished, wrapped in a schedule. Get three clean manual runs, write the acceptance checks down, then add the narrowest trigger that does the job. Keep every send behind a draft, and let routines report to chat rather than act on the world without you.

Frequently asked questions#

What is the difference between a skill and a routine in Grok Bot?#

A skill records how to do a job: the steps, decision rules, expected output and what needs approval. A routine tells one specific Bot when to run a workflow, either on a schedule or after an event such as a Slack message, a GitHub event, an email to the Bot's address or a webhook call. Build and test the skill first, then add the routine.

Why didn't my new routine run right away?#

A new routine does not fire when you create it. It waits for its next scheduled time, so a daily 8:00 routine created at 8:05 first runs the following morning. Schedules also follow the Timezone setting under Bot in Settings, which auto-detects from your current computer unless you choose one. If runs still do not happen, check the routines troubleshooting guide.

Do routines use my weekly allowance?#

Yes. Every routine run uses your weekly Grok Bot allowance, and so does a test run, which performs real work. Cursor's help warns that frequent schedules and Slack triggers on busy channels spend the allowance quickly. Narrow triggers to a mention or phrase in one channel rather than every message.

Can a routine send emails on its own?#

No. Since 0.75.5, emails and Slack messages you request in chat can go out once Auto-review allows them, but sends from routine turns still wait as drafts. Cursor's agent email help says a routine can read, summarize and draft replies, and anything it wants to send waits for you to press Send. Have routines post results to chat or a Slack channel instead.

What happens if a routine hits the hourly limit?#

Since 0.75.5 your routines can run up to 300 times an hour in total and 200 times each. Cursor's help says a run past either limit fails with Automation run rate limit exceeded and is not retried. A limit shared by all Grok Bot routines can trigger the same error below your own limits, a known issue. Rerun with Test or resend the webhook.

Sources & Further Reading#

  1. Grok Bot docs: skills, routines and automations
  2. Cursor help: Grok Bot routines (hourly run limits, webhooks)
  3. Cursor help: give your Bot an email address
  4. Cursor help: how-tos (approval expiry)
  5. Grok Bot changelog
  6. Grok Bot changelog: 0.71.2 (October 14)
  7. Grok Bot changelog: 0.75.2 (October 22)
  8. Grok Bot changelog: 0.75.5 (October 23)