Integrations · Survey widget

Ask inside your product, read the answer next to the revenue.

Keep's own survey widget runs NPS, CSAT, CES, and custom surveys inside your product. Each answer lands on the account it came from, beside its MRR, its risk, and its renewal date.

What you get

Surveys are built in Keep: the question, the scale, a follow-up, the thank-you, the look (light, dark, or your brand color, radius, and logo), the format (floating, modal, or inline), the audience (everyone, identified users, new users, plans, or companies), and when it appears (right away, after some seconds or page views, on an event, or when your code calls it).

Answers show up on the account in Customer 360 and in the feedback insights: NPS, revenue by response type counted once per account, feedback by risk status, and the highest-MRR detractors. Any answer can become an issue. Keep shows the answers next to the revenue; it does not claim one caused the other.

Install

  1. Paste the snippet

    Add https://usekeep.dev/sdk/v1/keep.js to the pages where surveys may show, then call Keep.init with the survey id. The builder gives you the exact code, in HTML or as a React component.

  2. Identify the user

    Call Keep.identify with the user id or email; company id, billing customer id, plan, and sign-up date are optional and used for matching and targeting. Call Keep.reset on logout.

  3. Sign the identity on your server

    Compute HMAC-SHA256 of the user id (or the email when there is no id) with your identity secret, on your server, and pass it as the signature. Signed answers are marked verified; you can require it.

What the widget sends and receives

Based on Keep's widget (sdk/v1) as of September 2026.
—Keep's survey widget
ReceivesOnly the survey's own texts and look. Nothing about your customers.
SendsThe identity your app passes, that a survey was shown, and the answer (score and comment).
In the pageAbout 8 KB gzipped, loaded async, drawn in a Shadow DOM, texts rendered as text, never as HTML. Works under a strict CSP.
CookiesNone. It remembers which surveys were shown in localStorage.
FailuresSilent: the widget never throws into your page. Keep.debug logs them.
Stores in KeepEach answer with the respondent's email and comment, append-only.

Questions

Does the widget slow down my product?
It loads asynchronously and does nothing until a survey should appear. Its CSS lives in a Shadow DOM, so it cannot affect your styles.
Why sign the identity?
Anything a browser sends can be typed by anyone. The HMAC signature proves the answer came from the user your server says it did — the same scheme Intercom uses for identity verification.
Can I preview a survey before publishing?
Yes. The builder shows the real widget with your settings, and the preview sends nothing.
Which plan includes surveys?
Every plan. All Keep features, including every integration, are in all plans; the difference between plans is monitored MRR.

Other integrations

Hear from the accounts that pay the most.

Build a survey in Keep, paste one script, and read every answer next to the revenue.