Review rounds
Group a client review into a named round with a due date, track its progress and export it as CSV or PDF.
A round is one pass of review on a project — "Homepage v2 — client review 1" — with an optional due date. Feedback sent while a round is active joins it, so you can tell what this review produced, chase what's still open before the deadline, and hand the client a report at the end.
Create a round
Open the project and click Rounds in its header (/projects/<id>/rounds), then New round. Give it a name
(up to 120 characters) and, optionally, a due date — a day, stored as the end of that day in your time zone. A
round is Active when created and Closed when you close it; closing records when it ended.
Each round shows as a card with its due date (red once it's overdue), a progress bar ("N of M done", "N open"), View items (the inbox filtered to the round) and Close. Its ⋯ menu has Export CSV, Export PDF, Edit (rename, move the due date), Close round / Reopen and Delete. Deleting a round keeps its feedback — the items simply leave the round. Viewers can open and export rounds but not change them.
In the API each round carries its counts — counts: { total, open, closed } — and closedAt once closed.
How feedback joins a round
- From the widget: when a project has exactly one active round, the widget is told about it (
activeRoundinGET /w/config) and new comments and bug reports are filed into it. The server also defaults new feedback to that round, so older widgets join it too. With no active round, or several, feedback joins none. - Choosing the active round: the project's Widget tab has a Review round card whose Active round picker sets the round new feedback joins. Choosing one closes the project's other active rounds; No round closes them all.
- By hand: set or change an item's round with the Review round picker in its detail panel, or select several
items in the list and use Round in the bulk bar (
PATCH /api/feedback/:id { "roundId": "…" }, ornullto remove it). An item can only join a round of its own project.
In the inbox, pick a project and use Filter › Review round to list a round's items (?round=<id>), and save
that as a view. Through the API it is the roundId filter of GET /api/feedback (or
/api/v1/feedback).
Export
Export a round to share with a client or attach to an invoice:
| Format | Contents |
|---|---|
| CSV | One row per item, for spreadsheets |
| A printable report, rendered on the server (no headless browser needed) |
Both download as a file. The CSV is RFC 4180 with a byte-order mark (so Excel reads accents), and cells that look like
formulas are prefixed with '; the PDF is a text-only A4 report. The export is
GET /api/rounds/:id/export?format=csv or ?format=pdf (CSV is the default).
API
All under /api, with a dashboard session:
| Endpoint | Does |
|---|---|
GET /api/projects/:id/rounds | List a project's rounds |
POST /api/projects/:id/rounds | Create { name, dueAt? } |
GET / PATCH / DELETE /api/rounds/:id | Read, update { name?, dueAt?, status? }, delete |
GET /api/rounds/:id/export?format=csv|pdf | Export |
dueAt is an ISO 8601 timestamp with offset, or null for no due date; status is "active" or "closed". Rounds
are also available to scripts through the REST API and SDK.
Page review
See every page that has feedback, with its pins and regions drawn over a captured screenshot.
Share links and client sign-off
Send a report or a whole review round to someone without an account. Expiring, revocable, optionally password-protected links, public comments, and Approve / Request changes sign-off with an email and webhook.