---
schema_version: "1"
id: 3dcd954ef8a6d845f5615d0d656fdbb2b7eca3ccf7305e0f0f3172abd724bb96
title: CRM Analytics Limits
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/analytics/264-0-0/bi_limits.md
canonical_url: https://help.salesforce.com/s/articleView?id=analytics.bi_limits.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 8b18f21f551a212d4677382d639df7a8c0e86004e2f6701c0a61fa6bfa155b73
description: When using CRM Analytics, keep these limits in mind.
products:
  - CRM Analytics
  - Cross Cloud
release: "264"
---
# CRM Analytics Limits

When using CRM Analytics, keep these limits in mind.

## API Call Limits

These limits apply to all supported editions.

 
| API Call | Limit |
| --- | --- |
| Maximum concurrent CRM Analytics API calls per org | 100 |
| Maximum CRM Analytics API calls per user per hour | 10,000 |

## Dataset Row Storage Allocations per License

In Salesforce org, your total row storage limit for all registered datasets combined depends on your license combination. Each license allocates a different number of rows.

 
| Baseline Row Allocation | Allocated Rows |
| --- | --- |
| CRM Analytics Plus | 10 billion |
| CRM Analytics Growth | 100 million |
| Sales Analytics | 25 million |
| Service Analytics | 25 million |
| Event Monitoring Analytics | 50 million |
| B2B Marketing Analytics | 25 million |
| CRM Analytics for Financial Services Cloud | 25 million |
| CRM Analytics for Health Cloud | 25 million |
| Extra Data Rows license | 100 million |

Your total row storage limit is a combination of your active licenses. For example: Because the CRM Analytics Plus license includes the Sales Analytics and Service Analytics licenses, your total row allocation remains 10 billion. Similarly, the CRM Analytics Growth license includes the Sales Analytics and the Service Analytics licenses, so your total row allocation remains 100 million. However, if you obtain another Sales Analytics or Services Analytics license, your row limit increases by 25 million for each added license.

## Dataset Row Limits

Each dataset supports up to 2 billion rows. If your Salesforce org has less than 2 billion allocated rows, each dataset supports up to your org’s allocated rows.

## Dataset Field Limits

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
          <colgroup>
            <col style="width:50%">
            <col style="width:50%">
          </colgroup>
          <thead class="slds-text-title_caps ">
            <tr class="">
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d90489e232">Value</th>
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d90489e235">Limit</th>
            </tr>
          </thead>
          <tbody>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e232 ">Maximum number of fields in a dataset</td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e235 ">
                <span id="bi_limits__InsightsLimitValue_MaxFieldsInDataset"><a name="bi_limits__InsightsLimitValue_MaxFieldsInDataset"><!-- --></a>5,000 (including up to 1,000 date fields)</span>
              </td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e232 ">Maximum number of decimal places for each value in a numeric field in a dataset
                (overflow limit)</td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e235 ">
                <p>
                  <span id="bi_limits__InsightsLimitValue_MaxDecimalPlaces"><a name="bi_limits__InsightsLimitValue_MaxDecimalPlaces"><!-- --></a>18 decimal places</span>
                </p>
                <p>When a value exceeds the maximum number of decimal places, it overflows. Both
                  1,000,000,000,000,000,000 and 100,000,000,000,000,000.0 overflow because they use
                  more than 18 decimal places. A number also overflows if it’s greater (or less)
                  than the maximum (or minimum) supported value. 576,460,752,303,423,488 overflows
                  because its value is greater than 576,460,752,303,423,487. -576,460,752,303,423,488
                  overflows because it’s less than -576,460,752,303,423,487.</p>
                <p>When a number overflows, the resulting behavior in CRM Analytics is
                  unpredictable. Sometimes CRM Analytics throws an error. Sometimes it replaces a
                  numeric value with a null value. And sometimes mathematical calculations, such as
                  sums or averages, return incorrect results. Occasionally, CRM Analytics handles
                  numbers up to 19 digits without overflowing because they are within the maximum
                  value for a 64-bit signed integer (2<sup>63</sup> - 1). But numbers of these
                  lengths aren’t guaranteed to process.</p>
                <p style="margin-bottom:0;">As a best practice, stick with numbers that are 18 decimal places or fewer. If
                  numbers that would overflow are necessary, setting lower precision and scale on
                  the dataset containing the large numbers sometimes prevents overflow. </p>
              </td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e232 ">Maximum value for each numeric field in a dataset, including decimal
                places</td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e235 ">
                <p>
                  <span id="bi_limits__InsightsLimitValue_MaxNumericValue"><a name="bi_limits__InsightsLimitValue_MaxNumericValue"><!-- --></a>576,460,752,303,423,488</span>
                </p>
                <p style="margin-bottom:0;">For
                  example, if three decimal places are used, the maximum value is
                  576,460,752,303,423,487</p>
              </td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e232 ">Minimum value for each numeric field in a dataset, including decimal
                places</td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e235 ">
                <p>
                  <span id="bi_limits__InsightsLimitValue_MinNumericValue"><a name="bi_limits__InsightsLimitValue_MinNumericValue"><!-- --></a>-576,460,752,303,423,488</span>
                </p>
                <p style="margin-bottom:0;">For
                  example, if five decimal places are used, the minimum value is
                  -576,460,752,303,423,487</p>
              </td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e232 ">
                <span id="bi_limits__fieldMaxCharsDesc"><a name="bi_limits__fieldMaxCharsDesc"><!-- --></a>Maximum number of characters in a field</span>
              </td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e235 ">
                <span id="bi_limits__fieldmaxchars"><a name="bi_limits__fieldmaxchars"><!-- --></a>32,000</span>
              </td>

            </tr>
          </tbody>
        </table>

