npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@some-dev/strapi-plugin-csv-manager

v1.1.6

Published

Strapi v5 plugin for CSV import/export with components, relations, media support

Downloads

45

Readme

Strapi Plugin CSV Manager

A powerful Strapi v5 plugin for importing and exporting CSV data with full support for components, relations, media, nested fields, and mapping presets.

✨ Features

Import

  • 📁 Upload CSV files with configurable delimiter and encoding
  • 🔄 Auto-mapping of CSV columns to Strapi fields
  • 📍 Support for nested paths (seo.metaTitle, intro.title, items.0.name)
  • 🧩 Components support (single and repeatable)
  • 🔗 Relations support (oneToOne, oneToMany, manyToMany)
  • 🖼️ Media upload from URLs
  • 🔀 Upsert by any unique field (id, slug, email, etc.)
  • 👁️ Preview before import
  • 💾 Save mapping as preset

Export

  • 📊 Select specific fields to export
  • 🔗 Configurable relation format (ID, slug, or full JSON)
  • 🖼️ Configurable media format (URL, ID, or full JSON)
  • 📦 Components exported as JSON
  • 🌐 Locale support for i18n content

Presets

  • 💾 Save and reuse mapping configurations
  • ⚡ Quick import with predefined settings

📦 Installation

npm install @some-dev/strapi-plugin-csv-manager
# or
yarn add @some-dev/strapi-plugin-csv-manager

⚙️ Configuration

Add the plugin to your config/plugins.ts (or config/plugins.js):

export default () => ({
  'csv-manager': {
    enabled: true,
  },
});

Then rebuild your Strapi admin panel:

npm run build
npm run develop

🚀 Usage

After installation, you'll find CSV Manager in the left sidebar of your Strapi admin panel.

Importing CSV

  1. Go to CSV ManagerImport tab
  2. Select the target Content Type
  3. (Optional) Select a saved Preset
  4. Upload your CSV file
  5. Configure CSV options (delimiter, encoding)
  6. Map CSV columns to Strapi fields
  7. Select Unique Field for upsert logic
  8. Click Preview to verify data
  9. Click Import

Exporting CSV

  1. Go to CSV ManagerExport tab
  2. Select the Content Type
  3. Choose fields to export
  4. Configure relation/media format
  5. Set limit (optional)
  6. Click Export

Managing Presets

  1. Go to CSV ManagerPresets tab
  2. Create, edit, or delete mapping presets
  3. Use presets during import for quick configuration

📋 Supported Data Types

| Type | Import Format | Export Format | |------|---------------|---------------| | String | Plain text | Plain text | | Number | 123 or 123.45 | Number | | Boolean | true/false, 1/0, yes/no | true/false | | Date | YYYY-MM-DD, DD.MM.YYYY, DD/MM/YYYY | YYYY-MM-DD | | DateTime | ISO 8601 format | ISO 8601 | | JSON | Valid JSON string | JSON string | | Array | value1\|value2\|value3 or JSON array | Pipe-separated or JSON | | Relation | ID, slug, or JSON | ID, slug, or JSON | | Media | URL to download | URL or ID | | Component | JSON object | JSON object | | Repeatable Component | JSON array or pipe-separated JSON objects | JSON array |

📝 CSV Format Examples

Basic Import

title;slug;price;is_featured
Product 1;product-1;99.99;true
Product 2;product-2;149.99;false

With Relations

title;slug;category;tags
Product 1;product-1;electronics;tag1|tag2|tag3
Product 2;product-2;clothing;tag4|tag5

With Nested Fields (Components)

title;slug;seo.title;seo.description
Product 1;product-1;SEO Title 1;Meta description 1
Product 2;product-2;SEO Title 2;Meta description 2

With Media URLs

title;slug;image;gallery
Product 1;product-1;https://example.com/img1.jpg;https://example.com/g1.jpg|https://example.com/g2.jpg

With Repeatable Components

title;advantages
Product 1;[{"title":"Fast","description":"Very fast"},{"title":"Reliable","description":"Always works"}]

🔧 Advanced Configuration

Relation Lookup

By default, relations are looked up by id. You can configure lookup by other fields:

  • id - Match by Strapi ID
  • documentId - Match by document ID
  • slug - Match by slug field
  • name - Match by name field
  • title - Match by title field
  • email - Match by email field

Auto-Create Relations

Enable "Auto-create" option to automatically create related entries if they don't exist.

Upsert Logic

Choose a unique field for upsert:

  • If a record with matching value exists → Update
  • If no match found → Create

🌐 Internationalization

The plugin supports Strapi's i18n plugin:

  • Select locale during import/export
  • Content is imported/exported for the specified locale

📄 License

MIT License

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

🐛 Issues

If you find a bug or have a feature request, please open an issue on GitHub.

📧 Support

For questions and support, please open an issue on the GitHub repository.