---
title: Migrating from Self-Hosted to Cloud
description: Step-by-step guide to migrate your Twenty self-hosted instance to Twenty Cloud.
---
## Overview
This guide walks you through migrating your data from a Twenty self-hosted instance to Twenty Cloud. The process involves setting up your cloud workspace, exporting your data, and re-importing it.
Views, workflows, and roles must be recreated manually after migration. Plan time for this configuration work.
## Step 1: Create Your Cloud Workspace
1. Go to [app.twenty.com](https://app.twenty.com) and create a new workspace
2. Complete the initial setup wizard
3. Note your new workspace URL
## Step 2: Recreate Your Data Model
Before importing data, recreate your custom objects and fields:
1. Go to **Settings → Data Model** in your cloud instance
2. Create custom objects that match your self-hosted setup
3. Add custom fields to standard and custom objects
4. Configure field settings (unique, required, etc.)
Take screenshots of your self-hosted data model for reference, or keep both instances open side by side.
## Step 3: Invite All Users
**Critical: Invite users BEFORE importing data.**
Users must accept their invitations before you import any records that reference them (like Account Owner fields). If users don't exist yet, those relations cannot be mapped.
1. Go to **Settings → Members** in your cloud instance
2. Invite all team members who had accounts on self-hosted
3. **Wait for everyone to accept** their invitation
4. Verify all users appear in your Members list
## Step 4: Export Data from Self-Hosted
Export each object from your self-hosted instance:
1. Navigate to each object (Companies, People, Opportunities, etc.)
2. Configure the view to show **all columns** you want to migrate
3. Click **⋮ → Export view**
4. Save each CSV file with a clear name (e.g., `companies-export.csv`)
**Export in this order** (for reference when importing):
1. Companies
2. People
3. Opportunities
4. Custom objects (following their dependencies)
5. Tasks, Notes
## Step 5: Update Workspace Member References
The exported CSVs contain user IDs from your self-hosted instance. These IDs won't match your cloud instance, so you need to replace them with emails.
**For each CSV file with user references (Owner, Assignee, etc.):**
1. Open the CSV in a spreadsheet application
2. Add a new column next to each user ID column (e.g., `accountOwnerEmail` next to `accountOwnerId`)
3. Fill in the **email address** of each user
4. You can delete the old ID column or leave it (it will be skipped during import)
**Example:**
Before:
```csv
name,domain,accountOwnerId
Acme Corp,https://acme.com,old-uuid-123
```
After:
```csv
name,domain,accountOwnerEmail
Acme Corp,https://acme.com,john@yourcompany.com
```
Use the same email addresses that users used to accept their cloud workspace invitation.
## Step 6: Plan Your Import Order
Import files in the correct order to maintain relationships:
1. **Companies** first (no dependencies)
2. **People** second (link to Companies)
3. **Opportunities** third (link to Companies and People)
4. **Custom objects** (following their dependencies)
5. **Tasks and Notes** last (link to other records)
See [How to Import Relations](/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) for details on maintaining relationships.
## Step 7: Import to Cloud
For each CSV file, in order:
1. Navigate to the object in your cloud instance
2. Click **⋮ → Import records**
3. Upload the CSV file
4. Map columns to fields:
- Map user email columns to the appropriate relation fields
- Map other columns as usual
5. Review and fix any errors
6. Confirm the import
7. Verify a few records before proceeding to the next file
## Step 8: Recreate Configuration
After importing data, manually recreate:
### Views
- Recreate saved views with filters, sorts, and column configurations
- Set up any kanban or calendar views
### Workflows
- Recreate automations in **Settings → Workflows**
- Test each workflow before relying on it
### Roles and Permissions
- Configure roles in **Settings → Members → Roles**
- Assign users to appropriate roles
### Integrations
- Reconnect email and calendar sync for each user
- Reconfigure any API integrations with new API keys
## Post-Migration Checklist
All data imported successfully
Relations between objects working correctly
User assignments (Owner, Assignee) mapped correctly
Views recreated
Workflows recreated and tested
Roles and permissions configured
Email/calendar sync reconnected
API integrations updated with new keys
## FAQ
Not currently. Workflows must be recreated manually in your cloud instance.
File attachments are not included in CSV exports. You'll need to re-upload any attachments manually, migrate them via API or contact our team for assistance with large migrations.
Yes, we recommend keeping your self-hosted instance running until you've verified the cloud migration is complete. Just be careful not to create new data in both places.
Records referencing that user will fail to import or the relation will be empty. Ensure all users accept invitations before importing data.
## Need Help?
For complex migrations or large datasets, contact us at [contact@twenty.com](mailto:contact@twenty.com) or explore our [Implementation Services](/user-guide/getting-started/capabilities/implementation-services).