> For the complete documentation index, see [llms.txt](https://docs.notionapps.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.notionapps.com/integrations/integrations.md).

# Integrations

Canonical maker page for login and chat providers. Merges the unpublished integrations maker guide. Platform-admin entitlement policy stays in repo `docs/`. Root `/crisp-chat` and `/intercom-chat` redirect here or to the child pages.

If you only remember one sentence: add the integration with **labeled fields** → turn it on → set the Users toggle if it is a login provider → **Publish**.

## What this is / when to use it

| Provider         | Job               | Users toggle?                                |
| ---------------- | ----------------- | -------------------------------------------- |
| Email & password | Hosted login      | Primary auth on Users — no Integrations form |
| Google Login     | Google button     | Additional auth                              |
| Auth0            | Your Auth0 tenant | Additional auth                              |
| Okta             | Your Okta org     | Additional auth                              |
| Crisp            | Chat widget       | No                                           |
| Intercom         | Messenger widget  | No                                           |

When **not** to: Notion database sharing (Connect Notion). Maker login to the builder. Workflow webhooks (Automation).

## Before you start

1. Your plan or a NotionApps grant includes the provider. Integrations are **not** “paid plan = everything.” Upgrade prompts mean stop — do not use Advanced JSON to force it.
2. Users database linked for any login provider.
3. You know the public app URL and every custom domain (callbacks must list them all).
4. You will publish after saving.

## Who gets which integration

Each provider is its own capability. The most specific grant wins: **one app**, then the **account**, then the **plan default**.

Typical defaults (your workspace can differ if NotionApps granted an exception):

| Provider         | Typical default                                                                |
| ---------------- | ------------------------------------------------------------------------------ |
| Email & password | On for paid plans                                                              |
| Google Sign-In   | On for paid plans                                                              |
| Crisp / Intercom | Off until the plan includes chat, or NotionApps grants your account or one app |
| Auth0 / Okta     | Off until the plan includes SSO, or NotionApps grants your account or one app  |
| Free             | Integrations off by default                                                    |

If a provider is missing from **Add Integration** or shows an upgrade prompt, contact NotionApps support. We can grant that provider for your account or a single app without changing your Stripe plan.

See also [Plans and entitlements](https://docs.notionapps.com/plans-and-entitlements).

## Build it

Shared path for every Integrations row:

1. **Integrations → Add →** provider (or open the existing row).
2. Fill labeled fields. Leave **Advanced JSON** collapsed unless support asked you to use it.
3. Enable → Save.
4. For Auth0/Okta/Google: confirm the Users additional-auth toggle (Auth0/Okta auto-enable when Users is already linked).
5. Publish. Test in a private window on the subdomain **and** each custom domain.

### Email & password

No Integrations credentials. On **Users**, set primary auth to Email & password. Map Name + Email. Optional signup + default fields ([Sign up](https://docs.notionapps.com/users/sign-up)). End users get email, password, and Forgot password. The same email on two apps is two accounts.

### Google Login

Add Google in Integrations (or use the product-hosted Google). Enable the Users Google toggle. Callbacks are shown in the helper. Child page: [Google Login](https://docs.notionapps.com/integrations/google-login).

### Auth0

Fields: **Domain** (no `https://`), **Client ID**, **Client Secret**. Callbacks:

```
https://{your-app-host}/auth/end-user/callback/auth0
```

Register every host (subdomain + custom domains) in Auth0 Allowed Callback URLs. Do not fill Okta’s Auth server ID. Child page: [Auth0 Login](https://docs.notionapps.com/integrations/auth0-login).

### Okta

Fields: **Okta domain**, **Auth server ID** (usually `default`), **Client ID**, **Client Secret**. Callbacks:

```
https://{your-app-host}/auth/end-user/callback/okta
```

Child page: [Okta Login](https://docs.notionapps.com/integrations/okta-login).

### Crisp

Crisp → Website Settings → **Website ID** (UUID) → Integrations → Crisp → paste → enable → publish. No Users toggle. Child page: [Crisp Chat](https://docs.notionapps.com/integrations/crisp-chat).

### Intercom

Intercom → Installation → Web → **App ID** → Integrations → Intercom → paste → enable → publish. v1 does not require identity HMAC. You may run Crisp and Intercom together. Child page: [Intercom Chat](https://docs.notionapps.com/integrations/intercom-chat).

## Every control

| Control               | What it does                           |
| --------------------- | -------------------------------------- |
| Enabled               | Live after publish                     |
| Labeled credentials   | Website ID / App ID / Domain / secrets |
| Copy callback         | IdP console                            |
| Advanced JSON         | Rare extras only                       |
| Users additional auth | Shows the button                       |
| Primary auth          | OTP vs password — Users, not this list |

## What users see

Login buttons and/or a chat bubble on the **published** app. Builder and marketing chat are a different Crisp/Intercom. End users never see a provider you are not entitled to, even if an old integration row exists.

## Limits and plans

Each provider is plan-gated as its own capability. Email & password is hosted by NotionApps — no Firebase fields. Paid plans typically include Email & password and Google. Crisp, Intercom, Auth0, and Okta need their own capability or a support grant. SSO details: [Enterprise SSO](https://docs.notionapps.com/enterprise-sso). Packaging: [Plans and entitlements](https://docs.notionapps.com/plans-and-entitlements).

## Example

Client portal: Email & password + signup defaults. Staff also have Google. Crisp Website ID for in-app support. Publish once after all three are on — after support confirms Crisp is entitled if it was missing from Add Integration.

## Fix problems

| Symptom                 | What to do                                                                                      |
| ----------------------- | ----------------------------------------------------------------------------------------------- |
| Upgrade prompt          | Plan or grant. Contact support for an account or app exception.                                 |
| Auth0 wrong callback    | Add the exact host.                                                                             |
| Chat missing            | Not published, Website/App ID wrong, or chat not entitled.                                      |
| Password option missing | Email & password not entitled. Not Coming Soon when entitled. Paid plans include it by default. |

## Related

[Private apps](https://docs.notionapps.com/users/private-apps). [Auth and access](https://docs.notionapps.com/users/auth-and-access). [Plans and entitlements](https://docs.notionapps.com/plans-and-entitlements). Child pages for each provider stay as extra depth and must not contradict this page.
