## What was wrong The bot camera image draws a "REC" pill on top of the workspace logo. The label used an SVG `<text>` element, and sharp resolves SVG text through the host's fonts. The runtimes that execute app logic functions ship no fonts, so every character fell back to an empty box: the badge showed "▯▯▯" instead of "REC" in real meetings. It looked fine locally because dev machines have fonts. ## The fix Draw the label as vector outlines instead of text. "REC" is outlined once from Inter SemiBold and stored as an SVG path constant, so the badge renders the same on any host with no font lookup. The pill width is derived from its contents instead of hardcoded, and tests fail if `<text>` or `font-family` ever comes back. <img width="2120" height="1191" alt="CleanShot 2026-07-28 at 19 16 46" src="https://github.com/user-attachments/assets/c5fa0958-35ba-48da-be9c-a6af81ec2fa0" /> 1 -- the bug on prod 2 -- how it looks when its not bugged on prod 3 -- this branches changes <!-- This is an auto-generated description by cubic. --> <a href="https://cubic.dev/pr/twentyhq/twenty/pull/23415?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="Review in cubic" src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a> <!-- End of auto-generated description by cubic. -->
Call Recorder
Record, transcribe, and save every meeting — right inside your CRM.
✨ What you get
- Recordings on every meeting
- A Call Recording tab
- A per-meeting on/off switch
- AI meeting summaries
- Built for AI & automation
💳 Billing
Metered in Twenty credits based on the bot's actual recording time, prorated by duration — $1.00 per recording-hour (1 credit). No recording — opted out, canceled, or no-show — means no charge.
AI summaries use workspace AI credits, billed on the model's token usage — the
cost scales with how much was said in the meeting, typically $0.02–$0.06 per
meeting on default models. Set the CALL_RECORDER_SUMMARY_ENABLED app
variable to false to turn summaries off.
🎥 Supported meeting platforms
The recording bot can only join meetings on these platforms:
- ✅ Google Meet
- ✅ Zoom
- ✅ Microsoft Teams
- ✅ Webex
- ✅ GoTo Meeting
Events whose conference link points to any other platform (e.g. ro.am, Daily, Whereby) or that only have a dial-in number are ignored — no bot is scheduled, since it can't join the call.
📌 Heads up
- Needs a synced calendar + video link — ad-hoc calls that were never on your Google, Outlook, or CalDAV calendar aren't recorded.
- Your copy is yours — Twenty stores its own video, audio, and transcript, so they stay available after the source media expires.