Funktionen

Das nele.ai Handbuch: Einfach starten & Funktionen nachschlagen.

Alle Funktionen
  • Funktionen für Anwender
  • Chats
    Steuern Sie die Kommunikation mit KI-Systemen individuell und übersichtlich.
  • Prompts
    Verwalten und nutzen Sie eigene und vorgefertige Prompts zentral in der gesamten Organisation.
  • Programm Einstellungen
    Konfigurieren Sie nele.ai, so wie Sie es möchten. Dark-Mode, Shortcuts, API uvm.
  • AddIns Word / Excel
    Nutzen Sie nele.ai in Ihren bestehenden Workflows in Microsoft Word und Excel.
  • API Integration Funktion von nele.ai
    API-Integration
    Erstellen Sie eigene API-Keys für die nahtlose Einbindung in Ihre Anwendungen und Systeme.
  • Funktionen für Administratoren
  • Admin Bereich
    Demo, Tutorials, Account einrichten und Support.
  • SSO mit SAML 2.0
    Informationen zur SAML 2.0 Single-Sign-On Einrichtung.
  • Wissenswertes
  • Allgemein
    Alles zur KI-Plattform und KI-Lösung für Organisationen.
  • KI-Modelle
    Übersicht über aller geprüften und verfügbaren KI-Modelle.
  • Bereit loszulegen?
  • Demo vereinbaren
  • Kostenloser Fachvortrag
  • Schulung anfragen
  • Kontakt
Alle Funktionen
Ressourcen
  • Softwarewissen
  • KI-Modelle
    Übersicht über aller geprüften
    und verfügbaren KI-Modelle.
  • Sicherheit
    Erfahren Sie mehr zu unserem Sicherheitskonzept
    für mehr Datensicherheit mit KI.
  • Changelog
    Neue Funktionen, Fehlerbehebungen und Inhalte.
  • Kompetenzsteigerung
  • Demo vereinbaren
    Vereinbaren Sie ein unverbindliches mit
    Erstgespräch mit unseren KI-Experten.
  • Kostenloser Fachvortrag
    In regelmässig kostenlosen Fachvorträgen
    lernen Sie wie Sie nele.ai im Alltag einsetzen.
  • Schulungen
    Fragen Sie individuelle KI-Schulungen
    zugeschnitten auf Ihre Branche und Team an.
  • Allgemeine Informationen
  • Neuigkeiten
    KI Updates, Neuigkeiten und Berichte.
  • Presse Mitteilungen
    Presseberichte & Bildmaterial.
PreiseSicherheit
Einloggen
Login für AdminLogin für Nutzer
RegistrierenDemo vereinbaren — kostenlos
Einloggen
  • Login für Admin
  • Login für Nutzer
RegistrierenDemo vereinbaren — kostenlos

Wechsel und Datenübertragbarkeit bei nele.ai

Stand: 10.09.2026

nele.ai unterstützt den Wechsel zu einem anderen Anbieter eines vergleichbaren Datenverarbeitungsdienstes oder zu einer eigenen IT-Infrastruktur sowie, soweit technisch möglich, die parallele Nutzung mehrerer Anbieter.

Auf dieser Seite finden Sie Informationen zu den Wechsel- und Übertragungsmöglichkeiten, zu den verfügbaren Import- und Exportformaten, zu technischen Beschränkungen sowie zu den Datenstrukturen und Interoperabilitätsstandards von nele.ai.

Inhalt

  • 1. Wechsel von nele.ai zu einem anderen Anbieter
  • 2. Wechsel zu nele.ai
  • 3. Exportierbare Daten und digitale Vermögenswerte
  • 4. Nicht exportierbare Daten und Bestandteile
  • 5. Online-Verzeichnis der Datenstrukturen und Datenformate
    • 5.1 Grundlagen und Aufbau des Verzeichnisses
    • 5.2 Container und Querschnittsformate
    • 5.3 Datenkategorien
    • 5.4 Schemadefinitionen
    • 5.5 Referenzierte offene Spezifikationen
    • 5.6 Stand und Aktualisierung des Verzeichnisses
  • 6. Schnittstellen und Interoperabilität
  • 7. Bekannte technische Beschränkungen und Grenzen
  • 8. Sicherheit während des Wechsels
  • 9. Abrufzeitraum und Löschung
  • 10. Kosten des Wechsels
  • 11. Eingesetzte IKT-Infrastruktur
  • 12. Schutz vor unvereinbarem staatlichem Zugriff aus Drittstaaten
  • 13. Unterstützung und Kontakt

1. Wechsel von nele.ai zu einem anderen Anbieter

Der Wechsel von nele.ai wird nach Ziffer 15 der Nutzungsbedingungen durch eine Kündigung beziehungsweise Wechselanfrage eingeleitet.

Eine Wechselanfrage kann über support@nele.ai gestellt werden.

Bitte geben Sie dabei möglichst folgende Informationen an:

  • das betroffene Kundenkonto
  • ob der Wechsel zu einem anderen Anbieter oder zu einer eigenen IT-Infrastruktur erfolgen soll
  • bei einem Anbieterwechsel die erforderlichen Angaben zum neuen Anbieter
  • welche Daten und Inhalte übertragen werden sollen
  • den gewünschten Zeitpunkt des Wechsels

Ablauf des Wechsels

Nach Ablauf der maßgeblichen Ankündigungsfrist beginnt ein Übergangszeitraum von grundsätzlich höchstens 30 Kalendertagen. Während dieses Zeitraums steht nele.ai im bisherigen vertraglichen Umfang zur Verfügung und die Daten können exportiert und übertragen werden.

Der Kunde kann den Übergangszeitraum einmalig um einen von ihm für angemessen gehaltenen Zeitraum verlängern.

Ist ein Wechsel innerhalb von 30 Kalendertagen aus technischen Gründen nicht möglich, informiert GAL Digital den Kunden innerhalb von 14 Arbeitstagen nach Eingang der Wechselanfrage über die Gründe und die erforderliche alternative Übergangsfrist. Diese beträgt höchstens sieben Monate.

GAL Digital unterstützt den Kunden und von ihm autorisierte Dritte in angemessenem Umfang bei der Durchführung des Wechsels und bei der Umsetzung seiner Exit-Strategie.

Voraussichtliche technische Dauer eines üblichen Exports: 72 Stunden an Werktagen.

Die tatsächliche Dauer kann insbesondere vom Umfang der Daten und der gewählten Exportmethode abhängen.

2. Wechsel zu nele.ai

Für einen Wechsel von einem anderen Datenverarbeitungsdienst zu nele.ai stehen folgende Importmöglichkeiten zur Verfügung:

Importmethode Unterstützte Inhalte Formate Technische Hinweise
Datei-UploadChats, Wissensdatenbanken, Nutzer, Gruppen, AssistentenDateien (csv, doc, docx, html, json, jsonl, md, odp, ods, odt, pdf, ppt, pptx, rtf, txt, xls, xlsx, xml und ggf. weitere)Einzelverarbeitung via Oberfläche
Unterstützter ImportChats, WissensdatenbankenOriginalformate (csv, doc, docx, html, json, jsonl, md, odp, ods, odt, pdf, ppt, pptx, rtf, txt, xls, xlsx, xml und ggf. weitere) und JSON für Konfigurationen und Chats.Anfrage über support@nele.ai

3. Exportierbare Daten und digitale Vermögenswerte

Grundsätzlich können die vom Kunden eingebrachten und im Rahmen der Nutzung für den Kunden erzeugten Daten und Inhalte exportiert werden.

Hierzu gehören insbesondere:

Datenkategorie Exportierbar Exportformat Exportmethode
Vom Kunden hochgeladene Inhalte und DateienJaOriginalformatE-Mail mit Downloadlink
Chats einschließlich NutzereingabenJaOriginalformate und JSONE-Mail mit Downloadlink
Von der KI erzeugte AntwortenJaOriginalformate und JSONE-Mail mit Downloadlink
Konfigurationen von AssistentenJaOriginalformate und JSONE-Mail mit Downloadlink
Inhalte von WissensdatenbankenJaOriginalformate und JSONE-Mail mit Downloadlink
Permanentes WissenJaOriginalformate und JSONE-Mail mit Downloadlink
Zugehörige MetadatenJaJSONE-Mail mit Downloadlink

Welche Strukturen und Formate diese Ausleitungen im Einzelnen haben, beschreibt Abschnitt 5.

4. Nicht exportierbare Daten und Bestandteile

Nicht Bestandteil des Exports sind Daten und technische Bestandteile, die nicht zu den exportierbaren Daten oder digitalen Vermögenswerten des Kunden gehören.

