Email inbound - inbound parsing (MS365)¶
| Stage | Estimated |
|---|---|
| Status | Deferred |
| Design status | In progress |
| Estimate | 3w (XL) |
| Confidence | Low |
| Linear | PIN-71 ↗ PIN-253 ↗ PIN-252 ↗ |
| Linear status | Todo · +2 backlog |
| Design | Design ↗ |
| Linear epic | Platform Foundation |
| Module | Settings & Admin ↗ |
Priority: Medium
Scope¶
MS365 Graph API integration for inbound + outbound mail: inbound reads a user's O365 inbox, an AI classifier flags emails as task / not-task with a suggested task summary, and accept/reject decisions train a per-user classifier profile. Outbound sends bid-invite, submittal/RFI, and user-invite notifications from Pinley's own domain rather than a generic sender. (Source: PIN-71, PIN-253, PIN-252.)
Acceptance criteria¶
- Outbound notification email (bid invites, submittal/RFI alerts, user invites, overdue flags) sent from Pinley's own domain
- O365 inbox connector reads incoming mail per user (auth path + read strategy confirmed by feasibility spike)
- AI classifies each incoming email as task / not-task with a confidence score + suggested task summary
- Suggested-task inbox UI: accept (creates task), reject (feedback), or edit-then-accept
- Every accept/reject persisted per user to train that user's own classifier — never shared cross-tenant
- Every AI-created task is audit-logged
- Privacy/legal review completed before reading user inboxes goes live
Conor's comments¶
Is this part of what Jonny is working on?
Notes¶
3-4wk; feeds Tasks AI
Open question for Conor¶
MS365 integration + inbound parse + AI task gen + reply handling - confirm scope