Create a routine
routines_createCreate a zv1 routine: a natural-language instruction run on a schedule ("scan for new competitors and propose a Compass page for each"). The instruction is executed by zv1 with full workspace context, and any writes it attempts during a run are proposed for human approval. Use when the user asks for recurring work ("every day…", "each Monday…"). Write the instruction in second person, as a directive to a future zv1. To run a SPECIFIC built Workbench flow on a schedule, use workbench_flows_schedule instead — a routine runs a free-form instruction, not a flow, so scheduling a flow as a routine makes zv1 re-derive and run it conversationally rather than executing the flow deterministically.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Short display name. | |
| roomId | No | With delivery "room": the room to post in (rooms_list gives ids). | |
| actsFor | No | Visibility: "workspace" (everyone sees it) or "personal" (just the owner). Default workspace. | |
| delivery | No | Where each run's briefing lands (default notification). "room" posts it in a team room for everyone there; pass roomId. The user must be in the room if it's private, and a "personal" routine can post only in a private room. Use it when the user names a room ("…and post it in #claims") or asks from inside one for the room. | |
| interval | Yes | ||
| workspace | No | Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys. | |
| approvalId | No | Approval id from a prior needs_confirmation envelope. | |
| instruction | Yes | What to do on each run, as a directive. | |
| scheduleTime | No | Wall-clock "HH:MM" anchor (default 09:00). | |
| scheduleTimezone | No | IANA timezone for the anchor (default UTC). | |
| scheduleDayOfWeek | No | Weekly only: 0=Sunday … 6=Saturday (default Monday). |