Customizing Features
Voice Bot
Real-time voice conversations powered by ElevenLabs and your backend.
Install the voice bot to get a fully featured conversational screen with audio input, feedback controls, and lifecycle management.
vf add voice-botWhen to use it
The voice bot feature is ideal for hands-free experiences, accessibility upgrades, or conversational workflows where typing is slow or inconvenient. Teams often use it for onboarding, concierge flows, support triage, or guided data collection. It ships with a clean UI, connection states, and feedback buttons so you can launch a polished experience quickly and then layer on your own prompts, policies, and analytics.
Frontend
- Entry:
apps/native/src/app/(root)/(protected)/voice-bot/index.tsx(re-exports fromfeatures/voice-bot). - Hook:
useVoiceBot(features/voice-bot/services/use-voice-bot.ts) handles the ElevenLabsuseConversationsession, cleanup, and contextual updates. - Components:
features/voice-bot/componentsincludeVoiceBotScreen,ConversationStatusIndicator,VoiceControls, and message/feedback UI.
Backend
packages/backend/convex/router.tsdefines the/voice/conversation-tokenHTTP endpoint that proxies call to ElevenLabsgenerateConvexHttpApiUrlbuilds the proper URL for the hook
- Create an Edge Function or API route to proxy the ElevenLabs token request
- The frontend hook expects a
/voice/conversation-tokenendpoint
Environment & build
- Set
ELEVENLABS_API_KEYand theagent_idfrom your ElevenLabs Conversational AI dashboard - The feature relies on WebRTC, so it requires a custom development build (
pnpm ios/pnpm androidafterpnpx expo prebuild). Expo Go is not supported. - The hook automatically cleans up conversations when the screen unmounts
Customization
- Pass a custom
VoiceBotConfigwith your agentId and callbacks - Use the provided actions (
startConversation,sendMessage,sendFeedback) inside any screen to build overlays or companion UIs - The feedback buttons track satisfaction in your analytics layer
Found an issue or bug in the docs?
Help me improve! If you spot any errors, typos, or have suggestions, please let me know.
Reach out on X/Twitter @zafarbuildzz