Watch
The watch trigger: poll a connected app's list operation on a schedule, remember what's been seen, and fire the workflow once per NEW item.
Watch is schedule + memory: it polls a connected app's list operation and fires once per new item — the "new GitHub tag", "new Airtable row", "new anything" trigger.
When it runs
On the cron, the poll runs; each item not seen before (by your dedup key) fires one workflow run with that item as the payload. The first poll establishes a baseline — it marks existing items seen without firing, so connecting a source with 500 historical rows doesn't unleash 500 runs.
Config
A connected app, one of its list operations, the dedup key, and a cron.
- Connection + operation — pick a connected provider and one of its list/search operations (something that returns a list, not a mutation).
- Args — the operation's own inputs (owner/repo, base id, …).
- Dedup key — the field that uniquely identifies an item
(
namefor tags,idfor rows). This is what "new" means. - Cron — how often to poll.
Output
The new item itself — flat, exactly as the provider returned it.
A GitHub tag fires { "name": "v2.1.0", "commit": {…} } → reference
{{ payload.name }}.
Patterns
- Dependency watcher — watch a repo's tags → open a bump PR per new release.
- Row processor — watch a table → enrich/notify per new record.
Gotchas
- List order isn't newest-first on every API (GitHub tags famously aren't) — treat "the new item" as an item, not the latest; compare versions explicitly when order matters.
- An on-demand run (the run button) processes the most recent item for testing — the cron remains the real driver.