Start for free
Dashboard/Workflows

Dashboard

Workflows

Send a project's comments where your team works, by email or as an HTTP request, once a round of review has gone quiet.

A workflow waits until a round of comments has gone quiet, takes the comments it cares about, and sends them on: by email to people on the project, or as a signed HTTP request to an endpoint of yours, like an agent, Zapier, n8n or your own system. Without one, comments stay in the dashboard.

The Workflows tab is for owners and admins. Reviewers never see it.

When a workflow runs

A workflow runs once the project has been quiet for the time set on When: no new comment or reply. Every new comment or reply starts the wait again, so a round of review goes out as one. The wait is 5 to 1440 minutes.

Which comments narrows what it takes. Everything set must hold:

Setting What it keeps
Written by Anyone; Reviewers, everyone but the project’s owners and admins (clients, review links); or The team, the owners and admins
On pages under Pages whose route starts with this, like /checkout. Empty: every page
On branches The branches you tick. None ticked: every branch
Open comments only Leaves out resolved comments

A reply goes with the comment it answers. A workflow switched on starts from that moment: it does not send the comments written while it was off.

Every project starts with one workflow, Email digest: 15 minutes after the last comment, one email for the round to the project’s owners and admins, and the workspace’s. You can change it, turn it off or delete it like any other.

Steps

A workflow has up to ten steps. Each one has Send: Once per round, all the round’s comments together, or Once per comment, each comment on its own, which is what an agent or a tracker takes as a task. A new Email step sends once per round, a new HTTP request once per comment.

Email

The review digest’s email, to people on the project: everyone with a role you tick (Owners, Admins, Reviewers), and the people you pick by name. There are no outside addresses. Each person can switch these emails off in their settings or from the email itself; see Notifications.

HTTP request

A signed POST to an endpoint of yours, with the comments as JSON. Send to picks one of the project’s endpoints, or a new one: an HTTPS Endpoint URL and an optional name. Several steps and workflows can share an endpoint.

The endpoint’s settings show its signing secret, which you can reveal, copy and rotate, and when it last delivered. Every request carries these headers:

Header What it is
Feedback-Signature t=<unix seconds>,v1=<hex HMAC-SHA256 of "<t>.<body>">, signed with the endpoint’s secret. Refuse a t more than five minutes off
Feedback-Delivery The delivery’s id, the same on every retry, so you can drop duplicates
Feedback-Event What the body holds: one comment or a round
Feedback-Test true on a test

Source locations and screenshots leave the product only if you turn them on: Include source locations and Include screenshots (links valid 7 days) are off by default.

A receiver can report back what it did with each comment: accepted, in progress, done or rejected, with a note and a link. The report shows in the comment’s drawer under Reported by workflows, and in the workflow’s history. It never resolves the comment: that stays a person’s call.

Testing

The test panel runs on one of three sets of comments:

  • Latest comments: up to five that its filter would take.
  • Sample comments: three made up, with a screenshot and a source location, for a project with none yet.
  • Chosen comments: up to five open comments you pick, whatever the filter.

A test email goes only to you. A test request has "test": true in its body and the Feedback-Test: true header. A test you send is recorded in the history, marked Test. It never moves the workflow on, retries or pauses anything.

History

History, beside Workflow above the canvas, lists the runs, newest first: when, whether it was a test, how many comments and deliveries, and how it went (Done, Delivering, Partly failed or Failed). Open a run to see each delivery: who or where it went, how many tries, the HTTP status and the start of the answer, and what the receiver reported. Retry sends a failed delivery again.

When something fails

An HTTP request that gets a timeout, a 408, a 429 or a 5xx is tried again after 1 minute, 5 minutes, 30 minutes, 2 hours and 6 hours. Any other 4xx fails at once. A redirect counts as a failure.

After five failed deliveries in a row, or three in a row over 24 hours with no success, the endpoint is marked Failing and the workflows that send to it are Paused. Owners and admins see a banner on the workflow and get a notification in the bell. Fix the receiver, then press Resume: it tests the endpoint first, then sends what failed and what arrived while it was paused.

State Meaning
On Runs after each quiet round
Off Switched off. It needs a saved step to be turned on
Paused Stopped because its endpoint kept failing. Resume starts it again
Failing On, but an endpoint it sends to is failing
Esc

Type to search every page.