Customer support
AppRefer includes in-app support. Customers write from your app; your team answers from the Support inbox in the dashboard. Each conversation shows what the customer paid and which campaign brought them in.
How customers are identified#
The app calls the session endpoint once with the public SDK key. AppRefer returns a support session token, which the SDK keeps in secure storage. A customer only ever sees conversations started with their own session. Pass the same app user id you use for purchases to link conversations to payments and attribution.
Endpoints#
All requests send X-AppRefer-Key: pk_…. Every call except creating a session also sends X-AppRefer-Support-Session: ars_….
| Request | Purpose |
|---|---|
| POST /api/support/v1/session | Body: appUserId?, deviceId?, name?, email?. With no session header it returns a new token ({ session, created: true }). With a valid header it updates the stored profile. |
| GET /api/support/v1/conversations | The customer's conversations, newest first, each with an unread count of team replies. |
| POST /api/support/v1/conversations | Start a conversation. Body: text, subject?, context? (appVersion, os, device, locale, platform). |
| GET /api/support/v1/conversations/{id}?after=ISO | Messages visible to the customer (internal notes are never returned). Use after to poll for new replies. Reading clears the unread count. |
| POST /api/support/v1/conversations/{id}/messages | The customer replies. Body: text. A closed conversation reopens. |
POST /api/support/v1/conversations
X-AppRefer-Key: pk_live_…
X-AppRefer-Support-Session: ars_…
Content-Type: application/json
{ "text": "I was charged twice", "context": { "appVersion": "2.4.1", "platform": "ios" } }Support seats#
Give a support person the Support inbox without the rest of AppRefer. On the Team page, a company admin adds a support seat with an email, the apps it covers and a refund limit in USD. A support lead can also take account actions; a support agent only replies. Seat holders sign in at /support with that email. They see what each customer bought, but not revenue reports, ad data, keys or settings, and not which campaign brought a customer in. Replies, notes and status changes are recorded in the audit log.
Limits#
Messages are up to 10,000 characters. Requests are limited per device IP and per session. Live and test SDK keys keep separate sessions.