Blog · AI and self-service analytics
The case for taking a scheduled file from the customer's systems rather than connecting to them: what a live connector costs in credentials, per-customer schema and outages, why every system already exports a file, the four ways a file arrives, and when a bespoke adapter is still right.
Analytics vendors list their connectors like trophies. Each one is a promise to hold a customer's credentials, understand that customer's schema, and answer the phone when the other vendor's API changes. This guide makes the case for the alternative that every large organisation already runs: a file, on a schedule.
| Cost | Per connector | Per customer |
|---|---|---|
| Authentication | An OAuth app, a review by the other vendor, token refresh | Consent flows, admin approval |
| Schema | Objects and fields that differ by version | Custom fields, different again at every customer |
| Outages | API changes, rate limits, deprecations | Their admin revoked a permission |
| Security review | The vendor holds live credentials | "What could you reach" instead of "what did we send" |
Multiply by the number of systems: CRM, billing, warehouse, ERP, service desk. Each is a small product, and together they are a roadmap.
One format, chosen by the vendor. No credentials to anything. The customer's IT team, who already know their systems, schedules the export they already run for someone else. The security review is about one file: where it goes, who sees it, how it is deleted.
The trade is freshness for simplicity, and the freshness given up is freshness that coverage and share analytics never needed.
All four deliver the same file to the same checks and produce the same report.
A source that genuinely cannot export a file, or a customer whose IT policy forbids scheduled exports to a third party. Then an adapter is built, once, for that customer, in an enterprise engagement, and it runs on the customer's side, producing the file into the customer's own storage. The vendor still never holds the keys. If three customers need the same adapter, it becomes a product decision made with three customers' evidence rather than a roadmap made with none.
| Measure | Moves | Schedule that suffices |
|---|---|---|
| Coverage | Weekly | Nightly |
| Share of wallet | Quarterly | Monthly |
| Range per store | Weekly | Nightly |
| Untouched accounts | Daily | Nightly |
| Hit ratio | Daily | Nightly, hourly for the desk head who wants it |
Nothing on the list is served better by a live connection than by a nightly file.
Nine formats instead of one. A vendor that accepts each system's native export has nine schemas again. One format, mapped once per source.
No validation on arrival. A file that is not checked is a connector's problems with none of its benefits. The report on every file is the whole point.
Idempotency ignored. The same file sent twice doubles the roll-up. A hash per file per customer catches it.
Freshness promised, not measured. Show the timestamp of the last file on every screen.
Upload, API push, storage drop and Google Sheets, one format, the same validation report on every file. The upload page is the first door, and the help centre covers the others.
It is as fresh as the schedule. Nightly is usual; hourly is easy. Coverage, share and penetration move daily at most, and nobody re-reconciles the book by the minute. The freshness a connector adds is rarely freshness anyone needs.
That is a connector by another name: the customer's own endpoints, credentials held by the vendor, different at every customer. Where a customer insists, the adapter runs on their side and produces the file, so the vendor still holds no keys.
A storage drop. The customer's job writes the file to an S3 bucket, Azure container or SFTP folder they own and grant read access to. One mechanism for every customer, and the customer controls what leaves.