Workflows
Importing and Exporting Data
Use shared imports and exports on supported list pages, plus specialized contacts, bank-transaction, and accounting workflows.
Importing and Exporting Data
Einblick uses one shared import/export workflow across most supported list pages. Export and import use the same field registry, so the field picker, translated labels, auto-mapping, and validation all start from the same definition of each entity.
Contacts use a specialized directory import from the same Import action because address books need matching, organization links, and vCard support. Bank Transactions uses a separate OFX/CSV import because bank files need account matching, reconciliation, and deduplication instead of the shared field registry.
Accounting Exports uses a finance-specific handoff workflow because bookkeeping packages are generated from journal entries, tax mappings, partner numbers, and source documents instead of list fields.
Where you find it
- On supported list pages, use the header actions Export and Import.
- Import is currently exposed on Absences, Buildings, Contacts, Equipment, Events, Festivals, Materials, Organizations, Reports, Tasks, Tools, Vehicles, and Work Times.
- Export is available more broadly on list pages that use the shared data views, including Projects, Inquiries, Quotes, Invoices, Incoming Invoices, and Work Orders.
- The Contacts import action opens the directory import instead of the generic column-mapping sheet.
- Bank Transactions
has Import file for
OFXandCSVbank exports. That flow previews new, updated, duplicate, and skipped transactions and can create a manual bank account when the own IBAN is new. - Accounting Exports is a specialized finance export. It previews one accounting period, validates journal postings, generates an immutable snapshot, and stores ZIP and manifest downloads for the handoff.
Export workflow
- Open Export from a supported list page.
- Choose the export format:
CSV,XLSX, orJSON. - Choose the export mode:
- Readable: translated headers, formatted dates, and display labels
- Data: raw field keys, raw enum values, raw stored date values, and relation IDs for reimport
- Adjust filters, fields, field order, related data, and sorting.
- Start the export and download the generated file.
The export sheet starts from the current table filters, so you can export the whole list or just the records that match the current view. Faceted filters and date-range filters can be adjusted before export; date ranges use inclusive from/to days. On shared data views with archived statuses, archived rows are hidden by default. Use the archive toggle in the table toolbar before exporting if the file should include archived records.
Accounting export workflow
Accounting Exports is separate from shared list exports.
- Configure provider, account chart, tax mappings, document inclusion, and partner numbers in Workspace Settings -> Accounting.
- Use Accounting Exports to select a month, review row count, warnings, blocking issues, and sample postings before generating a package.
- Journal postings can come from paid invoices, paid supplier invoices, active financial entries, categorized bank transactions, and synced Stripe balance transactions or payouts.
- Blocking issues must be resolved before BMD package generation. Issue actions open tax mappings, partner numbers, or the source record when possible.
- Generated exports keep a sequence number, period, warning count, ZIP download, manifest download, and Mark sent action.
- Provider settings can be prepared for multiple providers, but ZIP package generation is currently wired only for BMD.
Formats and modes
CSVis always a flat, single-table export. Data mode is not available for CSV.XLSXsupports both readable and data exports.JSONsupports both readable and data exports.- In Readable mode, the optional header translation toggle affects CSV and XLSX.
- In Data mode, translated headers are off and CSV is disabled.
- Readable
JSONwithout related data exports a plain array. If related data is included, the JSON export becomes a{ data, relatedData }object. - Data-mode
JSONadds an_einblickenvelope so the importer can recognize the file as an Einblick export.
Related data exports
Related data is currently available for these parent tables:
invoices→invoicePositionsquotes→quotePositionsworkOrders→workOrderPositionsorganizations→organizationsContacts,organizationsBankDetailsfestivals→festivalDays
How the output is shaped:
- In
XLSX, the main rows go into the first sheet and each related table is added as its own additional sheet. - In
JSON, related rows are returned in a separaterelatedDataobject keyed by table name. - In Readable mode, related data is optional.
- In Data mode, related data is included automatically when the parent table supports it.
Import workflow
This is the generic workflow used by most import-enabled pages.
- Open Import from a supported list page.
- Upload a
CSV,XLSX,XLS, orJSONfile. - If the file has multiple sheets, pick the sheet you want to import.
- Review the column mapping.
- Run a dry run to see how many records would be created and which rows fail validation.
- Start the import and watch progress in the same sheet.
Running imports process rows in batches and show created and failed row counts. Cancel import stops the remaining batches, but rows already created by processed batches stay in place.
Current limits in the client parser:
- maximum file size:
10 MB - maximum rows per file:
50,000
Contact directory imports
The Contacts import action is optimized for address books instead of generic table reimport.
- Supported sources are the browser's system contact picker when available,
.vcf/.vcard,CSV,XLSX,XLS, andJSONfiles. - Einblick normalizes common contact headers, vCard fields, and browser contact fields into contact and organization data.
- Rows are prepared first as ready, review, or skipped. Ready rows can create contacts or organizations, update only empty fields on exact matches, and create contact-organization links.
- Conflicting or ambiguous rows are not written by the current import. Import jobs report created, updated, linked, skipped, failed rows, and warnings separately.
Column mapping and dry runs
- Einblick first tries exact matches by raw field key, translated field label, and common synonyms.
- If that is not enough, it applies fuzzy matching and marks those columns separately so you can review them.
- You can manually remap any column or ignore it.
- The preview shows the first few parsed rows before anything is written.
- The dry run reports how many rows would be created and gives row-level errors that can be downloaded as CSV.
Best format for reimport
- Use Data mode when you want to move data between workspaces, archive raw records, or prepare a file for later reimport.
- Choose
XLSXorJSONfor lossless exports. UseCSVwhen you want a flat file for manual review or spreadsheet work. - Einblick data-mode JSON exports include
_einblickmetadata. When you import them back, raw field keys can be matched directly instead of relying on translated labels. - If you export related data to multiple sheets, import each sheet separately from the matching feature page.
Current scope to keep in mind
- Generic imports currently create new rows. They do not update existing records in place. Contact directory imports are the exception: they can fill empty fields on exact matches.
- Bank transaction imports are another exception: they deduplicate against existing transactions and can update a matching transaction instead of creating a new row.
- Generic imports currently run against one target table per import. Multi-sheet files help you choose a sheet, but they do not recreate parent-child trees in one step. Contact directory imports can create contacts, organizations, and organization links from one prepared address-book import.
- System fields, computed fields, and non-importable field types such as file/image-only inputs are excluded from the import mapping.