Choose your trigger type
Every journey starts with a trigger. Pick the type that matches your campaign goal — this determines the flow rules available to you.
100%
Minimap
| Campaign | Status | Players | Completed | Conv. Rate | Last Updated |
|---|
| Campaign | Status | Players | Nodes | Progress | Last Edited |
|---|
| Campaign | Status | Total Players | Conversions | Conv. Rate | Ended |
|---|
Every journey starts with a trigger. Pick the type that matches your campaign goal — this determines the flow rules available to you.
| # | Feature | Description | UX Behaviour | Status |
|---|---|---|---|---|
| CS-01 | Journey Manager Homepage | Central dashboard listing all journeys organised into Active, In Design, and Completed sections. Gives the CRM team instant visibility of every campaign's status, player counts and conversion rates from one screen. | Three grouped table sections. Each row shows name, status badge, player count, conversion rate, sparkline and last-updated. Click row name or open via 3-dot menu to enter canvas. Stats summary cards at top. | Phase 1 |
| CS-02 | Campaign Actions Menu | Per-row 3-dot menu giving operators quick access to all lifecycle actions on a journey without entering the canvas. Available actions are context-aware — only valid transitions are shown per current status. | 3-dot button on every row opens a positioned dropdown. Actions: Open in Canvas, Activate, Pause/Resume, Mark Complete, Block, Duplicate, Delete. Dangerous actions (Delete) separated and coloured red. | Phase 1 |
| CS-03 | Create Campaign — Screen 1 (Info) | First step of the two-screen campaign creation wizard. Captures the core identity fields required before a canvas can be built. Validates required fields before allowing progression to step 2. | Campaign name (250 char, live counter), category selector (Acquisition / Conversion / Retention / Reactivation / General), Demo/Live toggle, start/end date pickers with Ongoing toggle that disables end date, 1000-word notes field with live word counter. | Phase 1 |
| CS-04 | Create Campaign — Screen 2 (Participation) | Second wizard step defining the rules that control how and when players can participate in the campaign. Each rule card expands when enabled, revealing relevant configuration. | Entry Type (Single/Multi — Multi reveals participant cap field), Re-entry toggle (reveals max re-entries field), Campaign Interval (Always Active / Scheduled Days — reveals day picker with Mon–Sun toggles, quick presets, and Entry Cooldown selector with None/1 Day/1 Week/1 Month/Custom options). | Phase 1 |
| CS-05 | Start from Template | Allows admins to bootstrap a new campaign from a pre-built journey template. Template library covers common use-cases so the team doesn't start from a blank canvas for standard campaigns. | Modal opened by "From Template" button. Grid of 6 templates: Welcome Series, Churn Prevention, VIP Upgrade, Tournament Push, Lapsed Player Reactivation, Deposit Match Campaign. Each card shows icon, name, description and tags (category + node count). Selecting a template pre-fills campaign name and opens canvas with pre-built nodes. | Phase 1 |
| CS-06 | Wizard Progress Sidebar | Persistent left sidebar during the setup flow showing the three-step progress (Campaign Info → Participation Rules → Build Journey). Keeps the admin oriented during multi-step setup and allows backwards navigation. | Connected dot-and-line step list. Active step glows green, completed steps show tick. Progress bar and step label in footer card. Breadcrumb in topbar updates per step. Back navigation allowed; forward only after validation passes. | Phase 1 |
| # | Feature | Description | UX Behaviour | Status |
|---|---|---|---|---|
| C-01 | Visual Canvas | Infinite-scroll grid canvas where nodes are placed and connected to form a journey. Supports panning, zooming and node drag-repositioning. | Dark-background canvas with dot-grid overlay. Nodes render as cards with icon, label and connection ports. Connections draw as bezier curves. | Phase 1 |
| C-02 | Zoom & Pan Controls | Controls to zoom in/out (mouse wheel or buttons) and pan the canvas by click-dragging the background. Zoom level displayed as percentage. | Bottom-right zoom controls: + / − / ⊙ reset buttons, percentage label. Mouse-wheel zooms toward cursor. Click-drag pans canvas. | Phase 1 |
| C-03 | Minimap Overview Panel | Small thumbnail preview of the full canvas in the top-right corner, showing node positions and current viewport rectangle. | Minimap panel top-right of canvas. Shows scaled node blobs and viewport rect. Clicking minimap pans canvas to that area. | Phase 1 |
| C-04 | Undo / Redo | Full snapshot-based action history allowing admins to reverse or reapply any canvas action — node additions, deletions, connections. Stack capped at 40 snapshots; any new action clears the redo stack. | Ctrl+Z / Ctrl+Y (or Ctrl+Shift+Z) keyboard shortcuts + toolbar buttons. Deep JSON clone of full state per snapshot. | Phase 1 |
| C-05 | Drag-and-Drop Node Placement | Admins drag node types from the left palette onto placeholder slots on the canvas. A floating ghost card follows the cursor during drag; placeholder slots highlight on hover. Snap-to-nearest within 80px on release. | Mousedown on palette item → ghost card appears. Placeholder slots glow green on hover. Release on valid slot fills it instantly. Release outside valid zone shows hint. Drag-to-connect and palette drag use independent event paths to avoid conflict. | Phase 1 |
| C-06 | Smart Fork Branch Spacing | When a fork node (condition, random split, event split) is placed, its branches are automatically spaced vertically centred on the fork with BRANCH_GAP=2 row-slots between siblings. A row-push algorithm shifts any conflicting downstream nodes down to prevent overlap. | Branches spread symmetrically around fork row. shiftSubtree() recursively moves entire downstream chains together. repack() acts as safety net only — never flattens intentional gaps. | Phase 1 |
| C-07 | Node Deletion (All Types) | Every node including the trigger is deleteable. Regular nodes soft-delete to a ghost placeholder slot. Fork nodes show a confirm dialog listing downstream node count before hard-deleting the entire branch. Deleting the trigger resets the canvas to trigger-selection gate. | Trash icon on every node card. Confirm dialog for fork/trigger deletion. Soft-deleted slots remain visible with dashed border for re-use. Trigger deletion shows "Reset Journey" confirm with clear warning copy. | Phase 1 |
| C-08 | Empty Canvas Default | Canvas opens blank with the trigger-type gate visible, ready for the admin to start building. Pre-built demo data is only loaded when a template journey is opened (via ?demo=1 URL param). Prevents confusion between a new empty campaign and an existing journey. | window.onload checks URL params. No demo nodes unless ?demo=1. Trigger gate shown immediately. Template journeys open with their pre-built node structure. | Phase 1 |
| # | Feature | Description | UX Behaviour | Status |
|---|---|---|---|---|
| T-01 | Real-Time Trigger | Journey starts when a specific player event fires in real time — e.g. a deposit, spin count crossing a threshold, or a tag being applied. | Trigger gate on empty canvas. Selecting Real-time shows event picker in the config panel. Node renders with ⚡ icon and chosen event label. | Phase 1 |
| T-02 | Multi-Event Trigger (Branch Fork) | Admin selects up to 3 trigger events simultaneously. Each creates its own independent parallel branch. Journey executes the branch matching the event that fired.
|
Checkbox selection in trigger config panel. Live branch preview as events are added/removed. Max 3 warning at limit. Branch labels update immediately on canvas. | Phase 1 |
| T-03 | Schedule Trigger | Journey starts at a fixed time or on a recurring schedule. Players enter in batch at the scheduled time. | Selecting Schedule shows date/time picker and recurrence selector (once, daily, weekly). Node renders with 📅 icon. | Phase 1 |
| T-04 | Manual Trigger | CRM team initiates the journey manually for a selected audience segment. Used for re-engagement, birthday campaigns, or ad-hoc outreach. | Audience selector + confirm launch button. Shows estimated reach count before confirming. | Phase 1 |
| T-05 | Page Move Event | Triggers or reacts when a player navigates to a specific page. Supports multi-select destinations — Web and App pages tracked separately.
|
Checkbox list under event selector. Grouped by Web / App. Selected pages shown as summary chips. | Phase 1 |
| # | Feature | Description | UX Behaviour | Status |
|---|---|---|---|---|
| F-01 | Condition Split | Branches the journey based on a player attribute, behaviour, or event condition. Only one path is taken per player. | Node renders as ◇ diamond. Config panel opens full condition builder. Up to N branches each with its own condition. Default/else branch always present. | Phase 1 |
| F-02 | Event Split | Waits for one of several defined events and routes the player down the matching branch when it fires. | Node renders as ⑂ fork. Config panel shows event list. Each event gets a branch output port. Timeout branch optional. | Phase 1 |
| F-03 | Random Split | Randomly distributes players across branches by percentage weight. Used for A/B testing and control groups. | Node renders as ⚡ split. Config panel shows percentage sliders per branch, must sum to 100%. | Phase 1 |
| F-04 | Wait Node | Pauses a player in the journey for a defined duration before continuing to the next node. | Node renders as 🕐. Config panel shows duration input with unit selector (minutes, hours, days). | Phase 1 |
| F-05 | Pull Data Node | Fetches live player data from an external service and stores it in journey variables for use in downstream conditions. | Node renders as ⬇. Config panel shows data source selector and variable name mapping. | Phase 1 |
| F-06 | End Node | Marks the terminal point of a journey path. A player reaching an End node exits the campaign as Flow Completed. | Node renders as ⊗. No config panel. Canvas shows End as a distinct visual endpoint. | Phase 1 |
| # | Feature | Description | UX Behaviour | Status |
|---|---|---|---|---|
| CB-01 | Condition Builder (Core) | Main UI panel for building branching logic on Condition Split, Event Split, and trigger conditions. Supports multiple rows combined with AND/OR logic. | Opens as right-side config panel when a condition node is selected. Shows condition rows with field selector, operator, value. Add Row and Add Group buttons. | Phase 1 |
| CB-02 | Player Attribute Conditions | Conditions based on static player profile data — age, country, currency, registration date, VIP tier, account balance. | Field selector shows "Player" category. Operators vary by type: equals, not equals, greater than, contains, in list. | Phase 1 |
| CB-03 | Behavioural Conditions | Conditions based on player behaviour over time — deposit count, total wagered, last active date, sessions in period. | Field selector shows "Behaviour" category. Value inputs include relative date ranges. Numeric operators for counts and amounts. | Phase 1 |
| CB-04 | Event-Based Conditions | Conditions triggered by a specific event having occurred — e.g. player has made at least 1 deposit this week. | Field selector shows "Events" category. Checks event existence and occurrence count within a time window. | Phase 1 |
| CB-05 | Tag-Based Conditions | Conditions that check whether a player has a specific tag or whether a tag has a specific value. | Field selector shows "Tags" category. Operators: has tag, does not have tag, tag value equals, tag value contains. | Phase 1 |
| CB-06 | Pulled Data Conditions | Conditions based on values fetched by an upstream Pull Data node. Journey variables are available in the field selector. | Field selector shows "Journey Variables" category populated by upstream pull nodes. Supports all standard operators. | Phase 1 |
| CB-07 | AND / OR Logic Groups | Conditions can be grouped with AND (all must be true) or OR (any must be true) logic. Groups can be nested for complex eligibility rules. | Toggle button between each row changes AND/OR. Visual indent for groups. Plain-language summary shown below builder. | Phase 2 |
| CB-08 | Condition Preview / Plain Language | Live plain-language summary of the condition logic built so far. Helps non-technical admins verify the rule reads as intended before saving. | Auto-generated sentence below builder. Updates in real time. e.g. "Player has deposited in the last 7 days AND VIP level is Gold or above". | Phase 2 |
| # | Feature | Description | UX Behaviour | Status |
|---|---|---|---|---|
| A-01 | Bonus Award | Issues a configured bonus to the player — free spins, deposit match, cash bonus, or free bet. Integrates with the Bonus Issuance service. | Node renders as 🎁. Config panel shows bonus type selector and amount/template picker. | Phase 1 |
| A-02 | Leaderboard Enrol / Remove | Adds or removes the player from a specific leaderboard campaign. | Node renders as 🏆. Config panel shows leaderboard selector and action toggle: Enrol / Remove. | Phase 1 |
| A-03 | Mission Enrol / Remove | Adds or removes the player from a mission (a structured task-based challenge). | Node renders as 🎯. Config panel shows mission selector and action toggle: Enrol / Remove. | Phase 1 |
| A-04 | Tournament Enrol / Remove | Registers or deregisters the player from a tournament. | Node renders as 🥇. Config panel shows tournament selector and action toggle: Enrol / Remove. | Phase 1 |
| A-05 | Player Tag Write | Writes a key-value tag to the player profile. Tags persist and can be read by conditions, goals, and external systems. | Node renders as 🏷. Config panel shows tag key and value inputs. Optional: remove tag toggle. | Phase 1 |
| A-06 | Game Skin Activation | Activates or deactivates a themed game skin for the player. Skins change visual presentation without affecting mechanics. | Node renders as 🎮. Config panel shows skin selector and On/Off toggle. | Phase 1 |
| A-07 | Add Loyalty Coins | Awards Loyalty Coins (platform virtual currency) directly to the player. Amount configurable per node. Fires against the Loyalty Coins balance service. | Palette node: 🪙 Add Loyalty Coins. Config panel shows coin amount input and optional reason/note field. | Phase 1 |
| A-08 | Go to Shop | Deep-links the player into the platform shop at a specific category or product. Used for re-engagement journeys targeting purchase intent. | Palette node: 🛍 Go to Shop. Config panel shows shop category selector and optional product ID or promotional code. | Phase 1 |
| A-09 | ESB Engagement Tools | Fires an ESB (Engagement Service Bus) event to trigger external engagement tools — popups, banners, in-game tooltips — managed outside the builder. | Palette node: 🌐 ESB Engagement Tools. Config panel shows ESB event name input and optional key-value payload editor. | Phase 1 |
| # | Feature | Description | UX Behaviour | Status |
|---|---|---|---|---|
| CM-01 | Player Real-Time Message | Sends an in-product real-time message — inbox message, pop-up alert, or notification banner shown on next login or immediately if online. | Node renders as 💬. Config panel shows message type selector, subject and body editor with variable substitution. | Phase 1 |
| CM-02 | Sends an HTML email to the player via the Communications Dispatch Service. Supports templated content with player variable injection. | Node renders as 📧. Config panel shows template selector, subject override, and send-time option. | Phase 1 | |
| CM-03 | SMS | Sends a plain-text SMS to the player's registered mobile number via the Communications Dispatch Service. | Node renders as 📱. Config panel shows message body with 160-char counter and variable substitution. | Phase 1 |
| CM-04 | Push Notification | Sends a push notification to the player's mobile device. Requires the player to have push permissions granted. | Node renders as 🔔. Config panel shows notification title, body and optional deep-link URL. | Phase 1 |
| CM-05 | Sends a WhatsApp message to the player using pre-approved template messages per platform compliance. High open-rate channel for key engagement moments. | Approved template picker only. Opt-in status check before node accepts placement. | Phase 2 | |
| CM-06 | Slack (Internal Alert) | Sends a Slack message to an internal channel — for operational alerts, fraud flags or CRM team notifications triggered by player behaviour. | Node renders as 💼. Config panel shows Slack channel selector and message template. Not visible to players. | Phase 1 |
| CM-07 | Communication Priority Matrix | Defines which presentation format takes priority when multiple messages compete for the player's attention simultaneously.
|
Priority selector per comms node. Conflict warning if two high-priority nodes could fire simultaneously. | Phase 2 |
| # | Feature | Description | UX Behaviour | Status |
|---|---|---|---|---|
| PD-01 | Add / Remove Player Tag | Writes or removes a key-value tag on the player profile. Tags are the universal data-passing mechanism across the entire system. | Node renders as 🏷. Config shows tag key/value inputs and remove toggle. Listed separately in the Player Data palette section. | Phase 1 |
| PD-02 | Pull Data Node | Fetches live data from external services into journey-scoped variables available to all downstream nodes within the same journey run. | Node renders as ⬇. Config panel shows data source and variable name mapping. Sources include Balance API, Bonus API, Player Profile. | Phase 1 |
| PD-03 | Change VIP Level | Directly sets or adjusts a player's VIP tier. Can promote or demote. Fires against the Player Profile service VIP endpoint. | Palette node: ⭐ Change VIP Level. Config panel shows VIP tier selector (Bronze → Diamond) with Set / Promote / Demote action toggle. | Phase 1 |
| PD-04 | Change Status Level | Sets or adjusts a player's status level (loyalty tier, account standing). Distinct from VIP — targets a separate status axis in the player profile. | Palette node: 📊 Change Status Level. Config panel shows status tier selector and direction toggle (Set / Promote / Demote). | Phase 1 |
| # | Feature | Description | UX Behaviour | Status |
|---|---|---|---|---|
| M-01 | Live Heat Map | Real-time visual overlay on the canvas showing how many players are currently at each node. Gives instant visibility of bottlenecks and drop-off. | Each node card shows a live counter badge. Colour heat intensity scales with count. Bottom bar shows total active players. | Phase 1 |
| M-02 | Campaign Reporting | Detailed analytics: player counts per node, conversion rates per branch, time-in-step distribution, projected LTV impact. | Side drawer or dedicated report view. Per-node drill-down. Exportable. | Phase 2 |
| M-03 | Internal Alerts (Slack) | Configurable Slack alerts fired when campaign metrics cross thresholds — e.g. conversion drops, error rate spikes. | Alert configuration in campaign settings. Fires through the same Slack infrastructure used in journey flows. | Phase 1 |
| M-04 | Import / Export Journey | Export a journey as JSON for backup, version control, cross-environment migration or template creation. Re-importable. | Topbar: 📥 Import and Export buttons. Import opens file picker or paste-JSON modal. Export downloads a .json file. | Phase 1 |
The items below are engineering and infrastructure work required to support the Magic Journey in production. These are platform-level developments — not features within the builder UI itself — but are required for the builder to function in a live environment.
| # | Item | Description | Dependencies / Notes | Priority |
|---|---|---|---|---|
| INF-01 | Kafka Broker Setup | Build and configure a Kafka message broker with the topics required to stream real-time player events into the journey engine. Topics needed: player.events (login, deposit, bet, game-round), player.page-views, player.session, system.alerts. | Required by: Real-Time Trigger (T-01), Event Split (F-02), Pull Data Node (F-05, PD-02). Must support consumer groups per journey instance. Retention: 7 days minimum. | INFRA |
| INF-02 | Player Data API | Build an internal REST/GraphQL API that the journey engine calls to pull player profile data, behavioural history and segment membership at runtime. Must support low-latency reads for in-journey use. | Required by: Pull Data Node (F-05, PD-02), Condition Builder player attributes (CB-02, CB-03). Target SLA: <100ms p99. Endpoints: /player/{id}/profile, /player/{id}/events, /player/{id}/tags. | INFRA |
| INF-03 | Journey Execution Engine | Server-side engine that reads the journey graph (exported JSON), subscribes to relevant Kafka topics, and executes node logic per player in real time. Stateful — tracks each player's current position in the journey. | Required by all journey features. Must handle concurrent player instances per journey. State stored per player per journey. Supports pause/resume of individual journeys. | INFRA |
| INF-04 | Journey Persistence API | API layer for saving, loading, versioning and publishing journey definitions. Stores the full node/edge graph and campaign metadata. Supports draft, active, paused and completed states. | Required by: Campaign Manager homepage (CS-01), Import/Export (M-04), Canvas save. Endpoints: POST /journeys, GET /journeys/{id}, PUT /journeys/{id}/publish, GET /journeys (list). Versioned — keeps history of published states. | INFRA |
| INF-05 | Bonus Issuance Integration | Integration with the bonus management system to issue Free Spins, Deposit Match, Cash Bonus and Loyalty Points from within a journey. Journey engine calls the bonus API when a Bonus Award node executes. | Required by: Bonus Award node (A-01). Must handle duplicate-issue prevention. Callback/webhook when bonus is accepted or declined by the player (feeds into Event Split logic). | INFRA |
| INF-06 | Communications Dispatch Service | Unified service that receives send-message instructions from the journey engine and dispatches them to the correct channel provider — ESP (email), SMS gateway, push notification service, in-product message bus, or Slack webhook. | Required by: All comms nodes (CM-01 to CM-06). Must handle channel opt-out checks, rate limiting, and deduplication within a session. Delivery receipts fed back to journey engine for event-based wait nodes. | INFRA |
| INF-07 | Player Tag Write API | API endpoint that the journey engine calls to write, update or remove custom player tags on the player profile in real time. Tags must be immediately queryable by downstream journey conditions. | Required by: Player Tag Write node (A-05, PD-01). Endpoint: PUT /player/{id}/tags. Must be synchronous — condition evaluation happens in the same execution tick. Tag namespace per tenant. | INFRA |
| INF-08 | Leaderboard / Mission / Tournament API | Integration APIs connecting the journey engine to the gamification management systems. Enables enrol/remove operations on leaderboards, missions and tournaments from within a journey execution. | Required by: Activity nodes A-02, A-03, A-04. Three separate integration points — each with enrol and remove endpoints. Must return confirmation of enrolment for use by downstream conditions. | INFRA Phase 2 |
| INF-09 | Analytics & Metrics Pipeline | Data pipeline that collects per-node player counts, conversion events, and time-in-step metrics from the journey execution engine and makes them available for the live heat map and campaign reporting features. | Required by: Live Heat Map (M-01), Campaign Reporting (M-02). Real-time stream to live heat map (WebSocket or polling). Batch aggregation to reporting database. Retention: 90 days per campaign. | INFRA Phase 2 |
| ID | Feature | Description | UX / Behaviour | Status |
|---|---|---|---|---|
| G-01 | Goal Configuration in Setup Wizard | New Step 3 in the Phase 2 setup wizard. Toggle Add a Goal on/off. Choose goal event, type (Cumulative / Single Event), target value and milestone count. | Setup wizard Step 3 shows Goal toggle. When enabled: event picker pills, type pills, target value input, milestone split selector (2–10). Skippable. | Goal System |
| G-02 | Goal Flow Tab on Canvas | Phase 2 canvas has a second tab — Goal Flow — alongside Main Journey. Switching shows the goal milestone track and config panel. | Tab bar below topbar: ⚡ Main Journey | 🎯 Goal Flow. Goal tab shows milestone track canvas and right-side config panel. | Goal System |
| G-03 | Goal Progress Track — Milestones | Visual track on the Goal Flow canvas: Start → Milestone 1 → … → Goal! Each gap has an action slot for activity or comms nodes. | Horizontal scrollable track. Start node (green), N milestone nodes (purple), Goal node (red). Clicking a slot opens action picker. | Goal System |
| G-04 | Goal Wildcard Exit — Real-time Override | When a player achieves the goal (reaches 100%), they immediately exit the campaign regardless of where they are in the main journey — including mid-delay, mid-wait, or mid-branch. Goal exit is instant and takes priority over all main canvas flow state. The player's record is marked Goal Achieved. | Main canvas shows a persistent indicator: "🎯 Goal exits here too" on each node to signal that the goal listener is always active. Bottom bar shows Goal Achieved count separately from Flow Completed. Goal achieved players are visually distinct in analytics. | Goal System |
| G-05 | No-Goal State — Canvas Indicator | When a Phase 2 campaign has no goal configured, the tab bar shows a "No goal set" indicator with a quick-add button. | Tab bar right side shows "⚪ No goal set — + Add Goal" when no goal is configured. Disappears once goal is saved. | Goal System |
| G-06 | Goal + Tag Universal Event | Tags function as a universal event parameter across the entire system — as a trigger (tag applied starts campaign), as a condition (branch checks tag value), and as a goal (tag applied with specific value exits campaign as Goal Achieved). External systems can fire campaigns via tag API. Enables partner integrations without deep platform knowledge. | Tag event available in trigger node, condition node, and goal event picker. Tag value field appears when Tag is selected. External API endpoint accepts tag + value pair and maps to configured campaign goal. Future phase: inbound webhook documentation for partners. | Goal System |
| ID | Feature | Description | Technical Requirements | Status |
|---|---|---|---|---|
| G-INF-01 | Goal Listener Service | Real-time service that subscribes to player event streams (Kafka topics) and evaluates goal conditions for all active campaign participants simultaneously. Updates per-player goal progress. Fires milestone actions when thresholds are crossed. Triggers immediate campaign exit on 100%. | Kafka consumer on player.events and player.tags topics. Per-player goal state stored in Redis (low-latency reads). Milestone action dispatch to Communications and Bonus services. Goal achieved event publishes to campaign analytics pipeline. SLA: goal exit fired within 2 seconds of event. | INFRA Goal System |
| G-INF-02 | Tag Write API — Inbound Webhook | Public API endpoint that accepts tag + value pairs from external systems. Authenticates via API key per operator. Writes tag to player profile and publishes to player.tags Kafka topic. Enables external partners to trigger campaigns, fire goal events, and influence player journey state without direct platform access. | POST /api/v1/player/:id/tag with {tag, value, timestamp}. API key auth with rate limiting. Synchronous write confirmed before Kafka publish. Response: 200 OK with event ID. Partner documentation: tag taxonomy, campaign mapping rules, error codes. | INFRA Goal System |
| Campaign | Status | Goal | Players | Goal Achieved | Flow Completed | Conv. Rate | Last Updated |
|---|
| Campaign | Status | Goal | Players | Nodes | Progress | Last Edited |
|---|
| Campaign | Status | Goal | Total Players | Goal Achieved | Flow Completed | Conv. Rate | Ended |
|---|
Every journey starts with a trigger. Pick the type that matches your campaign goal.