Loading...
End-to-end guide: scheduled prospecting, phone validation, and AI voice calling in one workflow.
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.
> 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.
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.
Add the Find Leads (Prospecting) action:
Find dermatologists in Mumbai who run their own clinic. Variables work too, so one workflow can prospect different audiences: Find {{audience}} in {{city}}.true to 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.
Add Ensure Phone Numbers with:
{{steps.<your-find-leads-step>.output.leads}}+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.
Add a Condition: {{steps.<ensure-phones-step>.output.withPhoneCount}} > 0.
withoutPhone leads to an email or WhatsApp sequence instead.Add Call Lead List (AI Voice):
{{steps.<ensure-phones-step>.output.withPhone}}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.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.
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.
| Step | Cost |
|---|---|
| Find Leads | 1 credit per lead with any contact channel (capped by maxLeads) |
| Ensure Phone Numbers | Free |
| Voice calls | 1 credit per 15s of talk time, settled after each call |
searchDepth: quick (default) or raise pollTimeoutSeconds. The search finishes server-side either way; results appear in Discover.withoutPhone leads to email outreach instead of dropping them.Tags
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
Bulk dialing and multi-step campaigns, CSV upload, retry policies, exclusions, knowledge base.