← Back to outline
OUPI Studio Mastery: From Quick Missions to Autonomous Workflows · Lesson 6 of 8

6. Triggers and Listeners: Event-Driven Work

Set up watchers on connected sources and locked webhook URLs with conditions and a daily credit safety cap, so @oupi reacts to real-world events automatically.

Triggers and listeners let @oupi react to real-world events instead of running on a fixed clock. There are two flavors:

Watchers — monitors that periodically check a connected source (email, a tool, a data feed) and fire only when your conditions are met. For example: "When a new support ticket is tagged urgent, draft a response."

Locked webhook URLs — unique endpoints you give to an external app so it can call OUPI directly when something happens (a form submission, a CI pipeline event, a CRM update).

Every trigger is attached to a durable task, which means each run inherits the project's context, files, and history — nothing starts from scratch. You can view the full run history of any trigger from the same place you manage it.

Conditions and the daily credit safety cap

Each trigger carries conditions that act as a filter: the event must match your rules before @oupi spends any effort. This prevents noisy sources from launching dozens of useless missions.

On top of conditions, every trigger has an optional daily credit cap. If an event storm hits — say, 200 webhook calls in an hour — the cap stops new runs once the day's credit budget is reached. This protects your balance without requiring you to be online. The cost of each run is still shown individually, so you can audit exactly what was spent and why.

Both safeguards — conditions and the cap — are set when you create the trigger and can be adjusted at any time.

Creating a trigger with "Forge with Oupi"

You don't need to configure triggers field by field. Use "Forge with Oupi" and describe what you want in plain language:

• "Watch my Gmail for invoices from Acme Corp and extract the amounts into a spreadsheet." • "When the webhook fires, summarize the payload and post it to my Slack channel."

@oupi interprets your description, sets up the watcher or webhook, proposes conditions, and attaches the trigger to a new or existing durable task. If anything is ambiguous, it asks a clarification before finalizing — nothing runs until you confirm. You can then pause, arm, or test the trigger with a single run to verify it works as expected.

Tip

Start every new trigger with a conservative daily credit cap (e.g., a small fraction of your usual daily spend). Once you've reviewed a few runs in the trigger's history and confirmed the conditions filter correctly, raise the cap gradually. This avoids surprises while you're still tuning conditions.

Tip

Webhook URLs are locked — each one is unique and revocable. If you suspect a URL has leaked or an external app is misbehaving, revoke it immediately from the trigger settings and issue a new one. The old URL stops working instantly.

Try it now

Go to Studio → Durable tasks and create a trigger: click "Forge with Oupi" and type a plain-language description such as "Watch [a connected source] for [your condition] and summarize each match into a note." Set a low daily credit cap, arm the trigger, then use "try once" to verify it fires correctly. Review the run in the trigger's history.

Take this course in OUPI → This exercise is done inside the OUPI platform.
Recap

Triggers and listeners make @oupi event-driven: watchers poll connected sources against your conditions, and locked webhook URLs let external apps call OUPI directly. Every trigger is tied to a durable task (preserving context across runs), carries configurable conditions to filter noise, and supports a daily credit cap to protect your balance. Use "Forge with Oupi" to set them up in plain language, start with a conservative cap, and verify with a single test run before going fully live.