Building a solid coupon infrastructure

Robert Glazer from Acceleration Partners wrote a stellar article on how to modernize your coupon strategy. He underlines the significance of coupons as part of a digital marketing strategy and shares many invaluable insights about coupon best practices. It’s a must-read for any company that wants to launch coupon campaigns, especially through the network of coupon sites.

In this article, we’d like to decompose his advice and examine how to implement each tip from an IT perspective. Disclaimer: we’re going to use our coupon API in the proposed solutions.

Controlling coupon partners

Robert suggests being cautious when it comes to coupon partners. His advice is to regularly check if they are sticking to the agreed promotion guidelines, e.g. is the deal being displayed in the right place and at the right time. This type of monitoring is probably hard to replace with software, at least with a limited budget. But with Voucherify, you can automate at least some aspects.

(If you’re not familiar with Voucherify yet, I’d suggest reading creating advance coupon campaigns part 1 to properly grasp the idea of how it cleverly automates coupon promotions.)

Voucherify gives you the ability to control your partners in a more detailed and data-driven way.

Firstly, you can create separate coupon campaigns for each partner/marketing channel. In this way, if something good or bad happens to one of the promotions, you’ll be able to figure out the attribution right away. If you need more deals for the same partner, you can create a campaign for each deal and still group them by partner with categories. What you get is a greater level of granularity while still having a clear-cut view on individual partners.

And because each campaign can have different parameters, including discount type, expiration date, or number of possible redemptions, you can launch completely isolated experiments with each of your vendors.

Mapping different marketing channels with separate campaigns is an excellent first step towards building your monitoring infrastructure. Once you know which coupon campaign belongs to which partner/deal, you can closely observe the number of redemptions and ultimately calculate ROI.

Campaign monitoring features also let you disable any coupon with a single click when something goes wrong, e.g. your coupons are misused.

Finally, you can, in fact, make manual checking easier by using the description field; you can store any contract information which your partner has to fulfil, plus, you can paste a link to a deal page so you can check it super quickly.

It’s also worth highlighting that Voucherify can easily work with multiple vendors when it comes to separate redemption gateways. Imagine you’d like to have 3 different checkout pages handled by different vendors. You want to isolate them in a way that vendor A cannot redeem or list coupons that belong to vendor B and vice versa. With Projects and separate API keys you get it all out of the box.

Right oversight in one place

We’ve designed Voucherify in such a way that it shows which coupon campaigns work and which don’t and this is supported by hard numbers. To give you oversight of all our couponing tactics we have equipped your marketing team with:

  • Dashboard - operating on a selected timeframe and showing you several useful charts including total number of redemptions or a list of the most recent redemptions with their status. A nice quick way to get a bird’s eye overview of your deals.
  • Coupon browser -  a powerful viewer to inspect each and every coupon campaign’s performance. Thanks to extensive filtering capabilities you can list and sort coupons by:
    • Discount type,
    • Category,
    • Activity status,
    • Start date,
    • Number of redemptions.

This view also gives you the ability to manage the lifecycle of the coupon, e.g. you can see the details of every coupon code, edit its details, or even disable and delete it at any point in time.

You can learn more about the effectiveness of monitoring coupon campaigns in our articles about Redemptions tracking and calculating coupon ROI and Effortless bulk unique coupon campaigns. 

Coupon compliance monitoring

So, how do you avoid the kinds of non-permissible behavior Robert warns of? Once again, we cannot exclude manual checking completely, but here are a few mechanisms that can help you control coupon compliance with fewer clicks:

  • Failed redemptions monitoring - this section not only groups the failed redemptions, but it also shows the reason for the failure. Imagine that you’re seeing a ‘failed because the coupon has expired’ message time after time. In this case, we may suspect that one of your partners hasn’t updated your deal. What’s more, you can prevent such a situation by allowing your partner to list the up-to-date collection of coupons you want to share with them. This is easily achievable with our API.
  • Redemption limit - you can cap the redemption number when creating a campaign. In this way, you ensure that the promotion won’t kill your stock. You can also use it to increase user engagement by running promotions similar to: “$20 off for the first 200 shoppers with the code ACME2017”.
  • Real-time deactivation - Finally, in cases of fraud, you can disable a particular coupon (or the whole campaign of unique codes), so the customers won’t be able to get any discount when trying to redeem it.

And the good thing is, due to having separate campaigns, you can apply different levels of precaution for different channels.

Investing in relationships

In the next paragraph, Robert recommends creating frequent unique promotions for specific coupon sites. Coupon deal sites highly appreciate exclusive deals and they often reward such promotions with better ad placement. As you may have figured out, offering exclusive deals is available out of the box with Voucherify; it can be achieved in 2 ways:

  • Offering fixed code, public coupons with a prefix indicating a partner e.g. groupon-ACMEPROMO
  • Creating bulk unique coupons that are then pushed out to customers by your partner. This is a more secure option but it might also be trickier to distribute.

Reward scheme

The next question is how to build your reward scheme based on coupons and your marketing goals. Robert proposes a structure consisting of 3 levels: new customer acquisition, awareness, and conversion. Let’s find out how we can model this with Voucherify:

  • Conversion - this is a no-brainer. Just count the number of redemptions.
  • New customer acquisition - this one would require more time if it weren’t for Voucherify’s customer segments. With the built-in ‘new customer’ segment, you can monitor the incoming traffic. You can also build other segments with a plethora of filters.
  • Awareness - in one paragraph, Roberts suggests building a separate landing page for each deal. Along similar lines, we pass coupon codes in the URL so that you can match the pageviews count with a corresponding coupon campaign in Google Analytics or other trackers.

Having all these metrics in place, you can easily structure your commission scheme. Bear in mind that this is just one of many possible ways of performance monitoring. You can monitor more parameters (e.g. cart size) that influence the way you reward your partners. And the API-first approach lets you model even the most demanding scenarios.

Tracking results and incrementality

We hope we have convinced you that running modern coupon campaigns in the way Robert describes can be much easier with Voucherify. Building a solid coupon infrastructure that allows for multiple experiments and detailed ROI monitoring doesn’t require all those developer months anymore.

Wait, there’s more! In the second part of the article, Roberts shows you how to take your promotion tactics to the next level. Voucherify is a perfect fit too. Want to learn how? Watch out for the next post.

Cart size discount offers

Now that we’ve learned how to launch offers for specific customer segments and specific products, we can discover how to run cart-level discounts. Why should we do this? Because it has proved to be an effective upselling incentive, encouraging shoppers to spend more and ultimately to increase your average order size.

Let’s start with what is a cart-level discount in Voucherify? It’s an offer based on the total value of a shopping cart. In particular, Voucherify lets you define a discount based on 2 cart criteria:

  • A total dollar value
  • A total product quantity

Here’s how you can use them.

Dynamic price widget

Before we jump into the discount creator, I’d like to draw your attention to the visual aspect of in cart promotions. Upselling works best if customers immediately see how much they can save. Thus, it’s important to take into account the dynamic price recalculation when designing the coupon redemption process. Voucherify makes it easier by providing a JavaScript widget which visualizes the savings!

What is it and how does it help me? Once integrated into your web checkout page, the widget connects to Voucherify to validate the coupon code provided by a shopper. Not only does it validate the coupon, it also calculates the discounted prices right away.

The important thing is that the coupon validation isn’t equal to the coupon redemption. The customer might validate the code and thus see the new price a number of times before they decide to purchase. The redemption is made when they actually buy something.

You can play around with the voucherify.js widget showcase here.

Other benefits of the widget:

  • the layout can be completely redesigned,
  • the validation workflow is super flexible - e.g. you can refresh the price once a customer adds items to an order; no additional button pressing is necessary,
  • works with every discount type supported by Voucherify,
  • It takes care of security by using a separate authentication channel and preventing brute-force attacks,
  • It’s free and open source.

Dollar value promotions

Now let’s get back to cart size deals. To create a dollar value promotion, you need to run the campaign wizard. As you might know from the previous articles, all the limiting parameters can be tuned in the 4th step. In this case, you should tick the Order section and scroll down to the ‘total amount’ field. When you open the drop-down list, you’ll see you can define an amount-based offer with 4 operators:

  • Exactly
  • More than
  • Less than
  • In the range of

Imagine the campaign you’re seeing on the picture above is launched and the coupons have been pushed out to customers. When a customer provides a coupon code on the checkout page, Voucherify’s rule engine checks if the order size (dollar amount) is more than 200. If it’s not true, the coupon won’t be redeemed and Voucherify will respond with a reason why (which should then be translated to your customers).

Product quantity promotions

The quantity campaign works in a similar way. Voucherify won’t allow coupon code redemption unless there is a given number of items in the order. One thing worth mentioning here, though is it rarely makes sense to base the discount on the number of order items in general. You’d rather have a value-based offer that targets a particular product. This is possible with Voucherify by combining multiple criteria; you’ve probably noticed this already when we showed you product specific campaigns. See the example below:

New rules = new possibilities

With cart-level rules, you can tap into new effective incentives that might improve your up- and cross-selling tactics, for example:

  • Buy one get one free
  • Buy X get Y
  • Product bundles
  • Spend over X and get free shipping
  • And more.

If you’re not sure how to model your discount campaign, drop us a line using live chat and we’ll schedule a free demo to show you the many possibilities.

See other articles in the creating advanced coupon campaigns series.

3 easy to implement tips for better blog analytics

Recently, we decided to approach our blog analytics in a more data-driven manner. We’ve sure been using Google Analytics to measure page views for a long time, and yet we suspected there’s still room for improvement. After digging for a while on the web we soon realized that with a little effort, we can step up a gear. Here are the 3 straightforward things that streamlined our blog analytics. 

Enable SPAM filters

Nowadays, referral spam is becoming more and more of a serious problem, doing needless damage to your statistics. In our case, it accounted for 20% of the traffic and that’s a magnitude that is hard to ignore. Insights that you take from such corrupted data will probably lead to counterproductive blog tactics. 

How to find out if you’re affected? If you see things like ‘’ or more cleverly disguised versions like ‘Lifehacк’ (notice ‘к’ instead of ‘k’) in the referral section, you have a problem. 

To fight against this, you can add filters that cut the unwanted traffic out. This is not a perfect solution, though. Spammers are coming up with new spam vectors, so you should update your filter list all the time.

Fortunately, the guys from Stijlbreuk have released a free tool -, which can help you out; within just a couple of minutes, it automatically adds over 400 spam filters. This is done only for the view you select, so you can be sure they don’t cut out more than is necessary.

The automation comes at a small price, though - you need to authorize the application to access your GA account. Here’s how it works:

(Hint: you should create a new view for any filters so that you always have an unfiltered base to compare to.)


Once applied, you should stop seeing the majority of spammers. But we’re not quite there yet: you should also filter language spam out, see this video tutorial: 


And… the ghost referral spam too:

Filter yours and your team’s visits out

This might be a bit of a problem, especially when you’re starting off and your blog doesn’t have that many visitors. To do so, you can again leverage the power of filters. You can start with an IP filter but this can sometimes not be enough for some reason. Read Jon’s article to learn more ways about how to cope with the internal traffic. 

Figure out what works

In fact, defining the key success metrics for your blog is your primary task and should be one of the first steps when creating a content strategy. Unfortunately, that’s a tricky one as there’s no silver bullet answer here. It always depends on your business goals and the development stage of your company. However, there’s a couple of supporting metrics that should be helpful for any type of blog.

  • Top posts (pageviews) and top referrers / UTMs - to get a general overview of what kind of posts to spend time on and to learn what promotion channels work best for you.  
  • Conversions - which posts generated the most signups for your product (tracking pixel necessary, here’s the tutorial)
  • Newsletter conversions - which posts generated the most signups for your newsletter (same as above with minor changes)
  • Landing page conversions - how many readers went from a post to a particular landing page. This one can be measured by setting a custom goal in the admin panel. In the picture below, we create a goal for the post to home page flow. When applied, you can see the number of goal completions in the last column of the Behavior -> Site Content -> Landing Pages view.
  • Finding high traffic - high bounce rate and high traffic - low conversion posts - This should allow you to turn on necessary remedial actions. Here’s a nice matrix from Hiten that suggests what to improve depending on the data you’re observing.
  • Finding the posts with the highest returning visitors ratio - this metric lets you understand which topics yield the best engagement and, perhaps, which features you should iterate on.

Hint: you can create an additional view that includes only blog-related traffic. To do so: 

  1. Create a new view
  2. Configure a filter similarly to the one you can see below
  3. Apply the filter to the blog view from the 1st point 

What’s your tip?

That’s it. We hope you find these basic tweaks helpful. If you know any similar low-hanging fruit for helping to get better insights from blog data, don’t hesitate to share it in the comments below.

Offline coupon tracking without the sweat

Time after time we’ve been asked to suggest an offline coupon tracking solution. Until now, the usual response was to point to our Android, iOS, and Xamarin SDKs and instruct customers on how to wire them with our coupon API. Today, we’re happy to announce the Voucherify mobile app. Actually, two apps! For both platforms: Android and iOS - and both come entirely for free!

By adding the app to your e-commerce stack, you can enable coupon redemption at offline points of sale and analyze promo activity on the go. Read on to learn how you can leverage offline coupons for your business without spending tons of money on IT infrastructure.


The primary goal of the app is to allow you to validate and track coupons offline. The good thing is that you can also use 2 coupon formats:

  • QR codes
  • Character-only codes

The second, no less important, part of the app gives you the ability to monitor successful and failed redemptions, so you can get an instant overview of your promotion activity everywhere.

Now, let’s take a look at how it works under the hood.

How it works

Here’s an overview of a typical offline coupon redemption process:

  1. A customer visits your store and shows his or her code. A shop assistant opens the app (connected to the Internet) and either scans or types the coupon code. The app requests the promo code verification from the Voucherify server.
  2. The app receives information as to whether the code is valid and what kind of discount it carries.
  3. The shop assistant applies the discount to an order in your POS system.

The information about the redemption is stored in your Voucherify account, so you can access it with the dashboard:

There are a couple of practical use cases for this setup, I will get back to them soon, but for now let’s make sure you understand what elements are necessary to configure an offline redemption point.

It all starts with signing up for a Voucherify account, once that’s done you should:

  • Enable “client-side redemption” in the administrator panel - it’s disabled by default because we put your security first.
  • Download the Android or iOS app on the smartphones used in-store (they’re totally free, no in-app purchases at all).
  • Open the app and log in to your account.
  • Because Voucherify allows for multiple coupon projects, you need to select the one you want to handle coupons from (defaults to “Main Project”).
  • Create a coupon campaign in Voucherify (QR code option possible).
  • Start redeeming the coupons through either the ‘Scan QR code’ or ‘Redeem voucher’ option.

That’s it when it comes to theory. Let’s see how you can use it in practice.

Use cases

We’d like to share the list of mobile coupon use cases we encountered when talking to our customers.

You can note that these scenarios cover seemingly completely different scenarios. This comes from the fact that Voucherify coupon API is very flexible and therefore used successfully by both fast-growing startups and massive enterprises. The common denominator though is that it enables any company to precisely adapt coupon, voucher, promo code or gift card infrastructure to their business requirements. And then to scale it as the project grows.

  • Marketing channel comparison - a marketplace’s app promotes daily special deals from restaurants in a particular neighborhood. To let restaurant managers know how many customers have been attracted by the app - and ultimately prove its ROI - it uses unique discount codes that are redeemed at the checkout.
  • Gift card redemption -  a small business sells gift cards through our Shopify integration. Then, at the checkouts, shops can use the mobile app to charge customers if they have a positive balance.
  • Employee expense monitoring - one of the SV rising stars wants to control outside restaurant expenses on meals for employees; all spending is compensated by the company. The process comes down to 3 stages:
  1. Voucher definition - every employee gets a unique voucher code which is limited to let’s say 3 dinners and the total amount of an order to $60.
  2. Offline redemption - restaurants install the Voucherify mobile app and validate employees’ codes.
  3. Monitoring - all expenses are stored in Voucherify, so a facility manager sees the number of redemptions per campaign, restaurant, and employee; and eventually settles expenses with the restaurants.


With the mobile app, tapping into offline coupon strategies just got easier. No heavy infrastructure is needed. Sign up for Voucherify, download the app, and then configure it to work with your account - that’s it!

If you’re interested in learning how Voucherify could help out with your promotional strategy, let us know through the live chat you can see in the bottom right corner.

Developers: if you want to know the ins and outs of the app, drop us a line and we’ll share the source code.

An intro to a cost effective mobile A/B testing infrastructure

User conversion rate has always been one of the key aspects for any e-commerce business. It is, therefore, no surprise that the growing mobile app market has made companies look for new ways of improving conversion in the new channels. The pillar of conversion rate optimization is a profound A/B testing infrastructure; while there are well-described go-to solutions for the web, the mobile industry hasn’t nominated a leader yet. In this article, we’ll focus on one of the most cost-effective setups - content experiments with Google Tag Manager (GTM).


Utilizing GTM for mobile content experiments hadn’t been a popular idea for our team, that is until Amazon announced they would discontinue the support for their A/B testing service, which we used. We had to find a substitute so we decided to look through the tools we had already been using. This led us to Google Tag Manager.

After reading the Content Experiments feature description, it turned out that this can be a viable option. Why? Because:

  • It’s free
  • It’s a tool that we already know,
  • And, we could actually let our marketers optimize in-app marketing without needing developer help.

We decided to give it a go and we’ve stuck with it since. Now, we’d like to showcase this tool so that you can figure out if can be a fit for your mobile A/B testing efforts too.

What is GTM?

A word of explanation if you aren’t familiar with the Tag Manager. Its primary use case is to simplify tracking management on web and mobile apps. It gives you the ability to add and update your own tags for conversion tracking, site analytics or remarketing without the need to wait for website code updates. But, on top of that, it offers the Experiments API. Here’s how it works.

The experiment

Let’s come up with a story to better illustrate the problem GTM solves. Let’s assume that we want to give Rachel (the marketer) the ability to set up multi-variate tests in your mobile app.

She wants to test a simple scenario - to check how 2 different headlines influence user engagement. She assumes that the current copy would yield worse results than the new ideas she has at the back of her mind and she wants to measure engagement with the session duration.

So how can we approach this case with GTM? it would look something like this:

  1. Rachel uses GTM to come up with new experiments.
  2. The app will connect to GTM to receive the experiment parameters that will modify its appearance and behavior.
  3. The app sends the user tracking information back to GTM, which in turn pushes them to Google Analytics.


Now that we have a process overview, let’s break it down and run through every step from the bottom up.


  • The very first step is to sign up for a free GTM account (if you don’t have one). At this stage, you should consider setting up a Google Analytics tag for tracking. It takes only a few minutes with this tutorial.
  • When this is done, we need to configure GA to work with mobile content experiments. To do so, you should add a special Mobile View and then link it with GTM. Here’s how to do it according to Google:
    Click Link to Google Analytics Views and set up your external account link. You need edit access to a mobile Google Analytics property with at least one mobile view to create or update an external account link. Follow these instructions to add a mobile view to your Google Analytics property. Account and property values are prefilled for you based on your link to your Google Analytics account.


Having GTM all set up, we can get down to the experiment design. We start by defining what content parts will be varying in the app. This will tell us how to map the variations in the GTM wizard and will also allow developers to update the code respectively.

So, in Rachel’s case this is straightforward; she just has 2 versions of the headline, the original copy and the one you want to test the original against:

  • “The original call to action”
  • “The call to action example you can’t help but click”

To include these variants into GTM, go to Variables and create a new Google Analytics Content Experiment.

In the wizard, the first step is to put the original and the variation’s parameters into the editor. To do so, click on the “Original” item and type the headline parameter with the corresponding value - as in the picture below. Do the same for the first Variation. (Note that the editor supports JSON meaning you can input complex, also nested variable structures too).

The second step is to choose the Experiment Objective. As said, Rachel is going to measure the time users spend in the app. This is one of the built-in objective measures in GTM, so you can just select it from the dropdown menu. (Bear in mind she can also use the goals she’s already been tracking in Google Analytics, like signups, conversions etc.).


Now that she defined what to show to users, let’s define when to do it. GTM comes to the rescue here too, it gives an easy way of defining the frequency of variations exposure. See the picture below, it’s self-explanatory:

There’s something worth highlighting at this point though: all the statistical work is done completely by the Tag Manager. Developers don’t need to be aware of the number of variations or any other thresholds Rachel modifies in her experiment. The Tag Manager SDK will handle variants distribution itself and will report back the fact that the user has seen a particular variation.

GTM also offers an additional set of rules to control when the particular experiment should be active. E.g. Rachel may want to push out the experiment only to people using her app in a particular version. She can configure it herself within the wizard:

You should also know that GTM comes with a plethora of conditions (also custom variables) she can use to enable or disable users from the experiment. Imagine she wants to target only premium users or limit the experiment to Germany, this is all at her fingertips with the rule wizard.

Deploy and Publish

Alright, so Rachel defined her first experiment. Before she can make it live, she needs to confirm it with developers. The reason why she needs to do this is that the dev team needs to verify that they use the same variables keys in the app code. Otherwise, it simply won’t work.

Once that’s done, she can kick off the experiment. It comes down to clicking the Publish button and her variants will be underway.


Rachel can evaluate how her variations have been performing in the Google Analytics Experiment section.


As described above, during the experiment GTM takes care of selecting the users who will be exposed to variants. It will also choose the winning variation when the experiment ends. So, all in all, there’s really no need for developers to assist at any other stage of the campaign.


This is just a brief introduction to the Mobile Content Experiments with GTM. The tool offers way more than we demonstrated and we encourage you to experiment (pun intended) with it yourself. The learning curve is fairly low, plus, if you already use GTM for other tracking purposes, a solid and free A/B testing infrastructure might not be as far away as you think.

If you’re interested in how to run A/B experiments with coupon campaigns, read our “Creating advanced coupon campaigns” guide.

Product-specific coupon campaigns

Welcome back to the “creating advanced coupon campaigns series”. In this article, we’re going to show you how to launch product-specific coupon deals that can reinforce your up- and cross-selling tactics.

So far, we’ve learnt how to use Voucherify coupon API to run promotion experiments. We’ve introduced more and more variables into the setup along the way; these included different types of discounts, expiration dates, and finally personalization with unique codes and customer segments. Now, we’re going to constrain coupon deals on the basis of items the customer puts into the order.

To demonstrate how Voucherify handles products and product-based promotions, let’s take the example of a product family; let’s say you sell MacBook Air, assuming that they come in 2 versions (11 and 13 inches), you should have 2 separate Stock Keeping Units (SKU) and the structure looks as follows:

Product: MacBookAir

  • First SKU: MacBookAir11
  • Second SKU: MacBookAir13

So now let’s see how to model it in practice.

Mapping products and variants

The first step is to create the product entities in Voucherify. As usual, you can do this either through the user interface or programmatically. Let’s go for the former.

Go to the Products view and run the wizard. After typing in the name of the product in the first section, you need to introduce attributes that differentiate product variants. In our case, there’s only one - the diagonal of the screen.

In the 2nd and the last step, you just need to add the concrete variants (called SKUs in Voucherify). To do so, “edit” the MacBookAir product entity and add two sub-items.

Alright, so the product has been created! It’s got a unique identifier and so have SKUs. Now we can model a coupon campaign which uses product and SKUs as the validation rule.

Product-specific campaign

Let’s assume that we want to give a 10% coupon discount only for 13-inch MacBooks, how can we achieve this with Voucherify? The 4th step of the campaign wizard brings the answer.
We use validation rules to make the campaign active only for the variant we’re interested in. This is easy to achieve with the visual rules engine. See the picture below:

That’s it! After you submit the wizard, every time a shopper tries to use the coupon from this campaign, Voucherify checks if there's a 13-inch MacBook Air item in the cart. If so, the redemption is marked as successful, otherwise it fails and you see it in the redemptions report:

Again, this is all done with Voucherify under the hood. There’s really very little involvement required from the development team; probably once to sync your inventory with Voucherify products.


If you’re wondering whether you can combine product-specific rules with the customer segments we presented last time, I have good news - yes, it’s possible! You can mix different criteria, combining segments, products, SKUs and cart volume, all of which we’re going to showcase in the last article of the series.

Targeting customer segments with coupons

In this part of the “creating advanced coupon campaigns series”, we describe how to leverage customer segments in coupon campaign experiments.

We covered how to measure the ROI of fixed-code coupons. We also learned how to take back control of your promo offers with bulk, personal, one-off codes. Now, we’ll try to get it to the next level; we’ll limit redemptions to particular customer segments. 

Imagine giving out vouchers to new customers only or rewarding the loyal shoppers that signed up 3 years ago. How about a special deal for employees only? Geo-located offers maybe? 

Yeah, sounds cool, but talk about it to your developers and you’ll quickly learn that it requires a hell of a lot of work - unless you have a super heavy marketing automation infrastructure in place already. The more campaigns you come up with, the more implementation is needed to ensure a smooth and secure redemption process. Also, the time needed to add new scenarios won’t be linear because growing code complexity will soon make this unmaintainable.

But fear not, young Padawan, if you have Voucherify already wired in, you can handle these cases out of the box! Let us show you how to start running super precise coupon campaigns with our product.

Meet the Customer View
This view has a single responsibility; to let you create segments. The segments are built with filters and can be based on two types of attributes:

  • External - e.g. email, name, metadata - generally speaking, everything you think that might be used to build a segment 
  • Internal - e.g. loyalty points, number of coupons redeemed so far - attributes that Voucherify tracks internally

But to start the journey of segments, you have to let Voucherify know about your customers first. This can be achieved in two ways: 

  • Bulk import through CSV file - see the docs 
  • Programmatic addition through API (in this way, you can keep your customer base in sync with a CRM when there’s a new sign-up).

Having imported the customer, you can start playing around with filters. The Customers view offers a handful of options for creating groups. You can select the users based on:

  • Name
  • Email
  • Creation Date
  • Country, City, Postal code
  • Metadata property (any property you feed into Voucherify, e.g. language or currency)

Each filter gives you an exhaustive list of options (take a look at Email filter below). Plus, you can choose if all (AND) filters should be active at the same time or just any of them (OR). This setup provides a powerful way to create a precise group of customers who you want to target with the coupon. 

Your first segment
Supposing your filters are set, you can now create a segment. This is pretty easy: just reload the customers, ensure the number of customers is correct, and click the CREATE SEGMENT button.

The wizard will ask you if the segment should be static or dynamic. The difference is straightforward, by way of example, let’s assume that you created a segment with your “premium” members. In the case of the dynamic segment, if a user becomes a “standard” user, he will immediately drop out of this segment. If he returns to premium again, he’ll be visible in the segment. In contrast, the static segment remains intact despite any such changes.

Often times, you want to manually pick and group particular customers into a single segment. Voucherify supports that too; it comes down to selecting the given items in the customer table and pressing the CREATE SEGMENT button.

The filters you’ve created can be browsed using the segment dropdown:


Target your campaign
Now that you have a segment, you can use it to limit campaigns. In the following paragraph, we’ll create a simple fixed-code campaign and we’ll only allow users paying in Polish Zloty to redeem the code.

The filter will work on a custom metadata property, “currency”.

When it’s ready, go to the campaign wizard, go through the first 3 stages where you define the campaign parameters and stop at the 4th step. This is where we’ll use the segment; just select your group under the “Customer” section. 

That’s it. Submit the form, publish the code and wait for redemptions. If the customer comes from another country, the redemption will fail:

“message”: “customer does not match segment rules”,

The best thing about this approach is that you can create more segments and more targeted campaigns right away, no need to bother your developers! So, take a moment to go through the examples of segment-based campaigns which you can design with Voucherify.

Examples, examples, examples

What you can achieve with Voucherify segments:

  • New customers only - a predefined segment for customers who just signed up.
  • Creation date - target customers who signed up 30 days ago
  • Geo-location - offer deals to different countries, cities, and even zip codes
  • Employees - use email filters ( to give promos only to your colleagues
  • Metadata - use any custom variable, like in the currency example above. Take a look at this guide to see other examples.
  • These are just ideas. You can easily come up with other scenarios that you think might bring you better ROI. 

Note that you can join several conditions using the campaign wizard:



Over the course of the last few articles, we’ve built a fairly extensive setup for launching and monitoring advanced coupon campaigns. But we won’t stop there; what would say if I told you that you can limit your campaigns to specific products? Sounds interesting? Watch out for the next post.

Coding-free iterating on email content

In this guide, we demonstrate a tool for automating the creation of email campaign content. This proved to be super useful for developers and content teams who have to maintain a growing number of daily ops email templates. The setup is based on Contentful and the small, open source, Node.js application we’ve just released.

The problem

Daily ops emails are one of the topics that are easy to start with but hard to master. It all begins with one or two plain text templates, then you want to enhance them with the company logo and maybe some big buttons instead of links. The template quickly becomes a simple HTML file. Editing at the stage is still fairly easy; want to update the messaging? Just send a new copy over to your developers and they modify that particular template - smooth.

The business is doing fine. You scale the company and expand the customer service processes. It quickly turns out that the number of email notifications grows. You come up with new user acquisition tactics and some sweet deals for your loyal customers. Again, the email campaign collection gets bigger and bigger. New country launch maybe? Now your email campaigns just doubled.

So, the old content has to be constantly updated. There’s a continuous stream of copies coming from marketing, product team (A/B tests), and legal. Not to mention the inevitable typos! Especially when your developer doesn’t know a word in German :) Therefore, you quickly end up with a dozen people exchanging the content, all packed into several Excel files and screenshots, burning developers’ time along the way.   

The imperfect solution

One of the solutions is to tap into MailChimp. By using their email designer, you could let the “content people” update the email messages on their own. This can be tricky though.

Once you’ve given them the opportunity to change the content, they can change (or should we say ‘break’) the design too. Such bugs are really hard to track down, especially if your templates are huge HTML monsters.

So, ideally, you’d like to structure the email job as follows:

  • Content people can change copies only
  • Developers make sure that emails are delivered and that they look as designed

The less imperfect solution


  • Let’s introduce Contentful and the Contentful-emails library.
  • Copywriters create/edit email copies in Contentful. They do this in so called “draft mode”. They can’t modify the HTML template in any way.
  • Before they actually push the message out to production, they can preview the final version of the email. This is achieved by visiting Contentful-emails web app, which renders a copy from Contentful on top of your HTML template.
  • If accepted, the copy goes to production.
  • In case you want to update any copy, you just change the status to draft and you can experiment again, meanwhile the old version still works fine on production.
  • Let’s run through the whole process with a bit more explanation.

Go to your Contentful account and create a proper content model for all emails. It should consist of 3 fields: a name (short text), a subject (short text), and a body (long text). (Contentful is fairly easy to operate. Having said that, if you’re not familiar with it, I suggest watching this guide)


Alright, so we have a model. Now let’s create the first entity. Let’s start with a dead simple ‘Welcome’ email. Select the “Add Email” button from the Content view.

The editor enables you to create a copy. You can use the markdown standard because Contentful-emails can parse it too. Notice that you can use placeholders (sometimes also called merge tags). The list of available placeholders is totally up to you, but you need to agree this with the development team first. 

The copy draft is ready. Now let’s verify how it looks like in a final, HTML version. Run Contentful-emails and visit the “Drafts” section. Click on the template and the popup with the final email message will appear. The image below shows an example of an extremely simple template with a logo at the top. 


Note that placeholders have been filled with exemplary values. If everything looks OK, go back to Contentful and ‘Publish’ the template to make it live! You can modify it anytime by setting it back to draft mode.

The backend part
Before you can do what we just described, you must integrate Contentful-email into your system. The first step is to configure and deploy the application. It basically comes down to filling config/base.js with your Contentful API keys.

After you run it, the app does the following:

  • It connects to your Contentful account to get both Draft and Published email content.
  • It loads your HTML email template you put to front-end/views/emails.  (As the app uses a templating engine, you extend the current setup to handle multiple parent-child structures to reflect your process. E.g. invoice-related messages will have a different base HTML than drip-related).
  • It caches the templates so you can save your API calls to Contentful. The cache can be invalidated with a webhook when an entry is published.
  • It offers a fallback to JSON-based copy of all content, you can manually rebuild with this gulp task.
Cache invalidator - webhook setup 

Cache invalidator - webhook setup 

The last part is to agree on the placeholders the marketers can use in the copies. In our case, apart from the text variables or links (like [[phone-support]] or [[user-unsubscribe]]), we added the possibility of injecting HTML snippets. So, e.g. when you put __[[invoice-download]]__ the parser replaced it with a predesigned button with a proper link. In this way, the product or marketing team achieved almost unlimited flexibility in content restructuring within a given template.


To recap, we’ll just say that in one of our client's project this solution has reduced the number of redundant commits and subsequent deploys related to emails to almost 0. Now they have more time to come up with new voucher-based email campaigns!

The application is open source; if you see any room for improvements, submit a pull request!

Documenting the API with

In this post, we share some insights about the process of creating better documentation at Voucherify and the role of along the way.

A good specification is a clear number one when it comes to business-to-developer marketing. Often, it’s their first and most frequently used touchpoint when they investigate a particular tool. All the more reason for any API-first software company to get it right from the outset.

Chasing the perfect

Recently, we decided to take our docs page to the next level. We started off by looking for a role model; we asked a dozen senior coders who work with API/SaaS products on a daily basis: What’s the best spec you’ve ever seen? The winner emerged pretty quickly - Stripe. We especially liked how they keep the general knowledge base and the API reference in a clean and separate manner. We wanted to follow this pattern.

At the time, we had been using in the ‘developer hub’ plan. We soon realized that we’d have to upgrade the plan to achieve the new design, but that would be a pity, because it was way more expensive. So, after some digging, we found this button:

We gave it a try and bam! We ended up with a new, almost-Stripe-like layout. One site for tutorial and examples and a one-pager perfectly suitable for coupon API reference. Plus, a nice panel to navigate between them.

The migration was fairly easy, however, whereas the endpoints’ descriptions had been automatically migrated, the links pointing to them had not. Sadly, we had to fix them manually, nevertheless, the overall outcome was more than satisfying.

Everyday Readme

With the new API reference site, we love readme even more. This is a spot-on addition to the already great infrastructure which supports us in the developer onboarding process.

We won’t describe every single feature of readme, but let me say that with the WYSWIG editor, templates, syntax highlighting, code examples, confluence-like link autocomplete, and emojis, you can roll-out a quickstart site like this in no time at all. You can also quickly put together a profound endpoint’s description enhance with examples e.g. But, you should probably try it yourself to get the real picture.
Apart from the intuitive edit mode, we have to admit that the navigation is slick as well. On top of that, a decent search makes it easier to maneuver between articles.

The customer context

Finally, for a tech-oriented product like ours, having an insight into user activity on the documentation page can be super valuable. Readme takes care of that too; although they don’t provide in-app tracking features, they let you integrate Google Analytics, Segment, and Heap analytics.

Likewise, we found the Intercom integration useful too. We can answer developers’ questions right from a tutorial page. And Intercom shows us which page they’re looking at, so we know the context immediately.

There is one thing we miss, though; we’re getting more and more questions regarding the product and some of them are repeated every now and then. We’d like to create a fast FAQ which can intelligently suggest a respective article. We wouldn’t complain if it offered a customer tracking capability too. While we know they have it on the roadmap, Intercom has just released a serious alternative.

GVFM family

Readme (next to Postman) is another good value-for-money tool we happily use at Voucherify. And we’re sure we’ll leverage even more of its features when our coupon API grows, e.g. versioning at the very least. We’re also excited to see new releases from Gregory and his small-but-super-productive team!


Effortless bulk unique coupon campaigns

We’ve seen how to monitor the redemption tracking of fixed-code coupons campaigns. Now, let’s dive into a bit more of an advanced scenario - bulk unique coupons.

Promotional campaigns using unique, one-off codes are marketer-friendly. This is because they are way easier to control and track – and that eventually leads to achieving better ROI faster. They do have a major drawback though; it’s much harder to build that kind of campaign from a software perspective. Firstly, your dev team has to spend time on generating unique, hard-to-guess codes. Secondly, every time the new campaign is released, developers have to adapt your e-commerce system so it recognizes new codes properly. Only then can customers redeem their coupons in your checkout page seamlessly.

The good news is that Voucherify supports bulk unique coupons too; reducing the software issues we just mentioned to a few lines of code.

Have an offer only for your newsletter subscribers? Want to reward the most loyal customers with a new sweet deal? Those are just the right jobs for bulk unique coupon campaigns. With Voucherify, launching them is as easy as the fixed-code deals we described in the previous article, but the additional benefit of unique coupons is that you ensure you target the right customers.

Now that’s a fairly cool way of keeping your promotional offerings under control, isn’t it? Let’s see how to improve the coupon-based A/B test we demonstrated last time with the bulk unique codes feature.

Getting personal

The Voucherify coupon wizard lets you create thousands of unique coupon codes. As in the case of the fixed-code coupons, you can choose one of 3 discount types. Plus, you can set the expiry date or cap the number of redemptions. What’s new here is that you’re able to configure the codes’ length, prefix or charset. You can even come up with a completely custom pattern (you can test different patterns at

In general, once the codes have been generated, you can be 100% sure they’re unique among any other campaigns in your account. In other words, when you deliver the code to the customer, you can be sure that only he or she got it. The usual question from fixed-code campaigns: “who redeemed the coupon?” turns into “why did/didn’t this particular customer redeem it?”.

Alright, so now you can add another super significant parameter to your coupon experiments - customer segments. We’ll cover this area in further posts, but for now, let’s take a look at the operational side of unique code campaigns - how you can automate the process of coupon delivery to your users and how to ensure that good redemption experience which should be unforgettable, after all.

Distribution automated

Pushing out unique codes can be the most troublesome task in coupon marketing. That’s why we addressed this issue from the very beginning. There are 3 ways of achieving this with Voucherify:

  • Export to CSV
  • Export through MailChimp
  • Dynamic publish

Two of them can be triggered from the user interface. The first (CSV) should be self-explanatory. The second is more interesting; it lets you deliver coupons directly to your MailChimp lists. It’s done by using a merge tags feature. You can familiarize with the details in this tutorial. This should save you a lot of time, provided your customer base in MailChimp is up-to-date.

The third, dynamic publish option, is a bit different. It allows you to assign a unique code from a given campaign to a particular customer programmatically. Imagine, for example, the case of displaying a random code per user session on a landing page. Like this offer for our readers: This is fairly easy to implement with the dynamic publish method, granted, it does need a bit more effort from your developers, but at the same time it enables you to reach out to the myriad of tools working on different marketing channels. And it can be used with Zapier too.

Independent of the method/channel used, every time you deliver the coupon code Voucherify marks this information in the system. In this way you know:

  • To whom the code was delivered,
  • when it was pushed out,
  • and through which channel.

With the user interface, you can take a bigger picture look at all codes publications within a single campaign:

You can also analyze each code separately:

Metrics and monitoring

Finally, when it comes to monitoring, there are some helpful views in Voucherify. You can analyze each campaign separately and also compare the performance of many of them side by side. So, calculating the ROI just got easier; now, you are able to see at a glance how your campaigns are performing.

On top of that, you can inspect every successful and failed redemption separately within a single campaign. By doing so regularly, you are able to catch and fix problems before a customer makes a complaint. This is one way to improve the coupon redemption experience.


The bulk unique coupon campaigns are a perfect supplement for fixed-code offers. Whereas the latter are good for gaining more traffic, the former can be used for precise targeting in your promotional activities.

If the “precise targeting” reminds you of the customer segments, then we have good news for you: Voucherify supports them too by allowing you to filter out customers that are eligible to redeem a coupon from a particular campaign. Watch out for the next post to learn more.

Redemptions tracking and calculating coupon ROI

This is the 3rd post from the “Creating advanced coupon campaigns” series.

In the previous 2 articles, we talked about assembling a solid coupon infrastructure; the first showed you how to run and manage 3 different coupon campaigns without spending too much on coupon software; the second provided a few useful tips on how to solve the most common coupon code box issues. So, having covered the basic infrastructure, we’ve reached a crucial point in coupon processing - calculating the return on investment (ROI).

Let’s face it, you can’t build advanced coupon campaigns without measuring the contribution that a given promotion has on your revenue and profits. Why? Because not all deals will work for your business.

It’s no small task to embrace and compare the myriad different coupon types and features. If you want to scale your coupon offering, you have to make sure your marketers put more time and resources into what’s working and improve the tactics that aren’t delivering real value.

The good news is that coupon performance can be quantified providing you employ the right infrastructure.

In this guide, we’ll show you how to create an environment in which to perform data-driven experiments (or A/B tests) on coupons. You’ll learn how to measure coupon conversion rate just like top e-commerce players who invested heavily in their infrastructure.

Voucherify is a coupon infrastructure delivered through API that provides a quicker way to build coupon generation, distribution, and tracking; and it provides a user-friendly interface for creating and managing coupon campaigns.


Let’s start off with an easy one; You want to push out a public, fixed-code code to promote your brand. Something that can be shared on groupon or ad banners, e.g. “voucherify-black-friday”. You can create it in minutes with the Voucherify wizard. Just to remind you, Voucherify supports 3 types of discounts: Amount (e.g. $10 off), Percentage (e.g. 20% off), Unit (e.g. 2 free piano classes). You can read more about that in our last post.
Once the coupon is created, the tracking becomes super simple. In this case, you just watch the number of redemptions.

So, now there’s nothing blocking you from launching further campaigns with different discounts to see how they convert.
If you’ve achieved your goal or you notice that the code is being misused, you can disable it with a single click and any further redemption trials will fail.

And that’s how you can perform your first coupon A/B tests while keeping campaigns under control.

All of this is at your fingertips in a simple user interface and no developer has to be involved!

Making it urgent!

Now that we have the basic campaign designed, let’s start testing the various scenarios. Supposing your campaign isn’t performing well, what can we do to increase the usage numbers? One of the most common tricks to push customers to redeem is to put a limit on your coupon code. With Voucherify, you can achieve this in 2 ways:

  • Limiting the number of redemptions
  • Setting the expiry date

The campaign wizard gives you an easy way to set a timeframe for when the coupon is valid (note: you can define the start date too). You can also limit the maximum number of redemptions to help create the sense of urgency. (This also comes in handy when you want to set the maximum number of redemptions, so you’re safe when a campaign becomes unexpectedly popular).

Now, you can seamlessly introduce another factor to your coupon experiments and incentivize customers with promotions like “Today only!” or “Get one before September ends!”.

Marketing channels

Alright, so now we’ve built a fairly complex engine to monitor our coupons. But here comes another nice thing about it; with no extra effort, you can prove if all of your marketing channels deliver a return on investment. The idea is straightforward: assign different coupons to separate channels. Voucherify will help you organize the codes into categories so you can filter them out quickly.

Want to explore attribution in-depth? That’s possible too; just let your software developers know what data you want to collect and they can feed Voucherify with details when the redemption is made. With our software libraries, it’s a 15-minute job and, in the end, you’ll be able to see the information right there in the metadata section.


So far, you’ve hopefully learned how to run coupon campaigns with a data-driven approach in mind. In an ideal world, this should be enough to calculate the ROI of public coupons and to figure out what discount types yield the best results. Unfortunately, it’s often the case that some redemptions can appear as fraudulent or can simply be made by mistake. This will distort your numbers and can ultimately lead to gaining inaccurate insights.

To overcome this, Voucherify comes with rollback functionality, allowing you to revert any redemption. You can also easily integrate it with your e-commerce system so, whenever an order is canceled the rollback is run automatically.


Redemption tracking and measuring coupon ROI would be a real headache without the right infrastructure in place. Voucherify helps you build an infrastructure much faster than if your developers had to do it from scratch. This means you can launch your public coupon campaigns and verify their effectiveness in no time at all.

In this article, we’ve seen how to measure fixed-code coupon code performance. The next article in the series will guide you through bulk unique coupon code monitoring. Follow us on twitter @voucherifyio and make sure to be notified!

How Doodle3D used Voucherify to manage Kickstarter backers’ licenses

Doodle3D is the company behind the Doodle 3D Wifi Box - a little device that plugs into your 3D printer and makes it wirelessly accessible to your computer, tablet, and smartphone. After a successful kickstarter campaign, they have now expanded their product line with a new product, a simple sketching app that makes 3D design easy and fun, called Doodle3D Transform.

To make this happen, Peter and the rest of the Doodle3D team decided on launching another Kickstarter campaign. One of the rewards was lifelong access to the application. As the app is plaintended to work with a paid subscription model, the idea was to send out individual license keys that are accepted as payment, giving lifelong access.

The project succeeded and 1626 backers contributed. This translated into over 2400 license vouchers and this is how they managed to organize them with Voucherify.

So, the campaign ends and the voucher story begins. The Doodle3D team had to export the backers’ information to an Excel file. Then, their quest was twofold:

  • Deliver licenses to users,
  • Handle redemptions in a secure way so that eventually the users get access to the Transform app.

Here’s how they approached it with Voucherify:

1. License generation

The first step is to generate 2400 unique license keys. This is actually what Voucherify is created for and comes down to running the campaign wizard. It will guide you through multiple steps allowing you to define not only the number of codes but also some important voucher features such as an expiry date or a code pattern. For their license keys, in this case they used discount type vouchers with a percentage set to 100. This enables them to reuse their code for other discount types in the future.

Once the wizard has run you can see the list of vouchers. You’ll find this view helpful for monitoring your codes later, but you should push them out to users first. One way to get this done is to use the Export to CSV button.


2. Assigning codes to backers

All right, so we have the vouchers in a CSV file. Now it’s time to assign the vouchers to respective backers. This requires some manual work but it’s fairly easy to achieve in your spreadsheet. The next step is to import this file to your email marketing system, in Doodle3D’s case it was MailChimp. Once configured, you should be able to send out a message to the users. But wait! There’s still one step missing.

3. Handling voucher redemptions

Before you can give away your codes, you need to ensure users can actually make use of them. This means you must integrate the voucher code box in your app with the Voucherify API so that the system knows which code is valid.

You can’t help but code it. That’s why we put a lot of effort into making sure this step is seamless for your developers. For instance, Doodle3D team used Node.js library to get this done in a couple of hours. There are more libraries for popular programming platforms, including web and mobile.

4. Campaign monitoring

Once vouchers go live, Voucherify’s user interface tracks redemptions on the fly. At the same time, it gives you the ability to deactivate any code which is misused.

On top of that, you can catch the failed redemption trials and understand what happened before a user comes to you with a complaint.


The good news is that you can also monitor actions for each user separately.



And Peter’s particularly happy about this feature:

We just released all the personal vouchers to our Kickstarter backers, 1626 people. And since we could add customer information when a redeem was attempted we have a lot of information about what is happening. For example, even when someone tried the wrong one we can view it in a consumer’s redemption history.



With little effort, Voucherify helped Peter and his team at Doodle3D manage license vouchers for a Kickstarter campaign. But the Kickstarter’s usually just the beginning of a long journey. The next step is to get more traction through various marketing campaigns like discount coupons or a friends’ referral program. Voucherify’s coupon API platform fits perfectly here too.

November newsletter: new documentation, user management, new validation rules

Here’s what we have been up to recently - TLDR:

  • New documentation - common use cases, useful examples, refined reference

  • New validation rules - create discounts based on order volume

  • User management - invite your team members to collaborate

  • Auto-update campaigns - useful in case you publish vouchers and you want to ensure a sufficient number of codes

  • QR codes - now you can get QR images straight from Voucherify

New documentation

We keep making Voucherify more and more developer friendly. A refreshed documentation is a next step forward. At you’ll find a couple of new tutorials on: campaigns, distribution channels, e-commerce integration and monitoring. Don’t forget to visit Examples section where you can play around with the Postman collection, customer touchpoints applications and more.

New validations rules

Last time, we were writing about limiting your coupon campaigns to specific products. Now you can use the order amount parameter too. Learn how to build complex campaigns with multiple conditions including customer profiles, cart items and total amount with this tutorial.

User management

From now on Team Members section lets you invite your colleagues to manage and monitor vouchers. Moreover, we’re happy to present the concept of Projects alongside. These features give you access to a flexible way to manage users and API keys and therefore to seamless collaboration between your IT and marketing team - see the guidelines.

Auto-update campaigns

Ever been worried that you run out of publishable codes for a campaign? Now you can avoid that by enabling Auto-update feature in the campaign wizard. This way every time you send a publish request while every campaign’s code is used, Voucherify will auto-extend it with a new, unique voucher matching the pattern.

QR codes

Generating QR codes is now as easy as getting the voucher with the API. In a response’s body you’ll get the link to a png or svg of the QR code. The size is configurable too, learn more.


We’d like to give you a heads-up on what we’re going to be busy with for the next 2 months:

  • User management improvements: roles and permissions, user activity tracking.
  • Validation rules built on top of customer profiles e.g. if Alice used coupon A she cannot redeem coupon B etc.
  • Webhooks - Voucherify will send an HTTP POST request to specified URL whenever something happens to your vouchers.
  • Friend refer friends program - we’re going to introduce a nice API endpoint and UI wizard for creating referral programs. 

Think of a feature request? This is much appreciated, let’s us know!

What we’ve been writing this month

Our swag has arrived. Fancy a Voucherify cap? Drop us a line :)

How can you use promo codes generator in your marketing campaigns?

Promo codes are an effective and creative way to boost customer engagement. In the first part of this post we’ll review some ideas of coupons in marketing campaigns. Next we’ll show how to generate unique promo codes for free using our generator. So let’s dive in.

  • Sign up & get coupon - promo codes for new registered users. It would encourage more people to sign up.
  • X % off your first purchase -  incentive for registered users, who didn’t made first purchase yet.
  • X % off your next purchase - next time discount as a reward for previous purchase.
  • We miss you! Re-engaging coupons to invite those who haven’t visited for few months to come back.
  • Thank you for being with us - loyalty vouchers  for your regular customers.
  • Holidays/season coupons - e.g. Christmas, Easter, Black Friday discount.
  • Share & save - coupons for those who like or share your page.
  • Abandoned carts - use coupons to bring back people who didn’t finish their shopping.
  • Friends refer friends - coupons that your customers can share with their friends to get discount.
  • Happy birthday! The more information about customer you have, the more personalized coupon you can offer.
  • Free shipping - as an incentive to buy more.
  • Gift card - a pre-paid amount that the customer can spend in your store.

These are a few ideas to use vouchers to increase your customer vase and build their loyalty in the long run. And now let’s see how the generator will help you create unique coupons for free.

How does the generator work?

Generating codes is simple and fast. Go to the generator site:

Put the amount of codes, customize a single code length and then push generate button.

Your codes are ready immediately.

We have also some advanced options. E.g. you can customize:

  • code prefix,
  • postfix,
  • pattern
  • and character set.

On top of that we have code template examples you tap into for your use case.


Our promo code generator is totally free and ready to use. Leave a comment below, if you have any ideas for improvements!


If you seek a comprehensive tool for a coupon campaigns distribution and tracking, you might want to check out Voucherify.

Voucher rules, scaling voucher campaigns and more - September newsletter

Here’s an update on what we’ve pushed out over the last 2 months. 

  • Limit voucher redemptions to specific products and customer segments
  • Generate up to 5 mln unique codes
  • Browse vouchers and redemptions faster with new filters

Voucher rules

So far you’ve been able to limit the number of redemptions or set an expiry date if you wanted to reduce codes accessibility. With new rules mechanism you can get it to a new level! 

From now on you can limit the vouchers to specific products or customer segments. Once you define a segment and/or product in the admin console, you can define your rules in 4th step of the wizard. Watch out for more custom rules soon!

You can find a short tutorial here.

Scaling voucher campaigns

If your campaign exceeds 10 000 vouchers, you can upgrade to Plus plan to get more. This plan is limited to 5 mln vouchers in total. If, however, you still need more. Drop us a line and we’ll tell you what’s possible.   

New voucher browser

To refine and unify voucher codes browsing we’ve dropped the idea of the Campaigns view. From now on you can browse all codes using the Vouchers view and this means a good, old table with sorting and paging. The good news is that we equipped it with new, helpful filters.

We’ve been writing this month

We started Creating advanced coupon campaigns series. Read our blog to find out how to get most of Voucherify for vouchers automation:

Finally, we put together Deliver Weekly - a weekly newsletters for software developers that deliver fast. It consists of news, links and resources about cloud APIs, developer tools, product design. You can subscribe here.

Discount rules

Controlling who and when can redeem your coupons might be helpful for your marketing team. They can run various scenarios in parallel to learn which campaign performs best. This is why Voucherify lets you define vouchers’ expiry date and limit the redemption number programmatically. But what if they wanted to limit vouchers validity to a particular group of prospects? Or what if a gift card should be valid only for specific products? Today we’re happy to announce a new feature that covers these cases!

Welcome discount rules

We’ve equipped Voucherify API with 2 new entities: Segments and Products. You can use both to create custom redemption rules. Let’s follow this tutorial to learn how you define product and segments, and then use them in rules.

In our example we’re going to create a 5% voucher campaign for:

  • iPhone
  • Customers created more than 30 days ago

1. Let’s start with creating a product. To do so, go to Products view and use the ADD PRODUCT wizard.

2. Now it’s time to create a segment. This should be easy with the Customers view, the Create date filter in particular.


3. Finally we can create a voucher and apply our rules. In order to get it done, go to Vouchers browser and run vouchers wizard.

Imagine that the campaign is active, you sent out the code and John (your customer) tries to redeem it. Here’s how you should prepare the redeem request:

In our Postman collection, you can find this example (TC2 - discount rules) and play it around.

We find customer rules pretty powerful. Campaign's wizard enables you to mix various filters depending on one or many:

  • customer segments filter out by: name, email, or customer metadata
  • products or their variants (various SKUs)

In the near future, we’re going to release cart rules where you’ll be able to create new rules using total price or number of items bought. Stay tuned!

Postman really supercharges your API

It’s been a while since I used Postman for the last time. Now that we had a need to test one endpoint quickly I decided to tap into it again. What was my surprise when I discovered that Postman can do much more than what we used to see a couple of years ago. It’s amazing how a small, toylike Chrome plugin has evolved to a production-ready test framework with a nice business model behind. Here is why we decided to go for Postman to supercharge our coupons management API platform.

UX or actually DX

Postman is super easy to use. No tutorial is required. You just open the builder and start writing requests. No matter if you’re dev, QA, ops guy or a PM you know the way it works right away. This is why it has become a useful tool for communication at Voucherify. E.g. we can use it to give a demo to customers. Or, we can communicate issues related to a particular endpoint. Finally, thanks to the request History we can experiment with various corner cases ensuring the API is errorless and gives good overall developer experience. On top of that, Postman has a great utility features to get you started. Several things like headers autocomplete, cURL import, code generators, bulk edit, request duplicates make the onboarding process smooth.


The usability features described above would be half-productive if it wasn’t for sharing capabilities. With Postman collections sharing is just a few clicks away (have I mentioned collections?). The role manager you can find in Team Library gives you the ability to define who can see what in your organisation. Although it’s a paid feature, in our opinion it’s worth it. Especially when it starts with $5 per month. 

Test framework

Postman has evolved as an advanced testing tool too. By introducing parameters and assertions you can create pretty complex test scenarios. Likewise, putting JavaScript interpreter into Tests section gives you extra capabilities. Watch this:

In this example we check if the response which consists of the list is correct. Notice that not only can you write pure JavaScript, but the postman guys also included lodash and other utilities, the full list of supported libraries is available here.

But there’s more, if you look closely on the endpoint’s URL you can see that we used a parameter there. You should know that apart from built-in dynamic variables like these:

    •    {{$guid}}: Adds a v4 style guid

    •    {{$timestamp}}: Adds the current timestamp.

    •    {{$randomInt}}: Adds a random integer between 0 and 1000

Postman gives you capability to define your own variables which, in turn, can be grouped into environments. This is a powerful feature because we can quickly switch tests’ target between production and local machines. Furthermore, environments can be easily shared among team members or customers so this makes testing and troubleshooting even faster.

In future, I expect it to be helpful in covering different versions of API. As for now we’ve managed not to introduce breaking changes in v1.

Another nice feature, which makes Postman a serious test framework is the capability of storing context between tests. Take one of the basic Voucherify’s flows for example:

  • create a unique one-off voucher (returns a unique code that can be redeemed only once)
  • validate the code (informs client applications if the code is valid and returns discount value if true)
  • redeem voucher (actually marks the voucher as used so that it becomes invalid)
  • redeem voucher again (should fail because of the limit)  
  • get redemption history for the voucher (should return redemptions’ details)

After the first request is invoked Voucherify returns a unique code. The key thing here is that the other requests depend on this code, so we need to find a way to pass it. Postman’s Environment and Global storages come to the rescue here. See the example below:

We put a one-liner (postman.setEnvironmentVariable method) and from now on we can refer to the TC1-code parameter in other requests. Be it in a request URL, payload or test section.
Tip: After the test case is finished, it’s good to clear the context so that it doesn’t interfere with other scenarios.

Customer onboarding

Finally Postman is a good tool to onboard developers to your API. Developer experience is super important in our business. That’s why tools like Run in Postman or Postman Documenter are tremendously helpful to make the first steps easy and let developers run more advanced scenarios. This is how they can quickly ensure that Voucherify meets their coupon software requirements.

Run in Postman is a part of sharing feature. It makes the collection public so that anybody who has a free Postman account can import it. And the Run in Postman generator is the icing on the cake. This is how it looks like in our case:

Postman Document - another one-click tool giving so much value in onboarding stage. The tool generates and publishes an interactive documentation for your requests collection. To make things better, this online spec enables you to generate code snippets for requests in one of 7 flavours (cURL, jQuery, Node, Ruby, PHP, Go, and Python).

Continuous integration

We have yet to check out Newman - a command-line collection runner. Not only is it a nice feature for terminal junkies but it also opens a way to integrate Postman tests into a continuous integration pipeline. There’s already a tutorial how to connect it to Jenkins. Newman combined with workflows sounds like good candidate for a powerful tool for running comprehensive test suites.


$5 per month for all these features? That’s what we call super benefit to cost ratio. Especially when you compare it to Runscope which gives you a bit more features, but start from $79, though.

We liked Postman from day one. It’s become a common tool at Voucherify because it supports our API-first platform in many areas such as quality assurance, customer support or finally developer onboarding. And really, they do this seamlessly. I like to think that Voucherify will achieve the same level of developer experience when it comes to coupons management software.


The dark side of the coupon code box - part 2

This is the second part of “Creating advanced coupon campaigns” series.

Last time we described how to launch various coupon campaigns. Now imagine that your coupons and vouchers have been given away and customers visit your store to redeem them. At this stage, it’s critical to ensure a great coupon redemption experience - this might be the go-no-go moment for your shoppers. Strangely enough, one of the key parts of this process is just a little part of your website - a coupon code input box.

E-commerce experts claim that this little widget should be designed with great care because it may cause a huge impact on your overall conversion rate. In this article we put together a few tips on how to build a seamless redemption experience and how you can avoid the most common coupon box issues.


6 years ago, Linda Bustos from GetElastic blog described a few to-the-point problems that disturb the redemption experience. You should take a moment to read it first because it gives the rationale for the following information.

In general, the issues arise from coupon misuse and suboptimal promo box design. Linda lists 6 ways to overcome them, however, when we analyzed modern-day e-shops, we noticed that some of them still don’t have these issues addressed. We suspect this results from the high costs of implementation, especially in some of the legacy e-commerce software they use under the hood.

Fortunately, you can fix all this with Voucherify. Within the following paragraphs, we’re going to show you how Voucherify can support Linda’s tips.


Or, in other words, show the promo box only to users with the link. Imagine that a customer arrives via an affiliate link or email with a promotion. In this approach, the URL includes a parameter indicating the shopper has a promo code. The job of your store software is to check whether the code is a valid one and to display the promo box. Other customers don’t see the box so they don’t get confused.

How to achieve this with Voucherify:

  1. Create a standalone promo code in the admin console. (A standalone code is a public code, e.g. ACME4FREE, we described this type of campaign last time).
  2. Embed it in the URL of the landing page you push out to shoppers.
  3. When a customer visits your landing page, the website immediately verifies if the URL code is valid and shows the promo box.

The good news is that with Voucherify, you can do it on both the client side (with JavaScript code) and the server side.


Don’t be surprised when your codes leave the intended channel. Nowadays, it’s barely possible to avoid so-called coupon search leak. On the other hand, unique, one-off codes are a pretty straightforward solid solution to this issue. The only thing you should remember is to make them hard to guess and be aware of common bad and good practices.

As mentioned in the previous article, in order to handle this scenario we created a unique series of coupon campaigns. With our campaign wizard, it boils down to just a few clicks. Here’s a tutorial on how to achieve it.



A coupon in exchange for an email address sounds like a fair deal to us. Let’s see how to embed this feature into your store. The subscription widget is quite easy to implement, e.g. with MailChimp subscriber forms, however, the coupon publishing can be the tricky part. You’d probably want to issue a unique code every time a new customer submits an email address, right? Guess what, Voucherify handles this scenario nicely too!

The Voucherify way:

  1. Create a big enough unique coupon campaign, say 5000 codes, dedicated only to subscribers from your website. You can leave the expiration date unset so the codes never expire.
  2. When a shopper fills in his or her contact info, you call the publish method providing the name of the campaign as a parameter. The publish method is a special method within the Voucherify API. It returns a unique code from the given campaign and then marks it as used. Thanks to this approach, we can be 100% sure it won’t be sent to other customers.
  3. Now you can show the code to the user. Or, instead of displaying the code in the store, you can send it via e-mail to the submitted e-mail address to confirm its existence.



We really like the idea of displaying codesbefore shoppers' resort to Google or other coupon aggregators. You can even build the subsite that lists the coupons quite quickly. But the issue we see here is that it can quickly become obsolete. In the long run, this means outdated coupons and, therefore, discouraged shoppers. Voucherify has a nice way of keeping the coupon site up-to-date without the need to change a store’s source code every time a coupon is created or disabled.

How to do this:

It comes down to using the CATEGORY field in the coupon wizard. Then, you can wire your store engine in such a way that every coupon with, for example, a “public_promo_codes” category lands on the website.

  1. When creating standalone coupons, remember to define “public_promo_codes” category.
  2. Your website should fetch all coupons that match the following criteria:

a) It has the “public_promo_codes” category assigned.

b) It hasn't expired.

This can be achieved using the List Vouchers method in the Voucherify API.

As a result, you get a dynamic way of controlling which coupons, and how many, users find in your store.


A design tip - a promo box placed early in the funnel reassures coupon owners that their discount is valid and they get the promised value. This experience can be enforced with a dynamic coupon widget like the one in the picture below (we made it using open source). This way, shoppers can add products to their cart and immediately see how much they save. You can learn how it works in the real world with Voucherify Sample Shop




Taking control of how shoppers redeem your coupons may require a little effort. Nevertheless, Lisa shows it’s worth the candle, especially if you can outsource the implementation burden to coupon software like Voucherify.

In the next article, we'll show you how to monitor redemption tracking and calculate coupon ROI.


The marketing stack that got us to first 5 paying customers

Voucherify is for software developers who want to deliver business value fast. Because such people don’t like beating around the bush, the marketing message has to be clear and concise. The communication channels should be BS-free too.

To meet these requirements we decided to focus on content marketing to get traction in the first place. And then to concentrate on making customer experience great - as we believe that happy customer becomes the best marketing channel overall. This is the list of marketing tools that help us implement this strategy. - a clear docs page is one of the deciding factors when considering integration with API-based SaaS platforms. Readme makes describing API reference easy. With Readme you can publish complex API endpoints descriptions and How to tutorial in minutes. Additionally, collaboration capabilities, theme builder, change logs help you build a great, interactive developer hub. Go to our spec to see it in action!

Statuspage - Transparency is another critical factor for tech people that decide whether to include or not a SaaS into their technology stack. Statuspage can help you twofold here. Firstly, you can publish your stability metrics to show that your system is operational. Secondly, you can allow customers to subscribe for planned and unplanned downtime updates.  

Github and package managers - open source projects related to your SaaS like e.g. SDKs are good transparency enhancers too. And there’s no more popular place to submit your libraries than community around Github. Developers would also appreciate if you post the libraries to well-known package managers for the given technology such as for Node.js, for Ruby or for iOS.

Slack - we found out that the best way to understand the customer is to talk directly to software developers. Tech people don’t feel like arranging skype/phone calls though. They’re more comfortable with instant messengers. That’s why we created a Voucherify slack channel and it worked out just fine. Thanks to slackin we launched a signup form in less than 10 minutes.

SEO/backlings - To create landing pages and this blog we leverage the WYSWIG editor of Squarespace and Strikingly. Apart from social networks we post Voucherify profiles to industry aggregators such as: Programmableweb, Capterra or Getapp. Finally, for SEO monitoring we use Positionly and Mention. Positionly to see if the content we publish gains popularity (backlinks) and Mention with a 1 keyword, free plan to understand who talks about us in the web.

Traffic analysis - pretty standard toolset Google Analytics and Woopra. Sometimes we tap into Inspectlet to figure out the details of users’ behaviour.

Social - Buffer with free plan is enough to push out our content to social media regularly. Meetup is also worth mentioning. We use it to organize events like SaaS Tech or NodeSchool.

Intercom - when you acquire your first customers, you’d better make sure your onboarding process gives great experience. As we found out the big part of marketing happens just there, in the free trial stage. Intercom works out for this job at Voucherfiy. We use it for drip campaigns, support, customer analytics, newsletters and many more. We wouldn’t hesitate to call it our primary CRM tool.

Last but not least, we use Voucherify for coupon campaigns like this 3 month free subscription for the blog readers :)

Creating advanced coupon campaigns - part 1

We believe that coupons are one of the best buying incentives you can push out to your customers. Massive e-commerce companies seem to share this view because they have invested heavily in their coupon infrastructures. It helps them get the most out of social media engagement and coupon aggregators. It also enables them to run promotion campaigns in a more contextual and data-driven way.


The other parts of the series:


Smaller businesses have been slower to jump on the couponing bandwagon, partly because of the fact that it’s tricky to implement on legacy e-commerce platforms. With this in mind, we have put together a practical guide to creating advanced coupon campaigns with Voucherify.

In the first part, we’ll cover the various discount coupons and gift card vouchers you can use in your promo campaigns. We’ll also tell you a bit about campaign maintenance and troubleshooting.

In case you’re reading about Voucherify for the first time, it’s a coupon infrastructure delivered through API that provides a quicker way to build coupon generation, distribution, and tracking; and it provides a user-friendly interface for creating and managing coupon campaigns.

Coupon characteristicS

Firstly, let’s break down a coupon to get a full understanding of its features and know what parts you can tailor to your business.

  • Type and Value, or the discount itself. The most important parameters of the coupon code. Actually, it’s the combination of these two factors which decides whether new customers are hooked or not. At Voucherify, we predefined 3 types:

Amount (e.g. $10 off)

Percentage (e.g. 20% off)

Unit (e.g. 2 free piano classes)

  • Start and Expiry dates help you run and maintain multiple campaigns. They also give you the possibility to create the all-important sense of urgency - the second most impactful factor of your promotion.
  • Redemption limit controls the lifecycle of your coupon. By choosing one of 3 options (single redemption, X redemptions possible, unlimited redemptions) you can change the way customers interact with the promotion campaign.
  • Prefix. Depending on the campaign type (see below) this is either the coupon code itself or just the first part of the code. Very useful for monitoring and reporting.

You will also discover in this article that all of these parameters can be easily fine-tuned within Voucherify)

COUPON workflow

Secondly, before you learn how to launch coupon campaigns, you need to be familiar with a digital coupon workflow in Voucherify. It's similar to any other SaaS tools you might use for your application; once you connect it to your checkout page you can start generating coupons. The story begins when a customer tries to redeem the code:

  1. The customer types in their promo code on your checkout page. Your client application (web or mobile) requests the promo code verification from the Voucherify server.
  2. In response, Voucherify informs your application if the code is valid and what is the actual discount value.
  3. Your application calculates the new price and puts an order into your e-commerce system.

Now, let's see just what coupon campaigns you can achieve with Voucherify.

Modeling a campaign

Assuming you’ve grasped the elementary coupon features, you can jump into creating your first campaign. In the paragraphs that follow, we will describe 3 basic promo campaigns and show you how to launch them with Voucherify.

FIXED-CODE campaign

It boils down to coming up with a fixed voucher code, e.g. voucherify4free or xmas2016. You can tap into this campaign type when your primary goal is to acquire new customers or increase brand awareness in general. The advantage here is that it’s super easy to distribute; you just push out the code through various channels and the more people redeem, the better for your business.

Note, however, that this advantage can turn into a downside in some cases. This is because you can’t control the number of redemptions after the coupon code is out there. In Voucherify, you can define the global limit for redemptions per code, but that’s not much help when you want to give away non-shareable codes to specific customers. To overcome this, you should use unique coupon campaigns.

In Voucherify, a fixed-code campaign can be launched using the standalone voucher wizard, here’s a tutorial demonstrating how to run it.


  • Increases brand awareness
  • Easy to distribute


  • Redemption numbers can’t be easily controlled

BULK Unique coupons

The second type takes a step towards reducing coupon fraud. The key change here is that you generate unique coupon codes. In this campaign, each customer receives a personal code which can be shared or not depending on the redemption limit.  

Now, you can easily target particular groups, like new customers or the most loyal ones, plus, you can quickly find out which group members have already used their codes. This might be useful for further drip campaigns.

Below, you can see the output from a unique coupon Campaign Wizard. Run through this tutorial to see how to create it.


  • Personal, one-ff codes possible
  • Reduced coupon code misuse


  • Customers e-mail or phone number is required

Voucher gift card

The last basic campaign type is a bit different; while it’s a variation of a unique coupon code campaign, in this case, the code you push out to customers doesn’t carry any discount. It brings a pre-paid amount that the customer can spend in your store. So, it works like your common gift cards.

The biggest difference lies in the way the voucher is redeemed. Here, a customer can use the voucher multiple times provided that he or she still has a positive balance on the account.


  • Increases online sales
  • Encourages return visits 


  • Needs more complex wiring with online payments

Additionally, our Shopify integration helps you sell them online.

Campaign maintenance

The creation of the campaign is only the first step. Once the campaigns are live, you should take care of them so that customers get a seamless experience and the IT team is not bothered with tons of requests. Let’s see how Voucherify helps you out here as well.

Performance monitoring

After some time has passed, you might be wondering if your campaign is doing fine. Voucherify makes this really straightforward; the dashboard will show the redemption numbers of all campaigns so you can compare them at a glance. By doing so, you’ll easily figure out the key parameters of your successful campaigns and you’ll be able to fine-tune new campaigns so that they get better and better, generating more traffic down the road. We'll cover this topic in detail in future articles.


In case of any unexpected issues, you can activate and deactivate the whole campaign or even a single code at any point in time. Imagine that your campaign is so successful that your stock can’t keep up with the demand. Or, you’ve noticed that one of the codes is either being misused or has been lost by the customer. You can quickly track it down and disable it in the Voucherify admin interface.


Another valuable feature is the detailed redemption tracking, not only does it list all the valid redemptions within a given timeframe, it also shows all the failed ones. Hence, you can catch them immediately and fix the issue before a customer complaint appears in the system.

The takeaway

We have presented 3 basic coupon campaigns you can create with Voucherify. Campaigns that you can launch in minutes instead of weeks. The monitoring and troubleshooting features help you reduce communication overhead internally and catch any eventual problems early on. Ultimately, your development team can focus on what’s really important and your customers will stay happy.

This was the first part in the “Creating advanced coupon campaigns” series. Coming next: