Ellipse Gradient for Header

Microsoft Exchange Online Integration Guide

Integrate Exchange Online mail, calendars, contacts, users, and attachments through Microsoft Graph REST APIs, change notifications, delta queries, and OAuth 2.0.

Microsoft Exchange Online integration options at a glance

Microsoft Exchange Online integrations primarily use Microsoft Graph REST APIs for messages, mail folders, events, calendars, contacts, users, mailbox settings, and attachments. Graph change notifications provide low-latency signals for selected resources, while delta queries support incremental synchronization and JSON batching can reduce network overhead. OAuth 2.0 through Microsoft Entra ID supports delegated and application access, subject to permissions, consent, and mailbox restrictions. Martini can consume Graph APIs, receive notification callbacks, retrieve authoritative resources, map and transform data, and orchestrate scheduled reconciliation workflows. Exchange Web Services remains a legacy SOAP option for compatibility and migration scenarios.

Integration pointSupported by Microsoft Exchange Online?Common use casesHow Martini supports it
Microsoft Graph REST APIsYesAccess messages, mail folders, events, calendars, contacts, users, mailbox settings, and attachments using resource-oriented HTTP operations, filtering, property selection, relationships, and paging.Martini can consume the Graph REST API from workflows, manage request configuration and authentication, map responses, and expose reusable APIs around normalized Exchange Online data.
Webhooks / change notificationsYesReceive HTTPS notifications for selected changes to messages, mail folders, events, contacts, and users. Coverage depends on the resource, operation, permission model, and subscription.Martini can expose a webhook-style endpoint, validate and acknowledge Graph notifications, and invoke asynchronous workflows that retrieve the changed resource.
Delta queriesYesPerform incremental synchronization for selected resources, including messages, mail folders, events, and contacts, using persisted delta links.Martini can store delta links securely, retrieve changed resources, recover from invalid links, and combine incremental processing with scheduled reconciliation.
JSON batchingYesSend multiple Graph requests in one HTTP request to reduce network overhead when retrieving related or paged Exchange Online resources.Martini can orchestrate batched API calls while still handling individual request results, permissions, throttling, and retry decisions.
File and attachment APIsYesRead and create file, item, and reference attachments on messages and events; large files may require upload sessions.Martini can retrieve, transform, route, and upload attachment content while applying size, file-type, security, and target-system rules.
AuthenticationYesUse Microsoft Entra ID OAuth 2.0 with delegated or application permissions, administrator consent, resource-specific permissions, and optional mailbox access restrictions.Martini can securely configure API authentication and secrets, apply environment-specific settings, and use least-privilege permission assignments supplied by the organization.
Exchange Web ServicesLegacyProvide SOAP-based mailbox access for existing compatibility or migration scenarios. Microsoft recommends Microsoft Graph for new Exchange Online integrations.Martini can consume SOAP services where a legacy dependency remains, but new workflows should prefer Graph and include an EWS migration assessment.
Direct database accessNoExchange Online does not expose customer-facing database access for mailbox data.Martini should use Microsoft Graph or other Microsoft-supported APIs rather than attempting direct database integration.

How Microsoft Exchange Online exposes data and business events

Microsoft Graph REST APIs

Microsoft Graph is the recommended Exchange Online integration surface. It exposes messages, mail folders, events, calendars, contacts, users, mailbox settings, and attachments through resource-oriented HTTP APIs with filtering, property selection, relationships, and paging.

Martini implementation pattern

Martini implementation pattern: a workflow authenticates with Microsoft Entra ID, calls the required Graph resource, follows pagination, maps the response into a canonical model, applies business rules, and writes to the target system. The workflow records correlation and processing state for repeatable execution.

Implementation sequence

Authenticate with Microsoft Entra ID using the approved permission model
Call the required Microsoft Graph resource
Follow @odata.nextLink until the relevant collection is complete
Map Graph properties into the canonical integration model
Apply mailbox, resource, and business rules
Write the result to the target system and record processing state

Microsoft Graph change notifications

Graph change notifications provide HTTPS callbacks for selected changes to messages, mail folders, events, contacts, and users. Coverage is resource- and operation-specific, and subscriptions expire and require renewal.

Martini implementation pattern

Martini implementation pattern: expose a reachable HTTPS endpoint, handle Graph validation, acknowledge notifications quickly, and start an asynchronous workflow. The workflow treats the notification as a signal, retrieves the authoritative resource, and applies idempotent processing.

Implementation sequence

