Guides

What Prompt Patterns Work for AI Outreach to Visitors?

Real prompts that work when your AI agent has identified who just visited your site, what they read, and what they're researching. Five patterns, side-by-side.

George Gogidze George Gogidze · · 10 min read
What Prompt Patterns Work for AI Outreach to Visitors?

Bad AI outreach reads like AI outreach. Good AI outreach reads like a slightly formal peer. The difference is not the model. It is the prompt and the data you give the prompt to work with.

I am George, founder of Leadpipe. We ship the pixel and the intent feed that a lot of AI SDR agents run on, which means I get to read the actual outputs. Some of them are great. Some of them are embarrassing. The gap between the two is almost entirely a matter of a few prompt patterns plus whether the agent has behavioral context to reference.

This post is the five patterns that work when your agent has real identified-visitor data, with the actual prompt scaffolding you can copy.


The precondition: you need identified-visitor data

These patterns assume the agent has access to a structured payload like this:

{
  "person": {"name": "Sarah Chen", "title": "VP Revenue", "email": "..."},
  "company": {"domain": "acme.com", "size": "200-500", "industry": "SaaS"},
  "pages": [
    {"url": "/pricing", "duration_s": 180},
    {"url": "/vs-hubspot", "duration_s": 95}
  ],
  "intent": {"score": 87, "topics": ["crm migration", "hubspot alternatives"]},
  "return_visit": true,
  "source": "organic search"
}

Without that, any prompt pattern is dressing on a cold list. Leadpipe delivers this shape via webhook on identified visitors (30-40%+ of US B2B traffic, deterministic match, 8.7/10 on the independent accuracy test). Full schema in the webhook payload reference.

If you do not have that payload shape, read How to Feed Visitor Data Into Your AI Agent first. This post is pattern, not plumbing.


Pattern 1: the behavior mirror

The simplest pattern. The agent mirrors back one specific behavior and asks a question about it. No pitch. No feature dump. Just: I saw you did this thing, can I ask why.

Prompt scaffolding:

You are an SDR emailing a person who just visited our site. Use this context.

Person: {{ name }}, {{ title }} at {{ company }}
Pages they read: {{ top_2_pages_with_duration }}
Topics they are researching: {{ intent_topics }}
Return visit: {{ return_visit }}

Write a 3-line email that:
1. Names one specific page they read, in plain language (not the URL).
2. Asks a concrete question about why they might be looking at that kind of page.
3. Offers one brief, relevant piece of help.

Rules:
- No "I noticed you visited our website."
- No feature list.
- No em dashes.
- First person, direct, conversational.
- Max 60 words total.
- Subject line: something the person would open, not a pitch.

Output example:

Subject: the HubSpot comparison

Hi Sarah, quick question. What’s making you look at HubSpot alternatives this month, pricing or the migration path? Most folks I talk to at the 200 to 500 range hit a wall on one of those two. Happy to share what the recent migrations looked like if it’s useful.

That is not a template. That is a conversation starter. The agent wrote it because the context was specific.

When to use: first-touch on a high-intent identified visitor, pricing or comparison page read, return visit preferred.


Pattern 2: the peer reference

Reference what similar companies have done. The agent needs company-size and industry context in the payload to make this work.

Prompt scaffolding:

You are reaching out to someone whose company is in the same segment as
several of our recent customers. Use this context.

Person: {{ name }}, {{ title }} at {{ company }} ({{ size }} employees, {{ industry }})
Recent behavior: {{ top_2_pages }} on {{ last_seen_date }}
Intent topics: {{ intent_topics }}

We have a library of peer stories. Pick the most relevant 1 based on:
- company size within 2x up or down of the prospect
- same industry
- related topic interest

Write a 4-line email:
1. Name the peer company (if we have permission) or describe it generically.
2. Name one specific outcome they got.
3. Tie it to the topic the prospect is researching.
4. Offer a 15-minute conversation with a specific question.

