Skip to main content

Workflow Triggers

Triggers determine when and how your workflows execute. Every workflow must have exactly one trigger node as its first node. The trigger produces the initial data that flows downstream through the rest of the workflow.

Strongly AI provides 16 trigger types covering a wide range of execution patterns, from HTTP-based triggers to time-based schedules, file system monitoring, and event-driven architectures. This page covers the most common ones; the full list is in the builder's Triggers category and the Workflows Overview.


Webhook

Trigger a workflow over HTTP. Calls are authorized with a Strongly REST API key, or -- for external services like GitHub, Stripe, and Slack -- an HMAC signature using a shared secret. Unauthenticated calls are never accepted.

Use Cases

  • GitHub push/pull request event processing
  • Stripe payment and subscription notifications
  • Slack message and interaction handling
  • Custom webhook integrations from any service

Authorization

MethodHow it works
REST API keyX-API-Key header with the workflows:execute scope, like every REST endpoint; runs as the caller
External HMAC signatureProvider-specific signature using the configured secret; runs as the workflow owner

Configuration

SettingDescriptionRequired
Webhook ProviderSignature verification scheme: GitHub, Stripe, Slack, or Generic HMAC (default: Generic)Yes
Webhook Secret (HMAC)Shared secret for external HMAC signature verification. Needed only when external signed services call the webhook; leave empty for an API-key-only webhook. Stored encryptedNo
Previous Secret (rotation)Set during secret rotation: the old secret is also accepted so in-flight callers are not broken. Remove once all callers use the new secretNo
Allowed EventsFilter specific event types per provider (empty allows all)No
IP WhitelistRestrict access to specific IP addresses or CIDR rangesNo
Max Body Size (bytes)Maximum request body size (default: 1MB, max: 10MB)No
HTTP MethodPOST, PUT, GET, or DELETE (default: POST; webhooks carry a JSON body that is HMAC-signed, so POST is the secure default)Yes
Require TimestampRequire a timestamp on requests for replay protection (default: false)No
Max Timestamp Age (seconds)Maximum accepted timestamp age (default: 300)No
Rate Limit (per minute)Maximum requests per minute (default: 10)No
Rate Limit (per hour)Maximum requests per hour (default: 100)No

Provider-Specific Signature Verification

Each provider uses its own signature header:

ProviderSignature Header
GitHubX-Hub-Signature-256
StripeStripe-Signature (with timestamp)
SlackX-Slack-Signature
GenericX-Webhook-Signature

Security Features

The webhook trigger includes the following security measures:

  • Authorized calls only, never unauthenticated
  • HMAC verification with timing-safe comparison and secret rotation support
  • Optional replay protection via timestamp validation
  • Per-webhook rate limiting (configurable)
  • Request size limits and optional IP whitelisting with CIDR support
  • Generic error messages to prevent detail leakage; secrets are never logged

Outputs

FieldTypeDescription
eventstringEvent type (for example, push)
payloadobjectRequest payload
headersobjectRequest headers
timestampstringISO 8601 timestamp
providerstringWebhook provider (github, stripe, slack, generic)

Execution metadata also records success, signatureVerified, processedAt, and requestId.

Webhook URL Pattern

/api/v1/webhooks/{workflowId}
Signature Verification

The HMAC secret is only needed when external signed services (GitHub, Stripe, Slack, or generic HMAC callers) will call this webhook. When you use it, choose a strong random value; it is stored encrypted.


Schedule

Trigger workflows on a time-based schedule. Scheduled workflows are deployed as scheduled jobs.

Use Cases

  • Daily report generation
  • Periodic data synchronization
  • Scheduled cleanup and maintenance tasks
  • Batch processing jobs on recurring intervals

Schedule Types

1. Interval-Based

Run at a fixed interval specified in minutes (1 to 10,080 minutes / 7 days):

IntervalExample Use Case
Every 5 minutesReal-time monitoring
Every 60 minutesHourly data aggregation
Every 360 minutesPeriodic cleanup

2. Daily Execution

Run once per day at a specific time in 24-hour format (e.g., 09:00).

3. Cron Expression

