> For the complete documentation index, see [llms.txt](https://docs.intelligems.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.intelligems.io/shipping-experiences/shipping-testing-getting-started/how-to-set-up-a-free-shipping-experience.md).

# How to Set Up a Free Shipping Experience

{% hint style="info" %}
Shipping experiences are available on Smart Shipping and Unlimited plans.
{% endhint %}

{% hint style="danger" %}
**Lowering a threshold or adding one? You're on the right page. Raising one? You need a Shipping Rates experience.**

A Free Shipping experience discounts a qualifying shipping rate to $0. It doesn't remove or hide the free shipping your store already offers, so a group set to a higher threshold still gets free shipping at your existing, lower one. If you have free shipping at $120 today and you want to find out whether $140 holds, build a Shipping Rates experience instead and use the **Threshold Only** rate type. That one replaces your rates while it runs, which is what a higher number requires.

This applies whether your current free rate comes from Shopify or from a third-party rate app.
{% endhint %}

### **What you can build here**

Use a Free Shipping experience when your shipping rates are staying as they are and you're adding a free shipping reward, moving it down, or putting it in front of a specific audience. Intelligems takes the shipping charge to $0 at checkout once the cart meets the requirement you set, the way a discount does. Your Shopify rates stay exactly where they are.

{% hint style="info" %}
Free shipping can also be a perk on one or more tiers of a Volume Discount, so buying more units earns both a discount and free shipping. All tiers share one free shipping configuration.
{% endhint %}

### **Step 1: Create your experience**

Go to **Shipping** in the left menu and click **New Shipping Experience**. On the **Shipping** tab, choose the **Free Shipping** card, then choose **Run a Test** or **Create a Personalization**.

Name your experience using the title at the top of the page. This is internal only, so add enough detail that you'll remember your goal when you review results weeks later.

{% hint style="info" %}
Unlike a Shipping Rates experience, you can run as many Free Shipping experiences as you like at once, including alongside a live Shipping Rates test. Free Shipping installs no carrier rate on your Shopify profiles, which is where that limit comes from.
{% endhint %}

### **Step 2: Create your test groups**

*Tests only. Skip to Step 3 for a Personalization.*

On the **Test Groups** tab, add up to 5 groups by clicking **+**. Name each group and use the slider to allocate a percent of traffic to each. You'll configure a separate offer for each group in the next step, which is how you compare two thresholds.

{% hint style="info" %}
The more groups you have, the longer it will take to get statistically significant results. You'll need about 300 orders for each group in the test to detect a 10% change in conversion with 90% confidence.
{% endhint %}

### **Step 3: Build your offer**

Go to the **Modifications** tab and click **Add offer**, then choose **Free Shipping** and click **Configure offer**. In a test, use the group tabs at the top to configure each group in turn. Leave the control group without an offer if you want to compare against your current setup.

Fill out the following fields:

* **Discount name:** This is the discount name that'll be visible at checkout for customers who receive the discount.
* **Minimum purchase requirements:** Tick this to set your threshold, then choose **Subtotal of items** and enter the cart value, or **Quantity of items** and enter a number of units. The field opens on Quantity, so switch it if you're setting a dollar threshold. Leave the box unticked and free shipping applies to every qualifying order with no minimum at all.
* **Combinations:** Choose whether this offer can combine with **Shopify discounts** and with **Intelligems discounts**. Both are on by default. For a discount to actually stack, it also has to be set to combine on the Shopify side.
* **Free shipping:** Define whether free shipping should be powered by Intelligems, or Shopify.
  * **Powered by Intelligems:** Intelligems discounts shipping to free when a customer has met the requirements you have defined in your Intelligems offer.
  * **Powered by Shopify:** free shipping is powered by Shopify. This option is commonly used when you are just looking to use our shipping progress bar, but keep your free shipping settings within Shopify.
* **Limit ship-to countries:** If free shipping should not be offered to all countries, choose a white list here. Because customers choose ship-to country at checkout, this means they will see the free shipping progress bar and messaging in their cart until they enter checkout and choose their ship-to country, at which point their free shipping discount may be removed.
* **Choose eligible rates:** Configure which of your store's saved shipping rates should be eligible, if not all.
  * **All rates:** discounts every rate to free once your other conditions are met.
  * **Limit to rates under amount:** use this if it would be too expensive for you to discount shipping on large, expensive-to-ship items.
  * **Limit to rates by name:** match on the rate name using *is exactly*, *is not*, *contains*, *does not contain*, *starts with*, or *does not start with*. For example, use "Rate name does not contain *International*" if you have multiple International rates that shouldn't be discounted. Click **+ Add condition** for more than one. A rate that meets at least one of your conditions is discounted, and a rate that meets none of them is not.

This field opens on **Limit to rates by name** with an empty condition, and the offer won't save until you either fill it in or pick another option.

{% hint style="danger" %}
**Your threshold is always measured in your store's default currency.** If your store's default is AUD and your threshold is $100, a shopper checking out in USD qualifies once their cart clears $100 AUD, which can happen well before their cart reads $100 USD. They'll get free shipping without reaching the number they were shown.

If you sell in more than one currency, set the threshold to a value that accounts for the conversion rather than the number you want each market to see, or use currency targeting to limit the experience to one currency.
{% endhint %}

{% hint style="warning" %}
**Free shipping offers apply to one-time purchases only.** Subscription line items don't count toward the minimum purchase requirement, and free shipping isn't applied to a subscription order at checkout. Intelligems offers run on Shopify Discount Functions, which exclude subscription line items.

Free Shipping is also the one offer type without a **Purchase type** selector, so there's no setting to change this yourself. If you need subscriptions included, [contact support](https://portal.usepylon.com/intelligems/forms/intelligems-support-request) and we can enable it for your store. Note that it applies to every Intelligems offer on the store, not just this one.
{% endhint %}

### **Step 4: Add your components**

Components communicate the offer to shoppers, and they're what turns a threshold into a bigger basket. Add them from the panel on the right of the offer settings, then click **Continue to Component** to configure them.

* **Progress Bar** shows shoppers in the cart how much more they need to spend, and confirms it when they get there. Set the **Dynamic progress text (unlock prompt)** and the **reward text**, using the `{}` picker to drop in values like the amount remaining. **Color & Style** controls the bar style, colors, and typography, with a live preview beside it and an **Above threshold** toggle so you can check both states. In a test, each group's bar shows that group's threshold.
* **Offer message** presents the offer on your homepage.

Click **Confirm Changes** when you're done.

{% hint style="warning" %}
Progress bars need a [one-time snippet](/shipping-experiences/shipping-progress-bar-integration.md) in your theme before they'll render. **Headless stores:** components don't work out of the box and you'll need to build your own front-end implementation.
{% endhint %}

If you have text elsewhere on the site naming your current threshold, in an announcement bar or on a shipping FAQ page, click **+ Add modification** and add a Content Edits modification so each group sees copy that matches the offer they're getting.

### **Step 5: Set up targeting if needed**

[Targeting](/general-features/targeting.md) is optional. On the **Targeting** tab, **Audience** covers device type, new versus returning visitors, the source that sent them, and specific countries, with **Custom** adding UTM parameters and landing pages. **Currency** limits the experience to one currency, and by default all visitors are included regardless of currency.

In a Personalization, a **Link** tab replaces Advanced. It builds a URL you can share in an email or an ad, and anyone arriving through it is placed in this Personalization's audience.

### **Step 6: Choose how results are measured**

On the **Configure Analytics** tab, pick your primary metric and up to 7 key metrics to show on the front page of your results. Intelligems records 20+ metrics on every experience.

A threshold is meant to move basket size, so **Average Order Value** is the metric that tells you whether it worked. Pair it with **Profit per Visitor**, which nets out your cost of shipping, to see whether the extra revenue survived the shipping you gave away. A threshold that lifts AOV and loses money shows up in the gap between those two.

### **Step 7: Save and preview**

Save with the green **Save** button in the top right. The **Preview** tab unlocks once it's saved.

On the Preview tab, pick a **Theme** and click **Open preview** to load your site with the Intelligems widget, so you can switch between groups. **Preview on mobile** gives you a QR code and a **Copy link** button to load it on a device.

A few things worth knowing while you preview:

* Shipping charges are calculated at the checkout shipping step, after address entry, so add enough to the cart to clear your threshold and go through to that step.
* You can't switch groups once you're in checkout. Empty the cart, pick another group in the widget, and start checkout again.
* QA in an incognito window. Previewing in a session that already has a group assigned is the usual reason an offer looks wrong.

### **What happens next?**

QA your experience using [this checklist](/shipping-experiences/shipping-test-qa-checklist.md), then start it.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.intelligems.io/shipping-experiences/shipping-testing-getting-started/how-to-set-up-a-free-shipping-experience.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
