Skip to main content

Overview

Microsoft 365 integration provides access to Outlook, Calendar, OneDrive, Teams, and other Microsoft services through Microsoft Graph API.

Supported Services

  • Outlook Email - Send, read, and manage emails
  • Calendar - Schedule events and manage availability
  • OneDrive - Access and manage files
  • Teams - Channel and chat integration
  • Contacts - Access and manage contacts
  • To Do - Task management

Setup

1. Register Application in Azure

  1. Go to Azure Portal
  2. Navigate to “Azure Active Directory” > “App registrations”
  3. Click “New registration”
  4. Enter application details:
    • Name: “Praxos”
    • Supported account types: Choose based on needs
    • Redirect URI: https://your-domain.com/auth/microsoft/callback

2. Configure API Permissions

Add delegated permissions: Mail
  • Mail.Read
  • Mail.ReadWrite
  • Mail.Send
Calendar
  • Calendars.Read
  • Calendars.ReadWrite
Files
  • Files.Read.All
  • Files.ReadWrite.All
Teams (optional)
  • Team.ReadBasic.All
  • Channel.ReadBasic.All
  • ChatMessage.Send

3. Create Client Secret

  1. Go to “Certificates & secrets”
  2. Click “New client secret”
  3. Set expiration (recommended: 24 months)
  4. Copy the secret value immediately

4. Configure Praxos

Add to .env:

User Authorization

OAuth flow for user authorization:
  1. User requests Microsoft integration
  2. Praxos provides authorization URL
  3. User signs in with Microsoft account
  4. Grants requested permissions
  5. Tokens stored securely
  6. Integration complete

Features

Outlook Email

Send Emails
Read Emails
Search and Filter

Calendar

Schedule Meetings
Check Schedule
Find Meeting Times

OneDrive

File Access
Upload Files
Share Files

Teams Integration

Send Channel Messages

Configuration

Environment Variables

Graph API Settings

Advanced Features

Batch Requests

For efficiency, batch multiple requests:

Delta Queries

Track changes efficiently:

Webhooks

Real-time notifications for:
  • New emails
  • Calendar changes
  • File updates

Troubleshooting

Authentication Issues

Invalid Client
  • Verify Client ID and Secret
  • Check Application ID in Azure Portal
  • Ensure secret hasn’t expired
Insufficient Permissions
  • Check required API permissions granted
  • Admin consent may be required
  • Verify user has necessary licenses

API Errors

403 Forbidden
  • User lacks permissions
  • Application lacks API permissions
  • Tenant admin hasn’t consented
429 Too Many Requests
  • Rate limit exceeded
  • Implement backoff strategy
  • Review request patterns
5xx Server Errors

Rate Limits

Microsoft Graph throttling limits:
Praxos automatically handles throttling with retry logic and exponential backoff.

Security

Token Security

  • Tokens encrypted at rest
  • Automatic token refresh
  • Secure credential storage
  • Per-user isolation

Conditional Access

Support for:
  • Multi-factor authentication
  • Conditional Access policies
  • Device compliance requirements

Compliance

  • GDPR compliant
  • SOC 2 considerations
  • Data residency options
  • Audit logging

Best Practices

  • Use batch requests when possible
  • Implement delta queries for sync
  • Cache frequently accessed data
  • Monitor API usage and throttling
  • Use webhooks for real-time updates

Next Steps

Notion Integration

Email Tools