Integrations
Channels
Sandra supports multiple messaging channels out of the box. Each channel is configured through environment variables on your deployment — no external service needs to provision anything for you.
WhatsApp Business
Sandra receives and replies to WhatsApp messages via the Meta Cloud API. You’ll need a Meta Business account with a WhatsApp Business phone number.
https://<your-sandra-url>/api/webhooks/whatsappWHATSAPP_VERIFY_TOKEN=any-secret-you-choose
WHATSAPP_ACCESS_TOKEN=your-meta-access-token
WHATSAPP_PHONE_NUMBER_ID=your-phone-number-idSandra will automatically verify the webhook and start receiving messages. For multi-tenant setups, configure per-tenant WhatsApp credentials in the admin dashboard.
Instagram DMs
Sandra receives and replies to Instagram Direct Messages via the Meta Messenger Platform API. Requires a Facebook Page linked to an Instagram Professional account.
messages webhook field.https://<your-sandra-url>/api/webhooks/instagramINSTAGRAM_VERIFY_TOKEN=any-secret-you-choose
INSTAGRAM_ACCESS_TOKEN=your-page-access-token
INSTAGRAM_PAGE_ID=your-instagram-page-idEmail (Gmail / Google Workspace)
Sandra can monitor a Gmail inbox and reply to emails automatically. Uses either Gmail push notifications or periodic polling via a cron.
GOOGLE_SERVICE_ACCOUNT_EMAIL=sa@your-project.iam.gserviceaccount.com
GOOGLE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----"
GOOGLE_DELEGATED_USER=inbox@yourdomain.com/api/webhooks/email./api/cron/email-poll every few minutes.Voice (WebSocket)
Real-time voice conversations using a WebSocket connection. The voice bridge handles speech-to-text (Deepgram), agent processing, and text-to-speech (Google Cloud TTS) in a single streaming connection.
voice-bridge/ service alongside your Sandra instance. It’s a standalone Node.js process.DEEPGRAM_API_KEY=your-deepgram-key
GOOGLE_TTS_API_KEY=your-google-tts-key # or use the service account
SANDRA_API_URL=http://localhost:3000 # points at your Sandra instance
VOICE_PORT=8080ws://<voice-bridge-url>/voice.Zoom (Meetings)
Sandra can schedule and manage Zoom meetings on behalf of users. Requires a Zoom Server-to-Server OAuth app.
ZOOM_ACCOUNT_ID=your-zoom-account-id
ZOOM_CLIENT_ID=your-zoom-client-id
ZOOM_CLIENT_SECRET=your-zoom-client-secretMulti-tenant channel isolation
In multi-tenant deployments, each tenant can have its own set of channel credentials. Configure per-tenant channels via the admin dashboard under Settings → Channels, or directly in the ProviderConfig table. Sandra routes inbound messages to the correct tenant based on the phone number, page ID, or email address that received the message.
Knowledge Base →
Index your content for RAG retrieval.
Multi-tenant →
Isolated tenants, tools, and branding.