v2

latestOpenAPI 3.1.12026-07-2613060964.2 KB

Update Workspace Config

Update one or more workspace-level configuration flags. Any field returned by GET /v1/{workspace}/config/ can be sent in the PATCH body — only fields you include are changed.

patch/v1/{workspace}/config/

Path parameters

workspacestring required

Workspace slug (e.g. staging, production).

Request body

user_inbox_preference_enabledboolean

If you are using the Inbox channel, enable this to show the Inbox channel in the preference centre.

sms_vendor_type'basic' | 'dlt'

Switch the workspace's SMS delivery mode. Confirm with your SMS provider before switching to or from dlt.

user_tenancy_mode'shared' | 'exclusive'

Change how users are constrained across tenants. See User-tenant mapping for the effects of switching this value.

user_tenancy_channel_fallback_mode'all' | 'allowlist'

Switch between all (every channel falls back from global) and allowlist (only channels in user_tenancy_channel_fallback fall back).

user_tenancy_channel_fallbackstring[]

Channel keys allowed to fall back when user_tenancy_channel_fallback_mode = allowlist. Ignored otherwise.

user_tenancy_channel_fallback_applies_to_default_tenantboolean

When true, the fallback rule above also governs sends with no tenant_id.

Example request

{
  "user_inbox_preference_enabled": true,
  "sms_vendor_type": "basic",
  "user_tenancy_mode": "shared",
  "user_tenancy_channel_fallback_mode": "allowlist",
  "user_tenancy_channel_fallback": [
    "$email",
    "$sms",
    "$whatsapp"
  ]
}

Response

Workspace config updated. The full updated config is returned.

user_inbox_preference_enabledboolean

If you are using the Inbox channel, enable this to show the Inbox channel in the preference centre.

sms_vendor_type'basic' | 'dlt'

SMS delivery mode for the workspace. Use dlt for India DLT-compliant sends; basic for standard sends.

user_tenancy_mode'shared' | 'exclusive'

Constraint on user-tenant associations for this workspace.

  • shared — a user can belong to any number of tenants.
  • exclusive — a user can belong to at most one tenant. The associate call rejects users that already have a mapping.

New workspaces default to exclusive; workspaces that existed before this setting was introduced default to shared.

user_tenancy_channel_fallback_mode'all' | 'allowlist'

Controls which channels a tenant-scoped profile is allowed to inherit from the user's global profile when the tenant has no override for that channel.

  • all — every channel falls back to global (default; reproduces a straight shallow merge).
  • allowlist — only the channels listed in user_tenancy_channel_fallback fall back; every other channel is dropped from the send when the tenant has no override for it. Prevents identities like $androidpush or $slack from leaking across tenants.
user_tenancy_channel_fallbackstring[]

Channel keys allowed to fall back from the global profile when user_tenancy_channel_fallback_mode = allowlist. Ignored when the mode is all.

Typical setup: ["$email", "$sms", "$whatsapp"] — safe to fall back — while excluding $androidpush, $iospush, $webpush, $inbox, and $slack.

user_tenancy_channel_fallback_applies_to_default_tenantboolean

Whether the fallback rule above also governs sends that carry no tenant_id (the default-tenant path).

  • false (default) — the default-tenant path always falls back for every channel, regardless of the allowlist.
  • true — the default-tenant path follows the same user_tenancy_channel_fallback_mode + user_tenancy_channel_fallback rule as other tenants.

Example response

{
  "user_inbox_preference_enabled": true,
  "sms_vendor_type": "basic",
  "user_tenancy_mode": "exclusive",
  "user_tenancy_channel_fallback_mode": "all",
  "user_tenancy_channel_fallback": [
    "$email",
    "$sms",
    "$whatsapp"
  ]
}