Mailerflow Start free
Blog › AI Email Marketing › AI Email Personalization

Predicting Purchase Intent From Email and Website Signals

Published November 12, 2026 · Updated November 12, 2026 · 8 min read

Illustration for Predicting Purchase Intent From Email and Website Signals

Purchase intent email signals are the observable actions a contact takes — an email click, a pricing page visit, a cart start — that you combine to infer how close someone is to buying, and then use to decide what to send next. This guide walks through which signals are worth tracking, how to turn them into intent stages, and how to match emails to each stage without over-engineering the setup.

What purchase intent email signals actually are

A signal is an observed action: someone clicked the pricing link, opened three emails in a week, visited your API docs page twice, or started a trial. An inference is the conclusion you draw from one or more signals — "this contact is comparing vendors." A stage is the label you assign so your automation can act on that inference consistently.

Keeping those three separate matters because most intent programs fail at the inference step, not the data collection step. Teams collect plenty of signals and then jump straight to a stage without deciding what the signals actually mean.

Email-only signals are a weak foundation. Opens are approximate — Apple's Mail Privacy Protection and similar image-proxying features mean an open often reflects a prefetch, not a human. Clicks are sparse: most contacts in most lists never click. And a click is ambiguous. Someone who clicks a pricing link may be budgeting for next year, comparing you against a competitor for a report, or just curious. Website behavior fills in the "what" behind the email "who," and profile data tells you whether that behavior is unusual for this particular person.

If you are still deciding where to send from, see the Best Email Marketing Platforms compared side by side, with prices checked daily on each provider's own pricing page.

Why combining email and website signals beats either alone

Email signals tell you who is paying attention. Website signals tell you what they are paying attention to. Neither is enough on its own.

Consider two contacts. Contact A opens and clicks nearly every campaign, but only ever reads blog posts and case studies. Contact B opens maybe one in five emails but has visited your pricing page twice this week and spent four minutes on your comparison page. If you rank by email engagement alone, Contact A looks hotter. If you rank by website behavior alone, you miss the context that Contact B has never replied to anything and may be an agency researcher.

Profile data sets the baseline so the same behavior means different things. A pricing page visit from a free-plan user with 40 seats is a very different signal from the same visit by a two-person team on a trial. Lifecycle stage, plan, company size, and past purchase recency all shift the interpretation.

In Mailerflow this combination is practical rather than theoretical: website-behavior data collected through the JS SDK feeds dynamic segments built on fields, tags, engagement, events, and website behavior, so a segment like "visited pricing twice in 14 days AND clicked a product link" is something you configure, not something you build from scratch.

The signals worth tracking (and what each one suggests)

Signal What it suggests How much to trust it
Click on a specific link (pricing, product, docs) Active interest in a topic High — intent is in the destination
Reply or forward Real human engagement Very high
Repeat opens only Possibly automated prefetch Low — treat as noise
Long dormancy (60+ days) Disengagement High — negative signal
Unsubscribe-page visit Frustration or list fatigue High — suppress immediately
Pricing page visits (2+ in 14 days) Comparing or budgeting High
Page depth (4+ pages in one session) Researching seriously Medium-high
Docs or API page views Technical evaluation High for developer-led products
Comparison page views Vendor shortlist High
Cart or trial start Ready to act Very high
Return visit from a different device Deliberate, multi-session interest Medium-high
Lifecycle stage, plan, past order recency Baseline context Always relevant

A practical rule: build your model on clicks, specific-link clicks, website events, and profile fields. Use opens only as a tiebreaker, never as a primary weight.

Turning signals into intent stages

Four stages cover most cases: Browsing, Researching, Comparing, Ready. Each stage has a signal pattern that puts someone there and a decay rule so signals expire.

Scoring works simply. Assign weighted points per signal, set a threshold per stage, and multiply by a recency factor. Here is an illustrative example — invented numbers, not a benchmark:

  • Pricing page visit: 15 points, decays 50% after 14 days
  • Docs page view: 10 points, decays 50% after 21 days
  • Product link click in email: 8 points, decays 50% after 10 days
  • Cart start: 40 points, decays 50% after 3 days
  • Dormancy 60+ days: −20 points

Thresholds: Browsing 0–14, Researching 15–34, Comparing 35–59, Ready 60+.

A contact who visited pricing twice (30) and clicked a product link (8) sits at 38 — Comparing. If they go quiet for three weeks, decay drops them back to Researching. Stages must be reversible; a contact who once clicked a pricing link three months ago should not stay in Ready forever.

In Mailerflow you can express each stage as a dynamic segment, and AI segmentation from a plain-language description can draft the segment logic for you to review before you save it.

Matching emails to each intent stage

Browsing — educational content, low ask. A short newsletter-style email with one useful idea and no CTA beyond "read more." Cadence: whatever your normal newsletter rhythm is. Suppress hard-sell offers.

