Automated Prospecting → AI Voice Calls
End-to-end guide: scheduled prospecting, phone validation, and AI voice calling in one workflow.
Automated Prospecting → AI Voice Calls
Build a workflow that finds new leads on a schedule, makes sure each one has a valid phone number, and calls them with your AI voice agent — fully hands-off.
What you'll build
> Schedule → Find Leads → Ensure Phone Numbers → Condition → Call Lead List (AI Voice) → Notify
Every weekday at 9am, the workflow finds (say) 20 dermatologists in Mumbai, validates and normalizes their phone numbers, and starts a voice campaign that calls each one with your configured agent — inside your calling-hours window.
Before you start
- A voice agent — create one at Voice → Agents. The Prospecting Outreach (Workflow) template is built for this: it verifies the right person answered, respects "do not call", and flags wrong numbers.
- An outbound phone number — registered at Voice → Phone Numbers and assigned to the agent.
- Credits — Find Leads bills each delivered lead for the details it carries: 5 credits for a phone number, 2 for a website, 2 for a LinkedIn profile, and 5 more for an email when
requireEmailis on. Calls bill per 15 seconds of talk time, attributed to the workflow's owner.
Step 1 — Schedule trigger
Add a Scheduled trigger. Cron 0 9 * * 1-5 = every weekday at 09:00. The schedule fires in UTC — for 9am IST use 30 3 * * 1-5.
Step 2 — Find Leads (Prospecting)
Add the Find Leads (Prospecting) action:
- prompt — plain language:
Find dermatologists in Mumbai who run their own clinic. Variables work too, so one workflow can prospect different audiences:Find {{audience}} in {{city}}. - searchMode — what kind of lead to find: Local businesses (listings from maps and local directories, with a phone number or website), People (LinkedIn profiles) or Companies (company websites). The default, Auto (decided from your prompt), works it out from your wording, and a role word can change it:
interior designers in Kondapurruns as a LinkedIn people search, not a search for design studios. For a calling workflow, choose Local businesses so a change of wording, or a{{variable}}in the prompt, cannot turn the step into a people search. Two more modes find something else, and Auto never picks them: Influencers finds Instagram and X creators within a follower range (3 credits for an Instagram handle, 2 for an X handle), and Conversations finds discussion threads about your prompt, with the people in them (6 credits per thread; maxLeads is then the number of threads). On a schedule, a thread found again on a later run is charged again, so setrecencyDaysclose to how often the workflow runs. - maxLeads — default 20, max 50. This is also your billing cap for the run.
- requirePhone — set
trueto only keep leads that already have a phone; leave off and let the next step find more.
The action outputs leads, count, withPhoneCount. A run takes 1–3 minutes — the workflow waits for it.
Step 3 — Ensure Phone Numbers
Add Ensure Phone Numbers with:
- leads:
{{steps.<your-find-leads-step>.output.leads}} - defaultCountryCode:
+91(used when a 10-digit number has no location hint — without it, ambiguous numbers are rejected, never guessed)
This step validates every number (fake-pattern and junk filtering), normalizes to international E.164 format (calls are rejected without it), looks up numbers for leads that have none, and de-duplicates shared lines (two doctors at one clinic = one front desk — it's called once).
Output: withPhone (ready to call), withoutPhone (each with a phoneRejectedReason), and phoneRate.
Step 4 — Branch on results
Add a Condition: {{steps.<ensure-phones-step>.output.withPhoneCount}} > 0.
- Yes → continue to calling.
- No → send yourself a notification ("0 callable leads — review the prompt"), and optionally route
withoutPhoneleads to an email or WhatsApp sequence instead.
Step 5 — Call Lead List (AI Voice)
Add Call Lead List (AI Voice):
- leads:
{{steps.<ensure-phones-step>.output.withPhone}} - agentId: pick your voice agent from the dropdown
- windowStart / windowEnd / windowTimezone:
09:00/21:00/Asia/Kolkata— strongly recommended. India's TRAI rules require telemarketing calls between 9am and 9pm; the US TCPA expects 8am–9pm local time. Outside the window, calls wait — they're deferred, never dropped. - suppressRecentlyCalledDays: default 7 — leads already called in the past week are skipped, so re-prospected leads don't get re-called every run.
Each call carries the lead's customer_name, company, title, and location as dynamic variables for the agent's script.
The action creates and starts a voice campaign (visible under Voice → Campaigns) — dialing is throttled to your org's rate limits, permanently-invalid numbers are failed immediately while busy lines get retried, and the campaign pauses itself if credits run out.
Step 6 — Close the loop
Add a Send Notification action summarizing the run, e.g. found vs. calling counts from the step outputs.
To act on call outcomes (interested, callback requested, wrong number), build a second workflow on the Voice → Call Ended trigger — see Acting on AI Call Outcomes.
Costs at a glance
| Step | Cost |
|---|---|
| Find Leads | Per delivered lead, for the details it carries: 5 credits for a phone, 2 for a website, 2 for a LinkedIn profile, 5 more for an email with requireEmail (capped by maxLeads) |
| Ensure Phone Numbers | Free |
| Voice calls | 2 credits per 15-second block (8 credits a minute), settled after each call |
Troubleshooting
- "The lead search didn't finish within Ns" — the step stopped waiting before the search ended. Lower
maxLeads(15 or fewer whenrequireEmailis on) and run the workflow more often; keepsearchDepth: quick(default). The search still finishes server-side and may still be charged; its results appear in Discover, not in the run. - Campaign created but didn't start — the cron dispatcher must be enabled. Start it manually from Voice → Campaigns as a fallback.
- Few leads have phones — phone discovery depends on public sources. Branch
withoutPhoneleads to email outreach instead of dropping them.
Tags
Related Articles
Workflow Basics
Learn the basics of building automated workflows in wrrk.
Acting on AI Call Outcomes (Call Disposition)
Use Call Ended and related voice triggers to update CRM, schedule callbacks, and suppress bad numbers automatically after AI calls.
Creating a Voice Agent
Step-by-step: create an agent, pick a voice, write the prompt, attach tools and knowledge base.
Voice Campaigns and Bulk Dialer
Run voice dialer and campaign flows with current duration-based credit guidance.