CSV Import Guide
CSV import guide for cleaning team shifts
CleanConfirm can create shifts from a CSV, so your team can keep its current planning workflow and add confirmation on top.
Prepare before you import
Prepare before you import
Start with the required fields, then add optional job and access details when the cleaner needs more context.
- Use one row per shift, not one row per client.
- Match assigned_member_email to an active team member in the workspace.
- Keep the CSV header in the complete template column order.
Required fields
Required fields and CSV columns
Start with the required fields, then add optional job and access details when the cleaner needs more context.
| CSV column | Requirement |
|---|---|
shift_date | Required |
start_time_local | Required |
end_time_local | Required |
assigned_member_name | Optional |
assigned_member_email | Required |
client_name | Required |
address_full | Required |
city_or_area | Optional |
entry_instructions | Optional |
access_details | Optional |
contact_phone | Optional |
notes | Optional |
How CSV import works
How CSV import works
- 01Open the CSV import page and download the blank or sample template.
- 02Fill in one row for each assigned shift and keep the column order unchanged.
- 03Upload the CSV and choose whether imported staff should receive email notifications.
- 04Confirm the import. CleanConfirm creates valid shifts, skips invalid rows, and shows the result for every row.
Before you import again
Before you import again
The upload page accepts CSV files up to 10 MB. Blank and sample templates are available there to eligible owners and admins.
- CSV import creates new shifts; it does not overwrite existing shifts.
- CleanConfirm does not automatically remove duplicate rows.
- Importing the same file again may create duplicate shifts.
- Review the file before submitting it.
- Scheduling conflicts are shown as warnings but do not block import.
- A file can contain up to 300 shift rows.
- Split larger imports into smaller files.
Example CSV row
The example below follows the CSV column order shown above. Replace the sample values with your own shift details.
Scroll horizontally to view the complete CSV row.
2026-05-04,9:00 AM,11:00 AM,maria@example.com,Maple Street home,123 Maple Street,North Park,Gate code 204,Use side entrance,+1 555 0100,Bring extra towelsWhat happens after import
What happens after a CSV import?
Each import result shows the outcome for every CSV row after the import is confirmed.
Valid rows
Valid rows create new unconfirmed shifts.
Invalid rows
Rows with missing required fields, invalid dates or times, or an unknown staff email are skipped and shown as Failed.
Conflict warnings
A shift with a detected scheduling conflict is still imported and shown as a Warning.
Email notifications
Imports are silent by default. If an owner or admin chooses email notifications and confirms the choice, emails are sent after valid shifts are created.
Example import result
Illustrative result based on the current CSV import statuses
| Row | Status | Reason |
|---|---|---|
| 2 | Imported | Imported |
| 3 | Warning | Conflict Warning |
| 4 | Failed | Staff email not found |
Result summary
The import result shows total rows, imported rows, warning rows, failed rows, and for every row its number, assigned staff email, shift date and time, client name, status, and reason.
Sign in required. CSV import is available to workspace owners and admins.