curl --request POST \
--url https://clientapi.woku.app/wokus/create-voicemail \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form file='@example-file' \
--form wokuId=507f1f77bcf86cd799439011 \
--form qualification=5 \
--form clientEmail=reviewer@example.com \
--form clientPhone=56912345678 \
--form anonymous=falseimport requests
url = "https://clientapi.woku.app/wokus/create-voicemail"
files = { "file": ("example-file", open("example-file", "rb")) }
payload = {
"wokuId": "507f1f77bcf86cd799439011",
"qualification": "5",
"clientEmail": "reviewer@example.com",
"clientPhone": "56912345678",
"anonymous": "false"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('file', '<string>');
form.append('wokuId', '507f1f77bcf86cd799439011');
form.append('qualification', '5');
form.append('clientEmail', 'reviewer@example.com');
form.append('clientPhone', '56912345678');
form.append('anonymous', 'false');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://clientapi.woku.app/wokus/create-voicemail', 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/wokus/create-voicemail",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"wokuId\"\r\n\r\n507f1f77bcf86cd799439011\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"qualification\"\r\n\r\n5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"clientEmail\"\r\n\r\nreviewer@example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"clientPhone\"\r\n\r\n56912345678\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"anonymous\"\r\n\r\nfalse\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$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/wokus/create-voicemail"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"wokuId\"\r\n\r\n507f1f77bcf86cd799439011\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"qualification\"\r\n\r\n5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"clientEmail\"\r\n\r\nreviewer@example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"clientPhone\"\r\n\r\n56912345678\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"anonymous\"\r\n\r\nfalse\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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/wokus/create-voicemail")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"wokuId\"\r\n\r\n507f1f77bcf86cd799439011\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"qualification\"\r\n\r\n5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"clientEmail\"\r\n\r\nreviewer@example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"clientPhone\"\r\n\r\n56912345678\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"anonymous\"\r\n\r\nfalse\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://clientapi.woku.app/wokus/create-voicemail")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"wokuId\"\r\n\r\n507f1f77bcf86cd799439011\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"qualification\"\r\n\r\n5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"clientEmail\"\r\n\r\nreviewer@example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"clientPhone\"\r\n\r\n56912345678\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"anonymous\"\r\n\r\nfalse\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"_id": "507f1f77bcf86cd799439019",
"wokuId": "507f1f77bcf86cd799439011",
"qualification": {
"qualification": 4
},
"file": {
"filename": "voicemail.mp4",
"url": "<string>"
},
"transcription": "<string>",
"anonymous": false,
"clientId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"statusCode": 400,
"message": [
"description must be a string",
"fileUrl must be a valid URL"
],
"error": "Bad Request"
}{
"statusCode": 404,
"message": "Resource not found",
"error": "Not Found"
}Crear una reseña de voz
Crea una nueva reseña de voz (voicemail) para un woku con form data. Requiere la carga de un archivo de audio junto con una calificacion con estrellas. El audio se convertira automaticamente a formato MP4 y se transcribira.
curl --request POST \
--url https://clientapi.woku.app/wokus/create-voicemail \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form file='@example-file' \
--form wokuId=507f1f77bcf86cd799439011 \
--form qualification=5 \
--form clientEmail=reviewer@example.com \
--form clientPhone=56912345678 \
--form anonymous=falseimport requests
url = "https://clientapi.woku.app/wokus/create-voicemail"
files = { "file": ("example-file", open("example-file", "rb")) }
payload = {
"wokuId": "507f1f77bcf86cd799439011",
"qualification": "5",
"clientEmail": "reviewer@example.com",
"clientPhone": "56912345678",
"anonymous": "false"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('file', '<string>');
form.append('wokuId', '507f1f77bcf86cd799439011');
form.append('qualification', '5');
form.append('clientEmail', 'reviewer@example.com');
form.append('clientPhone', '56912345678');
form.append('anonymous', 'false');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://clientapi.woku.app/wokus/create-voicemail', 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/wokus/create-voicemail",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"wokuId\"\r\n\r\n507f1f77bcf86cd799439011\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"qualification\"\r\n\r\n5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"clientEmail\"\r\n\r\nreviewer@example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"clientPhone\"\r\n\r\n56912345678\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"anonymous\"\r\n\r\nfalse\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$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/wokus/create-voicemail"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"wokuId\"\r\n\r\n507f1f77bcf86cd799439011\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"qualification\"\r\n\r\n5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"clientEmail\"\r\n\r\nreviewer@example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"clientPhone\"\r\n\r\n56912345678\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"anonymous\"\r\n\r\nfalse\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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/wokus/create-voicemail")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"wokuId\"\r\n\r\n507f1f77bcf86cd799439011\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"qualification\"\r\n\r\n5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"clientEmail\"\r\n\r\nreviewer@example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"clientPhone\"\r\n\r\n56912345678\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"anonymous\"\r\n\r\nfalse\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://clientapi.woku.app/wokus/create-voicemail")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"wokuId\"\r\n\r\n507f1f77bcf86cd799439011\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"qualification\"\r\n\r\n5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"clientEmail\"\r\n\r\nreviewer@example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"clientPhone\"\r\n\r\n56912345678\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"anonymous\"\r\n\r\nfalse\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"_id": "507f1f77bcf86cd799439019",
"wokuId": "507f1f77bcf86cd799439011",
"qualification": {
"qualification": 4
},
"file": {
"filename": "voicemail.mp4",
"url": "<string>"
},
"transcription": "<string>",
"anonymous": false,
"clientId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"statusCode": 400,
"message": [
"description must be a string",
"fileUrl must be a valid URL"
],
"error": "Bad Request"
}{
"statusCode": 404,
"message": "Resource not found",
"error": "Not Found"
}Autorizaciones
Clave de API de la empresa. Obtenla desde tu dashboard de Woku en Settings > API Keys.
Cuerpo
Archivo de audio para el mensaje de voz (MP3, WAV, M4A, WebM, etc.). Se convertira automaticamente a MP4.
MongoDB ObjectId del woku al que se agrega la resena
"507f1f77bcf86cd799439011"
Calificacion de estrellas del 1 al 5 (como string para form-data)
1, 2, 3, 4, 5 "5"
Direccion de correo de quien resena
"reviewer@example.com"
Numero de telefono de quien resena
"56912345678"
Si la resena debe ser anonima (como string para form-data)
true, false "false"
Respuesta
Voicemail creado correctamente
Identificador unico del voicemail
"507f1f77bcf86cd799439019"
ID del woku al que pertenece el voicemail
"507f1f77bcf86cd799439011"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Transcripcion generada por IA
false