Skip to content

Customise the Sheet export

Each destination has its own export settings. Pick dimensions and metrics, choose a time grain, filter to specific accounts or campaigns, and your Sheet rewrites on the next push.

6-min read, last updated 31 October 2026

What you can customise

A destination’s export config has four moving parts:

  • Group by: Day, Week, Month, or Year. Controls the time grain of each row when the Date dimension is included.
  • Dimensions: which columns identify each row (Date, Platform, Account, Campaign). Excluded dimensions cause the rows to collapse across that axis.
  • Metrics: which value columns appear (built-in metrics, lifecycle stage and HubSpot property columns, and any custom metrics you’ve defined).
  • Filters: restrict to specific accounts and/or campaigns. Empty means “all”.

The mode (REPLACE / APPEND), date range, and platform filter stay on the destination card itself. Customise export adds the four above.

Where to find it

  1. Open /app/connections/google-sheets
  2. Find the destination card you want to customise
  3. Click Customise export (lands you on a dedicated page for that destination)

The card itself shows a summary chip with the current shape (e.g. Group by: month · Dimensions: date, platform · Metrics: 5 columns) so you can see at a glance what each destination is configured to push.

Group by

Pick the time grain for each row in the Sheet:

  • Day: one row per date. Default; matches the original Crowflow behaviour.
  • Week: one row per ISO week (Mon-start, ISO-numbered). e.g. 2026-W23
  • Month: one row per calendar month. e.g. 2026-06
  • Year: one row per calendar year.

Group by only matters when the Date dimension is included. If you uncheck Date, the time axis is collapsed entirely and Group by has no effect on the output.

Dimensions

The four dimensions tell Crowflow what makes each row unique. Type a dimension into Add a dimension to add it. The header follows the order of the chips; use the arrows on a chip to move it.

Excluding a dimension collapses the rows across that axis. For example:

  • Date + Platform + Campaign: one row per (date, platform, campaign). Account-level detail is summed in.
  • Date + Platform only: one row per (date, platform). All campaigns and accounts within that (date, platform) are summed into one row.
  • Platform only: one row per platform. Spend / clicks / impressions are summed across the whole date window. Useful for headline numbers on one tab.
  • No dimensions: one grand-total row per currency.
Note:
Currency is always kept as a row dimension internally. A row with USD spend and a row with GBP spend never combine into one; that’d be meaningless. You see this as a “Currency” column at the end of every export.

Metrics

One search box, Add a field, lists every column you can push, grouped: Ad metrics, CRM metrics, Lifecycle stages, HubSpot properties and Custom metrics. The header follows the order of the chips.

Lifecycle stages count how many of the leads acquired in the period are at that stage now; All lifecycle stages adds one column per stage. HubSpot properties are the extra contact and deal properties you picked on the HubSpot connection page: a date property becomes a count of records with a value, a number a sum, a yes/no a count of true, and a text or dropdown property one column per value, for the 20 most common values. CRM, stage and property fields need a connected HubSpot account on Pro or Agency.

Custom metrics are any you have defined in Custom metrics. The list updates live: define a new metric and it appears here on the next page load.

A + New custom metric shortcut in the section header jumps you to /app/settings/metrics if you want to define something on the fly.

Filters

Two multi-select pickers, both with search:

  • Accounts: restrict to specific ad accounts. Each entry shows the platform underneath (Google Ads, Meta Ads, or any other connected ad platform) so you don’t pick the wrong one.
  • Campaigns: restrict to specific campaigns. Each entry shows its parent account underneath.

Empty filter = no restriction (include all). Clear / Pick all shortcuts are in the dropdown header.

Note:
Filters compose with the date range, platform filter, and mode on the destination card itself. The data tab only receives rows that pass all filters at once. The date range also applies to every other tab in the Sheet: contacts, leads, deals and opportunities by the day they were created in your CRM, and the Blended tab by day.

Column preview

At the bottom of the page, a live preview shows the exact header that’ll be written to your Sheet. Dimension columns appear first (in Ink), then metric columns (charcoal), then Currency at the very end (mist). Stage and property columns appear where you placed them.

The preview updates as you toggle dimensions and metrics, so you can confirm the shape before saving.

The Currency column

Crowflow always appends a Currency column at the end of every export. It says which currency that row’s spend-related numbers are in.

You can ignore it if you don’t need it. It exists because:

  • We don’t prefix Spend, CPC, CPA, or currency-formatted custom metrics with a symbol in the export; those are written as plain numbers so your Sheet formulas work.
  • Mixed-currency workspaces need to know which currency each row is in. Currency on every row lets you write Sheet formulas that filter or convert.

APPEND mode & the Date dimension

APPEND mode requires the Date dimension. Crowflow uses a composite key per row to detect “have I already pushed this row?” The key is built from the included dimensions. Without Date, every push would write what it thinks is the same aggregate, and dedup would silently lose data.

The customise UI pins the Date chip first and marks it Required when mode is APPEND. If you switch from REPLACE to APPEND without Date among the dimensions, the save action adds Date back so you don’t accidentally break dedup.

Important:
Changing dimensions in APPEND mode rewrites the tab. Composite keys depend on the dimension set, so a schema change invalidates every existing key. Crowflow detects this on the next push, lays down a fresh header, and starts append-tracking from the new shape. Existing rows in the Sheet stay there (visible at the bottom) but won’t dedup against new ones. You may want to clear the tab manually after a big schema change.

Worked examples

Three common shapes and how to configure them.

Monthly platform summary

One row per (month, platform). Five number columns. Good for a client-facing one-page tab.

Monthly platform summary settings
Group byMonth
DimensionsDate, Platform
MetricsImpressions, Clicks, Conversions, Spend, CTR, CR
FiltersLeave empty (include all)
ModeREPLACE (each push gives a fresh month-by-month view)

Daily campaign detail, one client, one platform

One row per (date, campaign) for a specific Google Ads account. The shape that lets a client dig into day-by-day campaign performance.

Daily campaign detail settings
Group byDay
DimensionsDate, Campaign
MetricsImpressions, Clicks, Conversions, Spend, CTR, CR, CPC, CPA (and any relevant custom ones)
FiltersPick the one Google Ads account under Accounts. Leave Campaigns empty to include them all
Platforms filter (on the card)Google Ads only
ModeAPPEND if archival, REPLACE if rolling

Yearly ROAS by campaign

One row per (year, campaign). Custom ROAS metric front-and-centre. Useful for an annual review.

Yearly ROAS by campaign settings
Group byYear
DimensionsDate, Campaign
MetricsSpend, Conversions, ROAS (a custom metric defined as conversions / spend)
FiltersLeave empty
ModeREPLACE

Related help