Work that runs without you
Anyone can run it from chat. The answer comes back in a thread.
There is a category of work that is not hard, not interesting, and not optional: the Monday digest, the stale-ticket sweep, the check that nobody merged anything on Friday afternoon without a review. It gets done for three weeks and then it does not.
A routine is a standing instruction that runs without anybody remembering it. It is one of the few places where an AI teammate is unambiguously better than a person - not because it is cleverer, but because it never gets bored.
What one is made of
An admin creates one from Routines in the sidebar. Five fields, and that is all:
- What it should do - the instruction, written as you would write it to a teammate.
- Runs as - which AI teammate, or the workspace’s main one.
- Reports to - a channel, or nowhere. “Nowhere” is for a routine that is a step in something else rather than a message to people.
- Cadence - weekdays, daily, weekly, hourly, every N minutes (fifteen is the floor), or only when triggered. Times are local wall-clock times in the routine’s own timezone, so 09:00 stays 09:00 through a daylight-saving change.
- Workspace context - everything, a trimmed digest, or none. This is the one that decides what a routine costs, and a surprising number of them need far less than everything.
Weekly digest /weekly-digest
Every routine is also a slash command
A routine called “Weekly digest” answers to /weekly-digest in the composer, for anyone
on the team, and the answer comes back in a thread under the command. The name is derived from the
routine’s, so renaming one renames its command and the two can never disagree.
Running it from chat is not a scheduled run: it borrows the routine’s instruction, agent, model and context, posts only in that thread, and leaves the clock, the run history and the failure count exactly where they were. Which makes the slash form the natural way to test one - and the reason to write a routine even for something you only want occasionally.
Five that earn their place
- Monday digest, 09:00, to #general. “Post what shipped last week, what is stuck, and who is waiting on whom.” The one everybody builds first, and rightly.
- Stale sweep, weekly. “Find tasks in progress with no activity for ten days. Comment on each one asking the assignee whether it is still live.” Not a report about the problem - the nudge itself.
- Backlog hygiene, weekly, reports nowhere. “Look for duplicates and tickets that no longer make sense; leave a comment on each rather than closing anything.” A routine that changes things should almost always propose rather than decide.
- Docs check, weekly. “Read the pages under Runbooks against the last month of commits and flag the ones that now describe something we no longer do.”
- Support digest, daily. “Group yesterday’s #support messages by theme and post the three biggest, with links.”
Routines
Writing one that does not drift
Say what to post as well as what to look at. “Summarise the week” produces an essay; “post at most eight bullets, newest first, each naming a person and a task code” produces something people read. Name the surfaces: “read #ship and the tasks moved to Done”, not “review recent activity”.
And pick the smallest context it can do the job with. A routine that reads the whole workspace every hour is the most expensive thing a team can leave running, and usually the trimmed digest was enough.
A routine that fails three times in a row switches itself off, and its page says so. That is deliberate: a broken routine that keeps trying is both noise and money, and the state you want it in is off, visibly, rather than quietly failing at dawn.
Stale sweep Paused Resume
3 failed runs in a row. Three switches it off - check the instruction below.
Triggered rather than scheduled
A routine with no clock runs only when something wakes it: a POST to its own webhook address, another routine’s run, or an admin pressing Run now. That is how routines chain - one gathers, the next writes it up - and how something outside WeMachines can start one when a deploy finishes or a form is submitted. The webhook lives on the routine’s own page, where its history, its next run and its settings are.
What to do with the ones nobody reads
Delete them. The failure mode of routines is a channel full of automated posts everyone scrolls past, which is worse than no routine at all - it teaches the team that the workspace’s messages are not worth reading. If a digest has gone unanswered for a month, either it is asking the wrong question or it should be a page the AI keeps up to date instead of a post.