Skip to main content
PATCH

Authorizations

Authorization
string
header
required

Company API key. Obtain this from your Woku dashboard under Settings > API Keys. The same key used for the v0 endpoints.

Path Parameters

id
string
required

MongoDB ObjectId of the ticket destination.

Pattern: ^[0-9a-fA-F]{24}$

Body

application/json

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.

name
string
Maximum string length: 120
kind
enum<string>
Available options:
zendesk,
salesforce,
slack,
custom,
email
config
object

Non-secret, kind-specific config, validated per kind:

  • zendesk: { connectionId, groupId? }. connectionId is the id of the company's Zendesk Integration; groupId is the optional numeric agent group the ticket lands in.
  • salesforce: { queueId?, caseOrigin? }. queueId is a Case Queue id ("00G...", 15 or 18 chars); caseOrigin defaults to "Web".
  • slack: { connectionId, channelId, channelLabel? }. connectionId is the id of the company's Slack Integration; channelId is the Slack channel id ("C..."); channelLabel is a display-only name (e.g. "#soporte").
  • custom: { url, method, headers? }. method is POST or PUT; headers are non-secret extra headers (never Authorization).
  • email: { emails }. Up to 20 recipient addresses; the server sends the ticket as a formatted email, no external call.
credentials
object

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, ... } where authType is none, basic (adds username, password), bearer (adds token) or api-key-header (adds headerName, headerValue).
  • email: send {}. The server owns the mail transport; there is no credential to submit.
aiContext
string
Maximum string length: 2000
routingConditions
object[]
Maximum array length: 20
template
object

Only meaningful for kind custom; named kinds (zendesk/salesforce/slack/email) use a fixed preset and reject this field.

enabled
boolean

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).

_id
string
Example:

"507f1f77bcf86cd799439021"

companyId
string
name
string
kind
enum<string>
Available options:
zendesk,
salesforce,
slack,
custom,
email
config
object
aiContext
string
routingConditions
object[]
credentialsHint
string

Masked preview of the stored secret (e.g. "••••a1b2"). Empty when the kind carries no secret of its own.

Example:

"••••a1b2"

template
object

Only meaningful for kind custom; named kinds (zendesk/salesforce/slack/email) use a fixed preset and reject this field.

enabled
boolean
default:true
status
enum<string>

error = the last delivery or connection test failed (see lastError).

Available options:
active,
error
lastDeliveryAt
string<date-time>
lastError
string

Sanitized failure reason of the last delivery attempt. Never contains credentials.

createdAt
string<date-time>
updatedAt
string<date-time>