Use standard cron syntax for advanced scheduling:

# Every weekday at 9 AM
0 9 * * 1-5

# First day of every month at midnight
0 0 1 * *

# Every 30 minutes during business hours
*/30 9-17 * * 1-5

# Quarterly on the 1st at 6 AM
0 6 1 */3 *

Cron Format Reference

+-------------- minute (0 - 59)
| +------------ hour (0 - 23)
| | +---------- day of month (1 - 31)
| | | +-------- month (1 - 12)
| | | | +------ day of week (0 - 6) (Sunday=0)
| | | | |
* * * * *

Configuration

SettingDescriptionRequired
Schedule TypeInterval, Daily, or Cron (default: Daily)Yes
Interval (minutes)Run frequency when using interval mode (1-10,080; default: 60)Conditional
Daily TimeTime in 24-hour format when using daily mode (default: 09:00)Conditional
Cron ExpressionStandard cron expression when using cron modeConditional
TimezoneExecution timezone: UTC, Eastern, Central, Pacific, London, or Tokyo (default: UTC)Yes
EnabledWhether the schedule is active (default: true)No

Outputs

FieldTypeDescription
triggeredbooleanWhether the schedule fired
nextRunstringISO 8601 timestamp of the next scheduled run
scheduleTypestringThe schedule type used (interval, daily, or cron)

Execution metadata also records success, processedAt, timezone, and executionId.

Timezone Configuration

Always specify the correct timezone for scheduled workflows. The schedule executes based on the configured timezone, which may differ from your local time or server time.


REST API Trigger

Expose a workflow as an authenticated REST API endpoint with role-based access control and input validation.

Use Cases

  • Custom API endpoints for internal microservices
  • Mobile and web application backends
  • Third-party integration endpoints
  • Synchronous request-response workflows

Configuration

SettingDescriptionRequired
API Endpoint PathURL path for the API (e.g., /api/v1/my-workflow; default: /api/workflow)Yes
HTTP MethodPOST, GET, PUT, DELETE, PATCH, or Any Method (default: POST)Yes
Require AuthenticationWhether callers must be authenticatedNo (default: true)
Allowed RolesRoles permitted to call the endpoint: owner, admin, user, viewer (default: owner, admin, user)No
Expected InputsInput field definitions with type and validationNo
Default Query ParametersDefault query parameters as JSONNo

Expected Inputs Schema

Define expected input fields with validation:

PropertyDescription
NameField name (e.g., userId)
TypeData type: string, number, integer, boolean, array, object
RequiredWhether the field is mandatory
DefaultDefault value if not provided
DescriptionField description for API documentation

Outputs

FieldTypeDescription
methodstringHTTP method
bodyobjectRequest body
queryobjectQuery parameters
headersobjectRequest headers
paramsobjectURL path parameters
userobjectAuthenticated user info

Execution metadata also records success, authenticated, processedAt, requestId, and endpoint.

Response Handling

Use the webhook-response destination node to send structured responses back to the API caller. The workflow output returned by the webhook-response node becomes the HTTP response body.


Chat Trigger

Trigger workflows from chat and conversational interfaces with automatic conversation history management.

Use Cases

  • Conversational AI assistants
  • Customer support chatbots
  • Interactive Q&A workflows
  • Multi-turn dialogue systems

Configuration

SettingDescriptionRequired
Session ID FieldInput field name containing the session/conversation IDNo (default: sessionId)
Message FieldInput field name containing the message contentNo (default: message)
Include HistoryInclude previous messages in the conversationNo (default: true)
Max History LengthMaximum number of history messages to include (1-50)No (default: 10)

Inputs

FieldTypeRequiredDescription
messagestringYesChat message content
sessionIdstringNoSession/conversation identifier
userIdstringNoUser identifier

Outputs

FieldTypeDescription
messagestringMessage content
sessionIdstringSession/conversation ID
historyarrayPrevious conversation messages
currentMessageobjectCurrent message with role and content

Email Trigger

Trigger workflows when new emails arrive by monitoring an IMAP inbox. Supports filtering by search criteria and automatic mark-as-read to prevent reprocessing.

