Email CTA Best Practices And CTA Examples

An email CTA (call to action) is the button or link that asks the reader to take one next step, such as "Shop the sale". Email CTA best practices come down to four rules. Start with a verb, say what the reader gets, make it a real button, and place it where the reader is ready to act.

Below are the copy and design rules, placement and click tracking. You also get email CTA examples for nine types of ecommerce email, each with button HTML to copy.

Understanding the Role of CTAs in Email Marketing

CTA stands for call to action. In an email, the CTA is the button or link that turns reading into a click, and click rate measures it. The subject line gets the email opened and the copy makes the case, but the CTA is where the reader acts.

What Is a CTA in an Email?

A CTA in an email is a short instruction with a link, usually styled as a button, such as "Shop the sale". Every email CTA has four parts, and each part has one job:

Part Its job Example
Button text Says what happens after the click Get my 10% code
Link Opens the page that keeps the button's promise The sale page, not the home page
Design Makes the CTA easy to see and to tap A dark button with white text
Placement Shows the CTA when the reader is ready to decide Right under the offer

Why is a CTA Important?

A CTA is important because it is the step between reading an email and acting on it. A CTA does three jobs:

  • A CTA turns interest into action. The reader does not have to work out where to go next.
  • A CTA makes the email measurable. You can compare emails, offers and button texts by click rate.
  • A CTA shows what each reader wants. A click on "Shop running shoes" tells you what to send next.

Primary and Secondary CTAs

The primary CTA is the one action the email exists for. A secondary CTA is a smaller, optional step for readers who are not ready for the first one. Give the primary CTA the button, and make the secondary CTA a text link or an outline button. Then nobody has to guess which one matters.

In a product launch email, for example, "Shop the new collection" is the primary CTA and "Read the fit guide" is the secondary one. Omnisend's email builder has separate Primary, Secondary and Tertiary button styles.

Copy the HTML
<table role="presentation" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center">
      <table role="presentation" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td align="center" bgcolor="#111827" style="background-color:#111827; border-radius:6px; mso-padding-alt:14px 28px;">
            <a href="https://www.example.com/new-collection" target="_blank" style="display:inline-block; padding:14px 28px; font-family:Arial, Helvetica, sans-serif; font-size:16px; font-weight:bold; line-height:20px; color:#ffffff; text-decoration:none; border-radius:6px;">Shop the new collection</a>
          </td>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td align="center" style="padding-top:14px; font-family:Arial, Helvetica, sans-serif; font-size:15px; line-height:22px;">
      <a href="https://www.example.com/fit-guide" target="_blank" style="color:#1d4ed8; text-decoration:underline;">Read the fit guide</a>
    </td>
  </tr>
</table>

Use a coded HTML button for the main CTA, a text link for secondary CTAs, and never an image on its own. A coded button, often called a bulletproof button, is built from HTML and inline CSS instead of an image.

CTA style Best for Watch out for
Coded button (bulletproof) The main CTA in any email Classic Outlook for Windows shows square corners
Text link Secondary CTAs and newsletter stories Easy to miss when it is the only CTA
Image of a button Nothing on its own Hidden by image blocking

The base button below is a one-cell table with inline styles. The other buttons on this page build on the same pattern.

Copy the HTML
<table role="presentation" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center" bgcolor="#1d4ed8" style="background-color:#1d4ed8; border-radius:6px; mso-padding-alt:14px 28px;">
      <a href="https://www.example.com/new-arrivals" target="_blank" style="display:inline-block; padding:14px 28px; font-family:Arial, Helvetica, sans-serif; font-size:16px; font-weight:bold; line-height:20px; color:#ffffff; text-decoration:none; border-radius:6px;">Shop new arrivals</a>
    </td>
  </tr>
</table>

When to use it: as the main CTA in any marketing email. Change the color, the text and the link.

A text link CTA is a bold, underlined link:

Copy the HTML
<a href="https://www.example.com/fit-guide" target="_blank" style="font-family:Arial, Helvetica, sans-serif; font-size:16px; font-weight:bold; line-height:24px; color:#1d4ed8; text-decoration:underline;">Read the fit guide</a>

When to use it: for secondary CTAs, and for links inside a paragraph where a button would be too loud.

