Ellipse Gradient for Header
SharePoint logo

SharePoint Integration Guide

Connect SharePoint Online with enterprise applications through Microsoft Graph, SharePoint REST APIs, resource-specific notifications, and scheduled workflows.

SharePoint integration options at a glance

SharePoint Online integrations primarily use Microsoft Graph REST APIs, with SharePoint REST APIs available for SharePoint-specific operations. Martini can authenticate through Microsoft Entra ID OAuth 2.0 using delegated or application permissions, then orchestrate workflows for Sites, Lists, List items, Drives, Drive items, and Pages. Supported SharePoint list webhooks and Microsoft Graph change notifications can initiate API workflows for selected resources, while scheduled workflows support reconciliation, subscription renewal, pagination, and delta synchronization where available. Graph JSON batching and file APIs help process larger workloads, with retry and throttling controls for Microsoft 365 service limits.

Integration pointSupported by SharePoint?Common use casesHow Martini supports it
Microsoft Graph REST APIsYesAccess Sites, Lists, List items, Drives, Drive items, permissions, and selected SharePoint resources using OData queries and resource-specific endpoints.Martini can consume the Graph REST API through authenticated HTTP workflows, paginate responses, map JSON, and apply business rules.
SharePoint REST APIsYesHandle SharePoint-specific list, field, content type, page, file, folder, and configuration operations that may not have equivalent Graph coverage.Martini can call site-scoped REST endpoints and transform their responses within reusable workflows.
Webhooks and change notificationsLimitedReceive notifications for supported SharePoint list scenarios and selected Microsoft Graph SharePoint resources. Notifications indicate that a change occurred and may not contain the full object.Martini can expose an API for notifications, retrieve the current resource, deduplicate events, and schedule subscription renewal and reconciliation.
Delta synchronizationLimitedUse Graph delta queries for selected resources, particularly Drive items, to identify additions, updates, and deletions since a stored state token.Martini can persist delta links or tokens, process pages, and initiate controlled resynchronization if state becomes invalid.
Bulk and JSON batchingYesSubmit multiple Graph requests in one HTTP request to reduce network overhead for list, item, or file processing.Martini can construct batch requests and independently handle operation-level failures and throttling responses.
File and attachment APIsYesList, download, upload, move, copy, and update files in SharePoint document libraries through Drives and Drive items; list attachments may require separate operations.Martini can stream or transform file content, manage metadata, and orchestrate resumable upload workflows where required.
AuthenticationYesUse Microsoft Entra ID OAuth 2.0 with delegated or application permissions, including restricted selected-site access where configured.Martini can store credentials securely and use OAuth-based configuration for scheduled, API-led, and notification workflows.
SOAP APIsLegacyUse legacy SharePoint web services only when a specific historical SharePoint operation requires them; SOAP is not recommended for new SharePoint Online integrations.Martini can consume SOAP services when necessary, but Graph or SharePoint REST should be evaluated first.
Database accessNoSharePoint Online does not expose a supported relational database interface for application integrations.Martini should use Graph, SharePoint REST, notifications, or exported files rather than direct SharePoint database access.

How SharePoint exposes data and business events

SharePoint REST APIs

SharePoint REST APIs use site-scoped endpoints under the `/_api` path for lists, list items, fields, content types, pages, files, folders, and other SharePoint-specific functionality. They remain relevant where Microsoft Graph does not provide sufficient coverage.

Martini implementation pattern

Martini implementation pattern: Configure OAuth 2.0 credentials, call the appropriate site-scoped REST endpoint from a workflow, normalize the response, and route the result to a target application or reusable service. Use Graph first for new integrations unless a SharePoint-specific operation requires REST.

Implementation sequence

Authenticate with a least-privilege Microsoft Entra ID token
Call the required SharePoint REST resource
Follow pagination or retrieve related data
Map SharePoint fields to the target model
Apply validation and business rules
Write the result and record processing state

Microsoft Graph REST APIs

Microsoft Graph is the principal modern integration surface for SharePoint Online. It provides REST resources for Sites, Lists, List items, Drives, Drive items, permissions, and selected SharePoint capabilities, with OData query options where supported.

Martini implementation pattern

