For the complete documentation index, see llms.txt. This page is also available as Markdown.

Canny

Canny is a customer feedback management platform that helps product teams collect, organize, and prioritize feature requests and bug reports. It gives you a centralized place where users vote on ideas and teams track what gets built. Connecting Canny to Coupler.io lets you pull that feedback data into your analytics tools, dashboards, or AI assistants.

Why connect Canny to Coupler.io?

  • Export posts, votes, and comments to Google Sheets, Excel, or BigQuery for deeper analysis

  • Track feature request trends over time using status change history

  • Combine Canny data with CRM or product data to understand which companies drive the most feedback

  • Send feedback summaries to AI destinations like ChatGPT, Claude, or Gemini for automated synthesis

Prerequisites

  • A Canny account (any plan that provides API access)

  • Your Canny API key (found in Settings → API in your Canny workspace)

Quick start

How to connect

1

Create a new data flow in Coupler.io. Log in to Coupler.io, go to Data flows, and click New data flow. Search for Canny and select it as your source.

2

Enter your Canny API key. In your Canny workspace, go to Settings → API and copy your API key. Paste it into the API key field in Coupler.io.

3

Select an entity. Choose what data you want to pull — Posts, Votes, Users, Comments, or any of the other available entities. You can add more sources to the same data flow to combine multiple entities.

4

Choose your destination. Select where you want to send the data — Google Sheets, Excel, BigQuery, Looker Studio, or an AI destination like ChatGPT, Claude, or Gemini.

5

Run the data flow. Click Run to execute a manual sync. Once it completes successfully, your Canny data will appear in your destination.

Available entities

Entity
Description

Boards

Feature request boards that organize posts by product area or category

Categories

Custom categories used to classify and filter posts within boards

Changelog entries

Product updates and release notes published to users

Comments

User comments and replies on feature request posts

Companies

Organizations associated with user accounts

Posts

Feature requests, bug reports, and feedback submitted by users

Status changes

History of status updates applied to posts over time

Tags

Labels used to categorize and organize posts and feedback

Users

User accounts and profiles of people who submit feedback

Votes

User votes and upvotes on feature request posts

Canny data overview

Canny exposes a wide range of feedback-related data through Coupler.io. You can pull everything from raw feature requests and user votes to changelog entries and company-level feedback — giving you a full picture of your product feedback loop.

Entities

Entity
What it contains

Boards

Board names, IDs, post counts, and settings

Categories

Category names, board associations, parent categories

Changelog entries

Entry title, content, publish date, labels, and reactions

Comments

Comment text, author, post reference, timestamps, vote count

Companies

Company name, ID, monthly spend, created date, custom fields

Posts

Title, details, vote count, status, board, author, tags, score

Status changes

Post ID, old status, new status, changed by, timestamp

Tags

Tag name, ID, URL

Users

Name, email, created date, company, avatar URL, vote count

Votes

Voter ID, post ID, vote date, company association

Metrics and dimensions

Posts

Field
Type
Description

score

Metric

Canny's weighted score based on votes and recency

vote_count

Metric

Total number of upvotes on the post

comment_count

Metric

Number of comments on the post

status

Dimension

Current status (open, under review, planned, in progress, complete, closed)

board

Dimension

The board the post belongs to

category

Dimension

Category assigned to the post

tags

Dimension

Tags applied to the post

created_at

Dimension

Date the post was submitted

author

Dimension

User who submitted the post

Votes

Field
Type
Description

voter_id

Dimension

ID of the user who voted

post_id

Dimension

ID of the post that was voted on

created_at

Dimension

Date the vote was cast

company_id

Dimension

Company associated with the voter

Users

Field
Type
Description

vote_count

Metric

Number of posts this user has voted on

created_at

Dimension

Date the user account was created

company

Dimension

Company the user belongs to

email

Dimension

User's email address

Companies

Field
Type
Description

monthly_spend

Metric

Monthly spend value associated with the company

created_at

Dimension

Date the company record was created

name

Dimension

Company name

custom_fields

Dimension

Any custom fields added in Canny

Status changes

Field
Type
Description

from_status

Dimension

Previous post status

to_status

Dimension

New post status

changed_at

Dimension

Timestamp of the status change

changer

Dimension

User who made the status change

post_id

Dimension

Post that was updated

Changelog entries

Field
Type
Description

title

Dimension

Title of the changelog entry

published_at

Dimension

Date the entry was published

labels

Dimension

Labels applied (e.g., new, fixed, improved)

reaction_count

Metric

Number of reactions on the entry

Common metric combinations

  • Posts + Votes (Join on post_id): see exactly which users voted for which requests and weight them by company spend

  • Posts + Status changes (Join on post_id): track how long posts spend in each status and identify bottlenecks

  • Companies + Votes (Join on company_id): calculate total vote weight per company to prioritize enterprise feedback

  • Posts + Comments (Join on post_id): get a full conversation thread alongside request details

Use cases by role

  • Export the Posts entity to a spreadsheet and sort by vote count or score to build a prioritization backlog

  • Use Status changes to report on how quickly requests move through your pipeline

  • Join Posts with Companies to weight feature requests by customer revenue using the monthly_spend field

  • Pull Users and Votes to see which customers are most engaged and advocating for specific features

  • Export Comments to identify common pain points and language customers use to describe problems

  • Send Posts data to ChatGPT or Claude to generate a weekly feedback summary for your team

  • Use Changelog entries alongside Posts to correlate what you shipped with what was most requested

  • Append Canny data with data from your CRM in Coupler.io to create a unified view of customer health and product requests

  • Schedule a dashboard in Looker Studio fed by Canny Posts and Votes to track feedback momentum over time

