Automated Workflows

Every follow-up,on autopilot — for real.

Drag-and-drop multi-step journeys, orchestrated by Temporal. 11 trigger types, 10 actions, 5 delay modes, and an AI generator that turns one sentence into a complete workflow — ready to publish.

The Problem

Follow-up is the work no one has time for

Reps forget the two-week nudge. Customer success never writes the renewal reminder. Marketing ships a sequence once a quarter. Meanwhile your CRM already knows a tag changed, a meeting was booked, and a score crossed a threshold — it just sits there and doesn't act.

11

trigger types — every CRM signal

Tags, fields, stages, scores, forms, tasks, dates, meetings

30 days

durable workflow window

Multi-week drips survive restarts and deploys

8

AI starter prompts

One sentence produces a full workflow on the canvas

The Canvas

Design workflows the way you think about them

Drag triggers, actions, delays, and conditions onto a ReactFlow canvas. Color-coded nodes, two-port branching on conditions, double-click to edit. Positions, edges, and configs are all round-trippable JSON.

Triggers

Green nodes

11options

Actions

Blue nodes

10options

Timing

Amber delays

5options

Logic

Purple branching

12options

Branching is visually unambiguous

Condition nodes have two output handles — a green "Yes" port and a red "No" port. Edges encode which branch they follow, so you can see at a glance where a contact goes when the condition fires.

Triggers & Actions

Every CRM signal fires a workflow. Every workflow can do real work.

Tag changes, field changes, pipeline stage moves, lead-score thresholds, form submissions, task completion, date proximity, parent-object changes, and meeting bookings are all first-class triggers. No custom-event plumbing required.

11 Triggers

When a workflow starts

Manual enrollment
Tag added
Tag removed
Field changed
Form submitted
Pipeline stage changed
Lead score threshold
Task completed
Date-field proximity
Parent object changed
Meeting booked

10 Actions

What a workflow does

Send email
Add tag
Remove tag
Update contact field
Create task
Send notification
Add to list
Enroll in cadence
Call webhook
Create Autotask object
Timing

Five delay modes, including the one other tools miss

Most marketing automation tools give you one kind of wait. Gabriel gives you five — and the fifth reads a datetime out of the enrollment's own context, so reminders schedule relative to a booked meeting without hand-rolled cron.

1

Fixed duration

Wait N minutes, hours, days, or weeks.

3 days
2

Until time of day

Wait N units, then hold until a specific time.

2 days, then 9:00am
3

Specific datetime

Wait until an absolute calendar moment.

Dec 25, 10:00am
4

Until contact date field

Anchor to a contact's date field, plus or minus an offset.

3 days before birthday
5

Before context date

Read a datetime from enrollment context (e.g., meeting time) and schedule relative to it.

24h before meeting.scheduledAt

Business-hours-only and skip-if-past, on every delay

Constrain any delay to working hours with a flag. Prevent delays from firing instantly when the computed target is already in the past. Set a tenant-wide timezone once and every workflow schedules against it.

Logic

Branch on anything the CRM knows — including email engagement

Evaluate contact fields, nested relations (company.name, assignedTo.email), and engagement signals (opened, clicked). Nested path access is null-safe. Every condition routes to one of two ports, so branches stay unambiguous.

12 operators

equalsnot_equalscontainsnot_containsis_emptyis_not_emptygreater_thanless_thanhas_tagnot_has_tagis_trueis_false

if emailEvent.opened is_true

→ yes: add tag "engaged"

→ no: wait 3 days, send follow-up

Engagement branching, in the same workflow

The checkEmailEngagement activity lets a condition step ask "did this contact open the last email in the past N hours?" — so you can send a different next email based on whether the previous one landed. No separate tool, no re-enrollment gymnastics.

Temporal Orchestration

A three-week drip is one durable object —not a pile of cron jobs

