[E06] Import Participants

Summary

EP-specific bookends of the async import flow. Drives an event organiser through uploading a participants CSV/XLSX and reviewing the per-row reconciliation outcome. The mapping middle steps are shared with E08 via C05.

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

  1. 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).

  2. User clicks Upload — write localStorage.importCaller = 'e06', then POST /api/imports.

  3. Redirect to C05 for column / cell mapping + progress.

  4. C05 redirects back on completion to the summary screen.

  5. 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 Cancelled state.

  • AF-3: Fatal job error → summary renders with error reason + Try again returning to upload.

Acceptance Criteria

  • Use-case page authored.

  • Status design-todo → handoff-ready after 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

POST /api/imports

Create import job from uploaded file + EP options.

GET /api/imports/{uuid}/results

Driving the summary screen.

(delegates to C05 for column / cell / progress)

Shared mapping flow.

Out of Scope

  • The mapping middle steps — C05.

  • Result-import bookends — E08.

  • Membership-import bookends — future delivery.

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 .adoc, then derive the v3 prompt from THIS .adoc after design discussion. Iteration is paired with C05 — design these together since E06 bookends C05.