Triggers
Configuration depth for each of the six trigger types, including webhook security and record-change conditions.
A workflow can have several triggers at once, all feeding into the same first step. Each can be renamed, reordered, and paused independently — a workflow always needs at least one, so deleting the last one is blocked. Add trigger sits beside the last trigger on the canvas.
A trigger's switch is the only thing that turns it on or off. Editing a paused trigger — moving a schedule to a new time, say — leaves it paused. Changing a trigger's type asks first when the change would lose its schedule, webhook, email address, collection, or inputs.
Manual
Runs only when you select Run now. Optionally define input parameters (key, label, type, required) — if any are set, Run now opens a form to fill them in first.
Schedule
Pick a frequency — once, daily, weekdays, weekly, monthly, or a custom cron expression — along with a time and timezone. Cheqq previews the next few run times before you save, and flags cron expressions that are invalid or fire more often than once a minute.
Webhook
Cheqq generates a unique URL that fires the workflow whenever it receives a request.
The request's JSON arrives under trigger.body, so a field called email is
{{trigger.body.email}} in later steps. Once the trigger has a payload schema
or has received a request, the data picker lists those fields for you.
The workflow agent can create the endpoint for you while it builds — see Ask the agent to build it. An endpoint made that way counts against your plan's allowance like any other.
Securing your webhook
- Signature verification — optionally require requests to include an HMAC-SHA256 signature (in a header you choose) computed over the payload with a secret Cheqq generates; requests with a missing or invalid signature are rejected.
- Payload schema — optionally require the incoming JSON to match a schema you define; a mismatch is rejected before the workflow runs.
- Requests must be JSON and under 1 MB.
- Sensitive headers (authorization, cookies, and similar) are never stored — they're stripped before the request is recorded.
Fires when mail arrives at one of your Mailhook addresses. Configure:
- Sender/subject filters — restrict to messages where the sender or subject contains text you specify.
- Observe follow-ups — when enabled, the trigger keeps firing on replies within the same email thread as a previously matched message, not just the original.
Record change
Fires when a record in a chosen collection is created, updated, or deleted. Optionally add field-level conditions (equals, not equals, greater than, less than, contains) to narrow which changes fire the trigger.
Update conditions check for an actual change
On an update event, a condition on a field only fires if that field's value actually changed — not merely if the field is present with a matching value on an unrelated update.
Browser
Fires from the Companion extension side panel against the page you're currently viewing. Configure:
- URL patterns — restrict which sites the trigger is available on.
- Capture — what's pulled from the page: content (readable text extraction), the current text selection, and/or a screenshot.
- Display — whether the workflow's result is shown back in the side panel, and in what format (markdown, text, or JSON).
- Agent browser access — an opt-in that lets an AI step in this run take live control of the browser, beyond just reading what was captured.
Continue with Step types for what a trigger connects into.