Receive and validate the Graph notification
Acknowledge the notification promptly
Retrieve the current Exchange Online resource
Apply an idempotency check using a durable identifier
Map and process the resource asynchronously
Renew subscriptions and monitor delivery failures

Delta queries

Delta queries support incremental synchronization for selected resources such as messages, mail folders, events, and contacts. A synchronization process stores a delta link and uses it on later runs to retrieve changes.

Martini implementation pattern

Martini implementation pattern: a scheduled workflow loads the stored delta link, retrieves changed resources, processes additions and updates, and persists the returned link only after successful target handling. Recovery logic starts a controlled resynchronization if the link is invalid.

Implementation sequence

Load the stored delta link for the resource
Request the next set of changes from Microsoft Graph
Process each changed resource idempotently
Follow paging links until the delta response is complete
Persist the new delta link after successful processing
Start recovery or full synchronization when the link is invalid

File and attachment APIs

Microsoft Graph supports file, item, and reference attachments on messages and events. Large attachments may require upload sessions, and message bodies can contain HTML, plain text, MIME content, and inline resources.

Martini implementation pattern

Martini implementation pattern: retrieve attachment metadata first, apply file and data-loss rules, download or upload content only when needed, and transfer it to the target application or archive. Content handling is separated from message metadata processing so failures can be retried safely.

Implementation sequence

Retrieve the message or event attachment metadata
Apply file type, size, and authorization rules
Download or obtain the attachment content when approved
Transform content and metadata for the target system
Transfer the attachment or store its reference
Record the attachment correlation and processing result

Exchange Web Services

Exchange Web Services is a legacy SOAP-based interface historically used for Exchange Online mailbox access. Microsoft has announced its retirement and recommends Microsoft Graph for new integrations.

Martini implementation pattern

Martini implementation pattern: where an existing dependency requires EWS, Martini can consume the SOAP service in a contained compatibility workflow while the organization verifies equivalent Graph resources, permissions, and operations for migration.

Implementation sequence

Identify the existing EWS operation and mailbox scope
Configure the legacy SOAP authentication and endpoint
Retrieve or submit the required Exchange data
Map the result into the canonical model
Apply compatibility and error handling rules
Plan and validate migration to Microsoft Graph

Common Microsoft Exchange Online integration patterns

Pattern 1: Convert mailbox messages into service tickets

When to use this pattern

Use this pattern when a monitored Exchange Online mailbox is an intake channel for incidents, requests, customer cases, or support conversations. Graph notifications provide low-latency detection, while the message and attachments remain the authoritative content.

Integration direction
Microsoft Exchange Online
Martini
ServiceNow
Example Mapping
Microsoft Exchange Online FieldCanonical FieldTarget Field
idsourceMessageIdcorrelation_id
subjectcaseSubjectshort_description
from.emailAddress.addressrequesterEmailcaller.email
body.contentmessageBodydescription
Martini implementation pattern

Martini receives the notification, retrieves the current message, filters by mailbox, folder, sender, subject, or headers, and maps approved content into ServiceNow. It checks the Graph message or internet message ID before creating a ticket, transfers permitted attachments, and routes throttling or transient failures through bounded retries.

Martini capabilities used
  • workflows
  • API consumption
  • webhook receiving
  • data mapping
  • business rules
  • error handling

Pattern 2: Synchronize communication activity with a CRM

When to use this pattern

Use this pattern when customer-facing email, appointments, and contacts need to be represented in Salesforce or Microsoft Dynamics 365. Delta queries and scheduled reconciliation provide a durable alternative or complement to notifications.

Integration direction
Microsoft Exchange Online
Martini
Salesforce
Example Mapping
Microsoft Exchange Online FieldCanonical FieldTarget Field
subjectactivitySubjectSubject
sendercommunicationOwnerFromAddress
start.dateTimeappointmentStartStartDateTime
attendeesparticipantsWhoId or Participants
Martini implementation pattern

A Martini workflow retrieves changed Graph resources using delta links or a schedule, excludes private or ineligible activity according to business rules, normalizes time zones and attendees, and upserts CRM activities and contacts. It persists synchronization state and retries individual target failures without replaying completed items.

Martini capabilities used
  • scheduled workflows
  • API consumption
  • incremental synchronization
  • data mapping
  • business rules
  • idempotent processing

Pattern 3: Coordinate calendar appointments and meetings

When to use this pattern

Use this pattern when an internal scheduling or customer-facing application needs to create or update Exchange Online events, or when event changes must flow back to that application.

