curl --request POST \
--url https://clientapi.woku.app/v1/nps/invitations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"channel": "whatsapp",
"recipients": [
"56912345678"
],
"language": "es",
"npsToolId": "<string>"
}
'import requests
url = "https://clientapi.woku.app/v1/nps/invitations"
payload = {
"channel": "whatsapp",
"recipients": ["56912345678"],
"language": "es",
"npsToolId": "<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({
channel: 'whatsapp',
recipients: ['56912345678'],
language: 'es',
npsToolId: '<string>'
})
};
fetch('https://clientapi.woku.app/v1/nps/invitations', 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/invitations",
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([
'channel' => 'whatsapp',
'recipients' => [
'56912345678'
],
'language' => 'es',
'npsToolId' => '<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/nps/invitations"
payload := strings.NewReader("{\n \"channel\": \"whatsapp\",\n \"recipients\": [\n \"56912345678\"\n ],\n \"language\": \"es\",\n \"npsToolId\": \"<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/nps/invitations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"channel\": \"whatsapp\",\n \"recipients\": [\n \"56912345678\"\n ],\n \"language\": \"es\",\n \"npsToolId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://clientapi.woku.app/v1/nps/invitations")
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 \"channel\": \"whatsapp\",\n \"recipients\": [\n \"56912345678\"\n ],\n \"language\": \"es\",\n \"npsToolId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"channel": "email",
"accepted": [
"<string>"
],
"rejected": [
{
"recipient": "<string>",
"reason": "invalid_recipient"
}
]
}{
"statusCode": 400,
"message": [
"email must be a valid email",
"password must be at least 8 characters"
],
"error": "Bad Request"
}Enviar la encuesta NPS por correo o WhatsApp
Despacha la encuesta NPS, a nivel de empresa, o específica de la herramienta mediante npsToolId, a una lista de destinatarios. Los envíos son asíncronos: la respuesta informa la aceptación por destinatario, incluidas las cuarentenas y los rechazos por crédito de WhatsApp.
curl --request POST \
--url https://clientapi.woku.app/v1/nps/invitations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"channel": "whatsapp",
"recipients": [
"56912345678"
],
"language": "es",
"npsToolId": "<string>"
}
'import requests
url = "https://clientapi.woku.app/v1/nps/invitations"
payload = {
"channel": "whatsapp",
"recipients": ["56912345678"],
"language": "es",
"npsToolId": "<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({
channel: 'whatsapp',
recipients: ['56912345678'],
language: 'es',
npsToolId: '<string>'
})
};
fetch('https://clientapi.woku.app/v1/nps/invitations', 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/invitations",
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([
'channel' => 'whatsapp',
'recipients' => [
'56912345678'
],
'language' => 'es',
'npsToolId' => '<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/nps/invitations"
payload := strings.NewReader("{\n \"channel\": \"whatsapp\",\n \"recipients\": [\n \"56912345678\"\n ],\n \"language\": \"es\",\n \"npsToolId\": \"<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/nps/invitations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"channel\": \"whatsapp\",\n \"recipients\": [\n \"56912345678\"\n ],\n \"language\": \"es\",\n \"npsToolId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://clientapi.woku.app/v1/nps/invitations")
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 \"channel\": \"whatsapp\",\n \"recipients\": [\n \"56912345678\"\n ],\n \"language\": \"es\",\n \"npsToolId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"channel": "email",
"accepted": [
"<string>"
],
"rejected": [
{
"recipient": "<string>",
"reason": "invalid_recipient"
}
]
}{
"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.
Encabezados
Clave generada por el cliente para hacer que un envío sea seguro para reintentar. Un reintento con la misma clave devuelve el resultado original en lugar de despachar de nuevo.
Cuerpo
Canal de entrega para las invitaciones
email, whatsapp "whatsapp"
Destinatarios: direcciones de correo electrónico para el canal email, números de teléfono (dígitos, código de país incluido, p. ej. 56912345678) para whatsapp
100["56912345678"]
Idioma de la plantilla de invitación
es, en "es"
Tool de NPS para encuestar. Omítela para enviar la encuesta NPS a nivel de empresa.
Respuesta
Resumen de despacho por destinatario