Skip to main content

Export Customer Data with Layout

Allow Growth/Enterprise users to export contacts (manual selection or filter-based) to XLSX with configurable field selection. Async pipeline via gocraft/work; OSS storage (private/exports/); email delivery via SendEmailWithAttachment.

Scope Changes

Engineering surfaces this initiative touches (controlled vocab: Backend · Frontend · Mobile · Infra · Data · Design · Docs · None). Aggregate of this initiative's PRDs; mirrors the scope_changes frontmatter above.

  • Backendcontact-service: net-new async export pipeline (route → handler → gocraft/work job → consumer → service); GenerateAndUploadExcelWithData() (XLSX) and a CSV serializer (encoding/csv, stdlib) behind the format branch; OSS storage (private/exports/, 48h TTL); 3 export email methods; a net-new in-app notification publish to the Qontak Unified Notification Service (/notif/v1/notifications); durable export job-status store.
  • Frontendqontak-customer-fe: "Export Selected" button, ExportCustomerPage (fork DownloadTemplateModal.vue), XLSX/CSV format radio, GET→POST refactor for large ID sets; the export-ready in-app notification surfaces via the launchpad host notification center (customer-fe holds only a stub).
  • Mobilemobile-qontak-crm: the export-ready in-app notification renders in the existing One Notification V2 center (General tab, download/upload category) when emitted; tap-through requires click_action=OPEN_URL + click_action_url. Gated by flag_one_notification (OFF by default).
  • Design — Figma for the Export configuration page, the XLSX/CSV format selector, and the email + in-app notification states.

QA Lane

Lane B — keeps a human QA gate. Mobile is in scope (out of automation reach) and the export involves email crosschecking/operations that need manual QA verification. No E2E test specs exist for this initiative yet, so the Lane-A entry bar (100% E2E, spec-mapped coverage) is unmet regardless. Classified 2026-06-29.

Contents

  • prds/ — Product Requirements Documents
  • rfcs/ — Request for Comments
  • tests/ — Test plans
  • delivery/ — Timeline, status updates, decisions