> ## Documentation Index
> Fetch the complete documentation index at: https://docs.reachcrew.space/llms.txt
> Use this file to discover all available pages before exploring further.

# Calling and recording

> Place WhatsApp calls from ReachCrew with the Call Recorder Chrome extension, record them from pickup to hang-up, and get a transcript.

ReachCrew places WhatsApp calls through WhatsApp Web, in your own Chrome. A small extension, the Call Recorder, dials the number, records the call and uploads the recording. ReachCrew then transcribes it and keeps it on the lead. Only calls placed from ReachCrew's **Call** button are recorded. Your own calls in WhatsApp Web are never touched.

## What you need

* Google Chrome, version 116 or newer.
* A WhatsApp number linked and connected. See [WhatsApp numbers](https://docs.reachcrew.space/whatsapp/accounts.md).
* Cloudflare R2 connected, where recordings are stored. Connect it on **Settings → WhatsApp → Integrations**. See [Cloudflare R2 setup](https://docs.reachcrew.space/integrations/cloudflare-r2.md).
* 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.

![Settings, WhatsApp, Integrations tab with Unipile and Cloudflare R2 cards, and a Call Recorder extension card with a Download button and first-time and update instructions](https://mintcdn.com/recahcrew/b3LOEBKCy3btecGb/assets/screenshots/app/whatsapp-integrations.png?fit=max\&auto=format\&n=b3LOEBKCy3btecGb\&q=85\&s=8ab46d0062e7b02868ac0d9dbb62245e)

The Integrations tab holds the Cloudflare R2 card and the Call Recorder extension card.

**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 `reachcrew-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.

The card shows whether the extension is **Not installed in this browser**, **Up to date**, or has an **Update available** with the version you have.

## 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 ReachCrew 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 ReachCrew serves and reloads itself.

**4. Reload WhatsApp Web**

Reload your WhatsApp Web tab before the next call.

Versions before 0.14.0 have no Update button. Download the zip once, replace the folder, and click the reload arrow on the extension in `chrome://extensions`.

> [!NOTE]
>
> ReachCrew 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 ReachCrew

The extension only works with ReachCrew addresses it has been told about. `https://app.reachcrew.ai` and `http://localhost:3000` are built in. If you run your own ReachCrew, add its address:

1. Open the extension's Options page. In `chrome://extensions`, click **Details** on the extension, then **Extension options**.
2. Under **Your ReachCrew addresses**, enter the address, for example `https://sdr.yourcompany.com`, and click **Add**.
3. Allow access when Chrome asks. Reload any open ReachCrew tab.

Addresses must use https. Plain http is accepted only for localhost. **Remove** takes an address and its permission back. No rebuild is needed.

## 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.

ReachCrew then hands the call to the extension, which opens the chat in WhatsApp Web and presses **Voice call**. A live call strip in ReachCrew shows the stages: **Opening WhatsApp…**, **Calling…**, **Ringing — recording starts when they pick up**, **Recording**.

You may see these notices:

* 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, ReachCrew 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](https://docs.reachcrew.space/workspace/ai-provider.md).

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 ReachCrew 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](https://docs.reachcrew.space/responsible-use.md).

## Related

> [card] [WhatsApp numbers](https://docs.reachcrew.space/whatsapp/accounts.md)
>
> Link the number you call from.

> [card] [AI provider](https://docs.reachcrew.space/workspace/ai-provider.md)
>
> Choose the transcription model.

> [card] [Integrations](https://docs.reachcrew.space/integrations.md)
>
> Connect Cloudflare R2 for recordings.

> [card] [Responsible use](https://docs.reachcrew.space/responsible-use.md)
>
> Recording and consent.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.