View media kit
  • Product
    Offerings
    • AI analytics Explore data using natural language.
    • Self-service BI Let anyone analyze and explore data, no SQL required.
    • Embedded analytics Delivers AI-powered embedded analytics to customers.
    Features & Capabilities See All
    • Semantic layer The programmable semantic layer. Model your business in AML.
    • Analytics query language The composable query language built for AI reasoning.
    • Analytics as-code Define metrics and dashboards as code. Version control with Git.
    • Agentic BI development Develop BI with coding agents, locally or in browser
    • dbt integration Connect dbt transformation layer with Holistics BI layer
    • Canvas dashboard Empower your data storytelling with unparalleled flexibility
    • Reusable analytics Build reusable analytics components
    • Dynamic data sources Dynamically select data source by user and environment
    • All features Explore all powerful features in Holistics
  • Pricing
  • Docs
  • Blog
  • Customers
    Customer Stories
    • Customers & case studies Learn how our customers built reliable BI systems with Holistics
    • Support White-glove support to help you succeed with Holistics
  • Resources
    Learn
    • Worldview Our worldview on business intelligence
    • Not all semantic layers are equal Why the semantic layer is the real AI differentiator
    • Demo sandbox Try Holistics in your browser with sample data.
    • Documentation Learn how to get started with Holistics.
    • Support White-glove support to help you succeed with Holistics
    • Release notes What just got shipped!
    • Product roadmap What's shipping next?
    Engage
    • Community Ask questions, request new features or mingle with other Holistics users
    • Blog Inner Join - our blog on Business Intelligence for practitioners.
    • Newsletter Our weekly newsletter to 30K+ data professionals worldwide.
    • About us A decade betting on one idea: the semantic layer.
    • Contact us Have questions? Contact our team.
    • Partners Holistics consulting partner network.
    • Referral program Earn commission by referring prospects to Holistics
    Books
    • The analytics setup guidebook Build scalable analytics & BI stacks in the modern cloud era
    • Slice & dice: A self-service analytics comic What self-service analytics is, and why it is important.
    • Log in
    • Book a demo Book a demo
    • Offerings

      • AI analytics
      • Self-service BI
      • Embedded analytics
    • Features & Capabilities

      • Semantic layer
      • Analytics query language
      • Analytics as-code
      • Agentic BI development
      • dbt integration
      • Canvas dashboard
      • Reusable analytics
      • Dynamic data sources
      • All features
  • Pricing
  • Docs
  • Blog
    • Customer Stories

      • Customers & case studies
      • Support
    • Learn

      • Worldview
      • Not all semantic layers are equal
      • Demo sandbox
      • Documentation
      • Support
      • Release notes
      • Product roadmap
    • Engage

      • Community
      • Blog
      • Newsletter
      • About us
      • Contact us
      • Partners
      • Referral program
    • Books

      • The analytics setup guidebook
      • Slice & dice: A self-service analytics comic

← See previous newsletters

Sent to 2,013 subscribers

Ha Pham · January 03, 2020

Inner Join is Holistics's weekly business intelligence newsletter. This week: how we combine data sources at Holistics, dbt launches an IDE, and an interesting case against data dictionaries.


How We Combine Data Sources at Holistics

Holistics is a modern business. Like many modern businesses, we use multiple tools that each generates its own mountain of data.

This inevitably led us to the same problems that many other businesses have faced:

  • How do we combine data from those different tools?
  • How do we map out a single customer journey? (Say, from being interested to purchase and to becoming a return customer?)

There are many solutions out there promising to "bring your data together in one place". However, is it really that simple?

We found out the hard way that it is not.

What kind of data do we have?

As a B2B startup, we did not actually have too many data sources. Initially, this is what we owned:

  • Backend data from the Holistics platform itself.
  • Sales data (customers, deals, sales activity) on Pipedrive.
  • Customer support tickets from Zendesk.
  • Web traffic data from Google Analytics.

What kind of headaches do we have?

The first thing to think about before doing any stitching is to ensure data quality and availability. Here, we encountered several problems:

Sales and customer support data are subject to human error

Some fields on Pipedrive are automatically populated, but there is still a lot of manual input. This process is error-prone, and sales records often suffer from missing fields. The same issue presents itself in customer support data on Zendesk, as we have custom fields to categorize tickets but such fields were created only recently.

Data from Google Analytics is aggregated, not raw

For web traffic, initially we were stuck with Google Analytics's reporting system whenever we wanted to do complicated queries or visitor visualization. GA's API returned only aggregated data, so even when we used a connector to pull that data into our own storage, there was not much we could do with it.

Back-end data cannot answer everything

