Integrations

Connecting a Mobile App to the Systems You Already Run: API, Export, or Direct Database

Most companies that ask us for an app already run something. An ERP, a service management system, a warehouse program, a customer database, or a set of spreadsheets that one person maintains. The app rarely replaces it. The question is how the two talk to each other, and that answer sets a large part of the budget.

Thomas Siudut
Thomas SiudutCo-Founder and CEO, Apps Value
September 2, 20269 min read
Integrations ERP Field operations Scoping
Key takeaways for buyers
  • There are three ways in, not one. A documented API, a file exchange, or direct access to the database. Each one carries a different amount of work and a different amount of risk.
  • The system of record is a business decision. Which side holds the truth when the app and your system disagree is decided by you, before anyone designs a screen.
  • Access is the usual delay. The waiting is rarely about code. It is about who in your organization can grant credentials, and how long that takes.
  • Offline changes the problem. If the app has to work without signal, integration stops being a request and response and becomes a queue that has to survive conflicts.

Start from what you have, not from what the app should do

Discovery conversations usually open with screens. Someone describes a list of jobs, a form, a photo upload. That part is easy to agree on and it is not where projects go wrong.

Mobile app integration with existing systems is where these projects are decided. The part that sets the schedule is what sits behind those screens. If a technician opens a job in the app, that job came from somewhere. If they close it, something has to know. The path between the app and that something is the actual project.

So the first question worth answering, before any estimate is credible, is simple. What system holds your jobs, customers, and inventory today, and what can it give us.

Four starting situations, and what each one costs you in weeks

Almost every company we talk to falls into one of these. The label matters because it changes both the estimate and what we need from your side to keep the estimate true.

1. A system with a documented API

The best case. The vendor publishes endpoints, authentication, and limits. We read the documentation, confirm that the data you need is actually exposed, and build against it. Integration becomes a known quantity early, which means the fixed price around it is solid rather than padded.

What we need from youCredentials for a test environment, a contact at the vendor for questions, and confirmation of which fields are authoritative.

2. An API that exists but you cannot get access to

More common than it sounds. The system has an interface, but it is licensed separately, it requires a support ticket, or the vendor treats integrations as a paid project of their own. The engineering work is unchanged. The calendar is not, because it now depends on a third party who has no deadline.

What we need from youSomeone who owns the vendor relationship and can escalate. Start that conversation before the project does, not during it.

3. No API at all

Older systems and in house tools often have no interface for anything outside themselves. Then the options are a scheduled file exchange, a reporting database, or a small service that sits next to the system and exposes only what the app needs. All three work. They differ in how fresh the data is, and freshness is the thing to decide consciously rather than by accident.

What we need from youA real export file with real data, plus an honest answer to how current the app data has to be. Ten minutes old and same day are different projects.

4. Spreadsheets and shared files

Many working operations run this way and it is not a failure. It does mean the app has no stable source to read from, because a spreadsheet changes shape whenever someone adds a column. We usually treat the file as a starting import, then let the app own that data going forward, which is a change in how your team works and is worth naming out loud.

What we need from youThe actual file, not a cleaned version. The exceptions in it are the requirements.

One decision before any screens: which side holds the truth

Two systems holding the same record will disagree eventually. A dispatcher edits a job in the office at the same moment a technician updates it in the field. Both actions are legitimate. Something has to win, and that rule is a business decision, not a technical preference.

There are only three workable answers, and picking one early removes an entire category of later argument.

  • Your system holds the truth. The app reads and submits, and your system decides. Safest choice when finance, invoicing, or compliance data is involved.
  • The app holds the truth for its own records. Job status, time, photos, and signatures live in the app and flow into your system as results. Common for field work, because the person closest to the job is the one with the facts.
  • Split by record type. Customers and pricing stay in your system, execution data belongs to the app. This is what most field operations end up choosing, and it is worth writing down field by field.

We put this in the written scope before development starts, alongside the rest of the requirements document. It is one page and it prevents a lot of expensive rework.

Where the weeks actually go

Across our projects the most consistent cause of delay is not integration code. It is waiting on the client side for access to third party services and store accounts. Setting up an Apple developer account and configuring it properly is not a quick task, and neither is getting credentials for a system that another department owns.

The practical fix is boring and it works. Name one person who can approve access, start those requests in the first week, and treat them as project tasks with owners rather than as paperwork that happens later.

Offline turns integration into a different problem

If your people work in basements, on rural routes, or inside buildings with no signal, the integration is no longer a call that either succeeds or fails. Work happens on the device and reaches your system later, which introduces ordering, retries, and the possibility of two people changing the same record.

That is why we always ask what offline means for your operation before quoting it. Viewing data that was downloaded earlier is inexpensive. Completing forms and photos that sync later is a real build. A full day of work with one sync is a different product again, and we go through the three levels on the offline first app development page.

