Part 5 of our Workflows Unleashed series. This week: because a flow without a trigger is just a diagram.
The most beautifully designed workflow is useless if nothing starts it. The trigger is the bridge between "something happened" and "something should happen in response." Get triggers right and automation feels invisible. Get them wrong and you're back to manual processes with extra steps.
Flomation ships with ten trigger types. Here's what each one does and when to use it.
The universal adapter. Any system that can send an HTTP POST — GitHub, Stripe, Shopify, your own backend — can start a flow. The payload arrives as structured JSON, immediately available to every downstream action.
Webhooks are the right choice when the source system already supports outbound notifications. They're real-time, stateless, and require zero polling.
Use when: an external system can push events to a URL.
Cron for humans. Configure an interval (every 30 seconds, every 5 minutes, every hour), a daily time (9:00 AM London time), or a weekly schedule (Monday and Thursday at 14:00). Timezone-aware, so "9 AM" means 9 AM where your team is, not where the server is.
Use when: the work needs to happen on a clock, not in response to an event. Nightly reports, hourly syncs, weekly cleanups.
Watches a repository's branches for new commits. When a branch's HEAD changes, the flow fires with the commit details — author, message, hash, branch name. SSH key authentication supported.
The key advantage over CI webhooks: no configuration in the repository. Point the trigger at a repo and it starts watching. Move it to a different repo and it starts watching that one. No webhook URLs to register, no access tokens to manage in a third-party system.
Use when: you need to react to code changes without configuring the source repository.
Monitors an S3 bucket for new, changed, or deleted objects. The trigger compares the current ListObjectsV2 result against a persisted state (ETags stored in the trigger_state table), so it detects changes reliably across restarts without duplicates.
First-poll detection prevents mass-firing on existing objects — only genuinely new or changed objects trigger the flow.
Use when: files arriving in S3 should trigger processing, archiving, or notification.
Polls a connected Gmail inbox using the History API for incremental detection. New messages are identified by historyId progression, not by polling the full inbox — which means it's fast, efficient, and doesn't miss messages that arrive between polls.
Self-reply loop prevention ensures the system doesn't trigger on its own outbound messages.
Use when: an incoming email should start a workflow — support ticket routing, invoice processing, approval chains.
Flomation includes a form builder for collecting structured input from users. When a form is submitted, the trigger fires with every field's value as typed data — strings, numbers, booleans, dates — available to the flow immediately.
Use when: you need human input to start an automated process. Onboarding forms, request submissions, data collection.
Every QR trigger generates a unique QR code. When scanned, the flow fires with the scanner's metadata (user agent, IP, timestamp). Useful for physical-digital bridges: event check-ins, asset tracking, location-based triggers.
Use when: a physical action (scanning a printed code) should trigger a digital workflow.
An invisible 1x1 image that, when loaded, fires the flow. Embed it in an email, a document, or a web page. When the recipient's client loads the image, you know the content was viewed.
Use when: you need to detect that an email was opened or a page was viewed, without requiring the recipient to click anything.
Slack and Telegram both have dedicated triggers that fire on incoming messages. Slack triggers handle both direct messages and @mentions in channels, with full metadata (user, channel, thread, timestamp). Telegram triggers handle private and group messages.
Use when: a message in a chat channel should start an automated response or process.
The simplest trigger: a button. Click it in the editor or the flows list, and the flow runs. Optional input parameters can be collected via a modal dialog before execution.
Manual triggers are the starting point for every flow during development, and they remain useful in production for ad-hoc operations, data migrations, and emergency procedures.
Use when: a human should explicitly decide when the flow runs.
A single flow can have multiple triggers. The same processing pipeline can fire from a webhook, a schedule, and a manual button — different entry points, same logic. The trigger data is available via ${flow.trigger_data}, so the flow can adapt its behaviour based on how it was started.
We cover secrets management — PGP encryption, environment isolation, and why your automation platform's security posture matters more than you think.
www.flomation.co — free to start, no credit card.