New versus returning visitor hero
First-time visitors get the value proposition. Returning visitors get picked up where they left off, with their abandoned cart if they have one.
Authored by Sid Chaudhary
Founder & CEO at Intempt
Agentic workflow
Coming soon1 step Blu runs end to end. It drafts a plan and nothing runs until you approve it.
- 1
Set up the visitor-history heroes
Coming soonBlu builds a step
About this recipe
When to use it
A new visitor needs to be sold on why they should care. A returning visitor already knows, they just need a nudge back to what they were looking at. This personalizes the page accordingly using prior session history.
What it delivers
Personalizes page content by visitor history, showing new visitors a value proposition and returning visitors continuation cues like recently viewed items or an abandoned cart.
How you prompt this
Describe the outcome in your own words and Blu Agent maps it to this recipe, or run it by name. It drafts a plan first and nothing runs until you approve it.
Tell Blu Agent what you want
“First-time visitors get the value proposition. Returning visitors get picked up where they left off, with their abandoned cart if they have one.”
recipe.md preview
Built from the published catalog. Blu Agent's full step prompts load in your workspace when you run it.
Inputs & outputs
What the recipe needs before it runs, and what it leaves in your workspace.
Inputs
- Nothing declared beyond an Intempt workspace. Blu asks for anything else it needs as it goes.
Outputs
How the recipe runs
Blu follows the steps in order and shows you each one before anything goes live.
- 01Set up the visitor-history heroesCreate a CLIENT PERSONALIZATION on /experiences titled "Returning vs New Visitor". ═══ PATH 1: Top-level configuration ═══ Experience type: client_personalization Variants (each binds to a specific behavioral audience): - Control (audience = all: fallback): standard hero - Variant B (audience = "first-time visitors"): value-proposition + social proof hero - Audience definition: Users.First seen is within the current session OR Users.First seen is null - In other words: this is the user's first visit, or they were never identified before - Variant C (audience = "returning visitors with abandoned cart"): cart resumption hero - Audience definition: ALL of the following: 1. Users.First seen is older than the current session (returning visitor: has prior session history) 2. At least one Cart created event in the last 7 days 3. NO Placed order event since that most-recent Cart created 4. NO active session at the time of last Cart created (i.e., they left without checking out) - This composite definition expresses "returning visitor with an abandoned cart from a prior session" - Variant D (audience = "returning visitors without abandoned cart"): "continue browsing" hero - Audience definition: ALL of the following: 1. Users.First seen is older than the current session (returning visitor) 2. NOT in the abandoned-cart audience (no Cart created in last 7 days OR an Placed order has occurred since last Cart created) Targeting: - Pages: homepage "/" and product category pages "/category/*" - Devices: any - Display frequency: once_per_session Metrics: - Click on engagement per audience - Placed order conversion per audience - For Variant C specifically: cart-resumption rate: visitors in the abandoned-cart audience who, after seeing this variant, complete Placed order within session Schedule: continuous ═══ PATH 2: Variant HTML content (Visual Editor) ═══ Variant: Control (no DOM changes: fallback) Variant: B (first-time visitors) HTML target selector: .homepage-hero Variant DOM: <section class="homepage-hero" data-variant="b" data-audience="first-time"> <h1>The [category] designed for [target audience]</h1> <p>Loved by 50,000+ customers worldwide.</p> <div class="social-proof-row"> <div class="proof-item"><span class="rating">★★★★★</span><span>4.8 (2,400 reviews)</span></div> <div class="proof-item">Free shipping over $50</div> <div class="proof-item">30-day returns</div> </div> <button class="cta-primary" id="hero-cta-explore">Shop bestsellers</button> </section> Variant: C (returning with abandoned cart) HTML target selector: .homepage-hero Variant DOM: <section class="homepage-hero" data-variant="c" data-audience="cart-resumer"> <h1>Welcome back: your cart's still here</h1> <p>Items in your cart from your last visit.</p> <div class="abandoned-cart-preview"> <!-- platform fills in items from the abandoned Cart created via the cart's items template --> <button class="cta-primary" id="hero-cta-resume">Resume checkout</button> </div> </section> Variant: D (returning without abandoned cart) HTML target selector: .homepage-hero Variant DOM: <section class="homepage-hero" data-variant="d" data-audience="returning"> <h1>Welcome back, the user's first name</h1> <p>Pick up where you left off.</p> <section class="recently-viewed" data-source="user-session-history"> <h2>Recently viewed</h2> <!-- platform fills in last 4 View page PDPs from prior sessions via the user's recently viewed --> </section> </section> Taxonomy notes: - Users.First seen is the canonical first-touch timestamp. - "Returning visitor" detection: Users.First seen older than the current Session start timestamp. - "Abandoned cart" derivation in canonical events: Cart created in [now - 7 days, now] AND latest_cart_created.timestamp > MAX(Placed order.timestamp WHERE customer_id = current_user) OR no Placed order exists for this user This composite condition (last Cart created has no subsequent Placed order from the same user) is the canonical abandoned-cart pattern. Most personalization engines support this as a built-in audience template; otherwise it must be evaluated at audience-definition time using event history. - Variant precedence (most specific wins): C beats D beats B beats Control. Configure the audience evaluation order so abandoned-cart users get Variant C, not Variant D. - The the cart's items and the user's recently viewed template tokens are filled at render time by the personalization engine reading from the user's event history.
Install Intempt and run it
- 1
Sign up
Create a free Intempt workspace.
- 2
Connect your data
Add the sources this recipe reads from.
- 3
Ask Blu
Type /returning-vs-new-visitor-personalization in Blu once this recipe is live there.
- 4
Review and approve
Blu builds each step and waits for your OK before anything goes live.
