Skip to main content
Help center
Browse topics

Import your members and data

Upload any export from your old system and the copilot imports members, memberships, packs, visits, family links, bookings and wallet balances. Dry run first, undo after.

How-toChecked against the app on 6 November 2026

Moving from another gym system, Booklux or a spreadsheet? Settings → Import brings your existing data over. Nola's copilot reads the file you upload, checks every row in a dry run before anything is written, and imports only after you apply it. An import can be undone.

Import with the copilot

Under Import from another system, click Upload a document and pick any export from your old system: a CSV or text file, an Excel sheet (.xlsx, the first sheet is read) or a PDF with a table, up to 10 MB.

  1. The copilot opens with your file attached and a message asking it to import the file. Click Send.
  2. The copilot works out what the file holds and which column is which. It reads column names in English, Estonian and Russian, the common text encodings and separators, and dates written day first or month first.
  3. It checks every row in a dry run and tells you how many rows are ready and every row it can't import, with the line number and the reason (a missing name, a date that isn't a date, an email that isn't an email, a member that doesn't exist yet, a repeated row). It also lists plans it will create and memberships that come with a pause. A birthday of 1970-01-01 or 0000-00-00, which systems such as Booklux and Anolla write when no birthday was entered, isn't treated as a birthday: the member is imported without one, and the dry run says how many members that is. Ask it to change a column or a date format if something looks wrong. For members, it names each person already in Nola and whether they matched by the old system's id, email or phone. Those profiles stay as they are unless you ask it to update existing members.
  4. Nothing is written yet. The import waits under the chat as a change for your approval. Click Apply to import the rows that passed.
What's in the fileWhat it createsNeeds
Members (also a client list, such as Booklux clients)Members with contact details, birthday, personal code (isikukood), emergency contact, member number, photo, language and marketing consent. An 11-digit personal code that fails the isikukood check is kept as typed with a warning, as it may be from another country; a value that isn't a code at all is left out. A group column becomes tags on the member, and an address goes to the member's AddressA name (or first and last name)
MembershipsRecurring memberships with price, start date, commitment, next payment date, payment method and pauseMember id or email, plan name, start date
Packs with visits leftClass or visit packs with the visits left and the expiry dateMember id or email, plan name, visits left
Visit historyPast check-ins, for reports and the at-risk listMember id or email, date and time
Family linksA child linked to their parent, who then pays and books for themBoth member ids
Bookings, standing bookings, booking history and class attendeesBookings on your resources and services, and a seat in a class that already existsA booking id, the member's id, the resource, start and end. Class attendees need the member (id, email or phone) and the class session's date and time
Wallet balancesPrepaid money in the member's wallet, or held on their client card until they sign upThe member's id or email, the balance

A file with several kinds of data is imported kind by kind, members first: the other kinds find their member by the member id from your old system (or the email). Keep the id column (for Booklux, the client id) when you import members, so later bookings and balances find them. PIN codes from the old system are not imported.

Bookings from another system

  • Create your resources and services first. A booking's resource is matched by name or id. Extra spaces, capital letters and a leading number still match, so 4. Albatros Textile, 4 Albatros Textile and Albatros Textile are the same court. The dry run names the resource it will use for each row. A row it can't match, or a name that matches more than one resource, is an error and is not imported, so a booking is never created without its court. Without a service column, a booking is imported only if you have exactly one active service.
  • Class attendees take a seat in a class session that already exists. Each row needs the member (their old id, email or phone) and the class: the class name plus the session's date and time, or the class session's id in Nola. The dry run names the session, or lists the row when no session matches, the class is full, or the person is already in it. Waitlisted and cancelled rows are not seated.
  • The dry run checks columns, dates and repeated rows, and matches every row to its member, resource, service or class session. A row that doesn't match is listed with the reason before you apply, and the import skips it. A row an earlier import already brought in is listed as skipped.
  • Dates and times without a time zone, such as 2026-10-15 10:00, are read as your business's local time.
  • Bookings are created also for members who haven't signed up to Nola yet. When such a member later signs up with the same email and books with you while signed in, the bookings move to their account.

