Workflow Automations

    Workflow Automation — Without Zapier

    Build 'if this happens, do that' rules visually. 12 trigger events, 7 action types, AND-only conditions, per-rule cooldowns, opt-out enforcement, full audit trail. Transactional outbox guarantees zero event loss even if the server crashes mid-fire.

    No separate subscription
    No third-party hosting
    No per-task billing
    Zero event loss
    No-Code
    Audit Log
    Zero Event Loss
    Cooldown + Caps
    No credit card required
    Explore features
    Core Capabilities

    Everything You Need to Automate. Nothing You Have to Host.

    Visual no-code builder, 12 trigger types, 7 action types, safety guardrails, full audit log, and a transactional outbox that guarantees zero event loss — all built in, no integrations required.

    3-Pane Builder

    WHEN trigger / IF conditions / THEN actions. Same visual model as the Projects workflow editor. Drag-and-drop reordering, no JSON, no API keys.

    12 Trigger Types

    Booking events, payment received, contact created/tagged, project run events, scheduled cron — anything that happens in the app can fire an automation.

    7 Action Types

    Send SMS / email / WhatsApp, create task, add/remove tag, in-app notification — all from one rule, in any order, with per-action delays.

    Built-In Safety

    Cooldown windows, daily caps, opt-out enforcement, test-fire that routes to staff phone. Defaults protect you before you remember to configure them.

    Visual Builder

    WHEN / IF / THEN — Three Panes, Zero Code

    The builder mirrors how operators already think about automation. Pick a trigger (WHEN something happens), add optional conditions (IF certain things are true), then queue actions (THEN do these). No JSON, no API keys, no external SaaS to configure.

    3-Pane Visual Editor

    WHEN palette / IF condition rows / THEN action list. Drag-and-drop reordering with inline editing, undo/redo, autosave drafts, and real-time preview.

    • Visual canvas with drag-and-drop reordering
    • Inline editing — click any field to change it
    • Undo/redo for every builder action
    • Autosave drafts so you never lose partial work
    • Real-time preview of condition logic
    • No code involved at any step

    Configurable Per-Action Delays

    Fire actions immediately or after configurable wait periods. Chain SMS → email → WhatsApp in sequence with different delays between each.

    • 0 minutes to unlimited delay per action
    • Per-action delay configuration
    • Sequence ordering respected across delays
    • Parallel actions when delay is identical
    • Run-time scheduling visible in audit log
    • Audit retention for all scheduled fires

    Multi-Action Sequences

    One trigger fires SMS + email + WhatsApp + task + tag updates. Chain unlimited actions with per-action delays and conditional skips.

    • Chain unlimited actions from one trigger
    • Ordered sequencing with per-action delay configuration
    • Conditional skip per action based on runtime state
    • Channel fanout (send to multiple channels simultaneously)
    • Automation-name tagging on every created artifact
    • Per-action outcome visible in audit log

    Inactive by Default

    New automations are paused until explicitly enabled — preventing accidental fires on incomplete configs. Test-fire validates before you go live.

    • Prevents accidental fires on draft automations
    • Draft state persists until you explicitly toggle on
    • Test-fire validation before activating
    • Audit logging on every toggle with acting user
    • Ramp-up via daily caps while you watch metrics
    • Manager-only toggle prevents accidental enables
    12 Trigger Types

    12 Trigger Types

    Anything that happens in the app can fire an automation. The catalog covers the events operators most often want to automate around.

    Booking Events (4 Triggers)

    booking_created / booking_cancelled / booking_completed / booking_no_show — the four lifecycle events operators automate most.

    • Per-service filter (only fire for 'Facial')
    • Time-window filter (fire only within 24 h of appointment)
    • Technician filter for staff-specific flows
    • Status-based skip if booking is in exception state
    • Multi-booking aggregation for back-to-back sessions
    • No-show flag propagated to triggered actions

    Payment + Contact Events

    payment_received (any successful charge above optional threshold), contact_created (new customer record), contact_tagged (specific tag applied).

    • Amount threshold filter on payment_received
    • Payment processor filter (Stripe, Cardknox, etc.)
    • Tag whitelist for contact_tagged trigger
    • New-vs-returning customer detection
    • Multi-channel attribution on contact_created
    • Lifecycle stage propagated to actions

    Project Run Events

    run_started / step_completed / run_completed for any project template — ideal for onboarding sequences and multi-step intake flows.

    • Per-template filter to scope the trigger
    • Per-step filter for granular step completion events
    • Customer-state aware (reads project context vars)
    • Magic-link gating supported in triggered messages
    • Status-change webhook on project state transitions
    • Project-completion tally for reporting

    Scheduled (Cron)

    Daily fire at 9 AM in the location's timezone — for morning summaries, follow-up sequences, and retention nudges.

    • Fires in location-local timezone automatically
    • Weekday / weekend filter
    • Holiday calendar respect (configurable)
    • Hour-of-day offset configurable per rule
    • Recurring runs with configurable frequency
    • Scheduled-only branch for ops automations
    7 Action Types

    7 Action Types

    From a single trigger you can text, email, WhatsApp, tag, task, and notify — in any order, with any delays, all from one rule.

    Send SMS / Email / WhatsApp

    Three messaging actions with template selection or inline body. Merge fields, central template library, and compliance built in.

    • Merge fields supported ({{first_name}}, {{service}}, etc.)
    • Central template library accessible from inline body editor
    • Character / segment count for SMS before you save
    • A2P 10DLC compliance for SMS (sender validation enforced)
    • WhatsApp template-only per Meta rules (pre-approved messages)
    • Sender-identity respect — uses configured FROM address/number

    Create Task

    Auto-generate a task with title, description, assignee, priority, and due date — directly from a booking event or payment trigger.

    • Assignee per role or per named user
    • Due-date offset from trigger event (e.g. +2 days)
    • Priority levels (low / medium / high / urgent)
    • Task-source tagging with automation_id for traceability
    • Bulk-action queue for high-volume triggers
    • Multi-assignee support per task

    Add Tag / Remove Tag

    Mutate contact tags directly from any trigger — build lifecycle segments automatically as customers move through your funnel.

    • Tag whitelist configurable for safety
    • Role-based gating on tag modification
    • Audit log per tag change with automation_id
    • Multi-tag in one fire (add/remove several at once)
    • Conditional skip if tag already present/absent
    • Segment cascade — tag changes update CRM segments live

    Notify In-App

    Bell-icon notification to staff — per role or per user, with severity levels and push-notification fallback.

    • Per-role or per-user routing
    • Severity levels (info / warning / urgent)
    • Batched delivery to prevent notification flood
    • Dismissal tracking in notification center
    • Push-notification fallback when app is backgrounded
    • Notification preference respect per user settings
    Safety Defaults

    Safety Defaults That Prevent Disasters

    Automations are powerful enough to spam every customer accidentally. We don't trust the operator — or ourselves — to remember every guardrail. The defaults catch you.

    Per-Rule Cooldown

    Default 60 minutes per (automation, contact) pair — prevents rapid re-fire when a customer triggers the same event twice in quick succession.

    • Prevents rapid re-fire on the same contact
    • Configurable per rule (0 = disabled, or any minutes value)
    • Default 60 minutes keeps operators safe out of the box
    • Manual override with required reason logged to audit
    • Fire-history check happens before action dispatch
    • Cooldown state visible in automation's run log

    Daily Cap Per Automation

    Configurable max fires per day per automation. Hard system cap of 5,000 fires/company/day prevents runaway loops.

    • Hard system cap: 5,000 fires per company per day
    • Soft warning alert at 80% of configured cap
    • Fire-rate dashboard shows intraday pace
    • Anomaly alerts on unusual volume spikes
    • Manager override with reason for planned campaigns
    • Auto-pause on cap overflow with alert notification

    Opt-Out Enforcement

    Every SMS / email / WhatsApp action respects customer opt-out status — enforced automatically, not relying on you to check before sending.

    • TCPA compliance for SMS opt-outs enforced at dispatch
    • CAN-SPAM compliance for email unsubscribes
    • GDPR consent check for EU contacts
    • Per-channel opt-out tracked independently
    • Attempted sends to opted-out contacts logged (not sent)
    • Automatic unsubscribe link injection in every message

    Test Fire

    Routes all messaging to the operator's phone/email — never the customer's. Validates conditions and previews action sequence before you go live.

    • Dry-run mode — no real-customer impact
    • Full payload preview for each action
    • Condition evaluation shows which branch would fire
    • Action sequencing and delays visible in test output
    • Manager-only access to test-fire controls
    • Test-fire results logged to audit for review
    Audit Log

    Full Audit Log, Manual Re-Fire

    Every automation fire is recorded with the trigger payload, condition results, per-action outcomes, and timestamps. Drill into "why did this fire?" and "what did it do?" — and re-fire a single instance manually if needed.

    Every Fire Recorded

    Trigger event, condition results, per-action status — all captured with millisecond timestamps and the full trigger payload.

    • Timestamp on trigger receipt and each action dispatch
    • Triggering entity (contact, booking, payment ID)
    • Full action sequence with per-action status
    • Send results per messaging action (delivered / failed)
    • Payload snapshot at time of trigger
    • Retention: 90 days rolling

    Searchable + Filterable

    Filter by automation name, trigger entity, date range, or status. Full-text search across trigger payloads and action outcomes.

    • Full-text search across all log fields
    • Date-range picker with time-zone aware display
    • Status filter: success / partial / failure
    • Per-action drill-in from the run summary row
    • Export to CSV for offline review
    • Saved views for recurring audit queries

    Manual Re-Fire

    Retry a failed instance directly from the log — one click re-evaluates conditions and re-dispatches actions with a fresh audit entry.

    • One-click retry from the failed run row
    • Condition re-evaluation at retry time
    • Optional payload edit before re-fire
    • Audit log entry created for every retry attempt
    • Retry-count cap prevents infinite retry loops
    • Manager-only access to the re-fire control
    Transactional Outbox

    Transactional Outbox = Zero Event Loss

    Real talk: most "automation" tools lose events when servers crash. We don't. Every trigger writes to a transactional outbox, the dispatcher processes sequentially with retry, and crashes resume from the last unprocessed event.

    Trigger Events Written Transactionally

    Every trigger event is written to the outbox in the same database transaction as the originating event — no events lost, no double-fires.

    • Atomic write with the originating database event
    • No lost events even on mid-transaction crash
    • No double-fires — idempotency key per event row
    • Ordered queue preserves event arrival sequence
    • Persistent storage — survives server restarts
    • Sub-second dispatch latency from trigger to outbox

    Sequential Dispatcher

    Polls every minute, processes in FIFO order. Retry-with-backoff on transient errors, configurable concurrency, crash-safe resume.

    • FIFO queue — earliest event processed first
    • Per-rule serialization prevents out-of-order fires
    • Retry-with-backoff on transient external errors
    • Crash-safe — dispatcher resumes from last checkpoint
    • Configurable concurrency per deployment
    • Manual dispatch trigger for on-demand processing

    Resume from Outbox

    On next start after any crash or deploy, the dispatcher picks up from the last unprocessed outbox entry — no manual recovery, no event replay risk.

    • No manual recovery steps after crash or restart
    • No event replay risk — processed events marked done
    • Audit log of every restart and resume event
    • Dispatch-rate monitoring dashboard
    • Alert on outbox backlog exceeding threshold
    • Immune to deploy churn — survives rolling restarts

    Ready to Automate Without Zapier?

    Set up your first automation in minutes. No external accounts, no per-task billing, no hosting. 12 trigger types, 7 action types, safety guardrails, and zero event loss — built in.

    No credit card required
    Setup in minutes
    Zero event loss

    Popular with these businesses