curl --request POST \
--url https://clientapi.woku.app/v1/journeys/{id}/enrollments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"subjectKey": "cliente-123",
"contact": {
"email": "cliente@example.com",
"phone": "56911111111"
},
"authHeader": "<string>",
"trackers": [
{
"name": "campaign",
"value": "black-friday"
}
],
"metadata": {}
}
'import requests
url = "https://clientapi.woku.app/v1/journeys/{id}/enrollments"
payload = {
"subjectKey": "cliente-123",
"contact": {
"email": "cliente@example.com",
"phone": "56911111111"
},
"authHeader": "<string>",
"trackers": [
{
"name": "campaign",
"value": "black-friday"
}
],
"metadata": {}
}
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({
subjectKey: 'cliente-123',
contact: {email: 'cliente@example.com', phone: '56911111111'},
authHeader: '<string>',
trackers: [{name: 'campaign', value: 'black-friday'}],
metadata: {}
})
};
fetch('https://clientapi.woku.app/v1/journeys/{id}/enrollments', 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/journeys/{id}/enrollments",
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([
'subjectKey' => 'cliente-123',
'contact' => [
'email' => 'cliente@example.com',
'phone' => '56911111111'
],
'authHeader' => '<string>',
'trackers' => [
[
'name' => 'campaign',
'value' => 'black-friday'
]
],
'metadata' => [
]
]),
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/journeys/{id}/enrollments"
payload := strings.NewReader("{\n \"subjectKey\": \"cliente-123\",\n \"contact\": {\n \"email\": \"cliente@example.com\",\n \"phone\": \"56911111111\"\n },\n \"authHeader\": \"<string>\",\n \"trackers\": [\n {\n \"name\": \"campaign\",\n \"value\": \"black-friday\"\n }\n ],\n \"metadata\": {}\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/journeys/{id}/enrollments")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"subjectKey\": \"cliente-123\",\n \"contact\": {\n \"email\": \"cliente@example.com\",\n \"phone\": \"56911111111\"\n },\n \"authHeader\": \"<string>\",\n \"trackers\": [\n {\n \"name\": \"campaign\",\n \"value\": \"black-friday\"\n }\n ],\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://clientapi.woku.app/v1/journeys/{id}/enrollments")
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 \"subjectKey\": \"cliente-123\",\n \"contact\": {\n \"email\": \"cliente@example.com\",\n \"phone\": \"56911111111\"\n },\n \"authHeader\": \"<string>\",\n \"trackers\": [\n {\n \"name\": \"campaign\",\n \"value\": \"black-friday\"\n }\n ],\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_body{
"subjectKey": "<string>",
"journeyId": "<string>"
}{
"statusCode": 400,
"message": [
"email must be a valid email",
"password must be at least 8 characters"
],
"error": "Bad Request"
}Inscribir un sujeto en este viaje
Inicia una participación v2 desde la plataforma o API sin exigir su primera respuesta. Un contacto v2 puede tener solo una participación sin terminar por viaje. El mismo subjectKey puede iniciar un ciclo nuevo cuando el anterior se complete o termine su detención; cada ciclo tiene un ID de participación distinto. Las definiciones anteriores conservan su comportamiento de inscripción.
curl --request POST \
--url https://clientapi.woku.app/v1/journeys/{id}/enrollments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"subjectKey": "cliente-123",
"contact": {
"email": "cliente@example.com",
"phone": "56911111111"
},
"authHeader": "<string>",
"trackers": [
{
"name": "campaign",
"value": "black-friday"
}
],
"metadata": {}
}
'import requests
url = "https://clientapi.woku.app/v1/journeys/{id}/enrollments"
payload = {
"subjectKey": "cliente-123",
"contact": {
"email": "cliente@example.com",
"phone": "56911111111"
},
"authHeader": "<string>",
"trackers": [
{
"name": "campaign",
"value": "black-friday"
}
],
"metadata": {}
}
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({
subjectKey: 'cliente-123',
contact: {email: 'cliente@example.com', phone: '56911111111'},
authHeader: '<string>',
trackers: [{name: 'campaign', value: 'black-friday'}],
metadata: {}
})
};
fetch('https://clientapi.woku.app/v1/journeys/{id}/enrollments', 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/journeys/{id}/enrollments",
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([
'subjectKey' => 'cliente-123',
'contact' => [
'email' => 'cliente@example.com',
'phone' => '56911111111'
],
'authHeader' => '<string>',
'trackers' => [
[
'name' => 'campaign',
'value' => 'black-friday'
]
],
'metadata' => [
]
]),
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/journeys/{id}/enrollments"
payload := strings.NewReader("{\n \"subjectKey\": \"cliente-123\",\n \"contact\": {\n \"email\": \"cliente@example.com\",\n \"phone\": \"56911111111\"\n },\n \"authHeader\": \"<string>\",\n \"trackers\": [\n {\n \"name\": \"campaign\",\n \"value\": \"black-friday\"\n }\n ],\n \"metadata\": {}\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/journeys/{id}/enrollments")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"subjectKey\": \"cliente-123\",\n \"contact\": {\n \"email\": \"cliente@example.com\",\n \"phone\": \"56911111111\"\n },\n \"authHeader\": \"<string>\",\n \"trackers\": [\n {\n \"name\": \"campaign\",\n \"value\": \"black-friday\"\n }\n ],\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://clientapi.woku.app/v1/journeys/{id}/enrollments")
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 \"subjectKey\": \"cliente-123\",\n \"contact\": {\n \"email\": \"cliente@example.com\",\n \"phone\": \"56911111111\"\n },\n \"authHeader\": \"<string>\",\n \"trackers\": [\n {\n \"name\": \"campaign\",\n \"value\": \"black-friday\"\n }\n ],\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_body{
"subjectKey": "<string>",
"journeyId": "<string>"
}{
"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 reintentar con seguridad. Un reintento con la misma clave y operación devuelve el resultado original. No reutilices la clave con datos nuevos: se reproduce el cuerpo original. Una operación diferente devuelve 422.
Parámetros de ruta
Cuerpo
Su propia clave para quién está inscrito: un id de cliente, un pedido, un ticket.
"cliente-123"
Dónde contactar al sujeto. Al menos uno de email o phone.
Show child attributes
Show child attributes
Clave de API legacy en el cuerpo. Prefiere Authorization: Bearer. La consume la autenticación y nunca se envía a los comandos del viaje.
Show child attributes
Show child attributes
Cualquier cosa que quieras conservar con ello