Speed-to-lead in seconds
The AI dials within seconds of form submission — while the lead is still hot.
Voice + SMS in one stack
Auto Call Back retries voice, then falls back to SMS automatically when voice fails.
Identity-confirmation greeting
“Hey, am I speaking with ?” — the opener built for outbound dynamics.
The outbound conversion stack
PulsyAI outbound agents combine four features that work together to maximize lead engagement on every campaign:1. Identity-confirmation greeting
Outbound calls open with “Hey, am I speaking with ?” to confirm you’ve reached the right person before the agent introduces itself. See the greeting section below for the full pattern.
2. The four-step PulsyAI script
Adapted slightly for outbound (the AI initiates, the user doesn’t dial in) but otherwise identical to inbound. See Build a Script for the full methodology.
3. Auto Call Back
Automatic retry of unanswered calls with configurable delays, max attempts, time windows, and an optional SMS fallback agent. See Auto Call Back.
4. SMS AI Agent fallback
When voice retries are exhausted, an SMS agent picks up the contact via text instead. Can be a separate SMS agent or the outbound agent itself acting as its own SMS follow-up.
The outbound greeting variant
Outbound calls open differently from inbound calls because the dynamic is reversed — the contact didn’t dial you, you dialed them. They don’t know who you are when they pick up. The opening sequence has to confirm identity first, then introduce the agent, then state the reason. The PulsyAI outbound greeting pattern:“Hey, am I speaking withA few things matter in this opening:{name}?” [Wait for confirmation] “Great. This is Luna the virtual assistant from{company_name}. I’m reaching out because you recently{reason}— e.g., requested a free quote on our website, signed up for our consultation, etc. Is that right?” [Wait for confirmation]
- Use the contact’s first name in
{name}— pulled from the form submission or CRM record that triggered the call. This is the single biggest signal that this is a real, intentional call and not a spam dialer. - Confirm identity before introducing the agent — if the wrong person answered (a spouse, a coworker), you find out before you’ve wasted the script on them.
- Disclose the virtual assistant identity after confirmation — same transparency principle as inbound, just sequenced after identity confirmation.
- State the reason immediately — referring to the action they took (form, signup, opt-in) creates instant context and reduces the “is this a scam?” instinct.
Setup walkthrough
Assign a phone number
Every outbound agent needs a phone number to call from. PulsyAI supports importing existing numbers from Twilio, Telnyx, or your own SIP trunk for outbound use.For full details on each option, see the Phone Numbers page.
Build the agent and paste your script
Inside your agent builder, create a new agent of type Outbound. Paste the script you drafted using the Build a Script methodology, with the outbound greeting variant covered above replacing the inbound greeting.If your client’s knowledge base fits inline in the prompt (under approximately 100 pages of equivalent text), include it directly in the prompt to avoid function-call latency. For larger knowledge bases, use the dedicated Knowledge Base section instead.
Use
{name} curly-brace variables to insert the contact’s first name into the greeting at call time. PulsyAI substitutes these at runtime based on the contact data passed in by your trigger (form submission, campaign, API call).Configure Auto Call Back
Auto Call Back is the feature that handles the inevitable reality of outbound calling: most calls don’t connect on the first attempt. People are in meetings, driving, ignoring unknown numbers, or simply not near their phone. Without Auto Call Back, every unanswered call is a lost contact. With it, each contact gets multiple structured attempts before being closed.PulsyAI recommendation for typical B2B outbound campaigns:For full configuration details, time window best practices, and the regulatory considerations around outbound calling, see the dedicated Auto Call Back page.
Callback delay
1 hour after the original missed call. Long enough that the contact isn’t still in whatever was distracting them, short enough that the lead is still hot.
Max attempts
3 retries. Beyond this, voice contact rates drop sharply and you risk triggering recipient frustration.
SMS fallback agent
Enabled. After 3 voice attempts, the SMS agent follows up by text — this captures contacts who’ll never pick up a phone but will reply to a message.
Time windows
Match the timezone to where your contacts are located (not your business). B2B campaigns: weekday business hours (10:00–17:00 local time).
The SMS fallback agent dropdown lists every SMS AI agent on your account plus the current outbound agent itself — so you can use the same agent as its own SMS follow-up if you want voice and text to share one phone number and one configuration.
Set up the campaign trigger
Outbound agents don’t just sit and wait — they need a trigger to know when to place calls. PulsyAI supports several trigger sources, each suited to different campaign patterns:
Form submission
A lead fills out a form on your client’s website, and PulsyAI calls them within seconds (speed-to-lead). This is the highest-converting outbound use case.
CRM record creation or update
A new contact lands in HubSpot, GoHighLevel, or another CRM, and the agent is triggered to make first contact automatically.
Webhook
A custom event from any external system fires a webhook that triggers the agent. Suited for clients with bespoke automation stacks.
Outbound Campaign
A pre-built list of contacts uploaded as an Excel (XLSX) file, scheduled to fire at a chosen date, time, and timezone. Best for batched outreach — dead-lead reactivation, appointment rounds, cold lists.
Dynamic variables from Excel columns
When you use Outbound Campaigns, every column in your Excel file automatically becomes a dynamic variable inside your agent’s script. Reference any column using single curly braces with the exact column name —{first_name}, {email_address}, {last_purchase_date}, etc. At call time, PulsyAI substitutes the variable with the row’s actual value for the contact being called.This is what powers the personalized outbound greeting:
“Hey, am I speaking with {first_name}?”
The {first_name} placeholder pulls directly from the Excel column named first_name. Each contact in the campaign hears their actual first name in the opener. This applies to any column — you can build scripts that reference the contact’s name, recent purchase, account balance, last appointment date, or any other data you choose to include.For the full Outbound Campaigns workflow — Excel format requirements, the strict PHONE_NUMBER column rule, campaign scheduling, dynamic variables, and campaign lifecycle states — see the dedicated Outbound Campaigns page.For details on triggering via integrations and webhooks instead of campaigns, see the Integrations section.Connect integrations and test
The last step is wiring up where the captured or updated leads should land. Outbound agents typically integrate with:For the full list of available integrations and setup guides, see the Integrations section.
CRM connectors
Update the existing contact record with the outcome of the call (reached, no answer, booked appointment, etc.).
Webhooks
Custom destinations for clients with bespoke systems.
Slack or email
Notification channels for high-priority outcomes.
Final test: trigger the agent manually with a test contact. Verify three things:
- The agent uses the contact’s
{name}correctly in the greeting. - The captured outcome data lands in the configured destination.
- If you deliberately don’t answer the test call, Auto Call Back schedules the retry at the expected interval.
Common outbound use cases
Speed-to-lead
The highest-ROI outbound use case. A lead fills out a form on your client’s website or a paid ad, and PulsyAI dials them within seconds — while the lead is still on the page, still focused, still hot. Industry data is consistent: leads contacted within five minutes convert dramatically higher than leads contacted an hour later. For ads-driven form campaigns specifically, PulsyAI resellers see at minimum 30% lift in conversion rate versus waiting for the human team to call back during business hours. Most businesses can’t staff humans to dial that fast. Outbound AI agents can. See The speed-to-lead playbook below for the full configuration.
Dead-lead reactivation
The agent calls old leads from your client’s CRM — leads that were qualified but never closed, leads that went silent six months ago, leads that ghosted after a quote. The agent runs through a reactivation script and either re-engages them or marks them dead for good. Massive ROI on existing list assets.
Appointment confirmation
The agent calls upcoming appointment holders to confirm they’re still planning to come, reschedule if needed, or cancel cleanly. Drops no-show rates significantly in industries like dental, medical, and home services.
Cold outreach campaigns
Pre-built lists of cold contacts called in sequence, at scale, within compliance windows. The agent qualifies them and books the human callback for the ones who engage. Best for verticals with high lead-quality variance — the agent filters the noise so the human team only talks to qualified prospects.
Post-call follow-up
After an inbound call or a human-handled meeting, the outbound agent calls back the next day to confirm next steps, gather missing info, or push the deal forward. Closes the loop on conversations that would otherwise stall.
Stale CRM record refresh
Periodically calls old CRM records to verify contact info is still current, ask about updated needs, and refresh the database. Keeps the CRM clean and surfaces re-engagement opportunities the human team would have ignored.
The speed-to-lead playbook
Speed-to-lead is the single highest-converting outbound use case PulsyAI runs in production. For paid-ad campaigns where leads fill out a form (Facebook Lead Ads, Google Lead Form Extensions, TikTok Lead Generation, or native website forms tied to paid traffic), implementing this playbook lifts conversion rates by at least 30% versus the alternative of waiting hours or days for a human team to call back. This section documents the exact configuration the PulsyAI team uses for speed-to-lead campaigns.The script — keep it shorter than inbound
Outbound speed-to-lead scripts should be even shorter than inbound scripts. The lead just filled out a form moments ago — they know why you’re calling, you don’t need to explain it. Run the conversation in three minimal beats:- Confirm identity — “Hey, am I speaking with
{first_name}?” - Confirm intent — “Great, this is Luna the virtual assistant from
{company_name}. I’m reaching out because you just submitted a form for{reason}— e.g., a free quote on bathroom renovation, our consultation, etc. Is that right?” - Book immediately — “Perfect. We wanted to help you set up an appointment with one of our representatives — what would be the best time for them to reach out to you?”
Full example script: PulsyAI Sofa Care
Below is a complete, production-grade speed-to-lead script for an outbound voice AI agent serving a sofa-cleaning business that runs paid ads. The fictional company is “PulsyAI Sofa Care”. This script demonstrates every principle from this playbook applied in real form — identity-confirmation greeting, intent confirmation, immediate booking attempt, calendar function calls, optional pricing fallback, light upsell, and clean closure. The full call is typically completed in 1–2 minutes. The human representative handles deep qualification and pricing on the scheduled callback, which is capped at 5 minutes.Knowledge base — pricing reference (inline)
The script includes a small inline pricing knowledge base immediately below the closure, following Principle 5 — small enough to fit in the prompt, eliminating function-call latency on pricing questions:- Sofas: $125 minimum, $350 maximum (travel included)
- Chairs: $40 to $140
- Armchairs: $80 to $150
- Car interiors: $180 to $220
- Rugs / patios: Quote-based
Important: These are approximate ranges. The representative gives the exact price during the callback. Do not mention price unless the customer asks.
Critical rules section (always at the top of the prompt)
Never: Read the phone number or email out loud. Invent availabilities. Give an exact price (only the range, and only if asked). Say “10:00” — always say “10 o’clock” or “10 in the morning”. Forget to ask the customer’s preferred booking time. Always: Mention the representative will follow up to qualify and give the exact price. Use the calendar functions (isDateAvailable,confirm_booking, etc.). Write all numbers in spelled-out form. Stay natural and efficient.
Step 1: Identity confirmation
Agent: “Hello, am I speaking with {first_name}?”
[Pause for confirmation]
Step 2: Intent confirmation
Agent: “Great. This is Aria from the PulsyAI Sofa Care team. I saw that you just filled out our form for a sofa cleaning quote. Do you have a couple of minutes so we can set up a call with one of our representatives?”
[Pause]
If yes: “Excellent!” → proceed to Step 3.
If not now: “No problem at all. When would be a good time for me to call you back?”
[Note the requested time] “Perfect, I’ll call you back {time}. Talk soon!” → End call.
Step 3: Book the representative callback
Agent: “Perfect! I’m going to set up a 5-minute call with one of our representatives. They can answer all your questions and give you an exact price for your situation. Do you have a specific date and time in mind for this call, or would you prefer the earliest available slot?” [Pause — wait for response]Technical directives for the agent:
- Never invent availabilities. Always use the calendar functions to fetch real slots.
- When mentioning times, always say “10 o’clock”, “2 in the afternoon”, “9 thirty in the morning” — never “10:00”, “10 H 00”, or “10am” as digits.
isDateAvailable(date)— Check whether a specific date has availability.getAvailabilityForRange(start_date, end_date)— Fetch all available slots within a date range.fetchEarliestAvailability()— Fetch the nearest available slot.confirm_booking(date, time, details)— Confirm and persist the booking. Required to finalize.
- Call
isDateAvailable(date). - If available → call
getAvailabilityForRange(date, date)to list the day’s open slots → propose slots naturally → on acceptance, callconfirm_booking(date, time, details). - If not available → call
fetchEarliestAvailability()→ propose the nearest slot → on acceptance, callconfirm_booking(...). Otherwise, callgetAvailabilityForRange(start, end)to propose alternatives.
- Call
fetchEarliestAvailability()immediately. - Propose the slot. On acceptance, call
confirm_booking(...).
Agent (on confirmation): “Excellent! I’m confirming that our representative will call you on{day}at{time}. You’ll receive an email confirmation with all the details.”
Pricing fallback (only if the customer asks)
This branch fires only if the customer explicitly asks for pricing during any step.Customer: “How much does it cost though?” / “Give me an idea of the price.” / “What’s the price range?” Agent: “Our sofa cleaning rates typically range from one hundred and twenty-five to three hundred and fifty dollars, travel included. That’s really just a general range for a very high-quality service. Our representative will give you the exact price during the 5-minute call based on your specific situation.” [Pause] Return to the booking flow if not yet booked, or confirm the appointment if already booked.
Step 4: Light upsell
Agent: “By the way, are there any other surfaces you’d like cleaned while we’re at it?” [Pause] If no: “No worries!” → proceed to closure. If yes: “Perfect! You’ll be able to discuss it with the representative during your call. They can walk you through everything and give you a combined price.” → proceed to closure.
Step 5: Closure
Agent: “Perfect! To recap: our representative will call you on{day}at{time}. The call will be 5 minutes maximum. They’ll qualify your exact needs, give you the precise price, and walk you through our service in detail. You’ll also receive an email confirmation.” Agent: “Thank you for trusting us, and talk to you very soon!”
Why this script works
The full AI call clocks in at 1–2 minutes — well under the 2-minute conversion sweet spot covered in Principle 1 of Build a Script. The script captures the booking intent without trying to qualify, quote, or close — those higher-effort tasks are delegated to the human representative on the scheduled callback. The agent only quotes pricing if the customer explicitly asks, and only as a range — never an exact figure. This both respects the “never quote on AI” best practice and creates a natural reason for the customer to want the representative callback (“I want the exact price for my situation”). The upsell at Step 4 is intentionally light — the goal is awareness, not conversion, since the representative handles all conversion-critical conversations. Adapt this template to any speed-to-lead vertical by swapping the company name, the agent name, the service vocabulary, the pricing knowledge base, and the calendar function set. The four-step structure stays identical.Pro tip: Warm transfer to closers
If your client has a dedicated closing team available during the times the campaign runs, replace the “book the representative callback” step with a warm transfer — the AI prequalifies the lead, then transfers the call directly to a live human closer instead of scheduling a callback for later. The script change is minimal. Replace the booking step in the speed-to-lead script with this two-line exchange:Agent: “Would you like me to connect you right now with one of our specialists who can walk you through the details and give you the exact pricing for your situation?” [Pause for confirmation] On customer agreement (yes, sure, please, go ahead, etc.): Agent: “Perfect, one moment please while I connect you.”In the agent’s prompt, the corresponding directive that fires the transfer is: “If the customer agrees to be connected to a specialist, transfer the call immediately.” This is the trigger-condition pattern that PulsyAI function calls require — the agent asks, the customer confirms, the directive fires the transfer to the configured destination phone number. For the full configuration of transfers — destination numbers, trigger wording variants, fallback behaviour — see the dedicated Transfers page. Then the call is transferred to the closing team’s phone line (or queue), and the human takes over while the lead is still warm. The conversion lift from warm transfer over scheduled callback is significant — for paid-ad speed-to-lead specifically, warm-transferred leads close at rates dramatically higher than leads who wait hours for a scheduled callback. Every minute of delay between the AI qualification and the human conversation is a minute of intent decay. Warm transfer eliminates that decay entirely. This configuration only works if the client has live closers available during the campaign window — if the closers start at 9am and the campaign runs 24/7, the scheduled-callback flow remains the right default. For the principles behind why human closing outperforms AI closing, see Principle 9: The AI prequalifies, the human closes.
The retry stack — aggressive in the hot window, then taper
Most leads will not answer on the first call attempt. They might be still scrolling, on another call, or stepping away from the ad they just clicked. The right response is aggressive in the first 15 minutes, then taper to SMS. PulsyAI recommends this exact Auto Call Back configuration for speed-to-lead campaigns:- Callback delay — 5 minutes between voice attempts.
- Max attempts — 3 voice retries (so the agent attempts the call at 0 minutes, 5 minutes, 10 minutes, and 15 minutes after the form submission).
- SMS fallback agent — Enabled. Use the outbound agent itself as its own SMS follow-up (the SMS Fallback dropdown lets you select the current outbound agent — same phone number, same configuration).
- Time windows — Match to the lead’s timezone, set to the widest reasonable window your client allows (often 9:00 – 21:00 for B2C consumer campaigns).
The SMS fallback — re-engage without phone friction
When the 3 voice attempts are exhausted, the SMS fallback fires. The SMS agent picks up the lead’s contact and sends a short, casual text — something the lead can respond to whenever they have a moment. Because PulsyAI lets you use the outbound agent itself as its own SMS fallback, the configuration is one phone number, one script, two channels. The lead who didn’t pick up the phone three times still gets one chance to engage by text before they’re closed out — and a meaningful percentage of them do.Stale Conversation Recovery — extending the SMS retry sequence
For outbound speed-to-lead, the Auto Call Back configuration above already includes the SMS fallback after voice retries are exhausted. Stale Conversation Recovery is optional for outbound — it extends the SMS retry sequence further if you want additional relaunch attempts beyond what Auto Call Back handles. If you enable it, configure stale recovery with:- Trigger condition — Activate when the lead hasn’t responded to the Auto Call Back SMS fallback within a short window.
- Relaunch delay — 1 hour after the initial fallback SMS went unanswered.
- Max relaunch attempts — 1 or 2 attempts maximum. Beyond this, you risk irritating the lead and damaging the client’s brand.
The full speed-to-lead funnel
End-to-end, the speed-to-lead stack runs like this:- 0 min — Lead submits form on paid ad → outbound agent triggered → first call placed
- 5 min — If no answer, first Auto Call Back retry
- 10 min — If no answer, second Auto Call Back retry
- 15 min — If no answer, third Auto Call Back retry
- 15 min+ — Voice retries exhausted → SMS fallback agent sends a casual text
- 1 hour later — If no SMS response, Stale Conversation Recovery sends one final SMS
- Closed — Lead is marked closed or handed back to the human team for manual follow-up
Next step
Build an SMS AI Agent
The implementation guide for SMS agents — text-only nuances, conversation cadence, and stale recovery as a core feature.
Auto Call Back
The full configuration guide for Auto Call Back — retry delays, max attempts, time windows, SMS fallback, and regulatory considerations.