01The challenge
Saldados helps individuals and freelancers eliminate their debt through Spain's "Segunda Oportunidad" (Second Chance) law. Over 80% of their lead volume comes through WhatsApp — it's their main acquisition channel.
The problem was clear: when a user landed on the website from an ad campaign (Google Ads, Meta Ads…) and clicked the WhatsApp button, the UTM parameters disappeared. 100% of the conversations logged in HubSpot came in with zero attribution data. Saldados was spending on campaigns with no way to know which ones were generating real leads and which weren't. Essentially, they were making ad spend decisions blind.
02What I did
01
Capturing UTMs on the website
I implemented code on the website that detects the visitor's UTM parameters and automatically injects them into the WhatsApp button's pre-filled message. This way, when the user starts the conversation, the first message already contains the source campaign's information without the user having to do anything.
02
Automation in HubSpot
I set up a workflow to extract the UTMs from that first message and store them in contact properties. Here I ran into an unexpected limitation: HubSpot doesn't allow native workflows to access the content of a WhatsApp conversation's first message, so the automation couldn't be completed the standard way.
03
Custom script via API
I built a script that connects directly to HubSpot's Conversations API, retrieves the full thread of each conversation, identifies and extracts the first message containing the UTMs, and stores the attribution in a custom contact property.
04
Normalizing the attribution data
Once the raw data was available in HubSpot, I built a workflow that processes that information and distributes it across the contact's standard UTM properties (source, medium, campaign, content, term). This let WhatsApp attribution data integrate seamlessly with the rest of HubSpot's reporting, just like any other channel.
03Results
Saldados went from zero visibility into campaign performance on their main channel to being able to attribute every WhatsApp conversation to its source. For the first time, they could measure which campaigns generated real conversions, compare performance across channels, and make ad spend decisions based on data — not intuition.
