Authenticate
Create a scoped API key for the whole workspace or one store.
Authorization: Bearer nk_live_5893... x-workspace-id: 1042
A clean REST API and webhooks instead of prebuilt connectors. Pass feedback context to and from your POS, CRM, and email flows with scoped keys and one-time links.
POST /api/external/token
x-api-key: nk_a1b2...
{
"storeSlug": "downtown-coffee",
"payload": {
"orderId": "ORD-12345",
"civ": "CUST-7891"
}
}civ is the Customer Identification Value. It ties this feedback to a returning customer so the dashboard can show loyalty trends over time.
Call our API from your POS to create a survey link automatically when an order closes.
Attach order IDs, account fields, and customer context to each response, then pull it back via API or webhook.
Send one-time feedback links in post-purchase sequences.
Create a scoped API key for the whole workspace or one store.
Authorization: Bearer nk_live_5893... x-workspace-id: 1042
Request a one-time token with metadata, including an optional civ to identify the customer across future visits.
POST /api/external/token storeSlug: downtown-coffee orderId: ORD-12345 civ: CUST-7891
Search, filter, and export feedback using the context you passed in.
5-star feedback ORD-12345 Source: POS
A single opaque string (a loyalty ID, phone hash, or account number) passed from your POS or billing software connects each piece of feedback to a real customer. Ukta never stores PII; it stores only the value you send, which means the data stays useful without introducing compliance risk.
Are the improvements you ship actually landing with repeat customers? The dashboard compares first-visit and return-visit ratings side by side, so you can answer with data instead of instinct.
A loyal customer who starts rating 3 stars after years of 5 is a churn signal, not a random outlier. CIV-linked tracking surfaces it before it becomes a lost customer.
High feedback volume can hide low retention. CIV shows what share of identified customers came back, a truer signal of experience quality than raw counts.
Option A: embed at token generation
Ideal for POS and billing integrations that generate the survey link at checkout. Pass civ inside the payload when requesting a token. Ukta extracts and indexes it automatically when the customer submits.
POST /api/external/token
x-api-key: nk_a1b2...
{
"storeSlug": "downtown-coffee",
"payload": {
"orderId": "ORD-12345",
"civ": "CUST-7891" // loyalty ID / phone hash
}
}The customer sees a normal survey link. The civ travels with the token and is stored when they submit; no extra step is needed on the survey side.
Option B: pass at submission
For integrations that submit feedback directly, bypassing the survey UI, include civ as a top-level field alongside the rating. Works with both one-time tokens and reusable campaign tokens.
POST /api/external/public/submit
{
"token": "tkn_xyz...",
"rating": 5,
"comment": "Great service as always.",
"civ": "CUST-7891" // same ID, any path
}If both the token payload and the submit body carry a civ, the submit body value takes precedence. That is useful when the customer authenticates at survey time rather than at checkout.
What appears on the dashboard once CIV data flows in
Return rate
What share of identified customers submitted feedback more than once in the selected period.
First visit vs return visit
Side-by-side avg rating and CSAT % for customers on their first submission vs those who have returned.
Loyalty signal
Automatic classification: returning customers rating you higher, lower, or consistently, with the exact delta displayed.
Use secure APIs and tracked links to keep customer context intact from trigger to response.