# How to import data into Bubble

- Tool: Bubble
- Difficulty: Beginner
- Time required: 15-20 min
- Compatibility: All Bubble plans
- Last updated: March 2026

## TL;DR

Import data into Bubble using the CSV upload feature in the Data tab. This tutorial covers preparing your CSV file with correct column formatting, mapping fields during upload, handling linked records and list fields, and validating the imported data for accuracy and completeness.

## Overview: Importing Data into Bubble

Whether you are migrating from another platform or bulk-loading initial data, Bubble's CSV import lets you upload thousands of records at once. This tutorial covers the complete import process from file preparation to post-import validation.

## Before you start

- A Bubble account with target Data Types already created
- A CSV file with your data
- A spreadsheet app for reviewing and cleaning the CSV

## Step-by-step guide

### 1. Prepare your CSV file

Open your data in a spreadsheet. Ensure column headers match or are easily mapped to Bubble field names. Format dates as MM/DD/YYYY or YYYY-MM-DD. Numbers should have no currency symbols or commas. Boolean fields should be true/false. Remove any completely empty rows. Save as CSV (UTF-8 encoding).

> Pro tip: Add a header row as the first line — Bubble uses it for automatic field mapping.

**Expected result:** A clean CSV file ready for import with proper formatting.

### 2. Upload the CSV in the Data tab

Go to Data tab → App data → select your target Data Type. Click the Upload button (up arrow icon) in the top-right of the data table. Select your CSV file. Bubble shows a mapping screen where each CSV column is listed with a dropdown to assign it to a Data Type field. Map each column to the correct field. Uncheck any columns you do not want to import.

**Expected result:** CSV columns are mapped to Bubble fields and ready for import.

### 3. Handle linked records and list fields

For fields that reference other Data Types (e.g., a Company field on a Contact), the CSV must contain the Bubble Unique ID of the linked record. Import the parent type first, then export it to get the Unique IDs. Add those IDs to the child CSV. For list fields, separate multiple values with commas in a single cell.

**Expected result:** Linked records and list fields are properly formatted in the CSV.

### 4. Run the import and monitor progress

Click 'Upload' to start the import. Bubble processes records in batches. Large imports (10,000+ rows) may take several minutes. The progress bar shows completion percentage. Do not close the browser tab during import. If the import fails, Bubble shows which rows had errors.

**Expected result:** Records are imported and visible in the App data view.

### 5. Validate the imported data

Compare the CSV row count with Bubble's record count (shown in the App data view). Open 5-10 random records to verify field values match. Search for records with empty required fields using a constraint (field is empty). Check that linked records load correctly by clicking through to related records.

**Expected result:** Record counts match, values are correct, and linked records are intact.

## Complete code example

File: `Workflow summary`

```text
DATA IMPORT — PROCESS SUMMARY
===============================

CSV PREPARATION:
  1. Header row with column names
  2. Dates: MM/DD/YYYY or YYYY-MM-DD
  3. Numbers: no symbols, no commas
  4. Booleans: true/false
  5. Linked records: Bubble Unique IDs
  6. Lists: comma-separated values
  7. Encoding: UTF-8

IMPORT ORDER:
  1. Parent Data Types first (no foreign keys)
  2. Export parents to get Unique IDs
  3. Add Unique IDs to child CSVs
  4. Import child Data Types

IMPORT STEPS:
  Data tab → App data → Select type → Upload button
  Map CSV columns to Bubble fields
  Click Upload → wait for completion

VALIDATION:
  1. Compare row count vs record count
  2. Spot-check 5-10 random records
  3. Search for empty required fields
  4. Verify linked records load correctly
  5. Test app functionality with imported data
```

## Common mistakes

- **Not importing parent records before children** — Child records reference parent Unique IDs that do not exist yet Fix: Import parent types first, export to get IDs, then add them to child CSVs
- **Including currency symbols or commas in number fields** — Bubble cannot parse '$1,000' as a number — the import fails for those rows Fix: Strip all formatting from number columns in your spreadsheet before saving as CSV
- **Using inconsistent date formats** — Mixed formats (01/15/2026 and 2026-01-15) cause parsing errors Fix: Standardize all dates to one format throughout the CSV

## Best practices

- Always test with a small sample (5-10 rows) before importing the full dataset
- Import parent Data Types before child types
- Use UTF-8 encoding when saving CSV files
- Keep a backup of the original CSV in case you need to re-import
- Validate record counts and spot-check after every import
- Clean and de-duplicate data in the spreadsheet before importing
- Document field mappings for future reference

## Frequently asked questions

### Is there a row limit for CSV imports?

Bubble does not publish an official limit, but imports over 50,000 rows may time out. For very large datasets, split into multiple CSV files or use the Data API.

### Can I update existing records via CSV import?

The standard CSV import creates new records. To update existing ones, use the Data API with a backend workflow that matches records by a unique field.

### Can I import images via CSV?

Yes. Include the full publicly accessible image URL in your CSV. Bubble stores the URL in the image field.

### What happens if some rows fail?

Bubble skips invalid rows and imports the rest. It shows which rows failed and why. Fix those rows and re-import just the failed ones.

### Can I undo an import?

There is no built-in undo. You can delete the imported records manually or use a backend workflow to delete records created after the import timestamp.

### Can RapidDev help with bulk data imports?

Yes. RapidDev handles complex data imports with transformation, deduplication, and validation for large datasets.

---

Source: https://www.rapidevelopers.com/bubble-tutorial/import-data-into-bubble
© RapidDev — https://www.rapidevelopers.com/bubble-tutorial/import-data-into-bubble
