PageSourceSearch

https://assets.canny.io/9ea981d27d6e3a33c6a275b4dbae077c893d9fce/9382.js

js canny.io collected 2026-10-01 07:59:56 UTC 89,704 bytes, 1 lines download raw bytes

1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3628c7fc-55a1-4b69-aab7-49f105ea012f",e._sentryDebugIdIdentifier="sentry-dbid-3628c7fc-55a1-4b69-aab7-49f105ea012f")}catch(e){}}(),(globalThis.webpackChunk=globalThis.webpackChunk||[]).push([[9382],{25981(e,t,a){a.d(t,{A:()=>r});const r={invalidEmail:"Please enter a valid email.",emailTaken:"There is already an account with this email, are you sure you don't have an account already?",emailNotVerified:"Your email address has not been verified with your sign-in provider. Please verify it there and try again.",emailAlreadySubscribed:"This email address is already subscribed.",badLogin:"The email and password do not match.",miscError:"Uh-oh! Something went wrong, please try again later.",invalidName:"Please enter a valid name. (2-50 characters)",invalidPassword:"Please enter a password between 6 and 200 characters.",passwordConfirmMismatch:"Uh-oh! Your password confirmation does not match.",selectUnsubscription:"Please select something to unsubscribe from.",invalidURL:"Please enter a valid URL."}},74334(e,t,a){a.d(t,{A:()=>l});var r=a(63696),n=a(6992),o=a(89199),s=a(95973);const i=["bg-red-500","bg-orange-400","bg-yellow-400","bg-green-500"],l=({password:e,className:t})=>{const[l,c]=(0,r.useState)(null);if((0,r.useEffect)(()=>{if(!e)return void c(null);let t=!1;return a.e(8133).then(a.t.bind(a,38133,23)).then(a=>{t||c(a.default(e))}),()=>{t=!0}},[e]),!l)return null;const{score:d,feedback:u}=l,{suggestions:m}=u;return r.createElement(s.A,{className:(0,n.cn)("box-border gap-1.5",t)},r.createElement(o.A,{className:"gap-1"},[0,1,2,3].map(e=>r.createElement("div",{key:e,className:(0,n.cn)("h-1 flex-1 rounded-full transition-colors",e<d?i[d-1]:"bg-muted")}))),m.length>0&&r.createElement("ul",null,m.map((e,t)=>r.createElement("li",{key:t,className:"text-xs text-secondary-foreground"},e))))}},38256(e,t,a){a.d(t,{A:()=>s});var r=a(63696),n=a(62688),o=a.n(n);a(66710);class s extends r.Component{static propTypes={innerClassName:o().string,outerClassName:o().string};renderInnerContainer(){return this.props.innerClassName?r.createElement("div",{className:this.props.innerClassName},this.props.children):this.props.children}renderContainers(){return r.createElement("div",{className:"contentContainer"},r.createElement("div",{className:"contentInnerContainer"},this.renderInnerContainer()))}render(){return this.props.outerClassName?r.createElement("div",{className:this.props.outerClassName},this.renderContainers()):this.renderContainers()}}},36363(e,t,a){a.d(t,{A:()=>o});var r=a(63696),n=a(43963);const o=({title:e,description:t,pageURL:a,imageURL:o="https://canny.io/images/canny-social.png",children:s})=>{const i=`${e} | Canny`;return r.createElement(n.A,{title:i,meta:[{name:"description",content:t},{property:"og:image",content:o},{property:"og:title",content:i},{property:"og:description",content:t},{property:"og:url",content:a},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:site",content:"@cannyHQ"},{name:"twitter:title",content:i},{name:"twitter:description",content:t},{name:"twitter:image",content:o}]},s)}},97615(e,t,a){a.r(t),a.d(t,{default:()=>A});var r=a(63696),n=a(62688),o=a.n(n),s=a(89588),i=a(88441),l=a(82917),c=a(38256),d=a(5064),u=a(43963);class m extends r.Component{static propTypes={success:o().bool.isRequired};render(){var e=this.props.success?"Password Reset":"Reset Password";return e+=" | Canny",r.createElement(u.A,{allowIndexing:!1,meta:[{name:"referrer",content:"no-referrer"}],title:e})}}var p=a(23608),h=a(59676),y=a(3459),f=a(69971),g=a(25981),b=a(61e3),w=a(54410),v=a(7231);a(91096);class k extends r.Component{static propTypes={location:o().object.isRequired};state={error:null,success:!1,submitting:!1};constructor(e){super(e),this.passwordRef=r.createRef(),this.confirmRef=r.createRef()}componentDidMount(){this._email=this.props.location.query.email,this._resetPasswordID=this.props.location.query.id}onSubmit=e=>{if(e.preventDefault(),this.state.submitting)return;const t=this.passwordRef.current.value,a=this.confirmRef.current.value;t&&v.A.password(t)?t===a?(l.A.post("/api/viewer/resetPassword",{email:this._email,password:t,resetPasswordID:this._resetPasswordID},this.onResetPasswordResponse),this.setState({error:null,submitting:!0})):this.setState({error:g.A.passwordConfirmMismatch}
1):this.setState({error:g.A.invalidPassword})};onResetPasswordResponse=e=>{const{error:t}=(0,b.Ay)(e,{isSuccessful:b.wO,errors:{"slow down":"You are trying to reset your password too much. Please wait a few minutes before trying again.","password is too weak":"Please enter a stronger password."}});t?this.setState({submitting:!1,error:t.message}):this.setState({submitting:!1,success:!0})};render(){return this.state.success?r.createElement(c.A,{outerClassName:"resetPassword",innerClassName:"resetPasswordContents card"},r.createElement(m,{success:!0}),r.createElement("div",{className:"message"},"Your password has successfully been reset, you may now log in with your new password.")):r.createElement(c.A,{outerClassName:"resetPassword",innerClassName:"resetPasswordContents card"},r.createElement(m,{success:!1}),r.createElement("h1",null,"Reset your password"),r.createElement("form",{onSubmit:this.onSubmit},r.createElement(y.A.Group,null,r.createElement(y.A,null,r.createElement(y.A.Label,null,"Email"),r.createElement(f.A,{disabled:!0,value:this.props.location.query.email})),r.createElement(y.A,null,r.createElement(y.A.Label,null,"New password"),r.createElement(h.A,{ref:this.passwordRef})),r.createElement(y.A,null,r.createElement(y.A.Label,null,"Confirm password"),r.createElement(f.A,{type:"password",ref:this.confirmRef})),this.state.error&&r.createElement(y.A.Error,null,this.state.error)),r.createElement("div",{className:"flex justify-end mt-4"},r.createElement(p.A,{type:"submit",isLoading:this.state.submitting},"Reset Password"))))}}const A=(0,i.Zz)((0,w.A)({location:d.di}),s.K)(k)},76804(e,t,a){a.r(t),a.d(t,{default:()=>Y});var r=a(63696),n=a(29331),o=a(21727);const s=(0,o.A)({name:"combine",size:24,node:[["path",{d:"M14 3a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1",key:"1l7d7l"}],["path",{d:"M19 3a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1",key:"9955pe"}],["path",{d:"m7 15 3 3",key:"4hkfgk"}],["path",{d:"m7 21 3-3H5a2 2 0 0 1-2-2v-2",key:"1xljwe"}],["rect",{x:"14",y:"14",width:"7",height:"7",rx:"1",key:"1cdgtw"}],["rect",{x:"3",y:"3",width:"7",height:"7",rx:"1",key:"zi3rio"}]]}),i=(0,o.A)({name:"folder-tree",size:24,node:[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]]});var l=a(44004),c=a(89588),d=a(36363),u=a(49885),m=a(81215),p=a(89430),h=a(98848),y=a(53827),f=a(3808),g=a(67465),b=a(19347),w=a(99619),v=a(38092),k=a(53361),A=a(28859),x=a(61058),C=a.n(x),E=a(61095),q=a.n(E),S=a(76428),N=a.n(S),P=a(75474),R=a.n(P),I=a(94579),z=a.n(I),M=a(22771),L=a.n(M);const T="https://canny.io/features/autopilot",B={title:"AI Customer Feedback Management",description:"Canny Autopilot reads every sales and support conversation, captures feedback automatically, and organizes it for you. Capture and organize feedback from everywhere.",pageURL:T},F=[{title:"Catch the feedback your team is missing",subtitle:"Capture feedback from Gong, Intercom, Zendesk, and dozens more sources. Every important insight is surfaced from conversations as they happen.",image:{src:N(),alt:"Autopilot capturing feedback from Gong, Intercom, Zendesk, and more."}},{title:"Know who's behind every request",subtitle:"Every request comes tied to the customer, account, and revenue behind it. Open the original conversation anytime for the full story.",flip:!0,image:{src:R(),alt:"A feature request tied to the customer, account, and revenue behind it."}},{title:"Keep every request organized automatically",subtitle:"Merge duplicates and automatically organize feedback by product area. Autopilot learns about your product so it knows where everything belongs. No weekly triage or backlog cleanup.",image:{src:q(),alt:"Duplicate requests merged and feedback organized by product area automatically."}}],G={title:"Understand what customers really want",subtitle:"Autopilot surfaces the context behind requests, not just the ask. Get a sense of how urgent requests are to specific customers. Spot themes across your feedback to see what matters most.",flip:!0,image:{src:L(),alt:"Themes and urgency surfaced across customer feedback."}},H=[{quote:"Canny's Autopilot ensures feature requests never fall through the cracks. We've seen an 80% increase in requests logged since introducing Autopilot.",name:"Owen Doherty",role:"COO, Orca Scan",imageSrc:p.A.OwenDoherty},{quote:"I LOVE how it auto-scans our support tickets and magically finds feedback. We've been able to 10x our feedback & remove many duplicate posts.",name:"Keenan Jones",role:"VP Product, Credit Repair Cloud",imageSrc:p.A.KeenanJones},{quote:"We're seeing hundreds of support tickets turned into actionable insights both unique and as votes on existing posts with very high accuracy.",name:"Matt Cromwell",role:"Senior Director, CX, Stellar WP",imageSrc:p.A.MattCromwell}],D=[{title:"Capture",description:"Autopilot reads every sales and support conversation and captures the feedback.",icon:n.A},{title:"Deduplicate",description:"Repeat requests merged, so you see true demand, not noise.",icon:s},{title:"Organize",description:"Every request automatically lands in the right product area.",icon:i},{title:"Analyze",description:"Track themes across your feedback, so you see what's coming up most.",icon:l.A}],W=[{question:"What sources can Autopilot capture feedback from?",answer:"Autopilot captures feedback from your support and conversation tools, including Gong, Intercom, Slack, Zendesk, Help Scout, Freshdesk, Zoom, and tl;dv. It also reads public reviews from sites like G2, Capterra, Trustpilot, the App Store, and Google Play, and connects to hundreds more tools through Zapier."},{question:"How accurate is Autopilot?",answer:"Very. In one customer’s audit of 1,725 supp
1ort tickets, Autopilot identified feature requests with 93% accuracy, catching 30% more than their team did manually. It also caught requests the team had missed entirely."},{question:"Can I review and undo what Autopilot does?",answer:"Yes. Autopilot works automatically, and a full audit log shows everything it captured, merged, and organized. If it gets something wrong, you can undo any action."},{question:"Does Autopilot post feedback publicly?",answer:"Not by default. Autopilot captures feedback into your internal workspace, where only your team can see it. Sharing anything publicly through Portal is a separate, optional step you control. Alternatively, you can control this behavior per source."},{question:"Does Canny offer other AI tools?",answer:"Yes. Beyond capturing feedback, Autopilot powers Smart Replies, which asks customers follow-up questions automatically, and Comment Summaries, which condense long threads. You can learn more on the Portal and Collect Feedback pages."},{question:"Is my data secure?",answer:"Yes. We don't use your data to train our models. Autopilot also runs on the same security standards as the rest of Canny, including SOC 2 Type 2 compliance."}],j=m.A.createGraph([m.A.createWebPage({"@id":`${T}#webpage`,url:T,name:"Canny Autopilot",description:B.description,inLanguage:"en",about:{"@id":"https://canny.io/#app"},isPartOf:{"@id":"https://canny.io/#website"}}),m.A.createNamedItemList(`${T}#features`,"Autopilot AI Features",[{name:"Feedback Discovery",description:"Automatically captures and analyzes customer feedback across channels to surface themes and trends faster."},{name:"Smart Replies",description:"Suggests personalized, context-aware responses to customer feedback to save time while maintaining quality."},{name:"Comment Summaries",description:"Summarizes long or complex feedback threads so teams can digest key takeaways quickly."},{name:"Deduplication",description:"Detects and merges duplicate feedback posts to keep boards clean and reduce noise."}]),m.A.createBreadcrumbList([{name:"Home",item:"https://canny.io/"},{name:"Features",item:"https://canny.io/features"},{name:"Autopilot",item:T}])]),Y=(0,c.K)(()=>r.createElement(r.Fragment,null,r.createElement(d.A,{...B},r.createElement("script",{type:"application/ld+json"},m.A.toString(j))),r.createElement("main",{className:"overflow-x-hidden bg-white",id:"main"},r.createElement(b.A,{eyebrow:"AI customer feedback management",title:"Every customer conversation, captured and organized automatically",subtitle:"Autopilot's AI reads every sales and support conversation, captures the feedback, deduplicates, and triages to the right team. No manual work required.",demoButton:"Request a demo",registerButton:"Get started free",cost:"No credit card required"}),r.createElement("div",{className:"mx-auto w-[90%] max-w-7xl"},r.createElement(u.A,{src:z(),alt:"Collect feedback from every source in Canny and see a breakdown of all your data.",className:"w-full rounded-2xl base-border shadow-sm",loading:"eager"})),r.createElement(A.A,null,r.createElement(w.A,{title:"Put feedback management on Autopilot"})),F.map(e=>r.createElement(A.A,{key:e.title},r.createElement(g.A,{...e}))),r.createElement(A.A,null,r.createElement(k.A,{eyebrow:"Stop missing feedback in customer conversations",quote:"We are using Autopilot to route feedback into groups, and just that piece alone has been a massive time saver.",name:"Amy-Lynn Taylor",role:"Product Enablement & Insights, Jane App",imageSrc:C(),imageAlt:"Amy-Lynn Taylor, Product Enablement & Insights at Jane App",imageAlign:"bottom",ctaText:"See how Jane App automates feedback with Autopilot",ctaTo:"/case-studies/jane"})),r.createElement(A.A,null,r.createElement(g.A,{...G})),r.createElement(A.A,null,r.createElement(v.A,{title:"How teams use Autopilot",subtitle:"Don't take our word for it. Teams like yours save time and understand their customers better with Autopilot.",cards:H})),r.createElement(A.A,null,r.createElement(f.A,{faqs:W})),r.createElement(A.A,null,r.createElement(h.A,{title:"Autopilot gives you an organized view of what customers are saying",subt
1itle:"Skip the manual work and automatically surface what matters most in your conversations",links:D})),r.createElement(A.A,null,r.createElement(y.A,{title:"Activate Autopilot for your team",subtitle:"Capture every customer conversation and see which features drive the most revenue.",demoButton:"Request a demo",registerButton:"Get started for free",microcopy:"No credit card required · Unlimited free feedback capture"})))))},75331(e,t,a){a.r(t),a.d(t,{default:()=>B});var r=a(63696),n=a(89588),o=a(81215),s=a(43963);const i="Collect Customer Feedback From Every Source | Canny",l="Capture feedback automatically from sales and support conversations, collect it on a feedback board, and bring in what your team hears, all in one place.",c="https://canny.io/images/canny-social.png",d="https://canny.io/features/collect-feedback",u=o.A.createGraph([o.A.createWebPage({"@id":`${d}#webpage`,url:d,name:"Collect Feedback - Canny",description:"Canny's feedback collection helps teams capture, centralize, and analyze user feedback from multiple channels.",inLanguage:"en",about:{"@id":"https://canny.io/#app"},isPartOf:{"@id":"https://canny.io/#website"}}),o.A.createNamedItemList(`${d}#methods`,"Feedback Collection Methods",[{name:"Public & Private Boards",description:"Customizable feedback boards where users can post requests and ideas, publicly or privately."},{name:"In-App Widgets",description:"Capture user feedback directly inside your app at the point of experience."},{name:"Integrations",description:"Connect with tools like Intercom, Zendesk, Slack, and Help Scout to consolidate all feedback into Canny."},{name:"API",description:"Leverage Canny's API to push and manage feedback from any custom source."}]),o.A.createBreadcrumbList([{name:"Home",item:"https://canny.io/"},{name:"Features",item:"https://canny.io/features"},{name:"Collect Feedback",item:d}])]);class m extends r.Component{render(){return r.createElement(s.A,{title:i,meta:[{name:"description",content:l},{property:"og:image",content:c},{property:"og:title",content:i},{property:"og:description",content:l},{property:"og:url",content:d},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:site",content:"@cannyHQ"},{name:"twitter:title",content:i},{name:"twitter:description",content:l},{name:"twitter:image",content:c}]},r.createElement("script",{type:"application/ld+json"},o.A.toString(u)))}}var p=a(53827),h=a(3808),y=a(67465),f=a(19347),g=a(99619),b=a(53361),w=a(28859),v=a(61095),k=a.n(v),A=a(76428),x=a.n(A),C=a(57360),E=a.n(C),q=a(189),S=a.n(q),N=a(54442),P=a.n(N),R=a(30907),I=a.n(R),z=a(22771),M=a.n(z);const L=[{title:"Capture feedback from every conversation, automatically",subtitle:"Autopilot connects to your sales and support tools, then reads every call and ticket to capture the requests inside.",bullets:["Capture feedback from Gong, Intercom, Zendesk, and Slack","Turn survey results you already have into feedback","Track feedback found in reviews on G2, Capterra, and the App Store","Get requests sorted by product area, automatically"],image:{src:x(),alt:"Autopilot capturing feedback from sales and support conversations automatically."}},{title:"Track feedback right where your team works",subtitle:"When a customer says something worth keeping, your support and sales teams capture it without leaving the tools they use every day.",bullets:["Capture feedback without leaving Intercom or Zendesk","Flag requests in HubSpot and Salesforce and connect to deals","Grab feedback from anywhere on the web with the Chrome extension","Tie every request to the customer who asked, automatically"],image:{src:S(),alt:"Support and sales teams capturing feedback inside the tools they use every day."}},{title:"Give customers a place to share feedback",subtitle:"Set up a feedback board where customers submit and vote on ideas, so the requests that matter most rise to the top.",bullets:["Collect feedback from users without a signup, on a board embedded in your site","Let customers vote for the requests they care about most","Uncover the context behind requests by asking users directly","Keep customers updated with status updates and a public roadmap"],image:{src:E(),alt:"Customers submitting and voting on feedback in a public Canny board."}},{title:"Capture your team's internal feedback",subtitle:"Your team has ideas and spots problems too. Give them a place to add feedback, so it sits alongside what customers ask for.",bullets:["Add internal feedback the moment a teammate has it, without leaving Slack","Catch the ideas your sales and success teams bring back from calls","Give your whole team one place to add and track feedback in Canny Ideas","Keep internal and customer feedback in a single view"],image:{src:I(),alt:"Internal feedback from your team sitting alongside customer requests in Canny."}},{title:"Bring in feedback from other sources",subtitle:"Import feedback from another tool, upload exp
1orts and transcripts, or send it through the API. Canny reads it all and pulls out the requests.",bullets:["Move feedback from your old tool without losing context","Drop in exports, transcripts, or survey results, and Autopilot finds the feedback","Capture feedback from your own systems automatically through Canny's API","Turn any source of customer input into clear requests"],image:{src:k(),alt:"Feedback imported from other tools, exports, transcripts, and the API."}},{title:"Every source, organized in one place",subtitle:"Wherever feedback comes from, it lands in Canny, deduplicated, organized by product area, and tied to the customer's revenue impact.",image:{src:M(),alt:"Feedback from every source organized and tied to revenue impact in Canny."}}],T=[{question:"How do I collect customer feedback with Canny?",answer:"Canny collects feedback from every channel. Autopilot captures it from your sales and support conversations automatically. Customers submit directly on your feedback board. Your team adds what they hear, and you can bring in feedback you already have. It all lands in one place."},{question:"Does Canny send surveys?",answer:"Canny reads the feedback your customers already share in calls, tickets, and messages, so you can skip the survey grind. If you do run surveys elsewhere, Autopilot reads those results too."},{question:"Can I collect feedback from my support and sales tools?",answer:"Yes. Autopilot connects to tools like Gong, Intercom, Zendesk, and Slack and captures feedback automatically. Your team can also flag feedback by hand inside Intercom, Zendesk, HubSpot, Salesforce, or any web page using the Chrome extension."},{question:"Can customers submit feedback themselves?",answer:"Yes. Set up a feedback board where customers submit and vote on the ideas that matter most to them. They use their existing accounts, so there is no extra signup, and you see exactly who asked for what."},{question:"How much does it cost?",answer:"Canny has plans for most companies. You can start free with everything you need to begin collecting feedback. See full details on our pricing page."}],B=(0,n.K)(()=>r.createElement(r.Fragment,null,r.createElement(m,null),r.createElement("main",{className:"overflow-x-hidden bg-white",id:"main"},r.createElement(f.A,{eyebrow:"Collect customer feedback",title:"Catch every piece of feedback, wherever it comes from",subtitle:"Capture it automatically with AI, collect it from your board, and invite your team to add what they hear.",demoButton:"Request a demo",registerButton:"Get started free"}),r.createElement(w.A,null,r.createElement(g.A,{title:"Everything you need to collect feedback from every source"})),L.map((e,t)=>r.createElement(w.A,{key:e.title},r.createElement(y.A,{...e,flip:t%2==1}))),r.createElement(w.A,null,r.createElement(b.A,{eyebrow:"When feedback lives in too many places, the best ideas get lost",quote:"Different teams were using their own methods for collecting feedback. It was scattered across various channels, from Google Sheets to Salesforce.",ctaText:"Read the Knak story",ctaTo:"/case-studies/knak",imageSrc:P(),imageAlt:"Felix Higgs, Senior Customer Success Manager at Knak",imageWidth:507,imageHeight:431,name:"Felix Higgs",role:"Senior Customer Success Manager, Knak"})),r.createElement(w.A,null,r.createElement(p.A,{title:"Bring all your feedback into one place",subtitle:"Start collecting feedback from every source today.",demoButton:"Request a demo",registerButton:"Get started free",microcopy:"Free sign up · No credit card required"})),r.createElement(w.A,null,r.createElement(h.A,{faqs:T})))))},73059(e,t,a){a.r(t),a.d(t,{default:()=>I});var r=a(63696),n=a(89588),o=a(81215),s=a(43963);const i="Canny MCP Server: Customer Feedback in Your AI Tools | Canny",l="Connect Canny's MCP server to ChatGPT, Claude, and Cursor. Ask questions about your customer feedback, act on it, and build it into your workflows.",c="https://canny.io/images/canny-social.png",d="https://canny.io/features/mcp",u=o.A.createGraph([o.A.createWebPage({"@id":`${d}#webpage`,url:d,name:"Canny MCP Server",description:"Canny's MCP server connects your customer feedback to ChatGPT, Claude, and Cursor, so you can ask about feedback, act on it, and build it into your AI workflows.",inLanguage:"en",about:{"@id":"https://canny.io/#app"},isPartOf:{"@id":"https://canny.io/#website"}}),o.A.createNamedItemList(`${d}#capabilities`,"Canny MCP Server Capabilities",[{name:"Connect to Your AI Tools",description:"Add the Canny MCP server to ChatGPT, Claude, or Cursor with a secure sign-in, no API keys or engineering."},{name:"Ask About Your Feedback",description:"Query top themes, ARR impact across ideas, and your roadmap directly from your LLM."},{name:"Act on Feedback from Your LLM",description:"Update statuses, link deal
1s, organize requests, reply to customers, and send conversations to Autopilot."},{name:"Build Feedback into AI Workflows",description:"Use Canny as the data layer to draft PRDs, generate reports, and run agents that act on feedback."}]),o.A.createBreadcrumbList([{name:"Home",item:"https://canny.io/"},{name:"Features",item:"https://canny.io/features"},{name:"MCP",item:d}])]);class m extends r.Component{render(){return r.createElement(s.A,{title:i,meta:[{name:"description",content:l},{property:"og:image",content:c},{property:"og:title",content:i},{property:"og:description",content:l},{property:"og:url",content:d},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:site",content:"@cannyHQ"},{name:"twitter:title",content:i},{name:"twitter:description",content:l},{name:"twitter:image",content:c}]},r.createElement("script",{type:"application/ld+json"},o.A.toString(u)))}}var p=a(53827),h=a(3808),y=a(67465),f=a(19347),g=a(53361),b=a(28859),w=a(61058),v=a.n(w),k=a(94470),A=a.n(k),x=a(84800),C=a.n(x),E=a(88274),q=a.n(E),S=a(85543),N=a.n(S);const P=[{title:"Connect Canny to the AI tools you use",subtitle:"Add Canny's MCP server to ChatGPT, Claude, or Cursor with a secure sign-in. No API keys, no engineering.",image:{src:C(),alt:"Connecting the Canny MCP server to ChatGPT, Claude, and Cursor."}},{title:"Ask anything about your feedback",subtitle:"Ask your LLM what customers asked for and understand the context behind each request. Dig into top themes, ARR impact across ideas, and query your team’s roadmap.",image:{src:q(),alt:"Asking an LLM about customer feedback, themes, and ARR impact through Canny MCP."}},{title:"Make updates in Canny from your LLM",subtitle:"Move ideas through your workflow without leaving your LLM. Update statuses, link deals, organize requests, and reply to customers. Send new conversations to Autopilot to capture feedback you haven’t tracked yet.",image:{src:A(),alt:"Updating idea statuses and linking deals in Canny from an LLM chat."}},{title:"Build feedback into your AI workflows",subtitle:"Use Canny as the data layer for your AI workflows. Draft PRDs from real requests and build the features with Claude, generate reports for leadership, or run agents that act on feedback.",image:{src:N(),alt:"Canny feedback grounding PRDs, reports, and agents in AI workflows."}}],R=[{question:"Which AI tools does the Canny MCP server work with?",answer:"ChatGPT, Claude, and Cursor today, plus other MCP-compatible clients."},{question:"Can it change my feedback, or only read it?",answer:"Both. It can read your feedback and make changes, scoped to your permissions and logged with undo."},{question:"Is my data secure?",answer:"Yes. Setup uses OAuth, access is limited to your existing Canny permissions, and every action is recorded in an audit log."},{question:"What can I ask it to do?",answer:"Canny exposes over 55 tools through MCP. Send conversations to Autopilot, query feedback, themes, roadmap, and revenue context. Then organize feedback, update statuses, link deals, and reply to customers."},{question:"What plan do I need?",answer:"The MCP server is available on any paid plan."},{question:"How long does setup take?",answer:"A couple of minutes. Add the server to your AI tool and sign in, with no engineering."}],I=(0,n.K)(()=>r.createElement(r.Fragment,null,r.createElement(m,null),r.createElement("main",{className:"overflow-x-hidden bg-white",id:"main"},r.createElement(f.A,{eyebrow:"Canny MCP server",title:"Your customer feedback, in every AI tool you use",titleClassName:"max-w-[620px]",subtitle:"Connect Canny to ChatGPT, Claude, and Cursor. Ask questions about customer feedback, take action on it, and ground your AI workflows in real customer data.",demoButton:"Request a demo",registerButton:"Get started free",cost:"No credit card required"}),P.map((e,t)=>r.createElement(b.A,{key:e.title},r.createElement(y.A,{...e,flip:t%2==1}))),r.createElement(b.A,null,r.createElement(g.A,{eyebrow:"Put Claude to work on your feedback",quote:"The Canny MCP is the standout. Being able to unleash the power of Claude on that amazing Canny data.",ctaText:"See how Jane App builds with Canny MCP",ctaTo:"/case-studies/janetechnologies",imageSrc:v(),imageAlt:"Amy-Lynn Taylor, Product Enablement & Insights at Jane App",imageAlign:"bottom",name:"Amy-Lynn Taylor",role:"Product Enablement & Insights, Jane App"})),r.createElement(b.A,null,r.createElement(h.A,{faqs:R})),r.createElement(b.A,null,r.createElement(p.A,{title:"See Canny working inside Claude, ChatGPT, and Cursor",subt
1itle:"See the Canny MCP server in a demo, or get started free.",demoButton:"Request a demo",registerButton:"Get started free"})))))},29888(e,t,a){a.r(t),a.d(t,{default:()=>W});var r=a(63696),n=a(89588),o=a(81215),s=a(43963);const i="Product roadmap software for product teams | Canny",l="Build your product roadmap from feedback you capture automatically, prioritized by ARR and open pipeline. Plan by product area and sync with Jira, Linear, and more.",c="https://canny.io/images/canny-social.png",d="https://canny.io/features/product-roadmap",u=o.A.createGraph([o.A.createWebPage({"@id":`${d}#webpage`,url:d,name:"Product Roadmap Software - Canny",description:"Build your product roadmap from feedback you capture automatically, prioritized by ARR and open pipeline. Plan by product area and sync with Jira, Linear, and more.",inLanguage:"en",about:{"@id":"https://canny.io/#app"},isPartOf:{"@id":"https://canny.io/#website"}}),o.A.createNamedItemList(`${d}#capabilities`,"Product Roadmap Capabilities",[{name:"Prioritize by Revenue",description:"Score features by ARR, open pipeline, and churn risk so the highest-impact work rises to the top of the roadmap."},{name:"Roadmap by Product Area",description:"Give every product area its own roadmap view and roll them up into a company-wide picture."},{name:"Automatic Feedback Capture",description:"Autopilot reads sales and support conversations and fills your roadmap with real demand, sorted by product area."},{name:"Sync with Project Tools",description:"Push your prioritized roadmap into Jira, Linear, Asana, ClickUp, and GitHub, and track progress without chasing updates."}]),o.A.createBreadcrumbList([{name:"Home",item:"https://canny.io/"},{name:"Features",item:"https://canny.io/features"},{name:"Product Roadmap",item:d}])]);class m extends r.Component{render(){return r.createElement(s.A,{title:i,meta:[{name:"description",content:l},{property:"og:image",content:c},{property:"og:title",content:i},{property:"og:description",content:l},{property:"og:url",content:d},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:site",content:"@cannyHQ"},{name:"twitter:title",content:i},{name:"twitter:description",content:l},{name:"twitter:image",content:c}]},r.createElement("script",{type:"application/ld+json"},o.A.toString(u)))}}var p=a(53827),h=a(3808),y=a(67465),f=a(19347),g=a(99619),b=a(38092),w=a(53361),v=a(28859),k=a(89430),A=a(76428),x=a.n(A),C=a(53984),E=a.n(C),q=a(84387),S=a.n(q),N=a(44360),P=a.n(N),R=a(22771),I=a.n(R),z=a(55570),M=a.n(z);const L={title:"Start from real demand, not a blank canvas",subtitle:"Capture the requests hidden in your conversations, who wants them, and what they're worth.",bullets:["Autopilot captures feedback from dozens of sources like Gong, Intercom, and Zendesk","See the ARR, opportunity value, and churn risk behind every request","Every request is automatically sorted by product area, no manual tagging required"],image:{src:x(),alt:"Product roadmap software capturing feedback from many sources, each request tagged with its customer and ARR."}},T={title:"Prioritize features on real revenue, not loudest voice",subtitle:"Build custom scores to automatically weigh revenue and demand against effort, then sort your roadmap by it.",bullets:["Know the exact revenue riding on every feature before it makes the roadmap","Weight by what matters to your business: ARR, closed-lost deals, renewal risk, or any CRM field","Support your sales and CS teams by shipping features that help close deals and renewals"],flip:!0,image:{src:I(),alt:"Roadmap prioritization by revenue, scoring features by ARR and effort."}},B={title:"A separate roadmap for every product area",subtitle:"Each product area gets its own view. Roll them up when you need the full picture.",bullets:["Plan from a whole product area, initiative, or team without losing context","Filter by owner, status, due date, or any custom field","Leadership can see a company-wide roadmap view"],image:{src:E(),alt:"Product roadmap by product area, grouped with due dates visible."}},F={title:"Get alignment across the whole company",subtitle:"When sales and CS know what's coming, they use it. Roadmap visibility closes deals and improves renewals.",bullets:["Invite your GTM team to follow features that impact their accounts","Unlimited contributor seats let them participate without full edit access","One source of truth means no more questions about what's on the roadmap"],flip:!0,image:{src:S(),alt:"Multiple contributors following features on the product roadmap."}},G={title:"Sync with your project management tools",subtitle:"Connect your roadmap to Jira, Linear, Asana, and more.",bullets:["Let your team work in the tools they already use","Push your prioritized roadmap straight into their workflow","Track progress in Canny without chasing PMs for updates"],image:{src:M(),alt:"Product roadmap synced with Jira and Linear."}},H=[{headline:"Feature prioritization backed by real data",quote:"It's a very valuable data source for us when we're evaluating and prioritizing what we're working on.",name:"Liya Ai",role:"Product Operations Manager, CircleCI",imageSrc:k.A.LiyaAi},{headline:"Product roadmap planning in one place",quote:"I didn't expect to use the roadmap as much as I do. Now it's a big part of our planning conversations.",name:"Rachel Schaaf",role:"Senior Director of Partner Success and Technical Support, Jane",imageSrc:k.A.RachelSchaaf}],D=[{question:"What is product roadmap software?",answer:"Product roadmap software helps product teams decide what to build, plan it, and track it through to release. Most tools stop at visualizing a timeline. Canny connects every item on your roadmap to the customer feedback and revenue behind it, so you prioritize by impact instead of guesswork."},{question:"How does Canny use AI to build my roadmap?",answer:"Canny's Autopilot uses AI to read your sales and support conversations across tools like Gong, Intercom, and Zendesk, then pulls out feature requests automatically. It sorts each request by product area and attaches the customer and revenue behind it. Your roadmap fills itself, so you start from real demand instead of a blank page."},{question:"How do I prioritize my product roadmap?",answer:"Build a custom score that weighs revenue and demand against effort, then sort your roadmap by it. Factor in ARR, opportunity value, and how many customers asked, plus any custom field from your CRM like renewal risk. The highest-value work rises to the top, and every roadmap call is backed by real dollars."},{question:"Can I create separate roadmaps for different product areas?",answer:"Yes. Each product area gets its own roadmap view, which you can plan from a whole area down to a single feature. Roll them up into one company-wide view when you need the full picture. Every roadmap stays in sync as work moves forward."},{question:"Does Canny's roadmap sync with Jira and Linear?",answer:"Yes. Canny syncs with Jira, Linear, Asana, ClickUp, GitHub, and more. Push your prioritized plan into the tools your team already works in, and watch status update as the work moves forward. You stay current without chasing anyone for updates."},{question:"Who on my team can access the roadmap?",answer:"Everyone. Canny includes unlimited contributor seats, so your whole GTM and product teams can follow the roadmap and weigh in. Anyone can track the features that impact their work, which keeps every team aligned on what's coming."}],W=(0,n.K)(()=>r.createElement(r.Fragment,null,r.createElement(m,null),r.createElement("main",{className:"overflow-x-hidden bg-white",id:"main"},r.createElement(f.A,{eyebrow:"Product roadmap tools",title:"Build your roadmap around revenue, not guesswork",subtitle:"Automatically capture feedback and turn it into a roadmap prioritized by ARR and open pipeline.",demoButton:"Request a demo",registerButton:"Get started free",cost:"No credit card required"}),r.createElement(v.A,null,r.createElement(g.A,{title:"A roadmap that's informed by what every feature is 
1worth"})),r.createElement(v.A,null,r.createElement(y.A,{...L})),r.createElement(v.A,null,r.createElement(y.A,{...T})),r.createElement(v.A,null,r.createElement(w.A,{eyebrow:"Prioritization, backed by real numbers",quote:"I wanted to put a number on it, to say here's the revenue impact of prioritizing one piece of feedback over another. That's how our product team decides what will have the most impact on the business.",name:"Catherine Elachi",role:"Customer Success and Solutions Engineering Lead, Paces",imageSrc:P(),imageAlt:"Catherine Elachi, Customer Success and Solutions Engineering Lead at Paces",ctaText:"See how Paces prioritizes by revenue",ctaTo:"/case-studies/paces"})),r.createElement(v.A,null,r.createElement(y.A,{...B})),r.createElement(v.A,null,r.createElement(y.A,{...F})),r.createElement(v.A,null,r.createElement(y.A,{...G})),r.createElement(v.A,null,r.createElement(b.A,{title:"Leading companies rely on Canny's product roadmap software",cards:H})),r.createElement(v.A,null,r.createElement(h.A,{faqs:D})),r.createElement(v.A,null,r.createElement(p.A,{title:"Build the roadmap your revenue depends on",subtitle:"Start capturing feedback and prioritizing by impact today.",demoButton:"Request a demo",registerButton:"Get started free"})))))},48757(e,t,a){a.r(t),a.d(t,{default:()=>u});var r=a(63696),n=a(62688),o=a.n(n),s=a(89588),i=a(7231),l=a(64672),c=a(5761);class d extends r.Component{static propTypes={location:o().shape({query:o().shape({code:o().string,error:o().string,error_description:o().string,state:o().string})})};getState(){const{query:e}=this.props.location,{state:t}=e;try{return JSON.parse(t)}catch(e){return null}}componentDidMount(){const{code:e,error:t,error_description:a}=this.props.location.query,r=this.getState();if(!r||!i.A.subdomain(r.subdomain))return void console.error("Missing or invalid subdomain");const{reauth:n,stateID:o,subdomain:s}=r,d=s+".canny.io",u=c.A.stringify({...e&&{code:e},...t&&{error:t},...a&&{errorDescription:a},...n&&{reauth:n},...o&&{stateID:o}}),m=(0,l.A)("https://"+d+"/admin/settings/integrations/salesforce/connection"+u);window.location.replace(m)}render(){return r.createElement("div",null)}}const u=(0,s.K)(d)},9779(e,t,a){a.r(t),a.d(t,{default:()=>Y});var r=a(63696),n=a(29331),o=a(31149),s=a(81205),i=a(69381),l=a(89588),c=a(81215),d=a(43963);const u="Feature request software for product teams | Canny",m="Canny captures feature requests from sales calls, support tickets, and customer conversations. See which ones tie to revenue and ship what closes deals.",p="https://canny.io/images/canny-social.png",h="https://canny.io/use-cases/feature-request-management",y=c.A.createGraph([c.A.createWebPage({"@id":`${h}#webpage`,url:h,name:"Feature Request Software - Canny",description:"Canny captures feature requests from sales calls, support tickets, and customer conversations. See which ones tie to revenue and ship what closes deals.",inLanguage:"en",about:{"@id":"https://canny.io/#app"},isPartOf:{"@id":"https://canny.io/#website"}}),c.A.createNamedItemList(`${h}#benefits`,"Feature Request Management Capabilities",[{name:"Collect Feature Requests",description:"Gather requests from customers via feedback boards, in-app widgets, and integrations with tools like Intercom and Zendesk."},{name:"Organize & Prioritize Requests",description:"Categorize and rank feature requests by customer impact, votes, and strategic value."},{name:"Integrate with Product Workflows",description:"Connect with tools like Jira, Slack, and GitHub to bring feature management into your development process."},{name:"Close the Feedback Loop",description:"Notify customers when their requests are addressed to improve satisfaction and engagement."}]),c.A.createBreadcrumbList([{name:"Home",item:"https://canny.io/"},{name:"Use Cases",item:"https://canny.io/use-cases"},{name:"Feature Request Management",item:h}])]);class f extends r.Component{render(){return r.createElement(d.A,{title:u,meta:[{name:"description",content:m},{property:"og:image",content:p},{property:"og:title",content:u},{property:"og:description",content:m},{property:"og:url",content:h},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:site",content:"@cannyHQ"},{name:"twitter:title",content:u},{name:"twitter:description",content:m},{name:"twitter:image",content:p}]},r.createElement("script",{type:"application/ld+json"},c.A.toString(y)))}}var g=a(49885),b=a(89430),w=a(98848),v=a(53827),k=a(3808),A=a(67465),x=a(19347),C=a(99619),E=a(38092),q=a(28859),S=a(61095),N=a.n(S),P=a(20637),R=a.n(P),I=a(57360),z=a.n(I),M=a(189),L=a.n(M),T=a(22771),B=a.n(T),F=a(66619),G=a.n(F);const H=[{title:"Every feature request in one organized place",subtitle:"See everything customers are asking for in one view your product team works in every day.",bullets:["Replace scattered spreadsheets, Slack threads, and support tickets with a single source of truth","Search, filter, and segment every request to find what matters to your team","Keep requests internal to your team, or publish them to a public board when you want customer input"],image:{src:z(),alt:"Every feature request organized in one place in Canny."}},{title:"Capture every feature request from customer conversations",subtitle:"Most feature requests never make it into a feedback tool. Canny pulls them in automatically from the tools your team already uses.",bullets:["Autopilot reads your sales calls, support conversations, and reviews, then captures every request automatically","Connect Gong, Intercom, Slack, and Zendesk so feedback flows in from the channels customers already use","Automatically group requests into the right product area to keep things organized. Your team controls the taxonomy","Prevent duplicates with AI that merges similar requests for you"],image:{src:N(),alt:"Autopilot capturing feature requests from customer conversations automatically."}},{title:"Let customers share and vote on requests",subtitle:"Give customers a public board to share what they want, vote on what matters, and stay engaged as you build.",bullets:["Embed a public board in your site or app where customers submit and vote on requests","Let customers see what others have asked for and add their voice to existing requests","Reply directly to customers to understand the why behind each request"],image:{src:L(),alt:"Customers sharing and voting on feature requests in a public Canny board."}},{title:"Prioritize the requests that drive revenue",subtitle:"Connect your customer data so each request shows the revenue at stake.",bullets:["See the ARR tied to each request, and whether it came from a customer or a prospect","Create customer segments to filter by enterprise accounts, strategic targets, or any custom fields specific to your business","Rank feedback by revenue impact, not just the loudest voices","Send requests to your product roadmap so the whole team builds in alignment"],image:{src:B(),alt:"Feature requests prioritized by the revenue at stake."}},{title:"Act on your highest-impact requests and close the loop",subtitle:"Turn your top requests into shipped features, and tell the people who asked.",bullets:["Sync requests and statuses to Jira, Linear, Asana, ClickUp, and GitHub so everyone sees where each request stands","Notify account owners automatically when the features they requested ship","Share progress through product announcements and a public roadmap to keep users updated","Export the list of customers who asked for a feature so go-to-market teams can spread the launch"],image:{src:R(),alt:"Notifying customers automatically when the feature they requested ships."}}],D=[{headline:"Document360 manages huge numbers of incoming feature requests with Canny",quote:"When we started to see phenomenal growth, the number of feature requests dramatically increased. We couldn't manage it. What's more, we couldn't keep our users updated. That's when we turned to Canny.",name:"Saravana Kumar",role:"Founder, Document360",imageSrc:b.A.SaravanaKumar},{headline:"Missive drives product improvement by centralizing feature requests",quote:"Having that central repository of feature requests is super valuable. This repository becomes a decision making tool for the roadmap. It's also a way to brainstorm about new things and new features.",name:"Philippe Lehoux",role:"CEO, Missive",imageSrc:b.A.PhilippeLehoux},{headline:"GiveButter improves customer satisfaction by building the features they care about",quote:"Canny gives us a strong sense of what customers want, both on the big picture features and quality of life ones. The latter makes customers' daily usage of GiveButter easier and more efficient.",name:"Jesse Sandala",role:"Director of Product Management, GiveButter",imageSrc:b.A.JesseSandala}],W=[{title:"Collect feedback",description:"Automatically capture feedback in a central location, so nothing is missed.",to:"/features/collect-feedback",icon:n.A},{title:"Analyze feedback",description:"Uncover valuable customer insights to make better product decisions.",to:"/features/analyze-feedback",icon:o.A},{title:"Plan roadmap",description:"Rank features by priority and build your product roadmap.",to:"/features/product-roadmap",
1icon:s.A},{title:"Share updates",description:"Build a public changelog to keep your audience informed and engaged.",to:"/features/product-changelog",icon:i.A}],j=[{question:"What is feature request software?",answer:"Feature request software gives product teams one place to collect, organize, and prioritize the features customers ask for. The best tools go further: they capture requests automatically from sales and support conversations, connect each request to the revenue at stake, and close the loop when features ship. Canny does all of this in one system."},{question:"How does Canny prevent duplicate feature requests?",answer:"Canny deduplicates in two ways. When a customer submits a request on your public board, Canny suggests similar existing requests so they can vote on one instead of creating a copy. When Autopilot captures feedback from calls, conversations, and reviews, it adds the context to the matching request rather than creating a new one. AI deduplication runs across both sources."},{question:"How do you prioritize feature requests?",answer:"Start by gathering every request in one place, then weigh each one by impact rather than volume alone. With Canny, you can see the ARR tied to a request, which segment it came from, and whether it is blocking a deal, so you prioritize the features that drive the most revenue instead of the ones that are loudest in your inbox."},{question:"Is Canny just a feature request tool?",answer:"No. Canny is a customer intelligence platform for product teams. You capture requests from customers, prospects, and your own team, organized automatically into one place your product team works in. From there you prioritize by revenue impact, sync to your project management tool, share a public roadmap, and publish product announcements through changelog."},{question:"How does Canny handle feature request tracking and collection?",answer:"Canny captures requests from every source and organizes them automatically:",bullets:["Give customers a public board to submit and vote on requests directly.","Connect support tools like Intercom and Zendesk so reps can log requests for customers.","Connect your CRM so sales can capture requests inside HubSpot or Salesforce.","Use Autopilot to pull requests from calls, conversations, and reviews, routing each one to the right product area or team."]}],Y=(0,l.K)(()=>r.createElement(r.Fragment,null,r.createElement(f,null),r.createElement("main",{className:"overflow-x-hidden bg-white",id:"main"},r.createElement(x.A,{eyebrow:"Feature request software",title:"See which feature requests will close deals",subtitle:"Capture every request from your sales calls, support tickets, and customer conversations, and build what drives revenue.",demoButton:"Request a demo",registerButton:"Get started",cost:"No credit card required",align:"split",media:r.createElement(g.A,{src:G(),alt:"Canny feature request software capturing and organizing customer requests.",className:"mx-auto w-full max-w-[400px] rounded-xl",loading:"eager"})}),r.createElement(q.A,null,r.createElement(C.A,{title:"Your dedicated tool for feature request management"})),H.map((e,t)=>r.createElement(q.A,{key:e.title},r.createElement(A.A,{...e,flip:t%2==1}))),r.createElement(q.A,null,r.createElement(E.A,{title:"Thousands of companies make managing feature requests easy with Canny",cards:D})),r.createElement(q.A,null,r.createElement(k.A,{faqs:j})),r.createElement(q.A,null,r.createElement(w.A,{title:"Explore the customer feedback cycle",links:W})),r.createElement(q.A,null,r.createElement(v.A,{title:"Build the features your customers are asking for",demoButton:"Request a demo",registerButton:"Get started",microcopy:"Free sign up · No credit card required"})))))},99315(e,t,a){a.r(t),a.d(t,{default:()=>L});var r=a(63696),n=a(89588),o=a(81215),s=a(43963);const i="Idea Management Software | Canny",l="Canny's idea management software gathers ideas from customer conversations, your team, and your CRM, so you can prioritize and ship what drives revenue.",c="https://canny.io/images/canny-social.png",d="https://canny.io/use-cases/idea-management",u=o.A.createGraph([o.A.createWebPage({"@id":`${d}
1#webpage`,url:d,name:"Idea Management Software - Canny",description:"Canny's idea management software gathers ideas from customer conversations, your team, and your CRM, so you can prioritize and ship what drives revenue.",inLanguage:"en",about:{"@id":"https://canny.io/#app"},isPartOf:{"@id":"https://canny.io/#website"}}),o.A.createNamedItemList(`${d}#capabilities`,"Idea Management Capabilities",[{name:"Collect Ideas from Multiple Sources",description:"Capture ideas through feedback boards, integrations, and in-app submissions to centralize innovation."},{name:"Organize and Evaluate Ideas",description:"Use tagging, segmentation, and prioritization tools to evaluate ideas based on impact and feasibility."},{name:"Prioritize High-Impact Initiatives",description:"Rank ideas by votes, customer value, and strategic alignment to focus on the most impactful work."},{name:"Close the Loop with Stakeholders",description:"Communicate progress and updates back to users to show their ideas drive product improvements."}]),o.A.createBreadcrumbList([{name:"Home",item:"https://canny.io/"},{name:"Use Cases",item:"https://canny.io/use-cases"},{name:"Idea Management",item:d}])]);class m extends r.Component{render(){return r.createElement(s.A,{title:i,meta:[{name:"description",content:l},{property:"og:image",content:c},{property:"og:title",content:i},{property:"og:description",content:l},{property:"og:url",content:d},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:site",content:"@cannyHQ"},{name:"twitter:title",content:i},{name:"twitter:description",content:l},{name:"twitter:image",content:c}]},r.createElement("script",{type:"application/ld+json"},o.A.toString(u)))}}var p=a(89430),h=a(53827),y=a(3808),f=a(67465),g=a(19347),b=a(99619),w=a(38092),v=a(28859),k=a(9258),A=a.n(k),x=a(76428),C=a.n(x),E=a(89788),q=a.n(E),S=a(32301),N=a.n(S),P=a(22771),R=a.n(P);const I=[{title:"One organized home for every idea",subtitle:"Canny Ideas is the internal workspace for every idea, organized by product area and team.",bullets:["Every idea is triaged automatically to the right product area, into a structure your team controls","Related ideas connect automatically, so duplicates collapse into one clear signal","Keep ideas internal, or publish any idea to Portal for customer feedback","Create segments and views to focus on key customers and team objectives"],image:{src:N(),alt:"Every idea organized by product area and owner in Canny Ideas."}},{title:"Capture every idea, wherever it starts",subtitle:"Ideas come from everywhere: sales calls, CS check-ins, your own team, and executive strategy. Canny brings them into one place.",bullets:["Autopilot captures feedback from Gong, Intercom, Zendesk, and dozens of other sources","Your team adds ideas directly in Canny or from Slack where product conversations are already happening","Sales notes and opportunities flow in from Salesforce and HubSpot, revenue context attached","Customers share and vote on ideas through a public Portal"],flip:!0,image:{src:C(),alt:"Ideas captured from conversations, your team, and your CRM in one place."}},{title:"Build for revenue, not the loudest voice",subtitle:"The loudest request is rarely the most valuable. Canny ranks ideas by what they're worth.",bullets:["See the ARR, opportunity value, and customer demand behind every idea","Build custom scores from the factors your team weighs most","Create roadmap views that rank the highest-value ideas at the top"],image:{src:R(),alt:"Ideas ranked by revenue, opportunity value, and customer demand."}},{title:"Innovate from feedback, not in a silo",subtitle:"Good ideation starts with what customers tell you, not a brainstorm in a vacuum.",bullets:["Add context to ideas with notes, files, and links, and connect the customers asking","Engage customers directly through Portal to learn what they actually want","Co-create with customers instead of guessing what they want","Your whole team shapes ideas in one place, not scattered across docs"],flip:!0,image:{src:q(),alt:"Teams and customers shaping ideas together in Canny."}},{title:"Ship ideas, then close the loop",subtitle:"An idea isn't done when you decide to build it. Keep stakeholders updated as you progress.",bullets:["Sync ideas with Linear, Jira, or ClickUp to pull in engineering updates","Show customers what you're building and what's next on a public roadmap","Notify customers through changelog the moment their idea ships","Stakeholders see every status change without another status meeting"],image:{src:A(),alt:"Customers notified through changelog the moment their idea ships."}}],z=[{headline:"CircleCI uses Canny's collaborative idea management systems to foster open innovation",quote:"[The product managers are] really able to go in and own that experience with their users. It's definitely driven a lot of their product decisions.",name:"Liya Ai",role:"Product Operations Manager, CircleCI",imageSrc:p.A.LiyaAi},{headline:"Canny helps Axios drive innovation and identify their most promising ideas",quote:"Canny made the most important and urgent user feedback stand out, so we could innovate our product and deliver an even better experience for our audience.",name:"Marcus Moretti",role:"Product Development Lead, Axios",imageSrc:p.A.MarcusMoretti}],M=[{question:"How much does it cost?",answer:"You can start free and manage ideas right away. For teams with a more involved process, paid plans add advanced features and integrations. See the pricing page, or talk to our team."},{question:"How do I collect ideas using Canny?",answer:"Several ways. Ideas come in from customer conversations through Autopilot, from your CRM, from your team in Slack or directly in Canny, and from customers on a public Portal. It all lands in one place, organized and ready to prioritize."},{question:"What integrations does Canny offer?",answer:"Canny connects to the tools your team already uses: Gong, Intercom, Zendesk, Slack, Salesforce, HubSpot, Linear, Jira, and more. See the full list on our integrations page."},{question:"Can Canny help my innovation process?",answer:"Yes, by grounding it in what customers actually say. Capture feedback as i
1deas, dig deeper with the customers who raised them, and develop the strongest ones with your team. Keep ideas internal while you explore them, then share to a public Portal when you want their input. The result is innovation built on real demand, not guesswork."},{question:"How can you help me prioritize ideas?",answer:"Rank ideas by what they’re worth to the business. Build custom scores from the factors you choose, like ARR, opportunity value, effort, and customer demand. Then focus on the highest-scoring ideas first, with revenue in full view."}],L=(0,n.K)(()=>r.createElement(r.Fragment,null,r.createElement(m,null),r.createElement("main",{className:"overflow-x-hidden bg-white",id:"main"},r.createElement(g.A,{eyebrow:"Idea management software",title:"Ideas from every source in one place to inform what you build next",subtitle:"Capture ideas from customer conversations, your team, and your CRM. Organize, prioritize, and ship what drives revenue.",demoButton:"Request a demo",registerButton:"Get started free",cost:"No credit card required",align:"split",media:r.createElement("div",{className:"aspect-video w-full"},r.createElement("iframe",{className:"size-full",src:"https://www.youtube.com/embed/qIncgzv9t2E?si=HxybF49F-hE7ALjN",title:"YouTube video player",frameBorder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture;",allowFullScreen:!0}))}),r.createElement(v.A,null,r.createElement(b.A,{title:"Capture, organize, and collaborate on the most valuable ideas"})),I.map(e=>r.createElement(v.A,{key:e.title},r.createElement(f.A,{...e}))),r.createElement(v.A,null,r.createElement(w.A,{title:"A few of the companies who use Canny's idea software",cards:z})),r.createElement(v.A,null,r.createElement(y.A,{faqs:M})),r.createElement(v.A,null,r.createElement(h.A,{title:"Bring every idea into one workspace",demoButton:"Request a demo",registerButton:"Get started free",microcopy:"Free sign up · No credit card required"})))))},80022(e,t,a){a.r(t),a.d(t,{default:()=>F});var r=a(63696),n=a(29331),o=a(81205),s=a(69381),i=a(89588),l=a(81215),c=a(43963);const d="Public Roadmap Tool | Canny",u="Build a public roadmap with Canny. Show customers what you're planning, let them vote on priorities, and keep every status current automatically.",m="https://canny.io/images/canny-social.png",p="https://canny.io/use-cases/public-roadmap",h=l.A.createGraph([l.A.createWebPage({"@id":`${p}#webpage`,url:p,name:"Public Roadmap - Canny",description:"Share your product vision and upcoming features with Canny's public roadmap to increase transparency and engage your users.",inLanguage:"en",about:{"@id":"https://canny.io/#app"},isPartOf:{"@id":"https://canny.io/#website"}}),l.A.createNamedItemList(`${p}#capabilities`,"Public Roadmap Capabilities",[{name:"Showcase Product Vision",description:"Share your long-term product plans to keep users informed about what's coming next."},{name:"Collect Feedback on Roadmap Items",description:"Enable customers to engage with roadmap items by voting and commenting on planned features."},{name:"Increase Transparency with Customers",description:"Build trust by making development priorities visible and explaining your decision-making process."},{name:"Close the Feedback Loop",description:"Notify users when roadmap items progress, ensuring they see their input reflected in your product."}]),l.A.createBreadcrumbList([{name:"Home",item:"https://canny.io/"},{name:"Use Cases",item:"https://canny.io/use-cases"},{name:"Public Roadmap",item:p}])]);class y extends r.Component{render(){return r.createElement(c.A,{title:d,meta:[{name:"description",content:u},{property:"og:image",content:m},{property:"og:title",content:d},{property:"og:description",content:u},{property:"og:url",content:p},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:site",content:"@cannyHQ"},{name:"twitter:title",content:d},{name:"twitter:description",content:u},{name:"twitter:image",content:m}]},r.createElement("script",{type:"application/ld+json"},l.A.toString(h)))}}
1var f=a(49885),g=a(98848),b=a(53827),w=a(3808),v=a(67465),k=a(19347),A=a(53361),x=a(28859),C=a(73488),E=a.n(C),q=a(39599),S=a.n(q),N=a(91904),P=a.n(N),R=a(94667),I=a.n(R),z=a(87395),M=a.n(z);const L=[{title:"A roadmap built from real customer feedback",subtitle:"Your public roadmap stays connected to the feedback you manage in Canny.",bullets:["Customers submit and vote on the feedback that fills your roadmap","Push the feedback you choose to your Portal, and keep the rest private","See the customers and votes behind every roadmap item","Change a status in Ideas and your public roadmap follows"],image:{src:E(),alt:"A public roadmap connected to the feedback managed in Canny."}},{title:"Keep customers engaged as you build",subtitle:"Let users who requested features track progress as they move through your roadmap.",bullets:["Notify the customers who requested a feature as it moves forward",'Cut repetitive "when is this coming?" tickets with a roadmap that stays current',"Build anticipation for features before they even ship","Let customers share feedback and ask questions about features"],image:{src:S(),alt:"Customers tracking the progress of requested features on a public roadmap."}},{title:"Transparency that builds trust",subtitle:"When customers see you act on their feedback, they trust you and they stay.",bullets:["Make your roadmap public to show you're customer-driven","Inspire confidence in your product's plan","Support renewals and retention with a roadmap customers can see","Boost NPS and CSAT scores"],image:{src:P(),alt:"A public roadmap building customer trust and confidence."}}],T=[{question:"What is a public roadmap?",answer:"A public roadmap is a shareable view of what your team is planning, building, and shipping. Customers can see what's coming, vote on what matters to them, and watch their feedback progress."},{question:"Is Canny just a public roadmap tool?",answer:"No. The public roadmap is one part of Canny. Canny is a customer intelligence platform for product teams. It captures feedback from your sales and support conversations, organizes it, connects it to revenue, and helps you decide what to build. The public roadmap is how you share those decisions with customers."},{question:"How does the roadmap stay up to date?",answer:"Manage feedback in Canny as you normally would. When you update an idea's status, your Portal and public roadmap can update to match, so customers always see the current state."},{question:"How much does it cost?",answer:"You can build a public roadmap on Canny's free plan. When you need more power and integrations, paid plans are Pro and Business."},{question:"How many team members can use Canny?",answer:"As many as you want. Every Canny plan includes unlimited contributors, so you can bring in product, support, sales, design, and engineering."}],B=[{title:"Portal",description:"See how customers submit and vote on feedback.",to:"/features/collect-feedback",icon:n.A},{title:"Product roadmap",description:"Plan what to build next.",to:"/features/product-roadmap",icon:o.A},{title:"Changelog",description:"Announce what you've shipped.",to:"/features/product-changelog",icon:s.A}],F=(0,i.K)(()=>r.createElement(r.Fragment,null,r.createElement(y,null),r.createElement("main",{className:"overflow-x-hidden bg-white",id:"main"},r.createElement(k.A,{eyebrow:"Public roadmap tool",title:"Let customers see and shape your roadmap",subtitle:"Share the features you're planning and let customers vote on what matters most.",demoButton:"Request a demo",registerButton:"Get started",align:"split",media:r.createElement(f.A,{src:I(),alt:"Canny public roadmap showing planned, in-progress, and shipped features.",className:"mx-auto w-full max-w-[400px] rounded-xl",loading:"eager"})}),L.map((e,t)=>r.createElement(x.A,{key:e.title},r.createElement(v.A,{...e,flip:t%2==1}))),r.createElement(x.A,null,r.createElement(A.A,{eyebrow:"Show the world what you're building",quote:"Our Canny roadmap is public, so the whole world can see what we're building. It adds credibility and instills trust.",ctaText:"See how Document360 built the
1ir public roadmap",ctaTo:"/case-studies/document360",imageSrc:M(),imageAlt:"Saravana Kumar, Founder of Document360",imageWidth:533,imageHeight:607,name:"Saravana Kumar",role:"Founder, Document360"})),r.createElement(x.A,null,r.createElement(w.A,{faqs:T})),r.createElement(x.A,null,r.createElement(g.A,{title:"Explore the customer feedback cycle",links:B})),r.createElement(x.A,null,r.createElement(b.A,{title:"Build a public roadmap your customers will actually follow",demoButton:"Request a demo",registerButton:"Get started free",microcopy:"Free sign up · No credit card required"})))))},59676(e,t,a){a.d(t,{A:()=>u});var r=a(63696),n=a(74334),o=a(23608),s=a(69971),i=a(69944),l=a(9048);const c={small:"px-2",default:"px-3",large:"px-4"},d={small:"xsmall",default:"xsmall",large:"default"},u=r.forwardRef(({onChange:e,size:t,showStrengthMeter:a=!0,showPasswordToggle:u=!1,...m},p)=>{const[h,y]=(0,r.useState)("string"==typeof m.defaultValue?m.defaultValue:""),[f,g]=(0,r.useState)(!1),b=f?i.A:l.A;return r.createElement(r.Fragment,null,r.createElement(s.A,{...m,size:t,type:f?"text":"password",buttonSuffix:u,ref:p,onChange:t=>{y(t),e?.(t)},suffix:u?r.createElement(o.A,{type:"button",variant:"plain",size:d[t??"default"],iconOnly:!0,disabled:m.disabled,"aria-label":f?"Hide password":"Show password","aria-pressed":f,onClick:()=>g(e=>!e)},r.createElement(b,null)):null}),a&&r.createElement(n.A,{password:h,className:c[t??"default"]}))})},3459(e,t,a){a.d(t,{A:()=>b});var r=a(63696),n=a(18628),o=a(6992),s=a(80718);const i=(0,r.forwardRef)(({className:e,...t},a)=>r.createElement("fieldset",{ref:a,"data-slot":"field-set",className:(0,o.cn)("flex flex-col gap-6","has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3",e),...t})),l=(0,r.forwardRef)(({className:e,variant:t="legend",...a},n)=>r.createElement("legend",{ref:n,"data-slot":"field-legend","data-variant":t,className:(0,o.cn)("mb-3 font-medium","data-[variant=legend]:text-base","data-[variant=label]:text-sm",e),...a})),c=(0,r.forwardRef)(({className:e,...t},a)=>r.createElement("div",{ref:a,"data-slot":"field-group",className:(0,o.cn)("box-border group/field-group @container/field-group flex w-full flex-col gap-4 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4",e),...t})),d=(0,n.tv)({base:"group/field flex w-full gap-2 data-[invalid=true]:text-destructive",variants:{orientation:{vertical:["flex-col [&>*]:w-full [&>.sr-only]:w-auto"],horizontal:["flex-row items-center","[&>[data-slot=field-label]]:flex-auto","has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"],responsive:["flex-col [&>*]:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto","@md/field-group:[&>[data-slot=field-label]]:flex-auto","@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"]}},defaultVariants:{orientation:"vertical"}}),u=(0,r.forwardRef)(({className:e,orientation:t="vertical",...a},n)=>r.createElement("div",{ref:n,role:"group","data-slot":"field","data-orientation":t,className:(0,o.cn)(d({orientation:t}),e),...a}));u.displayName="Field";const m=(0,r.forwardRef)(({className:e,...t},a)=>r.createElement("div",{ref:a,"data-slot":"field-content",className:(0,o.cn)("group/field-content flex flex-1 flex-col gap-1.5 leading-snug",e),...t}));m.displayName="FieldContent";const p=(0,r.forwardRef)(({className:e,required:t,children:a,...n},s)=>r.createElement("label",{ref:s,"data-slot":"field-label",className:(0,o.cn)("group/field-label text-base font-medium peer/field-label flex w-fit leading-snug group-data-[disabled=true]/field:opacity-50","has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-4","has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10",{'after:content-["*"] after:text-destructive after:ml-0.5':t},e),...n},a));p.displayName="FieldLabel";const h=(0,r.forwardRef)(({className:e,...t},a)=>r.createElement("div",{ref:a,"data-slot":"field-label",className:(0,o.cn)("flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50",e),...t}));h.displayName="FieldTitle";const y=(0,r.forwardRef)(({className:e,...t},a)=>r.createElement("p",{ref:a,"data-slot":"field-description",className:(0,o.cn)("text-secondary-foreground text-sm leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance","last:mt-0 [[data-variant=legend]+&]:-mt-1.5","[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",e),...t}));y.displayName="FieldDescription";const f=(0,r.forwardRef)(({children:e,className:t,...a},n)=>r.createElement("div",{ref:n,"data-slot":"field-separator","data-content":!!e,className:(0,o.cn)("relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2",t),...a},r.createElement(s.w,{className:"absolute inset-0 top-1/2"}),e&&r.createElement("span",{className:"bg-background text-muted-foreground relative mx-auto block w-fit px-2","data-slot":"field-separator-content"},e)));f.displayName="FieldSeparator";const g=(0,r.forwardRef)(({className:e,children:t,errors:a,...n},s)=>{const i=(0,r.useMemo)(()=>t||(a?1===a?.length&&a[0]?.message?a[0].message:r.createElement("ul",{className:"ml-4 flex list-disc flex-col gap-1"},a.map((e,t)=>e?.message&&r.createElement("li",{key:t},e.message))):null),[t,a]);return i?r.createElement("div",{ref:s,role:"alert","data-slot":"field-error",className:(0,o.cn)("text-destructive text-sm font-normal",e),...n},i):null});g.displayName="FieldError";const b=Object.assign(u,{Content:m,Description:y,Error:g,Group:c,Label:p,Legend:l,Separator:f,Set:i,Title:h})},89199(e,t,a){a.d(t,{A:()=>
1o});var r=a(63696),n=a(6992);const o=(0,r.forwardRef)(({children:e,className:t,...a},o)=>r.createElement("div",{ref:o,className:(0,n.cn)("flex flex-row",t),...a},e))},69971(e,t,a){a.d(t,{A:()=>l});var r=a(63696),n=a(18628),o=a(6992),s=a(41196);const i=(0,n.tv)({slots:{base:["flex w-full gap-1 items-center box-border bg-transparent dark:bg-input/30"],icon:"text-secondary-foreground pointer-events-none shrink-0",input:"h-full w-full p-0 border-none outline-none bg-transparent placeholder:text-placeholder placeholder:select-none",prefix:"flex items-center text-secondary-foreground",suffix:"flex items-center text-secondary-foreground"},variants:{variant:{default:{base:"input-border input-disabled"},opaque:{base:"input-border input-disabled bg-background"},unstyled:{base:"bg-transparent dark:bg-transparent"}},size:{small:{base:"h-7 px-2 rounded-sm",input:"text-base"},default:{base:"h-8 px-3 rounded-sm",input:"text-base"},large:{base:"h-11 px-4 rounded text-lg",input:""}},buttonSuffix:{true:"",false:""}},compoundVariants:[{size:"small",class:{icon:"size-3.5"}},{size:"default",class:{icon:"size-4"}},{size:"large",class:{base:"gap-2",icon:"size-4"}},{buttonSuffix:!0,size:"small",class:{base:"pr-1"}},{buttonSuffix:!0,size:"default",class:{base:"pr-1.5"}},{buttonSuffix:!0,size:"large",class:{base:"pr-2"}},{variant:"unstyled",class:{base:"h-auto border-none py-0 px-0"}}],compoundSlots:[{slots:["base","input","prefix","suffix"],size:"default",class:"text-base leading-4.5"},{slots:["base","input","prefix","suffix"],size:"large",class:"text-lg leading-6"}],defaultVariants:{size:"default",variant:"default",buttonSuffix:!1}}),l=(0,s.xJ)(({onChange:e,startIcon:t,type:a="text",size:n,prefix:s,suffix:l,variant:c,buttonSuffix:d,autoFocus:u,...m},p)=>{const h=i({size:n,variant:c,buttonSuffix:d});return r.createElement("div",{className:(0,o.cn)(h.base())},t?r.createElement(t,{className:(0,o.cn)(h.icon())}):null,s&&r.createElement("div",{className:(0,o.cn)(h.prefix())},s),r.createElement("input",{ref:p,className:(0,o.cn)(h.input()),onChange:t=>e?.(t.target.value),type:a,autoFocus:u,...m}),l&&r.createElement("div",{className:(0,o.cn)(h.suffix())},l))})},80718(e,t,a){a.d(t,{w:()=>s});var r=a(63696),n=a(79675),o=a(6992);function s({className:e,orientation:t="horizontal",decorative:a=!0,...s}){return r.createElement(n.b,{decorative:a,orientation:t,className:(0,o.cn)("bg-border shrink-0 ","data-[orientation=horizontal]:h-px","data-[orientation=horizontal]:w-full","data-[orientation=vertical]:h-full","data-[orientation=vertical]:w-px",e),...s})}},95973(e,t,a){a.d(t,{A:()=>o});var r=a(63696),n=a(6992);const o=(0,r.forwardRef)(({children:e,className:t,...a},o)=>r.createElement("div",{ref:o,className:(0,n.cn)("flex flex-col",t),...a},e))},41196(e,t,a){a.d(t,{DR:()=>o,xJ:()=>n});var r=a(63696);function n(e){return r.forwardRef(e)}function o(e,t){const a=(0,r.useRef)(null),n=(0,r.useRef)(!1);(0,r.useEffect)(()=>{e&&!n.current&&a.current&&function(e){const t=function(e){let t=e.parentElement;for(;t;){const{overflowY:e}=window.getComputedStyle(t);if(("auto"===e||"scroll"===e)&&t.scrollHeight>t.clientHeight)return t;t=t.parentElement}return null}(e);if(!t)return;const a=e.getBoundingClientRect(),r=t.getBoundingClientRect().top+t.clientTop,n=r+t.clientHeight;a.top<r?t.scrollTop-=r-a.top:a.bottom>n&&(t.scrollTop+=a.bottom-n)}(a.current),n.current=!1},[e]);const o=(0,r.useCallback)(e=>{a.current=e,"function"==typeof t?t(e):t&&(t.current=e)},[t]);return{markPointerHighlight:(0,r.useCallback)(()=>{n.current=!0},[]),setRef:o}}},61e3(e,t,a){a.d(t,{Ay:()=>s,hD:()=>r,wO:()=>o});class r extends Error{constructor(e,t){super(t),this.type=e,this.name="MutationError"}}const n={default:"Something went wrong, please try again later.","slow down":"Too many requests, please try again later."},o=e=>"success"===e;function s(e,{errors:t={},isSuccessful:a}){const r={...n,...t},o=r.default||"Something went wrong, please try again later";try{const t=(e=>{try{return JSON.parse(e)}catch(t){return e}})(e);if(a(t))return{parsedResponse:t,error:null};const{error:n}=t;if(!n)throw new Error(`Response parsing error. Response: "${e}"`);return{parsedResponse:null,error:{type:n,message:r[n]??o}}}catch(e){return{parsedResponse:null,error:{type:"default",message:o}}}}},98848(e,t,a){a.d(t,{A:()=>i});var r=a(63696),n=a(18628),o=a(30253);const s=(0,n.tv)({slots:{section:"box-border mx-auto w-[90%] max-w-7xl py-12 md:py-16",header:"mx-auto mb-8 max-w-[700px] text-center",title:"text-3xl font-semibold tracking-tight text-balance text-foreground md:text-4xl",subtitle:"mt-3 text-lg text-pretty text-secondary-foreground",grid:"grid grid-cols-1 gap-4 sm:grid-cols-2",card:"box-border flex h-full flex-col gap-3 rounded-2xl base-border bg-background p-6 no-underline",iconWrap:"flex size-10 items-center justify-center rounded-lg bg-indigo-30",icon:"size-6 text-primary",cardTitle:"text-lg font-semibold",cardDescription:"text-base"},variants:{fiveUp:{true:{grid:"lg:grid-cols-5",card:"p-5",cardTitle:"text-pretty",cardDescription:"text-pretty"},false:{grid:"lg:grid-cols-4"}},interactive:{true:{card:"transition-colors hover:bg-gray-20"}},active:{true:{card:"border-transparent bg-primary hover:bg-primary",iconWrap:"bg-white",cardTitle:"text-primary-foreground",cardDescription:"text-primary-foreground"},false:{cardTitle:"text-foreground",cardDescription:"text-secondary-foreground"}}}}
1),i=({title:e,subtitle:t,links:a,activeIndex:n})=>{const i=5===a.length,l=s({fiveUp:i});return r.createElement("section",{className:l.section()},r.createElement("div",{className:l.header()},r.createElement("h2",{className:l.title()},e),t?r.createElement("p",{className:l.subtitle()},t):null),r.createElement("div",{className:l.grid()},a.map(({title:e,description:t,to:a,icon:l},c)=>{const d=c===n,u=s({active:d,interactive:!!a&&!d,fiveUp:i}),m=r.createElement(r.Fragment,null,r.createElement("span",{className:u.iconWrap()},r.createElement(l,{"aria-hidden":!0,className:u.icon()})),r.createElement("span",{className:u.cardTitle()},e),r.createElement("span",{className:u.cardDescription()},t));return d?r.createElement("div",{className:u.card(),key:e,"aria-current":"page"},m):a?r.createElement(o.A,{className:u.card(),key:e,to:a},m):r.createElement("div",{className:u.card(),key:e,"aria-current":d?"page":void 0},m)})))}},3808(e,t,a){a.d(t,{A:()=>d});var r=a(63696),n=a(46359),o=a(18628),s=a(43963),i=a(81215);const l=(0,o.tv)({slots:{section:"box-border mx-auto w-[90%] max-w-3xl py-12 md:py-16",title:"mb-8 text-center text-3xl font-semibold tracking-tight text-balance text-foreground md:text-4xl",list:"flex flex-col",item:"group border-b border-border py-4",summary:["flex cursor-pointer list-none items-center justify-between gap-4 text-lg font-semibold","text-foreground [&::-webkit-details-marker]:hidden"],chevron:"size-5 shrink-0 text-secondary-foreground transition-transform group-open:rotate-180",answer:"mt-3 text-base text-pretty text-secondary-foreground",answerList:"mt-3 list-disc space-y-2 pl-5 text-base text-pretty text-secondary-foreground"}}),c=({answer:e,bullets:t,footer:a})=>[e,...t??[],a].filter(Boolean).join(" "),d=({title:e="Frequently asked questions",faqs:t})=>{const a=l(),o=i.A.toString(i.A.createFAQPage(t.map(e=>({question:e.question,answer:c(e)}))));return r.createElement("section",{className:a.section()},r.createElement(s.A,null,r.createElement("script",{type:"application/ld+json"},o)),r.createElement("h2",{className:a.title()},e),r.createElement("div",{className:a.list()},t.map(({question:e,answer:t,bullets:o,footer:s})=>r.createElement("details",{key:e,className:a.item()},r.createElement("summary",{className:a.summary()},e,r.createElement(n.A,{"aria-hidden":!0,className:a.chevron()})),r.createElement("p",{className:a.answer()},t),o&&o.length>0?r.createElement("ul",{className:a.answerList()},o.map((e,t)=>r.createElement("li",{key:t},e))):null,s?r.createElement("p",{className:a.answer()},s):null))))}},67465(e,t,a){a.d(t,{A:()=>i});var r=a(63696),n=a(18628),o=a(49885);const s=(0,n.tv)({slots:{section:"box-border mx-auto w-[90%] max-w-7xl py-12 md:py-16",grid:"grid grid-cols-1 items-center gap-10 lg:grid-cols-2 lg:gap-16",copy:"flex flex-col gap-4 lg:-translate-y-6",title:"max-w-[700px] text-3xl font-semibold tracking-tight text-balance text-foreground md:text-5xl",subtitle:"text-lg text-pretty text-secondary-foreground md:text-xl",list:"mt-2 list-disc space-y-2 pl-5 text-lg text-secondary-foreground md:text-xl",item:"text-pretty pl-1",media:"flex w-full justify-center",image:"w-full max-w-xl object-contain"},variants:{flip:{true:{copy:"lg:order-2",media:"lg:order-1"}}}}),i=({title:e,subtitle:t,bullets:a=[],image:n,flip:i=!1})=>{const l=s({flip:i});return r.createElement("section",{className:l.section()},r.createElement("div",{className:l.grid()},r.createElement("div",{className:l.copy()},r.createElement("h2",{className:l.title()},e),t?r.createElement("p",{className:l.subtitle()},t):null,a.length>0?r.createElement("ul",{className:l.list()},a.map((e,t)=>r.createElement("li",{className:l.item(),key:t},e))):null),r.createElement("div",{className:l.media()},r.createElement(o.A,{src:n.src,alt:n.alt,className:l.image({className:n.className}),loading:"lazy"}))))}},19347(e,t,a){a.d(t,{A:()=>d});var r=a(63696),n=a(95181),o=a(19785),s=a(18628),i=a(58996),l=a(39604);const c=(0,s.tv)({slots:{section:"box-border w-full py-12 md:py-16",inner:"mx-auto w-[90%] max-w-7xl",content:"flex flex-col gap-4",eyebrow:"w-fit rounded bg-indigo-30 px-3 py-2 text-base font-semibold text-indigo-100",title:"max-w-[700px] text-4xl font-bold tracking-tight text-balance text-foreground md:text-6xl",subtitle:"max-w-2xl text-lg text-balance text-secondary-foreground md:text-2xl",ctas:["mt-2 flex w-full flex-col items-stretch gap-3","sm:w-auto 
1sm:flex-row sm:flex-wrap sm:items-center"],cost:"flex items-center gap-2 text-base text-secondary-foreground",media:"w-full"},variants:{align:{center:{content:"items-center text-center",eyebrow:"mx-auto",ctas:"sm:justify-center",cost:"justify-center"},split:{content:"items-start text-left"}}},defaultVariants:{align:"center"}}),d=({eyebrow:e,title:t,titleClassName:a,subtitle:s,demoButton:d,registerButton:u,cost:m,align:p="center",media:h,registerLinkOverride:y=i.registerLink,demoLinkOverride:f=i.demoLink})=>{const g="split"===p&&Boolean(h),b=c({align:g?"split":"center"}),w=r.createElement("div",{className:b.content()},r.createElement("h1",{className:b.eyebrow()},e),r.createElement("h2",{className:b.title({class:a})},t),r.createElement("p",{className:b.subtitle()},s),(d||u)&&r.createElement("div",{className:b.ctas()},d&&r.createElement(l.A,{to:f,size:"xlarge",responsive:!0,variant:"outlined"},d),u&&r.createElement(l.A,{to:y,size:"xlarge",responsive:!0},u,r.createElement(n.A,{"aria-hidden":!0}))),m&&r.createElement("p",{className:b.cost()},r.createElement(o.A,{"aria-hidden":!0,size:18,strokeWidth:1.5}),m));return r.createElement("section",{className:b.section()},r.createElement("div",{className:b.inner()},g?r.createElement("div",{className:"grid grid-cols-1 items-center gap-12 lg:grid-cols-2"},w,r.createElement("div",{className:b.media()},h)):r.createElement(r.Fragment,null,w,h?r.createElement("div",{className:"mx-auto mt-10 w-full max-w-5xl md:mt-12"},h):null)))}},99619(e,t,a){a.d(t,{A:()=>o});var r=a(63696);const n=(0,a(18628).tv)({slots:{section:"box-border mx-auto w-[90%] max-w-4xl py-12 text-center md:py-16",title:"mx-auto max-w-[700px] text-3xl font-semibold tracking-tight text-balance text-foreground md:text-5xl",subtitle:"mx-auto mt-3 max-w-2xl text-lg text-pretty text-secondary-foreground"}}),o=({title:e,subtitle:t})=>{const a=n();return r.createElement("section",{className:a.section()},r.createElement("h2",{className:a.title()},e),t?r.createElement("p",{className:a.subtitle()},t):null)}},38092(e,t,a){a.d(t,{A:()=>i});var r=a(63696),n=a(18628),o=a(49885);const s=(0,n.tv)({slots:{section:"box-border w-full bg-muted pt-12 pb-16 md:pt-16 md:pb-24",inner:"mx-auto w-[90%] max-w-7xl",header:"mx-auto mb-10 max-w-[700px] text-center",title:"text-3xl font-bold tracking-tight text-balance text-foreground md:text-5xl",subtitle:"mx-auto mt-3 max-w-2xl text-lg text-pretty text-secondary-foreground",grid:"grid grid-cols-1 gap-8 md:grid-cols-3 md:gap-6",card:"flex flex-col gap-4 roun
1ded-2xl base-border bg-background p-6 shadow-sm md:p-8",headline:"text-lg font-bold text-pretty text-foreground",quote:"m-0 flex-1 text-base text-pretty text-foreground",person:"mt-2 flex items-center gap-3",avatar:"size-12 shrink-0 rounded-full base-border bg-background object-cover",personDetails:"flex flex-col",name:"text-base font-bold text-foreground",role:"text-sm text-secondary-foreground"}}),i=({title:e,headerClassName:t,subtitle:a,cards:n})=>{const i=s();return r.createElement("section",{className:i.section()},r.createElement("div",{className:i.inner()},r.createElement("div",{className:i.header({className:t})},r.createElement("h2",{className:i.title()},e),a?r.createElement("p",{className:i.subtitle()},a):null),r.createElement("div",{className:i.grid()},n.map(e=>r.createElement("figure",{className:i.card(),key:e.name},e.headline?r.createElement("h3",{className:i.headline()},e.headline):null,r.createElement("blockquote",{className:i.quote()},"“",e.quote,"”"),r.createElement("figcaption",{className:i.person()},r.createElement(o.A,{src:e.imageSrc,alt:"",className:i.avatar(),loading:"lazy",width:48,height:48}),r.createElement("span",{className:i.personDetails()},r.createElement("span",{className:i.name()},e.name),r.createElement("span",{className:i.role()},e.role))))))))}},66710(){},91096(){},61058(e,t,a){e.exports=a.p+"amy-lynn-jane-4237407554b0ad21e780ff2d650136f9.avif"},61095(e,t,a){e.exports=a.p+"autopilot-1-full-a7f0163ffd1011ab9eb706ab35b568a1.webp"},9258(e,t,a){e.exports=a.p+"changelog-1-76b82fba1a7d30bbb58edd0fadf42006.webp"},20637(e,t,a){e.exports=a.p+"changelog-2-052a50d891bfc9d3f2889ebe6590fa2e.avif"},76428(e,t,a){e.exports=a.p+"collect-no-padding-0ffca550b4a4d2958c209cc6bb6d574a.webp"},54442(e,t,a){e.exports=a.p+"felix-605ce45dd2c15c106afc333ce3db7169.avif"},32301(e,t,a){e.exports=a.p+"idea-management-1-9ecde66823ed3ae08dd27e86b22c7ea7.webp"},53984(e,t,a){e.exports=a.p+"idea-management-2-03a2818475c3050c093ba842f98b3ee1.webp"},84387(e,t,a){e.exports=a.p+"idea-management-3-16d1803aa33a988ef6fdb6e71c01d0f1.webp"},30907(e,t,a){e.exports=a.p+"internal-feedback-1-d8e4e60bc313e46c9ede29391de25247.webp"},44360(e,t,a){e.exports=a.p+"katherine-paces-ec6108023021ba659c5b7adf117ec391.webp"},94470(e,t,a){e.exports=a.p+"mcp-actions-3744eb96053e67726331c6ba22fdc60b.avif"},84800(e,t,a){e.exports=a.p+"mcp-platforms-cc3e9cd01a7aa173932d822daa9e2578.avif"},88274(e,t,a){e.exports=a.p+"mcp-prompts-512fa48c0128a29c3e92a50f3e1281ef.avif"},85543(e,t,a){e.exports=a.p+"mcp-results-771faab0a822e2dfccb8c818f41657ba.avif"},73488(e,t,a){e.exports=a.p+"public-roadmap-1-a22e1ebcb13ae8a832e47680a3417236.webp"},39599(e,t,a){e.exports=a.p+"public-roadmap-2-407a644eb89dcdedb795cec24176c1db.avif"},91904(e,t,a){e.exports=a.p+"public-roadmap-3-ea63325d98147200c079dccc985b4d1f.avif"},94667(e,t,a){e.exports=a.p+"public-roadmap-hero-e95d60627492ccf2c8fbd6193e8d3ac2.avif"},55570(e,t,a){e.exports=a.p+"roadmap-3-916482c688fce71da9ede52f83f50701.webp"},87395(e,t,a){e.exports=a.p+"saravana-8c5d73fde0153e798be5a42c7fce000e.webp"},66619(e,t,a){e.exports=a.p+"new-landing-hero-5d3626a64e76bd23760c09269191afd9.gif"},29409(e,t,a){a.d(t,{sG:()=>s});var r=a(63696),n=(a(78325),a(28780)),o=a(62540),s=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{const a=(0,n.TL)(`Primitive.${t}`),s=r.forwardRef((e,r)=>{const{asChild:n,...s}=e,i=n?a:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,o.jsx)(i,{...s,ref:r})});return s.displayName=`Primitive.${t}`,{...e,[t]:s}},{})},79675(e,t,a){a.d(t,{b:()=>c});var r=a(63696),n=a(29409),o=a(62540),s="horizontal",i=["horizontal","vertical"],l=r.forwardRef((e,t)=>{const{decorative:a,orientation:r=s,...l}=e,c=function(e){return i.includes(e)}(r)?r:s,d=a?{role:"none"}:{"aria-orientation":"vertical"===c?c:void 0,role:"separator"};return(0,o.jsx)(n.sG.div,{"data-orientation":c,...d,...l,ref:t})});l.displayName="Separator";var c=l},44004(e,t,a){a.d(t,{A:()=>r});const r=(0,a(21727).A)({name:"chart-no-axes-column",size:24,node:[["path",{d:"M5 21v-6",key:"1hz6c0"}],["path",{d:"M12 21V3",key:"1lcnhd"}],["path",{d:"M19 21V9",key:"unv183"}]],aliases:["bar-chart-2"]})},19785(e,t,a){a.d(t,{A:()=>r});const r=(0,a(21727).A)({name:"credit-card",size:24,node:[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}],["path",{d:"M6 14h2",key:"mk7k0u"}]]})},69944(e,t,a){a.d(t,{A:()=>r});const r=(0,a(21727).A)({name:"eye-off",size:24,node:[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]})},9048(e,t,a){a.d(t,{A:()=>r});const r=(0,a(21727).A)({name:"eye",size:24,node:[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]})},81205(e,t,a){a.d(t,{A:()=>r});const r=(0,a(21727).A)({name:"map",size:24,node:[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]})},69381(e,t,a){a.d(t,{A:()=>r});const r=(0,a(21727).A)({name:"megaphone",size:24,node:[["path",{d:"M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z",key:"q8bfy3"}],["path",{d:"M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14",key:"1853fq"}],["path",{d:"M8 6v8",key:"15ugcq"}]]})},29331(e,t,a){a.d(t,{A:()=>r});const r=(0,a(21727).A)({name:"messages-square",size:24,node:[["path",{d:"M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z",key:"1n2ejm"}],["path",{d:"M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1",key:"1qfcsi"}]]})},31149(e,t,a){a.d(t,{A:()=>r});const r=(0,a(21727).A)({name:"search",size:24,node:[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]})}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.