Proactive Chat Triggers Playbook

Use this when you want chat to start conversations on its own, not just wait for someone to click the bubble. Each section is one trigger with the condition that fires it and the opening message, so you can copy the ones that fit your site and skip the rest. Start with two or three triggers, watch reply rates, then add more.

Format
Editable doc
Length
6 sections · ~2 pages
Price
100% free
Setup
Copy or deploy

Copy the whole template, or grab a single block below.

Get started free
4.9·Free · No signup · Copy-paste ready
Connects toWebsiteWhatsAppTelegramInstagram
Support

Proactive Chat Triggers Playbook

Pricing page hesitation

Condition: On the pricing page for [30] seconds, or scrolled past the plan comparison.

Do not fire if: the visitor already started checkout, or this trigger fired earlier today.

Opening message: Picking a plan? Happy to help you figure out which one fits [team size / monthly volume].

Follow-up if they reply: Quick question, are you mostly comparing on price or on the [specific feature]? That usually decides it.

If they ask about discounts: We can talk through annual billing and any options for [startups / nonprofits]. Want me to pull that up?

Fallback if no reply in [20] seconds: No rush. I will leave this open if a question comes up.

Cart or checkout stall

Condition: Items in cart and no progress for [45] seconds, or the visitor reopened the cart twice.

Do not fire if: a payment attempt is in progress, or the order already completed.

Opening message: Stuck at checkout? Happy to sort out anything with shipping, payment, or a code that is not applying.

If they mention a coupon issue: Drop the code here and I will check whether it is active for [your cart / your region].

If they mention shipping cost: Want me to show the options for [destination]? Some are faster, some are cheaper.

Soft exit: Need a minute? Totally fine. I am here when you are ready to finish up.

6 ready-to-use sections

1

Pricing page hesitation

When to use: Use when a visitor has been reading pricing for a while and may be stuck on plan choice or cost.

Condition: On the pricing page for [30] seconds, or scrolled past the plan comparison.

Do not fire if: the visitor already started checkout, or this trigger fired earlier today.

Opening message: Picking a plan? Happy to help you figure out which one fits [team size / monthly volume].

Follow-up if they reply: Quick question, are you mostly comparing on price or on the [specific feature]? That usually decides it.

If they ask about discounts: We can talk through annual billing and any options for [startups / nonprofits]. Want me to pull that up?

Fallback if no reply in [20] seconds: No rush. I will leave this open if a question comes up.

2

Cart or checkout stall

When to use: Use when someone added items or reached checkout but has not moved forward, signaling a blocker.

Condition: Items in cart and no progress for [45] seconds, or the visitor reopened the cart twice.

Do not fire if: a payment attempt is in progress, or the order already completed.

Opening message: Stuck at checkout? Happy to sort out anything with shipping, payment, or a code that is not applying.

If they mention a coupon issue: Drop the code here and I will check whether it is active for [your cart / your region].

If they mention shipping cost: Want me to show the options for [destination]? Some are faster, some are cheaper.

Soft exit: Need a minute? Totally fine. I am here when you are ready to finish up.

3

Exit intent

When to use: Use when a visitor signals they are about to leave so you get one last, low-pressure chance to help.

Condition (desktop): Mouse moves toward the browser top bar or back button on [pricing / product / signup] pages.

Condition (mobile / touch): No cursor exists, so use a touch-equivalent signal instead, like a fast scroll back to the top followed by [3] seconds of inactivity, or a detected back gesture, on those same pages.

Do not fire if: the visitor already messaged you this session, or they are on a confirmation page. On touch devices, do not fire on the cursor-only rule, since it never triggers there.

Opening message: Before you go, did you find what you were looking for?

If they were comparing options: Want a short summary of [plan A vs plan B] by email or [WhatsApp], if you share where to send it? That way you have it for later.

If they hit a blocker: What got in the way? Even a one-word answer helps me point you in the right direction.

Capture line: Want me to save your spot? Leave a [name and email or WhatsApp number] and I will follow up, no spam.

Setup note: This capture and channel switch both need the visitor to opt in with a contact handle, which lands in [your CRM] for follow-up, so connect it first or there is nowhere to save the lead.

4

Engaged time on a key page

When to use: Use when a visitor lingers on a high-intent page like a feature, demo, or integration page.

Setup filter: Skip this trigger on thin pages under [300] words, since there is not enough to engage with there.

