SOAP Component
Interact with a SOAP-based API
Component key: soap · Changelog ↓Description
SOAP (Simple Object Access Protocol) is a messaging protocol specification for exchanging structured information with web services. The SOAP component supports fetching WSDL definitions, describing the methods a SOAP API supports, and making requests of the API's methods.
Protocol Specification
This component implements SOAP as defined in the W3C SOAP specification.
Connections
Basic Authentication
key: basicAuthSOAP Basic Authentication uses a username and password along with a SOAP login method to authenticate API requests.
Prerequisites
- Access to a SOAP API that supports Basic Authentication
- A valid username and password for the SOAP service
- Knowledge of the SOAP login method name required by the API
Configure the Connection
- Username: Enter the username for the SOAP API
- Password: Enter the password for the SOAP API
- SOAP Login Method: Enter the method name used to authenticate with the SOAP API (e.g.,
Login) - WSDL Definition URL: Enter the URL to retrieve the WSDL definition from (optional, e.g.,
https://example.com/api.svc?WSDL)
| Input | Notes | Example |
|---|---|---|
| SOAP Login Method | The method used to authenticate the SOAP API. | |
| Password | Password | |
| Username | Username | |
| WSDL Definition URL | An optional URL to retrieve a WSDL definition from |
Actions
Describe Client
Description of services, ports and methods as a JavaScript object | key: describeClient
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| WSDL Definition | The WSDL definition's raw XML in string format | <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><wsdl:message name="AddRequest"><wsdl:part name="parameters" element="tns:AddRequest"/></wsdl:message></wsdl:definitions> |
{
"data": {
"Calculator": {
"CalculatorSoap": {
"Add": {
"input": {
"intA": "s:int",
"intB": "s:int"
},
"output": {
"AddResult": "s:int"
}
},
"Subtract": {
"input": {
"intA": "s:int",
"intB": "s:int"
},
"output": {
"SubtractResult": "s:int"
}
},
"Multiply": {
"input": {
"intA": "s:int",
"intB": "s:int"
},
"output": {
"MultiplyResult": "s:int"
}
},
"Divide": {
"input": {
"intA": "s:int",
"intB": "s:int"
},
"output": {
"DivideResult": "s:int"
}
}
},
"CalculatorSoap12": {
"Add": {
"input": {
"intA": "s:int",
"intB": "s:int"
},
"output": {
"AddResult": "s:int"
}
},
"Subtract": {
"input": {
"intA": "s:int",
"intB": "s:int"
},
"output": {
"SubtractResult": "s:int"
}
},
"Multiply": {
"input": {
"intA": "s:int",
"intB": "s:int"
},
"output": {
"MultiplyResult": "s:int"
}
},
"Divide": {
"input": {
"intA": "s:int",
"intB": "s:int"
},
"output": {
"DivideResult": "s:int"
}
}
}
}
}
}
Get Authentication
Retrieve authentication data from a SOAP endpoint by calling the specified authentication method | key: getWSDLAuth
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| WSDL Definition | The WSDL definition's raw XML in string format | <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><wsdl:message name="AddRequest"><wsdl:part name="parameters" element="tns:AddRequest"/></wsdl:message></wsdl:definitions> |
{
"data": [
{
"ExampleLoginToken": "abc-123",
"ExampleUsername": "example-user"
},
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns=\"urn:acme.com\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><soapenv:Body><loginResponse><result><ExampleLoginToken>abc-123</ExampleLoginToken><ExampleUsername>example-user</ExampleUsername></result></loginResponse></soapenv:Body></soapenv:Envelope>",
null,
"<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:tns=\"urn:partner.soap.sforce.com\"><soap:Body><login xmlns=\"urn:login.acme.com\"><username>example-user</username><password>123</password></login></soap:Body></soap:Envelope>",
null
]
}
Get WSDL Definition
Retrieves a WSDL Definition from a given endpoint and returns the raw XML | key: getWSDLByURL
| Input | Notes | Example |
|---|---|---|
| WSDL URL | The URL of the WSDL | http://www.dneonline.com/calculator.asmx?wsdl |
{
"data": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<wsdl:definitions xmlns:soap=\"http://schemas.xmlsoap.org/wsdl/soap/\" xmlns:tm=\"http://microsoft.com/wsdl/mime/textMatching/\" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:mime=\"http://schemas.xmlsoap.org/wsdl/mime/\" xmlns:tns=\"http://tempuri.org/\" xmlns:s=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://schemas.xmlsoap.org/wsdl/soap12/\" xmlns:http=\"http://schemas.xmlsoap.org/wsdl/http/\" targetNamespace=\"http://tempuri.org/\" xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\">\n <wsdl:types>\n <s:schema elementFormDefault=\"qualified\" targetNamespace=\"http://tempuri.org/\">\n <s:element name=\"Add\">\n <s:complexType>\n <s:sequence>\n <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"intA\" type=\"s:int\" />\n <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"intB\" type=\"s:int\" />\n </s:sequence>\n </s:complexType>\n </s:element>\n <s:element name=\"AddResponse\">\n <s:complexType>\n <s:sequence>\n <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"AddResult\" type=\"s:int\" />\n </s:sequence>\n </s:complexType>\n </s:element>\n <s:element name=\"Subtract\">\n <s:complexType>\n <s:sequence>\n <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"intA\" type=\"s:int\" />\n <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"intB\" type=\"s:int\" />\n </s:sequence>\n </s:complexType>\n </s:element>\n <s:element name=\"SubtractResponse\">\n <s:complexType>\n <s:sequence>\n <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"SubtractResult\" type=\"s:int\" />\n </s:sequence>\n </s:complexType>\n </s:element>\n <s:element name=\"Multiply\">\n <s:complexType>\n <s:sequence>\n <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"intA\" type=\"s:int\" />\n <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"intB\" type=\"s:int\" />\n </s:sequence>\n </s:complexType>\n </s:element>\n <s:element name=\"MultiplyResponse\">\n <s:complexType>\n <s:sequence>\n <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"MultiplyResult\" type=\"s:int\" />\n </s:sequence>\n </s:complexType>\n </s:element>\n <s:element name=\"Divide\">\n <s:complexType>\n <s:sequence>\n <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"intA\" type=\"s:int\" />\n <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"intB\" type=\"s:int\" />\n </s:sequence>\n </s:complexType>\n </s:element>\n <s:element name=\"DivideResponse\">\n <s:complexType>\n <s:sequence>\n <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"DivideResult\" type=\"s:int\" />\n </s:sequence>\n </s:complexType>\n </s:element>\n </s:schema>\n </wsdl:types>\n <wsdl:message name=\"AddSoapIn\">\n <wsdl:part name=\"parameters\" element=\"tns:Add\" />\n </wsdl:message>\n <wsdl:message name=\"AddSoapOut\">\n <wsdl:part name=\"parameters\" element=\"tns:AddResponse\" />\n </wsdl:message>\n <wsdl:message name=\"SubtractSoapIn\">\n <wsdl:part name=\"parameters\" element=\"tns:Subtract\" />\n </wsdl:message>\n <wsdl:message name=\"SubtractSoapOut\">\n <wsdl:part name=\"parameters\" element=\"tns:SubtractResponse\" />\n </wsdl:message>\n <wsdl:message name=\"MultiplySoapIn\">\n <wsdl:part name=\"parameters\" element=\"tns:Multiply\" />\n </wsdl:message>\n <wsdl:message name=\"MultiplySoapOut\">\n <wsdl:part name=\"parameters\" element=\"tns:MultiplyResponse\" />\n </wsdl:message>\n <wsdl:message name=\"DivideSoapIn\">\n <wsdl:part name=\"parameters\" element=\"tns:Divide\" />\n </wsdl:message>\n <wsdl:message name=\"DivideSoapOut\">\n <wsdl:part name=\"parameters\" element=\"tns:DivideResponse\" />\n </wsdl:message>\n <wsdl:portType name=\"CalculatorSoap\">\n <wsdl:operation name=\"Add\">\n <wsdl:documentation xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\">Adds two integers. This is a test WebService. ©DNE Online</wsdl:documentation>\n <wsdl:input message=\"tns:AddSoapIn\" />\n <wsdl:output message=\"tns:AddSoapOut\" />\n </wsdl:operation>\n <wsdl:operation name=\"Subtract\">\n <wsdl:input message=\"tns:SubtractSoapIn\" />\n <wsdl:output message=\"tns:SubtractSoapOut\" />\n </wsdl:operation>\n <wsdl:operation name=\"Multiply\">\n <wsdl:input message=\"tns:MultiplySoapIn\" />\n <wsdl:output message=\"tns:MultiplySoapOut\" />\n </wsdl:operation>\n <wsdl:operation name=\"Divide\">\n <wsdl:input message=\"tns:DivideSoapIn\" />\n <wsdl:output message=\"tns:DivideSoapOut\" />\n </wsdl:operation>\n </wsdl:portType>\n <wsdl:binding name=\"CalculatorSoap\" type=\"tns:CalculatorSoap\">\n <soap:binding transport=\"http://schemas.xmlsoap.org/soap/http\" />\n <wsdl:operation name=\"Add\">\n <soap:operation soapAction=\"http://tempuri.org/Add\" style=\"document\" />\n <wsdl:input>\n <soap:body use=\"literal\" />\n </wsdl:input>\n <wsdl:output>\n <soap:body use=\"literal\" />\n </wsdl:output>\n </wsdl:operation>\n <wsdl:operation name=\"Subtract\">\n <soap:operation soapAction=\"http://tempuri.org/Subtract\" style=\"document\" />\n <wsdl:input>\n <soap:body use=\"literal\" />\n </wsdl:input>\n <wsdl:output>\n <soap:body use=\"literal\" />\n </wsdl:output>\n </wsdl:operation>\n <wsdl:operation name=\"Multiply\">\n <soap:operation soapAction=\"http://tempuri.org/Multiply\" style=\"document\" />\n <wsdl:input>\n <soap:body use=\"literal\" />\n </wsdl:input>\n <wsdl:output>\n <soap:body use=\"literal\" />\n </wsdl:output>\n </wsdl:operation>\n <wsdl:operation name=\"Divide\">\n <soap:operation soapAction=\"http://tempuri.org/Divide\" style=\"document\" />\n <wsdl:input>\n <soap:body use=\"literal\" />\n </wsdl:input>\n <wsdl:output>\n <soap:body use=\"literal\" />\n </wsdl:output>\n </wsdl:operation>\n </wsdl:binding>\n <wsdl:binding name=\"CalculatorSoap12\" type=\"tns:CalculatorSoap\">\n <soap12:binding transport=\"http://schemas.xmlsoap.org/soap/http\" />\n <wsdl:operation name=\"Add\">\n <soap12:operation soapAction=\"http://tempuri.org/Add\" style=\"document\" />\n <wsdl:input>\n <soap12:body use=\"literal\" />\n </wsdl:input>\n <wsdl:output>\n <soap12:body use=\"literal\" />\n </wsdl:output>\n </wsdl:operation>\n <wsdl:operation name=\"Subtract\">\n <soap12:operation soapAction=\"http://tempuri.org/Subtract\" style=\"document\" />\n <wsdl:input>\n <soap12:body use=\"literal\" />\n </wsdl:input>\n <wsdl:output>\n <soap12:body use=\"literal\" />\n </wsdl:output>\n </wsdl:operation>\n <wsdl:operation name=\"Multiply\">\n <soap12:operation soapAction=\"http://tempuri.org/Multiply\" style=\"document\" />\n <wsdl:input>\n <soap12:body use=\"literal\" />\n </wsdl:input>\n <wsdl:output>\n <soap12:body use=\"literal\" />\n </wsdl:output>\n </wsdl:operation>\n <wsdl:operation name=\"Divide\">\n <soap12:operation soapAction=\"http://tempuri.org/Divide\" style=\"document\" />\n <wsdl:input>\n <soap12:body use=\"literal\" />\n </wsdl:input>\n <wsdl:output>\n <soap12:body use=\"literal\" />\n </wsdl:output>\n </wsdl:operation>\n </wsdl:binding>\n <wsdl:service name=\"Calculator\">\n <wsdl:port name=\"CalculatorSoap\" binding=\"tns:CalculatorSoap\">\n <soap:address location=\"http://www.dneonline.com/calculator.asmx\" />\n </wsdl:port>\n <wsdl:port name=\"CalculatorSoap12\" binding=\"tns:CalculatorSoap12\">\n <soap12:address location=\"http://www.dneonline.com/calculator.asmx\" />\n </wsdl:port>\n </wsdl:service>\n</wsdl:definitions>"
}
Request
Makes a request to the SOAP webservice using the specified method | key: sendRequest
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| SOAP URL Override | Optionally override the default web service URL defined in the WSDL | http://www.someurl.com/path |
| Method | Execute the SOAP web service method | Add |
| Request Headers | Blocks of XML to include in the SOAP header of the request | <Auth><username>myUser</username><password>myPass</password></Auth> |
| SOAP Parameters | Any additional parameters to pass to the web service method | |
| WSDL Definition | The WSDL definition's raw XML in string format | <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><wsdl:message name="AddRequest"><wsdl:part name="parameters" element="tns:AddRequest"/></wsdl:message></wsdl:definitions> |
The Request action can take optional SOAP headers (which are different from HTTP headers). SOAP headers that reference config variables and other steps' results can be generated using input templates:

Simple SOAP Request
This example uses this generic calculator SOAP API, which presents methods to add, subtract, multiply, and divide two integers.
The API's WSDL specifies a Multiply operation, which multiplies two integers, intA and intB, and returns a MultiplyResponse.
To use that method, first add a Get WSDL Definition step to fetch the API's WSDL definition.
Then, reference that definition as the Request step's WSDL Definition input.
Under Method, specify the Multiply operation to execute.
Finally, add two SOAP Parameters for intA and intB.
Here, we multiply the integers 7 and 8:

The step's result will match the format that the SOAP API's WSDL specifies.
In this case, it returns a MultiplyResponse.
The result also includes the XML that made up the request and response, in case additional work with the XML is needed.

{
"data": [
{
"MultiplyResult": 56
},
"<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><soap:Body><MultiplyResponse xmlns=\"http://tempuri.org/\"><MultiplyResult>56</MultiplyResult></MultiplyResponse></soap:Body></soap:Envelope>",
null,
"<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:tm=\"http://microsoft.com/wsdl/mime/textMatching/\" xmlns:tns=\"http://tempuri.org/\"><soap:Body><Multiply xmlns=\"http://tempuri.org/\"><intA>7</intA><intB>8</intB></Multiply></soap:Body></soap:Envelope>",
null
]
}
Changelog
2026-04-07
Various modernizations and documentation updates
2025-10-03
Enhanced SOAP request handling with improved custom implementation support and updated test coverage