# Canny

![Canny's Competitors, Revenue, Number of Employees, Funding, Acquisitions &amp; News - Owler Company Profile](https://assets.relyanceuat.xyz/images/docs/35966677425421/ext-27a7f7eca2.png)
Canny is a **feedback management platform** designed to help businesses collect, organize, and act on customer feedback to inform their product decisions and roadmaps.

To connect Canny to Relyance AI, you will need an API Key.

#### In Canny

1. Click on your profile icon on the top right corner.
2. Refer to **Settings**.
3. Then click on **API** on the menu on the left.
4. Copy your API Key to be used in Relyance.

![Screenshot](https://assets.relyanceuat.xyz/images/docs/35966677425421/35966680714125.png)

#### In the Relyance AI application

1. Login to your Relyance AI account.
2. Navigate to the **Settings** (bottom-left corner).
3. Select **Integrations**.
4. Search and locate the **Canny** integration card and click on it.
5. Click on the **Add Connection** button on the top right.
6. Provide a meaningful name for the integration and click on the **Add** button.
7. In the **Overview** section, review the **Scope and Permission**, and **Endpoint** details and click on **Continue**. For more details, see [Integration Features](/docs/introduction-to-relyance-ai/integration-features/).
8. In the **Connection** section, provide the appropriate values and click on **Continue**,
    - **Connection Name**: This property allows you to update the integration specified in Step 6. If you have multiple integrations for the same vendor, you may want to assign distinct names to each. This helps streamline filtering by **Discovery Source** across the **Inventory**, **Visual** **Maps**, **Assets**, and **Data Flow Analysis** pages.
    - **Rescan Frequency**: This property allows you to configure how often Relyance executes scans against this Vendor connection.
    - **Business Atlas Associations** (required): the business entities or products that newly discovered third parties, services and assets from this integration are attributed to. Choose at least one from the **Select Associations** dropdown — the wizard will not advance past this step without one. For more details, see [Business Atlas](/docs/other-settings/business-atlas-overview/).
9. In the **Authentication** section, provide the following information retrieved from the **In Canny** section and click on **Authenticate.**
    - **API Key**
10. Review the configuration summary from the **Completion** section and click on **Finish.**

![Screenshot](https://assets.relyanceuat.xyz/images/docs/35966677425421/35966808517261.png)

![Screenshot](https://assets.relyanceuat.xyz/images/docs/35966677425421/35966808519181.png)

![Screenshot](https://assets.relyanceuat.xyz/images/docs/35966677425421/35966808533901.png)

![Screenshot](https://assets.relyanceuat.xyz/images/docs/35966677425421/35966820021005.png)

11. Confirm the integration Status reflects **Connected.**

<!-- terraform-examples:begin (generated from the integration catalog; do not hand-edit) -->

## Manage this integration with Terraform

Connections for this integration can be managed as code with the [Relyance Terraform provider](https://registry.terraform.io/providers/Relyance/relyance/latest). Non-secret fields go in `auth.params`; secret fields go in `auth.secrets_wo`, which is write-only — never stored in Terraform state. Rotate secrets by bumping `auth.secrets_wo_version`.

```hcl
resource "relyance_integration_connection" "canny" {
  vendor = "canny"
  name   = "<your connection name>"

  auth = {
    method = "api-key"
    params = {
      data_storage_location = "us"
    }
    # Secret fields are write-only: sent to Relyance, never stored in state.
    secrets_wo = {
      api_key = var.canny_api_key
    }
    secrets_wo_version = 1
  }

  scans = { "data-inspection" = { enabled = true } }
}
```

<!-- terraform-examples:end -->
