Feedback you don't read still costs you. Feedback you act on pays.
Sentriment reads every review, ticket, survey and sales call, groups them into themes and shows the monthly revenue (MRR) behind each one.
No credit card · Set up in 5 minutes · 100% EU-hosted, GDPR-first
Follow one piece of feedback through all six steps.
how it works, in six steps
Every channel, one pipeline.
Send feedback from your backend, add a widget to your app, or connect the tools your feedback already lives in. Every source is read the same way, and what comes out lands where your team already works. Read the docs →
Choose a channel to see how it connects
REST API
liveOne API call from any backend. Personal data is removed on arrival, and the feedback joins that user's record.
$ curl -X POST \
https://app.sentriment.com/api/v1/feedback \
-H "Authorization: Bearer sk_live_…" \
-H "Idempotency-Key: order-4231-note" \
-d '{
"text":
"checkout froze when I applied my coupon",
"userId": "user_8231"
}'Any language, one call
Send one piece of feedback or thousands. A retry never creates a duplicate (idempotency keys).
Users come with it
Pass your own user id and the feedback counts toward that user's health score.
Errors that explain themselves
Every failure says what went wrong and how to fix it, in the standard problem+json format.
Slack & email alerts
Spikes, regressions, and at-risk users, the moment they happen
Mixpanel & Amplitude sync
Health scores pushed onto user profiles. Cohort and campaign on them
GitHub & Linear issues
File from a theme; feedback linked to the fix
Daily digest
What changed overnight, every morning on your Insights page
Dashboard, API & webhooks
Query clusters programmatically, push events out
REST API
liveOne API call from any backend. Personal data is removed on arrival, and the feedback joins that user's record.
$ curl -X POST \
https://app.sentriment.com/api/v1/feedback \
-H "Authorization: Bearer sk_live_…" \
-H "Idempotency-Key: order-4231-note" \
-d '{
"text":
"checkout froze when I applied my coupon",
"userId": "user_8231"
}'Any language, one call
Send one piece of feedback or thousands. A retry never creates a duplicate (idempotency keys).
Users come with it
Pass your own user id and the feedback counts toward that user's health score.
Errors that explain themselves
Every failure says what went wrong and how to fix it, in the standard problem+json format.
Slack & email alerts
Spikes, regressions, and at-risk users, the moment they happen
Mixpanel & Amplitude sync
Health scores pushed onto user profiles. Cohort and campaign on them
GitHub & Linear issues
File from a theme; feedback linked to the fix
Daily digest
What changed overnight, every morning on your Insights page
Dashboard, API & webhooks
Query clusters programmatically, push events out
coming next
One pipeline, whatever the source
A review, a ticket, a sales call, a note from the widget and a row from a spreadsheet are cleaned of personal data, de-duplicated and scored the same way.
One person, one profile
Email joins a customer's Intercom chats, Zendesk tickets and in-app notes into one record with one health score.
History without the noise
Imported history counts toward themes and health scores, but never fires alerts or shows up as a spike.
Personal data never reaches storage.
Personal data (PII) such as names, emails, phone and card numbers is swapped for labelled placeholders on the way in. The original text never touches the database, and the database is in Frankfurt. How redaction works →
Switch between what arrives and what is stored
# in-app widget
“refund me at ⟨email:1⟩, card ⟨card:1⟩”
stored · 2 identifiers removed
# POST /api/v1/feedback
“⟨name:1⟩, call me on ⟨phone:1⟩”
stored · 2 identifiers removed
where it is stored
In the EU, on a database in Frankfurt
- database
- Frankfurt
- compute
- EU only
- backups
- EU only
one thing leaves the EU: feedback text with personal data already removed, sent to model providers in the US for analysis, never for training
the way out
Right to be forgotten, built in
One call erases a person wherever they appear: feedback, identity, call transcripts, alert history. Themes recount from what is left. Deletion is a feature, not a ticket.
DELETE/api/v1/users/user_8231
202 Accepted · status: pending
status: completed · 42 items deleted
erase by user id or by any email sent for them · the same path with GET returns everything held about that person (GDPR Art. 15)
Removed before storage
Placeholders like ⟨email:1⟩ replace personal data before anything is saved, so there is none to leak, to be ordered to hand over, or to end up in an AI model.
100% EU data residency
Database in Frankfurt, compute and backups in the EU. One thing leaves it: feedback text with the personal data already removed, sent to AI model providers in the United States for analysis, never for training.
Your data trains nothing
Feedback is processed to serve your dashboard, never used to train third-party models; every AI output records the model and prompt that produced it.
See the revenue behind a complaint.
Every piece of feedback is read, de-duplicated and grouped by meaning into themes. Each theme carries the MRR of the accounts that reported it, so the roadmap argument is about money, not volume. See a theme →
Click a theme to see the revenue behind it
ranked by the MRR behind each theme · 1,284 pieces of feedback · last 30 days
€4,180
MRR behind this theme · 42 reports
“Coupon field just spins forever on my iPhone.”
“Cart freezes the second I apply SAVE20.”
42 reports cited · first seen 6h ago · checkout v4.2.1
Priced in MRR
The revenue behind a theme is the sum of what those customers pay, taken from the customer value your server already sends. No extra tracking.
Spikes surface within hours
A theme rising 340% in a day is flagged and summarised before the next review.
Quotes stay attached
Every count links back to the exact feedback behind it, so nothing is paraphrased away.
Catch churn while it is still preventable.
Each user gets an explainable health score from the tone and weight of what they send. A sustained decline fires an alert before the renewal call, not after it. How the score works →
Biggest exposure first, sorted by what the account pays
| user | score | trend | mrr |
|---|---|---|---|
user_8231 3 complaints this week | 23at risk | −61 | €290 |
user_4417 SSO blocked, 2 follow-ups | 31at risk | −44 | €480 |
user_1902 Crash reports, no reply yet | 38at risk | −27 | €320 |
scores recomputed nightly and on new feedback · synced to Mixpanel and Amplitude
Ranked by MRR
Risk is sorted by what the account pays, so the biggest exposure comes first.
Alerts where you work
Slack or email the moment someone drops into at-risk, with who, why and what they pay.
Synced back
Scores land in Mixpanel and Amplitude as user properties, so cohorts and campaigns can use them.
Ask a question. Get a cited answer.
Ask in plain language across every source at once. The answer carries a verdict, a number and the quotes it rests on, and a tracked question re-answers itself on a schedule. Ask and tracked questions →
Pick a question in the box
Cited and auditable
Every answer records the model and prompt version that produced it, so every claim in your dashboard can be checked.
Alerts that matter
Slack or email when a theme surges, a fixed issue returns, or a user drops into at-risk.
Out to where you work
File a theme to GitHub or Linear, get the daily digest, push events over webhooks or pull them from the API.
“We can't roll this out without SAML.”
“Okta or it's a non-starter for our security team.”
Spiking: checkout freezes
7 new reports in 24 hours · 4.2× the usual
Filed to Linear: SEN-142
Checkout freezes on coupon · 42 reports linked
Also in the box
Tell them it shipped
Mark a theme fixed and Sentriment drafts the note for everyone who reported it, ready to paste into your support tool or changelog.
A weekly worklist
What is new, spiking or biggest, with pin, mute and resolve in one place.
Search by meaning
Look for “slow” and also find “laggy”, “takes forever” and “just spins”.
Reports you can revisit
Any slice of your feedback as a saved chart, ready for the weekly review or the board.
every answer cites the feedback it rests on · tracked questions answer themselves again every week
Find the customers you should clone.
The same score that flags churn ranks your happiest accounts. Sentriment reads what they have in common, who does not fit, and the words they use, so you know who to find, who to stop chasing and what to say to them. Segments and traits →
Read the finding, then the evidence
you assumed your buyer was
engineering leads
your feedback says it is
product leads
same companies · SaaS, 50 to 200 people · same deal size
1 · clone these
Your best customers look like this
14 healthy accounts · €7,920 MRR
| what they share | how many | vs all users |
|---|---|---|
| role product lead· the finding | 8 of 14 | 2.4× |
| found you via a comparison article | 6 of 14 | 3.0× |
| plan Pro | 9 of 14 | 2.1× |
| company size 50 to 200 people· as you assumed | 11 of 14 | 1.1× |
| region EU | 12 of 14 | 1.3× |
“vs all users” is how much more common a trait is among the 14 · built from the customer details you already send
Users who love you
top 3 of 14 · by MRR
user_2210
praised the editor 4 times
user_0873
praised onboarding 2 times
user_5518
praised search speed 3 times
2 · stop chasing these
6 accountsEngineering-led trials
Same size of company, different champion. Less happy, costlier to support, and waiting on something you have not built.
- health score
- 36 of 100 · at risk
- blocked by
- no SAML single sign-on
- complaints per euro paid
- 2.3× your average
Not never. Not until SSO ships. Until then, open the conversation with the product team.
3 · say it their way
language gap · in betaThe words on your site are not the words in their mouths
Drafted headline: Stops the copy-paste. Onboarding your team will actually enjoy.
how often each phrase appears in customer feedback · your homepage and pricing page, read against 38 pieces of praise
Your ideal customer, from your own data
The traits your healthiest accounts share, each with how over-represented it is.
The accounts that cost you
The segment with the lowest health and the most feedback per euro, before sales spends another quarter on it.
Their words, your copy
Praise is counted phrase by phrase, so the headline, the audience and the proof quote come from customers.
Measured
From raw quote to ranked theme in 8.7 seconds.
Three numbers the site publishes because they were measured, not promised. Every figure below is real; nothing is a projection.
- to the first theme
- 8.7s
- median, from raw feedback to a labeled, sentiment-scored theme, measured in production
- widget footprint
- 5.3KB
- framework-free, shadow-DOM isolated, one script tag
- hosted in the EU
- 100%
- data in Frankfurt, compute in the EU, PII redacted before storage
one real piece of feedback, straight through the pipeline
“Love the new dashboard, but the export button is impossible to find”
actual output from the production pipeline, theme label and emotions included · 8.7 seconds, end to end
FAQ
Questions, answered.
PII (emails, names, phone and card numbers) is redacted before anything is stored; the raw text never touches the database. Everything is hosted in the EU (data in Frankfurt), encrypted in transit and at rest, never used to train third-party models, and deletable via API at any time. SOC 2 is on the roadmap; the GDPR architecture is live today.
You are not short on feedback. You are short on a way to read it.
Sentriment reads all of it, prices what hurts, and hands you the words of the people who love you.
sentriment.com · EU-hosted · GDPR-first · PII redacted before storage