SabNode
    ProductsFeaturesEnterpriseCustomersPartnersResourcesPricing
    AllConversationsAutomationCustomer DataGrowthAnalyticsCommerceDeveloperExplore products
    1. Home
    2. Features
    3. Automation
    4. Triggers
    SabFlow · Automation

    Every automation needs a start. We have 30 of them.

    Triggers are the entry point to any flow. SabFlow ships with 30+ native trigger types — message received, order paid, contact created, segment entered, cron schedule, signed webhook — plus a generic HTTP trigger for anything custom. Same observability, same retry policy, regardless of how the flow started.

    • 30+ native triggers across channels and systems
    • Signed webhook URLs with HMAC verification
    • Cron syntax with timezone awareness
    • Replay any trigger event from the inspector
    Feature signature
    SabNode . SabFlow
    Triggers

    Fire a flow on order paid, message received, webhook call or schedule.

    Live
    30+
    native trigger types out of the box
    <2s
    p95 trigger-to-flow-start latency
    100%
    replay coverage on failed events
    The problem

    The trigger is where automation projects die

    Ask any team that has tried to ship a sophisticated automation and they will tell you the same story: the trigger broke. Shopify changed a webhook schema and abandoned-cart stopped firing. The cron job ran in UTC but the business operates in IST so Diwali greetings landed at 4:30am. A retry loop hammered the API and got the account rate-limited. A test webhook from a developer's laptop fired in production and sent 2,000 customers a duplicate offer.

    These failures share a root cause: most platforms treat triggers as an afterthought. You pick from a dropdown, paste a URL, and hope. There is no replay, no schema validation, no visibility into what actually fired versus what should have. When something breaks, you discover it from a customer complaint three days later.

    SabFlow treats triggers as a first-class observable surface. Every incoming trigger event is captured, validated, logged and replayable. Failed triggers do not vanish — they land in a dead-letter view with the full payload, retry button, and the exception trace. Timezone is always explicit. Webhook signatures are mandatory for the integrations that support them. The trigger is the front door of your automation — we treat it like one.

    What it is

    Triggers, in depth.

    SabFlow triggers fall into five categories: channel events (message received, message read, button clicked on WhatsApp, Instagram, Web Chat, Email), commerce events (Shopify order paid, Stripe payment succeeded, Razorpay refund initiated, catalog item updated), CRM events (contact created, segment entered, tag added, deal stage changed, custom field updated), schedules (one-off datetime, cron expression, recurring relative — "every Tuesday at 9am IST"), and integrations (signed webhook URL, REST API call, third-party native triggers from HubSpot, Pipedrive, Calendly, Google Sheets, etc.).

    Every trigger emits a typed payload that downstream nodes can reference via JSONPath. A Shopify order trigger gives you `{{trigger.order.id}}`, `{{trigger.order.line_items}}`, `{{trigger.customer.email}}` — full Shopify schema, validated on entry. A WhatsApp message trigger exposes `{{trigger.message.text}}`, `{{trigger.contact.phone}}`, `{{trigger.message.type}}` (text, image, document, button, list). This typing prevents the classic "I thought that field existed" bug at design time.

    Multiple triggers on one flow are supported and common. A "VIP customer onboarding" flow might trigger on (a) a Shopify customer with lifetime spend > ₹50,000, (b) a manual tag added via the CRM, or (c) a webhook from your loyalty program. All three paths converge into the same flow with the same downstream logic — you maintain the journey once, accept input from many sources.

    For technical teams, the generic Webhook trigger is the universal escape hatch. We give you a signed URL with HMAC-SHA256 signature verification, a JSON schema you can declare, and a payload validator that rejects malformed input at the door. The schema is enforced at runtime so a breaking change in your upstream system surfaces immediately as failed-validation events, not as a flow running on garbage data.

    Capabilities

    Everything you get with Triggers.

    7 capabilities
    01

    Channel message triggers

    Fire on inbound WhatsApp message, Instagram DM, Web Chat opened, Email received. Filter by message type (text, image, document, button payload, list selection), by keyword, by contact segment, or by the channel-specific metadata like template name or campaign ID.

    02

    Commerce native triggers

    First-class support for Shopify (order paid, abandoned checkout, refund, product update), Stripe (payment succeeded, subscription renewed, invoice failed), Razorpay (payment captured, refund processed), WooCommerce and Magento. Schema-validated, retry-safe, idempotent.

    03

    CRM event triggers

    Contact created, contact updated (per field), segment entered or exited, tag added or removed, deal stage moved, custom field changed. Dynamic segments emit enter/exit events as the segment definition matches new data — no manual polling.

    04

    Scheduled triggers

    One-off (fire at 2024-12-31 17:00 IST), recurring cron (`0 9 * * MON-FRI`), relative recurring ("every 6 hours starting tomorrow"). All schedules honor a configurable timezone, including per-contact timezone for personalised sends.

    05

    Signed webhook triggers

    Each webhook trigger gets a unique URL with HMAC-SHA256 signing. The upstream signs the payload with a shared secret; SabFlow verifies before firing. Declare a JSON schema and malformed requests are rejected with a 400 before they touch the flow.

    06

    Dead-letter queue and replay

    Failed triggers — validation failure, downstream node error, rate limit — land in the DLQ with the full payload, the exception, and the retry button. Replay one event or a batch. Audit log shows who replayed what.

    07

    Idempotency keys

    Every trigger event carries an idempotency key derived from the source. Duplicate Shopify webhooks (which happen) do not double-fire the flow. Custom webhooks can pass an `Idempotency-Key` header that SabFlow honors across a configurable dedup window.

    Use cases

    Built for the way teams actually work.

    E-commerceCase 01

    Order-paid → thank-you template

    Trigger on Shopify order.paid. Filter for orders above ₹1,000 to skip low-value sends. Fire a WhatsApp template with order summary and tracking link. Idempotent against duplicate webhooks. Replays available for the rare missed event.

    SaaSCase 02

    Cron daily standup pull

    Cron trigger at 9am IST weekdays. HTTP Request to GitHub for yesterday's PRs, AI Generate node summarises into a standup post, Send to Slack channel. Replaces a 15-minute manual ritual. Skips weekends and holidays via a custom calendar.

    D2CCase 03

    Segment-entered → re-engagement

    Dynamic segment "last purchase > 90 days ago and total spend > ₹5,000" fires segment-entered trigger. Sends a personalised WhatsApp template with a curated set of products via AI Generate. Recovers churning customers without manual list-pulling.

    LogisticsCase 04

    Webhook trigger from custom ERP

    Internal ERP fires a signed webhook on shipment-out-for-delivery. JSON schema declared with `tracking_id`, `eta`, `customer_phone`. SabFlow validates, looks up the contact, sends WhatsApp with live tracking. End-to-end latency under two seconds.

    SaaSCase 05

    Stage-change → onboarding handoff

    Trigger on CRM deal stage moving to "Won". Creates the customer record, assigns onboarding manager via Slack, triggers a 30-day onboarding flow. Single trigger replaces a five-person handoff that used to rely on Slack DMs and prayer.

    How it works

    From signup to first send in minutes.

    Triggers is included on every SabNode workspace. No separate billing, no extra setup, flip it on from your workspace settings.

    1. 01

      Pick the trigger source

      Choose from channels, commerce, CRM, schedule or custom webhook. The selector previews the payload shape so you know what fields the downstream flow can use.

    2. 02

      Configure filters

      Narrow firing conditions — only orders above ₹1,000, only contacts in segment X, only on weekdays. Filters run before the flow starts, saving execution cost.

    3. 03

      Validate the payload schema

      For webhook triggers, paste a sample payload and declare a JSON schema. Future events failing the schema are rejected with a 400 instead of poisoning the flow.

    4. 04

      Test with a fired event

      Hit Send Test from the trigger config. A synthetic event runs through the flow in debug mode. Or replay any historical event from the trigger log.

    5. 05

      Monitor the trigger log

      Every fire, success or fail, lands in the trigger log with payload, latency and downstream result. Filter by status, replay the failures, set up alerts on DLQ depth.

    Plays well with

    Works with the tools you already ship on.

    Connect directly with your existing stack or leverage the Platform Core tools to extend capabilities natively.

    ShopifyStripeRazorpayHubSpotPipedriveCalendlyGoogle SheetsMeta WhatsApp Cloud API

    Platform Core Tools

    Enhance this feature with deep integrations into our core infrastructure. Connect via API, utilize webhooks, or embed directly using our SDKs.

    • Unified Dashboard Apps

      Manage all settings seamlessly within the core UI.

    • Developer APIs and Webhooks

      Extend functionality with custom automated workflows.

    Frequently asked

    Questions about Triggers.

    Can't find what you're looking for? Talk to our team.

    What happens if Shopify retries a webhook?
    SabFlow uses the `X-Shopify-Webhook-Id` header as an idempotency key with a 24-hour dedup window. The first delivery fires the flow; subsequent retries within the window log the duplicate and skip execution. This matches Shopify's own at-least-once delivery semantic without doubling up customer messages — a common source of complaints with naive integrations.
    How are timezone-sensitive cron schedules handled?
    Every cron trigger has an explicit timezone configured (IANA, e.g. Asia/Kolkata). The scheduler computes fire times in that zone and accounts for DST changes automatically. For per-contact personalisation, the Wait node in the flow can pause until the contact's local 9am, which uses the contact's timezone field. Diwali at 4:30am no longer happens.
    Can I have multiple triggers on one flow?
    Yes. A flow can declare any number of triggers, of any mix of types. All triggers funnel into the same Trigger node at the top of the canvas with a discriminator on `trigger.source`. Downstream branches can switch on the source if needed, or treat them uniformly. This is the pattern for "any of these three things happens → run the same onboarding".
    How do I verify webhook signatures?
    Every webhook trigger has a per-trigger secret. The upstream signs the raw body with HMAC-SHA256 using that secret and sends it in the `X-SabNode-Signature` header. SabFlow verifies before parsing JSON; failures return 401 and never reach the flow. For Shopify, Stripe, Razorpay and other native integrations, we handle signature verification with each platform's own scheme automatically.
    What is the throughput limit for triggers?
    The platform sustains 5,000 trigger events per second per tenant on the standard plan and 50,000 per second on enterprise. Bursts above the limit queue with elastic backoff rather than dropping. If you expect a high-volume burst (e.g. campaign-driven traffic), let us know and we will pre-scale your tenant's ingestion fleet.
    Can a flow trigger another flow?
    Yes, three ways. (1) The Subflow node inlines another flow with named inputs and outputs — the called flow runs in the parent's context. (2) The Trigger Flow node fires another flow asynchronously and continues. (3) Webhook Out node calls the target flow's webhook URL. Use Subflow for synchronous logic reuse, Trigger Flow for fire-and-forget, Webhook Out for cross-tenant or external systems.
    How long are trigger events retained?
    90 days of full payload retention on standard plans, 13 months on enterprise. After that, the event metadata (timestamp, status, duration) stays for analytics but the payload is purged. You can extend retention or set up automatic export to your S3 bucket via the export integration if you need longer-term audit.
    Related features

    Stronger when stacked.

    Browse every feature
    Flow Builder
    Drag-and-drop canvas with 42 node types. Triggers → conditions → actions, no code.
    Read more
    Webhooks
    Inbound and outbound, with retries, signing and dead-letter queue.
    Read more
    Scheduler
    One-off and recurring sends in the recipient's local timezone.
    Read more
    REST API
    Typed REST + webhooks for every object. SDKs for JS, Python and Go.
    Read more
    SabFlow · Automation

    Ship triggers into production this week.

    No credit card. No sales call required. Spin up a workspace, plug in a number, and your team is live in under an hour.

    Start free Book a demoSee pricing
    SabNode

    SabNode is the operating layer for customer conversations. Chat, automation, CRM, broadcasts, commerce and AI in one workspace.

    Talk to sales
    Conversations
    Browse
    Automation
    Browse
    Customer Data
    Browse
    Growth
    Browse
    © 2026 SabNode. All rights reserved.
    PrivacyTermsStatusContact