> For the complete documentation index, see [llms.txt](https://user.netmera.com/netmera-user-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://user.netmera.com/netmera-user-guide/messaging-features/ftp-push-and-imports/import-profile-attributes-via-ftp.md).

# Import profile attributes via FTP

Update profile attributes for existing users in bulk via FTP: define the attributes, prepare a delimited file, format phone numbers and upload it.

Use this workflow to update profile attributes for existing users in bulk. Define the attributes in Netmera first, prepare a delimited text file, and upload it to the dedicated `Profile` folder.

### Step 1: Create the profile attributes

Create every profile attribute that the import file will update. The attribute names in the file must exactly match the attribute names in the panel.

For example, create a `membershipTier` profile attribute before importing `membershipTier` values.

Learn more about [Profile Attributes](/netmera-user-guide/customer-data/profile-attributes.md).

### Step 2: Prepare the FTP folder

Ask your DevOps team to create a `Profile` folder under your application’s FTP path. Upload profile-attribute imports only to this folder.

### Step 3: Create the import file

Create a plain-text `.txt` file. Each row represents one user record. Use the tilde (`~`) character as the delimiter.

The fields must appear in this order:

1. `extID` — required user identifier.
2. `email` — optional.
3. `deviceToken` — optional.
4. `msisdn` — optional phone number.
5. One or more profile attributes to update.

For example:

```
Exid~~~email~deviceToken~msisdn~profileattribute
ExtId1~~~email1~deviceToken1~+905XXXXXXXXX~membershipTier1
ExtId2~~~email2~deviceToken2~+905XXXXXXXXX~membershipTier2
ExtId3~~~email3~deviceToken3~+905XXXXXXXXX~membershipTier3
```

The header identifies each column. Each following row supplies values for one user. Empty optional fields still require their delimiter so later values remain in the correct column.

{% hint style="info" %}
Use profile attribute names that exactly match the attributes created in the panel. Create missing attributes before uploading the file.
{% endhint %}

### Step 4: Format phone numbers

When you include `msisdn`, use the international E.164 format. Start the number with `+`.

For example, use `+905XXXXXXXXX`.

### Step 5: Upload the file

1. Give the file a unique name with a date and time.
2. Upload the `.txt` file to the `Profile` folder.
3. Wait for processing to complete.

For example, use `profile-attributes-20260810-0900.txt`. Unique filenames prevent a new upload from being confused with a previous file.

When Netmera processes the file successfully, it disappears from the folder.

### Step 6: Plan large uploads

Split large imports into smaller files before uploading them. This is recommended for updates affecting more than 300,000 profiles.

Upload files during business hours. Nighttime processing jobs can affect processing.

{% file src="/files/qnM3OEvvZvoKWmYE5MCE" %}
Importing FTP Profile Attribute
{% endfile %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://user.netmera.com/netmera-user-guide/messaging-features/ftp-push-and-imports/import-profile-attributes-via-ftp.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