## Data Sync Limits

If you extract more than 100 objects in your dataflows, contact Salesforce Customer Support before you enable data sync.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
          <colgroup>
            <col style="width:50%">
            <col style="width:50%">
          </colgroup>
          <thead class="slds-text-title_caps ">
            <tr class="">
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d90489e347">Value </th>
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d90489e350">Limit</th>
            </tr>
          </thead>
          <tbody>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e347 ">Maximum number of concurrent data sync runs</td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e350 ">
                <span id="bi_limits__maxConcurrentDataSyncJobs"><a name="bi_limits__maxConcurrentDataSyncJobs"><!-- --></a>3</span>
              </td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e347 ">Maximum number of objects that can be enabled for data sync, including local
                and remote objects</td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e350 ">
                <p>
                  <span id="bi_limits__objectsmaxnum"><a name="bi_limits__objectsmaxnum"><!-- --></a>100</span>
                </p>
                <p style="margin-bottom:0;">When you have both CRM Analytics and Salesforce Data Pipelines licenses, the
                  limit value stacks, with a stackable maximum of 600.</p>
              </td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e347 "> Maximum amount of time each data sync job can run for local objects </td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e350 ">24 hours</td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e347 "> Maximum amount of time each data sync job can run for remote objects </td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e350 ">
                <span id="bi_limits__DataSyncMaxTime"><a name="bi_limits__DataSyncMaxTime"><!-- --></a>12 hours</span>
              </td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e347 ">
                <p>Data sync limits for each job:</p>
                <ul>
                  <li>NetSuite Connector</li>

                  <li>Zendesk Connector</li>

                </ul>
              </td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e350 ">Up to 100,000 rows or 500 MB per object, whichever limit is reached
                first</td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e347 ">
                <p>Data sync limits for each job:</p>
                <ul>
                  <li>Amazon Athena Connector</li>

                  <li>Oracle Eloqua Connector</li>

                </ul>
              </td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e350 ">Up to 10 million rows or 5 GB per object, whichever limit is reached
                first</td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e347 ">
                <p>Data sync limits for each job*:</p>
                <ul>
                  <li>AWS RDS Aurora MySQL Connector</li>

                  <li>AWS RDS Aurora PostgresSQL Connector</li>

                  <li>AWS RDS MariaDB Connector</li>

                  <li>AWS RDS MySQL Connector</li>

                  <li>AWS RDS PostgreSQL Connector</li>

                  <li>AWS RDS SQL Server Connector</li>

                  <li>Google Analytics Core Reporting V4 Connector</li>

                  <li>Google Cloud Spanner Connector</li>

                  <li>Marketo Connector (Beta)</li>

                  <li>Microsoft Azure Synapse Analytics Connector</li>

                  <li>Microsoft Dynamics CRM Connector</li>

                  <li>Salesforce External Connector</li>

                  <li>Salesforce OAuth 2.0 Connector for Marketing Cloud Engagement</li>

                  <li>SAP HANA Cloud Connector</li>

                </ul>
              </td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e350 ">Up to 20 million rows or 10 GB per object, whichever limit is reached
                first</td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e347 ">
                <p>Data sync limits for each job*✝:</p>
                <ul>
                  <li>Amazon Redshift Connector</li>

                  <li>Amazon S3 Connector</li>

                  <li>Databricks Connector</li>

                  <li>Google BigQuery for Legacy SQL Connector</li>

                  <li>Google BigQuery Standard SQL Connector</li>

                  <li>Heroku Postgres Connector</li>

                  <li>Microsoft Azure SQL Database Connector</li>

                  <li>Salesforce External Connector</li>

                  <li>Snowflake Input Connector</li>

                </ul>
              </td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e350 ">Up to 100 million rows or 50 GB per object, whichever limit is reached
                first</td>

            </tr>
          </tbody>
        </table>

