# Getting started

> Add in-app support chat to your iOS or Android app in about five minutes.

Source: https://conciergesdk.com/docs/

Concierge is in-app support for iOS, Android, React Native and Flutter, with a web widget for your website. Your users tap Support inside your app and chat with you in a native screen. You answer from the dashboard, your phone, or Claude Code. An AI agent can answer first, from your own docs, and hand off to you the moment someone asks for a human.

## How it fits together

- **SDK** in your app: a native chat screen, an unread badge, push handling. Zero network calls at launch.
- **API** at `/v1/sdk/*`: the SDK talks to it with your public app key. You never call it yourself.
- **Dashboard**: your inbox, settings, knowledge for the AI agent, and the setup prompt.
- **MCP server**: the same inbox, inside Claude Code, Cursor or Codex. See [MCP server](https://conciergesdk.com/docs/mcp.md).

## 1. Create an app

Sign up, then add your app. You get two keys:

| Key | Looks like | Where it lives |
|---|---|---|
| App key | `app_...` | In your app. It's public, so embedding it is fine. |
| Identity secret | `ids_...` | On your server only. It signs user tokens. See [Identity verification](https://conciergesdk.com/docs/identity.md). |

## 2. Install the SDK

The fastest path: open **Setup** in the dashboard, press **Copy setup prompt**, and paste it into your coding agent. The prompt covers the install line for your platform, `configure`, a Support entry point and a test message, then wires your existing paywall, offers and review prompts and prefills your account from the codebase.

Already using another in-app support SDK? [Switch in one prompt](https://conciergesdk.com/docs/migrate.md): your agent swaps the calls, keeps your user ids and moves saved replies into knowledge.

Prefer doing it by hand? Pick your platform:

- [iOS](https://conciergesdk.com/docs/ios.md): Swift Package Manager, SwiftUI, iOS 16+.
- [Android](https://conciergesdk.com/docs/android.md): Gradle, Jetpack Compose, minSdk 24.
- [React Native and Expo](https://conciergesdk.com/docs/react-native.md): one Expo module for iOS and Android, with a JS fallback for Expo Go.
- [Flutter](https://conciergesdk.com/docs/flutter.md): one pub.dev plugin for iOS and Android, wrapping the native SDKs.
- [Web widget](https://conciergesdk.com/docs/web.md): one script tag or an npm package.

The short version on iOS:

```swift
import Concierge

Concierge.configure(appKey: "app_YOUR_APP_KEY")

// Anywhere in your UI:
Button("Contact Support") { Concierge.present() }
```

And on Android:

```kotlin
Concierge.configure(this, appKey = "app_YOUR_APP_KEY")

Button(onClick = { Concierge.open(context) }) { Text("Support") }
```

## 3. Send a test message

Run the app, open Support and say hi. The dashboard's setup screen waits for that first message and flips to **Connected** the moment it lands. Reply from the inbox and watch it arrive on the device.

## 4. Make it yours

- Tell Concierge who the user is with `identify`, so their history follows them to every device. Then turn on [identity verification](https://conciergesdk.com/docs/identity.md) so nobody can pretend to be them.
- Forward push tokens so replies reach users who left the app: [Push notifications](https://conciergesdk.com/docs/push.md).
- Match your brand without an app update: [Appearance](https://conciergesdk.com/docs/appearance.md).
- Let the AI agent take the first reply: [AI agent and knowledge](https://conciergesdk.com/docs/ai-agent.md).

> **One command:** `npx @conciergesdk/cli init` detects your project (Swift, Kotlin, Expo, bare React Native, Flutter), installs the SDK, wires push and waits for your first test message. `npx @conciergesdk/cli doctor` checks the install afterwards.
