curl --request DELETE \
--url https://clientapi.woku.app/v1/external-trackers/{entityType}/{id}/{trackerName} \
--header 'Authorization: Bearer <token>'import requests
url = "https://clientapi.woku.app/v1/external-trackers/{entityType}/{id}/{trackerName}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://clientapi.woku.app/v1/external-trackers/{entityType}/{id}/{trackerName}', 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/external-trackers/{entityType}/{id}/{trackerName}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://clientapi.woku.app/v1/external-trackers/{entityType}/{id}/{trackerName}"
req, _ := http.NewRequest("DELETE", url, nil)
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.delete("https://clientapi.woku.app/v1/external-trackers/{entityType}/{id}/{trackerName}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://clientapi.woku.app/v1/external-trackers/{entityType}/{id}/{trackerName}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"_id": "507f1f77bcf86cd799439015",
"companyId": "507f1f77bcf86cd799439012",
"entityType": "nps",
"entityId": "507f1f77bcf86cd799439abc",
"trackerId": "507f1f77bcf86cd799439014",
"value": "TX-2026-00043",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"statusCode": 403,
"message": "Authentication required",
"error": "Forbidden"
}{
"statusCode": 404,
"message": "External tracker not found",
"error": "Not Found"
}Remove a tracker value from a VoC entity
Looks up the tracker by name (active or inactive) and removes its value from the VoC entity. Returns the removed document. Not idempotent: returns 404 if no value existed.
curl --request DELETE \
--url https://clientapi.woku.app/v1/external-trackers/{entityType}/{id}/{trackerName} \
--header 'Authorization: Bearer <token>'import requests
url = "https://clientapi.woku.app/v1/external-trackers/{entityType}/{id}/{trackerName}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://clientapi.woku.app/v1/external-trackers/{entityType}/{id}/{trackerName}', 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/external-trackers/{entityType}/{id}/{trackerName}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://clientapi.woku.app/v1/external-trackers/{entityType}/{id}/{trackerName}"
req, _ := http.NewRequest("DELETE", url, nil)
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.delete("https://clientapi.woku.app/v1/external-trackers/{entityType}/{id}/{trackerName}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://clientapi.woku.app/v1/external-trackers/{entityType}/{id}/{trackerName}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"_id": "507f1f77bcf86cd799439015",
"companyId": "507f1f77bcf86cd799439012",
"entityType": "nps",
"entityId": "507f1f77bcf86cd799439abc",
"trackerId": "507f1f77bcf86cd799439014",
"value": "TX-2026-00043",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"statusCode": 403,
"message": "Authentication required",
"error": "Forbidden"
}{
"statusCode": 404,
"message": "External tracker not found",
"error": "Not Found"
}Authorizations
Company API key. Obtain this from your Woku dashboard under Settings > API Keys. The same key used for the v0 endpoints.
Path Parameters
VoC entity type that carries the tracker value. woku is not allowed here; use the dedicated /v1/external-trackers/wokus/{wokuId} routes.
nps, csat, ces, form, flow MongoDB ObjectId of the VoC entity.
^[0-9a-fA-F]{24}$Name of the company-level tracker definition.
Response
Value removed
Value of a tracker bound to a specific VoC entity (NPS/CSAT/CES tool, Form or Flow). The polymorphic (entityType, entityId) pair generalizes what WokuExternalTrackerValue does for Wokus.
"507f1f77bcf86cd799439015"
"507f1f77bcf86cd799439012"
VoC entity type that carries this value.
nps, csat, ces, form, flow "nps"
VoC entity this value belongs to.
"507f1f77bcf86cd799439abc"
Reference to the company-level tracker definition.
"507f1f77bcf86cd799439014"
External identifier (e.g. CRM transaction id).
500"TX-2026-00043"