Base44 CSV import: add spreadsheet uploads in 30 seconds

TL;DR: Paste this prompt into Base44:
Add a CSV import feature to my app using ImportCSV.
Create an "Import Data" button that:
1. Opens a modal when clicked
2. Lets users upload CSV or Excel files
3. Shows a column mapping interface
4. Validates data before import (name required, email must be valid format, company optional)
5. Saves the imported data to my database
The importer should:
- Handle large files without timing out
- Show validation errors so users can fix issues
- Display a success message with the number of imported rows
Add this script to the page:
<script src="https://cdn.importcsv.com/embed.js"></script>
Configure the importer with my ImportCSV key: YOUR_IMPORTER_KEY
Style the button to match my app's design.
Then get your importer key from importcsv.com. Done.
The problem
You built your Base44 app in 5 minutes. Adding CSV import is taking longer.
Base44 has a built-in integration called ExtractDataFromUploadedFile that handles CSV files. According to their documentation, it can "pull structured data from uploaded files (CSV, PNG, JPG, JPEG, PDF) using JSON schemas." But there are limitations:
- No Excel (.xlsx) support (a feature request with 725 upvotes)
- Basic column mapping without a visual interface
- No validation preview before import
- Users report inconsistent behavior with CSV parsing
One user on the Base44 feedback board put it directly: "funny that it reads pdf's better than csv's."
You need something that works now, not "Planned."
The solution: ImportCSV
ImportCSV is a drop-in CSV importer that handles the hard parts:
- Parsing: Handles delimiters, encoding, multiline fields, and other edge cases
- Column mapping: Users see their columns and match them to your fields
- Validation: Data is checked before it hits your database
- Excel support: Works with CSV, XLS, and XLSX files
- Large files: Handles 10,000+ rows with virtual scrolling
Best part: you add it with a prompt.
Step-by-step guide
Step 1: Create an ImportCSV account
Go to importcsv.com and sign up. The free tier works for testing.
Step 2: Create an importer
In the ImportCSV dashboard, click "New Importer" and define the columns you want to accept:
| Column | Type | Required |
|---|---|---|
| name | text | yes |
| yes | ||
| company | text | no |
ImportCSV validates against this structure automatically.
Step 3: Copy your importer key
You'll find it in your importer's settings. It looks like imp_abc123...
Step 4: Paste the prompt into Base44
Open your Base44 app in the Builder chat and paste this prompt:
Add a CSV import feature to my app using ImportCSV.
Create an "Import Data" button that:
1. Opens a modal when clicked
2. Lets users upload CSV or Excel files
3. Shows a column mapping interface
4. Validates data before import (name required, email must be valid format, company optional)
5. Saves the imported data to my database
The importer should:
- Handle large files without timing out
- Show validation errors so users can fix issues
- Display a success message with the number of imported rows
Add this script to the page:
<script src="https://cdn.importcsv.com/embed.js"></script>
Configure the importer with my ImportCSV key: YOUR_IMPORTER_KEY
Style the button to match my app's design.
Replace YOUR_IMPORTER_KEY with the key from step 3.
Step 5: Test in preview mode
Base44 generates the code automatically. Click Preview to test your import flow:
- Click the "Import Data" button
- Upload a test CSV file
- Map your columns
- Check the validation results
- Complete the import
Your data appears in your Base44 database.
Simpler version
If you want a shorter prompt, try this:
Add a CSV import button to my app. When users click it, they should be able to:
- Upload a spreadsheet (CSV or Excel)
- Match their columns to my fields (name, email, company)
- See any errors before importing
- Save the data to my database
Use ImportCSV (https://importcsv.com) for this feature. My importer key is YOUR_IMPORTER_KEY.
Common customizations
For product catalogs
Add a CSV import button for products. Fields to import:
- sku (required, must be unique)
- name (required)
- price (required, number)
- description (optional)
- category (optional)
Use ImportCSV with my key: YOUR_IMPORTER_KEY
For user lists
Add a CSV import feature for user data. Fields:
- email (required, valid email format)
- first_name (required)
- last_name (required)
- role (optional, default to "member")
Use ImportCSV with my key: YOUR_IMPORTER_KEY
For inventory updates
Add a bulk inventory update feature via CSV. Fields:
- sku (required, must match existing products)
- quantity (required, number)
- location (optional)
Use ImportCSV with my key: YOUR_IMPORTER_KEY
FAQ
Does this work with Base44's free plan?
Yes. The embed script approach works on all Base44 plans. You only need a paid Base44 plan (Builder, $40/month) if you want to use backend functions for custom server-side logic.
Can I customize how the importer looks?
Yes. ImportCSV supports theming. You can ask Base44 to adjust the colors by adding to your prompt: "Style the importer to match my app's color scheme."
How large a file can users import?
ImportCSV handles files with 10,000+ rows using virtual scrolling. The exact limit depends on your ImportCSV plan.
Does it work with Excel files?
Yes. ImportCSV accepts CSV, XLS, and XLSX files. This is a notable difference from Base44's built-in ExtractDataFromUploadedFile, which only handles CSV.
Do I need to enable backend functions?
No. The embed script runs in the browser. If you want to add custom server-side validation or processing, you can enable backend functions, but it's not required for basic imports.
What about the native CSV feature Base44 is working on?
The feature request for better CSV/Excel support has 725 upvotes and is marked as "Planned." ImportCSV gives you a working solution today.
Ready to add CSV import to your Base44 app? Get your importer key and paste the prompt above.
Related posts
Wrap-up
CSV imports shouldn't slow you down. ImportCSV aims to expand into your workflow — whether you're building data import flows, handling customer uploads, or processing large datasets.
If that sounds like the kind of tooling you want to use, try ImportCSV .