Tuesday, July 28, 2015

Getting it Right When Some Get it Wrong

There's a fast-service restaurant near my house that specializes in frozen dairy products. Let's say it rhymes with Fairy Shmeen. My order is usually something fairly simple. The drive-thru experience is usually pretty quick and painless. Sometimes, however, there's a problem, and I have to repeat my order several times. Sometimes I have to repeat it after I've gotten to the window. Each time there's a problem, it's the same girl taking my order. I'm sure she's an excellent employee. Maybe seniority dictates that she should have the headset. But she can't seem to get the hang of it. At least not in my case.

In the last decade, there's been a move to remote order taking at drive-tru restaurants. A call center handles all the orders for a number of restaurants. Rather than multitasking employees taking orders while they're blending shakes and making sundaes, the agent taking the order is focussed on that one thing. There's not a lot of wrapup needed for this task, just accuracy and speed. The faster the agent can process the orders, the more orders the call center can handle, and the more money the restaurants can make.

In many senses, the call center is the new factory floor. It's knowledge work rather than manual labour, but the concept is the same. Agents can specialize in certain tasks, and through specialization, efficiencies are realized. Efficiency translates to additional profit for someone in the chain. By collecting similar agents in one place rather than scattering them around the country, things like training and management are greatly simplified. What Henry Ford did with the assembly line is being replicated at workstations in communication centers.

Voice communication, like restaurant orders, are an obvious addition to the call center, when voice has historically been the point. Drive-thru orders aren't exactly like regular calls, though, even though they may seem similar to the agent. Call center software that can handle alternative media like this can also handle things like email queues, social media, and text chat in the same manner. Requests get queued, handled by the correctly skilled agents, and the client benefits. By streamlining this way, everyone benefits.

When you're handling non-call media in a streamlined way, reporting, quality assurance, and adherence to metrics all become easier. In the future, it may even lead to me getting my caramel shake reliably.

Tuesday, July 21, 2015

Managing Do Not Call Lists

Sometimes part of customer service is making sure that you never bother them again. It's a sad part of the call center business, but that doesn't make it any less true. Since the United States Federal Trade Commission established the National Do Not Call (DNC) Registry in 2003, DNC blocking earned extra importance.

In most call centers, there are two kinds of Do Not Call lists:

1) An external DNC list. This may be provided by a regulatory agency, such as the US FTC. It may be provided by an external source, mandated by your contracts. Or you may simply have a means of collecting numbers and putting them on your list. These are people who have not necessarily been in contact with your call center specifically, but that you should definitely not call.

2) An internal DNC list. These are most often people who have requested to be put on your DNC list. This may have been after you made an outbound call, or they may have called for the purpose of being put on your DNC list. Normally, compliance with such requests is mandatory.

Where it gets complicated is there are often exceptions to these lists. For instance, if someone is on a National DNC, but they have specifically contacted you or the company you represent, you may be in a business relationship that trumps the DNC status and allows you to dial. Or your call center may be dialing for an exempt institution. Regulations vary on this from jurisdiction to jurisdiction. In any case, you may find yourself having to maintain different lists for different purposes.

Good call center software will allow you to maintain separate DNC lists per outbound campaign. You should also have the tools to copy lists, load in new numbers from time to time, and possibly most importantly, automatically put anybody on the list when the call is dispositioned as DNC for that campaign.

In addition to the lists, your dialer should check the list at time of dial, so that new additions that may occur after your lead list was scrubbed (you are scrubbing your leads, aren't you?) won't get accidentally dialed and incur the wrath of call recipients (and potential fines). Only with such a multi-pronged approach can you be certain your dialer is not going to land you in hot water.

Tuesday, July 14, 2015

Putting Your Web Service to the Test

As you can guess from recent topics, web services have been a hot issue around here. Whether it's in the dialplan or the agent scripting, we find that call centers are increasingly looking for live data delivered in real time, and web services are a great way to do this.

Where things do sometimes falter is on initial setup and testing. Hours and hours get spent diagnosing whether an issue is on the remote side or in the way the receiver is interpreting the data. Tests get set up and run, the results are checked, then some incremental change is made and the test run again.

It really doesn't have to be that complicated.

There are a couple of tools that we use to help cut down the testing and verification time:

1) Just create a file and have it downloaded. 

