Search Knowledge Base by Keyword
Simple Object Access Protocol (SOAP)
Overview
SOAP (Simple Object Access Protocol) is an older XML-based remote procedure call standard, still common in enterprise middleware, telecoms provisioning systems, HR and finance suites and VMware’s legacy management APIs. A SOAP request is an XML envelope POSTed to a single service endpoint, with the operation name and its arguments carried inside the envelope body rather than in the URL.
This connector is a build-your-own integration for those services. You give it the service domain and, per job, the endpoint path and the XML envelope to send. It runs the soap.php driver, posts the envelope, and parses the XML response into a staging table in the ReadyWorks estate. The XML Envelope Payload field on the job form is where the operation and its arguments go.
Compared with the Generic Rest JSON API connector, this one trades the REST-shaped controls for envelope handling. There is no pagination group at all on the job form, because SOAP services do not page over a URL query string, and no API Data Parameters or Raw JSON Body, because the envelope carries everything. What it keeps is the enumeration machinery: three levels are available, so a job can read a list of identifiers from one call and issue a per-identifier envelope for each. Use the JSON or XML REST connectors for anything that answers on a REST-style URL, and this one only when the service genuinely speaks SOAP.
The connector is declared as bidirectional and a small outbound job form is exposed, but see the issue below: the outbound form is missing the fields an outbound SOAP call needs, and no outbound template ships.
NOTE: The one shipped inbound template points at the literal placeholder path /api/endpoint and is enabled. Change the endpoint or disable the job before saving a connection, or you will schedule a daily job that cannot succeed.
Connector Properties
| Property | Value |
|---|---|
| Identifier | SOAP |
| Name | Simple Object Access Protocol (SOAP) |
| Description | Access an API using the Simple Object Access Protocol (SOAP) |
| Job Types | Both Inbound and Outbound |
| Order | 80 |
| Enabled | Yes |
| Locked | Yes |
| Block Update | No |
| Single Authentication | No |
| Windows Only | No |
| Connector Version | 2025-03-12 |
| Hooks | None |
| Additional Job Fields | None |
| Image | ![]() |
Authentication Methods
Two authentication methods are shipped: one for services that need no credential, and one modelled on VMware’s session-token exchange.
| Method | Identifier | Base Method | Script | Order | Enabled | Config Fields |
|---|---|---|---|---|---|---|
| No Authentication | SOAP_0ae9e4263c |
SOAP_0ae9e4263c |
soap.php |
10 | Yes | 4 |
| VMWARE SOAP: username / password – return authorization token | SOAP_4d5eceffd4 |
SOAP_4d5eceffd4 |
soap.php |
20 | Yes | 9 |
NOTE: Neither method implements WS-Security. If your service expects a UsernameToken or a signed security header, put it in the Soap Envelope field on the connection or in the per-job XML Envelope Payload.
NOTE: Both methods set SSL_VERIFYHOST and SSL_VERIFYPEER to false, so the service certificate is not validated.
Method 1: No Authentication (SOAP_0ae9e4263c)
Connect to a SOAP API with no authentication
Posts the envelope with no credential attached. Use it for services open to the collector’s network, or as the base when the credential travels inside the envelope body itself, which is how most WS-Security and custom SOAP logins work.
Connection Configuration Fields (4)
| Order | Label | Type | Required | Default | Max Len | Tooltip |
|---|---|---|---|---|---|---|
| 10 | API Domain | text | Yes | 255 | Enter API domain of the Connection | |
| 30 | Server Temporary Working Path | text | Yes | storage/etl5 |
255 | Enter path where temporary files are stored during data processing (exclude starting and ending backslash) |
| 240 | Single Authentication | radio | Yes | 0 |
Choose if authentication is only to be done once and not on each enumeration or pagination loop | |
| 250 | Additional Job Fields | fields_list | No | Enter list of additional fields to add to staging data for all jobs |
Authentication Configuration
cURL options:
| Option | Authentication Call | Data Calls |
|---|---|---|
USERAGENT |
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 |
Same |
SSL_VERIFYHOST |
false |
Same |
SSL_VERIFYPEER |
false |
Same |
RETURNTRANSFER |
true |
Same |
FOLLOWLOCATION |
true |
Same |
FAILONERROR |
true |
Same |
Method 2: VMWARE SOAP: username / password – return authorization token (SOAP_4d5eceffd4)
Connect to a SOAP method API with a username / password retrieving value for authorization token
A two-step exchange shaped for VMware. It posts the Soap Envelope you supply to the Authentication Token End Point, pulls the token out of the response at the node you name in Authentication Token JSON Node, and then sends that value on every data call as a vmware-api-session-id header while carrying the session cookie forward. The cookie handling makes it usable against other session-based SOAP services, but the header name is fixed to VMware’s.
Connection Configuration Fields (9)
| Order | Label | Type | Required | Default | Max Len | Tooltip |
|---|---|---|---|---|---|---|
| 10 | API Domain | text | Yes | 255 | Enter API domain of the Connection | |
| 30 | Server Temporary Working Path | text | Yes | storage/etl5 |
255 | Enter path where temporary files are stored during data processing (exclude starting and ending backslash) |
| 40 | Username | text | No | 1024 | Tooltip for Username | |
| 50 | Password | password | No | 64000 | Tooltip for Password | |
| 180 | Soap Envelope | textarea | No | Enter the SOAP Envelope for the authentication call | ||
| 190 | Authentication Token End Point | text | No | 500 | Tooltip for Authentication End Point | |
| 200 | Authentication Token JSON Node | text | No | 255 | Tooltip for Authentication Data Node | |
| 240 | Single Authentication | radio | Yes | 0 |
Choose if authentication is only to be done once and not on each enumeration or pagination loop | |
| 250 | Additional Job Fields | fields_list | No | Enter list of additional fields to add to staging data for all jobs |
Authentication Configuration
Headers sent on the authentication call:
| Header | Value | Base64 |
|---|---|---|
>SetCookie |
Off |
Headers sent on the data calls:
| Header | Value | Base64 |
|---|---|---|
>GetCookie |
Off | |
vmware-api-session-id: |
%auth_data% |
Off |
cURL options:
| Option | Authentication Call | Data Calls |
|---|---|---|
USERAGENT |
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 |
Same |
SSL_VERIFYHOST |
false |
Same |
SSL_VERIFYPEER |
false |
Same |
RETURNTRANSFER |
true |
Same |
FOLLOWLOCATION |
true |
Same |
FAILONERROR |
true |
Same |
NOTE: The Soap Envelope, Authentication Token End Point and Authentication Token JSON Node fields are all optional on the form, yet the method cannot work without all three. Fill in every one.
Inbound Job Fields Enabled (32)
The inbound job form carries the envelope and XML parsing controls, the three enumeration levels and Maximum API Calls, and omits the whole pagination group.
| Order | Label | Type | Required | Default | Tooltip |
|---|---|---|---|---|---|
| 10 | Job Description | text | Yes | Enter description of the Job | |
| 20 | Job Schedule | lookup | Yes | Daily | Select frequency Job should run |
| 30 | Enabled | radio | Yes | Yes | Choose if Job is enabled |
| 40 | Use Unparsed Data | radio | No | No | Choose if you wish to parse the incoming data, or leave it in its raw format |
| 50 | Log Raw API Calls | radio | Yes | No | Choose if raw API calls are logged |
| 70 | Destination Table | text | Yes | Enter name of the destination table | |
| 80 | Data Identity | text | No | Enter identity of the Job | |
| 100 | XML Envelope Payload | textarea | No | Enter job XML envelope payload for the SOAP call | |
| 120 | Append New Data to Existing Tables | radio | No | No | Choose if new data will append to the existing destination table, or will create a new destination table |
| 130 | Fields to Index | text | No | Enter fields to index | |
| 170 | Method Type | select | Yes | GET |
Select method type of the Job |
| 190 | API End Point | text | No | Enter API end point of the Job | |
| 230 | API Return Data Node | text | No | Enter API return data node of the Job | |
| 240 | Ignore XML Attributes | radio | No | No | When parsing XML ignore field attributes and do not include them in the data |
| 310 | Maximum API Calls | text | No | Enter maximum number of API calls for the Job to make | |
| 320 | Enumeration 1 Type | select | No | None | Enter enumeration level 1 type |
| 330 | Enumeration 1 ETL Job | lookup | No | Select ETL job for the enumeration 1 values | |
| 340 | Enumeration 1 Data Type | data_type | No | Select the data type and fields for enumeration 1 values | |
| 370 | Enumeration 1 Fields | fields_list | No | Enter enumeration 1 fields of the Job | |
| 380 | Enumeration 2 Type | select | No | None | Enter enumeration level 2 type |
| 390 | Enumeration 2 ETL Job | lookup | No | Select ETL job for the enumeration 2 values | |
| 400 | Enumeration 2 Data Type | data_type | No | Select the data type and fields for enumeration 2 values | |
| 430 | Enumeration 2 Fields | fields_list | No | Enter enumeration 2 fields of the Job | |
| 440 | Enumeration 3 Type | select | No | None | Enter enumeration level 3 type |
| 450 | Enumeration 3 ETL Job | lookup | No | Select ETL job for the enumeration 3 values | |
| 460 | Enumeration 3 Data Type | data_type | No | Select the data type and fields for enumeration 3 values | |
| 490 | Enumeration 3 Fields | fields_list | No | Enter enumeration 3 fields of the Job | |
| 500 | Pause Enumeration | text | No | Enter values for pausing enumeration every X calls for Y seconds | |
| 510 | Kill Enumeration on Error | radio | No | No | Choose to stop the enumeration loop on an error or continue processing the loop |
| 520 | Additional Fields | fields_list | No | Enter list of additional fields to add to staging data | |
| 550 | Retry Pause | text | No | Enter values for retrying a failed API connection. Retry X times, waiting Y seconds between each try, with an API timeout of Z seconds. | |
| 560 | Order | text | Yes | Enter order of the Job |
NOTE: XML Envelope Payload is the SOAP body for the job. It accepts %token% substitution, so an enumeration field named enum_id_1 can be referenced as %enum_id_1% inside the envelope to build one call per identifier.
NOTE: With no pagination controls available, Maximum API Calls and the enumeration settings are the only limits on how many requests a job makes. Set Maximum API Calls on anything that enumerates.
Outbound Job Fields Enabled (7)
Seven outbound job fields are exposed, covering the job identity, the outbound and body sending methods and the outbound and return field lists.
| Order | Label | Type | Required | Default | Tooltip |
|---|---|---|---|---|---|
| 10 | Job Description | text | Yes | Enter description of the Job | |
| 30 | Enabled | radio | Yes | Yes | Choose if Job is enabled |
| 180 | Data Sending Method | select | Yes | JSON Encoded Data | Select method for sending the outbound data |
| 210 | Body Data Sending Method | select | Yes | JSON Encoded Data | Select method for sending the body data |
| 260 | Return Data Fields List | fields_list | Yes | Enter return data fields of the Job | |
| 530 | Outbound Fields List | fields_list | Yes | Enter outbound fields of the Job | |
| 560 | Order | text | Yes | Enter order of the Job |
Inbound Job Templates (1)
One inbound template ships. It is a skeleton, and it is enabled with a placeholder endpoint.
| # | Job Description | Destination Table | API End Point | Enabled | What It Pulls |
|---|---|---|---|---|---|
| 1 | Sample Job | soap_data |
/api/endpoint |
Yes | A GET against the placeholder path /api/endpoint, writing to a staging table called soap_data. Nothing real is retrieved. It exists to be copied: set the endpoint to your service path, switch Method Type to POST, and put the operation envelope in XML Envelope Payload. |
Job Template Configuration
Settings
| Setting | Value |
|---|---|
| Order | 10 |
| Enabled | Yes |
| Job Schedule | Daily (15 1 * * *) |
| Destination Table | soap_data |
| Data Identity | |
| Allow Empty Table | Yes |
| Append Files to Same Destination Table | No |
| Append New Data to Existing Tables | No |
| Use Unparsed Data | No |
| Convert UUID-Keyed Objects to Rows | No |
| Ignore XML Attributes | No |
| Log Raw API Calls | No |
| Method Type | GET |
| API End Point | /api/endpoint |
| Body Data Sending Method | JSON Encoded Data |
NOTE: This template is the one shipped job in this set that is enabled by default. Disable or configure it before the first daily run.
Outbound Job Templates (0)
No outbound templates are shipped, and the outbound job form as configured cannot express a complete SOAP call. Treat the connector as inbound in practice.

