Guides & tutorials
Step-by-step walkthroughs for setting up, migrating, and tuning VICIdial.
47 posts.
Reading a list's details with list_info
Pull a lead list's name, campaign, active flag and lead counts straight from VICIdial with the list_info API function.
Read postEditing campaign dial presets with update_presets
Add, edit, list or delete a campaign's quick-dial presets over HTTP using the VICIdial update_presets API function.
Read postCloning a DID with copy_did
Duplicate an existing inbound DID's routing onto one or more new numbers in a single API call with copy_did.
Read postValidating a number before dialing with check_phone_number
Check that a phone number is the right length, in a dialable area code, and not on a DNC list before you dial it.
Read postFinding a call recording with the recording_lookup API
Use the recording_lookup function on the Non-Agent API to find call recording URLs by agent, date, or lead id, with format and permission notes.
Read postExporting agent stats with agent_stats_export
Pull agent activity statistics for a date range with the agent_stats_export API — talk time, pauses, sessions, and per-campaign grouping.
Read postReading live call-status counts with call_status_stats
Get per-campaign and per-ingroup call counts with hourly and status breakdowns from the call_status_stats API — fields, filters, and output format.
Read postHow to change campaign settings with update_campaign
Change dial level, dial method, hopper level and more on a live VICIdial campaign over HTTP with the update_campaign API.
Read postHow to create an inbound DID with the add_did API
Create an inbound DID and route it to an in-group, extension or call menu over HTTP with the VICIdial add_did API function.
Read postChanging a DID's routing with update_did
Edit an inbound DID's description, routing target, recording flag, and more from a single API call with update_did.
Read postHow to feed the dial hopper with hopper_bulk_insert
Push a batch of lead_ids straight into the dial hopper from one API call, with priority and local-time checks.
Read postExporting inbound-call logs with did_log_export
Pull a single day of inbound calls to a DID with the did_log_export API function — required fields, output format, permissions, and errors.
Read postBlocking a number with the add_fpg_phone API
Use add_fpg_phone to push a phone number into a Filter Phone Group so the dialer skips it without touching your DNC lists.
Read postHow to register a SIP phone with the add_phone API
Use the add_phone API to create a SIP extension on your VICIdial server from code instead of clicking through the admin screen.
Read postListing your campaigns with campaigns_list
Dump every campaign's ID, dial method, dial level and dial prefix in one read-only call with the VICIdial campaigns_list API.
Read postHow to create a calling list with the add_list API
Create a new VICIdial calling list over HTTP with the add_list function. Required fields, optional settings, copying custom fields, and responses.
Read postReading the dial hopper with hopper_list
Pull the live contents of a campaign's dial hopper, lead by lead, with the hopper_list API call.
Read postPulling every call to a number with phone_number_log
Export every inbound and outbound call placed to one or more phone numbers with the phone_number_log API — fields, filters, and the indexing caveat.
Read postHow to add a number to the DNC list with add_dnc_phone
Use the add_dnc_phone API to push a phone number onto a campaign or internal DNC list without opening the admin screen.
Read postRemoving a number from DNC with delete_dnc_phone
Call the delete_dnc_phone API to pull a phone number back off a campaign or internal DNC list when it was added by mistake.
Read postUnblocking a number with delete_fpg_phone
Call delete_fpg_phone to pull a number out of a Filter Phone Group so the dialer stops skipping it.
Read postChanging a registered phone with update_phone
Edit or delete an existing extension over HTTP with the update_phone Non-Agent API function, including required fields, permissions, and responses.
Read postGrouping phones with add_phone_alias
Create a phone alias that maps one login to several phones using the add_phone_alias Non-Agent API call. Fields, permissions, and example responses.
Read postEditing a phone group with update_phone_alias
Change or delete an existing phone alias over HTTP with update_phone_alias. Required fields, the delete_alias flag, permissions, and responses.
Read postChanging list settings with update_list
Edit, reset, or delete a VICIdial calling list over HTTP with update_list. Required fields, the reset and delete flags, custom fields, and responses.
Read postMoving a lead back from the archive with lead_dearchive
A walkthrough of the lead_dearchive non-agent API, which pulls one lead out of the VICIdial archive table and back into the active list.
Read postHow to change agent settings with the update_user API
A walkthrough of the update_user non-agent API call, the fields it can change, the permissions it needs, and the responses it returns.
Read postHow to create an agent account with the add_user API
A step-by-step guide to the add_user non-agent API, which creates a new VICIdial agent account from your own application.
Read postLooking up leads from your app with lead_search
How to use the lead_search non-agent API to find lead IDs by phone number from your own application or CRM.
Read postStopping duplicate leads with add_lead duplication checks
How the add_lead duplicate_check options keep the same number from landing in your dialer twice, with the scope flags and X-day variants explained.
Read postHow to change a call's status with update_log_entry
A short guide to using the update_log_entry non-agent API to correct the status on a single call log record in VICIdial.
Read postHow to call the VICIdial Non-Agent API over HTTP
A plain walkthrough of building your first VICIdial Non-Agent API call: the URL, the required parameters, and a working example you can paste into a browser.
Read postThe VICIdial API and AGI guide: every way to integrate VICIdial with outside systems
A beginner map of how VICIdial talks to outside systems: the non-agent API, the agent API, and AGI dialplan scripts, with links to deeper guides.
Read postAPI user levels and permissions explained
Why some VICIdial API calls return a permission error and others do not, and how user_level plus a few checkboxes decide what each account can do.
Read postThe Non-Agent API vs the Agent API: which one you need
VICIdial ships two HTTP APIs that look alike but do different jobs. Here is how to tell them apart and pick the right endpoint for your task.
Read postHow to secure the VICIdial API with HTTPS and a dedicated user
Two simple steps protect your VICIdial API: serve it over HTTPS so credentials are not exposed, and call it from a narrow, purpose-built user account.
Read postWhat the API source parameter is for
Every VICIdial API call takes a source parameter. It does not change behavior, but it is the label that makes your API logs readable.
Read postHow to read VICIdial API SUCCESS and ERROR responses
VICIdial API replies are plain text starting with SUCCESS, ERROR, or NOTICE. Here is how to parse them so your code knows what happened.
Read postHow to push a lead into VICIdial with the add_lead API
A walkthrough of the add_lead Non-Agent API call: required fields, an example HTTP request, and how to drop a new lead into a dialing list.
Read postHow to set custom fields when you add a lead by API
Turn on custom_fields in the add_lead call and pass your own list-specific data alongside the standard name and phone fields.
Read postHow to change an existing lead with the update_lead API
Use the update_lead Non-Agent API call to edit a lead in place, match it by lead ID, vendor code, or phone number, and write back changed fields.
Read postDeleting and resetting leads with update_lead options
The update_lead call does more than edit fields: it can delete a lead, wipe its custom data, or reset its called flag so the campaign dials it again.
Read postHow to update many leads at once with batch_update_lead
The batch_update_lead call applies one set of field values to a comma-separated list of lead IDs in a single request, ideal for bulk changes.
Read postPulling a full lead record with lead_all_info
How to use the lead_all_info non-agent API to read every field of a VICIdial lead, including custom fields, from your own app.
Read postReading an agent's settings with user_details
A short guide to the user_details non-agent API call: what it returns, the permissions it needs, and when to use it over agent_status.
Read postCloning an agent account with copy_user
How to use the copy_user non-agent API to clone an existing VICIdial agent account to a new login in one call.
Read postAdjusting remote-agent lines with update_remote_agent
How to use the update_remote_agent non-agent API call to change a remote agent's line count, campaign, and active status from a script.
Read post