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.

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,approvedThe 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
90minutes 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
120minutes 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
Read more
All articles




APIs & Integration with ASES
ERP, CRM and shop cleanly connected

