Show HN: "Never wait on hold again" service built with Rails and Twilio

216 points by ekanes ↗ HN
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!

87 comments

[ 2.7 ms ] story [ 1747 ms ] thread
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.
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

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.

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!
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.

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..."
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.
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.

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).
I've used this service a couple of times, and everytime I don't have to wait on hold, I smile.
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!
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.
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.
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.
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.
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".

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.

you guys are awesome.

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

Great job :)

Thanks! Shoot us an email, we'd love to connect.
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 :)

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. :)
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.

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. :)

best. comment. ever. :)

seriously, thanks!

You can tell what song is playing?!
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.

How do you tell the difference between hold music, and a representative?
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 [...]"
From another comment, I think they have the representative press a button to indicate availability?
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. :)

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! :)

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.
(comment deleted)
Never noticed that. Strange that you can edit almost everything else.
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.

This definitely sounds like a cool idea -- I'm adding it to my "have to do this sometime" list right now. :)
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 :)

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.
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!
(comment deleted)