WhatsApp outreach and calling
WhatsApp outreach and calling for sales, from your own number
Place a call from a lead's record, have both sides recorded to your own storage and transcribed by the model you choose. Or send a guarded message sequence. Replies go straight into the CRM.
Demo no-shows · call back
Calls placed from AgentSDR, dialled and recorded in WhatsApp Web.
Leads
120
in this campaign
Calls placed
214
last 4 weeks
Connected
91
43% connect rate
Due today
8
first calls and retries
Contacts
Who to call next, and how each call went.
Aiko Tanaka
Growth Lead @ Kestrel Health
ConnectedToday, 11:42 · 4m 12s
Send recap
Samir Haddad
COO @ Parcelly
Didn't pick upAttempt 2 of 4
Today, 11:20
Retry in 2 days
Hannah Weiss
Head of Growth @ Lumen Freight
ConnectedToday, 10:58 · 6m 40s
Meeting booked
Rafael Costa
VP Sales @ Brightloop
Busy / declinedAttempt 1 of 4
Today, 10:31
Retry tomorrow
Chloé Martin
Founder @ Atelier Nord
Not called—
Due today
Marcus Lindqvist
Partner @ Oakridge Capital
Not called—
Due today
Aiko Tanaka
Recording · 04:12
WhatsApp calling
Call from the record, keep the recording
The Call Recorder is a Chrome extension. It dials inside your own WhatsApp Web, so the call comes from your number and nothing is routed through a third party.
One-click calls
Click Call, and WhatsApp Web does the dialling
- Call from a People row or a CRM record header
- Calls that nobody answers are discarded, not stored
- If the extension cannot press Voice call, you press it and recording still starts
Opening WhatsApp…
- Opening WhatsApp…
- Calling…
- Ringing
- Recording
- Saved to your R2 bucket
- Transcribed
Recording
Both sides, saved to your own R2 bucket
- Up to 200 MB, about three hours
- A failed upload falls back to your Downloads folder
- Self-hosters add their own AgentSDR address on the extension's Options page
Transcripts and retries
A transcript from the model you pick
- Language, a short summary and the utterances
- Outcomes such as No answer, Interested or Meeting booked
- No answer comes round again after 1, 2 and then 4 days
WhatsApp campaigns
Message sequences with the brakes built in
A first message and timed follow-ups from the numbers you choose. Every send passes the same server-side guards, whether it comes from a campaign, a reply or the CRM.
Sequence
A first message, then follow-ups on your schedule
- Each message up to 4,096 characters
- Merge fields from any imported column
- A step is never sent twice; an uncertain delivery is flagged, not resent
- 1
First message
When the campaign launches
Sent from one of your chosen numbers, one message per number per round, only inside any sending hours you set.
- 2
Follow-up 1
48 hours later by default
Wait anywhere from 1 hour to 30 days. Follow-ups go from the same number as the first message.
- 3
Follow-up 2 to 5
Up to five follow-ups
A step is claimed before it sends, so it cannot go twice, even after a deploy.
- ×
A reply, on any channel
Sequence stops
The lead becomes Replied and the answer lands in Action required in the CRM.
Guardrails
Warm-up, daily limits and a gap between sends
- Enforced on the server under a per-number lock
- Rules per organization, with a per-number override for new chats
- A banned number loses its calling too, which is why the limits are strict
Refusals
What happens to a send a guard refuses
- Not connected: that number is skipped
- WhatsApp rejects the number: the lead is Failed, with the error shown
- Unipile unreachable: retried after 10 minutes, Failed after 3 attempts
Number A, new chats in 24 h
24 / 25
Marta Keller · Follow-up · Number A
Sent
Joel Brandt · New chat · Number A
Waits: 10 s gap, tries next round
Tomas Weiss · New chat · Number B
Held: linked 2 h ago, warm-up ends in 22 h
Priya Nair · New chat · Number A
Sent: new chat 25 of 25
Lena Ortiz · New chat · Number A
Held: 25 new chats in 24 h
Sam Okoye · Follow-up · Number A
Sent: follow-ups still go out
Ravi Shah · New chat · Number A
Stopped: Do Not Contact
Replies
Replies land in the CRM, whoever typed them
- A reply on any channel marks the lead Replied
- AgentSDR checks the chat again just before each send
- Classified in Action required next to email and LinkedIn
- 1
The lead replies on WhatsApp
Unipile event
The message is stored with its origin: lead, AgentSDR or phone.
- 2
The sequence stops
Immediately
The lead is Replied, and their email, LinkedIn and WhatsApp enrollments stop.
- 3
It reaches the CRM
On a WhatsApp conversation
Classified in Action required, next to email and LinkedIn replies.
- warm-up before a newly linked number starts new chats
- 24 h
- new chats per number in a rolling 24 hours, by default
- 25
- minimum gap between messages from one number
- 10 s
- messages in a campaign: one first message and five follow-ups
- 6
Honest limits
What to know before you rely on it
Calling works by driving WhatsApp Web, so it has the limits of that approach. We would rather you hear them here.
Only calls placed from AgentSDR
Your own calls in WhatsApp Web are never recorded or touched.WhatsApp Web in English
The extension finds Voice call and End call by their English labels.Consent is yours to get
Many places require everyone on a call to agree to recording. Tell people, and follow local law.Inferred speaker labels
Transcription receives merged audio, so rep and lead are inferred rather than measured.
The details
Everything between the dial and the CRM
The pieces that make calling and messaging work as one workflow.
Your own storage
Recordings live in the Cloudflare R2 bucket you connect, reached by presigned links only.Transcripts
Language, summary and utterances from the audio model you choose, on your own key.Retries
A failed transcription can be retried, and a lead who did not answer returns after 1, 2 and 4 days.Sending hours
Optionally restrict campaigns to hours you set. They apply to campaigns, not to messages you send yourself.Do Not Contact
A lead marked Do Not Contact is refused on every send and marked Stopped in a campaign.One lead, one number
Later steps go from the number that sent the first message.
Get started
From linked number to first recorded call
- 01
Link a number
Scan the QR code in Unipile, then Sync from Unipile in AgentSDR. - 02
Connect R2 and pick a model
Storage for recordings, and a transcription model that accepts audio. - 03
Install the extension
Download the Call Recorder from Settings, then load it unpacked in Chrome. - 04
Call or campaign
Click Call on a lead, or launch a message campaign once warm-up has passed.
FAQ
Questions, answered
Can AgentSDR record WhatsApp calls?
Yes, calls placed from AgentSDR's Call button. A Chrome extension dials the number in WhatsApp Web and records both sides from pickup to hang-up, then uploads the file to your own Cloudflare R2 bucket. Calls you place yourself in WhatsApp Web are never recorded.
What do I need to make recorded calls?
Chrome 116 or newer, a linked and connected WhatsApp number, Cloudflare R2 connected for storage, and WhatsApp Web in English. The extension finds WhatsApp's Voice call and End call controls by their English labels. For transcripts, also choose a transcription model that accepts audio.
Where are recordings stored and who can hear them?
In your own R2 bucket. Recordings are never public: every play uses a short-lived link, and the upload link is valid for 15 minutes. A recording can be up to 200 MB, about three hours. If an upload fails, the file is saved to your Downloads instead.
How does call transcription work?
If you choose a transcription model in Settings → AI provider, each recording is transcribed after it saves, usually in under a minute, on your own OpenRouter key. You get the language, a short English summary and the utterances. Speaker labels are inferred because the model receives the channels merged. With no model chosen, transcription is off.
How many WhatsApp messages can I send a day?
Each number can start 25 new chats in a rolling 24 hours by default, with 10 seconds between sends, and starts no new chats for 24 hours after it is linked. Answering existing chats is not limited that way. All three are Sending rules, and one number can override its own new chats limit. Keep the defaults for a new number.
What does a WhatsApp campaign send?
A first message and up to five follow-ups, each up to 4,096 characters, from the numbers you choose. A follow-up waits from 1 hour to 30 days after the previous message and defaults to 48 hours. A lead stays on the number that sent its first message, and a reply on any channel stops the sequence.
Is recording WhatsApp calls legal?
That depends on where you and the lead are. Many places require everyone on a call to consent before it is recorded, and some require you to announce it. You are responsible for following the law, so tell people when you record and read the Responsible use page.
Keep exploring
- LinkedIn automationInvites and follow-ups across many accounts, safely paced
- Email sequencesCold email from your own Google Workspace mailboxes
- AI CRMEvery reply classified and the lead moved for you
- Unified inboxEmail, LinkedIn and WhatsApp replies with drafts ready
- WhatsApp for B2B outreachCalls, warm-up and new-chat limits
- FoundersFounder-led outbound without an SDR team
Call and message from your own number
Clone the repo, link a WhatsApp number and place your first recorded call. Recordings stay in your storage, and the limits are yours to set.