Skip to content

The moment it happens

Get an email when a visitor starts a Crisp chat

You see each new visitor's first message and email address as soon as they write.

Runs
The moment it happens
Apps
Crisp
AI
Not needed
Access
plugin token with conversation read scope

Send this to your assistant

Create a ClickRuntime automation: when someone starts a Crisp chat on my site, email me at hello@mystore.com with their first message and email address.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

Website chat only works if someone answers quickly. A visitor opens the Crisp widget at 2 p.m. and asks about delivery times, and if nobody on the team notices for twenty minutes, they close the tab and buy elsewhere. Operators who are busy with other work often do not have the inbox open.

As soon as a visitor starts a chat in Crisp, this checks that it is a new session and emails you. Follow-up messages inside the same conversation do not send another email, so you get one prompt per visitor.

Small teams without a dedicated chat agent use it to catch the moments when a visitor actually wants help. The email is sent only for the opening of a session, so a visitor produces one prompt and not a stream of messages, and the notice reaches you while they are still on the page.

What you get out of it

  • Answer visitors while they are still there

    A quick notification lets you respond within a minute or two. Web visitors expect fast answers, and the first reply often decides whether they stay. A reply within a minute or two often decides whether a web visitor stays, since people expect quick answers from chat.

  • Capture sales opportunities from chat

    A visitor asking about pricing is close to buying. Responding quickly turns that interest into a sale, instead of losing it to a competitor's faster answer. A visitor asking about pricing is close to buying, and answering quickly turns interest into a sale before a competitor answers.

  • Cover chat without watching the inbox

    You can work elsewhere and rely on the email to tell you a visitor has arrived. That makes it practical for founders who wear many hats. You can work elsewhere and rely on the email to say a visitor has arrived, which makes chat practical for a founder wearing many hats.

  • Avoid email floods

    Only the start of a new session triggers an email. A long conversation does not produce dozens of messages, so you can keep the alert switched on. Only a new session triggers an email, and a long conversation does not produce dozens of messages, so the alert stays switched on.

  • Know the busiest times

    Email timestamps show when visitors tend to start chats. That helps you decide when to schedule coverage. Timestamps on the emails show when visitors tend to start chats, which helps decide when to schedule coverage.

How it works

What happens, step by step

  1. Each time a visitor sends a message in your Crisp chat, Crisp tells ClickRuntime straight away.

  2. It checks whether this is the start of a new conversation and ignores follow-up messages.

  3. You get an email with the visitor's email address and their first message.

Before it runs live

  • Connect Crisp
  • Paste your automation's link into the other app's webhook settings

What you get

RunsThe moment it happens
Get an email when a visitor starts a Crisp chatjust nowSucceeded
Email · New chat from kai@acme.exampleEmail: kai@acme.example Hi, does the large tote come in green?

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Act only on the items that match your own rules, and skip the rest
  • Add an AI step, for example to summarize, sort or draft a reply
  • Add another app, for example also send it to Slack
  • Combine it with other Crisp steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
new_conversation_alert_crisp.pyexample
import base64
from clickruntime import on_event, credentials, http, notify, state

@on_event
def handle(event):
    body = event.json or {}
    data = body.get("data", {})
    if body.get("event") != "message:send" or data.get("from") != "user":
        return {"skipped": body.get("event")}
    session = data["session_id"]
    if state.get(f"seen:{session}"):
        return {"skipped": "not the first message"}
    auth = base64.b64encode(f"{credentials.secret('CRISP_IDENTIFIER')}:{credentials.secret('CRISP_KEY')}".encode()).decode()
    meta = http.get(f"https://api.crisp.chat/v1/website/{body['website_id']}/conversation/{session}/meta",
                    headers={"Authorization": f"Basic {auth}", "X-Crisp-Tier": "plugin"}).json()["data"]
    notify.email_me(f"New chat from {meta.get('email') or meta.get('nickname')}",
                    f"Email: {meta.get('email', 'not given')}\n\n{data.get('content')}")
    state.set(f"seen:{session}", True)
    return {"emailed": True}

FAQ

Common questions

Does it alert on every message?
No. It checks whether the event is the start of a new session and sends only then. Later messages in the same conversation are ignored, which keeps your inbox manageable. It checks whether the event starts a new session and sends only then, so later messages in the same conversation are ignored.
Can I get a Slack message instead of email?
Yes. The notification step can post to a channel or send a direct message. Request it and review the revised flow before it goes live. A direct message or channel post in Slack is possible instead of email.
How do I connect Crisp?
You add the endpoint ClickRuntime provides as a webhook in your Crisp website settings and select the message events. Your credentials are stored as secrets and are not shown in the email. The endpoint goes into the webhook settings of your Crisp website with the message events selected, and your credentials stay stored as secrets.
What permissions does it need?
plugin token with conversation read scope. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run for each event the app sends.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Get an email when a visitor starts a Crisp chat” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.