Importing Data into I Love Cards
I Love Cards offers two ways to import your existing content: Spreadsheet Paste for quick imports and JSON Upload for content-heavy cards. Both methods use AI-powered field detection to map your data automatically.
When to Use Each Method
| Method | Best For |
|---|---|
| Spreadsheet Paste | Simple cards with short text fields |
| JSON Upload | Cards with markdown, bullet points, multi-paragraph content |
Spreadsheet Import (Copy & Paste)
The fastest way to import simple card content:
- Copy your data from Excel or Google Sheets (Ctrl+C / Cmd+C)
- Click Import in the deck builder toolbar
- Paste into the text area
- Click Next — AI analyzes your columns and suggests field mappings
- Review the preview, adjust mappings if needed
- Click Import
Tips for Spreadsheet Import
- Include a header row with column names (Title, Description, Category, etc.)
- The AI detects your language and column types automatically
- You can import into a new deck or add to an existing one
JSON Import (File Upload)
Better for cards with rich, structured content like markdown formatting:
- Click Import in the deck builder toolbar
- Click Upload JSON tab
- Drag & drop your
.jsonfile or click to browse - The data preview shows your imported rows
- Click Next — AI maps fields just like spreadsheet import
- Review and import
JSON Format
Your JSON should be a flat array of card objects:
[
{
"title": "Card Title",
"type": "intro",
"one_liner": "A short tagline",
"description": "Detailed content with **markdown** support"
},
{
"title": "Another Card",
"type": "concept",
"description": "- Bullet point 1\n- Bullet point 2"
}
]
Or wrapped with metadata:
{
"deck_name": "My Deck",
"cards": [
{ "title": "Card 1", ... },
{ "title": "Card 2", ... }
]
}
Why JSON for Content-Heavy Cards?
When your cards contain:
- Markdown formatting (headers, bold, lists)
- Multi-line descriptions with paragraphs
- Bullet points or numbered lists
- Special characters that break in spreadsheets
JSON preserves all of this perfectly. Spreadsheet copy/paste often breaks newlines and special characters. Also, AI is really good at generating this JSON format from a text description, so you can use ChatGPT to generate the JSON for you.
Requirements
- Flat objects only — no nested objects or arrays within cards
- At least one field per card object
- Field names can be anything — AI will map them to card fields
Field Mapping
Both import methods use the same AI-powered mapping:
| Your Field Names | Maps To |
|---|---|
| title, name, card_title | Title |
| description, detail, content | Detailed Content |
| one_liner, tagline, subtitle | One Liner |
| short_description, summary | Short Content |
| category, type, group | Category |
| icon, emoji | Icon |
The AI detects these automatically, but you can always override the suggested mappings before importing.
Importing into Existing Decks
When you import from within a deck you're already editing:
- New cards are added to your existing deck
- Categories with matching names are merged (fuzzy matching handles minor spelling differences)
- You can choose whether to create new categories or add to existing ones
Next Steps
After importing:
- Review your cards in the deck builder
- Assign templates to your cards
- Set up your color palette
- Generate AI illustrations if needed