Email Call to Action Examples by Email Type

Every CTA button example below is a template: a working HTML button you can paste into an email. Each type of email gets a table of button texts and one rendered button, with its code under "Copy the HTML". The templates are ours, not copies of other brands' emails, so they come with no claimed results.

On a white email background, every text and button color pair has a contrast ratio of at least 4.5:1. That is the minimum the Web Content Accessibility Guidelines (WCAG) set for normal text. Swap in your own link, text and colors, then send yourself a test before you use one.

Sale and Promotion CTAs

A sale CTA should name the offer or the sale, because the offer is the reason the reader opened the email. Repeat the words of the headline on the button, so the reader knows the click leads to that offer.

Button text Use it when
Shop the sale The sale covers the whole store
Get 20% off The discount is the headline
Shop the women's sale You can split the sale by category
Claim my free gift The offer is a gift with purchase
Shop before midnight The sale really ends at midnight
Copy the HTML
<table role="presentation" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center" bgcolor="#b42318" style="background-color:#b42318; border-radius:6px; mso-padding-alt:14px 32px;">
      <a href="https://www.example.com/sale" target="_blank" style="display:inline-block; padding:14px 32px; font-family:Arial, Helvetica, sans-serif; font-size:17px; font-weight:bold; line-height:20px; color:#ffffff; text-decoration:none; border-radius:6px;">Get 20% off</a>
    </td>
  </tr>
</table>

Welcome Email CTAs

A welcome email CTA should deliver what the signup form promised. If the form offered 10% off, show the code and put the button right under it. In a welcome email series, save browsing CTAs such as "Shop bestsellers" for the later emails.

Button text Use it when
Shop with 10% off The welcome offer is a code
Get my 10% code The code appears on the next page
Shop bestsellers New subscribers do not know the range yet
Take the quiz You sell by fit, shade or skin type
Find your size Sizing is the main question new customers ask
WELCOME10
Shop with 10% off
Copy the HTML
<table role="presentation" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center" style="border:2px dashed #1f2937; padding:12px 24px; font-family:Arial, Helvetica, sans-serif; font-size:20px; font-weight:bold; line-height:24px; letter-spacing:2px; color:#1f2937;">WELCOME10</td>
  </tr>
  <tr>
    <td align="center" style="padding-top:16px;">
      <table role="presentation" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td align="center" bgcolor="#1d4ed8" style="background-color:#1d4ed8; border-radius:6px; mso-padding-alt:14px 28px;">
            <a href="https://www.example.com/collections/all" target="_blank" style="display:inline-block; padding:14px 28px; font-family:Arial, Helvetica, sans-serif; font-size:16px; font-weight:bold; line-height:20px; color:#ffffff; text-decoration:none; border-radius:6px;">Shop with 10% off</a>
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>

Abandoned Cart CTAs

An abandoned cart CTA should take the reader straight back to the cart they left, with the items still in it. Use the words "my cart" or "my order", so the reader knows nothing was lost. A full-width button is easy to tap with a thumb.

Button text Use it when
Return to my cart Any cart reminder
Complete my order The reader reached checkout
See my cart The first reminder, soon after the visit
Get free shipping The cart qualifies for free shipping
Ask us a question The last reminder, for readers with doubts

In a flow, replace the example link with your platform's cart or checkout link tag. For complete emails around the button, see our abandoned cart email templates.

Copy the HTML
<table role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center" bgcolor="#111827" style="background-color:#111827; border-radius:6px; mso-padding-alt:16px 24px;">
      <a href="https://www.example.com/cart" target="_blank" style="display:block; padding:16px 24px; font-family:Arial, Helvetica, sans-serif; font-size:17px; font-weight:bold; line-height:22px; color:#ffffff; text-align:center; text-decoration:none; border-radius:6px;">Return to my cart</a>
    </td>
  </tr>
</table>

Back-in-Stock and Price-Drop CTAs

A back-in-stock or price-drop CTA should open the exact product page, because the reader already picked the product. Name the product or the size on the button when it fits.

