Grok BotTips
Start a routine from any app with a webhook
Any system that can send an HTTP POST can start a Bot's routine, and its JSON body reaches the Bot.
Update, Oct 9: Staff said where the webhook fields live on desktop now, and that the phone apps don't show them yet. Step 2 is updated and the re-check note is cleared.
You can have a form, a CI job, or a script start a Grok Bot routine by calling its webhook, and the Bot reads the JSON you send, per Cursor's help center and the changelog.
Why it matters#
A schedule runs whether or not there's work. A webhook runs only when something happened. The changelog says webhook routines "receive the request body, so your Bot can act on what was sent."
How to use it#
- Ask the Bot to add a webhook trigger to the routine, as the help center describes.
- On the desktop app, open the routine from the chip on the Created routine line in the chat where the Bot made it. Click each field (the URL, the key, and the Authorization header) to copy it, staff said.
- Send a POST with that header and an optional JSON body.
- Read the result in the Bot's chat.
curl -X POST "<POST to URL>" \
-H "Authorization: Bearer <key>" \
-H "Content-Type: application/json" \
-d '{"order_id": "1042"}'
Good to know#
- A 200 means the run started, not that it finished. Any other code means no run. Check that the routine isn't paused and the key is current.
- Treat the key like a password.
- The phone apps don't show the webhook URL, key, or header yet, on Android or iOS, staff said on Oct 9. Tapping grokbot:// links to those fields in a chat does nothing on the phone. Both are on the team's list, with no date.
- Webhook triggers shipped Aug 19 in 0.21.0. Request bodies followed Aug 25.
- Tried it: We haven't called a live routine webhook. We don't have a routine URL and key to test against, so the request above is the shape the help center describes, with placeholders.
Sources#
Steps
- Ask the Bot to add a webhook trigger to the routine.
- On desktop, open the routine from the chip on the Created routine line in the chat, then click each webhook field to copy it.
- Send a POST with that header and an optional JSON body.
- Read the result in the Bot's chat.


