How can I send emails with results to my customers?

Sending Results Emails to Customers: A Step-by-Step Guide

Ever wondered how to email your customers their quiz results? This tutorial walks you through the process:

1. Sending Automated Emails via Quiz Kit Mailchimp Account:

  • Available for "Advanced" plans.

  • Go to the "Settings" page > "Results Email Template" tab.

  • Enable "Send Customer Results via Email" and update text, logo, and other settings.

  • Your customers will start receiving result emails.

All emails will be sent from our "Quiz Kit ‑ Shoppable Quizzes" email,

2. Sending Emails via Your Personal Klaviyo Account:

To continue you'll need to be familiar with custom variables and email flows in klaviyo.

  • Available for "Basic" or higher plans.

  • Ensure Klaviyo integration is enabled. Read this tutorial if you need a hand.

  • Add custom properties (provided below) to your Klaviyo setup.

How to create your flow:

  1. Navigate to the Flows tab in Klaviyo.

  2. Click Create Flow.

  3. Click Create From Scratch.

  4. Name your flow and click Create Flow.

  5. Under Trigger setup, click Metric.

  6. Choose the event that should trigger your flow. In this example, we'll use the Quiz Completed event. This ensures that we have access to the needed event data.

  7. Click Done.

  8. Drag and drop an Email action into the flow.

Choose an email template and use custom properties to use dynamic data from your quiz results pages. You have access to the following variables: "Result title", "Result subtitle", "Result description", "Discount code" and "Products". Read this doc to see how to use these variables. Here is an example of code for showing the "Result title": {{ person | lookup: 'Result title' | default: '' }} - you can set default value inside of '' if needed.

How to show your products using dynamic blocks?

Learn how to use dynamic table blocks to add product and other event information to your metric-triggered flows.

Within a metric-triggered flow, you can personalize the content of your emails based on the event that triggers the flow. The dynamic table block will automatically repeat with the information specified for each item.

Before you begin

Before you can jump in, make sure that you have event data to use. Navigate to Analytics > Metrics to make sure the event exists in Klaviyo.

It will also be helpful to understand data types in Klaviyo, particularly lists (i.e., arrays). An array is a way to store multiple pieces of data that are structured the same way. For example, a customer’s Quiz results products are stored as an array within a Quiz Completed event. The items array contains one entry per item ordered, and each entry contains the details for that item (e.g., item title, image, link, quantity, size, color, etc.).

Step 1: add a dynamic table

  1. Click the email block you added to your flow in the last section.

  2. Click Configure Content.

  3. Choose Drag and Drop.

  4. Choose a template to use as your base.

  5. Drag a table block into your email.

  6. Click Table Settings > Dynamic to convert the table into a dynamic block. You’ll see 2 fields appear: Row Collection and Row alias; we’ll complete those fields in the next steps.

  7. Click back to the Content tab to adjust your column types.

  8. In this example your product image will be on the left and details about the product on the right. Click on the left or right row selector, then click Text or Image to change the cell type.

Step 2: identify your row collection

In this step, you'll add the name of the array you plan to iterate over to the Row collection field. To find the name of your array: the appropriate setting for the Row collection field is event.Products

Step 3: choose a row alias

Your row alias can be any text you’d like to use (with no special characters or spaces). You’ll use this alias within your dynamic table block to identify variables that should be pulled from the array you selected above. It’s helpful to choose a simple but descriptive alias, so it’s easy to remember.

In this example, the dynamic table block repeats over a list, so item is a good alias to use.

Once you’ve filled out the Row Collection and Row Alias fields on Table Settings > Dynamic, you’re ready to start building your table.

Step 4: add dynamic product details

After the data source is set up, you can use tags to add text in your email. Since this email is for sending Quiz results, it’s important to show the name of the product left behind, along with other details like a price and link to purchase.

To input the product title in your block:

  1. Navigate to one of the table's columns. If you want an image in the first column and the text in the second, click on the column selector on the right of the block’s Content section.

  2. Simply add {{ item.title }}.

  3. Preview the email to ensure that the title shows up. If it doesn’t appear, double-check the spelling, capitalization, and formatting of the text, as well as your settings in the Table Settings tab, to ensure there are no errors.

Repeat the same steps to add in additional item details: item.price,, item.image

Hyperlinking a product title

To add a hyperlink to the product title:

  1. Find the product URL variable in your event details.

  2. Simply add {{ }}).

  3. Highlight the full variable for the item’s title (e.g., {{ item.title }}).

  4. Click the link icon and paste your URL variable into the URL field.

Step 5: add an image

To insert a dynamic image, find the event variable for the image in the preview modal. Name of the variable is: {{ item.image }}. This is an event variable, which holds the images for this specific item.

  1. Once you have this variable, head to the column where you want to display the image (the left column, in this case).

  2. Click Image under Cell content if it’s currently set to Text.

  3. Click Add Dynamic Image / Browse Image.

  4. In the Dynamic Image tab, paste your image variable into the Dynamic variable or dynamic URL field.

  5. Input the customized image event variable, {{ item.image }}.

  6. Click Save.

  7. Add the product URL variable from step five in the Link address field so the image is clickable.

  8. Set a max width for the image, starting with 250-300 and adjusting as needed.

  9. Once you finish making changes, click Done and preview your email to make sure it appears as expected. If an image doesn’t appear, check the spelling of the variable against the one in the preview modal.

Step 6: preview your email

After completing the steps above, the email template should look similar to the one below.

To see how this would look with dynamic content, and to make sure the links work properly, click Preview and test. If there are any errors, check the spelling and structure of your variables, as well as your Table Settings tab.

You can use these same concepts to build out additional dynamic blocks for flows triggered based on different metrics.


As a recap, follow these steps to build a dynamic table block in your flow email:

  1. Create a metric-triggered flow.

  2. Add a table block and set it to Dynamic.

  3. Use the preview modal to identify your Row collection.

  4. Choose a Row alias.

  5. Add dynamic product details by adjusting the variables.

  6. Add a dynamic image.

  7. Preview.

How to show your products using custom code?

To go loop through the products and display the right data, you need to use the "for" cycle: {% for product in person.Products %}{{ product.title }} - {{ product. price }}{% endfor %} In each product you can display: 1) product.title 2) product.price 3) 4) product.image 5) When your email template is ready publish your email flow live and all new quiz customers that will subscribe will receive a beautiful email with your recommendations!

Last updated