Skip to main content

Canny Component

Interact with the Canny API to manage feedback boards, posts, votes, comments, and users.

Component key: canny · Changelog ↓

Description

Canny is a customer feedback management platform that helps teams collect, organize, and prioritize product feedback. This component allows you to manage feedback boards, posts, votes, comments, categories, tags, users, and companies.

API Documentation

This component was built using the Canny API Reference.

Connections

API Key

key: cannyApiKey

To authenticate with Canny, an API key is required.

Prerequisites

  • A Canny account with admin access

Setup Steps

  1. Log in to the Canny admin panel
  2. Navigate to Settings > API
  3. Copy the API Key displayed on the page

Configure the Connection

  • Enter the API Key into the connection configuration
InputNotesExample
API Key

The Canny API key. Generate one at Settings > API in the Canny admin panel.

Triggers

Webhook

Receives webhook events from Canny when configured events occur. | key: webhook

InputNotesExample
Connection

The Canny connection to use.

A Canny webhook sends notifications to the integration whenever events occur in Canny. All event types are sent automatically — there is no option to filter by event type.

How It Works

When a webhook event is received, the trigger validates the request using HMAC-SHA256 signature verification with the API key from the connection. If the signature is invalid, the request is rejected.

Configuration

Configure a webhook in the Canny admin panel:

  1. Navigate to Settings > API in Canny
  2. Under Webhooks, click Add Webhook
  3. Enter the flow's webhook URL as the Webhook URL
  4. Save the webhook configuration

Event Types

All event types are sent to the webhook. Use a branch or filter step in the flow to handle specific events.

Available Events (14)
EventDescription
post.createdOccurs when a new post is created
post.editedOccurs when a post is edited
post.deletedOccurs when a post is deleted
post.jira_issue_linkedOccurs when a Jira issue is linked to a post
post.jira_issue_unlinkedOccurs when a Jira issue is unlinked from a post
post.tag_addedOccurs when a post is tagged
post.tag_removedOccurs when a post's tag is removed
post.status_changedOccurs when a post's status is changed
comment.createdOccurs when a new comment is created
comment.editedOccurs when a comment is edited
comment.deletedOccurs when a comment is deleted
vote.createdOccurs when a user votes on a post
vote.deletedOccurs when a user unvotes on a post

Refer to the Canny webhook documentation for the complete and up-to-date list.

Returned Data

Example Payload (post.deleted)
{
"created": "2026-04-16T20:12:49.566Z",
"object": {
"author": {
"adminRole": "Owner",
"avatarURL": null,
"created": "2025-10-08T17:30:30.782Z",
"email": "admin@example.com",
"id": "553c3ef8b8cdcd1501ba9999",
"isAdmin": true,
"name": "Jane Smith",
"url": "https://yourcompany.canny.io/admin/users/jane-smith",
"userID": null
},
"board": {
"created": "2026-04-16T00:10:27.227Z",
"id": "553c3ef8b8cdcd1501ba5678",
"name": "Feature Requests",
"postCount": 4,
"url": "https://yourcompany.canny.io/admin/board/feature-requests"
},
"by": null,
"category": null,
"commentCount": 0,
"clickup": {
"linkedTasks": []
},
"created": "2026-04-16T20:12:48.417Z",
"customFields": [],
"details": "It would be great to have a dark mode option for the dashboard.",
"eta": "June 2026",
"id": "553c3ef8b8cdcd1501ba1234",
"imageURLs": [],
"idea": null,
"jira": {
"linkedIssues": [],
"linkedIssueIDs": []
},
"linear": {
"linkedIssueIDs": []
},
"mergeHistory": [],
"owner": null,
"roadmaps": [],
"score": 1,
"status": "open",
"statusChangedAt": "2026-04-16T20:12:48.417Z",
"tags": [],
"title": "Add dark mode support",
"totalMRR": 0,
"url": "https://yourcompany.canny.io/admin/board/feature-requests/p/add-dark-mode-support"
},
"objectType": "post",
"type": "post.deleted"
}

Data Sources

Select Board

Selects a board from the Canny account. | key: selectBoard | type: picklist

InputNotesExample
Connection

The Canny connection to use.

{
"result": [
{
"key": "553c3ef8b8cdcd1501ba1234",
"label": "Feature Requests"
},
{
"key": "553c3ef8b8cdcd1501ba5678",
"label": "Bug Reports"
}
]
}

Select Category

Selects a category from the Canny account. | key: selectCategory | type: picklist

InputNotesExample
Board ID

Filter results by board.

553c3ef8b8cdcd1501ba1234
Connection

The Canny connection to use.

{
"result": [
{
"key": "553c3ef8b8cdcd1501baabcd",
"label": "UI Improvements"
},
{
"key": "553c3ef8b8cdcd1501ba0000",
"label": "Performance"
}
]
}

