Telephony call-center software
ZestPhone
Who we are
We are Zestfinance (zestfinance.com) a financial services company that helps lenders with underwriting and loan servicing. In addition to building cutting-edge underwriting algorithms, we’ve also built a host of home-grown CRM tools and loan servicing products for our lending partners. We recently added call-center style phone controls into our existing CRM by leveraging Twilio’s cloud-based communication technology, which we call ZestPhone.
What is ZestPhone?
ZestPhone is a drop-in phone widget that can be simply added to any web application to give you full call center functionality.
Features:
- Inbound and outbound calling
- Call outbound to anywhere in the world*
- Set up your existing business phone number with Twilio or purchase one from Twilio to get started
- Have multiple business phone numbers in use for marketing attribution
- Cold and warm transfer
- Allow your agents transfer calls to each other either directly or with introduction
- Put a call on hold / resume a call
- Agent status
- Ability to respond to telephony events in your application
- Uses existing agent names/numbers/ids
- Embeds into your existing javascript-enabled application
- PSTN or VoIP (i.e. use a regular phone, SIP, or twilio client)
- Call recording
- All calls are recorded while the customer is on the line with an agent and are stored by Twilio (storage rates apply)
- Voicemail
- Customers can be transferred to a specific agent’s voicemail if the agent is busy with another customer or offline
Why use ZestPhone / Am I (or my company) a good candidate?
- Quick integration You want to quickly and easily add phone capabilities to your application
- 1:1 Customer Service Experience You want to empower your call center agents to provide 1:1 support to customers with easy-to-use transfer and voicemail capabilities
- Use any type of phone You have call centers with different phone setups and want software to support them all (PSTN, SIP, VoIP)
- Low cost per minute You want to take advantage of twilio’s competitive usage pricing
Running ZestPhone server
ZestPhone is a ruby on rails application, backed by a MySql database. It's only known to work for sure using ruby 1.9.3, but any 1.9.x ruby version is probably fine.
- You need a Twilio account of course.
- A Pusher account
- A database that is supported by rails, and that supports locking (only MySql is known to work)
- Your application needs to include backbone.js
The complete setup guide is here: https://github.com/ZestFinance/zestphone/blob/master/SETUP.md
Javascript events your app can respond to
All events have this basic data:
{
event_id:
conversation_id:
conversation_state:
call_id: # This will be empty for events that happen at the conversation level
number: # The customer's number
owner: # Is the agent receiving this event the conversation owner?
}
- telephony:Answer: Fired when the agent answers his phone
- telephony:Busy: Fired to an agent whose phone was busy
- telephony:CallFail: Sent to an agent when the agent leg fails
- telephony:CompleteHold: Sent to all agents when the customer has been put on hold
- telephony:CompleteOneStepTransfer: Sent to the agent who just answered a one-step transfer
- telephony:CompleteResume: Sent to all agents when the customer is taken off of hold
telephony:CompleteTwoStepTransfer: Sent to all agents after the 2nd agent picks up in a two-step transfer. The data sent to agent1 will include agent2's name, extension, and csr_type. The data sent to agent2 will include that data for agent1.
telephony:Conference Sent to an agent who was just moved into a conference room. This can happen during hold or transfer actions, and is not very interesting on it's own.
telephony:Connect
telephony:csrDidChangeStatus
telephony:csrNotAvailable
telephony:CustomerLeftTwoStepTransfer
telephony:FailOneStepTransfer
telephony:FailTwoStepTransfer
telephony:InitiateOneStepTransfer
telephony:InitiateTwoStepTransfer
telephony:InitializeWidget
telephony:LeaveTwoStepTransfer
telephony:LeaveVoicemail
telephony:NoAnswer
telephony:QueueChange
telephony:RemoveFromConference
telephony:Start
telephony:Terminate
telephony:toggleCsrStatus
telephony:WidgetReady
telephony:conversationCreated
transferInitiated
Javascript events you can trigger from your app
- telephony:ClickToCall:
Sample usage:
javascript $(this).trigger("telephony:ClickToCall", to: $(event.currentTarget).text());