What it does
CRM Hygiene Agent cleans and enriches CRM records — deduplication, format normalization (phone/email/casing), missing-field detection, and invalid-value flagging — and returns them as approval-gated, draft-only proposals. It is built connector-free (you pass records in as data; there is no live CRM API and no credentials) and draft-only: the apply step is a refusing stub behind human confirmation, and the agent NEVER writes to a CRM. The hygiene analysis is fully deterministic and code-derived: it detects duplicates, normalizes formats, and flags missing/invalid values, tagging each proposed change high or low confidence. An LLM is used ONLY to summarize the proposal and suggest grounded enrichment (low-confidence flagged, never fabricated), with a deterministic template fallback when no model is available. Guardrails: every field value is sanitized (prompt-injection defang) and treated as data, never instructions; changes are grounded in the provided fields and never fabricated; and apply_changes refuses to write — even with confirmed:true it only returns a would-apply plan. Tools: - run_full — full pipeline: sanitize, analyze (dedupe/normalize/missing/invalid), draft cleanup + enrichment proposals, LLM summary. Returns a DRAFT proposal with requiresConfirmation:true. - analyze_records — deterministic analysis only (no LLM): findings + draft proposedChanges. - apply_changes — refusing stub: never writes; returns confirmation-required / would-apply plan. - list_capabilities — static capabilities, expected fields, and the draft-only/no-write guarantees. - plan_inputs — interview helper returning questions, JSON schema, and a ready-to-edit example for a tool. Provide records as [{ id, type?, fields: {k:v} }]. Array/object arguments may be passed as JSON or a JSON string. Missing required inputs return a structured needs_input payload (questions + schema + example) instead of erroring, and upgrade to a native elicitation form on clients that support it.
Example prompts
- Run run_full on these CRM contacts and propose dedupe/normalize cleanups with confidence tags.
- Run analyze_records on this batch — no LLM, just the deterministic findings and proposed changes.
- I have these proposed changes — call apply_changes (confirmed:false) and show me the confirmation-required plan.
- Normalize the email casing and phone formats in these records and flag anything invalid for human review.
- Use plan_inputs for run_full and show me the questions, schema, and a ready-to-edit example.
Tools (5)
Tools the agent exposes — your AI client calls them automatically when it needs them.
- run_full — Run the full hygiene pipeline on caller-provided CRM records: sanitize, analyze (dedupe, normalize, missing/invalid), draft cleanup+enrichment proposals, and an LLM summary (template fallback). Returns a DRAFT proposal with requiresConfirmation:true. Never writes to a CRM.
- analyze_records — Run only the pure deterministic analysis (no LLM) over caller-provided records: returns findings + draft proposedChanges.
- apply_changes — STUB (draft-only): does NOT write to any CRM. Without confirmed:true it refuses and echoes the change set as confirmation-required; even with confirmed:true it only returns a would-apply plan.
- list_capabilities — List the agent's static capabilities: tools, expected record fields, and the draft-only/no-write guarantees.
- plan_inputs — Plan/brainstorm the inputs for a tool: returns the questions, schema and a ready-to-edit example.
What you'll need to connect
This agent will ask you for the following. You enter them when you connect — they're encrypted and never shared with the creator.
- Anthropic API Key · optionalOptional. Enables the LLM proposal summary and grounded enrichment suggestions via Anthropic. Without a key (and no host sampling) the agent falls back to a deterministic template. The findings and proposed changes are always deterministic.Create a key on the Anthropic Console API keys page (console.anthropic.com → API keys).Paste the value as a single line.Only sent to: api.anthropic.com
- OpenAI API Key · optionalOptional. Enables the LLM proposal summary via OpenAI instead of Anthropic.Create a secret key on the OpenAI API keys page (platform.openai.com → API keys).Paste the value as a single line.Only sent to: api.openai.com
How you're protected
FindAgent runs these safety checks on every agent automatically. They're always on and can't be turned off.
- Prompt-injection scanning
Every request is checked for known prompt-injection and jailbreak attempts before the agent runs. This is always on.
- Secret-leak scanning
Every response is scanned for leaked API keys, tokens, and other secrets before it reaches you. This is always on.