Setting up a virtual pbx with Twilio, OpenVBX and PHP Fog

We’ve been reading that adding a phone number increases conversions.
When people sign up and pay us, we give them our cell phone numbers. But,
we wanted to have a way for people to get in touch with us pre-sales for
us to answer any questions.

If you’re looking for the easiest option, you can exit here and go to Grasshopper.

We like experimenting with software (a lot). So we built our own Virtual
PBX. It was insanely easy thanks to a few great tools:

Here’s how you can do it too:

Create a shared cloud app on PHP Fog

This is the free tier. It’s just two of us, and it seems to be working
great after a day. Your mileage may vary. They have a slick interface
for setting up new apps.

PHP Fog admin

You can clone the repo that gets created and drop OpenVBX in there.

Download OpenVBX

Check it out on github, or download from the site.

One thing we needed to do is remove the config.php from OpenVBX/config/.gitignore. Because the deploy process for phpfog uses git, you can’t ignore the config file.

Copy the OpenVBX files into the directory containing your cloned PHPFog
app repo.

a simple git push should deploy the app.

Set up your Twilio account

You’ll need a Twilio account and the Account SID and Auth Token to get
set up with OpenVBX.

You may also want to get your 800 number at this point. It’s only $2 a month.

800 number on twilio

Connect everything together

Follow the instructions on OpenVBX and put in your database info from
PHP Fog, and
your Twilio info.

Then, the cool stuff happens.

You can set up a flow for what should happen when people call your number.

Here’s ours:

Inbound call flow

We’re looking forward to hacking around and seeing what magic we can
make our phone system do – including using to trigger phone calls and text

Discuss on Hacker News

4 ways we learned we are building the right thing

After 40+ conversations with people, we know we’re building something of value. Here are some tactics we used to start customer development conversations:

Start conversations on twitter

I set monitoring for people tweeting “user retention”. I saw Rick Perreault, CEO of Unbounce (check them out) tweet “I’d pay for that!” and asked him if we could speak about what he wanted to pay for.

Respond to emails

Whenever I see something in my inbox that looks like a triggered email, I reach out to the company that sent it. The first time I did this this was with an email I got from Dropbox.

I ended up having a great email conversation with Naveen at Dropbox and learned more about how Dropbox is sending retention emails.

Reach out to bloggers

There are a couple examples of this I can cite:

  1. Paul Stamatiou blogged about user retention as a service in December. We reached out to him and had a great chat with him about how he set up emails for Picplum.
  2. I recently saw a post about Automated Emails from Allan at Lesseverything (makers of Lessaccounting). I reached out to Allan to ask how they set up automated emails and mentioned that we were working on a product. He responded with a something like “We would love to do X and also do Y”. X and Y were on the roadmap. We just got more validation that those features are important.

Tell everyone you know what you’re working on.

The best example so far is of a company who had posted on a forum asking if anyone knew of a product that automated marketing emails. The features they described where exactly what we had planned to build. A friend forwarded on the request saying: “This reminded me of what you’re up to”.

What we now know

We’ve spoken with ~ 40 people who have helped us establish:

  • There’s a need for our product
  • We know what’s critical to build first
  • We now have people who want to pay us for it.

It’s a great feeling to know you’re building the right thing.

How to pretend you’re always working with email

I like to write and respond to emails at 1:00 am.

However, you don’t want to receive an email from me at 1:00 am. If you do receive an email from me, there’s a higher chance you’ll miss it. But for me, writing an email at 1:00 am makes great use of my time. I batch all of my email writing together to leave the day to focus on making.

One of the things I’ve realized is that the time someone receives an email affects whether or not they respond. So, how do you resolve the difference between personal efficiency and timing?

My solution: Separate the writing of the email and the sending of the email. I’ve been using Boomerang for Gmail to schedule sending my email. When I write an email, I hit “Send Later” and I usually click “Tomorrow Morning”.

Boomerang Send Later

Now, I can write my emails at 1:00 am and recipients receive them the next morning when they arrive at the office. I use this primarily for meeting or phone call follow ups. I try to write the follow up when it’s fresh in my mind, but send it when enough time has passed that our conversation isn’t fresh in their mind.

