Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: "Never wait on hold again" service built with Rails and Twilio
216 points by ekanes on March 3, 2011 | hide | past | favorite | 83 comments
My buddy paulsingh and I have been working on this for a few weeks, got something up and running and wanted to show you.

The problem we're solving: When you need customer service (your flight got canceled, strange fees on your bill, etc) you just want to talk to a real person. Waiting on hold wastes your time AND your concentration; you can't be coding in the zone when part of your brain is waiting for an operator.

Our solution: We wanted to make it "one click" to reach a real person.

How it works: You click on who you want to talk to (even a specific department, like the billing dept at AT&T) and we take it from there. Our system dials in, presses whatever buttons need pressing and waits on hold for as long as it takes. Only when we have an actual operator on the line do we call you.

Website version: http://www.fastcustomer.com (free) iPhone: http://itunes.com/app/FastCustomer (99 cents) Android: Know any great Android developers? ;)

Technical: Rails + Twilio, hosted on Rackspace Cloud.

We'd LOVE your feedback, and if any HNers want to review it let me know and I'll send you a promo code. If there are any companies you call regularly that we don't have (we're closing in on 1000 of the most-called companies) just say the word and we'll add 'em. Also, if you can think of things to do with our API we'd love to talk to you.

Thanks for checking it out!




And if you were a forward thinking megacorp, you could build something like this yourself. "Hiya, this is Paypal. Hit 1 to talk to ... Thanks. Type in your last four digits of your... Thanks Mr. McKenzie. Would you prefer to hold while waiting for a representative, or should we call you back in approximately 15 minutes? Hit 1 to..."

15 minutes later.

"Hello, is this Mr. McKenzie? Hiya, this is Steve at Paypal and I have your account brought up. What can I help you with today?"

I think that's far, far cheaper than $100k in dev costs and, if a 6 week test eliminates 5% of your CS spend while bringing your hold times down by 50%, that's like a career-making win. (Seriously guys: Twilio is the startup to watch. I say this while I'm literally wearing their sweatshirt but trust me, they're going to be massive.)

P.S. After you have it, you can trivially wire it into click-to-call on your webapp. "We can't show you that transaction, due to routine procedures meant to protect your account. Click here and type in your phone number, and we will have our Security Team contact you in the next five minutes. Thanks for using Paypal."


There are many SaaS companies which provide Call Center systems with the call back feature. It works just as you described. You call in and it asks for you phone number and calls you back when an agent is available. It even tells you your position in line if you call back too early.

http://www.incontact.com & http://www.liveops.com for those interested


Absolutely. There are a few startups doing this, ranging from hardware that companies install to software to "outside in" solutions like we're working on. As far as I understand this industry, the challenge is that they've all got massively complex dedicated IVR systems, and changing them is hard.

Some solutions will detect when call volumes are high, and allow you to put in your phone number to be called back. That's pretty cool, but you still have to call in, press buttons and wait to see if you get that message.

I agree though, in principle it's an area where companies could innovate. Unfortunately, customer service is typically approached as a cost to be minimized rather than an opportunity to be maximized. Zappos is the exception, etc.


Amazon does it and has for a couple years.


Delta Skymiles customer support has been doing this for awhile now.


Interesting, but this doesn't address the fundamental problem. The main reason that companies make you wait on the line is to differentiate the customers who care a lot about their problem from those who don't. By making the cost of waiting, for the customer, practically negligible, you are sidestepping this protection mechanism; your success would flood companies with less important support calls, thus giving them a powerful incentive to shut you out. At first, they'll just instruct their customer service representatives to immediately hang up on anything that sounds like your service. Next they'll ask the legal department for ammo, and do their best to implement technical counter-measures.

It's an interesting idea, but it's IMHO doomed long term, unless you find a way to take the companies' interest into account as well. For instance, in order to maintain the same system of customer disincentives you should probably charge per each minute your service is used.


curious how you intend to handle abuse? Maybe have an sms sent to the recipient first and they must confirm? I was just able to enter the example number ("555-555-5555") and it seems to process just fine (currently "Status: Operator on the line! Trying to connect you...") even though I clearly don't own that number. I could cause problems for both customer service people and cellphone users with this. I'm assuming you don't do any of this based on the video though, I'm unable to test as I'm in the UK.

Excellent idea!


Great question. There are a few ways we could handle it, but in principle we want to see how the problem happens before solving it. A confirmation process is a great idea but adds friction, and as we roll out we don't want to discourage usage. Basically, we want to see what happens so we don't optimize or problem-solve too early.


I personally would be quite worried about it being used for prank calls. At the click of a couple buttons anyone can create a very awkward conversation between AT&T and a random stranger (or a friend).


