How to show different offers to new shoppers and customers
Show one welcome offer to shoppers who aren't signed in and skip it for customers who are. You'll give signed-in customers loyalty and refill cards in the feed instead.

Show a capped welcome interrupt to new visitors only. Returning visitors should get a loyalty, refill or restock path in a feed they can come back to, not the same "Welcome back. Get 15% off" popup they have already seen. One creative for everyone trains returners to dismiss on sight and pulls first-timers' attention away from the product page.
This plan uses a decision table and before/after copy to show which campaign jobs belong to new visitors and which belong to returning visitors. Keep the email platform and the popup. Split the path by visitor type.
Why one creative for everyone fails
Most stores show the same welcome popup in every session: 10% or 15% off for an email. First-timers may convert. Returning shoppers who have already subscribed, redeemed WELCOME15, or bought get the same interrupt again. They dismiss it on sight. That dismiss habit then carries over to every other overlay you run.
Meanwhile, a first-timer who wants quiet time on a product page gets the same interrupt as a shopper who already knows the brand well. You lose both: list capture while it still matters, and loyalty messaging when the shopper is ready for a different ask.
Visitor type is more than a vanity segment. It decides whether an interrupt earns its place or trains shoppers to ignore it.
Define new vs returning for on-site targeting
You do not need a perfect identity graph. Popup tools often use cookie or session rules to tell new visitors from returning ones. Atomato uses sign-in status instead, with Visitors (not signed in), Customers (signed in), and Shopify customer segments, so a returning shopper who is not signed in counts as a visitor. Common definitions:
New visitor: No prior visit cookie (or first session in a 30-day window). Often also: no known customer email in the browser, and no prior purchase flag from your app or from Shopify customer state, when available.
Returning visitor: A prior visit cookie, or a known subscriber or customer flag. Treat anyone who has already seen or used your welcome offer as "returning," even if they have not bought yet.
Keep the rules boring and consistent across popup and feed. If the welcome popup uses a 7-day suppression window after dismissal, the feed should not reopen the "first order 15%" card meant for brand-new shoppers either. Atomato's feed has no suppression window, so set that card to Visitors (not signed in) to keep the new and returning paths distinct.
Even if your stack can only tell "seen welcome" from "never seen," that split is enough to stop the same interrupt from showing again.
New vs returning decision table
Use a decision table to split campaigns between new and returning visitors, with one row per active campaign. If welcome and loyalty both want a full-screen interrupt in the same returning session, one of them loses, and it is usually the welcome.
The list below shows where each campaign goes first for new and returning visitors. Each item also gives a quieter follow-up and a rule for when to suppress it.
- Welcome and list capture: new visitors get a timed popup that shows after a delay. Returning visitors don't get the welcome popup. After signup the feed keeps the code, and the email platform follows up with shoppers who leave. Suppress the welcome after a dismissal, a signup or a known return.
- Sitewide percentage discount: new visitors see a quiet banner or the feed. They get a popup only if no welcome showed that session. Returning visitors get a feed card with the code and end time. The email platform follows up with known contacts. Neither group should see the popup repeat on every page.
- Loyalty and thank-you codes: skip them for new visitors, who have no loyalty yet. Returning visitors get a feed card with a members or thank-you code. Post-purchase emails come from the email platform. Never show these codes in a second popup like the welcome.
- Free shipping progress: new visitors see a feed progress card after they browse or add to cart. Returning visitors see the same card, showing the threshold until the cart reaches it. Add no extra overlay as a follow-up. Use a popup only at a clear cart threshold, and only if needed.
- Cart nudge: new visitors get a soft corner message or a feed card after they add to cart. Returning visitors get the same. The email or SMS platform follows up after they leave. Cap how many soft nudges each session gets.
- Restock and refill: new visitors get a quiet signup on the product page if they're interested. Returning visitors get a feed card about a refill that's due or a restock you announce. The email platform sends an email when the product is back in stock. Never stack these messages with the welcome popup.
- Flash drop: new visitors see a small popup on the product page once. Returning visitors get a feed card for that product after they dismiss the popup. The email platform emails known fans about the drop. Show the popup once per product in each session, and don't loop it on the homepage.
In Atomato, set the welcome NotiPop to Visitors (not signed in). A NotiPop has no form. If your existing popup already asks new visitors for an email, let it own the welcome and skip the welcome NotiPop. If it does not, use the NotiPop to announce the offer and, on the Enterprise+ plan, collect the email in a NotiEmail card in the feed. Put loyalty, refill, or restock cards in NotiFeed set to Customers (signed in) or a Shopify customer segment, so signed-in shoppers can open them when they choose. This complements when to use a popup, the feed, or both for the same offer. Here the split is by visitor type, not only by surface. Capping repeat interrupts follows the same discipline as how to set Shopify on-site campaign frequency without training shoppers to ignore you.
Steps: map offers, assign surfaces, suppress welcome for returners
- List every on-site campaign that can trigger (welcome, sale, shipping, cart, restock, loyalty).
- Mark which ones are first-timer jobs and which are returner jobs.
- For new visitors, assign at most one delayed welcome popup. The feed keeps the code after capture.
- For returning visitors, suppress the welcome and put refill, loyalty, restock, or sale codes in the feed.
- Align cookie and suppression rules so "seen welcome" does not retrigger the same interrupt.
- Keep ESP and SMS for shoppers who leave and for post-purchase. Do not replace them with another overlay.
- If your tools support it, track new and returning visitors separately (welcome signup rate for new visitors, and feed opens and loyalty redemptions for returning ones).
In practice, visitors who are not signed in get one welcome, from your popup or a NotiPop, and signed-in customers get a card for loyalty, refill or restock that stays in the feed. Same stack (popup, feed, ESP), different path per visitor type. For more on list growth with in-feed signups, see how to grow your email and SMS lists without interrupting shoppers.
Before and after: same creative vs split path
Before (same creative for everyone):
Every visit, a popup: Welcome back. Get 15% off. Enter email.
…returners already subscribed / already used WELCOME15…
Dismiss the notification, and the next overlays get the same reflex
Problems: shoppers who are not new get a welcome invitation, a code they have already used, and an interrupt that teaches them to ignore overlays before a loyalty or refill message can land.
After (split path by visitor type):
New (delayed popup once, session + multi-day suppress): Welcome. 15% off your first order. Want the code in your inbox?
Email field → [Send code]
Feed card (waits behind the bell): Your code is WELCOME15 · free shipping at $40 · [Shop bestsellers]
Returning (no welcome popup): Feed card (Your refill is due / members get free shipping at $40 / restock of [product]). The shopper opens the bell
ESP only after they leave or for post-purchase, not a fourth overlay
The after version spends the interrupt on first-timers, keeps the code in the feed where shoppers can find it again and gives returners a job that fits why they came back.
Mistakes checklist
- Showing "Welcome / first order %" to known returners or prior redeemers
- The same full-screen flash-sale popup for new and returning visitors on every homepage load
- Loyalty or thank-you codes only in email while the storefront still pops the welcome offer
- Restock interest capture stacked on top of a welcome interrupt
- No suppression after a dismissal (a reload brings the same popup back)
- Measuring only popup views, not dismiss rate for new vs. returning visitors
- Turning visitor rules off during a sale week instead of tightening welcome suppression
If returners dismiss faster than new visitors, the problem is the creative for that segment, not how often it fires.
Next step
Map today's campaigns to the decision table. Show the capped welcome to new visitors only, suppress it in returning sessions and move loyalty, refill and restock into a feed shoppers can come back to, beside the popup and ESP you already run.
Install Atomato free on Shopify to split signed-out and signed-in shoppers between a NotiPop and feed cards without replacing your stack, or explore NotiPop and NotiFeed.
Returning buyers can get a delayed review or referral ask on a later visit. Keep those asks off the checkout thank-you page. See how to ask for Shopify reviews, referrals, and reorders without another checkout interrupt.
Related: how to use Shopify customer segments for on-site messages.
Ready to show the right message to the right shopper?
Start showing targeted on-site messages without changing your marketing setup. Atomato works alongside the popup, email and SMS tools you already use.
Five-minute setup. No theme code or developer needed.
1


