Clients and stakeholders are good at finding problems on a website. Developers are good at fixing them in Jira, Trello or Asana. The gap between the two is usually a person copying screenshots from email into tickets.
You can close that gap without writing code. Capture feedback visually on the page, then use a webhook and an automation tool — Zapier, Make or n8n — to create a ticket in your tracker automatically.
How the pieces fit
- A reviewer pins feedback on the page. pinreview creates a task with a screenshot, the exact CSS selector, URL, browser, OS, viewport and any console errors.
- pinreview sends a webhook — a small JSON message — to a URL you choose, whenever a task is created, changes status, is updated or gets a comment.
- Your automation tool receives it and creates or updates a ticket in Jira, Trello, Asana or whatever else it connects to.
Webhooks are included on pinreview's paid plans.
What the webhook contains
Each event arrives as a JSON envelope like this:
{
"event": "task.created",
"occurred_at": "2026-09-12T09:30:00.000Z",
"project_id": "proj_123",
"task": {
"id": "task_456",
"number": 42,
"title": "Button overlaps footer",
"status": "To Do",
"severity": "HIGH",
"assignee": null,
"tags": ["mobile"],
"url": "https://…/board?task=task_456"
},
"actor": { "type": "guest", "name": "Sam" }
}
The event types are task.created, task.status_changed, task.updated and comment.added. A status change also includes a change object with from and to; a comment event includes the comment with its author and text.
Note what's not in the payload: the screenshot, selector and console output. Those stay in pinreview, and task.url links straight to them. That keeps tickets light and the full context one click away.
Setting it up in Zapier
1. Create the trigger
In Zapier, create a new Zap and choose Webhooks by Zapier → Catch Hook as the trigger. Zapier gives you a unique hook URL. Copy it.
2. Connect pinreview
In your pinreview project, open Integrations → Webhook, paste the Zapier hook URL, choose the events to send, and click Add. Then create a test task — or pin a quick comment on your site — so Zapier receives a sample to map fields from.
3. Filter to the events you want
If you send more than one event type, add a Filter step so, for example, only event equal to task.created creates tickets. Otherwise a status change could create a duplicate ticket.
4. Create the ticket
Add an action for your tracker and map the fields:
| Tracker field | Map from |
|---|---|
| Title / summary | task.title (optionally prefixed with #task.number) |
| Description | A line of text plus task.url, e.g. "Full screenshot and context: {task.url}" |
| Priority | task.severity (use a lookup step to translate to your tracker's levels) |
| Labels / tags | task.tags |
In Jira, that's the Create Issue action. In Trello, Create Card on your bugs list. In Asana, Create Task in the relevant project.
Turn the Zap on, and new feedback becomes a ticket within moments.
Make and n8n
The pattern is identical. In Make, start a scenario with a Custom webhook module; in n8n, use a Webhook trigger node. Paste the URL they give you into pinreview, then map the same fields.
Things to get right
Decide where the source of truth is. This setup is one-way: pinreview sends events out. Closing a ticket in Jira doesn't move the task in pinreview. Pick one place where status is managed — usually your tracker for developers — and use pinreview for capture and client visibility.
Close the loop for reviewers. If developers work in Jira, someone still needs to move the pinreview task to done so the client sees their feedback handled. Many teams do this as part of the weekly review round.
Don't send everything. Creating tickets for every comment floods the tracker. Start with task.created only.
Triage before you sync, if you can. Some teams send only items that reach a particular column — for example, filtering on task.status_changed where change.to is "To Do" — so tickets are created only after someone has confirmed the item is real work. Our bug triage guide explains the routine.
Keep the hook URL private. Anyone who has an automation hook URL can send data to it.
If you're building your own endpoint
Webhooks don't have to go through an automation tool. You can point them at your own HTTPS endpoint:
- Return a
2xxresponse quickly. pinreview retries up to three times on a non-2xx response, with a five-second timeout per attempt. - Verify every request. When you add a webhook, pinreview generates a signing secret (shown once — copy it). Each request carries an
X-PinReview-Signatureheader: an HMAC-SHA256 of the raw request body, keyed with that secret. Recompute it over the raw body and compare before trusting the payload. - Check the last delivery result on the connected webhook in pinreview when debugging.
The bottom line
You don't need to choose between visual feedback and the tracker your developers already use. Capture feedback on the page with full context, send a webhook to Zapier, Make or n8n, and create tickets in Jira, Trello or Asana automatically.
Keep it simple: one event, a filter, a clear link back to the full report, and a decision about where status lives.
If you just want visibility rather than tickets, the Slack integration is quicker still.