Integration direction
Scheduling application
Martini
Microsoft Exchange Online
Example Mapping
Microsoft Exchange Online FieldCanonical FieldTarget Field
meeting.titleeventSubjectsubject
meeting.participantsattendeesattendees
meeting.startstartTimestart
meeting.recurrencerecurrenceRulerecurrence
Martini implementation pattern

Martini exposes or consumes an API for appointment requests, validates attendees, time zones, recurrence, locations, and online meeting requirements, then calls Microsoft Graph to create or update the event. A reverse workflow can retrieve event changes and update the originating system using event IDs and correlation keys.

Martini capabilities used
  • API exposure
  • workflows
  • validation
  • data transformation
  • business rules
  • error handling

Pattern 4: Archive messages and attachments

When to use this pattern

Use this pattern when selected mailbox content must be transferred to SharePoint, a document-management platform, an archive, or a data lake under organization-defined retention and approval rules.

Integration direction
Microsoft Exchange Online
Martini
SharePoint
Example Mapping
Microsoft Exchange Online FieldCanonical FieldTarget Field
internetMessageIdsourceCommunicationKeyexternal_id
subjectdocumentTitlename
receivedDateTimereceivedAtreceived_date
attachmentsrelatedFilesdocument_attachments
Martini implementation pattern

A scheduled Martini workflow retrieves qualifying messages and attachments from approved folders, selects only necessary properties, normalizes HTML or MIME content, and transfers files and metadata to the archive. Durable processing records, correlation IDs, bounded retries, and duplicate checks prevent repeated archive entries.

Martini capabilities used
  • scheduled workflows
  • API consumption
  • file handling
  • data mapping
  • business rules
  • retry handling

Applications commonly integrated with Microsoft Exchange Online

Microsoft Exchange Online can be integrated with adjacent business applications when email, calendar, contact, meeting, or mailbox activity needs to participate in operational workflows. Martini can coordinate the Microsoft Graph side with each target application's API, apply eligibility and security rules, and maintain reusable synchronization logic.

Application Scenario Direction Martini Pattern
Salesforce Synchronize eligible email, calendar events, contacts, and customer communications with Salesforce activities and contacts. Microsoft Exchange Online → Martini → Salesforce Use Microsoft Graph change notifications, delta queries, or scheduled retrieval to collect eligible activity, map it to Salesforce objects, apply mailbox and business rules, and use durable identifiers to prevent duplicate activity creation.
ServiceNow Convert messages from monitored mailboxes into incidents, requests, or cases and optionally send status notifications through Exchange Online. Microsoft Exchange Online → Martini → ServiceNow Receive a Graph notification, retrieve the message and attachments, filter by folder, sender, subject, or headers, map the content to ServiceNow, and retain the Graph message identifier as an idempotency key.
Microsoft Dynamics 365 Synchronize messages, appointments, contacts, and users with Dynamics 365 customer and sales activity. Microsoft Exchange Online → Martini → Microsoft Dynamics 365 Run a bidirectional Graph and Dynamics 365 workflow using delta links or schedules, normalize time zones and attendees, apply object-specific rules, and retry transient API failures without duplicating activities.
Microsoft Teams Coordinate calendar events, attendees, online meeting information, and related Microsoft 365 processes. Microsoft Exchange Online → Martini → Microsoft Teams Use Graph event resources as the authoritative input, map meeting and attendee data into the relevant Teams-related process, and isolate resource-specific permissions and event behavior in reusable workflows.
SharePoint Archive selected messages and attachments in SharePoint document libraries or associate communications with business records. Microsoft Exchange Online → Martini → SharePoint Retrieve qualifying messages and attachments through Graph, normalize HTML or MIME content, transfer approved files to SharePoint, and store correlation and archive status for safe retries.
Jira Convert selected mailbox messages into Jira issues and send issue updates or notifications through Exchange Online. Microsoft Exchange Online → Martini → Jira Filter and retrieve messages, map subject, body, sender, and attachments to Jira issue fields, track the Graph message ID and Jira issue key, and route failures to retry or exception handling.
Zendesk Turn support emails into Zendesk tickets and synchronize ticket responses or status notifications with the mailbox. Microsoft Exchange Online → Martini → Zendesk Use Graph notifications for monitored messages, retrieve the complete message when needed, map conversation content and attachments to Zendesk, and use message and ticket identifiers for correlation.
NetSuite Provide selected email, appointment, or contact context to NetSuite processes where finance or operations teams need mailbox information. Microsoft Exchange Online → Martini → NetSuite Use a selective scheduled or delta-based workflow, map only approved Exchange Online objects to the NetSuite implementation, enforce data-minimization rules, and confirm target-object support during delivery.

