---
title: "FAQ"
description: "Answers to common questions from Shopify merchants evaluating Quikly."
---

Common questions we hear from merchants evaluating Quikly. If yours isn't here, reach out — we'll answer it and add it.

## Can Quikly read live Shopify inventory and show "X units left" in a popup?

Quikly works on offer limits rather than live SKU stock, which plays nicely with scarcity messaging. You set a redemption cap (a bit below your available units) and the campaign enforces it in real time.

So if you have 55–60 units pre-promo, you'd run something like "only the next 50 orders get X% off" with a live countdown as purchases come in. The cap becomes the marketing hook — and because it's enforced by Quikly, you don't have to worry about overselling if Shopify's inventory count drifts.

Related: [Campaign Ideas](/shopify/campaign-ideas/)

## Can I target only low-intent users?

Yes. The strongest lever is **list segmentation via an activation link**. Quikly campaigns can be gated to a specific link, so the offer is only visible to traffic you send to it — e.g. email subscribers who haven't engaged in the last 6 months. That gives you a clean, defined audience, predictable volume, and clear attribution.

You can also layer in on-site signals like exit intent, and suppress the campaign for logged-in repeat customers. We generally recommend leading with the segmented activation link though — it's a more precise definition of "low intent" than behavioral guesses, and it measures better.

Related: [Klaviyo integration](/integrations/klaviyo/), [Visibility controls](/shopify/tutorials/visibility-controls/)

## How long does it take to install and launch a first campaign?

Quikly installs from the Shopify App Store and the storefront extension drops into your theme without code changes. Most merchants are live with a first campaign the same day — configure the offer, set the cap and timing, point it at the audience or pages you want, and publish.

Related: [Getting Started](/shopify/getting-started/), [Offer configuration](/shopify/tutorials/offer-configuration/)

## Will Quikly slow down my storefront?

No. The app extension is built against Shopify's performance requirements (no more than a 10-point Lighthouse drop, which is the Built for Shopify bar). We continuously test against a clean storefront baseline.

Related: [Shopify App Performance](/reference/performance/)

## Does it work with a headless Shopify store?

Yes — Quikly has a headless integration path for Hydrogen and custom storefronts using our JavaScript SDK.

Related: [Headless](/shopify/headless/), [JavaScript SDK](/javascript-sdk/overview/)

## How are discount codes generated and delivered?

Quikly generates and manages standard Shopify discount codes on your behalf — no manual setup in the Shopify admin.

## Can I reuse the same discount code across campaigns?

No. Because Quikly controls the total number of uses for each offer code, every campaign needs its own unique code. If you're reusing a base code across many campaigns and running out of variations, two easy options:

- **Append the date** to the code — for example, `TENOFF0530` for a campaign starting May 30th.
- **Leave the discount code blank** when configuring the offer, and Quikly will auto-generate a unique code for you.

Related: [Configuring Offers](/shopify/tutorials/offer-configuration/)

## Can I run Quikly inside Shopify Checkout?

Yes. Our checkout extension lets you surface urgency messaging and offers inside the checkout itself, which is otherwise locked down on Shopify Plus.

Related: [Checkout Extension](/shopify/checkout-extension/)

## Can I A/B test Quikly against my current popup or promo?

Yes — A/B testing is built in, and reports on revenue lift rather than just click or open rates. That's the cleanest way to prove incremental revenue versus a flat-discount baseline.

Related: [Overview](/shopify/overview/)

## How do I move the Teaser or Popup up/down on the page, or layer it behind my theme?

Both the Teaser and the Popup expose the same two controls under **Build > Components > [component] > Edit > Styles > Display**:

- **Spacing > Offset** sets the distance from the edge of the screen, with a separate **Vertical (Mobile)** field for tuning mobile independently.
- **Layout > Z-Index** sets stacking order. The default is `1001`; lower the value to sit behind a theme element like the cart drawer.

Related: [Position and Layer the Teaser and Popup](/shopify/tutorials/positioning-teaser-and-popup/)

## In the popup, how do I insert copy that dynamically pulls in the offer description and quantity?

Use **Dynamic Text**. In the Design Editor, go to **Build > Components > Popup**, click the **Edit** (pencil) icon, and click into the Formatted Text block. Place your cursor where the value should appear, click **Dynamic Text**, and choose **Offer info**. From there you can insert the offer's full title, short title, subtitle, or quantity, and choose whether it reflects the current tier or a specific tier (e.g. tier 1 for "the first 50 to buy").

