How to create personalized SendGrid email campaigns

Building trust is the first step to attracting new users and retaining the old ones. You certainly won't like receiving automated emails that are sent to anybody.

70% of millennials are frustrated with brands sending irrelevant emails. - SmarterHQ
66% of consumers say encountering content that isn’t personalized would stop them from making a purchase. - CMO by Adobe

Sending personalized emails to your users can help build that trust. The old marketing trick is to greet users with their name in your email. However, everyone is doing that that it is hard to stand out. It doesn't feel like it is personalized enough.

How about sending your email with a personalized email banner? It can show that you really care about your users taking the extra time designing a banner just for them!

‌The downside of personalized banner is that it can be costly due to the time it takes to generate each asset for each user, but don't worry we are here to help.

We will show you how to create a personalized email banner that can be embedded in your email campaigns that you can do for all of your users in 5 minutes! We are using SendGrid email campaigns for this example.


You can imagine that your store is running a sale. ‌Our sale banner will look like this. You can find this template in our list of preset templates.

Each banner will be personalized with your customer's first name.

Hana is our intended recipient which we will customize
Enter a caption for this image (optional)
Referring to your customers with their first name rather than full name creates a sense of informality - something that's not written by a bot!

How to

Stencil offers various options to generate an image. Query string URL is the easiest option to use and it fits our use case here. Also, it only takes at most 5 minutes to set this up once you have your template ready.

‌1. Setting up our query string

‌For this template, we are only interested in customizing the recipient's name.

Enter a caption for this image (optional)

‌We create a query string called name that maps to our template's object user (field text).

‌We also set the allowed origins to *. This allows the image to be requested from any origins. For more information about query string, please read the documentation here.

Take note of the Base URL as we are going to use in the next step.

‌2. Embedding the URL in SendGrid template

‌You can either create a new design or edit your existing design. In this example, we are going to create a new simple design.

Creating a custom design
Enter a caption for this image (optional)

‌Once your template is loaded, then drag the Image module to the top of your template. Leave the image empty for now because we are going to generate the image dynamically with our query string URL.

‌Add any other additional modules that fits your requirement.

Enter a caption for this image (optional)

‌Edit the image module's HTML to include our query string URL. Please ensure that the SendGrid template variable is correct.

<img src="{{First_Name}}">

You're set, we are done in just two steps!

‌3. Sending a test email

‌It's always a good idea to test your email campaigns before you send them. Send a test email to see this in action.

Our email viewed inside Gmail
Enter a caption for this image (optional)

‌The variable name has been changed to our user's first name.

Use JPEG to load the image faster due to its smaller size. Stencil also caches the generated image, so any subsequent requests will be faster.

‌It's really easy and the amount of time saved is simply amazing.

‌You can build similar workflow in any other email providers like Mailchimp, Mailgun etc.

With Stencil, you can automate repetitive design work like this. Why do it in 10x the time and cost when you can do it in a fraction of that. This frees up your resources so your marketing agency can stay nimble.

Take on more clients with less work!

Sign up at to get your first free 50 images.

Thanks for reading!

Shulhi Sapli

Shulhi Sapli

Maker of Stencil at