Discussion] Exploring Voice Call Capabilities in Retool for Our CRM

Hey everyone :wave:

We’re exploring adding voice call functionality directly inside our CRM app built with Retool. Inspired by interfaces like the one in the screenshot below (with incoming call modals), we want to create a real-time experience that allows users to receive and manage calls inside the app UI.

:mag: What we discovered so far:
• Retool does not natively support WebRTC or SIP integrations for VoIP calls.
• No built-in microphone access through Retool, though browser-level permissions could handle that if embedded properly.
• WebSockets and persistent real-time updates aren’t fully native to Retool, but we could workaround this by:
• Building a custom component that maintains a WebSocket connection (to receive live updates like incoming call alerts).
• Using polling for lightweight status updates if real-time isn’t critical.
• Twilio or other third-party APIs (e.g. Agora, Daily) could handle the actual call initiation, status management, and connection.

:hammer_and_wrench: Possible architecture:
1. Trigger a call via Twilio API from a Retool button
2. Use a modal or custom component to show an incoming call screen (like in the screenshot)
3. Poll or WebSocket-based listener checks for call state updates
4. Accept/Reject buttons call respective Twilio API endpoints
5. (Optional) Use an iframe or redirect to Twilio’s hosted call UI for live microphone/camera handling

:thinking: What we need input on:
• Has anyone successfully implemented WebRTC or VoIP-like flows in Retool?
• Best practices for building persistent WebSocket listeners using custom components?
• Tips for embedding audio controls or redirecting to a secure hosted call interface (e.g. Twilio Voice JS)?

Would love to hear how others have approached this or if there are Retool-native or hybrid workarounds we might be missing!