Excel Import: Products, Contacts and Events
After reading this, you'll know which data you can import via the Excel wizard, how the five-step flow works, and how Univents detects duplicate entries for each data type.
As of 07/10, Univents has one unified Excel import wizard for three data types: products (including recipes and bundles), contacts, and events. Instead of typing lists in by hand, download a template, fill it in, and let the wizard handle the rest. This article covers all three import flows — detailed steps for each data type are in the linked articles.
What you can import
| Data type | Where the import starts | Special feature |
|---|---|---|
| Products | Inventory → Import | Second template sheet for recipes & bundles |
| Contacts | Contacts → Import | People and companies in the same file |
| Events | Events → Import | Customer is matched by email, location by name |
All three areas use the same wizard and the same five-step flow — only the template and the target fields differ per data type.
Starting an import
- Open the relevant area in the menu: Inventory, Contacts, or Events.
- Click Import in the top right.
- The wizard guides you through five steps: Template → Upload → Mapping → Review → Import.
How the import works
Template. Click Download template (.xlsx) to get the matching Excel template — it has the right column headers, example rows, and a Notes sheet listing every allowed value. Your own list with different columns works too; you'll map it manually in the next step.
Upload. Drag your file into the drop zone or pick it via the file dialog. Supported formats are .xlsx, .xls, and .csv, up to 10 MB.
Mapping. The wizard automatically detects your column headers and suggests a mapping to the target fields. Required fields are marked; columns you don't need are set to Ignore. For products, the wizard also automatically detects a recipe/bundle sheet and shows a note about it.
Review. Before anything is saved, an overview shows you, row by row, whether it will be New, Updated, or Skipped — errors only block the affected row, not the whole file. You can download the error rows as an Excel file.
Import. Once you confirm the review, the import runs with a progress indicator. At the end you get a report with the number of newly created, updated, and skipped records.
Required fields per data type
| Data type | Required fields |
|---|---|
| Products | Name, net price |
| Contacts | Type (Person/Company), email — plus first or last name for a person, or company name for a company |
| Events | Name, start date |
All other columns are optional. If the end date is left empty for an event, Univents defaults it to 11:59 pm on the start day; if the status is left empty, Draft is used.
Every editor setting as a column
Since 8 October 2026, every setting you can make in the editor of each data type is also a column in the template. Here's what's new at a glance:
Products. Around forty additional columns, including Payroll product, Bill by consumption, Hide when unavailable, Min quantity and Max quantity, Min./Max. guests, minimum/maximum duration, Buffer days (rental), the eight nutrition columns, Holiday region, Schedule plan template, Notify, Recipe notes, Unit (EN), and name and description per language. The switch columns also flip existing products when you use the Overwrite existing values with the file option: a filled cell (yes/no) acts, an empty one never does. Images and whether your price is net or gross remain the editor's job. Details: Import products.
Contacts. New are Domain, Address addition, Region, Creditor number, Sales tax number, Buyer reference / Leitweg-ID, Default discount (%), Payment terms in days, Date of birth, Managing directors, Invoice email, Order email, Account manager and Parent company. Account manager expects the email address of a team member; team members are still not created through this import. Details: Import contacts.
Events. New are Start time and End time, the address columns Street, House number, Postal code, City and Country, Location name override, Internal notes, Payment method, Color, Seating, Distance (km), Show on website, Event kind, Cost center, On-site contact, Project planner and Seating plan. A few of them have a quirk:
| Column | What it does |
|---|---|
| Start time / End time | Separate columns for files that split date and time. If the Start date cell already holds a time, that cell wins |
| Street, House number, Postal code, City, Country | The address of an off-site event. If the end date is missing, Univents still defaults to 11:59 pm on the start day |
| Location | Accepts several rooms, separated by ;. The first name is the main room — it decides the seating plan and is the place where a repeated import recognizes the event again |
| Location name override | A custom display name in the event header that replaces the room names |
| Internal notes | Visible internally only — not on documents or in the staff portal |
| Payment method | Free text, as in the wizard — not a fixed catalog |
| Color | The calendar color. Besides hex values, Univents also recognizes color names |
| Seating | Free text (e.g. “banquet, round”) — not the same as the Seating plan |
| Distance (km) | The basis for products billed per kilometer |
| Show on website | Controls whether the event appears in the public event feed |
| Event kind / Cost center | Looked up by name among your own reporting dimensions. An unknown value creates nothing — it stays empty and shows up as a note in the review |
| On-site contact / Project planner | Looked up by email address among your contacts. Not found → note, field stays empty |
| Seating plan | The name of a seating plan template attached to the main room. Needs a resolved location; a drawing for a single event is not a template |
Important: existing events are still never changed by an import — the new columns apply to newly created events. If a row matches an event that already exists, it is marked as Skipped.
How Univents detects duplicates
The three data types handle repeated imports differently:
| Data type | Matched by | Behavior on a match |
|---|---|---|
| Products | SKU, otherwise name | Missing fields are filled in, existing values are never overwritten |
| Contacts | Primarily email (including alternative emails), otherwise name + type | Missing fields are filled in, existing values are never overwritten |
| Events | Name + start date with time + location | The row is marked Skipped — there is no update |
That last point matters: an import never changes an existing event, since that would be risky for events already underway. To edit an event after importing it, open it directly in Events.
Common errors
- Required field empty or invalid. A missing name/start date (events), type/email (contacts), or name/price (products) marks that row as an error and skips it — the rest of the file still imports.
- Unrecognized status or type value. For events, the status must be one of the allowed values (Draft, Option, Requested, Confirmed, Cancelled, Completed); a typo produces an error rather than silently landing in the wrong status.
- File too large or wrong format. Only
.xlsx,.xls, and.csvup to 10 MB are accepted. - Recipe/bundle row without a matching product. The product and the component must already exist in Univents or be included in the same import — otherwise the link is skipped.
Frequently asked questions
Can I import multiple data types from one file? No. Each import runs for exactly one data type (products, contacts, or events) through its matching area.
What happens if I upload the same Excel file again? For products and contacts, existing records are recognized and only missing fields are filled in. For events, an event that already exists (same name, same start date and time, same location) is simply skipped. The same course on the same day at four venues therefore becomes four events — for that, the Location column must match the venue name in Univents exactly.
Do I have to use the template exactly as downloaded? No. Your own files with different column headers work too — you map them to the target fields manually in the Mapping step.
Are comma-formatted numbers and values in another language recognized? Yes. The import recognizes both German and English number formats as well as German and English values (e.g. "pro Stück" or "Per Piece") automatically. This applies to Excel and CSV files alike.
What happens with a value like 1.500? The dot can be a thousands separator (1500) or a decimal point (1.5). The import decides that from the other values in the same column: if a comma appears anywhere in it, the German reading applies. If a value like 2.5 or 0.75 appears, the dot counts as a decimal point. If every value in a column is ambiguous, the German reading applies. The safest approach is to write decimal numbers with a comma in your file.
I calculated the values in Excel — do they arrive cleanly? Yes. When you calculate inside the file (metres times 100 for centimetres, say), Excel internally stores a number with a tiny remainder it never shows you: 7.2 becomes 7.199999999999999. The import cuts that remainder off without changing any real value. Prices that come from a division (a case price divided by 24, for example) are additionally rounded to four decimal places — precise enough for unit prices such as €0.0125.
Related articles
- Import products — detailed steps for products, including recipes & bundles
- Import Contacts — detailed steps for the contact import
- Create an event with the creation wizard — creating a single event manually instead of via import