Skip to content

Stop rebuilding feedback forms and quizzes.

Customer Bits stores your customers' feedback and runs your in-app quizzes. Your backend makes the call with one API key, your app keeps its own screens, and we only ever see an ID you choose, or none at all.

In your app

Report a problem

Type

Drawn the way your app might draw it. Customer Bits ships no widget, so the screen stays yours.

What your backend sends

POST /api/feedback
X-Cusi-Key: $CUSI_API_KEY
Content-Type: application/json

{
  "external_user_id": "8241",
  "feedback_type": "bug",
  "message": "The scan button does nothing on Android 14."
}

201 Created, and a message in your team's Slack channel if the project has a webhook.

The bits

Each bit is a handful of endpoints behind the same project key. Two ship today. The rest are planned, and listed here so nobody buys a roadmap by mistake.

Read the API reference

  • Feedback

    Bug reports, feature requests and general notes, with an optional subject, app version and platform. Each one can also post to your team's Slack.

    Calls

    • POST /api/feedback

    Status

    Shipping

  • Quizzes

    Single choice, multiple choice and free text, with availability windows, one response per person and dismissals. A claim call keeps the push job you already run in charge of notifications.

    Calls

    • GET /api/quizzes/available
    • GET /api/quizzes/{id}
    • POST /api/quizzes/{id}/submit
    • POST /api/quizzes/{id}/dismiss
    • POST /api/quizzes/{id}/notification-claims

    Status

    Shipping

  • Planned

    Surveys, NPS, in-app announcements, changelogs and a support inbox.

    Calls

    Not built yet

    Status

    Planned

Why your backend makes the call

Your backend already knows who is signed in. Customer Bits sits behind it, so it never needs to.

Your app talks to your backend over your own session. Your backend calls Customer Bits with the project key and an ID it chooses.
No end-user client calls it
Browsers and phones never talk to Customer Bits, so there is no public key to leak and no copy of your user accounts. Send your own ID to trace a message back to a customer, or leave it out for anything anonymous.
A project is the tenant
The project comes from the key, never from the request body, and two projects in the same company share nothing. Only a SHA-256 hash of each key is stored, so a key is shown once.
Every change is recorded
Feedback, quizzes, responses and team changes write an audit trail with a field-level diff and the project or person that made the change.

Start with one project

Registering creates your company. In the console you add a project, copy its key once, and point your backend at the API.