Services
Custom SoftwareCRMs, portals, dashboards + internal tools. Automation + IntegrationsWorkflows, APIs + business logic. DataScraping, enrichment + monitoring. AIAgents, assistants + knowledge systems. WebWebsites, performance + conversion.
Company
AboutWorkJournal
Start a project →

How to Connect Business Software with APIs

Both products have an API. Check whether they can complete the handover you need, then define the data, trigger and tests for a safe first implementation.

NM
Written byNathan MackenzieFounder · ZappFlow
Practical notes on software, automation, data, web and AI.

To connect business software with APIs, first confirm that one system can supply the information and the other can perform the exact action you need. Then agree the required details, choose what starts the transfer, and test failures before allowing the connection to create live work.

An API is a way for software to request information or actions from another product. But two products advertising APIs does not prove they can complete your workflow. Being able to read an order, create a draft job and release that job to staff are three different capabilities.

The idea in one viewVISUAL GUIDE
SHOW HOW THE PROCESS IMPROVES STEP BY STEPOPERATING JOURNEY

From Accepted Order to Usable Staff Job

01

Check both APIs

Check one system can supply orders and the other can create schedulable jobs.

02

Map required details

Match site, instructions and reference; list missing addresses as exceptions.

03

Choose the trigger

Define when an order counts as accepted and what starts the transfer.

04

Test before launch

Test failures and missing details before the connection creates live work.

A job ready for staff to scheduleKeep later order changes under staff control

I would confirm the final business state before choosing an integration tool. A connection that leaves every job waiting for manual approval may still be useful, but it is a different project from one that produces work ready to schedule.

Start with one complete business action

Write the proposed handover in terms staff can check. Include what starts it, which records qualify and what someone should find in the receiving system.

Illustrative example: when an order is accepted in the sales system, create one job in the scheduling system with the correct site, work instructions and order reference. The job should be ready for a scheduler to assign. Orders missing a site address should go to an exception list instead.

This example describes a proposed workflow, not a tested connection between particular products. Its feasibility depends on what the chosen products actually permit.

Clarify what “accepted” and “ready” mean. Does acceptance require payment? Does the job need approval before a scheduler can see it? Should later order changes update the job, or should staff review them? For a first implementation, it can be sensible to automate initial creation and leave subsequent changes under explicit human control.

These decisions define the scope of the automation and integrations work. Choosing a tool before resolving them can hide a missing business step behind a successful transfer.

Check the exact API actions and account access

Ask your software suppliers or developer to demonstrate each required action using the official API documentation for your products and your account. An endpoint is the documented address used to request a particular operation, such as retrieving an order or creating a job.

For the order-to-job example, obtain evidence for each part of the handover:

  • Read the accepted order: can the source expose its status, order reference, site details and individual items?
  • Create the job: can the destination accept all required details, and what state does it create the job in?
  • Approve or release it: if this is a separate action, is it available through the API with the intended credentials?
  • Find the job afterwards: can the connection retrieve it by a returned identifier or stored order reference?

For every action, record the documentation link, account or subscription requirement, permission needed, required fields and expected response. Check any supplier approval needed to obtain API access. Do not assume that access to one operation grants access to another.

Also confirm the documented usage limits against your normal workload and busy periods. Count the whole process: one order might require several requests to fetch details, find a site, create a job and check its status.

Ask whether a test environment is available and whether it supports the same actions as production. If it is not, agree a controlled test with clearly identified records and a cleanup process. Production testing should never accidentally dispatch staff or send customer messages.

Feasibility decision: proceed when all required actions are available to your account and the receiving system can reach the agreed state. If approval remains manual, revise the workflow explicitly. If an essential action is unavailable, stop and resolve that limitation before commissioning the build.

Map the details needed to create a usable job

A field called “address” might mean the billing address in one system and the work site in another. Matching field names is not enough.

Prepare a field map showing where each destination value comes from, any conversion needed and what happens if it is missing. For the illustrative job, this would include:

  • Order reference: preserve a stable source identifier, not just a customer name.
  • Customer and site: establish whether the destination requires existing record identifiers or accepts new details within the job request.
  • Work instructions: identify the specific order fields staff need, excluding internal notes that should not travel.
  • Job type and status: map source values to the destination’s permitted choices.
  • Dates and times: agree formats, time zones and whether a requested date is a promise or a preference.

For each missing value, choose between rejecting the transfer for correction, asking a person to supply it, or applying an agreed safe default. Do not invent a site address or quietly substitute the billing address to make a request succeed.

Define who owns each value after creation. If a scheduler changes the job date, a later transfer should not overwrite it unless that behaviour has been agreed.

