A CRM audit checklist that changes what you ship next
How we run a CRM audit in two weeks, what to pull, what to measure, and how to turn the findings into a ranked backlog instead of a slide deck.
Most CRM audits produce a deck and very little else. The findings are usually accurate, the recommendations are sensible, and six months later the programme is still sending the same four emails to the same undifferentiated list.
We run audits differently. The deliverable is not a document, it is a ranked backlog with owners and effort estimates, and the audit is not finished until the first three items sit in a sprint.
Below is the checklist we work through, in the order we work through it. For a mid-sized programme it takes about two weeks, longer if nobody has mapped the data before.
Start with the data layer, not the campaigns
Campaign quality is downstream of data quality, so we never begin with creative. We begin with a sample export of a thousand customer profiles and read it by hand. That hour tells us more than a week in admin screens.
The questions we answer first:
- Which system is the source of truth for customer identity, and what key joins records across systems?
- How many profiles exist, and what share are duplicates or orphaned test records?
- Which attributes update in real time, which update nightly, and which have been static since the last import?
- What behavioural events are tracked, and does the event schema match what the platform actually expects?
- Where is consent stored for each contactable address, and can you produce the timestamp and source on demand?
If two of those answers are vague, stop the audit and fix the answers. Everything downstream is guesswork until you can name the source of truth.
Inventory every message a customer can receive
Build one spreadsheet covering every broadcast, triggered message, transactional template, push notification, SMS and in-app message. One row per message, no exceptions, including the ones marketing does not own.
For each row, record the trigger, the audience definition, the owner, the date it was last edited, the volume in the last ninety days, and the headline performance. Then add a column that nobody enjoys filling in: is this message still true?
We routinely find templates that have been sending for two years, referencing a product tier that no longer exists or a support address nobody monitors. Those are not optimisation problems. They are switch-off decisions, and they can be made in an afternoon.
Check deliverability before you judge performance
A programme with a twelve per cent open rate and an authentication problem does not have a content problem. Judging creative before you have cleared the technical path wastes everyone's time.
Work through this list for every sending domain:
- SPF, DKIM and DMARC records present, aligned, and pointing at the domains you actually send from.
- Transactional, marketing and lifecycle traffic separated by subdomain or stream, so one bad campaign cannot damage receipts.
- Hard bounce and complaint rates tracked by domain group, not just as a single blended figure.
- A written inactivity policy, with a defined window after which you stop mailing a non-opener.
- List growth sources documented, with any purchased, scraped or appended data identified and quarantined.
Pull ninety days of delivery data by mailbox provider. Gmail and Microsoft frequently tell different stories, and a blended average hides both.
Score the programme, then rank the fixes
We score four dimensions from one to five: data readiness, deliverability, lifecycle coverage, and measurement. Every score needs a sentence of evidence attached, so the number is arguable rather than decorative.
Lifecycle coverage is the one that usually exposes the gap. Map your customer stages across the top of a page, then place every message from the inventory underneath its stage.
Acquisition and promotion columns tend to be crowded. Onboarding, reactivation and win-back are often empty.
Then rank the fixes. We use a simple impact against effort grid and cap the resulting backlog at twelve items, because a backlog of forty is a way of choosing nothing. Each item gets a named owner, an estimate in days, and a dependency note.
The cap matters more than the scoring method. An audit that produces twelve ranked, owned, estimated items will change the programme. One that produces a hundred observations will not.
Make the audit repeatable
Write down what you pulled, where you pulled it from, and which queries you ran. Six months later, someone will want to know whether things improved, and the answer is only credible if the second audit uses the same method.
We keep the audit workbook in the client's own environment rather than ours. If the checklist only works when an agency runs it, it is a dependency rather than a capability, and that is the wrong outcome. The same principle shapes how we approach CRM strategy engagements generally.
Set a calendar reminder for two quarters out. Re-score the four dimensions, compare, and rebuild the backlog from what you find.
What to do this week
- Export a thousand customer profiles and read them by hand, noting every field that is empty, stale or inconsistent.
- Build the message inventory in a single spreadsheet, one row per message, and flag every template nobody has edited in twelve months.
- Run an authentication check on every sending domain and confirm that transactional traffic is separated from marketing traffic.