Captura una puntuación CES (1-5, específica de la herramienta)
curl --request POST \
--url https://clientapi.woku.app/v1/ces \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"score": 4,
"cesToolId": "<string>",
"clientEmail": "jsmith@example.com",
"anonymous": true,
"responseChannel": "my-crm",
"dispatchToken": "<string>"
}
'import requests
url = "https://clientapi.woku.app/v1/ces"
payload = {
"score": 4,
"cesToolId": "<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,
cesToolId: '<string>',
clientEmail: 'jsmith@example.com',
anonymous: true,
responseChannel: 'my-crm',
dispatchToken: '<string>'
})
};
fetch('https://clientapi.woku.app/v1/ces', 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/ces",
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,
'cesToolId' => '<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/ces"
payload := strings.NewReader("{\n \"score\": 4,\n \"cesToolId\": \"<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/ces")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"score\": 4,\n \"cesToolId\": \"<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/ces")
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 \"cesToolId\": \"<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 - ces
Captura una puntuación CES (1-5, específica de la herramienta)
POST
/
v1
/
ces
Captura una puntuación CES (1-5, específica de la herramienta)
curl --request POST \
--url https://clientapi.woku.app/v1/ces \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"score": 4,
"cesToolId": "<string>",
"clientEmail": "jsmith@example.com",
"anonymous": true,
"responseChannel": "my-crm",
"dispatchToken": "<string>"
}
'import requests
url = "https://clientapi.woku.app/v1/ces"
payload = {
"score": 4,
"cesToolId": "<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,
cesToolId: '<string>',
clientEmail: 'jsmith@example.com',
anonymous: true,
responseChannel: 'my-crm',
dispatchToken: '<string>'
})
};
fetch('https://clientapi.woku.app/v1/ces', 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/ces",
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,
'cesToolId' => '<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/ces"
payload := strings.NewReader("{\n \"score\": 4,\n \"cesToolId\": \"<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/ces")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"score\": 4,\n \"cesToolId\": \"<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/ces")
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 \"cesToolId\": \"<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 esfuerzo CES 1-5
Rango requerido:
1 <= x <= 5Ejemplo:
4
Id de herramienta CES, siempre requerido: las herramientas CES 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 de CES creada