Starting an AI Employee Automatically with Triggers
By default, an AI Employee only runs when someone opens it and starts it by hand. Add a trigger when a run shouldn't depend on someone remembering to start it — a recurring report, a reply that has to go out within minutes of a ticket landing, or a backlog that needs picking up as records show up in another system.
Three kinds of trigger are set up in the builder, and they differ in one thing: what starts the run.
- A scheduled trigger runs on a clock you set.
- A webhook trigger runs when another system tells Ema that something happened.
- A poll trigger runs when Ema checks another system and finds something new.
This page helps you pick the right one. Each kind then has a guide of its own.
Triggers need a Dashboard AI Employee. All three kinds work on Dashboard AI Employees only — Chat and Voice AI Employees cannot be started this way. If yours isn't a Dashboard AI Employee, start with Creating a Dashboard AI Employee.
Which trigger do I need?
Start from what you already know about when the work should happen.
You know when it should run. "Every Monday at 9am." "Every night." "Once an hour." Nothing needs to happen elsewhere first — the time itself is the reason to run. That's a scheduled trigger. What the workflow does once it starts is a separate matter: the first Agent might fetch data from another app, or the whole thing might never leave Ema. Both are ordinary.
Something happens elsewhere and you want to react straight away. A ticket is raised, a form is submitted, a deal closes — and waiting even a few minutes is too slow. This works only if the other system can send messages out when things happen. That's a webhook trigger, and it's the only kind that reacts immediately.
Something happens elsewhere, but that system can't tell you. Plenty of systems have no way to notify you when something changes. Ema can check them on a rhythm instead, and start a separate run for each new thing it finds. That's a poll trigger.
Not sure whether the other system can send webhooks? Look in its settings for "Webhooks", "Outgoing webhooks", or "Notifications". If there's nothing like that, a poll trigger is your answer.
Comparing the three
| Scheduled | Webhook | Poll | |
|---|---|---|---|
| What starts it | A clock you set | The other system, sending to Ema | Ema checking the other system |
| How fast it reacts | At the next scheduled time — 15 minutes apart at the closest | Immediately | At the next check — 5 minutes apart at the closest |
| Runs it produces | One per firing, using the inputs you saved on the schedule | One per message received | One per item, if you set it up that way |
| Keeps track of what's new | No — your workflow does that itself | The sending system decides what to send | Yes, if you choose to |
| Can fetch external data | Yes, using Tools | Yes | Yes |
| Needs from the other system | Nothing | It must be able to send outgoing webhooks | An API Ema can read |
| Set up before you begin | Nothing | Admin access to the sending system, and its signing documentation | A working connection to the app, already set up in Integrations |
Scheduled triggers
A scheduled trigger runs your AI Employee on a repeating cadence — every 15 minutes, every Tuesday at 6pm, the first of the month. You pick the pattern from a list of common ones, or write your own timing if you need something unusual. You also choose a time zone, so "9am" means 9am where your team actually is.
Each firing produces one run, using the inputs you saved on the schedule. Those are mostly fixed values, but you can also drop in the date or time of the firing itself, so a daily schedule can tell your workflow which day it's running for. One AI Employee can have several schedules at once — a quick hourly check and a fuller weekly pass, for example — and they don't block each other.
Webhook triggers
A webhook trigger gives you a URL. When another system sends a message to that URL, your AI Employee starts running — there's no clock to wait for and no check to come round. It's the only trigger that reacts the moment something happens, so it's the right choice whenever a delay actually costs something.
The trade-off is that setup is a two-sided job. Ema gives you a URL and a secret; someone with access to the other system has to paste them in and configure it to send. You'll also decide how Ema checks that incoming messages genuinely come from that system, rather than from somebody who guessed your URL.
Poll triggers
A poll trigger is for systems that can't call you. On a rhythm you choose — anywhere from every 5 minutes to once a week — Ema runs a short script that fetches from the other system.
What happens to the results is then up to how you set it up. The usual choice, and the reason most people reach for polling, is one run per item with Ema keeping track of what it has already seen: a batch of forty new records becomes forty runs rather than one run holding a pile of data, and the same record doesn't get handled twice. It also copes with downtime — when a paused trigger is switched back on, it can catch up on what it missed.
What every trigger shares
Whichever kind you choose, these things work the same way.
Publish first. A trigger can't start anything until the AI Employee has been published at least once, and it runs your published work rather than your drafts — so saving a draft changes nothing about what fires. See Build your first workflow.
Every run happens as somebody. Nobody is present when a trigger fires, but the run still needs permissions to do its work. So every trigger carries a Runs as user, and the run is checked against that person's access. If they leave, you don't rebuild the trigger: an administrator reassigns Runs as and it carries on.
Turning it off isn't the same as deleting it. Every trigger can be disabled and left in place, keeping its settings and its history. Use that when pausing something temporarily — deleting and rebuilding loses the setup, and for a webhook it means handing the other system a new URL.
Autopilot can set up any of the three. Instead of working through the forms yourself, describe what you want in plain language — "run this every weekday at 8am", "start this whenever a ticket is raised" — and Autopilot creates the trigger for you. It can't invent the things only the other system knows, though, such as how that system signs its messages or how to ask it what changed, so on webhook and poll triggers you'll still finish those parts yourself.
Trigger runs are ordinary dashboard rows. Every run has one origin — either a person started it or a trigger did, never both. But a trigger's run isn't filed away anywhere separate: it appears as a regular row on the AI Employee's dashboard, in the same table and the same shape as any other, so there's one place to review everything. Webhook and poll triggers additionally keep a delivery log — a record of every message received or check performed, and what came of it.
What's next
- Scheduled triggers — recurrence patterns, time zones, and what to check when a schedule doesn't fire.
- Webhook triggers — the URL and secret, verifying senders, testing, and monitoring deliveries.
- Poll triggers — the fetch script, one run per item, intervals, and catching up after downtime.
- Creating a Dashboard AI Employee — the type all three triggers require.
- Triggering AI Employees — the API behind these, plus the other ways a run can start.