---
title: shopify_forms
description: >-
  Reference for the ShopifyQL `shopify_forms` table. Every metric and dimension,
  paired with worked example queries.
api_version: 2026-07
source_url:
  html: >-
    https://shopify.dev/docs/api/shopifyql/latest/schemas/sessions_and_behavior/shopify_forms
  md: >-
    https://shopify.dev/docs/api/shopifyql/latest/schemas/sessions_and_behavior/shopify_forms.md
api_name: shopifyql
---

# shopify\_​forms

The `shopify_forms` [schema](https://shopify.dev/docs/api/shopifyql/latest/schemas) captures events generated by Shopify Forms. It supports form interaction reporting by form, page type, form type, and product context when available.

### Use cases

* **Form interactions**: Group [`form_views`](#shopifyformsmetric-propertydetail-formviews) and [`form_submissions`](#shopifyformsmetric-propertydetail-formsubmissions) by [`form_id`](#shopifyformsdimension-propertydetail-formid) to compare views against submissions per form.
* **Conversion by type**: Compare [`form_conversion_rate`](#shopifyformsmetric-propertydetail-formconversionrate) by [`form_type`](#shopifyformsdimension-propertydetail-formtype) to see which form types convert best.
* **Form placement**: Break down form activity by [`form_page_type`](#shopifyformsdimension-propertydetail-formpagetype) to show where forms were displayed.
* **Product context**: Use [`product_id`](#shopifyformsdimension-propertydetail-productid) when form events need to be attributed to product context.

Examples

### Examples

* ####

  ##### Description

  Rank the top 50 forms by \`form\_conversion\_rate\` this quarter, with views and submissions. This example uses \[\`HAVING\`]\(/docs/api/shopifyql/latest/syntax/having) \`form\_views > 100\` to drop low-traffic forms from the ranking.

  ##### ShopifyQL

  ```shopifyql
  FROM shopify_forms
    SHOW form_views, form_submissions, form_conversion_rate
    GROUP BY form_id, form_type, form_page_type
    HAVING form_views > 100
    DURING this_quarter
    ORDER BY form_conversion_rate DESC
    LIMIT 50
  VISUALIZE form_conversion_rate TYPE list_with_dimension_values
  ```

* ####

  ##### Description

  Show \`form\_conversion\_rate\` by form type and page type this quarter. This example uses a \[\`GROUP\_TOTALS\`]\(/docs/api/shopifyql/latest/syntax/with#group-total-columns) subtotal to roll each form type up across its page types.

  ##### ShopifyQL

  ```shopifyql
  FROM shopify_forms
    SHOW form_views, form_conversion_rate
    GROUP BY form_type, form_page_type WITH GROUP_TOTALS
    HAVING form_views > 100
    DURING this_quarter
    ORDER BY form_type ASC, form_page_type ASC
  VISUALIZE form_conversion_rate TYPE heatmap
  ```

* ####

  ##### Description

  Chart weekly \`form\_conversion\_rate\` across this quarter, with \`form\_views\` and \`form\_submissions\`. This example uses \[\`WITH TOTALS\`]\(/docs/api/shopifyql/latest/syntax/with#total-columns) to add a quarter-to-date column beside the weekly rows.

  ##### ShopifyQL

  ```shopifyql
  FROM shopify_forms
    SHOW form_views, form_submissions, form_conversion_rate
    TIMESERIES week WITH TOTALS
    DURING this_quarter
    ORDER BY week ASC
  VISUALIZE form_conversion_rate TYPE line
  ```

* ####

  ##### Description

  Compare \`form\_submissions\` last month against the month before. This example uses \[\`COMPARE TO previous\_period\`]\(/docs/api/shopifyql/latest/syntax/compare-to) to benchmark your date range against the equal-length period right before it.

  ##### ShopifyQL

  ```shopifyql
  FROM shopify_forms
    SHOW form_submissions
    WITH PERCENT_CHANGE
    DURING last_month
    COMPARE TO previous_period
  ```

***

## Metrics

Counts and calculations that let you track key business indicators. Metrics show up as the columns when queried.

Metrics you can use when querying `FROM shopify_forms`.

* **form\_​conversion\_​rate**

  **PERCENT**

  The share of Shopify Form views that became submissions.

  `Form conversion rate = form_submissions / form_views`

* **form\_​submissions**

  **INTEGER**

  Submissions of Shopify Forms

* **form\_​views**

  **INTEGER**

  Views of Shopify Forms

### PERCENT

A percentage value represented as a decimal, where 0.25 represents 25%.

```ts
```

### INTEGER

A whole number without decimal places, used for counts, quantities, and other discrete numeric values.

```ts
```

***

## Dimensions

Attributes of your data that let you look more granularly at aspects of the data. Group and filter by dimensions to shape the rows your query returns.

Dimensions you can use when querying `FROM shopify_forms`.

* **day**

  **DAY\_TIMESTAMP**

  Use this field to group Shopify Forms activity by day.

* **day\_​of\_​week**

  **DAY\_OF\_WEEK**

  Day of week the data was recorded

* **form\_​id**

  **IDENTITY**

  Shopify identifier for the Shopify Form

* **form\_​page\_​type**

  **STRING**

  The kind of store page where a Shopify Form appeared, such as Product, Home, Cart, or Search results.

* **form\_​type**

  **STRING**

  How the Shopify Form was displayed on the page, with values Floating, Inline, Overlay, and Other.

* **hour**

  **HOUR\_TIMESTAMP**

  Use this field to group Shopify Forms activity by hour.

* **hour\_​of\_​day**

  **HOUR\_OF\_DAY**

  Hour of day the data was recorded

* **minute**

  **MINUTE\_TIMESTAMP**

  Use this field to group Shopify Forms activity by minute.

* **month**

  **MONTH\_TIMESTAMP**

  Use this field to group Shopify Forms activity by month.

* **month\_​of\_​year**

  **MONTH\_OF\_YEAR**

  Month of year the data was recorded

* **product\_​id**

  **IDENTITY**

  The unique Shopify identifier for the product associated with Shopify Forms activity. One product can include multiple variants. Use it with [`product_title`](#shopifyformsdimension-propertydetail-producttitle) to show readable labels.

* **quarter**

  **QUARTER\_TIMESTAMP**

  Use this field to group Shopify Forms activity by quarter.

* **second**

  **SECOND\_TIMESTAMP**

  Use this field to group Shopify Forms activity by second.

* **shop\_​id**

  **IDENTITY**

  The unique Shopify identifier for your store. Use [`shop_id`](#shopifyformsdimension-propertydetail-shopid) with [`shop_name`](#shopifyformsdimension-propertydetail-shopname) to show readable store labels.

* **week**

  **WEEK\_TIMESTAMP**

  Use this field to group Shopify Forms activity by week.

* **week\_​of\_​year**

  **WEEK\_OF\_YEAR**

  Week of year the data was recorded

* **year**

  **YEAR\_TIMESTAMP**

  Use this field to group Shopify Forms activity by year.

* **product\_​status**

  **STRING**

  The product's current publishing state, with values Active, Archived, Draft, Suspended, and Unlisted.

* **product\_​title**

  **STRING**

  Display name of the product that your customers see

* **product\_​type**

  **STRING**

  Type (category) that you've assigned to the product

* **product\_​vendor**

  **STRING**

  Vendor of the product

* **shop\_​name**

  **STRING**

  Name of your store

* **product\_​collection**

  **STRING**

  Collection associated with the product

* **product\_​collections**

  **ARRAY\<STRING>**

  Set of collections associated with the product

* **product\_​tag**

  **STRING**

  Tag associated with the product

* **product\_​tags**

  **ARRAY\<STRING>**

  Set of tags associated with the product

### DAY\_TIMESTAMP

A date value truncated to day precision.

```ts
```

### DAY\_OF\_WEEK

A day within a week, used for weekday-based grouping and filtering.

```ts
```

### IDENTITY

A unique identifier for a Shopify resource such as a customer, product, or order.

```ts
```

### STRING

A sequence of characters representing text data.

```ts
```

### HOUR\_TIMESTAMP

A timestamp truncated to hour precision.

```ts
```

### HOUR\_OF\_DAY

An hour within a day, typically represented as an integer from 0 to 23.

```ts
```

### MINUTE\_TIMESTAMP

A timestamp truncated to minute precision.

```ts
```

### MONTH\_TIMESTAMP

A date value representing the start of a month.

```ts
```

### MONTH\_OF\_YEAR

A month number within a year.

```ts
```

### QUARTER\_TIMESTAMP

A date value representing the start of a fiscal quarter.

```ts
```

### SECOND\_TIMESTAMP

A timestamp truncated to second precision.

```ts
```

### WEEK\_TIMESTAMP

A date value representing the start of a week.

```ts
```

### WEEK\_OF\_YEAR

A week number within a year.

```ts
```

### YEAR\_TIMESTAMP

A date value representing the start of a year.

```ts
```

### ARRAY

A list of values. The element type appears inside angle brackets, such as ARRAY\<STRING>.

```ts
```

***

## Related schemas

* [`campaign_sessions`](https://shopify.dev/docs/api/shopifyql/latest/schemas/marketing/campaign_sessions): Session-level funnel signals for traffic patterns that feed forms.
* [`sessions`](https://shopify.dev/docs/api/shopifyql/latest/schemas/sessions_and_behavior/sessions): Storewide session data for a denominator beyond campaign traffic.
* [`marketing_engagements`](https://shopify.dev/docs/api/shopifyql/latest/schemas/marketing/marketing_engagements): Engagement, click, and spend data alongside form capture activity.

***
