---
id: JNY-PFM-DJE-001
title: 'Import contact input, inspect refusals and submit corrections'
feature: FEAT-PFM-DJE-04
product_area: platform
module: data-job-engine
revision: 1
status: draft
product_intent: confirmed
implementation_evidence: partially-observed
supersedes:
  - DJE-ACC-0050
  - CRM-ACC-0640
  - CRM-ACC-0641
  - CRM-ACC-0642
source_sha:
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
actor: ACT-PFM-035
goal: >-
  Load new-member input, investigate refused rows and submit corrected records with accountable job
  links.
capabilities:
  - CAP-PFM-DJE-012
  - CAP-PFM-DJE-011
  - CAP-PFM-DJE-013
  - CAP-PFM-DJE-014
  - CAP-PFM-DJE-005
  - CAP-PFM-DJE-003
screens:
  - '/console/{tenantId}/dataManagement/dataJobs/new'
  - '/console/{tenantId}/dataManagement/dataJobs'
  - '/console/{tenantId}/dataManagement/dataJobs/{jobId}'
steps:
  - 'n': 1
    surface: '/console/{tenantId}/dataManagement/dataJobs/new'
    action: Choose Contacts and Import New; the recorded application-first chooser remains planned.
    capability: CAP-PFM-DJE-012
    expected: The intended chooser groups record types by application.
    provenance: documented
    source: 'services-platform:docs/milestones/PLAT-M19-data-job-engine-foundations.md#R2'
  - 'n': 2
    surface: 'openDataJobUpload, presignDataJobUploadParts, completeDataJobUpload'
    action: Provide the CSV for multipart upload.
    capability: CAP-PFM-DJE-011
    expected: The completed session records size and any supplied digest evidence.
    provenance: test
    source: 'react-console:acceptance/crm/playwright/journeys/data-operations/CRM-ACC-0641.spec.ts#CRM-ACC-0641'
  - 'n': 3
    surface: listContactDataJobMappingTargets
    action: Assign source columns to the offered phone and address targets.
    capability: CAP-PFM-DJE-013
    expected: Mapping uses the configured workspace targets.
    provenance: documented
    source: 'services-platform:docs/milestones/plans/PLAT-M21-plan.md#10. Walkthrough preview'
  - 'n': 4
    surface: submitContactDataJob
    action: Submit the file after reviewing the direct-application notice.
    capability: CAP-PFM-DJE-014
    expected: The CRM file job enters bulk processing.
    provenance: observed
    source: 'react-console:components/data-management/data-jobs/new/step-validate.tsx'
  - 'n': 5
    surface: '/console/{tenantId}/dataManagement/dataJobs/{jobId}'
    action: Follow the job’s detail through processing.
    capability: CAP-PFM-DJE-005
    expected: The fixture settles with successful records and individual refusals.
    provenance: test
    source: >-
      react-console:acceptance/data-jobs/playwright/journeys/cross-application/DJE-ACC-0050.spec.ts#DJE-ACC-0050
  - 'n': 6
    surface: '/console/{tenantId}/dataManagement/dataJobs/{jobId}'
    action: Inspect refused rows in the Rejections tab.
    capability: CAP-PFM-DJE-003
    expected: 'Refusal information identifies row, code and field without quoting input values.'
    provenance: test
    source: >-
      react-console:acceptance/data-jobs/playwright/journeys/cross-application/DJE-ACC-0050.spec.ts#DJE-ACC-0050
  - 'n': 7
    surface: submitContactDataJob
    action: Upload repaired input linked to the earlier job.
    capability: CAP-PFM-DJE-012
    expected: Eligible corrected records apply and job details identify the correction relationship.
    provenance: test
    source: 'react-console:acceptance/crm/playwright/journeys/data-operations/CRM-ACC-0642.spec.ts#CRM-ACC-0642'
  - 'n': 8
    surface: '/console/{tenantId}/crm/contacts/{id}'
    action: Inspect Version History for a created contact.
    capability: CAP-PFM-DJE-005
    expected: Its creation revision identifies the responsible job.
    provenance: test
    source: >-
      react-console:acceptance/data-jobs/playwright/journeys/cross-application/DJE-ACC-0050.spec.ts#DJE-ACC-0050
alternates:
  - from_step: 4
    condition: The parsed input produces a high refusal rate.
    path: Inspect the guard-paused job and correct its input.
    outcome: The administrator can cancel unsuitable work before another submission.
    provenance: test
    source: 'react-console:acceptance/crm/playwright/journeys/data-operations/CRM-ACC-0679.spec.ts#CRM-ACC-0679'
failures:
  - from_step: 2
    condition: Assembly fails the size check or a supported digest check.
    path: Completion aborts the upload session and returns its refusal.
    outcome: The aborted upload cannot supply a job’s input.
    provenance: test
    source: >-
      services-platform:modules/data-jobs/tests/integration/services/uploads/upload-sessions.integration.spec.js#aborts
      the session after refusing it for its size, so no client is left holding the wrong file open
rules_in_play:
  - BR-CAP-PFM-DJE-011-05
  - BR-CAP-PFM-DJE-011-06
  - BR-CAP-PFM-DJE-013-01
  - BR-CAP-PFM-DJE-013-04
  - BR-CAP-PFM-DJE-014-04
  - BR-CAP-PFM-DJE-003-02
  - BR-CAP-PFM-DJE-003-04
  - BR-CAP-PFM-DJE-012-01
  - BR-CAP-PFM-DJE-005-05
assertions:
  - id: AS-JNY-PFM-DJE-001-01
    statement: Job list and detail reflect the fixture’s service outcome totals.
    provenance: test
    source: >-
      react-console:acceptance/data-jobs/playwright/journeys/cross-application/DJE-ACC-0050.spec.ts#DJE-ACC-0050
  - id: AS-JNY-PFM-DJE-001-02
    statement: Refusal display identifies input position and field without disclosing supplied values.
    provenance: test
    source: >-
      react-console:acceptance/data-jobs/playwright/journeys/cross-application/DJE-ACC-0050.spec.ts#DJE-ACC-0050
  - id: AS-JNY-PFM-DJE-001-03
    statement: >-
      Imported records identify their creating job in history; corrected input is linked through the
      correction jobs.
    provenance: documented
    source: 'services-crm:docs/data-jobs.md#The bulk lane'
e2e_policy: required
e2e_reason: >-
  Browser coverage is required because the intended flow joins upload, mapping, job outcomes and record
  history; the cited suites cover parts of that flow rather than one complete current wizard run.
evidence: []
proved_by: []
---

# Import contact input, inspect refusals and submit corrections

## Story

A data administrator prepares contact input for a new-member load. They use file import and spreadsheet mapping to submit the request, then follow its recorded job. Refusal inspection helps them identify input to repair. They submit the repaired rows as correcting work and inspect a created contact’s history. The application-first chooser belongs to the recorded follow-up plan, so this journey distinguishes that intended entry from the tested API-to-console path.