Kategorie Grund
Software und technische Bestandteile von nele.aiEigene technische Infrastruktur und Software von GAL Digital
KI-ModelleModelle der jeweiligen Modellanbieter beziehungsweise von GAL Digital
Interne technische RepräsentationenInterne Funktionsweise beziehungsweise geschützte technische Strukturen
Daten Dritter, an denen der Kunde keine erforderlichen Rechte besitztRechte Dritter
Passwörter, Zwei-Faktor-Codes, API-SchlüsselwerteAusschließlich als Einwegfunktion gespeichert. Es existiert kein portabler Klartext; eine Ausleitung des Hashwerts brächte keinen Nutzen, sondern wäre allein ein Angriffsziel. Von API-Schlüsseln werden Name, Inhaber, Ablauf und letzte Verwendung ausgeleitet, sodass der Bestand ausgestellter Schlüssel nachvollziehbar bleibt.
Zugangsdaten zu Fremdsystemen in Wissensdatenbank-EinträgenVerschlüsselt hinterlegte Zugangsdaten des Kunden zu fremden Quellsystemen. Entschlüsselt in einem herunterladbaren Archiv wären sie ein Abflusskanal ohne Portabilitätsgewinn — der Kunde verfügt am Quellsystem ohnehin über sie. Ausgeleitet werden Typ, Quelle, Kontext und Status, sodass die Verbindung neu eingerichtet werden kann.
Zuordnungstabelle des Privatsphärefilters (Pseudonym → Originalwert)Redundant und unverhältnismäßig risikobehaftet. Sowohl der Originaltext als auch die maskierte Fassung werden ausgeleitet; die Platzhalter tragen die Art der erkannten Angabe in sich. Die Zuordnung ist daraus rekonstruierbar. Die Tabelle selbst fügt dem Export keine Information hinzu, wohl aber einen gebündelten, maschinenlesbaren Index sämtlicher erkannter Personenbezüge. Der Verzicht kostet nichts und entfernt ein erhebliches Risiko.
Einbettungsvektoren der WissensdatenbankenAbgeleitete Daten, die erst durch zusätzliche Verarbeitung entstehen (vgl. Erwägungsgrund 15 der Datenverordnung), und ausschließlich mit demselben Einbettungsmodell verwertbar. Das portable Gut sind Quelldokument und extrahierter Text; beide sind enthalten. Die Segmentierung ist aus den ausgeleiteten Werten für Segmentgröße und Überlappung reproduzierbar.
Nutzungsaggregate der AuswertungTages- und Nutzerauswertungen entstehen durch Verdichtung der ohnehin enthaltenen Nutzungssätze. Sie tragen keine eigene Information und lassen sich aus den ausgeleiteten Sätzen jederzeit neu berechnen.
Segmenttexte und interne SegmentierungsdatenWörtliche Ausschnitte der ohnehin enthaltenen Quelldokumente. Eine zusätzliche Ausleitung würde das Archiv ohne Informationsgewinn erheblich vergrößern.
Herstellerseitig kuratierte Prompt-VorlagenMit dem Produkt ausgelieferte Inhalte, keine durch die Nutzung des Dienstes entstandenen Daten. Übernimmt eine Nutzerin eine Vorlage in die eigene Prompt-Sammlung, ist diese Kopie enthalten.
Betriebstelemetrie, Fehler- und Auftragswarteschlangen, Sitzungen, Einmal-AnmeldetokenBetriebs- und Diagnosedaten sowie flüchtiger Infrastrukturzustand. Sitzungen und Einmaltoken sind aktive Anmeldedaten.
Vom Anbieter festgelegte Merkmale der OrganisationGebuchter Funktionsumfang, Abrechnungskennung, monatliches Kreditlimit der Organisation sowie die Kennzeichen zur Nutzungsüberwachung und zur automatischen Zahlungsfreigabe. Diese Werte legt der Anbieter im Rahmen des Vertragsverhältnisses fest; sie sind keine durch die Nutzung entstandenen Daten der Organisation. Die von der Organisation selbst vergebenen Limits ihrer Mitglieder und Gruppen sind enthalten.
Vom Anbieter oder über SSO gesetzte Merkmale am BenutzerkontoDas Kennzeichen, ob ein Konto sein Passwort selbst ändern darf, sowie die vom Identitätsanbieter bei der Anmeldung übermittelten Gruppenbezeichnungen. Beides wird nicht von der Organisation gepflegt, sondern ergibt sich aus der Bereitstellung des Dienstes bzw. aus der angebundenen Anmeldung.
Konfiguration der Anmeldung über einen Identitätsanbieter (SSO)Sicherheitstechnische Konfigurationsdaten. Sie beschreiben, wie der Zugang zum Dienst abgesichert ist, und sind keine durch die Nutzung des Dienstes entstandenen Inhalte. Dazu zählen die Verbindungsdaten und Zertifikate des Identitätsanbieters, die Zuordnung übermittelter Gruppen sowie der Schlüssel des Dienstanbieters, der ohnehin der Anwendung und nicht der Organisation zugeordnet ist. Die im Dienst geführten Gruppen selbst werden ausgeleitet.
Datenbestände und Kennungen des ZahlungsdienstleistersRechnungs- und Abonnementdaten werden beim Zahlungsdienstleister geführt. Weder ein Teilabbild dieser Bestände noch die dort verwendeten Kennungen für Kunde, Abonnement oder Rechnung werden ausgeleitet: es sind interne Verweise auf ein fremdes System, die außerhalb davon nicht bedeutungstragend sind. Ausgeleitet werden die Rechnungsdokumente selbst sowie die im Dienst geführten Kreditkontingente.
Gelöschte und abgelaufene DatenDurch Aufbewahrungsregeln entfernte Chats und Bilder sind endgültig gelöscht und können nicht ausgeleitet werden.
Altdaten aus Version 1 des DienstesWerden von diesem Verzeichnis nicht beschrieben. Gegenstand des Verzeichnisses ist ausschließlich das aktuelle Datenmodell; für Bestände aus Version 1 wird kein Schema veröffentlicht.

5. Online-Verzeichnis der Datenstrukturen und Datenformate

