Automations

An automation is an instruction your agent carries out on its own: when the time comes, or when something happens, it does the job once. For example "every Monday morning, roll up the watches I follow into a weekly document" or "whenever this watch publishes a brief, pull out what it says about mass production". Each run is a conversation, just like one you started yourself: you can see what happened, open what it produced and undo it. These conversations are not in the sidebar's conversation list: open them from Updates below, or from "Open its conversation" in the card menu.

How it differs from a watch

  • A watch produces a brief that you read and others can follow, through a fixed daily process of fetching, de-duplicating and writing;
  • An automation does one thing when its moment comes. What it does is up to your instruction, and it can use watches as input.

To keep up with a field, use a watch. To have your agent do something for you when the time comes, use an automation.

Creating one

Open Automations in the sidebar and select New automation (the first time, Get started). There are three ways to begin, and all of them make the same thing:

  • Schedule: runs at a time you choose. Pick how often (every hour, every day, every week, every month, or once) and write one sentence on what to do. The default is every day at 10:00 AM, so that sentence is all it takes.

  • Trigger: starts when something happens. Pick what starts it (a watch, a feed, mail to your Agent's address, a webhook, or an app you have connected), then which event, and add conditions if you need them. Everything you can pick is listed under "What can start it" below.

  • Describe it: say in your own words when to act and what to do, and waper drafts it for you to review, adjust and create. Drafting costs no credits. When no event fits exactly but your agent can check the condition itself (say, whether the price on a web page changed), the draft checks every hour and reports only when the condition holds, and the form says so.

    Something your agent can neither see nor do doesn't get a draft that only looks like it works. Take "if my fridge is empty, order milk for me": it can't see your fridge and can't place an order. The sentence you wrote stays in the box, one line below says what it can't do, and there is nothing to create; rewrite the sentence, or start from "Schedule" or "Trigger" below.

You can also say it in a conversation, for example "every Friday at 5 pm, turn what I saved to the library this week into a document". Choose Set up an automation under + in the input box and your agent sets it up directly; in a plain input box you first get a "Here's how I can help" card to choose how to go about it, and after you pick "Make it an automation" it is set up directly too. Afterwards the conversation shows a card that says when it runs and where results go (the sentences are written the same way as on the Manage page, by waper from what was set up, not retold by your agent), with Undo beside it and an "Open in Automations" link. If it was a mistake, select Undo and it is gone.

Under the form you'll find Suggestions: each card reads "what starts it → what your agent does". Select one to put it in the description box, make it yours and draft it; routines that come with an app can be turned on directly. When the app it needs is not connected yet, see "An app that is not connected" under "What can start it" below.

What an automation is made of

  • Instruction: what to do on each run. Nobody is there to answer questions during a run, so say what to look at and what the result should look like.
  • When it runs: one to five triggers; any one of them starts a run.
    • At a time: every hour, every day, certain days of the week, a day of the month, or once, with times in 15-minute steps; runs are at least an hour apart. The time zone is the one your account used when it was made: if you change your account's time zone later, it keeps running in the original one. The card's sentence names the zone when the two differ (for example "Once, on Oct 20 at 10:00 AM, China Standard Time"), while "Next run" and the calendar show your account's current zone, so they read as the same moment. When you edit it, the line under it says which zone it uses and offers Use my time zone: the time and the date stay the same, and from then on they count in your current zone.
    • When something happens: see "What can start it" below.
  • Only if (optional, for event triggers): conditions on what the event contains, such as "the brief's entries contain 'mass production'", "more than 5 entries", "the sender contains acme.com" or "has an attachment". Conditions in one group must all hold; any one group is enough; up to 5 groups of 5 conditions each; at the limit, the "And" and "Add an “or” group" buttons turn grey with the reason beside them ("Up to 5 conditions in a group. Add an “or” group for more."). A time you enter in a condition is read in your account's time zone too.
  • Where the result goes: there is always an entry in your inbox (see Inbox and approvals). It can also email you, write to a document, message you on Telegram, or post to Slack. "A document" is the automation's own document: one it keeps adding to when runs share a conversation, a new document for each run otherwise. Telegram has to be linked first under "Where to reach it" on the Agent page, and Slack connected first in Plugins. When your agent sets up or edits an automation in a conversation, it asks once before posting to a channel other people can see; when you set it in the form, it doesn't ask again.
  • A new conversation each time, or always the same one: with the same conversation, each run continues from the last and a saved document keeps growing in one place, which suits a running log.
  • Whether it asks first: see "Does a run ask before acting" below.
  • Ends on (optional): the automation stops by itself at the end of that day in your account's time zone and tells you in the inbox. The end date can't be before the first run: for a one-time automation, an end date before its only run can't be saved, and the field says "This ends before its only run on Oct 20"; for a repeating one, an end date before the next run is refused the same way. Automations with an event trigger aren't checked, since an event can come at any time.

What can start it

Besides a time, a run can start when one of these happens. Some start the moment it happens; for others waper looks every so often, so the run comes a little later.

What starts it Which event How fast What you give
A watch A new brief is published; an alert you set is met Checked about every 15 minutes Pick a watch (you start following it; alerts only exist on watches you created)
A feed A site or feed publishes something new Depends on how often it publishes: checked every half hour to twice a day The address of the site or its feed
Agent's mailbox You send or forward an email to your Agent's address At once Nothing; you can copy the address in the form
A webhook Another system sends a request to a private address At once Nothing; you get the address once it is created
Gmail, Outlook A new email arrives By plan: checked about every 60 minutes on Free, 30 on Personal, 15 on Pro Connect the app first
Google Calendar An event is about to start (how long before follows how often it is checked: about a quarter to half an hour on Pro, up to 45 minutes on Personal, an hour or more on Free) Same Connect first
GitHub Your review is requested, you are mentioned, something is assigned to you, a repository you watch publishes a release, or any notification Same Connect first
Notion A page you shared with waper is created or edited Same Connect first

Using several apps as triggers makes each one checked less often: on Free, about every two hours each with two apps; on Pro, about every half hour each with two apps; on Personal and Pro, about every 45 minutes each with three. The line in the form shows your actual interval.

An app that is not connected. In the source grid of a trigger, or on a suggestion card, selecting an app that isn't connected yet doesn't send you straight to its sign-in. A panel opens first: it says which events you can use once the app is connected (on a suggestion card, its trigger and action sentences), with one main button "Connect Gmail" (the app's name follows) and a quiet "Not now". Only the button takes you to connect, and when you finish you land back where you were: the source grid returns to "Pick what starts it" stopped on that app's events; a suggestion card returns to the new-automation screen, where the panel opens again with the main button now saying "Turn on". When you've already filled in the form, connecting opens in a new tab so what you filled in stays.

The ones that are checked every so often can be late but do not skip anything: each check carries on from where the last one stopped. Only two cases leave something unfetched, and each leaves a note under Updates for that automation:

  • An app stays disconnected for more than a day. While it is disconnected the automation shows up under "Needs you"; once you reconnect it carries on by itself, going back one day. Older items are not fetched, and the note says for how many days it could not be checked.
  • Too much arrives between two checks (over a hundred emails at once, say). The newest are handled as usual; the older part in between is not fetched.

Mail to your Agent's address. The rule for who may write stays the same: only mail from the email you signed up with is accepted, and mail from anyone else is refused. Add conditions to choose which mail belongs to this automation (the subject contains "invoice", say). Mail that meets them starts a run instead of an email conversation, and you get no reply by email: the result goes wherever this automation sends its results. Without conditions, every email the address receives goes to this automation, and you can no longer talk to your agent by email, so you will usually want conditions. Attachments themselves are not kept; the agent gets the subject, the text and the attachment names. The address handles at most 30 emails a day per account, up to 2 MB each, and ignores automatic replies.

Webhooks. Once the automation is created, its card shows a private address with a copy button. Each POST to it starts a run, and the request body is what the agent gets to work with:

curl -X POST -H "Content-Type: application/json" \
  -d '{"build":"failed","branch":"main"}' \
  "<the address copied from the card>"
  • The address contains a secret, and anyone who has it can start a run: do not post it anywhere public. If it leaks, remove the trigger and add a new one to get a new address.
  • The body can be up to 64 KB and must not be compressed. The answer is 202 when it was taken, 404 when the address is wrong or the automation was deleted, 413 when the body is too large, 415 when it is compressed (sent with Content-Encoding), and 429 when there are too many requests (60 an hour for one address, 300 a day for one account). The answer has no body.
  • While the automation is paused, a request is still answered with 202, but it is dropped and nothing runs: what happens during a pause is not made up for later, and that is the same for every source. This way a sender such as GitHub does not disable the address after a string of 404 answers.
  • Sending the same request again does not run it twice: with an Idempotency-Key header, requests are told apart by it (Webhook-Id, X-GitHub-Delivery and X-Delivery-Id headers work too); without one, the same body counts once for five minutes from the first time it arrived.
  • To the agent the body is outside content, and nothing written in it can give the agent orders (see "Does a run ask before acting" below).

Most of these are right there in the form. Whether it asks first (the choices are "Ask me" and "Run without asking"), a new conversation or the same one, which knowledge base (only shown when you have more than one), where results go and the end date are under the slider icon in the form's toolbar (hover it to see Automation settings). To change any of them later, edit the automation on the Automations page or tell your agent in a conversation.

The Automations page

Once you have an automation, the page has two tabs.

Updates lists every recent run by day: which automation, when, how it went (running, done, nothing to report, needs you, did not finish, skipped), one line on the result, and what started it. Select a run to open its conversation. Under each run a line says where its result also went (for example "Sent to: inbox, email") and, for anything that did not go out, one sentence with the reason (for example "Telegram did not go out: it is not linked"). There are four reasons: it is not linked, it is not connected, your account has no email address, sending failed. A run that went only to the inbox says nothing. Switch to Calendar at the top right to see past runs and upcoming scheduled ones on the same month; open a busy day to see all of it. Dates on the page leave the year out for this year and show it for any other year (for example "Jun 1, 2035").

Manage shows each automation as a card: what starts it, its state, its name, the instruction and the next run. The ⋯ menu at the top right of the card lets you:

  • Pause or Resume it;
  • Test run: run it once now to see what it does. Only one runs at a time: while a run of this automation is still in progress, another click does not start a second one and gives you the run already in progress (a double click, or two tabs at once, included). It is charged like any run and doesn't count toward the daily limit. An automation with only event triggers uses the most recent real event; if nothing has happened yet it runs on a sample event that says it is a sample, so you can see what it does right after creating it;
  • Open its conversation (once it has run);
  • Edit: the same form you created it with;
  • Delete: if that was a mistake, select Undo in the message that follows.

The built-in routines of apps you turned on (such as the daily GitHub brief) are listed here too, where you can pause and resume them. Change their settings on that app's page in Plugins.

Anything that needs your attention sits at the top with the button that fixes it: a run stopped to ask you something (open it to decide); the watch a trigger points at is gone or an app was disconnected (edit, or reconnect); it was paused after runs in a row did not finish (test run, then resume); a destination isn't linked (edit). Once fixed, the automation carries on by itself.

Does a run ask before acting

By default it follows the same rules as a conversation, with a little more care because you aren't there: reading, searching, creating documents, saving items and doing research just happen. When your agent wants to change content you already have, delete something, send to a new destination or run a command on your computer, the run stops and waits for you, and you get a notification.

Two things always wait for you during a run, whatever the setting:

  • Changing what happens later: creating, editing, pausing or resuming an automation (including adding a destination to itself or switching itself to run without asking), saving a skill, creating a watch, adding to your agent's memory. A run nobody is watching does not decide what runs next.
  • Acting on the outside after reading outside content: once a run has read outside content (the brief, alert, article, email or webhook request that started it, a web page, data from an app, something other people wrote), everything except reading and its own new output (new documents, saved items, research reports, transcripts) waits for you: writing to a connected app, changing files on your computer, sending, running commands. "Don't ask again for this" doesn't apply then. A sentence on a web page or in an email can't get an unwatched run to send things or touch your computer on its behalf.

Results go only to the destinations that were set when the run started.

If you set an automation to Runs without asking, it no longer stops to change your existing documents and library items (every change can still be undone). The two things above still wait for you, and so do:

  • deleting anything;
  • the first time it sends somewhere, and the first time it runs a kind of command on a computer (unless you ticked "Don't ask again for this" when you approved, and the run has read no outside content);
  • spending more than a run is allowed to.

More rules for runs

  • Nothing to report means no interruption. When the instruction has a condition ("tell me only if the price drops below 50") and it isn't met this time, the run ends quietly: no notification, nothing sent to your destinations, just a line in the run history.
  • It remembers what it saw last time. An automation can leave notes for its next run (for example "price on 7 October: 49"), so "tell me only when it changed" works.
  • Events are handled together. Mail and webhook requests start a run as they arrive; everything else is handled every 15 minutes, and several events arriving in that window are handled in one run. A run takes up to 20, oldest first, and the next run carries on with the rest, so none is missed.
  • An automation runs at most 24 times a day (a day is a UTC calendar day; test runs don't count). Past that, timed runs are skipped and waiting events are kept for the next day and handled together.
  • Credits: 40 credits are reserved before each run and settled at the actual usage afterwards. One run uses at most 100 credits, and the research and transcription it starts count toward that: when one more would go over, it asks you first, and close to the limit it wraps up and hands over what it has finished.
  • A run that didn't work is tried again. When a run doesn't work (not enough credits, the model is briefly unavailable), what started it is kept: a one-time schedule and the waiting events stay, and the next check runs them again under the same entry in the run history. A run you stopped yourself is not repeated.
  • After 3 runs in a row that didn't work, it pauses itself and tells you in the inbox. A successful test run turns it back on. After that, a one-off whose time has not passed runs. A repeating one continues from its next time and does not make up runs missed while it was paused. Events that happened while it was paused are not run again.
  • It can use your computer too. If the computer it needs is offline, the run waits, checking about every 15 minutes, for up to 6 hours, then runs anyway and says the computer was offline. See Your computers.

How many

Automations let your agent finish a job for you on a schedule or when something happens. Free lets you set up 3, Personal 20 and Pro 50 (built-in app routines don't count). The bottom of Manage shows "x of y automations in use"; at the limit, New automation first explains what upgrading adds. See Plans & credits.