Skip to main content

How triggers work

A trigger files a task each time an event arrives, so work starts the moment something happens elsewhere: a new issue in GitHub, a message to a support mailbox, a mention in Slack. Triggers live under Automation, on the Triggers tab beside Schedule and Playbooks. Only your organization's Owners and Admins see that tab.

A trigger answers to events; a schedule answers to the clock. Both file ordinary tasks into one project, run by the persona the trigger names.

Sourcesโ€‹

Each trigger listens to one Source, chosen when it is created and fixed after:

SourceFiles a task when
WebhookAnother system calls the trigger's Payload URL, authenticated with its Secret.
GitHubA repository sends one of the Events the trigger is set to. Its Setup section says what to enter in GitHub.
EmailAn email reaches Jaah whose To, From or Subject matches the trigger.
SlackSomeone in your organization mentions Jaah in a channel the trigger covers.

A task a trigger filed shows that source on its task page, with the trigger's name.

What happens to each deliveryโ€‹

Every event a trigger receives is a delivery, listed under Deliveries on the trigger's page with its outcome. In order, Jaah:

  1. Skips it if the trigger is Paused or Failed.
  2. Checks that the trigger's owner may still create and run tasks in the project. The task is filed as that owner, so if they lose that access the trigger stops.
  3. Runs the Preflight, if one is set: a Script from the project's repository or a Model prompt that decides whether to file a task at all, or splits one event into several items.
  4. Drops a repeat of an event it has already filed (Duplicate).
  5. Drops it (Rate capped) when the Rate limit per hour is reached. While the Concurrency cap of open tasks is full it queues it, and skips it once the Queue depth is full.
  6. Fills in the Title template and Prompt template from the event, and files the task (Dispatched).

Healthโ€‹

HealthMeans
ActiveReceiving and filing normally.
DegradedStill filing, but recent deliveries failed, or a filed task cost more than the trigger's budget.
FailedJaah stopped it: too many failures in a row (Pause after consecutive failures), no successful run for Pause after idle days, or its owner lost access.
PausedSomeone selected Pause.

When a trigger goes Failed, its owner is told in the notifications bell and by email, with the reason. Resume starts a Paused or Failed trigger again and clears its failure count. Owners also get a daily digest of their triggers.