\*When using these connectors, Salesforce Government Cloud org data is protected in transit with advanced encryption and can sync up to 10 million rows or 5 GB for each connected object, whichever limit is reached first.

✝When you have both CRM Analytics and Salesforce Data Pipelines licenses, the higher limit of the two applies.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-analytics-bi-264-0-0-production-enus/ec791473-f5b4-4f64-a656-9104f455d966/images/icon_note.png)

Note When using a Salesforce local input connection, CRM Analytics bulk API usage doesn’t count towards Salesforce bulk API limits. Use of the external Salesforce connection and output connection impacts your limits.

The dataflow submits a separate bulk API call to extract data from each Salesforce object. The dataflow uses a batch size of 100,000–250,000, depending on whether the dataflow or the bulk API chunks the data. As a result, to extract 1 million rows from an object, the dataflow creates 4–10 batches.

## Recipe and Dataflow Limits

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-analytics-bi-264-0-0-production-enus/ec791473-f5b4-4f64-a656-9104f455d966/images/icon_important.png)

Important In Winter ‘24, recipe runs over 2 minutes are counted against the limit. Previously, the recipe run counts weren’t correct. For more information, see [Known Issue - Recipe runs are not counting towards the daily maximum run limit](https://issues.salesforce.com/issue/a028c00000iwyI0/view).

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
          <colgroup>
            <col style="width:50%">
            <col style="width:50%">
          </colgroup>
          <thead class="slds-text-title_caps ">
            <tr class="">
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d90489e569">Value</th>
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d90489e572">Limit</th>
            </tr>
          </thead>
          <tbody>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e569 ">
                Maximum amount of time each recipe or dataflow can run
              </td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e572 ">48 hours</td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e569 ">Maximum number of recipes</td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e572 ">1,000</td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e569 ">Maximum number of dataflows definitions (with data sync enabled)</td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e572 ">100</td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e569 ">Maximum number of dataflow and recipe runs in a rolling 24-hour period</td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e572 ">
                <p>
                  <span id="bi_limits__maxDataflowRunsIn24Hours"><a name="bi_limits__maxDataflowRunsIn24Hours"><!-- --></a>60</span>
                </p>
                <p style="margin-bottom:0;">Dataflow and recipe runs that take
                  less than 2 minutes (and data sync) don’t count toward this 24-hour run limit.
                  However, if you reach the 24-hour run limit, you can't run a dataflow, recipe, or
                  data sync job, regardless of size. CSV uploads don’t count towards this limit. You
                  can use Salesforce Data Pipelines to increase your recipes limit (not dataflow).
                  For more information, see <a href="https://help.salesforce.com/s/articleView?id=xcloud.sdp_limits.htm&amp;language=en_US" target="_blank">Salesforce Data Pipeline
                    Limits</a> and contact your Account Executive.</p>
              </td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e569 ">Maximum number of concurrent recipe runs</td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e572 ">
                <p>3</p>
                <p style="margin-bottom:0;">To allow up to 3 concurrent recipe runs, admins can select <strong class="uicontrol">Enable
                    concurrency limit sharing between dataflows and recipes</strong> in Analytics
                  Settings for a production org with the CRM Analytics Plus platform license.</p>
              </td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e569 ">
                <span id="bi_limits__maxConcurrentDataflowJobsDesc"><a name="bi_limits__maxConcurrentDataflowJobsDesc"><!-- --></a>Maximum number of concurrent dataflow
                  runs</span>
              </td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e572 ">
                <p>
                  <span id="bi_limits__maxConcurrentDataflowJobsPlusLong"><a name="bi_limits__maxConcurrentDataflowJobsPlusLong"><!-- --></a>2 for a production org with the CRM
                    Analytics Plus platform license</span>
                </p>
                <p style="margin-bottom:0;">
                  <span id="bi_limits__maxConcurrentDataflowJobsGrowthLong"><a name="bi_limits__maxConcurrentDataflowJobsGrowthLong"><!-- --></a>1 for a sandbox org or a production
                    org with the CRM Analytics Growth platform license</span>
                </p>
              </td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e569 ">Maximum dependent jobs for an event-based schedule</td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e572 ">5</td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e569 ">Maximum number of Data Prep previews per hour per user</td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e572 ">
                <span id="bi_limits__maxPreviewsPerHourPerUser"><a name="bi_limits__maxPreviewsPerHourPerUser"><!-- --></a>4,000</span>
              </td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e569 ">Timeout for data load jobs (dataflows, CSV uploads, recipes, and data sync)
                that have been scheduled but not executed</td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e572 ">
                <span id="bi_limits__InsightsLimitValue_TimeoutELTJobs"><a name="bi_limits__InsightsLimitValue_TimeoutELTJobs"><!-- --></a>5 minutes</span>
              </td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e569 ">Maximum length of a dataflow definition file</td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e572 ">
                <span id="bi_limits__maxDataflowDefinitionCharacters"><a name="bi_limits__maxDataflowDefinitionCharacters"><!-- --></a>1,000,000 characters</span>
              </td>

            </tr>
          </tbody>
        </table>

## Trending Data Limits

Trended datasets count toward the overall CRM Analytics platform limits, including total number of rows.

 
| Value | Limit |
| --- | --- |
| Maximum number of trended datasets per user | 5 |
| Maximum number of rows per snapshot | 100,000 |
| Maximum number of rows in the report to be trended | 500,000 for admins, 100,000 for non-admins |
| Maximum total number of rows in a trended dataset | 5,000,000 |
| Maximum monthly number of rows for all snapshots per org | 40 million |

## External Data Limits

 
| Value | Limit |
| --- | --- |
| Maximum file size per external data uploads | 40 GB |
| Maximum file size for all external data uploads in a rolling 24-hour period | 50 GB |
| Maximum number of external data jobs per dataset that can be run in a rolling 24-hour period\* | 50 |
| Maximum number of characters in a field | 32,000 |
| Maximum number of fields in a record | 5,000 (including up to 1,000 date fields) |
| Maximum number of characters for all fields in a record | 400,000 |

\*When you have both CRM Analytics and Salesforce Data Pipelines licenses, the limit value stacks.

## Output Connector Limits

When you have both CRM Analytics and Salesforce Data Pipelines licenses, the data size limit value stacks per 24-hour period.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
          <colgroup>
            <col style="width:50%">
            <col style="width:50%">
          </colgroup>
          <thead class="slds-text-title_caps ">
            <tr class="">
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d90489e930">Value</th>
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d90489e933">Limit</th>
            </tr>
          </thead>
          <tbody>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e930 ">Maximum data written to Salesforce</td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e933 ">
                <p>100 MB or 1 million rows per recipe run per output connector</p>
                <p style="margin-bottom:0;">100 MB or 1
                  million rows per rolling 24-hour period</p>
              </td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e930 ">Maximum data written to Azure Data Lake</td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e933 ">
                <p>100 MB per recipe run per output connector</p>
                <p style="margin-bottom:0;">100 MB per rolling 24-hour
                  period</p>
              </td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e930 ">Maximum data written to Amazon S3</td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e933 ">
                <p>10 GB or 10 million rows of data per recipe run per output connector</p>
                <p><span id="bi_limits__OutputCombinedS3andSnowflake"><a name="bi_limits__OutputCombinedS3andSnowflake"><!-- --></a>50 GB or 50 million rows per rolling 24-hour
                    period</span> (combined*)</p>
                <p style="margin-bottom:0;">12-hour maximum amount of time each job can
                  run.</p>
              </td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e930 ">Maximum data written to Snowflake through recipe or sync out</td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e933 ">
                <p>10 GB or 10 million rows of data per recipe run per output connector</p>
                <p><span>50 GB or 50 million rows per rolling 24-hour
                    period</span> (combined*)</p>
                <p style="margin-bottom:0;">12-hour
                  maximum amount of time each job can run.</p>
              </td>

            </tr>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e930 ">Maximum data written to Tableau Online</td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e933 ">
                <p>1 GB or 1 million rows of data per recipe run per output connector</p>
                <p>1 GB or 1
                  million rows per rolling 24-hour period</p>
                <p style="margin-bottom:0;">12-hour maximum amount of time each
                  job can run.</p>
              </td>

            </tr>
          </tbody>
        </table>

\*The limit for Snowflake Output or sync out and Amazon S3 Output connectors is a combined 50 GB or 50 million rows per rolling 24-hour period. For example, if you push 40 GB of data from CRM Analytics to Snowflake, 10 GB of allotted data remains to push to Amazon S3.

## Write to Data 360 Limits

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
          <colgroup>
            <col style="width:50%">
            <col style="width:50%">
          </colgroup>
          <thead class="slds-text-title_caps ">
            <tr class="">
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d90489e1028">Value</th>
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d90489e1031">Limit</th>
            </tr>
          </thead>
          <tbody>
            <tr class="">
              <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e1028 ">Maximum data written to Data 360</td>

              <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e1031 ">
                <p>200 million rows per recipe run per output connector </p>
                <p style="margin-bottom:0;">2 billion rows per
                  rolling 24-hour period</p>
              </td>

            </tr>
          </tbody>
        </table>

## Story Creation and Prediction Limits

For limits on story creation and predictions, see [Einstein Discovery Limits](https://help.salesforce.com/s/articleView?id=analytics.bi_edd_limits.htm&language=en_US).

## Sales Analytics and Service Analytics App Limits

The Sales Analytics and Service Analytics apps limit custom object support a maximum of 10 custom objects and one dataflow per app. These limits are contractual, not technical.

## Security Predicate Limit

This limit applies to all supported editions.

 
| Value | Limit |
| --- | --- |
| Maximum number of characters in a security predicate | 5,000 |

## CRM Analytics Developer Edition Limits

CRM Analytics is built on the Lightning Platform and is subject to the Lightning Platform limits. For example, the SOQL query limit (100,000 characters) controls the number of fields that the sfdcDigest transformation can extract data from. If you exceed a Lightning Platform limit, an error occurs. See [Lightning Platform limits](https://developer.salesforce.com/docs/atlas.en-us.salesforce_app_limits_cheatsheet.meta/salesforce_app_limits_cheatsheet/salesforce_app_limits_overview.htm).

 
| Value | Limit |
| --- | --- |
| Maximum number of data rows\* | 250,000 |
| Maximum number of concurrent queries | 5 |

\*When you have both CRM Analytics and Salesforce Data Pipelines licenses, the limit value stacks.

## Lens and Dashboard Limits

These limits apply to the creation and use of lenses and dashboards.

 
| Value | Limit |
| --- | --- |
| Maximum JSON file size per dashboard | 4 MB |
| Maximum number of dashboard components per dashboard | 20 |
| Character limit for description fields | 1000 |
| Default number of rows in a compare table | 2000 (To set a different value, use the SAQL `limit` statement) |
| Default number of rows in a values table | 100 (To set a different value, use the SAQL `limit` statement) |
| Maximum file size for `geojson` | 10 MB |
| Maximum number of notifications per user | 10 |
| Maximum number of recipients per notification email | 500 |
| Maximum number of widget subscriptions per user | 20 |
| Maximum number of subscriptions to collections per user | 4 |
| Maximum number of widget subscriptions per hour per org | 100 |
| Maximum number of dashboard subscriptions per user (Slack) | 10 |
| Maximum number of dashboard subscriptions per hour per org (Slack) | 500 |
| Maximum number of data cells that can be exported from a lens or widget to an Excel file | 6,000,000 |
| Maximum amount of data that can be exported to a file from a lens or widget backed by Direct Data for Data 360 | 50000 rows |
| Maximum number of data cells that can be exported to a CSV file from a lens or widget connected to Snowflake Live data | 10000 |

## Analytics Download Limits

These limits apply to the download of Analytics assets as .png or .pdf files using the Analytics Download API. Analytics assets available for download include CRM Analytics dashboards and lenses and Lightning Experience dashboards and reports. To use the Analytics Download API, your org must have CRM Analytics for Slack enabled. For more information, see [Analytics Download](https://developer.salesforce.com/docs/analytics/salesforce-analytics-rest-api/guide/analytics-api-download-reference-resource.html).

 
| Value | Limit |
| --- | --- |
| Maximum concurrent Analytics Download API calls per user | 1 per format type (i.e., one Excel download and one CSV download can be in progress at a time) |
| Maximum number of columns included in a downloaded .pdf file | 20 |
| Maximum number of pages in a downloaded .pdf file | 100 |

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-analytics-bi-264-0-0-production-enus/ec791473-f5b4-4f64-a656-9104f455d966/images/icon_note.png)

Note For dashboards downloaded as accessible .pdf files, each widget is represented as a table of data. If a table begins within the 100-page limit, the entire table is included even if the page limit is exceeded. Any table that begins after 100 pages isn't included in the .pdf file.

## CRM Analytics Query Limits

Be aware of these limits as you work with CRM Analytics queries.

Query Limits

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
                <colgroup>
                  <col style="width:50%">
                  <col style="width:50%">
                </colgroup>
                <thead class="slds-text-title_caps ">
                  <tr class="">
                    <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d90489e1480">Limit </th>
                    <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d90489e1483">Value</th>
                  </tr>
                </thead>
                <tbody>
                  <tr class="">
                    <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e1480 ">Maximum concurrent queries per
                      organization</td>

                    <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e1483 "><span id="bi_querylimits__InsightsLimitValue_MaxConcurrentQueriesPerOrg"><a name="bi_querylimits__InsightsLimitValue_MaxConcurrentQueriesPerOrg"><!-- --></a>50</span> per platform</td>

                  </tr>
                  <tr class="">
                    <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e1480 ">Maximum concurrent queries per user</td>

                    <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e1483 ">
                      <span id="bi_querylimits__InsightsLimitValue_MaxConcurrentQueriesPerUser"><a name="bi_querylimits__InsightsLimitValue_MaxConcurrentQueriesPerUser"><!-- --></a>10</span>
                    </td>

                  </tr>
                  <tr class="">
                    <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e1480 ">
                      <p>Maximum number of rows returned per
                        query</p>
                      <p style="margin-bottom:0;">25,000 is the default maximum value. To
                        set a different value, use the SAQL <code>limit</code>
                        statement</p>
                    </td>

                    <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e1483 ">25,000*</td>

                  </tr>
                  <tr class="">
                    <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e1480 ">Query timeout</td>

                    <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d90489e1483 ">
                      <span id="bi_querylimits__InsightsLimitValue_QueryTimeout"><a name="bi_querylimits__InsightsLimitValue_QueryTimeout"><!-- --></a>2
                        minutes</span>
                    </td>

                  </tr>
                </tbody>
              </table>

\*The maximum results returned by a query vary based on the query’s type and whether it’s executed from a desktop or the mobile app.

  
| Query Type | Desktop Default Limit | Mobile Default Limit |
| --- | --- | --- |
| `aggregateflex` | 2,000 | 500 |
| `grain` (for values tables only) | 100 | 100 |
| `saql` | 2,000 | 2,000 |
| `soql` | See SOQL and SOSL Reference. | See SOQL and SOSL Reference |
| `staticflex` | n/a | n/a |

![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-analytics-bi-264-0-0-production-enus/ec791473-f5b4-4f64-a656-9104f455d966/images/icon_tip.png)

Tip To see the `limit` for a given query, click ![SAQL Mode button](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-analytics-bi-264-0-0-production-enus/ec791473-f5b4-4f64-a656-9104f455d966/bi/images/bi/bi_saql_mode_button.png) in the lens. If it’s not set, CRM Analytics returns up to 10,000 results. To change the limit, edit the SAQL or SOQL query. The higher you increase the limit, the longer the query runs. For more information about SAQL queries, see the [Analytics SAQL Developer Guide](https://resources.docs.salesforce.com/232/latest/en-us/sfdc/pdf/bi_dev_guide_saql.pdf). For information about SOQL queries, see Salesforce Object Query Reference.

The limit only affects the number of records returned for display; it doesn’t affect calculations across all dataset records. For instance, say that a query groups by account name and the dataset contain 1 million account names. With a limit of 20, CRM Analytics only returns 20 results for display, but the summary row adds up all 1 million records.

CRM Analytics Direct Data Query Limits

These limits apply to Direct Data for Snowflake and Direct Data for Google BigQuery.

 
| Limit | Value |
| --- | --- |
| Maximum concurrent queries per organization | 25 |
| Maximum concurrent queries per user | 5 |
| Maximum number of rows returned per query | 5,000 |
| Query timeout | 2 minutes |

#### See Also

- [CRM Analytics Limitations](https://help.salesforce.com/s/articleView?id=analytics.bi_limitations.htm&release=264.0.0&type=5 "CRM Analytics differs from other Salesforce features in some ways.")
- [How Salesforce Data Pipelines and CRM Analytics Work Together](https://help.salesforce.com/s/articleView?id=xcloud.sdp_interoperability.htm&type=5&language=en_US)