MarqIQ
Browse all help topics
How to9 min read

Compare the same people across two systems

Last updated 26 September 2026Available onFree TrialProBusinessEnterprisePartnerNeedsHubSpotSalesforceMarketoThose three are the tools this source offers breakdown fields for, alongside MarqIQ’s own tracked submissions. Pipedrive, Zoho CRM, Microsoft Dynamics, Pardot, Mailchimp, Salesforce Marketing Cloud, Adobe Campaign and Adobe Journey Optimizer contribute people to the merge and count towards the totals, and no field of theirs is offered to group by — see the table below. Starter does not include the report builder, so this source is out of reach there: the Intelligence Studio row is absent from the sidebar, and the builder reached by its address draws nothing.

The Unified (Cross-System) source puts one row per email address in front of you, carrying that person’s fields from every system at once, so you can cross one tool’s answer against another’s. It is a comparison of overlap and of values, not a duplicate cleanup — for merging two records into one person, read Find and merge duplicate people. Read the caps in this article before you quote a figure from it, because this source reads fewer records than a single-source report does.

Before you start

  • Two sources holding the same people, each with a finished sync. MarqIQ’s own tracked submissions count as one of them.
  • Email addresses on the records. A record without one takes no part in this at all.

This answers a narrower question than it looks like

MarqIQ has no field meaning “this person exists in that tool”. You infer it from a field that tool normally fills, so a person who is in Salesforce with an empty Lead Source reads exactly the same as a person who is not in Salesforce at all. Pick a field that tool fills on every record, and say which field you used whenever you quote the result.

How the merge is built

Everything on this source rests on one rule: rows are keyed on the email address, lower-cased. Two records with the same address become one row; two records with addresses that differ by a character become two rows.

  • A record with no email address is left out, on both the submission side and the CRM side.
  • Each system’s fields arrive on the row under that system’s name, so HubSpot’s answer and Salesforce’s answer sit side by side and neither overwrites the other.
  • Where one system holds more than one record for the same address, the values that end up on the row come from whichever of those records was read last. A person duplicated inside one tool is still one row here.
  • Nothing is scored or guessed. Two addresses either match exactly, once lower-cased, or they do not.

The caps, and what they are measured on

This source reads at most 20,000 form submissions and at most 20,000 CRM records. The two caps are separate, and the CRM cap is shared by every connected tool together — 20,000 records across HubSpot, Salesforce, Marketo and the rest combined, not 20,000 each. The submissions taken are the 20,000 OLDEST, by submission date. The CRM records taken are 20,000 in no defined order, so they are neither the newest nor a sample you can describe. A workspace larger than that is looking at part of its database, and a count from this screen is not the workspace’s real total. Use a single-source report, which reads up to 50,000 records of one source, for any number you intend to quote.

Note

The record filters set under Intelligence narrow the CRM side of this merge, the same way they narrow every analysis. Your own tracked submissions are not filtered by them. Where the two sides look inconsistent, check those filters first.

Build the comparison

  1. Open Intelligence Studio in the sidebar, under Reports & Intelligence.

  2. Click Report builder.

  3. Choose Unified (Cross-System) in the Data Source list.

    It sits at the bottom of the list, below the connected tools and any imported spreadsheets.

  4. Send the first system’s field to Rows (Group by).

    For “who is in HubSpot”, HubSpot Lifecycle Stage is usually the field to use, because HubSpot fills it on every contact.

  5. Send the second system’s field to Columns.

    For “and not in Salesforce”, use Salesforce Lead Source or Salesforce Opportunity Stage.

  6. Add Unified Contacts to Values.

    Unique People counts distinct email addresses, and rows on this source are already one per address, so the two measures read the same number here. Use either.

  7. Click Matrix / Pivot on the visualisation toolbar.

    A grid is the readable shape for this. A bar chart of a two-dimensional comparison hides the column you care about.

  8. Read the (not set) column.

    That column holds the people the second system has no value for. It is your answer, with the caveat in Before you start attached to it.

The date buttons do nothing here

The 30d, 90d, 6mo, 1yr and 3yr buttons filter Marqiq Attribution only. On Unified (Cross-System) every record inside the caps is read whichever button is lit, so do not describe the result as covering a period. The Year, Quarter and Month dimensions are available, and what they are cut on is worth knowing before you use them — see How dates and time zones are handled.

Which fields each system contributes

This source offers a fixed list of fields, not every field of every tool. A tool missing from the middle column still puts its people into the row count, and gives you nothing to break them down by.

