Browse help topics
Bulk import participants
Bring many participants in at once from a spreadsheet, linked to their contacts, plan and budgets.
Last updated · 3 July 2026
Setting up more than a handful of participants one at a time is slow. Import brings many in at once from a single spreadsheet: their core details, contacts, NDIS plan and plan budgets, all linked together and checked before anything is saved.
Open Import
Go to Participants and select Import at the top right, just to the left of Add participant. The dialog opens, titled Import participants.
1 2 3 Note
Import is available when your role can create participants, the same permission Add participant needs. If your role can’t, neither button appears on the page.
Download the template and fill it in
Select Download template to get participants-import.xlsx. It has four sheets: Participants,
Contacts, NDIS plans and Plan budgets. Fill in the Participants sheet first, then add rows
to the other sheets for the participants you want them for. See The four
sheets below for the full field list of each one, and how the Ref column links
them together.
- Required columns carry a trailing * in the header.
- Enum columns (like Gender or Funding management) are real Excel dropdowns; date columns are formatted DD/MM/YYYY.
- Hover over a column header for notes on its format and rules, for example “8 to 11 digits” on NDIS number.
- Two grey, italicised EXAMPLE rows sit under each header, already filled in as a worked example. Leave them, delete them, or type over them: the import skips any row whose first cell starts with “EXAMPLE”, so an untouched template can never import sample data by accident.
- Columns are matched by their header text, not by position, so you can delete columns you don’t need, as long as every required header is still there and reads the same. If you reorder columns, keep Ref (or Participant ref on the other sheets) as the first column: it’s what the importer checks to recognise and skip the EXAMPLE rows.
Upload your file
Back in the dialog, select Browse and choose your filled-in file. Uploading starts checking it immediately: while it runs, the file control is disabled. When it finishes, you land on either an issues list or a ready summary.
If the file is over 5 MB, you’ll see “That file is over the 5 MB import limit.” and the file is cleared. If it can’t be read as a workbook (wrong format, corrupted, or not really .xlsx/.csv), you’ll see “Could not read that file. Save it as .xlsx or .csv and try again.”
Note
A .csv file only carries the Participants sheet: a CSV has no way to hold four sheets. Use .xlsx if you also want to import contacts, plans or budgets in the same run.
Fix issues, or import
-
Issues found: you’ll see “1 issue must be fixed before importing.” or “N issues must be fixed before importing.”, with a scrollable list, each line starting with Row N (or File for a file-level problem) and the message. Select Download issue report for a CSV with a Sheet, Row, Column and Problem column for every issue. Fix your file and select Browse again to re-run the checks; there is no partial re-check.
-
Ready to import: you’ll see “Ready to import.” with a row count per sheet, for example “Participants: 24 rows” and “Contacts: 9 rows”, plus a reminder that the import is all-or-nothing: if anything fails, no rows are saved.
Select Import. It stays disabled until every issue is cleared and the Participants sheet has at least one row.
See the result
Once the import runs, the dialog shows “Import complete.” with a created count per sheet, for example “Participants: 24 created” and “NDIS plans: 22 created” (sheets with no rows are left off the list). The participants list refreshes in the background as soon as this happens, so the new participants are already there when you close the dialog. Select Close to finish.
If the import itself fails (for example a database problem after the checks already passed), nothing is saved and you’ll see an error describing what went wrong. Fix it and upload again.
Note
Unlike creating a participant one at a time, an import does not write Audit Trail entries for the rows it creates. The audit trail picks up from whatever you change on the profile afterwards.
The four sheets
The Ref column on the Participants sheet is a short id you make up (for example P1) for each row.
The other three sheets use a Participant ref column to point back at it, which is how OneForce Care
knows which contact, plan or budget belongs to which participant.
| Sheet | Required | Linked by |
|---|---|---|
| Participants | Yes, at least one row | Ref (must be unique within the file; the other sheets point at it) |
| Contacts | No | Participant ref must match a Ref on Participants |
| NDIS plans | No | Participant ref must match a Ref on Participants; at most one plan row per participant |
| Plan budgets | No | Participant ref must match a Ref on Participants with an NDIS plan row |
Watch out
A Plan budgets row needs its participant to have exactly one row on the NDIS plans sheet in the same import. If that plan row is missing, or there is more than one for that participant, the budget row is rejected: “Participant ”…” needs exactly one row on the NDIS plans tab to attach budgets to.”
Participants
| Column | Required | Notes |
|---|---|---|
| Ref | Yes | Any short unique id, e.g. P1 |
| First name | Yes | |
| Middle name | No | |
| Last name | Yes | |
| Date of birth | No | DD/MM/YYYY |
| Gender | No | Male, Female or Prefer not to say |
| Pronouns | No | Select from list |
| Ethnicity | No | Select from list |
| Primary language | No | Select from list |
| Primary diagnosis | No | Free text |
| Yes | Must be unique within the file, and not already used by another participant for your provider | |
| Phone | Yes | Australian format, e.g. 04XX XXX XXX or 0X XXXX XXXX |
| NDIS number | Yes | 8 to 11 digits. Must be unique within the file, and not already used by another participant for your provider |
| Medicare number | No | 10 or 11 digits |
| Centrelink number | No | 9 digits followed by a letter, e.g. 123 456 789A |
| Address line | Yes | |
| Suburb | No | |
| State | Yes | NSW, VIC, QLD, WA, SA, TAS, NT or ACT |
| Postcode | Yes | A valid Australian postcode, e.g. 2000 |
Every imported participant starts at status Created, exactly like one added through Add participant. If you also give them a row on the NDIS plans sheet, their status moves straight to Plan set.
Tip
Postcode is required on every participant, on import and on the create form alike: an address without one is treated as incomplete.
Contacts
| Column | Required | Notes |
|---|---|---|
| Participant ref | Yes | Must match a Ref on the Participants sheet |
| Contact type | Yes | Nominee, Guardian, Family, Emergency contact, Plan manager, Support coordinator or Clinician |
| First name | Yes | |
| Last name | Yes | |
| Business name | No | |
| Relationship | No | |
| Phone | Yes | Australian format |
| Sometimes | Required for Plan manager, Support coordinator and Clinician contacts | |
| Preferred contact method | No | Phone, Email, SMS, Website or None |
| Address line | No | |
| Suburb | No | |
| State | No | NSW, VIC, QLD, WA, SA, TAS, NT or ACT |
| Postcode | No | Must be a valid Australian postcode if given |
| Acts as plan manager | No | Y when this contact receives and pays invoices for the participant |
| Notes | No |
A Support coordinator row with Acts as plan manager set to Y works the same as ticking it on the Contacts tab: the participant’s Coordinator: unassigned alert clears, and that coordinator becomes available as the plan-manager contact on a service agreement.
NDIS plans
| Column | Required | Notes |
|---|---|---|
| Participant ref | Yes | Must match a Ref on the Participants sheet. One row per participant: it imports as their current plan |
| Plan number | No | Free text; no format check on import |
| Start date | Yes | DD/MM/YYYY |
| End date | Yes | DD/MM/YYYY, on or after Start date |
| Funding management | Yes | Self-managed, Plan-managed, NDIA-managed or Mixed |
| MMM code | No | MM1 (metro) to MM7 (very remote) |
| Notes | No |
Note
This is looser than the NDIS Plan tab in the profile, which requires an 8 to 11 digit plan number. On import, Plan number is plain text with no format check, and MMM code is optional. Tidy either up from the NDIS Plan tab afterwards if you need to.
Plan budgets
| Column | Required | Notes |
|---|---|---|
| Participant ref | Yes | Must match a Ref on the Participants sheet, with a row on the NDIS plans sheet |
| Budget type | Yes | Core, Capacity building, Capital or Recurring |
| Support category number | No | 1 to 99 |
| Support category name | Yes | |
| Allocated amount | Yes | Dollars allocated to this category, e.g. 25000. Must be 0 or more |
| Stated | No | Y when the plan lists this as a stated (fixed) support |
A budget row’s funding management always follows its own plan’s Funding management, the same as adding a budget from the NDIS Plan tab.
Watch out
A Stated budget with no matching support codes on a service agreement has nothing claimable. Bulk import does not add support codes: after importing, open each Stated pool’s service agreement and add them.
Reading the issue list
Most issues name the field and the rule, for example “Postcode is required.”, “State must be one of: NSW, VIC, QLD, WA, SA, TAS, NT, ACT.”, “Allocated amount must be a number.” or “End date must be on or after Start date.” Format checks (email, phone, NDIS number, Medicare, Centrelink, postcode) show the same message you’d see filling in the field by hand, for example “Enter a valid email address.” or “Enter a valid Australian postcode.”
A few issues are file-level rather than row-level, and show against File instead of a row number:
- “The “Participants” sheet is missing.” if the workbook has no sheet by that name.
- “The ”…” sheet is missing the ”…” column.” if a required column’s header was renamed or deleted.
- “The ”…” sheet has more than 500 data rows (limit 500 per import).”
- “Unsupported file type. Upload a .xlsx or .csv file.” if the extension isn’t .xlsx or .csv.
Watch out
Every issue in the file must clear before Import turns on. The import is all-or-nothing, so a single bad row blocks the whole file rather than being skipped or imported partially.
Tip
Only need a handful of participants? Add them one at a time instead; Import is for bringing in a batch.