Condition: On a [feature / integrations / demo] page for [40] seconds with active scrolling.

Do not fire if: the visitor is clearly skimming and leaving fast, or this trigger already fired for them today.

Opening message: Reading up on [feature name]? I can answer anything specific or show you how it works with [your tools].

If they ask how it works: Tell me your setup and I will walk through the exact steps for [your case].

If they want to see it live: Want a quick [demo / call] booked, or should I just answer right here? Whichever is easier.

Channel offer: Prefer to continue on [WhatsApp / Telegram / Instagram]? Reach out from there and I will pick it up, so I have a handle to reply to.

5

Returning visitor

When to use: Use when a known or repeat visitor comes back, so you can greet them by context instead of from scratch.

Setup note: This trigger needs visitor history and open-ticket status from your CRM or helpdesk, so wire up [your CRM / helpdesk] first or it has nothing to read.

Condition: A repeat visit within [7] days, or a logged-in or previously identified contact returns.

Do not fire if: the last conversation ended under [1 hour] ago, or there is an open human ticket.

Opening message: Welcome back. Want to pick up where we left off on [last topic], or is this something new?

If they had an open question: Last time you asked about [topic]. Did that get sorted, or should I dig in?

If they are further along now: Looks like you are closer to a decision. Want me to line up [next step] for you?

Personalized nudge: I still have your notes on [need / use case], so we can skip the intro and get to it.

6

Help docs and self-serve

When to use: Use when someone is reading documentation or a help article and may be stuck mid-task.

Setup note: The escalation line below hands off to a human, so connect [your CRM / helpdesk] for ticket routing or there is no team inbox to pass them to.

Condition: On a [help / docs / troubleshooting] article for [60] seconds, or the same article opened twice.

Do not fire if: the visitor came from a successful action, or they dismissed this trigger today.

Opening message: Stuck on this one? Tell me what you are trying to do and I will give you the short version.

If they describe an error: Paste the exact message or screenshot and I will tell you what it means and the fix.

If it is a feature request, not a bug: Got it, that is not built in yet. I will log it for the team [and follow up if you leave an email].

Escalation line: This looks like one for a human on our team. Want me to hand you off now or set up a callback?

Replace the [highlighted fields] with your own details. Free to use.

Do it in sem.chat

Trigger the right message at the right moment

Drop these triggers into sem.chat and your AI agent opens the chat on its own, on your website, WhatsApp, Telegram, and Instagram. It answers in your voice, captures every lead into the built-in CRM, and hands off to a human the moment a conversation needs one.

  • Fire condition-based triggers across website, WhatsApp, Telegram, and Instagram from one agent
  • Every proactive chat and the contact behind it lands in the built-in CRM automatically
  • Smart handoff passes high-intent or stuck visitors to a human with full context

How to use this template

  1. 1

    Pick two or three triggers that match your highest-intent pages, like pricing and checkout, and leave the rest off for now.

  2. 2

    Fill in every [placeholder] with your real timing, page names, plans, and channels so each message sounds like your business.

  3. 3

    Add the do-not-fire rules so a visitor never gets the same prompt twice or gets interrupted mid-payment.

  4. 4

    Turn them on, watch reply rates for a week, then keep the triggers people answer and rewrite or drop the ones they ignore.

Frequently asked questions

How do I keep proactive chat from feeling annoying?
Give each trigger a clear reason to fire and a do-not-fire rule, so it only opens when there is a real signal like cart stall or exit intent. Cap it to one proactive message per visit, never interrupt checkout or a payment, and lead with a helpful question instead of a sales pitch. If someone ignores the first message, stay quiet rather than nudging again.
How long should I wait before a trigger fires?
It varies by page and audience, so treat the timings here as starting points and tune them. On high-intent pages like pricing or checkout, shorter delays tend to catch people while they are deciding; on docs and content pages, a longer delay avoids interrupting a reader who is just getting oriented. Watch reply rates and adjust the [seconds] up or down from there.
Should every trigger send the same message?
No. The whole point is matching the message to the moment: a cart staller needs help finishing the order, an exit-intent visitor needs a low-pressure last question, and a docs reader needs a fix, not a sales line. Each section here gives a distinct opener for that reason, so copy them separately rather than reusing one generic greeting everywhere.

Power it up with sem.chat

Everything you need to put this template to work.

Put this template to work in sem.chat

Drop this template into sem.chat, put it to work across your channels, and go live the same day. Free to start, no credit card.