Skip to main content

Overview

ERPLite supports bulk data operations through CSV import and export, making it easy to migrate data, perform bulk updates, or create backups.

Importing Data

Import records from a CSV file into your table.

Getting the Template

Before importing, download the CSV template to ensure your data matches the table structure.
1

Open Import Menu

Click the More Options menu (three dots) in the table toolbar
2

Download Template

Click Download Template to get a CSV file with column headers matching your table
3

Fill in Data

Open the template in Excel/Google Sheets and add your data

Template Structure

The template includes headers for each column in your table:
name,email,phone,status,created_date
John Doe,[email protected],555-0100,Active,2024-01-15
Jane Smith,[email protected],555-0101,Pending,2024-01-16
Column headers must match exactly. Use the downloaded template to ensure compatibility.

Importing the File

1

Open Import

Click the More Options menu and select Import
2

Select File

Click Select File and choose your CSV file
3

Select Header Row

Specify which row contains your column headers (usually row 1)
4

Map Columns

Map CSV columns to table columns. The system auto-maps matching names.
5

Validate Data

Review any validation errors:
  • Red rows: Data doesn’t match column type
  • Fix errors or click Discard Selected Rows to skip them
6

Complete Import

Click Confirm to import the validated records

Data Type Handling

The import process automatically converts data types:
Column TypeExpected FormatExample
TextPlain textJohn Doe
NumberNumeric value123.45
Booleantrue/false, yes/no, 1/0true
DateYYYY-MM-DD2024-01-15
DateTimeISO 86012024-01-15T10:30:00
Locationaddress, lat, long123 Main St, 37.77, -122.41
ChoiceExact option textPending
Multi-SelectComma-separatedTag1, Tag2, Tag3
List of TextComma-separateditem1, item2, item3

Import Tips

Dates should be in YYYY-MM-DD format. Other formats may cause validation errors.
For location fields, provide address, latitude, and longitude separated by commas: 123 Main St, 37.7749, -122.4194
Values must exactly match one of the defined options (case-sensitive).
For relation fields, use the record ID or display column value of the target record.

Exporting Data

Export your table data to CSV for reporting, backup, or analysis.
1

Apply Filters (Optional)

Use filters to export only specific records
2

Open Export

Click the More Options menu and select Export
3

Download File

The CSV file downloads automatically

Export Limits

Exports are limited to 1,000 records at a time. For larger datasets:
  1. Apply filters to narrow down the data
  2. Export in batches
  3. Or use the API for programmatic export without limits

Exporting with Filters

To export a subset of your data:
  1. Apply filters to show only the records you want
  2. The export will only include visible (filtered) records
  3. This also helps when you have more than 1,000 records

Export Format

Exported CSV files include:
  • All visible columns (hidden columns are excluded)
  • Current filter state applied
  • All data types converted to text representation

For AI Agents

API: Bulk Import Records

POST /zorp-tables-service/table/records
Authorization: Bearer {secretKey}
Content-Type: application/json

{
  "tableType": "my_table",
  "records": [
    {
      "data": {
        "name": "John Doe",
        "email": "[email protected]",
        "status": "Active"
      }
    },
    {
      "data": {
        "name": "Jane Smith",
        "email": "[email protected]",
        "status": "Pending"
      }
    }
  ]
}
Response:
{
  "code": "200",
  "message": "2 records created successfully",
  "data": {
    "created": 2,
    "failed": 0,
    "recordIds": ["rec_123", "rec_124"]
  }
}

API: Export Records (Paginated)

POST /zorp-tables-service/table/search
Authorization: Bearer {secretKey}
Content-Type: application/json

{
  "tableTypes": ["my_table"],
  "page": 0,
  "size": 100,
  "filters": [],
  "sorting": []
}
Response:
{
  "code": "200",
  "data": {
    "records": [...],
    "total": 1500,
    "page": 0,
    "size": 100
  }
}

Batch Export Pattern

For exporting more than 1,000 records programmatically:
async function exportAllRecords(tableType, secretKey) {
  const allRecords = [];
  let page = 0;
  const pageSize = 100;
  let hasMore = true;

  while (hasMore) {
    const response = await fetch('/zorp-tables-service/table/search', {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${secretKey}`,
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        tableTypes: [tableType],
        page: page,
        size: pageSize
      })
    });

    const data = await response.json();
    allRecords.push(...data.data.records);

    hasMore = allRecords.length < data.data.total;
    page++;
  }

  return allRecords;
}

Import Validation

The import process validates:
  • Type matching: Values match column data types
  • Required fields: All required columns have values
  • Choice validation: Values match defined options
  • Relation validation: Referenced records exist

UI Elements

ActionLocationIcon
ImportMore Options menuUpload icon
ExportMore Options menuDownload icon
Download TemplateImport modalDownload icon

Event Tracking

TableRSEvents.BULK_IMPORT_BUTTON_CLICKED
TableRSEvents.BULK_IMPORT_RECORDS_SUCCESS
TableRSEvents.BULK_IMPORT_RECORDS_FAILURE
TableRSEvents.DOWNLOAD_TEMPLATE_CSV_BUTTON_CLICKED
TableRSEvents.EXPORT_CSV_BUTTON_CLICKED