Every enrollment launches a Temporal workflow on the automation-queue task queue. Activities run with a 30-second timeout and a 3-attempt retry policy with exponential backoff. Delays use Temporal's durable sleep, so waiting two weeks holds no resources and loses no state.

30-day workflow execution window
3 retry attempts with 2× backoff (1s, 2s, 4s)
Pause, resume, and cancel signals per enrollment
contextData travels with the enrollment for reminders
Every step writes an EnrollmentLog audit row

Enrollment · Acme Corp

ACTIVE
Meeting Bookedcompleted
Delay · 24h beforecompleted
Send reminder emailcompleted
Opened email?running
Add tag · engagedpending
Pause
Resume
Cancel
Workflow · automation-e12f4Durable · 30d window
AI Workflow Generator

From empty canvas to live workflow in one sentence

Describe the cadence you want — 'three-touch follow-up for SDRs after a demo' — and Gabriel's AI generator produces a full workflow: name, description, triggers, steps, edges, and settings. Drops directly into the builder for editing.

One sentence in

Pick a workflow goal — nurture, onboard, reengage, followup, upsell, retain, or qualify — and optionally describe the target audience.

"Three-touch follow-up for SDRs after a product demo, branching on email opens."

Response includes provider, model, and estimated-cost metadata — no black box.

8 one-click starter prompts

SDR Cadence
Lead Nurture
Onboarding
Re-engagement
Meeting Follow-up
Event Follow-up
Quote Follow-up
Referral Request
Email Engine

Deliverability and compliance, built in

Emails sent from workflows run through Gabriel's email service: merge fields replaced, CAN-SPAM footer auto-injected with unsubscribe, open pixel JWT-signed, outbound links rewritten for click tracking, and every event stored as an EmailEvent row.

Merge fields across three namespaces

contact.*, user.*, and tenant.* tokens replaced at send time. Template support or inline subject and HTML.

Auto CAN-SPAM footer

Unsubscribe link injected on every message. Users never configure a footer or an opt-out page.

JWT-signed open pixel

Open tracking that can't be spoofed, with delivered, opened, clicked, bounced, and unsubscribed timestamps per event.

Click tracking

Outbound links rewritten and the clicks array stored per event — URL and timestamp — for downstream analytics.

Bounce and unsubscribe handling

Resend webhook callbacks update deliveredAt, openedAt, clickedAt, bouncedAt, and unsubscribedAt as events arrive.

Feeds lead scoring

Opens, clicks, and workflow activity flow back into Gabriel's scoring engine. Automations don't just act on scores — they improve them.

Analytics

See not just 'did it work' — see which step is losing people

Every automation exposes three layers of analytics, all filterable by 7d, 30d, 90d, or all time. A tenant-wide summary rolls the same metrics across every automation and ranks a top-automations leaderboard by enrollment volume.

Summary analytics

Totals and rates for enrollments (active, completed, error, exited, completion rate) and email (delivered, opened, clicked, bounced, unsubscribed, plus derived rates).

Per-step analytics

Each step reports started, completed, failed, skipped, and success rate — with per-step email metrics on send steps. See exactly which node is losing people.

Timeline

Date-bucketed series of enrollments, completions, emails sent, opens, and clicks — ready to chart. Filter by 7d, 30d, 90d, or all time.

Enrollments

Completion rate

Delivered

Opened

Clicked

Bounced

It Just Works

Auditability, attribution, and control — out of the box

Every step execution is logged. Every enrollment remembers which signal fired it. Re-enrollment cooldowns, duplicate handling, and system-automation protection are tenant settings — not bespoke logic.

EnrollmentLog on every step

Each step execution writes a row with status, result JSON, error string, and timestamps. Debugging is reading a list of rows, not trawling application logs.

Attribution on every enrollment

The triggeredBy field records exactly which signal fired — tag:qualified:added, field:status:changed, leadscore:50 — so conversions link back to the trigger source.

Protected system automations

Gabriel-provisioned flows (meeting reminders, welcome sequences) are flagged isSystem and can't be deleted. Foundational behavior stays foundational.

