SOAP Component

Interact with a SOAP-based API
Component key: soap#
DescriptionSimple Object Access Protocol (SOAP) is a messaging protocol specification for exchanging structured information with web services.
This component allows you to interact with a SOAP API. You can fetch WSDL definitions, describe the methods that a SOAP API supports, and make requests of the API's methods.
#
SOAP Connections#
Basic AuthenticationInput | Notes |
---|---|
Input SOAP Login Method string / Required loginMethod | Notes The method used to authenticate the SOAP API. |
Input Password password / Required password | Notes Password |
Input Username string / Required username | Notes Username |
Input WSDL Definition URL string wsdlDefinitionURL | Notes An optional URL to retrieve a WSDL definition from |
#
Actions#
Describe ClientDescription of services, ports and methods as a JavaScript object | key: describeClient
Input | Notes |
---|---|
Input Connection connection connection | Notes |
Input WSDL Definition string wsdl | Notes The WSDL definition's raw XML in string format |
#
Output Example Payload{ "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 AuthenticationRetrieve authentication data from a SOAP endpoint by calling the specified authentication method | key: getWSDLAuth
Input | Notes |
---|---|
Input Connection connection / Required connection | Notes |
Input WSDL Definition string wsdl | Notes The WSDL definition's raw XML in string format |
#
Output Example Payload{ "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 DefinitionRetrieves a WSDL Definition from a given endpoint and returns the raw XML | key: getWSDLByURL
Input | Notes | Example |
---|---|---|
Input WSDL URL string / Required wsdlURL | Notes The URL of the WSDL | Example http://www.dneonline.com/calculator.asmx?wsdl |
#
Output Example Payload{ "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>"}
#
RequestMakes a request to the SOAP webservice using the specified method | key: sendRequest
Input | Default | Notes | Example |
---|---|---|---|
Input Connection connection connection | Default | Notes | Example |
Input Debug Request boolean debug | Default false | Notes Optionally log the last request and response from the SOAP Client | Example |
Input SOAP URL Override string endpointURL | Default | Notes Optionally override the default web service URL defined in the WSDL | Example |
Input Method string / Required requestMethod | Default | Notes Execute the SOAP web service method | Example |
Input Request Headers text Value List soapHeaders | Default | Notes Blocks of XML to include in the SOAP header of the request | Example <Auth><username>myUser</username><password>myPass</password></Auth> |
Input SOAP Parameters string Key Value List soapParams | Default | Notes Any additional parameters to pass to the web service method | Example |
Input WSDL Definition string wsdl | Default | Notes The WSDL definition's raw XML in string format | Example |
The Request action can take optional SOAP headers (which are different from HTTP headers). You can easily generate SOAP headers that reference config variables and other steps' results using input templates:

#
Simple SOAP RequestThis 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 that you want to execute the Multiply operation.
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'll return a MultiplyResponse
.
The result will also include the XML that made up the request and response, in case you need to do additional work with the XML.

#
Output Example Payload{ "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 ]}