Skip to Content
v0.8.0 · shippedNative iOS / Android / Flutter / Capacitor SDKs, A2A discovery, SOC 2 readiness, residency, BYO storage, BYOK. Read the changelog →
Migration guidesPendo Feedback → Mushi

Pendo Feedback → Mushi

Hours Low risk

Pendo bundles product analytics, in-app guides, NPS surveys, and a feedback module in one suite. This guide swaps the feedback module to Mushi while you keep Pendo for everything else (analytics, guides, NPS) — the two tools share user identity via a single identify call.

You almost certainly want to keep Pendo. Pendo’s analytics + in-app guides are best-in-class. Mushi just replaces the feedback inbox piece — where Pendo is weakest.

Why switch (the feedback piece)

  • AI triage built-in. Pendo Feedback requires manual review or third-party tooling for triage. Mushi’s two-stage classifier handles it.
  • Reproduction context. Mushi captures console + network + screenshot + DOM snapshot per report. Pendo Feedback is form-based — the user types what’s wrong, you guess at the rest.
  • Self-host + open source. Pendo is enterprise SaaS; Mushi is MIT-licensed.
  • Engineering-friendly inbox. Mushi’s admin console is built for devs triaging issues; Pendo’s is built for product managers ranking ideas.

API mapping

PendoMushi
pendo.initialize({ visitor: { id, email } })Mushi.init({ projectId, apiKey }) + Mushi.setUser({ id, email })
pendo.identify(visitor, account)Mushi.setUser({ id, ...visitor }) + metadata for account
pendo.track('event', props)Mushi.setMetadata({ lastEvent: 'event', ...props })
pendo.feedback.show()Mushi.openWidget()
Pendo Feedback ideas boardMushi Reports inbox (filter by category=feature_request)

Recipe: keep Pendo for analytics + guides; use 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' }, }) Mushi.init({ projectId: 'YOUR_PROJECT_ID', apiKey: 'YOUR_PUBLIC_KEY', widget: { trigger: 'button' }, }) // 2. Mirror identity Mushi.setUser({ id: 'user-42', email: 'jane@example.com' }) Mushi.setMetadata({ accountId: 'acme-corp' }) // 3. Hide Pendo's feedback button (you can keep its other UI) window.pendo.disableGuides?.({ category: 'feedback' })

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

Migration checklist

Migration checklist
9 required steps
  1. Step 01
    Create a Mushi project
  2. Step 02
    Install Mushi alongside Pendo
  3. Step 03
    Initialise Mushi in your app entry
  4. Step 04
    Mirror pendo.identify into Mushi.setUser
  5. Step 05
    Mirror critical pendo.track calls into Mushi metadata
  6. Step 06
    Hide the Pendo Feedback widget
  7. Step 07
    Export historical Pendo Feedback ideas (optional)
  8. Step 08
    Update internal runbooks
  9. Step 09
    Submit a test report and verify pipeline

Feature parity

CapabilityPendo FeedbackMushi
User-triggered report widget
Console + network capture❌ (form only)
Screenshot capture✅ (web)
AI triage
Idea voting / merging❌ — flat report inbox
Customer-facing roadmap
Product analytics✅ (Pendo core)
In-app guides / tooltips✅ (Pendo core)
NPS surveys✅ (Pendo core)
Self-host
Open source

The takeaway: keep Pendo for analytics, guides, and NPS; switch the feedback module to Mushi. Most customers find this combination strictly better than running either tool alone.

References

Last updated on