Rules:
- No em dashes.
- No generic case-study links.
- Do not oversell the outcome, use real numbers.
- Max 80 words.

Output example:

Subject: how a 350-person SaaS handled a similar CRM move

Hi Sarah, we worked with a 350-person SaaS in your segment through a HubSpot migration last quarter. Their VP Revenue kept two things that surprised me: a 6-week cutover instead of 12, and zero deal-stage data loss. Worth 15 minutes to walk through what they did? I can send the outline first if you want to scan it.

When to use: mid-funnel, second touch, ICP-match visitor with clear topic signal.


Pattern 3: the friction-finder

The agent is not pitching. It is offering to help with the specific friction the prospect is probably hitting right now. Works especially well when the prospect is on a pricing page or integrations page.

Prompt scaffolding:

You are helping an identified visitor debug what they are probably stuck on.
Use this context.

Person: {{ name }}, {{ title }} at {{ company }}
Pages: {{ pages_with_duration }}
Intent topics: {{ intent_topics }}

Based on the pages and the role:
1. Identify the most likely friction they are about to hit.
2. Name it in one sentence.
3. Offer to either answer a specific question or share a specific resource.

Rules:
- Do not say "I know what you are going through."
- No em dashes.
- Pick one friction, not three.
- 60 words max.
- Subject line: a question about the friction, not a pitch.

Output example:

Subject: is it the per-seat tiering?

Hi Sarah, one thing people on the pricing page often get hung up on is the per-seat tiering for mid-market plans. Happy to send a short breakdown of how the numbers land at 250 to 400 seats, if that is the step you are on. Also happy to skip the note and just answer a direct question.

When to use: pricing-page visitors, integrations-page visitors, anyone spending more than 2 minutes on a comparison.


Pattern 4: the asymmetric-value offer

You offer something the agent can produce for free that would cost the prospect hours: a scoped audit, a benchmark, a template. This only works when the offer is real.

Prompt scaffolding:

You are offering the visitor something specific and useful, zero-strings.
Use this context.

Person: {{ name }}, {{ title }} at {{ company }} ({{ size }}, {{ industry }})
Intent topics: {{ intent_topics }}
Pages read: {{ pages }}

Offer one of these, whichever fits best:
- a benchmark chart for their size and industry on the topic they are researching
- a scoped 1-page audit of a specific thing (their public site, a competitor comparison)
- a 15-minute share of what we learned from the last 10 migrations/implementations

Write a 5-line email.
1. Name what you are offering.
2. Explain why it exists (so it does not feel like a demo bait).
3. Ask if they want it.
4. Offer the alternative of skipping you and just reading it yourself.
5. Signoff.

Rules:
- No em dashes.
- Do not pretend it is custom if it is not.
- Max 90 words.

Output example:

Subject: the benchmark for your size

Hi Sarah, we compiled a benchmark on CRM migration timelines for 100 to 500 person SaaS teams, with the median cutover, the one-quartile and three-quartile marks, and the top three blockers. I put it together because the same question kept coming up on demos. Want me to send it over? Happy to attach and you can read without talking to me. 15 minutes of your time, or none.

When to use: first or second touch, when you actually have the asset or can produce it quickly.


Pattern 5: the unfiltered follow-up

This is the pattern that makes AI outreach feel human. The second or third touch acknowledges the silence, offers one more thing, and closes cleanly. No “just following up” and no five-paragraph re-pitch.

Prompt scaffolding:

You are writing the second touch to someone who did not reply to the first.
Use this context.

Person: {{ name }}, {{ title }} at {{ company }}
First touch sent: {{ first_touch_date }}
Subject of first touch: {{ first_subject }}
New behavior since: {{ new_pages_or_signals or "no new activity" }}

Write a 3-line follow-up:
1. Acknowledge the silence without being needy.
2. If there is new behavior, name it lightly. If not, offer a clean out.
3. Close.

