Skip to main content

Email

Email is the quiet integration. Use it for compliance distribution lists, off-hours summaries, and anyone who’d rather a single morning digest than a stream of Slack pings.

Two modes

Roboticks supports two email cadences per recipient:
ModeWhen it sendsBest for
Per-eventImmediately on the eventOn-call backup, distribution lists for critical events
Daily digestOne email per day, in the recipient’s timezoneManagers, compliance officers, weekly-review folks
A recipient can mix modes — e.g., per-event for evidence_pack.generation_failed, daily digest for everything else.

Set up

1

Add an email connector

Settings → Integrations → Email → Add. Name it for the audience (e.g., compliance-officers).
2

Recipients

Comma-separated mailboxes:
qa-lead@acme.com, compliance@acme.com, robotics-eng@acme.com
Distribution lists work fine — DL members each apply their own per-recipient preferences if they have a Roboticks account.
3

Default cadence

Pick per-event or daily digest as the connector default. Recipients with Roboticks accounts can override per event type.
4

Pick event types

Toggle the events to route. Defaults are conservative: evidence_pack.generated and evidence_pack.generation_failed on, the rest off.
5

Send test

Hit Send test email. A sample arrives within seconds.

Per-recipient preferences

Anyone with a Roboticks account at app.roboticks.io → Profile → Notifications can override the connector defaults for events that involve them:
  • Project they’re a member of
  • Requirement they authored
  • Test run they triggered
Notification preferences for amir@roboticks.io
────────────────────────────────────────────────────
test_run.completed (failed)        per-event
test_run.completed (passed)        off
requirement.gap_opened             daily digest
evidence_pack.generated            per-event
evidence_pack.generation_failed    per-event
standard.amendment_published       per-event
runner_pool.offline                off
These preferences override connector-level routing for the recipient’s own mailbox only — they don’t affect the rest of a distribution list.

Sample emails

Per-event — test run failed

Subject: [Roboticks · warehouse · FAIL] Run 8a1f3c2d on main

Run 8a1f3c2d — main @ 0xabc123
Status: FAIL · 411/412 tests · 2m 19s · prod-gpu-farm

Failed test
  tests/test_estop.py::test_estop_halts_motion
  AssertionError: stop reached at 142ms (budget 100ms)

Affected requirement
  REQ-001  E-stop halts motion within 100 ms  → uncovered

Pull request: #214 "Faster brake controller"

[View run]  [LLM triage]  [Open PR]

Daily digest

Subject: [Roboticks digest · warehouse · 2026-05-24]

Last 24h
  3 PRs · 47 test runs · 46 pass / 1 fail
  Requirement coverage: 142/160 confirmed (88.75%), -1 vs yesterday

Notable events
  GAP    REQ-051  Tool-change interlock (no confirming test since 2026-05-21)
  GAP    REQ-072  Compliance: torque cut-off (test renamed in #218)
  EV     v2.4.0 evidence pack generated (4.2 MB, 142 hash-chain entries)

Pinned standards
  ISO 10218-2:2025 — no amendments in window

[Open dashboard]  [Manage preferences]

Calendar-aware digests

Daily digests respect:
  • The recipient’s profile timezone (UTC by default)
  • A quiet-hours window (default 22:00–07:00 local) — events that would page during quiet hours queue for the morning digest
  • A weekend mode (off by default) — Saturday/Sunday digests can be suppressed for non-on-call roles
Configure at app.roboticks.io → Profile → Notifications → Digest schedule.

Deliverability

Value
Sender domainnotify.roboticks.io
SPFv=spf1 include:amazonses.com ~all
DKIMRSA-2048, rotated annually
DMARCp=quarantine; rua=mailto:dmarc@roboticks.io
One-click unsubscribeRFC 8058 (per-recipient)
If your gateway is aggressive, allowlist notify.roboticks.io and noreply@roboticks.io. The bounce rate from us is sub-0.1%, so deliverability issues are almost always at the receiver end.

Multiple connectors

You’ll often want several email connectors:
ConnectorRecipientsDefault cadenceEvent filter
compliance-officersDL compliance@acme.comdaily digestevidence-pack events only
qa-teamDL qa@acme.comper-eventall test events
on-call-backupindividual mailboxesper-eventrunner_pool.offline only

Troubleshooting

Check the delivery log at Settings → Integrations → Email → Delivery log. Status bounced means the recipient’s mailbox rejected; dropped means our pre-send checks (SPF, DKIM) flagged the recipient domain.
Switch them to daily digest via Profile → Notifications, or remove them from the connector’s distribution list and have them subscribe per-recipient.
DL members who unsubscribe only mute their own delivery — the DL itself is unaffected for everyone else. Use individual mailboxes if you need DL members to opt out without affecting peers.

Best practice

  • Reserve per-event for the events that actually need real-time attention.
  • Use distribution lists, not individual mailboxes — survives team changes.
  • Wire one connector to evidence_pack.generated and route it to the auditor’s mailbox; that’s the most common use of email in regulated shops.