SystemFields offered to group byMoney measure
MarqIQ’s own trackingMarqiq First Touch, Marqiq Last Touch, Marqiq CampaignNone
HubSpotHubSpot Original Source, HubSpot Latest Source, HubSpot Lifecycle StageHubSpot Revenue
SalesforceSalesforce Lead Source, Salesforce Opportunity StageSalesforce Pipeline
MarketoMarketo Lead Source, Marketo Acquisition ProgramNone
Google Analytics 4GA4 First User SourceNone
Pipedrive, Zoho CRM, Microsoft Dynamics, Pardot, Mailchimp, Salesforce Marketing Cloud, Adobe Campaign, Adobe Journey OptimizerNoneNone
Imported spreadsheetsNoneNone

Note

GA4 First User Source is offered, and MarqIQ pulls no Google Analytics 4 records, so it reads (not set) on every row. Grouping by it tells you nothing about GA4.

Values here are the stored ones, not the labels

A single-source report translates a picklist value, an owner identifier or a campaign identifier into the label your tool shows its own users. This source does not. A lifecycle stage can read as its internal value rather than its name, and a custom stage can read as an identifier. Check a value against your tool before you put it in front of anybody, and prefer a single-source report where the labels matter.

Reading the overlap honestly

Three numbers come out of a grid like this, and only one of them is safe to state without a sentence attached.

  • The grand total is the number of distinct email addresses inside the caps. It is the one figure that needs no field-level caveat, and it still needs the caps quoted with it.
  • A cell is people the first system gave that value AND the second system gave that value. Both fields have to be filled for a person to land there.
  • The (not set) column and the (not set) row mix two different people together: those that tool does not hold, and those it holds with that field empty. State which field you measured on, or measure a second time on a different field and compare the two.

Tip

Run the comparison twice, once on a field the tool always fills and once on a field it often leaves blank. Where the two (not set) counts are close, the field is doing its job as a presence signal. Where they are far apart, you are measuring how often the field is filled, not who is missing.

Getting the difference out

There is no download on the report builder — no spreadsheet, no PDF and no scheduled send. What you can do is read the rows and take them by hand.

This source cannot give you the people themselves

The email address is what the rows are keyed on, and it is not offered as a field to group by — not on this source and not on any other source in the report builder. So what you copy out is counts against values, never the addresses behind them. To reach the people, open Customer 360 under Intelligence Cloud, or read See everything MarqIQ knows about one person.

  1. Click Table on the visualisation toolbar.

    Table lays every group out flat, with no indentation and no expanders, which is the readable shape once it is pasted.

    It removes no rows. A second row dimension still produces a subtotal row above each group, and a Grand Total row sits at the foot of both Table and Matrix / Pivot.

  2. Select the rows in the table and copy them into a spreadsheet.

  3. Delete the subtotal rows and the Grand Total row in the spreadsheet.

    On screen they are shaded. Pasted, they are ordinary rows, and anything you total in the sheet counts them twice.

  4. Write the caps into the sheet beside the data.

    Whoever opens that file next will not know the rows came from at most 20,000 CRM records and the 20,000 oldest submissions unless you tell them.

If it did not work

“No identity-resolved records yet. Sync at least one source with email addresses.”

Why: Nothing in the merge has an email address — either no source has synced, or the records that did carry no address.

Fix: Run a sync from Data sources, then check on a single-source report that the records carry emails. A deal-grain source with no people on it contributes nothing here.

The total is far lower than your tools hold between them

Why: The caps. At most 20,000 CRM records across all tools together, and at most 20,000 submissions.

Fix: Treat this source as a shape, not a census. For a countable total, build a single-source report per tool, which reads up to 50,000 records of that one source, and say which tool each number came from.

Almost everybody lands in the (not set) column

Why: Either the second system genuinely holds very few of these people, or the field you chose is one it rarely fills.

Fix: Open Unified field catalog, find that field under its own tool, and check whether it reads Synced. Then repeat the comparison on a field the tool fills on every record.

Somebody you know is in both systems appears in only one

Why: The two records carry different email addresses. Matching is exact, once lower-cased — an alias, a personal address or a typo makes two people.

Fix: Use Find and merge duplicate people, which matches on more than the address, to find the pairs. This source cannot join them.

A tool you rely on offers no field to group by

Why: This source carries a fixed field list covering MarqIQ, HubSpot, Salesforce, Marketo and GA4. The other tools contribute people and no dimensions.

Fix: Build one report per tool on that tool’s own source, where every one of its fields is available, and compare the two results yourself. The table above says which tools are affected.

A value reads as a code rather than a name

Why: This source shows stored values. The translation into your tool’s own labels runs on single-source reports only.

Fix: Look the code up in your tool, or rebuild the breakdown on that tool’s own source, where the labels are resolved for you.

The date buttons change the number of rows

Why: They should not, on this source. A changing number usually means a sync finished between the two readings.

Fix: Click the refresh icon beside Save and read it again. Check the tool’s last sync time on Data sources.

Next steps

Related articles

Was this article helpful?