Button text Use it when
Shop it now The item is back in stock
Pick your size Only some sizes came back
See the new price The price dropped
Buy it again The item is a repeat purchase
Get it before it sells out Stock is truly low, and the email says how many are left
Copy the HTML
<table role="presentation" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center" bgcolor="#047857" style="background-color:#047857; border-radius:24px; mso-padding-alt:14px 36px;">
      <a href="https://www.example.com/products/linen-shirt" target="_blank" style="display:inline-block; padding:14px 36px; font-family:Arial, Helvetica, sans-serif; font-size:16px; font-weight:bold; line-height:20px; color:#ffffff; text-decoration:none; border-radius:24px;">Shop it now</a>
    </td>
  </tr>
</table>

Review and Post-Purchase CTAs

A post-purchase CTA should ask for one small thing at the right moment: tracking before delivery, and a review after the product arrives.

Button text Use it when
Track my order The order has shipped
Write a review The product arrived a few days ago
Rate your order You want a quick star rating first
Show us how you wear it You collect customer photos
Reorder The product runs out, such as coffee or skincare
Copy the HTML
<table role="presentation" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center" style="border:2px solid #1f2937; border-radius:6px; mso-padding-alt:12px 26px;">
      <a href="https://www.example.com/reviews/new" target="_blank" style="display:inline-block; padding:12px 26px; font-family:Arial, Helvetica, sans-serif; font-size:16px; font-weight:bold; line-height:20px; color:#1f2937; text-decoration:none; border-radius:6px;">Write a review</a>
    </td>
  </tr>
</table>

Win-Back CTAs

A win-back CTA should give a lapsed customer a reason to come back now, plus a quiet way to choose fewer emails. In win-back emails, that second option gives readers who want fewer emails a choice other than unsubscribing.

Button text Use it when
See what's new The range changed since their last order
Come back for 15% off You use an offer to win customers back
Shop your favorites You can show items they bought or viewed
Update my preferences As the quiet second option
Keep me subscribed In the last email before you stop sending
Copy the HTML
<table role="presentation" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center">
      <table role="presentation" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td align="center" bgcolor="#6d28d9" style="background-color:#6d28d9; border-radius:6px; mso-padding-alt:14px 28px;">
            <a href="https://www.example.com/new-arrivals" target="_blank" style="display:inline-block; padding:14px 28px; font-family:Arial, Helvetica, sans-serif; font-size:16px; font-weight:bold; line-height:20px; color:#ffffff; text-decoration:none; border-radius:6px;">See what's new</a>
          </td>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td align="center" style="padding-top:12px; font-family:Arial, Helvetica, sans-serif; font-size:14px; line-height:20px; color:#4b5563;">
      Want fewer emails? <a href="https://www.example.com/preferences" target="_blank" style="color:#4b5563; text-decoration:underline;">Update my preferences</a>
    </td>
  </tr>
</table>

Newsletter and Content CTAs

Give every story in a newsletter its own short text link, and save the button for the one story you most want read. Readers pick different stories, so a single button would leave most stories without a next step.

Link text Use it when
Read the guide The story is a how-to article
Watch the video The story is a video
See the full recipe The story is a recipe or tutorial
Download the free guide The story offers a download
Shop the look The story features products

Story title

One sentence on what the reader gets from this story.

Read the guide
Copy the HTML
<table role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td style="padding-bottom:24px; font-family:Arial, Helvetica, sans-serif; color:#1f2937;">
      <p style="margin:0 0 8px; font-size:18px; line-height:24px; font-weight:bold;">Story title</p>
      <p style="margin:0 0 8px; font-size:16px; line-height:24px;">One sentence on what the reader gets from this story.</p>
      <a href="https://www.example.com/journal/story-2?utm_source=newsletter&amp;utm_medium=email&amp;utm_campaign=june_newsletter&amp;utm_content=story2_link" target="_blank" style="font-size:16px; font-weight:bold; line-height:24px; color:#1d4ed8; text-decoration:underline;">Read the guide</a>
    </td>
  </tr>
</table>

Event, Webinar and Sign-Up CTAs

An event or sign-up CTA should make registering one click and say what the reader signs up for. If registration closes at a set time, a countdown timer shows the real deadline inside the email. Keep both labels short, so the two buttons fit side by side on a phone.

