Saul

Email Automation

Inbox → automate → send.

Email Automation (v2026-08-02T101544Z-ab2bbdebf5) 2026-08-01 | Inbox → automate → send. 1 - INBOX PROCESSING EmailClassifier.classify() GET /api/ai/query _CLASSIFY_PROMPT vault/inbox/holons/<ts>_<subject>.md create_holon() email message 2 - HANDLER REGISTRY HandlerRegistry.handlers_for() register_category() register_tier() create_kanban_ticket() kanban_board classification 3 - EMAIL SENDING send_email() _load_template() _render() Postmark API POST /email Resend API POST /emails handler results 1. EmailClassifier.classify() proces… 2. HandlerRegistry.handlers_for() de… 3. create_holon() deposits holon in… 4. create_kanban_ticket() optionally… 5. send_email() prepares and sends t… Email Classification JSON Schema { "tier": <1|2|3|4>, "tier_name": <"skip"|"info_only"|"meeting_info"|"action_required">, "category": <"newsletter"|"digest"|"receipt"|"alert"|"calendar_invite"|"renewal"|"bill"|"inquiry"|"todo"|"reply_needed… "confidence": <0.0-1.0>, "summary": "<one sentence>", "suggested_reply": "<draft reply or empty string>", "extracted": {} } Email Template YAML Front-Matter --- subject: "Welcome to Kevin, {{name}}!" --- The system does not show integration with external email clients or third-party services beyond the defined APIs. Legend actor = initiates work · process = code path · store = state on disk · bus = durable queue · dashed = separate process cyan = request flow · pink = state read/write · dashed green = pull / return path · red = refusal

Provenance

This drawing is generated, not drawn. It is rebuilt from the source files below, so when they change the picture changes — a diagram here cannot quietly describe a system that no longer works this way.

Owner
Saul
Slug
email-automation
Rendered
2026-08-02T101544Z
From commit
ab2bbdebf5
Watches
2 paths
  • daemon/src/email_automate.py
  • daemon/src/email_sender.py