Use Cases

  • Automated email processing and routing
  • Support ticket creation from incoming emails
  • Invoice and attachment extraction
  • Email-driven approval workflows

Configuration

SettingDescriptionRequired
IMAP HostIMAP server hostname (e.g., imap.gmail.com)Yes
PortIMAP port (993 for SSL, 143 for non-SSL)No (default: 993)
Use SSLConnect using SSL/TLSNo (default: true)
UsernameEmail account usernameYes
PasswordEmail account password or app-specific password (encrypted)Yes
MailboxMailbox/folder to monitorNo (default: INBOX)
Search CriteriaIMAP search filterNo (default: Unread)
Mark as ReadMark fetched emails as read to avoid reprocessingNo (default: true)
Max EmailsMaximum emails to fetch per trigger (1-100)No (default: 10)

Search Criteria Options

ValueDescription
UNSEENUnread emails only
ALLAll emails
FLAGGEDFlagged/starred emails
RECENTRecent emails
SENTONToday's emails

Outputs

FieldTypeDescription
emailsarrayArray of email objects with id, subject, from, to, bodyText, attachments
countnumberNumber of emails fetched
mailboxstringMailbox name that was searched

Execution metadata also records success and emailsFetched.


Form Trigger

Accept public form submissions with configurable fields, file uploads, reCAPTCHA protection, and rate limiting.

Use Cases

  • Contact and inquiry forms
  • File upload portals
  • Survey and feedback collection
  • Support ticket submission
  • Application and registration workflows

Configuration

SettingDescriptionRequired
Form IDUnique identifier for this formNo (default: form)
Form TitleDisplay name for the formNo (default: Contact Form)
DescriptionForm description or instructionsNo
Enable CAPTCHARequire reCAPTCHA v3 verificationNo (default: true)
reCAPTCHA Secret KeyGoogle reCAPTCHA v3 secret key (encrypted)Conditional
CAPTCHA Score ThresholdMinimum reCAPTCHA score (0.0-1.0)No (default: 0.5)
Rate Limit (per hour)Maximum submissions per hour from same IP (1-1000)No (default: 10)
Max File Size (MB)Maximum file upload size in megabytes (1-100)No (default: 10)
Form FieldsField definitions with validation rulesNo
Validation RulesCustom validation rules per field (JSON)No
Success MessageConfirmation text after submissionNo
Redirect URLPost-submission redirect URLNo
Send Email NotificationSend email on form submissionNo (default: false)
Email ToNotification recipient email addressConditional

Supported Field Types

TypeDescription
textSingle-line text input
emailEmail address with format validation
numberNumeric input
booleanCheckbox
fileFile upload
textareaMulti-line text
selectDropdown selection
dateDate picker
urlURL with format validation
telPhone number

Each field supports a name, label, required flag, and placeholder text.

CAPTCHA Protection

The form trigger supports Google reCAPTCHA v3, which provides score-based bot detection without user interaction. Configure a score threshold between 0.0 and 1.0 to control sensitivity. Obtain reCAPTCHA keys from Google reCAPTCHA Admin.

Outputs

FieldTypeDescription
formIdstringForm identifier
submissionIdstringUnique submission identifier
fieldsobjectSubmitted form field values
filesarrayProcessed uploaded files
submittedAtstringISO 8601 submission timestamp
ipAddressstringSubmitter IP address

Execution metadata also records success, captchaVerified, captchaScore, processedAt, and userAgent.


File Trigger

Trigger workflows based on local file system changes. Supports monitoring directories for created, modified, or deleted files with glob pattern matching.

Use Cases

  • Process new files uploaded to a directory
  • Detect configuration file changes
  • Monitor data landing zones for new CSV/JSON files
  • File integrity monitoring via hash comparison

Configuration

SettingDescriptionRequired
Watch PathFile or directory path to monitorYes
OperationCheck Changes, List Files, Get File Info, Get File Hash, or Watch DirectoryYes
Trigger OnFile Created, File Modified, File Deleted, or Any ChangeNo (default: Any Change)

Operations

