Direct comment feedback

Overview

Create an off-platform reviews row plus an internal customer comment tied to an Email or SMS review request (looked up by unique_code). Then notifies the store's configured recipients with the CUSTOMER_COMMENT template. De-dupes on (store_id, review_site_id, reviewer_email|reviewer_phone). On save it emits review_campaign_collected, which drives the partner-webhook batch fan-out. The endpoint stamps for review site id 100 the review is_off_platform=1, is_legacy=0, and is_qualified from the request.

Prerequisites

  • No authentication — this endpoint is public.

Base URL

EnvironmentURL
Productionhttps://production-api.shoutaboutus.com
Developmenthttps://development-api.shoutaboutus.com

Endpoint

POST /api/v1/campaign/direct-comment-feedback

Authentication

  • No bearer token required.

  • Public — no bearer token (unauthenticated campaign group; item marked noauth). Reached by end customers via the review-request link; unique_code scopes the write to a store.

Rate limit

  • 30 requests/min per IP (public).

Request body

FieldTypeRequiredDescription
unique_codestringRequiredmax 50. Email or SMS request unique code.
emailstringRequiredemail:rfc,dns, max 100. Stored as reviewer_email.
namestringRequiredmax 100. Stored as reviewer.
phonestringOptionalnullable, min 7, max 20. Stored as reviewer_phone.
commentsstringRequiredmax 255. Stored as the review message.
star_ratingintegerRequired1–5. Stored as rate.
g_recaptcha_responsestringRequiredGoogle reCAPTCHA token; verified server-side.
review_site_idintegerRequiredMust be an existing review site.
is_qualifiedintegerOptionalnullable; 0 or 1 (default 1). Only applied when review_site_id = 100.
{
  "unique_code": "<emailRequestUniqueCode>",
  "email": "[email protected]",
  "name": "Jane",
  "phone": "+15551234567",
  "comments": "Great service, thank you!",
  "star_rating": 5,
  "g_recaptcha_response": "03AGdBq24...",
  "review_site_id": 123,
  "is_qualified": 1
}

How it works

  • 200 { status: "success", message: "Thank you for your comment. Your feedback helps us improve our service." } (same message whether or not a notification recipient was resolved).
  • 400 (badRequestResponse) for: "Email or SMS request not found"; "You have already submitted your feedback. Thank you!" (dedupe hit); or "Review site not found".
  • 500 (errorResponse) "Failed to add customer comment. Please try again." on save failure.
  • 422 on validation failure (including an invalid reCAPTCHA token).

Response

200 OK · 200

{
  "data": {
    "status": "success",
    "message": "Thank you for your comment. Your feedback helps us improve our service."
  }
}

400 Already submitted · 400

{
  "status": "error",
  "message": "Bad Request",
  "errors": "You have already submitted your feedback. Thank you!"
}

422 Validation · 422

{
  "message": "The star rating field is required.",
  "errors": {
    "star_rating": [
      "The star rating field is required."
    ]
  }
}

Errors

StatusMeaning
400Already submitted
422Validation
500Unexpected server error

Example request

curl --request POST \
  --url "https://production-api.shoutaboutus.com/api/v1/campaign/direct-comment-feedback" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"unique_code": "<emailRequestUniqueCode>", "email": "[email protected]", "name": "Jane", "phone": "+15551234567", "comments": "Great service, thank you!", "star_rating": 5, "g_recaptcha_response": "03AGdBq24...", "review_site_id": 123, "is_qualified": 1}'

Did this page help you?