Messy supporter data rarely starts with one dramatic mistake. It grows through duplicate forms, inconsistent field names, imports, and years of well-intentioned work.
AI can help sort that mess, but it shouldn't have an unchecked path into Action Network. The safer system pairs simple rules with AI review and a clear human decision.
1. Define What “Clean” Means
Start with the decisions your team needs to make. A perfect database is not the goal. Useful, trustworthy records are.
Write a short standard for the fields that affect outreach and reporting:
- Which phone number format you accept
- Which state and country abbreviations you use
- How you label chapters, programs, and supporter interests
- When two records count as likely duplicates
- Which fields staff may overwrite
Keep this document beside the workflow. It becomes the source of truth for both code and reviewers.
2. Export a Small, Relevant Set
Don't begin with every person in Action Network. Export one defined group, such as recent event signups or records imported during a campaign.
Include the Action Network person ID with each row. That ID lets you match an approved correction to the right record later. Email alone is not enough because emails can change or appear on duplicate records.
Start with 100 to 500 rows in a CSV or Google Sheet. A small batch makes errors visible before they spread.
The first run should prove the workflow, not clean the entire database.
3. Let Code Handle Exact Rules
Use a script for changes that have one correct answer. This work does not need AI.
A small Node.js or Python script can:
- Trim spaces from names and email addresses
- Convert emails to lowercase
- Standardize state abbreviations
- Normalize phone punctuation
- Flag missing required fields
- Find exact duplicate email addresses
Save the original value, proposed value, and reason in separate columns. Never replace the source export. That audit trail helps reviewers understand each change and roll it back if needed.
4. Use AI Only for Ambiguous Cases
AI becomes useful when a field contains human language. It can suggest a standard interest tag from a free-text response or identify two organization names that may refer to the same group.
Send only the fields needed for that decision. A model matching program interests does not need a supporter's street address, phone number, or full record.
Require structured output with:
- The proposed value
- A short reason
- A confidence level
- A “needs review” flag
Treat every result as a suggestion. AI can miss local context, merge distinct organizations, or sound confident when the source is unclear.
5. Put Approval Where Staff Already Work
Move proposed changes into a shared Google Sheet or a private Slack review queue. Reviewers should see the original value, suggestion, reason, and relevant record ID together.
Use three decisions: approve, reject, or edit. Add a notes field for edge cases that should improve the cleanup rules later.
Assign a named owner and a deadline for each batch. Without that step, review queues become another place where data waits. For sensitive changes, such as merging possible duplicates, require a second reviewer.
6. Write Back Through a Controlled Integration
After approval, send only accepted changes to Action Network through its API. Use a service account with the narrowest access available, and limit each run to a known batch.
The integration should record:
- Action Network person ID
- Fields changed
- Previous and new values
- Reviewer and approval time
- API response
Test the first write with five records. Check them in Action Network before processing the rest. If an API request fails, stop that record and report the error rather than guessing or retrying forever.
Run the workflow on a schedule that matches your data volume. Monthly may be enough. A busy campaign may need a review after each import.
Final Thoughts
Good data cleanup is not an AI prompt. It is a controlled system: exact rules for predictable work, AI for messy language, and people accountable for the final change.
This is the kind of workflow we scope in a discovery sprint—two weeks, fixed price, and you leave with a working slice inside the tools your team already uses.