Platform-specific notes

  • Canny's score field on Posts is a proprietary weighted metric — it factors in vote recency and voter influence, not just raw vote count

  • The monthly_spend field on Companies is only populated if you send that data to Canny via their API or integrations (e.g., Segment, Salesforce)

  • Custom fields on Companies and Users are returned as key-value pairs and may vary between Canny workspaces

  • Archived posts and private boards may not appear depending on your Canny plan and API key permissions

Canny common issues

Connection issues

My API key is rejected and the connection fails

Double-check that you copied the full API key from Settings → API in Canny — it's easy to accidentally include a trailing space. Also confirm that the API key belongs to an admin account, since restricted users may not have API access. If the key still doesn't work, try regenerating it in Canny and entering the new one in Coupler.io.

The data flow saves but returns no data

This usually means the entity you selected is empty in your Canny workspace. For example, if you select Tags but haven't created any tags in Canny, the result will be blank. Try switching to Posts or Votes to confirm the connection is working, then revisit the original entity.

Missing data

Some posts are missing from my export

Canny's API may not return posts from private boards if your API key doesn't have access to them. Also check whether any posts have been archived — archived posts are excluded from the default API response. If you're missing older posts, Canny's API paginates results, and very large boards may require multiple syncs to fully load.

The monthly_spend field is empty for all companies

The monthly_spend field on the Companies entity is only populated if you explicitly pass that value to Canny via their API, Segment integration, or a CRM sync. If you haven't configured that data pipeline on the Canny side, the field will be blank in every export.

Status changes are missing for some posts

Canny only logs status changes that occurred after a certain point in your account's history. If a post was created and moved through statuses before Canny began tracking that history for your plan, those earlier transitions won't appear in the Status changes entity.

Permission errors

I get a 401 or 403 error when running the data flow

A 401 error means the API key is invalid or expired. A 403 error usually means the key belongs to a user without admin permissions. In Canny, API access is typically limited to workspace admins — ask your Canny admin to generate a key or grant you the appropriate role.

Data discrepancies

Vote counts in my export don't match what I see in the Canny UI

Canny sometimes deduplicates or filters votes from the same user across multiple accounts. The number shown in the Canny dashboard may reflect this deduplication, while the raw Votes entity in Coupler.io returns individual vote records. Join the Votes entity with Users to identify duplicate voter accounts if needed.

The score field doesn't match my expected ranking order

Canny's score is a weighted metric that accounts for vote recency and voter influence — it's not a simple vote count. A post with fewer votes but more recent activity can outscore an older post with more total votes. Use vote_count directly if you want a raw ranking.

Rate limits

My data flow fails with a rate limit error

Canny's API enforces rate limits that vary by plan. If you're exporting many entities or very large boards, you may hit these limits during a single run. Try splitting your data flow into separate flows per entity, or reduce the frequency of scheduled runs. Coupler.io will surface the rate limit error in the run log so you can identify which entity triggered it.

Canny FAQ

Where do I find my Canny API key?

Go to your Canny workspace and navigate to Settings → API. Your API key is listed there. Only workspace admins can access this page — if you don't see it, ask your Canny admin for the key or to grant you admin access.

Can I connect multiple Canny workspaces to Coupler.io?

Yes. Create a separate data source connection in Coupler.io for each Canny workspace using that workspace's API key. You can then use Coupler.io's Append transformation to combine data from both workspaces — for example, merging Posts from two different product boards into one unified table.

Can I export data from private boards?

It depends on the permissions of the API key you use. If the API key belongs to an admin who has access to private boards, those posts will be included. If the board is restricted and the key owner doesn't have access, posts from that board will not appear in your export.

How is Canny's score calculated?

Canny's score field is a proprietary weighted metric. It factors in vote count, the recency of votes, and the relative influence of voters — not just raw upvotes. A newer post with recent activity can outscore an older post with more total votes. If you want an unweighted ranking, use the vote_count field instead.

Can I use Canny data with AI tools through Coupler.io?

Yes. Coupler.io supports AI destinations including ChatGPT, Claude, Gemini, Cursor, Perplexity, and OpenClaw. You can send your Canny Posts or Comments data to any of these to generate automated feedback summaries, prioritization recommendations, or release notes drafts.

How do I track how long feature requests stay in each status?

Use the Status changes entity. Each row records a status transition with a timestamp, the previous status, and the new status. Join this with the Posts entity on post_id, then calculate the time difference between consecutive status changes for each post. This gives you average time-in-status across your board.

Why does my Votes count differ from what Canny shows in the UI?

Canny may deduplicate votes from users with multiple accounts before displaying the count in the UI. The raw Votes entity returns individual vote records without that deduplication. See the Data Discrepancies section in Common Issues for more detail.

Can I combine Canny data with data from other tools in the same data flow?

Yes. Coupler.io lets you add multiple sources to a single data flow. You can join Canny Posts with data from your CRM (e.g., to enrich with customer tier) or append Canny data with feedback from another platform. Use the Join, Append, or Aggregate transformations depending on what you need.

For details on all available fields and metric combinations, see the Data Overview article. If you're running into sync errors or missing data, check Common Issues.

Last updated

Was this helpful?