my thoughts exactly. pre-mature optimization is the root of all evil. When I first heard of this idea I ran through a list of ways to abuse it and make you guys go bankrupt :), but I've found there are far fewer crooks out there than there are honest people.

I love how you solved a problem for me without me having to jump through hoops.

True to the spirit of a hacker. This just screams of awesome execution, it's very refreshing to see in these days of startups.


Do you play an automated message when the tech comes on the phone? How many phone service technicians will actually sit there and wait to be connected to the actual user?


Yep. Most customer service folks don't mind waiting (they hear a phone ringing while we get you on the line) and they end up talking to happier customers, who are also much less likely to switch to another company than someone who's just been sitting on hold for 20 mins.


Also, a lot of phone service reps are literally not able to end a call. Often, the customer has to do it.


We seem to get a lot of hang-ups from customer service people. You wait 20 mins, to speak to them, you ask them something that's not going to be on their first script page, they ask you to wait and hang up. Or you wait for them and then need a few seconds to grab a pen "please hold" put them on hold for 10 seconds, retrieve the call and it's dead.

The other good one is cancelling a contract where they ask you to wait and simply keep your line open and don't let you make any calls for the next 20 mins ... always a joy. AFAIK there's no way on our phone system to force an incoming call to terminate.


Not too sure about that -- this would prevent phone reps from ending calls when the connection with the customer isn't functioning properly (but yet the line is still active).


Maybe it can be done with manager intervention.


If true, you could pretty easily take down a call center simply by calling up and leaving the lines open with no caller. Managers would need to be running all over the place.

Since call center employees commonly have the ability to perform call transfers, I can only imagine they have the ability to hang up on calls. Otherwise, I imagine they could simply transfer the call to an invalid extension to "hangup".


Love it. Twilio is a great platform. An idea: if you want to have the customer service rep doing productive work while he waits you can have the user type in a message with their information (account number / name / address) in a text field and read it out to the rep before telling them to wait.

It would probably make sense to do this only for paid customers in the future so that people don't abuse the feature (and CS reps).

Facebooked.


I need this for conference calls. Normally, I dial in at the time the meeting is supposed to start, but nobody else comes for ten minutes. This means I have to sit around and listen to the "nobody has joined yet" music, which sucks.

A system where the system calls you when everyone has indicated availability would be much nicer. No wasted time dialing in.

And BTW, these conference call services typically cost something like 30 cents a minute times the number of participants. So if your product eliminated 30 wasted seconds of airtime per employee per day, you would save a company like mine 12 million dollars a year.


Founder of a conference call start-up here.

This wouldn't work for conf call services as you'd still be charged from the moment a call was connected on your particular 'room' irrespective of who actually called it. Although it would certainly save time and you wouldn't have to listen to the annoying hold music.

Oh, and if you organisation is really paying 30 cents per minute, then you should get in touch as we could save them well over 12 million dollars a year! ;)

Regarding the dial-out when everyone's ready service... we're working on it.


Yeah, I am sure you could. I could probably set up an Asterisk server that would meet our needs in about a day.

What I've learned from working for a big company is that they only want to save money if it makes their employees more miserable in some way. An example is turning off the lights and heat at 6PM. This saves a few cents, and makes anyone who wants to stay late miserable. A job well done.

With technology projects, though, the goal is to spend as much money as possible. For an individual to make money, he needs to be promoted. To be promoted, you have to have a big team. To have a big team, you have to have a big project. So the incentive is to make small projects into big ones. The easiest way to get a big project is to buy some Very Expensive software or service, and then hire a team to "customize" it. This way, your line item at the end of the year is at the top, so you must be Very Important and will get promoted.

Also, conference calls already "save money" -- you can have the important business people in the expensive financial centers, and you can have all the programmer monkeys somewhere cheaper, and they can still communicate effectively. (Not really, of course, but it looks good on paper.)

Anyway, this is a long way of saying, I doubt we will use your service any time soon. Maybe if you make it cost more than what we have now, which a separate service like I originally described would :)


This definitely sounds like a cool idea -- I'm adding it to my "have to do this sometime" list right now. :)


Out of curiosity, how does your app know when a real human gets on the line...? Do you have a database of the automatic messages ("Please stay on the line while we sip Cognac and chortle") for each company so it doesn't get false positives?


Indeed, we split test Cognac vs other drinks as an indicator of the psychographic profile of operators at various companies. Groupon is all about the rum and cokes, whatever that means.

Kidding! Yeah we play a message so the operators can hit 1 to get their next call.



Did you build the database of phone tree options yourself, or is there another place you're getting it from? Building such a database seems ridiculously time consuming.


