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

# Connect External APIs and Webhooks to Qvista Workflows

> Pull data from REST, SOAP, and GraphQL APIs or configure real-time webhooks to feed event-driven data directly into Qvista workflows.

Qvista's API and webhook support lets you treat any web service or external platform as a live data source. Connect to a third-party REST API to pull data on a schedule, build custom webhook endpoints that receive event payloads the moment something happens in another system, and combine that data with your databases, files, and spreadsheets — all without writing backend code. Secure authentication, rate limiting, and real-time logging are built in so your integrations stay reliable as they scale.

## Connecting to External REST APIs

Use Qvista's API connector to pull data from any service that exposes a web API. Configure the endpoint URL, authentication method, request parameters, and response mapping — Qvista handles the HTTP calls, pagination, and error retries automatically.

### Supported API Protocols

* **RESTful APIs** — the most common format; configure GET or POST requests with query parameters, headers, and JSON/XML response parsing
* **SOAP APIs** — connect to legacy enterprise services using WSDL definitions and XML message formats
* **GraphQL APIs** — write queries directly in Qvista to fetch precisely the fields you need from GraphQL endpoints

### API Security Features

<CardGroup cols={2}>
  <Card title="Secure Authentication" icon="lock">
    Supports API keys, Bearer tokens, OAuth 2.0, and Basic Auth. Credentials are encrypted at rest and never exposed in the interface.
  </Card>

  <Card title="Access Controls" icon="shield-check">
    Restrict which Qvista roles and workspaces can call a given API connection, keeping sensitive integrations locked down.
  </Card>

  <Card title="API Rate Limiting" icon="gauge">
    Define per-source request limits to stay within your API provider's usage quotas and prevent unexpected overages.
  </Card>

  <Card title="Real-Time Analytics & Logging" icon="chart-line">
    Every API call is logged with response time, status code, and payload metadata so you can monitor performance and debug failures instantly.
  </Card>
</CardGroup>

## Webhooks for Real-Time Event-Driven Data

Webhooks let external systems push data into Qvista the moment an event occurs — no polling required. Qvista generates a unique webhook URL for each trigger you create. Point your external service at that URL, and every matching event instantly feeds into your connected workflows, dashboards, or data pipelines.

### What You Can Do With Webhooks

* Receive order confirmation payloads from an e-commerce platform and update a fulfillment dashboard in real time
* Capture form submission events from a marketing tool and route lead data directly to your CRM workflow
* Trigger internal notifications the moment a monitoring service detects an anomaly

### Example Webhook Trigger Payload

When an external service calls your Qvista webhook endpoint, it delivers a JSON payload like the one below. Qvista parses this automatically and maps each field to the columns you define in your workflow.

```json theme={null}
{
  "event": "new_lead_submitted",
  "timestamp": "2025-07-09T14:32:00Z",
  "source": "website_contact_form",
  "data": {
    "lead_id": "ld_9f3c21a8",
    "first_name": "Priya",
    "last_name": "Sharma",
    "email": "priya.sharma@example.com",
    "company": "Acme Corp",
    "plan_interest": "Business",
    "utm_source": "google_ads",
    "utm_campaign": "q3_growth_2025"
  }
}
```

Qvista maps `data.email`, `data.lead_id`, and any other fields you select directly into your workflow actions — such as creating a CRM record, sending a Slack notification, or appending a row to a Google Sheet.

## Setting Up an API or Webhook Source

<Steps>
  <Step title="Navigate to Data Sources">
    Go to **Data Sources** in the Qvista sidebar and click **Add New Source**.
  </Step>

  <Step title="Choose Connection Type">
    Select **REST API**, **SOAP API**, **GraphQL**, or **Webhook** depending on how your external service exposes data.
  </Step>

  <Step title="Configure the Endpoint">
    For API sources: enter the base URL, choose the HTTP method, and add any required headers or query parameters. For webhooks: Qvista generates a unique endpoint URL — copy it and paste it into your external service's outbound webhook settings.
  </Step>

  <Step title="Set Up Authentication">
    Choose your authentication type (API Key, Bearer Token, OAuth 2.0, or Basic Auth) and enter the required credentials. Qvista encrypts and stores them securely.
  </Step>

  <Step title="Map the Response Fields">
    Use Qvista's field mapper to define which keys in the API response or webhook payload correspond to your data columns. Set data types for each field to ensure consistent downstream processing.
  </Step>

  <Step title="Configure Rate Limits and Logging">
    Set a maximum request rate if your API provider enforces quotas. Enable logging to capture request and response metadata for monitoring.
  </Step>

  <Step title="Test and Activate">
    Click **Send Test Request** (for APIs) or **Await Test Event** (for webhooks) to verify the connection. Once the test passes, click **Activate** to make the source live.
  </Step>
</Steps>

<Note>
  Full **API and webhook connectivity** is available on the **Business and Enterprise plans**. On the Starter plan, you can use pre-built connectors but cannot configure custom API endpoints or webhook listeners. [View plan details →](https://qvista.io/pricing)
</Note>

## API Management and Monitoring

Qvista's API management layer gives you visibility into every integration:

* **Real-time request logs** — see each call with its timestamp, response code, and latency
* **Error alerts** — get notified immediately when an API source returns errors above a defined threshold
* **Performance analytics** — track response time trends over time to spot degradation before it affects your dashboards
* **Retry logic** — Qvista automatically retries failed requests with configurable back-off intervals

<Tip>
  Use webhook sources for any event that needs to trigger an action immediately — such as a new payment or a form submission. Use scheduled API polling for data that changes at a known cadence, like a daily report endpoint or an inventory feed.
</Tip>
