Files
upstream-twenty/packages/twenty-docs/user-guide/data-migration/how-tos/export-your-data.mdx
upstream-mirror e7da97194a
Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 2s
snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
2026-09-17 23:28:13 +05:00

187 lines
6.4 KiB
Plaintext

---
title: Export Your Data
description: Complete step-by-step guide to exporting data from Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Overview
Export your workspace data to CSV for backups, reporting, or migration.
**Use cases:**
- **Regular backups** — keep copies of your data
- **External reporting** — analyze data in Excel, Google Sheets, or BI tools
- **Migration** — move data to another system
- **Bulk updates** — export, edit, and re-import to update records
## What You Need to Know
### Export Limits
- **Maximum 20,000 records** per export
- Only **visible columns** are exported
- Only **filtered records** are exported (based on your current view)
<Note>For larger exports (20,000+ records), use filters to export in batches or use the [API](/developers/extend/api).</Note>
### Permissions
You need the **"Export CSV"** permission to export data. Contact your workspace admin if you don't have this option.
## Step 1: Navigate to the Object
Go to the object you want to export:
- **People** — for contacts
- **Companies** — for organizations
- **Opportunities** — for deals
- **Custom objects** — any object you've created
## Step 2: Configure Your View
**Important:** The export includes only what's visible in your current view.
### Add/Remove Columns
1. Click **Options → Fields** (or the **+** at the end of columns)
2. Check the fields you want to export
3. Uncheck fields you don't need
### Filter Records (Optional)
If you only need a subset of data:
1. Click **Filter**
2. Add filter conditions (e.g., "Created date > January 1, 2024")
3. Only matching records will be exported
### Sort Records (Optional)
1. Click a column header to sort
2. The export will follow your sort order
<Note>**Create a dedicated export view.** Save a view specifically configured for exports so you don't need to reconfigure each time.</Note>
## Step 3: Export the Data
1. Click the **⋮** icon on the top right of the table
2. Select **Export view**
3. Choose where to save the CSV file
4. Wait for the download to complete
## What Gets Exported
| Included | Not Included |
|----------|--------------|
| All visible columns | Hidden columns |
| Records matching current filters | Filtered-out records |
| Custom field values | Fields not in the view |
| Record IDs | File attachments |
| Relation IDs | Images |
### Relation Fields
Relation IDs are only exported on the **"many" side** of a relationship:
- **People export** includes a `companyId` column (People → Company relation)
- **Companies export** does NOT include `peopleIds` (Companies is the "one" side)
This means you can use the People export to re-import and maintain the Company link, but you'll need to re-import People after Companies to recreate the relationships.
## Exporting for Specific Purposes
### For Backups
1. Create a view with **all fields** visible
2. Remove all filters to include all records
3. Export each object type separately
4. Store exports in a secure location
5. Set a recurring reminder (weekly/monthly)
### For External Reporting
1. Include only the fields you need for analysis
2. Apply filters to focus on relevant data
3. Consider sorting by the field you'll analyze
### For Bulk Updates
1. Export the records you want to update
2. Include the unique identifier (`email`, `domain`, or `id`)
3. Edit the exported file
4. Re-import to update records
See: [How to Update Existing Records](/user-guide/data-migration/how-tos/update-existing-records-via-import)
### For Migration
If you're exporting to migrate to another system:
1. **Export each object separately** — People, Companies, Opportunities, etc.
2. **Include ID fields** — these help maintain relationships
3. **Document field mappings** — note how Twenty fields map to your target system
## Handling Large Datasets (20,000+ Records)
The export limit is 20,000 records. For larger datasets:
### Option 1: Export in Batches
1. Add a filter (e.g., "Created date" ranges)
2. Export the first batch
3. Change the filter
4. Export the next batch
5. Combine files in your spreadsheet
**Example filters for batching:**
- By date range (January, February, March...)
- By owner (Team member A, Team member B...)
- By status (Active, Inactive...)
### Option 2: Use the API
The API has no record limit:
1. Get your API key from **Settings → Developers**
2. Use the GraphQL API to query records
3. Process results in your application
See: [API Documentation](/developers/extend/api)
## Tips and Best Practices
### Create Export Views
Save views configured specifically for exports:
1. Configure columns and filters
2. Click **View options** → **Save as new view**
3. Name it "Export - [Purpose]"
### Secure Your Exports
Exported files may contain sensitive data:
- Store in secure locations
- Delete old exports when no longer needed
- Be careful sharing export files
### Check Before Exporting
<Check>Correct columns are visible</Check>
<Check>Filters are set correctly (or removed for full export)</Check>
<Check>You have Export permission</Check>
## FAQ
<AccordionGroup>
<Accordion title="Why are some columns missing from my export?">
Only visible columns are exported. Add the columns you need via **Options → Fields** before exporting.
</Accordion>
<Accordion title="Why doesn't my export have all records?">
Check your filters. The export only includes records matching your current view filters. Remove filters to export all records.
</Accordion>
<Accordion title="Can I export more than 20,000 records?">
Not in a single export. Use filters to export in batches, or use the API for larger datasets.
</Accordion>
<Accordion title="What format is the export file?">
CSV (Comma Separated Values). Opens in Excel, Google Sheets, or any spreadsheet application.
</Accordion>
<Accordion title="Are relation IDs included?">
Yes, but only on the "many" side of relationships. For example, a People export includes `companyId`, but a Companies export does not include people IDs.
</Accordion>
<Accordion title="Can I automate exports?">
Not directly through the UI. Use the API to build automated export workflows.
</Accordion>
</AccordionGroup>
## Next Steps
- [How to Update Existing Records](/user-guide/data-migration/how-tos/update-existing-records-via-import) — edit and re-import your export
- [How to Import Data via API](/user-guide/data-migration/how-tos/import-data-via-api) — for large datasets
- [API Documentation](/developers/extend/api) — build custom export workflows