Routines
A routine is work an agent does on its own: on a schedule (“every weekday at 09:00”) or when an outside service calls its webhook. Each agent has its own routines (up to 50), in the Routines tab of the right panel.

You can create a routine from the tab, or just ask the agent in chat (“Every Monday at 8:30, check … and tell me what changed”): it creates the routine and shows a card for it.
Create a routine
Section titled “Create a routine”Press New routine:
- Name (up to 80 characters, unique for this agent) and Instruction: what to do each time, and what to end with (up to 4,000 characters).
- Skill (optional): a skill the agent follows on every run.
- Starts: Schedule or Webhook.
For a schedule, pick When: every 5–30 minutes, every 1–12 hours, Daily at a time on the weekdays you tick, or a Custom cron expression, and a Time zone (yours by default). The line under the form reads the schedule back in words with its next three times, or says what is wrong.

- Cron expressions have 5 fields: minute, hour, day of month, month, day of week (0 = Sunday). Nicknames such as
@dailyand a seconds field are not accepted. - Runs must be at least 5 minutes apart.
- A new routine waits for its first scheduled time. Use Test to run it now.
- The time zone is copied into the routine: changing your own time zone later does not move it.
A routine’s page
Section titled “A routine’s page”Click a routine to see its instruction, skill, when it runs, its run history, and Pause/Resume, Test, Edit and Delete.

- Pause stops it; runs waiting to start are skipped. Resume runs it next at its next time from now: runs missed while paused are not made up. The switch in the list does the same.
- Edit saves only what you changed; a new schedule takes effect from now.
- Delete asks “Delete routine name? This can’t be undone.” and removes its history too.
- Run history shows the latest 20 runs with their status (queued, running, waiting for you, succeeded, failed, stopped, out of budget, expired, skipped and why), their cost and Open transcript.
Test a routine
Section titled “Test a routine”Test runs the routine now, even while it is paused. A test run does real work: it can browse, change files and use your connected apps, and actions that need approval still ask you. A webhook routine’s test can carry an input, handled like a webhook body.

The run happens in the agent’s chat: it starts from a Routine name block (an outside input is folded under Input), and the history records it.

Unattended runs
Section titled “Unattended runs”Schedule and webhook runs are unattended: nobody is expected to watch.
- What such a run waits on (an approval, a credential, an Action needed) expires after 60 minutes. The card says when (“Expires at 10:42 — this routine runs without you”), and the “needs you” email says by when you must answer. Then the routine run ends expired.
- A routine run never mixes with your chat. A message you send while it works is not read by it: a line under your message says so (“Ada is running a routine; it will read this when that run ends”), and your message gets its own run as soon as the routine run ends.
- When the agent is busy, a routine waits: Queued — waiting for Ada to finish. A scheduled run whose previous run is still going is skipped; webhook calls queue (at most 10).
- A routine’s own run has no routine tools: an outside input can never create, change or resume your routines.
- A routine run only raises a browser notification when it fails or runs out of budget.
Paused while you were away
Section titled “Paused while you were away”If you don’t use Felix for 30 days, your enabled routines are paused and you get one email, “Your Felix routines are paused”. A banner at the top of every page then names them, with Resume all.
Daylight saving time
Section titled “Daylight saving time”Schedules follow the clock of their zone. A time that doesn’t exist on the spring-forward day runs at the first valid
time after it. On the fall-back night, a schedule with explicit times (30 2 * * *) runs once, while one using *,
/ or - in its minute or hour (*/15 * * * *) runs in both passes through the repeated hour.