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

Zapier plugin

Send every Mushi Mushi event to Zapier and on to the thousands of apps Zapier connects to, such as Slack, Notion, Google Sheets, HubSpot and Jira.

Setup (no server)

  1. In Zapier, create a Zap with the Webhooks by Zapier → Catch Hook trigger.
  2. Copy the webhook URL (e.g. https://hooks.zapier.com/hooks/catch/…).
  3. In Mushi Mushi: Marketplace → Zapier Bridge → Install.
  4. Paste the Catch Hook URL as the webhook URL and keep the signing secret Mushi Mushi generates.
  5. Optionally narrow the subscribed events (e.g. only report.classified, fix.applied).

Zapier then receives Mushi Mushi’s envelope as is: { event, deliveryId, occurredAt, projectId, pluginSlug, data }, with the report under data.report for report and fix events (see Webhook events for each payload). The listing subscribes to every event (*), including the test.delivery sent by the Test button. Zapier does not check the signature, so anyone who learns the Catch Hook URL can post to it.

Setup (with the relay package)

@mushi-mushi/plugin-zapier runs between Mushi Mushi and Zapier. It checks Mushi Mushi’s signature and forwards a flat payload (event, report_id, report_status, report_severity, report_title, …, plus the full envelope under raw).

npm i @mushi-mushi/plugin-zapier export MUSHI_PLUGIN_SECRET=... # the same signing secret as in the install form export ZAPIER_HOOK_URL=https://hooks.zapier.com/hooks/catch/.../... export ALLOW_EVENTS=report.classified,fix.applied # optional: only these export DENY_EVENTS=test.delivery # optional: never these npx -p @mushi-mushi/plugin-zapier mushi-plugin-zapier

Set the Zapier Bridge webhook URL to https://<your-host>/mushi/webhook instead of the Catch Hook URL.

Checking the signature inside a Code by Zapier step is not practical: the signature covers the exact raw request body, which Zapier does not pass to the step.

Common Zaps

TriggerActionUse case
report.classified (critical)Post to a Slack channelImmediate team alert
report.classifiedCreate row in Google SheetsBug tracking in a spreadsheet
fix.appliedCreate Notion database entryChangelog / release notes
report.createdCreate HubSpot ticketLink product bugs to customer accounts

Troubleshooting

  • Zap not firing: check the plugin’s deliveries on the Marketplace page in Mushi Mushi.
  • Events arriving out of order: Mushi Mushi sends each event as it happens and retries failed ones later, so a retried event can arrive after a newer one. Use occurredAt to order them, or build one Zap per event type.
  • Payload too large: Zapier documents a 10 MB limit for webhook payloads (2 MB for a raw hook). Mushi Mushi events are normally far smaller (a skill_pipeline.step.dispatched context packet, for example, is capped at 40,000 characters).
Last updated on