If you're sending a request and expecting an XML or JSON file with certain fields back, just create a simple valid case in the form of a file. Break out your favourite text editor and write it out.  It could be something as simple as:


Save the file as whatever the response is supposed to be (ie. response.xml). If you have a web server handy (if not, what are you serving the response from?), just place the file somewhere convenient, and have your "web service" return the file. Sometimes you may even be able to encode the URL with the form file:///my-file-path/response.xml and have it read the file in as a web service response. If there's an error, you either created the file incorrectly (which you can check) or your script isn't parsing the response correctly.

2) Try hitting the web service with your browser.

 You may be able to request a response from the web service, at least on a trial basis, by hitting the right URL in the browser window. It may look odd, but can tell you if you're getting the response you expected:

You can also use command-line tools like wget if you need to set specific cookies or can only POST requests.

In either case, you may not be able to resolve your problems with your web services right away, but it should make it much clearer where any issues or unexpected behaviour could lie.

Tuesday, July 7, 2015

A World Wide Web of Data for Your Contact Center

A long, long time ago, we had a request to integrate with a third party lead system. There were a couple of moving parts that made it not 100% easy to do:

  1. The third party was providing pre-screened calls to subscribers. They had to make sure that they sent the right number - no more, no less.
  2. The subscribers had to be licensed in the area the number belonged to. This meant that the calls had to be transferred to one of a set of numbers, keeping in mind constraint 1.

Ultimately, we wound up implementing callability rules that would be checked every few minutes, and the third party was responsible for routing calls through the transfers to the right clients. It worked, but it made it difficult to deliver the precise number of calls without going over.

Today, the way to do it would be a combination of callability rules (to limit the number of calls queueing in a geographical area), but precision would be easier to achieve using a web service to deliver the transfer number and other information on the fly.

We've talked about web services before as one of a number of ways to drive information to the agent or the call center ACD. Plenty of providers offer  web-based APIs to help integrate with third party software.

Custom development of anything may seem difficult. Still, if you're envisioning a system like that described in the first paragraph, providing a web service is going to be at least as easy as other methods of integrating. There is a huge number of systems, frameworks and development tools to allow developers to quickly get something up and accessible on the web.  

Once you've decided on a little short term pain, you can have a lot of long-term gain. Using a web service, you could deliver the transfer number (as well as a name, office address etc.) right before the agent is ready to transfer the call. This live update capability lets you address the third party by name, and allows the agent to provide as much information as possible to give the contact a more secure feeling. This can work both ways: you could also have a web service that sends lead data back to the web service, allowing the updated information to be sent along with the call. This is the real advantage of warm leads, and helps improve close rates.

Thursday, May 21, 2015

Hot Leads, High Performance

Someone is really interested in your product. They've filled out the form on the web site and clicked "Contact Me". They're still thinking about you. Now, who do you have call them? It's a lot like pizza. When it's hot and fresh at just the right time, it's a magical experience.

Web-based, hot or live leads are a fantastic way to generate a contact with your client. If your prospect went through the trouble of filling out the form, they're never going to be more interested in hearing from you. It's really important to make sure the call is handled by someone qualified to handle it.

Having the lead information populated in a skills-based queue is your best option. You can filter the leads to make sure they get into the right queue, and then use skills to make sure only the right agents are taking calls from that queue. Skill priorities can be used to make sure that the best qualified agent at the time a lead comes in takes it.

Social media and other non-media types can also be handled using the skills-based queuing method. Again, the most important thing is to make sure your qualified agents are handling these contacts in a timely manner. Wait too long, and your opportunity is gone. Give it to the wrong agent, and you've blown the opportunity. The right agent at the right time? It's magic.

Tuesday, May 19, 2015

Running the Beachfront Call Center