Rules:
- Do not use "just following up" or "circling back."
- No em dashes.
- No pitch repeat.
- 40 words max.

Output example (with new behavior):

Subject: saw you back on the integrations page

Hi Sarah, no pressure, just saw you were back looking at the HubSpot integration docs. If there is a specific integration point you want me to confirm works, send it over and I’ll reply with a yes or no. If not, I’ll stop emailing.

Output example (no new behavior):

Subject: one more note then I’ll stop

Hi Sarah, you can ignore this one. If the timing is not right, reply with “not now” and I will not email again. If it is, 15 minutes any day this week.

When to use: 3 to 7 days after the first touch with no reply, or when new behavior fires on an already-contacted person.


Side-by-side: same person, five patterns

Here is what the five patterns look like on the same prospect, same payload:

PatternOpening lineAsk
Behavior mirror”What’s making you look at HubSpot alternatives this month?”Help on pricing or migration
Peer reference”We worked with a 350-person SaaS in your segment…“15-minute conversation
Friction-finder”Is it the per-seat tiering?”Send the breakdown
Asymmetric-value”We compiled a benchmark on CRM migration timelines…”Send the benchmark
Follow-up”Saw you back on the integrations page…”Reply with a specific question

No single pattern wins across all segments. The right choice depends on intent score, page path, and whether this is first touch or follow-up. A decent agent picks based on a simple rule set you can hand-code or let the model choose.


Rules that make all of them work

Every pattern above shares the same guardrails. Put these in the system prompt and do not let the model drift:

  1. Name one specific thing, not three.
  2. Never say “I saw you visited our website.” Specific pages, in plain language.
  3. No em dashes. Commas are fine.
  4. 40 to 90 words, never more.
  5. Subject line is a question or a concrete noun, not a pitch.
  6. No feature lists.
  7. Offer a way out.
  8. First person.
  9. Do not fake casual. Slightly formal beats slightly casual for cold sends.

The model will respect these if you make them explicit and repeat them in the scaffolding. If you bury them, the model ignores them.


Where the data has to come from

If the payload shape at the top of this post is not reaching your agent, no pattern saves you. The agent needs:

  • The person resolved by deterministic match (independent accuracy test)
  • The pages they actually read, with duration
  • Real-time delivery via webhook, not a nightly CSV
  • Intent topic matches from a wider graph (Orbit)
  • Suppression flags so you do not send to customers or churned logos

Leadpipe ships this out of the box. 30-40%+ match rate on US B2B traffic. Real-time webhooks (First Match, Every Update). 20,000+ topics in Orbit. Suppression at the API level. Every field documented in the webhook payload reference.

Without that data layer, you can prompt-engineer all day and still send to the wrong person with the wrong reference. The data layer is what AI sales agents are missing, and it shows up most visibly in outreach quality.


A short prompt-library note

If you are running an AI SDR platform and want to centralize these patterns, the right abstraction is usually:

  • A small library of 4 to 6 patterns
  • A router that picks the pattern based on payload (intent score, page, first touch vs follow-up)
  • The system prompt with the nine rules from above
  • A context-assembler that pulls the right subset of fields for each pattern

Your model can be Claude or GPT, whatever. The patterns matter more than the model. Build a Custom AI SDR with Leadpipe and OpenAI walks through the full scaffolding for a custom build.


The measurable outcome

What happens when these patterns replace the generic “I noticed you visited our website” template:

  • Reply rates on identified-visitor segments move from the low single digits into the 10 to 20% range.
  • Complaint rates drop because the content references real behavior, not invented intent.
  • Meetings-booked-per-send improves several multiples versus a generic template.

We see this consistently across the Leadpipe customer base. The pattern matters more than the model.


Every plan ships with the same identity graph, 23 REST endpoints, webhooks, and a 27-tool MCP server. Start in 5 minutes →