When to use Datasets
Normally ad spend data is time-based, i.e there is some dimension from the Data Source that is mapped to the Funnel Date Dimension.
However in CRM data sources the data is often based on different entities, for example, Contacts or Leads. In those cases, there is one row for a Lead having multiple columns to describe at what point in time something happened with that Lead, for example, Became Marketing Qualified Lead (MQL).
The Funnel default behavior for CRM Data Sources is to map the 'created date' to 'Funnel Date' and this can cause some issues when trying to create metrics from these date dimensions. The primary issue is when trying to filter on a date in say Data Explorer or in Looker Studio the filter is applied on Date, hence on the 'created date' and not the 'Became MQL' field and thus not getting the correct result.
This is where Datasets will help you.
How Datasets work
In a very short sense, with Datasets, you can reshape data into a stored model (similar to a Data Source) based on the dates and dimensions you want. This is very powerful because it not only allows you to control your data more but also can improve performance significantly as you can slim down and use what you need.
As it is a stored model, it also means that it has to be computed from the existing Data Sources. This is something that is automatically handled in Funnel, but worth knowing when creating a Dataset is that there will be some delay until the data is available.
Events by time
To count the number of MQLs and SQLs per 'Campaign' as reported by Hubspot you can create an Events by time Dataset.
Here you would choose the “Became MQL” and “Became SQL” (naming depends on your setup) date dimensions from the Hubspot Data Source Type and name the corresponding metrics as you wish.
Then choose those metrics to be available for ‘Campaign’ (in the Campaign field make sure to map which Hubspot field contains the campaign) and you’re done!