Wallet balances from another system

  • Each row is one member's prepaid money left, in your currency. An optional comment column is kept as a note. Rows with a zero or negative balance are skipped.
  • A member who already has a Nola login gets the balance in their wallet straight away, as Imported balance.
  • A member without a Nola login can't hold wallet credit yet. The balance is held on their client card instead: the client card shows it as Imported balance, member has no login yet, and Payments → Wallets lists every held balance under Imported balances waiting for a login. The dry run tells you which rows are held.
  • When the member signs up with the email on their client card and verifies it, the held balance goes to their wallet once, as Imported balance, held until sign-up. The same happens when you merge their client card into the card linked to their account.
  • Imported balances were paid in your old system, so they are not new money in Nola: they don't appear under Transactions, in the day's totals or in the accounting export, and carry no VAT. The member's wallet history shows them.
  • To remove a held balance (for example one imported by mistake), click Remove next to it on the client card. You need access to money. It is then never credited.
  • Each held, credited and removed balance is recorded in the audit log. See Client wallets.

Importing the same file again is safe. Members already in Nola are left as they are unless you ask the copilot to update existing profiles: the dry run names each matched member and whether they matched by the old system's id, email or phone. Memberships, packs and visits that came in before are updated or skipped, and wallet balances are not added twice. Members imported before addresses had their own field keep the address as an "Address: …" line in their notes; importing the file again moves it to Address and takes the line out of the notes.

Memberships from another system

  • Plans are matched by name. A plan Nola doesn't have yet is created with the file's price, sold at the desk only. A different price in the file is kept on that member's membership.
  • Nothing is charged when you import. Nola bills each membership from its Next payment date (or the next date after today that follows the start date).
  • Payment methods move only partly. Card details never leave the old card processor, so card memberships are imported as paying at the desk and listed under No payment method on the Members page. With your Stripe account connected, the member can save a card in Nola and the membership then moves to card payments (see Ask a member to save a card). Rows that say direct debit or standing order become E-invoice when you have set it up, so the member pays by standing order with their reference number; otherwise they pay at the desk. Tick Email members a link to set up how they pay to send each card member a link to save their card. See E-invoices, standing orders and bank statements.
  • Pauses come over when the file has a column with the pause's last day, and optionally a pause start. A pause that is still running starts on the import day: the membership is paused straight away, isn't billed during the pause and is back the day after its last day, like a pause added at the desk today. A pause that starts later is planned for its start date. A pause that already ended is skipped. Only active memberships can be paused: a membership with an end date is imported without its pause, and the dry run says so. The plan's pause rules and pause fee don't apply to imported pauses. A row marked as paused but with no end date is imported as active; the dry run warns about it. The dry run also shows how many memberships come over with a pause.

Import with your own AI agent

An AI agent you connect to Nola over MCP (Claude, ChatGPT and others) can run the same import for the owner: it sends the table, shows you the dry run and imports only after you confirm. See Connect AI agents with MCP.

Undo an import

Under Past imports, click Undo on an import, or ask the copilot to undo it (it waits for your Apply). Nola removes the memberships (with their imported pauses), packs, visits, family links, members and plans that it created, except anything used since (for example a membership that has been billed or a member with new visits). Undoing a bookings import removes the bookings, booking series and class enrolments it created. Imports from the old Booklux file form are listed here too and can be undone the same way, except clients and wallet balances: their clients and wallet credits stay, because they may already have new activity. Undoing a wallet balances import removes the balances still held for members without a login; balances already in a member's wallet stay. Members that the import only updated stay as they are. An imported pause on a membership the import only updated ends when you undo; days already paused stay paused. Imports and undos are recorded in the audit log.

Still stuck?

Ask the AI Copilot inside Nola, or send a request to the Nola team. A person answers within one working day.