Surface
Getting started

Attribution and UTM Tracking

Surface automatically tracks every touchpoint in a lead's journey—from first visit to form submission—so you can measure which campaigns and channels drive pipeline. All attribution data syncs to your CRM for reporting.

What Surface tracks

Every lead gets full session attribution:

  • UTM parameters — Source, medium, campaign, term, content from all sessions

  • Referrer — Where visitors came from (Google search, social media, direct, etc.)

  • Landing pages — First page visited and page where form was submitted

  • Session count — How many times they visited before converting

  • Pages viewed — Full journey through your site before submitting

  • Time to convert — Days from first visit to form submission

No additional setup required—tracking starts automatically when you install the Surface Tag.

UTM parameter tracking

Surface captures UTMs from any session:

Visitor clicks an ad with utm_source=linkedin&utm_campaign=q4-promo. They browse but don't convert. Two days later they return via organic search and submit a form. Surface saves both the first-touch (LinkedIn ad) and last-touch (organic) UTMs.

All UTM data appears in the lead record and syncs to your CRM for campaign reporting.

Always use consistent UTM naming conventions across campaigns. Surface groups attribution by exact parameter matches, so "LinkedIn" and "linkedin" count as different sources.

Attribution models

Surface supports multiple attribution models:

First-touch. Credits the initial campaign that brought the visitor to your site.

Last-touch. Credits the final touchpoint immediately before form submission.

Multi-touch. Shows all campaigns and sessions leading to conversion with weighted credit.

Choose your default model in Settings > Attribution. All models are available in reporting regardless of your default.

Configure UTM sync to CRM

Map UTM parameters to CRM fields:

  1. Go to Settings > Integrations > [Your CRM]

  2. Open the Field Mapping section

  3. Map Surface attribution fields to CRM fields (e.g., "First Touch Source" → "Lead Source" in Salesforce)

  4. Save your configuration

Common mappings:

  • First Touch Source → Lead Source

  • First Touch Campaign → Campaign Name

  • Last Touch Source → Most Recent Source (custom field)

  • Landing Page → Landing Page URL (custom field)

You may need to create custom fields in your CRM to capture all Surface attribution data, especially for multi-touch tracking.

Track conversions by campaign

See which campaigns drive the most leads:

  1. Navigate to Analytics > Attribution

  2. Select your date range

  3. View leads grouped by Source, Medium, or Campaign

  4. Filter by lead score or conversion to opportunity to see quality metrics

Export attribution reports to CSV or sync to your BI tool via API.

Cross-domain tracking

If your forms are on a different domain than your main site:

  1. Install the Surface Tag on both domains

  2. Go to Settings > Surface Tag > Cross-Domain

  3. Add all domains you want to track (e.g., withsurface.com, app.withsurface.com)

  4. Save changes

Surface will maintain session and UTM data as visitors move between domains.

Google Analytics integration

Send Surface events to Google Analytics:

  1. Enable the Google Analytics integration in Settings > Integrations

  2. Enter your GA4 Measurement ID

  3. Choose which events to send (form starts, step completions, submissions)

Surface events appear in GA4 as custom events with full UTM attribution.

Accurate attribution helps marketing teams prove ROI and optimize spend—Surface customers report 20-30% better campaign performance from data-driven budget allocation.

Troubleshooting attribution

UTMs not capturing: Verify the Surface Tag is installed on all pages and loads before visitors navigate. Check for ad blockers or privacy tools preventing tracking.

Wrong source showing: Check UTM parameter spelling in your campaign URLs. Surface is case-sensitive for UTM values.

Cross-domain tracking broken: Ensure both domains are added to cross-domain settings and the Surface Tag is installed identically on both.

Was this helpful?