Platform pain

$48,000 a year to look at your own data

TL;DRSalesforce doesn't store external-object data - it proxies a live read to the source. Surfacing your ERP that way needs the Salesforce Connect add-on, publicly cited near $4,000 per connection a month (about $48,000/year, as of December 2025), and every read spends your org's shared API budget. You rent a view of data you already own.

Because Salesforce doesn't store that data - it rents you a live window to it. Surfacing an external system like your ERP as external objects requires the Salesforce Connect add-on, which public analyses and reseller price lists put at roughly $4,000 per connection per month - about $48,000 a year per data source, as of December 2025. Every screen refresh then spends against your org's API budget. You pay to see records you already own, and you pay twice.

What are you actually renting?

A Salesforce external object looks like any other record in the interface, but it holds no data. Each one is a live proxy to a row in another system - an SAP order table, a returnables ledger, a pricing service - fetched through an OData or Apex adapter at the moment someone opens the tab. To run that in production you license Salesforce Connect, and the unit of licensing is the connection: one per external data source. Wire up one system and you have bought a single pane of glass. Wire up three and you are paying for three panes, before a single user has looked through any of them.

Notice what the line item is not. It is not storage you consume or compute you burn. It is the right to look. The records already belong to you, sitting in an ERP you already license, host and maintain. What Salesforce Connect meters is the view onto them, and it meters that view whether the data behind it is one row or one million.

Why does every read cost you twice?

Because an external object stores nothing, every list view, report, related list and SOQL query becomes a live callout to the source. That callout spends against your org's API request budget. Per the official Salesforce developer limits, an Enterprise Edition org starts at 100,000 API requests per 24 hours plus 1,000 for each licensed user, pooled across the whole org and measured on a rolling window. Cross the ceiling and calls come back as HTTP 403 with REQUEST_LIMIT_EXCEEDED - and not just the report that tipped you over. Everything.

The pooling is the quiet part. That budget is one shared bucket, so a heavy external-object report a manager runs at 9 a.m. draws from the same allowance your delivery reps need to submit orders at 9:05. Apex callout governor limits stack on top - a hard cap of 100 callouts per transaction and a timeout the source system has to beat. So the $48,000 buys the connection; throughput is metered separately, on a meter you share with every other integration in the org.

MeterWhat triggers itDocumented figure
Salesforce Connect licenceEach external data source you connect~$4,000/month, ~$48,000/year per connection (as of December 2025)
Org API request budgetEvery live callout to read or list an external object100,000 per 24h + 1,000 per licensed user; 403 REQUEST_LIMIT_EXCEEDED beyond
ERP indirect-access licensingUsers and systems reaching ERP data through the integration£54,503,578 claimed in the 2017 UK ruling

Haven't we paid this bill before?

The indirect-access lesson is nearly a decade old, and the industry keeps relearning it. In a landmark 2017 UK High Court ruling on ERP indirect access, a global consumer-goods enterprise that had wired its SAP core to a CRM front end was billed £54,503,578 for the customers and staff reaching ERP data through that integration. The court found the licence covered named users; everyone else touching the data through the middleware counted, in the vendor's reading, as unlicensed use.

Stack that on top of the Connect line item and the shape is unmistakable. One vendor charges you to surface your ERP data; the ERP vendor may charge you again for the indirect access that surfacing creates. Two contracts, two meters, one set of records you already own. It belongs to the same family as the trade-promo module only consultants can safely touch - where the real cost is never quite the software, it is the position the software puts you in.

Where does this bite in route-to-market?

Everywhere a rep or a customer looks at ERP-owned data during the working day. Order history, open credit, a returnables balance, the last invoice - surface each of those as an external object and every one becomes a live callout during exactly the peak hours when the shared budget is tightest. The obvious escape, copying the data into Salesforce instead, trades a licence fee for a consistency problem: a synced copy can drift or lag, and dual-write pipelines fail in their own quiet ways. We have watched a CRM and an ERP disagree for ten days before anyone noticed. And whichever route you pick, someone has to run it; the "just connect it" pitch tends to arrive without the standing team it quietly assumes you already have.

The fix direction is not a cheaper adapter. It is ownership: materialise a read model on an event bus you control, so the records reps touch all day live where reads are local and free, while the SAP financial core stays the system of record it should be - kept in sync, not screen-scraped through a per-connection licence. That is the point of building on one event bus rather than renting a window into someone else's: a returnables balance or a credit check becomes a local read, not a billable callout against a shared ceiling.

The per-connection charge is easy to wave through because it looks small next to the ERP it sits beside. The catch is that it scales with your ambition. Every new system you want reps to see is another $48,000 window and another draw on the same API budget, with the indirect-access meter ticking underneath all of it. The organisations that pull ahead over the next year will be the ones that stop treating "see my own data" as a feature to rent, and start treating it as infrastructure to own.

Frequently asked questions

How much does Salesforce Connect cost?

Public analyses and reseller price lists put it near $4,000 per connection per month, billed annually - roughly $48,000 a year per external data source, as of December 2025. It is licensed per connection, so each additional external system you surface adds another full line item.

Do external objects count against Salesforce API limits?

Yes. External objects store nothing, so every list, report or query is a live callout that spends your org's shared API budget. An Enterprise org starts at 100,000 requests per 24 hours plus 1,000 per licensed user. Past that, calls return HTTP 403 REQUEST_LIMIT_EXCEEDED.

Is it cheaper to sync ERP data into Salesforce instead?

Sometimes, but a synced copy trades a licence fee for a consistency problem: the copy can drift or lag, and dual-write pipelines fail in their own ways. The durable answer is owning a read model on an event bus you control, with the ERP still the system of record.

Stuck with exactly this?

BrewOS builds the full route-to-market stack for global brewers — order capture, stock, loyalty, returnables, delivery and analytics on one event bus, run by a team of ~20 engineers. Bring us the feature that’s been stuck the longest and we’ll show you how we’d ship it in days.

Book a 30-minute walkthrough