Get Report
Fetch analytics data from Google Analytics 4 using selected metrics, dimensions, and filters.
The Get Report node lets you query GA4 data across one or more properties, filtered by time range, metrics, dimensions, and more. It returns tabular results that can be analyzed with AI or sent to reporting tools.
When to Use It
Use this node to:
- Pull campaign or website performance data
- Analyze user behavior and engagement
- Feed structured data into downstream AI or reporting nodes
Inputs
Field | Type | Required | Notes |
---|---|---|---|
Properties | Dynamic multi-select | Yes | Select up to 10 GA4 properties to query |
Date Range | Date range picker | Yes | Supports presets like Yesterday, Last 7 Days |
Metrics | Multi-select | Yes | Choose up to 20 metrics (e.g., sessions, users, bounceRate) |
Dimensions | Multi-select | No | Up to 10 dimensions (e.g., source, device, pagePath) |
Filters | Rule-based filters | No | Filter data using AND/OR conditions (e.g., session duration > 30s) |
Order By | Sort configuration | No | Sort results by one or more fields |
Limit | Number (1–10,000) | No | Max number of rows returned (default: 1000) |
Filters
Filters allow you to refine your data by applying conditions to specific dimensions or metrics. Multiple filters use AND logic - all conditions must be met for a row to be included in the results.
Available Filter Operators
Operator | Description | Example Use Case |
---|---|---|
EQUALS | Exact match | Source equals “google” |
NOT_EQUALS | Does not match exactly | Device not equals “tablet” |
CONTAINS | Contains substring | Page path contains “/blog” |
NOT_CONTAINS | Does not contain substring | Page path doesn’t contain “/admin” |
IN_LIST | Matches any value in list | Source in [“google”, “facebook”] |
NOT_IN_LIST | Doesn’t match any value in list | Device not in [“tablet”] |
REGEXP_MATCH | Matches regular expression | Page path matches ”.(blog|news).” |
NOT_REGEXP_MATCH | Doesn’t match regex | Page path doesn’t match “test.*“ |
GREATER_THAN | Numeric greater than | Sessions > 100 |
LESS_THAN | Numeric less than | Bounce rate < 0.5 |
IS_NULL | Field has no value | Campaign is null |
IS_NOT_NULL | Field has a value | Campaign is not null |
Filter Examples
Example 1: High-engagement sessions
Example 2: Organic traffic using regex (OR logic)
Example 3: Exclude internal traffic
OR Logic with Filters
Since multiple filters use AND logic, use these approaches for OR conditions:
- IN_LIST operator:
Source IN ["google", "facebook", "twitter"]
- REGEXP_MATCH operator:
Source REGEXP_MATCH ".*(google|bing|yahoo).*"
- Run separate queries: Create different workflows for different conditions
Options Reference
These optional settings let you format the output from GA4 before passing it to other nodes.
Option | Description |
---|---|
Pretty Column Names | Converts column headers to Title Case (e.g. Sessions instead of sessions ) |
Add Percent Sign to Ratios | Appends % to ratio metrics like Bounce Rate or Engagement Rate |
Display Currency Symbol | Adds $ or local currency symbol to monetary metrics |
Compact Numbers | Converts large numbers to short format (e.g. 10K instead of 10,000 ) |
Pivot Dimensions as Columns | Transforms dimension values into separate columns for easier comparison |
Output
The node returns a structured dataset:
- One row per combination of dimensions
- One column per metric
- Aggregated across selected properties unless split by
account_name
oraccount_id
Can be passed to:
- AI nodes like Analyze Data or Structured Output
- Export nodes (e.g., Google Sheets)
- Email or Slides nodes
Credit Cost
- Cost per run: 1 credit (per successful execution)
- No credit is charged if the node fails due to invalid config or auth issues.
Example Setup
- Trigger: Recurring Schedule (daily)
- Node: Get Report
- Properties: Select 2 accounts
- Metrics:
sessions
,users
- Dimensions:
source
,deviceCategory
- Date Range: “Last 7 Days”
- Connect to: AI → Analyze Data for summary
- Output to: Email or Slides
FAQs
What happens if I select multiple GA4 properties?
What happens if I select multiple GA4 properties?
The data will be aggregated across all selected properties into a single dataset.
If you’d like to break it out by property, add the account_name
or account_id
dimension to segment results per property.
Why am I seeing an “(other)” row in the results?
Why am I seeing an “(other)” row in the results?
GA4 groups uncommon values into an “(other)” bucket when there are too many unique dimension values.
To reduce this, use fewer dimensions—especially high‑cardinality ones like pagePath
or custom dimensions.
Why don’t the totals match in GA4 UI vs. the data I pulled?
Why don’t the totals match in GA4 UI vs. the data I pulled?
GA4 sometimes shows estimated unique counts in the UI (like sessions), while the API returns calculated values.
This can lead to slight mismatches between UI and API totals.
Why is my report sampled or missing rows?
Why is my report sampled or missing rows?
GA4 applies sampling when queries exceed processing limits.
We automatically chunk large requests by day to minimize this, but if you still see sampling:
- Use a shorter date range
- Limit the number of dimensions and filters
- Check if the sample rate is below 100%
Why do some metrics return zero when using attribution dimensions?
Why do some metrics return zero when using attribution dimensions?
Some attribution-related dimensions (like source
, medium
, campaign
) can cause metrics like sessions
or users
to return 0.
GA4 may not always link session-level data cleanly to those dimensions. Try removing those fields or using fewer metrics.
Am I hitting row or query limits?
Am I hitting row or query limits?
Yes. GA4’s API returns a maximum of 10,000 rows per request.
To avoid truncation:
- Reduce the number of dimensions
- Filter the data
- Use a smaller date range
Why did I get an 'incompatible fields' error?
Why did I get an 'incompatible fields' error?
GA4 enforces strict dimension-metric compatibility.
If you mix incompatible fields, the API will fail or return empty results.
To fix it, consult GA4’s Dimensions & Metrics Explorer to check allowed combinations.
How do I combine filters with OR logic?
How do I combine filters with OR logic?
Multiple filters always use AND logic (all conditions must be true). For OR logic, use:
Option 1: IN_LIST operator
Option 2: REGEXP_MATCH operator
Option 3: Run separate workflows Create different Get Report nodes for different conditions, then combine the data downstream.
What's the difference between CONTAINS and REGEXP_MATCH?
What's the difference between CONTAINS and REGEXP_MATCH?
- CONTAINS: Simple substring search.
Source CONTAINS "google"
finds any source with “google” anywhere in the name - REGEXP_MATCH: Advanced pattern matching.
Source REGEXP_MATCH "^google.*"
finds sources that START with “google”
Use CONTAINS for simple text searches, REGEXP_MATCH for complex patterns or OR conditions.
Why are my filters not working?
Why are my filters not working?
Common filter issues:
- Case sensitivity: “Google” ≠ “google”. Use CONTAINS or regex for flexible matching
- Data type mismatch: Don’t use text operators on numeric fields
- Field availability: Not all dimensions/metrics support all filter operators
- Syntax errors: Check regex patterns for proper escaping
How do I show clean or readable column names in my output?
How do I show clean or readable column names in my output?
Check the Pretty Column Names option in the “Options” section of the node.
This will automatically convert raw GA4 metric keys into human-friendly, Title Case labels like Sessions
, Users
, or Bounce Rate
.