Select Company

Selects a company from the Canny account. | key: selectCompany | type: picklist

InputNotesExample
Connection

The Canny connection to use.

{
"result": [
{
"key": "553c3ef8b8cdcd1501ba1111",
"label": "Acme Corp"
},
{
"key": "553c3ef8b8cdcd1501ba2222",
"label": "Globex Inc"
}
]
}

Select Post

Selects a post from the Canny account. | key: selectPost | type: picklist

InputNotesExample
Board ID

Filter results by board.

553c3ef8b8cdcd1501ba1234
Connection

The Canny connection to use.

{
"result": [
{
"key": "553c3ef8b8cdcd1501ba5678",
"label": "Add dark mode support"
},
{
"key": "553c3ef8b8cdcd1501ba6789",
"label": "Improve search performance"
}
]
}

Select Tag

Selects a tag from the Canny account. | key: selectTag | type: picklist

InputNotesExample
Board ID

Filter results by board.

553c3ef8b8cdcd1501ba1234
Connection

The Canny connection to use.

{
"result": [
{
"key": "553c3ef8b8cdcd1501ba4444",
"label": "bug"
},
{
"key": "553c3ef8b8cdcd1501ba5555",
"label": "enhancement"
}
]
}

Select User

Selects a user from the Canny account. | key: selectUser | type: picklist

InputNotesExample
Connection

The Canny connection to use.

{
"result": [
{
"key": "553c3ef8b8cdcd1501ba9999",
"label": "Jane Smith (jane@example.com)"
},
{
"key": "553c3ef8b8cdcd1501ba8888",
"label": "John Doe (john@example.com)"
}
]
}

Actions

Change Post Status

Changes the status of a post. | key: changePostStatus

InputNotesExample
Additional Fields

Additional fields that might not be covered by the standard inputs.

Changer ID

The admin performing the status change.

553c3ef8b8cdcd1501ba9999
Connection

The Canny connection to use.

Comment

Optional comment to attach to the status change.

We've moved this to our roadmap.
Post ID

The unique identifier of the post.

553c3ef8b8cdcd1501ba5678
Notify Voters

When true, notifies voters of the status change.

false
Status

The new status value (e.g., open, under review, planned, in progress, complete, closed).

planned

{
"data": {
"id": "553c3ef8b8cdcd1501ba1238",
"author": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2017-07-15T22:11:00.000Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"board": {
"created": "2017-07-10T11:22:00.000Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"by": {
"id": "524c3ef8b8cdcd1501ba246b",
"created": "2017-07-15T22:11:00.000Z",
"email": "test@john.test",
"isAdmin": true,
"name": "John Doe",
"url": "https://your-company.canny.io/admin/users/john-doe",
"userID": "5678"
},
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"postCount": 42,
"parentID": null,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"changeComment": {
"value": "The status has changed!",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b2.png"
]
},
"commentCount": 10,
"created": "2017-08-22T13:32:00.000Z",
"details": "Test post details",
"eta": "February 2020",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"jira": {
"linkedIssues": [
{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}
]
},
"linear": {
"linkedIssueIDs": [
"ID-123",
"ID-345"
]
},
"mergeHistory": [
{
"created": "2018-06-17T22:42:37.167Z",
"post": {
"created": "2018-06-17T22:42:00.797Z",
"details": "Awesome feature post details",
"id": "553c3ef8b8cdcd1501ba6789",
"imageURLs": [],
"title": "Another awesome feature request"
}
}
],
"score": 72,
"status": "in progress",
"statusChangedAt": "2017-08-24T23:22:00.000Z",
"tags": [
{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}
],
"title": "An awesome feature request",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/an-awesome-feature-request"
}
}

Create Category

Creates a new category in a board. | key: createCategory

InputNotesExample
Board ID

The unique identifier of the board.

553c3ef8b8cdcd1501ba1234
Name

The name of the category.

UI Improvements
Connection

The Canny connection to use.

Parent Category ID

Parent category ID for subcategories.

553c3ef8b8cdcd1501baabcd
Subscribe Admins

When true, subscribes admins to the category.

false

{
"data": {
"id": "553c3ef8b8cdcd1501baabcd"
}
}

Create Changelog Entry

Creates a new changelog entry. | key: createEntry

InputNotesExample
Additional Fields

Additional fields that might not be covered by the standard inputs.

Connection

The Canny connection to use.

Details

The entry content (markdown supported).

We've added several new features to the dashboard...
Title

The changelog entry title.

New Dashboard Features
Type

Entry type: new, improved, or fixed.

new
Notify

When true, sends an email notification for the changelog entry.

false
Published

When true, publishes the changelog entry immediately.

false

{
"data": {
"id": "553c3ef8b8cdcd1501ba8888"
}
}

