Skip to Content
v1.33.8 · shipped One-screen report · Looks like your app Read the changelog →
Migration guidesPendo Feedback → Mushi Mushi

Pendo Feedback → Mushi Mushi

Hours Low risk

Pendo retired classic Feedback on August 1, 2026. Its replacement is Pendo Listen. Pendo’s notice says classic Feedback data could be retrieved until November 1, 2026 and is permanently deleted after that; export it from Pendo settings if you still can. See Pendo’s retirement notice .

Pendo also covers product analytics, in-app guides and NPS surveys. This guide moves in-app feedback and bug reports to Mushi Mushi while you keep Pendo for the rest. The two tools share user identity through one identify function.

Why switch (the feedback piece)

  • AI triage built in. Mushi Mushi’s two-stage classifier categorises and prioritises each report.
  • Reproduction context. Mushi Mushi captures console, network, a screenshot and a DOM summary with each report, so you aren’t relying on the user’s description alone.
  • Self-host and open source. Mushi Mushi SDKs are MIT and the server is AGPLv3.
  • Built for developers. Mushi Mushi’s console is for triaging and fixing bugs; it also has a feature board where reporters vote on ideas.

API mapping

const mushi = Mushi.init({...}) returns the instance used below.

PendoMushi Mushi
pendo.initialize({ visitor: { id, email } })const mushi = Mushi.init({ projectId, apiKey }) + mushi.setUser({ id, email })
pendo.identify(visitor, account)mushi.setUser({ id, email, name }) + mushi.setMetadata('accountId', account.id)
pendo.track('event', props)For repro context on the next report: mushi.addBreadcrumb({ category: 'custom', level: 'info', message: 'event' }). For product analytics: mushi.track('event_name', props) (names must be snake_case; not attached to reports)
A button that opened classic Feedbackmushi.open(), or the Mushi Mushi launcher (a floating button on desktop, an edge tab on phones)
Feedback ideas boardMushi Mushi feature board (reporters vote), or Reports filtered to feature requests

Recipe: keep Pendo for analytics + guides; use Mushi Mushi for feedback

import { Mushi } from '@mushi-mushi/web' // 1. Initialise both window.pendo.initialize({ visitor: { id: 'user-42', email: 'jane@example.com' }, account: { id: 'acme-corp' }, }) const mushi = Mushi.init({ projectId: 'YOUR_PROJECT_ID', apiKey: 'YOUR_PUBLIC_KEY', }) // 2. Mirror identity mushi.setUser({ id: 'user-42', email: 'jane@example.com' }) mushi.setMetadata('accountId', 'acme-corp')

Now Pendo handles analytics and product guides; Mushi Mushi handles feedback intake and triage.

Migration checklist

Migration checklist
9 required steps
  1. Step 01
    Create a Mushi Mushi project
  2. Step 02
    Install Mushi Mushi alongside Pendo
  3. Step 03
    Initialise Mushi Mushi in your app entry
  4. Step 04
    Mirror pendo.identify into mushi.setUser
  5. Step 05
    Mirror critical pendo.track calls as Mushi Mushi breadcrumbs
  6. Step 06
    Remove links and buttons that opened classic Feedback
  7. Step 07
    Export historical classic Feedback data (if it is still available)
  8. Step 08
    Update internal runbooks
  9. Step 09
    Submit a test report and verify pipeline

Feature parity

CapabilityPendoMushi Mushi
In-app feedbackClassic Feedback retired 2026-08-01; Pendo Listen replaces it✅ (widget)
Console + network capturenot checked✅
Screenshot capturenot checked✅
Idea voting✅✅ (feature board)
Product analytics✅✅ (basic, from mushi.track())
In-app guides / tooltips✅❌
NPS surveys✅❌
Self-hostnot checked✅

The takeaway: keep Pendo for analytics, guides and NPS; send feedback and bug reports to Mushi Mushi.

References

Last updated on