Campaign Rules

Understand campaign rules - the IF/THEN logic that decides what happens to every lead after a call — and see each condition and action in action through one example campaign.

Video Tutorial

What a Campaign Rule Is

A rule is a simple IF → THEN instruction that the CommPeak Dialer applies to a lead:

  • IF its conditions are true (for example, the last call ended in No Answer and this has happened 3 times today),
  • THEN its actions run (for example, wait 90 minutes before calling again and lower the lead's weight).

Rules are defined per campaign. When a campaign has more than one condition, they are combined with AND / OR logic, so you can be as broad or as precise as you like. Rules are organized into groups (for example, New Leads, Not Interested, Weight Update) purely to keep them tidy — a group can be switched on or off as a whole.

📘

NOTE

About 95 percent of all rules concern statuses — what happened on the call. The rest handle the call flow: number of calls per day, total calls per lead, weight, and integrations.

❗️

IMPORTANT

This guide explains how campaign rules work so you can read and understand your own. In practice, the support team configures rules for you according to your preferences. To change them, contact our support or your account manager.

When Rules Run — the Two Engines

Every rule runs on one of two engines. This is the single most important thing to understand about rules, because it decides when a consequence happens.

EngineWhen it runsTypical use
Real-time (event-based)The instant a lead changes - right after a call ends or an agent submits feedbackReact to a call result: change status, freeze, re-weight, blacklist
Scheduled (cron)On a fixed schedule (for example, every night at 01:00) and applied in bulk to many leads at onceHousekeeping across the whole base: daily weight decrease, re-checking time-based conditions

A rule is scheduled when it has a cron schedule (shown as text like "on 1-th minute on 1-th hour every day"); otherwise it is real-time.

The Lead Lifecycle

The chart below shows how a lead flows through the Dialer and where rules fire. Note the very first step; it is a rule too.

flowchart TD
  A["Lead imported (no status yet)"] -->|"New Lead rule fires FIRST"| B["Status = New Lead"]
  B --> C["Enters the dial pool, ordered by weight"]
  C --> D["Dialer calls the lead"]
  D --> E{"Call result / new status"}
  E --> F["Real-time rules fire"]
  F --> G["Consequences run: change status, add or remove weight, freeze, assign, blacklist"]
  G -->|"Freeze (call_after set)"| H["Lead waits until the freeze time passes"]
  H --> C
  G -->|"Blacklist or final status"| I["Lead is no longer dialed"]
  S["Scheduled (cron) rules run on their schedule"] --> K["Mass update, e.g. daily weight -10, re-check time-based rules"]
  K --> C
❗️

IMPORTANT

The "New Lead" rule must run first. A freshly imported lead has no status yet. A dedicated rule — condition New campaign lead → action change status to "New Lead" - stamps that starting status. It is ordered ahead of every other rule. If it did not run first, the lead would have no status for the other (status-based) rules to match, and it would never be dialed correctly. When you review a campaign, you will always see this rule at the very top.

Meet the Example Campaign: Horizon

To make every rule concrete, this guide follows one example campaign throughout.

Horizon is an online course provider. People who ask about a course become leads, and agents call them to help them enroll. We will follow five of them:

LeadStory
MariaA brand-new, engaged lead - answers, books a call-back, and finally enrolls (pays her Deposit).
DavidHard to reach - keeps ringing out, going to voicemail, or being busy.
SofiaFlagged as online/hot in the CRM - she just filled in the form and should be called immediately.
AhmedAsks a specific advisor to call him back at an agreed time (a Personal Meeting).
TomWrong number - the person who answers is not the lead.

Every rule below is illustrated with one of these five.

Anatomy of a Rule

To view a campaign's rules, go to Leads & Campaigns > Campaigns, find the campaign, click Frequent in the Actions column, and select Rules. Click + Expand All to open every group.

Each rule has four parts: a name, an active / not-active indicator, its conditions, and its actions.

Screenshot of the components of a campaign rule

Components of a campaign rule

  • Rule conditions activate the rule. With more than one, AND / OR logic combines them.
  • Rule actions define what happens when the conditions are true — anything from a weight change to a status change.

Lead Weight and the New / Online / Regular Bands

Every campaign lead carries a weight (a number). Weight does two jobs:

  1. It sets dial priority - when a group dials by highest weight, heavier leads are called first.
  2. It groups leads into bands that many rules test against:
BandWeightMeaning
Online / hotmore than 10000Just came in or flagged online in the CRM — call now
New12009999Fresh leads, roughly the last 2–3 days
Regularless than 1199Older leads that have been worked already

Weight is not fixed. Scheduled rules lower it over time so leads naturally age from OnlineNewRegular, and real-time rules nudge it after each call (a good outcome can raise it, a dead-end lowers it). You will see exactly this in the How Leads Age example.

Worked Examples

These five examples use the real rules from a standard Horizon-style campaign. Read them in order — together they show almost every Light condition and action.

1. David — the New Lead Nobody Answers

David is a fresh lead (New band). He does not pick up. Three rules in the New Leads – NA & VM group handle this, escalating the wait each time:

RuleConditionAction
NA & VM #1New status is No Answer or Voicemail and weight 1200–9999 and this happened less than 1 time in the last 12 hReset freeze, then freeze 5–15 min
NA & VM #2…same, but it happened exactly 2 times in 12 hFreeze 30–45 min
NA & VM #3…same, but more than 3 times in 12 hFreeze 90–120 min

So David is retried quickly at first, then the Dialer backs off as it becomes clear he is not answering right now — without ever giving up. (A parallel New Leads – BUSY group does the same for Busy results.)

2. Sofia — the Hot Lead

Sofia just submitted the form and is flagged online, so her weight is above 10000. The Online Leads group treats her far more aggressively:

Screenshot of a rule example for online leads

Rule example for online leads

RuleConditionAction
Online #1New status is Busy / Failed To Connect / No Answer / Voicemail and weight > 10000 and fewer than 2 such results in 12 hReset freeze, freeze only 2–4 min
Online #2…same, but more than 3 such results in 12 hFreeze 30 min

Because her weight is high, Sofia also sits at the top of the dial queue — she is called before David.

3. Maria — from Call-back to Enrollment

Maria answers. Two moments in her journey are driven by rules.

She books a call-back: the agent sets the General Meeting status. The Scheduled Meeting group reacts:

  • General Meeting → turn permanent assignment off, ratio-lock off, freeze 3 days (so she is called back around the agreed time, by any available agent).

She enrolls: the agent sets Deposit. The General Statuses group closes her out:

  • Deposit / Do Not Call → reset freeze, freeze 365 days, and add her phone to the blacklist so she is never auto-dialed again.
📘

NOTE

If Maria had asked for Ahmed's advisor specifically at a set time, the agent would use Personal Meeting instead — that turns permanent assignment on (only that advisor calls her) and freezes her for 14 days.

4. A Lead Who Keeps Declining

When a lead says no, the Not Interested group escalates the freeze so you stop wasting calls but keep the door open:

RuleConditionAction
Not Interested #1New status Not Interested, first timeFreeze 30 days
Not Interested #2Not Interested, more than twiceFreeze 90 days
Not Interested #3Not Interested, 3 times in a rowFreeze 365 days + blacklist

Dead-end statuses are handled once and for all elsewhere: Invalid Phone, Language Barrier, Underage, Wrong Person (Tom's case) all freeze 365 days, and Failed To Connect nine times in a row is automatically changed to Invalid Phone.

5. How Leads Age (the Scheduled Engine)

This is the scheduled engine at work. In the Weight Update group:

RuleWhenConditionAction
Daily Weight DecreaseEvery day at 01:00 (cron)Weight is more than 1Decrease weight by 10
Weight Decrease by 10Real-timeNew status Busy / No Answer / Voicemail / …Decrease weight by 10
Weight Decrease by 50Real-timeNew status Deposit / Not Interested / Invalid Phone / …Decrease weight by 50
Max WeightReal-timeWeight is 1401–9999 (or a new lead at 0)Set weight to 1400

Day by day, David's weight falls until he crosses from New into Regular - at which point the Regular Leads rule takes over (a longer 110–130 minute wait between calls). No one moves him by hand; the rules age him automatically.

Condition Reference — Light

These are the conditions used in a standard campaign. Each is the IF side of a rule.

ConditionWhat it checksHorizon example
New campaign leadThe lead was just imported and has no status yetStamps the first New Lead status (must run first)
Status has changedThe lead's status changed to anythingTrigger an integration update whenever the status moves
New status is / is notThe new status is (or is not) one of a chosen setNo Answer or Voicemail → apply the retry rule
Current status (time-based only)The lead's status right now — used only by scheduled rulesA nightly rule re-checks leads currently Invalid Phone
Weight is more / less / equal thanCompares the lead's weight to a numberweight > 10000 marks Sofia as hot
Status occurred N times (in a window)How many times a status happened, optionally within the last X hours/daysNo Answer more than 3 times in 12 h → longer freeze
Status N consecutive timesThe same status happened N times in a rowNot Interested 3 times running → 365-day freeze
Lead had N callsTotal calls to the lead, optionally within a windowMore than 6 calls in 12 h → pause for the day
Call duration (seconds)How long the last call lastedA very short "No Answer" is treated as a bad number
Lead field equals / not equalsAny field on the lead (name, normalized phone, email, …)first name is filled in → the lead looks complete
Lead error stateA system error flag on the lead (including duplicates and Do-Not-Call)Error state 2 → mark the lead a Duplicate
Assigned to agent (on / off)Whether the lead is permanently assigned to an agentClean up assignment when the lead closes
HLR status (advanced)The result of an HLR carrier lookup on the numberRoute confirmed-invalid numbers out of dialing
Datapoint count (advanced)How many times a custom report data point was recordedCount "HLR – valid" results to avoid re-checking

Action Reference — Light

These are the actions used in a standard campaign. Each is the THEN side of a rule.

ActionWhat it doesHorizon example
Reset freezeClears any existing wait so the next action's freeze starts cleanAlways paired before a new freeze
Freeze lead for XStops calling the lead for a set time (minutes / hours / days)Back off 90–120 min after repeated No Answers
Change statusSets the lead's statusFailed To Connect ×9 → Invalid Phone
Set / increase / decrease weightAdjusts dial priority and bandNightly −10; a dead-end status −50
Add to blacklistBlocks the number from auto-dialing (temporary-approved, permanent, or remove)On Deposit / Do Not Call
Permanent assignment on / offLocks the lead to one agent, or releases itPersonal Meeting → lock to that advisor
Ratio-1 lock on / offForces the lead to be dialed one-to-one (an agent is reserved)System – Answer (Dropped) → guarantee an agent next time
Update remote adapter status (advanced)Pushes the new status (with a comment) back to the connected CRMKeep the CRM in sync after each call
Send to HLR lookup (advanced)Sends the number for a carrier validity check; the lead pauses until it returnsValidate before spending more calls
Reset HLR state (advanced)Clears the HLR result so the lead is callable againNightly reset after counting the result
Increase datapoint (advanced)Adds to a custom report counterTrack "HLR – valid / not valid" totals

Advanced Conditions and Actions

Beyond the everyday set above, the Dialer supports many more building blocks for specialized workflows and integrations. Most campaigns never need these; they are listed here for completeness. If one fits your use case, contact support to configure it.

Advanced Conditions

ConditionWhat it checks
Status changed to a different statusThe status changed and the new one differs from the old
Previous status is / is notMatches on the status the lead had before the change
Lead belongs to lead fileThe lead came from a specific uploaded lead file
Country is / is notThe lead's country
Country in country-object listThe country belongs to a named country group
Dynamic caller-ID availabilityWhether dynamic caller IDs exist / are all frozen / are available
Status (in a set) occurred N timesA status from a chosen set happened N times
Status (in a set) N consecutive timesA status from a chosen set happened N times in a row
Datapoint count for the assigned userA report data point summed for the lead's agent
Last AMD / voicemail statusThe answering-machine-detection result of the last call
Comment existsAn agent left a comment on the lead
Last call type (in last N minutes)The type of the most recent call
Call was bridgedThe lead's call connected to an agent
Has a duplicate on campaignThe lead is duplicated on another campaign
Reached max calls per destinationThe number hit the tenant's automated-calls-per-number limit
Reached max shift calls per destinationThe number hit the 16-hour-shift calls-per-number limit
Last predictive call from groupThe last predictive call came from a specific agent group
Assigned agent is PPQ-enabledThe lead's agent uses the personal predictive queue
Call data not sent beforeThis call's data was never pushed to the CRM adapter
Outbound IVR eventAn outbound IVR ended in reject / timeout / bridge
Outbound IVR detected DTMFThe lead pressed a specific key in an outbound IVR
Phone network typeThe number is Fixed / Mobile / Unknown

Advanced Actions

ActionWhat it does
Mark lead as newResets the lead to New (clears status, assignment, weight, freeze)
Assign lead to agentAssigns the lead to a specific agent
Ratio-1 expires after NThe one-to-one lock lifts after a set time
Permanent assignment expires after NThe agent lock lifts after a set time
Exclude caller IDStops using a caller ID (for a time / forever / reset all)
Keep existing caller IDLocks the lead's current caller ID (for a time / forever / reset)
Allow calling outside allowed hoursLets this lead be dialed outside the campaign's calling hours
Add commentAdds a comment to the campaign lead
Add adapter commentAdds a comment to the connected CRM record
Change lead fieldOverwrites a lead field's value
Copy lead to campaignCopies the lead into another campaign
Move lead to campaignMoves the lead into another campaign
Move lead to campaign (keep state)Moves the lead but preserves its current status/weight
Delete campaign leadRemoves the lead from this campaign
Message the assigned agentSends an in-app message to the lead's agent
Delete leadDeletes the underlying lead (not recommended)
Send remote HTTP requestCalls an external URL (server- or client-side)
Update remote adapter comment onlyComments on the CRM record without changing status
Update remote adapter fieldsWrites lead data back to the CRM
Update remote adapter data with IDWrites CRM data using the adapter record ID
Send call dataSends a call-detail record to the CRM adapter
Send mail (adapter template)Sends an email via a mail-adapter template
Send SMS (adapter template)Sends an SMS via a template (the older SMS action is deprecated)
Send SMS with same caller IDSends an SMS from the lead's caller ID
Send WhatsApp Business messageSends a WhatsApp Business template message
Send WhatsApp Business (same caller ID)Sends a WhatsApp Business message from the lead's number
Toggle AMD for the leadTurns answering-machine detection on/off for this lead
Set outbound IVRTurns the outbound IVR on/off for this lead
Override outbound IVR recordingUses a specific IVR recording for this lead
Override trunkForces a specific trunk for this lead's calls
Send remote adapter EEA requestSends an EEA request to the CRM adapter

Status → Behavior Cheat Sheet

What a standard campaign does for each common status, at a glance:

StatusWhat it meansWhat the rules do
BusyThe lead is on another callShort freeze; retry with a widening gap
No AnswerNo pickup in ~20–30 sSame escalating retry as Busy
VoicemailVoicemail was reachedSame escalating retry
Failed To ConnectCould not reach the number (out of coverage)Short freeze; after repeats, longer; ×9 in a row → Invalid Phone
System – Answer (Dropped)The lead answered but no agent was freeReserve an agent (ratio-1) and retry in ~5 min
Not InterestedThe lead declinedFreeze 30 → 90 → 365 days as it repeats
Invalid Phone / Language Barrier / Underage / Wrong PersonThe lead cannot be workedStop dialing (365-day freeze)
Deposit / Do Not CallConverted, or asked never to be calledStop dialing and blacklist the number
General MeetingA call-back time was set by any agentFree the lead, freeze until around that time (3 days)
Personal MeetingA specific advisor will call at an agreed timeLock to that advisor, freeze 14 days
DuplicateThe lead already existsMarked Duplicate, dropped from dialing

How to View Your Campaign's Rules

  1. Go to Leads & Campaigns > Campaigns. Stay on the Campaigns tab or open All Campaigns.
  2. Expand the group with the campaign, or click Expand All.
  3. At the end of the campaign's line, click Frequent in the Actions column.
  4. Select Rules.
  5. On the page that opens, rules are organized into groups. Click + Expand All to open them, or + to open one group.

Related Guides

Getting Help

Submit a support ticket or contact your account manager to review or change your campaign rules.


Did this page help you?