Webhook
Overview
What is its Purpose?
Webhook Connection makes the connection definition centralized, enabling all Integration Flow and Connector steps to call the same HTTP endpoint consistently
Reduces configuration errors during version transitions by managing HTTP method, URL, and security headers from a single point
Separates Development/Test/Production endpoints within a single connection thanks to environment-based connection parameters
Accelerates deployment processes with automatic name check, environment deployment, and Test Connection outputs
Working Principle
When a Webhook connection is requested from within an Integration Flow or Connector, the system reads the configured connection parameters
The connection pool is always on, there is no enable/disable switch; open connections are reused within the Per-Host and Total connection limits, and a new request waits for a free connection once the limit is reached
Authorization, Api-Key, or similar Authentication headers defined in Header tab are automatically added to the request
REST API call is made with selected HTTP method, payload is taken from Integration Flow step output and transmitted over TLS
When the request is completed, socket is closed or kept waiting for reuse within HTTP keep-alive duration
In case of connection error, timeout, or authentication error, error is notified to the user through Apinizer Message Service and written to deploymentResult logs
Usage Areas
Transferring Apinizer logs to observability platforms such as Splunk, Datadog, Graylog via REST webhook
Triggering Slack or Teams channel after successful deployment in CI/CD pipelines
Forwarding events from external services to third-party webhook APIs instead of MongoDB/Redis
Making POST/PUT calls to external SaaS services in rapid prototypes
Technical Features and Capabilities
Basic Features
All methods in EnumHttpRequestMethod list such as GET/POST/PUT/DELETE are selected from a single dropdown.
Endpoint in https://host/path format is defined with fullUrl field and can be combined with Integration Flow parameters.
Auto-completion is performed thanks to predefined HTTP header name/value services, and risk of entering incorrect headers decreases.
Ability to define separate connection parameters for each environment (Development, Test, Production).
Activating or deactivating the Connection (enable/disable toggle). In passive state, the connection cannot be used but its configuration is preserved.
Advanced Features
Service-based nameExist check runs when Name field is entered and conflicts are shown instantly.
Headers with missing name/value are blocked during saving.
Connection becomes available for use by all projects with Move to Global action from list view.
Ability to validate connection parameters before saving with the "Test Connection" button.
Exporting Connection configuration as a ZIP file. Importing to different environments (Development, Test, Production). Version control and backup capability.
Monitoring connection health and performance metrics.
Connection pool size can be tuned per connection, separately for a single host and for the pool as a whole.
A trust store and, if mutual TLS is required, a key store can be assigned to each connection for server certificate verification.
Multiple events can be combined into a single request and optionally gzip-compressed instead of sending one HTTP call per event.
Requests can be wrapped in the Splunk HTTP Event Collector envelope, with optional acknowledgment tracking for guaranteed delivery.
Connection Parameters
Mandatory Parameters
Description: Connection name (must be unique)
Example Value: Production_Webhook
Notes: Should not start with space, special characters should not be used
Description: Published environment ID that the Connection will be linked to
Example Value: Prod-Blue
Notes: Environment list is populated by EnvironmentService
Description: HTTP method to use in the call
Example Value: POST
Notes: GET/POST/PUT/DELETE/HEAD/OPTIONS/PATCH/TRACE are supported
Description: Full URL of the webhook endpoint
Example Value: https://hooks.partner.com/api/logs
Notes: HTTPS usage is recommended, query parameters are supported
Description: Request timeout duration (sec)
Example Value: 10
Notes: Minimum 1 sec in UI, model default 2 sec
Optional Parameters
Description: Text describing Connection purpose or target system
Default Value: -
Recommended Value: Short and action-oriented description
Description: Custom HTTP headers to send in webhook call
Default Value: (Empty list)
Recommended Value: Security headers such as Authorization: Bearer token
Description: Whether the Connection is active
Default Value: true
Recommended Value: false in test phase, true in Production
Timeout and Connection Pool Parameters
Connect, Response, Connection Request, and Socket timeouts fall back to the mandatory Timeout field above (default 2 seconds) when left empty. Write Stall Timeout is not part of this shared fallback; it has its own independent default (30 seconds).
Description: Time allowed to establish the TCP connection; field name connectTimeoutSeconds
Default: 2 (falls back to the Timeout field above when left empty)
Min: 1
Unit: seconds
Description: Time allowed to receive the full response; field name responseTimeoutSeconds
Default: 2 (falls back to the Timeout field above when left empty)
Min: 1
Unit: seconds
Description: Time allowed to obtain a connection from the pool; field name connectionRequestTimeoutSeconds
Default: 2 (falls back to the Timeout field above when left empty)
Min: 1
Unit: seconds
Description: Maximum idle time allowed between data packets on an already-open socket; field name socketTimeoutSeconds
Default: 2 (falls back to the Timeout field above when left empty)
Min: 1
Unit: seconds
Description: If sending the request body takes longer than this duration, the request is cancelled; field name writeStallTimeoutSeconds
Default: 30
Min: 1
Unit: seconds
Note: Setting it to 0 or a negative value disables this guard (unlimited block)
Description: Maximum concurrent connections the pool keeps open to a single host
Default: 24
Rule: must be at least 1
Description: Maximum concurrent connections the pool keeps open across all hosts
Default: 48
Rule: can be entered smaller than Connections Per Host — the UI does not block it; at runtime it is clamped up to the Connections Per Host value and this is logged as a WARN
The pool size fields were already used internally with fixed values; they are now exposed per connection instead of being hardcoded. Existing connections keep the same default pool sizing behavior.
Usage Scenarios
Situation: Need to transfer Gateway logs to central SIEM
Solution: POST + JSON payload + Authorization header
Expected Result: SIEM webhook receives log record at the end of each integration
Situation: Informing teams after CI/CD pipeline
Solution: POST https://hooks.slack.com/... + ContentType: application/json
Expected Result: Build/deployment result is shared in Slack channel
Situation: Opening ITSM ticket on threshold breaches
Solution: POST https://api.servicenow.com/... + API key
Expected Result: Automatic incident is created on ServiceNow
Situation: Triggering CRM activity
Solution: PUT https://crm.partner.com/events/id + Bearer token
Expected Result: CRM record is updated and reconciliation flow continues
Situation: Sending health-check data to Datadog Webhook API
Solution: POST https://api.datadoghq.com/api/v1/webhooks
Expected Result: Custom event opens in Datadog metrics dashboard
Situation: Notifying archive service for each Integration Flow execution
Solution: POST https://audit.internal/api/event + X-Trace-Id header
Expected Result: Audit service records the call and returns response
Connection Configuration
Creating New Webhook Integration