Outreach Dialer
Outreach Dialer, an open-source Twilio browser dialer with built-in CRM, call logging and missed-call alerts—built for our own outreach team, free to self-host.
- Industry
- Sales Operations / Open Source
- What we did
- Product Engineering, Telephony Integration, Open Source
- Built with
- Next.jsTypeScriptTwilio Voice JS SDKPostgresPrismaResend
What it does, step by step. The coral steps are where AI does the work.
Call
Click-to-call in the browser
Pick caller ID
By destination country
Track status
Ordered webhooks + hourly check
Follow up
Missed-call SMS, email, CRM
The challenge
ASSOSIATIX runs its own international B2B outreach—researching businesses and calling them directly. A browser dialer tied to real call logging and a lightweight CRM is table stakes for that, but commercial options mean a vendor contract and a black box over the call data, and the open-source alternatives we found were unmaintained. We wanted a dialer we owned outright: our data, our infrastructure, built to the exact workflow our team actually uses.
What we built
We built Outreach Dialer—a Twilio-powered browser dialer with a built-in CRM. Click-to-call or dial from the keypad, with caller ID auto-selected by the destination country. Inbound calls simul-ring every available teammate; missed calls trigger an SMS and email alert and fall through to voicemail. Contacts carry stage, notes and next follow-up, so wrap-up after a call takes seconds, and the next person to pick it up has full context.
How we built it
Call state is the part that's easy to get wrong with Twilio webhooks arriving out of order, so status updates follow a strict ordering rule—no late callback can undo a final outcome—backed by an hourly job that reconciles anything left stuck against the Twilio API. Recordings and voicemails are proxied through our own API, so Twilio credentials never reach the browser, and every webhook is verified against its signature. A cost guard refuses any call priced above a configurable per-minute rate before it dials. Deliberately out of scope: predictive dialing, call queues, IVR—we built what our own team needed, not a PBX.
Highlights. The engineering details that made it hold up.
No silent drops
Twilio's status callbacks can arrive out of order. A strict status-ordering rule means no late callback can overwrite a call that already has a final outcome, and an hourly reconciliation job catches anything left stuck against the Twilio API directly.
Caller ID by destination
The dialer picks a number from the destination country automatically, falling back to the same calling code, then a default—so an international call shows a local-looking number without the caller choosing anything.
Missed call handling
Inbound calls simul-ring every available teammate at once; nobody online or nobody answering logs as missed with an SMS and email alert, and a voicemail recording with a listen link.
Cost guard
Outbound calls priced above a configurable per-minute rate are refused before they dial, so a misdialed premium-rate or satellite number can't run up a surprise bill.
Secure by design
Recordings and voicemails play back through our own proxy—Twilio credentials never reach the browser—and every incoming webhook is checked against Twilio's signature before it's trusted.
Built-in CRM
Contacts carry stage, research notes and next follow-up. Every call lands in a full history with its final status, and SMS replies land on the same contact timeline—so wrap-up after a call is the only data entry anyone does.
The result
It's running our own outreach calling today, and we open-sourced it (MIT) rather than keep it internal—any team with a Twilio account can self-host their own instance instead of renting a locked-down dialer subscription.
Services behind this project
Want something like this built?
Share a few details and we'll reply within 1–2 business days with questions, a scope and a quote.