Rules scan accounts and contacts for problems that silently break routing, scoring, outreach and reporting. Each issue carries a suggested fix; applying or ignoring one is written to the audit log with the actor, before and after values.
Duplicates split activity history and cause double outreach.
Without a domain we cannot enrich, match leads, or upsert to the CRM.
Duplicate accounts split pipeline and break routing and attribution.
Malformed or duplicated CRM IDs make sync create or overwrite the wrong record.
Unowned A/B accounts receive no follow-up: direct pipeline leakage.
Sending to invalid addresses hurts deliverability and sender reputation.
Size drives fit scoring, segmentation and routing.
Two confident sources contradict each other, so the field is a coin flip that scoring, segmentation and routing all depend on. Someone has to decide which one is right.
Contacts without an account can't be routed or scored.
Lifecycle and funnel disagree, so reports double count or miss records.
Stage skips or reversals corrupt conversion and velocity metrics.
Firmographics older than 180 days drift (headcount, funding, stack).
Contacts without an account can't be routed or scored.
| Severity | Issue | Record | Suggested remediation | Actions |
|---|---|---|---|---|
| medium | Alex Olsen (alex.olsen@beacon-intelligence.example) has no account detected 9h ago | Contact alex.olsen@beacon-intelligence.example | Match by email domain to an existing account. |
match_contact_to_account| medium | Ben Schmidt (ben.schmidt@wander-works.example) has no account detected 9h ago | Contact ben.schmidt@wander-works.example | Match by email domain to an existing account. match_contact_to_account |
| medium | Theo Rossi (theo.rossi@palisade-data.example) has no account detected 9h ago | Contact theo.rossi@palisade-data.example | Match by email domain to an existing account. match_contact_to_account |
| medium | Kai Cohen (kai.cohen@atlas-platforms-studio.example) has no account detected 9h ago | Contact kai.cohen@atlas-platforms-studio.example | Match by email domain to an existing account. match_contact_to_account |
| medium | Keisha Zhang (keisha.zhang@meridian-intelligence.example) has no account detected 9h ago | Contact keisha.zhang@meridian-intelligence.example | Match by email domain to an existing account. match_contact_to_account |
| medium | Ian Mehta (ian.mehta@vireo-cloud.example) has no account detected 9h ago | Contact ian.mehta@vireo-cloud.example | Match by email domain to an existing account. match_contact_to_account |
| medium | Kai Silva (kai.silva@onyx-dynamics.example) has no account detected 9h ago | Contact kai.silva@onyx-dynamics.example | Match by email domain to an existing account. match_contact_to_account |
| medium | Gabriel Nakamura (gabriel.nakamura@evergreen-software.example) has no account detected 9h ago | Contact gabriel.nakamura@evergreen-software.example | Match by email domain to an existing account. match_contact_to_account |
| medium | Uma Weber (uma.weber@fern-logic.example) has no account detected 9h ago | Contact uma.weber@fern-logic.example | Match by email domain to an existing account. match_contact_to_account |
| medium | Rafael Torres (rafael.torres@juniper-stack.example) has no account detected 9h ago | Contact rafael.torres@juniper-stack.example | Match by email domain to an existing account. match_contact_to_account |
| medium | Fatima Petrov (fatima.petrov@gmail.com) has no account detected 9h ago | Contact fatima.petrov@gmail.com | Match by email domain to an existing account. match_contact_to_account |
| medium | Yusuf Bose (yusuf.bose@outlook.com) has no account detected 9h ago | Contact yusuf.bose@outlook.com | Match by email domain to an existing account. match_contact_to_account |
| medium | Chen Bose (chen.bose@outlook.com) has no account detected 9h ago | Contact chen.bose@outlook.com | Match by email domain to an existing account. match_contact_to_account |
| medium | Isabel Cohen (isabel.cohen@gmail.com) has no account detected 9h ago | Contact isabel.cohen@gmail.com | Match by email domain to an existing account. match_contact_to_account |
Every fix and ignore is recorded as an audit event (who, when, before → after). Merges re-parent related records rather than deleting history. Issues that need a human, such as a missing website, have no automatic fix.