Stop CRM writes when a check returns warnings
Check every row of a lead file before your agent writes it to the CRM.
This owned synthetic example runs on quality-1.0.0. The observed outcome is continue_with_warnings; the engine evaluated 3 records.
Synthetic input
lead_id,email,status
001,synthetic@example.invalid,new
002,fixture@example.invalid,qualified
003,review@example.invalid,unknown
Explicit rules
Review field meanings, null semantics, numeric locale and actions for your own destination. Save and approve the exact contract version before hosted execution.
{
"schema_version": "1.0",
"fields": {
"lead_id": {
"type": "identifier"
},
"email": {
"type": "string"
},
"status": {
"type": "string"
}
},
"nulls": {
"empty_string": true,
"whitespace_string": false
},
"rules": [
{
"id": "required-id",
"type": "not_null",
"column": "lead_id",
"action": "block"
},
{
"id": "unique-id",
"type": "unique",
"column": "lead_id",
"action": "block",
"null_policy": "fail"
},
{
"id": "nonempty-file",
"type": "row_count",
"min": 1,
"action": "block"
},
{
"id": "required-email",
"type": "not_null",
"column": "email",
"action": "block"
},
{
"id": "lead-status",
"type": "accepted_values",
"column": "status",
"values": [
"new",
"qualified"
],
"null_policy": "fail",
"action": "warn"
}
]
}
Observed report
{
"product": "data-quality-gate",
"schema_version": "1.0",
"engine_version": "quality-1.0.0",
"verdict": "continue_with_warnings",
"full_file_validation": true,
"record_count": 3,
"input_fingerprint": "b9930a0febbfa46e6a2160322143332f2a4c1704e8a1a9946f6a07b4d414cae5",
"structure": {
"fields": [
"email",
"lead_id",
"status"
],
"fingerprint": "21445a451bd32d3116c934ef19a74504bda4062c87451fe83d0733ad0e7d713c"
},
"contract_hash": "6fc621ff03d9fc70ea47ecfa0040c95c618fdf615f3be482437e8d74fb635aad",
"evaluated_rule_ids": [
"required-id",
"unique-id",
"nonempty-file",
"required-email",
"lead-status"
],
"failure_counts": {
"required-id": 0,
"unique-id": 0,
"nonempty-file": 0,
"required-email": 0,
"lead-status": 1
},
"findings": [
{
"rule_id": "lead-status",
"type": "accepted_values",
"action": "warn",
"failure_count": 1,
"row_references": [
3
],
"references_truncated": false
}
],
"coverage": {
"complete_file": true,
"records_evaluated": 3,
"fields_checked": [
"email",
"lead_id",
"status"
],
"fields_unchecked": [],
"rules_evaluated": 5,
"field_counts": {
"lead_id": {
"missing": 0,
"null": 0,
"invalid_type": 0
},
"email": {
"missing": 0,
"null": 0,
"invalid_type": 0
},
"status": {
"missing": 0,
"null": 0,
"invalid_type": 0
}
},
"business_meanings": "operator-approved; not independently verified"
},
"privacy": "counts and bounded 1-based record references; no raw values"
}
Reproduce locally
From this project's source checkout after installing its Python package:
python -m mcp_products.quality.editorial --scenario lead-warning-review --output .mcp-products/tutorial/lead-warning-review
This regenerates the full synthetic input, contract, optional baseline and observed report. It makes no network request, creates no account and consumes no checks. Download the same complete files from this guide's links.
Connect your workflow
Verify email, create an API key, inspect the example, approve your contract, then run a trial check. Use the integration guide and inactive n8n recipes before enabling a destination. Only continue permits a write by default. Warnings, blocks, errors and timeouts stop for review. Forward the exact checked original bytes after matching their SHA256 to the receipt; the report is not the dataset.
Try five checks free once per verified organization, then buy 100 checks for $20 plus applicable tax. A supported completed block or warning uses one check. Unsupported or incomplete evaluations, platform failures and duplicate retries do not. No quality subscription or automatic replenishment. Quality credits are separate from supplier-feed credits.
Bounds: UTF-8 flat CSV/JSONL, 10 MiB, 50,000 records, 100 fields. Originals expire after 24 hours, reports after seven days, operational receipts after 30 days. No repair, remapping or independent business-meaning verification. Synthetic behavior does not establish customer ROI, customer adoption or superiority over other tools.