Triggers
Every workflow starts with a trigger. Choose the right one for your use case.
Triggers start a workflow run from a specific entry point. New workflows support multiple triggers automatically, including multiple triggers of the same type.
Adding another trigger
Add the next trigger from the node picker, universal search, or the canvas context menu. You can also duplicate an existing trigger. No independent-trigger setting is required. Saving a second trigger upgrades an existing draft automatically while preserving its existing node IDs.
Undeploy a workflow before changing its entry points, and wait for pending or running executions to finish. Configure and test each entry point before deploying again. Copies are paused and receive new variable names; configure their connections before enabling them.
Each event starts only its selected trigger path. When Run has more than one eligible trigger, choose the trigger to test. API and workflow callers must identify the intended trigger if more than one matches. Existing workflow-only Stripe and Google Forms callback URLs may need to be replaced with the node-specific URLs from the trigger settings.
Manual Trigger
Run your workflow on demand by clicking the Run button in the editor toolbar.
The simplest trigger type. No configuration required. Click Run in the editor and the workflow executes immediately. Best for workflows you want to run yourself, like one off tasks or testing.
This node appears as Trigger manually in the node picker.
Manual triggers can have an output variable. Use the variable picker or the active trigger context ({{$trigger}}) rather than assuming a manual run has no trigger metadata.
Input Trigger
Define a custom form with typed fields. Users fill it out before each run.
Create a form with custom fields that must be filled out before the workflow runs. This is ideal when your workflow needs specific information each time, like a name, URL, or file.
Configuration:
| Field | Description |
|---|---|
| Variable name | How you reference the input data in downstream nodes (default: inputTrigger) |
| Fields | Add as many fields as you need. Each has a name and a type. |
Supported field types:
- String — Single line text
- Number — Numeric value
- Boolean — True or false toggle
- Object — JSON object
- Array — JSON array
- Files — File attachments (base64 encoded)
Accessing input data: {{inputTrigger.fieldName}}
Innflow Trigger
Use Innflow Trigger when another Innflow workflow should call this workflow. Define the typed input fields the caller must supply, then select this entry point in the calling workflow’s Innflow node.
Required inputs are checked before a run starts. Use distinct names for multiple Innflow entry points so the caller can select the intended one. Reference the actual trigger variable shown in the editor, and use {{$trigger.nodeId}} to identify the active root.
See the Innflow Trigger fields and Innflow action.
Form Trigger
Host a public form and run your workflow when someone submits it.
The Form Trigger creates a shareable form endpoint backed by your workflow. Use it when people outside the editor need to submit structured data.
Configuration:
| Field | Description |
|---|---|
| Variable name | How you reference the submitted form data |
| Fields | Form fields to collect from the submitter |
| Published workflow | Public submissions only execute against deployed workflows |
Accessing data: {{formTrigger.fieldName}}
Webhook Trigger
Receive HTTP POST requests from any external system to start your workflow.
Innflow generates a unique webhook URL for your workflow. When an external system sends a POST request to that URL, the workflow triggers with the request payload as input data.
Configuration:
| Field | Description |
|---|---|
| Variable name | How you reference the webhook payload (default: webhookTrigger) |
| Name | A friendly label for this webhook |
| Description | What this webhook is used for |
| Payload schema | Define expected input fields with names and types for validation |
| Authentication | Optionally require an auth token via a custom header (default header: X-Secret-Key) |
Features:
- Copy the generated webhook URL from the configuration panel
- Pause and resume the webhook without deleting it
- Regenerate the auth token or webhook secret at any time
Accessing data: {{webhookTrigger.body.fieldName}}
Chat Trigger
Start your workflow from a conversational chat interface inside the editor.
Opens a chat window in the configuration panel where you can type messages. Each message triggers the workflow with the chat content as input. The workflow's output is displayed back as an assistant response, creating a conversational experience.
Configuration:
| Field | Description |
|---|---|
| Variable name | How you reference the chat message (default: chatTrigger) |
This trigger is great for building AI powered chatbots and assistants. Each message starts a new workflow execution, and the conversation history is maintained in the chat window.
Accessing data: {{chatTrigger.message}}
Schedule Trigger
Run your workflow automatically on a recurring schedule.
Set your workflow to run automatically at fixed intervals. Choose from preset frequencies or write a custom cron expression.
Configuration:
| Field | Description |
|---|---|
| Frequency | Daily, Weekly, Monthly, or Hourly |
| Time | What time to run (hour and minute) |
| Timezone | Timezone for the schedule (supports major timezones worldwide) |
| Day of week | Which day to run (for weekly frequency) |
| Day of month | Which day to run (for monthly frequency) |
| Cron expression | Custom recurring schedule for advanced timing |
Examples:
- Daily at 9:00 AM Eastern
- Every Monday at 8:30 AM UTC
- First of every month at midnight
Schedules also appear in the Scheduled Tasks calendar, where you can inspect and manage recurring work across the workspace.
Stripe Trigger
Start your workflow when payment events happen in Stripe.
Listens for Stripe webhook events like successful payments, new subscriptions, or failed charges. You configure the webhook endpoint in your Stripe Dashboard.
Setup:
Copy the webhook URL
Open the Stripe Trigger configuration panel and copy the generated webhook URL.
Add to Stripe
In your Stripe Dashboard, go to Developers → Webhooks and click Add endpoint. Paste the URL.
Select events
Choose which Stripe events should trigger your workflow (e.g., checkout.session.completed, invoice.paid).
Activate
Save the endpoint in Stripe. Your workflow will now trigger on matching events.
Accessing data: {{trigger.body}} contains the full Stripe event payload.
Typeform Trigger
Start your workflow when someone submits a Typeform response.
Connects to your Typeform account and triggers the workflow whenever a form submission is received.
Configuration:
| Field | Description |
|---|---|
| Variable name | How you reference the submission data (default: typeform) |
| Form ID | The Typeform form to listen to |
| Access Token | Your Typeform personal access token |
| Webhook Secret | Optional secret for verifying webhook authenticity |
Features:
- Pause and resume without reconfiguring
- View setup instructions directly in the panel
Accessing data: {{typeform.answers}}
Notion Trigger
Start your workflow when pages or databases change in Notion.
Watches for changes in your Notion workspace and triggers the workflow when specific events occur.
Configuration:
| Field | Description |
|---|---|
| Connection | Select your connected Notion account |
| Entity | Choose a specific page or database to watch (searchable) |
| Event types | Select which events should trigger the workflow |
Supported events:
| Event | Description |
|---|---|
| Page content updated | When page content (blocks) changes |
| Page properties updated | When page properties change |
| Page created | When a new page is created |
| Page deleted | When a page is moved to trash |
| Database row created | When a new row is added |
| Database row updated | When a database row is modified |
| Database row deleted | When a database row is deleted |
| Comment created | When a new comment is added |
| Comment updated | When a comment is edited |
| Comment deleted | When a comment is removed |
Accessing data: {{trigger.body}} contains the Notion event payload.
Google Forms Trigger
Start your workflow when someone submits a Google Form.
Triggers the workflow whenever a new response is submitted to a connected Google Form.
Configuration:
| Field | Description |
|---|---|
| Google Account | Select your connected Google account |
| Webhook URL | Auto generated URL to use in your Google Form's Apps Script |
Setup: The trigger uses a Google Apps Script to forward form submissions to Innflow. Copy the generated script from the configuration panel and add it to your Google Form via Extensions → Apps Script.
Accessing data: {{trigger.body}} contains the form response data.
Telegram Trigger
Start your workflow when a message is sent to your Telegram bot.
Use the Telegram Trigger to turn bot messages into workflow executions.
Configuration:
| Field | Description |
|---|---|
| Bot token | Telegram bot token used to receive messages |
| Webhook URL | Generated URL that receives Telegram updates |
| Status | Enable, pause, or reconnect the trigger |
Setup: Create or choose a Telegram bot, add its token to the trigger configuration, then connect the generated webhook. New bot messages will start workflow executions.
Accessing data: {{trigger.body}} contains the Telegram update payload.