RingCentral webhooks, handled properly
Message-store notifications with the RC validation-token handshake, full message fetch, phone-number contact matching with upsert, and conversation threading into GoHighLevel — rc-inbound.js.
← INDEX/WORK/GHL-RC-BRIDGE
№ 09 — SYSTEMS INTEGRATION
The CRM couldn’t hear the phone system. So I built it an ear — in five serverless functions.
THESIS
At Professional Travel Center, the phones live on RingCentral and the CRM lives in GoHighLevel — and out of the box, neither knows the other exists. Every customer text was invisible to the system of record; every agent reply lived in the wrong tool.
No vendor sold the fix, so I built it: a bidirectional SMS/MMS bridge. Inbound texts thread into the right GHL conversation with contact upsert; agent replies in GHL go out through RingCentral and log back into the thread; and campaign keywords — the cruise-expo finalist numbers from №10 — trigger an automatic confirmation MMS. A phone line became an automation surface.
THE BUILD
Message-store notifications with the RC validation-token handshake, full message fetch, phone-number contact matching with upsert, and conversation threading into GoHighLevel — rc-inbound.js.
GHL webhook → RingCentral SMS send → logged back to the same GHL thread, so agents work in one tool and customers see one number.
Finalist-number detection fires a confirmation MMS automatically — the integration hook that made the PTC Promotions giveaway funnel self-service.
A ~730-line inbox viewer and a ~500-line composer in plain HTML/JS, served from the same Netlify deploy — no framework, no build, no login walls between an agent and a reply.
Four shipped revisions of auth handling (rcAuth.js), GHL API wrappers, and subscription management — the version trail of a tool that people actually used.
SCREENS

SIGNALS
STACK
WHAT IT PROVES
The improviser’s skillset: read two vendors’ API docs, find the seam, and ship a working bridge without asking permission or budget. Most of a marketer-engineer’s value lives in exactly this kind of unglamorous connective tissue.