Tips, Tricks & Best Practices

mrcruz
HubSpot Employee
HubSpot Employee

How to send unique coupon codes to known customers without any integrations

Sometimes you have an offer for known customers that would require they utilize a unique coupon code. Though this is possible through some of our integration partners, you can accomplish this in our native system, with just a few steps.

 

Requirements: HubSpot Marketing Pro or Enterprise, Microsoft Excel or Google Sheets

  1. Create a custom contact property for Coupon
  2. Export the list of contacts being sent the offer
  3. Open the export in Excel, and add in a column for Coupon, and use a random number generator function to create the unique coupon codes (Google Sheets directions here)
  4. Import the contacts, and this will append the coupon code to their contact profile (be sure to include the email address in that import file)
  5. Create an automated email that utilizes the personalization tokens for the coupon code
  6. Finally, we'll create a workflow that enrolls contacts who fill out the form, and sends them the email.

Hope you all like this trick!

 

9 Replies 9
Rthibodeaux
Participant | Platinum Partner
Participant | Platinum Partner

How to send unique coupon codes to known customers without any integrations

Occum's Razor: The simplest explanation is usually the right one...

 

Existing Contacts in HubSpot by definition have a HubSpot "Contact ID". Therefore, a unique "Coupon Code" already exists for most use cases!

 

Rather than exporting and using Excel to generate (or writing code), then importing into a custom property to use a personalization token...simply use the unique code/ID you already have!

 

Example:

Dear {{contact:firstname}}, please use the following coupon code to redeem your offer: {{contact:hs_object_id}}

 

 

mrcruz
HubSpot Employee
HubSpot Employee

How to send unique coupon codes to known customers without any integrations

Not a bad idea, when I wrote this I dont believe the object id exported by
default. That said for some reason I'm always weary exposing an internal
unique ID like that. Not sure how one would use it to be malicious though.
maryjot
Participant

How to send unique coupon codes to known customers without any integrations

Can't wait to try this out! 

alyssashowbie
Member

How to send unique coupon codes to known customers without any integrations

I LOVE this solution.

 

Right now, we're using multiple programs to process a transaction, and our CRM from program to program don't have the same information, which is not the greatest... We use HubSpot, Bling, Recurly, and Intercom. Do any of those integrate with HubSpot? After some preliminary research, I can't seem to find anything on the above apps.

Anonymous
Not applicable

How to send unique coupon codes to known customers without any integrations

giphy.gif

 

...My thoughts summarised ^

 

Have you worked with any customers who have used this method? What sort of campaigns are they running - if you don't mind me asking 🙂

0 Upvotes
mrcruz
HubSpot Employee
HubSpot Employee

How to send unique coupon codes to known customers without any integrations

Hey Tommy!

 

Thanks for the GIF I am totally going to use that with my teammates. I have worked with a few customers to whom I provided this solution. I wouldn't be able to disclose the specific nature of the campaign apart from the fact these unique codes were to be used to identify specific contacts if redeemed either for the customer's product/offer or an associated vendor. I'd love to tell you more but I am sure you understand. 

giphy

0 Upvotes
bradmin
Key Advisor

How to send unique coupon codes to known customers without any integrations

For approaches like this, it's a good idea to keep a running list of previously-used strings, if uniqueness across campaigns is required. While you can always add more digits or characters to a randomly-generated string to decrease the chance of duplicates, there's always a nonzero chance of a duplicate. It may be worthwhile to keep a master list, and check any new codes against it, to preserve uniqueness. 


Brad Mampe, Salesforce Analyst, Fidelity
I'm probably wrong. I may not be right about that.
mrcruz
HubSpot Employee
HubSpot Employee

How to send unique coupon codes to known customers without any integrations

Very good point!

0 Upvotes
bradmin
Key Advisor

How to send unique coupon codes to known customers without any integrations

You can also trick this out a little more, if random letters are desired, in addition to numbers. Every character in a cell contains an ASCII code. There are two native Excel functions you can use to leverage this: CHAR() and CODE(). 

 

CODE([value representing a character]) will return a value from 1 to 255. =CODE("G"), for example, returns a value of 71. CHAR([number from 1 to 255]) returns the matching character from the ASCII table. =CODE(71) returns a value of G.

 

This chart shows you the values for all ASCII characters. Capital letters are from 65-90. Let's say those are the ones we want to create random strings for. How would we randomly assign a letter? 

 

To solve for that, you're going to start at code 65, then use the RAND() function to create some sort of step. Since the capital letters go from 65 to a number 25 higher than that, multiply the RAND() value by 25, round it, and add it to your initial 65. 

 

That gives us a number value. And since CHAR() decodes numbers as the ASCII equivalent, a letter gets returned: 

 

=CHAR(65+ROUND(RAND()*25,0))

 

You can create as long a string as you like, by concatenating that function ad nauseum. Here's the function to create a random string of three capital letters: 

 

=CHAR(65+ROUND(RAND()*25,0))&CHAR(65+ROUND(RAND()*25,0))&CHAR(65+ROUND(RAND()*25,0))

 

As with numbers, keep a master list of previously-used codes, to avoid duplication issues. 

 

[Pedantic edit: I just tested this with 10,000 values in a workbook. The number of A and Z values are approximately half of all B-Y values. I'm sure that's just due to the hastiness of this solution, and I haven't properly accounted for rounding. The TRUNC() function might work better than ROUND() to deal with the RAND()*25 value.]


Brad Mampe, Salesforce Analyst, Fidelity
I'm probably wrong. I may not be right about that.