Dashboard
Pre-load QC
Parse + validate a spreadsheet WITHOUT writing to the database. Review the rows, fix any flagged issues, then commit the ones you want. Red rows are blocked from commit by default.
Edit row
Upload campaign file
Send a Format A / B / C spreadsheet to POST /api/campaigns/upload. Format is auto-detected. Returns a ZIP of 3 CSVs (one per ViciDial list 1102/1103/1104) plus a summary.json.
Result
Process & push to ViciDial
Runs CH lookups for any record lacking ch_canonical_name, then pushes the upload's list_assignments to ViciDial via add_lead. Returns the new vicidial_lead_ids.
Companies House review queue
Records with ch_review_status='unverified'. Click a row to look up + verify.
Bulk Companies House verification
Loops through every ch_review_status='unverified' record, looks each up at Companies House, auto-accepts strong matches, and pauses on weaker ones for your decision. On rate-limit (600 requests / 5 min), the loop pauses automatically with a countdown. Verified records also get their canonical name + reg pushed to ViciDial (f1 / f2).
…
Recent activity
All records
Deletions audit
QC — upload data integrity
Verifies every record in an upload across three sources: spreadsheet → DB → ViciDial. Reports which records (and which fields) failed the 3-way compare.