How to send annotated screenshots to a webhook (Zapier, Make, n8n)
Updated
Add a webhook
- Create the receiving end first and copy its URL: a Catch Hook trigger in Webhooks by Zapier, a Custom webhook in Make, or a Webhook node set to POST in n8n.
- In Highlite, open the Export panel with Export or Ctrl+Shift+E (Cmd+Shift+E on Mac) and, under Destination, click Add a webhook. The Export destinations settings open.
- In the Webhooks section, click Add a webhook. Enter a Name (it is the label in the Export panel) and the URL. Use https://, as http:// only works for localhost.
- Choose a Payload format: Multipart (file) sends the PNG as a file, JSON (base64 image) puts it inside a JSON body. Add Custom headers (optional), and turn on Include the page URL and title if your automation needs them.
- Click Save and let the browser allow access to that address. Highlite only asks for the one site you entered. Send test posts a tiny sample image so you can map the fields in your automation.
Send a screenshot
Each saved webhook is listed under Destination in the Export panel. Choose Viewport, Full page or Selection, then click the webhook. Without Premium, it carries a Pro label and the upgrade screen opens first. Sent to and the webhook name confirm the send; if the URL answers with an error, the panel shows it with Retry.
What the webhook receives
A POST request. In Multipart (file) format, the field "file" holds the PNG and "payload_json" holds the details below as a JSON string. In JSON (base64 image) format, the body is that JSON with the image as a base64 data URL in "image.dataUrl".
The details are always "version" (1), "source" (always "highlite"), "createdAt" (ISO 8601, UTC), "image" ("mimeType", "filename") and "test" (true only for Send test). "page", with the URL and title, is there only when you turned that option on: page addresses can be sensitive. Any 2xx answer counts as a success.
Securing the webhook
Highlite does not sign its requests. To make sure a request comes from you, add a custom header with a secret value, for example "X-Highlite-Secret", and have your automation reject requests without it. The screenshot goes directly from your browser to the URL: Highlite never sees it.
Limitations
- Sending to a webhook requires Premium and a Highlite account (Google sign-in).
- Redirects are not followed and there is no automatic retry. A webhook that takes longer than 15 seconds to answer fails with a timeout.
- Webhooks are saved in this browser only. On another computer or browser, add them again.
- Highlite sends the screenshot, not the annotations as data. For editable annotations, use the JSON export.
Premium is an optional plan ($4.99/month or $49.99/year) that adds JSON export and sending screenshots to Slack, Discord or a webhook. Every annotation tool and screenshots stay free. See pricing
Frequently asked questions
Can Highlite send screenshots to Jira, Notion or Google Drive?
Through a webhook, yes. Send the screenshot to a Zapier, Make or n8n webhook and let that automation create the Jira ticket, the Notion page or the Drive file. Highlite has no direct Jira, Notion or Drive integration.
Does Highlite see the screenshots I send to my webhook?
No. The request goes straight from your browser to the URL you entered. It never passes through a Highlite server, and the URL and headers stay in your browser.
Which format should I choose, multipart or JSON?
Multipart, the default, sends the PNG as a regular file upload, which Zapier, Make and n8n treat as a file directly. Choose JSON when your endpoint only accepts JSON bodies: the image then arrives as a base64 data URL.
Does the webhook destination work in Firefox and Edge?
Yes. Webhooks work the same on Chrome, Firefox, Edge and Brave, with Premium.