View .md

Import your client book

Upload an Excel or CSV of your clients. The AI reads your columns — English or Chinese headers — you check the mapping, review the preview, and create them all in one click.

CorpSec AI product guide·Updated 2026-07-11

What this does

If you already keep your clients in a spreadsheet, this is how you bring them in without re-typing anything. You upload the file; the AI figures out what each column means; you confirm; CorpSec AI creates the companies and their officers in one batch. Hundreds of clients in a couple of minutes.

Note

Bulk import is restricted to Admin or RQI-level users. Files can be up to 15 MB and 2,000 rows per import — split a bigger book into batches.

Step 1 — Upload your Excel or CSV

In the Setup wizard's import step (or the import area), drop in a .xlsx, .xls or .csv file. CorpSec AI reads it on the server — real spreadsheet parsing, not a rough guess — and takes the first non-empty row as your headers.

The upload zone: "Upload Excel or CSV — Click to browse .xlsx, .xls or .csv. AI maps your columns — you review before importing."
Tip

Your spreadsheet does not need to be in any particular shape. Columns can be in any order, and headers can be in English, Chinese, or a mix — the AI handles all of these.

Step 2 — The AI suggests a column mapping

CorpSec AI sends a small, privacy-masked sample of your rows to the AI, which suggests what each of your columns is. It can recognise these target fields:

The "Column mapping — AI-suggested, editable" panel: each of your headers with a dropdown to the target field, some rows highlighted amber.
  • Company name, UEN, Company type
  • FYE month (financial year-end) and Incorporation date — it tells these two apart
  • Registered address, Email, Phone
  • Director(s), Shareholder(s), Company secretary, ID number, Shares held
  • Anything it should skip is set to — Ignore —
Note

Before any data leaves the app, NRIC / passport-style numbers in the sample are masked (for example S****567A), so the AI never sees raw identity numbers. Only the first few rows are sent, just to work out the columns.

Heads up

The AI only suggests — it never guesses when it is unsure. Columns it cannot map confidently are left blank for you to set by hand, and low-confidence guesses are marked in amber with "Amber = low AI confidence. Please confirm those columns." Nothing is imported to the wrong field silently.

Step 3 — Review and adjust the mapping

Each of your columns gets a dropdown so you can correct or fill in the target field. Change anything the AI got wrong, set the amber (low-confidence) ones, and map anything it left blank. Your edits are what actually get used on import.

  1. Check the confident mappingsCompany name, UEN and the obvious ones are usually right — a quick glance is enough.
  2. Fix the amber onesAnywhere marked low-confidence, pick the correct field from the dropdown.
  3. Map or ignore the restSet any blank columns, and mark columns you do not need as "— Ignore —".

Step 4 — Read the preview and the validation counts

As you map, CorpSec AI shows a live preview table (Name / UEN / FYE / Officers) and a plain-English summary of what will happen, for example "142 of 150 rows ready to import". It flags problems so there are no surprises:

CountWhat it means
Ready to importRows with a company name that will be created.
Skipped (no name)Rows missing a company name — these cannot be imported and are left out.
Duplicate UENThe same UEN appears more than once inside your file.
Missing UENRows with no UEN — imported, but flagged so you can add it later.
Unreadable dateAn incorporation date CorpSec AI could not parse.
Note

These duplicate/missing checks are within your file. Matching against companies already in your workspace happens at import time — an existing company (matched by UEN, or exact name) is updated in place, never duplicated.

Step 5 — Create them all in one click

When you are happy, click Import N companies. CorpSec AI creates the companies and splits the officer columns into director / shareholder / secretary records for each one. It is resilient: if one row fails, the rest still go through.

Afterwards you get a clear result — for example "Imported 138 new, updated 4 companies · 512 officers" — and, crucially, two separate lists if anything did not import cleanly:

  • Skipped rows, each with a reason (for example "no name", or "Plan company limit reached").
  • Failed rows, each with a reason, so you can fix just those and re-import them.
Tip

Every import is recorded in your import history (in Data Governance → Data Import), so you always have a record of what came in and when.

Very large books — chunked import

For a big file (roughly 1,000+ rows), CorpSec AI processes the import in chunks rather than one long request, advancing a cursor through the file so no single step risks timing out. The count of created, updated, skipped and failed rows stays exact across the chunks, and the run is idempotent — a repeated chunk never double-creates a company, because rows are de-duplicated by UEN (or name).

Note

You do not manage the chunking yourself — it just means a large book imports reliably. If you have thousands of clients, still split into files of up to ~2,000 rows each as noted above.

Adding a company by UEN (ACRA)Demo data

Instead of a spreadsheet, you can add companies by UEN and have CorpSec AI pull their registry profile — directors, shareholders, address — via "ACRA sync". This is the same path the Setup wizard’s Sync all companies uses.

Out of the box this runs on demo data. A live ACRA registry integration is not connected, so UEN lookup resolves a set of five demo companies (and a graceful fallback for other UENs) with a "Preview mode" label. Real client data you upload from a spreadsheet is fully yours and unaffected by this.

Heads up

Do not rely on ACRA sync as a live registry check yet. Until a registry provider is wired in, treat spreadsheet import as the way to bring your real book in, and ACRA sync as a demo of the eventual one-click registry pull.

Frequently asked questions

Does the AI read Chinese column headers?

Yes. The column mapping works with English, Chinese or mixed headers. It also correctly tells a financial-year-end month apart from an incorporation date.

What if the AI maps a column wrongly?

You review every mapping before anything is created, and your edits win. Low-confidence guesses are flagged amber, and columns the AI is unsure about are left blank for you to set. It never silently imports to the wrong field.

Will importing create duplicates of clients I already have?

No. On import, an existing company is matched by UEN (or exact name) and updated in place rather than duplicated. Duplicates within your file are flagged before import too.

What happens to rows that fail?

They are listed separately from the successful ones, each with a reason. One bad row never stops the rest of the batch, and you can correct and re-import just the failures.

Is my client data sent to the AI?

Only a small sample of rows is used to detect the columns, and identity numbers in that sample are masked first. The actual creation of records is done in your own workspace by deterministic code, not the AI.

Can I add companies by UEN instead of a spreadsheet?

Yes, via ACRA sync — but out of the box it runs on demo data (five demo companies plus a fallback), labelled "Preview mode", because a live registry integration is not connected yet. For your real book, use spreadsheet import.

What if my file has thousands of rows?

Large files (~1,000+ rows) are processed in chunks so nothing times out, with exact counts and no double-creation. Still split anything over ~2,000 rows into separate files per import.

This is a product guide for CorpSec AI. Where a feature runs on demo data or is not yet released, it is labelled as such. Compliance references are general information for Singapore corporate service providers, not legal advice.

Was this helpful?