You are here:
Forecast Quotas from External Sources
Data Loader provides a simple point-and-click method for adding, inspecting, and editing quota data in Salesforce. APIs provide more flexibility but require you to write code.
Required Editions
| Available in: both Salesforce Classic and Lightning Experience |
Available in: Performance and Developer Editions and in Enterprise and Unlimited Editions with Sales Available in: Professional Edition with the API Enabled permission |
Data Access and Availability
The data for quotas is stored in the ForecastingQuota object. Users who have access to import data and who have the Manage Quotas permission can update quota data for users below them in the forecast hierarchy. Users who have access to import data and also have the Manage Quotas and View All Forecast permissions can load data for all users in the forecast hierarchy.
Data Preparation
Import quota data to the Forecasting Quota object using Data Loader. If you need more flexibility than what Data Loader provides, use Enterprise API. To use either method, ensure that API access is enabled and prepare a .csv file that contains these columns.
- User ID
- Forecast Type ID
- Quota Amount or Quota Quantity (depending on how you forecast)
- Currency Code
- Period Start Date (yyyy-mm-dd or yyyy-mm-ddThh:mm:ss.sssZ; for example, 2012–03–01T08:00:00.00Z)
If you use territory forecasts, include a Territory ID column. If you use product family forecasts, include a column for product family.
To help organize the .csv file, you can also include columns for Forecast Owner Name and Forecast Type Name, but those columns aren’t required. Here’s an example .csv file setup using Quota Amount and the additional columns added for organization purposes.
| User Name | User ID | Forecast Type Name | Forecast Type ID | Quota Amount | Currency Code | Start Date |
|---|---|---|---|---|---|---|
| Kevin Bailey | 00599000000Hofh | OpportunityRevenue | 0DbD00000001eQBKAY | 250000 | USD | 2012–03–01 |
| Kevin Bailey | 00599000000Hofh | OpportunityRevenue | 0DbD00000001eQBKAY | 250000 | USD | 2012–04–01 |
| Kevin Bailey | 00599000000Hofh | OpportunityRevenue | 0DbD00000001eQBKAY | 250000 | USD | 2012–05–01 |
Data Mapping
When you complete the import, map the columns in your .csv file to the ForecastingQuota object as shown in this table.
| Column Headers in CSV File | ForecastingQuota Fields |
|---|---|
| User ID | QuotaOwnerID |
| Quota Amount | QuotaAmount |
| Quota Quantity | QuotaQuantity |
| Currency Code | CurrencyIsoCode |
| Start Date | StartDate |
| Product Family (needed only when the forecast data source is Product Families) | ProductFamily |
| Forecast Type ID | ForecastingTypeID |
| Territory ID | Territory2ID |
Additional Considerations for Loading Quota Data
As a best practice, load quota data in the quota owner’s personal currency. You can still upload quota data using the API even if Show Quotas is disabled. If your Data Loader time zone setting is ahead of quota owners’ time zones, the month can be off by one. To avoid this problem, use a date greater than or equal to the third day of each month when inserting quotas.

