Review requests
Review requests in the BlueSuite REST API
Send a review request immediately or list prior requests and their responses. Sending requires the reviews module, configured review platform links, and at least one reachable channel enabled in workspace settings. SMS requires the contact's consent.
The workspace cooldown and prior-review suppression apply unless ignore_cooldown: true is explicitly supplied. Suppression returns 409. Supplying an event_id selects the appointment template. A successful send returns id, contact_id, delivered_via, skipped_channels, review_page_url, and expires_at.
This operation communicates with the customer immediately. A request that cannot be delivered returns an error instead of reporting it as sent.
GET /api/v1/review-requests
GET /api/v1/review-requestsRequired scopes: reviews:read.
Query parameters
| Field | Type / accepted values | Required | Details |
|---|---|---|---|
page | integer | No | Page number, starting at 1. Default: 1. |
per_page | integer | No | Records per page, from 1 to 100. Default: 25. minimum: 1. maximum: 100. |
search | string | No | Search text. maxLength: 100. |
sort_by | string | No | Sort column. See the supported columns below when listed. |
sort_direction | "asc", "desc" | No | Sort direction. Default: "desc". |
contact_id | string | No | Filter by contact ID. |
status | string | No | Filter by status. |
Response
200 with { "success": true, "data": [...], "pagination": { "page": 1, "per_page": 25, "total_pages": 1 } }.
See response conventions and errors.
POST /api/v1/review-requests
POST /api/v1/review-requestsRequired scopes: reviews:write.
JSON body
| Field | Type / accepted values | Required | Details |
|---|---|---|---|
contact_id | integer | Yes | Client to ask. They need an email address, or a mobile with SMS consent. |
event_id | integer | No | The appointment this is about. Including it uses the appointment template, which names the visit and the crew who attended. |
invoice_id | integer | No | The invoice this is about, when the request follows a payment. |
ignore_cooldown | boolean | No | Ask even if this client was asked recently or has already left a review. Off by default, the workspace's cooldown normally applies. Only set this when the user has said to ask anyway. |
Unknown body fields are rejected. Conditional requirements are explained above.
Response
201 with { "success": true, "data": ... }. The data contains the result of the operation.