Back to Blog
n8nCannyintegrationproduct managementautomation
n8n + Canny Integration: Automate Feedback & Roadmapping Workflows
n8nautomation TeamApril 13, 2026
TL;DR: Integrate n8n with Canny to automate your product feedback and roadmapping processes. Build workflows to automatically capture feedback, sync data with other tools, and keep your users informed, saving countless hours and ensuring no valuable insight is missed.
Product managers, designers, and customer success teams constantly seek efficient ways to collect, organize, and act on user feedback. The n8n + Canny integration empowers you to streamline this critical process, transforming raw feedback into actionable insights and keeping your users engaged. By automating the journey of feedback from initial capture to feature development and user notification, you can ensure that valuable suggestions never fall through the cracks and your product roadmap truly reflects customer needs.
Maximize Product Feedback with n8n + Canny Integration
Canny is a robust platform for collecting customer feedback, managing feature requests, and building transparent roadmaps. While Canny excels at centralizing feedback, integrating it with your broader tech stack is where the real power lies. With n8n, you can connect Canny to virtually any other application, creating dynamic, end-to-end workflows that minimize manual effort and maximize the impact of your user insights. This means less time spent on data entry and more time focused on building a better product. n8n's rich set of nodes, including the powerful Canny node, allows you to trigger workflows based on new feedback, comments, or status updates in Canny, and then perform actions in other tools like Slack, Notion, CRM systems, or even custom databases. This level of flexibility ensures that your product feedback process is not an isolated silo, but a fully integrated part of your development lifecycle.Automatically Create Canny Posts from Support Tickets
Support tickets often contain valuable feature requests or bug reports that should be captured in Canny. Manually transferring this information is tedious and prone to error. This workflow ensures that every relevant piece of feedback from your support platform automatically contributes to your Canny board. Here’s how to build it:- Trigger: Use a n8n webhook or a dedicated node for your customer support platform (e.g., Zendesk, Freshdesk, Intercom) to listen for new tickets. Configure it to trigger when a ticket is tagged, categorized, or marked with a specific status like "Feature Request" or "Bug Report."
- Example Node:
Zendesk Triggerset to 'New Ticket' with a filter for tags containing 'feature request'.
- Example Node:
- Filter (Optional): Add an
IFnode to check if the ticket subject or description contains specific keywords to ensure only relevant feedback is forwarded to Canny.- Example Expression:
{{$json["subject"].includes("request") || $json["description"].includes("suggestion")}}
- Example Expression:
- Canny Node: Use the
Cannynode set to the 'Create' operation for 'Post'. Map the ticket's subject to the Canny post title and the ticket's description to the post details. You can also assign it to a category or set an initial status.- Operation:
Post: Create - Title:
{{$json["subject"]}} - Details:
{{$json["description"]}} - Board ID: Select your primary feedback board.
- Operation:
- Optional: Notify Support Agent: Add a
SlackorEmailSendnode to notify the original support agent that their ticket has been converted into a Canny post, including a link to the new post for reference.- Example Node:
Slack Send Messageto a private channel or direct message, including the Canny post URL returned from the Canny node.
- Example Node:
Sync Canny Feedback to Your Project Management Tool
Once feedback gains traction in Canny, it often needs to become a task or epic in your project management system. Automating this sync keeps your development backlog aligned with user需求 without manual transfers. Here’s how to build it:- Trigger: Use the
Canny Triggernode. Set it to listen for 'Post Updated' and configure a filter to trigger when a post's status changes to 'Planned' or when it reaches a certain number of upvotes.- Event:
Post Updated - Filter:
Status changed to 'Planned'orUpvotes >= 50
- Event:
- Project Management Node: Add a node for your chosen project management tool (e.g., Jira, ClickUp, Asana, Monday.com). Set the operation to 'Create Issue' or 'Create Task'. Map the Canny post title, details, and number of upvotes to corresponding fields in your project management tool.
- Example Node:
Jira Create Issue - Project: Select your engineering project.
- Issue Type:
Feature Request - Summary:
{{$json["title"]}} - Description:
{{$json["details"]}} Canny URL: {{$json["url"]}} Upvotes: {{$json["upvotes"]}}
- Example Node:
- Update Canny Post (Optional): After creation in the PM tool, you might want to add a comment to the Canny post or update its status to reflect that it's now in the development backlog. Use another
Cannynode for this.- Operation:
Comment: CreateorPost: Update - Comment Text: "This feature is now in our development backlog: [Link to Jira ticket]"
- Operation:
Notify Users of Feature Status Changes from Canny
Keeping users informed about the progress of their requested features builds trust and improves satisfaction. This workflow automates that communication, ensuring timely updates without manual effort. Here’s how to build it:- Trigger: Use the
Canny Triggernode, set to 'Post Updated'. Filter for status changes to 'In Progress', 'Completed', or 'Shipped'.- Event:
Post Updated - Filter:
Status changed to 'In Progress'ORStatus changed to 'Completed'ORStatus changed to 'Shipped'
- Event:
- Retrieve Post Details: Although the trigger provides some details, you might need more. Use another
Cannynode with the 'Get' operation for 'Post' to fetch comprehensive information about the updated post.- Operation:
Post: Get - Post ID:
{{$json["id"]}}
- Operation:
- Email Notification: Use a
SendGrid,Mailchimp, orGmailnode to send out an email. The email can be customized to include the feature title, the new status, and a link back to the Canny post or your changelog.- Recipient: This is where it gets interesting. Canny's API can often provide associated user emails. If not directly available in the trigger, you might need to query your CRM (see next example) or simply link to a public changelog. For direct email, you'd iterate through voters/subscribers.
{{ $node["Canny Post Details"].json["data"].map(item => item.voters.map(voter => voter.email)).flat().filter(email => email) }} - Subject: "Update: Feature '{{$node["Canny Post Details"].json["data"][0].title}}' is now {{$node["Canny Post Details"].json["data"][0].statusName}}!"
- Body: Craft a message using HTML or plain text, incorporating data from the Canny node.
- Recipient: This is where it gets interesting. Canny's API can often provide associated user emails. If not directly available in the trigger, you might need to query your CRM (see next example) or simply link to a public changelog. For direct email, you'd iterate through voters/subscribers.
- Internal Slack Notification (Optional): Simultaneously send a Slack message to your internal product channel to inform the team that users have been notified.
- Example Node:
Slack Send Message - Message: "Public update sent for feature '{{$node["Canny Post Details"].json["data"][0].title}}'. Status: {{$node["Canny Post Details"].json["data"][0].statusName}}."
- Example Node:
Tip: For privacy reasons, double-check Canny's API documentation on how to access user emails associated with feedback if you plan direct email notifications. In many cases, Canny handles these notifications internally, but n8n can trigger other actions based on status changes.
Enrich Canny Feedback with Customer Data from Your CRM
Understanding the context of who submitted feedback is crucial. By pulling customer data from your CRM into Canny, you can prioritize requests based on customer segment, ARR, or other custom attributes. Here’s how to build it:- Trigger: Use the
Canny Triggernode for 'New Post' or 'New Comment'.- Event:
Post CreatedorComment Created
- Event:
- Extract User Email: Canny provides user information. Extract the email address of the user who submitted the feedback.
- Example Expression:
{{$json["creatorId"].email}}for the post creator or similar for a comment creator.
- Example Expression:
- CRM Node: Use your CRM's node (e.g., HubSpot, Salesforce, Pipedrive) to 'Get' a contact or company by their email address. Fetch relevant information such as company name, customer tier, or account manager.
- Example Node:
HubSpot Get Contact - Search Property:
Email - Value:
{{$json["creatorId"].email}}
- Example Node:
- Canny Node (Add Custom Field/Update Post): Use the
Cannynode set to 'Post: Update' or 'Comment: Update' and add or update custom fields with the data pulled from your CRM. Before this, you'll need to configure custom fields in Canny (e.g., 'Customer Tier', 'Company Name').- Operation:
Post: Update(orComment: Update) - Post ID:
{{$json["id"]}} - Custom Fields: Map harvested CRM data.
{ "Customer Tier": "{{$node["HubSpot Contact"].json["data"][0].properties.lifecyclestage}}", "Company Name": "{{$node["HubSpot Contact"].json["data"][0].properties.company}}" }
- Operation:
Generate Weekly Canny Summary Reports for Your Team
Stay on top of overall feedback trends without logging into Canny daily. This workflow provides your team with a weekly digest of new posts, top upvoted requests, and status changes. Here’s how to build it:- Trigger: Use the
Cronnode to schedule the workflow to run weekly (e.g., every Monday at 9 AM).- Mode:
Every Week - Day of Week:
Monday - Hour:
9
- Mode:
- Canny Node (Get Posts): Use the
Cannynode with the 'Get Many' operation for 'Posts'. Filter for posts created or updated in the last week, and sort by upvotes for top requests.- Operation:
Post: Get Many - Sort By:
Upvotes(descending) - Filters: Set a filter to only retrieve posts updated or created within the last 7 days. You might need to use an expression like
{{ (new Date($json.created)).getTime() > (Date.now() - 7*24*60*60*1000) }}in a subsequentFilternode if Canny's 'Get Many' does not support complex date range filtering directly.
- Operation:
- Code Node (Format Report): Use a
Codenode to assemble the data into a readable format. You can create a markdown-formatted string for Slack or an HTML table for email.- Iterate through the Canny posts, extracting titles, upvotes, current status, and URLs.
- Combine this into a summary string.
- Slack or Email Notification: Send the formatted report to your product team's Slack channel or email list using a
SlackorEmailSendnode.- Example Node:
Slack Send Message - Channel:
#product-feedback - Message:
Weekly Canny Report: New Posts: {{ $node["Code Node"].json["newPostsSummary"] }} Top Upvoted: {{ $node["Code Node"].json["topPostsSummary"] }}
- Example Node:
Get Started with n8n + Canny Automation
Implementing these n8n + Canny workflows can significantly reduce the manual overhead of managing product feedback and roadmapping. By automating everything from capturing feedback to notifying users, you free up your team to focus on building great products, rather than administrative tasks. Ready to bring this level of automation to your product development? Getting started with n8n is straightforward, especially with a dedicated hosting solution. You can quickly deploy your own n8n instance and begin building these powerful workflows today. Our platform, n8nautomation.cloud, provides managed, dedicated n8n instances starting at just $15/month, complete with instant setup, automatic backups, and 24/7 uptime. You'll get your own secure subdomain (e.g.,yourname.n8nautomation.cloud) and all the benefits of self-hosted n8n without the hassle of server management. Start automating your Canny workflows and transform how you manage product feedback.