Dieses Verzeichnis wird gemäß Artikel 30 Absatz 1 der Verordnung (EU) 2023/2854 (Datenverordnung, „Data Act") bereitgestellt.

Das folgende Verzeichnis beschreibt die Strukturen und Formate, in denen die exportierbaren Daten von nele.ai zur Verfügung gestellt werden.

5.1 Grundlagen und Aufbau des Verzeichnisses

Bezugseinheit. Ein Export bezieht sich stets auf eine Organisation (das Konto des Vertragspartners), nicht auf einzelne Nutzerinnen und Nutzer. Viele Inhalte — Assistenten, Prompts, Wissensdatenbanken, Dateien — sind der Organisation zugeordnet und bestehen unabhängig davon fort, ob das erstellende Benutzerkonto noch existiert. Ein rein personenbezogener Ausschnitt würde daher Bestandteile des Kontos stillschweigend auslassen.

Aufbau. Die Ausleitung erfolgt als ZIP-Archiv. Es enthält die strukturierten Daten als JSON-Dateien unterhalb von data/, die zugehörigen Dateien im Originalformat unterhalb von files/ — dort unter ihrer jeweiligen Kennung — sowie unter schemas/ eine wortgleiche Kopie der Schemadefinitionen. Dadurch lässt sich ein Archiv vollständig offline prüfen, ohne Zugriff auf diese Seite.

Schemadefinitionen. Die verbindlichen Strukturbeschreibungen liegen als JSON Schema (Draft 07) vor und sind unter 5.4 vollständig und wortgleich abgedruckt. In den Tabellen ist jede Schemadatei namentlich genannt und als Sprungmarke innerhalb dieser Seite hinterlegt. Alle Verweise zwischen den Dateien sind relativ; die Schemata sind ohne Netzzugriff auflösbar.

Kennungen. Interne Bezeichner werden nicht ausgeleitet. Jeder Datensatz trägt eine eigene, nicht deutbare Kennung, aus der sich weder der interne Schlüssel noch eine Reihenfolge, ein Zählerstand oder ein Erstellungszeitpunkt ableiten lässt. Innerhalb eines Archivs ist diese Kennung konsistent, sodass Freigaben, Ordnerstrukturen und Dateibezüge auflösbar bleiben. Dateien werden unterhalb von files/ allein über ihre Kennung angesprochen; ein bestimmter Pfadaufbau innerhalb dieses Verzeichnisses wird nicht zugesichert und darf nicht aus den Angaben zusammengesetzt werden. Welche Datei zu welchem Datensatz gehört, ergibt sich allein aus der referenzierenden Stelle; dort wird die Datei auch beschrieben.

Formatversion. Die Version des Exportformats (manifest.formatVersion) ist unabhängig von jeder Software-, Release- oder Dienstversion von nele.ai. Sie ändert sich ausschließlich durch Änderungen an den hier veröffentlichten Schemata: ergänzende Änderungen erhöhen die Nebenversion, strukturbrechende die Hauptversion. Eine neue Version der Anwendung hebt sie nicht an.

Offene Wertelisten. Wo dieses Verzeichnis Werte aufzählt — Werkzeuge, Berechtigungen, Verarbeitungszustände, Sprachen, Segmentgrößen —, sind das Beispiele des Veröffentlichungsstands und keine abschließende Aufzählung. Diese Vokabulare wachsen mit dem Funktionsumfang des Dienstes. Verarbeitende Systeme müssen unbekannte Werte annehmen und dürfen einen Datensatz nicht deshalb zurückweisen. Abschließend sind nur die Angaben, die das Format selbst beschreiben, etwa Zeichencodierung, Prüfsummenverfahren und die Unterscheidung der Modellauswahl.

Vollständigkeit. Jedes Archiv weist im Manifest unter excluded selbst aus, welche Daten es nicht enthält. Abschnitt 4 begründet jede dieser Auslassungen.

5.2 Container und Querschnittsformate

Datenkategorie Format Struktur / Schema Zeichencodierung / Version Relevante Norm oder offene Spezifikation
Exportarchiv (Container)ZIPmanifest.json als Index; Verzeichnisse data/, files/, schemas/ZIP 6.3.10, Deflate/Store, unverschlüsseltPKWARE APPNOTE 6.3.10; Profil nach ISO/IEC 21320-1:2015
ExportmanifestJSONmanifest.schema.jsonUTF-8 / Formatversion 1.0.0RFC 8259 (STD 90)
SchemadefinitionenJSON Schemadata-act-schemas/*.schema.jsonUTF-8 / Draft 07JSON Schema Draft 07 (draft-handrews-json-schema-01 und -validation-01)
Zeichencodierung (alle Textdateien)—durchgehend UTF-8, ohne BOMUTF-8RFC 3629; ISO/IEC 10646
ZeitangabenZeichenkettecommon.schema.json → timestamp; UTC mit Suffix ZRFC-3339-ProfilRFC 3339 (Profil von ISO 8601-1:2019)
PrüfsummenZeichenkette (hexadezimal)manifest.files[].sha256SHA-256FIPS PUB 180-4; RFC 6234
KennungenZeichenkettecommon.schema.json → exportIdundurchsichtig, archivintern konsistentkeine externe Norm; bewusst herstellerspezifisch und nicht deutbar (siehe 5.1)
Beträge und KreditwerteZeichenkette mit Dezimalpunktcommon.schema.json → decimalStringbis 64 Stellen, davon 16 NachkommastellenRFC 8259 Abschnitt 6 — als Zeichenkette geführt, um Genauigkeitsverlust zu vermeiden
SprachkennungenZeichenkettecommon.schema.json → localezweibuchstabig; der Satz angebotener Sprachen ist nicht festgeschriebenISO 639-1
LänderkennungenZeichenkettecommon.schema.json → countryCodeALL sowie Alpha-2-CodesISO 3166-1 Alpha-2
MedientypenZeichenkettecommon.schema.json → mimeType—RFC 2046; IANA Media Types Registry
E-Mail-AdressenZeichenketteaccount.schema.json—RFC 5322

5.3 Datenkategorien

Datenkategorie Format Struktur / Schema Zeichencodierung / Version Relevante Norm oder offene Spezifikation
ChatsJSONdata/chats.json → chats.schema.jsonUTF-8 / 1.0RFC 8259; JSON Schema Draft 07
Nachrichteninhalte und KI-AntwortenMarkdown in JSON-Zeichenkettecommon.schema.json → message, Feld contentUTF-8 / CommonMark 0.31.2CommonMark 0.31.2, zuzüglich der Erweiterungen Tabellen und Durchstreichung; RFC 8259
Denkschritte der KI (Reasoning)Text in JSON-Zeichenkettecommon.schema.json → message, Feld reasoningUTF-8 / 1.0RFC 8259
Werkzeugaufrufe der KIJSONcommon.schema.json → toolCallsUTF-8 / 1.0RFC 8259
ModellkonfigurationJSONcommon.schema.json → modelConfigurationUTF-8 / 1.0RFC 8259
Systemprompt- und AntwortkonfigurationJSONcommon.schema.json → systemPromptUTF-8 / 1.0RFC 8259
Ordner- und AblagestrukturJSONcommon.schema.json → folderNode, je Domänendatei unter foldersUTF-8 / 1.0RFC 8259
Freigaben und BerechtigungenJSONcommon.schema.json → permissionUTF-8 / 1.0RFC 8259
AssistentenJSONdata/assistants.json → assistants.schema.jsonUTF-8 / 1.0RFC 8259
Assistenten-Chats und -NachrichtenJSONassistants.schema.json, Abschnitt assistantChatsUTF-8 / 1.0RFC 8259
Permanentes Wissen (Assistentendateien)OriginalformatDateien unter files/, referenziert in assistants.schema.json unter permanentKnowledgeOriginalkodierung; Index UTF-8RFC 2046; Formatnormen der jeweiligen Einzeldatei
Prompts (mehrsprachig)JSONdata/prompts.json → prompts.schema.json; je Sprache eine Fassung, adressiert über die SprachkennungUTF-8 / 1.0RFC 8259; ISO 639-1
Prompt-AnhängeOriginalformatDateien unter files/, referenziert in prompts.schema.json unter attachmentsOriginalkodierungRFC 2046
Wissensdatenbanken (Metadaten)JSONdata/knowledge-bases.json → knowledge-bases.schema.jsonUTF-8 / 1.0RFC 8259
Wissensdatenbank-QuelldokumenteOriginalformatDateien unter files/, referenziert in knowledge-bases.schema.json unter sourceFileOriginalkodierungFormatnormen der Einzeldatei, z. B. ISO 32000-1 (PDF), ISO/IEC 29500 (DOCX)
Extrahierter Text aus QuelldokumentenNur-TextDateien unter files/, referenziert in knowledge-bases.schema.json unter extractedTextFileUTF-8 / 1.0RFC 2046 (text/plain); RFC 3629
Chat- und NachrichtenanhängeOriginalformatDateien unter files/, referenziert in common.schema.json → message unter attachmentsOriginalkodierungRFC 2046
AudioaufnahmenOriginalformatDateien unter files/, referenziert in transcriptions.schema.json unter audioFileOriginalkodierungRFC 2046
TranskriptionenNur-Text + JSONdata/transcriptions.json → transcriptions.schema.json; Text unter files/UTF-8 / 1.0RFC 8259; RFC 3629
NutzerkontenJSONdata/account.json → account.schema.json, Abschnitt usersUTF-8 / 1.0RFC 8259; RFC 5322
Organisation und GruppenJSONaccount.schema.json, Abschnitte account und groupsUTF-8 / 1.0RFC 8259
EinladungenJSONaccount.schema.json, Abschnitt invitationsUTF-8 / 1.0RFC 8259
EinstellungenJSONdata/settings.json → settings.schema.jsonUTF-8 / 1.0RFC 8259
InhaltsfilterJSONdata/content-filters.json → content-filters.schema.jsonUTF-8 / 1.0RFC 8259
Nutzungsdaten und KreditverbrauchJSONdata/usage.json → usage.schema.jsonUTF-8 / 1.0RFC 8259
API-Schlüssel (nur Metadaten)JSONdata/api-keys.json → api-keys.schema.jsonUTF-8 / 1.0RFC 8259
AktivitätsprotokollJSONdata/activity-log.json → activity-log.schema.jsonUTF-8 / 1.0RFC 8259
RechnungenPDF mit eingebettetem XMLRechnungsdokument des Zahlungsdienstleisters mit eingebettetem CII-XMLPDF 1.x; CII UN/CEFACT D16BISO 32000-1:2008; EN 16931-1:2017; CIUS XRechnung 3.0 (KoSIT); Einbettung nach ZUGFeRD 2.x / Factur-X

5.4 Schemadefinitionen

Die folgenden 13 Dateien sind die verbindlichen Strukturbeschreibungen des Exportformats. Sie sind hier wortgleich zu den Dateien abgedruckt, die jedes Archiv unter schemas/ mitführt.

Jede Datei, jede Definition und jedes Element der obersten Ebene trägt eine eigene Sprungmarke der Form #schema-<datei> beziehungsweise #<datei>-definitions-<name>. Die Marken liegen innerhalb dieser Seite; jede Schemanennung in den Tabellen oben führt unmittelbar auf die zugehörige Definition, und jeder $ref innerhalb der Schemata verweist auf sein Ziel in dieser Seite.

SchemadateiGegenstandUmfangSprungmarke
account.schema.jsonAccount4 Elemente#schema-account
activity-log.schema.jsonActivity log1 Elemente#schema-activity-log
api-keys.schema.jsonAPI keys1 Elemente#schema-api-keys
assistants.schema.jsonAssistants3 Elemente#schema-assistants
chats.schema.jsonChats2 Elemente#schema-chats
common.schema.jsonCommon definitions37 Definitionen#schema-common
content-filters.schema.jsonContent filters1 Elemente#schema-content-filters
knowledge-bases.schema.jsonKnowledge bases2 Elemente#schema-knowledge-bases
manifest.schema.jsonExport manifest9 Elemente#schema-manifest
prompts.schema.jsonPrompts3 Elemente#schema-prompts
settings.schema.jsonSettings1 Elemente#schema-settings
transcriptions.schema.jsonTranscriptions1 Elemente#schema-transcriptions
usage.schema.jsonUsage2 Elemente#schema-usage

Die Schemadefinitionen sind jeweils eingeklappt. Ein Sprung auf eine Definition klappt den zugehörigen Abschnitt auf.

5.4.1 account.schema.json — Account

The organisation holding the contract, its members, groups and pending invitations. Credentials are never part of the export: passwords and two-factor codes are stored as one-way hashes and there is nothing portable to hand over. Settings that the provider defines for the organisation rather than the organisation itself, and the single sign-on configuration, are outside the scope of the export; the directory explains why.

Elemente der obersten Ebene: account, users, groups, invitations

Schemadefinition account.schema.json anzeigen
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Account",
  "description": "The organisation holding the contract, its members, groups and pending invitations. Credentials are never part of the export: passwords and two-factor codes are stored as one-way hashes and there is nothing portable to hand over. Settings that the provider defines for the organisation rather than the organisation itself, and the single sign-on configuration, are outside the scope of the export; the directory explains why.",
  "type": "object",
  "properties": {
    "account": {
      "title": "Organisation",
      "type": "object",
      "properties": {
        "id": {
          "$ref": "common.schema.json#/definitions/exportId"
        },
        "name": {
          "type": "string"
        },
        "ownerId": {
          "$ref": "common.schema.json#/definitions/exportId"
        },
        "buyerReference": {
          "description": "Reference the customer requires on invoices.",
          "type": "string"
        },
        "chatText": {
          "description": "Organisation-specific notice shown in the chat area.",
          "type": [
            "string",
            "null"
          ]
        },
        "isTwoFactorRequired": {
          "type": "boolean"
        },
        "isWebSearchEnabled": {
          "type": "boolean"
        },
        "defaultPrivacyFilterActive": {
          "description": "Whether personal data is masked before being sent to the model provider by default.",
          "type": "boolean"
        },
        "defaultModel": {
          "$ref": "common.schema.json#/definitions/nullableModelConfiguration"
        },
        "defaultImageModel": {
          "$ref": "common.schema.json#/definitions/nullableModelConfiguration"
        },
        "logo": {
          "description": "Branding logo of the organisation.",
          "$ref": "common.schema.json#/definitions/nullableFileReference"
        },
        "createdAt": {
          "$ref": "common.schema.json#/definitions/timestamp"
        },
        "updatedAt": {
          "$ref": "common.schema.json#/definitions/timestamp"
        }
      },
      "required": [
        "id",
        "name",
        "ownerId",
        "createdAt"
      ],
      "additionalProperties": false
    },
    "users": {
      "type": "array",
      "items": {
        "title": "User",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "common.schema.json#/definitions/exportId"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "firstname": {
            "type": [
              "string",
              "null"
            ]
          },
          "lastname": {
            "type": [
              "string",
              "null"
            ]
          },
          "locale": {
            "$ref": "common.schema.json#/definitions/locale"
          },
          "abilities": {
            "type": "array",
            "items": {
              "$ref": "common.schema.json#/definitions/ability"
            }
          },
          "groupIds": {
            "type": "array",
            "items": {
              "$ref": "common.schema.json#/definitions/exportId"
            }
          },
          "creditLimitPerMonth": {
            "$ref": "common.schema.json#/definitions/creditLimit"
          },
          "creditLimitPerDay": {
            "$ref": "common.schema.json#/definitions/creditLimit"
          },
          "receivesUsageInfo": {
            "type": "boolean"
          },
          "webSearchCountry": {
            "$ref": "common.schema.json#/definitions/countryCode"
          },
          "webSearchConsentedAt": {
            "$ref": "common.schema.json#/definitions/nullableTimestamp"
          },
          "usageExportConsentedAt": {
            "description": "When the user consented to appearing by name in the usage report.",
            "$ref": "common.schema.json#/definitions/nullableTimestamp"
          },
          "inactiveChatsExpirationTime": {
            "$ref": "common.schema.json#/definitions/expirationTime"
          },
          "redactions": {
            "type": "array",
            "items": {
              "$ref": "common.schema.json#/definitions/redactionNotice"
            }
          },
          "createdAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          },
          "updatedAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          }
        },
        "required": [
          "id",
          "email",
          "locale",
          "abilities",
          "createdAt"
        ],
        "additionalProperties": false
      }
    },
    "groups": {
      "type": "array",
      "items": {
        "title": "Group",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "common.schema.json#/definitions/exportId"
          },
          "name": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "creditLimitPerMonth": {
            "$ref": "common.schema.json#/definitions/creditLimit"
          },
          "creditLimitPerDay": {
            "$ref": "common.schema.json#/definitions/creditLimit"
          },
          "abilities": {
            "type": "array",
            "items": {
              "$ref": "common.schema.json#/definitions/ability"
            }
          },
          "memberIds": {
            "type": "array",
            "items": {
              "$ref": "common.schema.json#/definitions/exportId"
            }
          },
          "createdAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          },
          "updatedAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          }
        },
        "required": [
          "id",
          "name",
          "enabled",
          "abilities",
          "memberIds",
          "createdAt"
        ],
        "additionalProperties": false
      }
    },
    "invitations": {
      "description": "Invitations issued but not yet accepted. The invitation token is a credential and is not exported.",
      "type": "array",
      "items": {
        "title": "Invitation",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "common.schema.json#/definitions/exportId"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "invitedById": {
            "$ref": "common.schema.json#/definitions/nullableExportId"
          },
          "locale": {
            "$ref": "common.schema.json#/definitions/locale"
          },
          "abilities": {
            "type": "array",
            "items": {
              "$ref": "common.schema.json#/definitions/ability"
            }
          },
          "groupIds": {
            "type": "array",
            "items": {
              "$ref": "common.schema.json#/definitions/exportId"
            }
          },
          "creditLimitPerMonth": {
            "$ref": "common.schema.json#/definitions/creditLimit"
          },
          "creditLimitPerDay": {
            "$ref": "common.schema.json#/definitions/creditLimit"
          },
          "createdAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          }
        },
        "required": [
          "id",
          "email",
          "locale",
          "createdAt"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "account",
    "users",
    "groups",
    "invitations"
  ],
  "additionalProperties": false
}

5.4.2 activity-log.schema.json — Activity log

Audit trail of changes made within the organisation. Each entry records that a change occurred, which record it concerned and who caused it.

Elemente der obersten Ebene: activities

Schemadefinition activity-log.schema.json anzeigen
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Activity log",
  "description": "Audit trail of changes made within the organisation. Each entry records that a change occurred, which record it concerned and who caused it.",
  "type": "object",
  "properties": {
    "activities": {
      "type": "array",
      "items": {
        "title": "Activity",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "common.schema.json#/definitions/exportId"
          },
          "description": {
            "type": "string"
          },
          "event": {
            "enum": [
              "created",
              "updated",
              "deleted",
              "restored",
              null
            ]
          },
          "subject": {
            "description": "The record the entry concerns.",
            "anyOf": [
              {
                "$ref": "common.schema.json#/definitions/logReference"
              },
              {
                "type": "null"
              }
            ]
          },
          "causer": {
            "description": "The user who caused the change.",
            "anyOf": [
              {
                "$ref": "common.schema.json#/definitions/logReference"
              },
              {
                "type": "null"
              }
            ]
          },
          "properties": {
            "description": "Additional context recorded with the entry, after redaction.",
            "type": [
              "object",
              "null"
            ]
          },
          "redactions": {
            "type": "array",
            "items": {
              "$ref": "common.schema.json#/definitions/redactionNotice"
            }
          },
          "createdAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          }
        },
        "required": [
          "id",
          "description",
          "event",
          "subject",
          "causer",
          "createdAt"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "activities"
  ],
  "additionalProperties": false
}

5.4.3 api-keys.schema.json — API keys

Metadata of the API keys issued for the organisation. The key itself is stored as a one-way hash and its plain text exists only once, at creation, so it cannot be exported.

Elemente der obersten Ebene: apiKeys

Schemadefinition api-keys.schema.json anzeigen
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "API keys",
  "description": "Metadata of the API keys issued for the organisation. The key itself is stored as a one-way hash and its plain text exists only once, at creation, so it cannot be exported.",
  "type": "object",
  "properties": {
    "apiKeys": {
      "type": "array",
      "items": {
        "title": "API key",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "common.schema.json#/definitions/exportId"
          },
          "name": {
            "type": "string"
          },
          "userId": {
            "description": "The user the key was issued to.",
            "$ref": "common.schema.json#/definitions/nullableExportId"
          },
          "lastUsedAt": {
            "$ref": "common.schema.json#/definitions/nullableTimestamp"
          },
          "expiresAt": {
            "$ref": "common.schema.json#/definitions/nullableTimestamp"
          },
          "redactions": {
            "description": "Always records that the key material itself was withheld.",
            "type": "array",
            "items": {
              "$ref": "common.schema.json#/definitions/redactionNotice"
            }
          },
          "createdAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          }
        },
        "required": [
          "id",
          "name",
          "userId",
          "createdAt"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "apiKeys"
  ],
  "additionalProperties": false
}

5.4.4 assistants.schema.json — Assistants

Assistants configured by the organisation, the permanent knowledge files attached to them, and the conversations held with them.

Elemente der obersten Ebene: assistants, assistantChats, folders

Schemadefinition assistants.schema.json anzeigen
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Assistants",
  "description": "Assistants configured by the organisation, the permanent knowledge files attached to them, and the conversations held with them.",
  "type": "object",
  "properties": {
    "assistants": {
      "type": "array",
      "items": {
        "title": "Assistant",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "common.schema.json#/definitions/exportId"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "enabled": {
            "type": "boolean"
          },
          "creatorId": {
            "description": "Null when the creating account has since been deleted; the assistant belongs to the organisation and survives.",
            "$ref": "common.schema.json#/definitions/nullableExportId"
          },
          "folderId": {
            "$ref": "common.schema.json#/definitions/nullableExportId"
          },
          "position": {
            "$ref": "common.schema.json#/definitions/treePosition"
          },
          "isShared": {
            "type": "boolean"
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "common.schema.json#/definitions/permission"
            }
          },
          "systemPrompt": {
            "description": "Instructions that govern the assistant's behaviour.",
            "type": [
              "string",
              "null"
            ]
          },
          "modelConfiguration": {
            "$ref": "common.schema.json#/definitions/modelConfiguration"
          },
          "imageModelConfiguration": {
            "$ref": "common.schema.json#/definitions/nullableModelConfiguration"
          },
          "tools": {
            "$ref": "common.schema.json#/definitions/toolConfiguration"
          },
          "options": {
            "$ref": "common.schema.json#/definitions/chatOptions"
          },
          "knowledge": {
            "description": "The knowledge this assistant draws on: either automatic selection or the knowledge bases explicitly attached to it.",
            "$ref": "common.schema.json#/definitions/knowledgeConfiguration"
          },
          "permanentKnowledge": {
            "description": "Files that are permanently part of the assistant's context, as opposed to a knowledge base, which is consulted per query.",
            "type": "array",
            "items": {
              "$ref": "common.schema.json#/definitions/fileReference"
            }
          },
          "createdAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          },
          "updatedAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          }
        },
        "required": [
          "id",
          "title",
          "enabled",
          "creatorId",
          "isShared",
          "createdAt"
        ],
        "additionalProperties": false
      }
    },
    "assistantChats": {
      "type": "array",
      "items": {
        "title": "Assistant chat",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "common.schema.json#/definitions/exportId"
          },
          "assistantId": {
            "$ref": "common.schema.json#/definitions/exportId"
          },
          "title": {
            "type": "string"
          },
          "creatorId": {
            "$ref": "common.schema.json#/definitions/nullableExportId"
          },
          "creditUsage": {
            "$ref": "common.schema.json#/definitions/decimalString"
          },
          "creditUsageUpdatedAt": {
            "$ref": "common.schema.json#/definitions/nullableTimestamp"
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "common.schema.json#/definitions/message"
            }
          },
          "createdAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          },
          "updatedAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          }
        },
        "required": [
          "id",
          "assistantId",
          "title",
          "creatorId",
          "messages",
          "createdAt"
        ],
        "additionalProperties": false
      }
    },
    "folders": {
      "type": "array",
      "items": {
        "$ref": "common.schema.json#/definitions/folderNode"
      }
    }
  },
  "required": [
    "assistants",
    "assistantChats",
    "folders"
  ],
  "additionalProperties": false
}

5.4.5 chats.schema.json — Chats

Conversations held in the chat area, including every message, the folder tree they are filed in and the permissions under which they were shared.

Elemente der obersten Ebene: chats, folders

Schemadefinition chats.schema.json anzeigen
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Chats",
  "description": "Conversations held in the chat area, including every message, the folder tree they are filed in and the permissions under which they were shared.",
  "type": "object",
  "properties": {
    "chats": {
      "type": "array",
      "items": {
        "title": "Chat",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "common.schema.json#/definitions/exportId"
          },
          "title": {
            "type": "string"
          },
          "creatorId": {
            "description": "The user who started the conversation. Null when that account has since been deleted; the chat itself belongs to the organisation and survives.",
            "$ref": "common.schema.json#/definitions/nullableExportId"
          },
          "folderId": {
            "description": "Folder this chat is filed in, or null when it sits at the root of the tree.",
            "$ref": "common.schema.json#/definitions/nullableExportId"
          },
          "position": {
            "$ref": "common.schema.json#/definitions/treePosition"
          },
          "isShared": {
            "type": "boolean"
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "common.schema.json#/definitions/permission"
            }
          },
          "modelConfiguration": {
            "$ref": "common.schema.json#/definitions/modelConfiguration"
          },
          "imageModelConfiguration": {
            "$ref": "common.schema.json#/definitions/nullableModelConfiguration"
          },
          "tools": {
            "$ref": "common.schema.json#/definitions/toolConfiguration"
          },
          "options": {
            "$ref": "common.schema.json#/definitions/chatOptions"
          },
          "systemPrompt": {
            "$ref": "common.schema.json#/definitions/systemPrompt"
          },
          "creditUsage": {
            "description": "Credits consumed by this conversation.",
            "$ref": "common.schema.json#/definitions/decimalString"
          },
          "creditUsageUpdatedAt": {
            "$ref": "common.schema.json#/definitions/nullableTimestamp"
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "common.schema.json#/definitions/message"
            }
          },
          "createdAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          },
          "updatedAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          }
        },
        "required": [
          "id",
          "title",
          "creatorId",
          "isShared",
          "messages",
          "createdAt"
        ],
        "additionalProperties": false
      }
    },
    "folders": {
      "description": "Folder tree of the chat area, one tree per user.",
      "type": "array",
      "items": {
        "$ref": "common.schema.json#/definitions/folderNode"
      }
    }
  },
  "required": [
    "chats",
    "folders"
  ],
  "additionalProperties": false
}

5.4.6 common.schema.json — Common definitions

Shared building blocks referenced by every other schema of the nele.ai data export. This file declares no top-level structure of its own; it exists solely to be referenced via relative $ref, for example {"$ref": "common.schema.json#/definitions/exportId"}.

Definitionen: exportId, nullableExportId, timestamp, nullableTimestamp, decimalString, creditLimit, sha256, mimeType, locale, countryCode, localeMap, modelConfiguration, nullableModelConfiguration, systemPrompt, localizedSystemPrompt, toolName, toolConfiguration, knowledgeConfiguration, toolCall, toolCalls, chatOptions, messageRole, messageStatus, message, ability, permission, treePosition, folderNode, fileReference, nullableFileReference, expirationTime, chunkSize, chunkOverlap, itemStatus, itemType, logReference, redactionNotice

Schemadefinition common.schema.json anzeigen
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Common definitions",
  "description": "Shared building blocks referenced by every other schema of the nele.ai data export. This file declares no top-level structure of its own; it exists solely to be referenced via relative $ref, for example {\"$ref\": \"common.schema.json#/definitions/exportId\"}.",
  "definitions": {
    "exportId": {
      "title": "Export identifier",
      "description": "Opaque identifier of a record inside the archive. Internal identifiers are never exported: they are replaced by generated values from which neither the internal identifier nor an ordering, a counter position or a creation time can be derived. The same entity carries the same identifier in every file of one archive, which is what keeps permissions, folder trees and the file index resolvable. No stability is promised across two archives.",
      "type": "string",
      "minLength": 8,
      "maxLength": 64,
      "pattern": "^[A-Za-z0-9_-]+$"
    },
    "nullableExportId": {
      "title": "Optional reference",
      "description": "An export identifier, or null where the reference is absent — for example a record filed at the root of a tree, or one whose creator's account has since been deleted.",
      "anyOf": [
        {
          "$ref": "#/definitions/exportId"
        },
        {
          "type": "null"
        }
      ]
    },
    "timestamp": {
      "title": "Timestamp",
      "description": "Point in time in UTC, formatted according to RFC 3339 with the literal offset 'Z'.",
      "type": "string",
      "format": "date-time",
      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]+)?Z$"
    },
    "nullableTimestamp": {
      "title": "Optional timestamp",
      "description": "A timestamp, or null where the event it marks has not occurred.",
      "anyOf": [
        {
          "$ref": "#/definitions/timestamp"
        },
        {
          "type": "null"
        }
      ]
    },
    "decimalString": {
      "title": "Exact decimal",
      "description": "Decimal number carried as a JSON string. The underlying columns are numeric(64,16); RFC 8259 section 6 only guarantees interoperability within IEEE 754 double precision, which 16 fractional digits exceed. Consumers must parse this with an arbitrary-precision decimal type, never as a floating point number.",
      "type": "string",
      "pattern": "^-?[0-9]+(\\.[0-9]+)?$"
    },
    "creditLimit": {
      "title": "Credit limit",
      "description": "Upper bound on the credits that may be consumed in the given period, or null when no limit applies.",
      "type": [
        "integer",
        "null"
      ]
    },
    "sha256": {
      "title": "SHA-256 checksum",
      "description": "Lower-case hexadecimal SHA-256 digest (FIPS PUB 180-4).",
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "mimeType": {
      "title": "Media type",
      "description": "IANA media type of the referenced content (RFC 2046).",
      "type": "string",
      "pattern": "^[a-zA-Z0-9!#$&^_.+-]+/[a-zA-Z0-9!#$&^_.+-]+$"
    },
    "locale": {
      "title": "Locale",
      "description": "Language tag as a two-letter ISO 639-1 code. Which languages the service offers changes over time; the form is fixed, the set is not.",
      "type": "string",
      "pattern": "^[a-z]{2}$",
      "examples": [
        "de",
        "en",
        "fr"
      ]
    },
    "countryCode": {
      "title": "Country code",
      "description": "Region used to bias web search results. 'ALL' means no regional restriction; every other value is an ISO 3166-1 alpha-2 code.",
      "type": "string",
      "pattern": "^(ALL|[A-Z]{2})$",
      "examples": [
        "ALL",
        "DE",
        "AT",
        "CH"
      ]
    },
    "localeMap": {
      "title": "Translated text",
      "description": "Text held per locale, keyed by ISO 639-1 code. Sparsely populated: only locales that actually carry a translation are present.",
      "type": "object",
      "propertyNames": {
        "pattern": "^[a-z]{2}$"
      },
      "additionalProperties": {
        "type": "string"
      }
    },
    "modelConfiguration": {
      "title": "Model configuration",
      "description": "Which model was used. Either automatic selection, a model of the provider identified by its original name, or a model the organisation configured itself.",
      "oneOf": [
        {
          "title": "Automatic model selection",
          "type": "object",
          "properties": {
            "type": {
              "const": "auto"
            }
          },
          "required": [
            "type"
          ],
          "additionalProperties": false
        },
        {
          "title": "Provider model",
          "type": "object",
          "properties": {
            "type": {
              "enum": [
                "text_model",
                "image_model"
              ]
            },
            "name": {
              "description": "Original name of the model as issued by the model provider, for example the name under which it is addressed at that provider's API. Carried instead of an internal identifier so that the selection remains meaningful outside this service.",
              "type": "string",
              "minLength": 1
            },
            "configuration": {
              "description": "Model parameters. Keys and values are always strings and never nested; an empty object is the common case.",
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "required": [
            "type",
            "name",
            "configuration"
          ],
          "additionalProperties": false
        },
        {
          "title": "Organisation model",
          "type": "object",
          "properties": {
            "type": {
              "const": "team_model"
            },
            "id": {
              "description": "The model configured by the organisation itself.",
              "$ref": "#/definitions/exportId"
            },
            "configuration": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "required": [
            "type",
            "id",
            "configuration"
          ],
          "additionalProperties": false
        }
      ]
    },
    "nullableModelConfiguration": {
      "title": "Optional model configuration",
      "description": "A model configuration, or null where none was recorded.",
      "anyOf": [
        {
          "$ref": "#/definitions/modelConfiguration"
        },
        {
          "type": "null"
        }
      ]
    },
    "systemPrompt": {
      "title": "System prompt",
      "description": "Behavioural configuration of the assistant for one conversation. Always present in full; the application falls back to its default rather than storing null.",
      "type": "object",
      "properties": {
        "useCustomSystemMessage": {
          "description": "Whether systemMessage is applied.",
          "type": "boolean"
        },
        "systemMessage": {
          "description": "Free-text system message. Its maximum length is a configured limit of the service and is therefore not fixed in this schema.",
          "type": "string"
        },
        "answerLength": {
          "enum": [
            "short",
            "standard",
            "detailed"
          ]
        },
        "answerStyle": {
          "enum": [
            "friendly",
            "factual",
            "formal"
          ]
        }
      },
      "required": [
        "useCustomSystemMessage",
        "systemMessage",
        "answerLength",
        "answerStyle"
      ],
      "additionalProperties": false
    },
    "localizedSystemPrompt": {
      "title": "Localized system prompt",
      "description": "System prompt held per locale, keyed by ISO 639-1 code. Every locale the service offers carries an entry; the set of locales is not fixed by this schema.",
      "type": "object",
      "propertyNames": {
        "pattern": "^[a-z]{2}$"
      },
      "additionalProperties": {
        "$ref": "#/definitions/systemPrompt"
      },
      "minProperties": 1
    },
    "toolName": {
      "title": "Tool name",
      "description": "A tool the model may call while answering. This vocabulary is open: it grows with the service, so a consumer must accept values not listed here rather than reject the record. The values in use at the time of publication are given as examples.",
      "type": "string",
      "minLength": 1,
      "examples": [
        "generate_image",
        "optimize_prompt",
        "search_web"
      ]
    },
    "toolConfiguration": {
      "title": "Tool configuration",
      "description": "Which tools the model may call: either automatic selection, or an explicit list.",
      "oneOf": [
        {
          "const": "auto"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/definitions/toolName"
          },
          "uniqueItems": true
        }
      ]
    },
    "knowledgeConfiguration": {
      "title": "Knowledge configuration",
      "description": "Which knowledge the model may draw on while answering: either automatic selection, or an explicit list of knowledge bases. One single field carries both cases, because the service treats them as mutually exclusive. The content of the referenced knowledge bases is exported in knowledge-bases.json.",
      "oneOf": [
        {
          "const": "auto"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/definitions/exportId"
          },
          "uniqueItems": true
        }
      ]
    },
    "toolCall": {
      "title": "Tool call",
      "description": "A single tool invocation performed while answering, including its result.",
      "type": "object",
      "properties": {
        "type": {
          "const": "dynamic-tool"
        },
        "toolName": {
          "$ref": "#/definitions/toolName"
        },
        "toolCallId": {
          "type": "string"
        },
        "state": {
          "enum": [
            "output-available",
            "output-error"
          ]
        },
        "input": {
          "description": "Arguments the model passed to the tool.",
          "type": "object"
        },
        "output": {
          "description": "Result returned by the tool. Null when the call failed."
        },
        "errorText": {
          "description": "Error description. Null when the call succeeded.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "type",
        "toolName",
        "toolCallId",
        "state",
        "input",
        "output",
        "errorText"
      ],
      "additionalProperties": false,
      "allOf": [
        {
          "description": "A failed call carries no output.",
          "if": {
            "properties": {
              "state": {
                "const": "output-error"
              }
            },
            "required": [
              "state"
            ]
          },
          "then": {
            "properties": {
              "output": {
                "type": "null"
              }
            }
          }
        },
        {
          "description": "A successful call carries no error text.",
          "if": {
            "properties": {
              "state": {
                "const": "output-available"
              }
            },
            "required": [
              "state"
            ]
          },
          "then": {
            "properties": {
              "errorText": {
                "type": "null"
              }
            }
          }
        }
      ]
    },
    "toolCalls": {
      "title": "Tool calls",
      "type": "array",
      "items": {
        "$ref": "#/definitions/toolCall"
      }
    },
    "chatOptions": {
      "title": "Conversation options",
      "description": "Options active for a conversation. 'pseudonymize' means personal data was masked before the text was sent to the model provider.",
      "type": "array",
      "items": {
        "enum": [
          "pseudonymize"
        ]
      },
      "uniqueItems": true
    },
    "messageRole": {
      "title": "Message role",
      "type": "string",
      "enum": [
        "user",
        "assistant",
        "system",
        "tool_call",
        "tool_result"
      ]
    },
    "messageStatus": {
      "title": "Message status",
      "type": "string",
      "enum": [
        "pending",
        "success",
        "error",
        "stopped"
      ]
    },
    "message": {
      "title": "Message",
      "description": "A single message of a conversation. Chat messages and assistant-chat messages share this structure; only the conversation they belong to differs.",
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/definitions/exportId"
        },
        "role": {
          "$ref": "#/definitions/messageRole"
        },
        "status": {
          "$ref": "#/definitions/messageStatus"
        },
        "content": {
          "description": "Message text as authored or generated. The format is CommonMark, extended with tables and strikethrough. A strict CommonMark reader renders those two constructs as plain text and therefore loses their formatting, not their content.",
          "type": "string"
        },
        "pseudonymizationContent": {
          "description": "The redacted variant of content that was actually transmitted to the model provider, present only when the privacy filter was active. The mapping from placeholder back to the original value is deliberately not part of the export; see the exclusions section of the directory.",
          "type": [
            "string",
            "null"
          ]
        },
        "reasoning": {
          "description": "Reasoning trace of the model, where the model returned one.",
          "type": [
            "string",
            "null"
          ]
        },
        "toolCalls": {
          "anyOf": [
            {
              "$ref": "#/definitions/toolCalls"
            },
            {
              "type": "null"
            }
          ]
        },
        "modelConfiguration": {
          "$ref": "#/definitions/nullableModelConfiguration"
        },
        "imageModelConfiguration": {
          "$ref": "#/definitions/nullableModelConfiguration"
        },
        "tools": {
          "anyOf": [
            {
              "$ref": "#/definitions/toolConfiguration"
            },
            {
              "type": "null"
            }
          ]
        },
        "options": {
          "anyOf": [
            {
              "$ref": "#/definitions/chatOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "systemPrompt": {
          "anyOf": [
            {
              "$ref": "#/definitions/systemPrompt"
            },
            {
              "type": "null"
            }
          ]
        },
        "attachments": {
          "description": "Files attached to this message, referencing entries of the file index.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/fileReference"
          }
        },
        "isComplete": {
          "type": "boolean"
        },
        "completedAt": {
          "$ref": "#/definitions/nullableTimestamp"
        },
        "createdAt": {
          "$ref": "#/definitions/timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/timestamp"
        }
      },
      "required": [
        "id",
        "role",
        "status",
        "content",
        "isComplete",
        "createdAt"
      ],
      "additionalProperties": false
    },
    "ability": {
      "title": "Ability",
      "description": "A permission that can be granted to a user or a group. This vocabulary is open: it grows with the service, so a consumer must accept values not listed here rather than reject the record. The values in use at the time of publication are given as examples.",
      "type": "string",
      "minLength": 1,
      "examples": [
        "assistants_create",
        "chats_create",
        "prompts_create",
        "invoices",
        "team",
        "usage",
        "users"
      ]
    },
    "permission": {
      "title": "Share permission",
      "description": "Grants one action on a shared object to a user, a group or the whole organisation.",
      "type": "object",
      "properties": {
        "ownerType": {
          "enum": [
            "user",
            "group",
            "team"
          ]
        },
        "ownerId": {
          "description": "The user, group or organisation the permission was granted to. Null when it applies to the organisation as a whole.",
          "$ref": "#/definitions/nullableExportId"
        },
        "action": {
          "enum": [
            "view",
            "use",
            "update",
            "delete"
          ]
        }
      },
      "required": [
        "ownerType",
        "ownerId",
        "action"
      ],
      "additionalProperties": false
    },
    "treePosition": {
      "title": "Position",
      "description": "Zero-based sort position among the siblings of the same parent.",
      "type": "integer",
      "minimum": 0
    },
    "folderNode": {
      "title": "Folder",
      "description": "One folder of a filing tree. Folders nest through parentId; a null parentId marks a root folder. Objects state which folder they sit in through their own folderId.",
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/definitions/exportId"
        },
        "parentId": {
          "$ref": "#/definitions/nullableExportId"
        },
        "ownerId": {
          "description": "The user whose personal filing tree this folder belongs to.",
          "$ref": "#/definitions/exportId"
        },
        "title": {
          "type": "string"
        },
        "position": {
          "$ref": "#/definitions/treePosition"
        },
        "createdAt": {
          "$ref": "#/definitions/timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/timestamp"
        }
      },
      "required": [
        "id",
        "parentId",
        "ownerId",
        "title",
        "position"
      ],
      "additionalProperties": false
    },
    "fileReference": {
      "title": "File reference",
      "description": "Describes a file contained in the archive under files/ and is the only place that file is described. The file is identified by its identifier alone; the archive makes no promise about how the files are arranged inside that directory, so consumers must resolve a file through this identifier rather than by constructing a path.",
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/definitions/exportId"
        },
        "originalFilename": {
          "description": "File name as supplied by the user at upload time.",
          "type": "string"
        },
        "mimeType": {
          "$ref": "#/definitions/mimeType"
        },
        "sha256": {
          "$ref": "#/definitions/sha256"
        }
      },
      "required": [
        "id",
        "originalFilename"
      ],
      "additionalProperties": false
    },
    "nullableFileReference": {
      "title": "Optional file reference",
      "description": "A file reference, or null where no such file exists for the record.",
      "anyOf": [
        {
          "$ref": "#/definitions/fileReference"
        },
        {
          "type": "null"
        }
      ]
    },
    "expirationTime": {
      "title": "Chat retention period",
      "description": "After how long without activity a chat is deleted automatically. This vocabulary is open: it grows with the service, so a consumer must accept values not listed here rather than reject the record. The values in use at the time of publication are given as examples.",
      "type": "string",
      "minLength": 1,
      "examples": [
        "never",
        "one_day",
        "thirty_days",
        "one_year"
      ]
    },
    "chunkSize": {
      "title": "Chunk size",
      "description": "Character length of the segments a source document is split into before indexing. Which lengths the service offers is a configuration matter, so only the form is fixed here.",
      "type": "integer",
      "minimum": 1,
      "examples": [
        1000,
        2000,
        4000
      ]
    },
    "chunkOverlap": {
      "title": "Chunk overlap",
      "description": "Character overlap between consecutive segments.",
      "type": "integer",
      "minimum": 0,
      "examples": [
        100,
        200,
        400
      ]
    },
    "itemStatus": {
      "title": "Knowledge base item status",
      "description": "Processing state of a knowledge base entry. Further values express that the processing of an entry did not complete. This vocabulary is open: it grows with the service, so a consumer must accept values not listed here rather than reject the record. The values in use at the time of publication are given as examples.",
      "type": "string",
      "minLength": 1,
      "examples": [
        "draft",
        "pending",
        "embedded"
      ]
    },
    "itemType": {
      "title": "Knowledge base item type",
      "description": "Whether the entry originates from an uploaded document or from a retrieved URL.",
      "type": "string",
      "enum": [
        "document",
        "url"
      ]
    },
    "logReference": {
      "title": "Log reference",
      "description": "Reference to the record a log entry concerns, written as the kind of record and its identifier joined by a colon, for example chat:k7Qb2mXr9TfA. The set of kinds is open and grows with the service, so a consumer must accept kinds not seen before. The kind names an exported record, never an internal class.",
      "type": "string",
      "pattern": "^[a-z_]+:[A-Za-z0-9_-]+$"
    },
    "redactionNotice": {
      "title": "Redaction notice",
      "description": "Records that a single field was removed from the export. A visible gap is preferable to a silent one.",
      "type": "object",
      "properties": {
        "field": {
          "description": "Name of the omitted field.",
          "type": "string"
        },
        "reason": {
          "description": "Why it was omitted. The directory explains each reason in full.",
          "type": "string",
          "enum": [
            "credential",
            "third_party_credential",
            "personal_data_index",
            "derived_data",
            "vendor_content"
          ]
        }
      },
      "required": [
        "field",
        "reason"
      ],
      "additionalProperties": false
    }
  }
}

5.4.7 content-filters.schema.json — Content filters

Content filters that apply within the organisation. Filters the organisation defined itself are exported with their terms. Filters provided with the product are vendor content rather than data generated by using the service, so they are referenced by identifier and name only. Which filters are active for an individual user is recorded in settings.schema.json.

Elemente der obersten Ebene: contentFilters

Schemadefinition content-filters.schema.json anzeigen
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Content filters",
  "description": "Content filters that apply within the organisation. Filters the organisation defined itself are exported with their terms. Filters provided with the product are vendor content rather than data generated by using the service, so they are referenced by identifier and name only. Which filters are active for an individual user is recorded in settings.schema.json.",
  "type": "object",
  "properties": {
    "contentFilters": {
      "description": "Content filters defined by the organisation. Filters provided by the vendor are not customer data and are referenced by identifier only.",
      "type": "array",
      "items": {
        "title": "Content filter",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "common.schema.json#/definitions/exportId"
          },
          "name": {
            "type": "string"
          },
          "scope": {
            "description": "Whether the filter was defined by the organisation or provided with the product.",
            "enum": [
              "organisation",
              "vendor"
            ]
          },
          "terms": {
            "description": "The blocked terms or patterns. Present only for filters the organisation defined itself.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "createdAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          },
          "updatedAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          }
        },
        "required": [
          "id",
          "name",
          "scope"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "contentFilters"
  ],
  "additionalProperties": false
}

5.4.8 knowledge-bases.schema.json — Knowledge bases

Knowledge bases of the organisation and the entries they are built from. The portable substance of an entry is its source document and the text extracted from it; both are contained in the archive under files/. The representations computed for retrieval are not exported.

Elemente der obersten Ebene: knowledgeBases, folders

Schemadefinition knowledge-bases.schema.json anzeigen
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Knowledge bases",
  "description": "Knowledge bases of the organisation and the entries they are built from. The portable substance of an entry is its source document and the text extracted from it; both are contained in the archive under files/. The representations computed for retrieval are not exported.",
  "type": "object",
  "properties": {
    "knowledgeBases": {
      "type": "array",
      "items": {
        "title": "Knowledge base",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "common.schema.json#/definitions/exportId"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "creatorId": {
            "$ref": "common.schema.json#/definitions/nullableExportId"
          },
          "folderId": {
            "$ref": "common.schema.json#/definitions/nullableExportId"
          },
          "position": {
            "$ref": "common.schema.json#/definitions/treePosition"
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "common.schema.json#/definitions/permission"
            }
          },
          "chunkSize": {
            "$ref": "common.schema.json#/definitions/chunkSize"
          },
          "chunkOverlap": {
            "$ref": "common.schema.json#/definitions/chunkOverlap"
          },
          "items": {
            "type": "array",
            "items": {
              "title": "Knowledge base item",
              "type": "object",
              "properties": {
                "id": {
                  "$ref": "common.schema.json#/definitions/exportId"
                },
                "title": {
                  "type": "string"
                },
                "type": {
                  "$ref": "common.schema.json#/definitions/itemType"
                },
                "status": {
                  "$ref": "common.schema.json#/definitions/itemStatus"
                },
                "sourceUrl": {
                  "description": "Address the entry was retrieved from, for entries of type 'url'.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "context": {
                  "description": "Additional context stored alongside the entry.",
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "chunkSize": {
                  "$ref": "common.schema.json#/definitions/chunkSize"
                },
                "chunkOverlap": {
                  "$ref": "common.schema.json#/definitions/chunkOverlap"
                },
                "sourceFile": {
                  "description": "The uploaded or retrieved source document.",
                  "$ref": "common.schema.json#/definitions/nullableFileReference"
                },
                "extractedTextFile": {
                  "description": "Plain text extracted from the source document and actually used for indexing.",
                  "$ref": "common.schema.json#/definitions/nullableFileReference"
                },
                "redactions": {
                  "description": "Fields omitted from this entry, in particular credentials held for authenticated sources.",
                  "type": "array",
                  "items": {
                    "$ref": "common.schema.json#/definitions/redactionNotice"
                  }
                },
                "createdAt": {
                  "$ref": "common.schema.json#/definitions/timestamp"
                },
                "updatedAt": {
                  "$ref": "common.schema.json#/definitions/timestamp"
                }
              },
              "required": [
                "id",
                "title",
                "type",
                "status",
                "createdAt"
              ],
              "additionalProperties": false
            }
          },
          "createdAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          },
          "updatedAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          }
        },
        "required": [
          "id",
          "title",
          "enabled",
          "creatorId",
          "items",
          "createdAt"
        ],
        "additionalProperties": false
      }
    },
    "folders": {
      "type": "array",
      "items": {
        "$ref": "common.schema.json#/definitions/folderNode"
      }
    }
  },
  "required": [
    "knowledgeBases",
    "folders"
  ],
  "additionalProperties": false
}

5.4.9 manifest.schema.json — Export manifest

Index of one export archive. It is the entry point for any consumer: it names the format version, lists every payload file with its checksum and record counts, and states explicitly which data was left out.

Elemente der obersten Ebene: formatVersion, generatedAt, characterEncoding, checksumAlgorithm, scope, timeRange, counts, files, excluded

Schemadefinition manifest.schema.json anzeigen
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Export manifest",
  "description": "Index of one export archive. It is the entry point for any consumer: it names the format version, lists every payload file with its checksum and record counts, and states explicitly which data was left out.",
  "type": "object",
  "properties": {
    "formatVersion": {
      "description": "Version of the export format itself. It is independent of any software, release or service version of nele.ai and moves only when these schemas change: additive changes raise the minor version, breaking changes the major one. A release of the service does not raise it.",
      "type": "string",
      "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"
    },
    "generatedAt": {
      "description": "When the archive was produced.",
      "$ref": "common.schema.json#/definitions/timestamp"
    },
    "characterEncoding": {
      "description": "Character encoding of every text file in the archive.",
      "const": "UTF-8"
    },
    "checksumAlgorithm": {
      "description": "Algorithm behind every checksum in this manifest.",
      "const": "SHA-256"
    },
    "scope": {
      "description": "The account the archive belongs to. An export always covers a whole organisation, which is the contracting party.",
      "type": "object",
      "properties": {
        "type": {
          "const": "account"
        },
        "accountId": {
          "$ref": "common.schema.json#/definitions/exportId"
        },
        "accountName": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "accountId",
        "accountName"
      ],
      "additionalProperties": false
    },
    "timeRange": {
      "description": "Period the export covers. A null 'from' means the archive reaches back to the beginning of the account.",
      "type": "object",
      "properties": {
        "from": {
          "$ref": "common.schema.json#/definitions/nullableTimestamp"
        },
        "to": {
          "$ref": "common.schema.json#/definitions/timestamp"
        }
      },
      "required": [
        "from",
        "to"
      ],
      "additionalProperties": false
    },
    "counts": {
      "description": "Record counts across the whole archive, for a quick completeness check.",
      "type": "object",
      "additionalProperties": {
        "type": "integer",
        "minimum": 0
      }
    },
    "files": {
      "description": "Every payload file of the archive. Large collections may be split into several parts; each part validates against the same schema and is listed here separately.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "path": {
            "description": "Archive-relative path of the file.",
            "type": "string"
          },
          "schema": {
            "description": "File name of the schema this file validates against, resolvable inside the schemas/ directory of the archive.",
            "type": "string",
            "pattern": "\\.schema\\.json$"
          },
          "mediaType": {
            "$ref": "common.schema.json#/definitions/mimeType"
          },
          "sha256": {
            "$ref": "common.schema.json#/definitions/sha256"
          },
          "recordCounts": {
            "type": "object",
            "additionalProperties": {
              "type": "integer",
              "minimum": 0
            }
          }
        },
        "required": [
          "path",
          "schema",
          "mediaType",
          "sha256"
        ],
        "additionalProperties": false
      }
    },
    "excluded": {
      "description": "Data deliberately not contained in the archive. Stating the gaps here is what makes the export self-describing; the online directory carries the full reasoning.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "category": {
            "enum": [
              "credential",
              "third_party_credential",
              "personal_data_index",
              "derived_data",
              "vendor_content",
              "operational_telemetry",
              "legacy_data",
              "provider_configuration",
              "security_configuration"
            ]
          },
          "items": {
            "description": "The omitted fields or stores, named as in the directory.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "category",
          "items",
          "reason"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "formatVersion",
    "generatedAt",
    "characterEncoding",
    "checksumAlgorithm",
    "scope",
    "timeRange",
    "counts",
    "files",
    "excluded"
  ],
  "additionalProperties": false
}

5.4.10 prompts.schema.json — Prompts

Reusable prompts of the organisation. Title, description and template are held per locale. Prompts curated and shipped by the vendor are not part of the export; a copy a user made into their own prompt library is.

Elemente der obersten Ebene: prompts, folders, favorites

Schemadefinition prompts.schema.json anzeigen
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Prompts",
  "description": "Reusable prompts of the organisation. Title, description and template are held per locale. Prompts curated and shipped by the vendor are not part of the export; a copy a user made into their own prompt library is.",
  "type": "object",
  "properties": {
    "prompts": {
      "type": "array",
      "items": {
        "title": "Prompt",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "common.schema.json#/definitions/exportId"
          },
          "enabled": {
            "type": "boolean"
          },
          "defaultLocale": {
            "$ref": "common.schema.json#/definitions/locale"
          },
          "title": {
            "$ref": "common.schema.json#/definitions/localeMap"
          },
          "description": {
            "$ref": "common.schema.json#/definitions/localeMap"
          },
          "template": {
            "description": "The prompt text itself, per locale.",
            "$ref": "common.schema.json#/definitions/localeMap"
          },
          "systemPrompt": {
            "$ref": "common.schema.json#/definitions/localizedSystemPrompt"
          },
          "creatorId": {
            "$ref": "common.schema.json#/definitions/nullableExportId"
          },
          "folderId": {
            "$ref": "common.schema.json#/definitions/nullableExportId"
          },
          "position": {
            "$ref": "common.schema.json#/definitions/treePosition"
          },
          "isShared": {
            "type": "boolean"
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "common.schema.json#/definitions/permission"
            }
          },
          "modelConfiguration": {
            "$ref": "common.schema.json#/definitions/modelConfiguration"
          },
          "imageModelConfiguration": {
            "$ref": "common.schema.json#/definitions/nullableModelConfiguration"
          },
          "tools": {
            "$ref": "common.schema.json#/definitions/toolConfiguration"
          },
          "options": {
            "$ref": "common.schema.json#/definitions/chatOptions"
          },
          "knowledge": {
            "description": "The knowledge this prompt draws on: either automatic selection or an explicit list of knowledge bases.",
            "$ref": "common.schema.json#/definitions/knowledgeConfiguration"
          },
          "attachments": {
            "description": "Files appended to the first message when the prompt is used. Unlike an assistant's permanent knowledge these are not continuously part of the context.",
            "type": "array",
            "items": {
              "$ref": "common.schema.json#/definitions/fileReference"
            }
          },
          "createdAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          },
          "updatedAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          }
        },
        "required": [
          "id",
          "enabled",
          "defaultLocale",
          "title",
          "template",
          "creatorId",
          "isShared",
          "createdAt"
        ],
        "additionalProperties": false
      }
    },
    "folders": {
      "type": "array",
      "items": {
        "$ref": "common.schema.json#/definitions/folderNode"
      }
    },
    "favorites": {
      "description": "Which user marked which prompt as a favourite.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "userId": {
            "$ref": "common.schema.json#/definitions/exportId"
          },
          "promptId": {
            "$ref": "common.schema.json#/definitions/exportId"
          }
        },
        "required": [
          "userId",
          "promptId"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "prompts",
    "folders",
    "favorites"
  ],
  "additionalProperties": false
}

5.4.11 settings.schema.json — Settings

Per-user preferences: default models, privacy filter, personal system prompt and which models and content filters are released for the user. The content filters themselves are defined in content-filters.schema.json and referenced here by identifier.

Elemente der obersten Ebene: userSettings

Schemadefinition settings.schema.json anzeigen
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Settings",
  "description": "Per-user preferences: default models, privacy filter, personal system prompt and which models and content filters are released for the user. The content filters themselves are defined in content-filters.schema.json and referenced here by identifier.",
  "type": "object",
  "properties": {
    "userSettings": {
      "type": "array",
      "items": {
        "title": "User settings",
        "type": "object",
        "properties": {
          "userId": {
            "$ref": "common.schema.json#/definitions/exportId"
          },
          "defaultModel": {
            "$ref": "common.schema.json#/definitions/nullableModelConfiguration"
          },
          "defaultImageModel": {
            "$ref": "common.schema.json#/definitions/nullableModelConfiguration"
          },
          "defaultPrivacyFilterActive": {
            "type": "boolean"
          },
          "systemPrompt": {
            "$ref": "common.schema.json#/definitions/systemPrompt"
          },
          "enabledModels": {
            "description": "Models released for this user, named as the model provider names them — the same form modelConfiguration uses, so that a release list stays meaningful outside this service.",
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "enabledContentFilterIds": {
            "type": "array",
            "items": {
              "$ref": "common.schema.json#/definitions/exportId"
            }
          },
          "createdAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          },
          "updatedAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          }
        },
        "required": [
          "userId",
          "defaultPrivacyFilterActive",
          "systemPrompt"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "userSettings"
  ],
  "additionalProperties": false
}

5.4.12 transcriptions.schema.json — Transcriptions

Audio recordings submitted for transcription and their resulting text. The recording and the transcript are contained in the archive under files/ and are referenced here; the name and media type of each are carried by those references.

Elemente der obersten Ebene: transcriptions

Schemadefinition transcriptions.schema.json anzeigen
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Transcriptions",
  "description": "Audio recordings submitted for transcription and their resulting text. The recording and the transcript are contained in the archive under files/ and are referenced here; the name and media type of each are carried by those references.",
  "type": "object",
  "properties": {
    "transcriptions": {
      "type": "array",
      "items": {
        "title": "Transcription",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "common.schema.json#/definitions/exportId"
          },
          "userId": {
            "$ref": "common.schema.json#/definitions/nullableExportId"
          },
          "status": {
            "enum": [
              "stored",
              "completed",
              "failed"
            ]
          },
          "failureReason": {
            "description": "Why the transcription failed, absent or null when it did not. This vocabulary is open: it grows with the service, so a consumer must accept values not listed here rather than reject the record.",
            "type": [
              "string",
              "null"
            ],
            "examples": [
              "credit_limit_exceeded",
              "transcription_failed"
            ]
          },
          "credits": {
            "$ref": "common.schema.json#/definitions/decimalString"
          },
          "audioFile": {
            "$ref": "common.schema.json#/definitions/nullableFileReference"
          },
          "transcriptFile": {
            "$ref": "common.schema.json#/definitions/nullableFileReference"
          },
          "createdAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          },
          "updatedAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          }
        },
        "required": [
          "id",
          "userId",
          "status",
          "credits",
          "createdAt"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "transcriptions"
  ],
  "additionalProperties": false
}

5.4.13 usage.schema.json — Usage

Consumption records and credit balances of the organisation. All amounts are carried as exact decimal strings. Records whose user account has since been deleted are retained in anonymised form for billing and appear here with a null userId.

Elemente der obersten Ebene: usages, creditBalances

Schemadefinition usage.schema.json anzeigen
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Usage",
  "description": "Consumption records and credit balances of the organisation. All amounts are carried as exact decimal strings. Records whose user account has since been deleted are retained in anonymised form for billing and appear here with a null userId.",
  "type": "object",
  "properties": {
    "usages": {
      "type": "array",
      "items": {
        "title": "Usage record",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "common.schema.json#/definitions/exportId"
          },
          "userId": {
            "$ref": "common.schema.json#/definitions/nullableExportId"
          },
          "type": {
            "description": "What the consumption was charged for. This vocabulary is open: it grows as the service gains capabilities, so a consumer must accept values not listed here rather than reject the record. The values in use at the time of publication are given as examples.",
            "type": "string",
            "minLength": 1,
            "examples": [
              "embedding_generation",
              "image_generation",
              "speech_to_text",
              "text_generation",
              "web_search"
            ]
          },
          "subtype": {
            "description": "Name of the model the consumption is attributed to.",
            "type": "string"
          },
          "credits": {
            "$ref": "common.schema.json#/definitions/decimalString"
          },
          "creditBalanceId": {
            "$ref": "common.schema.json#/definitions/nullableExportId"
          },
          "createdAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          }
        },
        "required": [
          "id",
          "userId",
          "type",
          "subtype",
          "credits",
          "createdAt"
        ],
        "additionalProperties": false
      }
    },
    "creditBalances": {
      "type": "array",
      "items": {
        "title": "Credit balance",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "common.schema.json#/definitions/exportId"
          },
          "validFrom": {
            "$ref": "common.schema.json#/definitions/timestamp"
          },
          "validTo": {
            "$ref": "common.schema.json#/definitions/timestamp"
          },
          "creditsAllowance": {
            "$ref": "common.schema.json#/definitions/decimalString"
          },
          "creditsUsed": {
            "$ref": "common.schema.json#/definitions/decimalString"
          },
          "creditsBalance": {
            "$ref": "common.schema.json#/definitions/decimalString"
          },
          "createdAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          },
          "updatedAt": {
            "$ref": "common.schema.json#/definitions/timestamp"
          }
        },
        "required": [
          "id",
          "validFrom",
          "validTo",
          "creditsAllowance",
          "creditsUsed",
          "creditsBalance"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "usages",
    "creditBalances"
  ],
  "additionalProperties": false
}

5.5 Referenzierte offene Spezifikationen

Kürzel Titel
RFC 8259 (STD 90)The JavaScript Object Notation (JSON) Data Interchange Format
RFC 3629UTF-8, a transformation format of ISO 10646
RFC 3339Date and Time on the Internet: Timestamps
RFC 2046MIME Part Two: Media Types
RFC 4180Common Format and MIME Type for CSV Files
RFC 5322Internet Message Format
RFC 6234US Secure Hash Algorithms
RFC 9110HTTP Semantics
JSON Schema Draft 07draft-handrews-json-schema-01, draft-handrews-json-schema-validation-01
CommonMark 0.31.2CommonMark Specification (im Dienst zuzüglich der Erweiterungen Tabellen und Durchstreichung)
OpenAPI 3.1.0OpenAPI Specification
ISO/IEC 21320-1:2015Document Container File — Core
PKWARE APPNOTE 6.3.10.ZIP File Format Specification
ECMA-376 / ISO/IEC 29500Office Open XML File Formats
ISO 32000-1:2008Portable Document Format (PDF 1.7)
EN 16931-1:2017Elektronische Rechnungsstellung — Semantisches Datenmodell
CIUS XRechnung 3.0Standard XRechnung (KoSIT)
ISO 639-1Sprachkennungen
ISO 3166-1 Alpha-2Länderkennungen
ISO 8601-1:2019Datums- und Zeitangaben
FIPS PUB 180-4Secure Hash Standard

5.6 Stand und Aktualisierung des Verzeichnisses

Formatversion 1.0.0. Änderungen an den Schemata folgen dem in der Präambel beschriebenen Versionsschema; bereits veröffentlichte Hauptversionen bleiben abrufbar, solange Archive im Umlauf sind, die sich auf sie berufen.

Soweit für die jeweilige Dienstart harmonisierte Normen oder gemeinsame Spezifikationen für die Interoperabilität von Datenverarbeitungsdiensten verbindlich werden, wird dieses Verzeichnis entsprechend aktualisiert.

Letzte technische Aktualisierung des Verzeichnisses: 10.09.2026

6. Schnittstellen und Interoperabilität

Für die Übertragung von Daten stellt nele.ai folgende Schnittstellen und Exportmöglichkeiten zur Verfügung:

Exportfunktion: Anforderung über support@nele.ai; Bereitstellung als ZIP-Archiv per E-Mail mit Downloadlink. Der Aufbau des Archivs und die Struktur der enthaltenen Dateien sind in Abschnitt 5 beschrieben.

API / offene Schnittstelle: REST-API v1, beschrieben als OpenAPI-Dokument nach OpenAPI 3.1.0. Die Authentifizierung erfolgt über API-Schlüssel; von diesen werden Name, Inhaber, Ablauf und letzte Verwendung ausgeleitet, der Schlüsselwert selbst nicht (siehe api-keys.schema.json).

API-Format beziehungsweise Protokoll: JSON über HTTPS (RFC 9110, RFC 8259).

Die für einen Wechsel vorgesehenen Schnittstellen werden für diesen Zweck ohne zusätzliches Entgelt bereitgestellt.

7. Bekannte technische Beschränkungen und Grenzen

Bei einem Wechsel sind insbesondere folgende technische Beschränkungen zu beachten:

Beschränkung Mögliche Auswirkung
Anbieter- oder nele.ai-spezifische DatenstrukturenZielsystem kann einzelne Konfigurationen möglicherweise nicht unmittelbar übernehmen
Interne technische Repräsentationen werden nicht exportiertDer Wissensindex muss im Zielsystem neu erstellt werden. Die Segmentierung ist aus den ausgeleiteten Werten für Segmentgröße und Überlappung reproduzierbar; Quelldokument und extrahierter Text sind enthalten.
Assistenten verwenden nele.ai-spezifische WerkzeugeDie Werkzeuge stehen im Zielsystem möglicherweise nicht zur Verfügung. Welche Werkzeuge ein Assistent verwenden durfte, ist im Export vermerkt.
Nachrichteninhalte folgen CommonMark zuzüglich der Erweiterungen Tabellen und DurchstreichungEin streng nach CommonMark arbeitender Parser liest diese beiden Konstrukte als gewöhnlichen Text. Verloren geht dadurch deren Auszeichnung, nicht deren Inhalt.
Der CSV-Export weicht bewusst von RFC 4180 ab (sprachabhängiges Trennzeichen, vorangestelltes UTF-8-BOM)Verarbeitende Systeme müssen das Trennzeichen erkennen und das BOM überlesen. Die Abweichung dient der direkten Lesbarkeit in Tabellenkalkulationen.
Für das Rechnungs-PDF wird keine Konformität zu PDF/A-3 zugesichertDas eingebettete CII-XML nach XRechnung 3.0 ist maschinenlesbar; eine Archivierungskonformität des Gesamtdokuments darf nicht vorausgesetzt werden, da das Basisdokument vom Zahlungsdienstleister stammt.
Wertelisten sind offen (Werkzeuge, Berechtigungen, Verarbeitungszustände, Sprachen, Segmentgrößen)Verarbeitende Systeme müssen unbekannte Werte annehmen und dürfen einen Datensatz nicht deshalb zurückweisen.
Kennungen sind innerhalb eines Archivs konsistent, über zwei Archive hinweg jedoch nicht stabilZwei Archive desselben Kontos lassen sich nicht über die Kennungen abgleichen.
Große Sammlungen werden im Archiv auf mehrere Teildateien verteiltVerarbeitende Systeme müssen alle im Manifest unter files genannten Teildateien einlesen; jede Teildatei validiert gegen dasselbe Schema.

GAL Digital informiert den Kunden während des Wechselprozesses über weitere konkret bekannte Risiken für die Kontinuität der vertragsgemäßen Funktionen und Dienste.

8. Sicherheit während des Wechsels

GAL Digital hält während des gesamten Wechsel- und Abrufzeitraums ein angemessenes Sicherheitsniveau aufrecht.

Hierzu gehören insbesondere:

  • Zugriff auf Exporte nur für hierzu berechtigte Personen
  • verschlüsselte Übertragung der Daten
  • Schutz der Daten während des Übergangs- und Abrufzeitraums

9. Abrufzeitraum und Löschung

Nach Ende des Übergangszeitraums stehen die exportierbaren Daten noch für 30 Kalendertage zum Abruf zur Verfügung.

Nach Ablauf dieses Abrufzeitraums werden die exportierbaren Daten und digitalen Vermögenswerte des Kunden gelöscht, soweit keine gesetzlichen Aufbewahrungspflichten oder sonstigen zwingenden rechtlichen Gründe einer Löschung entgegenstehen.

Kunden sollten daher sicherstellen, dass sie sämtliche benötigten Daten innerhalb des Abrufzeitraums vollständig übernommen haben.

10. Kosten des Wechsels

GAL Digital erhebt für den Wechsel und für den Export der Daten keine gesonderten Wechsel- oder Exportentgelte.

Auch der durch den Export verursachte Datenverkehr wird nicht gesondert abgerechnet.

Das vertraglich vereinbarte Entgelt für die weitere Bereitstellung und Nutzung von nele.ai während des Übergangszeitraums bleibt hiervon unberührt.

11. Eingesetzte IKT-Infrastruktur

Eine aktuelle Übersicht über die Standorte und Gerichtsbarkeiten, denen die für nele.ai eingesetzte IKT-Infrastruktur unterliegt:

Die Bereitstellung der vertraglich vereinbarten IKT-Dienstleistungen oder der an Unterauftragnehmer vergebenen Funktionen erfolgt an den nachstehend aufgeführten Standorten:

Auftragnehmer (AN) / Unterauftragnehmer (UAN) Leistungsgegenstand Region der Leistungserbringung Land der Leistungserbringung Gerichtsbarkeit
Anthropic (UAN)Modelle Claude 3 Haiku, Claude 3 Opus, Claude 3.5 SonnetDrittstaatUSAUSA
AWS Bedrock (UAN)Modelle Claude 3 Haiku, Claude 3.5 SonnetEU/EWR*EU/EWR*Jeweiliger EU-/EWR-Staat des Serverstandorts
Azure (UAN)Modelle GPT-4o, GPT-4o mini, GPT-4 Turbo, GPT-3.5 Turbo, DALL·E 3, Mistral Large, Mistral SmallEU/EWR*EU/EWR*Jeweiliger EU-/EWR-Staat des Serverstandorts
BRAVE (UAN)BRAVE Search APIEU/EWR*EU/EWRJeweiliger EU-/EWR-Staat des Serverstandorts
Brevo (UAN)E-Mail-Versand- und AutomatisierungsdiensteEU/EWRBE, FRBelgien und Frankreich
ElevenlabsGenerative Voice AIDrittstaatUSAUSA
GoogleGeminiEU/EWREU/EWR*Jeweiliger EU-/EWR-Staat des Serverstandorts
Hetzner (UAN)Hosting/Speicherung von KundendatenEU/EWRDeutschlandDeutschland
Microsoft Azure (UAN)Hosting/Speicherung von KundendatenEU/EWRDeutschlandDeutschland
Microsoft Office 365Office-Software: E-Mail, Word, Excel, OneDriveEU/EWR*EU/EWR*Jeweiliger EU-/EWR-Staat des Serverstandorts
Mistral AI (UAN)Modelle Mistral Large, Mistral Small (direkt über La Plateforme/API)EU/EWR*SE, NO, NLSchweden, Norwegen und Niederlande
nele.ai (AN)Erbringung der AI-basierten DienstleistungenDeutschlandDEDeutschland
OpenAI (UAN)Modelle GPT-4o, GPT-4o mini, GPT-4 Turbo, GPT-3.5 Turbo, DALL·E 3DrittstaatUSAUSA
PipedriveKundensupport / CRMEU/EWREEEstland
Scaleway (UAN)Generative APIs (KI-Textgenerierung auf eigener Infrastruktur)EU/EWRFRFrankreich

* Der jeweilige Serverstandort innerhalb der EU beziehungsweise des EWR bestimmt Land und Gerichtsbarkeit der Leistungserbringung.

12. Schutz vor unvereinbarem staatlichem Zugriff aus Drittstaaten

GAL Digital setzt technische, organisatorische und vertragliche Maßnahmen ein, um in der Europäischen Union gespeicherte nicht-personenbezogene Kundendaten vor einem staatlichen Zugriff aus Drittstaaten oder einer entsprechenden Übermittlung zu schützen, soweit der Zugriff oder die Übermittlung mit dem Unionsrecht oder dem Recht eines Mitgliedstaats unvereinbar wäre.

Zu diesen Maßnahmen gehören insbesondere:

  • die Beschränkung von Zugriffsrechten nach dem Erforderlichkeitsprinzip
  • die Verschlüsselung von Daten bei der Übertragung
  • die sorgfältige Auswahl und vertragliche Verpflichtung eingesetzter Dienstleister
  • vertragliche Vorgaben zum Umgang mit behördlichen Herausgabeverlangen
  • soweit rechtlich und tatsächlich möglich, die Prüfung der Rechtmäßigkeit behördlicher Herausgabeverlangen
  • soweit rechtlich und tatsächlich möglich, die Anfechtung von Herausgabeverlangen, die unionsrechtlichen Anforderungen widersprechen
  • die Information betroffener Kunden über entsprechende Zugriffe oder Herausgabeverlangen, soweit dies rechtlich zulässig ist

Weitere Informationen zu den technischen und organisatorischen Maßnahmen sowie zu den eingesetzten Dienstleistern finden Sie unter /de/avv und /subcontractors.

13. Unterstützung und Kontakt

GAL Digital unterstützt Kunden in angemessenem Umfang bei der Planung und Durchführung eines Wechsels sowie bei der Ausarbeitung einer Exit-Strategie.

Anfragen zum Wechsel und zur Datenübertragbarkeit richten Sie bitte an:

GAL Digital GmbH
E-Mail: support@nele.ai

Bitte nennen Sie bei Ihrer Anfrage das betroffene Kundenkonto und beschreiben Sie möglichst konkret das gewünschte Wechsel- oder Exportszenario.

nele.ai Logo -Datenschutzkonforme KI im Unternehmen einsetzen
  • Made in Germany
    Standort Hungen
  • DSGVO-konform
    sowie ISO 27001-zertifiziert
    Deutscher Serverstandort
  • Gemacht für Organisationen
    Eine Lizenz für alle Nutzer:innen
Zertifikate
Auszeichnungen für nele.ai: KI Innovation-Award 2023, TOP-Innovator 2026, Best of Technology 2024, TÜV Zertifikat.
Navigation
  • Startseite
  • Funktionen
  • Sicherheit
  • Preise
  • KI-Modelle
Company
  • Changelog
  • Schulungen
  • Neuigkeiten
  • Kontakt
  • Presseinformationen
Rechtliches
  • Impressum
  • Datenschutz
  • Nutzungsbedingungen
  • Barrierefreiheit
Sprachauswahl

Deutsch

English

Social Media


Copyright 2024 © nele.ai by GAL Digital GmbH
Vertrieb- & Supportchat
Benötigen Sie Unterstützung? Nutzen Sie unseren Support-Chat.
Jetzt SprechenJetzt Chatten

Wir benötigen Ihre Zustimmung

Bevor wir das Gespräch beginnen, benötigen wir Ihre Einwilligung. Bitte erlauben Sie danach den Zugriff auf Ihr Mikrofon – selbstverständlich erfolgt der Zugriff nur während des Gesprächs

Wenn Sie auf „Zustimmen“ klicken und jedes Mal, wenn Sie mit diesem KI-Assistenten interagieren, erklären Sie sich damit einverstanden, dass Ihre Kommunikation aufgezeichnet, gespeichert und an externe Dienstleister weitergegeben wird – und zwar entsprechend der Datenschutzrichtlinie.
‍
Wenn Sie nicht möchten, dass Ihre Gespräche aufgezeichnet werden, bitten wir Sie, diesen Service nicht zu nutzen.

ZustimmenAblehnen
Vertrieb- & Supportchat
Disconnected
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.