Getting Started
This guide walks through the initial setup of Virsyn Voice AI for a new agency.
Prerequisites
- A Virsyn account with an agency created
- An Ultravox API key
- A Telnyx account with API v2 key, public key, and account SID
Step 1: Save Ultravox API Key
Store your Ultravox API key to enable agent management and call processing.
POST /functions/v1/save-ultravox-integration
Authorization: Bearer <jwt>
{
"api_key": "your-ultravox-api-key"
}
The key is validated against the Ultravox API before being encrypted and stored. See Save Ultravox Integration.
Step 2: Save Telnyx Credentials
Store your Telnyx credentials to enable telephony features.
POST /functions/v1/store-telnyx-credentials
Authorization: Bearer <jwt>
{
"api_key": "your-telnyx-api-key",
"api_key_public": "your-telnyx-public-key",
"account_sid": "your-telnyx-account-sid"
}
All three values are encrypted before storage. See Store Telnyx Credentials.
Step 3: Provision Telephony
Run the provisioning workflow to create the Telnyx-Ultravox bridge.
POST /functions/v1/provision-telephony
Authorization: Bearer <jwt>
This creates:
- A Telnyx Call Control Application with webhook URLs pointing to your agency's webhook endpoint
- A Telnyx Outbound Voice Profile linked to the application
- Imports Telnyx SIP credentials into Ultravox
See Provision Telephony.
Step 4: Create Your First Agent
Create an AI voice agent with a system prompt and voice.
POST /functions/v1/agents-create
Authorization: Bearer <jwt>
{
"name": "Reception Agent",
"system_prompt": "You are a helpful receptionist...",
"voice": "terrence",
"language_hint": "en",
"first_speaker_text": "Hello, how can I help you today?",
"recording_enabled": true
}
See Create Agent.
Step 5: Purchase a Phone Number
Search for and purchase a phone number.
# Search for available numbers
GET /functions/v1/phone-numbers-search?country_code=US&area_code=312
Authorization: Bearer <jwt>
# Purchase a number from the results
POST /functions/v1/phone-numbers-purchase
Authorization: Bearer <jwt>
{
"phone_number": "+13125551234"
}
See Search Phone Numbers and Purchase Phone Numbers.
Step 6: Assign the Number to Your Agent
Link the phone number to your agent so inbound calls are routed to it.
POST /functions/v1/phone-numbers-assign
Authorization: Bearer <jwt>
{
"phone_number_id": "<phone-number-uuid>",
"agent_id": "<agent-mapping-uuid>"
}
See Assign Phone Numbers.
Next Steps
- Sync voices to see all available voice options
- Sync tools to enable agent tool usage
- Start a historical sync to import past call data
- Review the Architecture page for a deeper understanding of the system