Currently only Gmail is supported. Enterprise users need Outlook/Exchange integration via Microsoft Graph API.
Acceptance Criteria
• Create backend/src/services/outlook-auth.service.ts
• Generate OAuth URL using MSAL (@azure/msal-node)
• Handle OAuth callback, exchange code for tokens
• Create backend/src/services/outlook-sync.service.ts
• Fetch latest 50 messages via Microsoft Graph API
• Map Graph API response to InboxOS Email schema
• Use delta queries for incremental sync
• Store tokens in Integration model (encrypted)
• Add Outlook OAuth button to frontend Settings (next to Gmail)
Technical Notes
• Support both personal Microsoft accounts and Office 365
• Handle Graph API throttling (429 with Retry-After)
• Must be async, don’t block HTTP response
• Auto-refresh tokens via MSAL
Currently only Gmail is supported. Enterprise users need Outlook/Exchange integration via Microsoft Graph API.
Acceptance Criteria
• Create backend/src/services/outlook-auth.service.ts
• Generate OAuth URL using MSAL (@azure/msal-node)
• Handle OAuth callback, exchange code for tokens
• Create backend/src/services/outlook-sync.service.ts
• Fetch latest 50 messages via Microsoft Graph API
• Map Graph API response to InboxOS Email schema
• Use delta queries for incremental sync
• Store tokens in Integration model (encrypted)
• Add Outlook OAuth button to frontend Settings (next to Gmail)
Technical Notes
• Support both personal Microsoft accounts and Office 365
• Handle Graph API throttling (429 with Retry-After)
• Must be async, don’t block HTTP response
• Auto-refresh tokens via MSAL