Parachute

Help & how-to

Getting the most out of Parachute

Install in ninety seconds, then route, style, and triage the reports that come in.

Quick start

  1. Sign in to the console and click Add a widget. Give it a name (e.g. your site).
  2. Copy the embed code shown on the widget's Setup tab.
  3. Paste it onto your site, just before the closing </body> tag.
  4. A small "Feedback" tab appears in the corner. When a visitor sends a report, it lands in your inbox and in the console's Reports tab.
That's the whole install. Everything after this — turning it on/off, restyling, changing where reports go — is done in the console, with no change to your site's code.

Installing the snippet

Parachute is one script tag with no dependencies. Drop it before </body>:

<script src="https://parachute.chat/parachute.js"
        data-key="sk_live_your_key" defer></script>

It works anywhere you can add HTML — WordPress, Squarespace, Webflow, Shopify, or a hand-coded site. The widget renders inside a Shadow DOM, so your site's styles can't break it and it can't leak into your page.

Optional attributes

AttributeWhat it does
data-keyRequired. Your widget's public site key (from the console).
data-appOptional tag added to every report — handy if one key covers several apps.

Styling the button

On the widget's Setup tab you can set:

Changes take effect within about a minute — no need to touch the embedded site.

Where reports go

Every report is stored in your console and can be delivered two ways:

In the console's Reports tab you can read each report with its page URL, browser, and screen size, and move it through new → triaged → closed.

Locking to your domains

By default a widget works on any site it's pasted into. To lock it down, add your domains under Allowed domains (e.g. acme.com, shop.acme.com). Then the widget only renders — and only accepts reports — on those domains and their subdomains. This stops anyone who copies your key from using it elsewhere.

Webhooks

Add a Webhook URL to a widget and Parachute POSTs a JSON body for every report:

{
  "event": "report.created",
  "site": "Acme storefront",
  "site_id": "…",
  "report": {
    "id": "…",
    "message": "The checkout button does nothing on Safari",
    "email": "shopper@example.com",
    "url": "https://acme.com/checkout",
    "user_agent": "…", "viewport": "1440x900",
    "referrer": "…", "app": "", "created_at": "2026-07-07T18:34:06Z"
  }
}

Each request includes a signature header so you can verify it really came from us:

X-Parachute-Signature: sha256=<hmac>

The HMAC is SHA-256 of the raw request body, keyed with your widget's signing secret (shown on the Setup tab). Verify it in Node like this:

const crypto = require("crypto");
const secret = process.env.PARACHUTE_SECRET;      // whsec_…
const sig = req.headers["x-parachute-signature"].split("=")[1];
const expected = crypto.createHmac("sha256", secret)
                       .update(rawBody)           // the exact bytes received
                       .digest("hex");
const ok = crypto.timingSafeEqual(
  Buffer.from(sig), Buffer.from(expected));
if (!ok) return res.status(401).end();
Point the webhook at Slack, Linear, a Google Sheet via Zapier, or your own server. Rotate the signing secret any time from the Setup tab.

The kill switch

Every widget has an on/off toggle in the console. Flip it off and the widget disappears from your live site within about a minute — no redeploy of your site needed. Great for pausing during a launch or maintenance window.

Plans & the free tier

PlanIncludes
Free1 widget · email notifications · newest reports visible in the console · "Powered by Parachute" badge
Pro · $9/moUp to 5 widgets · full report history · full report text by email · webhooks · remove the badge
Agency · $29/moUnlimited widgets · everything in Pro · manage many client sites
Nothing is ever lost on Free. We capture and store every report forever — Free just shows you the newest few. The moment you upgrade, your entire backlog is unlocked.

Blocking spam

Parachute defends the form on several layers, most of them invisible:

Troubleshooting

The widget isn't showing up

I'm not getting report emails

Still stuck?

Use the Parachute tab in the corner of this page to send us a report — it's the same widget, and it comes straight to us. 🪂