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 11 trigger types covering a wide range of execution patterns, from HTTP-based triggers to time-based schedules, file system monitoring, and event-driven architectures.


Webhook

Receive webhooks from external services with provider-specific HMAC signature verification and security controls.

Use Cases

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

Configuration

SettingDescriptionRequired
ProviderWebhook source: GitHub, Stripe, Slack, or Generic HMACYes
SecretShared secret key for HMAC signature verificationYes
HTTP MethodGET, POST, PUT, or DELETEYes
Allowed EventsFilter specific event types per provider (empty allows all)No
IP WhitelistRestrict access to specific IP addresses or CIDR rangesNo
Max Body SizeMaximum request body size in bytes (default: 1MB, max: 10MB)No

Provider-Specific Signature Verification

Each provider uses its own signature header and verification method:

ProviderSignature HeaderMethod
GitHubX-Hub-Signature-256HMAC-SHA256
StripeStripe-SignatureHMAC-SHA256 with timestamp
SlackX-Slack-SignatureHMAC-SHA256
GenericX-Webhook-SignatureHMAC

Security Features

The webhook trigger includes the following security measures:

  • HMAC signature verification with timing-safe comparison
  • Replay attack prevention via timestamp validation
  • Built-in rate limiting (10 requests/minute, 100 requests/hour)
  • Configurable request size limits
  • Optional IP whitelisting with CIDR support
  • Generic error messages to prevent detail leakage

Outputs

FieldTypeDescription
providerstringWebhook provider (github, stripe, slack, generic)
event_typestringEvent type extracted from provider-specific header
headersobjectRequest headers
bodyobjectRaw request body
parsed_dataobjectProvider-specific parsed data
methodstringHTTP method
clientIPstringClient IP address
signatureVerifiedbooleanSignature verification status
request_s3_urlstringS3 URL for large request data (> 10KB)

Webhook URL Pattern

/api/webhook/{workflowId}
Signature Verification

The webhook secret is required for all providers. Always configure a strong, unique secret for each webhook integration to ensure requests come from trusted sources.


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 CronYes
Interval (minutes)Run frequency when using interval mode (1-10,080)Conditional
Daily TimeTime in 24-hour format when using daily modeConditional
Cron ExpressionStandard cron expression when using cron modeConditional
TimezoneExecution timezone (UTC, Eastern, Central, Pacific, London, Tokyo)Yes
EnabledWhether the schedule is activeNo

Outputs

FieldTypeDescription
trigger_timestringISO timestamp when triggered (UTC)
local_timestringISO timestamp in configured timezone
cron_expressionstringThe cron expression used
timezonestringTimezone used for execution
next_executionstringISO timestamp of next scheduled execution
execution_contextobjectContext with day_of_week, date, and time
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
Endpoint PathURL path for the API (e.g., /api/v1/my-workflow)Yes
HTTP MethodPOST, GET, PUT, DELETE, PATCH, or Any MethodYes
Require AuthenticationWhether callers must be authenticatedNo (default: true)
Allowed RolesRoles permitted to call the endpoint (owner, admin, user, viewer)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
_requestobjectFull request context
_request.endpointstringMatched endpoint path
_request.methodstringHTTP method
_request.headersobjectRequest headers
_request.queryobjectQuery parameters
_request.path_paramsobjectURL path parameters
_request.userobjectAuthenticated user info (userId, email, roles)
_request.client_ipstringClient IP address
_request.userAgentstringUser agent string

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

FieldTypeDescription
messagestringChat message content
sessionIdstringSession/conversation identifier
userIdstringUser identifier
userNamestringUser display name
channelstringChannel identifier (web, slack, etc.)
timestampstringMessage timestamp

Outputs

FieldTypeDescription
messagestringMessage content
sessionIdstringSession/conversation ID
historyarrayPrevious conversation messages
currentMessageobjectCurrent message with role, content, and timestamp
userIdstringUser identifier
userNamestringUser display name
channelstringChannel identifier
messageMetadataobjectMetadata including timestamp, historyLength, isFirstMessage

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, bodyHtml, attachments
countnumberNumber of emails fetched
mailboxstringMailbox name that was searched
searchCriteriastringIMAP search criteria used

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
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
form_dataobjectSubmitted form field values
filesarrayProcessed uploaded files with S3 URLs
validationobjectValidation results with is_valid, errors, warnings
submission_metadataobjectSubmission context (timestamp, ipAddress, userAgent, referrer)
form_data_s3_urlstringS3 URL for large form data (if > 5KB)

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)
previousStateobjectPrevious state snapshot for change detection
recursivebooleanScan directories recursively
filePathstringSpecific file path for get_file_info/get_file_hash
algorithmstringHash algorithm: md5, sha1, sha256, sha512

Outputs (Check Changes)

FieldTypeDescription
hasChangesbooleanWhether changes were detected
triggeredFilesarrayArray of changed file objects
changesobjectChanges grouped by type: created, modified, deleted
currentStateobjectCurrent state snapshot for next comparison

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, author, summary, content, categories
countnumberNumber of items returned
feedTitlestringTitle of the feed
feedLinkstringMain link of the feed
feedDescriptionstringDescription 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
eventIdstringSSE event ID
dataanyParsed event data (JSON if valid, otherwise string)
rawDatastringOriginal raw data string
timestampstringEvent timestamp
retrynumberSSE retry value in milliseconds

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, code, severity, timestamp, stackTrace
workflowobjectWorkflow context with workflowId, workflowName, executionId
nodeobjectNode context with nodeId, nodeType, nodeName
contextobjectAdditional context data passed through
inputDataobjectInput data that caused the error
errorMetadataobjectMetadata with severity and hasStackTrace flag

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)

Inputs

FieldTypeDescription
itemsarrayArray of input items with mixed media types
textstringText input
imagestringImage as base64 or URL
audiostringAudio as base64 or file path
filestringFile as base64 or file path

Outputs

FieldTypeDescription
itemsarrayProcessed input items with type, content, path, and metadata
inputSummaryobjectSummary of received inputs by type
textContentstringCombined text content
mediaItemsarrayNon-text media items

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) are invoked through the platform backend when an HTTP request arrives at the appropriate endpoint.
  • Schedule triggers are deployed as scheduled jobs by the platform. When the schedule fires, it submits an execution request to the backend.
  • Polling triggers (email, RSS, file) check for new data at execution time and produce results for downstream nodes.
  • Event-driven triggers (error, SSE) react to events from other systems or workflows.

Large Payload Handling

Several triggers (webhook, form, REST API) automatically upload large payloads to S3 when they exceed size thresholds. The S3 URL is provided in the output so downstream nodes can retrieve the full data when needed.


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/webhook/{workflowId}
  • Confirm the HMAC secret matches what the external 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 (schedule triggers use Kubernetes CronJobs)
  • Confirm timezone settings are correct for the intended execution time
  • Check that the enabled flag is set to true
  • Review CronJob status in the Kubernetes cluster
  • 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