- 23 Aug 2023
- 8 Minutes to read
Airtable Sync integration: Salesforce
- Updated on 23 Aug 2023
- 8 Minutes to read
Learn how to use the Airtable Sync integration feature to bring information from external applications into a single, centralized table within Airtable. This article covers how to sync Salesforce report data to an Airtable base.
|Plan availability||Business and Enterprise Scale access only|
Owners/Creators - In order to create or update synced tables, you'll need to have creator permissions in the base where you are setting up the sync.
|Platform(s)||Web/Browser, Mac app, and Windows app|
Start by clicking the + Add or import button next to your list of tables. Then, under Sync data from, select the Salesforce option.
Select an existing Salesforce account (if you’ve already connected to Salesforce), or link to a new Salesforce account. We’ll ask you to allow Airtable access to your Salesforce account.
Once you link to the account, select that account to use to create the synced table. You’ll then be able to choose a Report and Unique ID column within the report.
When you choose a report, we strongly recommend choosing a report with filters that won’t change. Whenever a report’s filters are changed in Salesforce, records that no longer match the filters are deleted, along with any additions made in Airtable.
For example, if you’ve synced a Salesforce report that contains only open opportunities, and one of those opportunities is closed (so it no longer meets the filter), the associated Airtable record will be deleted along with any record comments and activity, and other field data that may have been added. If that same opportunity moves back to open, a new Airtable record will be created.
For some types of reports, you may be asked to choose a Unique ID field. This is the field in the report that will allow Airtable to uniquely identify that row in Salesforce. For reports where the Unique ID is automatically selected for you, you won’t see an option to change it.
When you choose the Unique ID column in Salesforce, choose an ID column that is unique and won’t change. This column is how Airtable identifies the original row in Salesforce. If that column’s value changes in Salesforce, the record will be deleted and re-created, and any additions made within Airtable will be lost.
As a result, we recommend choosing an ID column that is unlikely to change. If you’ve lost Airtable records due to a changed filter, we may be able to help. Please reach out to our support team to request help.
The Unique ID field cannot be changed after the synced table is created.
After clicking next, you’ll be presented with field configuration options. First, select what data you want to use for the Primary field of your table (the first field in the table). The value chosen for the primary field can be a different value than the Unique ID field chosen in the previous step.
The primary field cannot be changed after the synced table is created.
Next, choose between two options to sync:
- All fields from the source view, including any fields added by Salesforce in the future
- Specific fields from the source view
If you choose to sync specific fields you’ll be shown a menu where you can toggle each individual field that you want to sync from Salesforce.
Before creating your synced table, there are Settings options that allow you choose how often you want to sync, and how to handle records deleted or hidden in the source (Salesforce).
- The frequency of syncing. Right now, the options are manual syncing and automatic syncing which happens around every hour for this particular Salesforce sync feature.
- Whether or not deleted records (rows from the Salesforce report) should be removed from the Airtable table. By default, deleted rows will be removed.
Once you’ve selected your desired settings, click the Create table button. The sync operation will retrieve rows from the selected Salesforce report and generate Airtable records. If the report has groupings, those groupings will also be automatically added to the main grid view of the synced table.
Security and OAuth scopes
The most important scope listed here is API. Unfortunately, Salesforce does not have very granular OAuth scopes, and API is the minimal scope required to view and run reports. The OAuth consent screen will look something like this:
Airtable will only have access to the reports that the user who connected the Salesforce sync has access to. Additionally, the user must have both the View and Run Report permissions on any reports that they wish to sync. If the user who connected a Salesforce sync leaves the company and their Salesforce account gets deactivated, the sync will stop working.
|Scope name||Scope purpose|
|Basic user info|
|To get a refresh token|
|To access the currently logged-in user's report|
|Messaging capabilities (e.g. to send messages to peers and customers)|
For more information on Salesforce scopes, check out Salesforce's documentation here.
The number of synced tables your organization can have will range from 500 (if all of the reports have 2000 or fewer rows) to 100 (if all the reports have up to 10,000 rows). Because the maximum number of tables is determined by how much Salesforce API quota is used by automatic syncs (see next FAQ question) you can raise this number by setting some syncs to update manually.
This error message can appear if you have too many Salesforce synced tables querying the same Salesforce instance.
To get this table syncing again, you can manually trigger a sync using the Sync Now button. This table will resume syncing automatically again after a manually triggered sync completes successfully. However, you may continue to encounter this error intermittently if you have many separate synced tables that connect to your Salesforce instance. To reduce the incidence of this error, you can consider setting more syncs in your organization to update manually instead of automatically.
For context, Airtable uses the Salesforce’s reporting APIs to access data from your Salesforce instance. The main reporting API used is the synchronous API, which is limited to 500 report executions per hour across all products using the API -- not just Airtable. Each report syncs once an hour if set on Automatic sync, and every 2,000 rows in a report will count as one execution (so a 10,000 row report will count as five executions.) This is a Salesforce-imposed API limitation, but you can work around it by setting some syncs to update manually.
Unfortunately, this is a limitation of Salesforce's API. Reports will truncate text values to at most 255 characters, and in some cases, the values will be truncated even further.
Airtable will only have access to the reports that the user who connected the Salesforce sync has access to. Additionally, the user must have both the View and Run Report permissions on any reports that they wish to sync.
The sync will stop working if the connected Salesforce account is deactivated.
The data that we retrieve from Salesforce’s API is transmitted securely via HTTPS and is not used for any purpose other than syncing data to the table.
There is a limit of 10,000 rows and 100 columns that can be synced to ensure consistent performance. If the number of rows in your report still surpasses this limit, we recommend working around it by choosing more specific filters. Additionally, if there are multiple duplicate values in the unique ID column of the report, it’s possible that fewer than 10,000 rows will be synced.
Salesforce allows reports to have up to 2 levels of row-wise grouping and 2 levels of column-wise grouping for a total of 4 levels of grouping. Only the first 3 of those grouping levels will be considered by Airtable. If a user has an existing synced report and the user updates the groupings for that report in Salesforce, Airtable will not update its grouping settings for the main view of the synced table.
This can happen if you select a Unique ID column during the sync configuration that isn’t actually unique. This means that there are multiple rows in the report that have the same Unique ID value. If that happens, only one row with that same Unique ID value will be synced into Airtable.. To make sure all your data is synced from Salesforce to Airtable, please be sure to select a Unique ID that is both truly unique and won’t change.
We use the Unique ID field to identify the Airtable record that corresponds to each row in the Salesforce report. If this Unique ID field isn’t actually unique within the report (i.e., if multiple rows have the same value for this column), or if the Unique ID value changes, it’s not possible to map data consistently across the two systems.