> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iru.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Benutzer importieren

> Erstellen und aktualisieren Sie Iru Identity-Benutzer gesammelt aus einer CSV-Datei – mit erforderlichen Spalten, Validierungsregeln, dem Verhalten beim erneuten Hochladen und Hinweisen, wann stattdessen die HR-Synchronisierung sinnvoll ist.

Importieren Sie Benutzer gesammelt aus einer **CSV**-Datei, wenn Sie mehr als
eine Handvoll auf einmal hinzufügen oder aktualisieren müssen. Jeder importierte Benutzer trägt das Quell-Tag **`csv`**, und
durch erneutes Hochladen einer aktualisierten Datei bleiben die Benutzer synchron. Der CSV-Import eignet sich gut für erste
Datenübernahmen und einmalige Aktualisierungen. Wenn Ihr HR-System die fortlaufende maßgebliche Quelle ist,
verwenden Sie stattdessen die [HR-Synchronisierung](#when-to-use-hr-sync-instead).

Sie können auch von Ihnen definierte [benutzerdefinierte Attribute](/de/identity/directory/schema#custom-attributes)
als Spalten in die Datei aufnehmen. Wählen Sie unter **Directory → Users** den Pfeil
neben **+ User** und dann **Import via CSV**.

<Note>
  Laden Sie die Datei erneut hoch, wann immer sich Ihre Liste ändert. Sie können den CSV-Import mit der HR-Synchronisierung kombinieren:
  Viele Teams befüllen das Verzeichnis zunächst mit einer CSV-Datei und verbinden dann ihr HR-System, um
  es aktuell zu halten. Siehe [wann die HR-Synchronisierung sinnvoll ist](#when-to-use-hr-sync-instead).
</Note>

## Dateianforderungen

| Anforderung | Detail |
| - | - |
| **Format** | Kommagetrennte Werte (`.csv`). |
| **Kodierung** | UTF-8. Eine vorangestellte Byte-Order-Mark (wie von Excel hinzugefügt) wird akzeptiert und ignoriert. |
| **Erste Zeile** | Eine **Kopfzeile** mit den Spaltennamen. |
| **Spaltennamen (Kernspalten)** | **Groß-/Kleinschreibung beachten**; sie müssen exakt übereinstimmen (`externalId`, nicht `ExternalID`). |
| **Spaltennamen (benutzerdefinierte Attribute)** | Verwenden Sie `categorySlug.attributeSlug`. Groß-/Kleinschreibung und Leerzeichen in der Kopfzeile werden ignoriert. |
| **Maximale Zeilenanzahl** | 50.000 Datenzeilen pro Upload. |
| **Maximale Dateigröße** | 16 MB. |

<Warning>
  Importe erfolgen nach dem **Alles-oder-nichts-Prinzip**. Wenn die Datei ein strukturelles Problem aufweist oder eine
  Zeile die Validierung nicht besteht, wird **nichts importiert**. Iru gibt einen Bericht über jedes
  Problem zurück, damit Sie die Datei korrigieren und erneut hochladen können.
</Warning>

## Spalten

Der Importdialog listet jede Spalte auf, die Ihre Datei enthalten kann: erforderliche Kernspalten,
optionale Kernspalten und alle Spalten für benutzerdefinierte Attribute aus Ihrem
[Schema](/de/identity/directory/schema). Verwenden Sie die Beispieldatei aus **Download sample.csv**
als Vorlage für Ihre Kopfzeile. Wenn Ihre Spaltennamen mit dem Beispiel übereinstimmen, befüllen die Werte jeder Zeile
die entsprechenden Profilfelder des durch `externalId` identifizierten Benutzers.

### Erforderlich

Jede Zeile muss für jede dieser Spalten einen nicht leeren Wert enthalten.

| Spalte | Beschreibung | Regeln | Beispiel |
| - | - | - | - |
| `externalId` | Ihre stabile Kennung für den Benutzer; wird verwendet, um Zeilen beim erneuten Hochladen abzugleichen. | Nicht leer; **innerhalb der Datei eindeutig**. | `EMP-10482` |
| `username` | Der Anmelde-Benutzername des Benutzers. | Nicht leer. | `jane.doe` |
| `email` | Die primäre E-Mail-Adresse des Benutzers. | Eine gültige, **reine** Adresse (ohne Anzeigenamen; `Jane <jane@example.com>` wird abgelehnt). | `jane.doe@example.com` |
| `firstName` | Vorname. | Nicht leer. | `Jane` |
| `lastName` | Nachname. | Nicht leer. | `Doe` |

### Optional

Lassen Sie eine Zelle leer oder lassen Sie die Spalte ganz weg, wenn ein Wert nicht benötigt wird. Wenn
`domain` leer ist, leitet Iru sie aus der E-Mail-Adresse ab.

| Spalte | Beschreibung | Regeln | Beispiel |
| - | - | - | - |
| `domain` | Die Domäne des Benutzers. | Wenn leer, wird sie aus dem Teil von `email` nach `@` abgeleitet. Legen Sie sie nur fest, wenn sie abweichen soll. | `example.com` |
| `streetAddress` | Straßenzeile der Adresse. | Freitext. | `123 Main St` |
| `locality` | Stadt oder Ort. | Freitext. | `San Francisco` |
| `region` | Bundesland, Provinz oder Region. | Freitext. | `CA` |
| `postalCode` | Postleitzahl. | Freitext. | `94105` |
| `country` | Land. | Freitext (zum Beispiel ein ISO-Ländercode). | `US` |
| `phone` | Telefonnummer. | Wird auf E.164 normalisiert; siehe [Telefonnummern](#phone-numbers). | `+14155550101` |

### Benutzerdefinierte Attribute

Nachdem Sie benutzerdefinierte Attribute in Ihrem Schema definiert haben, listet der Importdialog sie
unter **Custom attribute columns** auf, benannt als `categorySlug.attributeSlug` aus dem
Kategorie-Slug und dem Attribut-Slug. Beispielsweise erscheinen `department` und `title` in einer
Kategorie mit dem Slug `extrainfo` als `extrainfo.department` und
`extrainfo.title`.

Fügen Sie Ihrer CSV-Kopfzeile eine Spalte pro Attribut hinzu. Die Namen der Kernspalten müssen
exakt übereinstimmen; bei Spaltennamen für benutzerdefinierte Attribute werden Groß-/Kleinschreibung und Leerzeichen ignoriert.

### Beispieldatei

Wählen Sie im Importdialog **Download sample.csv**, um eine Startdatei mit allen
Kernspalten und einem Beispielbenutzer zu erhalten. Wenn Ihr Schema benutzerdefinierte Attribute enthält,
wählen Sie den Pfeil neben **Download sample.csv** und dann **With custom
attributes**. Diese Beispieldatei fügt für jedes benutzerdefinierte Attribut in Ihrem Schema eine Spalte hinzu
und lässt diese Zellen in der Beispielzeile leer, damit Sie sie ausfüllen können. Die Kernspalten
und der Beispielbenutzer bleiben gleich.

Ersetzen Sie den Beispielbenutzer durch Ihre eigenen Zeilen und lassen Sie die Spaltennamen unverändert.

<Expandable title="Varianten optionaler Spalten">
  Sie benötigen nicht jede optionale Spalte in jeder Zeile. Eine Zeile kann nur die
  erforderlichen Spalten, eine unvollständige Adresse oder eine Telefonnummer mit oder ohne
  Ländervorwahl enthalten. Lassen Sie `domain` leer, wenn sie der E-Mail-Adresse entsprechen soll, und lassen Sie
  Zellen für benutzerdefinierte Attribute leer, wenn Sie für einen Benutzer keinen Wert haben.
</Expandable>

## Verhalten der Felder

### Ableitung der Domäne

* Wenn `domain` **leer** ist, übernimmt Iru sie aus der E-Mail-Adresse (`jane.doe@example.com`
  wird zu `example.com`).
* Wenn `domain` **angegeben** ist, wird dieser Wert unverändert verwendet.
* Eine noch nicht vorhandene Domäne wird automatisch erstellt.

### Telefonnummern

Telefonnummern werden auf **E.164** normalisiert (ein vorangestelltes `+`, Ländervorwahl, dann Ziffern,
ohne Leerzeichen oder Satzzeichen), genauso wie Telefonnummern überall
sonst in Iru Identity gespeichert werden.

| Ihre Eingabe | Gespeichert als | Grund |
| - | - | - |
| `4155550101` | `+14155550101` | Keine Ländervorwahl; die Standardvorwahl **`+1`** (Nordamerika) wird hinzugefügt. |
| `(415) 555-0101` | `+14155550101` | Trennzeichen entfernt, `+1` hinzugefügt. |
| `14155550101` | `+14155550101` | Als nordamerikanische Nummer erkannt, die bereits die `1` enthält. |
| `+14155550101` | `+14155550101` | Bereits E.164; unverändert übernommen. |
| `+44 7911 123456` | `+447911123456` | International (`+` vorhanden); Ländervorwahl beibehalten, Trennzeichen entfernt. |
| `1-800-FLOWERS` | *abgelehnt* | Enthält Buchstaben. |
| `555-0101` | *abgelehnt* | Zu wenige Ziffern für eine gültige Nummer. |

<Tip>
  Nummern außerhalb Nordamerikas müssen ein `+` und ihre Ländervorwahl enthalten (zum
  Beispiel `+44…`). Ohne vorangestelltes `+` wird angenommen, dass es sich um eine 10-stellige
  nordamerikanische Nummer handelt, und sie erhält `+1`.
</Tip>

### Adressen

Iru speichert eine Adresse, sobald **irgendeine** Adressspalte einen Wert enthält. Eine unvollständige
Adresse (zum Beispiel nur `locality` und `country`) ist in Ordnung; fehlende Teile bleiben
leer. Wenn alle Adressspalten leer sind, wird keine Adresse gespeichert.

## Import ausführen

Der Dialog **Import users via CSV** zeigt die erforderlichen und optionalen Kernspalten,
alle Spalten für benutzerdefinierte Attribute aus Ihrem Schema sowie **Download sample.csv** mit einem
Pfeil für **With custom attributes**. Ziehen Sie eine Datei in den Upload-Bereich oder durchsuchen Sie Ihre Dateien,
um eine auszuwählen.

<Steps>
  <Step title="Import starten">
    Wählen Sie unter **Directory → Users** den Pfeil neben **+ User** und dann
    **Import via CSV**. Vergleichen Sie die Spaltenliste im Dialog mit den obigen
    Tabellen.
  </Step>

  <Step title="Datei vorbereiten">
    Wählen Sie **Download sample.csv**, um eine Datei mit Kernspalten und einem Beispielbenutzer
    zu erhalten. Wenn Ihre Datei Spalten für benutzerdefinierte Attribute enthält, wählen Sie den Pfeil neben
    **Download sample.csv** und dann **With custom attributes**. Ersetzen Sie den
    Beispielbenutzer durch Ihre eigenen Zeilen und behalten Sie die Spaltennamen des Beispiels bei, damit jede Zeile
    dem richtigen Benutzer und den richtigen Profilfeldern zugeordnet wird.
  </Step>

  <Step title="Datei auswählen">
    Wählen Sie Ihre CSV-Datei aus oder ziehen Sie sie in den Upload-Bereich.
  </Step>

  <Step title="Hochladen und validieren">
    Iru validiert zunächst die gesamte Datei. Wenn die Validierung erfolgreich ist, werden die Zeilen akzeptiert und
    Benutzer im Hintergrund erstellt oder aktualisiert. Wenn die Validierung fehlschlägt, zeigt der
    Dialog einen Bericht an, und nichts wird importiert.
  </Step>

  <Step title="Ergebnis prüfen">
    Ein erfolgreicher Upload meldet, wie viele Benutzer bereitgestellt wurden, und fügt den Import
    Ihrem Verlauf hinzu, wo Sie das Ergebnis für jede Zeile prüfen können.
  </Step>

  <Step title="Benutzer einladen">
    Durch den Import erstellte Benutzer sind **ausstehend**, bis sie die Einrichtung abschließen. Laden Sie
    sie
    [gesammelt](/de/identity/directory/users#resend-invites-in-bulk) über die Benutzerliste
    oder
    [einzeln](/de/identity/directory/users#resend-an-invite-for-one-user)
    über einen Benutzerdatensatz ein. Wie Einladungen funktionieren, einschließlich der Frage, an welche E-Mail-Adresse sie gesendet werden, erfahren Sie unter
    [Benutzer einladen](/de/identity/directory/users#inviting-users).
  </Step>
</Steps>

Nach dem Hochladen validiert Iru die gesamte Datei. Wenn die Validierung fehlschlägt, wird nichts
importiert. Beheben Sie die gemeldeten Probleme und laden Sie die Datei erneut hoch. Wenn die Validierung erfolgreich ist, werden die Zeilen
akzeptiert und bereitgestellt, und Benutzer werden im Hintergrund erstellt oder aktualisiert. Prüfen Sie
den Import in Ihrem Verlauf, um jede Zeile zu bestätigen. Eine Zeile kann auch nach dem Akzeptieren der Datei
beim Anwenden noch fehlschlagen; korrigieren Sie diese Zeilen und importieren Sie sie erneut. Die zwei Prüfphasen sind unter
[Validierung und Fehler](#validation-and-errors) beschrieben.

## Erstellen vs. Aktualisieren: erneutes Hochladen

Benutzer werden innerhalb der Quelle `csv` anhand von `externalId` abgeglichen:

* Eine **neue `externalId`** erstellt einen neuen Benutzer mit der Rolle **`end-user`**.
* Eine **vorhandene `externalId`** aktualisiert das Profil dieses Benutzers anhand der Zeile. Rolle und
  Gruppenmitgliedschaften ändern sich nicht.

Laden Sie jederzeit eine korrigierte oder erweiterte CSV-Datei erneut hoch, um importierte Benutzer synchron zu halten.
Jede `externalId` in einer Datei muss eindeutig sein.

<Note>
  Laden Sie jedes Mal die **vollständige** aktuelle Datei hoch, nicht nur die geänderten
  Zeilen. Jeder Import wird anhand von `externalId` abgeglichen.
</Note>

## Validierung und Fehler

Die Validierung erfolgt in zwei Phasen. Bis die Datei vollständig akzeptiert ist, wird **nichts
importiert**.

<AccordionGroup>
  <Accordion title="Dateiprobleme (die gesamte Datei wird abgelehnt)">
    Die Datei kann nicht verarbeitet werden. Häufige Ursachen sind eine doppelte Spalte, eine
    fehlende erforderliche Spalte, eine leere Datei, eine Kopfzeile ohne Datenzeilen oder mehr
    Zeilen als das Limit. Korrigieren Sie die Datei und laden Sie sie erneut hoch.
  </Accordion>

  <Accordion title="Zeilenprobleme (dennoch wird nichts importiert)">
    Die Datei ist korrekt aufgebaut, aber eine oder mehrere Zeilen sind ungültig. Iru gibt jedes
    Problem mit der **Zeile** (die Kopfzeile ist Zeile 1, die erste Datenzeile ist also
    Zeile 2), der fehlerhaften **Spalte** (leer bei Problemen mit der gesamten Zeile) und einer
    **Meldung** zurück. Zum Beispiel:

    | Line | Column | Message |
    | - | - | - |
    | 3 | `email` | is not a valid email address |
    | 5 | `username` | is required |
    | 8 | `phone` | is not a valid phone number |
    | 9 | `externalId` | is duplicated in this file |

    Korrigieren Sie die aufgeführten Zeilen und laden Sie die Datei erneut hoch.
  </Accordion>

  <Accordion title="Fehler beim Anwenden (nachdem eine fehlerfreie Datei akzeptiert wurde)">
    Nachdem eine Datei akzeptiert wurde, werden die Zeilen im Hintergrund angewendet. Eine Zeile kann in dieser
    Phase dennoch fehlschlagen, wenn zum Beispiel die E-Mail-Adresse bereits von einem anderen
    Benutzer verwendet wird oder ein Wert mit einem
    [eindeutigen Attribut](/de/identity/directory/schema) in Konflikt steht. Diese **Fehler beim Anwenden** werden
    im Importbatch mit `externalId`, `username` und Fehlerdetails der Zeile
    erfasst. Korrigieren Sie diese Zeilen und importieren Sie sie erneut.
  </Accordion>
</AccordionGroup>

## Wann die HR-Synchronisierung sinnvoller ist

Laden Sie eine CSV-Datei erneut hoch, wann immer sich Ihre Liste ändert, und Iru prüft jede Zeile erneut. Für eine
kontinuierliche, wartungsfreie Bereitstellung verbinden Sie stattdessen Ihr HR-System als maßgeblichen
Datensatz.

| | CSV-Import | HR-System-Synchronisierung |
| - | - | - |
| **Auslöser** | Sie laden eine Datei hoch | Läuft automatisch nach Zeitplan |
| **Bleibt aktuell?** | Wenn Sie erneut hochladen | Ja (synchronisiert automatisch erneut) |
| **Erstellen / Aktualisieren** | Beides, abgeglichen anhand von `externalId` | Beides, automatisch |
| **Entfernen** | Manuell | Kann Benutzer beim Offboarding entfernen |
| **Am besten für** | Erste Datenübernahmen, Ad-hoc-Ergänzungen | Fortlaufende Lebenszyklusautomatisierung |

<Note>
  Sie können beides verwenden. Die Einrichtung der HR-Synchronisierung wird unter
  [Directory Sync](/de/identity/directory/directory-sync) beschrieben.
</Note>

## Nächste Schritte

<CardGroup cols={2}>
  <Card title="HR-System verbinden" icon="building-user" href="/de/identity/directory/directory-sync">
    Automatisieren Sie Erstellen, Aktualisieren und Entfernen nach Zeitplan.
  </Card>

  <Card title="Zuerst Ihr Schema entwerfen" icon="table-list" href="/de/identity/directory/schema">
    Definieren Sie erforderliche und eindeutige Attribute vor dem Import.
  </Card>

  <Card title="Einzelne Benutzer verwalten" icon="user" href="/de/identity/directory/users">
    Bearbeiten, sperren und laden Sie die importierten Benutzer ein.
  </Card>

  <Card title="In Gruppen organisieren" icon="users" href="/de/identity/directory/groups">
    Machen Sie aus Ihren importierten Benutzern zuweisbare Gruppen.
  </Card>
</CardGroup>
