Workflows
The complete guide to Workflows — triggers, every action and controller step, branching and merges, the canvas, monitoring, send limits, templates, and import/export.
A workflow is an automated, multi-step journey for your creators. It starts with a trigger — what has to be true for a creator to enter — and then walks each creator through the steps you lay out on a canvas: send a DM, send a Target Collab invite, wait three days, check whether they replied, branch, send an email, add them to a list, exit. You build it once; it runs on its own, creator by creator.
Workflows are a Scale plan feature. You'll find them under Outreach → Workflows.
Workflows vs. automations vs. email campaigns
All three send messages, but they answer different questions.
- Automations do one thing to an audience on a schedule — "DM everyone whose sample shipped." One action, one audience, repeating.
- Email campaigns are the email-only equivalent, with their own sender and template management.
- Workflows chain several actions into a journey, with timing and branching between them — "invite them, wait 3 days, if they haven't replied send a follow-up DM, if they have add them to my Warm list, then exit."
Use a workflow the moment your outreach has more than one step, or the moment "what happens next" depends on what the creator did.
The workflows list
Outreach → Workflows lists everything you've built, with live numbers on each row:
- Status — Active (running) or Paused. Every new workflow saves as Paused.
- Steps — how many steps the graph contains.
- Triggered — how many creators have entered this workflow, ever.
- Messages — confirmed sends, plus how many are still queued ("remaining"). An amber dot means sends are pending.
- Last synced — the last time the executor evaluated this workflow. Hover it to see the sync status.
- Last updated — when the workflow was last edited.
From each row you can activate or pause (the ▶/⏸ button), edit (the pencil, or just click the row), or open the ⋯ menu to Export as template or Delete. Deleting stops the workflow for every creator in it and can't be undone from the dashboard.
Above the table: Import a workflow template file, Browse templates to start from a Cruva starter, or New Workflow for a blank canvas. Search filters by name.
A Template badge on a row means the workflow came from a Cruva starter and you haven't edited it yet — it disappears the first time you touch it.
The builder at a glance
Click any workflow (or New Workflow) to open the builder. It's full-bleed, and the dashboard sidebar collapses to give the canvas room.
- Left rail — the palette: your Triggers at the top, then Actions, then Controllers. Click an item to append it to the end of the flow, or drag it onto any + on the canvas to insert it exactly there.
- Canvas — the graph, laid out automatically. You never position anything by hand: the layout follows the connections.
- Top left — back arrow, the workflow's name (edit it in place), the Active/Paused pill, the ⚡ triggered count, and a "dropped" count if creators have left early.
- Top right — undo, workflow settings (the description), Activate / Pause workflow, and Save.
- Bottom left — zoom controls.
- Right panel — appears when you select a step: its settings, and an Activity tab.
Triggers
Every workflow begins with exactly one trigger. There are two kinds, and the difference matters.
Trigger (creator matches)
The default. Any creator connected to your shop who matches your conditions enters the workflow, as soon as they match. This is a live query, not a one-time snapshot: as creators start matching, they enter.
Use it for lifecycle outreach — "every creator who reaches $1k GMV," "every creator whose sample request is still pending."
Recurring Trigger
Instead of reacting to a creator's state changing, a recurring trigger re-evaluates your conditions on a schedule and pulls in everyone who matches at that moment:
- Daily — every day.
- Weekly — pick the day of the week.
- Monthly — pick a day 1–31. Months with fewer days run on their last day, so "the 31st" still fires in February.
The day boundary follows the timezone you set under Daily send limits (see below), not UTC and not the creator's local time.
Use it for cadence outreach — "every Monday, DM everyone in my Warm list who hasn't replied in the last 7 days," or "on the 1st, email every creator with 5+ posts."
A creator normally enters a given workflow once. A recurring trigger is about catching newly matching creators on a cadence — it isn't a way to message the same person every week.
Conditions on the trigger
Both trigger types use the same condition builder. Add rules and combine them with AND (all must be true) or OR (any). On a trigger — and only on a trigger — leaving it empty is allowed and means matches everyone connected to your shop.
The available fields:
| Field | What it checks | Operators |
|---|---|---|
| Sample request status | Where their sample request stands. A Look at picker chooses whether any of their requests counts (default) or only the latest request per product — so a creator whose first request for a product was rejected and whose second shipped reads as shipped | is any of / is none of |
| Sampled products | Which products they've sampled | is any of / is all of / is only / is not |
| Shop GMV | Revenue they've driven for your shop | is at least / is at most |
| Shop Posts | Videos they've posted for your shop | is at least / is at most |
| Creator is in group | CRM group membership | is in / is not in |
| Creator is in list | List membership | is in / is not in |
| Creator replied | Whether they've replied to you | is (Yes / No) |
Shop GMV, Shop Posts and Creator replied also take a timeframe — "in the last 30 days" — so you can ask about recent behavior rather than all time.
Trigger settings: exclusions and send limits
Open the trigger and scroll past the conditions. These settings are workflow-wide, not per-step.
Exclusions — creators you never want this workflow to message. Exclude whole lists, groups, or the audiences of specific bots, and the exclusion is re-checked at every single send, not just at entry. There's also a single switch for Skip creators currently in another workflow, so two workflows can't talk over each other.
Daily send limits — a per-weekday cap, set independently for Messages (DMs) and Invites, because invites cost you product. Leave a day empty for no limit. Pick the timezone these days are measured in — and remember this same timezone decides when a recurring trigger's day starts.
Action steps
Actions are the steps that do something. They all continue to the next step when they're done.
Send DM
A direct message, built the same way a bot's DM is: a stack of message items you can reorder, where each item is a message, a product card, or an image. You need at least one item. Use [affiliate_name] anywhere in the copy and it's replaced with the creator's name.
Send TC Invite
A Target Collab invitation, with the full set of invite fields:
- Invite title and invite message — creators see both, so write them for creators, not for yourself.
- Products — what the collab is for.
- Free samples — whether the invite offers samples, and whether requests from it are auto-approved or held for review. Holding them for review is the safer default.
- Expiration — a relative window (for example 6 weeks) or a fixed date.
- Contact email, content type, and conflict handling for creators who already have a competing collab.
Send TC + DM
An invite and a DM together — the highest-response combination, because it lands in two different creator inboxes. The invite card is always the first item; your message items follow it.
Send Email
An email to the creator. Pick one or more sender emails (they rotate across sends, the same way email campaigns work), then write a subject and body — either plain text or an uploaded HTML document (up to 2 MB). [affiliate_name] works in both the subject and the body.
If we can't resolve an email address for a creator, the step is skipped for them and they continue to the next step rather than getting stuck.
Add to List
Drops the creator into one of your lists. Handy as the last step of a branch — "everyone who replied ends up in Warm creators" — so the rest of Cruva can act on that list.
Controller steps
Controllers don't message anyone; they shape the journey.
Wait
Pause the creator for a set amount of hours or days before the next step. This is what turns a pile of messages into a sequence.
Wait Until
Hold the creator until something becomes true — the same condition builder as everywhere else — with an optional maximum wait. The creator is released to the next step either when they match the conditions or when the max wait elapses, whichever comes first. With no maximum set, they wait indefinitely and are only ever released by matching.
Use it for "wait until they've posted," "wait until their sample ships," "wait until they reply — but no longer than 7 days."
Condition
Branches the journey. Evaluate a condition group and the creator continues down the True path or the False path — the two labelled arms on the canvas. Unlike a trigger, a condition step needs at least one rule; an empty one is flagged as incomplete.
Exit
Ends the journey for that branch, deliberately and visibly.
How paths end, split, and rejoin
- A branch that goes nowhere ends the journey. The canvas shows every loose end running down into a single shared Exit terminator, so you can always see where a path finishes. That's the same outcome as an explicit Exit step — the difference is that an Exit step is a thing you placed and can point other branches at.
- Branches can rejoin. Open the + on a branch and choose Merge into… to point that branch at a step that already exists. Both paths then continue through the same steps, and the step is drawn once with both arms feeding into it.
- The merge "+" — where several branches converge on one step, there's an extra + on the shared line just above it. Adding a step there inserts one step that every converging branch flows into, rather than one copy per branch.
- The graph must stay acyclic — a workflow always finishes. You can merge branches forward, but you can't loop a creator back into a step they've already passed.
- Steps that end up unreachable are dropped when you save.
Canvas controls
Adding steps
- Click a palette item to append it at the end of the flow (following True branches through conditions).
- Drag a palette item onto any + to insert it exactly there. The + grows as you drag near it.
- Or click a + and pick a step from the menu.
Working with a step
- Hover a step for its toolbar: edit (opens the settings panel), copy, delete.
- Copying puts a step on the clipboard; every + menu then offers Paste "<step>", so you can duplicate a configured DM instead of rebuilding it.
- Select a step and press Backspace or Delete to remove it. The steps below it reconnect automatically.
- ⌘Z (or the undo button) undoes the last graph change.
Moving around
- Drag empty canvas to pan; scroll to pan as well.
- ⌘/Ctrl + and ⌘/Ctrl − zoom in and out, ⌘/Ctrl 0 fits the whole workflow on screen. ⌘/Ctrl + scroll zooms too.
- The zoom bar sits bottom-left: −, the current zoom %, and +. Click the percentage to fit the workflow to the screen.
Saving, validating, and activating
Hit Save. If anything is incomplete, the save is blocked and the offending steps get a red ring on the canvas — an empty DM, an invite with no products, a condition with no rules, a recurring trigger with no day picked, a workflow with no trigger. Open a ringed step and the missing fields are highlighted.
A new workflow saves as Paused. Nothing sends until you hit Activate (in the builder, or the ▶ on the list). Pausing a running workflow leaves everyone exactly where they are — their journeys resume when you activate it again.
Editing a workflow that's already running
You can edit a live workflow. A few things to know:
- Creators keep their place. Saving bumps the workflow's version; creators already mid-journey stay at their current step and pick up your changes on their next move.
- You'll be warned about people standing on a step. Open a step with creators parked on it and the panel says so: "N creators are at this step right now. Saved changes apply to them on their next move." It's worth reading before you rewrite the DM 400 people are about to receive.
- Deleting a step with creators on it asks where they should go. Cruva pre-selects the conservative destination — the step's own next step, or the False branch for a condition, since nobody can earn a True on a condition that no longer exists — and you can override it: send them through a different step, or end their journey there. Deleting an empty step stays a single click.
Monitoring what happened
On the canvas, every step card carries live counts:
- entered · completed · waiting — how many creators have reached that step, how many have moved past it, and how many are sitting on it right now.
- The trigger shows the workflow-wide ⚡ triggered total.
- A dropped count appears top-left when creators have left early, broken down on hover into refused by TikTok, timed out, and step removed.
In the Activity tab (select a step, then switch to Activity) you get the real event feed, newest first — creator handle, what happened, when, and the error if there was one:
| Event | Meaning |
|---|---|
| entered | The creator entered the workflow or reached the step |
| queued | The send has been queued |
| sent | The send is confirmed |
| not sent | The send was released without sending — the reason is shown |
| skipped | The step was skipped for this creator |
| timed out | A wait expired before the creator qualified |
On the list page, the Messages column gives you confirmed sends and the queue depth per workflow, and Last synced tells you the executor is actually picking it up.
Sending behavior and limits
- Workflows drip — one send at a time per cycle, interleaved with your campaigns and bots. They don't burst.
- Your daily send limits (in trigger settings) cap DMs and invites separately, per weekday, in your chosen timezone.
- Cruva respects TikTok's own quotas. If your shop hits its weekly invite or message limit, the workflow parks until the quota resets instead of burning retries — you'll see a "waiting for your TikTok send limit to reset" note in Activity.
- Exclusions are re-checked at every send, so adding someone to an excluded list stops the messages already in flight for them.
Starting from a template
Browse templates opens the gallery of Cruva starters:
- Welcome new creators — DM every new creator, wait a few days, then follow up anyone who hasn't replied.
- Sample request nudge — target creators by their sample-request status, DM them, then nudge again a few days later.
- Invite + DM sequence — invite your higher-GMV creators to a collab with a DM, then follow up anyone who hasn't replied.
A starter arrives with the logic filled in — step order, wait timing, condition thresholds, invite behavior — and the copy and shop-specific references left blank on purpose. Those blanks show up as red rings, which is the checklist: fill in your message, pick your products, choose your list, save.
Exporting and importing workflows
Workflows travel between shops as template files.
Export — ⋯ → Export as template on any row downloads a .cruva-workflow JSON file.
Import — the Import button takes that file, validates it, and opens it in the builder as a new, unsaved workflow. Files should be well under 1 MB.
What survives the trip is the portable logic:
- every step, its type, and the order and branching between them
- wait timing and Wait Until timeouts
- condition and trigger fields, operators, timeframes, AND/OR, and non-shop-specific values (GMV thresholds, post counts, sample-request statuses, replied)
- recurring frequency and day
- invite behavior flags (samples, approval, expiration, content type)
- the shape of your DMs — how many items, of which kinds, in order
What's deliberately blanked, because it doesn't port between shops:
- all message copy — DM text, invite title and message, email subject and body
- list, group and product references
- sender emails and contact email
- images
So an imported workflow is a working skeleton with red rings where your content belongs. That's by design: it's much safer than silently carrying another shop's copy and product ids into your outreach.
Good to know
- Workflows are a Scale plan feature. The paywall isn't cosmetic — the API and the executor both refuse workflow work below Scale.
- A workflow can hold up to 200 steps.
- New workflows are paused. If nothing is sending, check the status first.
- The canvas layout is automatic. There's nothing to arrange, and nothing to break by arranging it — connections are the only thing that matter.
- Activity needs a saved workflow. Before the first save there's nothing to collect.
Build the journey once and the workflow handles the sequencing, timing, branching and limits for you. Then live in the Activity tab — it tells you what actually happened to each creator, which is the only number that matters.
Was this article helpful?
Related articles
- Affiliate CRM walkthroughAn end-to-end tour of the affiliate CRM — searching, filtering, segmenting, and re-engaging creators.
- CRM automations & groupsSegment creators with groups, then trigger automations like Sample Shipped and Content Unfulfilled.
- AI Auto RepliesSet up AI auto-replies that respond to creator DMs automatically — qualifying them and answering questions.
- Manage sample requestsApprove, reject, and ship samples — and use auto-approval rules so qualified creators clear without manual review.
- CRM ReportRead the affiliate-CRM reports to understand what's driving GMV, content, and creator activity.
- Approving and fulfilling sample requestsApprove sample requests in Cruva or Seller Center, use auto-approve, ship the product, and handle the common snags.