Skip to main content
Build voice applications without writing code using Plivo’s drag-and-drop visual interface.

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 CaseDescription
IVR SystemsBuild interactive menus with keypad input
Call RoutingRoute calls based on time, caller ID, or input
VoicemailRecord messages when unavailable
Call ForwardingForward calls to multiple destinations
Click-to-CallEnable website visitors to call you
Appointment RemindersAutomated outbound call campaigns

Components

Triggers

ComponentDescription
Incoming CallStart workflow when call received
HTTP RequestStart workflow via API call

Actions

ComponentDescription
Play AudioPlay pre-recorded audio file
SpeakText-to-speech message
Get InputCapture DTMF keypad input
RecordRecord caller’s voice
DialConnect to phone number or SIP
ConferenceJoin multi-party conference
HTTP RequestCall external webhook

Logic

ComponentDescription
BranchConditional routing based on input
SplitRoute based on multiple conditions

Endpoints

ComponentDescription
HangupEnd the call
ForwardTransfer to another destination

Building a PHLO

Step 1: Create New PHLO

  1. Navigate to Voice > PHLO
  2. Click Create New PHLO
  3. Enter a name for your workflow
  4. Select trigger type (Incoming Call or HTTP Request)

Step 2: Design Workflow

  1. Drag components from the sidebar
  2. Connect components by drawing lines
  3. Configure each component’s settings
  4. Use branches for conditional logic

Step 3: Test

  1. Click Test in the PHLO editor
  2. Simulate incoming calls
  3. Verify flow behavior
  4. Debug any issues

Step 4: Deploy

  1. Click Save to deploy changes
  2. Assign phone number to PHLO
  3. PHLO is live immediately

Assign Phone Number to PHLO

Method 1: From PHLO Editor

  1. Open your PHLO
  2. Click Assign Number
  3. Select available phone number
  4. Save

Method 2: From Phone Numbers

  1. Go to Phone Numbers > Active
  2. Click on the number
  3. Select PHLO for Application Type
  4. Choose your PHLO from dropdown
  5. Update

Example: Simple IVR

[Incoming Call]

[Speak: "Welcome. Press 1 for sales, 2 for support"]

[Get Input: timeout=10, digits=1]

[Branch]
   ├── Input=1 → [Dial: Sales Team]
   ├── Input=2 → [Dial: Support Team]
   └── No Input → [Speak: "Goodbye"] → [Hangup]

Example: Call Forwarding with Voicemail

[Incoming Call]

[Dial: Primary Number, timeout=20]

[Branch: Call Answered?]
   ├── Yes → [End]
   └── No → [Speak: "Leave a message after the beep"]

           [Record: max_length=60]

           [HTTP Request: Send recording URL to webhook]

           [Hangup]

Triggering PHLO via API

For HTTP Request triggered PHLOs:
curl -X POST \
  "https://phlorunner.plivo.com/v1/account/{auth_id}/phlo/{phlo_id}" \
  -u "{auth_id}:{auth_token}" \
  -H "Content-Type: application/json" \
  -d '{"from": "14151234567", "to": "14157654321"}'

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

FeaturePHLOXML Application
SetupVisual, no codeRequires server + code
FlexibilityPre-built componentsUnlimited customization
HostingPlivo-hostedSelf-hosted
Best forSimple to moderate flowsComplex, dynamic applications
Choose PHLO when:
  • Building standard IVR/routing flows
  • No development resources available
  • Quick deployment needed
Choose XML when:
  • Complex business logic required
  • Integration with existing systems
  • Dynamic, data-driven call flows

Troubleshooting

Common Issues

IssueSolution
Calls not reaching PHLOVerify phone number assignment
Branch not workingCheck condition configuration
Audio not playingVerify audio file URL accessibility
HTTP request failingCheck webhook URL and response

Debug Tools

  • Use PHLO’s built-in test mode
  • Check call logs in console
  • Review HTTP request/response logs