MarTech · Lead Generation

Marketing automation with dynamic Twilio numbers.

I built a platform for a marketing and lead-generation company that qualifies inbound phone leads automatically and ties every call back to the campaign that paid for it. Dynamic Twilio numbers turn the phone, the hardest channel to attribute, into clean, closed-loop data.

Dynamic number poolsCall tracking & attributionReal-time lead scoringCRM integration
Oshri Cohen, marketing automation platform
Oshri CohenDigital products delivered
The problem

Phone leads were a black box.

The company spent across dozens of campaigns and channels, but the moment a prospect picked up the phone instead of filling out a form, the trail went cold.

No campaign attribution

A call came in on one shared business number. Nobody could say which ad, landing page or source actually drove it, so budget decisions were guesswork.

Manual qualification

Every call had to be triaged by a person before it reached sales. Good leads waited in a queue while reps burned time on calls that were never going to close.

Disconnected systems

Marketing spend lived in ad platforms, calls lived in a phone system, and deals lived in the CRM. None of it joined up, so the real cost per qualified lead was unknowable.

What I built

A closed-loop attribution engine.

One platform that provisions numbers, scores calls, routes the good ones, and reconciles the whole thing back to spend.

Dynamic number pools via Twilio

I provision and recycle pools of phone numbers programmatically through Twilio's API and assign a unique number to each campaign, source or visitor session, so the number a prospect dials is itself the attribution key.

Call tracking & attribution

Every inbound call is matched to the campaign, channel and landing page that surfaced its number. Marketing finally sees which spend produces phone leads, not just form fills.

Real-time lead scoring

Calls are qualified as they happen using signals from the call and the originating campaign, so a lead is scored and ranked before the conversation is even over.

Routing to sales

Qualified leads are routed straight to the right rep while intent is hot; unqualified traffic is filtered out so the sales team only spends time on calls worth having.

CRM integration

Scored calls, their attribution and the full context flow into the CRM automatically, creating and enriching lead records without anyone retyping anything.

Engineering leadership behind it

The platform was built and shipped the way I run delivery as a fractional CTO, pragmatic architecture, owned end to end. See my fractional CTO services.

The win wasn't a smarter dialer. It was closed-loop attribution, finally knowing which marketing dollar produced which qualified phone lead.

Oshri Cohen
Common questions

What people ask about this build.

Why use dynamic phone numbers instead of one tracking number?

A single number tells you the phone rang; it can't tell you why. Provisioning a pool of numbers through Twilio and assigning them per campaign, source or session makes the dialed number itself the attribution key, so every call is traced back to the exact spend that produced it. Numbers are recycled from the pool, so it scales without buying one number per ad forever.

How does the platform qualify a lead in real time?

Each call carries context from the campaign and source that generated its number, plus signals from the call itself. The platform scores that context as the call happens, ranks the lead, and decides whether it's worth a salesperson's time before the conversation ends, instead of leaving qualification to a manual triage queue.

Does it fit into an existing CRM and ad stack?

Yes. It's built to sit on top of what the company already runs. Scored, attributed calls flow into the CRM automatically as enriched lead records, and the attribution data reconciles against the ad platforms so the team can see true cost per qualified phone lead without changing how they buy media.

Have a channel you
can't attribute?

If marketing spend is going somewhere you can't measure, that's a system problem with a system fix. Let's talk about what it would take to close the loop.

hello@oshricohen.me(514) 777-3883Canada · USA · Remote