We originally looked at GetHuman, who really pioneered this space a long time ago. Their database is copyright so we would have needed permission, but one downside to crowdsourced data is that sometimes the crowd doesn't come back through and clean it. The result is that you have (for example) 9 different numbers to reach customer service, but what you really wanted was the best number. In the end we just did it from scratch.


Just bought your app for my IPhone. One comment: the app is not searchable on Fast Customer, only on FastCustomer (no space). If you just added Fast Customer to your description, it would be searchable.


Thanks for the heads up. Apple won't let me edit the keywords until we submit an update (which, actually, is coming soon)... I'll definitely get this fixed on the next release.


Never noticed that. Strange that you can edit almost everything else.


Your monetization strategy should be... if you're calling at&t about a service issue, verizon could pay to be notified with the opportunity to respond to the call first and win your business.


Love it! To take it further, AT&T could choose to pay more to NOT have Verizon notified.


Brilliant. You've probably added a few years to my life, both in terms of hours lost and frustration listening to the same 24kbps top-40 song over and over.

Thanks. :)


You can tell what song is playing?!


best. comment. ever. :)

seriously, thanks!


Aaron and Paul,

You guys weren't joking when you said you were moving fast. Looks great. I'm kicking the tires now and will report back. As I told you in January, great damn idea. Let's grab a beer -Jason


This is a great idea. Make sure you have the British Tax Offices on this list ;) Racked up a huge bill this month.


Right now we're just USA and Canada, but we want to add more countries ASAP. I've added the British Tax Offices to the list though for when we roll out in the UK! Thanks for the feedback.


What an awesome idea. First of all, thanks for building this. Like others have said, you've probably added years to our lives.

As a novel bonus, it'd be neat if you could wire up a twitter account that did song recognition and status updates.

Currently holding to: "Michelle Branch - Everywhere" for the 472nd time!


I'm interested to know what you plan on doing for revenue. I'm sure the cost of the calls will quickly outweigh the $.70 you're getting out of the app store.

Other than that its a great idea which I'm certain people would be willing to pay for (I would be if it was available internationally)


We're still figuring all that out -- for now, we just wanted to focus on making something that people want (ie, use).

Beyond that, we've got a couple of ideas that we'll be testing out -- maybe selling a brandable widget-based version to businesses, affiliate links, etc.

Not sure what will end up working but I can assure you that we'll be iterating pretty quickly. :)


I've used this service a couple of times, and everytime I don't have to wait on hold, I smile.


Glad you are having a go at it. I had some thoughts around that space a while ago: http://blog.outerthoughts.com/2007/01/calling-for-support-ca...

Point 6 there is similar to what you are trying to do.

Never did it, never will, but I do have a much longer document with additional idea directions and monetization strategies.

If you like and agree with the article, feel free to ping me and we can chat about the rest of the unreleased ideas. Like I said, I would be just happy for somebody to incorporate them.

Regards, Alexandre Rafalovitch


Great ideas Alexandre, I'd love to talk.


This is a great service, and if I was in a position where I had to deal with phone trees regularily for my job, then I'd even be willing to pay something for it.

One minor gripe -- at least in Chrome, if you type something in ("Verizon") and hit enter without selecting any of the auto-complete options presented, you just get a generic "whoops, something went wrong". Ideally, just pop the user through a screen that lets them select from a list of possible matches.

I'd make a snarky comment about how the site doesn't render properly in IE 5.5, but I think I'm about 2 years late on that trolly.


Ah, sorry about that - I'm working on cleaning things up as we speak. We hammered out the MVP pretty quickly and have been hustling to make the service more reliable, scaleable, etc.

Polish coming soon, promise! :)


Great idea guys!

Just curious, what happens when someone finally picks up and hears nothing? Is there a possibility that the other line will hang up before you have a chance to call us?


So, there's definitely the possibility that you might pick up and hear nothing (maybe the operator hung up, we got a bad connection, etc)... but we've got a bunch of stuff working in the background to "gracefully" recover from that scenario. Regardless, we're going to get you an operator one way or the other. :)


Great idea. I think a lot of companies would love to add this to their own apps. You should start selling this to them ASAP.


Fonolo has been offering this type of service for a while (http://fonolo.com).


Fonolo is pretty cool. There's another similar service called LucyPhone. I'd say the main difference between those great services and ours is that with them you still have to be on the phone, listening to prompts and pressing buttons, and then they wait on hold for you.

With our service you just press a button and go back to your life.


Hey- I'm one of the co-founders of Fonolo. Excited to see lots of innovation in this space.

ekanes- we don't actually require customers to navigate the menu like Lucyphone. Our system does all of the navigating for you, then calls you back when we're in the right point in that menu. It's fully automated.

We sell our services directly to companies (to connect to their customers); the free service isn't really our main focus. We also offer virtual queuing, surveys, and variety of other features (however they aren't offered on the free site.)

