Use Orders import to bring bookings and their recorded costs into Cademy from a CSV or Excel file. It supports scheduled, blended and on-demand courses. Each row creates an order for one course, with the mapped contact as its attending booker.
An order records the purchase; a registration records the person’s place on the course. If you only need to enrol learners and do not need billing records, use Import Learners and Update Registration Fields instead.
Before you start
The Settings route requires a System Admin or Course Owner account. Ask a System Admin if you do not have access to Imports.
Create the courses and, for scheduled or blended courses, their course dates before importing. The date must belong to the course in that row.
Use one row per order and course. This import does not map individual guest details, multiple courses into one order, tickets, add-ons, discounts or vouchers.
Put column headings in the first row. For Excel files, put the data on the first worksheet. Keep a backup and try a small file before importing your full list.
Include contact details, preferably a valid email address so Cademy can match the person and send any requested emails.
Check your plan’s import allowance. Cademy checks the number of rows when you upload the file and displays an error if the allowance does not cover the import.
Important: Review the cost and payment status for every row. If you leave Total Paid / Cost unmapped, the cost defaults to zero. If you leave Payment Status unmapped, it defaults to paid. Importing a paid amount records it; it does not charge a card.
Upload the file and map contacts
Sign in to the admin dashboard. Open Settings, then Imports.
Under Start an Import, choose Orders.
Drop your CSV or Excel file into the upload area or choose Select file. After the upload, the contact-mapping step opens.
Map the contact information, including Email, First Name and Last Name where present. Map other contact fields only when you intend to import them.
Select Continue. Review Update existing Contact, which is on by default. Leave it on to update matching contact records with the mapped information; turn it off to preserve existing contact details.
Select Continue to open the order-field mappings.
Mapping connects a spreadsheet column to a Cademy field. For example, map a column named “Email Address” to Email. Check automatically selected mappings before continuing.
Do not import: leave a field out.
CSV column: select the column under File Column, then choose the matching format where one is offered.
Fixed value: use the same value for every row.
Review Sample Data to check your choices. For dates, select the format that matches your file. For Course, you can match by Course Name, Cademy Course ID or Course Code. Using a course ID or unique course code avoids confusing courses with similar names.
Map the order details
The order fields appear alphabetically. Use these settings to describe each booking:
Course: required for every row.
Course Date: required for a scheduled or blended course, even though the mapping screen does not mark it as required. Leave it unmapped for an on-demand course.
Created date: this field is shown, but the Orders import records the order’s creation time as the time of import. Do not rely on it to preserve the original booking date.
Currency: use the currency code, such as GBP. If omitted, Cademy uses the course currency.
External Order Ref: stores the supplied reference as the order’s Xero external reference. It does not merge rows into an existing order.
Payment Status: use paid, awaiting_payment or overdue. The value cancelled is not supported by this import.
Secondary invoice ref: an optional invoice reference for the order.
Send Confirmation: set a fixed value on, or map a column with true values, for rows that should send a confirmation. Leave it off or unmapped to suppress that confirmation. For awaiting_payment rows, enabling this also requests payment.
Spaces: the number of places on the order. Use a positive whole number; if omitted, it defaults to one. Extra spaces do not provide individual guest names or email addresses.
Total Paid / Cost: the total amount for that row, not the price per space. A paid row records the full amount as paid; an awaiting-payment or overdue row records none of it as paid.
The import uses your supplied total and does not calculate separate tax or fees from the course price. Check the resulting order before using it for financial reporting.
Send Confirmation controls the order confirmation or payment request described above. It does not disable lesson opening and deadline notifications for active registrations. Those follow the course’s lesson schedules and due dates.
Review all mappings and the sample values.
Select Import to start processing.
Review the result
Keep the import dialog open to see progress, or close it and continue working. An Import Complete result can include failed rows, so check both counts.
Open Settings, then Imports in the admin dashboard.
Find the upload under Your Imports. Review Imported, Failed and Status.
Select the linked Imported count to open the imported records. Use a record’s eye icon to inspect it.
Select the linked Failed count to review Row Number and Reason. Correct those rows and import a file containing only the rows that need retrying.
PROCESSING means work is in progress. PROCESSED means processing finished, including any row failures. FAILED means the overall import failed. Check the displayed error rather than assuming every failure has the same cause.
Cademy sends the import result to the admin who started it, using their account email address. This is separate from participant confirmations. You can also inspect the results in Settings > Imports.
Frequently asked questions
Can I import bookings for an on-demand course?
Yes. Map the course and leave Course Date unmapped. Use Registrations import instead if learners only need course access without an order.
Does importing update existing orders?
No. Update existing Contact controls contact information, not orders. Uploading the same rows as another import can create more orders. Retry only rows that failed.
How do I preserve a historical registration date?
For learner records without billing, Registrations import supports a registration Created date. Orders import does not preserve a historical order creation date.
Why did a row fail?
Open its failed-row reason. Check that the course exists, its required date exists and matches, and that values use the selected formats. A row with cancelled payment status cannot be imported through Orders.
