---
title: "Using Custom Attributes SFTP integration"
date: "2024-04-30T01:22:18+00:00"
summary: "Streamline data management with Custom Attributes SFTP integration. Learn to supplement data, set up CSV feeds, and manage attributes in CDP."
image:
type: "page"
url: "/customer-data-platform/using-custom-attributes-sftp-integration"
id: "eced2381-8f7e-46ba-8031-fb2b7aa375bf"
---

This page provides information about the Custom Attributes SFTP integration process for the following scenario:

Data engineers want to:

*   Supplement the given data easily and safely by submitting CSV based data feeds with additional pass through parameters.
*   Streamline data management processes through SFTP integrations for daily flat file transfer so that they can manage data with more flexibility and less manual tasks.

Phase

Task

Description

1.

[Prepare the upstream file](#setting-up-the-csv-feed-file)

Create a comma-separated CSV feed file that aligns with the Custom Attributes parameter specification.

2.

[Set a target and schedule your feed file](#setting-the-feed-file-drop)

Set the feed file drop.

3.

[Verify the completeness of your feed file](#verify-completeness of-file-feed)

Validate successful ingestion of Custom Attribute feed files into CDP.

4.

[Navigate to CDP Studio - Custom Attributes](#navigate-to-cdp-studio-custom-attributes)

Configure the Custom Attribute UI naming to change the display name and make it visible in Campaigns+ and Metric. You must use clear and concise names and descriptions as best practices.

5

[Remove test records](#remove-test-records)

Delete test records with Custom Attribute values from the system.

Setting up the CSV feed file
----------------------------

Create a comma-separated CSV feed file that matches the Custom Attributes parameter specification. For more information, see [Specifications for surfacing custom attributes](/node/57396/#specifications-for-surfacing-custom-attributes).

### Formatting guidelines

*   **File format and naming**: Feed files must be in the CSV format with a comma delimiter. Also, the files must adhere to a specific naming pattern.  
    For example, the name of the file can be "AcquiaCustomAttribute\_xxx\_dateandtimestamp.csv", where _xxx_ is the feed table name, and the datestamp and timestamp are in _yyyymmdd_ and _hhmmss_ formats respectively.
    
    Examples
    
    `AcquiaCustomAttribute_Customer_20240420003314.csv`
    
    `AcquiaCustomAttribute_Product_20240420003338.csv`
    
    `AcquiaCustomAttribute_ProductCategory_20240420003250.csv`
    
    `AcquiaCustomAttribute_Event_20240420003321.csv`
    
    `AcquiaCustomAttribute_Transaction_20240420003318.csv`
    
    `AcquiaCustomAttribute_TransactionItem_20240420003333.csv`
    
*   **File column naming**:
    *   Column names must adhere to the correct naming format to prevent mismatches. For example, if you write `"c_customerstringattribute01"` in lowercase in your file, the connector does not fail. However, it does not accept the input column. The correct format is `"c_customerStringAttribute01"`.
    *   The connector mapping is case-sensitive. Therefore, ensure that the first letter after each prefix of a table name attribute is capitalized. For example, you must capitalize the first letter of the `"StringAttribute"`, `"IntegerAttribute"`, `"DecimalAttribute"`, or `"DateAttribute"` attribute type after a `"c_customer"`, `"c_transaction"`, `"c_transactionItem"`, `"c_product"`, `"c_productCategory"`, or `"c_event"` prefix.
        
        It also applies to non-custom attributes fields such as `"SourceCustomerNumber"`, `"Email"`, and `"DeleteFlag"`.
        
*   **Files encryption:** The current setup does not support inserting encrypted files. To insert encrypted files, contact the Account team and request for additional configuration.
*   **Column header requirements:** Column headers in the CSV file must match CDP parameter names exactly, including case sensitivity. Enclose all column headers and data in double quotes.  
    For every feed file, refer to the guidelines specified in the **CDP Column Description** for that file sheet in the [Data Feed Specifications](https://acquia.widen.net/s/jjbdnrktds/cdp_custom-attributes-data-feed-specifications-document-template) document. To determine the actual format of the columns for each feed file, refer to the **CDP Column Name** listed for each entity (Column A). 
*   **Special considerations for customer files:**
    *   The SourceCustomerNumber column is mandatory.
        
    *   The UUID and Email columns are optional.

Important

*   Any number of custom attributes can be added to your file as required, such as c\_customerStringAttribute02, c\_customerStringAttribute03. You must use new attributes and avoid reusing the ones that are previously mapped to other fields.
*   The order of columns in a file is irrelevant, provided the column names are in the correct format.
*   The column values in the feed files must be formatted according to the [Data Mapping](/customer-data-platform/data-mapping "Data Mapping") standards of CDP.  The standard date formats supported by CDP must be used for date columns. For more information, see **Date/datetime formats** section in [Data Mapping](/customer-data-platform/data-mapping "Data Mapping").

### Example

The following is an example of the content structure of the final customer feed file:

"SourceCustomerNumber"

"c\_customerStringAttribute02"

"c\_customerDateAttribute03"

"c\_customerIntegerAttribute01"

"C04012346178"

"Custom Attribute Value 1"

"02/05/2024"

"123456"

"2023112806010100143796CK"

"Custom Attribute Value 1"

"05/07/2023"

"456789"

"C04018971955"

"Custom Attribute Value 2"

 

"987643"

### Data parsing considerations

Parse data only for the attributes that you intend to use. Keep unused custom attributes blank or exclude them from the feed file to avoid unintended insertion.

Setting the feed file drop
--------------------------

Place the prepared feed files in the `CustomAttributes` folder within your designated SFTP file drop space provided by Acquia. For example, the correct folder path must end with `Acquia_SFTP/CustomAttributes`.

The files are processed according to your tenant's daily workflow schedule.

Note

Each file must be less than 2 GB in size.

Verifying the completeness of your file feed
--------------------------------------------

After submitting the files as described in the earlier phases, you can confirm the successful ingestion by validating the file on the CDP UI through **Integration Management**. For detailed instructions, see [Real-time input connectors](/customer-data-platform/adding-and-viewing-input-connectors "Adding and viewing input connectors"). To locate the connector, search for `SFTP Custom Attributes Standard Input Connector.`

Navigating to CDP Studio - Custom Attributes
--------------------------------------------

For detailed instructions, refer to the [Custom Attributes](/customer-data-platform/custom-attributes "Custom Attributes") page.

Note

Display names can be customized in **CDP Studio - Custom Attributes** and you can rename the filters for **Campaigns+** and **Metrics**. However, the hardcoded attribute names remain unchanged in the data model. Therefore, the system displays the hardcoded attribute names as `c_customerStringAttribute01` across all our data export mechanisms: Snowflake share, cloud exports, and Interactive Queries Unload. You can also notice this on the Business Intelligence tools Interactive Queries as the attribute names directly reference the data model tables and columns.

Removing test records
---------------------

After testing, if records have custom attribute values that need removal, note that the system does not permit direct deletion of these values. To remove them, you must delete the entire record from the system.

When preparing the CSV test file, modify the **DeleteFlag** column as follows:

Example:

SourceCustomerNumber

DeleteFlag

UUID

Email

c\_customerStringAttribute01

c\_customerStringAttribute02

1234567

`TRUE`

abcd

[user1@acquia.com](mailto:user1@acquia.com "mailto:user1@acquia.com")

drink

orange

*   Change the _DeleteFlag_ column to `TRUE` to remove the record.
    
*   The _DeleteFlag_ column can be used in CSV files sent to the following tables: 
    
    *   Customer
        
    *   Transaction
        
    *   Transaction Item
        
    *   Product
        
    *   Product Category
        
*   The _DeleteFlag_ is not applicable to the Event table as you cannot delete the rows in this table.
    
*   You can delete records in CDP only if they are linked to customers by SourceCustomerNumber or UUID.
    

### Deletion Flow

The delete function activates immediately when the base tables in the Data Warehouse receive the record. To confirm that the record is fully deleted, you must wait for the full refresh. After the full refresh process, the record is removed from the summary tables and completely erased from the data model.

![cdp_ deletion-diagram-sftp.png](https://acquia.widen.net/content/a830c037-a189-407c-9c29-fd7224d523da/web/cdp_%20deletion-diagram-sftp.png)

*   The record is marked for soft deletion in the base tables. After the refresh process completes, it is then cleared from the summary tables. The compaction workflow handles the actual removal of these soft-deleted records.
*   When removing a customer from CDP, you must retain their transactional data to maintain historical sales records. You can label these transactions as _Anonymous_ or _Unidentified_ instead of deleting them. Deleting such transactions can impact historical sales data. The best practise is to retain transactions and label them as _Unidentified_ when there is no linked customer.