Re-enrollment cooldowns built in

allowReEnrollment, reEnrollmentCooldownDays, and onDuplicateTrigger (skip / restart / error) are tenant settings — not bespoke logic in every workflow.

Non-blocking trigger detection

A Prisma middleware scans active automations when contacts change, and runs enrollment via setImmediate so the originating write never blocks.

Bulk enrollment at scale

Enroll up to 1,000 contacts per API request, or kick off from a saved list in a single call.

Why Gabriel

Automation that acts like production infrastructure

Most CRMs ship automation as a simple 'if this then email' builder. Gabriel gives you a visual canvas, a durable orchestrator, engagement branching, and the audit trail a real operations team needs.

Durable, Temporal-backed execution

Workflows run on Temporal — not a polling cron or a job queue. A three-week drip is one workflow object, and state survives process restarts, deploys, and host failures.

30-day windows with durable sleeps

Delays use Temporal's sleep() primitive, not activity timers. Waiting 14 days between steps costs nothing — no resources held, no drift.

Pause and resume one contact mid-flight

Three workflow signals (pause, resume, cancel) let you intervene on a single enrollment without touching the automation definition. Most tools make you yank everyone or no one.

Five delay modes — including before-context-date

Schedule relative to a datetime carried in the enrollment itself (e.g., 24 hours before a booked meeting). That's how you build real reminders without hand-rolled cron.

Branch on email engagement, in the same workflow

Ask "did this contact open the last email within N hours?" and follow a different path if they did. No separate tool, no re-enrollment gymnastics.

Deliverability and compliance, zero setup

Resend handles sending. Gabriel auto-injects a CAN-SPAM footer with unsubscribe, JWT-signs the open pixel, and rewrites links for click tracking. You never configure a pixel.

Built for your role

One automation engine. Every team gets what they need.

Sales Teams

Drop a tag, book a meeting, or move a deal to a new stage — the right follow-up fires on its own. Reps wake up to a prioritized task list, not a cold pipeline.

Sales Managers

Define the cadences your team should run once, and let Gabriel enforce them on every lead. Per-step analytics show exactly where coaching is needed.

Revenue Operations

Durable Temporal workflows, 30-day windows, 3-attempt retries, and a full EnrollmentLog audit trail. Production-grade observability without standing up jobs or queues.

Customer Success

Context-aware delays — '24 hours before the renewal meeting,' '3 days before the contract anniversary' — turn the CRM into a proactive account manager.

Marketing

Forms, tags, lead-score thresholds, and list additions fire automations directly. Branch on opens and clicks inside the same workflow. No engineering hand-off required.

Day-One Value

Open the AI Workflow Generator, describe the cadence in a sentence, and a complete workflow appears on the canvas — ready to publish in minutes.

Specifications

Engineered for real automation operations

Temporal-backed, tenant-scoped, and ready to run multi-week sequences. The numbers behind every workflow.

Trigger types11
Action types10
Delay modes5 (including before-context-date)
Condition operators12
Workflow execution window30 days
Activity step timeout30 seconds
Retry policy3 attempts, 1s initial, 2× backoff
Bulk enrollment cap1,000 contacts per request
Workflow control signalsPause, resume, cancel
Analytics periods7d · 30d · 90d · all
Email providerResend
Email trackingJWT-signed open pixel + link rewrite
CAN-SPAM footerInjected automatically
Merge field namespacescontact.* · user.* · tenant.*
AI starter prompts8 one-click templates
AI workflow goalsNurture, onboard, reengage, followup, upsell, retain, qualify
Automation engine included in every plan

Describe it.Publish it. Done.

Start your free trial, open the AI Workflow Generator, and watch a full multi-step cadence land on the canvas. Tweak or publish — and every follow-up, reminder, and nudge runs on its own.

14-day free trial
No credit card required
AI workflow generator included
Cancel anytime