Backend data is good for high-level reporting, but not good enough for analyzing user behavior. If we want to know customers' behaviors down to each click and page view, we had to add tracking logic directly to the code. This could potentially slow the app down, and makes it more difficult for the product team to add new measurements.

There is no unified customer identification across the apps

This was the most obvious problem we faced. Logically, the customer account data from the platform should match with account data in Pipedrive, but for various technical reasons, we did not have a common key to match these two.

Matching between traffic data and sales data is also not possible, because with Google Analytics we only know "how many people did what", not "who did what".

What we did to stitch data from these sources

Define a procedure to help match data from different sources

To match the sales accounts and their back-end customer IDs in our platform, we decided to ask for internal help from our growth team. (In Holistics, the growth team is responsible for sales and marketing). We agreed that whenever prospects activated their accounts on the platform, growth team members must enter the backend customer ID into a custom field in Pipedrive.

Periodically we would also run queries to check for data inaccuracies and discrepancies between the two data sources. For example: active customers without a backend customer ID, or churned customers with a net MRR larger than 0.

Use an open-source event tracking solution

If you stick to Google Analytics but want to match your traffic data and sales data, you would have to pay for Google Analytics 360 (which would cost you about $150,000 a year). This is something we could not afford, and besides, why pay so much if you have other equally awesome and cheaper alternatives?

After doing some research, we ended up deploying Snowplow to send hit-level data to our own BigQuery storage instead of Google Analytics. With Snowplow, we solved several problems at the same time: we finally had access to raw traffic data in order to do customer journey mapping, and we can now map visitors with their sales accounts to do more customer segmentation.

We also use Snowplow and Google Tag Manager to track customer usage in our web app, so that the product team would not have to rely too much on engineering whenever they want to add a new tracker.

Using Holistics to model user behavioral data:

What we learned from this project

The problems that we face at Holistics is merely a fraction of all the possible problems when you want to combine disconnected data sources. Obviously, our solution is by no means universal, though it may apply for small-scale, young startups. We won't claim that our current solution is future-proof: personnel changes, new tools we add to our workflow, and new analytical needs may make our current approach obsolete.

However, there are a few takeaways we've got from this experience that we believe will continue to guide us in the future:

  • Collaboration between departments is the key. As members of the data team, you need to keep communicating with representatives of other departments every step of the way — from problem statement to solution proposal, to eventual implementation. And of course, you should always remain open to what your other departments are willing to do in any analytics project.
  • Compromises are inevitable. For instance, we wanted to automatically pass customer IDs from our back-end into Pipedrive to reduce manual load, but doing so turns out to take too much engineering time for too little payoff. That is why we decided to live with manual input and periodic data cleaning.
  • New tools will give you new problems. As the saying goes, with more power comes more responsibilities. When we deployed a powerful and flexible tool like Snowplow, a whole new set of problems that we had never considered turned up alongside it. We had to define a new procedure for teams to request tracking, and created a management system for the tracking itself so we know what we already have and what we should measure for future features.

Overall, we are incredibly pleased with our current analytics setup, and find that we are now much more productive when digging for insights about Holistics's customer behavior within Holistics itself. We hope these experiences will prove useful to you.

Get Inner Join in your inbox

Inner Join cuts past vendor noise to the durable ideas behind analytics, modeling and data organization.

Product
Self-service BI
Semantic Layer
Data Delivery
Embedded Analytics
Canvas Dashboard
What Makes Holistics Different
Compare with Looker
Compare with PowerBI
Compare with Tableau
Compare with QuickSight
Compare with Metabase
Resources
Docs
Not all semantic layers are equal
Demo Sandbox
Product Roadmap
Release Notes
Community Forum
Analytics Guidebook
Uptime Monitoring Service
Blog
Partners
BI Comparison Guides
Best BI Tools
BI Tools with Semantic Layers
Self-Service BI Tools
Embedded BI Tools
AI BI Tools
Security & Policies
Data Security
SOC2 Compliance
GDPR Compliance
Privacy Policy
Terms of Service
Support SLA
Responsible Disclosure
Data Processing Agreement
Company
About Us
Contact Us
Media Kit
Careers
Customers
Customer Login
Contact
Twitter
LinkedIn
Facebook
Singapore
14 Robinson Rd,
Far East Finance Building, #08-01A,
Singapore 048545
United States
2400 North Henderson Ave, # 1156
Dallas, Texas 75206
Vietnam
457 Nguyen Dinh Chieu, Level 2
Ban Co Ward, Ho Chi Minh, Vietnam
Copyright 2015 - 2026 Holistics Software. All Rights Reserved