1. Using a Customer Data Platform (CDP)
A Customer Data Platform, by definition, is a software system that collects customer data from various data sources (both primary and secondary), handles identity resolution to unify the data, and offers the ability to build user audiences that are synced with third-party tools.
In essence, a CDP such as Segment Personas or mParticle is an end-to-end solution to collect and combine data, and sync it with third-party tools.
However, just like any other off-the-shelf, ready-made solution, a CDP has some limitations – here are the main ones:
- Support for third-party data sources is limited and you might have to build your own integrations with certain tools that don’t exist as data sources.
- Almost always, combining data from disparate sources requires data transformation and since a CDP is meant to be used by less-technical users, the transformation capabilities are limited.
- Lastly, the biggest limitation of a CDP is that you need to adhere to a fixed data model – you cannot model the data as per the data model of your app (many-to-many relationship between accounts and users, for example) or that of external tools.
While this might make a CDP sound like a deal-breaker, there are actually many use cases and reasons to adopt a CDP anyway. To learn more, check out resource  at the bottom.
2. Using a Data Warehouse
A Data Warehouse is essentially a database designed for the purpose of analytics and is used to store data from all possible data sources – first-party apps, third-party tools, as well as production databases.
Due to the affordability and the ease of setting up a data warehouse, popular cloud data warehousing solutions (like Snowflake, Google BigQuery, and AWS Redshift) are experiencing rapid adoption.
It’s pretty straightforward to sync data from all your data sources using purpose-built data collection tools – I won’t go into the details as this was covered in the last two issues.  
Once the data is in the data warehouse, you need to write SQL queries in the warehouse to combine and transform data from multiple sources. This process is referred to as data transformation and it enables building custom data models which are then synced to third-party tools for analysis and activation.
While data can be transformed solely within the warehouse itself, purpose-built data transformation tools (like dbt and Trifacta) bring a lot of flexibility and automation to this process.