To show how many offers have been *claimed* or are *still available* rather than the tier's total quantity, use the **Offer count** dynamic text type instead.

Related: [Insert Dynamic Offer Text in the Popup](/shopify/tutorials/dynamic-offer-tokens/)

## How do I automatically adjust the reward description from singular to plural?

Use the **Offer count** dynamic text tag instead of typing the word yourself. If you hardcode "offers" after the count, you'll get "1 offers left" when the count reaches 1. Instead, insert a **Dynamic Text > Offer count** tag, set the **Count type** (e.g. Remaining in tier), and fill in its **Singular word** and **Plural word** fields — then delete the static word from the text. The tag picks the right form automatically, so it reads "1 order left" or "12 orders left."

Related: [Insert Dynamic Offer Text in the Popup](/shopify/tutorials/dynamic-offer-tokens/)

## How do I test offer codes before the campaign is live?

On the campaign overview screen, open the **Timing** card, click **Edit**, and under **Timing > Starts** check **Activate discount codes before campaign launches**. The codes become active in your store so you can confirm their configuration and how they combine with your other offers before the start date. Note that the codes are genuinely valid while this is checked — anyone who knows a code could use it — so you may want to uncheck it once testing is done.

Related: [Test Offer Codes Before Launch](/shopify/tutorials/test-before-launch/)

## How do I add an image to the popup?

In the Design Editor, click **Components**, select the **Popup**, and click the **pencil** to edit. Click **Add Content > Image** (or click an existing image), then **Select image** to open your library — choose an existing image or click **Upload new**. After selecting, you can expand the image to the popup edges, set its size and crop (aspect ratio), align it, round its corners, and add borders or a background.

Uploads can be any image format (PNG, JPG, GIF, and others such as SVG or WebP), up to a maximum of 10 MB. There's no fixed dimension requirement.

Related: [Add an Image to the Popup](/shopify/tutorials/popup-image/)

## On mobile, the popup looks too large — can I optimize it?

Yes. The most effective option is to wrap the content you don't need on phones — like a next-up offer display — in a **Container** block and hide that container on mobile: in the block's **Styles > Visibility**, choose **Mobile (≤480px)** or **Tablet and below (≤768px)**. Only the wrapped content drops on small screens, so the popup renders more compactly. You can also resize the **Teaser** under **Build > Components > Teaser > Edit > Styles**, where you'll find width and height controls.

Related: [Position and Layer the Teaser and Popup](/shopify/tutorials/positioning-teaser-and-popup/)

## Once my campaign is published, how do I take it off my site?

Open the campaign's detail page and click **Pause campaign** in the header. Pausing hides it from visitors and returns it to draft mode — you don't need to delete it. Re-publish from the same page whenever you want it live again.

Related: [Managing a Live Campaign](/shopify/tutorials/managing-live-campaign/)

## Can I change the quantities in a tier while the campaign is live?

Yes, though we don't recommend it — fixed quantities protect the authenticity of the promotion. If you need to, go to the campaign overview page, click **View All** next to Offer configuration, expand the offer level, update the quantity, and click **Save Offer**. Because customers may have already claimed, you'll get a confirmation prompt before it applies: increasing the quantity adds new offers to the claim queue immediately, while decreasing only removes *unclaimed* offers (anyone who already claimed keeps theirs).

Related: [Managing a Live Campaign](/shopify/tutorials/managing-live-campaign/)

## Can I make the discount code valid only on certain products?

Yes. Each offer level has a **"Discount applies to"** dropdown under **Build > Offers** where you can scope the discount to **All Products**, **Specific products**, or **Specific collections**. To *exclude* certain items instead, create a Shopify collection of everything that should be eligible and point the offer at that collection — Shopify discount codes only support "applies to" rules, not "exclude" rules.

Related: [Configuring Offers](/shopify/tutorials/offer-configuration/)

## What happens when the offer cap is hit?

The campaign stops awarding the headline offer in real time and can fall back to a lower tier (e.g. "next 100 get 10% off") or close out entirely. Customers see exactly where they stand while it's live, which is what creates the urgency.

Related: [Campaign Ideas](/shopify/campaign-ideas/)