Captura una puntuación CSAT (1-5, específica de la herramienta)
curl --request POST \
--url https://clientapi.woku.app/v1/csat \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"score": 4,
"csatToolId": "<string>",
"clientEmail": "jsmith@example.com",
"anonymous": true,
"responseChannel": "my-crm",
"dispatchToken": "<string>"
}
'import requests
url = "https://clientapi.woku.app/v1/csat"
payload = {
"score": 4,
"csatToolId": "<string>",
"clientEmail": "jsmith@example.com",
"anonymous": True,
"responseChannel": "my-crm",
"dispatchToken": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
score: 4,
csatToolId: '<string>',
clientEmail: 'jsmith@example.com',
anonymous: true,
responseChannel: 'my-crm',
dispatchToken: '<string>'
})
};
fetch('https://clientapi.woku.app/v1/csat', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://clientapi.woku.app/v1/csat",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'score' => 4,
'csatToolId' => '<string>',
'clientEmail' => 'jsmith@example.com',
'anonymous' => true,
'responseChannel' => 'my-crm',
'dispatchToken' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://clientapi.woku.app/v1/csat"
payload := strings.NewReader("{\n \"score\": 4,\n \"csatToolId\": \"<string>\",\n \"clientEmail\": \"jsmith@example.com\",\n \"anonymous\": true,\n \"responseChannel\": \"my-crm\",\n \"dispatchToken\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://clientapi.woku.app/v1/csat")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"score\": 4,\n \"csatToolId\": \"<string>\",\n \"clientEmail\": \"jsmith@example.com\",\n \"anonymous\": true,\n \"responseChannel\": \"my-crm\",\n \"dispatchToken\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://clientapi.woku.app/v1/csat")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"score\": 4,\n \"csatToolId\": \"<string>\",\n \"clientEmail\": \"jsmith@example.com\",\n \"anonymous\": true,\n \"responseChannel\": \"my-crm\",\n \"dispatchToken\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"statusCode": 400,
"message": [
"email must be a valid email",
"password must be at least 8 characters"
],
"error": "Bad Request"
}v1 - csat
Captura una puntuación CSAT (1-5, específica de la herramienta)
POST
/
v1
/
csat
Captura una puntuación CSAT (1-5, específica de la herramienta)
curl --request POST \
--url https://clientapi.woku.app/v1/csat \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"score": 4,
"csatToolId": "<string>",
"clientEmail": "jsmith@example.com",
"anonymous": true,
"responseChannel": "my-crm",
"dispatchToken": "<string>"
}
'import requests
url = "https://clientapi.woku.app/v1/csat"
payload = {
"score": 4,
"csatToolId": "<string>",
"clientEmail": "jsmith@example.com",
"anonymous": True,
"responseChannel": "my-crm",
"dispatchToken": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
score: 4,
csatToolId: '<string>',
clientEmail: 'jsmith@example.com',
anonymous: true,
responseChannel: 'my-crm',
dispatchToken: '<string>'
})
};
fetch('https://clientapi.woku.app/v1/csat', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://clientapi.woku.app/v1/csat",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'score' => 4,
'csatToolId' => '<string>',
'clientEmail' => 'jsmith@example.com',
'anonymous' => true,
'responseChannel' => 'my-crm',
'dispatchToken' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://clientapi.woku.app/v1/csat"
payload := strings.NewReader("{\n \"score\": 4,\n \"csatToolId\": \"<string>\",\n \"clientEmail\": \"jsmith@example.com\",\n \"anonymous\": true,\n \"responseChannel\": \"my-crm\",\n \"dispatchToken\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://clientapi.woku.app/v1/csat")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"score\": 4,\n \"csatToolId\": \"<string>\",\n \"clientEmail\": \"jsmith@example.com\",\n \"anonymous\": true,\n \"responseChannel\": \"my-crm\",\n \"dispatchToken\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://clientapi.woku.app/v1/csat")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"score\": 4,\n \"csatToolId\": \"<string>\",\n \"clientEmail\": \"jsmith@example.com\",\n \"anonymous\": true,\n \"responseChannel\": \"my-crm\",\n \"dispatchToken\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"statusCode": 400,
"message": [
"email must be a valid email",
"password must be at least 8 characters"
],
"error": "Bad Request"
}Autorizaciones
Clave API secreta de la empresa.
Cuerpo
application/json
Puntuación de satisfacción CSAT 1-5
Rango requerido:
1 <= x <= 5Ejemplo:
4
Id de herramienta CSAT, siempre requerido: las herramientas CSAT siempre son personalizadas
Correo electrónico del encuestado. Omitir para una captura anónima.
Si el envío es anónimo, no se almacena el email del cliente.
Canal de respuesta entrante. El valor predeterminado es 'api'; un valor proporcionado aquí REEMPLAZA 'api' (canal definido por el usuario). Se almacena en la respuesta.
Maximum string length:
48Ejemplo:
"my-crm"
Token opaco de despacho de invitación reflejado desde el enlace (?dtoken=). Se consume para marcar que la invitación saliente fue respondida. Nunca se persiste.
Maximum string length:
64Respuesta
Respuesta CSAT creada