# Groups

The **Customer Groups** feature serves as a B2B user management tool. With customer groups, you define the relevant access permissions for your end customers from the same organization.

When you create a company in the system, the predefined customer groups are created simultaneously:

* *Admin* - has manage rights for users and checkout data, as well as read right for orders data.
* *Contact* - is assigned to the company as a contact person.
* *Buyer* - can make their purchases up to the account limit defined for the legal entity; purchases above the limit have to be approved by the Admin user.
* *Requester* - all their purchases have to be approved - the purchases up to the account limit have to be approved by the Buyer or Admin users; the purchases exceeding the account limit have to be approved by the Admin users.

{% hint style="danger" %}
You cannot modify the predefined customer groups. Only adding/removing members to the predefined groups is possible. In case you need different permissions, create a new customer group with the relevant settings.
{% endhint %}

<figure><img src="/files/deR5JHWpuluLXIhSecuM" alt="" width="600"><figcaption></figcaption></figure>

When you create a new customer in MD or on the storefront, and assign them to the company, the person is automatically assigned to the *Contact* group.

The *Admin* customer group users can manage other users associated with the same organization directly from the storefront, ensuring the right members of their organization have the right permissions.

Management Dashboard allows you to create and manage customer groups to respond to your and your customers needs more adequately. You can view the groups that are assigned to each company on the company level. Navigate to the **Customer Management** -> **Company**, and view the **Customer groups** tab.

As customer groups are legal-entity-aware, the information relevant to the company (legal entity) can be read by the customer group.

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

## Creating a customer group and managing access permissions

{% stepper %}
{% step %}
**Choose to create group**

In the Management Dashboard, go to the **Customer Management -> Groups** and choose **Create new group**.
{% endstep %}

{% step %}
**Provide group details**

In the **Details** tab, provide the basic information about the group, such as its id, name, and description.
{% endstep %}

{% step %}
**Assign company**

Select the company you are creating the group for.
{% endstep %}

{% step %}
**Set permissions**

In the **Customer Settings** section, set the access level to the particular entities. Decide which objects the group could view or manage, and choose **Save** to create the group in the system.

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

{% step %}
**Assign group members**

Go to the **Members** tab to assign customers to the group. Choose **Add members** and select the relevant people. The group members get access to the specified entities with the specified scopes.
{% endstep %}
{% endstepper %}

## Customer assignment rules

The Emporix platform enforces rules when assigning customers to predefined groups to ensure role assignments remain valid and avoid conflicts. Within a single company, a user can belong to only one predefined group. Validation applies within the scope of a single company (legal entity) only. It does not extend across different companies or any subsidiaries.

For example:

* If a customer is already assigned to one predefined group (for example, Emporix Admin Group), then it's not possible to assign that same customer to another predefined group within the same company.
* If a customer is assigned to an *Admin* group in one company (for example, Company A), then the same customer may also be assigned to an *Admin* group in another company (for example, Company B).
* If a customer is assigned to an *Admin* group in a parent company (for example, Company A), then that same customer may also be assigned to another role such as *Buyer* in the parent company’s subsidiary.

{% hint style="success" %}
The exception is the *Contact* group, which can always be assigned.
{% endhint %}

### Company Contact Propagation

As a part of the group assignment you can decide how the contact assignments are shared within a company hierarchy. You can choose from the following options:

* **UPWARD**: Contacts assigned to a subsidiary are also visible at the parent company level. This is a default setting.
* **DOWNWARD**: Contacts assigned to a parent company are also visible in all subsidiaries.
* **DISABLED**: Contacts remain only in the company where they were assigned, with no propagation.

Propagation happens only at the moment of assignment - creating the contact in the selected company also creates corresponding contacts in related companies according to the chosen direction.

To choose the behaviour, choose the right `companyContactPropagation` setting in the [System Preferences](/ce/management-dashboard/settings/system-preferences.md).

This setting ensures flexibility in how contacts are managed across parent companies and their subsidiaries.

{% hint style="info" %}
To see the example use case of a customer group, see the [Company Related Orders and Customer Groups](/ce/customer-use-cases/scenarios-introduction/shared-orders.md).
{% endhint %}


---

# 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://developer.emporix.io/ce/management-dashboard/customer-management/customer-groups.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.
