SOAP
Execute SOAP web service operations with WSDL discovery and WS-Security authentication.
SOAP Node
Call SOAP (Simple Object Access Protocol) web services with automatic WSDL parsing, operation discovery, and security support in Axellero workflows.
Features
- WSDL Import & Discovery: Automatic service and operation detection
- Operation Auto-completion: Suggestions for available SOAP operations
- WS-Security Support: Username/password tokens, digital signatures, encryption
- Envelope Generation: Automatic SOAP envelope construction with headers
- Fault Handling: SOAP fault processing and error reporting
- Authentication Methods: Basic Auth, WS-Security, custom headers
Enterprise Integration
SOAP nodes are designed for enterprise integration scenarios with legacy systems, government services, and formal web service contracts requiring strict protocol compliance.
Quick Navigation
WSDL Configuration
Import and configure SOAP service definitions
Operation Execution
Execute SOAP operations with parameter binding
Security Setup
Configure WS-Security and authentication methods
Error Handling
Handle SOAP faults and service errors
WSDL Configuration
Configure your SOAP service by importing WSDL (Web Service Definition Language) documents:
| Parameter | Type | Required | Description |
|---|---|---|---|
wsdlUrl | TEXT | Yes | URL to the WSDL document (e.g., https://api.example.com/service?wsdl) |
serviceName | TEXT | No | Specific service name if WSDL contains multiple services |
portName | TEXT | No | Specific port/endpoint name for the service |
soapVersion | ENUM | No | SOAP version (1.1 or 1.2) - auto-detected from WSDL |
timeout | INT | No | Request timeout in milliseconds (default: 60000) |
Basic WSDL Import
{
"wsdlUrl": "https://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?WSDL",
"serviceName": "CountryInfoService",
"portName": "CountryInfoServiceSoap"
}Local WSDL File
{
"wsdlUrl": "file:///path/to/service.wsdl",
"serviceName": "MyEnterpriseService",
"soapVersion": "1.2"
}Enterprise Service Configuration
{
"wsdlUrl": "https://enterprise.company.com/services/CustomerService?wsdl",
"serviceName": "CustomerManagementService",
"portName": "CustomerServiceHttpsPort",
"timeout": 120000
}Security & Authentication
Security Requirements
Enterprise SOAP services often require strict security compliance. Use HTTPS endpoints and proper authentication mechanisms for production environments.
WS-Security Username Token
Standard WS-Security username/password authentication:
{
"wsdlUrl": "https://secure-service.example.com/service?wsdl",
"security": {
"type": "wsse-username-token",
"username": "{{ctx.consts.SOAP_USERNAME}}",
"password": "{{ctx.consts.SOAP_PASSWORD}}",
"passwordType": "PasswordDigest"
}
}Basic HTTP Authentication
{
"wsdlUrl": "https://api.example.com/soap?wsdl",
"authentication": {
"type": "basic",
"username": "{{ctx.consts.SERVICE_USER}}",
"password": "{{ctx.consts.SERVICE_PASSWORD}}"
}
}Custom Security Headers
{
"wsdlUrl": "https://government.service.gov/soap?wsdl",
"headers": {
"SOAPAction": "\"urn:GetCitizenData\"",
"Authorization": "Bearer {{ctx.consts.GOV_TOKEN}}",
"X-API-Key": "{{ctx.consts.API_KEY}}"
}
}WS-Security with Certificates
{
"wsdlUrl": "https://bank.example.com/payments?wsdl",
"security": {
"type": "wsse-binary-security-token",
"certificate": "{{ctx.consts.CLIENT_CERT}}",
"privateKey": "{{ctx.consts.PRIVATE_KEY}}",
"signatureAlgorithm": "http://www.w3.org/2000/09/xmldsig#rsa-sha1"
}
}Operation Execution
Simple Data Queries
Execute SOAP operations with parameter mapping from workflow context:
Operation Configuration:
- Operation Name:
GetCountryByCode - Service: Country Information Service
Parameters:
{
"sCountryISOCode": "{{ctx.vars.countryCode}}"
}Full Request Example:
{
"operation": "GetCountryByCode",
"parameters": {
"sCountryISOCode": "US"
},
"soapAction": "http://www.oorsprong.org/websamples.countryinfo/GetCountryByCode"
}Complex Parameter Binding
Execute operations with nested objects and arrays:
Operation: CreateCustomer
{
"operation": "CreateCustomer",
"parameters": {
"customer": {
"personalInfo": {
"firstName": "{{ctx.nodes.customerForm.outputs.firstName}}",
"lastName": "{{ctx.nodes.customerForm.outputs.lastName}}",
"dateOfBirth": "{{ctx.nodes.customerForm.outputs.birthDate}}",
"socialSecurityNumber": "{{ctx.consts.SSN}}"
},
"contactInfo": {
"email": "{{ctx.nodes.customerForm.outputs.email}}",
"phone": "{{ctx.nodes.customerForm.outputs.phone}}",
"address": {
"street": "{{ctx.vars.address.street}}",
"city": "{{ctx.vars.address.city}}",
"zipCode": "{{ctx.vars.address.zip}}",
"country": "{{ctx.user.attrs.country}}"
}
},
"preferences": {
"language": "{{ctx.user.attrs.preferredLanguage}}",
"currency": "{{ctx.workspace.currency}}",
"notifications": "{{ctx.vars.emailOptIn}}"
}
},
"createdBy": "{{ctx.user.login}}",
"workspaceId": "{{ctx.workspace_id}}"
}
}Array Parameters
Handle array/list parameters in SOAP operations:
Operation: ProcessBulkOrders
{
"operation": "ProcessBulkOrders",
"parameters": {
"orders": "{{ctx.nodes.orderProcessor.outputs.orderList}}",
"processingOptions": {
"validateInventory": true,
"applyDiscounts": "{{ctx.vars.applyBulkDiscount}}",
"expediteShipping": false
},
"requestId": "{{ctx.nodes.idGenerator.outputs.requestId}}"
}
}Workflow Context Integration
📖 Reference
For context documentation, see the Workflow Context reference.
Dynamic Operation Selection
Choose operations based on workflow conditions:
{
"operation": "{{ctx.vars.operationType === 'create' ? 'CreateRecord' : 'UpdateRecord'}}",
"parameters": {
"recordData": "{{ctx.nodes.dataValidator.outputs.validatedData}}",
"recordId": "{{ctx.vars.operationType === 'update' ? ctx.vars.existingId : null}}",
"userId": "{{ctx.user.id}}",
"timestamp": "{{ctx.nodes.timer.outputs.currentTime}}"
}
}Conditional Parameters
Include parameters based on user roles or workflow state:
{
"operation": "GetUserProfile",
"parameters": {
"userId": "{{ctx.vars.targetUserId}}",
"includePrivateData": "{{ctx.user.roles.includes('admin')}}",
"includeBillingInfo": "{{ctx.user.roles.includes('billing')}}",
"workspaceFilter": "{{ctx.workspace_slug}}"
}
}Response Processing
Success Response Format
{
"soapResponse": {
"body": {
"GetCountryByCodeResponse": {
"GetCountryByCodeResult": {
"sISOCode": "US",
"sName": "United States",
"sCapitalCity": "Washington",
"sCurrencyISOCode": "USD",
"sPhoneCode": "1",
"sContinentCode": "NA"
}
}
},
"headers": {
"Content-Type": "text/xml; charset=utf-8",
"SOAPAction": "http://www.oorsprong.org/websamples.countryinfo/GetCountryByCode"
}
},
"statusCode": 200,
"success": true
}SOAP Fault Response
{
"soapFault": {
"faultcode": "soap:Client",
"faultstring": "Invalid country code provided",
"faultactor": "http://www.oorsprong.org/websamples.countryinfo",
"detail": {
"errorCode": "INVALID_COUNTRY_CODE",
"errorMessage": "The country code 'XX' is not valid",
"validFormats": ["ISO 3166-1 alpha-2", "ISO 3166-1 alpha-3"]
}
},
"statusCode": 500,
"success": false,
"error": "SOAP Fault: Invalid country code provided"
}Complex Response with Nested Data
{
"soapResponse": {
"body": {
"GetCustomerDetailsResponse": {
"customer": {
"customerId": "12345",
"personalInfo": {
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@example.com"
},
"orders": [
{
"orderId": "ORD-001",
"orderDate": "2024-01-15T10:30:00Z",
"totalAmount": 299.99,
"status": "Shipped"
}
],
"accountStatus": "Active"
}
}
}
},
"success": true
}Fault Handling
Standard SOAP Faults
Fault Types
SOAP defines standard fault types: Client (invalid request), Server (service error), MustUnderstand (required headers), and VersionMismatch (SOAP version issues).
Common Fault Patterns:
{
"operation": "GetAccountBalance",
"parameters": {
"accountId": "{{ctx.vars.accountId}}"
},
"faultHandling": {
"onClientFault": "continue",
"onServerFault": "retry",
"retryAttempts": 3,
"retryDelay": 5000
}
}Custom Error Processing
{
"operation": "TransferFunds",
"parameters": {
"fromAccount": "{{ctx.vars.fromAccount}}",
"toAccount": "{{ctx.vars.toAccount}}",
"amount": "{{ctx.vars.transferAmount}}"
},
"errorMapping": {
"INSUFFICIENT_FUNDS": {
"action": "notify_user",
"message": "Insufficient funds for transfer"
},
"ACCOUNT_LOCKED": {
"action": "redirect_to_support",
"message": "Account temporarily locked"
},
"DAILY_LIMIT_EXCEEDED": {
"action": "suggest_alternative",
"message": "Daily transfer limit exceeded"
}
}
}Editor Features
SOAP Editor Capabilities:
- WSDL-based Auto-completion: Operation names, parameters, and data types from imported WSDL
- Parameter Schema Validation: Real-time validation against WSDL parameter definitions
- Envelope Preview: Live preview of generated SOAP envelope
- Security Template: Pre-configured WS-Security and authentication templates
- Fault Analysis: Detailed SOAP fault breakdown and troubleshooting hints
For complete editor details, see Code Editing & Schema Reference.
WSDL Explorer
Service Discovery
The SOAP editor includes a WSDL explorer showing all available operations, their parameters, and return types with documentation.
Explorer Features:
- Operation Browser: Navigate through all SOAP operations and bindings
- Parameter Inspection: View parameter types, constraints, and documentation
- Sample Generation: Auto-generate sample requests from WSDL definitions
- Binding Information: View SOAP binding details and endpoint configurations
Advanced Features
Custom SOAP Headers
Add custom headers to SOAP envelopes:
{
"operation": "ProcessPayment",
"parameters": {
"paymentData": "{{ctx.nodes.paymentForm.outputs.data}}"
},
"customHeaders": {
"Authentication": {
"username": "{{ctx.consts.SERVICE_USER}}",
"timestamp": "{{ctx.nodes.timer.outputs.currentTime}}",
"signature": "{{ctx.nodes.signer.outputs.requestSignature}}"
},
"TrackingInfo": {
"sessionId": "{{ctx.vars.sessionId}}",
"userId": "{{ctx.user.id}}",
"workspaceId": "{{ctx.workspace_id}}"
}
}
}Multiple Endpoints
Handle services with multiple endpoints:
{
"wsdlUrl": "https://api.example.com/service?wsdl",
"endpoints": {
"production": "https://api.example.com/prod/service",
"staging": "https://staging.example.com/service",
"development": "https://dev.example.com/service"
},
"activeEndpoint": "{{ctx.vars.environment || 'production'}}"
}Transaction Management
Handle transactional SOAP operations:
{
"operation": "BeginTransaction",
"parameters": {
"transactionScope": "ReadCommitted",
"timeout": 300
},
"transactionHandling": {
"autoCommit": false,
"onError": "rollback",
"transactionId": "{{ctx.vars.transactionId}}"
}
}Performance Optimization
Connection Pooling
Performance
SOAP connections are automatically pooled and reused for better performance when calling the same service multiple times within a workflow.
{
"wsdlUrl": "https://api.example.com/service?wsdl",
"connectionPooling": {
"enabled": true,
"maxConnections": 10,
"connectionTimeout": 30000,
"keepAlive": true
}
}Compression & Optimization
{
"wsdlUrl": "https://api.example.com/service?wsdl",
"optimization": {
"enableCompression": true,
"compressionLevel": "gzip",
"enableHttpKeepAlive": true,
"chunkingThreshold": 8192
}
}Security Best Practices
SOAP Security Guidelines
- Use HTTPS for SOAP service communications
- Validate certificates in production environments
- Use WS-Security for sensitive operations
- Implement message-level security for high-security requirements
- Log security events without exposing sensitive data
Production Security Configuration
{
"wsdlUrl": "https://secure-api.bank.com/services?wsdl",
"security": {
"transport": {
"protocol": "https",
"certificateValidation": "strict",
"minimumTlsVersion": "1.2"
},
"message": {
"type": "wsse-username-token",
"username": "{{ctx.consts.SECURE_USERNAME}}",
"password": "{{ctx.consts.SECURE_PASSWORD}}",
"passwordType": "PasswordDigest",
"includeNonce": true,
"includeTimestamp": true
}
},
"auditLogging": {
"enabled": true,
"logLevel": "security_events",
"excludeSensitiveData": true
}
}Getting Started
- Obtain WSDL URL: Get the WSDL document URL from your service provider
- Import WSDL: Configure the SOAP node with the WSDL URL for service discovery
- Configure Authentication: Set up required security credentials and authentication
- Select Operation: Choose the SOAP operation you want to execute
- Map Parameters: Bind workflow data to operation parameters
- Handle Responses: Process successful responses and SOAP faults
- Test Integration: Validate the integration with sample data