Btw, we've built all of the technology in house (speech rec, dialing engine, SIP stack, etc.) There's a lot of very neat technology under the hood.


Eh? As far as I can tell, these services do everything yours does.

EDIT: actually, Lucy makes you do the phone menus yourself. But Fonolo crawls the voice menus and generates a matching menu online (which is very slick, if it works).


I'm definitely a fan of both services, they're great. Our goal is just to take it one step further, and do it all for you. Fonolo does have a beautiful system with the menus, but they do call your phone for you to do the navigating. You can try it out at http://consumer.fonolo.com/


Fonolo is awesome! My company uses their business service and it handles user input and waiting on hold too.


Interesting.

From what I recall, LucyPhone is based near you guys. You might want to link up, at least for a powwow. Mike is an awesome dude.


Yeah, hopefully we'll meet up with them and say hello. I've heard only good things about them!


Nice product, will be bookmarking and using in the future. I sent you a bug report to your woodmill email, hopefully you got it. I agree that you need to verify requests in some way, although my friends hopefully enjoyed talking to at&t and verizon randomly just now, I certainly enjoyed them getting the calls :)


My ISP and phone provider iiNet (Based in Australia) do this. You call and chose the broad department you want to talk to (tech, sales, or billing), and you're told how long your wait is approximately, and asks if you want a callback on the number you're calling from.

Speaking from personal experience using this sort of system: It's fantastic to use and if you're successfully inserting yourself as the middleman in this sort of experience you're definitely on the right track.

I can see this also being extremely useful for call out tech people who need to jump on the phone to talk to their clients providers on regular occasion.

Great idea, if you expand to Australia it'll be a must have app for me.


Thanks, Australia is high on our list when we get to more countries.


Internode in Australia also do it, however they don't offer it to the caller until you've been on hold for 8 minutes. An option at the start of the call would be much better.


I like it - it's giving a URI to customer service reps. Might be useful to provide a way for customers to create their own macros for services that you do not support so that the list can be both corporate-curated and community-driven.



The big companies like Amazon, etc already have this or could easily add it. I think this would be more useful for the thousands of other smaller companies out there. Perhaps you can wigitize this product and offer companies to place it on their website. I can see the longtail working out better.

On the other end, as far as I know for something like Amazon, etc you need to call in order to be put in the line for them to call you back. The cool thing about your service is I don't need to call :)


This is an amazing idea. I would love to try it. Most of customer service calls I make are with Verizon who are actually quite good, but I want to try with airlines!


ekanes--Have you looked into setting these up like freeconferencecall.com where it dead-ends the calls out of a rural area so you can collect subsidies? (Not a fan of the legislation, but if it exists you can leverage it.)

Not sure how you'd do this using Twilio, but rather than routing the user straight to the number, you could route the user to the rural number and then place an outbound call from teh rural conference number and patch the two together


Interesting, thanks for the idea.


Has anyone else noticed that the California DMV actually has a service like this? If you call them and and the hold time is more than 30 minutes, they offer you the choice to hang up and be called when they are ready for you. Who'd think that would come from the fucking DMV?


Would be totally rad if it could detect when any call is off hold. I bet there's some magic DSP heuristic that could do it, maybe with some false positives e.g. "your call is important to us..."


So which is it? Do we spend 50 hours or 60 hours on hold? It looks like an inconsistency on your home page marketing copy.

This looks like a great idea. I think it has great word of mouth potential.


Thanks for the catch, fixing it now. We hope it has word of mouth potential too!


REALLY Cool! How is rackspace cloud hosting? Reliable?


Definitely a great service. Wish you guys luck!


Are you A/B testing already? I like how the heading subtitle changes on every reload


More likely, they're just giving you a random subtitle each page load for fun or as an easter egg.


Yeah, we're just having fun there.


Best thing since sliced bread.


How do you tell the difference between hold music, and a representative?


From another comment, I think they have the representative press a button to indicate availability?


Isn't it a lot harder to tell the difference between a real rep and an inline hold message ... "your call is important to us"|"please have your customer number ready". Or indeed the pre-contact message "this call is being recorded [...]"


you guys are awesome.

A few friends and I have been working on a similar project. You totally upped us on it.

Great job :)


Synchronicity. We were discussing implementing this exact product not two days ago... decided against it since we couldn't beat Fonolo for free.

Glad someone else is solving this problem :)


Thanks! Shoot us an email, we'd love to connect.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: