Skip to content
Support

Soft-remove a taxonomy node

client.taxonomy.nodes.softRemove(stringnodeID, NodeSoftRemoveParams { actor_id, tenant_id } params, RequestOptionsoptions?): Node { id, created_at, label, 13 more }
DELETE/v1/taxonomy/nodes/{node_id}

Soft-removes a taxonomy node (sets removed_at/removed_by) and records a soft_remove event attributed to actor_id. The node is retained for audit but excluded from tree responses. Tenant-scoped; returns 404 if the node does not belong to the tenant. While a tenant data purge runs for the same tenant_id, the request is rejected with HTTP 409 (code tenant_write_conflict).

ParametersExpand Collapse
nodeID: string
formatuuid
params: NodeSoftRemoveParams { actor_id, tenant_id }
actor_id: string

Identifier of the actor performing the removal (recorded in the audit event).

minLength1
maxLength255
tenant_id: string

Tenant that owns the node.

minLength1
maxLength255
ReturnsExpand Collapse
Node { id, created_at, label, 13 more }

A node in a taxonomy tree. Non-root nodes have a parent; leaf nodes reference the cluster they summarize.

id: string
formatuuid
created_at: string
formatdate-time
label: string
level: number

Depth in the tree; the root is level 0.

formatint64
node_type: "root" | "branch" | "leaf"

Position of a node within the taxonomy tree.

Accepts one of the following:
"root"
"branch"
"leaf"
run_id: string
formatuuid
sort_order: number
formatint64
updated_at: string
formatdate-time
children?: Array<Node { id, created_at, label, 13 more } >

Child nodes, present when the tree is returned hierarchically.

Node { id, created_at, label, 13 more }
cluster_id?: string

Cluster this node summarizes; typically present on leaf nodes.

formatuuid
description?: string
metadata?: Record<string, unknown>
original_label?: string

Label as originally generated, before any rename.

parent_id?: string

Parent node ID; absent for the root node.

formatuuid
removed_at?: string

Set when the node has been soft-removed.

formatdate-time
removed_by?: string

Actor that soft-removed the node.

Soft-remove a taxonomy node

import FormbricksHub from '@formbricks/hub';

const client = new FormbricksHub({
  apiKey: process.env['HUB_API_KEY'], // This is the default and can be omitted
});

const node = await client.taxonomy.nodes.softRemove('019f177f-9abe-78cd-8008-f40b58e3147d', {
  actor_id: 'actor_id',
  tenant_id: 'org-123',
});

console.log(node.id);
{
  "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "created_at": "2019-12-27T18:11:19.117Z",
  "label": "label",
  "level": 0,
  "node_type": "root",
  "run_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "sort_order": 0,
  "updated_at": "2019-12-27T18:11:19.117Z",
  "children": [],
  "cluster_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "description": "description",
  "metadata": {
    "foo": "bar"
  },
  "original_label": "original_label",
  "parent_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "removed_at": "2019-12-27T18:11:19.117Z",
  "removed_by": "removed_by"
}
Returns Examples
{
  "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "created_at": "2019-12-27T18:11:19.117Z",
  "label": "label",
  "level": 0,
  "node_type": "root",
  "run_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "sort_order": 0,
  "updated_at": "2019-12-27T18:11:19.117Z",
  "children": [],
  "cluster_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "description": "description",
  "metadata": {
    "foo": "bar"
  },
  "original_label": "original_label",
  "parent_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "removed_at": "2019-12-27T18:11:19.117Z",
  "removed_by": "removed_by"
}