Choose how the connection starts

A webhook is a notification sent by the source system when an event occurs. Polling means checking the source at intervals for new or changed records.

Use a webhook when the product supports the right event and its delivery behaviour fits the workflow. Check whether notifications can be repeated, how failed deliveries are handled and whether the notification contains the order details or only an identifier requiring another request.

Polling can suit work that tolerates a delay or products without the necessary event notification. It needs a reliable way to identify changes and remember what has already been processed. Agree how it catches up after an interruption without skipping orders or creating jobs twice.

Choose based on the delay the business can tolerate, the available API features and usage limits. “Immediate” should be a business requirement, not an assumption.

Keep credentials in protected storage, outside spreadsheets and source files. Grant only the permissions needed, and document who can replace or revoke them. The connection needs an owner even if it runs without daily intervention.

WHAT HAPPENS WHEN SOMETHING GOES WRONGBACKUP PLAN

When job creation times out

01 · PROBLEM
Job request times out

The system may have created the job, even though no response came back.

→
02 · FALLBACK
Check before retrying

Look for the job using its unique order reference. Do not send the same request blindly.

→
03 · RECOVERED
Reconcile or ask a person

If the job exists, link it to the order. If the result is uncertain, send it to a person.

OUTCOME
Avoid duplicate jobs while making uncertain cases visible.
Check, then recover

Design recovery before switching on automatic retries

A failed transfer does not always mean nothing happened. The scheduling system might create a job, but its response might not reach the connection before the request times out. Sending the same creation request again could produce a second job.

Where the destination supports an idempotency key, use its documented mechanism to make repeated submissions of the same operation safe. Do not assume this feature exists. Otherwise, design a reliable way to reconcile uncertain outcomes, such as checking a unique source reference before attempting creation again. If the API cannot support a reliable check, route uncertain cases to a person rather than retrying blindly.

Keep a transfer record linking the source order to the destination job, with the outcome and enough error detail to investigate. Avoid putting unnecessary customer information or credentials in logs.

Different failures need different responses. A missing required field needs correction; revoked access needs attention from the account owner. Neither is fixed by repeatedly sending the same request.

Temporary failures and usage restrictions require provider-specific handling. For example, Microsoft Graph’s throttling guidance says to respect the Retry-After value when supplied and use exponential backoff when it is absent. Backoff means waiting progressively longer between attempts. Use the equivalent guidance for the APIs you are connecting rather than copying one universal retry rule.

Use an acceptance-test worksheet to prove the handover

For each test below, record the source order, expected destination result, actual result and person accepting the outcome. A successful API response is only part of the evidence: inspect the job as the scheduler will see it.

  • Complete accepted order: exactly one job appears with the correct site, instructions, reference and agreed status.
  • Order not yet accepted: no job is created, even if other order details change.
  • Missing site address: no unusable job is released; a named person receives a clear correction task.
  • Repeated notification or check: processing the same order again does not create another job.
  • Timeout after possible creation: the connection establishes whether the job exists or flags the uncertainty without blind resubmission.
  • Temporary outage or usage limit: affected orders remain recoverable and resume according to the provider’s documented rules.
  • Permission removed: the connection alerts its owner and preserves outstanding work for recovery.
  • Approval required: the test proves whether the job reaches the agreed final state or remains in a documented manual queue.
  • Order changed after transfer: the connection follows the agreed update or review rule without overwriting staff decisions unexpectedly.

Include recovery in the demonstration. Ask the implementer to correct a failed order, process it again and show that it creates only the intended job.

Launch a small, visible first version

Start with one clearly defined order type or team. Reconcile eligible orders against created jobs during the initial rollout, checking missing transfers as well as duplicates. Increase coverage only when the normal path and recovery tests pass.

Before handover, name the person who monitors exceptions, who fixes source data and who handles technical failures. Document how to pause the connection, what happens to waiting orders and how to restart safely.

Your reusable business API integration checklist is: exact action confirmed, account access verified, fields mapped, trigger agreed, duplicates controlled, failures recoverable and destination outcome tested. Those are also useful headings for an implementation brief. When requesting proposals, use what an API integration quote should include to check that testing, recovery and ongoing support are within scope.

The first version is ready when staff can rely on the agreed handover and recover exceptions without guessing what happened. Merely moving data between two products does not establish that.

ZappFlow · practical next step

Check whether your software can complete the handover

Tell ZappFlow which systems you use, what should start the connection and what staff should find in the receiving system. Include any API documentation or supplier restrictions so we can assess feasibility, implementation and recovery.

Discuss your software connection