One detail from real use is worth repeating. On a field service app we built, technicians started keeping notes in their phone notepad for the one case the app did not cover yet, which quietly created a second version of the truth outside the system. The gap between what the app supports and what the job requires does not stay empty. Someone fills it.

What moves the estimate on a mobile app integration

Integration scope is not a single line item. These are the factors that actually change the number, in roughly the order they matter.

  • How many systems. One integration is a task. Three is an architecture, because now something has to decide which source wins.
  • Direction of the flow. Reading is cheaper than writing. Writing into a system that also runs your invoicing needs careful handling and a test environment.
  • Freshness. Near real time means webhooks or frequent polling and error handling for both. A scheduled sync a few times a day is a fraction of that work.
  • Data quality. Duplicate customers, inconsistent identifiers, and free text where a code belongs are the most underestimated part of any integration.
  • Test environment. If we can only test against production, the pace drops and the risk rises. A sandbox usually pays for itself in the first two weeks.
  • Who supports the other system. An internal team that answers the same day is a different project from a vendor with a two week ticket queue.

Where this shows up by industry

The pattern repeats with different names. In field service the app talks to whatever schedules the jobs, and the practical questions are covered on the field service app development page, with the drivers of the number on field service app development cost.

In heating and cooling the record that matters is usually the equipment rather than the customer, because service contracts, warranties, and history hang off the unit. That changes the data model before it changes the screens, which is why we treat custom HVAC software development as its own conversation.

In booking and marketplace products the integration is often payments and calendars rather than an ERP, and the store review adds a step, since Apple checks whether payments should run through in app purchases. That is predictable and resolved by talking to them, but it belongs in the timeline rather than in a surprise.

How we scope and price it

We work on fixed price, so the integration has to be understood before the number exists. That is the whole purpose of the workshop at the start.

  • Discovery first. We go through your systems, users, and the data that has to move, then write the scope down. The app discovery workshop exists for exactly this.
  • One written scope. Fields, direction, freshness, and the system of record rule, all on paper before development starts.
  • Fixed price against that scope. Changes get quoted separately so it stays clear what caused them, which is the point of fixed price app development.
  • Acceptance and warranty. Delivery closes with a signed acceptance protocol, and larger contracts carry a one year warranty on the software.

Our team is in Krakow and works with companies across the continent on European hours. That matters more than usual on integration projects, because these need short conversations with your IT people rather than overnight message threads.

There is more on the working model on the app development for European companies page, and for teams in the United States on app development for NYC businesses and Flutter app developers in Poland.

Two projects where this was the core of the work

On TimeFix, a field service app with an office panel, the work timer had to keep counting when a technician locked the screen or took a call from inside the app. That requirement did not come from the specification. It came from real shifts, and it is the kind of thing that only surfaces once data starts flowing between the field and the office.

On Workly we built an ERP class system for manufacturing in Flutter on Supabase, with one interface that behaves the same on a phone and on a desktop. When the operational system and the mobile client are designed together, most of the integration questions in this article turn into ordinary product decisions instead.

FAQ

Can you connect a mobile app to our ERP?

Usually yes. If the ERP publishes an API we build against it. If it does not, we use a scheduled export, a reporting database, or a small service that exposes only the data the app needs. The path changes the effort, so we confirm it during discovery rather than assuming it.

What if our system has no API?

It is still workable. The trade off moves to how current the data is. A sync a few times a day is straightforward. Near real time without an API means building the missing interface, which is a separate piece of scope and gets priced as one.

Who decides what happens when the app and our system disagree?

You do, during scoping. We present the three workable rules, you pick per record type, and it goes into the written scope. Without that decision the conflict simply appears later, in production, with a customer watching.

How long does an integration add to the timeline?

A single documented API against a clean data model usually adds days rather than weeks. Several systems, poor data quality, or a vendor who controls access can add considerably more, which is why the estimate depends on the answers above.

Do we need a test environment?

Strongly recommended. Testing writes against a live operational system slows everyone down, because every mistake is a real record. If a sandbox is impossible we work around it, with tighter controls and a slower pace.

Who owns the integration code?

You do. Repositories, accounts, and data transfer to your side at acceptance, the same as the rest of the build.

Thomas Siudut
Written by Thomas Siudut Co-Founder and CEO, Apps Value

I run scoping calls for operations teams building their first mobile app, and I have watched enough of these projects to know that the integration question decides the schedule long before the design does.

Tell us what system you run, and we will tell you what the app can reach

We go through your process and the systems behind it. On that basis we prepare a written scope for the first version, with a timeline and a fixed price.

Book an intro call

30 minutes, a direct conversation about your goals.