Appsheet Salesforce Data

Hey There

I wondered if anyone has ever tried to use the connection for Salesforce in appsheet? I have run into a a complete roadblock and i'm getting nowhere with appsheet support. 

So we have a large scale app acting as a CRM for a client. The CRM started by taking their data from Salesforce as an export and moving that to google sheets, from there we created all the same views they had in salesforce and that was that, however the have since decided to use the Appsheet app in some situations and Salesforce in others. This means it would be better if we stored the data in salesforce not google sheets, luckily we have a salesforce connector for data in appsheet! 

I followed the guide, installed the app in salesforce and connect the data in appsheet. Since adding this data source we have been unable to get the app to start up. It simply times out after trying for a little while. When checking our account we have an error on the account after adding this source that says "Plan upgrade needed — click to fix it!

You should be on the AppSheet Core secure plan. Please see the App Info pane for details.
CRM....: Advanced data source 'salesforce' not allowed with the APPSHEET CORE plan"

If we try a known small table in the saleforce account in appsheet (one with 6 records) we can get this data to load however the load times are insane with syncs increasing up to 120 plus seconds. 

Support asked me to create a new download of the data and put that on a google sheet to prove the data isnt an issue, we have been able to do this with no issue with very fast load times. 

From what i can see this is clearlty an issue with the salesforce api connection to appsheet but in the docs i cannot see any listed limitations of this data source. I'd expect to see something like the 100k row limit of google sheets but nothing is listed. 

Has anyone used this data source and actually got it to work?
1 4 144
4 REPLIES 4

You're not alone in running into performance and plan issues when trying to integrate Salesforce with AppSheet. It can work, but there are some major gotchas that aren’t obvious from the docs. Here's a breakdown of what's going on and what you can do:

 

 

1. Plan Limitation: You Need Enterprise/Enterprise+

 

The error you're seeing:

 

> "Advanced data source 'salesforce' not allowed with the AppSheet CORE plan"

 

 

 

means exactly what it says: Salesforce is considered an "advanced" data source, and you must be on an Enterprise plan (not Core) to use it in production. The Core plan will not support Salesforce integration, even if you get it to technically "connect" in the editor.

 

> Fix: You'll need to upgrade the plan (likely to Enterprise) to fully enable and support Salesforce as a live data source.

 

 

2. Performance Issues: Salesforce API + AppSheet = Slow

 

Even after getting the correct plan:

 

Salesforce's API is not optimized for heavy, frequent reads the way Google Sheets or SQL is.

 

AppSheet pulls data using REST API calls, which can be very slow, especially on:

 

Large tables

 

Complex fields/relations

 

Non-indexed queries in Salesforce

 

 

 

> Even a small number of records can take 30–120 seconds, just like you're seeing.

 

3. No Caching or Delta Sync

 

Unlike Google Sheets or SQL, Salesforce does not support delta sync or caching in the same way. So every sync:

 

Makes fresh API calls

 

Pulls entire record sets

 

Can time out or slow down the app dramatically

 

4. Workaround Options

 

Since you're already syncing from Salesforce to Google Sheets, here are a few real-world solutions:

 

Option A: Keep using Google Sheets and auto-sync from Salesforce

 

Use a tool like Coupler.io, Zapier, Make, or Data Connector for Salesforce to sync Salesforce data to Google Sheets every X minutes.

 

Point AppSheet to the Sheets, and now you get:

 

Speed

 

Simplicity

 

Avoidance of AppSheet Enterprise fees

 

 

 

This is the most reliable and scalable for hybrid Salesforce + AppSheet use.

 

Option B: Use a SQL Mirror

 

Use a service like Heroku, Panoply, or CData to mirror your Salesforce data to SQL (PostgreSQL, etc.).

 

Connect AppSheet to that SQL source (which is also considered “advanced”, so Enterprise still needed).

 

This gives you better sync control and indexing, but more setup.

 

Option C: Break out only necessary tables

 

If you’re forced to go Salesforce direct:

 

Only connect the critical tables (small, simple, read-heavy) to AppSheet.

 

Keep the rest in Sheets or disable syncing where not needed.

 

Expect slow syncs and design accordingly (e.g., avoid full table views).

 

5. Community Feedback

 

From others who have tried this: most end up using Google Sheets or SQL as a middle layer, unless they already have an Enterprise AppSheet plan and Salesforce devs to optimize API calls.

 

 

TL;DR

 

AppSheet Core Plan = No Salesforce. You need Enterprise.

 

Performance sucks because Salesforce API + AppSheet = slow + no caching.

 

