Gig
15
TBD
Aug 27, 2025
Overview:
We need a skilled JavaScript developer to create a simple, reliable script that injects a "Call" button into our GoHighLevel (GHL) CRM. The button should allow users to make outbound calls through our Telnyx VoIP service directly from the browser, using the contact's phone number. The button must appear in three specific locations: the individual contact page, the opportunity stage, and the contacts smart list. Additionally, if feasible, include a multi-dialer feature (like Wavv's power dialer) that allows initiating up to 3 simultaneous calls for efficient dialing. The script should integrate with our existing n8n workflow (on a DigitalOcean VPS) and Supabase database for fetching dynamic Telnyx credentials (API key, connection ID, caller number) per client. No external apps or downloads should be required—everything must be browser-based using Telnyx WebRTC SDK.
Project Goals:
Ensure the button always appears on every relevant page.
Make calls dynamically using client-specific Telnyx data from Supabase.
Provide a softphone-like interface with call status, mute, end call, and transfer buttons during active calls.
Add multi-dialer action for power dialing (optional but preferred).
Specific Tasks:
Button Injection:
Use JavaScript to inject a "Call" button with a phone icon next to the native GHL action bar on:
Individual contact pages (/contacts/detail/).
Opportunity stage pages.
Contacts smart list pages.
Button styling: Match GHL’s UI (e.g., background #f0f4f8, border 1px solid #ccc, border-radius 5px, inline-flex, z-index 10000).
Use a MutationObserver and window.load event to handle GHL’s SPA dynamics.
Call Initiation:
On button click, pre-fill the contact’s phone number.
Fetch dynamic Telnyx credentials from n8n webhook (
Use Telnyx WebRTC SDK
Display a fixed softphone panel (bottom-left, z-index 10000) with:
Call status ("Call Live").
Mute button (toggle audio).
End call button (hang up via Telnyx API).
Transfer button (prompt for number and transfer via Telnyx API).
Handle microphone permissions with a toast message.
Multi-Dialer Action (Optional):
Add a "Power Dial" button to initiate up to 3 simultaneous calls (like Wavv).
Use Telnyx API to parallel dial, connect to the first answer, and hang up others.
n8n/Supabase Integration:
n8n webhook fetches credentials from Supabase clients table based on clientId.
Use Telnyx API for call creation (