Feed layout holding tables
Intent of feed layout holding tables
This topic explains why a record could be placed in a holding table for a feed layout definition (FLD).
FLD holding tables keep track of records that include information that doesn't match with the rest of the database. Holding table records are correctly formatted and valid but include information that is missing in an associated table. Effectively, the record doesn't fulfill the referential integrity requirements of the database (for example, a transaction record that specifies a product that doesn't exist). This often means that files are being sent/processed in the wrong order or that there's incomplete information.
Records that don’t comply with the standards/schema will end up getting filtered out of a load by the file validation step and be placed in a quarantine file.
Here are some other important things to know about FLD holding tables:
Redpoint CDP will not attempt to load records in a holding table for the current execution, but will attempt to load these records on the subsequent run of the specific FLD
FLD holding tables are cumulative and will continue to grow over time if you don't resolve all issues causing the records to be held
All FLDs have holding tables except for the following:
Location (a core feed layout)
Product (a retail feed layout)
The behavior of holding tables can be influenced by setting the
holdingRetentionDays
parameter in the API database settings. A value of-1
(the default) will allow unlimited duration; a positive value indicates the maximum number of days that the holding records will be retained. If you need to modify this value after your initial CDP setup, please contact Redpoint support.
Holding table reasons
An FLD holding table generates a report with the reason(s) that records are being held. The held_reason
column is a comma-separated list of the reasons that a single record is being held. In the example below, the second column provides the number of records that are being held for a particular reason.
The following table outlines each of the reasons that a record could get placed in the holding table. As mentioned previously and shown in the image above, a record may have more than one reason that it's being held.
In the table below...
References to multiple fields that include a "+" sign (for example,
source_customer_account_id
+business_unit_code
) mean that the combination of the fields is used to perform a lookup, and not that the two fields are combined in any way.The fields tie to the Field Name column in the feed layout definitions.
When
business_unit_code
is referenced, it is important to mention thatbusiness_unit_code
is a field that uses a lookup table, and this field is not required to be populated. If it is not populated, then the defaultbusiness_unit_code
from the lookup table is used when loading the data. So, if you see a held reference including this field, but you are not providing abusiness_unit_code
, then it implies that the combination of fields that includes thebusiness_unit_code
in it is using the default value from the lookup table when the combination of values is being used to identify a record in the database.When
address
alone is referenced, it is a reference to the full address after it has gone through address standardization; each component is not listed out but implied as a part of the address.
Held reason | Held description | Ways to resolve |
---|---|---|
| The | The |
| The | The |
| The | Send a record through the party profile FLD or transaction FLD that contains this address. |
| The | Send a record through the campaign event nonRPI FLD that contains this |
| The | Send a record through the customer account FLD that contains this |
| The | The |
| The | Send a record through the party profile FLD or transaction FLD that contains this email address so that it gets into the database ( |
| The home phone number referenced by this record does not exist in the database ( | Send a record through the party profile FLD or transaction FLD that contains this home phone number so that it gets into the database ( |
| The | The |
| Only partial required transaction detail information for this record exists. | Make sure |
| The | Send a record through the party profile FLD or transaction FLD that contains this |
| The | Send a record through the party profile FLD or transaction FLD that contains this |
| The | Send a record through the party profile FLD or transaction FLD that contains this |
| The | Send a record through the party profile FLD or transaction FLD that contains this |
| The ( | Send a record through the party profile FLD or transaction FLD that contains this ( |
| The | Send a record through the party profile FLD or transaction FLD that contains this |
| The | The |
| The | Send a record through the location hierarchy FLD that contains this |
| The | Send a record through the loyalty account FLD that contains this |
| The | This indicates a mismatch between the match process and the transform job and some sort of system error. Contact support. |
| The | Send a record through the party profile FLD or transaction FLD that contains this |
| The | Send a record through the location hierarchy FLD that contains this |
| The | Send a record through the party profile FLD or transaction FLD that contains |
| The | Send a record through the party profile FLD or transaction FLD that contains |
| The | Send a record through the party profile FLD or transaction FLD that contains |
| The | Send a record through the party profile FLD or transaction FLD that contains |
| The | Send a record through the party profile FLD or transaction FLD that contains |
| The | Send a record through the party profile FLD that contains this |
| The | Send a record through the party profile FLD or transaction FLD that contains |
| The phone number referenced by this record does not exist in the database. This error is only generated for contact authorization records where phone is provided, and that is because there is no notion of phone type in the contact authorization feed layout. | Send a record through the party profile FLD or transaction FLD that contains this phone number (home, mobile, work, or other). |
| The | Send a record through the product hierarchy FLD that contains this |
| The | Send a record through the response event FLD that contains this |
| The social login ( | Send a record through the party profile FLD that contains this social login ( |
| The | Send a record through the transaction FLD that contains this |
| The | Send a record through the purchase discount FLD that contains this |
| The | Send a record through the transaction FLD that contains this |
| The | Send a record through the tender FLD that contains this |
| The | Send a record through the party profile FLD or transaction FLD that contains this |
| The | Send a record through the party profile FLD or transaction FLD that contains this |