Outbound Campaign Setup and Flow Configuration Guide

This guide explains how to configure and run outbound campaigns across different channels and dialing modes.

Supported Campaign Types

Type

Modes / Channels

CX Voice Campaigns

Predictive Dialing · Power Dialing · Progressive Dialing

Cisco Campaigns

UCCX · UCCE

Multi-Step SMS Surveys

Digital Channel Campaigns

WhatsApp · SMS · Email

1. Customer Data Preparation

Before creating any outbound campaign, you must prepare the customer dataset (CX Customers) that will be used as the campaign source. Customers can be added either by importing a CSV file or by creating them one at a time.

Option A: Import Customers via CSV

  1. Log in to Unified Admin.

  2. Click Import Record.

  3. Choose the type of records you want to import (e.g., Customers).

  4. Upload your CSV file.

  5. Select the Channel Identifier(s) used to search for existing records — for example, Phone Number — and choose the Action to take on matching records (e.g., Ignore).

  6. Map your CSV columns to the corresponding CX Customer attributes.

Prerequisite: CX Load hub must be running to upload the contact in CX Customer.

⚠️ Important: CSV column headers should match the system-defined customer attributes so columns map correctly. Before completing the import, double-check the column mapping shown on screen — any required field left unmapped will cause that row to be rejected.

cx customer.png
Import Records

Option B: Create a Customer Manually

  1. Log in to Unified Agent using a Supervisor role.

  2. Click Customer in the menu.

  3. Create a new customer and enter their details.

create a customer manually
Create a customer manually

2. Customer Filters (Audience Segmentation)

Filters define the target audience for your campaign.

Creating a Filter

  1. Log in to Unified Agent.

  2. Click Customer, then click Advance Filter.

  3. Select Advance Filter to create a new one.

  4. Give the filter a Title.

  5. Build the filter by selecting a Customer Attribute, an Operation, and a Value.

  6. To add more conditions to the same filter, add additional rules and combine them using AND / OR.

filter real.png
Create Advance Filter

Purpose

Instead of targeting all customers, filters allow you to create focused segments such as:

  • Overdue customers

  • Premium customers

  • Region-based customers

  • Newly registered customers

Dynamic Behavior

  • Filters are continuously active

  • Newly added customers matching filter conditions are automatically included

  • Campaigns using filters always stay up to date

3. Channel Management

You can follow the below guide to setup channel which will be use to interact with the customer.

For CX Voice: CX Voice Channel Configuration Guide

For Cisco: Cisco Voice Channel Configuration Guide

General Guide: Manage Channels and Channel Categories

4. Campaign Management

All outbound campaigns are managed from the Campaign Dashboard.

Dashboard Overview

The dashboard provides a centralized view of all campaigns, where you can:

  • Search campaigns by name

  • View campaign status and details

  • Monitor execution progress

Key Campaign Attributes

Attribute

Description

Campaign Title

Name of the campaign

Status

Current state — see Campaign Status Definitions below

Creation Date

When the campaign was first created

Last Modified Date

When the campaign was last updated

Campaign Controls-20241007-123558.png

Creating a Campaign

  1. Click Add New Campaign

  2. Enter campaign details

  3. Configure the outbound flow

  4. Save and publish the campaign

cmapaign1.png

Edit (Pencil Icon): Opens the settings page where you can change the Title, Description, scheduling time and access the Flow Builder.

camp2.png

Type of the campaign can’t be updated and for CX_Voice type campaign the trigger interval is handled by governor (campaign backend configurable variable).

Managing Existing Campaigns

Action

Description

Edit

Modify campaign details or flow configuration

Delete

Permanently remove the campaign

Stop

Immediately terminate campaign execution

Campaign Status Definitions

Status

Meaning

Unpublished

Campaign is in draft or paused state — no outbound activity is triggered

Published

Campaign is active — outbound flow execution is in progress

Stopped

Campaign has been terminated — no further processing occurs

Components Required for Analytics and Reporting

Component

Role

Campaign Reporting

Provides campaign execution reports and historical data.

Campaign Dashboard

Provides real-time campaign monitoring, analytics, and visualization of campaign metrics. Accessing Campaign Studio Dashboard in Grafana
Outbound Metrics

5. Outbound Flow Design

Once customer data, filters, and campaign setup are complete, you can design the outbound flow. The flow defines how the campaign interacts with customers across different channels.

Supported Flow Types

  • CX Voice Campaigns (Predictive, Power, Progressive Dialing)

  • Cisco Campaigns (UCCX, UCCE)

  • Multi-Step SMS Surveys

  • Digital Channel Campaign

