By Evgeniya Mircheva, Lead Software Engineer at Hook
Joining as Hook’s first employee
I joined Hook as its first employee in January 2021, after speaking with our CEO Firaas a number of times about his vision. These conversations got me excited about the idea of Hook — I could see he wanted to build a solution that didn’t exist in the market yet, to tackle a very real problem that could have enormous value for Customer Success teams. So I got ‘hooked’ on the idea right away.
I had to make sure the cultural fit was in place, as everything else comes after. And with Firaas that was a no-brainer. We chatted for hours about team values and how he envisioned the team would work together. The decision to join a company made up of a founder and interim CTO might look scary but was actually very very easy. In my heart, I knew we could work together for years to come.
Building the prototype
We built a prototype using some sample data to test whether the data we wanted to collect actually made sense. This involved setting up test environments in Salesforce, HubSpot, Segment and Zendesk to find out what they have in common, and how the data could be collected in near real-time and mapped across different systems.
Our early prototype helped us to identify the early technical challenges (such as matching data across different systems in near real-time) and key requirements customers needed in order to get value out of Hook. It also made us think about potential onboarding challenges for new customers using Hook such as managing their usage data effectively. This prototyping phase was so valuable from an engineering perspective, as it meant we knew then what the MVP would look like and we could get cracking!
Taking the next steps: MVP
After confirming our ideas with the sample data, the time had come to work with real companies. The aim was to use real data to refine the prototype, and to work with CS teams to get valuable feedback to help us develop Hook. We had some amazing early design partners, including our friends at Sales Impact Academy. It was a very exciting time adding their data to Hook and providing their team with really useful insights! Onboarding the first customer meant moving from the prototype into production-ready code, as well as checking that their data followed the assumptions we had made.
We had already built a Salesforce connector that worked as a separate service, and we did the same for HubSpot. For our MVP, we set up daily dumps of data from CRM, which enabled our data team to start looking at some real data. In the meantime we started building the core of our data ingestion engine which we creatively called “Data Processor” V1.
The next step was to begin ingesting usage data. This involved a few iterations, especially when defining active users, inactive users and influencers (product users which hold influence in buying decisions). Grinding down the usage data to a form that brings value to the customer and that can be used to predict churn is a really exciting challenge. Within a few months, we had succeeded in building the first live version of Hook where our customers could log in and see their customers, users and usage activity data.
It was an exciting moment when we released Hook to our first design partner in Production, and saw them logging in using “Hook on Hook” — our own instance of Hook managing Hook’s Customer Success data.
Now we have more customers using Hook, the engineering team and the codebase have grown, and quite a few features have been automated along the way. Since the MVP we have done another iteration of our magical “Data Processor”, the much-improved v2. We now import the data for each customer first into a “Data Importer” every ten minutes, and then a special data processor is triggered depending on what data is being updated. Very exciting! This means we get to handle customers, subscription, user creations, user access and any other customer specific events independently of one another, including things like Zoom meetings.
It also means that we allow for a wide variety of events when it comes to customer usage data — knowing that every one of our customers has different products. We define different types of events and then use them accordingly, whether in a user timeline, in engagement scores or for measuring adoption. It is a challenge for sure, but as long as different data fits into the Hook schema, we can manage it. So that’s what these special processors do, they take in any form of customer data and convert it into Hook data.
It’s amazing that at each stage of our product build the challenge seems to become both harder and more realistic. We have built a Customer Success data platform which is able to ingest and match data in real time, and generate automatic, data-driven engagement scores (our version of health scores). Now our next challenge is to bring our engagement scores into a real-time machine-calculated version, with hundreds of metrics and no human input. A year ago this seemed impossible — now it seems challenging, but very possible.
Other features that we are working on include exporting data in near real-time to our sources including Salesforce and Hubspot, as well as introducing more self-configuration functionality for things like alerts in our UI. For each new Hook customer we set ourselves the challenge to onboard more quickly and effectively, and ultimately we want this to be as near to self-service as possible.
My personal journey at Hook
I first joined Hook during the winter lockdown in early 2021. At that point Hook was just a seed, a seed that slowly became a flower in a grey world that wasn’t moving. During that period there were many precious moments as we stuck with each other and made really good friends. Our daily life wasn’t COVID news, it was Hook. We had a problem to solve and we were all in, diving deep into thinking, discussions, planning, and coding.
We are building something we’re very excited about and have worked really hard on, and I can’t wait to show it to the world. The flower blossomed, it’s alive! Looking back on how far we’ve come in a year I feel like we’ve already succeeded — but we’re just getting started!