Canny Destination

Send your event data from RudderStack to Canny.

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.

Connection compatibility

Destination info
  • Status: Generally Available
  • Supported sources: Android, iOS , Web, Unity, AMP , Cloud, React Native , Flutter, Cordova, Warehouse, Shopify
  • Refer to it as CANNY in the Integrations object.

Connection modes
SourceCloud modeDevice modeHybrid mode
AMPsupportednot supportednot supported
Androidsupportednot supportednot supported
Cloudsupportednot supportednot supported
Cordovasupportednot supportednot supported
Fluttersupportednot supportednot supported
iOSsupportednot supportednot supported
React Nativesupportednot supportednot supported
Shopifysupportednot supportednot supported
Unitysupportednot supportednot supported
Warehousesupportednot supportednot supported
Websupportednot supportednot supported
Supported message types
SourceIdentifyPageTrackScreenGroupAlias
Cloud mode
Supported sourcessupportednot supportedsupportednot supportednot supportednot supported

Get started

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 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.
info
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.
success
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
info
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:
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 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

Questions? Contact us by email or on Slack