Skip to main content
The Trigger node decides when a refinery runs. Four kinds: Schedule, Watch, Webhook, API. Regardless of the trigger, the canvas [Run] button or the CLI (nora pipelines) can kick off a run anytime.
Schedule Trigger settings showing cadence, time, timezone, and a Seed input

Schedule

Runs at set times.
  • Preset: pick from daily / weekly / monthly / yearly, then time and interval.
  • Custom cron: write a 5-field cron. 0 9 * * 1 is every Monday at 09:00.
  • Timezone: defaults to UTC. Switch to Asia/Seoul for Korea time.
After you set it, the inspector shows the schedule in plain language (“Runs every day at 09:00 (UTC).”). A Seed input (optional) is passed as user_input on every run. Same field as in Workflow. Use it for per-run inputs like an RSS URL.

Watch

Watches a connected source and runs when something changes. Good for keeping knowledge in sync with a folder as new documents land.
  • Trigger on: New file, New or modified file, or Any change (including deletes).
  • Debounce: default 5 seconds. If several files arrive at once, they’re batched into a single run instead of one run per file.
Watch only supports file-shaped sources: File (Nora Library) · Cloud Source (Google Drive, etc.) · Local Filesystem. Database, Web, Object, and Stream sources cannot be watched. Attach a Schedule trigger for periodic polling instead.

Webhook

Turns the refinery into an HTTP endpoint. Any system that can POST JSON can trigger a run. Handy when your CMS, ticketing, or CI already produces webhooks.
  • Endpoint: the POST URL built from the webhook slug. Copy from the inspector.
  • Auth: header-token style. Default header is X-Webhook-Token; hit [Generate token] to have the server mint a random token. Send it on that header when calling.
  • Body mapping: after the first POST arrives, hit [Refresh] to see the body. Click fields to map them to input, image, audio, Thread ID, or User ID.

API

For calling from your own code. Where Webhook receives events from external systems, API is where your service directly invokes the refinery.
  • Endpoint: POST to …/api/v1/<workspace>/foundry/<slug>.
  • Body: input (object), variables (object), idempotency_key (string).
  • Auth: header token, default header Authorization. Token generation is the same as Webhook.

Trigger kinds and graph rules

Trigger nodes split into two families, and each family drives different graph requirements.
  • Payload triggers (Webhook · API): the caller hands the body in, so the trigger is the input. No Source node needed and no Output node needed either; the result is returned inline in the response body. Right for validation / notification / compute pipelines that just calculate a value and hand it back.
  • Signal triggers (Schedule · Watch): these only say when, so a Source node has to read the real data. Saving without a Source errors out, and because the run has to persist somewhere, at least one Output node is required too.
If a pipeline mixes both families, the Signal rules win. A Source and an Output are still required.

Common settings

The Advanced tab on any Trigger node exposes retry count, backoff, timeout, and the raw JSON. Locking the node blocks edits via MCP or CLI.