Call Tracking Metrics - Trackers
📖 Overview
Tracking numbers (called "sources" in CTM API) are phone numbers that track incoming calls and attribute them to marketing campaigns. This module manages tracker CRUD operations with pagination support.
Source Files:
- Controller:
external/Integrations/CallTrackingMetrics/Controllers/trackers.js - Provider:
external/Integrations/CallTrackingMetrics/Providers/trackers-api.js - Routes:
external/Integrations/CallTrackingMetrics/Routes/trackers.js
External APIs:
GET /api/v1/accounts/:id/numbers.json- List trackersGET /api/v1/accounts/:id/numbers/:numberId- Get trackerPOST /api/v1/accounts/:id/sources- Create trackerPATCH /api/v1/accounts/:id/sources/:id- Update trackerDELETE /api/v1/accounts/:id/sources/:id- Delete tracker
🔧 Key Functions
getTrackersList(req, res, next)
Purpose: Retrieve paginated list of tracking numbers
Endpoint: GET /v1/e/calltrackingmetrics/:tokenId/accounts/:accountId/trackers
Parameters:
page(Number) - Page numberper_page(Number) - Results per page
Returns: Paginated tracker list
{
"success": true,
"message": "SUCCESS",
"data": [
{
"id": "num_123",
"name": "Google Ads Campaign",
"number": "+15559876543",
"formatted_number": "(555) 987-6543",
"type": "source"
}
],
"pagination": {
"current_page": 1,
"total_pages": 3,
"total_items": 25
}
}
getTracker(req, res, next)
Purpose: Get specific tracker details
Endpoint: GET /v1/e/calltrackingmetrics/:tokenId/accounts/:accountId/trackers/:trackerId
Returns: Tracker details
{
"success": true,
"message": "SUCCESS",
"data": {
"id": "num_123",
"name": "Google Ads Campaign",
"number": "+15559876543",
"type": "source",
"destination": "+15551234567"
}
}
postTracker(req, res, next)
Purpose: Create new tracking number
Endpoint: POST /v1/e/calltrackingmetrics/:tokenId/accounts/:accountId/trackers
Parameters:
req.body(Object) - Tracker configurationname(String) - Tracker namedestination(String) - Forwarding number- Other CTM-specific fields
Returns: Created tracker
{
"success": true,
"message": "SUCCESS",
"data": {
"id": "src_new123",
"name": "New Campaign",
"number": "+15551112222",
"type": "source"
}
}
putTracker(req, res, next)
Purpose: Update tracker configuration
Endpoint: PUT /v1/e/calltrackingmetrics/:tokenId/accounts/:accountId/trackers/:trackerId
Parameters:
req.body(Object) - Fields to update
Returns: Updated tracker
{
"success": true,
"message": "SUCCESS",
"data": {
"id": "src_123",
"name": "Updated Campaign Name"
}
}
deleteTracker(req, res, next)
Purpose: Delete tracking number
Endpoint: DELETE /v1/e/calltrackingmetrics/:tokenId/accounts/:accountId/trackers/:trackerId
Returns: Success confirmation
{
"success": true,
"message": "SUCCESS",
"data": {}
}
⚠️ Important Notes
- 📞 Terminology: CTM calls trackers "sources" in API
- 🔢 Listing Endpoint: Uses
/numbers.jsonendpoint - ✏️ CRUD Endpoints: Uses
/sourcesendpoint for create/update/delete - 🔐 Authentication: Uses Basic Auth with stored credentials
- 📊 Pagination: Support for page and per_page parameters
- 🗑️ Deletion: Permanently removes tracker and releases number
🔗 Related Documentation
- Integration Overview: Call Tracking Metrics
- Authentication: Credential Management
- Calls: Call Tracking & Analytics