Skip to Content
DestinationsCloud StorageMicrosoft SharePoint

Microsoft SharePoint

Write files to a Microsoft SharePoint document library in CSV or JSONL format via the Microsoft Graph API. Use Zeotap to export audience lists, model results, or enriched data to SharePoint for collaboration, archival, or downstream workflows.

Prerequisites

  • A Microsoft 365 subscription with SharePoint Online
  • An Azure AD (Microsoft Entra ID) app registration with the Sites.ReadWrite.All application permission
  • Admin consent granted for the app registration in your tenant
  • The target SharePoint site and document library must already exist

Permissions

The Azure AD app registration requires the following Microsoft Graph application permission:

PermissionTypeDescription
Sites.ReadWrite.AllApplicationRead and write items in all site collections

An Azure AD administrator must grant admin consent for this permission in the Azure Portal.

Authentication

Microsoft SharePoint uses Azure AD App Registration authentication with the OAuth 2.0 client credentials flow.

Setting up the App Registration

  1. Sign in to the Azure Portal 
  2. Navigate to Azure Active Directory > App registrations > New registration
  3. Enter a name (e.g., “Zeotap SharePoint Integration”), select Accounts in this organizational directory only, and click Register
  4. On the app’s Overview page, copy the Application (client) ID and Directory (tenant) ID
  5. Navigate to Certificates & secrets > Client secrets > New client secret
  6. Enter a description, select an expiration period, and click Add
  7. Copy the Value of the new client secret immediately (it will not be shown again)
  8. Navigate to API permissions > Add a permission > Microsoft Graph > Application permissions
  9. Search for and select Sites.ReadWrite.All, then click Add permissions
  10. Click Grant admin consent for [your tenant] and confirm

Entering credentials in Zeotap

  1. Navigate to Destinations in the left sidebar and click Add Destination
  2. Select Microsoft SharePoint from the Cloud Storage category
  3. Enter the Tenant ID, Client ID, and Client Secret from the app registration
  4. Click Test Connection to verify authentication

Configuration

FieldTypeRequiredDescription
SharePoint Site URLTextYesThe full URL of the SharePoint site (e.g., https://contoso.sharepoint.com/sites/marketing)
Document Library (Drive ID)TextNoThe ID of a specific document library. Leave blank to use the site’s default document library
Folder PathTextNoFolder path within the document library for uploaded files. Default: zeotap

Target Settings

FieldTypeRequiredDescription
File FormatSelectYesOutput file format: CSV or JSONL (Newline Delimited JSON). Default: CSV
Enable Gzip CompressionToggleNoCompress files with gzip before uploading. Default: On

Supported Operations

Sync Modes

ModeSupportedDescription
InsertYesUploads new files for each sync run
MirrorYesUploads a full snapshot of the current dataset as new files

Audience Sync Modes

ModeSupportedDescription
AddYesUploads audience members as new files
MirrorYesUploads the full current audience membership as new files

Features

  • Field Mapping: No — SharePoint writes all mapped fields as file columns
  • Schema Introspection: No — SharePoint is a file-based destination without schema discovery

How It Works

Zeotap writes data as files to a SharePoint document library via the Microsoft Graph API:

  1. Data is serialized into the selected format (CSV or JSONL)
  2. If gzip compression is enabled, the file is compressed before upload
  3. Zeotap resolves the SharePoint site ID and document library (drive) using the Graph API
  4. Files are uploaded via PUT /drives/{drive-id}/items/root:/{folder-path}/{YYYY-MM-DD}/{batch_id}.{ext}[.gz]:/content
  5. Each sync run produces a new set of date-partitioned files in the configured folder

For Mirror mode, Zeotap writes the full current dataset as new files. Downstream consumers should use the latest date partition.

File Size Limits

The Microsoft Graph simple upload API supports files up to 250 MB. Typical Zeotap batch files are well under this limit.

Rate Limits

Microsoft Graph API enforces throttling limits per tenant. Key limits:

  • SharePoint service: 1,200 requests per minute per tenant (shared across all apps)
  • Per-app limits: Vary by tenant size and license tier
  • When throttled, the API returns HTTP 429 Too Many Requests with a Retry-After header

Zeotap handles rate limiting automatically. If you experience frequent throttling, consider:

  • Reducing sync frequency
  • Scheduling syncs during off-peak hours
  • Requesting a higher throttling threshold from Microsoft

Best Practices

  • Use a dedicated app registration for Zeotap to isolate permissions and monitor usage
  • Set client secret expiration reminders — Azure AD client secrets expire and must be rotated
  • Organize with folder paths — Use descriptive folder paths (e.g., zeotap/audiences) to keep the document library tidy
  • Enable compression for large datasets to reduce upload times and storage usage
  • Use the default document library unless you have a specific reason to target a different one

Troubleshooting

Authentication failed

Verify the tenant ID, client ID, and client secret are correct. Client secrets expire — check the expiration date in the Azure Portal under Certificates & secrets.

Access denied (403 Forbidden)

The app registration may be missing the Sites.ReadWrite.All permission, or admin consent has not been granted. Navigate to API permissions in the Azure Portal and verify both the permission and consent status.

Site not found (404)

Double-check the SharePoint site URL. It must be the full URL including the site path (e.g., https://contoso.sharepoint.com/sites/marketing). The site must exist before configuring the destination.

Rate limited (429 Too Many Requests)

Microsoft Graph enforces per-tenant throttling. If syncs fail with rate limit errors, reduce sync frequency or schedule during off-peak hours. The Retry-After header indicates how long to wait.

File upload failed

Ensure the document library has sufficient storage quota. SharePoint Online default storage is 25 TB per tenant plus 10 GB per licensed user. Check your tenant’s storage usage in the SharePoint admin center.

Client secret expired

Azure AD client secrets have a maximum lifetime (up to 2 years). When a secret expires, authentication will fail. Generate a new secret in the Azure Portal and update the credentials in Zeotap.

Last updated on