Receiving Chat Messages
Platform Support
Platform | Supported | Notes | Limitations |
---|---|---|---|
Zoom | ✅ | Chat messages are captured and relayed to your Real-Time Endpoints from the global chat, direct messages to the bot, as well as replies to messages sent to the bot. | Receiving chat messages in the Zoom Native Bot is not currently supported |
Google Meet | ✅ | ||
Microsoft Teams | ✅ | Bots can only receive chat messages if the meeting chat is accessible to anonymous participants. | |
Cisco Webex | ❌ | ||
Slack Huddles | ❌ |
Setup & Configuration (Real-time)
To receive chat message webhooks, set a Real-Time Webhook Endpoint with the participant_events.chat_message
event when calling Create Bot:
curl --request POST \
--url https://us-east-1.recall.ai/api/v1/bot/ \
--header "Authorization: $RECALLAI_API_KEY" \
--header "accept: application/json" \
--header "content-type: application/json" \
--data '
{
"meeting_url": "https://meet.google.com/hzj-adhd-inu",
"recording_config": {
"realtime_endpoints": [
{
"type": "webhook",
"url": "https://my-app.com/api/webhook/recall",
"events": ["participant_events.chat_message"]
}
]
}
}
'
Then, as long as the bot is in the in_call_recording
or in_call_not_recording
states, the configured endpoint will receive chat messages as webhook events.
Event Payload
Whenever a message readable by the bot is received in the chat, your endpoint will receive a webhook event with the following payload:
{
"event": "participant_events.chat_message", // participant_events.join, participant_events.leave, participant_events.speech_on, participant_events.speech_off (& more)
"data": {
"data": {
"participant": {
"id": number,
"name": string | null,
"is_host": boolean,
"platform": string | null,
"extra_data": object
},
"timestamp": {
"absolute": string,
"relative": float
},
"data":
{
"text": string,
"to": string
} // populated for `participant_events.chat_message` event
| null
},
// The real-time endpoint configured to receive data
"realtime_endpoint": {
"id": string,
"metadata": object,
},
// The associated ParticipantEvents Resource encapsulating this data
"participant_events": {
"id": string,
"metadata": object
},
"recording": {
"id": string,
"metadata": object
},
// The related bot, if the recording is produced by a bot
"bot": {
"id": string,
"metadata": object
}
}
}
Setup & Configuration (Async)
After the call has ended, you can also download all the chat messages that were sent during the meeting via the Retrieve Bot endpoint. In the response from this endpoint, you should access the array of recordings
to find the bot's recording. From there, you can download all participant events, including chat messages, by accessing media_shortcuts.participant_events.data.participant_events_download_url
.
{
"id": "f8e9d7c6-b5a4-4321-9876-543210fedcba",
"media_shortcuts": {
"participant_events": {
"id": "a3b2c1d0-e9f8-4567-8901-234567890abc",
"created_at": "2025-08-15T14:22:17.123456Z",
"status": {
"code": "done",
"sub_code": null,
"updated_at": "2025-08-15T14:28:33.987654Z"
},
"metadata": {},
"data": {
"participant_events_download_url": "...",
...
}
}
},
"metadata": {}
}
Updated about 14 hours ago