Researching — use-case content, how-it-works, docs. Send a technical walkthrough or a relevant case study. Cadence: every 5–7 days while signals stay warm. Suppress discount codes; they read as pressure at this stage.

Comparing — objection handling, side-by-side clarity, pricing transparency, proof. This is where a clear comparison page and honest pricing answer do the work. Cadence: 3–5 days. Suppress generic brand emails.

Ready — clear CTA, trial or demo, friction removal. One action per email. A deadline only if the deadline is real. Cadence: 1–3 days, with an exit condition once they convert or go cold.

Building the workflow without over-engineering it

Build in this order:

  1. Pick 5–8 signals you already collect. Do not add tracking you will not maintain.
  2. Define stage thresholds and decay rules.
  3. Create the segments and name them clearly.
  4. Write one email per stage — four emails total.
  5. Add waits and exit conditions in the automation.
  6. Review the whole flow before activating.

Mailerflow's visual automations support waits, conditions, webhooks, and AI steps, with triggers on signups, events, dates, inactivity, and website behavior. If you would rather start from a description than a blank canvas, the AI automation builder drafts a workflow from a sentence — trigger, waits, conditions, emails — for review before activation. The trap to avoid is building twenty automations before one works end to end.

Worked examples

These are illustrative scenarios, not customer stories.

Example A — B2B SaaS, technical evaluator. Signal pattern: opens rarely, but visits the API docs page three times in a week and views the integrations page once. Stage: Researching. Email: a how-to on the specific integration they viewed, linking to the docs. Exit condition: books a demo or starts a trial.

Example B — ecommerce, cart abandoner. Signal pattern: viewed the same product twice, added to cart, abandoned within 24 hours. Stage: Ready. Email: a cart reminder with shipping times and return policy — no discount unless margin allows. Exit condition: purchase or 7 days of silence.

Example C — long-dormant contact. Signal pattern: no opens for 90 days, then one open and one click on a re-engagement subject line. Stage: Browsing. Email: a low-commitment "here is what changed since you last heard from us" note. Exit condition: two more sends with no engagement, then suppress.

Common mistakes

  • Treating opens as intent. Fix: weight clicks and website events, use opens as a tiebreaker only.
  • Never letting signals expire. Fix: apply a decay rule so a three-month-old click does not keep someone in Ready.
  • One signal, one stage. Fix: require a combination before promoting a stage.
  • Sending the same email to every stage. Fix: write one email per stage; the message is the point of the whole exercise.
  • Ignoring profile context. Fix: check plan, lifecycle stage, and past orders before acting on behavior.
  • Building segments nobody maintains. Fix: name them clearly and review thresholds every few weeks.
  • Over-personalizing. Fix: reference behavior, not surveillance. "You looked at our API docs" lands differently than "we noticed you spent 4 minutes 12 seconds on page 3." For a fuller treatment, see our guide to personalization without creepiness.
  • No suppression rules. Fix: define which automations exclude which segments so contacts do not get three overlapping emails in a day.
  • Measuring stage accuracy instead of outcomes. Fix: track replies, trials, and conversions, not how neatly contacts fit your labels.

A short checklist before you launch

  • [ ] 5–8 signals chosen, all of which you already collect
  • [ ] Weights and thresholds documented
  • [ ] Decay rules defined per signal
  • [ ] Segments built, named, and tested against known contacts
  • [ ] One email written per stage
  • [ ] Exit conditions set for every branch
  • [ ] Suppression rules prevent overlapping automations
  • [ ] Test contacts run through each path end to end
  • [ ] Consent and data-use reviewed for website tracking
  • [ ] Review step completed before activation
  • [ ] A date set to revisit thresholds in 3–4 weeks

FAQ

How many signals do I need to start? Five to eight is plenty. Three strong signals (specific link click, pricing visit, cart start) plus profile context will outperform a twenty-signal model you cannot maintain.

Can I predict intent without website tracking? Partially. Email clicks on specific links plus profile data get you a rough version. You lose the "what are they reading" layer, which is where most of the useful inference lives.

How often should I recalculate stages? Continuously, via dynamic segments rather than batch jobs. If you must batch, daily is fine for most lists.

What if a contact fits two stages? Assign the highest stage and let the email sequence for that stage run. Do not send both.

Do I need a data scientist? No. A weighted point model with decay rules is arithmetic, not statistics.

How do I handle consent and privacy when using website behavior? Disclose tracking in your privacy policy, gate non-essential cookies behind consent where required, and keep records. Mailerflow's GDPR tools cover data export, erasure, consent logs, and configurable retention, with data hosted in Europe.

Where to go next

This is the pillar of our Intent and Timing cluster. Once the supporting articles are published, start with the deep dives on scoring models, send-time optimization, re-engagement flows, and website behavior tracking setup — each one expands a step from this guide. If you are also working on the content side of these emails, our piece on product recommendation emails covers layouts and approaches, and location-based personalization is a useful complement when intent varies by market.

Describe your next email or automation in one sentence and let Mailerflow's AI build it — free plan, no credit card.