In 2004, we had a client with a call center in Northern New Brunswick.  For a dozen seats, he required thousands of dollars in telephony equipment, including the Pika board required to wire in the multiple incoming telephone channels, CTI server and a server to manage the leads and agent interaction. A few years later, and after a downturn in the economy, he was able to repurpose the equipment. He moved it to his basement, kept a few call center seats there, and used DSL to connect to a SIP provider. If he were to start today, he wouldn't need the telephony card, the servers, and the wiring. He could start in his basement, using the Cloud,  and only move to an outside office when his growth demanded.

A lot of people don't understand what exponential means. You might think it means a lot. It's more than that. Moore's law says that the number of components on an integrated circuit doubles every two years. What that means is an astounding performance boost in hardware every couple of years. It also means that the capacity of the Cloud is ever increasing. Where it would have been highly impractical to host a call center in the Cloud in 2004, it's astonishingly easy today. What's tough today will be routine tomorrow, and trivial in a few years. Software as a Service is becoming routine.

What does that mean for your call center and the contact center technology it's using? Great things, for sure. Capabilities are improving. Costs are dropping. It's easier to get quality software like Asterisk running on the Cloud. APIs make it easier to incorporate contact center features into the software you're using today. And it just gets better. As hardware improves, you can easily upgrade the hardware. As software improves, you get the benefit. What will be possible in two years? Who knows? Better speech recognition for sure. Additional logic for routing calls to the right party? Freedom to run your call center remotely? From the beachfront? Remote agents working from convenient locations? Well, those are already here.

Thursday, May 14, 2015

What To Do Before Someone Lets The Smoke Out of Your Server

Who let the smoke out?
The client was worried because one of the Asterisk servers had gone down without any notice at all. The overseer process on the other Asterisk server had noticed, and had taken over as the active server. The disruption was minimal. Agents were at work. But the client wanted to know what had happened, and what we could do to prevent the issue in the first place. After 30 minutes of poring over logs, digging around, and contacting the colo, we discovered that a tech had decided to swap out the power bar connected to that server. There was no notice, and not even a courtesy three-finger salute

Whether it's an incompetent tech, a bad power supply, or a network port going out, you will experience downtime. If you see the "magic smoke" leaving your server, it's expired. Kaput. When your call center technology needs to be up, you need to make sure you're using a high availability solution. High availability can be as simple as a watchdog process monitoring the health of your server, some means of synchronization, and kicking off a recovery process on the spare when the watchdog detects a failure. Better implementations will include the ability to monitor both servers and services. You'll also want to have multiple servers, services, and monitoring for the health of each. High availability in the Q-Suite, Indosoft's call center software, involves all of these.

Monitoring servers is important. Having a web server running successfully on dying hardware means a future dead web server. System load, free memory, disk usage, and other factors are all important. Many processes will not work successfully if the disk has been remounted read only or is full. Think about what that does to your recordings. You needed those, right? If it looks like your system is running into trouble, it's better to do the handoff before something fails hard.

Monitoring the services requires that we be able to define what numbers to use. A database process using 32 GB of memory may be correctly running and configured. An apache process using 32 GB of memory is a recipe for disaster. An Asterisk process using 32 GB means that something has already gone horribly wrong. On the other hand, an Asterisk process using a big chunk of available CPU is normal, and seeing the same in the web service is a sign of impending doom. Other factors such as thread count and responsiveness can let you know that your processes are performing well or on the verge of failure.

One way to move a service is to transfer a floating IP address representing the service master to a spare machine. In the Q-Suite implementation of overseer/watchdog, a number of IPs can be set up. For instance, you might have 4 active Asterisk servers and 3 active web servers. Each would use their own floating IP, which could be handed off. Sometimes you have sets of IPs that move together, such as the case where a server has multiple IPs for incoming trunks. In other cases, you want the IPs to remain separate. You can't make a server act as 3 web servers and perform as well as 3 separate machines, for instance.

With all the moving parts, it's up to the software provider to configure and test failover, to ensure it's working properly. Environmental factors can complicate things, such as network hardware, so it's not the sort of thing you should be expected to configure yourself. Once it's set up and you can monitor it, though, it's reassuring to know that you can have the odd failure without bringing down your floor.