How to build a Microsoft Exchange Online integration in Martini

Objective

Establish Microsoft Graph access with an approved Microsoft Entra ID OAuth 2.0 model and a narrowly scoped mailbox and resource permission set.

Instructions in Martini

  • Choose delegated or application access based on the operating model
  • Configure tenant, client, redirect, and consent requirements where applicable
  • Store credentials and secrets in secure Martini configuration
  • Restrict application access to approved mailboxes when required

Objective

Select the event, schedule, or API entry point that matches the required latency and synchronization confidence.

Instructions in Martini

  • Use Graph change notifications for supported low-latency resources
  • Use delta queries and scheduler workflows for incremental synchronization
  • Expose a Martini API for inbound appointment or mail requests
  • Add scheduled reconciliation for missed notifications and expired subscriptions

Objective

Obtain authoritative Exchange Online resources rather than treating notifications as complete business records.

Instructions in Martini

  • Retrieve the changed message, event, contact, folder, or user
  • Follow Graph paging links for complete collections
  • Retrieve attachment content only when required
  • Persist delta links and subscription state securely

Objective

Coordinate calls, asynchronous processing, target writes, and state management in a maintainable Martini workflow.

Instructions in Martini

  • Separate notification acknowledgement from heavier processing
  • Create reusable flows for Graph retrieval and correlation
  • Route messages, events, contacts, and attachments according to object type
  • Record processing state and correlation identifiers

Objective

Convert Graph resources into the target application's canonical and object-specific data model.

Instructions in Martini

  • Map sender, recipients, subjects, bodies, headers, and identifiers
  • Normalize HTML, MIME content, and attachment metadata
  • Preserve calendar time zones, recurrence, attendees, and locations
  • Apply validation and business eligibility rules

Objective

Create or update the target system while preserving idempotency and handling partial failures.

Instructions in Martini

  • Upsert target objects using durable source identifiers
  • Apply duplicate checks before creating messages, tickets, activities, or archive records
  • Commit processing state only after successful target handling
  • Route rejected or incomplete records to an exception path

Common Microsoft Exchange Online data objects used in integrations

ObjectTypical UseCommon target systemsMartini handling
MessagesSynchronize email activity, process monitored mailbox intake, send mail, or archive qualifying communications.Salesforce, ServiceNow, Zendesk, Jira, SharePoint, archive platformsMartini retrieves selected properties or full content when required, filters by mailbox and business rules, maps bodies and headers, and uses message identifiers for idempotency.
Mail foldersIdentify Inbox, Sent Items, Drafts, or custom mailbox locations used by intake, synchronization, and archival workflows.ServiceNow, Zendesk, SharePoint, data storesMartini resolves folder identifiers, scopes queries to approved folders, follows paging and delta links, and stores synchronization state.
EventsSynchronize appointments, meetings, attendees, recurrence, locations, and online meeting information.Salesforce, Microsoft Dynamics 365, Microsoft Teams, scheduling applicationsMartini maps attendees, time zones, recurrence, locations, and online meeting properties while applying conflict and eligibility rules.
CalendarsRead or update user and group calendar containers and their associated events.Salesforce, Microsoft Dynamics 365, scheduling applicationsMartini coordinates calendar and event calls, preserves resource identifiers, and supports scheduled or event-driven synchronization.
ContactsSynchronize personal mailbox contacts with customer, partner, or employee contact data.Salesforce, Microsoft Dynamics 365, NetSuiteMartini applies field mapping, deduplication, permission, and ownership rules and can use delta queries where supported.
AttachmentsTransfer files, item attachments, or reference attachments associated with messages and events.SharePoint, ServiceNow, Zendesk, document archives, data lakesMartini handles attachment metadata and content, uses upload-session patterns for large files where required, and applies security and size policies.

Authentication and security considerations

Microsoft Entra ID OAuth 2.0

Exchange Online integrations through Microsoft Graph use Microsoft Entra ID OAuth 2.0. Delegated access acts on behalf of a signed-in user, while application access supports daemon or backend workflows without an interactive user.

Least-privilege permissions

Request only the permissions required for the resources and operations in scope, such as Mail.Read, Mail.ReadWrite, Mail.Send, Calendars.Read, Calendars.ReadWrite, Contacts.Read, or User.Read. Administrator consent may be required.

