Canny is a customer feedback management tool which captures, organizes, and analyzes product feedback in one place to help you make informed product decisions.

RudderStack supports Canny as a destination to which you can seamlessly send your event data.

Getting started

Before configuring Canny as a destination in RudderStack, verify if the source platform is supported by Canny by referring to the table below:

Connection ModeWebMobileServer
Device mode---
Cloud modeSupportedSupportedSupported
To know more about the difference between cloud mode and device mode in RudderStack, refer to the RudderStack Connection Modes guide.

Once you have confirmed that the source platform supports sending events to Canny, follow these steps:

  1. From your RudderStack dashboard, add a source. Then, from the list of destinations, select Canny.
  2. Assign a name to the destination and click on Continue.

Connection settings

To successfully configure Canny as a destination, you will need to configure the following settings:

Canny connection settings
  • API Key: Enter your API key from the Canny dashboard.
Refer to the FAQ section below for more information on getting the API Key.

Event settings

  • Mapping to trigger Canny Events for the respective Event: Enter the event name and choose the Canny event from the dropdown to be triggered when that event is called.
You can specify multiple Canny Events for one Event Name and vice versa.

Identify

You can use the identify call to create or update a user in Canny.

A sample identify call is shown below:

rudderanalytics.identify("1hKOmRA4el9Zt1WSfVJIVo4GRlm", {
"name": "Alex Keener",
"email": "alex@example.com",
"gender": "Male",
"profession": "singer-songwriter",
"companies": [{
"created": "2020-01-23T04:56:07.890Z",
"customFields": {
"field1": "value1",
},
"id": "company123",
"monthlySpend": 500.00,
"name": "company name"
}]
});

Property mappings

The following table lists the mappings between RudderStack and Canny properties:

RudderStack propertyCanny propertyPresenceData type
userId/traits.userId/traits.id/context.traits.userId/context.traits.iduserIdRequiredString
context.traits.name/traits.namenameRequiredString
context.traits.email/traits.email/properties.emailemailOptionalString
context.traits/traits (after removing email and name)customFieldsOptionalObject
originalTimestamp/timestampcreatedOptionalISO 8601 Timestamp
context.traits.avatarURL/traits.avatarURLavatarURLOptionalString
context.traits.companies/traits.companiescompaniesOptionalArray of object (in company objects id and name are the only required fields)

Track

You can create the following events using the track call:

RudderStack retrieves the user data using userId or email and uses that information to create post or vote.

A sample track call is shown below:

rudderanalytics.track("Submit", {
boardId: "62de88676bc28b44eeef25dd",
details: "Require new feature",
title: "New Feature",
eta: "10.08.2022",
priority: "High"
})

Property mappings for Create post event

The following table lists the mappings between RudderStack and Canny properties for the Create post event:

RudderStack propertyCanny propertyPresenceData typeNotes
properties.boardID/properties.boardId/properties.board.idboardIDRequiredString-
Collect from externalId or retrieve user API callauthorIDRequiredString-
properties.detailsdetailsRequiredString-
properties.titletitleRequiredString-
properties.byID/properties.byId/properties.by.idbyIDOptionalString-
properties.categoryID/properties.categoryId/properties.category.idcategoryIDOptionalString-
properties.customFieldscustomFieldsOptionalObjectEnsure that you create the custom fields in Canny dashboard to send the event successfully.
properties.etaetaRequired if etaPublic is present.StringShould be in the MM/YYYY format.
properties.etaPublicetaPublicRequired if eta is present.Boolean-
properties.imageURLsimageURLsOptionalArray of strings-

Property mappings for Create vote event

The following table lists the mappings between RudderStack and Canny properties for the Create vote event:

RudderStack propertyCanny propertyPresenceData type
properties.postId/properties.postID/properties.post.idpostIDRequiredString
Collect from externalId or retrieve user API callvoterIDRequiredString
The key name for externalId is cannyUserId.

FAQ

Where can I find the Canny API Key?

To find the Canny API Key:

  1. Log into your Canny account.
  2. Go to Settings > API & Webhooks under your profile, as shown:
Canny dashboard

How to create custom fields in the Canny dashboard?

To create custom fields in Canny Dashboard:

  1. Log into your Canny account.
  2. Under your profile, navigate to Settings > Post Fields > Create New Field.
  3. Enter the field name and click on Create.
  4. Navigate to Boards and select the desired Board from the dropdown.
  5. Select Create Post Form > Add Fields in the Fields section.
  6. Select the relevant Post Field from the dropdown.
  7. Enter details and click Save.
Canny dashboard

Contact us

For more information on the topics covered on this page, email us or start a conversation in our Slack community.