Martini implementation pattern: Consume Graph endpoints through HTTP-based workflows, persist identifiers and synchronization state, and separate retrieval, transformation, target writes, and error handling so the integration remains maintainable as resources grow.

Implementation sequence

Acquire an OAuth 2.0 access token
Resolve the SharePoint site or drive identifier
Retrieve paginated Graph resources
Apply filtering and field mapping
Write transformed data to the target system
Persist checkpoints and handle retries

SharePoint notifications

SharePoint list webhooks and Microsoft Graph change notifications provide partial, resource-specific notification coverage. A notification usually signals that a resource changed rather than providing the complete changed object, and subscriptions expire.

Martini implementation pattern

Martini implementation pattern: Expose a Martini API for supported notifications, validate and deduplicate the message, retrieve the current List item or Drive item through Graph or SharePoint REST, and combine event processing with renewal and periodic reconciliation workflows.

Implementation sequence

Receive the notification at a Martini API
Validate the source and subscription context
Deduplicate the notification using stable identifiers
Retrieve the current changed resource
Apply downstream mapping and business rules
Record the event and schedule reconciliation if needed

Drive item synchronization

SharePoint document libraries are exposed as Drives and Drive items. Graph delta queries can support incremental processing for selected file and folder resources, while larger files may require upload sessions.

Martini implementation pattern

Martini implementation pattern: Run an initial scheduled scan, persist the returned delta state, process additions, updates, and deletions on subsequent runs, and use bounded concurrency, content metadata, and retry controls for file transfers.

Implementation sequence

Identify the SharePoint drive
Retrieve the initial or stored delta page
Follow next links until the page is complete
Download or upload file content as required
Map file metadata and apply duplicate controls
Persist the new delta state

Graph JSON batching

Microsoft Graph JSON batching allows multiple requests to be submitted in a single HTTP request. Batching reduces network overhead, but each operation can succeed or fail independently and throttling still applies.

Martini implementation pattern

Martini implementation pattern: Build bounded batches from eligible operations, inspect each operation result, retry only transient failures, and preserve individual correlation identifiers for audit and replay.

Implementation sequence

Collect independent Graph operations
Build a bounded JSON batch
Submit the batch through an authenticated workflow
Inspect each operation result
Retry transient failures with backoff
Record successful and failed operation identifiers

Common SharePoint integration patterns

Pattern 1: Synchronize SharePoint lists with a CRM

When to use this pattern

Use this pattern when structured SharePoint Lists contain customer, account, case, or project information that must be synchronized with a CRM. It supports scheduled polling, supported notifications, or a controlled bidirectional workflow.

Integration direction
SharePoint
Martini
Salesforce
Example Mapping
SharePoint FieldCanonical FieldTarget Field
List item IDexternalIdSharePoint_Item_ID__c
TitlenameName
Choice fieldstatusStatus__c
ModifiedupdatedAtLast_SharePoint_Update__c
Martini implementation pattern

Martini retrieves paginated List items or responds to a supported notification, then fetches the current item, normalizes choice, lookup, person, date, and null values, and applies create-versus-update rules using the List item ID or an agreed business key. Conditional updates and conflict rules prevent overwriting newer changes; transient failures are retried and rejected mappings are routed for review.

Martini capabilities used
  • workflows
  • API consumption
  • data mapping
  • business rules
  • error handling
  • scheduled synchronization

Pattern 2: Archive SharePoint documents in an enterprise repository

When to use this pattern

Use this pattern to copy new or modified documents from a SharePoint document library into an enterprise content archive while preserving business metadata and preventing duplicate files.

Integration direction
SharePoint
Martini
Enterprise content archive
Example Mapping
SharePoint FieldCanonical FieldTarget Field
Drive item IDsourceDocumentIdExternal document ID
NamefileNameDocument name
File contentcontentBinary content
Created or modified datesourceTimestampArchive source timestamp
Martini implementation pattern

A scheduled Martini workflow uses Drive item delta synchronization where supported, retrieves file content and metadata, validates the archive key, and uploads the document. Stable IDs, hashes, or business keys prevent duplicates; large files use the target and SharePoint upload behavior appropriate to the transfer, while throttling and interrupted-transfer retries protect the process.

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

Pattern 3: Provision SharePoint folders from business records

When to use this pattern

Use this pattern when a business application creates a customer, contract, case, or project and its supporting documents should be organized in a SharePoint document library.

