Overview
PHLO (Plivo High Level Objects) enables you to create voice workflows visually:- No XML or code required
- Drag-and-drop components
- Built-in testing
- Instant deployment
Access PHLO
Navigate to Voice > PHLO in the Plivo console.Use Cases
| Use Case | Description |
|---|---|
| IVR Systems | Build interactive menus with keypad input |
| Call Routing | Route calls based on time, caller ID, or input |
| Voicemail | Record messages when unavailable |
| Call Forwarding | Forward calls to multiple destinations |
| Click-to-Call | Enable website visitors to call you |
| Appointment Reminders | Automated outbound call campaigns |
Components
Triggers
| Component | Description |
|---|---|
| Incoming Call | Start workflow when call received |
| HTTP Request | Start workflow via API call |
Actions
| Component | Description |
|---|---|
| Play Audio | Play pre-recorded audio file |
| Speak | Text-to-speech message |
| Get Input | Capture DTMF keypad input |
| Record | Record caller’s voice |
| Dial | Connect to phone number or SIP |
| Conference | Join multi-party conference |
| HTTP Request | Call external webhook |
Logic
| Component | Description |
|---|---|
| Branch | Conditional routing based on input |
| Split | Route based on multiple conditions |
Endpoints
| Component | Description |
|---|---|
| Hangup | End the call |
| Forward | Transfer to another destination |
Building a PHLO
Step 1: Create New PHLO
- Navigate to Voice > PHLO
- Click Create New PHLO
- Enter a name for your workflow
- Select trigger type (Incoming Call or HTTP Request)
Step 2: Design Workflow
- Drag components from the sidebar
- Connect components by drawing lines
- Configure each component’s settings
- Use branches for conditional logic
Step 3: Test
- Click Test in the PHLO editor
- Simulate incoming calls
- Verify flow behavior
- Debug any issues
Step 4: Deploy
- Click Save to deploy changes
- Assign phone number to PHLO
- PHLO is live immediately
Assign Phone Number to PHLO
Method 1: From PHLO Editor
- Open your PHLO
- Click Assign Number
- Select available phone number
- Save
Method 2: From Phone Numbers
- Go to Phone Numbers > Active
- Click on the number
- Select PHLO for Application Type
- Choose your PHLO from dropdown
- Update
Example: Simple IVR
Example: Call Forwarding with Voicemail
Triggering PHLO via API
For HTTP Request triggered PHLOs:Best Practices
Design
- Keep workflows simple and focused
- Use meaningful component names
- Document complex logic with notes
- Test all branches thoroughly
Performance
- Minimize HTTP request latency
- Use efficient audio files
- Handle timeouts gracefully
Maintenance
- Version your PHLOs (create copies before major changes)
- Monitor call logs for issues
- Update based on user feedback
PHLO vs XML Applications
| Feature | PHLO | XML Application |
|---|---|---|
| Setup | Visual, no code | Requires server + code |
| Flexibility | Pre-built components | Unlimited customization |
| Hosting | Plivo-hosted | Self-hosted |
| Best for | Simple to moderate flows | Complex, dynamic applications |
- Building standard IVR/routing flows
- No development resources available
- Quick deployment needed
- Complex business logic required
- Integration with existing systems
- Dynamic, data-driven call flows
Troubleshooting
Common Issues
| Issue | Solution |
|---|---|
| Calls not reaching PHLO | Verify phone number assignment |
| Branch not working | Check condition configuration |
| Audio not playing | Verify audio file URL accessibility |
| HTTP request failing | Check webhook URL and response |
Debug Tools
- Use PHLO’s built-in test mode
- Check call logs in console
- Review HTTP request/response logs