Understand, correct and re-import data rejected during daily imports

Some rows in your import files may be rejected during the daily processing runs. This guide explains how to identify the cause from the reject files, and how to re-import the corrected data.

1. How it works

During the daily processing runs and manual imports, processed files are renamed: the extension .ok, followed by the date and time of processing, is appended to their name. If a file has not been renamed on the SFTP server once the daily processing runs have finished, it has not been processed.

Each processed import file also generates reject files, which contain the rows that could not be imported into the database.

The number of reject files generated depends on the type of flow imported:

  • event flows: 5 reject files
  • profile flows and catalog flows: 4 reject files

An additional reject file is generated for flows sent in real time.

These files are placed on the SFTP server of your main account, in the upload/rejects directory. They are kept there for 7 days.

This directory also contains the reject files for the flows of any partners you may have, even though those partners have their own individual upload directories for confidentiality reasons. Your partners, however, do not have access to the reject files for the flows they generate.

These files allow you to identify the nature of the errors and then, thanks to a naming convention, to prepare the re-import of the affected data once corrected.

2. The different types of reject

Reject fileRows returnedFlows concerned
loadingrejectRows that do not comply with the file format defined in the flow specifications: number of columns, field separator, row separator, enclosure character, etc.All flows
checkschemarejectRows that exceed the length limits applied to one or more fields, or in which a mandatory value is missing.All flows
convertrejectRows containing one or more values that are incompatible with the type of the target field.All flows
filterrowrejectRows in which at least one field does not comply with the filter applied to it. This file also contains identifiers whose type is defined in Cockpit (email, mobile phone) and whose format is incorrect in the flow.All flows
lookuprejectRows whose customer identifier does not exist in the database: the event therefore cannot be attached to a profile.Event flows only
jsonrejectThe nature of the import errors encountered when processing rows received via JSON calls.Real-time flows only

3. Re-importing missed or rejected data

Once the cause of the rejects has been identified, you can prepare the re-import.

You simply need to build new import files containing the corrected data, then name them as follows:

flowname_YYYYMMDD-XX.csv

where XX is a two-digit sequence number between 00 and 99. Files carrying this suffix are picked up by the next intraday processing run, that is, within 15 minutes.

For example, for the customer flow:

  • customer_YYYYMMDD.csv: file processed during the daily processing runs
  • customer_YYYYMMDD-00.csv, customer_YYYYMMDD-01.csv, … up to customer_YYYYMMDD-99.csv: catch-up files, processed during the intraday processing runs

So, to re-import data rejected during the import of customer_YYYYMMDD.csv, upload a file customer_YYYYMMDD-00.csv containing the corrected data to the SFTP server: it will be imported within 15 minutes. If that file in turn generates rejects, upload a file customer_YYYYMMDD-01.csv, and so on.

The naming rules expected for each flow can be viewed in your ProbanceOne interface, under Administration > Technical.