Blocks

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

The watch trigger's Inspector 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 (name for tags, id for 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.