Files Data Exchange FAQ
What is Data Exchange?
The workspace's import/export hub: CSV imports create or update records row-by-row with idempotency keys, exports generate downloadable CSVs (optionally mirrored to your Google Drive), and the events log tracks inbound/outbound sync runs with statuses like processed, duplicate, failed, and dead_letter.
Which entities can I import or export?
Leads, contacts, organizations, deals, vendors, tasks, campaigns, creators, contracts, time entries, case studies, and invoices. Each entity is gated by its own module's permissions during ingestion.
How big can an import be?
Up to 1000 rows per request. Rows land as per-row records with their own status, so one bad row fails alone instead of killing the job — the job ends completed_with_errors in that case.
What does Dry Run do?
It processes the mapping against validation without writing, so you see which rows would be created, updated, or skipped before committing the real import.
How do re-imports avoid duplicates?
Every row carries an idempotency key (job + row); re-submitting matching data marks those rows duplicate/unchanged rather than creating copies. Existing-record updates require edit permission and ownership of the record.
Who can use this module?
Data Exchange is an admin surface: listing jobs/events requires the data_exchange manage (delete) permission — System/Sales Manager by default — though the underlying import API still checks each target module's create/edit rights.
What can files be attached to?
Attachments live against specific record types — campaigns, campaign talent rows, compliance deadlines, and contracts. The Files browser is always scoped to one attached record rather than a global drive.
Are uploaded files public?
No — attachments default to private. Private files download through short-lived presigned URLs from object storage; Google Drive files stream via an authenticated proxy route instead of public links.