Upon clicking Flow Builder in the campaign panel, it will open the Node-RED flow for that campaign. Here we can design our flow based on our requirements.

5.1. CX Voice Campaign

Components Involved in CX Voice Campaign

The following components are required and must be operational for a CX Voice Campaign:

Component

Role

Campaign Backend

Manages campaign configuration and sends scheduled contacts for processing.

Scheduler

Triggers campaign contacts at their configured schedule.

Customer Channel Manager (CCM)

Coordinates communication between campaign services and voice resources.

CX Voice Connector (VC)

Acts as the integration layer between CCM and the Dialer.

EFCX Dialer

Processes campaign contacts, manages dialing operations, and handles call outcomes.

CPA Module

Optional Dialer component used to identify whether an answered call was picked up by a human or an answering machine/voicemail. Call Progress Analysis

Routing Engine

Provides routing capabilities and agent selection logic required during campaign execution.

Conversation Manager

Manages conversation and interaction workflows within the CX platform.

Screenshot 2026-07-22 132241.png

5.1.1. Control & Logic Nodes

Node

Role in the Flow

Required?

Docs

Campaign Start

Entry point for every campaign flow created in Unified Admin. Governor triggers it when dial capacity is available and eligible contacts remain; it gates execution by publish status and campaign schedule (time window, days, date range). It also receives allocatedSlots and pendingContacts from Governor.

Compulsory — every campaign

https://expertflow-docs.atlassian.net/wiki/x/DQBbgw

5.1.2. Agent Management Nodes

Node

Role in the Flow

Required?

Docs

Seize Agent

Reserves an agent from a Voice queue/MRD before dialing, using either a fixed count or a PROMQL formula. For CX Voice, the number of agents requested is capped by slotsRemaining from Campaign Start.

Compulsory for agent-based campaigns

Seize Agent

Check Seize Agent Event

Listens for the reservation outcome and branches the flow: AGENT_RESERVED continues toward dialing; RESERVATION_TIMEOUT, RONA, and NO_AGENT_AVAILABLE can each be routed separately.

Compulsory for agent-based campaigns

Check Seize Agent Event

5.1.3. Init Node

Node

Role in the Flow

Required?

Docs

Init Node

The gatekeeper — pulls a batch of contacts into the flow, sized according to your dialing mode (Progressive, Power, or Predictive). For CX Voice, contact count is also limited by slotsRemaining from the Governor pulse.

Compulsory — every campaign type

Init Node

5.1.4. Channel & Decision Nodes

Node

Role in the Flow

Docs

Dial Node

Places the outbound call through the configured voice channel.

Dial (CX Voice)

Call Decision

Uses Call Progress Analysis (CPA) to detect Human vs. Answering Machine and branches accordingly.

Call Decision

Route to Agent

Connects a detected human caller to the agent reserved earlier in the flow.

Route to Agent

End Call

Ends the call — typically wired from a failed Call Decision branch, or when no agent is available.

End Call

5.1.5. How the Nodes Connect

Standard agent-based CX Voice flow

For CX Voice campaigns, Campaign Start replaces both Start Node and Check Undelivered Contacts. Governor handles scheduling eligibility, contact availability, and dial-capacity allocation before the flow is pulsed.

Governor (campaigns backend)
   │  Checks: Published · CX Voice · within schedule · pendingContacts > 0 · dial capacity
   │  Sends: allocatedSlots, pendingContacts
   ▼
Campaign Start
   │  Syncs dial budget; sends pulse only if dialBudget > 0
   ▼
Seize Agent
   ▼
Check Seize Agent Event
   │  AGENT_RESERVED
   ▼
Init Node
   │  (pulls contacts, capped by dialing mode and slotsRemaining)
   ▼
Dial Node
   ├── Live Call Event ────────▶ Call Decision ──┬── True (Human) ───▶ Route to Agent
   │                                              └── False (Machine) ▶ End Call / follow-up message
   │
   └── (Optional) Delivery Notification ──▶ Post-Attempt Decision ──▶ Retry (loop back to Dial) or follow-up message

Reading the flow: Governor only triggers Campaign Start when the campaign is eligible and contacts remain to dial. Campaign Start assigns the dial budget (allocatedSlots / slotsRemaining) and kicks off the flow. Once an agent is reserved and confirmed, Init releases contacts sized to the dialing mode and remaining slot budget. Dial places the calls; Live Call Event filters answering machines before connecting a human to the waiting agent. Delivery Notification optionally handles post-attempt outcomes independently.

5.1.6. Dialing Modes

Mode

Description

Progressive

