Workflows
Workflows allow you to automate actions based on player events and conditions.
What is a Workflow?
A workflow is an automated process that:
- Triggers on a specific event
- Checks conditions (optional)
- Executes one or more actions
Example: Send a welcome email when a player registers.
Key Terms
Know Your Customer (KYC) is the identity-verification process for a Player.
| Term | Meaning |
|---|---|
| Know Your Customer (KYC) | The identity-verification process a player goes through before certain actions (for example, withdrawals) are allowed |
| A/B Split | A node that sends a portion of players down variant A and the rest down variant B of the workflow, so you can compare which performs better |
| PWA | Progressive Web App — the installable, app-like version of the casino site that a player can add to their device's home screen |
| SMS | Short Message Service — a text message sent to the player's phone |
Accessing Workflows
- Click Workflows in the sidebar
- View existing workflows or create new ones

Creating a Workflow
Building a workflow lets you automate a repeatable player action — such as a welcome email or a reward grant — so every eligible player is treated the same way without manual, one-off sends.
- Click Create Workflow
- Enter a name and description, and optionally assign a Category
- Build the workflow using the visual editor
You can also copy an existing workflow (row action) — this creates an editable draft.
Organizing and Running Workflows
Beyond the basic build-and-activate flow, the workflow list and editor offer:
- Categories - create, assign, and filter the workflow list by category.
- Copy / duplicate - clone any workflow as a new draft to iterate safely.
- Re-entry (re-enrollment) - control whether a player can enter the same workflow again: off (once only), when idle (again after completing), or every time. Re-entry is meaningful only for tag and segment-membership triggers; other triggers always behave as "off".
- Segment-batch workflows - adding a Segment entry node turns the workflow into a batch broadcast. Use Run Now to enroll all current segment members at once (subject to a per-segment member cap shown on the button).
- A/B Split results - open the A/B test results panel to compare variant conversion.
- Live node stats - toggle Stats in the editor to overlay per-node execution counts.

Workflow Components
Triggers
A workflow starts on exactly one trigger event. The catalog spans player lifecycle, wallet, bonus/reward, loyalty, withdrawal, KYC/verification, segment/tag, and affiliate events. The most common triggers are:
| Trigger | Fires when |
|---|---|
| Player Registered | A new player signs up |
| Player Logged In | A player logs in — and once at registration, when sign-up logs the player in. Pick Login in Login type to skip that one (a Wait node waiting for a login can filter on Login type too) |
| Deposit Completed | A player deposit completes |
| Bet Created / Bet Win Received / No-Win Result Received | A bet is recorded / a win pays out / a win settles with zero payout |
| Bet Cancelled / Bet Win Reversed | A cancel reverses a bet / a win |
| Big Win | A win meets the configured threshold |
| Tournament result | A player's tournament standings are finalized |
| Bonus Granted / Bonus Expired | A bonus is granted / expires |
| Real Money Credited | A cash adjustment is credited |
| Free Spins Issued / Free Bet Issued / Cashback Credited | Free spins issued / a free bet issued / cashback credited |
| Loyalty Level Changed | A player moves loyalty level |
| Withdrawal Requested / Approved / Completed / Rejected | A withdrawal changes state |
| Player Added to Segment / Player Removed from Segment | Segment membership changes |
| Cash / Bonus / Free Spins Pending Claim | A manual-claim reward is created and awaits the player |
| Cashback Subscribed / Cashback Subscription Pending Activation | A cashback subscription activates / awaits activation |
| KYC Initiated / Requested / Approved / Rejected | A KYC step changes |
| Email Verified / Phone Verified | The player verifies email / phone |
| Player Tag Assigned / Player Tag Removed | A tag is added / removed |
| IP Risk Detected | IP intelligence flags the player's IP (VPN, proxy, Tor, anonymous, hosting, scraper, compromised, or any other detection type the provider adds under Other Detections) at session start, registration, login, deposit or withdrawal. Pick the checkpoints in Detected at; add filters on the verdict (VPN, Proxy, Risk Score, IP Address, …) to narrow it further |
| Affiliate Player Attributed | A player is attributed to an affiliate |
| PWA Installed | The player installs the PWA |
Some pending-claim and cashback triggers fire in addition to the related "issued/granted/credited" trigger — pick one deliberately to avoid duplicate notifications. Trigger on a specific KYC state — Initiated, Requested, Approved, or Rejected — rather than a general "verified" event. For inactivity flows, build a segment-batch workflow (see below) that targets a segment of inactive players.
A workflow whose trigger is no longer offered shows Retired trigger (event name) in the editor with the message "This trigger is no longer supported. Choose a replacement trigger, or archive or delete this workflow." On an archived workflow the message reads "This trigger is no longer supported. Choose a replacement trigger, or delete this workflow." A draft, paused or archived workflow can pick a replacement trigger; pause an active workflow first. Archived workflows with a retired trigger are skipped, with a warning, when a brand is cloned or imported.
Example: tag players who register from a VPN or proxy
Trigger IP Risk Detected, Detected at = Registration, filter IP Address · Not in list · your
exclusion list. Then a Switch by field with two branches — VPN is true, Proxy is true — both
leading to Add Tag proxyblocked. Lookups that fail or time out carry no verdict, so they never
start this workflow.
Conditions
A Condition node branches the flow Yes/No. It has two modes:
- Preset - branch on a ready-made condition; currently Is In Segment (whether the player is a member of a chosen segment).
- Custom Field - branch on a raw field from the trigger event using an expression, for example an amount threshold or a time-of-day check.
For multi-way routing, use the Switch node (route by segment membership or by field), and for traffic splitting use the A/B Split node (see Node Types below).
Text fields also offer In list / Not in list (up to 500 values, each up to 256 characters). ISP and VPN Operator take one value per line, because those names can contain commas (for example Facebook, Inc.); other text fields accept one value per line or comma-separated values. Spaces inside a value are kept. Each value is an exact, case-insensitive match; ranges and wildcards are not supported. Not in list also matches when the field is empty.
Actions
What happens when the workflow runs:
| Action | Description |
|---|---|
| Send Email | Send an email to the player |
| Send SMS | Send a text message |
| Send Notification | Send an in-app / push / popup notification |
| Grant Bonus | Award a bonus to the player |
| Grant Freespins | Award free spins |
| Grant Freebet | Award a free bet |
| Grant Cashback | Award cashback |
| Grant Cash Reward | Award a cash reward |
| Assign Tag / Remove Tag | Add / remove a player tag |
| Approve Withdrawal / Deny Withdrawal / Keep Withdrawal Pending | Decide the outcome of a withdrawal request (available on withdrawal-related triggers) |
| Webhook | Call an external URL |
The builder's Quick Actions palette surfaces Send Email, Send Notification, Grant Bonus, Grant Freespins, Grant Freebet, Assign Tag, and Webhook for fast placement.
Visual Workflow Builder
The workflow editor uses a drag-and-drop interface:

- Add nodes by dragging from the toolbox
- Connect nodes by drawing lines between them
- Configure nodes by clicking to edit settings
- Arrange the flow visually
Node Types
Drag any of these seven node types from the sidebar onto the canvas:
| Node | Purpose |
|---|---|
| Trigger | Starts the workflow on an event |
| Segment | Targets a segment (makes the workflow a segment-batch broadcast — see below) |
| Action | Performs an action (email, notification, grant, webhook, …) |
| Condition | Branches Yes/No on segment membership or a custom field |
| Delay | Waits a set duration before continuing |
| A/B Split | Splits players between variant A and variant B by weighted percentage; the same player is always bucketed into the same variant |
| Switch | Multi-branch routing by segment membership or by field, with an optional default branch |
A minimal event-driven workflow looks like:
[Trigger] → [Condition] → [Action]
↓ No
[Action]
Example Workflows
Welcome Email
Trigger: Player Registered
↓
Action: Send Email (Welcome template)
↓
Action: Grant Bonus (Welcome bonus)
Deposit Thank You
Trigger: Deposit Completed
↓
Condition: Amount > €100 (Custom Field)
↓ Yes
Action: Send Email (VIP Thank You)
↓ No
Action: Send Email (Standard Thank You)
Tournament Results
Choose Tournament result, select a tournament occurrence or template, and add Final rank ≤ 3. Add a Switch on Player currency at finalization to choose different messages for EUR and PLN. You can add rank branches within each currency branch to describe the configured prize.
This currency is saved when the standings are finalized. It differs from scoring currency. Older results may have no saved player currency; provide a default branch if those should receive a message. Result messages describe finalized standings or allocated prizes. They do not confirm that a prize was delivered.
Leaving both tournament selectors unrestricted targets finalized tournaments across the selected brand and shows an activation warning. A rank range uses two filters, such as Final rank ≥ 4 and Final rank ≤ 10. New deployments do not replay previously published result events.
Win-back Campaign
Build win-back as a segment-batch workflow: create a "lapsed players" segment, add a Segment node targeting it, and use Run Now (or a schedule) to enroll all current members. Alternatively, trigger on Player Added to Segment so a player is enrolled the moment they enter the lapsed segment.
Segment: "Lapsed High Value" (Run Now / scheduled)
↓
Action: Grant Bonus (50% Reload)
Action: Send Email (We Miss You)
Validating Workflows
The editor validates the whole workflow on Save and Activate and reports any structural problems, so issues surface before the workflow can run against real players. The editor toolbar offers Save, Activate/Pause, Run Now (segment workflows), Stats, Arrange, Undo/Redo, AI Assistant, and Settings. A Webhook action's URL can be checked individually with its Send Test Request button.
Activating Workflows
A workflow only affects players once activated — activating turns your saved design into a live process that reacts to real player events, with no manual work needed to keep it running.
- Finish building; save your changes
- Click Activate (validation runs on activate)
- The workflow is now live
Active workflows run automatically when trigger conditions are met.
Monitoring
Track workflow performance:
- Executions - How many times the workflow ran
- Success Rate - Percentage completed successfully
- Errors - Failed executions with error details
- Last Run - When the workflow last executed
Pausing Workflows
Pausing lets you stop a workflow from continuing to run — for example while you investigate an issue — without losing its configuration or history. Pause it from the row's pause button or the editor. By default, executions already in progress are left to finish; the pause dialog also offers:
- Also cancel in-flight executions - stop executions already running, instead of letting them finish.
- When cancelling in-flight executions, choose the scope: All versions (default) or Only current version - limit the cancellation to the workflow's current version.
Workflow statuses are draft, active, paused, and archived.
Best Practices
- Start simple - Build basic workflows first
- Validate before activating - review the flow and fix any validation errors on save/activate
- Monitor performance - Check for errors regularly
- Document purpose - Use clear names and descriptions
- Avoid loops - Don't create workflows that trigger each other indefinitely