> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhook

> Sends secure calls to HTTP-based webhook endpoints via a single connection. You can perform secure data transmission and notifications to external services over HTTP/REST

## Overview

<AccordionGroup>
  <Accordion title="What is its Purpose?">
    <CardGroup cols={1}>
      <Card title="Centralized Connection Management" icon="settings">
        Webhook Connection makes the connection definition centralized, enabling all Integration Flow and Connector steps to call the same HTTP endpoint consistently
      </Card>

      <Card title="Reduced Configuration Errors" icon="shield">
        Reduces configuration errors during version transitions by managing HTTP method, URL, and security headers from a single point
      </Card>

      <Card title="Environment-Based Management" icon="layers">
        Separates Development/Test/Production endpoints within a single connection thanks to environment-based connection parameters
      </Card>

      <Card title="Fast Deployment" icon="zap">
        Accelerates deployment processes with automatic name check, environment deployment, and Test Connection outputs
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Working Principle">
    <CardGroup cols={2}>
      <Card title="Connection Initiation" icon="play">
        When a Webhook connection is requested from within an Integration Flow or Connector, the system reads the configured connection parameters
      </Card>

      <Card title="Connection Pool Management" icon="database">
        HTTP client reuses keep-alive supported single connections for a short time; if there is no open connection, a new TCP session is established
      </Card>

      <Card title="Authentication" icon="lock">
        Authorization, Api-Key, or similar Authentication headers defined in Header tab are automatically added to the request
      </Card>

      <Card title="Data Communication" icon="send">
        REST API call is made with selected HTTP method, payload is taken from Integration Flow step output and transmitted over TLS
      </Card>

      <Card title="Connection Management" icon="settings">
        When the request is completed, socket is closed or kept waiting for reuse within HTTP keep-alive duration
      </Card>

      <Card title="Error Management" icon="alert-circle">
        In case of connection error, timeout, or authentication error, error is notified to the user through Apinizer Message Service and written to deploymentResult logs
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Usage Areas">
    <CardGroup cols={2}>
      <Card title="Observability Platforms" icon="monitor">
        Transferring Apinizer logs to observability platforms such as Splunk, Datadog, Graylog via REST webhook
      </Card>

      <Card title="CI/CD Notifications" icon="rocket">
        Triggering Slack or Teams channel after successful deployment in CI/CD pipelines
      </Card>

      <Card title="Event Forwarding" icon="workflow">
        Forwarding events from external services to third-party webhook APIs instead of MongoDB/Redis
      </Card>

      <Card title="SaaS Integrations" icon="cloud">
        Making POST/PUT calls to external SaaS services in rapid prototypes
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

## Technical Features and Capabilities

