---
id: SCR-PFM-DJE-007
title: Bulk delete dialog
route: Dialog over a record list (Delete)
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
purpose: >-
  Preview a selection’s deletion and require the returned confirmation phrase
  before approval.
supports:
  - JNY-PFM-DJE-003
  - CAP-PFM-DJE-007
  - CAP-PFM-DJE-009
  - CAP-PFM-DJE-010
permission: >-
  the hosting list checks the record kind's bulk key; the service separately
  checks action permissions
entry_from:
  - SCR-PFM-DJE-005
exits_to:
  - SCR-PFM-DJE-004 (Open job)
  - The list it was opened from
displays:
  - field: Deletable and blocked record counts with eligibility explanations
    source: DOM-PFM-DJE-001 impact; getContactDataJob
  - field: 'Owned rows that go with them, by collection'
    source: DOM-PFM-DJE-001 impact (deletions by collection)
  - field: Counted deletion confirmation phrase
    source: DOM-PFM-DJE-001 typed confirmation phrase
  - field: 'Results (deleted, conflicts, refused)'
    source: DOM-PFM-DJE-001 counters
actions:
  - label: Validate (on opening)
    operation_id: submitContactDataJob
    permission: >-
      record kind bulk key (console gate); action authorization is enforced by
      the service
    confirm: false
  - label: Apply (Delete)
    operation_id: applyContactDataJob
    permission: >-
      record kind bulk key (console gate); action authorization is enforced by
      the service
    confirm: true
  - label: Open job
    operation_id: 'none: opens SCR-PFM-DJE-004'
    permission: data.jobs.view
    confirm: false
states:
  - loading
  - error
  - read-only
validation:
  - BR-CAP-PFM-DJE-007-01
  - BR-CAP-PFM-DJE-007-02
  - BR-CAP-PFM-DJE-007-03
  - BR-CAP-PFM-DJE-007-04
  - BR-CAP-PFM-DJE-007-05
  - BR-CAP-PFM-DJE-007-10
  - BR-CAP-PFM-DJE-009-10
  - BR-CAP-PFM-DJE-010-01
  - BR-CAP-PFM-DJE-010-03
  - BR-CAP-PFM-DJE-010-07
patterns:
  - Shared dialog header band
  - Counted-delete phrase input matching the wizard confirmation
  - Run panels reused with the field-update dialog
component: components/data-management/data-jobs/dialogs/delete-dialog.tsx
evidence:
  - >-
    react-console at baf6dae3:
    components/data-management/data-jobs/dialogs/delete-dialog.tsx,
    dialog-parts.tsx, use-dialog-run.ts;
    components/data-management/data-jobs/new/confirm-apply-dialog.tsx;
    lib/api/data-jobs/dialogs.ts;
    acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0105.spec.ts,
    DJE-ACC-0106.spec.ts.
controls: [TC-AVL-005, TC-AZ-001, TC-AZ-002, TC-AZ-003, TC-AZ-004, 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-IAM-001, TC-IAM-002, TC-IAM-004, TC-IAM-005, TC-IAM-006, TC-LOG-002, TC-LOG-003, TC-LOG-004, TC-LOG-005, TC-MON-002, TC-PI-001, TC-PI-003, TC-PI-005, TC-PRV-001, TC-PRV-002, TC-TEN-001, TC-TEN-002, TC-TEN-003, TC-VEN-001, TC-VEN-002, TC-VEN-003]
---

# Bulk Delete Dialog

## Purpose and Behavior

Opening the dialog starts validation. The preview shows deletable and blocked records, blocking reasons, usage counts and owned rows affected. The confirmation phrase counts only deletable records. Apply requires an exact phrase match and a nonempty deletable selection. Results distinguish deletions, conflicts and refusals. Configuration lists retain blocked selections after completion.

## States and Refusals

Validation and application have loading panels and service refusal messages. A wrong phrase or invalid approval is refused before application is scheduled. Records may still become conflicts when execution rechecks their versions or eligibility.

## Console Patterns

The dialog uses the shared header band, confirmation field and run panels. The wizard’s delete confirmation follows the same interaction.