Button text Use it when
Save my seat Seats are limited
Register free The event is free
Start my free trial You offer a free trial
Join the waitlist The product is not out yet
Add to calendar As the second option, for people who already registered
Copy the HTML
<table role="presentation" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center" bgcolor="#0f766e" style="background-color:#0f766e; border-radius:6px; mso-padding-alt:14px 18px;">
      <a href="https://www.example.com/events/register" target="_blank" style="display:inline-block; padding:14px 18px; font-family:Arial, Helvetica, sans-serif; font-size:15px; font-weight:bold; line-height:20px; color:#ffffff; text-decoration:none; border-radius:6px;">Save my seat</a>
    </td>
    <td width="12" style="font-size:12px; line-height:12px;">&nbsp;</td>
    <td align="center" style="border:2px solid #0f766e; border-radius:6px; mso-padding-alt:12px 16px;">
      <a href="https://www.example.com/events/calendar.ics" target="_blank" style="display:inline-block; padding:12px 16px; font-family:Arial, Helvetica, sans-serif; font-size:15px; font-weight:bold; line-height:20px; color:#0f766e; text-decoration:none; border-radius:6px;">Add to calendar</a>
    </td>
  </tr>
</table>

Social and Referral CTAs

A referral or social CTA should say what both people get, or what the reader will find on the other side. Put social links after the main CTA, never before it.

Button text Use it when
Give $10, get $10 The reward is the same for both people
Share my link The reader already knows the program
Follow us for early access You post launches on social media first
Tag us in your photos You want customer photos
Join our community You run a group or forum
Copy the HTML
<table role="presentation" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center">
      <table role="presentation" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td align="center" bgcolor="#be185d" style="background-color:#be185d; border-radius:6px; mso-padding-alt:14px 28px;">
            <a href="https://www.example.com/refer" target="_blank" style="display:inline-block; padding:14px 28px; font-family:Arial, Helvetica, sans-serif; font-size:16px; font-weight:bold; line-height:20px; color:#ffffff; text-decoration:none; border-radius:6px;">Give $10, get $10</a>
          </td>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td align="center" style="padding-top:16px; font-family:Arial, Helvetica, sans-serif; font-size:14px; line-height:20px; color:#4b5563;">
      <a href="https://www.instagram.com/yourbrand" target="_blank" style="color:#1f2937; text-decoration:underline;">Instagram</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="https://www.tiktok.com/@yourbrand" target="_blank" style="color:#1f2937; text-decoration:underline;">TikTok</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="https://www.pinterest.com/yourbrand" target="_blank" style="color:#1f2937; text-decoration:underline;">Pinterest</a>
    </td>
  </tr>
</table>

How Do You Write a Call to Action in an Email?

Start with a verb, name what the reader gets, and keep the button to a short phrase: "Get my 10% code" says more than "Submit". Five rules cover most emails:

  1. Start with a verb. Shop, get, claim, book, track, read, save.
  2. Name what the reader gets. A reward or a result tells the reader why to click.
  3. Keep it short. Two to five words usually fit on one line on a phone.
  4. Match the headline. If the headline says "20% off linen", the button says "Shop the linen sale", not "Learn more".
  5. Use urgency only when it is true. Write "Ends tonight" only if the sale ends tonight.

Here are weak CTAs next to stronger versions:

Weak CTA Stronger CTA Why the stronger one works
Click here Shop the sale Names where the click goes
Submit Get my 10% code Names what the reader gets
Learn more Read the sizing guide Says what the reader will learn
Buy now Shop the linen shirt Names the product
Sign up Save my seat Fits the event
You might want to consider our offer Claim 15% off Starts with a verb and names the offer

Call to Action Phrases by Goal

Pick the call to action phrase by the one thing you want the reader to do next:

Goal Call to action phrases
Buy Shop the sale, Get 20% off, Add to cart, Shop new arrivals
Browse See the collection, Shop bestsellers, Find your size
Sign up Save my seat, Join the waitlist, Start my free trial
Review Write a review, Rate your order, Share a photo
Refer Share my link, Invite a friend, Send my friend 15% off
Reply Reply to this email, Tell us what you think

"My" or "Your" in the Button?

There is no fixed rule, so test both on your own list. First person, such as "Start my free trial", reads as the reader's own words. Second person, such as "Start your free trial", reads as the brand talking. Change only that one word in the test, and compare the click rates.

What Is a Soft CTA?

A soft CTA asks for a small, low-pressure step, such as "Read the guide" or "See how it works", instead of a purchase. A hard CTA asks for the sale or a commitment, such as "Buy now" or "Book a call". Use soft CTAs early in a welcome series and in newsletters, while the reader is still deciding. Use hard CTAs once the reader has shown intent, for example in a cart reminder.

Best Practices for Creating Effective Email CTAs

Use one primary CTA and make it a real HTML button with strong contrast and room to tap. Put it where the reader decides, and send the click to a page that keeps the button's promise. The email call to action best practices below cover one rule each.

Use One Primary CTA per Email

An email should have one primary CTA: one main action that gets the button style, with every other link styled smaller. Klaviyo's own editor guide suggests only a few buttons per email, because buttons are used for CTAs.

You can repeat the primary CTA in a long email, near the top and again at the end. Every copy should lead to the same goal, and secondary actions go in text links.

Make It a Real Button, Not an Image

Code the CTA as an HTML button. An image of a button disappears when images are blocked, and screen readers may not be able to read it (Litmus). Classic Outlook for Windows, for example, blocks automatic picture downloads by default.

Coded buttons need one fix for classic Outlook for Windows, which applies padding to table cells but not to links (Can I Email). Classic Outlook also shows square corners (Litmus). The table buttons on this page work around the padding gap:

  • The table cell carries Outlook's padding through mso-padding-alt, an Outlook style for cell padding (Email on Acid).
  • The link carries the padding that Gmail, Apple Mail and other apps use.
  • In classic Outlook, the corners stay square and only the button text is clickable. In Gmail and Apple Mail, the whole button is clickable.

To make the whole button clickable in classic Outlook too, use the conditional-padding button that Litmus uses itself. Hidden spacers inside Outlook-only comments give Outlook its padding. The corners still show square in Outlook, and you may need to adjust the spacer values to your font size.

Copy the HTML
<table role="presentation" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center">
      <a href="https://www.example.com/sale" target="_blank" style="background-color:#1d4ed8; font-family:Arial, Helvetica, sans-serif; font-size:16px; font-weight:bold; line-height:20px; color:#ffffff; text-decoration:none; padding:14px 28px; border-radius:6px; display:inline-block; mso-padding-alt:0;">
        <!--[if mso]><i style="mso-font-width:100%; mso-text-raise:30pt;" hidden>&emsp;</i><span style="mso-text-raise:50%;"><![endif]--><span style="mso-text-raise:15pt;">Shop the sale</span>
        <!--[if mso]></span><i style="mso-font-width:100%;" hidden>&emsp;&#8203;</i><![endif]-->
      </a>
    </td>
  </tr>
</table>

Rounded corners in classic Outlook need VML (Vector Markup Language), an old Microsoft drawing format (Can I Email). Litmus advises against it: VML adds accessibility complications, and some email platforms do not track clicks on the VML link (Litmus).

Repeat the main CTA as a plain-text link further down the email, so readers can still act if the button does not render.

In an email platform, the button block builds a coded button for you. Klaviyo's Button block takes the text, link, colors, corner radius and padding. Omnisend's Button block uses Primary, Secondary and Tertiary styles that you set once in the email settings. Use the hand-coded buttons on this page in custom HTML templates. If you would rather not maintain button styles yourself, a Klaviyo agency can build them into every flow and campaign template once.

If emails are not reaching the inbox at all, start with these email deliverability issues.

Size, Contrast and Tap Targets

Make the button at least 44 by 44 pixels, and give its text a contrast ratio of at least 4.5:1 against the button color. Both numbers come from WCAG 2.2, the accessibility standard from the World Wide Web Consortium (W3C). WCAG grades its rules A, AA and AAA, from basic to strictest:

  • Size. WCAG sets a minimum target size of 24 by 24 CSS pixels at level AA (success criterion 2.5.8). Level AAA asks for 44 by 44 CSS pixels (success criterion 2.5.5). Aim for 44. The coded buttons on this page are at least 48 pixels tall.
  • Text contrast. Normal text needs 4.5:1 against its background (success criterion 1.4.3). Text of 18 point, or 14 point bold, counts as large and needs 3:1. Button text at 16 pixels bold is normal text, so use 4.5:1.
  • A worked example. By the WCAG formula, white text on the blue #1d4ed8 is about 6.7:1 and passes. White text on the light gray #9ca3af is about 2.5:1 and fails.
  • Button shape. If the shape is what tells people it is a button, give the shape at least 3:1 against the email background (success criterion 1.4.11).
  • Clear space. Leave space around the button, so no other link sits close enough to be tapped by mistake.
  • Dark mode. Some email apps change colors in dark mode, fully or in part (Omnisend). Preview the email in dark mode and check that the button text is still easy to read.

Where Should the CTA Go in an Email?

Put the main CTA near the top of the email, and repeat it at the end of a long one. In both cases, the button goes where the reader has enough information to act.

  • Short emails, such as a sale announcement or a cart reminder: show the CTA on the first screen, before any scrolling. Email designers call this area above the fold.
  • Long emails, such as a product story: show the CTA near the top for readers who are ready, then repeat it at the end.
  • Right after the offer: put the button directly under the headline or the discount it refers to.
  • Heavy emails: on desktop, Gmail clips emails larger than about 102 KB and shows a "View entire message" link instead of the rest (Klaviyo). A CTA at the very end of a heavy email can disappear behind that link, so keep the code lean and the first CTA high.

After the last CTA, close with a short sign-off instead of more links. For wording that fits, see how to end an email.

Match the Landing Page to the CTA

Send every click to a page that delivers exactly what the button promised: "Shop the linen sale" should open the linen sale, not the home page. A reader who lands somewhere else has to search again. Check these points before each send:

  • The page shows the product or offer named on the button.
  • The discount from the email applies at checkout, or the page says how to use the code.
  • The page loads quickly and works on a phone.
  • A sold-out product page shows an alternative instead of a dead end.

Test One Change at a Time

To optimize email CTAs, test one change per send, such as the button text or the button color. Then you know which change moved the clicks.

  • Start with the words. Button text is the easiest change to make and to compare.
  • Judge by clicks and orders, not opens. With Mail Privacy Protection on, Apple Mail can load an email's images without the reader opening it (Apple). Open counts run high as a result.
  • Test per segment when audiences differ. The button text that works for first-time buyers may not be the one that works for repeat customers.
  • Use your platform's A/B test. Klaviyo and Omnisend both test two versions of a campaign and can tag the links of each version separately (Klaviyo, Omnisend).

Common Mistakes to Avoid with Call to Action in Email

Avoid these eight mistakes, from vague wording to buttons made of images:

  • Being Too Vague: "Click here" and "Submit" say nothing about the result.
  • Overloading with CTAs: Buttons with different goals compete for the same click.
  • Ignoring Mobile Optimization: Many people read email on a phone, so the button must be easy to tap.
  • Using Passive Language: "You might want to consider our offer" asks for nothing.
  • Poor Placement: A CTA buried at the end of a long email is easy to miss.
  • Neglecting Design Consistency: Use one button style across your emails, in your brand colors.
  • Forgetting to Test: Click every link in a test send before you schedule the email.
  • Using an Image as the Button: An image button disappears when images are blocked.

How to Track Email CTA Clicks

Give every CTA its own UTM tags, then compare clicks per link in your email platform's report and conversions per link in your analytics. Those two numbers show which CTA to optimize next. UTM tags are short labels at the end of a link that tell Google Analytics where a visit came from.

Click Rate or Click-to-Open Rate?

Use click rate as the main measure of a CTA, and click-to-open rate as a second check on the content. Click rate does not depend on open tracking, which makes it the steadier number.

  • Click rate is the share of people who clicked a link out of the people who received the email. Klaviyo's campaign analytics guide defines it this way.
  • Click-to-open rate divides clicks by opens, so it shows how well the content and the CTA worked for the people who opened. Our guide to click-to-open rate compares it with other engagement metrics.

Add UTM Tags to Every CTA

