Skip to content

Reference: Outlook Integration

Detailed view of the data links and automation behind the Outlook module. Focuses on integration management, scheduled jobs, and data flows to/from Microsoft 365/Outlook.com.

Architecture & Flows

flowchart LR
    U["User connects Microsoft account<br/>OAuth 2.0"] --> EA["External Outlook Account"]
    EA --> CalJob["Job 'SyncOutlookCalendar'<br/>*/10 minutes"]
    CalJob <--> CRMEvents["Meetings & Calls in CRM"]
    CalJob <--> Graph["Microsoft Graph / Outlook Calendar"]
    EA --> ContactsPush["'Push to Outlook' action"]
    ContactsPush --> People["Outlook Contacts API"]
    EA --> MailOAuth["OAuth2 IMAP/SMTP<br/>Outlook/Office365"]
Object Purpose Linkage
External Outlook account (ExternalAccount) Stores OAuth tokens and user settings for calendar/contacts/mail. Linked to User; Outlook integration.
Meetings / Calls Primary entities synchronized to Outlook calendars. Updated by the SyncOutlookCalendar job.
Contacts / Leads Can be sent manually to Outlook via the "Push to Outlook" action. Calls the OutlookContacts/action/push endpoint.
Email accounts IMAP/SMTP configuration uses modern OAuth; the "Outlook" panel shows only when host contains office365. or .outlook.com. Controlled by outlook:inbound-email-dynamic-handler.

Configuration Fields

  • Integration credentials (admin): clientId, clientSecret, tenant from the Azure AD (Microsoft Entra ID) app registration. Entered under Integrations → Outlook.
  • User profile: connect the account via External Accounts → Outlook; once connected, calendar/contacts/mail panels become available.

Automation & Jobs

  • SyncOutlookCalendar (cron: */10 * * * *) – synchronizes events between CRM and Outlook calendar. Created on install and removed on uninstall.
  • Push to Outlook action – available on Contact/Lead record and mass actions; uses OutlookContacts/action/push.
  • Dynamic Outlook panel on inbound email/account records shows only in detail mode and only when host detection matches office365. or .outlook.com.

Security & Constraints

  • Authentication uses OAuth 2.0 (Microsoft identity platform); passwords are not stored in CRM.
  • Outlook panels are hidden while editing email accounts to avoid interfering with configuration.
  • Keep the default 10-minute schedule; shorter intervals risk Microsoft Graph throttling.