Feedback source

Turn Crisp chat messages into ranked product insight

Live chat catches people at the moment something frustrates them. FeedbackFlow reads visitor messages and ranks what keeps coming up.

Why connect Crisp

  • Catch feedback at the moment of friction. Chat gets you the complaint while the person is still annoyed, which is when they are most specific.
  • Visitors only. Operator replies and file uploads are not ingested.
  • Triaged with everything else. Chat feedback is deduped and ranked next to your widget, helpdesk, and email items.
Crisp FeedbackFlow

"Export keeps timing out on large projects, this is blocking our team."

1Export reliability12 notesNegative

Deduped and ranked alongside every other source.

How it works

  1. 1

    Add a web hook

    Website Settings, then Integrations, then Web Hooks.

  2. 2

    Subscribe to message:send

    Paste the target URL from the Crisp card.

  3. 3

    Watch it triage

    Visitor messages become feedback items, grouped and ranked by AI.

Prefer the full walkthrough? Read the Crisp setup guide.

Before you start

  • A Crisp website where you can add web hooks, which is a website-settings level permission.
  • A FeedbackFlow project. The free plan covers one, and no credit card is needed to finish this setup.
  • An expectation of volume. Chat produces short, frequent messages, and each one becomes an item.

How to connect Crisp to FeedbackFlow

  1. 1

    Add the web hook

    In Crisp, go to Settings, then Website Settings, then Integrations, then Web Hooks, and add one. Set the target URL to the request URL shown on the Crisp card in your FeedbackFlow project settings.

  2. 2

    Subscribe to message:send

    This is the only event FeedbackFlow needs. It fires for both visitors and operators, and the adapter filters to visitors, so subscribing to it does not mean ingesting your own replies.

  3. 3

    Copy the secret into FeedbackFlow

    Paste the web hook secret into the Crisp card. Crisp signs with HMAC-SHA256 in hex in the x-crisp-signature header, and FeedbackFlow recomputes and compares it in constant time. A delivery with no secret configured is rejected rather than accepted unverified.

  4. 4

    Send a message from the chat widget

    Open your own site, send a message as a visitor, and watch the item appear. Then reply as an operator and confirm nothing new arrives, which is the check that the visitor-only filter is working.

The exact Request URL and any values you need to paste are shown on the Crisp card inside your project settings, because they are specific to your project. Full Crisp setup guide.

What FeedbackFlow reads from Crisp

Text messages from visitors only. Operator replies, images, and audio notes are dropped before anything is written.

FieldWhat FeedbackFlow does with it
data.contentThe feedback item's text.
data.fingerprintDeduplication key.
data.fromAnything other than "user" is dropped, which is what excludes operator replies.
data.typeAnything other than "text" is dropped. An image or audio note has no message to triage.
data.user.emailAttribution and account matching when the visitor has identified themselves.

What this looks like in practice

  1. An operator replies in the chat

    Ignored. Only messages from the visitor are ingested.

  2. A visitor sends a screenshot

    Ignored. There is no text to triage, and images are not read.

  3. A visitor sends five short messages in a row

    Five items. Dedupe groups them if they describe the same thing, but chat's habit of one-line-at-a-time is the main reason this source is noisier than email.

  4. An anonymous visitor with no email

    Ingested and attributed to nobody. It counts as a requester but cannot be weighted by account value.

Limits worth knowing

What this connector does not do, so you can find out here rather than after you have wired it up.

  • Chat messages are short and often fragmentary. One thought split across four messages becomes four items, and while dedupe helps, this source is genuinely noisier than email or a helpdesk.
  • Images, audio notes, and file uploads are not captured.
  • Email addresses only arrive when the visitor has identified themselves, so many chat items cannot be matched to an account.
  • Conversation context is not preserved. Each message is an item on its own, without the operator replies around it.

Frequently asked questions

Will my operators' replies become feedback items?
No. The message:send event fires for both sides of a conversation, and the adapter drops anything where the sender is not the visitor. That check matters: ingesting operator replies would triage your own support answers as customer feedback and inflate every topic count with your team's own words.
Is chat a good feedback source?
It is a good source of urgent, specific complaints and a noisy source of everything else. People chat in fragments, so one piece of feedback often arrives as several messages, and each becomes an item. It is worth connecting if chat is where your users actually raise problems, and worth watching your quota for a fortnight before deciding it earns its place.
What happens to messages from visitors who never identify themselves?
They are ingested and counted as requesters, just without an email address. That means they contribute to how often something is asked for but cannot be weighted by account value, and close-the-loop emails cannot reach them. Most chat traffic is like this unless your product identifies logged-in users to Crisp.
Does this capture the whole conversation or single messages?
Single messages. Each visitor message is its own feedback item, without the surrounding conversation. That keeps the triage input clean but does lose context, so a message that only makes sense as a reply to an operator question may read oddly on its own.
Should I use Crisp as a source if I already have the widget installed?
They catch different moments and overlap less than you would expect. The widget catches someone who decided to tell you something; chat catches someone who wanted help and mentioned a problem on the way. Running both is fine, and dedupe collapses the cases where one person says the same thing twice through both. If you are trying to keep item volume down, the widget is the higher-signal source of the two.
What if a visitor sends something confidential in chat?
The same redaction that applies to every other source applies here: emails, phone numbers, card-like numbers, and tokens are stripped from the text before it reaches a model or a ticket, and the setting for that is per project. It is worth knowing that redaction covers text only, so if your chat receives screenshots they are not read at all rather than scanned, which for this connector means an image is simply ignored.

Connect Crisp today

Free plan. No credit card. Live in 2 minutes.