Case study
Building a permission-based CRM for contact and investor outreach with full team comms and audit trails

fundraising pipeline stages tracked automatically
access tiers enforced by role, not convention
interaction logs lock automatically after
Key takeaways
Their challenge
The fund tracked fundraising and research contacts across email threads, spreadsheets, and ad hoc Teams chats, with no reliable way to keep investor-facing records separate from internal research, and no audit trail proving who saw what or when.
The solution
- Access Model Design
- Relational Data Model
- Fundraising Pipeline Automation
- Interaction Logging With Auto-Lock
- Compliance-Ready Audit Trail
- Comms Subscription Tracking
- Teams-Embedded Access
- Role-Based Dashboard
Outcome
Every contact, company, and opportunity now lives in one CRM with the right access baked in by role, a fundraising pipeline that updates itself, outreach preferences tracked per contact, and an interaction history nobody can quietly edit after the fact.
Their challenge
The fund’s contact and pipeline data was scattered across email, spreadsheets, and Teams chats, useful in the moment for a quick lookup, but never built to carry a real fundraising pipeline, permissioning, or a compliance record.
Whatever view existed was shared by default. There was no way to let an analyst reference a research contact without also exposing live investor conversations, deal stages, and target allocations that should have stayed with the fund manager.
Compliance made it harder still: call logs and disclosures needed a permanent, tamper-proof record, and nothing in the ad hoc setup stopped a record from being quietly edited after the fact.
Behind the scenes
The brief came with a real architecture decision to make first: build natively on Microsoft 365, so the CRM lives right inside the Teams the fund already uses daily, or stand up a relational database with its own dashboard outside it. We recommended the relational option once it was clear the fund needed finer-grained permissioning than Microsoft’s native roles could give it and a proper audit trail was non-negotiable, while still surfacing the CRM inside Teams as the team’s primary access point.
The data model separates contacts, companies, and opportunities into linked records rather than one flat table: a contact can belong to a company, and a subset of investor contacts become leads, and a subset of leads become opportunities moving through a defined seven-stage fundraising pipeline, from first identification through to committed and closed capital.
Access is enforced at the role level, not just the UI level: fund managers see everything, analysts see only the research contacts tagged for their work, and a compliance role can see their own submitted records and nothing else, including other users’ submissions.

Every interaction, every call, meeting, or note, gets logged against the right contact and locks automatically after 24 hours: nothing can be edited or deleted after that window, which is the difference between a CRM and a genuine compliance record.
We built the CRM to grow with the fund’s own thinking rather than lock it into day-one assumptions: a later pass added a contact-category layer so the same status field could describe an investor’s fundraising stage and a service provider’s relationship stage without forcing the system to pretend every contact is a prospective investor, plus per-contact comms subscription tracking so outreach preferences and unsubscribes are recorded permanently, not lost in an inbox.
Before and after
Before
- Contacts and pipeline scattered across email, spreadsheets, and chat
- No formal fundraising pipeline, just conversation history
- Outreach preferences tracked nowhere, or lost when someone unsubscribed
- Records could be edited or deleted after the fact
- Every new hire needed a manual walkthrough of who could see what
After
- One CRM for every contact, company, and opportunity
- Research and investor access enforced by role, not convention
- A defined 7-stage pipeline from first contact to committed capital
- Every contact's comms preferences and unsubscribes tracked permanently
- Interaction logs lock automatically after 24 hours

Join 2500+ members in my online communities building real agent systems or reach out to me below and start building your agency to run without you.