Update a ticket destination
All fields optional. Sending credentials rotates the stored secret. Sending kind switches the provider; config/credentials are then validated against the NEW kind.
Authorizations
Company API key. Obtain this from your Woku dashboard under Settings > API Keys. The same key used for the v0 endpoints.
Path Parameters
MongoDB ObjectId of the ticket destination.
^[0-9a-fA-F]{24}$Body
All fields optional; only the ones present are changed. A credentials payload rotates the stored secret (re-validated and re-encrypted). kind can change: config/credentials are then validated against the NEW kind.
120zendesk, salesforce, slack, custom, email Non-secret, kind-specific config, validated per kind:
zendesk:{ connectionId, groupId? }.connectionIdis the id of the company's Zendesk Integration;groupIdis the optional numeric agent group the ticket lands in.salesforce:{ queueId?, caseOrigin? }.queueIdis a Case Queue id ("00G...", 15 or 18 chars);caseOrigindefaults to"Web".slack:{ connectionId, channelId, channelLabel? }.connectionIdis the id of the company's Slack Integration;channelIdis the Slack channel id ("C...");channelLabelis a display-only name (e.g."#soporte").custom:{ url, method, headers? }.methodisPOSTorPUT;headersare non-secret extra headers (neverAuthorization).email:{ emails }. Up to 20 recipient addresses; the server sends the ticket as a formatted email, no external call.
Present = credential rotation. Write-only, kind-specific credentials. Never returned by the API; see credentialsHint on the response.
zendesk,salesforce,slack: authenticate through the company's Integration (connected separately in the dashboard). Send{}.custom:{ authType, ... }whereauthTypeisnone,basic(addsusername,password),bearer(addstoken) orapi-key-header(addsheaderName,headerValue).email: send{}. The server owns the mail transport; there is no credential to submit.
200020Only meaningful for kind custom; named kinds (zendesk/salesforce/slack/email) use a fixed preset and reject this field.
Response
Destination updated
Credentials are never included: credentialsHint shows only the masked last 4 characters of the stored secret (empty for kinds with no secret of their own).
"507f1f77bcf86cd799439021"
zendesk, salesforce, slack, custom, email Masked preview of the stored secret (e.g. "••••a1b2"). Empty when the kind carries no secret of its own.
"••••a1b2"
Only meaningful for kind custom; named kinds (zendesk/salesforce/slack/email) use a fixed preset and reject this field.
error = the last delivery or connection test failed (see lastError).
active, error Sanitized failure reason of the last delivery attempt. Never contains credentials.