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
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.
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.
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
| — | Keep's survey widget |
|---|---|
| Receives | Only the survey's own texts and look. Nothing about your customers. |
| Sends | The identity your app passes, that a survey was shown, and the answer (score and comment). |
| In the page | About 8 KB gzipped, loaded async, drawn in a Shadow DOM, texts rendered as text, never as HTML. Works under a strict CSP. |
| Cookies | None. It remembers which surveys were shown in localStorage. |
| Failures | Silent: the widget never throws into your page. Keep.debug logs them. |
| Stores in Keep | Each 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.