Automate itLesson 1 of 5

Everything that starts it: the Triggers tab

Every script and flow has a Triggers tab beside the code. It gathers everything that can start the item without you pressing Run — its API endpoint, its schedules and its event triggers — plus the two limits that protect it. In this lesson you read the tab top to bottom, change the endpoint with Configure, and see both limits do their job.

What you will learn
  • Read the API card and copy a Sync or Async curl that works as shown
  • Change method, mode, authentication, parameters and limits with Configure
  • Add and pause schedules without leaving the editor
  • Cap calls per minute and runs at the same time

One tab, every way in

Open a script in the editor and pick Triggers on the side rail (in a flow, it is one of the tabs on the right). The tab has four parts, always in this order: API, Schedules, Events and Limits. Each part reads and writes the same records as the project pages — the endpoint is the one on the API page, the schedules are the ones on the Schedules page — so a change made in one place shows in the other at once.

docs-demoCodehello.pySavePublish
hello.py
1def main(name: str = "world"):2    print(f"saying hello to {name}")3    return {"message": f"Hello, {name}!"}
Triggers1
APIOpen in API page
Another system starts this script with an HTTP request — copy the URL or the curl below.
POST/exec/p_58e3011e/hello
ModeSyncAuthBearerLimit60/minStatus
Call itSyncAsync
1curl -X POST "$WAISO_URL/exec/p_58e3011e/hello" \2  -H "Authorization: Bearer $WAISO_TOKEN" \3  -H "Content-Type: application/json" \4  -d '{"name":"world"}'
SchedulesOpen in Schedules
morning_helloWeekdays at 08:00Active
Add schedule
Events
Run this script when something happens elsewhere: an e-mail arrives, a database row changes, an MQTT message comes in.Add event trigger
Limits
The API card on top with its URL, the Call it curl, then Schedules, Events and Limits.

Every trigger runs the published version. Until the item is published, the tab says Triggers run the published version. Publish this script to call it by URL or on a schedule. and its add buttons stay disabled with the reason on hover. After a publish, if you keep editing, a line warns You have changes that are not published — triggers still run the published version.

The API card and its curl

  1. Turn the endpoint on

    On an item that is Not on the API yet, press Turn on endpoint. The card then shows the method chip, the URL with its path in bold, the columns Mode, Auth, Limit and Status, and Open in API page, which opens the API page focused on this endpoint.

  2. Copy the curl

    Under Call it, a Sync | Async switch picks which example is shown, then Copy curl. The switch is display only — it never changes the endpoint, because switching a live endpoint’s mode would break its callers. When the example differs from the endpoint, a line says This endpoint is Synchronous — change it in Configure.

  3. Set the token

    The curl reads the token from $WAISO_TOKEN (Set $WAISO_TOKEN to an API token.). Create token opens the API page’s settings with a new token for this endpoint.

Sync waits and answers with the output (best under ~30 s). Async answers at once with a runId; poll it until it finishes. A flow that stops at an Approval step answers 202 with the run while it waits, instead of holding the call open. The full contract — status codes, the poll URL, token errors — is in API endpoints.

Configure: the endpoint’s settings

Configure opens the same dialog as the API page. Its sections are listed on the left; each one is a click away and Save changes writes them together. The dialog’s labels are in English in both languages of the app.

SectionWhat you choose
Endpoint URLThe path after the project id. Letters, numbers, -, _ and / only.
HTTP MethodGET, POST (the default), PUT or DELETE.
Execution ModeSynchronous (waits and returns the output) or Asynchronous (returns a runId to poll).
AuthenticationProtected (an API token is required — recommended) or Public (no token).
Parameter PassingOnly when the script has parameters: Request body (JSON) or Query string.
LimitsCalls per minute and Runs at the same time — the same two fields as the tab.
Active TokensOnly for a protected endpoint: the tokens that can call it.

Schedules and events

Schedules lists every schedule that runs this item, as the Schedules page shows them, with its next run (a paused one shows “—”). Add schedule opens the schedule wizard already pointed at this item; Pause schedule and Resume schedule work on each row; Open in Schedules goes to the full page. Events holds the triggers that start the item when an e-mail arrives, a database row changes or an MQTT message comes in — see Event triggers.

Each schedule row has its own pause switch.

The two limits

Protect it from too many calls or too many runs at once. Both fields are typed as plain whole numbers and saved when you leave the field or press Enter (the help line says Saved for a moment). Both are empty by default — then only your plan’s limit applies.

LimitRangeOver the limit
Calls per minute (endpoint)1–100,000HTTP 429, a Retry-After header and {"code": "rate_limited", "retryAfter": n}; no run is created.
Runs at the same time (item)1–1,000Extra runs wait in the queue and start when one finishes; they never fail.
  • Calls are counted per endpoint in each clock minute, whichever token makes them; retryAfter is the seconds left until the next minute (1–60).
  • The call limit needs the endpoint on (Turn the endpoint on to limit its calls.). The runs limit applies to every run of the item: API calls, schedules, events and runs from the editor.
  • A refused call is still recorded: it shows in the API page’s usage as rate limited.
1 / 5