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

# Destinations

{% hint style="warning" %}
**Destinations** was previously called **Connected Apps** and lived under **Settings → Connected Apps**. The page has moved to **Integrations → Destinations** and the feature is now called **Destinations** throughout groundcover. All existing integrations carry over — only the page name and location changed.
{% endhint %}

{% hint style="info" %}
This capability is only available to BYOC deployments. Check out our [pricing page](https://www.groundcover.com/pricing) for more information about subscription plans and the available deployment modes.
{% endhint %}

{% hint style="info" %}
**Admin** permissions are required to open the Destinations page and to create, edit, test, or delete Destinations. **Editors** and **Readers** cannot access the Destinations page directly, but they can see Destination references that are already attached to [Notification Routes](/use-groundcover/monitors/notification-routes.md) and monitors (e.g., when viewing or editing a route or monitor's notification settings).
{% endhint %}

<figure><img src="/files/9VdkV3tFPNJuk5ydNbTG" alt=""><figcaption></figcaption></figure>

### Supported Destination Types

| Destination Type                                                       | Description                                                                                              |
| ---------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| [**Slack App**](/integrations/connected-apps/slack-app.md)             | Send notifications to selected Slack channels via the groundcover Slack App (supports per-rule channels) |
| [**Slack Webhook**](/integrations/connected-apps/slack-webhook.md)     | Send notifications to a single Slack channel via an incoming webhook URL                                 |
| [**PagerDuty**](/integrations/connected-apps/pagerduty.md)             | Send notifications to a PagerDuty service directory using a Routing Key                                  |
| [**Incident.io**](/integrations/connected-apps/incident.io.md)         | Send notifications to incident.io using an Alert Event URL                                               |
| [**Rootly**](/integrations/connected-apps/incident.io-1.md)            | Send notifications to Rootly using a Generic Webhook with an API Key                                     |
| [**Generic Webhook**](/integrations/connected-apps/generic-webhook.md) | Send notifications to any webhook, including authentication, headers, and payload                        |
| [**OpsGenie**](/integrations/connected-apps/opsgenie-integration.md)   | Send notifications to an OpsGenie team using an Integration API Key                                      |

### Add a Destination

1. Go to **Integrations → Destinations**
2. Click the destination type you want to add
3. Fill in the required fields:
   * **Integration Name**: A friendly name for this connection (e.g., `prod-alerts-channel`)
   * **Integration Details**: The URL, Secret, Key, etc..
4. Click **Save**

{% hint style="info" %}
The [**Slack App**](/integrations/connected-apps/slack-app.md) is a special case — selecting it from the Destinations page opens the same setup wizard that lives under **Integrations → Connectors → Org Connectors → Slack**, and both entry points manage the same underlying resource. The wizard requires extra one-time setup in Slack (creating an app from a manifest, generating an App-Level Token, and OAuth authorization). See the [Slack connector guide](/use-groundcover/connectors/slack.md) for the full walkthrough.
{% endhint %}

### Managing Destinations

The Destinations page shows all your configured integrations in a table with:

* **Name**: The integration name you assigned
* **Type**: The destination type (e.g., Slack Webhook)
* **Creator**: Who set it up
* **Used By**: Notification Routes *and* Monitors that reference this destination (each reference is labeled either `notification_route` or `monitor`)
* **Created at**: When it was added

#### Edit or Delete

Hover over any row to reveal the Edit and Delete buttons.

{% hint style="warning" %}
A Destination being used by Notification Routes or Monitors cannot be deleted. Check the "Used By" column is empty (no notification routes *and* no monitors) before attempting to delete.
{% endhint %}

### For Developers

The product surface uses **Destinations**, but the platform APIs, SDKs, and Terraform provider still use the original **`connected-apps`** / **`connected_app`** naming for backward compatibility. Existing automations continue to work unchanged — no migration is required.

| Surface                  | Identifier                                                                                                                                                                                                                                         |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| REST API base path       | `/api/connected-apps/v1` (e.g., `POST /api/connected-apps/v1`, `POST /api/connected-apps/v1/list`, `GET /api/connected-apps/v1/{id}`, `PUT /api/connected-apps/v1/{id}`, `DELETE /api/connected-apps/v1/{id}`, `POST /api/connected-apps/v1/test`) |
| Response field names     | `connectedApps`, `used_by[].type` (`notification_route` / `monitor`)                                                                                                                                                                               |
| Monitor YAML field names | `notificationSettings.connectedApps`, `notificationSettings.connectedAppParams` (see [Monitor YAML structure](/use-groundcover/monitors/monitor-yaml-structure.md#notificationsettings))                                                           |
| Terraform resource       | `groundcover_connected_app` — see [groundcover Terraform Provider](/use-groundcover/groundcover-terraform-provider.md)                                                                                                                             |

The rename is a UI-only change; no API endpoint, SDK call, or Terraform resource was renamed.

### Next Steps

After setting up your destinations, create Notification Routes and Monitors to start routing issues to them.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.groundcover.com/integrations/connected-apps.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
