Reference

Bulk Import (Beta) Reference

Capacities Believer

Bulk Import is available in early access for Capacities Believers.

This page documents how bulk import works in Capacities, what content it supports, which limits apply, and which error states users may see.

Overview

Bulk import is the import flow for bringing larger sets of content into Capacities.

Capacities analyzes your content and attempts to map imported content to existing object types. In general, cleaner source files and clearer structure lead to better results.

Bulk import is not a one-click migration tool.

If you are moving from a specific note-taking app, follow the dedicated migration guide where available. That usually leads to more predictable results.

When to Use Bulk Import

Use bulk import when you want to:

  • import many Markdown, CSV, or media files at once
  • import folders or ZIP archives
  • apply the same marker to a whole import job
  • review object mapping before anything is created

Supported Input

Bulk import accepts the following file categories:

CategorySupported content
DocumentsMarkdown (.md, .markdown, .mkd), CSV (.csv)
ArchivesZIP (.zip)
MediaImages (.png, .jpg, .jpeg, .gif, .svg, .webp), audio (.mp3, .ogg, .wav, .m4a, .oga), PDF (.pdf)

Unsupported files are skipped. If no supported files remain after filtering, the import fails.

Non-standard formatting is not supported, such as converting content created or modified by Obsidian plugins.

Before You Import: Sanitize Your Content and Prepare Types

Bulk import works best when you treat preparation as a separate step.

1. Review and sanitize your source content

Before importing, clean up what you plan to bring in:

  • remove content you do not actually need right now
  • split very mixed folders into clearer groups e.g. Books, Projects, People
  • reduce unnecessary formatting from source tools
  • verify frontmatter and property names for consistency

This helps keep your space focused and improves mapping quality during import.

2. Decide your target object types first

Capacities is structured around object types (for example, books, projects, meetings), so define those first before starting the importer.

A practical approach is:

  • review your source notes and identify the main "noun" groups
  • create or confirm matching object types in the destination space
  • organize files/folders so they map cleanly to those types

If object types are ready in advance, type detection is much more reliable.

3. Import in smaller batches first

For larger migrations, run a small test batch first, confirm mapping and output quality, then continue in larger batches.

Workflow

1. Select what you want to import

Start by choosing the kind of content you want to bring into Capacities. This helps Capacities show the most relevant options in later steps.

We highly recommend a pre-processing step. The cleaner the data is, the better the result in Capacities.

2. Upload your files or folders

Click on the three dots for the object type you'd like to import into and click Import or click Migrate from another tool in the settings. Note there is still a 100 item limit for either option.

You can upload:

  • individual files
  • a folder
  • ZIP archives

Capacities analyzes all supported files it finds in the selected content.

3. Configure import preferences

Depending on the uploaded content, you may see only a subset of the following options.

Fallback object type

Choose the object type your notes should be imported into by default.

If a Markdown file contains a type property in the frontmatter properties that matches one of your existing object types, Capacities may use that type instead of the default one. You can also force the default object type, in which case type detection from content and folders is ignored.

In this step, you cannot select media object types (image, audio, pdf, or file) as the fallback object type. The tweet object type is also not selectable.

Marker

To keep imported content easy to find, you can apply a marker to everything created in the import job.

Available options:

  • Block: adds a text block to imported notes
  • Tag: adds the selected tag to every imported object

If you prefer, you can also assign imported objects to a collection in the review step.

Tool-based preset

If you are importing from another note-taking tool, you can choose a preset that applies mapping defaults suited to that source.

Folder handling

If you import notes from a folder structure, you can decide how Capacities should handle that structure:

  • Ignore: imports the files without keeping folder information
  • Block: adds the folder path as text to the imported note
  • Tag: turns the folder path into a tag

If your parent folders match your object type names, you can also enable Extract types from folder names. Capacities checks both singular and plural matches when attempting to infer object types from folders.

4. Review and adjust

Before import starts, Capacities shows you what it plans to create.

This is the most important step to review carefully. If the overview looks wrong, do not continue. It is much easier to correct issues here than after import.

At this stage, you can:

  • assign imported objects of a type to a collection
  • review and adjust property mappings

Once you confirm the import, Capacities processes the content locally and then syncs created objects and uploaded media as needed.

Do not close the app until the import has completed.

Data Rules

Markdown and CSV mapping

Markdown files and CSV files can be turned into Capacities objects.

CSV columns and Markdown frontmatter properties are matched to Capacities properties. For best results, name them the same as the target properties in Capacities.

