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

# Integrations & secrets

> How Zite apps talk to third-party services, and where their credentials live.

Beyond its own database, a Zite app can call third-party services — Slack, OpenAI, Stripe, Google
Workspace, HubSpot, and more. Integrations run in your backend [workflows](/concepts/workflows),
never in the browser, so credentials stay secret.

## How integrations work

Everything your app can call falls into one of three buckets:

| What                   | How you call it                                 | Import                                  | Credential                                |
| ---------------------- | ----------------------------------------------- | --------------------------------------- | ----------------------------------------- |
| The workspace database | Typed client, permissions applied on every call | `zitejs/db`                             | None — it's the workspace itself          |
| Airtable               | Managed, generated client                       | `zitejs/integrations`                   | Managed for you                           |
| Every other service    | The real npm library, called directly           | `@slack/web-api`, `openai`, `stripe`, … | `process.env.ZITE_<SERVICE>_ACCESS_TOKEN` |

<Note>
  The database is not an "integration" you configure — it's the workspace itself, reached through the runtime.
</Note>

## Supported services

Zite supports 24 connectable third-party services:

| Category            | Services                                              |
| ------------------- | ----------------------------------------------------- |
| AI                  | OpenAI, Anthropic, Gemini                             |
| Messaging           | Slack, Microsoft Teams, Twilio, Intercom              |
| Email & marketing   | Gmail, Outlook, Mailchimp                             |
| Docs & spreadsheets | Google Sheets, Google Docs, Google Calendar, Airtable |
| Files & storage     | Google Drive, OneDrive                                |
| CRM & payments      | HubSpot, Salesforce, Stripe                           |
| Project tracking    | Linear, Notion, Trello                                |
| Maps & analytics    | Google Maps, Google Analytics                         |

## Secrets

Secrets are **never written in code**. They're provided to your workflows as environment variables:

* Connected integrations expose a token like `ZITE_SLACK_ACCESS_TOKEN` or `ZITE_OPENAI_ACCESS_TOKEN`.
* Your own secrets, added in the editor, are prefixed `ZITE_` and read as `process.env.ZITE_<KEY>`.

```typescript theme={null}
import { WebClient } from '@slack/web-api';

const slack = new WebClient(process.env.ZITE_SLACK_ACCESS_TOKEN);
```

Connecting an integration requires an OAuth sign-in, which can't be done by an agent headlessly. The agent
hands you a link (`setup_integration`) to connect the service in Zite; once connected, the token is
available to your workflows.

## Environments

The `ZITE_ENV` variable selects the environment your workflows run against:

| `ZITE_ENV`             | Runtime                             |
| ---------------------- | ----------------------------------- |
| `production` (default) | `https://workflows.zite.com`        |
| `staging`              | `https://workflows.zitestaging.com` |
| `local`                | `http://localhost:2506`             |

`process.env.ZITE_APP_URL` is always set to your app's public URL — use it for building links instead of
hardcoding a domain.

For result-set caps, execution timeouts, and payload sizes, see [Platform limits](/limits).
