Overview
When running simulations in Roark, you have two fundamental testing directions based on who initiates the call. This choice affects how your tests execute, what you can test, and how you configure your simulations.Inbound Testing
In inbound testing, Roark calls your agent to simulate incoming customer calls.How It Works
- You provide your agent’s phone number or endpoint
- Roark initiates calls to your agent
- The simulated customer (persona) interacts with your agent
- Your agent responds as it would to a real incoming call
Characteristics
- Immediate execution - Tests run as soon as triggered
- Multiple iterations - Can repeat the same test multiple times
- High control - Roark controls timing and execution
- Synchronous results - Get results immediately after completion
Use Cases
Perfect for testing:- Customer service lines - Support hotlines, help desks
- IVR systems - Automated phone menus
- Receptionist agents - Virtual assistants answering calls
- Emergency response - Crisis hotlines, urgent support
- Inbound sales - Agents handling incoming inquiries
Configuration
Outbound Testing
In outbound testing, your agent calls Roark to simulate outbound campaigns.How It Works
- Roark provisions a phone number for each test case in your run plan
- Your agent can start the call either by exposing an outbound call endpoint that Roark will trigger automatically, or by directly calling the provisioned number shown on the run plan page.
- Roark answers as the simulated customer (persona)
- Your agent conducts the outbound call scenario
Triggering an outbound call
In an outbound simulation, your agent is responsible for starting the simulated call. This can be done in two ways: HTTP Endpoint (Suggested) By setting up an outbound call HTTP request, Roark can automatically start your outbound tests for you - giving you the benefits of scheduling and concurrency control.- Setup an HTTP request on the agent endpoint that will be used in the simulation

- Whenever a simulation is started for this agent endpoint, Roark will make the specified HTTP request passing in the provisioned phone number as
{{phoneNumberToDial}}. - This HTTP request is expected to trigger your agent to start an outbound call by dialing
{{phoneNumberToDial}}.
Template variables such as
{{ phoneNumberToDial }} can be used in the URL,
body, and headers.For both HTTP requests and manual calls, Roark expects the outbound call to be
made by the number set in your agent endpoint. Calls made to the provisioned
number from numbers other than the one defined in your agent endpoitn will be
ignored.
Characteristics
- Asynchronous execution - Tests wait for your agent to call
- Single iteration - One test per phone number
- Agent-controlled timing - Your system decides when to call
- Pending state - Test cases remain pending until called
Use Cases
Perfect for testing:- Sales campaigns - Cold calling, lead follow-up
- Appointment reminders - Medical, service appointments
- Survey calls - Customer satisfaction, market research
- Collections - Payment reminders, account management
- Notifications - Alert calls, status updates
Configuration
Key Differences
| Aspect | Inbound | Outbound |
|---|---|---|
| Who calls who | Roark → Your Agent | Your Agent → Roark |
| Execution | Immediate | When agent calls |
| Iterations | Multiple supported | One per number |
| Use case | Customer service | Sales/outreach |
| Timing control | Roark controls | You control |
| Phone numbers | Use your existing | Roark provisions |
| Concurrency | High (up to 50) | Limited by numbers |
| Results | Immediate | After agent calls |
Choosing the Right Direction
Choose Inbound When:
- Testing customer service scenarios
- You need immediate results
- Running high-volume tests
- Testing response to incoming requests
- Validating IVR flows
Choose Outbound When:
- Testing sales or marketing campaigns
- Your agent initiates contact
- Testing dialer integrations
- Validating outreach scripts
- Testing follow-up workflows
Technical Considerations
Inbound Testing
- Ensure your agent can handle concurrent calls
- Configure appropriate rate limits
- Test your agent’s scaling capabilities
- Monitor response times under load
Outbound Testing
- Plan for phone number provisioning time
- Set appropriate timeouts for pending tests
- Configure your dialer to call Roark numbers
- Handle failed call attempts gracefully
Best Practices
Start with Inbound
Start with Inbound
Begin with inbound testing for immediate feedback before moving to outbound
Match Production Patterns
Match Production Patterns
Choose the direction that matches how your agent operates in production
Test Both Directions
Test Both Directions
If your agent handles both, test both directions for complete coverage
Monitor Phone Number Usage
Monitor Phone Number Usage
For outbound, track which numbers have been called to avoid duplicates
Set Realistic Timeouts
Set Realistic Timeouts
Configure appropriate timeouts for outbound tests based on your calling
patterns
Next Steps
Create Run Plans
Build test suites with your chosen direction
Configure Personas
Set up customer profiles for testing
Running Simulations
Execute your inbound or outbound tests
View Examples
See scenario examples for both directions