AI Never Sleeps

AI Never Sleeps

Building AI Belle: Your AI-Powered Outbound Call Agent in 10 Minutes

Welcome to the no-code build guide for AI Belle—your outbound call agent that dials, speaks, listens, and logs without you lifting a finger.

Jonathan Chan's avatar
Jonathan Chan
May 29, 2025
∙ Paid
Share

🌊 Live Demo

Watch the full build and demo video here:

🛠️ What You Need

  • n8n instance (self-hosted or cloud w/ credentials manager) – Try n8n (free trial – affiliate link)

  • Google Sheet with FirstName, PhoneE164, Status

  • Ultravox account (for the AI voice agent)

  • Twilio account (w/ AU voice-capable number)

  • Basic JSON skills + a text editor


✅ Step-by-Step Setup

1. Import the n8n Workflow

  • Download the outbound.json file (linked below).

  • Save and import it into n8n via File > Import from File.

2. Set the Trigger

  • Start with a manual trigger to test your workflow.

  • Later you can switch to a schedule (e.g., every 5 minutes) or webhook.

3. Connect Google Sheets

  • Set up a Google Sheets node to pull the next lead from your list.

  • Your sheet should include columns like FirstName, PhoneE164, and Status.

  • Ensure your n8n credentials are authorized and connected properly.

4. Create an Ultravox Agent

  • In the Ultravox dashboard, create a new agent.

  • Choose a voice, disable memory/tools, and write a brief system prompt (e.g., for Belle calling about solar rebates).

  • Copy the Agent ID for later use in your workflow.

5. Spin Up a Voice Session

  • Use an HTTP request node to create a WebSocket session with Ultravox.

  • Provide the Agent ID and necessary parameters.

  • This returns a session URL you'll use in the TwiML.

6. Set Runtime Variables

  • Capture the lead's name, number, and the Ultravox session URL.

  • These will be used to personalize the call.

7. Prepare the TwiML

  • Build a short XML snippet that tells Twilio to dial the lead and connect to the Ultravox session.

8. Place the Call

  • Use the Twilio node to initiate the outbound call.

  • Use your Twilio number for the From field and the lead's number for To.

9. Run a Test

  • Execute the workflow manually.

  • You should receive a real call with Belle greeting you by name.


🔄 Optional: Batch Campaigns

  • Replace the manual trigger with a scheduled Cron trigger.

  • Add a "Split In Batches" node to control how many concurrent calls are launched (e.g., batches of 5).


🔑 Troubleshooting Tips

  • Make sure Twilio numbers include the country code and + prefix.

  • If your Ultravox session fails, double-check your Agent ID and credentials.

  • If you're getting errors with the JSON or HTTP request, try removing optional parameters or validating the structure.

  • Share your Google Sheet with the service account used in n8n.


🚀 What’s Next?

  • Add a follow-up node to update call status in Google Sheets.

  • Sync transcripts or call logs to your CRM.

  • Set business-hour guardrails or include a Do-Not-Call check.

  • Swap Sheets for Airtable or a Postgres DB.

Keep reading with a 7-day free trial

Subscribe to AI Never Sleeps to keep reading this post and get 7 days of free access to the full post archives.

Already a paid subscriber? Sign in
© 2025 Jonathan Chan
Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture