Why Not Build Your Own Promotion Engine?

Why Not Build Your Own Promotion Engine?

By Stephen Sugden Icon comments Tags: Development, Promotions

Being able to use the right tool for the job is more important than… eating breakfast or finding the perfect GIF response. As developers, we are constantly on the look out for tools that let us get our jobs done faster and safer, with fewer "gotchas" and deployment headaches.

What solution are you using to run promotions?

Does your company rely on a third party promotion solution with limited flexibility (read: frustrating)? Or maybe you're campaigning to finally refactor that legacy code that nobody quite understands anymore? Perhaps you've been trying to find the time to build a promotion engine in your spare time, powerful and flexible enough to manage all the annoying promotional campaign requests from your marketing team?

Why would you build your own promotion engine in-house when you can integrate with Talon.One?

It's true there's a tradeoff in complexity here, but eating the (small) upfront development cost of integrating Talon.One pays off over time. If you don't need more flexibility or power than simple coupon-based rebates, Talon.One is probably not the right tool for you, but in our experience the complexity of promotions (and the software that supports them) only grows over time.

We'd like to demonstrate this with some concrete scenarios, and we'll start with the simplest possible promotion: applying a fixed discount with a valid coupon code.

Fixed discount coupons in-house

To support this simple scenario in-house, you would need to do something roughly analogous to these steps:

  1. Extend your model of an order to allow adding adjustments. There's a good chance you already have this.
  2. Create a Coupon entity in your application.
  3. Connect that coupon entity to the order entity so that it can add adjustments.
  4. Define the business logic for limiting usage.
  5. Add UI for customers to enter coupon codes.
  6. Validate the coupon and add an adjustment to the order when a coupon is submitted.
  7. Add administrative screens for managing coupons.

Fixed discount coupons with Talon.One

To support this use-case with Talon.One, starting from scratch with no integration, you would do something similar to the following.

  1. Extend your model of a customers order to allow adding adjustments. Again, you probably already have this.
  2. Set up one of our SDK's with credentials.
  3. Implement an effect handler for setDiscount that will add an adjustment to the current order.
  4. Implement an effect handler for rejectCoupon that will display a message to your customer when their coupon is invalid.
  5. Add UI for customers to enter coupon codes.
  6. Integrate a Talon.One API call when a coupon is submitted.
  7. Create the campaign in our Campaign Manager

Even though we've glossed over a lot of complexity in Create a Coupon entity, I'd expect you could get an MVP version of these features built in-house in around the same time it takes to build the Talon.One integration.

Image of computer

As promotions get more complex however, the amount of change to your Talon.One integration remains minimal and predictable.

As our next example, let's consider a referral program. Referring a friend gives your friend a percentage discount on their first order, and yourself (the advocate) a coupon credit for a future purchase.

In-house Solution:

  1. Create a Referral entity in your application.
  2. Connect the referral entity to the Order entity so that it can add adjustments.
  3. Add UI for customers to refer a friend.
  4. Create a referral when a new referral is submitted.
  5. Add UI for customers to enter a referral code (this UI might be invisible, e.g. referral codes in links, but it still needs to be built).
  6. Validate referral codes when they are submitted.
  7. When they are valid, apply the discount to the friends order
  8. When the order is completed, create a new coupon for the advocate, and notify them of the new coupon code.
  9. Add administrative UI for managing referrals.

Talon.One Solution:

  1. Add UI for customers to refer a friend.
  2. Integrate Talon.One API calls when a new referral is submitted.
  3. Add UI for viewing referrals
  4. Integrate Talon.One API calls for fetching current referrals when this UI is viewed.
  5. Implement an effect handler for rejectReferral that will display a message to your customer when the referral code is invalid.
  6. Implement an effect handler for createCoupon that will send newly created coupon codes to a specified customer.
  7. Create the campaign in our Campaign Manager.

Even with this relatively simple promotion, the Talon.One integration starts to pay off right away, and the next time you want a variant on the referral program there's no new integration work to be done at all.

Continued Savings

We haven't yet touched on other requirements such as targeting specific customer segments, scheduling promotions, creating and managing gift cards, etc. Any of these require a similarly small & predictable effort to integrate: simply add an API call to feed the necessary information into Talon.One.

Check out our interactive Quickstart Guide and make your first API calls right from your browser, or read a tutorial on Integrating Talon.One to get a feel for how the integration looks in your codebase.

Subscribe to our newsletter

Get insights and inspiration for mastering promotion marketing.

Unsubscribe whenever you like.

There was an error subscribing to the newsletter. Please try again.

Thanks for subscribing to the Talon.One newsletter!

Related articles

Comments

Check out our Community Guidelines.