You will learn

Learn how to integrate Volusion with Klaviyo. After completing these steps, you'll be able to personalize and target emails based on synced order data and customer properties.

From Volusion, Klaviyo tracks Ordered Product and Placed Order metrics. With the additional code in this article, you can also track Started Checkout events to trigger abandoned cart reminders.

Before you begin

Volusion requires an update to your Volusion store's administrator account password every 90 days. When you change this password in Volusion, your Klaviyo integration also needs the updated API key/encrypted password. If you need help replacing the integration credentials, contact Klaviyo Support using the link in the troubleshooting section. You can also create a permanent API key by following the steps in the corresponding section of this article.

Before starting setup, have your Volusion store URL, administrator login email, and API key/encrypted password ready. If you need an API key, follow How to create a permanent API key in Volusion below first. You also need permission to manage integrations in Klaviyo.

Add the Volusion integration in Klaviyo

  1. In Klaviyo, select the Integrations tab.
  2. Select Explore apps.
  3. Search for Volusion and click the card, then click Install.
  4. On the next page, enter your Store URL, Login email, and API key / encrypted password. Then, click Connect to Volusion.
  1. On the next page, select Add new Volusion customers to a Klaviyo list if you want customers marked as email subscribers in Volusion to be added to a Klaviyo list when their orders sync. Then choose the list under Select a list.
  2. Finally, click Complete setup.

Disable email to website tracking in Klaviyo

Email to website tracking identifies visitors who arrive at your website through a Klaviyo email link.

Volusion does not support the URL format that our click tracking uses and produces an error when a user tries to visit your store through one of these links, so this feature will have to be disabled in Klaviyo to make sure links in your email follow through to your Volusion store correctly.

  1. Click your account name, then select Settings > Email > Tracking.
  2. Clear Turn on email-to-website activity tracking, then click Save.

Disabling this setting stops email links from identifying visitors on your website. Onsite tracking can still associate activity with visitors identified in their browser, such as through a Klaviyo sign-up form or the checkout snippet below. Syncing a Volusion order alone does not identify the visitor’s browser.

Add onsite tracking to your Volusion store

Klaviyo provides 2 onsite tracking snippets to help you collect valuable information about your customers:

  • Active on Site
    This snippet tracks when your customers visit your site. This snippet must be added to the site in order for other snippets such as Viewed Product to work.
  • Viewed Product
    This snippet tracks when your customers view specific products. You can track this event by adding the Viewed Product code snippet to your store.

Add Active on Site tracking

Add the following Klaviyo.js snippet so that it appears on every page on your website. This will enable Active on Site tracking and Klaviyo forms. Make sure to replace PUBLIC_API_KEY with your Klaviyo public API key.

text
<script type="application/javascript" async="" src="https://static.klaviyo.com/onsite/js/PUBLIC_API_KEY/klaviyo.js"></script>
<script type="text/javascript"> 
//Script to initialize Klaviyo object on page load
!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}(); </script>

Add Viewed Product tracking

To enable Viewed Product tracking, you will need to add the snippet of code below to your store's template page in Volusion's File Editor, which you can find by clicking Design > File Editor.

text
<script type="text/javascript">
// Check to see if the customer is on the product page before executing code.
    if ($("meta[property='og:type']").attr("content") == "product") {
        var klaviyo = window.klaviyo || [];
        // Function to track when a product is viewed
        var trackViewedProduct = function(item) {
            klaviyo.track("Viewed Product", item);
            klaviyo.trackViewedItem({
                "Title": item.ProductName,
                "ItemId": item.ProductID,
                "ImageUrl": item.ImageURL,
                "Url": item.URL,
                "Metadata": {
                    "Price": item.Price,
                    "Description": item.Description,
                    "CompareAtPrice": item.CompareAtPrice,
                    "YouSave": item.YouSave
                }
            });
        };
        var item = {}
        $.get(`/ProductDetails.asp?ProductCode=${global_Current_ProductCode}`, function(data) {
            var product_saleprice = $("table.colors_pricebox div.product_saleprice").length ?
                Number(`${$("table.colors_pricebox div.product_saleprice").text().trim().split("$")[1].split(".")[0]}.${$("table.colors_pricebox div.product_saleprice").text().trim().split("$")[1].split(".")[1].substring(0,2)}`) : null;
            var product_listprice = $("table.colors_pricebox div.product_listprice").length ?
                Number(`${$("table.colors_pricebox div.product_listprice").text().trim().split("$")[1].split(".")[0]}.${$("table.colors_pricebox div.product_listprice").text().trim().split("$")[1].split(".")[1].substring(0,2)}`) : null;
            var product_productprice = $("table.colors_pricebox div.product_productprice").length ?
                Number(`${$("table.colors_pricebox div.product_productprice").text().trim().split("$")[1].split(".")[0]}.${$("table.colors_pricebox div.product_productprice").text().trim().split("$")[1].split(".")[1].substring(0,2)}`) : null;
            var product_yousave = $("table.colors_pricebox div.product_yousave").length ?
                Number(`${$("table.colors_pricebox div.product_yousave").text().trim().split("$")[1].split(".")[0]}.${$("table.colors_pricebox div.product_yousave").text().trim().split("$")[1].split(".")[1].substring(0,2)}`) : 0;
            item = {
                "ProductName": $("meta[property='og:title']").attr("content"),
                "ProductID": global_Current_ProductCode,
                "Description": $("meta[property='og:description']").attr("content"),
                "ImageURL": $("meta[property='og:image']").attr("content"),
                "URL": $("meta[property='og:url']").attr("content"),
                "Price": product_saleprice ? product_saleprice : product_productprice,
                "CompareAtPrice": product_listprice ? product_listprice : product_productprice,
                "YouSave": product_yousave
            };
            trackViewedProduct(item);
        });
    } 
