Richpanel helpdesk integration for Medusa: pushes order, customer, fulfillment, return and payment events to Richpanel.
Connect your Medusa store to Richpanel. The plugin pushes order, customer, fulfillment, return and payment events from your Medusa backend to Richpanel, so your support team (and Richpanel's AI agent) sees order context next to every conversation.
Requires Medusa v2.4 or later.
The whole integration is driven from Richpanel — this plugin is step 2. Start in the Richpanel app; each step below says where it happens.
Steps 1, 3 and 4 happen in the Richpanel app and your storefront; step 2 is this plugin.
npm install medusa-plugin-richpanelAdd the plugin to the array in :
1module.exports = defineConfig({2 // ...3 plugins: [4 {5 resolve: "medusa-plugin-richpanel",6 options: {7 appClientId: process.env.RICHPANEL_APP_CLIENT_ID!,8 webhookSecret: process.env.RICHPANEL_WEBHOOK_SECRET!,9 },10 },11 ],12})Set both values as environment variables on your backend — keep them out of source control:
1RICHPANEL_APP_CLIENT_ID=<your app client id>2RICHPANEL_WEBHOOK_SECRET=<your webhook secret>On Medusa Cloud, add them under Settings → Environment Variables (mark the webhook secret as sensitive) and redeploy — variable changes only apply after a redeploy. Self-hosted, put them in your backend's and restart. Rotating the secret later is then an env change plus a redeploy, with no code edit.
| Option | Required | Description |
|---|---|---|
| Yes | The connector's app client ID, generated by Richpanel when you add the Medusa connector. Shown on the connect screen (Settings → Connectors → Medusa). | |
| Yes | Shared secret used to sign every event (HMAC-SHA256). Generated by Richpanel on the connect screen. |
Redeploy (Medusa Cloud) or restart (self-hosted) your backend after adding the plugin. Open the Richpanel page in the Medusa admin sidebar to confirm the connection status.
On each of these events, the plugin POSTs to Richpanel, signed with (HMAC-SHA256 of the request body using your ):
Payloads contain IDs only (as emitted by Medusa); Richpanel fetches full records through your store's Admin API connection. For , , and — whose Medusa payloads carry only a fulfillment/payment id — the plugin resolves the owning order via Medusa's module links and adds it to the payload as . Delivery is fire-and-forget with 3 retries (1s / 5s / 25s backoff, 10s timeout per attempt) and never blocks or fails your store's event loop.
MIT