How-To Guides10 min read

Set Up Source Mapping

Create canonical sources, map raw integration values to normalized names, and enable marketing campaign attribution across all data types.

source mappingnormalizationdirectory

Set Up Source Mapping

Source mapping lets you normalize the diverse source labels from your integrations into a consistent set of canonical source names. This is critical for accurate marketing attribution across calls, leads, and sales.

Why Source Mapping Matters

Different integrations use different names for the same marketing channel:

IntegrationRaw ValueActual Source
CallRail"Google PPC"Paid Search
Google Ads"google_cpc"Paid Search
eLead"INTERNET - GOOGLE"Paid Search
CallRail"Organic Google"Organic Search
Website"direct"Direct

Without source mapping, your analytics would show these as five separate sources. With source mapping, they all roll up to "Paid Search" and "Organic Search".

Step 1: Create Canonical Sources

Navigate to Settings > Source Mapping in the dashboard. Create your canonical source categories:

Canonical SourceDescription
Paid SearchGoogle Ads, Bing Ads, paid keywords
Organic SearchSEO traffic from Google, Bing, etc.
DirectDirect visits, typed URLs
Social PaidFacebook Ads, Instagram Ads
Social OrganicOrganic social media posts
ReferralThird-party websites, review sites
EmailEmail campaigns, newsletters
DisplayBanner ads, retargeting
OfflineTV, radio, print, events

Or via the API:

bash
POST /api/v1/source-mappings/sources
{
  "name": "Paid Search",
  "description": "All paid search advertising",
  "color": "#4285F4"
}

Step 2: Map Raw Values

For each raw source value that comes in from your integrations, map it to a canonical source:

bash
POST /api/v1/source-mappings
{
  "rawValue": "Google PPC",
  "canonicalSource": "Paid Search",
  "pluginSlug": "callrail"
}

Step 3: Bulk Mapping

For large numbers of unmapped values, use the bulk mapping endpoint:

bash
POST /api/v1/source-mappings/bulk
{
  "mappings": [
    { "rawValue": "Google PPC", "canonicalSource": "Paid Search" },
    { "rawValue": "google_cpc", "canonicalSource": "Paid Search" },
    { "rawValue": "INTERNET - GOOGLE", "canonicalSource": "Paid Search" },
    { "rawValue": "Organic Google", "canonicalSource": "Organic Search" },
    { "rawValue": "direct", "canonicalSource": "Direct" }
  ]
}

Step 4: Review Unmapped Values

The dashboard shows a list of unmapped raw values along with their frequency. Address high-volume unmapped values first:

bash
GET /api/v1/source-mappings/unmapped

Response:

json
{
  "unmapped": [
    { "rawValue": "FB_Spring_Sale", "count": 45, "firstSeen": "2026-02-01" },
    { "rawValue": "billboard_i35", "count": 12, "firstSeen": "2026-01-20" }
  ]
}

Marketing Campaign Attribution

Once source mapping is configured, all Carfluence analytics endpoints respect it:

  • GET /api/v1/calls/stats — calls grouped by canonical source
  • GET /api/v1/leads/stats — leads grouped by canonical source with cost-per-lead
  • GET /api/v1/sales/stats — sales attributed to the original lead source

This gives you a unified view of marketing performance across all channels and data types.

Last updated: February 10, 2026