Mailbox and secret controls

  • Restrict application access to approved mailboxes where organizational policy requires it.
  • Store client credentials, tokens, tenant configuration, and related secrets in protected Martini configuration.
  • Separate delegated and application permission models across environments.
  • Protect webhook endpoints and validate Microsoft Graph notification requests.

Operational considerations for Microsoft Exchange Online integrations

Throttling and retries

Microsoft Graph can return HTTP 429 and transient 5xx responses. Honor Retry-After when supplied, use bounded backoff, and avoid aggressive polling. Batch requests reduce network overhead but do not remove per-request throttling.

Paging and incremental state

Follow @odata.nextLink for complete collections and persist delta links securely. Delta links can become invalid, so include controlled full-resynchronization recovery.

Notifications and idempotency

Change notifications are resource-specific, can expire, and may be delivered more than once. Renew subscriptions before expiration, retrieve current resource state, and use durable identifiers to prevent duplicate processing.

Content and schema handling

Define policies for HTML, MIME content, inline images, attachments, large files, time zones, and recurrence. Monitor Microsoft Graph API changes and test permission and resource behavior against the selected API version.

Why use Martini instead of scripts or point-to-point integrations?

Orchestrate more than API calls

Martini coordinates Graph API consumption, webhook reception, scheduled reconciliation, target-system writes, validation, business rules, and durable processing state in maintainable workflows.

Reuse integration logic

Reusable workflows and APIs can centralize mailbox restrictions, pagination, delta handling, attachment processing, mapping, and error policies instead of duplicating them across scripts or point-to-point implementations.

Support controlled change

Martini separates environment configuration and secrets from workflow logic and provides structured handling for throttling, retries, duplicate notifications, expired subscriptions, schema changes, and operational troubleshooting.

Frequently asked questions

How can Microsoft Exchange Online be integrated with enterprise systems?

Exchange Online is primarily integrated through Microsoft Graph REST APIs for messages, folders, calendars, events, contacts, users, mailbox settings, and attachments. Graph change notifications can provide selected event signals, while delta queries and scheduled workflows support incremental synchronization. Microsoft Entra ID OAuth 2.0 provides delegated or application authentication. Exchange Web Services is a legacy SOAP option for compatibility and migration scenarios.

Can Martini integrate with Microsoft Exchange Online?

Yes. Martini can consume Microsoft Graph REST APIs, receive Microsoft Graph change notifications through an HTTPS endpoint, orchestrate delta and scheduled synchronization workflows, handle attachments, and expose APIs for inbound calendar or mail processes. No native Martini Exchange Online connector is documented in the supplied sources.

Do I need a connector to integrate Microsoft Exchange Online with Martini?

No dedicated Microsoft Exchange Online connector is required. Martini can integrate using the vendor's native Microsoft Graph REST APIs, change notifications, delta queries, attachment operations, and Microsoft Entra ID OAuth 2.0. EWS can be consumed only where a legacy compatibility requirement remains.

Is there any extra Lonti cost to integrate Microsoft Exchange Online with Martini?

Lonti does not charge an additional per-connector or per-vendor fee to integrate Microsoft Exchange Online with Martini. Integrations are subject to the provisioned capacity of the Martini environment. Separate costs may apply from Microsoft, infrastructure providers, or other third-party systems based on subscription, usage, permissions, and deployment model.

Which Microsoft Exchange Online integration method should new projects use?

New projects should use Microsoft Graph REST APIs with Microsoft Entra ID OAuth 2.0. Change notifications are useful for selected low-latency resources, while delta queries and scheduled reconciliation improve synchronization reliability. EWS should generally be limited to existing compatibility scenarios because it is a legacy API being retired in Exchange Online.

Are events or webhooks available for Exchange Online?

Microsoft Graph change notifications are available for selected messages, mail folders, events, contacts, and users. Coverage depends on the resource, operation, permissions, and subscription. Notifications can expire or be delivered more than once, so an integration should retrieve the authoritative resource and use idempotent processing.

How does synchronization and duplicate handling work?

Martini can combine Graph change notifications, resource retrieval, delta queries, and scheduled reconciliation. It can persist delta links and subscription state, follow pagination, and use Graph resource IDs, message IDs, event IDs, or application correlation keys as durable idempotency identifiers. Recovery logic should address invalid delta links and missed or expired subscriptions.

Can Martini expose an API façade for Microsoft Exchange Online?

Yes. Martini can expose a controlled REST API that presents normalized mail, calendar, contact, or scheduling operations to internal applications while managing Microsoft Graph calls behind the API. This can centralize authentication, validation, mapping, mailbox restrictions, business rules, retries, and monitoring.