<AccordionGroup>
  <Accordion title="Basic Features">
    <CardGroup cols={2}>
      <Card title="Dynamic HTTP Method Selection" icon="send">
        All methods in EnumHttpRequestMethod list such as GET/POST/PUT/DELETE are selected from a single dropdown.
      </Card>

      <Card title="URL and Payload Management" icon="link">
        Endpoint in [https://host/path](https://host/path) format is defined with fullUrl field and can be combined with Integration Flow parameters.
      </Card>

      <Card title="Smart Header Dictionary" icon="list">
        Auto-completion is performed thanks to predefined HTTP header name/value services, and risk of entering incorrect headers decreases.
      </Card>

      <Card title="Environment-Based Configuration" icon="code-branch">
        Ability to define separate connection parameters for each environment (Development, Test, Production).
      </Card>

      <Card title="Enable/Disable Control" icon="toggle-on">
        Activating or deactivating the Connection (enable/disable toggle). In passive state, the connection cannot be used but its configuration is preserved.
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Advanced Features">
    <CardGroup cols={2}>
      <Card title="Automatic Name Uniqueness Check" icon="tag">
        Service-based nameExist check runs when Name field is entered and conflicts are shown instantly.
      </Card>

      <Card title="Automatic Validation in Header Management" icon="check-circle">
        Headers with missing name/value are blocked during saving.
      </Card>

      <Card title="Global/Project Transfer" icon="share">
        Connection becomes available for use by all projects with Move to Global action from list view.
      </Card>

      <Card title="Connection Test Feature" icon="flask">
        Ability to validate connection parameters before saving with the "Test Connection" button.
      </Card>

      <Card title="Export/Import Feature" icon="file-export">
        Exporting Connection configuration as a ZIP file. Importing to different environments (Development, Test, Production). Version control and backup capability.
      </Card>

      <Card title="Connection Monitoring" icon="chart-line">
        Monitoring connection health, pool status, and performance metrics.
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

## Connection Parameters

<AccordionGroup>
  <Accordion title="Mandatory Parameters">
    <CardGroup cols={1}>
      <Card title="Name" icon="tag">
        **Description:** Connection name (must be unique)\
        **Example Value:** `Production_Webhook`\
        **Notes:** Should not start with space, special characters should not be used
      </Card>

      <Card title="Environment" icon="layers">
        **Description:** Published environment ID that the Connection will be linked to\
        **Example Value:** `Prod-Blue`\
        **Notes:** Environment list is populated by EnvironmentService
      </Card>

      <Card title="HTTP Method" icon="send">
        **Description:** HTTP method to use in the call\
        **Example Value:** `POST`\
        **Notes:** GET/POST/PUT/DELETE/HEAD/OPTIONS/PATCH/TRACE are supported
      </Card>

      <Card title="Full URL" icon="link">
        **Description:** Full URL of the webhook endpoint\
        **Example Value:** `https://hooks.partner.com/api/logs`\
        **Notes:** HTTPS usage is recommended, query parameters are supported
      </Card>

      <Card title="Timeout" icon="clock">
        **Description:** Request timeout duration (sec)\
        **Example Value:** `10`\
        **Notes:** Minimum 1 sec in UI, model default 2 sec
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Optional Parameters">
    <CardGroup cols={1}>
      <Card title="Description" icon="file-text">
        **Description:** Text describing Connection purpose or target system\
        **Default Value:** -\
        **Recommended Value:** Short and action-oriented description
      </Card>

      <Card title="Header List" icon="list">
        **Description:** Custom HTTP headers to send in webhook call\
        **Default Value:** (Empty list)\
        **Recommended Value:** Security headers such as Authorization: Bearer token
      </Card>

      <Card title="Enabled" icon="power">
        **Description:** Whether the Connection is active\
        **Default Value:** true\
        **Recommended Value:** false in test phase, true in Production
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

### Timeout and Connection Pool Parameters

<CardGroup cols={2}>
  <Card title="Connection Timeout" icon="clock">
    **Description:** Wait time for TCP connection establishment\
    **Default:** 2000\
    **Min:** 1000 | **Max:** 60000\
    **Unit:** milliseconds
  </Card>

  <Card title="Request Timeout" icon="hourglass">
    **Description:** Total response time of HTTP request\
    **Default:** 2000\
    **Min:** 1000 | **Max:** 60000\
    **Unit:** milliseconds
  </Card>

  <Card title="Pool Size" icon="layer-group">
    **Description:** Maximum number of connections in Connection pool\
    **Default:** 0\
    **Min:** 0 | **Max:** 0\
    **Unit:** count
  </Card>

  <Card title="Webhook Retry Delay" icon="repeat">
    **Description:** Wait between retries (can be used with manual flows)\
    **Default:** -\
    **Unit:** seconds
  </Card>
</CardGroup>

## Usage Scenarios

<CardGroup cols={2}>
  <Card title="Operation Logs" icon="file-text">
    **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
  </Card>

  <Card title="Deployment Notification" icon="rocket">
    **Situation:** Informing teams after CI/CD pipeline\
    **Solution:** POST [https://hooks.slack.com/](https://hooks.slack.com/)... + ContentType: application/json\
    **Expected Result:** Build/deployment result is shared in Slack channel
  </Card>

  <Card title="Third-Party Alarm" icon="bell">
    **Situation:** Opening ITSM ticket on threshold breaches\
    **Solution:** POST [https://api.servicenow.com/](https://api.servicenow.com/)... + API key\
    **Expected Result:** Automatic incident is created on ServiceNow
  </Card>

  <Card title="SaaS Integration" icon="cloud">
    **Situation:** Triggering CRM activity\
    **Solution:** PUT [https://crm.partner.com/events/id](https://crm.partner.com/events/id) + Bearer token\
    **Expected Result:** CRM record is updated and reconciliation flow continues
  </Card>

  <Card title="Observability Webhook" icon="monitor">
    **Situation:** Sending health-check data to Datadog Webhook API\
    **Solution:** POST [https://api.datadoghq.com/api/v1/webhooks](https://api.datadoghq.com/api/v1/webhooks)\
    **Expected Result:** Custom event opens in Datadog metrics dashboard
  </Card>

  <Card title="Audit Trail" icon="shield">
    **Situation:** Notifying archive service for each Integration Flow execution\
    **Solution:** POST [https://audit.internal/api/event](https://audit.internal/api/event) + X-Trace-Id header\
    **Expected Result:** Audit service records the call and returns response
  </Card>
</CardGroup>

## Connection Configuration

### Creating New Webhook Integration

<img src="https://mintcdn.com/apinizer/YX1NcEKlSBeHefxE/images/yonetici/baglantilar/webhook-variable-new.png?fit=max&auto=format&n=YX1NcEKlSBeHefxE&q=85&s=8115e1e0e0e0bdf8f645f904e2ba2157" alt="Image 2024 9 9 15 35 35 Pn" width="1000" className="mr-auto" data-path="images/yonetici/baglantilar/webhook-variable-new.png" />

#### Configuration Steps

<Steps>
  <Step title="Navigate to Creation Page">
    * Go to **Connection → Webhook Integration** section from the left menu.
    * Click the **\[+ Create]** button in the top right.
  </Step>

  <Step title="Enter Basic Information">
    **Enable Status (Active Status):**

    * Set active/passive status with toggle. New connections are active by default.

    **Name - Mandatory:**

    * Example: `Production_Webhook`
    * Enter a unique name, should not start with space.
    * System automatically checks. Green checkmark: available. Red cross: existing name.

    **Description:**

    * Example: "Prod log forwarding webhook"
    * Max. 1000 characters.
    * Describe the purpose of the Connection.

    <Info>
      In the action button area at the top of the page, you can use the **\[\<> Variable]** button to select dynamic values, and with global variables, you can manage connection parameters with variable-based values instead of fixed values. For detailed information, review the [Dynamic Variables](/en/concepts/core-concepts/dynamic-variables) page.
    </Info>
  </Step>

  <Step title="Environment Selection">
    * Select environment from dropdown menu: **Development**, **Test**, or **Production**.
    * Different connection parameters can be defined for each environment.
  </Step>

  <Step title="HTTP Connection Parameters">
    * Select GET/POST/PUT etc. from **HTTP Method** list.
    * Enter full endpoint starting with https\:// in **Full URL** field.
    * Use placeholders for query parameters or path variables if necessary.
  </Step>

  <Step title="Header Management">
    * Add new row with **+** in **Headers** tab.
    * **Header Name** and **Header Value** fields cannot be left empty.
    * You can select common headers from auto-completion list.
  </Step>

  <Step title="Timeout and Connection Pool Settings">
    * **Timeout** field in **Settings** tab determines maximum duration (seconds) for request completion.
    * Pool size is managed server-side, so only timeout value is changed in UI.
  </Step>

  <Step title="Security and Authentication Settings">
    * Write API keys or Bearer tokens in **Authorization** header.
    * Create Authorization: Basic ... if basic HTTP auth is required.
    * SSL/TLS protection is provided with HTTPS URLs; configure certificate connection at environment level for mutual TLS if needed.
  </Step>

  <Step title="Test Connection">
    * Click the **\[Test Connection]** button.
    * Test whether connection parameters are correct.
    * **Success:** Green confirmation message
    * **Failed:** Error details are shown
  </Step>

  <Step title="Saving">
    * Click the **\[Save and Deploy]** button in the top right.

    **Checklist:**

    * Unique name
    * Mandatory fields filled
    * Test connection successful (recommended)

    **Result:**

    * Connection is added to the list
    * Becomes available for use in Integration Flow and Connector steps
    * Becomes active according to environment

    <Check>
      Connection created successfully! You can now use it in Integration Flow and Connector steps.
    </Check>
  </Step>
</Steps>

### Deleting Connection

<CardGroup cols={2}>
  <Card title="Deletion Process" icon="trash">
    Select **Delete** from the **⋮** menu at the end of the row or click the **\[Delete]** button on the connection detail page
  </Card>

  <Card title="Deletion Tips" icon="info-circle">
    **Check Before Deleting:** It may be used in Integration Flow or Connector steps. If necessary, assign an alternative connection. Back up with **Export** before deleting
  </Card>

  <Card title="Alternative: Deactivation" icon="toggle-off">
    Use the **Disable** option instead of deleting. Connection becomes passive but is not deleted. Can be reactivated when needed
  </Card>
</CardGroup>

### Exporting/Importing Connection

<Info>
  In this step, users can export existing connections for backup, transfer to different environments, or sharing purposes, or import a previously exported connection again. This process is used to maintain data integrity in version management, transitions between test and production environments, or inter-team sharing processes.
</Info>

<AccordionGroup>
  <Accordion title="Export">
    <CardGroup cols={2}>
      <Card title="Method 1" icon="download">
        Select **⋮ → Export** from the action menu. ZIP file is automatically downloaded.
      </Card>

      <Card title="Method 2" icon="file-export">
        Click the **\[Export]** button on the connection detail page. ZIP file is downloaded.
      </Card>

      <Card title="File Format" icon="file-zipper">
        Format: `Date-connection-ConnectionName-export.zip`\
        Example: `13 Nov 2025-connection-Production_Webhook-export.zip`
      </Card>

      <Card title="ZIP Contents" icon="folder-open">
        * Connection JSON file
        * Metadata information
        * Dependency information (e.g., certificates, key store)
      </Card>

      <Card title="Usage Areas" icon="list-check">
        * Backup
        * Transfer between environments (Test → Prod)
        * Versioning
        * Team or project-based sharing
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Import">
    <CardGroup cols={2}>
      <Card title="Import Steps" icon="upload">
        * Click the **\[Import Webhook Integration]** button on the main list.
        * Select the downloaded ZIP file.
        * System checks: Is format valid? Is there a name conflict? Are dependencies present?
        * Then click the **\[Import]** button.
      </Card>

      <Card title="Import Scenarios" icon="info-circle">
        **Scenario 1: Name Conflict** → Overwrite the old connection or create with a new name.

        **Scenario 2: Missing Dependencies** → Create missing certificates or key stores first or exclude them during import.
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

### Usage Areas of Connection

<CardGroup cols={2}>
  <Card title="Creating and Activating Connection" icon="plus-circle">
    **Steps:**

    1. Create the Connection
    2. Validate the connection with **Test Connection**
    3. Save and activate with **Save and Deploy**
    4. Ensure the Connection is in **Enabled** status
  </Card>

  <Card title="Usage in Integration / Connector Steps" icon="workflow">
    Connection is selected in Connector steps that make REST requests. Example: Steps such as "Send Message", "Invoke REST API", "Log to External Endpoint". Connection selection is made from the Connection field in the configuration of these steps
  </Card>

  <Card title="Scheduled Job Usage" icon="clock">
    Connection is selected to make webhook calls at certain intervals in scheduled tasks. Business logic running with cron expression automatically uses connection parameters
  </Card>

  <Card title="Usage for Testing Purposes" icon="check-circle">
    The correctness of the connection can be checked independently of the Integration Flow with the Connection Test feature. This test is critical in the debugging process
  </Card>
</CardGroup>

## Best Practices

<AccordionGroup>
  <Accordion title="Things to Do and Best Practices">
    <CardGroup cols={2}>
      <Card title="HTTP Method Management" icon="send">
        **Bad:** Sending all calls as POST\
        **Good:** Selecting method required by target service\
        **Best:** Adjusting GET/POST/PUT/PATCH/DELETE usage for CRUD operations according to contract
      </Card>

      <Card title="URL Versioning" icon="git-branch">
        **Bad:** Manually changing fixed v1/v2 paths in URL\
        **Good:** Separating different versions by creating new connection\
        **Best:** Managing versions environment-based using parametric URL definition
      </Card>

      <Card title="Header Security" icon="shield">
        **Bad:** Sharing Authorization header as plain text\
        **Good:** Storing API keys only in relevant connection\
        **Best:** Using tokens dynamically retrieved through Secret Manager
      </Card>

      <Card title="Deployment Management" icon="rocket">
        **Bad:** Deploying untested connection to Production\
        **Good:** Copying after validating in test environment\
        **Best:** Versioning with Export/Import and storing change record
      </Card>

      <Card title="Environment Management" icon="layers">
        **Bad:** Using the same connection parameters in all environments\
        **Good:** Creating separate connections for each environment\
        **Best:** Managing all environments in a single connection using the Environment option, only changing environment when transitioning between environments
      </Card>

      <Card title="Connection Test" icon="check-circle">
        **Bad:** Saving and deploying the connection without testing\
        **Good:** Validating with Test Connection before saving\
        **Best:** Testing after every parameter change, performing full integration test in test environment before going to production
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Security Best Practices">
    <CardGroup cols={2}>
      <Card title="API Key Management" icon="key">
        Do not use API keys in the same header for both Test and Prod. Define different keys for each environment and create rotation schedule
      </Card>

      <Card title="Header Masking" icon="eye-off">
        Disable logging of sensitive header values in console outputs. Keep only anonymized information such as X-Trace-Id open
      </Card>

      <Card title="Authorization Level" icon="shield-check">
        Use IP whitelisting or HMAC signature verification at webhook endpoint. Automatically generate relevant signature header on Apinizer side
      </Card>

      <Card title="Credential Management" icon="user-check">
        Store sensitive information such as usernames and passwords using environment variables or secret manager. Do not hardcode credentials in code or configuration files. Update passwords periodically
      </Card>

      <Card title="SSL/TLS Usage" icon="shield-check">
        Always enable SSL/TLS in Production environment. Use self-signed certificates only in development environment. Track certificate expiration dates and renew them on time
      </Card>

      <Card title="Access Control" icon="lock">
        Allow only authorized users to change Connection configuration. Store connection change logs. Apply change approval process for critical connections
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Things to Avoid">
    <CardGroup cols={2}>
      <Card title="Using Fixed Token" icon="alert-triangle">
        **Why to avoid:** All environments are affected in token leakage\
        **Alternative:** Use different Authorization values environment-based
      </Card>

      <Card title="Sending Over HTTP" icon="alert-triangle">
        **Why to avoid:** Data travels in unencrypted channel\
        **Alternative:** Make URL HTTPS, provide certificate to target side if needed
      </Card>

      <Card title="Header Conflicts" icon="alert-triangle">
        **Why to avoid:** Same header sent multiple times causes error in target system\
        **Alternative:** Regularly review header table and remove unnecessary rows
      </Card>

      <Card title="Using Production Connection in Test Environment" icon="alert-triangle">
        **Why to avoid:** Test data may be written to production system, real users may be affected, security risk occurs\
        **Alternative:** Create separate connections for each environment, use environment parameter, separate connection names by adding prefix according to environment (Test\_, Prod\_)
      </Card>

      <Card title="Very Low Timeout Values" icon="alert-triangle">
        **Why to avoid:** Connection constantly times out in network delays, Integration steps fail\
        **Alternative:** Adjust timeout values according to real usage scenarios, measure network latency and determine timeouts accordingly
      </Card>

      <Card title="Not Using Connection Pool" icon="alert-triangle">
        **Why to avoid:** New connection is opened for each request, performance decreases, resource consumption increases, target system load increases\
        **Alternative:** Enable connection pool, adjust pool size according to traffic volume, set up pool monitoring
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Performance Tips">
    <CardGroup cols={2}>
      <Card title="Payload Size" icon="file">
        **Recommendation:** Keep webhook messages below 200 KB\
        **Effect:** Shorter response times and lower timeout rate
      </Card>

      <Card title="Parallel Call Management" icon="layers">
        **Recommendation:** Define concurrency limits on Integration Flow side in high-volume triggers\
        **Effect:** Target system is not overloaded, error rate decreases
      </Card>

      <Card title="Retry Strategy" icon="refresh-cw">
        **Recommendation:** Add retry policy in Flow for idempotent endpoints, log error and take manual action in non-idempotent calls\
        **Effect:** Data loss is prevented in critical operations
      </Card>

      <Card title="Connection Pool Optimization" icon="database">
        **Recommendation:** Adjust pool size according to peak traffic (recommended: concurrent request count × 1.5), set idle connection timeouts, perform pool health check\
        **Effect:** Connection opening cost decreases by 80%, response times decrease, resource usage is optimized
      </Card>

      <Card title="Timeout Values Optimization" icon="hourglass">
        **Recommendation:** Measure real network latency, adjust timeout values accordingly, avoid very low or very high timeouts\
        **Effect:** Unnecessary waits are prevented, fast fail-over is provided, user experience improves
      </Card>

      <Card title="Connection Monitoring" icon="activity">
        **Recommendation:** Monitor connection pool usage, track timeout rates, perform connection health check, set up alerting\
        **Effect:** Problems are detected proactively, performance bottlenecks are identified early, downtime decreases
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Webhook 4xx Error">
    <Warning>
      Wrong endpoint, missing header, or incorrect payload format may exist.
    </Warning>

    <Steps>
      <Step title="URL and HTTP Method">
        Verify URL and HTTP method.
      </Step>

      <Step title="Header Check">
        Check that mandatory headers are sent.
      </Step>

      <Step title="Payload Format">
        Reformat payload according to target documentation.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Test Connection Failed and Returns 5xx">
    <Warning>
      Target service may be down, TLS certificate rejected, or rate limit reached.
    </Warning>

    <Steps>
      <Step title="Service Health">
        Check target service health.
      </Step>

      <Step title="Certificate Verification">
        Verify HTTPS certificate chain.
      </Step>

      <Step title="Rate Limit">
        Review rate limit logs and add wait time.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Connection Timeout">
    <Warning>
      Network delay, target system responding slowly, or timeout value may be too low.
    </Warning>

    <Steps>
      <Step title="Network Check">
        Check network connectivity.
      </Step>

      <Step title="System Health">
        Check target system health.
      </Step>

      <Step title="Timeout Settings">
        Increase timeout values.
      </Step>

      <Step title="Log Review">
        Review connection logs.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Authentication Failed">
    <Warning>
      Wrong username/password, expired credentials, or permission problem may exist.
    </Warning>

    <Steps>
      <Step title="Credentials">
        Verify credentials.
      </Step>

      <Step title="User Status">
        Check that the user is active in the target system.
      </Step>

      <Step title="Permission Check">
        Check that necessary permissions are granted.
      </Step>

      <Step title="Certificate Check">
        Check SSL/TLS certificates.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Pool Exhausted">
    <Warning>
      Pool size may be too low, connection leak exists, or traffic may be too high.
    </Warning>

    <Steps>
      <Step title="Pool Size">
        Increase pool size.
      </Step>

      <Step title="Connection Check">
        Check that connections are properly closed.
      </Step>

      <Step title="Idle Timeout">
        Set idle connection timeouts.
      </Step>

      <Step title="Metric Monitoring">
        Monitor connection usage metrics.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Connection Test Successful But Integration Flow Gives Error">
    <Warning>
      A different connection may be selected in Integration/Connector step, the step may be misconfigured, or Flow/Job may not be redeployed.
    </Warning>

    <Steps>
      <Step title="Enable Toggle">
        Check that the Connection's enable toggle is active.
      </Step>

      <Step title="Connection Selection">
        Verify that the correct connection is selected in Integration Flow.
      </Step>

      <Step title="Connection Deploy">
        Redeploy the Connection.
      </Step>

      <Step title="Flow/Job Deploy">
        Redeploy Integration Flow or Job.
      </Step>

      <Step title="Log Check">
        Check Gateway logs.
      </Step>
    </Steps>
  </Accordion>
</AccordionGroup>

## Frequently Asked Questions (FAQ)

<AccordionGroup>
  <Accordion title="Can I use the same webhook connection for both Slack and Teams?">
    <Info>
      The same connection routes to a single URL. You need to create different connections for different platforms or make the URL parametric.
    </Info>
  </Accordion>

  <Accordion title="Why does Name field give error before saving?">
    <Info>
      If there is a connection with the same name in the list, service returns nameExist=true and does not allow saving. Update the name to be unique.
    </Info>
  </Accordion>

  <Accordion title="How many rows can I add to Header table?">
    <Info>
      There is no limit but name and value fields of each row must be filled; otherwise saving is blocked.
    </Info>
  </Accordion>

  <Accordion title="What unit does Timeout field work in?">
    <Info>
      UI takes value in seconds and backend converts this value to milliseconds and transfers it to HTTP client.
    </Info>
  </Accordion>

  <Accordion title="In which environment does Test Connection run?">
    <Info>
      It runs on Publication Worker according to the environment ID you selected and tries to reach the real endpoint.
    </Info>
  </Accordion>

  <Accordion title="Can I use the same connection in multiple Integration Flows?">
    <Check>
      Yes, the same connection can be used in multiple Integration Flow or Connector steps. This provides centralized management and guarantees configuration consistency. However, changes made to the connection will affect all usage locations, so care should be taken.
    </Check>
  </Accordion>

  <Accordion title="Is using Connection pool mandatory?">
    <Info>
      Using Connection pool is not mandatory but strongly recommended in high-traffic systems. Reusing existing connections instead of opening a new connection for each request significantly increases performance.
    </Info>
  </Accordion>

  <Accordion title="Should I create different connections for Test and Production?">
    <Check>
      Yes, it is recommended to create separate connections for each environment. Alternatively, you can manage all environments in a single connection using the environment parameter. This approach provides easier management and less error risk.
    </Check>
  </Accordion>

  <Accordion title="Test Connection is successful but not working in Integration Flow, why?">
    <Warning>
      Several reasons may exist:
    </Warning>

    1. Connection enable toggle may be passive
    2. A different connection may be selected in Integration step
    3. Connection may not be deployed
    4. Integration Flow may not have been redeployed yet
  </Accordion>
</AccordionGroup>
