Overview
VoIPBIN’s Outdial API provides a scalable solution for managing outbound call destinations. An outdial is a collection of targets (phone numbers, SIP URIs, email addresses) that campaigns or flows dial sequentially. With built-in retry tracking and status management, the Outdial API handles large-scale outbound operations efficiently.
With the Outdial API you can:
Create and manage dial target lists
Track dial attempts and outcomes
Configure per-target retry counts
Monitor target status in real-time
Import targets in bulk
How Outdials Work
Outdials serve as the “who to contact” component of campaigns and outbound flows.
Outdial Architecture
+-----------------------------------------------------------------------+
| Outdial System |
+-----------------------------------------------------------------------+
+-------------------+
| Outdial |
| (target list) |
+--------+----------+
|
| contains
v
+--------+----------+--------+----------+--------+----------+
| | | |
v v v v
+----------+ +----------+ +----------+ +----------+
| Target 1 | | Target 2 | | Target 3 | | Target N |
| +1555... | | +1666... | | +1777... | | ... |
+----+-----+ +----+-----+ +----+-----+ +----+-----+
| | | |
v v v v
+---------+ +---------+ +---------+ +---------+
| Status | | Status | | Status | | Status |
| Retries | | Retries | | Retries | | Retries |
+---------+ +---------+ +---------+ +---------+
Key Components
Outdial: A container that groups multiple dial targets together
Outdial Target: An individual destination with its address and retry count
Address: The destination (phone number, SIP URI, email)
Try Count: Number of dial attempts remaining for this target
Target Lifecycle
Each outdial target progresses through states as dial attempts occur.
Target States
POST /outdials/{id}/targets
|
v
+------------+
| idle |<-----------------+
+-----+------+ |
| |
| dial attempt | retry scheduled
v |
+------------+ |
| dialing |------------------+
+-----+------+
|
+---------+---------+
| | |
v v v
+--------+ +--------+ +--------+
|answered| | busy | |no answer|
+--------+ +--------+ +--------+
| | |
v v v
+------------+ +-------------------+
| finished | | retry or failed |
+------------+ +-------------------+
State Descriptions
Managing Outdials
Create outdials and add targets via the API.
Create an Outdial
$ curl -X POST 'https://api.voipbin.net/v1.0/outdials?token=<token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "January Leads",
"detail": "Sales leads for Q1 campaign"
}'
Add Targets to Outdial
$ curl -X POST 'https://api.voipbin.net/v1.0/outdials/<outdial-id>/targets?token=<token>' \
--header 'Content-Type: application/json' \
--data '{
"targets": [
{
"destination": {
"type": "tel",
"target": "+15551234567"
},
"try_count_max": 3
},
{
"destination": {
"type": "tel",
"target": "+15559876543"
},
"try_count_max": 3
}
]
}'
Get Outdial Targets
$ curl -X GET 'https://api.voipbin.net/v1.0/outdials/<outdial-id>/targets?token=<token>'
Retry Mechanism
Outdial targets track retry attempts automatically.
Retry Flow
Target dialed
|
v
+-------------------+ Answered +-------------------+
| Dial attempt |----------------->| Mark as finished |
| | | |
+--------+----------+ +-------------------+
|
| Not answered (busy, no answer, failed)
v
+-------------------+
| try_count_current |
| += 1 |
+--------+----------+
|
v
+-------------------+ Yes +-------------------+
| try_count_current |----------------->| Schedule retry |
| < try_count_max? | | (per outplan) |
+--------+----------+ +-------------------+
|
| No (max reached)
v
+-------------------+
| Mark as failed |
+-------------------+
Retry Configuration
Field |
Description |
|---|---|
try_count_max |
Maximum number of dial attempts allowed |
try_count_current |
Current number of attempts made (read-only) |
The retry timing and intervals are controlled by the Outplan.
Target Types
Outdial targets support various destination types.
Type |
Description |
|---|---|
tel |
Phone number in E.164 format (+15551234567) |
sip |
SIP URI (sip:user@domain.com) |
Email address (for email campaigns) |
Tel Target Example
{
"destination": {
"type": "tel",
"target": "+15551234567"
},
"try_count_max": 3
}
SIP Target Example
{
"destination": {
"type": "sip",
"target": "sip:[email protected]"
},
"try_count_max": 2
}
Common Scenarios
Scenario 1: Sales Lead List
Import and manage a sales prospect list.
1. Create outdial: "Q1 Sales Leads"
2. Bulk import targets:
+--------------------------------------------+
| +15551234567 | John Smith | 3 retries |
| +15552345678 | Jane Doe | 3 retries |
| +15553456789 | Bob Johnson | 3 retries |
| ... (1000 more targets) |
+--------------------------------------------+
3. Attach to campaign with sales outplan
4. Monitor progress:
- 800 answered (finished)
- 150 failed (max retries)
- 50 pending (scheduled retry)
Scenario 2: Appointment Confirmations
Daily appointment reminder targets.
Daily Process:
+--------------------------------------------+
| 1. Create new outdial for tomorrow's date |
| "Appointments 2024-01-16" |
| |
| 2. Add patients with appointments: |
| - Each target gets 2 retry attempts |
| - Include appointment time in metadata |
| |
| 3. Attach to reminder campaign |
| |
| 4. Campaign runs, marks confirmed targets |
+--------------------------------------------+
Scenario 3: Emergency Contact List
Critical notifications requiring high delivery.
Setup:
+--------------------------------------------+
| Outdial: "Emergency Contacts" |
| - All employees/customers |
| - High retry count (5) |
| - Multiple contact methods per person |
+--------------------------------------------+
Target Priority:
1. Primary mobile: +15551234567 (5 retries)
2. Secondary mobile: +15559876543 (5 retries)
3. Office phone: +15551111111 (3 retries)
Best Practices
1. Target Quality
Validate phone numbers before import
Use E.164 format for all phone numbers
Remove duplicates within the same outdial
Keep target lists focused and segmented
2. Retry Configuration
Set try_count_max based on campaign urgency
Sales: 3-5 retries over multiple days
Reminders: 1-2 retries within hours
Emergencies: 5+ retries with short intervals
3. List Management
Archive completed outdials for reporting
Don’t modify active outdials during campaign
Create new outdials for recurring campaigns
Use descriptive names with dates
4. Performance
Break large lists into multiple outdials
Monitor target status during campaigns
Remove invalid targets proactively
Track delivery rates for optimization
Troubleshooting
Target Issues
Symptom |
Solution |
|---|---|
Target not being dialed |
Check target status is “idle”; verify outdial is attached to running campaign |
All targets failing |
Validate phone number format; check carrier routing; verify source number |
Retries not happening |
Check try_count_max > try_count_current; verify outplan retry settings |
Outdial Issues
Symptom |
Solution |
|---|---|
Can’t add targets |
Check outdial exists; verify API permissions |
Targets missing |
Check pagination in GET request; verify targets were created successfully |
Wrong target count |
Duplicates may have been filtered; check for import errors |