FreeSWITCH Enterprise Support Lead
Len GrahamSignalWire’s AI Agent is a low-code tool that allows you to integrate AI into your voice applications with ease. With options to build a virtual agent using our no-code interface or to program your own, anyone can build their own customizable AI voice assistant.
AI agents are particularly skilled when it comes to taking over customer support operations. Virtual assistants powered by AI can handle customer inquiries, provide basic troubleshooting, and perform tasks like sending messages or scheduling appointments. In this post, we'll dissect a code snippet for an AI agent designed to be a customer support agent for a cable company.
AI Zen: A digital employee at the cable company Livewire
In this example, we’ve built an AI voice agent named Zen, a witty AI assistant proficient in troubleshooting and support. Zen works for a cable company called Livewire, and is dedicated to making your experience as smooth as possible. Zen assists you with technical issues but also adds a touch of humor to every interaction.
To see how Zen works, call Livewire at +1 (201) 366-6039.
In the following snippets, we’ll break down the code behind Zen, which you can follow as an example to build your own customer support AI agent.
Server OS/applications used:
Debian 12
Perl
NGINX
Below, you can see the prompt that defines Zen’s personality, behaviors, and parameters. Zen boasts an impressive set of skills, from rebooting modems to conducting speed tests and checking modem diagnostics. Zen's abilities go beyond technical tasks; he can also transfer calls and verify customer details.
The conversation with Zen follows a structured flow to ensure efficient troubleshooting and support. Beginning with customer verification, Zen requests the account number and CPNI. If unsuccessful after four attempts, Zen moves on to step two – performing a speed test and relaying the results. Steps three and four involve checking modem levels and SNR. After providing assistance, Zen concludes the call. These actions are defined in plain language:
Functions
This example requires some code in order for Zen to perform functions such as speed tests and modem swaps. Functions in this example will connect to a database and pull data with a json output.
Once the function verify_customer is executed by the user verifying the account_number and cpni then the record for that customer can be used later. The prompt for this example won't allow any further steps to happen unless verify_customer is validated.
verify_customer
Name: verify_customer
Purpose: Verify customer account number, cpni first, last name and phone number
Argument: account_number|7 digit number,cpni|4 digit number
Meta data functions
meta_data functions access the output of an already executed function. In this example once the function verify_customer is executed by the user by verifying account_number and cpni, then the record for that customer is accessible via json for any meta_data functions.
modem_swap
Name: modem_swap
Purpose: Swap the users modem
Argument: mac_address|new modem MAC Address in lowercase hex 12 characters
speed_test
Name: speed_test
Purpose: Test upload and download speed from the modem
Argument: account_number|7 digit number,cpni|4 digit number
modem_diagnostics
Name: modem_diagnostics
Purpose: customer modem upstream downstream and snr levels
Argument: account_number|7 digit number,cpni|4 digit number