Dials one contact per reserved agent — the safest setting for keeping abandonment low.

Power

Dials a fixed number of contacts per reserved agent (e.g., 3–5) to keep agents continuously busy.

Predictive

Uses a live PROMQL formula instead of a fixed ratio, dialing just enough contacts to keep agents busy without over-dialing.


5.2. Non Voice Campaign (Digital Campaign)

Components Involved in Digital Campaign

The following components are required and must be operational for a Digital Channel Campaign:

Component

Role

Campaign Backend

Manages campaign configuration and sends scheduled contacts for processing.

Scheduler

Triggers campaign contacts at their configured schedule and handles delivery notifications.

Customer Channel Manager (CCM)

Coordinates communication between campaign services and configured digital channels connector.

Relevant Channel Connector (e.g. SMPP, WhatsApp, Email)

Acts as the integration layer between CCM and the configured digital channel provider. Receives outbound message requests from CCM and delivers them through the respective channel (WhatsApp, SMPP, Email, etc.).

Conversation Manager

Manages conversation and interaction workflows within the CX platform.

digital camp.png


5.2.1. Control & Logic Nodes

Node

Role in the Flow

Required?

Docs

Campaign Start

Entry point for every campaign flow. Governor triggers it when eligible contacts remain and the campaign is within its configured schedule.

Compulsory — every campaign

https://expertflow-docs.atlassian.net/wiki/x/DQBbgw

Check Undelivered Contacts

Checks whether there are pending/undelivered contacts remaining before proceeding to the Init node. Branches the flow to continue or stop accordingly.

Compulsory

https://expertflow-docs.atlassian.net/wiki/x/BoDDfQ

5.2.2. Init Node

Node

Role in the Flow

Required?

Docs

Init Node

Pulls a batch of contacts into the flow for processing. Sized according to the campaign configuration.

Compulsory — every campaign type

Init Node

5.2.3. Channel

Node

Role in the Flow

Docs

Plain Message

Sends a text-based outbound message to a contact over a configured digital channel (WhatsApp, SMPP/SMS, Email, or any other CCM digital channel).

5.2.4. How the Nodes Connect

Standard Digital Channel Campaign flow

Governor (campaign backend)
   │  Checks: Published · Digital · within schedule · pendingContacts > 0
   ▼
Campaign Start
   │  Triggers flow if campaign is eligible
   ▼
Check Undelivered Contacts
   │  Contacts remaining → continues; none remaining → flow stops
   ▼
Init Node
   │  (pulls a batch of contacts for processing)
   ▼
[Optional] Condition Node
   │  (filters contacts based on attributes before sending)
   ▼
Plain Message Node
   │  Resolves customer identifier · personalizes message · schedules delivery via Scheduler
   │
   └── (Optional) Delivery Notification ──▶ Post Attempt Decision ──▶ Retry or follow-up action

Reading the flow: Governor triggers Campaign Start when the campaign is published, within its schedule, and contacts remain. Check Undelivered Contacts gates the flow to ensure there is work to do before Init pulls a contact batch. The Plain Message node resolves each contact's channel identifier (phone number, email address, etc.), personalizes the message body using {placeholder} syntax, and dispatches the message through the Scheduler to the configured digital channel. A Delivery Notification path can optionally be wired downstream into a Post Attempt Decision node to handle outcomes such as retries or follow-up messages.

5.2.5. Supported Digital Channels

The Plain Message node supports any non-voice channel configured in CCM:

Channel

Customer Identifier

Notes

WhatsApp

Mobile number / phone field

Sent as plain text

SMPP (SMS)

Mobile number / phone field

Sent via SMPP gateway as plain text

Email

Email address field

Subject line required; supports HTML body

Other CCM channels

Depends on contact schema

Any additional digital channel configured in your tenant

Prerequisite: The channel must be configured in CCM before it appears in the Plain Message node. If no digital channels are configured, the node editor will show an error.


In the flow, additional nodes can also be used to extend functionality.

  1. Condition Node: Condition
    Used to filter contacts before dialing. It is typically placed after the Init node and before the Dialing node.

  2. Post Decision Attempt Node: Post Attempt Decision
    Used to take actions based on the final call result. It branches the flow according to outcomes such as Busy, No Answer, Invalid Gateway, etc., and can be used for retries or follow-up actions.

  3. Check Timezone Window: https://expertflow-docs.atlassian.net/wiki/x/MoBdgw
    Optional compliance check after Init. Enforces regional calling/messaging windows and holidays per contact timezone. Contacts outside the window are rescheduled or marked unresolved; the flow continues only for contacts that are currently allowed.