Create Comment

Creates a new comment on a post. | key: createComment

InputNotesExample
Additional Fields

Additional fields that might not be covered by the standard inputs.

Author ID

The unique identifier of the comment author.

553c3ef8b8cdcd1501ba9999
Comment Text

The text content of the comment.

Great idea! We should prioritize this.
Connection

The Canny connection to use.

Image URLs

JSON array of image URLs to attach.

Internal

When true, the comment is internal-only and not visible to end users.

false
Parent Comment ID

Parent comment ID for threaded replies.

553c3ef8b8cdcd1501ba2222
Post ID

The unique identifier of the post.

553c3ef8b8cdcd1501ba5678

{
"data": {
"id": "553c3ef8b8cdcd1501ba2222"
}
}

Create or Update User

Creates a new user or updates an existing one by email. | key: createOrUpdateUser

InputNotesExample
Additional Fields

Additional fields that might not be covered by the standard inputs.

Companies

JSON array of company objects to associate with the user.

Connection

The Canny connection to use.

Custom Fields

Custom field key-value pairs as JSON.

Email

The user's email address.

jane@example.com
User ID

The unique identifier of the user.

553c3ef8b8cdcd1501ba9999
Name

The user's display name.

Jane Smith

{
"data": {
"id": "553c3ef8b8cdcd1501ba9999"
}
}

Create Post

Creates a new feedback post. | key: createPost

InputNotesExample
Additional Fields

Additional fields that might not be covered by the standard inputs.

Author ID

The unique identifier of the post author.

553c3ef8b8cdcd1501ba9999
Board ID

The unique identifier of the board.

553c3ef8b8cdcd1501ba1234
Category ID

Category to assign to the post.

553c3ef8b8cdcd1501baabcd
Connection

The Canny connection to use.

Custom Fields

Custom field key-value pairs as JSON.

Details

The content or description of the post.

It would be great to have a dark mode option for the dashboard.
ETA

Estimated delivery date in MM/YYYY format.

06/2025
ETA Public

When true, the ETA is visible to all users.

false
Image URLs

JSON array of image URLs to attach.

Title

The title of the post.

Add dark mode support

{
"data": {
"id": "553c3ef8b8cdcd1501ba5678",
"url": "https://example.canny.io/admin/board/features/p/add-dark-mode-support"
}
}

Create Tag

Creates a new tag in a board. | key: createTag

InputNotesExample
Board ID

The unique identifier of the board.

553c3ef8b8cdcd1501ba1234
Connection

The Canny connection to use.

Name

The name of the tag.

bug

