Context
Thumbtack is our main marketing channel. Its leads come in by email with a name, a zip code and the request, and since summer 2026 with a masked phone number. Thumbtack doesn’t sync with GoHighLevel, our CRM, so leads were uploaded by hand when someone had time. A lead with no phone number in GoHighLevel never got our follow-up texts.
What I built
- A daily run at 5:30pm Phoenix time. It reads the day’s Thumbtack emails and turns each new lead into a GoHighLevel contact. Refunds, surveys and other notices are skipped.
- Matching the phone number. It ties the masked number our rep called or texted to the right lead, using the name said on the call (from the Quo transcript) or written in a text. If no name comes up, it only uses timing when one lead clearly fits. Otherwise it waits a day.
- Follow-up that starts and stops. The follow-up tag only goes on once the contact has a phone number. When the lead books, the follow-up texts stop and the contact gets their real phone, email and full name.
- Cleaning up duplicates. A second workflow runs twice a day and merges the duplicate contacts that appear when a lead books under a different number.
Before turning it on, I also backfilled every Thumbtack lead since January 2025 into GoHighLevel, so our win-back campaigns could reach them.
Results
- Every new Thumbtack lead is in our CRM the same day
- Follow-up texts go out once we have a number, and stop when the customer books
- No one uploads leads by hand anymore