# Creating Members

The **Members** module allows you to add new participants to your loyalty program either manually or in bulk. This flexibility helps you onboard both individual customers and large sets of member data quickly and efficiently.

***

## Ways to Add Members

There are two ways to create members in the system:

### **Add a Single Member**

{% stepper %}
{% step %}
Navigate to **Members → List of Members**.

<figure><img src="/files/ghlfu3B5qc9RW80XunNU" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Click **Add member** and select **Add single member**.

<figure><img src="/files/PwLu3YEsOEv9YWy2V455" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Fill in the **Basic Information**

<figure><img src="/files/CAhUlrmEKhpqw0Pg8Dq7" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
You decide how much information you want to share with Open Loyalty. \
As a minimum, it is required to have **one** member identifier.&#x20;

If you decide not to share PII data with Open Loyalty, you might e.g. use **loyalty card number** to store your external UUID in this field; later on, all the members' activity can be matched using this identifier.

For more information on members' identifiers, please refer to this section of the User Guide:

[Configuration](/main-features/members/configuration.md)
{% endhint %}
{% endstep %}

{% step %}
(Optional) Add **custom attributes** to store flexible, tenant-specific data.

<figure><img src="/files/YqTGAMjeRWvnvESPudQi" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Complete **custom fields** if they are defined and required for your tenant.

If **custom fields** have been marked as required in your tenant configuration, they must be completed to successfully create a member.

<figure><img src="/files/AMkfx1suBAD9Zg050DBT" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
(Optional) Enter **address** and **company details**, if enabled.

<figure><img src="/files/aCFr3h1W7bQpZJQQriKO" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
(Optional) Capture necessary **agreements**, such as legal, marketing, or data processing consent.

<figure><img src="/files/hsr3qSq2VFHzHK3kyjKZ" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Once all required fields are filled, click **Add member**.

{% endstep %}
{% endstepper %}

***

### **Import Members in Bulk**

{% stepper %}
{% step %}
Click **Add member → Import members**.

<figure><img src="/files/7V4lTuBXSW6vu1QWp3MH" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Upload a file in **XML format** (maximum file size: 100 MB).

<figure><img src="/files/xhdfrXhnMQco4vOQj0NL" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
For more information on import files, please refer to this section of the User Guide: \
[Imports](/main-features/imports-exports/imports.md)\
[Sample Import Files](/main-features/imports-exports/imports/sample-import-files.md)
{% endhint %}
{% endstep %}

{% step %}
After uploading, confirm with **Import**.

<figure><img src="/files/rs4MiLHt00qYcZPHRuYK" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Imports are **asynchronous**.&#x20;

You can check the progress and final status under **Imports/Exports → Imports**.

<figure><img src="/files/2lByuYqkg49GDcAOyc0M" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
If the number of members exceeds the file size limit, split the data into multiple batches and upload them separately.
{% endhint %}

***

### Tracking Imports

* Go to **Imports/Exports → Imports** to review the status of uploaded files.
* Each import record displays the **file name, import type, start date, number of records**, and **current status**.
* Click into an import to see **individual records** and verify whether they were successfully processed.

***

## Key Points to Remember

* **One of the identifiers** (email, phone, or loyalty card number) must be set as unique identifiers to avoid duplicate members.
* Only **XML** imports are supported at the moment.
* Member activity (e.g., transactions or custom events) will be matched according to configured identifiers.
* Required **custom fields** must always be completed during member creation.


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.openloyalty.io/main-features/members/member-list/adding-members.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
