Import clients, sites and jobs
How an owner or admin brings clients, sites and jobs into FSMCore from a CSV or Excel file: an export of another system or your own spreadsheet. Choosing what the file holds, checking the columns, the preview, duplicates, dates, importing once, and undoing an import for 7 days.
What it is for
Moving from another system or a spreadsheet? You do not need to type your clients, sites and jobs again. Export them from the old system (or save your spreadsheet), and import the file here.
Open Settings, then Import. The page says: "Bring your clients, sites and jobs from another system or a spreadsheet. Only owners and admins see this page."
The page has these parts:
- the box Choose a file, where you say what the file holds and upload it,
- the box Templates, with empty files to fill in,
- after reading a file: the box Columns (where each column goes) and the box Preview (what Import would do),
- the list Imports, with every import of your company.
Nothing is saved until you press Import after the preview.
Import is in every plan and in the free trial. It does not count toward any limit. People (crew) are not imported here: add them in Users.
Who can use it
| Role | What they can do |
|---|---|
| Owner | Everything on the page: import, undo. |
| Admin | Everything on the page: import, undo. |
| Supervisor | No access. Import is not in their menu. |
| Crew | No access. |
| Accountant | No access. |
A person who is not an owner or admin cannot open the page. If they still try, it is refused with: "Only an owner or admin of this company can import data."
An import only ever reads and writes records of your own company. Another company's clients are never matched, changed or removed.
Choose a file
- Under What does the file hold? pick one:
- Clients
- Sites (each linked to a client)
- Jobs (each linked to a client and a site)
- One sheet with a row per job, with client and site columns. Most exports of other tools look like this.
- Under CSV or Excel file choose the file.
- Press Read file.
The file can be a CSV, XLSX or XLS file, one at a time, up to 20 MB and 5,000 rows. The first sheet with rows is read. The row with the column titles is found by itself: a title line or grouped headings above the real column titles are skipped, and blank rows are left out.
A file that cannot be read is refused in plain words, for example:
- "Upload a CSV file or an Excel file (XLSX or XLS)."
- "The file is larger than 20 MB."
- "This file has 6,200 rows. Up to 5,000 rows can be imported at once: split it into smaller files."
- "This file has no rows to import."
- "This file could not be read. Save it again as CSV or XLSX and upload it once more."
Templates
The box Templates has four links: Template: clients, Template: sites, Template: jobs and Template: combined sheet. Each downloads an empty CSV file with the column titles FSMCore understands by itself. Fill one in a spreadsheet, save it as CSV and import it.
The column titles of the templates:
| Template | Columns |
|---|---|
| Clients | Client name, Business name, Email, Phone, Address line 1, Address line 2, City, County, Postcode, Country, VAT number (your company's word for the tax number), Website, Notes |
| Sites | Client name, Site name, Site address, Site postcode |
| Jobs | Client name, Site name, Site address, Job title, Status, Start date, End date, Quoted value, Job notes |
| Combined sheet | Client name, Business name, Client email, Client phone, Client address, Site name, Site address, Site postcode, Job title, Status, Start date, End date, Quoted value, Job notes |
The columns
After Read file the box Columns lists every column of the file, with up to three examples from it, and Goes into: the FSMCore field it is imported into.
FSMCore chooses at first by itself, from the column titles. It understands the usual words other tools use ("Customer", "E-mail", "Property City", "Billing Postcode", "Job Title" ...), small typing mistakes, and a word in front that says whose field it is ("Customer Phone" is the client's phone, "Property Address" is the site's address). Several columns can go into an address (street, city, postcode, country): they are joined line by line.
Change any choice with the picker. The choices are the fields of what the file holds, plus:
- Add to client notes (for a file of clients) or Add to job notes (for jobs and the combined sheet): the column is kept in the notes of each record as "Column title: value".
- Ignore this column: the column is not imported. The preview lists every ignored column, so nothing is left out without you seeing it.
A column FSMCore does not recognise goes into the notes where the record has notes. Sites have no notes field, so in a file of sites an unknown column is ignored and listed.
A field that takes one value (for example Client email) takes one column only. Your choices are saved as you make them.
Suggest with AI
When your company has set up its own AI account (Settings > AI setup), the button Suggest with AI asks the AI where each column should go. The AI is shown only the column titles and the first 5 rows of the file, never the rest. It only suggests: the columns change in the box, nothing is saved or imported, and the line "The AI suggested this mapping from the column titles and the first 5 rows. Check it and change anything before you preview." shows. A field the AI names that is not offered is never used.
Rows already in FSMCore
Below the columns, choose what happens to a row whose record is already in FSMCore:
- Skip them: the existing record is left as it is. A new site or job in that row is still added under it.
- Fill their empty fields only (nothing already filled is changed): only fields that are empty on the existing record are filled from the file. Existing values are never overwritten.
How FSMCore knows a record is already there:
| Record | Matches when |
|---|---|
| Client | The name matches (words in any order, small typos, "Ltd" or "Limited" ignored), or the email is the same, or the VAT number is the same. |
| Site | Under the same client: the Eircode or postcode is the same, or the first line of the address matches, or the site name matches. |
| Job | On the same site: the title matches and the start date is the same. |
Rows of the same file that name the same client or site share one new record.
The preview
Press Preview. The box Preview shows what Import would do now:
- New clients, New sites, New jobs,
- Already in FSMCore (skipped) or Already in FSMCore (empty fields filled): the rows whose record is already there,
- Rows with errors (skipped),
- which columns are added to the notes, and Ignored columns (not imported),
- Rows to check: every row with an error or something to check, by its row number in the file, in plain words,
- First rows: the first rows that import cleanly, with what happens to the client, site and job of each.
A row with an error is skipped; the other rows still import. Errors you may see:
- "The client name is empty."
- "Client email "x" is not an email address."
- "The job title is empty."
- "The site has no name and no address." (a file of sites)
- "The job has no site: the row has no site name, site address or client address."
- "Start date "x" is not a date in your date order (day/month/year)."
- "The end date is before the start date."
- "The job is longer than a year (start to end date)."
- "Quoted value "x" is not an amount with at most two decimals."
- "No column is set to Client name." (on every row, until you set one)
Something to check (the row still imports as shown):
- a date that could mean two things, see Dates,
- "Status "x" is not a job status in FSMCore, so the job is added as Quoted.",
- "No site in this row: the site is the client's address.",
- "An end date without a start date: the job is added without dates."
Dates
Dates are read in your company's date order (Settings > Company > Region and formats): day/month/year, month/day/year or year/month/day. A date with the month in words ("4 Oct 2026") or written year first ("2026-10-04") means one thing whatever the order, and so does a cell Excel holds as a real date.
A date whose day and month could swap, like 03/04/2026, is read in your order and flagged: "Start date "03/04/2026" could mean two dates. It is read as 03 Apr 2026 (your date order). Check it." If the file came from a system that writes dates the other way round, change your date order before you import, or fix the file.
A job's working days come from its dates: a start date only gives one working day; a start and an end date give every Monday to Friday between them, plus the start and end days themselves. You can change the working days on the job afterwards.
Status
A Job status column is matched to FSMCore's statuses (Quoted, Agreed, Scheduled, In progress, Snagging, Completed, Invoiced, Paid, Special), also from the words other tools use ("Active", "Done", "Requires invoicing" ...). A status that is not recognised makes the job Quoted, and the original word is kept in the job notes as "Status in the file: ...". With no status column every job is Quoted. A job imported as Paid is archived, like any job set to Paid.
Money
A Quoted value column is read as an exact amount in your company's currency: currency signs, spaces, thousands separators and a decimal comma are handled ("€1,234.50", "1.234,50"). An amount with more than two decimals is an error on that row.
Import
- Press Import under the preview.
- A window opens: Import this file? It says how many new clients, sites and jobs are added, what happens to rows already in FSMCore, and how many rows with errors are skipped.
- Press Import.
FSMCore plans the import once more on the server and saves the rows in batches, each batch all or nothing. Every record is saved through the same rules as the forms. A small file is imported at once and the message Imported says what was added.
If a row cannot be saved, its batch is rolled back and the import stops: Import stopped, with "Stopped at Row N: (reason)". What was saved before that batch stays and can be undone.
Every record the import creates or fills is recorded in its history with the import. The import itself is kept: who, when, the file name, what was added and the column choices.
While it runs
A file of more than 500 rows is imported in the background. The message Import started says: "It runs in the background. This page updates by itself; you do not need to reload. You get a bell message and an email when it is finished." The box Importing shows the progress, for example "Importing: row 750 of 2,000."
When it is finished you get a bell message Your import is finished (or Your import stopped) and an email with the same title, with what was added and the link Open Import.
The imports list
The list Imports shows every import of your company: Date, By, File, Holds, Status (Imported, Failed, Undone, Waiting to start, Importing) and Result (what was added, rows already in FSMCore, rows with errors, and for an undone import what was removed and what stayed).
Undo an import
For 7 days after an import, its row has Undo this import.
- Press Undo this import.
- A window opens: Undo this import? It lists how many clients, sites and jobs the import created are removed, and which records stay because they are in use.
- Press Undo import.
Undo removes only what the import created and nothing uses yet. A record is in use when anything else points at it: an estimate, invoice, crew invoice, hours, a deployment, a file, a snag, a job cost, an event, a contact or assigned crew. A site with a job that stays, and a client with a site or job that stays, stay too. Records in use are listed by name with what uses them.
Removed records go to the deleted items of each list, like a normal delete. Fields the import filled on records that were already there stay as they are. The undo is recorded with your name and the time; an import is undone once.
After 7 days: "An import can be undone for 7 days. This one is older."
The original file
The file you uploaded is kept in Settings > Storage, in the bin, for 30 days after you read it, then it is removed for good like any file in the bin. It is listed as "Import file - (file name)". A file you read but never imported is let go after 48 hours: the import is then "Not imported" and is not in the list.
Exports from other tools
Export your clients (and jobs, if your old tool can) as a CSV or Excel file, choose One sheet with a row per job, with client and site columns for a jobs export or Clients for a client list, and check the columns. Column titles like "Client First Name" and "Client Last Name" are joined into the client name; "Client Company Name" goes to the business name; "Property Street 1", "Property City" and the like go to the site address; "Billing ..." columns go to the client address. Columns that fit no field (account balance, tags, reminders) go into the notes, or choose Ignore this column.
Common mistakes
- Dates read the wrong way round. The file uses month/day/year and your company uses day/month/year (or the other way). Check the flagged rows in the preview; change your date order or the file before you import.
- Every row has "No column is set to Client name." Set the column that holds the client's name in Columns.
- Many rows are "Already in FSMCore". That is the duplicate check working: the clients are already there. Choose Fill their empty fields only to add missing details to them.
- A column you need is ignored. Set it in Columns: every ignored column is listed in the preview before you import.
- Imported the wrong file. Use Undo this import within 7 days.