Add utm_source, utm_medium and utm_campaign to every link, and give each CTA its own utm_content value. Google's Analytics help says to always use the first three, and uses utm_content to tell apart two CTA links in the same email.

Tag What it records Example value
utm_source Where the visit came from newsletter
utm_medium The channel email
utm_campaign The campaign or flow spring_sale
utm_content The exact link that was clicked hero_button

Two buttons that open the same page, told apart by utm_content:

https://www.example.com/sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale&utm_content=hero_button
https://www.example.com/sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale&utm_content=footer_link

Klaviyo and Omnisend can add UTM tags to every link for you:

  • Klaviyo: turn on "Automatically add UTM parameters to links" under Settings, Other, UTM tracking. Klaviyo requires utm_source and utm_medium there, and you can add up to five custom parameters (Klaviyo).
  • Omnisend: UTM tags are added to every link automatically, and you can edit them but not remove them. Every link in one campaign gets the same source, medium and campaign values (Omnisend). To tell buttons apart, add your own parameter to each button's link and check the tagged URL in a test send.

Klaviyo and Omnisend both report clicks link by link, so you can compare the top button with the footer link without opening Google Analytics.

  • Klaviyo: open the campaign report and go to the Link Activity tab. The tab lists total and unique clicks per link, and its Visual view shows the clicks on top of the email. Klaviyo records clicks per unique URL, so two buttons with the exact same link show as one row (Klaviyo).
  • Omnisend: open Reports, then Campaigns, select the campaign, and click View Clickmap to see the clicks on the email itself. The Link Activity tab lists total clicks, unique clicks and the share of recipients who clicked each link. Click maps cover campaigns only, so use Link Activity for automations (Omnisend).

For newsletter CTA tracking, tag every story link with its own utm_content value, such as story1_link, and compare results story by story.

  • Clicks per story show what readers want more of.
  • Orders per story, from Google Analytics, show which stories lead to sales.
  • The same names in every issue let you compare stories over time.

Email CTA Best Practices Checklist

Run these eleven checks before every send:

  • The email has one primary CTA, and every other link looks secondary.
  • The button text starts with a verb and names what the reader gets.
  • The button text is two to five words and fits on one line on a phone.
  • The button is coded HTML, not an image.
  • The main CTA also appears as a plain-text link.
  • The button is at least 44 by 44 pixels, with clear space around it.
  • The button text has a contrast ratio of at least 4.5:1 against the button color.
  • The main CTA shows on the first screen, and again at the end of a long email.
  • Each link opens the page the button promised.
  • Every CTA link has UTM tags, with its own utm_content value.
  • You sent a test and clicked every link in Outlook, Gmail and Apple Mail, in light and dark mode.

Email CTA FAQs

How many CTAs should an email have?

An email should have one primary CTA. You can repeat it in a long email and use text links for secondary actions.

What is a good call to action example?

"Get 20% off your first order" is a good call to action example. It starts with a verb, names the reward and fits on a button. "Click here" is a weak one, because it says nothing about what happens after the click.

What does CTA stand for?

CTA stands for call to action. In email marketing, the CTA is the button or link that asks the reader to take the next step, such as "Shop now".

Use a coded HTML button for the main CTA and text links for secondary ones. A button is easier to see and to tap than a link.

Which CTAs work best in automated emails?

To optimize CTAs in automated emails, match each CTA to the event that sent the email. Use "Return to my cart" in a cart reminder, "Write a review" after delivery and "See what's new" in a win-back. The reader already showed intent, so the CTA should continue that step.

Good email CTAs start with a verb, are coded in HTML, carry tagged links and lead to a page that keeps the promise. Enflow Digital is an ecommerce email marketing agency that builds and tests CTAs inside email flows and campaigns. It works as a Klaviyo email marketing agency and also builds email in Omnisend.

Written by

Co-Founder, Head of Growth

Julius Urbanavicius is a co-founder of Enflow Digital and its head of growth. Before the agency he built international ecommerce brands, where email proved the most reliable sales channel. He writes about ecommerce email and SMS marketing on Klaviyo and Omnisend.

Want this done for your store?

Enflow Digital plans, writes and runs email and SMS programs for ecommerce stores. Book a call and we will show you what to fix first.

Book a free strategy sessionContact us