Special fields include:

  • type: maps to an object type and can override the selected default object type
  • title: maps to the object title. Also matches heading and name
  • description: maps to the description property, if present
  • tags: adds comma-separated object tags
  • createdAt: can be used to suggest a creation date. Also matches created. Without this, the modification date of the uploaded file is used.
  • collection: if all objects of the same type mention the same collection, each object will be added to a collection of that name in Capacities. For example, if you have several book md files with a collection property, book objects will be created, with a collection of the same name. Collections are not supported across multiple types.

Supported property mappings

In the mapping step, the following source-to-target mappings are currently supported:

  • text -> text
  • text -> blocks
  • text -> number
  • text -> boolean
  • text -> url
  • text -> entity
  • text -> label
  • text -> icon
  • text -> object select
  • text -> dates

Type matching can use:

  • the type property in content
  • folder names, if folder-based type extraction is enabled
  • the selected default object type as a fallback

If you force the default object type, type detection from properties and folders is ignored.

For dates, Capacities tries to preserve date information when it is available in content or file metadata.

In the case of daily notes, if Daily Notes > Identify by filename is enabled, the importer will try to parse the filename as a date and if it succeeds, it will create a daily note.

Linking behavior

In Markdown notes, you can link to:

  • notes included in the same import
  • existing notes already in your Capacities space

The importer will try to find an object using title search.

Supported linking methods include:

  • wikilinks such as [[Page Name]]
  • relative file links such as [Louvre museum](./museums/louvre.md)
  • absolute import-root links such as [Louvre museum](/history/museums/louvre.md)

If a matching note is found in the current import, Capacities links to that note. Otherwise, it tries to resolve the reference against existing content in your space.

Unsupported link syntaxes may not resolve during import. The next best link option will be chosen. For example, links like ./document.pdf#Page=3 are ignored and resolved to ./document.pdf.

Embedded media in Markdown

If you embed an image in Markdown, for example ![Mona Lisa](./mona-lisa.jpg), Capacities creates an image object and embeds it in the imported note.

Image paths follow the same relative and absolute path rules as Markdown links.

This works for other media types too.

Limits

Bulk import includes safeguards to keep imports reliable and performant. Limits apply at multiple stages, including selection, extraction, analysis, and import.

Object limits

  • A single bulk import run can create up to 100 objects
  • Imports with more than 20 objects show additional review guidance
  • Imports with more than 50 objects require explicit confirmation before proceeding

If analysis predicts more than 100 objects, the import cannot continue in one run.

Cumulative user limit

  • Each user has a cumulative cap of 20,000 bulk-imported objects

File limits

LimitValue
Total size per import10 GB
Single file size100 MB
Total file count per import100 files

Notes:

  • total size is checked before and after ZIP extraction
  • a ZIP under 10 GB can still fail if its extracted contents exceed 10 GB
  • individual files over 100 MB are excluded during processing
  • unsupported files are skipped during filtering
  • the whole import fails if the remaining supported/importable files still exceed the total size or file-count limits

Local storage requirements

Bulk import relies on local processing and temporary local storage. If your device does not have enough available storage, the import can fail before or during processing.

Content length

  • Imported property text is capped at 524,288 characters per property
  • Longer values are truncated

Daily note constraints

When imported content is resolved as daily notes:

  • only one daily note per day is allowed
  • if a daily note already exists for a day, additional candidates for that day are skipped
  • if multiple files in the same import resolve to the same day, only one is created and duplicates are skipped

Error Reference

Although the import pipeline is designed to be as robust and stable as possible, occasional errors can still occur:

Access Denied

This error occurs if you do not have permission to use the bulk import feature.

Possible reasons include:

  • bulk import is still in the early access phase for Believers
  • you are not currently logged in

Ensure that you are logged in and that bulk import is available on your plan.

No Files to Import

This error occurs if no importable files were detected.

Possible reasons include:

  • no files were selected
  • all selected files were filtered out because their formats are unsupported
  • a ZIP archive contained no supported files after extraction

Ensure that your import contains supported files and that ZIP archives are not empty.

Too Many Files

This error occurs if the number of remaining importable files exceeds the allowed limit after filtering and extraction.

The current bulk import limit is 200 files per run.

Maximum File Size Exceeded

This error occurs if the total size of selected or remaining importable files exceeds the allowed limit.

The current total size limit is 10 GB per import run.

If needed, split your import into smaller batches.

Not Enough Storage

This error occurs if your device does not have enough available local storage for temporary import processing.

Possible reasons include:

  • insufficient free storage on your device
  • insufficient browser or app storage quota for temporary processing

Free up storage space on your device and then try the import again.

Writing Failed

This error occurs if imported files could not be written to local temporary storage before processing.

