# Concierge > In-app support SDK for iOS, Android, React Native and Flutter apps, plus a web widget for websites. Native chat SDKs, an AI agent that answers from your docs and hands off to a human, push, review and offer cards, and an MCP server so coding agents like Claude Code, Cursor and Codex can run the inbox. Pro is one flat monthly plan with 1,000 AI replies included: Founder price $19 a month, locked while you stay subscribed, for the first 50 subscribers. Then $49 a month. No free plan and no trial. Each docs link below is the Markdown version of a docs page. For everything in one file, fetch https://conciergesdk.com/llms-full.txt. ## What is Concierge? Concierge is an in-app support SDK for mobile apps. It adds a native support chat to iOS, Android, React Native and Flutter apps and to websites, answers users first with an AI agent grounded in your own docs, and lets developers run the support inbox from Claude Code, Cursor, Codex or any other MCP client through a remote MCP server. It is built for indie and small app teams: Pro is one flat monthly plan with AI replies included ($19 a month, locked while you stay subscribed, for the first 50 subscribers, then $49 a month), there is no free plan and no trial, and the SDKs ship as prebuilt native binaries. ## Key facts (checked October 2026) - **Platforms:** iOS 16+ (SwiftUI), Android minSdk 24 (Compose), React Native and Expo (one package wrapping both native SDKs), and Flutter (one plugin wrapping both native SDKs). Web widget (script tag or npm, with a React binding). - **Pricing:** Pro is one flat monthly plan: unlimited apps and seats, 1,000 AI replies included. Founder price $19 a month, locked while you stay subscribed, for the first 50 subscribers. Then $49 a month, same plan. Scale on request. No free plan, no trial: before you pay, test with up to 3 of your own devices. Prices exclude applicable taxes. - **AI agent:** Answers from your knowledge docs, labeled as AI, hands off to a human on request. - **MCP server:** Read and write tools over Streamable HTTP. Works with Claude Code, Cursor, Codex, Windsurf, VS Code with Copilot, Gemini CLI, Zed and any MCP client. - **AI cost:** Measured average model cost per AI reply: $0.00075 (October 2026 eval), which is why replies are included, not metered. - **License:** SDKs ship as prebuilt binaries, free to use with a Concierge account. - **Privacy:** App servers and database in Canada (OVHcloud, Beauharnois) behind Cloudflare; attachments in private Cloudflare R2 storage in North America. Subprocessors: OVHcloud, Cloudflare, Anthropic, Resend and Stripe; error tracking is self-hosted. A DPA with SCCs covers end user data, and end user data can be exported or deleted from the dashboard, API or MCP. Cookieless website analytics. ## Pricing - **Pro** ($19/month founder price, locked while the subscription stays active, for the first 50 paid subscriptions; then $49/month, flat): For apps with paying users. Unlimited apps and seats; iOS, Android, React Native and Flutter SDKs, plus a web widget; 1,000 AI replies a month included; MCP server for every coding agent; Refund desk, cancel moment and review drafts; Offers with proven revenue; Email support, replies by email; Two way translation (coming soon); Slack replies (coming soon); In-app analytics (coming soon). - **Scale** (priced on request): For big apps and teams with rules. Everything in Pro; Higher AI volume; SSO and audit log; Data residency; An SLA. **Before you pay:** There is no free plan and no trial. Before you pay you can sign up, add your apps, write help articles, follow the install steps and send test messages from up to 3 of your own devices. All AI (chat replies, the knowledge autopilot, review reply drafts and the rest) and real users start when you subscribe. ## AI automations - **Refund desk**: Answers Apple's consumption request inside the 12 hour window from your policy, then asks the user in the chat what went wrong. - **Locked purchase check**: "I paid but it's locked" gets the store, RevenueCat and your app compared, then Restore purchases with the user's OK. - **Cancel moment**: Auto renew off triggers a gentle check in and an offer only if your policy allows it. Cancelling is never blocked. - **Review replies, drafted**: New App Store and Google Play reviews are sorted and get a reply drafted in the reviewer's language. Nothing posts until you approve. - **Billing heads ups**: A quiet receipt after purchase and a heads up before a yearly renewal or a trial converts. Fewer "I didn't mean to buy this" refunds. - **Knowledge autopilot**: Reads your links, product notes and resolved chats, drafts help articles for your review and refreshes them when a new app version shows up. - **Spam filter**: The first three messages of every new thread are screened, and spam or abuse is flagged in your inbox. - **New message emails**: Held two minutes so the AI or a teammate can answer first, then sent instantly or hourly, your choice. A morning digest lists who is still waiting. - **Refund rate alerts**: A warning when your 30 day refund rate passes the threshold you set, and an alert if a refund answer fails or nears its deadline. - **Version spike alerts**: When one app version brings a wave of tickets about the same problem, you see it with real examples. Set one reply and every affected user gets it until you mark it fixed. - **Email support**: Users email your app's support address (or you forward your own to it) and it lands in your inbox as a conversation. Replies from the dashboard, your coding agent or the AI go back by email. Sending from your own domain is coming soon. ## Works with every coding agent The remote MCP server has 42 tools that read and write. It speaks Streamable HTTP, so it works with Claude Code, Cursor, Codex, Windsurf, VS Code with Copilot, Gemini CLI, Zed and any other MCP client. Setup prompt and llms.txt work in any agent. ## Numbers - **$0.00075** average model cost of one AI reply. Measured in our October 2026 eval, tool calls included. - **1,000** AI replies a month in the Pro plan. A hard cap, never a surprise bill. - **12 h** Apple's window to answer a refund request. The refund desk answers inside it, from your policy. - **0** taps counted as money kept. A save counts as proven only when a store webhook confirms the purchase. - **91%** of test conversations passed our AI eval. 40 of 44, graded on grounding, language, safety and tone. October 2026. - **1.4 s** median time to an AI reply. End to end in the same eval, tool calls included. 95% arrive within 3.8 s. ## Compared with other in-app support tools | | Concierge | Typical in-app support tools | |---|---|---| | Native SDKs | iOS, Android, React Native and Expo (with an Expo Go fallback), Flutter and a web widget | Often iOS first, a webview wrapper, or React Native on one platform only | | Paid plans start at | $19/mo founder price (first 50), then $49/mo flat, unlimited apps and seats | Per seat, or a flat plan that caps apps or seats | | AI replies | Included: 1,000/mo on Pro | Billed per resolution, or included with unpublished limits | | MCP server | Read and write, 42 tools | None, read only, or on a higher tier | | Chat history | Per user, across devices, paged | Often per device, or capped to recent messages | | Switching | One prompt for your coding agent | Manual rewrite | Summarized from the public pricing pages, docs and SDKs of in-app support and helpdesk tools for mobile apps. Checked October 2026. Spot something out of date? Email us and we'll fix it. ## Switch from another in-app support tool Paste one prompt into a coding agent and it replaces the current support SDK with Concierge. Page: https://conciergesdk.com/switch/. Guide: https://conciergesdk.com/docs/migrate.md. ```text Replace this project's in-app support SDK with Concierge (https://conciergesdk.com). My Concierge app key: app_YOUR_APP_KEY 1. Read https://conciergesdk.com/docs/migrate.md and the guide for this platform (https://conciergesdk.com/llms.txt lists every page as Markdown). 2. Find the current support SDK. Search the dependency files (Package.swift, Podfile, project.pbxproj, build.gradle or build.gradle.kts, package.json, app.json, pubspec.yaml) and the code for its init or configure, identify or login, logout, custom attributes or metadata, open chat, unread count, push token and notification calls. List every call site before changing anything. 3. Install Concierge by following the install steps in the guide for this platform: add the package, then call configure with app_YOUR_APP_KEY. Show me the diff before you write it. For a website, add @conciergesdk/web. 4. Swap each call using the mapping table in migrate.md. Keep the same user id the old SDK used. Custom attributes become string metadata; never put names or emails in metadata. 5. Identity: if my backend signed a user hash or JWT for the old tool, add an endpoint that signs a Concierge identity token (HS256, sub = user id, exp at most 30 days) with the identity secret, and pass it to identify. The secret stays on the server, never in the app or the repo. 6. Remove the old SDK completely: dependency, imports, keys, plist or manifest entries and its push handler. Leave no dead code behind. 7. Saved replies, macros and help articles: if the Concierge MCP server is connected, add each one with upsert_knowledge and draft: true, one article per topic. Otherwise write them to support-export/knowledge/ as Markdown. If the old tool hosts a help center, give me its URL so I can add it under Knowledge, Sources, Add a link. 8. Conversations: if the old tool has an export or an API, write every thread to support-export/conversations/conversations.json in the shape migrate.md shows, add support-export/ to .gitignore and never commit it. Import it with the import_conversations MCP tool. Import is part of Pro. List the customers still waiting for a reply. 9. Build, open Support in the app and send "Hello from the switch". Confirm the dashboard shows Connected, or check it with the verify_install MCP tool. 10. Report: files changed, each old call and what replaced it, anything left as TODO(concierge), the knowledge drafts, the imported conversations and the waiting customers. ``` ## FAQ ### How much does Concierge cost? Pro is one flat monthly plan for unlimited apps and seats, with 1,000 AI replies a month included. The first 50 paid subscriptions get the founder price, $19 a month, locked for as long as the subscription stays active (canceling ends it). After that Pro is $49 a month. Same plan, same features. Scale is priced on request. There is no free plan, and there are no per seat or per resolution fees. ### Is there a free trial? No, and no free plan either. Before you pay you can sign up, add your apps, write help articles, follow the install steps and send test messages from up to 3 of your own devices, so you can see the chat working in your app. No AI runs before you subscribe: chat replies, the knowledge autopilot, review reply drafts and the other AI features start when you do, along with real users. Your test messages never land in the spam folder. You can cancel any time in the billing portal; Pro stays on until the end of the month you paid for. ### Which coding agents work with Concierge? Any agent that speaks MCP over Streamable HTTP: Claude Code, Cursor, Codex, Windsurf, VS Code with GitHub Copilot, Gemini CLI, Zed and other MCP clients. Sign in with OAuth where the client supports it, or paste a staff API key as a bearer header. The setup prompt and llms.txt work in any agent, MCP or not. ### What runs on autopilot? The AI agent answers from your docs and hands off when it should. Around it: the refund desk answers Apple's consumption request inside the 12 hour window, the locked purchase check compares store, RevenueCat and app state, the cancel moment asks what went wrong, review replies are drafted for your approval, billing heads ups go out before renewals, knowledge autopilot keeps help articles fresh, and a spam filter screens new threads. The refund desk and billing heads ups stay off until you turn them on. ### Which platforms does Concierge support? Native SDKs for iOS (SwiftUI, iOS 16 and up, zero dependencies) and Android (Kotlin and Jetpack Compose, minSdk 24) work today, and so does the React Native and Expo package, which wraps the same native SDKs. The Flutter plugin (concierge_sdk) wraps them too. A web widget for websites and web apps (one script tag, or the @conciergesdk/web npm package with a React binding) talks to the same inbox. ### Does it work with Flutter? Yes. The concierge_sdk plugin wraps the native iOS and Android SDKs, so a Flutter app gets the same native SwiftUI and Compose chat, push, cards and client tools, with one Dart API on both platforms. It needs iOS 16.4 or later and Android minSdk 24. Flutter web is not covered by the plugin; use the web widget there. Install it from pub.dev with flutter pub add concierge_sdk. ### Does it work in Expo Go? Yes. The React Native package includes a pure JavaScript fallback chat that runs in Expo Go, so you can prototype before making a development build. In a development or production build you get the native SwiftUI and Compose chat, and a config plugin sets up push during expo prebuild. Install it with npx expo install @conciergesdk/react-native. ### Is there a web widget for my website? Yes: @conciergesdk/web. Add one script tag (or install the npm package, with a React provider and hooks) and you get a launcher and chat panel rendered in a Shadow DOM, so your CSS and the chat never mix. It loads about 27 KB gzip at page load, makes no API call until someone opens the chat, and supports live replies, photos, review and offer cards, client tools with consent, identity tokens and an offline outbox. The API only answers browsers on websites you list under Allowed websites. Install it with npm install @conciergesdk/web or load it from jsDelivr. ### What does MCP native mean? Concierge runs a remote MCP server with tools that read and write: list and read conversations with device info and breadcrumbs, reply as you, send review and offer cards, update status, search customers, check stats, verify an install and edit the AI knowledge base. It works with Claude Code, Cursor, Codex, Windsurf, VS Code with Copilot, Gemini CLI, Zed and any MCP client, so "triage support and fix the crash Ana reported" can be one prompt. ### Do my users need an account? No. The chat works for signed out users as soon as the SDK is configured. Call identify when someone signs in to attach the chat to their account, and pass a server signed token to get their history on every device. If you want only verified users to write, turn that on per app in the dashboard. ### What happens when I'm offline? If the AI agent is on, it answers first. Anything it can't solve waits in your inbox, and if nobody has replied after two minutes you get an email (instantly or at most hourly, your choice), plus a morning digest of who is still waiting. When you reply, from the dashboard or from your coding agent over MCP, the user gets it live and by push. If the user is the one offline, their messages queue on the device and send when they reconnect. ### Can I make the chat match my app? Yes. Set the accent color for light and dark mode, the chat title and the welcome line in the dashboard, and they apply without an app update. Anything you set in code wins. You choose where the chat opens: any button, row or menu can call it, and an unread count is there for your badge. ### How do the AI replies work? When you turn the agent on, it answers new messages from the knowledge docs you add (FAQs, pricing, known issues) using a Claude model. Replies are labeled as AI. When a user asks for a human it hands off, pauses on that conversation and marks it high priority. When you reply yourself it pauses too, so it never talks over you. AI usage is included in every plan. ### What data does the SDK collect, and where does it go? The SDK makes no network call at launch. It registers the device the first time the chat opens or a push token arrives, then sends messages, photos the user picks, app version, OS, device model, language, and any metadata and breadcrumbs you set. Messages are stored on Concierge servers. When the AI agent is on, the conversation and your knowledge docs are sent to the Claude API to write the reply. Identity verification with a server signed token stops anyone from reading another user's history. ### How do I switch from my current support SDK? Paste one prompt into your coding agent. It finds the old SDK, installs Concierge by following our platform guide (or run npx @conciergesdk/cli init yourself), swaps the configure, identify, metadata, open chat and push calls, removes the old dependency, turns your saved replies into knowledge drafts and imports your conversation history on Pro, so nobody waits. Most SDKs map almost call for call, and you can run both side by side while you test. The prompt and a full guide are at conciergesdk.com/switch. ### Is Concierge a good fit for indie apps? Yes, if your support happens inside a mobile app. Many support tools are built for larger teams and price by seat plus a fee for every AI resolution. Concierge is a native mobile chat with one flat monthly Pro plan ($19/mo founder price for the first 50, then $49/mo), unlimited seats, AI replies included, and an MCP server that both reads and writes. ### Can I self host Concierge? Not as a supported product today. Concierge is a hosted service. The SDKs accept a custom server URL, which is how we run them against a local API in development, but we do not ship a packaged server. ### How heavy is the SDK? Small. The iOS SDK has zero dependencies. The Android SDK uses only Kotlin, Compose, coroutines, OkHttp and kotlinx.serialization, with no Firebase or image library. Neither makes a network call when your app launches. The web widget loads about 27 KB gzip with the page and the rest of the chat (about 7 KB) only when it opens. ## Docs - [Getting started](https://conciergesdk.com/docs.md): Add in-app support chat to your iOS or Android app in about five minutes. - [iOS](https://conciergesdk.com/docs/ios.md): Native SwiftUI support chat for iOS 16+, with zero dependencies. - [Android](https://conciergesdk.com/docs/android.md): Native Jetpack Compose support chat for Android, minSdk 24. - [React Native and Expo](https://conciergesdk.com/docs/react-native.md): One package for iOS and Android, wrapping the native SDKs, with a JS fallback for Expo Go. - [Flutter](https://conciergesdk.com/docs/flutter.md): One plugin for iOS and Android that wraps the native SDKs, with one Dart API on both platforms. - [Web widget](https://conciergesdk.com/docs/web.md): Add Concierge support chat to a website or web app with one script tag or an npm package. Shadow DOM, live replies, photos, cards and client tools. - [Switch from another support tool](https://conciergesdk.com/docs/migrate.md): Replace your current in-app support SDK with Concierge in one prompt for your coding agent. Call mapping, identity, knowledge, conversation history and a checklist. - [Identity verification](https://conciergesdk.com/docs/identity.md): Prove a user is who they say they are, so nobody can read someone else's history. - [Push notifications](https://conciergesdk.com/docs/push.md): Reach users after they leave the app. APNs on iOS, FCM on Android. - [Appearance](https://conciergesdk.com/docs/appearance.md): Match your brand from the dashboard, no app update needed. - [AI agent and knowledge](https://conciergesdk.com/docs/ai-agent.md): An AI agent that answers first from your docs and hands off to you the moment someone asks for a human. - [Knowledge autopilot](https://conciergesdk.com/docs/knowledge.md): Tell Concierge about your app once. It writes the AI's help articles from your links, notes, codebase and resolved chats, keeps them current, and adds buttons that open the right screen. - [MCP server](https://conciergesdk.com/docs/mcp.md): Run your support inbox from Claude Code, Cursor, Codex, Windsurf, VS Code, Gemini CLI, Zed or any MCP client. Read and write. - [Offers](https://conciergesdk.com/docs/offers.md): Hand the right discount or comp to the right user in one tap, and prove it made money. - [API reference](https://conciergesdk.com/docs/api.md): The SDK API, the dashboard API, WebSockets, payloads and errors. - [Docs for agents](https://conciergesdk.com/docs/agents.md): llms.txt, llms-full.txt and a Markdown copy of every page, built for coding agents. - [Version incidents](https://conciergesdk.com/docs/incidents.md): When a new version causes a wave of tickets about the same problem, see it in minutes and answer everyone with one reply. - [Localization](https://conciergesdk.com/docs/localization.md): The chat speaks 34 languages, right to left included, and follows the device language. ## Legal - [Privacy policy](https://conciergesdk.com/legal/privacy/): What we collect about you as a Concierge customer or site visitor, why, and your rights. - [Terms of service](https://conciergesdk.com/legal/terms/): The agreement for using Concierge: business use only, billing, AI and automation, liability limits, arbitration. - [Data processing agreement](https://conciergesdk.com/legal/dpa/): How we process your end users' data on your behalf, with SCCs and security measures. - [Subprocessors](https://conciergesdk.com/legal/subprocessors/): Who helps us run Concierge, where, and how you hear about changes. - [SDK license](https://conciergesdk.com/legal/sdk-license/): The license for the prebuilt iOS, Android, React Native, Flutter and web SDKs. - [Subprocessor change feed (RSS)](https://conciergesdk.com/legal/subprocessors.xml) ## Optional - [Full docs in one file](https://conciergesdk.com/llms-full.txt) - [Home page](https://conciergesdk.com/) - [Pricing](https://conciergesdk.com/#pricing) - [Comparison](https://conciergesdk.com/#compare) - [Switch from another support tool in one prompt](https://conciergesdk.com/switch/)