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:
| Permission | Type | Description |
|---|---|---|
Sites.ReadWrite.All | Application | Read 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
- Sign in to the Azure Portal
- Navigate to Azure Active Directory > App registrations > New registration
- Enter a name (e.g., “Zeotap SharePoint Integration”), select Accounts in this organizational directory only, and click Register
- On the app’s Overview page, copy the Application (client) ID and Directory (tenant) ID
- Navigate to Certificates & secrets > Client secrets > New client secret
- Enter a description, select an expiration period, and click Add
- Copy the Value of the new client secret immediately (it will not be shown again)
- Navigate to API permissions > Add a permission > Microsoft Graph > Application permissions
- Search for and select Sites.ReadWrite.All, then click Add permissions
- Click Grant admin consent for [your tenant] and confirm
Entering credentials in Zeotap
- Navigate to Destinations in the left sidebar and click Add Destination
- Select Microsoft SharePoint from the Cloud Storage category
- Enter the Tenant ID, Client ID, and Client Secret from the app registration
- Click Test Connection to verify authentication
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| SharePoint Site URL | Text | Yes | The full URL of the SharePoint site (e.g., https://contoso.sharepoint.com/sites/marketing) |
| Document Library (Drive ID) | Text | No | The ID of a specific document library. Leave blank to use the site’s default document library |
| Folder Path | Text | No | Folder path within the document library for uploaded files. Default: zeotap |
Target Settings
| Field | Type | Required | Description |
|---|---|---|---|
| File Format | Select | Yes | Output file format: CSV or JSONL (Newline Delimited JSON). Default: CSV |
| Enable Gzip Compression | Toggle | No | Compress files with gzip before uploading. Default: On |
Supported Operations
Sync Modes
| Mode | Supported | Description |
|---|---|---|
| Insert | Yes | Uploads new files for each sync run |
| Mirror | Yes | Uploads a full snapshot of the current dataset as new files |
Audience Sync Modes
| Mode | Supported | Description |
|---|---|---|
| Add | Yes | Uploads audience members as new files |
| Mirror | Yes | Uploads 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:
- Data is serialized into the selected format (CSV or JSONL)
- If gzip compression is enabled, the file is compressed before upload
- Zeotap resolves the SharePoint site ID and document library (drive) using the Graph API
- Files are uploaded via
PUT /drives/{drive-id}/items/root:/{folder-path}/{YYYY-MM-DD}/{batch_id}.{ext}[.gz]:/content - 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-Afterheader
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.