Hey LiveKit community!
I have a working LiveKit voice agent running in production in India via Exotel, and I’m now looking to expand it with WhatsApp integration. Would love guidance from anyone who has tackled this.
What I already have:
A fully functional outbound voice AI agent (LiveKit Agents SDK + Python + Exotel for PSTN) handling real calls.
What I want to build next — two patterns:
Post-call WhatsApp trigger
Once the voice call ends, automatically send a WhatsApp message to the user with a relevant CTA — e.g. a payment link, a form, a summary, a booking confirmation, or any follow-up action based on what was discussed on the call.
Mid-call WhatsApp trigger (async, multi-channel)
While the voice call is still active, the agent sends a WhatsApp message with a CTA, waits for the user to act on it (complete a payment, fill a form, send a document, respond to a query), and then reacts on the ongoing call with the result — keeping the conversation continuous across both channels.
Some real examples of where this is useful:
- Send payment link on WhatsApp → confirm payment on call
- Send a form → process submission and continue on call
- Push search results or product info to WhatsApp → discuss on call
- Request a document via WhatsApp → acknowledge receipt on call
Questions I need help with:
- What’s the cleanest way to trigger a WhatsApp message from within a LiveKit agent session (both mid-call and post-call)?
- For the mid-call pattern — how do I feed an async external event (webhook / inbound WhatsApp message) back into the live agent context?
- Is there a pattern for a “waiting” state mid-conversation while the agent listens for an external signal, without the call feeling silent or dead to the user?
- Any examples or prior art in the community for this kind of multi-channel coordination on top of LiveKit?
Stack: LiveKit Agents SDK (Python), Exotel (PSTN, India), WhatsApp Business API.
Happy to share more details on the current setup. Thanks in advance!