</script>

Add abandoned cart reminders

Volusion does not provide an out-of-the-box way to track abandoned carts through our integration, but we have created a custom script you can add to your Volusion store which will allow you to use this feature in Klaviyo. This will require some knowledge of adding code to your shop's template so if you have a developer, you can send them this doc to walk through adding the code.

The abandoned cart feature will only work for Volusion stores using the one page checkout feature, and stores that do not require a user to have an account before making a purchase.

  1. After adding the Klaviyo.js snippet above, add the checkout snippet below to your store’s template page in Volusion’s File Editor, under Design > File Editor, and save your changes.
text
<script type="text/javascript">
    // Check to see if the customer is on the checkout page before executing code.
    if (window.location.pathname == "/one-page-checkout.asp") {
        var klaviyo = window.klaviyo || [];
        // Function to track when a checkout is started.
        var trackStartedCheckout = function() {
            $.post('/AjaxCart.asp', function(data) {
                if (!data || !data.Products || !data.Products.length) {
                    return;
                }
                var items = [],
                    names = [],
                    skus = [];
                // Grab each product and its SKU/Name/Quantity/Price/Total price/Image url
                $.each(data.Products, function(i, record) {
                    var item_price = +(record.ProductPrice.replace(/[\$,]+/g, '')) / record.Quantity;
                    items.push({
                        SKU: record.ProductCode,
                        Name: record.ProductName,
                        Quantity: +record.Quantity,
                        ItemPrice: item_price,
                        RowTotal: item_price * record.Quantity,
                        ImageURL: record.ImageSource
                    });
                    names.push(record.ProductName);
                    skus.push(record.ProductCode);
                });
                // Push Started Checkout metric to Klaviyo with the customers data.
                klaviyo.track("Started Checkout", {
                    $value: +(data.Totals[0].CartTotal.replace(/[\$,]+/g, "")),
                    Items: items,
                    ProductNames: names,
                    SKUs: skus
                });
            }, 'json');
        };
        $(function() {
            // Grab the email form to get your customers email and tie the event to that email in Klaviyo.
            $('[name="OnePageCheckoutForm"] [name="Email"]').change(function(e) {
                var email = $(this).val();
                // Do some light validation. Klaviyo will do more validation when the data is received.
                if (email && /@/.test(email)) {
                    klaviyo.identify({
                        $email: email
                    });
                    trackStartedCheckout();
                }
            });
        });
} </script>

This code will only be able to track checkout events going forward; you will not be able to back-populate abandoned cart flows inside Klaviyo.

  1. Test your one-page checkout with a product in the cart. Enter a valid email address, then leave the email field. Open Analytics > Metrics in Klaviyo and look for Started Checkout. This event is triggered by the email-field change, and you can use it to trigger an abandoned cart flow.

Monitor the Klaviyo sync

  1. Once integrated with Volusion, Klaviyo will need time to sync your data before it is ready to be used. To check the sync, open Integrations, select Volusion, and open the Data tab.
  2. Under Historical data, check Sync progress. The bigger your store, the longer a sync can take. When the import finishes, this section confirms that your historical orders and customers have synced.
  3. Klaviyo imports historical orders and their associated customer data when you first enable the integration. After the sync finishes, compare the number of orders on a particular day with the Volusion interface. For example, when exploring the Placed Order metric (under Analytics > Metrics in Klaviyo) you can mouse over yesterday's data point or look at the table of data below the chart to see how many orders were reported yesterday.
  4. Compare that number with Volusion’s orders for the same day. If the totals differ, check that the sync has finished and that the time zones match. Klaviyo also skips orders without a payment amount or a valid customer email address, so a difference does not always mean a time-zone issue.
  5. To check or update your account's time zone:
    1. Click your account name in the lower left.
    2. Select Settings > General > Account.
    3. Scroll to Time zone. If you change the selection, click Save.

Data synced from Volusion

Navigate to Analytics > Metrics to find all of the metrics in your account. The metrics with a Volusion icon are synced from your Volusion integration. After the initial sync, Klaviyo checks for new orders and their associated customer properties every hour.

Metrics tab in Klaviyo filtered by Volusion showing metrics Placed Order and Ordered Product
Metrics tab in Klaviyo filtered by Volusion showing metrics Placed Order and Ordered Product

Placed Order

This event is tracked when Klaviyo syncs an order from your Volusion store with a payment amount and a valid customer email address. The event uses the order’s original date and time. The Placed Order event includes all relevant information about the items someone purchased including product names, product codes, images, and price information so you can use that information in purchase follow up emails.

Ordered Product

This event is tracked for each unit purchased in an order. For example, if someone buys a t-shirt and a pair of pants, 1 Placed Order event is tracked and 2 Ordered Product events: 1 for the t-shirt and 1 for the pants. If they buy 2 of the same t-shirt, Klaviyo also records 2 Ordered Product events.

The Ordered Product event includes detailed information about each product purchased. This is useful when creating behavioral segments based on the products someone bought. You can filter and target Ordered Product events based on the following criteria:

  • Name
    The name or title of the product in Volusion, e.g., t-shirt.
  • Product Code
    The product code for your product inside of Volusion.
  • Quantity
    This is 1 for each Ordered Product event because Klaviyo records a separate event for each unit purchased.

Customer data synced from Volusion

In addition to the above metrics Klaviyo syncs from Volusion, there are also customer properties that are added to each Klaviyo profile. You can use these properties in segments and flows. Here are the properties that are automatically synced from Volusion:

  • Email
  • First Name
  • Last Name
  • City
  • State/Region
  • Zip Code
  • Country
  • Phone Number
  • Source (Klaviyo will track customers from Volusion with a Source property on their profile set to "Volusion")

Troubleshooting

Volusion Placed Order data isn’t reporting in Klaviyo

This may be an issue with your Volusion API settings that allow data to be exported.

  1. To fix this, navigate to the Inventory tab of your Volusion admin panel. Select Import/Export from the dropdown menu.
Inventory dropdown in Volusion with Import/Export in blue
Inventory dropdown in Volusion with Import/Export in blue
  1. Click on Volusion API to access the main API page.
  2. In the Generic section, you will find the option to Run the export of your store’s Generic/Orders. Once the export is run, the page will refresh.
Import/Export page in Volusion with mouse over Run for Generic\Orders
Import/Export page in Volusion with mouse over Run for Generic\Orders
  1. Select all columns by clicking the checkbox in the column named * and click Run.
Volusion API: Run Generic\Orders page with asterisk column checked
Volusion API: Run Generic\Orders page with asterisk column checked
  1. After clicking Run to export your Generic Orders, an API URL is generated at the top of the page. For example, the URL would appear as: https://storename.com/net/WebService.aspx?Login=user@storename.com&EncryptedPassword=ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789&EDI_Name=Generic%5COrders.
API key highlighted within link on page Volusion API: Run Generic\Orders
API key highlighted within link on page Volusion API: Run Generic\Orders
  1. The value after EncryptedPassword= and before the next & is your API key (highlighted in the screenshot above). If your Klaviyo integration needs updated credentials, use the Support link in the next step for help replacing them.
  2. After the export settings and credentials are corrected, allow the next hourly sync to run, then open Analytics > Metrics. View recent activity for the Volusion Placed Order metric to see whether new data has synced. If orders are still missing or new orders do not appear, contact our Support team for help restoring the sync and filling gaps in your order history.
  3. For additional information on exporting data using the Volusion API, please refer to Volusion support.

People see an "Invalid Input" error when clicking my email links

Email to website tracking identifies visitors who arrive at your website through a Klaviyo email link.

Volusion does not support the URL format that our click tracking uses and produces an error when a user tries to visit your store through one of these links, so this feature will have to be disabled in Klaviyo to make sure links in your email follow through to your Volusion store correctly.

To fix this issue, disable email to website tracking under Settings > Email > Tracking as described at the beginning of this article.

How to create a permanent API key in Volusion

Normally Volusion will require you to reset your API key every 90 days when you reset the password on your account, causing you to need to reconfigure your Volusion integration in Klaviyo. The following steps will allow you to create a non-expiring API key instead; it involves generating API credentials for an admin account you never log in to:

  1. From your Volusion admin panel, go to Customers > Administrators and create a new administrator account.
  2. Navigate to Inventory > Import/Export and select the Volusion API tab.
  3. Under the Generic section, click the link for Volusion API Integration Help.
  4. Select Export and select the new admin you created from the dropdown.
  5. Expand the "URL with Query String..." box to find your permanent URL, login, and encrypted password (API Key).

Do not log in with this account, it will be used for API access only. Logging in with this account will cause the password to expire after 90 days and you will need to redo these steps to generate a new permanent API key.

Outcome

You've now integrated Klaviyo with Volusion, added onsite tracking, reviewed your synced data, and learned how to create a permanent API key.

Additional resources

Was this article helpful?
Use this form only for article feedback. Learn how to contact support.

Explore more from Klaviyo

Community
Connect with peers, partners, and Klaviyo experts to find inspiration, share insights, and get answers to all of your questions.
Partners
Hire a Klaviyo-certified expert to help you with a specific task, or for ongoing marketing management.
Support

Access support through your account.

Email support (free trial and paid accounts) Available 24/7

Chat/virtual assistance
Availability varies by location and plan type