When to Use It
Use this node to:- Generate automated sales and performance reports
- Track order metrics and customer behavior over time
- Create data-driven insights for business decisions
- Export data for further analysis in external tools
- Monitor inventory levels and product performance
Setup Requirements
Before using this node, you need to connect your Shopify store to Markifact. Follow our step-by-step guide:How to Connect Your Shopify Store
Complete setup guide with screenshots
Inputs
Field | Type | Required | Description |
---|---|---|---|
Date Range | Date range picker | Yes | Select date range for the report |
Metrics | Multi-select | Yes | Select metrics to include in the report |
Dimensions | Multi-select | No | Select dimensions to segment your data |
Filters | Rule-based filters | No | Add filters to refine your data |
Order By | Sort configuration | No | Set the order of results |
Limit | Number | No | Maximum number of rows to return |
Options | Report options | No | Additional options for the report |
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 | Product type equals “Electronics” |
NOT_EQUALS | Does not match exactly | Order status not equals “cancelled” |
CONTAINS | Contains substring | Product title contains “iPhone” |
NOT_CONTAINS | Does not contain substring | Product title doesn’t contain “test” |
IN_LIST | Matches any value in list | Order status in [“fulfilled”, “paid”] |
NOT_IN_LIST | Doesn’t match any value in list | Payment status not in [“pending”] |
REGEXP_MATCH | Matches regular expression | Product title matches ”.(phone|tablet).” |
NOT_REGEXP_MATCH | Doesn’t match regex | Product title doesn’t match “test.*“ |
GREATER_THAN | Numeric greater than | Order value > 100 |
LESS_THAN | Numeric less than | Quantity < 10 |
IS_NULL | Field has no value | Discount code is null |
IS_NOT_NULL | Field has a value | Discount code is not null |
Filter Examples
Example 1: High-value fulfilled ordersOR Logic with Filters
Since multiple filters use AND logic, use these approaches for OR conditions:- IN_LIST operator:
Order status IN ["fulfilled", "shipped", "delivered"]
- REGEXP_MATCH operator:
Product type REGEXP_MATCH ".*(electronics|accessories|gadgets).*"
- Run separate queries: Create different workflows for different conditions
Options Reference
These optional settings let you format the output from Shopify before passing it to other nodes.Option | Description |
---|---|
Pretty Column Names | Converts column headers to Title Case (e.g. orderValue becomes Order Value ) |
Add Percent Sign to Ratios | Appends % to ratio metrics like Conversion 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 with performance metrics and dimensions. The exact format depends on your configuration and the data returned from Shopify. Typical Output Structure:- Data Rows: Performance metrics and dimensions
- Metadata: Store information, date ranges, and query details
- Summary Statistics: Total records, data freshness, execution time
- 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)
Example Setup
- Date Range: Last 30 days
- Metrics: Total Sales, Order Count, New Customers, Average Order Value
- Dimensions: Date, Product Type
- Filters: Order Status = “fulfilled”
- Limit: 1000 rows
FAQs
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 operatorOption 2: REGEXP_MATCH operatorOption 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.
Product title CONTAINS "iPhone"
finds any product with “iPhone” anywhere in the title - REGEXP_MATCH: Advanced pattern matching.
Product title REGEXP_MATCH "^iPhone.*"
finds products that START with “iPhone”
Why are my filters not working?
Why are my filters not working?
Common filter issues:
- Case sensitivity: “Electronics” ≠ “electronics”. Use CONTAINS or regex for flexible matching
- Data type mismatch: Don’t use text operators on numeric fields like order value
- Field availability: Not all dimensions/metrics support all filter operators
- Syntax errors: Check regex patterns for proper escaping
Why don't I see an Accounts field like other advertising platforms?
Why don't I see an Accounts field like other advertising platforms?
Shopify connections are store-specific - each connection represents one Shopify store. You don’t need to select accounts because the node automatically uses your connected store’s data.
How do I connect multiple Shopify stores?
How do I connect multiple Shopify stores?
Each Shopify store requires a separate connection in Markifact. You’ll need to:
- Use different Get Report nodes for each store’s data
- Create individual connections with each store’s credentials
Why am I getting 'No data found' errors?
Why am I getting 'No data found' errors?
Common causes of empty results:
- Date range: The selected period may have no orders or activity
- Filters: Your filters may be too restrictive
- Store status: Your store may be in development mode or have no sales
- Permissions: Check that your access token has the required permissions
- Connection: Verify your Shopify connection is still active
Why is my data different from Shopify admin?
Why is my data different from Shopify admin?
Data discrepancies can occur due to:
- Order statuses: Different filters applied (e.g., including/excluding refunds)
- Data freshness: Reports may take time to sync
- Calculation methods: Different aggregation methods between Shopify admin and API
My API token isn't working - what should I check?
My API token isn't working - what should I check?
If your API token fails:
- Token visibility: API tokens are only shown once when created
- Permissions: Ensure you selected the required scopes (
read_orders
,read_customers
,read_inventory
) - App status: Verify your custom app is installed and active
- Token expiry: Check if you need to regenerate the token
- Store ID: Confirm you’re using the correct store ID from your admin URL
How do I find my Shopify Store ID?
How do I find my Shopify Store ID?
Your Store ID is in your Shopify admin URL:
- Log in to your Shopify admin dashboard
- Look at the URL in your browser
- Find the text after
/store/
in the URL - Example: In
https://admin.shopify.com/store/my-store
, your Store ID ismy-store
What should I do if my connection stops working?
What should I do if my connection stops working?
If your Shopify connection fails:
- Check if your custom app is still installed in Shopify
- Verify the access token hasn’t been revoked
- Ensure your Shopify store is active and accessible
- Try reconnecting with a new access token
- Contact support if issues persist