Canny is a customer feedback management platform that helps teams collect, analyze, and prioritize user feedback to build better products.
Canny is a customer feedback management platform that helps teams collect, analyze, and prioritize user feedback to build better products. On Nagent, Canny is exposed as a fully-configurable product management integration that any agent can call — 25 actions, and API key authentication. No code is required to wire Canny into your workflow — connect it once via the External Integrations panel and reuse it across every agent you build.
Agent builders use Canny to automate the kinds of tasks product management teams previously handled manually. Concrete examples — each one is a single agent step in Nagent — include:
Every action and trigger is paired with a structured input/output schema (visible in the sections below), so when you wire Canny into Helix — our agentic agent builder — the editor knows exactly what each step expects and produces. Configure once, deploy anywhere across your Nagent agents.
Every operation an agent can call against Canny, with input parameters and output schema. Drop these into any step of an agent built in Helix.
CANNY_ADD_POST_TAGTool to add a tag to a specific post. Use when you need to categorize or group content by applying an existing tag.
Input parameters
Unique identifier of the tag to add to the post.
Unique identifier of the post to which the tag will be added.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_CHANGE_POST_STATUSTool to change a post's status. Use when you need to update a post's workflow stage and optionally notify voters.
Input parameters
The unique identifier (MongoDB ObjectID) of the post whose status will be changed.
New status for the post. Common values include 'open', 'under review', 'planned', 'in progress', 'complete', 'closed', or any custom status configured in Canny.
The unique identifier (MongoDB ObjectID) of the admin user who is making the status change. Must be an admin user in Canny.
Optional comment to accompany the status change. This will be shown in the post's activity feed. Supports newlines with '\\n'.
Optional list of image URLs to attach to the status change comment. Must be valid, publicly accessible URLs.
Whether non-admin voters should be notified of the status change. Defaults to False to avoid unexpected notifications in automated workflows.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_CREATE_CHANGELOG_ENTRYTool to create and optionally publish a new changelog entry. Use when you need to add a product update record, control publish timing, and notify users. Example: "Create changelog entry titled 'Version 1.2' with details '...' and publish immediately.".
Input parameters
Optional type of your changelog entry: 'fixed', 'new', or 'improved'.
The title of your changelog entry.
If publishing immediately, whether to notify users by email. Defaults to false.
The Markdown-formatted details of your changelog entry.
List of post IDs to link to this changelog entry.
List of label IDs to assign to this changelog entry.
Whether to publish the entry immediately. Defaults to false.
If 'published' is true, override the publish date (ISO 8601 format, must not be in the future).
Schedule a future publish date (ISO 8601 format, must be in the future).
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_CREATE_COMMENTTool to create a new comment on a post. Use when you have the authorID and postID and want to submit feedback or replies.
Input parameters
Text content of the comment, up to 2500 characters. Required if no images.
Unique identifier of the post to which the comment is added (Canny post ID). Use the 'List Posts' action to get valid post IDs.
Unique identifier of the comment's author (Canny user ID). Use the 'Create or Update User' action to get a valid user ID.
Flag for internal-use-only comments. Can only be true if the author is a company member.
If this comment is a reply, the unique identifier of the parent comment (Canny comment ID).
Original creation timestamp in ISO 8601 format (useful for migrating comments)
List of image URLs to attach to the comment.
Whether to send email notifications to voters of the post.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_CREATE_OR_UPDATE_USERCreates a new user or updates an existing user in Canny. If a user with the given identifier (email, userID, or id) already exists, their profile is updated; otherwise, a new user is created. IMPORTANT: At least one of 'email', 'userID', or 'id' must be provided along with 'name'. Use cases: - Sync users from your application to Canny - Update user profiles (name, avatar, custom fields) - Associate users with companies for segmentation Example: Create user with email: {"name": "Jane Doe", "email": "jane@example.com"} Example: Sync app user: {"name": "John Smith", "userID": "app_user_123", "email": "john@example.com"}
Input parameters
Canny's unique identifier for the user. Use this to update an existing Canny user. At least one of 'email', 'userID', or 'id' must be provided.
The user's name (1-50 characters).
Optional alias for the user.
The user's email address. At least one of 'email', 'userID', or 'id' must be provided to identify the user.
Your application's unique identifier for the user. Recommended for syncing users between your app and Canny. At least one of 'email', 'userID', or 'id' must be provided.
Date the user was created in your system (ISO 8601 format).
URL to the user's avatar image.
List of companies associated with the user.
Custom fields for the user (keys 0-30 chars; string values <200 chars).
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_CREATE_POSTTool to create a new post (feature request or feedback) on a Canny board. Use this action when you need to submit new feedback or feature requests to a board. Requires a valid boardID (from list_boards) and authorID (from create_or_update_user or list_users).
Input parameters
The estimated completion date for this post in MM/YYYY format.
The unique identifier of the admin who is creating the post on behalf of the author. Used when an admin submits feedback for a user.
The title of the post. Should be concise and descriptive.
The unique identifier of the board where the post will be created. Get this from list_boards action.
The detailed description or body of the post. This is the longer text field explaining the feature request or feedback.
The unique identifier of the user responsible for completing the work on this post.
The unique identifier of the user who is the author of the post. Get this from create_or_update_user or list_users action.
The original creation date of the post in ISO 8601 format. Useful for migrating posts from another system.
Whether the ETA should be visible to all users. Defaults to false.
List of URLs pointing to images to attach to the post.
The unique identifier of the category or subcategory to assign to this post.
Custom fields associated with the post. Keys must be 0-30 characters; string values under 200 characters.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_CREATE_TAGTool to create a new tag. Use when you have the boardID and tag name and need to categorize posts.
Input parameters
Name of the tag, between 1 and 30 characters.
ID of the board where the tag should be created.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_CREATE_VOTETool to create a vote for a post. Use when you need to record or migrate a user's vote on a post, optionally setting priority or original creation time. Example: Create a vote for postID abc123 with voterID user_456.
Input parameters
The unique identifier of the user casting the vote on behalf of the voter. Must be a Canny administrator.
The unique identifier of the post to vote on.
The unique identifier of the user casting the vote.
If migrating votes, the original creation timestamp in ISO 8601 format.
Priority of the vote: 0 (Nice to have), 10 (Important), or 20 (Must have).
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_DELETE_COMMENTTool to delete a comment. Use when moderation is required to remove a specific comment by its id. Example: "Delete the comment with ID 553c3ef8b8cdcd1501ba1238."
Input parameters
The unique identifier of the comment to delete.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_DELETE_POSTTool to delete a post. Use when you need to permanently remove a post by its id. Example: "Delete the post with ID 553c3ef8b8cdcd1501ba1238."
Input parameters
The unique identifier of the post to delete.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_DELETE_USERTool to delete a user and their comments and votes. Use when you need to fully remove a user’s account and all associated data (e.g., GDPR compliance).
Input parameters
The unique identifier of the user to delete.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_DELETE_VOTETool to delete a vote. Use when you need to remove a user's vote from a specific post by its id. Example: "Delete the vote from postID abc123 for voterID user_456."
Input parameters
The unique identifier of the post from which the vote will be removed.
The unique identifier of the user whose vote is being removed.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_LIST_BOARDSTool to list all boards. Use when you need to retrieve every board for your company after authentication.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_LIST_CATEGORIESTool to list categories. Use when fetching categories for a specific board by its ID.
Input parameters
Number of categories to skip. Defaults to 0 if not specified.
Number of categories to return. Defaults to 10 if not specified.
Filter categories by this board's ID.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_LIST_COMMENTSRetrieves a paginated list of comments from Canny. Comments can be filtered by board, post, author, or company. Use this action to: - Get all comments across your Canny instance - Find comments on a specific post (using postID) - List comments from a specific board (using boardID) - See comments by a specific user (using authorID) - Track feedback from a company's users (using companyID) Returns comments ordered by creation date (newest first). Use 'limit' and 'skip' for pagination.
Input parameters
Number of comments to skip before returning results. Use with 'limit' for pagination (e.g., skip=10, limit=10 returns comments 11-20).
Maximum number of comments to return per request. Use with 'skip' for pagination.
The unique identifier of a Canny post. When provided, only comments on this specific post are returned. Obtain this ID from List Posts or Create Post actions.
The unique identifier of a Canny board. When provided, only comments on posts belonging to this board are returned. Obtain this ID from List Boards or Retrieve Board actions.
The unique identifier of a Canny user. When provided, only comments created by this author are returned. Obtain this ID from List Users or Retrieve User actions.
The unique identifier of a company. When provided, only comments on posts created by users linked to this company are returned. Obtain this ID from List Companies action.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_LIST_COMPANIESTool to list companies associated with your Canny account. Use after authentication to retrieve companies with pagination support.
Input parameters
Maximum number of companies to return per page (1-100). Defaults to 10.
Pagination cursor from a previous response to fetch the next page of companies.
A string to search by company name. When used, pagination (cursor) is disabled.
The URL name of the segment to filter companies by.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_LIST_OPPORTUNITIESTool to list opportunities linked to posts. Use when you need to fetch customer opportunities synced from CRM.
Input parameters
Number of opportunities to skip before returning. Defaults to 0.
Maximum number of opportunities to return. Defaults to 10 if unspecified.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_LIST_POSTSTool to list posts with various filters. Use after selecting a board or to search/filter posts.
Input parameters
Number of posts to skip before fetching; defaults to 0.
Order in which to fetch posts. 'relevance' requires a search value.
Number of posts to fetch; defaults to 10.
Search query to filter posts by title or details.
Comma-separated list of statuses to filter by (e.g. 'planned,complete').
Only fetch posts tagged with at least one of these tag IDs.
ID of the board to fetch posts for.
Only fetch posts by this author ID.
Only fetch posts created by users linked to this company identifier.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_LIST_TAGSTool to list tags. Use when fetching tags optionally filtered by board ID and handling pagination.
Input parameters
Number of tags to skip before returning results. Defaults to 0.
Maximum number of tags to return. Defaults to 10.
Filter tags by this board's ID.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_LIST_USERSList all end-users in your Canny workspace with pagination support. Use this tool to: - Fetch users from your Canny workspace - Paginate through large user lists using cursor-based pagination - Get user details including email, name, admin status, and custom fields Returns a paginated list of users. Use the returned cursor to fetch subsequent pages.
Input parameters
Number of users to fetch per page (1-100). Defaults to 10.
Pagination cursor from a previous response. Use this to fetch the next page of results.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_LIST_VOTESRetrieve votes from Canny with optional filtering by board, post, or voter. Use this action to: - Get all votes on a specific post (filter by postID) - Get all votes by a specific user (filter by voterID) - Get all votes on posts in a board (filter by boardID) - List all votes across the account (no filters) Results are paginated - use 'limit' and 'skip' parameters to navigate through pages. Check 'hasMore' in the response to determine if more results are available.
Input parameters
Number of votes to skip for pagination. Use with limit to paginate through results.
Maximum number of votes to return (1-10000). Default: 10.
Filter votes by post ID. Get post IDs from CANNY_LIST_POSTS.
Filter votes by board ID. Get board IDs from CANNY_LIST_BOARDS.
Filter votes by voter (user) ID. Get user IDs from CANNY_LIST_USERS.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_RETRIEVE_BOARDTool to retrieve details of a board by its ID. Use when you need metadata for a specific board.
Input parameters
Unique identifier of the board (24-character hex string). Use CANNY_LIST_BOARDS to get available board IDs.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_RETRIEVE_TAGTool to retrieve details of a tag by its ID. Use after obtaining a valid tag ID.
Input parameters
Unique identifier of the tag to retrieve.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_RETRIEVE_USERTool to retrieve user details by Canny user ID, app user ID, or email. Use when you have exactly one identifier and need full user information. Example: "Retrieve user with email user@example.com"
Input parameters
Canny user ID (provide one of 'id', 'userID', or 'email').
User's email address (provide one of 'id', 'userID', or 'email').
Your application user ID (provide one of 'id', 'userID', or 'email').
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CANNY_UPDATE_POSTTool to update post details. Use when you need to change a post's title, details, ETA, images, or custom fields.
Input parameters
Estimated completion date in MM/YYYY format, e.g., '06/2022'.
Short title of the post.
Unique identifier of the post to update.
Detailed text body of the post.
Whether the ETA should be visible to end-users.
List of image URLs to attach to the post.
Custom fields to set on the post. Keys must be 0-30 characters; values can be string, number, or boolean.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
No publicly available marketplace agent is found using this tool yet. There are 97 agents privately built on Nagent that already use Canny.
Build on Nagent
Connect Canny to any Nagent agent in minutes — no API key management, no boilerplate. Just configure and deploy.
The five questions agent builders ask before adopting a new integration.
Open the External Integrations panel inside Nagent (app.nagent.ai/externalIntegration), find Canny, and click "Connect Now." You'll authenticate with an API key — Nagent handles credential storage and refresh automatically. Once connected, Canny is available to any agent in your workspace.
No. Nagent provides no-code integration for every tool. Once Canny is connected, you configure its 25 actions directly in the agent builder UI — no API calls, no boilerplate, no schema management.
Helix — Nagent's agentic agent builder — lets you drop Canny steps into any workflow visually. Pick an action (e.g., one of those listed above), fill in the inputs (Helix knows the required vs. optional schema for each parameter), and connect it to upstream/downstream steps. Triggers run as the entry point of an agent, so when a Canny event fires, the agent kicks off automatically.
Every Canny action and trigger ships with a fully-typed schema — input parameters with name, type, required flag, and description, plus the output payload shape. The schemas are documented in the sections above. Helix uses these schemas to validate your configuration at build time and to type-check the data flowing between steps.
Yes. While Canny ships with 25 pre-built product management actions, you can layer custom logic around them inside Helix — pre/post-processing steps, conditional branches, retries, or stitching Canny together with other connected tools. For deeper customization, talk to our team about Nagent's Agentic AI Lab — forward-deployed engineers who build Canny-based workflows tailored to your business.