What you need
- Google Chrome, version 116 or newer.
- A WhatsApp number linked and connected. See WhatsApp numbers.
- Cloudflare R2 connected, where recordings are stored. Connect it on Settings → WhatsApp → Integrations. See Integrations.
- For transcripts, a transcription model chosen under Settings → AI provider.
- WhatsApp Web in English. The extension finds WhatsApp’s Voice call and End call controls by their English labels.
Install the extension
The extension is loaded unpacked, so Chrome will not update it by itself.1
Download it
Open Settings → WhatsApp → Integrations and find the Call Recorder extension card. Click Download. The file is served to signed-in people from
/downloads/call-recorder.2
Unzip and keep it
Unzip it and move the
agentsdr-call-recorder folder somewhere it can stay, such as Documents. Chrome reads the extension from that folder every time it starts.3
Load it unpacked
Open
chrome://extensions, turn on Developer mode, click Load unpacked and choose that folder.Update the extension
From version 0.14.0 the card’s Update button opens the extension’s own Update page.1
Click Update
On Settings → WhatsApp → Integrations, click Update. The Update page opens and shows the version you run.
2
Choose the folder, once
Click Choose folder. Pick the folder Chrome loaded the extension from. To find it, open
chrome://extensions, click Details on AgentSDR Call Recorder and look under Source. Allow Chrome to edit it. After that, updates are written there.3
Update now
Click Update now. The extension installs the version this AgentSDR serves and reloads itself.
4
Reload WhatsApp Web
Reload your WhatsApp Web tab before the next call.
chrome://extensions.
AgentSDR refuses to start a call if the extension is too old for the page. It tells you to download the latest, replace the folder and reload the extension.
Self-hosted AgentSDR
The extension only works with AgentSDR addresses it has been told about.https://agentsdr.ai and http://localhost:3000 are built in. If you run your own AgentSDR, add its address:
- Open the extension’s Options page. In
chrome://extensions, click Details on the extension, then Extension options. - Under Your AgentSDR addresses, enter the address, for example
https://sdr.yourcompany.com, and click Add. - Allow access when Chrome asks. Reload any open AgentSDR tab.
Place a call
Click Call next to a lead. It appears on contacts in WhatsApp → Call campaigns and in the header of a CRM record.- If the lead has a phone number, Call dials it. The arrow beside the button opens Change number.
- If not, you are asked for a WhatsApp number. It is saved to the lead and replaces a number you correct.
- The extension cannot press Voice call: you press it yourself. Recording still starts by itself.
- Chrome paused the call audio — switch to the WhatsApp tab and click anywhere.
- Not answered — nothing was recorded.
- The chat has no call button, as with a business number run through Meta’s API. The strip reports the number as not on WhatsApp.
What is recorded, and when
The recording is stereo: your microphone on the left, the lead on the right. It starts when the call opens your microphone, so the lead’s first words are not lost. The pickup is the moment the call timer appears. It stops when the timer disappears, End call goes away or the microphone is released. A call that nobody picks up is discarded. If no timer shows within a minute, the extension records anyway and the strip says Call timer not detected — recording started as a fallback. The player starts at the pickup, not at the first ring. When the call ends, the recording uploads straight to your R2 bucket. If the upload fails, the file is saved to your Downloads instead and the strip tells you. A recording can be up to 200 MB, about three hours. Recordings are never public. Every play uses a short-lived link, and the upload link is valid for 15 minutes.Transcripts
If you chose a model, AgentSDR transcribes each recording after it saves, usually in under a minute. Choose it under Settings → AI provider in Call transcription model. Pick a model that accepts audio, for example a Gemini model. With no model chosen, transcription is off. Transcription runs on your own OpenRouter key like every other AI call. See AI provider. A transcript has the language, a two or three sentence English summary and the utterances. The speaker labels “rep” and “lead” are inferred, because the model receives the channels merged. If transcription fails, the strip shows Transcription failed — retry below.After the call
You are taken back to AgentSDR to mark the outcome, for example No answer, Busy / declined, Not on WhatsApp, Wrong number, Interested, Meeting booked, Call back later, Send details, Not interested or Do not call. Most outcomes offer a short WhatsApp message you can edit before it opens. A lead who does not pick up comes round again after 1, 2 and then 4 days, then is done.Consent
Many places require everyone on a call to consent before it is recorded, and some require you to announce it. Tell people when you record. You are responsible for the law where you and the lead are. Read Responsible use.Related
WhatsApp numbers
Link the number you call from.
AI provider
Choose the transcription model.
Integrations
Connect Cloudflare R2 for recordings.
Responsible use
Recording and consent.