{
"data": {
"id": "553c3ef8b8cdcd1501ba12bb",
"board": {
"created": "2017-08-30T13:32:01.000Z",
"id": "553c3ef8b8cdcd1501ba4400",
"name": "Feature Requests",
"postCount": 99,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"created": "2017-08-30T13:32:01.000Z",
"name": "Example Tag Name",
"postCount": 12,
"url": "https://your-company.canny.io/admin/board/feature-requests?tag=example-tag-name"
}
}

Create Vote

Creates a vote on a post. | key: createVote

InputNotesExample
Additional Fields

Additional fields that might not be covered by the standard inputs.

Connection

The Canny connection to use.

Post ID

The unique identifier of the post.

553c3ef8b8cdcd1501ba5678
Voter ID

The unique identifier of the user casting the vote.

553c3ef8b8cdcd1501ba9999

{
"data": "success"
}

Delete Category

Deletes a category. | key: deleteCategory

InputNotesExample
Category ID

The unique identifier of the category.

553c3ef8b8cdcd1501baabcd
Connection

The Canny connection to use.

{
"data": "success"
}

Delete Comment

Deletes a comment. | key: deleteComment

InputNotesExample
Comment ID

The unique identifier of the comment.

553c3ef8b8cdcd1501ba2222
Connection

The Canny connection to use.

{
"data": "success"
}

Delete Company

Deletes a company. | key: deleteCompany

InputNotesExample
Company ID

The unique identifier of the company.

553c3ef8b8cdcd1501ba1111
Connection

The Canny connection to use.

{
"data": "success"
}

Delete Post

Deletes a post. | key: deletePost

InputNotesExample
Connection

The Canny connection to use.

Post ID

The unique identifier of the post.

553c3ef8b8cdcd1501ba5678

{
"data": "success"
}

Delete User

Deletes a user. | key: deleteUser

InputNotesExample
Connection

The Canny connection to use.

User ID

The unique identifier of the user.

553c3ef8b8cdcd1501ba9999

{
"data": "success"
}

Delete Vote

Deletes a vote. | key: deleteVote

InputNotesExample
Connection

The Canny connection to use.

Vote ID

The unique identifier of the vote.

553c3ef8b8cdcd1501ba3333

{
"data": "success"
}

List Boards

Lists all boards. | key: listBoards

InputNotesExample
Connection

The Canny connection to use.

{
"data": {
"boards": [
{
"id": "553c3ef8b8cdcd1501ba1234",
"created": "2026-04-15T22:51:00.517Z",
"isPrivate": true,
"name": "Feature Requests",
"postCount": 123,
"privateComments": false,
"token": "11111111-2222-3333-4444-555555555555",
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
{
"id": "553c3ef8b8cdcd1501ba1238",
"created": "2026-04-15T22:51:00.517Z",
"isPrivate": false,
"name": "Bug Reports",
"postCount": 42,
"privateComments": true,
"token": "11111111-2222-3333-4444-555555555555",
"url": "https://your-company.canny.io/admin/board/bug-reports"
}
]
}
}

List Categories

Lists categories with optional board filter and pagination. | key: listCategories

InputNotesExample
Board ID

Filter results by board.

553c3ef8b8cdcd1501ba1234
Connection

The Canny connection to use.

Fetch All

When true, automatically fetches all pages of results using pagination.

false
Limit

Number of results to return per page.

10
Skip

The number of results to skip before returning data (0-based).

0

{
"data": {
"categories": [
{
"id": "553c3ef8b8cdcd1501ba12bb",
"board": {
"created": "2026-04-15T22:51:00.517Z",
"id": "553c3ef8b8cdcd1501ba4400",
"name": "Feature Requests",
"postCount": 99,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"created": "2026-04-15T22:51:00.517Z",
"name": "Example Category Name",
"parentID": "552c3ef8b8cdcd1501ba12bb",
"postCount": 12,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=example-category-name"
}
],
"hasMore": false
}
}

List Changelog Entries

Lists changelog entries with optional filtering. | key: listEntries

InputNotesExample
Connection

The Canny connection to use.

Sort

Sort order for changelog entries.

nonPublishedFirst
Type

Entry type: new, improved, or fixed.

new
Fetch All

When true, automatically fetches all pages of results using pagination.

false
Limit

Number of results to return per page.

10
Skip

The number of results to skip before returning data (0-based).

0

{
"data": {
"hasMore": false,
"entries": [
{
"id": "553c3ef8b8cdcd1501ba123b",
"created": "2026-04-15T22:51:00.518Z",
"labels": [
{
"id": "553c3ef8b8cdcd1501ba8761",
"created": "2026-04-15T22:51:00.518Z",
"entryCount": 4,
"name": "Feature",
"url": "https://your-company.canny.io/admin/changelog?labels=feature"
}
],
"lastSaved": "2026-04-15T22:51:00.518Z",
"markdownDetails": "# heading\n**bold**\n[link](https://canny.io)",
"plaintextDetails": "heading\nbold\nlink",
"posts": [
{
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"commentCount": 2,
"eta": "February 2026",
"id": "553c3ef8b8cdcd1501ba4444",
"imageURLs": [],
"jira": {
"linkedIssues": [
{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}
]
},
"linear": {
"linkedIssueIDs": [
"ID-123",
"ID-345"
]
},
"score": 13,
"status": "planned",
"tags": [
{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}
],
"title": "post-title",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/post-title"
}
],
"publishedAt": "2026-04-15T22:51:00.518Z",
"reactions": {
"like": 2
},
"scheduledFor": null,
"status": "published",
"title": "Entry title",
"types": [
"new",
"improved"
],
"url": "https://your-company.canny.io/changelog/entry-title"
}
]
}
}

List Comments

Lists comments with optional filtering and cursor-based pagination. | key: listComments

InputNotesExample
Author ID

Filter by or specify the post author.

553c3ef8b8cdcd1501ba9999
Board ID

Filter results by board.

553c3ef8b8cdcd1501ba1234
Company ID

Filter results by company.

553c3ef8b8cdcd1501ba1111
Connection

The Canny connection to use.

Cursor

Pagination cursor from a previous response.

next_abc123def456
Fetch All

When true, automatically fetches all pages of results using pagination.

false
Limit

Number of results to return per page.

10
Post ID

Filter results by post.

553c3ef8b8cdcd1501ba5678

{
"data": {
"cursor": "eyJhZnRlciI6eyJfaWQiOiI1NTNjM2VmOGI4Y2RjZD...",
"hasNextPage": true,
"items": [
{
"id": "553c3ef8b8cdcd1501ba1238",
"author": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2026-04-15T22:51:00.520Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"board": {
"created": "2026-04-15T22:51:00.520Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"created": "2026-04-15T22:51:00.520Z",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"internal": false,
"likeCount": 2,
"mentions": [],
"parentID": "553c3ef8b8cdcd1501ba3333",
"post": {
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"commentCount": 2,
"id": "553c3ef8b8cdcd1501ba4444",
"imageURLs": [],
"jira": {
"linkedIssues": [
{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}
]
},
"linear": {
"linkedIssueIDs": [
"ID-123",
"ID-345"
]
},
"score": 13,
"status": "planned",
"tags": [
{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}
],
"title": "post-title",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/post-title"
},
"private": false,
"reactions": {
"like": 2
},
"status": null,
"value": "Some cool comment"
}
]
}
}

List Companies

Lists companies with cursor-based pagination. | key: listCompanies

InputNotesExample
Search

Search term to filter companies.

Acme
Connection

The Canny connection to use.

Cursor

Pagination cursor from a previous response.

next_abc123def456
Fetch All

When true, automatically fetches all pages of results using pagination.

false
Limit

Number of results to return per page.

10
Segment

Filter by segment.

enterprise

{
"data": {
"hasNextPage": true,
"cursor": "NTUzYzNlZjhiOGNkY2QxNTAxYmExMjNhXzIwMjUtMDItMDRUMTY6NDA6MDcuNTQxWl8x",
"companies": [
{
"id": "company1",
"created": "2022-06-17T12:44:38.797Z",
"customFields": {
"number": 1,
"bool": true,
"string": "test"
},
"domain": "example.com",
"memberCount": 5,
"monthlySpend": 100.23,
"name": "company 1"
}
]
}
}

List Posts

Lists posts with optional filtering and pagination. | key: listPosts

InputNotesExample
Author ID

Filter by or specify the post author.

553c3ef8b8cdcd1501ba9999
Board ID

Filter results by board.

553c3ef8b8cdcd1501ba1234
Company ID

Filter results by company.

553c3ef8b8cdcd1501ba1111
Connection

The Canny connection to use.

Fetch All

When true, automatically fetches all pages of results using pagination.

false
Limit

Number of results to return per page.

10
Search

Search term to filter posts.

dark mode
Skip

The number of results to skip before returning data (0-based).

0
Sort

Sort order for post results.

newest
Status

Comma-separated list of statuses to filter by.

open,planned
Tag IDs

JSON array of tag IDs to filter by.

{
"data": {
"hasMore": true,
"posts": [
{
"id": "553c3ef8b8cdcd1501ba1238",
"author": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2026-04-16T01:07:22.189Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"board": {
"created": "2026-04-16T01:07:22.189Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"by": {
"id": "524c3ef8b8cdcd1501ba246b",
"created": "2026-04-16T01:07:22.189Z",
"email": "test@john.test",
"isAdmin": true,
"name": "John Doe",
"url": "https://your-company.canny.io/admin/users/john-doe",
"userID": "5678"
},
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"parentID": null,
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"clickup": {
"linkedTasks": [
{
"id": "123",
"linkID": "2334jdsai23234io22",
"name": "Clickup issue",
"postID": "553c3ef8b8cdcd1501ba1238",
"status": "to do",
"url": "https://app.clickup.com/t/123456"
}
]
},
"commentCount": 10,
"created": "2026-04-16T01:07:22.189Z",
"customFields": [
{
"id": "553c3ef8b8cdcd1501ba2238",
"name": "priority",
"value": "high"
}
],
"details": "Test post details",
"eta": "February 2020",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"jira": {
"linkedIssues": [
{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}
]
},
"linear": {
"linkedIssueIDs": [
"ID-123",
"ID-345"
]
},
"mergeHistory": [
{
"created": "2026-04-16T01:07:22.189Z",
"post": {
"created": "2026-04-16T01:07:22.189Z",
"details": "Awesome feature post details",
"id": "553c3ef8b8cdcd1501ba6789",
"imageURLs": [],
"title": "Another awesome feature request"
}
}
],
"owner": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2026-04-16T01:07:22.189Z",
"email": "test@test.test",
"isAdmin": true,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"score": 72,
"status": "in progress",
"statusChangedAt": "2026-04-16T01:07:22.189Z",
"tags": [
{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}
],
"title": "An awesome feature request",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/post-title"
}
]
}
}

List Status Changes

Lists post status changes with optional filtering and cursor-based pagination. | key: listStatusChanges

InputNotesExample
Board ID

Filter results by board.

553c3ef8b8cdcd1501ba1234
Connection

The Canny connection to use.

Cursor

Pagination cursor from a previous response.

next_abc123def456
Fetch All

When true, automatically fetches all pages of results using pagination.

false
Limit

Number of results to return per page.

10

{
"data": {
"cursor": "eyJhZnRlciI6eyJfaWQiOiI1NTNjM2VmOGI4Y2RjZD...",
"hasNextPage": false,
"items": [
{
"changeComment": {
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"value": "The status has changed!"
},
"changer": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2026-04-16T01:07:22.191Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"created": "2026-04-16T01:07:22.191Z",
"id": "553c3ef8b8cdcd1501ba12bb",
"post": {
"category": {
"created": "2026-04-16T01:07:22.191Z",
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"parentID": null,
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"commentCount": 10,
"details": "Test post details",
"id": "553c3ef8b8cdcd1501ba1238",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"jira": {
"linkedIssues": [
{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}
],
"linkedIssueIDs": [
"123"
]
},
"linear": {
"linkedIssueIDs": [
"ID-123",
"ID-345"
]
},
"score": 72,
"status": "in progress",
"tags": [
{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}
],
"title": "An awesome feature request",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/an-awesome-feature-request"
},
"status": "in progress"
}
]
}
}

List Tags

Lists tags with optional board filter and pagination. | key: listTags

InputNotesExample
Board ID

Filter results by board.

553c3ef8b8cdcd1501ba1234
Connection

The Canny connection to use.

Fetch All

When true, automatically fetches all pages of results using pagination.

false
Limit

Number of results to return per page.

10
Skip

The number of results to skip before returning data (0-based).

0

{
"data": {
"hasMore": false,
"tags": [
{
"id": "553c3ef8b8cdcd1501ba12bb",
"board": {
"created": "2017-08-30T13:32:01.000Z",
"id": "553c3ef8b8cdcd1501ba4400",
"name": "Feature Requests",
"postCount": 99,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"created": "2017-08-30T13:32:01.000Z",
"name": "Example Tag Name",
"postCount": 12,
"url": "https://your-company.canny.io/admin/board/feature-requests?tag=example-tag-name"
}
]
}
}

List Users

Lists users with cursor-based pagination. | key: listUsers

InputNotesExample
Connection

The Canny connection to use.

Cursor

Pagination cursor from a previous response.

next_abc123def456
Fetch All

When true, automatically fetches all pages of results using pagination.

false
Limit

Number of results to return per page.

10

{
"data": {
"hasNextPage": true,
"cursor": "NTUzYzNlZjhiOGNkY2QxNTAxYmExMjNhXzIwMjUtMDItMDRUMTY6NDA6MDcuNTQxWl8x",
"users": [
{
"id": "553c3ef8b8cdcd1501ba123a",
"alias": "Green Fish",
"avatarURL": "https://canny.io/images/a3db0133d1e7d9122832b67b2c4caaaa.jpg",
"created": "2026-04-16T01:07:21.973Z",
"customFields": {
"field1": "value1",
"field2": "value2"
},
"email": "test@test.test",
"isAdmin": false,
"lastActivity": "2026-04-16T01:07:21.973Z",
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
}
]
}
}

List Votes

Lists votes with optional filtering and cursor-based pagination (v2). | key: listVotes

InputNotesExample
Board ID

Filter results by board.

553c3ef8b8cdcd1501ba1234
Company ID

Filter results by company.

553c3ef8b8cdcd1501ba1111
Connection

The Canny connection to use.

Cursor

Pagination cursor from a previous response.

next_abc123def456
Fetch All

When true, automatically fetches all pages of results using pagination.

false
Limit

Number of results to return per page.

10
Post ID

Filter results by post.

553c3ef8b8cdcd1501ba5678
User ID

Filter results by user.

553c3ef8b8cdcd1501ba9999

{
"data": {
"cursor": "eyJhZnRlciI6eyJfaWQiOiI1NTNjM2VmOGI4Y2RjZD...",
"hasNextPage": true,
"items": [
{
"id": "553c3ef8b8cdcd1501ba123b",
"board": {
"created": "2026-04-16T01:07:22.193Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"by": null,
"created": "2026-04-16T01:07:22.193Z",
"post": {
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"commentCount": 2,
"id": "553c3ef8b8cdcd1501ba4444",
"imageURLs": [],
"jira": {
"linkedIssues": [
{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}
]
},
"linear": {
"linkedIssueIDs": [
"ID-123",
"ID-345"
]
},
"score": 13,
"status": "planned",
"tags": [
{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}
],
"title": "post-title",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/post-title"
},
"voter": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2026-04-16T01:07:22.193Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"votePriority": "No priority",
"zendeskTicket": {
"id": "2",
"created": "2018-12-14T19:20:25Z",
"subject": "Ticket subject",
"description": "Ticket description",
"url": "https://your-company.zendesk.com/api/v2/tickets/2.json"
}
}
]
}
}

Raw Request

Sends a raw HTTP request to the Canny API. The API key is injected automatically into the request body. | key: rawRequest

InputNotesExample
Connection

The Canny connection to use.

Data

The HTTP body payload to send to the URL.

{"exampleKey": "Example Data"}
File Data

File Data to be sent as a multipart form upload.

[{key: "example.txt", value: "My File Contents"}]
File Data File Names

File names to apply to the file data inputs. Keys must match the file data keys above.

Form Data

The Form Data to be sent as a multipart form upload.

[{"key": "Example Key", "value": new Buffer("Hello World")}]
Header

A list of headers to send with the request.

User-Agent: curl/7.64.1
Max Retry Count

The maximum number of retries to attempt. Specify 0 for no retries.

0
Method

The HTTP method to use.

Query Parameter

A list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1&key2=value2.

Response Type

The type of data you expect in the response. You can request json, text, or binary data.

json
Retry On All Errors

If true, retries on all erroneous responses regardless of type. This is helpful when retrying after HTTP 429 or other 3xx or 4xx errors. Otherwise, only retries on HTTP 5xx and network errors.

false
Retry Delay (ms)

The delay in milliseconds between retries. This is used when 'Use Exponential Backoff' is disabled.

0
Timeout

The maximum time that a client will await a response to its request

2000
URL

Input the path only (e.g., /v1/posts/list). The base URL is already included (https://canny.io/api). For example, to connect to https://canny.io/api/v1/posts/list, only /v1/posts/list is entered in this field.

/v1/posts/list
Use Exponential Backoff

Specifies whether to use a pre-defined exponential backoff strategy for retries. When enabled, 'Retry Delay (ms)' is ignored.

false

Retrieve Board

Retrieves a single board by ID. | key: retrieveBoard

InputNotesExample
Connection

The Canny connection to use.

Board ID

The unique identifier of the board.

553c3ef8b8cdcd1501ba1234

{
"data": {
"id": "553c3ef8b8cdcd1501ba1234",
"created": "2017-07-15T22:11:00.000Z",
"isPrivate": true,
"name": "Feature Requests",
"postCount": 123,
"privateComments": false,
"url": "https://your-company.canny.io/admin/board/feature-requests"
}
}

Retrieve Category

Retrieves a single category by ID. | key: retrieveCategory

InputNotesExample
Category ID

The unique identifier of the category.

553c3ef8b8cdcd1501baabcd
Connection

The Canny connection to use.

{
"data": {
"id": "553c3ef8b8cdcd1501ba12bb",
"board": {
"created": "2026-04-15T22:51:00.517Z",
"id": "553c3ef8b8cdcd1501ba4400",
"name": "Feature Requests",
"postCount": 99,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"created": "2026-04-15T22:51:00.517Z",
"name": "Example Category Name",
"parentID": "552c3ef8b8cdcd1501ba12bb",
"postCount": 12,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=example-category-name"
}
}

Retrieve Comment

Retrieves a single comment by ID. | key: retrieveComment

InputNotesExample
Comment ID

The unique identifier of the comment.

553c3ef8b8cdcd1501ba2222
Connection

The Canny connection to use.

{
"data": {
"id": "553c3ef8b8cdcd1501ba1238",
"author": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2026-04-15T22:51:00.519Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"board": {
"created": "2026-04-15T22:51:00.519Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"created": "2026-04-15T22:51:00.519Z",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"internal": false,
"likeCount": 2,
"mentions": [],
"parentID": "553c3ef8b8cdcd1501ba3333",
"post": {
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"commentCount": 2,
"eta": "February 2026",
"id": "553c3ef8b8cdcd1501ba4444",
"imageURLs": [],
"jira": {
"linkedIssues": [
{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}
]
},
"linear": {
"linkedIssueIDs": [
"ID-123",
"ID-345"
]
},
"score": 13,
"status": "planned",
"tags": [
{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}
],
"title": "post-title",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/post-title"
},
"private": false,
"reactions": {
"like": 2
},
"value": "Some cool comment"
}
}

Retrieve Post

Retrieves a single post by ID. | key: retrievePost

InputNotesExample
Connection

The Canny connection to use.

Post ID

The unique identifier of the post.

553c3ef8b8cdcd1501ba5678

{
"data": {
"id": "553c3ef8b8cdcd1501ba1238",
"author": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2026-04-16T01:07:22.189Z",
"email": "test@test.test",
"isAdmin": true,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"board": {
"created": "2026-04-16T01:07:22.189Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"by": {
"id": "524c3ef8b8cdcd1501ba246b",
"created": "2026-04-16T01:07:22.189Z",
"email": "test@john.test",
"isAdmin": true,
"name": "John Doe",
"url": "https://your-company.canny.io/admin/users/john-doe",
"userID": "5678"
},
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"parentID": null,
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"changeComment": {
"value": "The status has changed!",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b2.png"
]
},
"clickup": {
"linkedTasks": [
{
"id": "123",
"linkID": "2334jdsai23234io22",
"name": "Clickup issue",
"postID": "553c3ef8b8cdcd1501ba1238",
"status": "to do",
"url": "https://app.clickup.com/t/123456"
}
]
},
"commentCount": 10,
"created": "2026-04-16T01:07:22.189Z",
"customFields": [
{
"id": "553c3ef8b8cdcd1501ba2238",
"name": "priority",
"value": "high"
}
],
"details": "Test post details",
"eta": "February 2020",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"jira": {
"linkedIssues": [
{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}
]
},
"linear": {
"linkedIssueIDs": [
"ID-123",
"ID-345"
]
},
"mergeHistory": [
{
"created": "2026-04-16T01:07:22.189Z",
"post": {
"created": "2026-04-16T01:07:22.189Z",
"details": "Awesome feature post details",
"id": "553c3ef8b8cdcd1501ba6789",
"imageURLs": [],
"title": "Another awesome feature request"
}
}
],
"owner": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2026-04-16T01:07:22.189Z",
"email": "test@test.test",
"isAdmin": true,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"score": 72,
"status": "in progress",
"statusChangedAt": "2026-04-16T01:07:22.189Z",
"tags": [
{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}
],
"title": "An awesome feature request",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/an-awesome-feature-request"
}
}

Retrieve Tag

Retrieves a single tag by ID. | key: retrieveTag

InputNotesExample
Connection

The Canny connection to use.

Tag ID

The unique identifier of the tag.

553c3ef8b8cdcd1501ba4444

{
"data": {
"id": "553c3ef8b8cdcd1501ba12bb",
"board": {
"created": "2017-08-30T13:32:01.000Z",
"id": "553c3ef8b8cdcd1501ba4400",
"name": "Feature Requests",
"postCount": 99,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"created": "2017-08-30T13:32:01.000Z",
"name": "Example Tag Name",
"postCount": 12,
"url": "https://your-company.canny.io/admin/board/feature-requests?tag=example-tag-name"
}
}

Retrieve User

Retrieves a single user by ID. | key: retrieveUser

InputNotesExample
Connection

The Canny connection to use.

User ID

The unique identifier of the user.

553c3ef8b8cdcd1501ba9999

{
"data": {
"id": "553c3ef8b8cdcd1501ba123a",
"alias": "Green Fish",
"avatarURL": "https://canny.io/images/a3db0133d1e7d9122832b67b2c4caaaa.jpg",
"created": "2026-04-16T01:07:22.192Z",
"customFields": {
"field1": "value1",
"field2": "value2"
},
"email": "test@test.test",
"isAdmin": false,
"lastActivity": "2026-04-16T01:07:22.192Z",
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
}
}

Retrieve Vote

Retrieves a single vote by ID. | key: retrieveVote

InputNotesExample
Connection

The Canny connection to use.

Vote ID

The unique identifier of the vote.

553c3ef8b8cdcd1501ba3333

{
"data": {
"id": "553c3ef8b8cdcd1501ba123b",
"board": {
"created": "2017-08-30T13:32:01.000Z",
"id": "553c3ef8b8cdcd1501ba4400",
"name": "Feature Requests",
"postCount": 99,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"by": null,
"created": "2017-08-30T13:32:01.000Z",
"post": {
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"commentCount": 2,
"eta": "February 2020",
"id": "553c3ef8b8cdcd1501ba4444",
"imageURLs": [],
"jira": {
"linkedIssues": [
{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}
]
},
"linear": {
"linkedIssueIDs": [
"ID-123",
"ID-345"
]
},
"score": 13,
"status": "planned",
"tags": [
{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}
],
"title": "post-title",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/post-title"
},
"voter": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2017-08-30T13:32:00.000Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"votePriority": "Important"
}
}

Update Company

Updates an existing company. | key: updateCompany

InputNotesExample
Additional Fields

Additional fields that might not be covered by the standard inputs.

Company ID

The unique identifier of the company.

553c3ef8b8cdcd1501ba1111
Name

The company name (0-100 characters).

Acme Corp
Connection

The Canny connection to use.

Custom Fields

Custom field key-value pairs as JSON.

Monthly Spend

Monthly recurring revenue in dollars.

5000

{
"data": {
"id": "553c3ef8b8cdcd1501ba1111"
}
}

Update Post

Updates an existing post. | key: updatePost

InputNotesExample
Additional Fields

Additional fields that might not be covered by the standard inputs.

Connection

The Canny connection to use.

Custom Fields

Custom field key-value pairs as JSON.

Details

Updated post content.

Updated description for the feature request.
ETA

Estimated delivery date in MM/YYYY format.

06/2025
Image URLs

JSON array of image URLs to attach.

Post ID

The unique identifier of the post.

553c3ef8b8cdcd1501ba5678
Title

Updated post title.

Add dark mode support

{
"data": "success"
}

Changelog

2026-04-21

Initial release of the Canny component with support for boards, posts, comments, votes, categories, tags, users, companies, changelog entries, and status changes.