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

# Overview

> Connect Archie apps to third-party services through built-in integrations or custom ones — credentials live in your project, calls go through the GraphQL API.

Integrations connect your Archie app to external services. Archie ships built-in integrations for the most common ones — payments, email, SMS, messaging, and e-commerce — and lets you build custom integrations for anything else. All integrations are configured per project and per environment from the **Integrations** module in the left sidebar.

<Note>
  A typed TypeScript SDK for integrations is coming with the next archie-app release. This page documents the GraphQL operation surface available today.
</Note>

## How integrations work

Every built-in integration follows the same model:

1. **Pick a provider** from the catalog (Stripe, SendGrid, Twilio, Slack, Shopify) and provide credentials. Credentials are encrypted at rest with AES-256-GCM and never leave the backend.
2. **Call the integration** through the auto-generated GraphQL API. Each integration adds a namespaced set of queries and mutations (e.g. `stripe_createCustomer`, `sendgrid_sendEmail`, `twilio_sendSms`) that you can call from your frontend, custom functions, or external clients.
3. **Receive webhooks** at a generated webhook URL. Archie verifies signatures using the secret you provide and stores events you can query and react to.

Per-environment credentials let you keep test mode on development branches and live mode in production. The runtime selects the right credentials automatically based on which environment your app is running in. See [Environments](/features/backend/environments/overview) for how environment scoping works across the rest of the backend.

## Built-in integrations

<CardGroup cols={2}>
  <Card title="Stripe" icon="credit-card" href="/features/backend/integrations/stripe">
    Payment processing. Customers, payment intents, subscriptions, invoices, refunds, checkout, and the billing portal.
  </Card>

  <Card title="SendGrid" icon="envelope" href="/features/backend/integrations/sendgrid">
    Transactional and marketing email. Single sends, bulk sends, dynamic templates, contacts, and stats.
  </Card>

  <Card title="Twilio" icon="comment-sms" href="/features/backend/integrations/twilio">
    SMS, voice, and verification flows.
  </Card>

  <Card title="Slack" icon="slack" href="/features/backend/integrations/slack">
    Send notifications and interactive messages to Slack channels from your app.
  </Card>

  <Card title="Shopify" icon="shop" href="/features/backend/integrations/shopify">
    Connect your Shopify store — products, orders, and customer data.
  </Card>
</CardGroup>

## Custom integrations

If the service you need isn't in the catalog, build a custom integration. Archie generates the scaffolding (config storage, credential encryption, webhook receiver, and a typed client wrapper) and you fill in the request and response logic. See [Building custom integrations](/features/backend/integrations/building-custom).

## Webhooks

Most integrations send webhooks back to your app for asynchronous events — `payment_intent.succeeded`, `email.delivered`, `inbound_sms.received`. Archie generates the receiver route and verifies the signature. You implement the handler. See [Webhooks](/features/backend/integrations/webhooks) for the full pattern.

## FAQ

<AccordionGroup>
  <Accordion title="Do integrations cost AI credits?">
    No. Integrations consume their own provider quotas (Stripe transaction fees, SendGrid email volume, Twilio per-message fees) — Archie doesn't charge AI credits to call them.
  </Accordion>

  <Accordion title="Can I use a specific version of a provider's SDK?">
    Yes. Add the provider package to your project and call it directly using credentials available at `ctx.integrations.<name>.config`. The Archie-generated GraphQL operations cover the common cases; the SDK is there when you need something the GraphQL surface doesn't expose.
  </Accordion>

  <Accordion title="How are credentials kept safe?">
    Secrets are encrypted at rest with AES-256-GCM and decrypted only inside the backend at request time. They are never sent to the frontend or surfaced through the GraphQL API.
  </Accordion>

  <Accordion title="Can I share integration credentials across projects?">
    Not by default. Each project has its own credentials. Enterprise plans support workspace-level secrets — see [Environment variables](/features/backend/settings/environment-variables).
  </Accordion>

  <Accordion title="What happens if an integration's credentials are missing?">
    Calls to that integration return a clear error pointing at the missing configuration. Existing data and other integrations keep working.
  </Accordion>
</AccordionGroup>
