How Inbound Calls Work
When someone dials one of your phone numbers:- The call routes through your SIP trunk to RevRing
- RevRing matches the dialed number to an agent based on phone number assignments
- If a pre-call webhook is configured, RevRing calls it to get dynamic variables
- The agent answers and begins the conversation using its configured prompt and first message
- After the call ends, RevRing sends call details to your post-call webhook (if configured)
Assigning Phone Numbers to Agents
Before an agent can receive inbound calls, you must assign at least one phone number to it.Step 1: Open Agent Settings
- Navigate to Agents
- Click on the agent you want to configure
- Select the Phone Numbers tab
Step 2: Add an Inbound Number
- In the Add an Inbound Number card, enter the phone number in E.164 format:
- Click Add Number
Step 3: Verify Assignment
Call the phone number from your mobile device to verify the agent answers correctly. You should hear the agent’s first message (if configured) or the agent will wait for you to speak first.Configuring Agent Behavior
First Message
The first message is what the agent says immediately upon answering the call. Configure it in the Overview tab:- Navigate to the agent’s Overview tab
- In the First Message field, enter your greeting:
- Click Save
Dynamic First Messages with Variables
You can personalize the first message using variables from the pre-call webhook:Agent Prompt
The prompt defines how your agent behaves throughout the entire conversation. Navigate to the Overview tab and configure the Prompt field:The prompt is the most critical configuration. Be specific about tone, responsibilities, and constraints. Test thoroughly and iterate based on real call transcripts.
Advanced Inbound Features
Pre-Call Webhooks
Pre-call webhooks allow you to customize each call based on caller information. Before answering, RevRing sends caller details to your webhook and uses the response to personalize the conversation. Configure in the Advanced tab:- Set Pre-call Webhook URL to your endpoint:
- Click Save
{{variable_name}} syntax.
See the Webhooks guide for complete implementation details.
Error Handling
If your webhook fails, times out, or returns invalid JSON:- RevRing will proceed with the call using default variables (if configured)
- The call will not be rejected - the agent will answer without personalization
- Check the call’s
preCallWebhookStatusfield in call logs to see webhook delivery status
Default Variables
You can set default variable values in the Overview tab that apply to all calls unless overridden by the pre-call webhook. This is useful for agent-wide settings. While editing your prompt, any variables you reference with{{variable_name}} syntax will be detected. You can set defaults in the Default Variables section (if visible in your dashboard configuration).
Voicemail Detection
Enable voicemail detection to automatically handle scenarios where the agent reaches an answering machine or voicemail:- Navigate to the Tools tab
- Locate Voicemail Detection under System Tools
- Click Configure
- Choose an action:
- Hangup: End the call immediately when voicemail is detected
- Leave Message: Speak a pre-recorded message and then hang up
- If you selected “Leave Message”, enter the message:
- Click Save
Voicemail detection is most useful for outbound calling scenarios. For inbound calls, it’s typically not needed since customers are calling you.
Call Timeouts
Configure timeout behavior in the Advanced tab:-
Turn Timeout: Maximum silence before the agent prompts the caller
Set to
-1to disable turn-level prompting. -
Silence End Call Timeout: Maximum total silence before ending the call
Or set a value like
30to end after 30 seconds of silence. -
Max Conversation Duration: Hard limit on total call length
When reached, the agent will politely end the call.
Testing Inbound Calls
Using the Test Tab
- Navigate to the Test Agent tab
- Review the Test Inbound Calls banner showing your assigned numbers
- Call one of the listed numbers from your phone
- Watch the Live Transcript update in real-time as you speak with the agent
Best Practices for Testing
- Test different scenarios: Happy path, error cases, edge cases
- Review transcripts: Check for misunderstandings or unexpected responses
- Refine your prompt: Adjust based on actual conversation flow
- Test interruptions: See how the agent handles being interrupted mid-sentence
- Verify tools: Test transfer, end call, and custom tool invocations
Monitoring Inbound Calls
Call Logs
View all inbound calls in the Call Logs page:- Filter by Direction: Select “Inbound”
- Filter by Agent: Select your agent
- Filter by Status: View completed, failed, or ongoing calls
- Click any call to view full details, transcript, and recording
Overview Dashboard
Monitor real-time metrics on the Overview page:- Active Calls: See how many inbound calls are currently ongoing
- Total Calls: Track daily, weekly, and monthly inbound call volume
- Average Duration: Monitor typical call length
- Total Cost: Track usage and costs
Common Patterns
Business Hours Handling
Use a pre-call webhook to check business hours and return different variables:IVR-Style Routing
Configure multiple agents for different departments, each with its own phone number:- Sales:
+12025551111→ Sales Agent - Support:
+12025552222→ Support Agent - Billing:
+12025553333→ Billing Agent
Escalation to Human
Enable the transfer tool to allow the agent to escalate to a human:- Navigate to the Tools tab
- Click Configure on the Transfer tool
- Add transfer routes:
- To number:
+12025559999(your support team) - Condition:
When the customer requests to speak with a human or when the issue is complex
- To number:
- Click Save
Troubleshooting
Calls ring but agent doesn't answer
Calls ring but agent doesn't answer
- Verify the phone number is assigned to the agent in the Phone Numbers tab
- Check that the agent status is set to Active in the Overview tab
- Confirm the number is properly configured in your SIP trunk
- Review your telephony provider’s routing configuration
Agent answers but immediately hangs up
Agent answers but immediately hangs up
- Check for errors in your pre-call webhook (if configured)
- Review the call transcript in Call Logs for error messages
- Verify your prompt is not empty or malformed
- Check Advanced tab timeout settings
First message doesn't play
First message doesn't play
- Ensure the First Message field is filled in and saved
- Check that the message doesn’t exceed 4000 characters
- Verify there are no syntax errors in variable references
- Review the call recording to confirm what the agent actually said
Variables not working in prompt
Variables not working in prompt
- Verify variable syntax uses double curly braces:
{{variable_name}} - Check that your pre-call webhook is returning the correct variable names
- Ensure the webhook response is valid JSON
- Review webhook logs for errors or timeouts