OperationDescription
Check ChangesCompare current state against previous state to detect changes
List FilesList all files matching the path and pattern
Get File InfoGet metadata for a specific file (name, size, timestamps)
Get File HashCompute hash of a file (MD5, SHA1, SHA256, SHA512)
Watch DirectoryCreate a snapshot of directory state for future comparison

Inputs

FieldTypeDescription
watchPathstringPath to file or directory to monitor
patternstringFile pattern using glob syntax (e.g., *.csv)

Outputs (Check Changes)

FieldTypeDescription
hasChangesbooleanWhether changes were detected
triggeredFilesarrayArray of changed file objects

RSS Feed Trigger

Trigger workflows when new RSS or Atom feed items appear. Tracks previously seen items to process only new entries.

Use Cases

  • News and content aggregation
  • Blog post monitoring and notifications
  • Competitor content tracking
  • Automated content curation pipelines

Configuration

SettingDescriptionRequired
Feed URLURL of the RSS or Atom feedYes
Max ItemsMaximum items to fetch per trigger (1-100)No (default: 20)
Only New ItemsOnly return items not seen in previous triggersNo (default: true)
Include Full ContentInclude full article content when availableNo (default: true)

Outputs

FieldTypeDescription
itemsarrayFeed items with id, title, link, published, summary
countnumberNumber of items returned
feedTitlestringTitle of the feed
feedUrlstringURL of the feed that was fetched

SSE Trigger

Trigger workflows when Server-Sent Events are received from an external SSE endpoint. Supports automatic reconnection and event type filtering.

Use Cases

  • Real-time event stream processing
  • Live data feed consumption
  • Server push notification handling
  • Streaming API integration

Configuration

SettingDescriptionRequired
SSE Endpoint URLURL of the SSE endpoint to connect toYes
Event TypesComma-separated event types to listen for (empty listens to all)No
HeadersCustom headers for the SSE connection (key-value pairs)No
Auto ReconnectAutomatically reconnect on connection lossNo (default: true)
Reconnect Delay (ms)Delay before reconnection attemptNo (default: 3000)

Outputs

FieldTypeDescription
eventTypestringSSE event type
dataanyParsed event data (JSON if valid, otherwise string)
eventIdstringSSE event ID

Error Trigger

Trigger a workflow when errors occur in other workflow executions. Enables centralized error handling, alerting, and recovery workflows.

Use Cases

  • Centralized error logging and alerting
  • Automated incident creation from workflow failures
  • Error recovery and retry orchestration
  • Severity-based escalation workflows

Configuration

SettingDescriptionRequired
Filter by Workflow IDsOnly trigger for errors from specific workflows (empty = all)No
Filter by Node TypesOnly trigger for errors from specific node types (empty = all)No
Filter by SeverityOnly trigger for specific severities: Warning, Error, Critical (empty = all)No
Include Stack TraceInclude full error stack trace in outputNo (default: true)

Outputs

FieldTypeDescription
errorobjectError details with message, type, and severity
workflowobjectWorkflow context with workflowId
nodeobjectNode context with nodeId
metadataobjectAdditional error metadata

Multi-Modal Input

Accept mixed media types as workflow input, including text, images, audio, and files in a single request.

Use Cases

  • AI workflows requiring multiple input types (text + image)
  • Document processing with mixed media
  • Multi-format data ingestion pipelines
  • Interactive applications with diverse input types

Configuration

SettingDescriptionRequired
Accepted TypesArray of accepted media types (text, image, audio, file)No (default: all)
Max File Size (MB)Maximum file size in megabytes (1-100)No (default: 10)
Max ItemsMaximum number of input items (1-50)No (default: 10)

Event

The Event trigger (event) starts a workflow from platform events such as workflow completed, workflow failed, AI model deployed or undeployed, data uploaded, add-on status changed, and marketplace app installed or uninstalled. Select which event types should trigger the workflow (leave empty to receive all), and optionally add custom event type names such as order.created; custom events can be emitted via the REST API at POST /api/v1/workflows/events. The trigger outputs the event type, event data, source, and timestamps.


Queue

