Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
62cfd7b
docs: add SEO description to ZoomInfo provider guide
mintlify[bot] Aug 13, 2026
40144db
Merge remote-tracking branch 'origin/main' into mintlify/b9f805a4
mintlify[bot] Aug 14, 2026
eea31a5
docs: add SEO descriptions to Zoho customer and provider guides
mintlify[bot] Aug 14, 2026
b510470
Merge remote-tracking branch 'origin/main' into mintlify/b9f805a4
mintlify[bot] Aug 17, 2026
a91c31e
docs: add SEO descriptions to Gong and Housecall Pro guides
mintlify[bot] Aug 17, 2026
0dc55d5
Merge remote-tracking branch 'origin/main' into mintlify/b9f805a4
mintlify[bot] Aug 18, 2026
288d408
docs: add SEO description to Square provider guide
mintlify[bot] Aug 18, 2026
f4c9672
Merge remote-tracking branch 'origin/main' into mintlify/b9f805a4
mintlify[bot] Aug 18, 2026
b6ab289
docs: add SEO description to SendGrid provider guide
mintlify[bot] Aug 18, 2026
a96e405
Merge remote-tracking branch 'origin/main' into mintlify/b9f805a4
mintlify[bot] Aug 18, 2026
3e949a3
docs: add SEO descriptions to destinations, Slack, and notifications …
mintlify[bot] Aug 18, 2026
0aaf546
Merge remote-tracking branch 'origin/main' into mintlify/b9f805a4
mintlify[bot] Aug 18, 2026
7b984f6
docs: add SEO descriptions to new warehouse and queue destinations
mintlify[bot] Aug 18, 2026
633e7e9
docs: add SEO descriptions to 5 pages missing metadata
mintlify[bot] Sep 3, 2026
8d4a7ff
Merge remote-tracking branch 'origin/main' into mintlify/b9f805a4
mintlify[bot] Sep 18, 2026
0af8c47
docs: add SEO descriptions to pages missing metadata
mintlify[bot] Sep 18, 2026
42711dd
Merge remote-tracking branch 'origin/main' into mintlify/b9f805a4
mintlify[bot] Sep 18, 2026
0822cd5
docs: add SEO description to read actions page
mintlify[bot] Sep 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,768 changes: 1,370 additions & 1,398 deletions package-lock.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
"drift-check": "tsx scripts/drift-check/index.ts"
},
"devDependencies": {
"@mintlify/scraping": "4.0.907",
"@mintlify/scraping": "4.0.1010",
"@types/node": "^20.14.10",
"axios": "^1.18.1",
"fs": "0.0.1-security",
Expand Down
1,757 changes: 715 additions & 1,042 deletions pnpm-lock.yaml

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion src/api/jwt-auth.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: "Access via JWT"
description: "Authenticate Ampersand API and UI library calls with RS256 JWTs signed by your server, using an RSA key pair registered with the Ampersand dashboard."
---

This guide explains how to generate and use JWTs for authentication, so that you can securely interact with Ampersand APIs from your frontend and your customers will only have access to their own Ampersand installations.
Expand Down Expand Up @@ -128,7 +129,7 @@ app.post('/api/generate-jwt', async (req, res) => {

<Note> This functionality is only available in `@amp-labs/react` version `2.8.7` and above.</Note>

In [AmpersandProvider](/embeddable-ui-components#credentials), instead of using the `apiKey` property, provide a `getToken` method that calls your backend to fetch a JWT token. The UI library will call it whenever it needs to generate a new token, or when the existing token expires.
In [AmpersandProvider](/embeddable-ui-components#ampersandprovider), instead of using the `apiKey` property, provide a `getToken` method that calls your backend to fetch a JWT token. The UI library will call it whenever it needs to generate a new token, or when the existing token expires.

The `getToken` method must have the following type signature:

Expand Down
7 changes: 6 additions & 1 deletion src/cli/reference.mdx
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: "CLI command reference"
description: "Ampersand CLI command reference covering global flags, authentication, project, integration, connection, and installation commands with usage examples."
---

This section provides a detailed overview of the Ampersand CLI, including the available commands, their usage, and options.

## Usage
Expand Down Expand Up @@ -34,7 +39,7 @@ This command would list integrations for the project "my-project" with debug log

## Authentication commands

These commands allow you to manage your session with the Ampersand CLI. Use these to log in to your Ampersand account before running other commands. As an alternative to logging in, you can also run commands using an API key. See [Running in CI/CD environments](/cli/overview#running-in-ci-cd-environments) for details.
These commands allow you to manage your session with the Ampersand CLI. Use these to log in to your Ampersand account before running other commands. As an alternative to logging in, you can also run commands using an API key. See [Running in CI/CD environments](/cli/overview#running-in-cicd-environments) for details.

### login

Expand Down
1 change: 1 addition & 0 deletions src/customer-guides/gong.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: Gong
description: "Set up Gong outbound webhooks to send call.created events to your Ampersand integration by creating an automation rule in Gong Admin Settings."
---

## Checklist before you start
Expand Down
23 changes: 15 additions & 8 deletions src/customer-guides/salesforce.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: "Salesforce"
description: "Set up a Salesforce org for an Ampersand integration: check API access, choose External Client App or Connected App, and grant user permissions."
---

This guide helps you set up your Salesforce org to work with an Ampersand-powered integration. The steps differ depending on whether the integration uses an **External Client App** or a **Connected App**. If you're not sure which one you're using, ask the developer who built the integration.
Expand Down Expand Up @@ -82,11 +83,13 @@ Ask the developer whether this integration uses an **External Client App** or a

Pick one way to connect, then grant the permissions below.

**Required system permissions** (enable these on the profile or permission set you configure):
### Required system permissions

The following system permissions need to be enabled the profile or permission set you configure, the sections below provides instructions on how to enable them.

- **API Enabled**
- If the integration includes real-time Subscribe Actions, also enable the [Subscribe Action permissions](#subscribe-action-permissions)
- If you want to enable quota optimization for this installation, also enable the [Quota optimization permissions](#quota-optimization-permissions)
- If the integration creates or updates custom fields, also enable the [custom field management permissions](#custom-field-management-permissions)
- For Connected Apps only, also enable one of:
- **Use Any API Client** (shown if your org has [API Access Control](https://help.salesforce.com/s/articleView?id=xcloud.security_api_access_control_about.htm&type=5) enabled)
- **Approve Uninstalled Connected Apps** (if you do not see **Use Any API Client**)
Expand All @@ -107,7 +110,7 @@ In **Setup**, search for **Profiles** in the **Quick Find** box and open it. The

![Edit profile](/images/customer-guides/SalesforceEditProfileRole.png)

3. Ensure the checkboxes for the required system permissions (listed above) are checked.
3. Ensure the checkboxes for the [required system permissions](#required-system-permissions) are checked.
4. Click **Save**.

#### 2a. Field permissions for a standard profile
Expand Down Expand Up @@ -199,7 +202,7 @@ Use a **Salesforce Integration** user when you want an API-only identity with no

<img src="/images/customer-guides/sf-api-perm-system-select.png" />

2. Ensure the required system permissions (listed at the start of this section) are selected, then click **Save**.
2. Ensure the [required system permissions](#required-system-permissions) are selected, then click **Save**.

<img src="/images/customer-guides/sf-api-permset-system.png" />

Expand Down Expand Up @@ -271,6 +274,7 @@ If the integration includes Subscribe Actions, enable these permissions.

Explicitly enable:

- **API Enabled** - allows the integration to make API calls
- **Modify Metadata Through Metadata API Functions** — configure event channels and memberships through Metadata API
- **Customize Application** — configure artifacts like Named Credentials so Ampersand can connect to event channels securely

Expand All @@ -282,11 +286,14 @@ Salesforce auto-enables these dependent permissions when you enable the ones abo

Enable these on the profile (Option A, step 1) or permission set (Option B, step 4) you configured above.

## Quota optimization permissions
## Custom field management permissions

Quota optimization also requires these additional permissions in addition to [Subscribe Action permissions](#subscribe-action-permissions).
If the integration creates or updates custom fields in your Salesforce instance, you will need to enable the following permissions:

- **Author Apex** — required to write and deploy an Apex trigger used by the optimization
- **Manage Profiles and Permission Sets** and **Assign Permission Sets** — required so the integration can create a dedicated permission set to manage field access and field-level security for a custom checkbox field
- **API Enabled** - allows the integration to make API calls
- **Modify Metadata Through Metadata API Functions** — allows the integration to call the Metadata API in order to modify custom fields
- **Customize Application** — allow the creation and update of custom fields
- **Manage Profiles and Permission Sets** - allows a new permission set to be created to give the current user permission to read from and write to the field
- **Assign Permission Sets** - allows the integration to assign the new permission set to the current user

Enable these on the profile (Option A, step 1) or permission set (Option B, step 4) you configured above.
1 change: 1 addition & 0 deletions src/customer-guides/zoho.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: "Zoho"
description: "Prepare a Zoho account to install an Ampersand integration: activate Zoho CRM, pick the right user type, and set up Zoho Mail outgoing webhooks."
---

## Checklist before installing a Zoho integration
Expand Down
48 changes: 48 additions & 0 deletions src/destinations/azureservicebus.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
title: Azure Service Bus destinations
description: "Publish Read Actions and Subscribe Actions events from Ampersand to an Azure Service Bus queue or topic as JSON messages using a connection string."
---

For more information on destinations, see the [Destinations](/destinations) page.

When new data is read from a SaaS instance via a [Read Action](/read-actions) or [Subscribe Action](/subscribe-actions), Ampersand publishes the payload as messages to your Azure Service Bus queue or topic.

## Prerequisites

Before setting up an Azure Service Bus destination, ensure that you have:
- An Azure Service Bus namespace with a queue or topic
- A connection string with `Send` permission on that queue or topic

## Data format

Ampersand publishes each read or subscribe message to your queue or topic as JSON. The full payload schema is defined in [webhook.yaml](https://github.com/amp-labs/openapi/blob/main/webhook/webhook.yaml).

## Create an Azure Service Bus destination

Go to the [Destinations page](https://dashboard.withampersand.com/projects/_/destinations) in the Ampersand Dashboard and create a new Azure Service Bus destination.

You'll need to provide:

| Field | Type | Required | Example | Description |
|-------|------|----------|---------|-------------|
| **Destination name** | string | Yes | `ampersandServiceBus` | Alias to reference in your `amp.yaml` file |
| **Name** | string | Yes | `ampersand-events` | Name of the queue or topic to publish to |
| **Connection string** | string | Yes | | Connection string with `Send` permission |

## Refer to the destination in your integration

After creating your Azure Service Bus destination, reference it in your `amp.yaml` file:

```yaml
specVersion: 1.0.0
integrations:
- name: salesforceToServiceBus
displayName: Salesforce to Azure Service Bus
provider: salesforce
read:
objects:
- objectName: account
destination: ampersandServiceBus
- objectName: contact
destination: ampersandServiceBus
```
1 change: 1 addition & 0 deletions src/destinations/bigquery.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: BigQuery destinations
description: "Stream Read Actions and Subscribe Actions data from Ampersand to a BigQuery table using a service account and a fixed id/payload schema."
---

For more information on destinations, see the [Destinations](/destinations) page.
Expand Down
3 changes: 2 additions & 1 deletion src/destinations/clickhouse.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: ClickHouse destinations
description: "Stream Read Actions and Subscribe Actions data from Ampersand to a ClickHouse table where each top-level JSON field maps to its own column."
---

For more information on destinations, see the [Destinations](/destinations) page.
Expand Down Expand Up @@ -46,7 +47,7 @@ You'll need to provide:
| **Username** | string | Yes | `default` | ClickHouse username |
| **Password** | string | Yes | | ClickHouse password |
| **Table name** | string | Yes | `ampersand_events` | Table to insert rows into |
| **Database** | string | No | `default` | Database containing the table |
| **Database** | string | Yes | `analytics` | Database containing the table |
| **Batch size** | integer | No | `1000` | Rows to buffer before flushing a batch (defaults to 1000) |
| **Max wait (seconds)** | integer | No | `30` | Max seconds to wait before flushing a batch (defaults to 30) |

Expand Down
50 changes: 0 additions & 50 deletions src/destinations/eventbridge.mdx

This file was deleted.

1 change: 1 addition & 0 deletions src/destinations/kinesis.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: Kinesis destinations
description: "Stream Read Actions and Subscribe Actions events from Ampersand to an Amazon Kinesis data stream using AWS access keys with PutRecord permission."
---

For more information on destinations, see the [Destinations](/destinations) page.
Expand Down
11 changes: 5 additions & 6 deletions src/destinations/overview.mdx
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
---
title: Overview
description: "Route data from Read and Subscribe Actions or notifications to Slack, webhooks, warehouses, blob storage, and message queue destinations in Ampersand."
---

Ampersand supports webhook, Slack, Kinesis, and S3 destinations, along with a range of data warehouse and message queue destinations (ClickHouse, Snowflake, BigQuery, Redshift, Amazon SQS, Amazon SNS, Amazon EventBridge, Google Cloud Pub/Sub, and RabbitMQ). Destinations allow you to route data synced from SaaS instances via [Read Actions](/read-actions) or [Subscribe Actions](/subscribe-actions), and to receive real-time [Notifications](/notifications) about important lifecycle events in your projects.
Ampersand supports webhook and Slack destinations, S3, a range of data warehouse destinations (ClickHouse, Snowflake, BigQuery, and Redshift), and a range of stream and queue destinations (Kinesis, Amazon SQS, Google Cloud Pub/Sub, RabbitMQ, and Azure Service Bus). Destinations allow you to route data synced from SaaS instances via [Read Actions](/read-actions) or [Subscribe Actions](/subscribe-actions), and to receive real-time [Notifications](/notifications) about important lifecycle events in your projects.

## Add a destination to the Ampersand Dashboard

Expand Down Expand Up @@ -48,19 +49,17 @@ Destinations can also be used to receive [notifications](/notifications) about i
* [BigQuery destinations](/destinations/bigquery)
* [Amazon Redshift destinations](/destinations/redshift)

### Message queues and event buses
### Streams and queues

* [Azure Service Bus destinations](/destinations/azureservicebus)
* [Amazon Kinesis destinations](/destinations/kinesis)
* [Amazon SQS destinations](/destinations/sqs)
* [Amazon SNS destinations](/destinations/sns)
* [Amazon EventBridge destinations](/destinations/eventbridge)
* [Google Cloud Pub/Sub destinations](/destinations/pubsub)
* [RabbitMQ destinations](/destinations/rabbitmq)
* [Amazon SQS destinations](/destinations/sqs)

## Other Destinations

We have more destination types on the roadmap, including:

* Postgres
* Ampersand-hosted Postgres
* Azure Service Bus
1 change: 1 addition & 0 deletions src/destinations/pubsub.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: Google Cloud Pub/Sub destinations
description: "Publish Read Actions and Subscribe Actions events from Ampersand to a Google Cloud Pub/Sub topic using a service account with publisher permissions."
---

For more information on destinations, see the [Destinations](/destinations) page.
Expand Down
14 changes: 9 additions & 5 deletions src/destinations/rabbitmq.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: RabbitMQ destinations
description: "Publish Read Actions and Subscribe Actions events from Ampersand to a RabbitMQ instance as JSON messages using a connection URI and a routing key."
---

For more information on destinations, see the [Destinations](/destinations) page.
Expand All @@ -10,12 +11,12 @@ When new data is read from a SaaS instance via a [Read Action](/read-actions) or

Before setting up a RabbitMQ destination, ensure that you have:
- A RabbitMQ instance reachable from the internet
- A connection URI with permission to publish
- A routing key that reaches a queue you can consume from
- An exchange that already exists on that instance
- A username and password with permission to publish to that exchange

## Data format

Ampersand publishes each read or subscribe message to your RabbitMQ instance as JSON, using the routing key you configure. The full payload schema is defined in [webhook.yaml](https://github.com/amp-labs/openapi/blob/main/webhook/webhook.yaml).
Ampersand publishes each read or subscribe message to your RabbitMQ exchange as JSON. The full payload schema is defined in [webhook.yaml](https://github.com/amp-labs/openapi/blob/main/webhook/webhook.yaml).

## Create a RabbitMQ destination

Expand All @@ -26,8 +27,11 @@ You'll need to provide:
| Field | Type | Required | Example | Description |
|-------|------|----------|---------|-------------|
| **Destination name** | string | Yes | `ampersandRabbitMQ` | Alias to reference in your `amp.yaml` file |
| **Connection URI** | string | Yes | `amqp://user:pass@host:5672` | AMQP connection URI (it embeds your credentials) |
| **Routing key** | string | Yes | `ampersand-events` | Routing key to publish messages with |
| **Server URL** | string | Yes | `rabbitmq.example.com:5672` | Host and port of your RabbitMQ instance |
| **Exchange** | string | Yes | `ampersand-events` | Name of an exchange that already exists |
| **TLS** | boolean | No | `false` | Whether to connect over TLS. Defaults to false (plain AMQP); set to true for managed brokers that require TLS, e.g. CloudAMQP |
| **Username** | string | Yes | `ampersand` | Username with permission to publish |
| **Password** | string | Yes | | Password for the username |

## Refer to the destination in your integration

Expand Down
Loading