Trawl

Notifications

Stay in the loop without refreshing the dashboard. Trawl can email you results after every scheduled run and alert you when things break.

Notification types

There are two independent notification channels, both configured in Settings → Automation:

Email results

Sends the scraped data by email after each scheduled (cron) run. Choose between:

Format Best for
CSV Opening in Excel / Google Sheets, quick scanning
JSON Feeding into other tools, structured processing

The email contains the full result set from the latest execution. Manual runs and API-triggered runs do not send result emails — only cron runs do.

Alert on failure

Sends an email when the scrap transitions to a failure state:

  • error — the script threw an exception
  • 0 items — the script ran but returnData([]) returned nothing (usually a broken selector)

A run that comes back far shorter than usual does not send this alert on its own, even though it does count as a failure towards the three-in-a-row that pause a scrap — see Data quality.

One alert is sent per failed run — scheduled, manual, or API-triggered alike. In practice the automatic stream does not run away: once a scrap has failed three runs in a row Trawl skips its scheduled runs and sends the one-off email below instead, so the alerts stop with them. Runs you start yourself still alert.

Alerts with Auto-fix

When both Alert on failure and Auto-fix with AI are enabled, the failure email is replaced by an outcome-aware email sent after the fix attempt resolves. This keeps your inbox honest — no "it broke" email seconds before "we fixed it".

Scrap state Email sent Template When
autoFix: false + failure Failure (unchanged) scrap-failed-alert Immediately when the run fails
autoFix: true + Auto-fix recovered Recovered (green) scrap-autofix-recovered After the re-run comes back green
autoFix: true + Auto-fix couldn't fix Needs review (amber) scrap-autofix-failed After the fix attempt gives up
autoFix: true + the site blocked us, or the page could not be reached Failure scrap-failed-alert Immediately when the run fails — Auto-fix does not run on these, so there is nothing to wait for (why)

The Recovered email includes the diagnosis, a diff summary of the fix, and a link to the history entry. The Needs review email surfaces the reason (dry-run failed, no worker container, circuit breaker tripped, etc.) plus any attempted fix diff, so you can decide whether to accept, revert, or hand-edit.

Delivery timing: with Auto-fix on, the email arrives after the fix attempt resolves — the fix runs on the next event-loop tick, then the re-run is a real scrap run (typically 30-250s). With Auto-fix off, the email fires immediately — and so does the blocked/unreachable case in the table above, where no fix is attempted and there is nothing to wait for.

Rate: one email per terminal Auto-fix outcome per history. Consecutive failures each trigger their own email, but not without end: after three failed fix attempts in a row the breaker opens and Auto-fix stops trying on that scrap, silently — no further attempt, no further email — until the oldest of those attempts is more than 30 days old. So a scrap failing ten times in a row produces at most three "needs review" emails in any 30 days, not ten. After that the Auto-fix emails stop until the scrap has failed three runs in a row and the pause email below takes over. A blocked or unreachable page is unaffected by any of this: it never goes through Auto-fix at all, so it keeps sending the ordinary alert in the table above. See Safety guardrails.

When a scrap keeps failing

When a scrap has failed three runs in a row, Trawl skips its scheduled runs and emails you to say so: what is paused, that your schedule is untouched, and that it resumes on its own. It goes to the same alert recipient as failure alerts, so you only get it if you have set one. A run that finishes but comes back far shorter than usual counts as a failure here too, and a scrap with no schedule has nothing to skip — it still gets the email. See Data quality.

On a scheduled scrap you get it once in practice — because the runs themselves stop. Strictly, it is sent on every failed run while the scrap is in that state; it is just that the only runs left are then the periodic retry (about every two weeks, and only on a scrap that has a schedule) and the ones you start yourself. If one of those fails, you hear about it again. That is news, not noise.

A scrap you only ever run by hand has nothing to stop, and gets no periodic retry: the only runs left are yours, so each failing attempt emails you again.

You never get two emails about the same run: on a run that leaves the scrap in this state, this email replaces the ordinary failure alert.

See Schedule for how the pause and the recovery work.

Configuring recipients

By default, notifications go to your account email. You can override the recipient in Settings → Automation:

  • Alert email — who receives failure alerts
  • Email results recipient — who receives the CSV/JSON data after cron runs

Both fields accept a single email address.

When do notifications trigger?

Trigger Email results Alert
Scheduled (cron) run Yes Yes (on failure)
Manual run (UI play button) No Yes (on failure)
API-triggered run No Yes (on failure)

Email results are reserved for unattended, automated runs — that is what keeps your inbox clean when you are iterating on a scrap by hand. Alerts are not: a failure is worth telling you about whoever started the run. If you do not want them at all, clear the alert recipient in Settings → Automation.


See also: Schedule · AI Features · Webhooks · Data Quality

Next step → AI features