Skip to content

Integrating without a source API: planning a CSV handover

A file export can help when the needed source API is missing. An example sets out format, project mapping, repeat processing and confirmation.

Tobias Krüger2 min read
Data card with parcel, location and calendar icons; the middle field is empty with an orange border.

Choose an available handover route

First check whether the required data is accessible through a supported export. Middleware, software acting between the systems, processes such inputs; it cannot create access the source system does not offer.

Available input

Target capability

Possible handover

Structured export file

Suitable file import

Generate a checked import file

Structured export file

Suitable API

Check and map the file, then transfer through the API

User interface only

Suitable input screen

Evaluate the screen workflow separately

The last option requires reliable identification of the elements being operated and the result. Microsoft describes UI selectors for this purpose. Their suitability needs checking after interface changes; a recorded click sequence alone does not prove that data was accepted.

Record a completed file contract

A fictional software company chooses the second option. Its old time-tracking system has no API for approved time entries but offers a daily export. An intermediate processing step is to use that data to add a line to an ERP billing draft. For this example of our own, the agreement specifies UTF-8, a comma delimiter and this header:

entryId,projectRef,approvedMinutes,approvalState
T-81,PR-42,90,approved

The row means that the stable source record T-81 contains approved work time in minutes for project PR-42. That project is explicitly mapped to ERP project ERP-903. Only approved rows may proceed. The fields and identifiers are our own design, not an Odoo or other vendor schema. RFC 4180 describes CSV conventions; the actual import contract must fit the product. Odoo documentation illustrates how external identifiers can be used in imports and relationships, for example.

Separate confirmed results from uncertain ones

For a confirmed transfer, the intermediate process should link the source record and target reference. An unchanged row already confirmed as accepted must not create another draft line. If that source record later changes, it is a business correction; this design holds it for clarification.

If the connection breaks after sending, the target might already have written the data. Before retrying, the state must be established through a suitable target reference. If the target does not support that check, the operation remains uncertain and needs attention. Successful file transport alone does not confirm an ERP entry.

Agree expected outcomes before implementation

These cases would need acceptance checks in a suitable test environment:

  • The first approved row creates a draft line with 90 minutes in the mapped project.

  • An identical repeat after confirmed success creates no further line.

  • An unknown project reference stays open with a reason for clarification.

  • The same record with 120 minutes is held as a correction rather than silently overwriting the confirmed value.

In this example, the team accepts daily processing at 18:00 in the Europe/Berlin time zone for later billing drafts. If current values are needed during the working day, the handover needs reassessment. Export ownership, error handling and feedback therefore belong in the agreement.

Sources

Written by

  • Tobias KrügerEditor for Systems IntegrationTobias Krüger covers how different software systems work together at ASES. In his articles he explains how ERP, CRM and online shops are connected and how to deal with errors in data exchange.

Follow ASES

Read more

All articles

APIs & Integration with ASES

ERP, CRM and shop cleanly connected