How Outbound Calls Work
When you send an outbound call through RevRing:- You specify the agent, from number (caller ID), to number (recipient), and optional variables
- RevRing initiates the call through your SIP trunk
- When the recipient answers, the agent begins speaking based on its first message and prompt
- The conversation proceeds according to your agent’s configuration
- After the call ends, RevRing sends complete call details to your post-call webhook (if configured)
Sending Test Calls via Dashboard
Using the Send Call Page
The Send Call page is the primary way to test outbound calls from the dashboard.- Navigate to Send Call
- Select your Agent from the dropdown
- Enter the From Number (must be a number on your SIP trunk, E.164 format)
- Enter the To Number (the recipient’s phone number, E.164 format)
- Optionally set a Caller ID Name (up to 15 characters)
- Add Variables if your prompt uses dynamic content
- Click Send Test Call
Using the Test Panel
The test panel on the right side of the agent page lets you call your agent directly from the browser via WebRTC. This is useful for quick iteration — you can tweak the prompt and immediately test without needing a phone. Use Test Variables to setdirection, customer_name, or any other variables your prompt expects.
To test outbound calling over the phone network (with real caller ID and SIP routing), use the Send Call page instead.
Sending Calls via API
For production outbound calling at scale, use the RevRing API.Basic Outbound Call
With Caller ID Name
You can set a custom caller ID name (up to 15 characters) that is displayed to the recipient when the call arrives:Caller ID name support depends on your SIP trunk provider and the recipient’s carrier. Not all carriers display the caller ID name.
With Custom Variables
id that you can use to track the call’s status.
See the API Reference for complete documentation.
Configuring Outbound Agent Behavior
First Message
For outbound calls, the first message is critical since you’re initiating contact. Configure it in the Overview tab:Unlike inbound calls where leaving first message empty makes sense, outbound calls should almost always include a first message to properly introduce the purpose of the call.
Outbound-Specific Prompts
Tailor your prompt for outbound scenarios:Using Variables for Personalization
Variables allow you to customize each call without changing the agent configuration:- Reference variables in your prompt and first message using
{{variable_name}}syntax - Pass variable values when sending the call via API or dashboard
- The agent will replace placeholders with the actual values during the conversation
- Customer name, account number, order ID
- Appointment dates and times
- Custom messages or offers
- Callback reasons or context
Voicemail Detection
Voicemail detection is particularly useful for outbound calling to avoid wasting resources on unanswered calls.Enable Voicemail Detection
- Navigate to the Tools tab
- Locate Voicemail Detection under System Tools
- Click Configure
- Choose your action:
- Hangup: End the call immediately when voicemail is detected (saves costs)
- Leave Message: Speak a pre-recorded message before hanging up
- If leaving a message, configure the voicemail message:
- Click Save
Call Pacing and Concurrency
Understanding Concurrency Limits
RevRing enforces a concurrency limit on the maximum number of simultaneous calls per organization. You can view your current limit and usage on the Billing page.Call Queuing
When you send an outbound call and all concurrent call slots are in use, RevRing automatically queues the call. Queued calls are dispatched in order as slots become available. While a call is waiting, its status isQUEUED. Once a slot opens and the call is dispatched, the status transitions to INITIATED and then ONGOING when the recipient answers.
You can check a call’s status at any time:
Only calls with status
QUEUED can be cancelled. Once a call moves to INITIATED or ONGOING, it cannot be cancelled through this endpoint.Opting Out of Queuing
If you prefer to handle queuing in your own system, passskipQueue: true when creating the call. This tells RevRing to return an immediate 429 error instead of queuing when the concurrency limit is reached:
Best Practices for High Volume
- Leverage built-in queuing: Let RevRing queue calls automatically rather than managing pacing yourself
- Monitor active calls: Track concurrent calls via the Analytics API
- Cancel unnecessary queued calls: If priorities change, cancel queued calls that are no longer needed
- Handle errors gracefully: Implement retry logic with exponential backoff for non-queued calls
- Respect time zones: Schedule calls during appropriate hours for the recipient’s location
Monitoring Outbound Calls
Real-Time Monitoring
View active outbound calls on the Overview page:- Active Calls: See current ongoing outbound calls
- Filter by agent to monitor specific campaigns
Call Logs
Track all outbound calls in Call Logs:- Filter by Direction: Select “Outbound”
- Filter by Status: View completed, failed, ongoing, or canceled calls
- Filter by Agent: Focus on specific agents or campaigns
- Click any call to view:
- Complete transcript
- Call recording
- Duration and timestamps
- Variables used
- Hangup cause and error messages (if applicable)
Success Metrics
Monitor key metrics to optimize your outbound campaigns:- Connection rate: Percentage of calls that connect vs. no answer/busy
- Average duration: Typical call length for successful connections
- Completion rate: Calls that reach the intended outcome
- Cost per call: Track expenses across campaigns
Advanced Features
Post-Call Webhooks
Receive call results immediately after each call ends:- Configure Post-call Webhook URL in the Advanced tab:
- RevRing will POST complete call details including:
- Transcript
- Recording URL
- Call duration and timestamps
- Variables used
- AI-generated summary
- Update your CRM with call outcomes
- Trigger follow-up actions
- Track campaign performance
- Schedule callbacks for unsuccessful attempts
Call Transfer
Enable transfers to allow the agent to escalate to a human representative:- Navigate to the Tools tab
- Click Configure on the Transfer tool
- Add transfer routes:
- To number:
+12025559999(your sales team) - Condition:
When the customer wants to speak with a human or has complex questions
- To number:
- Click Save
End Call Control
Configure when the agent should end calls:- Navigate to the Tools tab
- Click Configure on the End Call tool
- Set custom end call rules:
- Click Save
Compliance and Best Practices
Legal Requirements
When making outbound calls, ensure compliance with:- TCPA (US): Obtain prior express written consent for marketing calls
- TSR (US): Maintain do-not-call lists and honor opt-out requests
- GDPR (EU): Respect data protection and privacy regulations
- Local regulations: Follow country-specific telemarketing laws
Best Practices
- Respect time zones: Call during appropriate hours (typically 9 AM - 9 PM local time)
- Honor opt-outs: Immediately stop calling anyone who requests removal
- Clear identification: Always identify your company and purpose clearly
- Keep it brief: Respect the recipient’s time with concise, focused calls
- Professional tone: Use appropriate language and maintain a professional demeanor
- Quality over quantity: Focus on successful conversations, not just call volume
Common Use Cases
Appointment Reminders
Sales Follow-Up
Survey and Feedback
Payment Reminders
Troubleshooting
Calls fail to connect
Calls fail to connect
- Verify the from number is assigned to your SIP trunk
- Ensure the to number is in valid E.164 format
- Check your SIP trunk has sufficient capacity and balance
- Review your telephony provider’s outbound restrictions
- Confirm the destination country is allowed by your provider
Voicemail detection not working
Voicemail detection not working
- Ensure voicemail detection is enabled in the Tools tab
- Verify the action (hangup or leave message) is configured
- Check the call recording to confirm voicemail was actually reached
- Some voicemail systems may not be detectable - this is a known limitation
Variables not populating
Variables not populating
- Verify variable names match exactly between API call and prompt (case-sensitive)
- Check that variables are passed in the API request body
- Ensure variable syntax in prompt uses double curly braces:
{{variable}} - Review the call transcript to see what was actually spoken
High failure rate
High failure rate
- Check if you’re calling valid, reachable numbers
- Verify caller ID (from number) is not flagged as spam
- Consider time of day - avoid early morning or late evening
- Review hangup causes in call logs to identify patterns
- Ensure your first message clearly identifies the caller
Hit concurrency limit (429 error)
Hit concurrency limit (429 error)
- Implement exponential backoff and retry logic
- Reduce call pacing or batch size
- Check your current limit and usage at Billing
- Monitor active calls before sending new batches
- Contact support to discuss increasing your organization’s limit
Next Steps
Tools
Configure transfer, voicemail, and custom tools
Webhooks
Implement post-call webhooks to capture results
API Reference
View complete API documentation for sending calls
Call Logs
Query and analyze call history via API