Skip to main content

Screen: Inbound Email

web/inbound.html. Every email SABLE has ingested, and the place to give a project to the ones it couldn't place itself.

Why this screen has to exist

An email SABLE cannot attribute to a project is stored, but not indexed — it won't appear in search, on a project page, or in that project's living note. A project page can't show it either, because it has no project. Without this screen, those emails are invisible: ingested, and effectively unreadable. Assigning one here is what actually makes it searchable.

All, and Needs a Project

"All" shows every ingested email, so you can confirm a message arrived regardless of how it was classified. "Needs a project" shows only the ones waiting on a decision. Every row shows the subject, arrival time, from/to, and whether it carried an attachment — never the body. Deciding where a thread belongs is treated as a different action from reading it.

Why an email couldn't be placed

ReasonMeaning
No known contact or domainOften a roster gap, not a stray email
One likely projectSABLE recognizes the sender's domain or a known contact; confirm to assign
Several projects matchTwo clients on one thread — a judgment call only a person can make; SABLE reports both rather than guessing

Assigning, and teaching SABLE for next time

Choose a project and press Assign. Suggestions are marked, but you can pick any project — you often know something the roster doesn't. Checking "also remember this domain" teaches SABLE to attribute future email from that company automatically; it's only offered when exactly one outside company appears on the message, because with two, remembering the wrong one would quietly misfile everything that follows. The assignment saves immediately, but indexing happens on the next scheduled sync, within the hour — not instantly.

Who can use it

Admins and leads only. Email is client correspondence, so triage isn't open to everyone with a login.

Where the code lives

  • sable-agents-demo/web/inbound.html
  • sable-agents-demo/web/api/inbound-emails.js, _inbound_email.js — see the Inbound Email API
  • sable-agents-demo/supabase/functions/email-webhook/, email-sync