[E06] Import Participants
Actor & Context
Actor: event organiser, tenant admin.
Frequency: a few times per event (initial import, late additions, corrections).
Precondition: an event exists; user has EVENT_MANAGER+ permission on the tenant.
Entry point: Import participants button on E02 Event Participants; or resume from My imports for a paused job.
Main Flow
-
Upload screen. File picker (CSV/XLSX), EP-specific options:
-
Overwrite vs append.
-
Default category fallback when source row has no category.
-
ID-type column hint (per Bug #471 workaround — set when source CSV omits
IDType).
-
-
User clicks Upload — write
localStorage.importCaller = 'e06', thenPOST /api/imports. -
Redirect to C05 for column / cell mapping + progress.
-
C05 redirects back on completion to the summary screen.
-
Summary screen. Per-row reconciliation:
-
Created / updated counts.
-
Unresolved-person count + drill-down list.
-
FK-mismatch count + drill-down list (e.g. category not found).
-
Link to E02 for follow-up.
-
Alternative Flows
-
AF-1: All rows clean — no mapping steps; C05 jumps straight to PROCESSING then summary.
-
AF-2: Cancel during PROCESSING → summary renders with
Cancelledstate. -
AF-3: Fatal job error → summary renders with error reason +
Try againreturning to upload.
Acceptance Criteria
-
Use-case page authored.
-
Status
design-todo → handoff-readyafter Claude Design pass. -
:design-url:populated. -
Cross-references C05 + E02.
-
EP-specific options round-trip to the server correctly.
-
User can complete a full import end-to-end against the dev environment.
-
Pause + resume works via
My imports.
API Surface
| Call | Purpose |
|---|---|
|
Create import job from uploaded file + EP options. |
|
Driving the summary screen. |
(delegates to C05 for column / cell / progress) |
Shared mapping flow. |
Design Anchors
Notes
Backend deployed to dev; testable end-to-end. ID-type column workaround documented under Bug #471.
|
Active design iteration in progress. See admin-portal Screen Design Prompt Iteration for WIP prompts and open design questions. Next session: read that journal entry + this |