Importing from your old system

Bring deals over from MyStudio, ABC Fitness or any export, with their member ids and the email topics they turned off. You see a preview first, and nothing is saved until you confirm.

Open Settings → Your data → Imports → New import and work through four steps: upload, map columns, preview, run. Drop the file (CSV, TSV, text, Excel or JSON, up to 25 MB) or paste the rows. Monody shows a preview of what would be imported, and nothing is written until you run it and confirm Import now. Every run is logged with what it added, updated and skipped, and every refused row is listed under Row errors with its reason, which you can download as a CSV.

Sources

MyStudio and ABC Fitness exports are read from their standard column names. Exports from the other systems gyms and studios use, and any CSV, Excel or JSON file, work like this: the map step matches your headers to Monody's fields and lets you change any of them.

The member id from your old system

Map the column that identifies each record in your old system to Source id. Monody keeps it on the record as its Member ID, so a second run updates instead of duplicating. An administrator sees and edits it under Member ID in the deal's Details. See Duplicates and linking a deal to a member.

Email topics they turned off

Where your old system kept which kinds of email each person turned off, map that column to Topics they opted out of. Each name is matched to your own topics by name (see Email topics and Manage what you get), and the person stays opted out of each one. The preview lists any topic in the file that is not one of yours; those are left out, and Monody never makes a topic from a file. Nothing is sent to anyone.

What imports, and in what order

  • People — first and last name are required; email, phone and date of birth come along. A MyStudio export is read from StudentId, FirstName, LastName, Email (or ParentEmail), Phone, DOB; ABC from MemberID, FirstName, LastName, Email, MobilePhone, DOB. The import emails nobody: invite people to the portal from the run's page when you are ready.
  • Families — each row is a child and their guardian. The child lands on the guardian's account; a guardian already in Monody is found by email or phone, not added twice. A MyStudio family export is read from its student and parent columns.
  • Leads — a name (a first name, a last name, or one Name column that Monody splits), plus email, phone and their stage in your old system. Each column is matched by its usual spelling: First Name, Last Name, Name, Email or E-mail, Phone, Mobile or Phone Number, Stage, Status or Lifecycle Stage; HubSpot (Record ID, Lifecycle Stage), GymSales (Prospect ID, Status) and Line Leader (Lead ID, Parent First Name) have their own templates. Words like Deal, Contacted, Appointment Scheduled, Customer and Closed Lost are matched to a Monody stage for you, and you change any of them on the preview. A phone needs ten digits with the area code, or a + and the country code. Imported deals land with no marketing consent recorded, and nothing is emailed or texted: consent is never assumed from an export.
  • Memberships — run after People from the same system, so each row's member id resolves to the person it belongs to. On the preview, pick a plan for each program in the file, and one for rows that name no program; the plans are the ones under Billing & Plans. The state, start and end dates come from the file, and an active membership whose end date has passed lands as expired.

What is refused, and why

The preview resolves what the run would resolve, and nothing is skipped in silence: a row is added, updated, or listed under Row errors with one of these reasons.

CodeRowsWhen
missing_namePeople, FamiliesThe row lacks a first or a last name.
missing_guardianFamiliesThe guardian lacks a first or a last name.
guardian_unreachableFamiliesThe guardian has neither an email nor a phone.
missing_nameLeadsThe row has neither a first nor a last name.
bad_emailLeadsThe email does not look like an email address.
bad_phoneLeadsThe phone has no area code, or is not a number Monody can text.
stage_unmappedLeadsA stage Monody does not know and no Monody stage picked for it.
member_missingMembershipsThe member id column is empty.
member_not_importedMembershipsNo person was imported with that member id; run People first.
plan_unmappedMembershipsA program with no plan picked; the message names it.
plan_not_foundMembershipsThe picked plan does not exist.
location_missingMembershipsThe workspace has no location to put it on.
state_unknownMembershipsA state Monody does not know.
CodeRowsWhen
missing_namePeople, FamiliesThe row lacks a first or a last name.
missing_name People, Families The row lacks a first or a last name.
missing_guardianFamiliesThe guardian lacks a first or a last name.
missing_guardian Families The guardian lacks a first or a last name.
guardian_unreachableFamiliesThe guardian has neither an email nor a phone.
guardian_unreachable Families The guardian has neither an email nor a phone.
missing_nameLeadsThe row has neither a first nor a last name.
missing_name Leads The row has neither a first nor a last name.
bad_emailLeadsThe email does not look like an email address.
bad_email Leads The email does not look like an email address.
bad_phoneLeadsThe phone has no area code, or is not a number Monody can text.
bad_phone Leads The phone has no area code, or is not a number Monody can text.
stage_unmappedLeadsA stage Monody does not know and no Monody stage picked for it.
stage_unmapped Leads A stage Monody does not know and no Monody stage picked for it.
member_missingMembershipsThe member id column is empty.
member_missing Memberships The member id column is empty.
member_not_importedMembershipsNo person was imported with that member id; run People first.
member_not_imported Memberships No person was imported with that member id; run People first.
plan_unmappedMembershipsA program with no plan picked; the message names it.
plan_unmapped Memberships A program with no plan picked; the message names it.
plan_not_foundMembershipsThe picked plan does not exist.
plan_not_found Memberships The picked plan does not exist.
location_missingMembershipsThe workspace has no location to put it on.
location_missing Memberships The workspace has no location to put it on.
state_unknownMembershipsA state Monody does not know.
state_unknown Memberships A state Monody does not know.

Running it again

People and memberships remember their source id: running the same file again updates the records it created and adds only the new ones. So a migration can be rehearsed and re-run on the day.

A deal is never filed twice. A row whose member id, email, or phone and first name already belong to a deal is not added. Under When they are already a lead, Fill in what is missing gives that deal only the phone, email or name it lacked, and Leave the lead as it is changes nothing. A row that repeats another row in the same file is left out too. Every row left out is listed on the run's page with its reason, and Download skipped rows (CSV) hands them back with their columns. Run the same deals file twice and the second run adds nothing.

A question these pages do not answer? Write to support@monody.app.