Skip to content

Call Tracking Trigger

Overview

The Call Tracking Trigger provides comprehensive call lifecycle tracking, capturing multiple call states from ringing to completion. This enables advanced call analytics, detailed logging, and sophisticated automation based on call progression and outcomes.

When to use this trigger:

  • Track complete call lifecycle (ringing, answered, ended)
  • Analyze missed calls vs answered calls
  • Calculate accurate call duration and wait times
  • Monitor call abandonment rates
  • Advanced call center analytics
  • Multi-stage call-based automation

Difference from Call Connect Trigger:

  • Call Connect: Simple trigger when call connects
  • Call Tracking: Tracks multiple call states with detailed analytics

Unlike Call Connect, which fires only when two legs are bridged, this trigger reacts across the whole life of the call:

flowchart LR
    A[Ringing] --> B[Answered]
    A --> C[Missed]
    B --> D[Completed]
    A -.-> E[Call Tracking Trigger]
    C -.-> E
    D -.-> E

That is why it suits analytics and logging: a missed call reaches the workflow too.

Quick Start

  1. Connect your call tracking system to BaseCloud
  2. Create a new workflow
  3. Add a Call Tracking Trigger as the first task
  4. Select which call states to monitor (ringing, answered, completed, missed)
  5. Configure tracking rules
  6. Save and enable the workflow

Call States

Ringing

Triggered when an incoming call starts ringing (before answer).

Use Cases:

  • Log all call attempts (even if not answered)
  • Track call volume metrics
  • Prepare CRM for potential conversation

Answered

Triggered when call is answered/connected.

Use Cases:

  • Same as Call Connect Trigger
  • Start call timer
  • Notify relevant team members

Completed

Triggered when call ends (hung up).

Use Cases:

  • Calculate final call duration
  • Trigger post-call follow-up
  • Log call outcome
  • Send surveys

Missed

Triggered when call rings but isn't answered.

Use Cases:

  • Send "Sorry we missed you" SMS
  • Create callback task for team
  • Log missed call to CRM
  • Alert on-call staff

Busy

Triggered when caller receives busy signal.

Use Cases:

  • Alert that lines are overloaded
  • Log for capacity planning

Voicemail

Triggered when call goes to voicemail.

Use Cases:

  • Transcribe voicemail (if available)
  • Alert team of voicemail
  • Send acknowledgment to caller

Outputs

Built from the call log for this call.

Field Type Example Notes
call_id number 44120 The call's log ID.
uuid string 9f8e7d-… The provider's call identifier.
caller_number string +27825550111 Who called.
tracking_number string +27105550123 The tracking number they dialled.
destination_number string +27115550100 Where the call was routed.
target_number string +27115550100 Same value as destination_number.
answered number 1 1 when answered, 0 when not. A missed call still fires the trigger.
start_stamp string 2026-09-07 09:14:02 When the call started.
dial_stamp string 2026-09-07 09:14:04 When dialling began.
answer_stamp string 2026-09-07 09:14:11 When it was answered. Empty on a missed call.
call_time string 2026-09-07 09:14:02 Same value as start_stamp.
ring_duration number 9 Seconds ringing.
talk_duration number 212 Seconds connected. 0 on a missed call.
total_duration number 221 Seconds in total.
recording_url string https://… Recording, when one exists.
provider string telnyx Which telephony provider handled the call.
description string Inbound call The log's description.
owner_id number 555 Account ID.
run boolean true
run_text string Call Tracking trigger executed successfully.

Branch on answered to separate missed calls

answered is 0 for a missed call, with talk_duration 0 and an empty answer_stamp. That is the check to use in an If Statement, rather than looking for a separate "missed" event.

Real-World Examples

Log every call against the client who made it

Call Tracking Trigger
  └─ Match to Client     contact_cell_number: {{task_51001_caller_number}}
      └─ Workflow Note   log the call, its duration and the recording link

Chase a missed call

Call Tracking Trigger
  └─ If Statement   {{task_51001_answered}} is 0
      └─ SMS        "Sorry we missed you — we'll call back shortly"

answered is 0 on a missed call, with talk_duration of 0 and an empty answer_stamp.

Flag unusually short calls

Call Tracking Trigger
  └─ If Statement   {{task_51001_talk_duration}} less than 30
      └─ Email      alert the team leader to review it

Transcribe and summarise a call

Call Tracking Trigger
  └─ Speech to Text      transcribe {{task_51001_recording_url}}
      └─ AI Prompt       summarise it
          └─ Workflow Note   log the summary

Multi-State Workflows

For advanced tracking, create separate workflows for each state:

Pattern: Track Complete Call Journey

Workflow 1 - Call Ringing:

  • Log initial call attempt
  • Prepare CRM record
  • Start timer

Workflow 2 - Call Answered:

  • Update log with answer time
  • Calculate ring duration
  • Alert agent's manager (if VIP)

Workflow 3 - Call Completed:

  • Calculate final duration
  • Log call outcome
  • Trigger follow-up actions
  • Send survey

Workflow 4 - Call Missed:

  • Alert on-call team
  • Send apology SMS
  • Create callback task

Connecting Call Tracking Systems

Compatible Systems

Most call tracking platforms that support webhooks:

  • CallRail
  • CallTrackingMetrics
  • DialogTech
  • Marchex
  • Custom call center software

Setup Steps

  1. Access your call tracking platform
  2. Navigate to Webhooks or API settings
  3. Create webhook for call events:
  4. call.ringing
  5. call.answered
  6. call.completed
  7. call.missed
  8. Use the webhook URL provided by BaseCloud Call Tracking Trigger
  9. Map call data fields to standard format
  10. Test with a real call

Call Analytics

