Captura una puntuación NPS (a nivel de empresa o específica de la herramienta)
curl --request POST \
--url https://clientapi.woku.app/v1/nps \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"score": 9,
"npsToolId": "<string>",
"clientEmail": "jsmith@example.com",
"clientPhone": "<string>",
"anonymous": true,
"responseChannel": "my-crm",
"dispatchToken": "a1b2c3d4-..."
}
'import requests
url = "https://clientapi.woku.app/v1/nps"
payload = {
"score": 9,
"npsToolId": "<string>",
"clientEmail": "jsmith@example.com",
"clientPhone": "<string>",
"anonymous": True,
"responseChannel": "my-crm",
"dispatchToken": "a1b2c3d4-..."
}
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: 9,
npsToolId: '<string>',
clientEmail: 'jsmith@example.com',
clientPhone: '<string>',
anonymous: true,
responseChannel: 'my-crm',
dispatchToken: 'a1b2c3d4-...'
})
};
fetch('https://clientapi.woku.app/v1/nps', 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/nps",
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' => 9,
'npsToolId' => '<string>',
'clientEmail' => 'jsmith@example.com',
'clientPhone' => '<string>',
'anonymous' => true,
'responseChannel' => 'my-crm',
'dispatchToken' => 'a1b2c3d4-...'
]),
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/nps"
payload := strings.NewReader("{\n \"score\": 9,\n \"npsToolId\": \"<string>\",\n \"clientEmail\": \"jsmith@example.com\",\n \"clientPhone\": \"<string>\",\n \"anonymous\": true,\n \"responseChannel\": \"my-crm\",\n \"dispatchToken\": \"a1b2c3d4-...\"\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/nps")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"score\": 9,\n \"npsToolId\": \"<string>\",\n \"clientEmail\": \"jsmith@example.com\",\n \"clientPhone\": \"<string>\",\n \"anonymous\": true,\n \"responseChannel\": \"my-crm\",\n \"dispatchToken\": \"a1b2c3d4-...\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://clientapi.woku.app/v1/nps")
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\": 9,\n \"npsToolId\": \"<string>\",\n \"clientEmail\": \"jsmith@example.com\",\n \"clientPhone\": \"<string>\",\n \"anonymous\": true,\n \"responseChannel\": \"my-crm\",\n \"dispatchToken\": \"a1b2c3d4-...\"\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 - nps
Captura una puntuación NPS (a nivel de empresa o específica de la herramienta)
POST
/
v1
/
nps
Captura una puntuación NPS (a nivel de empresa o específica de la herramienta)
curl --request POST \
--url https://clientapi.woku.app/v1/nps \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"score": 9,
"npsToolId": "<string>",
"clientEmail": "jsmith@example.com",
"clientPhone": "<string>",
"anonymous": true,
"responseChannel": "my-crm",
"dispatchToken": "a1b2c3d4-..."
}
'import requests
url = "https://clientapi.woku.app/v1/nps"
payload = {
"score": 9,
"npsToolId": "<string>",
"clientEmail": "jsmith@example.com",
"clientPhone": "<string>",
"anonymous": True,
"responseChannel": "my-crm",
"dispatchToken": "a1b2c3d4-..."
}
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: 9,
npsToolId: '<string>',
clientEmail: 'jsmith@example.com',
clientPhone: '<string>',
anonymous: true,
responseChannel: 'my-crm',
dispatchToken: 'a1b2c3d4-...'
})
};
fetch('https://clientapi.woku.app/v1/nps', 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/nps",
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' => 9,
'npsToolId' => '<string>',
'clientEmail' => 'jsmith@example.com',
'clientPhone' => '<string>',
'anonymous' => true,
'responseChannel' => 'my-crm',
'dispatchToken' => 'a1b2c3d4-...'
]),
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/nps"
payload := strings.NewReader("{\n \"score\": 9,\n \"npsToolId\": \"<string>\",\n \"clientEmail\": \"jsmith@example.com\",\n \"clientPhone\": \"<string>\",\n \"anonymous\": true,\n \"responseChannel\": \"my-crm\",\n \"dispatchToken\": \"a1b2c3d4-...\"\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/nps")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"score\": 9,\n \"npsToolId\": \"<string>\",\n \"clientEmail\": \"jsmith@example.com\",\n \"clientPhone\": \"<string>\",\n \"anonymous\": true,\n \"responseChannel\": \"my-crm\",\n \"dispatchToken\": \"a1b2c3d4-...\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://clientapi.woku.app/v1/nps")
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\": 9,\n \"npsToolId\": \"<string>\",\n \"clientEmail\": \"jsmith@example.com\",\n \"clientPhone\": \"<string>\",\n \"anonymous\": true,\n \"responseChannel\": \"my-crm\",\n \"dispatchToken\": \"a1b2c3d4-...\"\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 NPS 0-10 (0-6 detractor, 7-8 pasivo, 9-10 promotor)
Rango requerido:
0 <= x <= 10Ejemplo:
9
Id opcional de la tool NPS. Con él, la captura es específica de la tool. Sin él, es a nivel de empresa.
Correo electrónico del encuestado. Omitir para una captura anónima.
Teléfono del cliente cuando no se proporciona email.
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 el NPS.
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:
64Ejemplo:
"a1b2c3d4-..."
Respuesta
NPS creado