The finance team asks for something simple: “Send a reminder to clients who haven’t paid their invoice.” The admin builds it. A week later, clients who paid by bank transfer start complaining, because transfers are recorded in the accounting system a couple of days after the money arrives and the CRM still shows the invoice as open. Then a client with a disputed invoice gets three reminders in a row while their account manager is trying to resolve the dispute.
The request was reasonable as far as it went. What it left out were the questions the builder needed answered. Which system decides that an invoice is unpaid? How long after the due date? What about partial payments, disputes, or clients on payment plans? Who gets told if the reminder doesn’t work? When those answers are missing, the builder guesses, and the guesses become behavior that customers experience.
Requirements documentation is where those questions get asked and answered before anything is built.
What is CRM requirements documentation?
CRM requirements documentation is a written specification of what the CRM must know and do, expressed precisely enough that someone who wasn’t in the meetings can build it correctly and someone else can test it. Each requirement states the business rule, the data it depends on, what triggers it, who qualifies and who is excluded, the timing, the expected outcome and how to confirm it works.
It sits between decision and build. CRM consulting, CRM strategy and lifecycle strategy decide what the system should do. Requirements documentation writes those decisions down as specifications. Implementation builds from them. If you’ve already made the decisions and just need them turned into something buildable, this is the service to start with.
What a specification covers
The states and the data behind them
Lifecycle states come first, because most automation depends on them. Each state gets a definition, entry and exit criteria, and the property that stores it. Then the fields and properties: name, type, allowed values, which record they belong to, which system is allowed to write them, and which requirements read them. That becomes a data dictionary, similar in structure to our free CRM data dictionary template. Finally the events: the things that happen, such as a form submission, an order placed, a quote accepted or a subscription canceled, with the system that sends each one and the data that comes with it.
The automation logic
For every automated behavior: the trigger that starts it, the conditions that must be true, and the timing. Timing is where vague requirements fall apart most often. “Follow up after a few days” needs to become a number, a unit (calendar or business days), a send time, a time zone and a rule for weekends and holidays.
Who should not be included
Exclusions say who must never enter, even if they match the conditions. Suppression covers people who should stop receiving something partway through, such as someone who buys during an abandonment sequence or unsubscribes from one type of email. Re-entry decides whether someone can go through the same automation twice, and what happens to anything already queued. These three are usually missing from informal requirements, and they cause a large share of the complaints customers actually notice.
How you’ll know it works
Expected outcomes describe what should be true once the automation has run. Reporting requirements name what must be recorded so the outcome can be measured later; if the date a follow-up was sent isn’t stored, there’s no way to report later on whether follow-ups help. Acceptance criteria are concrete test cases with a defined input and a defined result. They turn “it seems to work” into a pass or a fail.
A sample specification
Here is one requirement, shortened, for a commercial cleaning company following up on quotes. A real document holds dozens of these, each linked to the states, fields and events it depends on.
REQ-QF-02: Quote follow-up for commercial contracts
- Business rule: Every commercial quote above the minimum value gets one follow-up email and, if there’s no decision, a call from the deal owner.
- Trigger: Deal enters the stage “Quote sent” in the Commercial pipeline.
- Conditions: Deal amount is $1,500 or more. The primary contact has an email address and has not opted out of sales emails.
- Exclusions: The deal is already Closed won, Closed lost or marked “Verbal acceptance”. The company has an open complaint ticket. Another quote for the same company is already in this sequence.
- Timing: Email at 9:00 in the contact’s time zone, three business days after the trigger. If the deal hasn’t changed stage by day 7, create a call task for the deal owner, due that day. No sends on public holidays in the owner’s region.
- Suppression and re-entry: Any stage change ends the sequence immediately. A deal that returns to “Quote sent” after a revised quote can enroll again, once, and the earlier enrollment must already be ended.
- Expected outcome: Each qualifying quote receives exactly one follow-up email and, where needed, one owner task. No contact hears from the sequence after a decision is recorded.
- Reporting: Store “Quote follow-up sent date” on the deal so win rates can be compared for quotes decided before and after the follow-up.
Acceptance criteria
- A $2,000 Commercial deal moved to “Quote sent” on Monday morning sends the email at 9:00 on Thursday in the contact’s time zone.
- A deal moved to Closed won on day 2 sends no email and creates no task.
- A $900 deal never enrolls.
- A deal still in “Quote sent” on day 7 creates one call task for its owner, linked to the deal, due that day.
- A deal moved back to “Quote sent” after revision enrolls once, and the contact receives no duplicate email from the first enrollment.
Notice how much of this the original request (“follow up on quotes”) never mentioned. Each line answers a question a builder would otherwise answer by guessing. Our CRM automation requirements template uses the same structure if you’d like to try writing one yourself.
Have requirements that live in meetings and Slack threads?
We'll turn them into specifications your admin, agency or developer can build from and test against.
When requirements documentation pays for itself
- Someone else is building. An agency, a freelance admin or an internal developer who wasn’t part of the conversations. The spec is the brief, and it gives you something to hold the build against.
- A migration or rebuild is coming. Documenting what the current system actually does, including the rules that were never written down, stops them from quietly disappearing in the move. See CRM migration.
- Several teams depend on the same automation. Sales, marketing, finance and customer success each have a view. Written requirements make the disagreements visible while they’re still cheap to resolve.
- The person who built everything is leaving. Better to capture the logic while someone can still explain it.
- You’re tired of fixing the same workflows. If automation keeps being rebuilt after complaints, the rules were never settled in the first place.
How we work
Gather what exists
Notes, decks, existing workflows, previous specs, support complaints. We also look at the live system where there is one, because it often contains rules nobody remembers deciding.
Interview the people who own the rules
Short, specific sessions with each team. We ask the awkward questions: what happens on weekends, what if they’re already a customer, what if the data is missing.
Draft and resolve open questions
We write the specification and keep a separate list of unresolved decisions, each with an owner. Conflicting requirements are flagged, not quietly settled by whoever writes the document.
Review and sign-off
Each team reviews the requirements that affect them. Once signed off, the document becomes the reference for building, testing and future changes.
What the documentation package includes
- A requirements document with numbered, individually testable requirements.
- A lifecycle state reference with entry and exit criteria.
- A data dictionary for every field the requirements depend on.
- An event catalog listing each event, its source system and its payload.
- Acceptance criteria and a QA checklist for the build team.
- A decision log recording what was agreed, by whom, and what was deferred.
Specifications are written to be platform-aware without being platform-locked. Where it matters we note how a requirement maps to your platform, for example HubSpot workflow enrollment and suppression lists, or Klaviyo flow filters and segments, so the builder isn’t left to translate.
Requirements documentation is scoped after a first conversation and quoted at a fixed price. Starting prices for related services are on our pricing page.
How is this different from the system requirements in a CRM audit?
A CRM audit includes a summary of system requirements as one of its deliverables, based on what the audit found. This service goes much further: every requirement written in full with triggers, exclusions, timing and acceptance criteria, agreed with each team and ready for a build. A common sequence is audit, then requirements documentation, then implementation.
Can our own team or another agency build from your specifications?
Yes. That’s the main reason the documents are written the way they are. Agencies can also bring us in to document requirements for their clients; see agency partnership.
Do you write requirements for platforms you don’t build on?
We write requirements for the platforms listed on our platforms page and their usual integrations. The business logic is platform-independent; the platform notes are where specific knowledge matters.
We use user stories. Can you work in that format?
Yes. Each requirement can be written as a user story with acceptance criteria in a given/when/then style, as long as the exclusions, timing and re-entry rules are still spelled out. Those are what user stories most often leave out.
Will you also test the build against the requirements?
If you want. We can run acceptance testing for a build done by your team or another partner, or carry the work into CRM implementation and test our own build against the same criteria.