Why Your Startup Needs a Reliable Source of Truth for Customer Activity
In the fast-paced world of operationally heavy startups, investing in a comprehensive source of truth for all customer activity can yield unparalleled returns. Imagine saving valuable engineering hours, empowering your operations team, and preventing customer churn – it's all within reach.
Why Do You Need This?
Consider Joe from Customer Success faced with a customer inquiry about a delayed shipment. Without a historical understanding of customer activity, Joe struggles to determine whether it's a bug on the platform or an account configuration change that the customer made. Joe pings engineering to investigate. An engineer tries to understand the story of what happened by piecing together information from various logs and database records, and relays that information to Joe, who then relays it to the customer.
This isn't just a hypothetical situation. In a recent conversation with a CTO, they recounted an incident where a customer wrongly blamed their platform for a failed email campaign, resulting in a multimillion-dollar deal lost for the customer. The CTO, personally diving into the investigation, discovered that their platform wasn't the culprit and had sent everything correctly. Instances like these are widespread and highlight the tangible impact of a lack of tooling in this area – not just in hours saved but also in valuable customer relationships safeguarded.
The Solution: Data Change Observability
Building a system that is able to reliably store and query data changes is key. Here are some options:
Open Source Libraries
Using a gem like paper_trail in Rails or django-simple-history in Django is the easiest approach and should cover most basic use cases. This is ideal for simplicity but may lack reliability and performance. Since they’re installed on the application layer, you'd miss out on recording edge cases like updates made via direct SQL queries. There's some runtime performance overhead since the libraries make extra database inserts in callbacks. This shouldn't be a problem except for larger operations, where even the cost and performance of the table size increases can start to become a concern.
Event Sourcing
Building an event sourced system is a comprehensive solution but is a significant paradigm shift from the way CRUD-like applications are typically built. If an application isn’t built with this architecture from the start, it can mean a large rewrite. This is likely not practical for most businesses.
Financial Ledger
For fintech’s, there’s also the option of a financial ledger. This can be built in-house to track payments and account balances, or there are countless ledger-as-a-service offerings that can be used.
Direct Integration with Database Logs
Some companies opt for direct integration with a database e.g. PostgreSQL’s Write-Ahead Logs for reliability, capturing everything via CDC at the database level. However, the records would lack application context like the 'where' (API endpoint, worker, etc.), 'who' (user, cron job, etc.), and 'how' behind a change.
Hybrid Approach - Bemi
Bemi takes a hybrid approach, integrating with both the database and application layers. While Bemi's architecture might seem complex, it ensures zero performance penalty, 100% reliability, and an enhanced understanding of each change. It's designed to be extremely simple for a user; however, we even go as far as to claim “full data history enabled in under a minute”.
User Experience
Building a user-friendly interface is another consideration. Most use cases would be covered by an internal dashboard showcasing each customer’s activity logs with some basic filtering functionality for Joe to be able to drill down on the relevant entity that he’s trying to troubleshoot. Bemi goes a step further, leveraging AI to transform complex data changes into human-readable logs, making it more accessible even to non-technical users like Joe.
The degree to which this is a problem and the ideal solution vary among companies. Please share how you’ve solved this in the past! if you’re dealing with this currently, feel free to schedule a chat, and I can share some additional tips along the way.
By building a reliable source of truth for customer activity, you're not just saving hours troubleshooting – you're future-proofing your operations and setting the stage for sustainable growth.