Skip to main content
Intempt
Coming soon

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 soon

1 step Blu runs end to end. It drafts a plan and nothing runs until you approve it.

  1. 1

    Set up the visitor-history heroes

    Coming soon

    Blu 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.

Sign up to read the full recipe.md and run it with Blu Agent.

Sign up to see the full recipe

Inputs & outputs

What the recipe needs before it runs, and what it leaves in your workspace.

Inputs

  1. 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.

    1. 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. 1

      Sign up

      Create a free Intempt workspace.

    2. 2

      Connect your data

      Add the sources this recipe reads from.

    3. 3

      Ask Blu

      Type /returning-vs-new-visitor-personalization in Blu once this recipe is live there.

    4. 4

      Review and approve

      Blu builds each step and waits for your OK before anything goes live.

    More recipes by Sid Chaudhary

    Got a play worth sharing?

    Publish it to the Intempt Collective Marketplace and earn when other teams run it.

    Submit a recipe