Possible reasons include:

  • insufficient local storage
  • a temporary failure while writing files locally

Try again after freeing local storage and reloading the app if necessary.

Extraction Failed

This error occurs if a ZIP archive could not be extracted.

Possible reasons include:

  • the ZIP file is corrupted
  • the ZIP file uses a format that cannot be processed correctly
  • extraction was interrupted

If possible, open the ZIP file locally to verify that it extracts correctly, then try the import again.

Processing Failed

This error occurs if local import processing could not be completed successfully.

Possible reasons include:

  • uploaded files could not be parsed correctly
  • the configured import setup was not valid for the selected content
  • an internal processing step failed unexpectedly

If this happens, verify that the files are valid and try the import again.

Too Many Objects (Per Run)

This error occurs if the import would create more than 100 objects in a single run.

Split the import into smaller batches and try again.

Too Many Objects (Global)

This error occurs if the import would exceed the cumulative per-user bulk import limit of 20,000 objects.

Space Not Found

This error occurs if the current space could not be resolved during import processing.

Try reloading the app and starting the import again from the correct space.

Import Fallback Type Unavailable

This error occurs if the fallback object type selected for the import is no longer available when processing starts.

Possible reasons include:

  • the selected default or fallback object type was deleted
  • the object type is not available in the current space
  • the import setup refers to an outdated object type configuration

Open the import again, choose an available object type, and review the mapping before continuing.

Uploading Failed

This error occurs in import flows that require uploading files to complete processing.

Possible reasons include:

  • an unstable internet connection
  • blocked access to required storage or processing services

If your connection blocks required services, some media-related import flows may fail even when non-media content can still be processed locally.

Applying Import Failed

This error occurs if imported content was read successfully but could not be applied to the target object.

If this happens, check whether the source content is malformed or contains unsupported structures.

Daily Note Already Exists

This error occurs when an imported file would create a daily note for a date that already has a daily note in your space.

Only one daily note can exist per day, so the duplicate candidate is skipped. You can copy and paste the content into the existing daily note.

Duplicate Daily Note

This error occurs when multiple files in the same import run resolve to the same daily note date.

Only one daily note for that date is created. The other candidates for that date are skipped.

Miscellaneous Error

This error occurs when an unexpected error does not fall into one of the more specific categories above.

If the issue persists, try again after reloading the app.

Recommendations

  • import only the content you really need
  • clean up notes, properties, and folder structures before importing
  • create the object types you want to use before starting the import
  • split large imports into smaller batches
  • keep individual files under 100 MB
  • review the mapping step carefully before confirming the import

FAQs

  • How can I import an Excel file into an object type or collection?
    Export the spreadsheet to CSV first. Then import the CSV into the relevant object type or collection.
  • How can I upload several images into a collection or apply the same tag to all of them?
    Use bulk import. In the import flow, add a marker in the preferences step or assign the imported objects to a collection in the review step.
  • Can I use the import tool to move content between Capacities spaces?
    There is no dedicated space-to-space migration flow. In some cases, you can export Markdown and media from one space and import them into another, but the import tool is not designed as a lossless space migration tool.
  • Why is my imported content not showing in "Created Today"?
    Imported content may keep or derive date information from the source content or file metadata. As a result, imported objects may appear under an earlier date instead of today.
  • Does bulk import always work fully offline?
    Not in every case. Everything runs locally, but media will not be uploaded until you have an active internet connection. Without upload, media will not sync across your devices. Import first, then ensure you are online so content can upload and sync.
  • Can firewall, VPN, or regional network restrictions affect imports?
    Yes. If your connection blocks required services, some import flows can fail. Media-related import flows are the most likely to be affected.
  • Which property mappings are currently supported in bulk import?
    In the mapping step, the currently supported mappings are: text -> text, blocks, number, boolean, url, entity, label, icon, object select, and dates.
  • Can I map non-text source values directly to properties?
    No, current mapping support is based on text source values mapped to supported Capacities property types.
  • Why can’t I select image, audio, PDF, file, or tweet as fallback object type?
    These object types are not available as fallback object types in bulk import. Please select a supported non-media object type instead.
  • What date formats are accepted?
    We support ISO strings, Unix epoch time, and natural-language dates.
  • Why are my images from Obsidian not imported with the size dimensions?
    This is not supported in Capacities.
Are you missing something in the documentation?

Ask a question! - The Docs Assistant knows everything about the documentation, and the ideas and feature requests from other users.

Create a ticket on our feedback board. - Let us know if you have an idea for a feature, improvement or think there is something missing.

Request additions to the documentation. - If your questions are not getting answered, let us know and we will extend the documentation.