What you need
- An Attendee account: sign up at app.attendee.dev, or run Attendee yourself. Create an API key in your Attendee project.
- For Zoom, your Attendee project also needs Zoom credentials (a Zoom Meeting SDK app). Attendee’s docs walk through it. Google Meet and Teams need nothing extra.
- An agent in Wixzel Voice.
1. Connect Attendee
In the console, open Integrations → Meetings, or call the API once:cURL
"webhook_secret" with your Attendee project’s webhook secret
(Settings → Webhooks in Attendee). Then every status update Attendee sends us is
also checked against its signature.
2. Send an agent to a meeting
cURL
status: "joining". Follow it with
GET /v1/meetings/{id}:
To make it leave:
POST /v1/meetings/{id}/leave.
Signed-in bots
By default the bot joins as an anonymous guest, and Google Meet marks it as “appears to be a bot” in the host’s waiting list. A signed-in bot logs into an account first, so the meeting shows a named participant with its own avatar. It can also join meetings that do not let anonymous guests in.- In your Attendee, set up a bot login under Settings → Bot Logins: a Google Workspace account for Google Meet, or a Microsoft 365 account for Teams. Attendee’s signed-in bots guide walks through it.
- Turn it on for that platform, in the console (Integrations → Meetings → Signed-in bots) or with the API:
cURL
"signed_in": true or false with
POST /v1/meetings. Signed-in bots are not available for Zoom.
A bot signed into an account outside the host’s organisation can still be
shown as an external guest, just not as a bot.
When the agent speaks
In a meeting most of what is said is not for the agent. By default (respond_when: "addressed") it speaks only after someone says its name, and
for a short while after it last spoke, so people can answer its questions
without naming it again. Anything else it would have said is not played and is
left out of the transcript.
Add other names people might use with wake_names, for example
["Ava", "Acme bot"]. Set respond_when: "always" for a one-to-one meeting
where every word is for the agent.
Billing
- Attendee bills you for the bot’s time in meetings, directly, on your Attendee account. Wixzel Voice adds nothing to that.
- Wixzel Voice bills the conversation like a realtime session: per second of the engine’s usage plus the platform fee, from the moment the bot is let into the meeting until it leaves. Joining and the waiting room cost nothing.
GET /v1/calls with channel: "meeting", with its
transcript, and sends a callCompleted webhook when it ends.
Limits
max_duration_seconds: up to 4 hours in the meeting (default 1 hour).waiting_room_timeout_seconds: up to 1 hour (default 10 minutes).- Audio in and out of the meeting is telephone quality (the same 8 kHz audio the engines use on phone calls).
- Zoom meetings that use Zoom’s RTMS stream cannot take audio from a bot, so the agent can listen there but not speak. Use the standard Zoom bot in Attendee.
- Human transfer is not available in meetings.

