Property management call routing

Overview
Build a property management call routing workflow that determines transfer destinations dynamically using tenant verification, inquiry type analysis, and real-time agent availability. This approach uses visual workflow nodes with API Request nodes for maximum routing flexibility.
Workflow Capabilities:
- Tenant status verification and prioritization
- Inquiry type classification for specialist routing
- Real-time agent availability and queue management
- Emergency routing for urgent maintenance issues
What You’ll Build:
- Visual workflow with conditional routing logic
- API Request nodes for dynamic destination logic
- Tenant verification with CRM integration
- Emergency escalation with priority queuing
Quick Start: Create the Complete Workflow
Use this cURL command to create the entire property management workflow in one shot:
Replace $VAPI_API_KEY
with your actual API key from the Vapi Dashboard. Update the phone number in the transferCall
destination to your actual office number.
Once created, you can retrieve the workflow ID and attach it to a phone number for testing.
Test Workflow Creation
After creating the workflow, you can test it and get the workflow ID:
You’ll need jq
installed for JSON parsing. On macOS: brew install jq
, on Ubuntu: sudo apt-get install jq
API Response Structure
When you create the workflow, you’ll receive a response like this:
Key Fields for Integration
Node Types in This Workflow
- Conversation Nodes: Handle AI conversations with tenants
- Tool Nodes: Execute API calls for tenant lookup and routing
- Transfer Nodes: Route calls to appropriate agents
Prerequisites
- A Vapi account
- Property management system API or tenant database
- (Optional) Agent availability tracking system
Scenario
We will build a call routing workflow for Riverside Property Management that intelligently routes tenant calls based on their status, inquiry type, and agent availability.
1. Create a Workflow
Dashboard
API (cURL)
2. Add Tenant Verification Node
Add API Request node for tenant lookup
Add an API Request node after the greeting:
Node Configuration:
- Node ID:
tenant_lookup
- HTTP Method:
POST
- URL:
https://your-property-system.com/api/tenants/lookup
- Headers:
Authorization: Bearer YOUR_API_KEY
- Body:
Configure response mapping
Map the API response to workflow variables:
tenant_status
→ Extract fromresponse.tenant.status
property_address
→ Extract fromresponse.tenant.property
account_standing
→ Extract fromresponse.tenant.account_standing
emergency_contact
→ Extract fromresponse.tenant.emergency_contact
3. Build Emergency Routing Logic
Add emergency detection node
Add a Conversation node for emergency handling:
Condition: inquiry_type == "emergency"
First Message:
System Prompt:
4. Create Inquiry-Based Routing
Add maintenance routing branch
Add API Request node for maintenance team routing:
Condition: inquiry_type == "maintenance"
URL: https://your-system.com/api/routing/maintenance
Body:
Response should include:
- Available maintenance coordinator phone
- Estimated wait time
- Work order creation capability
5. Add Agent Availability Logic
Create availability checking flow
Before each transfer, add an API Request to check agent availability:
URL: https://your-system.com/api/agents/availability
Method: GET
Query Parameters: department={{department}}&priority={{priority}}
Response includes:
- Available agents with phone numbers
- Current queue length
- Estimated wait times
6. Build Transfer Nodes with Context
Create dynamic transfer destinations
Use the API response data to populate transfer nodes:
Maintenance Transfer:
- Destination:
{{maintenance_agent_phone}}
- Message: “Connecting you to {{agent_name}} from our maintenance team.”
- Transfer Plan: Include tenant property address and issue details
Leasing Transfer:
- Destination:
{{leasing_agent_phone}}
- Message: “Transferring you to our leasing office.”
- Transfer Plan: Include tenant status and lease information
Billing Transfer:
- Destination:
{{billing_agent_phone}}
- Message: “Connecting you with our billing department.”
- Transfer Plan: Include account standing and payment history
7. Add Error Handling and Fallbacks
Create fallback routing
Add API Request node for fallback scenarios:
Triggers:
- API lookup failures
- No available agents
- Unknown inquiry types
- System errors
URL: https://your-system.com/api/routing/fallback
Body:
8. Test Your Property Routing Workflow
Dashboard
API Testing
Create a phone number
- Navigate to Phone Numbers in your dashboard
- Click Create Phone Number
- Assign your property management workflow
- Configure any additional settings
API Integration Examples
Your property management system can integrate with the workflow using these API endpoints:
Tenant Lookup Endpoint
Response:
Agent Availability Check
Response:
Emergency Routing
Response:
Advanced Workflow Features
Queue Management with Priorities
Configure priority-based routing in your tenant lookup API:
Priority levels:
- Critical: Emergency situations, commercial tenants
- High: Good standing tenants with urgent issues
- Normal: Standard maintenance and lease inquiries
- Low: Delinquent accounts with non-urgent matters
Business Hours Routing
Configure time-based routing logic:
Next Steps
You’ve built a sophisticated property management call routing workflow! Consider these enhancements:
- Customer support escalation system - Explore the assistant-based approach
- Workflow Analytics - Track routing patterns and optimize decision trees
- Integration Templates - Connect with popular property management systems
- Advanced Routing - Implement complex routing logic with multiple conditions