The SOAP node shares its credentials and execution infrastructure with the API node — if you’re already familiar with that node, this configuration will feel familiar too.
Basic configuration
- URL — the SOAP service’s address.
- Operation Name — the name of the SOAP operation you want to invoke (free text; it isn’t validated against a WSDL).
Namespaces
Define the SOAP envelope’s namespaces in a reorderable table (drag to change the order):
You can use workflow variables when defining the URI.
Headers
Add custom headers as key-value pairs.The
Content-Type header is managed automatically based on the SOAP version you choose in Settings, and can’t be edited manually.Body
The request body is edited in a free-form code editor (JSON or XML). The node doesn’t visually build the SOAP envelope — the final envelope is assembled by the execution engine.Authentication
Three options available:Settings
- SOAP version —
1.1or1.2. Changing it automatically rewrites theContent-Typeheader. - Timeout — in milliseconds, defaults to
30000(30s). - Response transformation — extract only the part of the response you need by defining an
extractPath(for example,GetUserResponse.Data).
Advanced
Hold the conversation while waiting
By default, while the node waits for the service to respond, the user is free: if they write, their message is handled by the project router and can start another flow in the same conversation. To prevent this, open the Advanced tab and enable Hold the conversation while waiting: the user stays in this workflow until the request finishes.How long it lasts
The conversation is released as soon as the request finishes, through either the success or the error output, and the flow continues. As a safeguard, the hold lasts at most the timeout configured in Settings; if you did not set one, it lasts 60 seconds. It never exceeds 1 hour.When it does not apply
- Nodes inside a Tool: only the workflow that talks to the user can hold them, so the option is ignored on a SOAP node running inside a Tool. In that case, enable it on the workflow’s Tool node; see What is a Tool.
- Conversations with an operator: if a human agent takes over the conversation, their messages bypass the hold.
- User already held: if another node —for example, a Pause or a Tool with the same option— is already holding the user, that hold is kept and this node does not replace it.
Save the response
Enable “Save response” and define a variable name to store the SOAP service’s response.Access the response from a Code node
$context.getSoapRequest('myVariable'). Both accessors support .headers() and .json(); getSoapResponse also includes .status().