Call tracking

Set up a modern call tracking solution to measure campaign effectiveness, accurately attribute calls, and understand caller sentiment to help sales teams personalize interactions.
Customer calling to a company for a vacation plan while the call is being tracked to measure campaign effectiveness, accurately attribute the call, and help sales teams personalize interactions.

How to build call tracking

Integrate with your existing stack and start collecting granular call tracking metrics.

Step 1
Get Twilio phone numbers
Purchase a pool of phone numbers from the Twilio self-service portal or phone number API.


Step 2
Map phone numbers and implement counters
Map your phone number to the Twilio number and set up a webhook to count incoming calls.


Step 3
Publish the Twilio phone numbers on ads and websites
Add the Twilio phone number to your ads, websites, landing pages, and any other content.


Step 4
Start tracking calls
When interested buyers call the number, you’ll gather call tracking metrics to understand campaign effectiveness, ROI, and customer insights.

Diagram of how to build a call tracking system that is integrated with a customer existing stack to start collecting granular call tracking metrics.

What you need to build call tracking with Twilio

Build call experiences on the platform that handles 50B+ voice minutes annually.

  • Twilio Programmable Voice logo
    Voice APIs
    Use Twilio's Voice APIs to customize call experiences, route calls efficiently, and track performance metrics accurately for reliable ROI insights.
  • Twilio Voice Insights logo
    Voice Insights
    Track call volume peaks so you can staff accordingly and monitor call performance data to spot and resolve issues quickly.
  • Voice Intelligence
    Gather even more business intelligence from your inbound calls, including call summaries, customer sentiment, and competitive insights. 
  • Twilio Phone Numbers logo
    Phone numbers
    Set up call tracking with your choice of more than 200 distinct phone number types, including local, national, mobile, and toll-free numbers.
  • Twilio Task Router logo
    Task Router
    Route calls to the agents with the best skill set to assist and map campaign call traffic to the best resources to elevate your customer experience.

 Get started with Twilio call tracking

Sign up for a Twilio account to get started with phone call tracking. Use our quickstart guides to get started with your choice of programming language.

var twilio = require('twilio');
var config = require('../config');
var LeadSource = require('../models/LeadSource');

var client = twilio(config.apiKey, config.apiSecret, { accountSid: config.accountSid });

exports.create = function(request, response) {
  var phoneNumberToPurchase = request.body.phoneNumber;

  client.incomingPhoneNumbers.create({
    phoneNumber: phoneNumberToPurchase,
    voiceCallerIdLookup: 'true',
    voiceApplicationSid: config.appSid
  }).then(function(purchasedNumber) {
    var leadSource = new LeadSource({number: purchasedNumber.phoneNumber});
    return leadSource.save();
  }).then(function(savedLeadSource) {
    console.log('Saving lead source');
    response.redirect(303, '/lead-source/' + savedLeadSource._id + '/edit');
  }).catch(function(numberPurchaseFailure) {
    console.log('Could not purchase a number for lead source:');
    console.log(numberPurchaseFailure);
    response.status(500).send('Could not contact Twilio API');
  });
};

exports.edit = function(request, response) {
  var leadSourceId = request.params.id;
  LeadSource.findOne({_id: leadSourceId}).then(function(foundLeadSource) {
    return response.render('editLeadSource', {
      leadSourceId: foundLeadSource._id,
      leadSourcePhoneNumber: foundLeadSource.number,
      leadSourceForwardingNumber: foundLeadSource.forwardingNumber,
      leadSourceDescription: foundLeadSource.description,
      messages: request.flash('error')
    });
  }).catch(function() {
    return response.status(404).send('No such lead source');
  });
};

exports.update = function(request, response) {
  var leadSourceId = request.params.id;

  request.checkBody('description', 'Description cannot be empty').notEmpty();
  request.checkBody('forwardingNumber', 'Forwarding number cannot be empty')
    .notEmpty();

  if (request.validationErrors()) {
    request.flash('error', request.validationErrors());
    return response.redirect(303, '/lead-source/' + leadSourceId + '/edit');
  }

  LeadSource.findOne({_id: leadSourceId}).then(function(foundLeadSource) {
    foundLeadSource.description = request.body.description;
    foundLeadSource.forwardingNumber = request.body.forwardingNumber;

    return foundLeadSource.save();
  }).then(function(savedLeadSource) {
    return response.redirect(303, '/dashboard');
  }).catch(function(error) {
    return response.status(500).send('Could not save the lead source');
  });
};

Call Tracking with Node.js and Express

See how to use Twilio to purchase phone numbers, forward incoming calls to a salesperson, and display data on calls to each phone number.

Understand your advertising metrics

Get step-by-step instructions to set up call tracking with Twilio so you can track and understand your advertising performance.

Discover new insights with call annotations

Learn how to use call annotations to get subjective contextual information about the voice calls you receive from campaigns.

Prefer not to code? No problem.

Work with one of our trusted partners to get coding support or explore a pre-built call tracking solution.

Work with Twilio Professional Services to set up global call tracking for your company

Why use Twilio to build business call tracking?

Everything you need to start tracking calls from offline and online marketing campaigns.

People reviewing call tracking metrics that are part of the Twilio advantages such as deep inventory of phone numbers, intelligent lead routing, custom reporting and analytics, and easy integration.

Twilio offers a huge inventory of phone numbers across phone number types. With this depth of inventory, you can assign distinct local numbers to your ads on a dynamic basis to allow for extremely granular tracking.

Dynamically route calls to the right person based on incoming leads. Your call tracking solution can also be tied into an intelligent IVR to collect additional information before connecting to live agents.

Generate reports based on call tracking results to get a clear picture of which sales and marketing campaigns are driving the best ROI for your business. Then enhance those results with context collected from calls to see average response times, customer sentiment, conversion rates, and more.

Twilio call tracking integrates seamlessly with your customer relationships management (CRM) system so you can document your customer journey touchpoints and call metadata without additional work.

Related use cases


Explore other use cases you can build with Twilio

Marketing and promotions

Integrate email, SMS, MMS, WhatsApp, or Voice into your existing marketing tech stack for increased conversions and customer lifetime value.

Interactive Voice Response

Build a modern IVR your customers will enjoy using while cutting down on the need for live agent intervention.

Alerts and notifications

Deliver important account notifications and alerts on the channel your customers prefer—reliably and at scale.