Submit an in-store kiosk review request: looks up a campaign by unique_code, creates a kiosk audience row, and queues an email and/or SMS review-request send (one or both, depending on whether email/phone are supplied and the matching channel is enabled and within service limits).
Auth: Account — authentication; the request validation's authorize requires the authenticated user's company to be a Account. unique_code resolves the campaign and (mismatch returns a 404 "Campaign not found"), so an account can only fire kiosk requests for its own campaigns.
Rate limit: No rate limit.
Request
- Body:
| Field | Type | Required | Notes |
|---|---|---|---|
unique_code | string | yes | Campaign's unique code; must resolve to a campaign owned by the caller's account company. |
customer_name | string (max 255) | yes | Customer name; validated by NameNoAngleBrackets (no </>). Trimmed before save. |
email | string, email (rfc,dns), max 255, nullable | required_without phone | Triggers the email channel. At least one of email/phone must be present. |
phone | string, min 7, max 20, nullable | required_without email | Triggers the SMS channel. At least one of email/phone must be present. |
requester_name | string (max 255), nullable | no | Kiosk operator/requestor name; NameNoAngleBrackets. Stored as requestor_name on the audience row. |
is_test | boolean, nullable | no | When true, marks audience/requests as test and does NOT increment campaign.total_audience or schedule email follow-ups. Defaults false. |
keywords | object/map, nullable | no | Key/value personalization pairs; each key max 100 chars. Empty and null values do not count. |
keywords.* | string, nullable | no | Value for each keyword key. |
Response — { data. } envelope. On success the controller returns a successResponse carrying a status/message object.
status(string) —"success".message(string) — one of"Email and SMS review requests sent successfully","Email review request sent successfully", or"SMS review request sent successfully"depending on which channel(s) were queued.
Error paths (not wrapped as success): 404 "Campaign not found" (missing or not owned by caller); 400 "Store does not have an active plan"; 400 "Some review site URLs are missing for this location." (with the per-site error list); 400 "No valid channel to send review request" (with channel/limit errors); 400 "Review Solicitation is not enabled for this store."; 400 "Failed to send review request".
Errors: 422 on validation failure.
Errors: 400 when the store has no active plan or no valid channel; 403 when the caller is not an account user.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
