When a Second Pricing Visit Deserves a Human Follow-Up
This playbook walks Shopify and e‑commerce app teams through setting up a Spreeflo journey that watches for repeat pricing page visits, triggers internal alerts, and routes high-intent stores to a human so you catch serious buyers in time.
Industry
Niche
Pattern
Loading sequence...
On Monday morning, Lena opens Stripe and sees a new trial for her Shopify app, CartWizard. The store looks promising: solid GMV, based in a good market, right in her ideal customer profile.
She clicks into analytics. That store hit the pricing page yesterday. Again this morning. Then her calendar pulls her away. By the time she comes back, the store has uninstalled. No email. No conversation. Just silent churn.
If you run an e-commerce app, you know this feeling. Pricing-page traffic looks healthy, trials are coming in, but you only discover the serious buyers after they have already decided… one way or the other.
The sequence at the top of this page is the whole journey, end to end. It’s a tiny automation that quietly watches for one thing: when someone comes back to your pricing page within a week. The first visit is noise. The second visit in 7 days is signal, and that’s when Spreeflo taps you on the shoulder with a targeted internal alert.
This playbook breaks down exactly how that works and how to adapt it to your own app.
Why repeat pricing visits are your quietest high-intent signal
For a Shopify or e‑commerce app, a single pricing-page view tells you almost nothing. App Store discovery, casual browsing, and “tab tourists” all produce the same event.
A repeat pricing-page visit within a short window is different:
They’ve seen your price once and came back anyway.
They’re probably comparing tiers or competitors.
They’re likely closer to making a decision than any random trial install.
That second visit is where a human touch actually moves revenue: a two-sentence email from the founder, a Loom answering a specific objection, or a quick “want help modeling ROI?” note.
The challenge is obvious: you don’t have time to sit in analytics and manually spot this pattern. Even if you tried, you’d either miss most of them or flood yourself with noise.
Spreeflo is built for exactly this type of behavior-driven handoff: a tiny journey that runs forever, watches quietly, and involves you only when the data says “now is worth your time.”
What this journey does (and what it doesn’t)
Let’s anchor on what the automation actually does before we go node by node.
The sequence at the top of this page listens for a custom event like pricing_page_view fired whenever someone visits your pricing page. Each time that event fires, Spreeflo:
Checks whether this contact has triggered that event at least twice in the last 7 days.
If not, it does nothing. The journey simply ends.
If yes, it:
- Sends a single internal email alert to you or your sales inbox.
- Tags the contact so you can report on these signals later.
There’s no customer-facing email in this flow. No push notification. It is a pure behavior-driven sales assist: catch high-intent visitors and route them to a human.
Everything is built with a handful of standard blocks: a Custom Event trigger, an If/Else, a Send Internal Email, and an Add Tag. You can build a journey like this in a few minutes, then forget about it while it quietly feeds your pipeline.
Step 1: Track pricing views as a custom event
Before the journey can fire, Spreeflo needs to know when someone visits pricing.
There are two common setups for a Shopify or e‑commerce app:
Pricing is a page in your marketing site.
Pricing is part of your app UI (for upgrades or plans).
In both cases, you instrument a custom event, commonly named pricing_page_view, whenever a logged-in lead or customer hits that screen. On the web, you’d send that with the Spreeflo SDK or server-side via the Spreeflo API. The important part is:
- The event name is consistent (pricing_page_view or similar).
- It’s sent only when you can associate it with a contact (email or user ID).
- Anonymous pricing visitors are fine, as long as you later call Spreeflo.identify when they sign up so their earlier views attach to their contact record.
This is where Brand Message 1 shows up in practice: you’re capturing detailed behavior for each contact, not just aggregate pageviews. Every pricing hit is tied to a specific person you can talk to later.
Once that event is flowing, Spreeflo surfaces pricing_page_view in the Custom Event trigger and in the segment builder everywhere you need it.
Step 2: Custom Event trigger with re-enrollment on
In the journey canvas, the first node is a Custom Event trigger.
Configuration:
Event name:
pricing_page_viewAdd property conditions: optional; for most apps you leave this off, but you could restrict to a specific plan, region, or URL variant.
Re-enrollment: turned on
Why Custom Event, not “Page Visited”?
You may be tracking pricing via auto pageviews, but Custom Event is cleaner and more explicit. You decide when a visit is meaningful (e.g., only logged-in trials, or only prospects from certain sources), and you keep your journey logic readable.
Why is re-enrollment on?
Because you want this trigger to fire on every pricing visit, not just the first one. With re-enrollment enabled:
First pricing visit: contact enters the journey once.
Second pricing visit: they enter again after completing the first run.
Third and later visits: they keep re-entering, subject to whatever guardrails you add later.
Spreeflo still protects against duplicates mid-journey. If a contact is currently moving through this journey, fresh events are ignored until they exit. That prevents overlapping alerts.
If you left re-enrollment off here, only the very first pricing view of a contact’s life would ever hit this automation. That breaks the entire pattern.
Step 3: Use If/Else to ignore the first visit, act on the second
Right after the trigger, the journey routes into an If/Else process node.
The whole play lives in this condition. Here’s what you express with the segment builder:
Group: AND
Custom Events
- Event:pricing_page_view
- Operator: at least 2 times
- Time window: in the last 7 days
Optionally, add more filters to keep the alerts tight:
Contact Attributes
- “Email Subscription Status is Subscribed” if you only care about opted‑in emails.Segment Membership
- “Is not member of segment: Current customers” so you only alert on prospects.
Why use “at least 2 in the last 7 days”?
On the first visit, the event history shows 1 in the last 7 days. The contact goes down the Else branch and the journey ends quietly.
On the second visit within a week, history now shows 2 in the last 7 days. They meet the condition and take the “Yes” branch.
If they come back repeatedly in that same week, the condition is still true. You’ll decide in a moment how often to alert on that.
The 7‑day window handles the “within a week” part. If a contact views pricing once, then again 10 days later, they’ll have only one event in the last 7 days at that moment, so they won’t qualify as high-intent.
This pattern is simple, but it illustrates a bigger point: by capturing behavior over time on each person, you can speak to them based on where they really are in their decision. That’s Brand Message 1 again, in concrete form.
Else branch configuration is intentionally boring: there is no next node. The contact just drops out of the journey. No alert. No tag. No noise.
Step 4: Send a sharp internal alert (and nothing more)
On the “Yes” branch of the If/Else, you add a Send Internal Email node.
Configuration:
Template name: something like “Pricing revisit alert”
From (email account): usually a generic team or founder address
Send only once: usually left on
Content-wise, keep it short and actionable. This is where Spreeflo’s email builder is useful, even for internal messages. Your alert might include:
Contact’s name, email, company, and plan (contact attributes).
How many times they’ve viewed pricing and in what time frame.
Last key events: “Installed app 3 days ago, used feature X twice, pricing viewed twice.”
A suggested next step: a short script or link you can paste into a reply.
“Send only once” is worth pausing on. With re-enrollment turned on at the trigger, a very interested prospect could hit pricing several times in a week. The default behavior of Send Internal Email is to send that particular alert email to a given contact only once across the journey, even if they hit that node again.
That’s usually what you want: you get a single heads‑up that “this store is hot.” If you prefer multiple alerts for repeat behavior (say, after 30 days of inactivity), you can later build a second journey with its own logic.
Notice what we are not doing here:
We’re not immediately blasting the prospect with another marketing email.
We’re not adding friction or popups to pricing.
We’re simply giving a human on your side a chance to be helpful at exactly the right moment. This is Brand Message 2 in action: founder-led businesses win on leverage, not headcount. One tiny automation gives your 2–5 person team the reaction speed of a much larger sales org.
Step 5: Tag for reporting and future plays
After the internal email node, add an Add Tag action.
Configuration:
Tags: for example,
pricing-revisit-alertedorsales-pricing-revisitForce tag trigger: usually off, unless you want other journeys listening to this tag change
This seems like an admin detail, but it matters for two reasons.
Reporting on revisit-to-meeting rate
Controlling repeat alerts
Create two segments:
“Pricing revisit alerted”: contacts tagged with
pricing-revisit-alerted.“Pricing revisit alerted + booked meeting”: same tag plus another tag you set when a sales call or onboarding session is booked (from your CRM or custom tooling via the Spreeflo API).
The ratio of the second segment size to the first is your revisit-to-meeting rate. Over time you’ll see whether this alert play is actually worth the interruption, and you can adjust filters, copy, or follow-up based on data.
If you don’t want to be notified multiple times for the same contact, add one more rule into the earlier If/Else condition:
Contact Tags, operator “contact is not tagged with”, value
pricing-revisit-alerted.
Now the flow is:
First visit: ignore.
Second visit within 7 days: alert + tag.
Any later visits: condition fails because the tag is present; no more alerts.
If you ever want to “reset” a contact (e.g., after churn and reactivation), you can remove or overwrite the tag via a different journey or API call.
This is where the “capture detail so you can speak uniquely” message compounds. Every time you add a tag or attribute in a focused way, you’re training your future self to ask better questions: “How do pricing revisit leads perform against other sources?” “What if we only alert on stores over a certain GMV?” The data is already there.
Optional: Push the signal into your existing tools
Some teams will be happy living entirely inside Spreeflo: internal email goes to a shared inbox, someone picks it up, done.
If you want this signal to show up elsewhere, you can add a Webhook node after the Add Tag action (Professional plan):
Webhook URL: an endpoint in your backend, CRM, or a Slack webhook.
Method: POST.
Contact fields: either all contact attributes or a curated subset (email, name, app plan, pricing revisit tag, etc.).
Your external system can then:
Create or update a lead, with a field like
source=pricing_revisit.Post into a “hot leads” Slack channel.
Trigger its own workflow.
The key is that Spreeflo stays the source of truth for who did what and when, and you reuse that across the stack, instead of trying to reimplement the pricing revisit logic in three different tools.
Making this yours: variations worth testing
Once the basic pattern is live, you can extend it slowly:
Narrow timing: change “last 7 days” to 3 days if your sales cycle is shorter and you want only the hottest interest.
Add a minimum store size: include an additional rule like “Custom attribute
monthly_gmvgreater than 20,000” so you only alert on accounts where your ACV supports human outreach.Stack with other intent: use a Multi-way Split instead of If/Else and add branches for “pricing revisit + used flagship feature” vs “pricing revisit only,” then send different internal messages.
You can always come back to the sequence and tweak conditions. The logic is centralized; you’re not chasing down rules scattered across five tools.
If you are brand new to Spreeflo, the quick-start guide walks through getting your account ready, adding your sending domain, and importing contacts before you build the journey.
What to watch once it’s live
Two numbers tell you whether this play is doing its job:
Revisit-to-meeting rate
Pipeline influence per alert
Out of everyone who triggered a pricing revisit alert, how many ended up on a live call or high-signal conversation? If it’s low, your follow-up script or timing might be off. If it’s high, you may want to widen the filters a bit.
Look at closed-won deals over a month and ask: “How many of these had the pricing-revisit-alerted tag?” Even if you don’t do full attribution modeling, seeing a clear pattern here justifies the minute you spent setting up the journey.
For a team like CartWizard, even a handful of extra $99/mo customers per month make this automation a no‑brainer. It quietly turns anonymous “pricing browsing” into a queue of people your team actually talks to.
This is what founder-friendly sales ops looks like
The pricing revisit alert journey is small on purpose. It’s a few nodes watching for a specific, high-signal behavior, then giving a human the right context at the right time.
Under the hood, it leans on exactly what Spreeflo is built for:
Capturing detailed behavioral data on every contact and making it usable with conditions like “at least 2 times in the last 7 days.”
Letting a tiny founder-led team behave like it has a dedicated SDR, without adding headcount.
Once this is in place, you don’t think about it again. You just see better-timed conversations in your inbox and more of the right stores on your customer list.
That’s the real power of behavior-driven sales handoffs: not more automation for its own sake, but a calmer, more focused way to spend your limited human attention where it has the most impact.