Use Google Sheets as a sync mirror — fatest, cheapest, easiest solution.

 

OR upgrade plan and design smart with limited API load.

 

 

 

All of this information is very helpful! Thank you for this detailed response. 

I am left now with 2 questions for your suggestion of other solutions. 

1. What about large data tables for things like the salesforce connector to google sheets. this connector has a 100k row limit but some of my clients in salesforce far exceed this limit. Would other solutions also have this issue?

2. If we do go with a salesforce connection option either through a direct SQL clone or google sheets how does updates work? If we are only pulling data down from salesforce every 4 hours and a user on the appsheet side updates record A, and the salesforce client also updates record A, what exactly would happen there as it seems due to the delay on sync to google sheets the SalesForce connection would constantly overwrite data without taking anything back to salesforce. 

I think the difficulty we have here is wanting to use our salesforce data for read and write. We need to be able to send data up as well as recieve it down. 

Great questions. These are exactly the challenges that arise when integrating Salesforce with AppSheet (or Google Sheets) in large-scale environments. Let's break both questions down:

 

 

1. Large Data Tables — Do All Solutions Have a 100k Row Limit Like Google Sheets?

 

Short answer: Not necessarily — it depends on the data source.

 

Google Sheets:

 

100,000 cell limit (not rows!) per worksheet, with other practical performance limitations starting around 10,000–50,000 rows, especially with formulas or images.

 

Not designed for enterprise-scale data.

 

 

Salesforce Connector (in AppSheet):

 

No explicit row limit mentioned in docs, but real-world performance degrades significantly as row count increases.

 

Most users report slow syncs, timeouts, or errors above 10–20k rows due to the Salesforce API throttling and pagination.

 

 

Better Alternatives:

 

Verdict:

If you’re scaling past 20k+ rows, Google Sheets is out, and even Salesforce’s direct connector might struggle. A SQL-based mirror or custom API bridge gives better long-term control.

 

 

2. What Happens with Conflicts — AppSheet vs. Salesforce Updates?

 

This is the classic data sync conflict problem. Here's what would happen:

 

In Your Scenario:

 

Salesforce connector (or synced Google Sheet) pulls data every 4 hours.

 

AppSheet users edit data in the meantime.

 

When the sync occurs, Salesforce data overwrites the stale data in the Sheet — erasing user changes.

 

No built-in conflict resolution exists in AppSheet for third-party source syncs like Salesforce.

 

 

Why This Happens:

 

AppSheet sees the Salesforce-connected Sheet as the “truth.”

 

Changes from Salesforce overwrite local values, even if they are more recent on AppSheet.

 

 

Solutions for Two-Way Read/Write:

 

Option A: Use a SQL Clone of Salesforce (via Mirror Tool or ETL)

 

Tools like Heroku Connect, Skyvia, or CData replicate Salesforce into a SQL database.

 

AppSheet connects to the SQL database.

 

You get real-time read/write performance with better conflict handling.

 

Salesforce still remains the system of record, but you have more control over sync timing and resolution logic.

 

 

Option B: Build a Custom API Layer (Middleware)

 

Create a small backend (Node.js, Firebase, or Make.com) to:

 

Handle real-time writes from AppSheet to Salesforce.

 

Listen for Salesforce webhook events (CDC) and push changes to AppSheet or SQL.

 

 

Allows true bi-directional sync with logic to manage conflicts.

 

 

Option C: Use AppSheet Webhooks to Trigger Salesforce API Writes

 

Not real-time, but immediate writes can be done.

 

You can create actions or automation bots in AppSheet that POST to Salesforce on record change.

 

Combine with a frequent pull (every hour) for data updates.

 

Conclusion / Recommendation

 

If you're serious about:

 

Writing back to Salesforce

 

Scaling beyond 10–20k rows

 

Maintaining conflict resolution and speed

 

 

Then:

 

Google Sheets is not viable long-term

 

Use a SQL mirror of Salesforce data or

 

Set up a custom API/middleware to mediate two-way sync and reduce delay-based overwrites.

 

 

@That-Haus 

First, as @PauloExpert guides, the solution depends on your AppSheet plan.

If you want to achieve this with the Core plan, I would use Salesforce conector.

https://workspace.google.com/marketplace/app/salesforce_connector/857627895310

However, this has various limitations and requires knowledge of Salesforce and AppSheet

If you are on the Enterprise plan, direct connection or using Integration connector are candidates for consideration.

https://support.google.com/appsheet/answer/10106381

https://support.google.com/appsheet/answer/15297394?visit_id=638805630724719018-2954442374&p=integra...