Integration direction
Dynamics 365
Martini
SharePoint
Example Mapping
SharePoint FieldCanonical FieldTarget Field
Business record IDbusinessKeyFolder metadata business key
Customer namedisplayNameFolder name
Contract or case numberreferenceNumberDriveItem custom field
Document URLrepositoryLinkExternal record document link
Martini implementation pattern

Martini receives a source event or scheduled extract, normalizes and validates the folder name, checks for an existing folder by business key, and creates the folder or Drive items only when absent. It uploads related files, maps metadata, and returns SharePoint links to the source application. Conflicts, invalid names, authorization failures, and partial uploads are recorded for retry or remediation.

Martini capabilities used
  • API-led workflows
  • data transformation
  • business rules
  • file handling
  • error handling

Pattern 4: Process SharePoint change notifications

When to use this pattern

Use this pattern for near-real-time downstream processing of supported list or drive-related changes without treating notifications as a complete universal SharePoint event stream.

Integration direction
SharePoint
Martini
ServiceNow
Example Mapping
SharePoint FieldCanonical FieldTarget Field
Subscription IDnotificationSourceIntegration source
Resource pathresourceReferenceSharePoint resource
List item IDobjectIdExternal reference
Change timestampeventTimeReceived time
Martini implementation pattern

A Martini API receives the notification, validates its subscription context, deduplicates the message, and retrieves the current object from Graph or SharePoint REST. The workflow maps the resulting List item or Drive item to ServiceNow, records processing state, and uses scheduled subscription renewal and reconciliation to recover from expiry, missed events, or out-of-order delivery.

Martini capabilities used
  • API exposure
  • webhook consumption
  • workflow orchestration
  • data mapping
  • deduplication
  • scheduled workflows

Applications commonly integrated with SharePoint

SharePoint is commonly used as a document, collaboration, and structured-content repository alongside business applications. Martini can coordinate these integrations through vendor APIs, notifications, scheduled synchronization, and reusable transformation logic; the patterns below do not imply a native SharePoint connector.

Application Scenario Direction Martini Pattern
Microsoft Teams Coordinate team collaboration content and SharePoint-backed documents across Microsoft 365 workloads. Microsoft Teams → Martini → SharePoint Use Microsoft Graph APIs to coordinate document metadata, links, or file-related workflows, with validation and duplicate checks before updating SharePoint resources.
OneDrive Synchronize personal or shared Microsoft 365 files with organizational SharePoint libraries where the repository model permits it. OneDrive → Martini → SharePoint Use Graph drive and drive-item APIs, persist stable identifiers and delta state where supported, and apply file metadata and conflict rules during synchronization.
Salesforce Associate customer, account, opportunity, or case documents with SharePoint folders and document metadata. Salesforce → Martini → SharePoint Receive or schedule Salesforce extracts, provision or locate SharePoint folders, upload documents, and return SharePoint URLs or identifiers to Salesforce with idempotent business keys.
ServiceNow Store case, incident, request, or knowledge attachments in SharePoint while retaining document references in ServiceNow. ServiceNow → Martini → SharePoint Orchestrate ServiceNow API calls with Graph file operations, normalize filenames and metadata, and write back document links after successful uploads.
Dynamics 365 Associate customer, opportunity, case, or project records with SharePoint documents and folders. Dynamics 365 → Martini → SharePoint Map Dynamics 365 business identifiers to SharePoint folder and DriveItem metadata, use existence checks for repeat events, and synchronize links or status changes in both directions.
SAP S/4HANA Archive or manage documents associated with suppliers, customers, orders, and finance processes. SAP S/4HANA → Martini → SharePoint Consume SAP APIs or extracts, transform document and business-key data, upload content through Graph, and persist SharePoint references for downstream SAP updates.
Jira Link project, issue, and release documentation stored in SharePoint to Jira work items. Jira → Martini → SharePoint Use Jira events or scheduled retrieval to organize SharePoint content by issue or project key, then return validated SharePoint links to Jira.
DocuSign Exchange agreement documents and signature-status metadata between SharePoint processes and DocuSign envelopes. SharePoint → Martini → DocuSign Retrieve eligible DriveItems, create DocuSign envelopes through its API, process status callbacks, and store completed documents and signature metadata back in SharePoint.

How to build a SharePoint integration in Martini

Objective

Establish Microsoft Entra ID OAuth 2.0 access using the least-privilege delegated or application permissions required by the SharePoint workflow.

Instructions in Martini

  • Configure the Graph or SharePoint REST base URL and resource scope
  • Store client credentials and tokens through secure environment configuration
  • Use Sites.Selected or narrower permissions where appropriate
  • Confirm whether the workflow is user-authorized or server-to-server

Objective

Select a scheduled, API-led, or supported notification trigger based on the resource and synchronization requirements.

Instructions in Martini

  • Use a Martini API for supported SharePoint or Graph notifications
  • Use a scheduler for polling, reconciliation, delta processing, and subscription renewal
  • Treat notifications as change signals requiring follow-up retrieval
  • Define an initial-load and recovery path

Objective

Read the current SharePoint object through Graph or SharePoint REST and handle collection, file, and resource-specific behavior.

Instructions in Martini

  • Resolve Site, List, Drive, List item, or Drive item identifiers
  • Follow @odata.nextLink until collection processing is complete
  • Persist delta links or tokens where the resource supports delta queries
  • Use upload sessions or appropriate file behavior for large documents

Objective

Separate retrieval, validation, transformation, target writes, state management, and error handling into maintainable Martini workflow stages.

Instructions in Martini

  • Create reusable workflow logic for common SharePoint resources
  • Add correlation identifiers and processing checkpoints
  • Use bounded concurrency and batch requests only where appropriate
  • Route permanent failures for review without losing retryable work

Objective

Convert SharePoint fields and file metadata into a canonical or target-system model while accounting for SharePoint-specific types.

Instructions in Martini

  • Map choice, lookup, person, managed metadata, date, hyperlink, and multi-value fields
  • Normalize time zones, null values, filenames, and content types
  • Preserve stable SharePoint identifiers and source URLs
  • Validate required fields before writing to the target

Objective

Use business keys, conflict policies, permissions, and document rules to determine whether to create, update, skip, archive, or reject data.

Instructions in Martini

  • Define create-versus-update behavior using stable IDs or external keys
  • Use ETags or conditional updates where concurrent edits matter
  • Apply folder naming and duplicate prevention rules
  • Define deletion, archival, and missing-resource behavior

Common SharePoint data objects used in integrations

ObjectTypical UseCommon target systemsMartini handling
SitesIdentify SharePoint sites and site collections that contain lists, libraries, pages, and permissions.Microsoft Teams, Dynamics 365, Salesforce, ServiceNowMartini retrieves site identifiers and metadata through Graph or SharePoint REST, then uses stable site IDs to scope downstream workflows.
ListsRepresent structured SharePoint collections, including custom lists and document libraries.Salesforce, ServiceNow, Dynamics 365, databasesMartini discovers list schemas, maps columns and content types, and applies validation for choice, lookup, person, and multi-value fields.
List itemsRepresent rows or entries in SharePoint lists, including document-library metadata.CRM, service platforms, databases, reporting systemsMartini reads paginated items, maps field values to canonical models, and uses item IDs, ETags, and business keys for idempotent writes.
DrivesExpose SharePoint document libraries through Microsoft Graph.Enterprise archives, OneDrive, DocuSign, SAP S/4HANAMartini resolves drives by site, coordinates file traversal, and persists synchronization state for each library.
Drive itemsRepresent files and folders stored in SharePoint document libraries.Enterprise content archives, Salesforce, ServiceNow, DocuSignMartini downloads or uploads content, maps metadata, handles large-file upload behavior, and uses delta queries where supported.
PagesRepresent SharePoint site pages and their content.Microsoft Teams, knowledge applications, publishing systemsMartini uses Graph or SharePoint REST where coverage permits, transforms page-related data, and applies cautious handling for SharePoint-specific features.

Authentication and security considerations

Microsoft Entra ID and OAuth 2.0

SharePoint Online API access is generally authenticated through Microsoft Entra ID. Martini can use delegated permissions for user-authorized workflows or application permissions for background and server-to-server processing.

Least privilege

Use only the Microsoft Graph and SharePoint permissions required by the workflow. Sites.Selected can restrict application access to explicitly authorized sites, while read-only synchronization should not request write permissions.

Credential protection

Store client credentials, tokens, and configuration through secure Martini environment configuration and secrets management. Separate credentials by environment and limit access to integration operators.

Operational considerations for SharePoint integrations

Throttling and pagination

Microsoft Graph and SharePoint Online can throttle requests. Handle HTTP 429 responses, honor Retry-After, use bounded exponential backoff, limit concurrency, and follow @odata.nextLink for collection responses.

State and idempotency

Persist Site, List, Drive, List item, and Drive item identifiers together with delta links or tokens where supported. Use ETags, stable business keys, and integration state to prevent duplicate writes and manage concurrent updates.

Notifications and reconciliation

SharePoint notifications are resource-specific and subscriptions expire. Include renewal workflows, duplicate handling, follow-up retrieval, and periodic reconciliation so missed or out-of-order notifications do not silently lose changes.

Files and schema changes

Large files may require upload sessions. Account for SharePoint column types, lookup and person values, time zones, nulls, unknown JSON properties, API changes, and differences between SharePoint Online and SharePoint Server.

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

Orchestrate more than API calls

Scripts often combine authentication, pagination, transformation, retries, and target writes in code that is difficult to govern. Martini separates these concerns into workflows, reusable services, APIs, mappings, and secure configuration.

Coordinate multiple synchronization modes

Martini can combine Graph or SharePoint REST consumption with scheduled polling, delta synchronization, supported notifications, file processing, and reconciliation rather than relying on a single fragile trigger.

Maintain operational control

Centralized validation, error handling, retry logic, checkpoints, logging, and deployment configuration make SharePoint integrations easier to troubleshoot and evolve than isolated point-to-point scripts.

Frequently asked questions

How can SharePoint be integrated with enterprise systems?

SharePoint Online can be integrated through Microsoft Graph REST APIs, SharePoint REST APIs, supported list webhooks and Microsoft Graph change notifications, file and Drive item APIs, delta queries where available, and scheduled synchronization. Microsoft Entra ID OAuth 2.0 provides delegated or application authentication.

Can Martini integrate with SharePoint?

Yes. Martini can integrate with SharePoint through Microsoft Graph REST APIs and SharePoint REST APIs, using OAuth 2.0 credentials, workflows, mapping, and business rules. It can also expose an API for supported SharePoint or Microsoft Graph notifications and process SharePoint files through Drive and Drive item APIs.

Do I need a connector to integrate SharePoint with Martini?

No. A dedicated SharePoint connector is not required. Martini can consume SharePoint's confirmed Microsoft Graph and SharePoint REST APIs, use supported notification mechanisms, and authenticate through Microsoft Entra ID OAuth 2.0.

Is there any extra Lonti cost to integrate SharePoint with Martini?

Lonti does not charge an additional per-connector or per-vendor fee to integrate SharePoint. The integration is subject to the provisioned capacity of the Martini environment. Separate costs may apply from Microsoft, cloud infrastructure, storage, or other third-party systems based on licensing, usage, and deployment model.

Which SharePoint integration method should a new project use?

Microsoft Graph REST APIs should generally be evaluated first for new SharePoint Online integrations because they cover Sites, Lists, List items, Drives, and Drive items. SharePoint REST remains useful for SharePoint-specific features or operations with insufficient Graph coverage. Legacy SOAP services should be reserved for specific historical requirements.

Are SharePoint webhooks and events available?

Yes, but coverage is partial and resource-specific. SharePoint list webhooks and Microsoft Graph change notifications support selected scenarios. Notifications may not include the full changed object, subscriptions expire, and robust integrations should retrieve the current resource and use renewal and reconciliation workflows.

How does Martini synchronize SharePoint data?

Martini can use scheduled polling, supported notifications, pagination, and Graph delta queries for selected resources such as Drive items. It persists identifiers, delta state, and checkpoints, then maps SharePoint fields and files into target-system models while applying idempotency, conflict, and deletion rules.

How does Martini handle SharePoint errors, throttling, and duplicates?

A Martini workflow can handle 401, 403, 404, 409, 412, 429, and transient 5xx responses with validation, bounded retries, exponential backoff, and Retry-After processing. Stable IDs, ETags, business keys, and persisted state support duplicate prevention and concurrency control. Partial batch failures are handled per operation.