p202 ltv customer erase

Erase a customer's personal data (GDPR-style): CRM fields, aliases and field values go, revenue history stays

New in 1.9.77Writescannot be staged
All commands

01Run it

Straight from the command's own help.

p202 ltv customer erase 42 --dry-run
p202 ltv customer erase 42 --force

02What you get

Pick the shape you need. People get a table. Add --json, --csv or --ndjson for scripts, or -q for ids only. An AI agent gets compact JSON without asking. All output formats

03Build your command

Pick values and the command line writes itself, quoted and ready to paste.

p202 ltv customer erase

Set flags below; the command updates as you type.

04Flags

3 flags, plus the global flags every command takes.

FlagWhat it does
--dry-runboolPreview what the delete would remove (record + cascade counts) without deleting
--force, -fboolSkip confirmation prompt
--idsstringComma-separated customer IDs to delete in bulk

05How it works

Anonymizes the customer: name, email, phone, company, address, aliases (and their identity-graph signals), custom field values and personalization tokens are removed, the reference becomes erased:<id> and the status anonymized. The customer row and its revenue events and subscriptions are kept, so LTV totals do not change. Not reversible: it asks first (--force skips the question), and --dry-run shows what would be removed and what kept.

p202 ltv customer erase 42 --dry-run
p202 ltv customer erase 42 --force

06For agents

Running this from an agent

  • Read the same facts as JSON: p202 commands ltv customer erase --json.
  • With AI_AGENT, CLAUDECODE or another agent variable set, output is compact JSON and errors arrive on stderr as a JSON envelope with a hint.
  • Exit codes: 0 ok, 1 bad input, 2 auth, 3 network, 4 server error, 5 partial failure.
  • This command writes and cannot be staged: --staged is refused before anything is sent. Have a person run it, or give the agent a key without write scope.
p202 commands ltv customer erase --json
{
  "path": "p202 ltv customer erase",
  "use": "erase <customer-id>",
  "short": "Erase a customer's personal data (GDPR-style): CRM fields, aliases and field values go, revenue history stays",
  "long": "Anonymizes the customer: name, email, phone, company, address, aliases (and their identity-graph\nsignals), custom field values and personalization tokens are removed, the reference becomes\nerased:<id> and the status anonymized. The customer row and its revenue events and subscriptions\nare kept, so LTV totals do not change. Not reversible: it asks first (--force skips the\nquestion), and --dry-run shows what would be removed and what kept.\n\n  p202 ltv customer erase 42 --dry-run\n  p202 ltv customer erase 42 --force",
  "runnable": true,
  "flags": [
    {
      "name": "dry-run",
      "type": "bool",
      "default": "false",
      "usage": "Preview what the delete would remove (record + cascade counts) without deleting",
      "required": false
    },
    {
      "name": "force",
      "shorthand": "f",
      "type": "bool",
      "default": "false",
      "usage": "Skip confirmation prompt",
      "required": false
    },
    {
      "name": "ids",
      "type": "string",
      "default": "",
      "usage": "Comma-separated customer IDs to delete in bulk",
      "required": false
    }
  ]
}