> ## Documentation Index
> Fetch the complete documentation index at: https://dialnexa.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Node

> Update a workflow node's label, configuration, or visual position. Node type is immutable after creation.

<Warning>
  **Legacy endpoint - deprecated.** Unversioned endpoints are scheduled for removal on **July 31, 2026**. A public v1 replacement is not currently listed in the v1 reference. This endpoint remains available for existing integrations until then.
</Warning>

Updates editable fields on a workflow node: the human-readable `label`, the per-node-type `config` object (for example which agent a `VOICE_CALL` node uses or how long a `TIME` node waits), and the node's `position_x` / `position_y` coordinates in the visual editor. The `node_type` is immutable after creation, to change the kind of step a node represents, delete the existing node with [Delete Node](/docs/api-reference/workflow-nodes/delete) and create a replacement.

## When to use this

* **Renaming a step** so the workflow's dashboard view stays accurate as the business process evolves.
* **Swapping the agent or voice on a voice-call step** without rebuilding the rest of the workflow graph.
* **Adjusting a `TIME` node's delay** as you learn the right cadence between outreach attempts.
* **Reflowing the visual layout** after adding or removing nodes.

If the node is currently routing leads, changes take effect on the next scheduling tick. In-flight steps already running under the previous configuration complete with the old configuration.

## Path parameters

| Parameter | Description                                      |
| --------- | ------------------------------------------------ |
| `id`      | The workflow ID, for example `wfl_m3v7zb9rk2px`. |
| `nodeId`  | The node ID, for example `node_v8p3kz1mq7ry`.    |

## Errors

* `404 Not Found` is returned when the workflow or node does not exist.
* `400 Bad Request` is returned when the `config` object fails validation for the node's type, or when an attempt is made to change `node_type`.

## Related endpoints

* [List Nodes](/docs/api-reference/workflow-nodes/list): see every node and its current configuration.
* [Create Node](/docs/api-reference/workflow-nodes/create): add a new step.
* [Delete Node](/docs/api-reference/workflow-nodes/delete): remove a step, including replacing one of a different type.


## OpenAPI

````yaml PATCH /workflows/{id}/nodes/{nodeId}
openapi: 3.0.0
info:
  title: DialNexa API
  description: >-
    Public REST API for the DialNexa voice AI platform. Versioned endpoints are
    under /v1; unversioned endpoints are legacy and deprecated.
  version: 1.0.0
servers:
  - url: https://api.dialnexa.com
    description: DialNexa production API
security:
  - bearer: []
tags:
  - name: API Keys
  - name: Agent Functions
  - name: Agents V1
  - name: Agents2
  - name: Batch Calls
  - name: Batch Calls V1
  - name: Call Logs
  - name: Calls
  - name: Calls V1
  - name: Campaign Leads
  - name: Campaigns
  - name: External Webhooks
  - name: Knowledge Base
  - name: Knowledge Base V1
  - name: LLMs
  - name: LLMs V1
  - name: Languages
  - name: Languages V1
  - name: Organization Phone Numbers
  - name: Organization Phone Numbers V1
  - name: Phone Number Pricing
  - name: Phone Number Pricing V1
  - name: Transcribers
  - name: Transcribers V1
  - name: User Webhooks
  - name: User Webhooks V1
  - name: V1
  - name: Voices
  - name: Voices V1
  - name: Webcall
  - name: Workflow Leads
  - name: Workflow Leads V1
  - name: Workflows
  - name: Workflows V1
paths:
  /workflows/{id}/nodes/{nodeId}:
    patch:
      tags:
        - Workflows
      summary: Update a node in a workflow
      description: >-
        **Legacy endpoint - deprecated, scheduled for removal on July 31,
        2026.** Use the `/v1` version for new integrations. 
      operationId: WorkflowsController_updateNode
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: string
        - name: nodeId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: Node updated successfully
      deprecated: true
components:
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````