> ## Documentation Index
> Fetch the complete documentation index at: https://docs.insito.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> In-app micro-surveys for mobile apps. Drop-in SDK, real-time NPS dashboard, zero analytics-team setup.

Insito is a hosted micro-survey product for native mobile apps. Drop the
SDK into your React Native or Flutter codebase, point it at a trigger (a tap, a
screen view, a successful checkout), and Insito will decide whether to
show a one-question NPS, a multi-choice prompt, or a short follow-up.
Responses stream into a real-time dashboard with NPS scoring and
per-screen drill-downs.

## What's in the box

<CardGroup cols={2}>
  <Card title="React Native SDK" icon="mobile-screen" href="/sdk/react-native/install">
    Singleton `MicroSurvey` client + `<InsitoProvider>` for the modal
    UI. Survey rendering, persistent offline queue, screen-map
    tracking, and 4 theme presets ship in the package.
  </Card>

  <Card title="Flutter SDK" icon="mobile-screen-button" href="/sdk/flutter/install">
    The same `MicroSurvey` API and `InsitoProvider` widget as a Dart
    package on pub.dev — offline queue, navigator-based screen tracking,
    theming, and dark mode, all mirroring the React Native SDK 1:1.
  </Card>

  <Card title="Hosted dashboard" icon="chart-line" href="/dashboard/creating-surveys">
    Build surveys with the visual builder, watch NPS trend lines
    update in real time, browse per-response transcripts, and wire
    integrations like Slack notifications.
  </Card>

  <Card title="REST API" icon="server" href="/api/sdk-endpoints">
    A full SDK endpoint set + dashboard surface. Use them directly
    if you're integrating from a platform we don't ship an SDK for yet.
  </Card>

  <Card title="MCP server" icon="robot" href="/mcp/install">
    Connect Claude Desktop, Cursor, or any MCP client to Insito. Create
    surveys, publish them, and read NPS analytics in natural language.
  </Card>

  <Card title="Per-org isolation" icon="shield-halved" href="/concepts/plan-limits">
    Every project belongs to one organisation, each app's responses count
    against a monthly cap, every dashboard route is RLS-scoped.
    Cross-org access returns 404 by design.
  </Card>
</CardGroup>

## How it works

```mermaid theme={null}
flowchart LR
  App["Your app"] -->|"trigger('checkout_completed')"| API["api.insito.app"]
  API -->|"survey or null"| App
  App -->|"submitResponse"| API
  API -->|"realtime"| Dash["admin.insito.app"]
  API -->|"integrations"| Slack["Slack channel"]
```

The mental model is three pieces:

1. **Triggers** are short event names your app calls (`MicroSurvey.trigger("checkout_completed")`).
   They're attached to surveys in the dashboard, so non-engineers can
   change what gets asked without shipping a new app build.
2. **Surveys** are 1–N questions of four types: NPS (0–10), rating (1–5),
   multiple choice, and open text.
3. **Responses** land in the dashboard with the user's `userId`, the
   trigger that fired the survey, and every answer.

## Pricing

Plans are response-based — each app's submitted responses count against a
monthly cap (per app). Triggers, impressions, and "no survey shown" responses
don't count. See [plan limits](/concepts/plan-limits) for the full
matrix.

## Next steps

<CardGroup cols={2}>
  <Card title="5-minute Quickstart" icon="bolt" href="/quickstart">
    Sign up, install the SDK, fire your first trigger end-to-end.
  </Card>

  <Card title="Triggers explained" icon="bell" href="/concepts/triggers">
    The model that decides whether a survey shows.
  </Card>
</CardGroup>
