Prerequisites
- A Pipecat Cloud account with access to pipecat.daily.co.
- A WhatsApp Cloud API number onboarded in Kapso with Voice calling (
calls_enabled
) switched on. - Pipecat Cloud agent name (
serviceName
) and public API key. - Optional: Docker registry access if you will push a custom image.
1. Deploy the sample Pipecat agent
Use the open-source starter repo to get a runnable Pipecat container:- Clone
gokapso/whatsapp-voice-agent-pipecat
. - Copy
.env.example
to.env
and setOPENAI_API_KEY
. You can also override the default system prompt withSYSTEM_PROMPT
. - Install dependencies locally:
- Authenticate with Pipecat Cloud:
- Build and push an image (uses
pcc-deploy.toml
for the image tag): - Deploy the agent:
bot.py
accepts WhatsApp calls, runs OpenAI STT → LLM → TTS, and speaks as “Kap,” the Kapso engineer persona. Swap models or prompts later as needed.
2. Link the voice agent in Kapso (dashboard)
- Sign in to app.kapso.ai and open Voice agents → New voice agent.
- Give the agent a friendly name.
- Select Pipecat as the provider and paste the Pipecat public API key plus the agent name you deployed.
- Save. Kapso encrypts your API key at rest.
- Attach a WhatsApp configuration (phone number). Mark one assignment as Primary and keep Enabled toggled on so Kapso launches sessions for that number.
Prefer an API workflow? See Create a voice agent and Create a voice agent WhatsApp assignment for payloads that mirror the dashboard steps.
3. Test the call path
- Place a voice call to the connected WhatsApp number from a mobile device.
- Kapso receives the Meta
calls
webhook, starts the Pipecat session, and the agent greets the caller. - Confirm that call details appear under Voice agents → Calls and verify the audio path.