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.
🌊 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,StatusUltravox 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.jsonfile (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
Fromfield and the lead's number forTo.
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.

