Send a customer's comment to the business
Overview
Email a customer's comment directly to the business owner or their managers, tied to the review request it came from.
Called by the landing page alongside private feedback.
You'll need the request's unique code, the comment, and who should receive it.
The comment is saved and emailed to the campaign template's manager address and other manager addresses, or to the account owner when the template has no manager address. With direct_to_option owner, the account owner is always included.
Browser-only endpoint. This is a public form handler, not a server-to-server API. It requires a Google reCAPTCHA token that is verified server-side against Shout About Us's own reCAPTCHA key, so a token can only be produced by a real browser session on a Shout About Us-hosted page (the review landing page or the sign-up page). A token from your own reCAPTCHA key or your own page won't pass. That means this endpoint cannot be called from a backend, a script, or Postman: those requests fail validation with
422. No bearer token is used or accepted.
Prerequisites
- No token. A reCAPTCHA token from a Shout About Us-hosted page, and the review request's unique code from the customer's link.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
POST /api/v1/campaign/direct-to-company-email
Authentication
Public (no token)
- No bearer token is used. The review request's
unique_codedecides which location the comment goes to.
Rate limit
30 requests per minute, counted per client IP address. See Rate limits.
Request parameters
None.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
unique_code | string | Yes | The email or SMS review request's unique code, up to 50 characters. |
direct_to_option | string | Yes | Who the customer wants to reach: owner, manager or customer. owner adds the account owner to the recipients; manager and customer go to the managers only. |
email | string | Yes | The customer's email address, up to 100 characters. Checked with an RFC and DNS lookup, so the domain must accept mail. |
first_name | string | Yes | The customer's first name, up to 100 characters. |
last_name | string | Yes | The customer's last name, up to 100 characters. |
phone | string | Yes | The customer's phone number, 7–20 characters. |
comments | string | Yes | The comment, up to 255 characters. |
g_recaptcha_response | string | Yes | The Google reCAPTCHA token from the Shout About Us-hosted page. |
Request payload
{
"unique_code": "4xwu8",
"direct_to_option": "owner",
"email": "<customer-email>",
"first_name": "Jane",
"last_name": "Smith",
"phone": "+15555550100",
"comments": "I had an issue with my recent visit and would like to discuss it.",
"g_recaptcha_response": "<recaptcha-token>"
}Response body
The payload is inside data.
| Field | Type | Description |
|---|---|---|
status | string | success. |
message | string | Thank you for your feedback! Your message has been sent directly to the <direct_to_option>. |
Response payload
{
"data": {
"status": "success",
"message": "Thank you for your feedback! Your message has been sent directly to the owner."
}
}Examples
Success payload
See Response payload.
Error payload
400 Review request not found
{
"message": "Bad Request",
"status": "error",
"errors": "Email or SMS request not found"
}422 Invalid option, email or reCAPTCHA
{
"message": "The selected direct to option is invalid. (and 2 more errors)",
"errors": {
"direct_to_option": [
"The selected direct to option is invalid."
],
"email": [
"The email field must be a valid email address."
],
"g_recaptcha_response": [
"The google recaptcha is invalid. Please refresh the page and try again."
]
}
}500 No recipient address
The comment is saved, but no recipient address could be found for the location.
{
"message": "Internal Server Error",
"status": "error",
"errors": "Mail not sent! Owner Email is not available"
}| Status | Meaning |
|---|---|
200 | The comment is saved and emailed. |
400 | The unique code matches no review request. |
422 | A field is missing or invalid, including an invalid reCAPTCHA token. |
500 | No recipient address was found (the comment is still saved), or an unexpected server error. |
Example request
curl --request POST \
--url "https://production-api.shoutaboutus.com/api/v1/campaign/direct-to-company-email" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"unique_code": "4xwu8", "direct_to_option": "owner", "email": "<customer-email>", "first_name": "Jane", "last_name": "Smith", "phone": "+15555550100", "comments": "I had an issue with my recent visit and would like to discuss it.", "g_recaptcha_response": "<recaptcha-token>"}'Updated 17 days ago