Calculating Key Metrics

Use Call Tracking data to calculate important metrics:

Answer Rate:

const totalRinging = /* count of ringing events */;
const totalAnswered = /* count of answered events */;
const answerRate = (totalAnswered / totalRinging * 100).toFixed(2);

Average Call Duration:

const durations = /* array of call_duration values */;
const avgDuration = durations.reduce((a,b) => a+b, 0) / durations.length;

Missed Call Rate:

const totalCalls = totalRinging;
const missedCalls = /* count of missed events */;
const missedRate = (missedCalls / totalCalls * 100).toFixed(2);

Building Analytics Dashboard

  1. Schedule Trigger - Daily at 9 AM
  2. Google Sheets - get_rows from the call log sheet
  3. Code Task - Calculate metrics
  4. Google Sheets - Update dashboard spreadsheet
  5. Email - Send daily report to management

Best Practices

✅ Do's

  • Track all states: Monitor ringing, answered, completed, and missed for complete picture
  • Use unique workflows per state: Keep logic clean and maintainable
  • Log everything: Comprehensive logs enable better analysis
  • Calculate metrics: Use data for continuous improvement
  • Follow up on missed calls: Always close the loop
  • Attribute calls to campaigns: Track marketing ROI
  • Set up alerts: Notify team of important call events
  • Analyze patterns: Look for trends in call times, duration, outcomes

❌ Don'ts

  • Don't ignore missed calls: They're potential lost revenue
  • Don't skip state tracking: Track complete journey, not just answered
  • Don't forget privacy: Comply with call recording regulations
  • Don't neglect call quality: Monitor duration and outcomes
  • Don't lose attribution data: Always capture campaign source

Troubleshooting

Not All Call States Being Captured

Possible Causes:

  • Call system not sending all state webhooks
  • Workflows not created for all states
  • Webhook configuration incomplete

Solutions:

  1. Verify your call system sends webhooks for all states
  2. Create separate workflows for each state you need
  3. Check webhook logs in your call system
  4. Test with real calls and monitor execution history

Call Duration Not Calculating

Possible Causes:

  • Only tracking one state (need both answered and completed)
  • Time format mismatch
  • Missing timestamp data

Solutions:

  1. Ensure you have workflows for both "Answered" and "Completed" states
  2. Use the same call_id to link states together
  3. Store answered_at time and subtract from ended_at time

Duplicate Call Tracking

Possible Causes:

  • Call system sending multiple webhooks for same event
  • Both Call Connect and Call Tracking triggers active

Solutions:

  1. Use only Call Tracking trigger for comprehensive tracking
  2. Disable Call Connect trigger if using Call Tracking
  3. Add deduplication logic using call_id

Missing Campaign Attribution

Possible Causes:

  • Call tracking system not passing campaign data
  • Dynamic number insertion not configured
  • Website tracking not set up

Solutions:

  1. Configure dynamic number insertion on your website
  2. Ensure campaign parameters passed to call tracking system
  3. Test by clicking through different campaigns

Advanced Features

Call Outcome Tracking

After call ends, have agent log outcome:

  1. Call Tracking Trigger - State: Completed
  2. Delay - Wait for agent to log outcome (or webhook from CRM)
  3. Workflow Note - record the outcome against the client
  4. If Task - Route based on outcome:
  5. Sale: Create invoice workflow
  6. Follow-up needed: Create task
  7. Not interested: Update lead score

Call Recording Analysis

Process recordings automatically:

  1. Call Tracking Trigger - State: Completed
  2. Delay - Wait 60 seconds (recording processing)
  3. Webhook Out - Download recording from recording_url
  4. Speech to Text - Transcribe
  5. AI Prompt - Analyze:
  6. Was customer satisfied?
  7. What was discussed?
  8. Any action items?
  9. Workflow Note - store the analysis against the client
  10. If Task - If issues detected:
  11. Alert supervisor

Intelligent Callback Scheduling

For missed calls, schedule callbacks intelligently:

  1. Call Tracking Trigger - State: Missed
  2. Code Task - Check caller's timezone and business hours
  3. Workflow Note - create the callback task for the right time
  4. Webhook Out - Send SMS: "We'll call you back at [time]"

Queue Time Monitoring

Alert if wait times too long:

  1. Call Tracking Trigger - State: Answered
  2. If Task - Check wait_time > 60 seconds
  3. Webhook Out - Alert managers via Slack
  4. Google Sheets - append_row so long waits can be reviewed

Frequently Asked Questions

What's the difference between Call Connect and Call Tracking triggers?

Call Connect: Simple, triggers once when call connects. Good for basic "call happened" automation.

Call Tracking: Advanced, triggers on multiple call states. Better for analytics and complex workflows.

Can I combine both triggers?

Not recommended. Use Call Tracking as it provides all the functionality of Call Connect plus more.

Use the call_id field, which remains consistent across all states of a single call. Store it and use it to update records.

What if my call system doesn't provide campaign attribution?

You'll need to implement dynamic number insertion on your website, or use a call tracking platform that provides this feature (CallRail, CallTrackingMetrics, etc.).

Can I track outbound calls?

Yes, if your phone system sends webhooks for outbound calls. Configure the same way as inbound.

How accurate are the timing measurements?

Timing depends on when your phone system sends webhooks. Usually accurate within 1-2 seconds.

Can I filter by agent who answered?

Yes, use the agent_name or agent_email field in an If task to route based on who answered.

What if I need to track calls from multiple phone systems?

Create separate Call Tracking Triggers for each system, or use a unified webhook that normalizes data from all systems.

How long are call recordings available?

This depends on your phone system's retention policy. Download and process them as soon as possible after the call ends.


Next Steps: