Recall.ai Integration
Connect Recall.ai to let agents investigate meeting-bot issues. When a customer reports that a bot failed to join a call, stopped recording, or never produced a transcript, an agent can find the bot behind the meeting, read its lifecycle events timeline to see where in its lifecycle things went wrong, and pull the detailed bot logs that preserve creation, join, recording, and teardown events. For questions that span a window of time — or that concern a bot that was deleted or never created — an agent can search the workspace's append-only log stream, which survives the bot record's own deletion.
Read-only. Autoheal reads your Recall.ai bots and their logs; it never creates, stops, or deletes bots, and never changes anything in your Recall.ai workspace. Autoheal connects with a read-only-scoped MCP API key, so it cannot write even if asked to.
Capabilities
Once connected, agents can:
| Capability | Description |
|---|---|
| List bots | Find bots, filtered by meeting URL, platform, status, a join-time window, or a metadata key/value pair — for when you have a meeting URL or a customer identifier but not a bot ID. Paginated with a next_cursor (up to 100 per page) |
| Reconstruct a bot's lifecycle | Read a single bot's lifecycle events timeline (each entry has code, sub_code, message, created_at) to see exactly where creation → join → recording → teardown succeeded or failed. Best for older bots whose detailed logs have aged out |
| Read bot logs | Retrieve the detailed log entries for a bot — the primary diagnostic surface, finer-grained than the lifecycle timeline. Narrow by severity or a text search; paginated oldest-first |
| Search the workspace log stream | Search the workspace's append-only logs over a required time window (start_time/end_time). This is the tool for lifecycle questions — a bot that was deleted or never created, a timing gap, or whether a replacement bot ever picked up a meeting — because these logs survive the bot record's own deletion. Filter by severity, a text search (pass a bot UUID to trace every log that mentions it), or by API request (method, path with an {id} placeholder, and response status). Paginated oldest-first |
Agents read Recall.ai through its hosted MCP at the region host you select (e.g. https://us-west-2.recall.ai/mcp).
Prerequisites
- A Recall.ai account with a read-only MCP API key (Dashboard → Developers → MCP API Keys), created with the scopes
mcp.bots.readandmcp.logs.read - The region your workspace is hosted in — a key is only valid in the region it was created in
Configuration Fields
| Field | Required | Description |
|---|---|---|
| MCP API Key | yes | A Recall.ai read-only MCP API key with scopes mcp.bots.read and mcp.logs.read. Region-scoped — create it in the same region you select below. No write scopes are needed. |
| Region | no (defaults to us-west-2) | The region hosting your workspace: us-east-1, us-west-2, eu-central-1, or ap-northeast-1. Selects the correct MCP endpoint. |
Setup
In the Recall.ai dashboard, go to Developers → MCP API Keys and create a key with the scopes mcp.bots.read and mcp.logs.read only. Note which region the key belongs to — you'll select the matching region in Autoheal.
- Go to Integrations in Autoheal and click Recall.ai.
- Enter a name (e.g. "Production Recall.ai").
Paste the MCP API Key and select the matching Region.
Click Test Connection to verify the key authenticates against the selected region, then Save.
Required Permissions
Autoheal only reads. A read-only MCP key with the two bot/log read scopes is sufficient:
| Scope | Why it's needed |
|---|---|
mcp.bots.read | List bots and read a bot's record and lifecycle events timeline |
mcp.logs.read | The detailed lifecycle logs used to diagnose incidents |
Data Retention
Recall.ai retains the different kinds of data for different lengths of time. The detailed bot logs have the shortest retention (about 7 days) — shorter than the bot record itself — so they are richest for recent incidents. For older bots, reconstruct the lifecycle from the bot's events timeline (recallai_get_bot), which persists longer than the logs. The workspace log stream (recallai_get_workspace_logs) is append-only and survives the deletion of the bot record itself, so it is the right surface for a bot that no longer resolves — for example one that was deleted, or one whose ID turns out never to have been created.
Example Queries
Once connected, you can ask an agent questions like:
A customer says the bot on https://zoom.us/j/123456 never recorded. Find the bot and tell me what happened.
Show me the lifecycle timeline for bot <bot-id> — where did it fail?
Pull the logs for bot <bot-id> and explain why it left the call early.
List the bots we sent to Google Meet in the last day that ended in a fatal status.
Bot <bot-id> doesn't exist anymore, but a customer says we sent one to their 3pm call yesterday. Search the workspace logs for that window and tell me if it was ever created and what happened to it.
Troubleshooting
401 / 403 Unauthorized
- Confirm the MCP API key is correct and active
- Confirm the key was created with the
mcp.bots.readandmcp.logs.readscopes - Confirm the selected Region matches the region the key was created in — a key from one region does not authenticate against another
No logs for an older bot
- Detailed logs have the shortest retention (about 7 days). For a bot older than that, the logs may have aged out even though the bot record still resolves. Use the bot's lifecycle events timeline (
recallai_get_bot) to reconstruct what happened.
A bot ID no longer resolves (deleted or never created)
recallai_get_botandrecallai_get_bot_logslook the bot up by ID, so they return "not found" once the bot record has been deleted — or if the ID was never a real bot. Switch torecallai_get_workspace_logs, whose append-only stream survives the bot's deletion: give it the time window the bot should have run in and pass the UUID astextto surface every workspace log that references it, including the create (201) and delete (204) API-request entries.
Empty results when listing bots
- Filters are combined — narrow one at a time. Confirm the
meeting_urlis the exact URL the bot was sent to, and that any metadata key/value matches what your product set on the bot - Bots are region-scoped; confirm you selected the region the bot was created in
Rate limited (429)
- Recall.ai enforces rate limits; agents honour
Retry-Afterand retries automatically. Large sweeps simply take longer