Some clever ways to use email scheduling:

  • Send a follow up email to a customer.
  • Send an email to your boss at 3 am to make it seem like you’re working late.
  • Delay time-sensitive information to be sent to multiple people at the same time

Churn Rate Reduction with Retention Emails

Most efforts at user retention are post-cancellation. What if you could know someone was going to cancel before they did?

For subscription services, it’s pretty easy to identify who is about to cancel. Look at their usage data.

Let’s look at a simple example:

A user signed up 2 months ago and is paying for your site monthly. They are going to cancel at the end of the month.

How do you know?

Here is their usage pattern:

Churn Usage patterns

As you can see, they’ve used the site 4 times in the past 6 weeks. What’s most important is that they’re engagement is dropping. They have used the site 0 times in the past 6 weeks. If that’s far off your normal user engagement (and it should be), you want to be proactive.

What can you do to stop churn?

If the user doesn’t cancel before they receive their next bill, they probably will after they do. Here’s a great opportunity to identify this user and engage them with a re-marketing email establishing the value of your product.

Firstly, you want to be able to see these at-risk customers in aggregate. Once you’ve grouped all of your at-risk customers, you can start measuring if your customer retention efforts work.

Once you segment users then create triggered emails to communicate why they should keep paying you. At the very least, it’s an opportunity to start a dialogue about how you can improve your product. Users who feel a connection to you are less likely to cancel. Try different techniques to see what works. And as with all your marketing efforts, measure conversions to see how successful you are at re-engaging customers.

If you measure your efforts, you’ll know what works and what doesn’t. Churn is an issue for every company, and with the right tools in place you’ll beat it.

User Retention as a Service

Here’s a trick question for you: “What’s the cheapest way to get a new user?”

If right now you’re thinking about the price differentials between Facebook Ads and Google Ads, you’re doing it wrong.

The cheapest way to get a new user is to fix that giant gaping hole in your bathtub that leaks users after they sign up and before they become valuable.

Remember: Your job doesn’t end when someone gives you their email address

User acquisition is easier than user retention

Facebook and Google have built fantastic tools to help you understand how well your ads are driving clicks and even conversions to a sale. But most companies are about relationships, not transactions. And ad platforms just feel transactional and even a little sleazy.

But, people use them because they are easy to set up, easy to understand and easy to show results with. They just cost you.

Traditional strategies for retention

In the early days of a company, it’s common for the CEO to email every new person who signs up at one time or another. They check to see if they need help and if they got stuck. The CEO might reach out if someone created an account but hasn’t done anything. As companies grow, this behavior stops.

A good rule of thumb is to do things that are not scalable first – like reaching out personally. But then what? It’s all too common that these highly personalized interactions stop as a company grows.

Automatic emails to the rescue

Automatic emails can let you scale the personal touch of those early emails to a great scale. Done right, they feel unique, personalized and not like a marketing email.

Customer retention email examples:

  • The user got stuck setting up the product.
  • The user hasn’t been back an a while.
  • The user viewed the upgrade page, but didn’t upgrade
  • A few more days left in the trial
  • User hasn’t uploaded a photo in 1 month.

Want more? Here are some great user retention email examples from real companies

How well do customer retention emails work?

Here are some stats from email marketing reports:

  • Bank of America report that event-based trigger emails are 250% more effective than broadcast promotional emails
  • VIE at home get £250 in revenue for every £1 invested on abandoned shopping basket emails
  • 75% of registrations for Roku’s referral program are driven by triggered emails to new customers
  • People who purchase after getting cart abandonment emails spend 55% more than those who buy straightaway
  • “Happy Birthday” emails from Epson produce 840% more revenue per email than the overall email program
  • Gaylord Brothers convert half of their cart abandoners using multiple message remarketing emails
  • Trigger emails sent after relevant on-site searches got 200% higher open rates and 50% higher CTR than’s standard newsletter
  • One study found abandoned cart mails getting 20 times the transaction rates and revenue of standard email campaigns
  • Tafford Uniforms earn 20% higher revenue per email from post-purchase survey emails than through standard broadcast messages
  • S&S Worldwide drive 40% of email revenue through trigger/transactional emails that account for just 4% of email volume

