---
id: SCR-PFM-DJE-003
title: New data job wizard
route: '/console/{tenantId}/dataManagement/dataJobs/new'
surface: console
product_area: platform
module: data-job-engine
revision: 1
status: draft
design_intent: proposed
implementation_evidence: observed
inference: []
source_sha:
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
purpose: 'Build a file or selection job, submit it and open its detail.'
supports:
  - JNY-PFM-DJE-001
  - JNY-PFM-DJE-002
  - CAP-PFM-DJE-001
  - CAP-PFM-DJE-002
  - CAP-PFM-DJE-011
  - CAP-PFM-DJE-012
  - CAP-PFM-DJE-013
  - CAP-PFM-DJE-014
permission: >-
  data.jobs.submit (any CRM bulk key); submission authorization remains
  record-kind specific
entry_from:
  - SCR-PFM-DJE-002 (New Data Job)
  - SCR-PFM-DJE-005 (large selections and organization updates)
exits_to:
  - SCR-PFM-DJE-004
  - SCR-PFM-DJE-002
  - The list the selection came from
displays:
  - field: Record kinds and operations offered
    source: >-
      react-console:lib/api/data-jobs/capabilities.ts:dataJobSubmittableObjectTypes
  - field: File preview (first rows)
    source: 'the chosen file, read in the browser'
  - field: Mapping targets with the workspace's detail type names
    source: >-
      react-console:components/data-management/data-jobs/new/new-data-job-wizard.tsx:useObjectDescription;
      react-console:components/data-management/data-jobs/new/new-data-job-wizard.tsx:useAffiliationConfiguration;
      react-console:lib/api/data-jobs/fields.ts:mappingTargetsFor
  - field: Upload progress
    source: DOM-PFM-DJE-003 session and parts
  - field: Impact preview (interactive jobs)
    source: DOM-PFM-DJE-001 impact; getContactDataJob
  - field: Typed delete phrase
    source: DOM-PFM-DJE-001 impact (delete)
actions:
  - label: Upload the file
    operation_id: openDataJobUpload
    permission: platform.data-jobs.upload
    confirm: false
  - label: 'Upload parts (sign, send, complete)'
    operation_id: completeDataJobUpload
    permission: platform.data-jobs.upload
    confirm: false
  - label: Validate
    operation_id: submitContactDataJob
    permission: data.jobs.submit
    confirm: false
  - label: Apply
    operation_id: applyContactDataJob
    permission: data.jobs.submit
    confirm: true
  - label: Submit file job
    operation_id: submitOrganizationDataJob
    permission: data.jobs.submit
    confirm: true
states:
  - empty
  - loading
  - error
  - read-only
validation:
  - BR-CAP-PFM-DJE-001-02
  - BR-CAP-PFM-DJE-001-03
  - BR-CAP-PFM-DJE-002-06
  - BR-CAP-PFM-DJE-011-02
  - BR-CAP-PFM-DJE-013-04
  - BR-CAP-PFM-DJE-013-09
  - BR-CAP-PFM-DJE-014-02
patterns:
  - 'Standard page stepper for operation, input, mapping, checking and approval'
  - Drop-zone input and upload progress
  - Mapping editor with shared field controls
  - Impact panel and shared counted-deletion confirmation
component: components/data-management/data-jobs/new/new-data-job-wizard.tsx
evidence:
  - >-
    react-console at baf6dae3:
    app/(console)/console/[tenantId]/dataManagement/dataJobs/new/page.tsx;
    components/data-management/data-jobs/new/**; lib/api/data-jobs/wizard.ts,
    capabilities.ts, mapping.ts, collection-targets.ts, selection.ts,
    source-file.ts, uploads.ts, multipart.ts, handoff.ts.
  - >-
    react-console:lib/api/data-jobs/fields.ts; lib/authz/backend-aliases.ts;
    components/data-management/data-jobs/new/step-what.tsx
controls: [TC-AVL-001, TC-AVL-004, TC-AVL-005, TC-AZ-001, TC-AZ-002, TC-AZ-003, TC-AZ-004, TC-CHG-001, TC-CHG-002, TC-CHG-003, TC-CHG-004, TC-CHG-005, TC-CHG-006, TC-CHG-007, TC-CRY-001, TC-CRY-002, TC-CRY-003, TC-CRY-004, TC-DAT-001, TC-DAT-002, TC-DAT-003, TC-DAT-004, TC-DAT-005, TC-DAT-006, TC-IAM-001, TC-IAM-002, TC-IAM-004, TC-IAM-005, TC-IAM-006, TC-LOG-001, TC-LOG-004, TC-LOG-005, TC-MON-001, TC-PI-001, TC-PI-002, TC-PI-003, TC-PI-004, TC-PI-005, TC-PRV-001, TC-PRV-002, TC-PRV-004, TC-TEN-001, TC-TEN-002, TC-TEN-003, TC-TEN-004, TC-VEN-001, TC-VEN-002, TC-VEN-003]
---

# New Data Job Wizard

## Purpose and Behavior

The steps select the record category and operation, choose a file or handed-over selection, map the input, validate or upload, and submit or apply. Available categories come from the console registry rather than a permission-filtered list. Mapping targets are derived from object descriptions and configured detail types. File previews are read locally. Small interactive submissions obtain an impact preview; file submissions upload their source and start background processing without the interactive approval preview. Delete approval uses the returned confirmation phrase.

## States and Refusals

The wizard reports unreadable input, invalid mappings, upload failures and service refusals. It shows progress during upload and submission. The broad page permission does not guarantee authorization for the selected category or for uploading. Submitted work opens in the job detail.

## Console Patterns

The implementation combines the shared stepper, source-file controls, mapping editor, impact summary and confirmation dialog. Selection handoff reuses the list’s collected identifiers.
