Dropbox
Upload files to a Dropbox folder in CSV or JSONL format. Use Zeotap to export model results, audience lists, or enriched data as files in Dropbox for downstream processing, sharing, or archival.
Prerequisites
- A Dropbox account (Basic, Plus, Professional, or Business)
- A Dropbox App created in the Dropbox App Console with
files.content.write,files.metadata.read, andaccount_info.readpermissions - An OAuth 2.0 access token or an app configured for the OAuth 2.0 authorization code flow
Authentication
Dropbox supports two authentication methods: OAuth 2.0 (recommended) and Access Token.
OAuth 2.0 (Recommended)
- In Zeotap, navigate to Destinations and click Add Destination
- Select Dropbox and choose OAuth 2.0 as the authentication method
- Click Connect to open the Dropbox authorization window
- Sign in to your Dropbox account and grant Zeotap access
- You will be redirected back to Zeotap with the connection established
Zeotap automatically manages token refresh for OAuth 2.0 connections. No manual token rotation is required.
Access Token
- Go to the Dropbox App Console
- Create a new app or select an existing one
- Under Permissions, ensure
files.content.write,files.metadata.read, andaccount_info.readare enabled - Under Settings, generate an access token
- In Zeotap, select Access Token as the authentication method and paste the token
Access tokens generated from the App Console are short-lived by default. For long-running syncs, use OAuth 2.0 instead.
Required Permissions
The Dropbox app needs the following permission scopes:
files.content.write— to upload files and create the destination folderfiles.metadata.read— to verify folder access during the connection testaccount_info.read— to verify the access token during the connection test
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Folder Path | Text | No | The Dropbox folder path where files will be uploaded. The folder is created automatically if it does not exist. 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 | Write the full current dataset as new files on every run |
| Mirror | Yes | Write changed rows as new files with an _operation column (added / changed / removed) |
| Snapshot | Yes | Write the complete current dataset as new files on every run — no delta, no _operation column |
Audience Sync Modes
| Mode | Supported | Description |
|---|---|---|
| Add | Yes | Write new and updated members as new files (departed members excluded) |
| Mirror | Yes | Write membership changes as new files with an _operation column |
| Snapshot | Yes | Write the complete current membership as new files on every run — no delta, no _operation column |
Features
- Field Mapping: No — Dropbox writes all mapped fields as file columns
- Schema Introspection: No — Dropbox is a file-based destination without schema discovery
How It Works
Zeotap writes data as files to the configured Dropbox folder:
- Data is serialized into the selected format (CSV or JSONL)
- If gzip compression is enabled, the file is compressed before upload
- Files are uploaded via the Dropbox API v2
/files/uploadendpoint - Files are stored at
{folder_path}/{YYYY-MM-DD}/{batch_id}.{ext}[.gz] - Each sync run produces a new set of date-partitioned files
Sync mode semantics
- Insert writes the full current dataset as new files on every run.
- Mirror writes the full dataset on the first run, then only the rows that changed on later runs. Every row in a mirror-mode file carries an
_operationcolumn —added,changed, orremoved— so downstream consumers can apply updates and deletions. On the first run all rows are markedadded. In CSV files_operationis always the last column; treat the name as reserved in mirror mode. - Add (audience syncs) writes only new and updated audience members. Members who left the audience since the previous run are excluded from the files.
- Snapshot writes the complete current dataset as new files on every run and never diffs. There is no
_operationcolumn (the files are the whole dataset) and unchanged rows are included every time. Records that left are simply absent from the next drop rather than delivered taggedremoved, so treat each run’s output as authoritative and replace your prior copy rather than merging into it. Unlike Insert, snapshot is guaranteed to read the full model output on every warehouse: it never adopts native change tracking (Snowflake streams, Databricks CDF), which can only surface deltas.
Upload Limits
The Dropbox API /files/upload endpoint supports files up to 150 MB per request. Zeotap batch sizes are well within this limit. For very large datasets, data is split across multiple files automatically.
Rate Limits
Dropbox enforces rate limits on API calls per authorization. If a rate limit is hit, the API returns HTTP 429 with a Retry-After header. Zeotap respects these limits and reports rate-limit errors in the sync run log.
For Dropbox Business teams, there is a limit of 1 billion upload operations per month per team across all connected apps.
Best Practices
- Use OAuth 2.0 authentication for automatic token refresh and uninterrupted syncs
- Enable gzip compression for large datasets to reduce upload time and storage usage
- Use descriptive folder paths (e.g.,
/zeotap/audiencesor/zeotap/exports) to organize output by use case - For downstream pipelines, consume files from the latest date partition folder
- Monitor sync run logs for rate-limit warnings if running frequent syncs
Troubleshooting
Invalid or expired access token
If using an access token from the App Console, it may have expired. Generate a new token from the Dropbox App Console, or switch to OAuth 2.0 for automatic token refresh.
Folder not found
If the configured folder path does not exist, Zeotap creates it automatically on the first sync. If creation fails, verify that the Dropbox app has files.content.write permission and that the path is valid (starts with /).
Permission denied
Ensure the Dropbox app has the files.content.write, files.metadata.read, and account_info.read scopes enabled. If the app was created with “App folder” access, files can only be written within the app’s dedicated folder.
Rate limit exceeded (HTTP 429)
Dropbox is rate-limiting the API calls. Reduce sync frequency or contact Dropbox support to increase limits for your team. The Retry-After header in the error indicates how long to wait before retrying.
File upload failed
Check that the file size is under 150 MB. For very large batches, consider splitting the sync into smaller segments. Also verify that your Dropbox account has sufficient storage quota.
OAuth connection lost
If the OAuth connection stops working, the user may have revoked access from their Dropbox account settings. Reconnect by re-authorizing the OAuth flow in Zeotap.