---
title: "Feature: Configure what frontend users synchronise"
manual: "Academic Profiles"
version: "main"
source: "Changelog/3.0/Feature-ConfigurableFrontendUserMapping.rst"
rendered: "2026-10-02T20:47:49+00:00"
---

# Feature: Configure what frontend users synchronise {#feature-configurable-frontend-user-mapping}

## Description {#description}

The synchronisation of `academic:createprofiles` and
`academic:updateprofiles` copied a fixed set of `fe_users` columns:
the names, the title, the website, one address, one e-mail address, telephone
and fax. Anything else - a mobile number, a position, a room - needed a
complete profile factory of its own.

The new top-level map `frontendUserSync` of
`Configuration/AcademicPersons/Settings.yaml` names the column behind
every synchronised property:

-   `profile` and `contract` map single properties, among them the
    contract's `position` and `room`.
-   `physicalAddresses`, `emailAddresses` and `phoneNumbers`
    are lists; every entry becomes one record of the imported contract, and a
    phone number carries its `type`.
-   A property mapped to `''` is not synchronised: the value an editor
    entered stays. A map without any source of the contract leaves the
    imported contract alone.

A site package changes the keys it names, like any other key of the file. A
custom profile factory can apply the same map through
`\FGTCLB\AcademicPersons\Profile\FrontendUserProfileMapper` instead of
copying it. See [Frontend user synchronisation](../../Configuration/FrontendUserSync/Index.html#configuration-frontend-user-sync).

## Impact {#impact}

Nothing changes for an installation without a map of its own: the shipped map
is the previous synchronisation, with the same import identifiers, so existing
records are matched as before and no migration is needed.

A mistake in a map of a site package makes the synchronisation throw the
exception `1790142324` before anything is written, and a column the frontend
user record does not have the exception `1790142326`; the rest of the
installation is not affected.
