You probably know this: urgency and scarcity both
All these entrepreneurs opening their online course for a limited time only, all those « limited time discounts » you can find all over the web... They are all there to add urgency to their offers and make you act NOW. Your time is limited. Go. Get. The. Offer. Or it disappears forever.
Anyway, amongst these limited time discounts you'll find two types:
- the type where urgency is real: most often it’s entrepreneurs with a decent mailing list who can actually employ this technique to send to their existing audience and leverage that urgency to make sales
- the type where it’s complete bullshit and there’s no urgency whatsoever, if you come back months after you can still find the same landing page with the same « expires tomorrow » message blinking restlessly
This Post Will Disappear In...
Fake countdown, fake scarcity...
Today, we’re going to see how to create real urgency by leaving 5 days to your subscriber to take action and buy your product while building your audience.
Let’s get started.
Origin of the story
Some of my clients come to me with a product but no audience.
I’ve done it too. Guilty.
Ideally you have an audience first. You understand them and know what they really want so you can sell it to them.
But if you have a great product — and a fit with your market / audience — it’s no big deal: you can start acquiring
So how do you put urgency in your mailing sequence? How do you manage to say to a specific customer « Hey you’ve got 5 days to take action on this or you won’t get the discount again » while using relative time? Meaning 5 days from the day he receives the email, not a specific day on your calendar...
I wanted to be able to leverage scarcity and urgency while building a list from scratch.
So with this problem in mind, I took a day off to figure out the best approach.
What You'll Need
SPECIAL NOTE ABOUT ZAPIER
I was close to getting this whole thing working in a few clicks using Zapier…
For those who don’t know Zapier, it’s an amazing tool that allows you to connect various apps together. You use one app as a trigger — something happens on this app will trigger the « Zap » — and one app as the action to do once the zap is triggered — something will happen in this app.
For instance, I track every sale made on WooCommerce by a customer by adding an ActiveCampaign Tag — the tag name being the name of the product — to the customer. Handy to send them updates or cross-sells.
Anyway, this special note is just for the guys at Zapier on what they could do to make this tutorial irrelevant:
- use WooCommerce REST APIs to build WooCommerce as an action app: right now, it’s just a trigger app so WooCommerce can send data to other apps but not the other way around
- let us use their date and time modifiers even in fields that are not date fields (you’ll see why it’s important later on). Basically being able to use this Zapier tag in JSON fields would help ;)
The first option being the most badass of course ;)
Still a great app, still love you guys but this would have made my life even easier.
If you have a Web Developer or a Tech savvy guy in your contacts, just send him the link to this article, you’re set.
If you want to do this yourself, you’ll need:
- FTP access to your web server
- ActiveCampaign or an email marketing platform that allows you to post webhooks
- WooCommerce with the REST API enabled
I strongly recommend ActiveCampaign on this one, it’s really cheap to get started and there are a lot of automation features that other software lack (adding tags for instance). Way cheaper than InfusionSoft and I’ve heard InfusionSoft is pretty tough to handle at first... Not the case for ActiveCampaign.
Anyway, my code is written to work with ActiveCampaign but as long as you can post web hooks with your email automation software, you’re good to go — you will probably have to tweak the first part of my script to extract the subscriber data though.
Step by step
guide on creating real urgency on autopilot
Here’s what we’re going to do:
- Each time an email subscriber enters a specific step of the sales funnel — you chose the trigger, in this particular project it’s email #3 of the sales email sequence — start the following process
- Create a user specific coupon — using the subscriber’s email — that expires in X days (your urgency delay) on your WooCommerce platform
- Email the subscriber about the limited time offer
First, let’s create a WooCommerce API access (and make sure everything is activated).
- Log into your WordPress dashboard
- Go to WooCommerce > Settings > API tab
- Make sure "Enable REST API" is checked
- Click on the Key / Apps sub menu
- Click on Add Key
- Set the permission to Write
- Enter a description if you feel the need to
- Click on Generate API Key
- Save the keys, you'll need them
Save that stuff...
Then, let’s create an automation workflow in ActiveCampaign.
- Log into your ActiveCampaign Account
- Go into the Automations tab and setup your workflow
My ActiveCampaign Workflow
Right before the last email (Time Sensitive Offer) we need to create a coupon that will expire after the duration of the discount.
This is what happens on the "Magic Trick" line. I use a webhook.
- Add an action in your automation workflow by clicking on the cicled + d
- Click on the Conditions & Workflow vertical tab
- Select Webhook and enter http://yoursite.com/coupon-gen/coupon-generator.php?key=temporary
Create a webhook in ActiveCampaign
We are basically saying to Active Campaign to post the subscriber's data to a PHP script on your server.
Said PHP script has the following mission:
- get the subscriber's email
- create a user specific discount coupon (with the value you want)
- that expires in the desired number of days
First, you need to download the WooCommerce API client here. Then I suggest you clean up the directory of all useless things (delete the examples folder, …) and add the following piece of code in a new file I call coupon-generator.php
And here it is:
To make it work for you you need to:
- You need to replace the key variable value by what you've put in your
webhook( "temporary" if you've followed the steps), you can change it to something more secure and change the webhookin Active Campaign
- You need to replace the WooCommerce keys by those you've generated earlier following the step by step process
- You might need to change the coupons parameters and the expiry delay for your limited time offer (set to 5 days in the script above)
A NOTE ABOUT SECURITY
It’s worth mentioning a couple of things about security:
- stakes are not that high because even if someone manage to generate coupons, well he’s still going to buy your product at a discounted rate you were prepared to offer
- I’ve added a « key » variable that you should change. You’ll need to change the URL in ActiveCampaign accordingly http://yourwebsite.com/coupon-gen/coupon-generator.php?key=YOURPASSKEYHERE
- you can also change the name of the folder and the PHP file to obfuscate everything. Make just sure you propagate those changes to the web hook url in ActiveCampaign too
I’m sure we could figure out something a bit more complex, but this should do the trick (as always if you have a suggestion for a smarter solution, use the comments below).
You can have fun with the coupon parameters — the WooCommerce API documentation is available here — to customize then however you want.
You’ll note that I use the subscriber’s email as a coupon code and usage limitation. The restriction is for obvious security reasons — to limit the use of the discount — and the coupon code is just because I don’t want duplicate codes and needed an easy way to explain how to get the discount in the emails… « Just use your email in the coupon field » is easy enough for me ;)
If you generate a custom coupon code, you need a way to put it back in the email you’re sending for the promotion. I just thought the simpler the better.
So now, what happens?
Each time your subscriber reach that step before getting an email about the time sensitive offer, ActiveCampaign will send his or her info to the PHP script which will in turn create a WooCommerce coupon. The code of the coupon will be the subscriber’s email, it will expire in the number of days you’ve set and will be limited to his email address.
A smart thing to do will be to remember your subscriber the day before the discount ends in case they forgot — and you can use ActiveCampaign’s Tags to make sure they didn’t purchase before spamming them again.
As always, feel free to use the comments if you have questions, happy to help.
Want this on your WooCommerce?
I’m kind of scouting the interest for a specific plugin to do that for you without having to do some custom PHP or get out of WordPress, so let me know in the comments if this is something you’d like to see available online.
Update: since writing this post, other solutions have popped up online. If I were to work something out right now, I would check out Thrive Ultimatum which should handle everything you need — and more, friends have had amazing results with it.