Create automatic emails

The first step with creating automatic emails to retain customers is to figure out where the sticky points are. One great thing to do is to map out your signup / key flows in your product and identify how many people are stuck in those different parts of your product.

Once you have your users in clearly defined groups, it’s a little easier to think about how to target an email to that group when an issue occurs. For example: A “paid user” (group) “hasn’t been back to the site in 3 weeks” (trigger). I’d consider this user an “At risk user”. They are paying you but not using your product. They’ll probably cancel unless you establish the value of your product with them.

Your product is full of opportunities for highly targeted messaging to engage your users more.

How to set up automatic emails

I’m not going to lie to you. This is a hard problem to solve. Most companies spend months building tools for lifecycle emails if they do anything at all. But what happens as your product evolves. You have to go back in and spend more months to update all the lifecycle emails.

The ideal situation is to have a tool thats easy for a marketing / community manager to define business rules and update the email copy. They might want to test new emails and turn off poorly performing ones. They may want to tweak copy and test one version against another. You could build all this yourself. Or you could build just a few emails. Or you can use a third party.

What is customer retention?

Customer retention is a key to success for just about any business, and the best organizations are constantly looking for ways to keep their customers coming back.
Robert Scoble

The definition

Customer retention is anything a business does to get people to continue paying them.

A close relative of customer retention is user retention. Websites often focus on user retention. The distinction is that for many websites, their users don’t pay them. Therefore they’re not customers.

Two types

There are two types of businesses that try to retain customers. Subscriptions businesses and transactional businesses.

#Subscription businesses (easier)

Any business that requires you to stop your relationship to prevent being charged.

  • Your bank
  • Netflix
  • internet provider
  • Cell phone

#Transactional businesses (harder)

A transactional business charges you only when you initiate it.

  • Local coffee shop
  • Retailers (on or offline)
  • Restaurant

As you can imagine, it’s easier for subscription businesses to keep a customer paying.

How not to do it

When I think of traditional attempts at customer retention, I think of this video of a user trying to cancel AOL that made national news.

Let’s face it. If it comes to this, you’re too late to expect any customer loyaly. Customer retention starts at the time your company first interacts with you and continues for the entire lifetime of the customer.

Try fixing your leaky bathtub

Next time you’re trying to increase profits, consider improving the customer experience rather than boosting sales. You’ll be able to create customers with higher lifetime value (somewhere between 1.7 – 3.4 times the value according to Wikipedia). Imagine a leaking bathtub filled with your customers. You want the bathtub to be full. If you’re leaking customers, it takes more work to keep it full. Why not fix the leak?

User retention emails – 3 examples that keep customers coming

At, we think of user retention emails as the emails that get automatically triggered when a user doesn’t do something. For example, sending an email encouraging the user to upgrade if they haven’t upgraded their account. Or an email with a reminder a day later to complete check out when a users adds an item to their cart but doesn’t check out.

Paul Stamatiou’s excellent article goes in to detail about lifecycle marketing and user retention as a service. In it, he had a hard time coming up with examples of user retention done well.

Here are a few examples I’ve seen in the wild.


I got the following retention email from dropbox after I viewed but didn’t upgrade to Dropbox for Teams.

Dropbox reaches out if you look at the dropbox for teams page

I love‘s hosted chat. When I didn’t update my subscription, they have a couple of notices to encourage me to do so.

Grove encourages updating your subscription


Ready for zero requires users to connect to their bank accounts. This is a pretty big hurdle to overcome for most users. Either you don’t have the account info or you’re reluctant to hand it over.

Ready for zero recognized I didn't finish signing up

We believe that companies with automatic retention emails convert better. That’s why we’re making automatic retention emails a lot easier to create and manage.

Interested to see lots of other email examples? Check out:

Our mailing list is chock full of tactical lifecycle marketing how-tos, interviews with trending internet businesses, and product updates.