CampaignsReal-time Campaign Monitoring

Real-time Campaign Monitoring

Monitor live campaign dialing progress, queue status, and recent call activity with auto-refresh and campaign control actions.

Monitor a live campaign

The real-time campaign dashboard shows what a single campaign is doing right now: how many contacts are waiting, how many are being called, which outcomes are accumulating, and which calls just finished. The page refreshes automatically so you can watch progress without reloading the browser.

Choose the refresh interval that matches how closely you need to watch the campaign:

  • No refresh stops automatic updates.
  • Every 2 seconds is the default and keeps the dashboard close to real time.
  • Every 5 seconds reduces refresh frequency if you are monitoring a long-running campaign.

The dashboard fetches its data from GET /api/crm/campaigns/[id]/dashboard.

What the dashboard shows

The page is organized into a few monitoring views so you can answer different questions quickly:

  • Top-row KPIs show overall campaign progress.
  • Outcome metrics show what happened to processed contacts.
  • Configuration panels show how the campaign is currently set up.
  • Queue tables show which contacts are waiting or actively being dialed.
  • Recent call history shows the latest completed or in-progress calls tied to the campaign.

If you need to verify how the campaign was set up before it started, compare what you see here with the campaign settings in Campaign configuration.

Read the KPI metrics

The first metric row summarizes where contacts are in the dialing lifecycle.

MetricWhat it means
TotalSum of all status counts for contacts in the campaign.
PendingContacts not yet queued for dialing.
QueuedContacts ready for dialing.
CallingContacts in active calls right now.
CompletedContacts that finished processing.
AnsweredContacts where the call was answered. This metric is highlighted because it is the clearest signal of live connection volume.

A healthy campaign usually shows contacts moving from Pending to Queued, then briefly into Calling, and finally into Completed. If Queued grows while Calling stays near zero, the campaign may be waiting on dialing capacity, schedule restrictions, or retry timing.

Track outcomes as the campaign runs

The second metric row breaks completed activity into specific outcomes.

OutcomeWhat it means
VoicemailThe call reached voicemail or an answering machine.
No AnswerThe call rang but nobody answered.
BusyThe destination line was busy.
Invalid NumberThe phone number could not be called successfully because it was invalid or unusable.
DeclinedThe contact declined the call or interaction.
Do Not CallThe contact was marked as do not call.
ErrorThe call failed because of a dialing or processing error.

Use these counts to decide whether a campaign is progressing normally or repeatedly hitting the same failure mode. For example, a spike in Busy or No Answer often points to retry behavior, while a spike in Invalid Number usually points to list quality.

Review the campaign configuration summary

The configuration panel is read-only and gives you a quick snapshot of the campaign rules currently driving queue behavior. This is useful when the queue looks slower or more aggressive than expected.

Call window

The dashboard shows the campaign's allowed calling window in HH:MM–HH:MM format, along with the configured timezone. This tells you when the engine is allowed to place calls for the campaign.

Per-contact timezone mode

The panel also shows whether per-contact timezone handling is on or off. When enabled, the campaign uses each contact's timezone when applying the call window instead of applying one shared timezone to everyone.

Retry delays

Retry delays show how long the campaign waits before retrying contacts after these outcomes:

  • No answer
  • Busy
  • Error

The dashboard displays these values in minutes so you can compare queue timing against actual retry behavior.

Backoff mode

Backoff controls how retry delays scale across attempts. The dashboard shows whether the campaign uses:

  • Fixed backoff
  • Exponential backoff, including its multiplier and cap

If retries seem to happen later than expected, check whether exponential backoff is increasing the wait time after each failed attempt.

Max attempts

The configuration summary shows the maximum number of attempts allowed per contact. Once a contact reaches that limit, the campaign stops retrying unless a more specific rule applies.

Per-outcome attempt overrides

If the campaign uses different maximum attempt counts for specific outcomes, the dashboard shows those overrides separately. This helps explain why one contact may stop retrying after a voicemail while another continues after a busy signal.

Retry on error

The panel also shows whether retry-on-error is enabled. If it is off, contacts that fail with an error stop instead of returning to the queue.

Check voicemail drop status

A separate voicemail drop panel shows whether a voicemail message is configured for the campaign.

  • If a voicemail drop is configured, the panel shows a configured badge and previews the first 140 characters of the message.
  • If no voicemail drop is configured, the panel shows that state clearly so you do not mistake voicemail outcomes for message drops.

This panel is especially useful when you are reviewing a campaign with high voicemail volume and need to confirm whether the system is leaving a prepared message.

Watch the queues

Two queue tables show where contacts are in the active pipeline.

Pending and queued contacts

The first queue table covers contacts that have not started calling yet or are ready to be dialed next. It includes these columns:

ColumnDescription
Contact nameThe contact's display name.
PhoneThe contact's phone number.
TimezoneThe contact timezone used for scheduling.
Status + outcomeThe current queue status and any known outcome.
Attempt countHow many times the campaign has tried this contact.
Next retry timeWhen the contact is scheduled to re-enter the queue.

Use this table when you need to answer questions like "Who is still waiting?" or "When will this contact retry?"

Currently calling

The second queue table shows contacts in active calls. It uses the same columns as the pending and queued table, but it is ordered by last_attempt_at in descending order so the most recently started calls appear first.

This table is the fastest way to confirm that the engine is actively working and to see which contacts are on calls at the moment you are watching.

Review recent call history

The recent call history table shows the latest campaign calls with enough detail to jump into deeper investigation when needed.

ColumnDescription
Call IDTruncated call identifier.
FromThe originating phone number.
ToThe destination phone number.
OutcomeThe recorded call outcome.
StartedCall start time.
EndedCall end time.
RecordingWhether a recording is available.
ViewLink to inspect the call in Call Logs.

Use the View link when a single call needs deeper analysis, such as transcripts, messages, cost, or recordings. The dashboard links into Call Logs with the campaign filter already applied.

Use dashboard actions

The real-time dashboard also gives you direct control over campaign execution.

ActionWhat it does
PauseSends PUT /api/crm/campaigns/[id] with status: "paused" to stop active progress without cancelling the campaign.
ResumeSends PUT /api/crm/campaigns/[id] with status: "running" to continue a paused campaign.
CancelSends PUT /api/crm/campaigns/[id] with status: "cancelled" to stop the campaign and mark it as cancelled.
Open in Call LogsOpens the campaign in Call Logs with the campaign filter applied.

Use Cancel only when you want to stop the campaign entirely. If you only need to temporarily halt dialing, use Pause so you can resume later.

When to use this page

The real-time dashboard is most useful when you need to:

  • Confirm that a newly launched campaign is actively dialing
  • Watch queue movement during a live send window
  • Check whether retries are happening as expected
  • Spot unusual outcome patterns before the campaign finishes
  • Jump from live monitoring into detailed call inspection

For historical analysis across all campaign calls, move to Call Logs. For campaign setup details, return to Campaign configuration.