From spreadsheet chaos to single dashboard: a B2B SaaS migration story

Clearpath, a 40-person B2B SaaS company, ran their entire marketing attribution out of a Google Sheet for two years. This is the honest story of migrating off it.

Shortifi.me Jan 30, 2026 3 min read

A flat rectangle spreadsheet grid transforming into a clean single-line dashboard

Two years of “it works well enough”

Clearpath sells workflow automation software to logistics companies. Forty people, Series A, and a marketing team of five led by their VP of Marketing, Reza. In January 2026, Reza’s team was still running attribution from a Google Sheet that a previous contractor had built in late 2023.

The sheet had grown to 1,847 rows. It had nine tabs. Three people had edit access. Nobody fully understood the formulas in column AJ.

Every quarter, the sheet broke in a new way. Sometimes a VLOOKUP referenced a renamed tab. Sometimes someone pasted values over a formula without noticing. In Q3 2025, a reporting error caused Reza to under-report organic LinkedIn performance to the board by 40% — discovered only when the CSM noticed the pipeline source data didn’t match.

“The sheet was a liability. Not because we couldn’t fix it, but because we kept having to fix it.” — Reza Tehrani, VP Marketing, Clearpath

Why migration felt hard

Clearpath had looked at consolidating tools before. The blockers were always the same:

  1. Historical data — two years of campaign performance lived in the sheet
  2. Ownership — UTM creation was informal; anyone could generate a link
  3. Naming conventions — they had accumulated 60+ distinct UTM string variants

The insight that unlocked the migration

Clearpath’s growth engineer, Tomás, had been evaluating tools for a different reason: they wanted to add click analytics to their outbound sales sequences. While demoing Shortifi, he noticed the controlled vocabulary for UTM fields and brought Reza in.

The key realization: Shortifi enforces naming standards at the moment of link creation, not as a governance doc people have to remember to consult. The source and medium fields autocomplete from workspace-defined values. You can’t accidentally type linked-in if linkedin already exists in the vocabulary.

The migration plan: four weeks

Week 1: vocabulary audit

Tomás exported two years of UTM data from Google Analytics and ran a deduplification analysis. He identified eight canonical sources hiding behind 62 string variants. The most chaotic was LinkedIn — it had appeared as linkedin, LinkedIn, li, linked-in, lnkdin, linkedin-organic, and four others.

Rather than a hard cutover, the team adopted a simple rule: any new link created goes through Shortifi. Existing campaigns kept their old links until they were refreshed naturally.

Reza sent one Slack message to the marketing team:

“Starting Monday, all new UTM links come from Shortifi. Tomás set up our sources and mediums. Do not freestyle UTM strings. If your source isn’t in the list, ask him first.”

Two people asked. Both requests were legitimate new sources. The vocabulary expanded by two entries.

Week 3: retire the sheet for new data

By week three, all active campaigns were running Shortifi links. The Google Sheet received no new entries. For Clearpath’s Account-Based Marketing campaigns, this was transformative. Previously, each ABM sequence had custom UTM strings per account, making roll-up reporting nearly impossible. In Shortifi, they created one campaign per ABM wave, generated per-account links with consistent tagging, and could see aggregate engagement across the wave in real time.

Week 4: board-ready reporting

Reza prepared the Q1 board deck without opening a spreadsheet.

“I presented LinkedIn numbers I actually trusted. That’s genuinely new.”

What the numbers looked like

Metric Before (Q4 2025) After (Q1 2026)
UTM string variants 62 8
Weekly reporting prep time ~5 hours ~45 minutes
Attribution errors requiring correction 3–4/month 0
ABM campaign link management Per-account spreadsheet rows Campaign view, auto-aggregated

The honest tradeoffs

Clearpath’s historical data (pre-migration) is still in the sheet. They made a conscious decision not to backfill — the cost of normalizing two years of dirty strings wasn’t worth the analytical benefit for a company at their stage. The sheet is now read-only, archived, and nobody misses it.

Tomás’s advice for teams considering a similar migration: don’t try to fix history. “Set a cutover date, create clean vocabulary, and move forward. Historical data with bad UTMs will always look bad. That’s fine. Focus on making future data trustworthy.”

Run the work behind the click.

Start free. No credit card. One workspace included.

Start free