Skip to main content
POST
/
v1
/
csat
Capture a CSAT score
curl --request POST \
  --url https://clientapi.woku.app/v1/csat \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "score": 4,
  "csatToolId": "507f1f77bcf86cd799439011",
  "responseChannel": "<string>",
  "clientEmail": "customer@example.com",
  "anonymous": false,
  "dispatchToken": "<string>"
}
'
{
  "csatId": "507f1f77bcf86cd799439abc",
  "csat": {
    "_id": "<string>",
    "score": 3,
    "anonymous": true,
    "csatToolId": "<string>",
    "clientId": "<string>",
    "responseChannel": "<string>",
    "description": "<string>",
    "transcription": "<string>",
    "createdAt": "2023-11-07T05:31:56Z"
  }
}

Authorizations

Authorization
string
header
required

Company API key. Obtain this from your Woku dashboard under Settings > API Keys. The same key used for the v0 endpoints.

Body

application/json
score
integer
required

CSAT satisfaction score. 1 very unsatisfied to 5 very satisfied.

Required range: 1 <= x <= 5
Example:

4

csatToolId
string
required

CSAT tool id. Always required because CSAT tools are always custom (tool-specific).

Pattern: ^[0-9a-fA-F]{24}$
Example:

"507f1f77bcf86cd799439011"

responseChannel
string

Optional inbound response channel. Defaults to 'api'; a value provided here REPLACES it (user-defined channel).

Maximum string length: 48
clientEmail
string<email>

Respondent email. Omit (or set anonymous) for an anonymous score.

Example:

"customer@example.com"

anonymous
boolean
default:false

When true, no respondent email is stored.

dispatchToken
string

Opaque invitation dispatch token echoed from the link (?dtoken=). Consumed to mark the outbound invitation responded; never persisted.

Maximum string length: 64

Response

CSAT response created

csatId
string
Pattern: ^[0-9a-fA-F]{24}$
Example:

"507f1f77bcf86cd799439abc"

csat
object

The created CSAT response, in the same curated shape as the read path.