The Queue trigger (queue) starts a workflow from a message queue backed by a REST API enqueue endpoint: callers submit messages to POST /api/v1/workflows/{workflowId}/enqueue and each message triggers an execution. You can cap concurrent executions from the queue (0 = unlimited) and enable priority processing so higher-priority messages are processed first. The trigger outputs the message, its priority, source, and enqueue/processing timestamps.


Agent Trigger

The Agent trigger (agent-trigger) sends a message to an agent endpoint and captures the streamed response, which makes it useful for scheduled agent heartbeats and agent-driven workflows. Configure the agent URL, the message to send (with {{variable}} substitution), a thread pattern that controls conversation grouping (daily, weekly, single, or per execution; default daily), and a response timeout (10-600 seconds, default 300). The trigger outputs the thread ID, the agent's response text, the tools it called, and the run duration.


Task Due

The Task Due trigger (task-due-trigger) fires when a platform task's due date is reached. You can filter which task firings start the workflow by subject kind, subject app, or assigned agent, and bound how many times a task must have fired before matching (for example, set a maximum fire count of 0 to fire only on a task's first activation). Leave all filters empty to match all due tasks within the workflow's tenant scope. The triggered workflow receives the full task object, including its description, subject reference, due date, recurrence, fire count, and tags.


Streaming Workflow Triggers

Streaming workflows use a separate trigger set from the batch palette. It includes the WebSocket trigger (websocket-trigger), which accepts real-time WebSocket connections for bidirectional audio and text streaming. See the streaming palette in the workflow builder for the full set.


Architecture Notes

Trigger Execution Model

Triggers are the entry point for every workflow execution. Each workflow has exactly one trigger node, and the trigger type determines how the workflow is invoked:

  • Request-based triggers (webhook, REST API, chat, form, multi-modal input, queue) are invoked through the platform backend when an HTTP request arrives at the appropriate endpoint.
  • Schedule triggers run on the configured schedule. When the schedule fires, the workflow executes.
  • Polling triggers (email, RSS, file) check for new data at execution time and produce results for downstream nodes.
  • Event-driven triggers (event, error, SSE, task due) react to events from the platform, other workflows, or external systems.

Common Patterns

Webhook Event Routing

Webhook Trigger (GitHub)
-> Switch-Case (Route by event_type)
-> [push] Process push event
-> [pull_request] Process PR event
-> [issues] Process issue event

Scheduled Batch Processing

Schedule Trigger (Daily at 2 AM)
-> REST API Call (Fetch records)
-> Loop (Process each record)
-> MongoDB Destination (Update database)
-> SMTP (Send completion report)

Form Submission Processing

Form Trigger (with CAPTCHA)
-> MongoDB Destination (Store submission)
-> SMTP (Send confirmation email)
-> Webhook Response (Return success message)

Centralized Error Handling

Error Trigger (Filter: severity = critical)
-> Switch-Case (Route by error type)
-> [ConnectionError] Retry workflow
-> [TimeoutError] Alert on-call team
-> [default] Log to monitoring system

Troubleshooting

Webhook Not Triggering

  • Verify the webhook URL matches the pattern /api/v1/webhooks/{workflowId}
  • Confirm the caller is authorized: a valid REST API key, or (for external signed services) an HMAC secret matching what the service is configured with
  • Check that the workflow is deployed and active
  • If using IP whitelisting, verify the sender IP is in the allowed range
  • Review execution logs for signature verification failures

Schedule Not Running

  • Verify the workflow is deployed
  • Confirm timezone settings are correct for the intended execution time
  • Check that the enabled flag is set to true
  • Review the workflow's run history in the Workflow Monitor
  • Validate the cron expression syntax

REST API Returning Errors

  • Verify authentication credentials and user roles match the allowedRoles configuration
  • Check that the request body matches the expectedInputs schema
  • Ensure the HTTP method matches the configured method
  • Confirm the workflow is deployed and the endpoint path is correct

Email Trigger Not Processing

  • Test IMAP connectivity with the configured host and port
  • Verify credentials (use app-specific passwords for Gmail)
  • Confirm SSL settings match the server requirements
  • Check that the search criteria matches available emails
  • Verify the mailbox name is correct

Next Steps