Skip to Content
WorkflowsTriggers

Workflow Triggers

Every workflow starts with a trigger. The trigger defines when and how the workflow executes. VelaFlows supports seven trigger types, each suited to different automation scenarios.

Trigger Types

Manual

Triggered on demand via the API or a UI button in the dashboard. Useful for one-off operations, testing, and user-initiated processes.

When to use: Admin actions, data migrations, manual approvals, testing workflows during development.

Configuration:

  • No additional configuration required
  • Execute via POST /api/v1/workflows/:id/execute or the “Run” button in the builder

Variables available: Only the manually provided input data.


Event

Fires automatically when a specific platform event occurs. This is the most common trigger type for reactive automations.

When to use: Auto-assign new conversations, notify teams on lead stage changes, enrich new customers.

Configuration:

  • Event type — Select from available platform events
  • Filter conditions (optional) — Only trigger when event data matches criteria

Common events:

EventDescription
inbox.conversation.createdNew conversation started
inbox.conversation.assignedConversation assigned to agent
inbox.message.receivedNew incoming message
crm.lead.createdNew lead added to pipeline
crm.lead.stage_changedLead moved to a different stage
customer.createdNew customer record created
customer.mergedTwo customer records merged
channels.message.status_changedMessage delivery status updated

Variables available: The full event payload is available as {{trigger.data}}.


Webhook

Fires when an external system sends an HTTP POST to the workflow’s unique webhook URL. Ideal for connecting third-party tools that support outgoing webhooks.

When to use: Receive Stripe payment events, Typeform submissions, GitHub push notifications, custom integrations.

Configuration:

  • A unique webhook URL is generated automatically: https://api.velaflows.com/api/v1/workflows/webhook/:webhookId
  • Optional secret for HMAC-SHA256 signature verification
  • Optional headers whitelist

Variables available: The full request body is available as {{trigger.body}}, headers as {{trigger.headers}}.


Scheduled

Runs on a recurring schedule defined by a CRON expression. Useful for periodic tasks like daily reports, weekly cleanups, and batch processing.

When to use: Daily report generation, weekly data cleanup, periodic sync operations, scheduled broadcasts.

Configuration:

  • CRON expression — Standard 5-field CRON syntax (e.g., 0 9 * * 1 for every Monday at 9 AM)
  • Timezone — IANA timezone string (e.g., America/New_York)

CRON examples:

ExpressionDescription
*/15 * * * *Every 15 minutes
0 9 * * *Every day at 9:00 AM
0 9 * * 1Every Monday at 9:00 AM
0 0 1 * *First day of every month at midnight
0 */2 * * *Every 2 hours

Variables available: {{trigger.scheduledAt}} with the scheduled execution time.


Conversation Idle

Fires when a conversation has been inactive (no new messages) for a specified duration. Perfect for SLA enforcement and follow-up reminders.

When to use: SLA breach warnings, follow-up reminders, auto-close stale conversations, escalation workflows.

Configuration:

  • Idle duration — Time in minutes before triggering (e.g., 30 minutes)
  • Conversation filter (optional) — Only monitor specific conversations (by status, channel, etc.)

Variables available: The conversation object as {{trigger.conversation}} including last message time and assignment info.


Date Field

Fires when a date field on a lead or customer reaches a specific threshold relative to now. Useful for deadline-based automations.

When to use: Contract renewal reminders, trial expiration notices, birthday messages, follow-up scheduling.

Configuration:

  • Entity type — Lead or Customer
  • Date field — The field to monitor (e.g., trialExpiresAt, a custom property date field)
  • Offset — How far before or after the date to trigger (e.g., “3 days before”, “1 day after”)

Variables available: The entity (lead or customer) as {{trigger.entity}} and the date field value as {{trigger.dateValue}}.


One-Shot

Fires once at a specific date and time, then automatically disables itself. Useful for scheduled one-time events.

When to use: Product launch announcements, one-time promotions, scheduled maintenance notifications.

Configuration:

  • Execute at — ISO 8601 date-time (e.g., 2026-04-01T09:00:00Z)
  • Timezone — IANA timezone string

Variables available: {{trigger.scheduledAt}} with the configured execution time.


Trigger Data in Nodes

All trigger data is accessible in downstream nodes using the template syntax:

{{trigger.data.conversationId}} {{trigger.body.customer.email}} {{trigger.scheduledAt}}

Different trigger types provide different variable shapes. Use the Test button in the workflow builder to see a sample payload for your chosen trigger.

Combining Triggers

Each workflow has exactly one trigger. If you need to react to multiple events, create separate workflows or use the Event trigger with a broad event pattern and add a Condition node to filter.