Inbound Lead Contract Normalizer
Scenario
Use at the intake boundary for website forms, ad forms, email exports, or CRM imports whose field names and text formats vary.
Input and output
Input is redacted JSON with name, email, phone reference, company, need text, budget, timeline, source, and role. Output contains canonical fields, safe references, a deterministic lead key, validation findings, and a contract hash.
Execution and recovery
Run python scripts/normalize.py examples/input.json. Missing contact or need fields return a visible error. Correct the redacted input and rerun; this skill never contacts a lead or writes to a CRM.
Privacy boundary and acceptance
Use placeholders instead of real contact data. Acceptance requires a stable lead key, normalized need text, validation status, and repeatable contract hash.