Formatbeschreibung des Salonexports
Fassung vom 8. November 2026 · Schemafassung 2
Diese Seite beschreibt Aufbau und Inhalt des Salonexports von Tagano: Datei, Datentypen, alle Datenbereiche mit ihren Feldern, Verknüpfungen und Grenzen. Sie ist das Online-Register der Datenstrukturen und Datenformate nach Art. 26 Buchst. b der EU-Datenverordnung (Verordnung (EU) 2023/2854). Wie du exportierst und wie ein Anbieterwechsel abläuft, erklärt die Seite „Datenexport und Anbieterwechsel“.
1 Datei und Aufbau
- Der Export ist eine einzelne JSON-Datei (RFC 8259) in UTF-8 mit dem Namen
tagano-salon-export.json. Er ist kein ZIP-Archiv und enthält keine Bilddateien. - Die Datei enthält ein JSON-Objekt mit 51 Feldern. Alle Felder sind in jedem Export vorhanden, auch wenn sie leer sind: leere Listen als
[], leere Einstellungen meist als{}, fehlende Werte alsnulloder bei Textfeldern als leerer Text"". formathat den Werteasybook-salon-export-v2,schema_versionden Wert2.exported_atist der Erstellungszeitpunkt.scopeist ein erläuternder Text zu Umfang und Ausschlüssen, kein Datenbereich.- Der Export ist eine Momentaufnahme der vorhandenen Daten. Bereits gelöschte Daten werden nicht wiederhergestellt. Er ist keine Datenbanksicherung. Ein gesondertes JSON-Schema und eine Signatur der Gesamtdatei werden nicht mitgeliefert.
- Die Reihenfolge von Feldern und Datensätzen ist nicht festgelegt. Verknüpfe Datensätze über ihre Kennungen, nicht über ihre Position.
| Gruppe | Felder |
|---|---|
| Kopf | format, schema_version, exported_at, scope |
| Vollständigkeit | separate_files, omitted_records |
| Salon, Team und Leistungen | salon, accounts, employees, services, service_categories, roster, opening_hours, salon_closures, resource_planning, notices, staff_notifications, push_devices |
| Kunden und Termine | customers, appointment_guests, treatment_notes, appointment_series, appointments, history |
| Nachrichten und Buchungsunterlagen | booking_mail, account_mail, booking_legal_records |
| Verträge und Abrechnung | billing_agreements, plan_agreements, trial_offer, agreements, registration_agreements, contract_acceptances, governance_notices, subprocessor_releases, subprocessor_changes, price_campaigns, price_changes, provider_terminations, customer_contract_ends, provider_switch_cases |
| Datenschutz und Löschung | appointment_retention, additional_retention, deletion_evidence, privacy_actions, requests, salon_holds, inactivity_schedules, inactivity_reminders, salon_deletion_cases, deletion_confirmations |
2 Abruf und Übergabe
- Den Export erstellt der Betreiber des Salons nach erneuter Eingabe seines Passworts. Im Browser: Einstellungen → Datenschutz → Datenrückgabe und Vertragsende → Vollständigen Salonexport herunterladen. In der App: Datenschutz verwalten → Daten und Nachweise exportieren → Alle Salondaten → JSON-Datei speichern. Teammitglieder haben keinen Zugriff auf den Gesamtexport.
- Der Export ist auch nach Ende von Test oder Abo verfügbar, solange der Salon besteht.
- Einen eigenen Zugang für den neuen Anbieter gibt es nicht, also keine Schnittstelle, keinen Download-Link und keine automatische Übertragung zwischen Anbietern. Der Betreiber übergibt die Datei auf einem mit dem neuen Anbieter abgestimmten, geschützten Weg. Tagano-Passwörter oder Zugangsdaten muss er dafür nicht weitergeben. Unterstützung beim Wechsel stimmst du mit uns über kontakt@tagano.de ab.
- Auskünfte zu einzelnen Kunden, Mitarbeitern oder Gästen haben einen anderen Umfang und eigene Formate. Diese Seite beschreibt nur den Salonexport.
3 Grenzen des Exports
Gesondert übergebene Dateien. Gespeicherte Mitarbeiterbilder sind nicht in der Datei enthalten. Der Export nennt sie in separate_files und wird trotzdem vollständig erstellt.
Ausgelassene Datensätze. Datensätze, die sich nicht eindeutig deinem Salon zuordnen lassen, gibt der Export nicht aus. Er nennt sie mit Kennung und Grund in omitted_records. Die gespeicherten Originaldaten bleiben dabei unverändert. Frei eingegebene Texte kann der Export nicht darauf prüfen, welche Personen darin erwähnt sind.
Nicht enthalten sind:
- Passwörter und Passwort-Hashes, Anmelde-, Sitzungs- und Push-Token sowie verwendbare Schlüssel zur Buchungsverwaltung oder zum Widerruf
- Zahlungs- und Checkout-Links, vollständige Karten- oder PayPal-Daten, Ereignisarchive und interne Parameter des Zahlungsanbieters sowie vollständige Rechnungsakten
- Vergleichswerte zur Erkennung mehrfacher Tests
- anbieterweite Administrator- und Analyseberechtigungen von Tagano, vollständige Einladungs- und Sitzungsverläufe, Geräte-Token und persönliche Vorschau-Einstellungen
- Wartungsankündigungen, Reichweitenzahlen von Tagano sowie Betriebs- und Sicherheitsprotokolle
- Support- und Kontaktvorgänge, externe Postfächer und Rechnungen
- bereits gelöschte Daten, auch bereinigte E-Mail-Kopien und Hinweise; Löschnachweise sind keine Kopien der gelöschten Daten. Noch gespeicherte E-Mail-Daten sind bis zu ihrer Bereinigung enthalten, auch wenn ihre Frist schon abgelaufen ist
- Daten anderer Salons, der Quellcode von Tagano, Datenbanksicherungen und vertrauliche Konfiguration
Gespeicherte Bilder, Supportunterlagen und Rechnungen übergeben wir auf Anfrage gesondert. Schreib dazu an kontakt@tagano.de; Umfang und geschützten Übergabeweg stimmen wir im Einzelfall ab. Einzelne Vertrags-, Registrierungs- und Löschweisungsnachweise kannst du außerdem im Betreiberkonto herunterladen.
4 Datentypen, Zeiten und Einheiten
| Typ | Darstellung |
|---|---|
| Text | JSON-Zeichenkette |
| Ganzzahl | JSON-Zahl ohne Nachkommastellen |
| Wahrheitswert | true oder false |
| Datum | Text im Format YYYY-MM-DD |
| Zeitstempel | Text nach ISO 8601 (RFC 3339) mit Zeitzonenangabe, z. B. 2026-11-06T12:34:56.123Z |
| UUID | Text nach RFC 9562 mit Bindestrichen |
| Prüfsumme | Text; kennzeichnet einen gespeicherten Dokumentstand und verschlüsselt keine Daten |
| Objekt | JSON-Objekt |
| Liste | JSON-Array |
- Zeitstempel werden nicht in Ortszeit umgerechnet. In gespeicherten Schnappschüssen behalten sie ihre ursprüngliche Genauigkeit und Schreibweise.
- Termine:
date,hourundminutegeben Tag und Uhrzeit in der Ortszeit Europe/Berlin (IANA-Zeitzonendatenbank) an, ohne Zeitzonenangabe. Beachte bei der Übernahme Sommer- und Winterzeit. Der Kundenbesuch endet nachduration_minutes; Vor- und Nachbereitung können darüber hinausgehen. - Öffnungszeiten und Dienstplan: Uhrzeiten als Text
HHMM, z. B.0900; ältere Werte auchHH:MM. Uhrzeiten reichen von 00:00 bis 23:59. Leere Dienstplanzeiten sind möglich und können auf Wochenplan oder Öffnungszeiten verweisen. - Dauern, Phasen und Einwirkzeiten stehen in Minuten,
cancellation_hours,rescheduling_hoursundreminder_hoursin Stunden, Lösch-, Aufbewahrungs- und Testfristen in Tagen. - Preise und Aufschläge sind Ganzzahlen in Cent. Beträge mit eigenem Währungsfeld stehen in der kleinsten Einheit dieser Währung; der Währungscode folgt ISO 4217 in Kleinbuchstaben, z. B.
eur. StundenlohnundMonatslohnsind historische Ganzzahlen ohne festgelegte Einheit. Interpretiere sie nicht als Cent.- Mengen und Mischverhältnisse in Rezepturen sind freie Texte.
Gespeicherte Dokumente und Schnappschüsse werden in ihrer historischen Struktur ausgegeben. Ältere Fassungen können Felder auslassen oder zusätzliche enthalten. Ein fehlendes Feld bedeutet nicht null. Verwirf unbekannte Felder beim Import nicht stillschweigend.
5 Kennungen und Verknüpfungen
Kennungen sind die dauerhaften Kennungen aus Tagano. Sie werden für den Export nicht neu vergeben. Sie gelten im Zusammenhang mit dem jeweiligen Datenbereich, nicht als allgemeine Kennungen für andere Systeme.
| Feld | verweist auf |
|---|---|
salon.owner_account_id, employees.user_id, history.actor_user_id, staff_notifications.recipient_id, push_devices.session__user_id |
accounts.id |
appointments.KundenID_id, appointment_guests.customer_id, treatment_notes.customer_id, booking_mail.customer_id |
customers.KundenID |
appointments.mitarbeiterID_id, appointments.planning_employee_ids, roster.mitarbeiterID_id, staff_notifications.employee_id |
employees.ID |
appointments.service_ids, employees.excluded_service_ids |
services.LeistungID |
Schlüssel in services.employee_price_adjustments |
employees.ID, nach Umwandlung des Texts in eine Ganzzahl |
services.category_id |
service_categories.id |
appointments.series_id |
appointment_series.id |
appointment_guests.appointment_id, treatment_notes.appointment_id, history.appointment_id, booking_mail.appointment_id, staff_notifications.appointment_id |
appointments.TerminID |
treatment_notes.guest_id |
appointment_guests.id |
booking_legal_records.appointment_id und customer_id, requests.customer_id und employee_id |
Termine, Kunden bzw. Mitarbeiter |
subprocessor_changes.release_id |
subprocessor_releases.id |
notice_id in subprocessor_changes, inactivity_reminders, price_changes und provider_terminations |
governance_notices.id |
inactivity_reminders.schedule_id |
inactivity_schedules.id |
price_changes.campaign_id |
price_campaigns.id |
customer_contract_ends.source_reference |
je nach kind: price_changes.id, subprocessor_changes.id oder provider_switch_cases.reference |
provider_switch_cases.workflow.contract_end_reference |
customer_contract_ends.id |
deletion_confirmations.closure_id |
salon_deletion_cases.id |
- Historische Verweise, etwa auf gelöschte Leistungen, Kategorien oder Konten, können ohne Gegenstück sein. Verknüpfe sie nicht mit einem anderen aktuellen Datensatz.
- Schnappschüsse enthalten bewusst die Namen, Preise und Zuordnungen des damaligen Zeitpunkts.
- Auf ausgelassene Datensätze kann noch verwiesen werden. Werte
omitted_recordsdeshalb vor der Übernahme aus. contract_acceptances.release_idbezeichnet die angenommene Vertragsfassung; ihr Inhalt steht vollständig im Annahmedokument.
6 Datenbereiche und Felder
„oder null“ bedeutet, dass das Feld den Wert null haben kann. Felder, deren Aufbau Abschnitt 7 beschreibt, sind mit „siehe 7“ gekennzeichnet.
separate_files – gesondert herauszugebende Dateien (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
kind |
Text | derzeit employee_image |
employee_id |
Ganzzahl | Mitarbeiter |
status |
Text | fester Hinweis „gesondert herauszugeben“ |
requires_separate_secure_return |
Wahrheitswert | true: Übergabe auf gesondertem, geschütztem Weg |
Bilddaten, Dateinamen, Speicherpfade und Download-Schlüssel werden nicht ausgegeben.
omitted_records – ausgelassene Datensätze (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
area |
Text | betroffener Bereich, z. B. appointments, history oder treatment_notes; außerdem employee_account_links (Kontoverknüpfung eines Mitarbeiters), employee_service_exclusions (Leistungsausschluss), employee_weekly_schedules (Wochenplan) und customer_contract_end_evidence (Nachweis eines Vertragsendes) |
id |
Text | Kennung des eigenen Datensatzes; configuration für die Ressourcenkonfiguration |
reason |
Text | needs_review (zur Prüfung markiert), unclear_relation (Zuordnung oder übergeordneter Datensatz unklar), foreign_or_unsafe_embedded_reference (fremder oder unsicherer Verweis in gespeicherten Zusatzdaten), foreign_account_relation (fremde Kontoverknüpfung) oder foreign_service_relation (fremder Leistungsbezug) |
status |
Text | fester Hinweis „zur manuellen Zuordnungsprüfung ausgelassen“ |
Ein Datensatz kann mit mehreren Gründen mehrfach erscheinen. Fehlt ein ungeklärter Termin, fehlen auch seine Gäste, sein Verlauf, seine Termin-E-Mails und Buchungsunterlagen. Bei einer unsicheren Mitarbeiterbeziehung bleibt der Mitarbeiter erhalten: user_id wird null, fremde Leistungsausschlüsse fehlen, ein unsicherer Wochenplan erscheint als []. Eine Ressourcenkonfiguration mit fremden Verweisen erscheint als {}. Ist bei einem Vertragsende ein Nachweis unsicher, fehlt dieser Nachweis; bei basis fehlt dann das ganze Objekt. Der Vorgang und die übrigen Nachweise bleiben. Gehört der auslösende Vorgang zu einem anderen Salon, fehlt der ganze Vertragsende-Datensatz. Jede solche Auslassung steht in omitted_records. Eine leere Liste heißt, dass die Zuordnungsprüfung nichts ausgelassen hat. Sie heißt nicht, dass gesondert übergebene oder ausgeschlossene Daten in der Datei enthalten sind.
salon – Salon und Buchungseinstellungen (Objekt)
| Feld | Typ | Bedeutung |
|---|---|---|
owner_account_id |
Ganzzahl oder null | Betreiberkonto |
customerCompanyName |
Text | Firmen- bzw. Salonname |
customerFirstName |
Text | Vorname der vertretenden Person |
customerLastName |
Text | Nachname der vertretenden Person |
customerEmail |
Text | E-Mail-Adresse des Betreibers, zugleich Salonkennung |
customerGender |
Text | Anrede bzw. Geschlecht der vertretenden Person |
public_phone |
Text | öffentliche Telefonnummer |
address_line |
Text | Straße und Hausnummer |
postal_code |
Text | Postleitzahl mit führenden Nullen |
city |
Text | Ort |
federal_state |
Text | Code des Bundeslands |
holiday_region |
Text | Code der Feiertagsregion |
embed_origins |
Text | erlaubte Websites für die eingebettete Buchung, als Text |
booking_legal_name |
Text | rechtlicher Name des Salons für Buchungsunterlagen |
booking_imprint_text |
Text | Impressum des Salons |
booking_payment_text |
Text | Zahlungs- und Buchungsbedingungen des Salons |
booking_accessibility_text |
Text | Barrierefreiheitstext des Salons |
booking_legal_version |
Text | Version dieser Buchungstexte |
booking_legal_reviewed_at |
Zeitstempel oder null | bestätigte Prüfung dieser Texte |
privacy_policy_url |
Text | Adresse der Datenschutzhinweise des Salons |
privacy_notice_text |
Text | Datenschutzhinweis des Salons |
privacy_notice_version |
Text | Version dieses Hinweises |
online_booking_enabled |
Wahrheitswert | Onlinebuchung eingeschaltet |
customer_cancellation_enabled |
Wahrheitswert | Stornierung durch Kunden erlaubt |
customer_rescheduling_enabled |
Wahrheitswert | Verschiebung durch Kunden erlaubt |
cancellation_hours |
Ganzzahl | Vorlauf für Stornierungen in Stunden |
rescheduling_hours |
Ganzzahl | Vorlauf für Verschiebungen in Stunden |
reminder_enabled |
Wahrheitswert | Terminerinnerungen eingeschaltet |
reminder_hours |
Ganzzahl | Vorlauf der Erinnerung in Stunden |
android_push_preview_allowed |
Wahrheitswert | Detailvorschau in Android-Pushnachrichten erlaubt, standardmäßig false |
accounts – Konten von Betreiber und Team (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
Ganzzahl | Kontokennung |
email |
Text | Anmelde-E-Mail-Adresse |
salon_role |
Text | owner (Betreiber) oder employee (Teammitglied) |
is_active |
Wahrheitswert | Konto aktiv |
date_joined |
Zeitstempel | Kontoanlage |
email_verification_required |
Wahrheitswert | E-Mail-Bestätigung vor dem Zugang erforderlich |
email_verified_at |
Zeitstempel oder null | E-Mail-Bestätigung |
Ob ein Zugang nutzbar ist, ergibt sich aus is_active, der E-Mail-Bestätigung und bei Teammitgliedern aus employees.active und processing_restricted_at. Eine archivierte oder gesperrte Zuordnung ist keine Zugangsfreigabe.
employees – Mitarbeiter, auch archivierte (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
ID |
Ganzzahl | Mitarbeiterkennung |
user_id |
Ganzzahl oder null | Konto |
Personalnummer |
Ganzzahl | Personalnummer |
Vorname |
Text | Vorname |
Nachname |
Text | Nachname |
Geschlecht |
Text | Geschlecht |
Beschreibung |
Text | Beschreibung |
Email |
Text | E-Mail-Adresse |
Telefon |
Text | Telefonnummer |
Stundenlohn |
Ganzzahl | historisches Lohnfeld ohne festgelegte Einheit |
Monatslohn |
Ganzzahl | historisches Lohnfeld ohne festgelegte Einheit |
Geburtsdatum |
Datum oder null | Geburtsdatum |
Farbe |
Text | Kalenderfarbe, meist als Hex-Farbcode |
active |
Wahrheitswert | für die Planung aktiv |
archived_at |
Zeitstempel oder null | Archivierung |
deletion_hold |
Wahrheitswert | Löschsperre gesetzt |
processing_restricted_at |
Zeitstempel oder null | Beginn einer Verarbeitungseinschränkung |
weekly_schedule |
Liste | Wochenpläne, siehe 7 |
excluded_service_ids |
Liste von Ganzzahlen | Leistungen, die die Person nicht ausführt |
services – Leistungen (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
LeistungID |
Ganzzahl | Leistungskennung |
name |
Text | Name |
preis |
Ganzzahl | aktueller Grundpreis in Cent |
dauer |
Ganzzahl | Grunddauer in Minuten |
active |
Wahrheitswert | Leistung aktiv |
category_id |
Ganzzahl oder null | Kategorie |
processing_minutes |
Ganzzahl | Einwirkzeit in Minuten |
finish_minutes |
Ganzzahl | Abschlusszeit in Minuten |
workflow |
Objekt | Ablauf in Schritten, siehe 7 |
guest_count |
Ganzzahl | behandelte Personen, meist 1 oder 2 |
employee_price_adjustments |
Objekt | Aufpreise je Mitarbeiter, siehe 7 |
service_categories – Leistungskategorien (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
Ganzzahl | Kategoriekennung |
name |
Text | Name |
position |
Ganzzahl | Sortierposition |
roster – Dienstplaneinträge (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
dienstID |
Ganzzahl | Kennung |
dienstDate |
Datum | Tag |
dienstStart |
Text | Beginn, siehe Abschnitt 4 |
dienstEnd |
Text | Ende, siehe Abschnitt 4 |
anwesend |
Wahrheitswert | anwesend |
urlaub |
Wahrheitswert | abwesend, ohne Angabe eines Grundes |
mitarbeiterID_id |
Ganzzahl | Mitarbeiter |
deletion_hold |
Wahrheitswert | Löschsperre gesetzt |
opening_hours – Öffnungszeiten und Ausnahmen (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
weekday |
Ganzzahl | 0 = Montag bis 6 = Sonntag |
open |
Text | Öffnung, siehe Abschnitt 4 |
close |
Text | Schließung, siehe Abschnitt 4 |
closed |
Wahrheitswert | geschlossen |
ExceptionDate |
Datum oder null | Ausnahmetag; null für die Wochenregel |
salon_closures – Schließzeiten (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
first_day |
Datum | erster Schließtag, einschließlich |
last_day |
Datum | letzter Schließtag, einschließlich |
resource_planning – Räume, Plätze und Geräte (Objekt)
| Feld | Typ | Bedeutung |
|---|---|---|
revision |
Ganzzahl | Stand der Einstellungen |
configuration |
Objekt | Konfiguration, siehe 7 |
notices – Salonhinweise (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
Alert |
Wahrheitswert | Anzeigekennzeichen |
AlertHeader |
Text | Überschrift |
AlertBody |
Text | Hinweistext |
date_added |
Zeitstempel | Anlage |
staff_notifications – Hinweise an Team und Betreiber (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
Ganzzahl | Kennung |
recipient_id |
Ganzzahl | Empfängerkonto |
employee_id |
Ganzzahl oder null | Mitarbeiter |
appointment_id |
Ganzzahl oder null | Termin |
kind |
Text | Art des Hinweises |
dates |
Liste von Texten | betroffene Tage, gegebenenfalls leer |
created_at |
Zeitstempel | Erstellung |
read_at |
Zeitstempel oder null | gelesen |
push_devices – registrierte Geräte (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
session__user_id |
Ganzzahl | Konto; der doppelte Unterstrich gehört zum Feldnamen |
platform |
Text | Plattform |
updated_at |
Zeitstempel | letzte Aktualisierung |
customers – Kundenkartei (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
KundenID |
Ganzzahl | Kundenkennung |
FirstName |
Text | Vorname |
LastName |
Text | Nachname |
Email |
Text | E-Mail-Adresse |
Gender |
Text | Anrede bzw. Geschlecht |
City |
Text | Ort |
Mobiltelefon |
Text | Mobilnummer |
Festnetz |
Text | Festnetznummer |
privacy_touched_at |
Zeitstempel | letzte für die Aufbewahrung maßgebliche Aktivität |
deletion_hold |
Wahrheitswert | Löschsperre gesetzt |
processing_restricted_at |
Zeitstempel oder null | Beginn einer Verarbeitungseinschränkung |
online_booking_blocked |
Wahrheitswert | Onlinebuchung für diesen Kunden gesperrt |
appointment_guests – weitere Gäste eines Termins (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
Ganzzahl | Gastkennung |
appointment_id |
Ganzzahl | Termin |
customer_id |
Ganzzahl oder null | Kunde; null ohne Kundenkartei |
name |
Text | Name |
email |
Text | E-Mail-Adresse |
phone |
Text | Telefonnummer |
processing_restricted_at |
Zeitstempel oder null | Beginn einer Verarbeitungseinschränkung |
treatment_notes – Notizen und Rezepturen (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
Ganzzahl | Notizkennung |
kind |
Text | note oder recipe |
text |
Text | Notiztext, gegebenenfalls leer |
recipe |
Objekt | Rezeptur, bei Notizen {}; siehe 7 |
created_at |
Zeitstempel | Anlage |
treatment_date |
Datum oder null | Behandlungstag |
appointment_id |
Ganzzahl oder null | Termin; bei Gastnotizen der Termin des Gastes |
is_general_hint |
Wahrheitswert | allgemeiner Hinweis ohne Behandlungstag |
customer_id |
Ganzzahl oder null | Kunde |
guest_id |
Ganzzahl oder null | Gast |
Eine Notiz gehört genau einem Kunden oder einem Gast. Ist der Termin gelöscht, kann appointment_id null sein.
appointment_series – Terminserien (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
UUID | Serienkennung |
start_date |
Datum | Beginn |
interval_weeks |
Ganzzahl | Abstand in Wochen |
occurrence_count |
Ganzzahl | vorgesehene Anzahl Termine |
Die vorhandenen Einzeltermine stehen in appointments. Gelöschte Termine werden nicht rekonstruiert.
appointments – Termine, auch stornierte und abgeschlossene (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
TerminID |
Ganzzahl | Terminkennung |
date |
Datum | Termintag in Ortszeit |
hour |
Ganzzahl | Startstunde 0 bis 23 in Ortszeit |
minute |
Ganzzahl | Startminute 0 bis 59 |
KundenID_id |
Ganzzahl | Hauptkunde |
mitarbeiterID_id |
Ganzzahl | federführender Mitarbeiter |
duration_minutes |
Ganzzahl | Besuchsdauer in Minuten |
total_price_cents |
Ganzzahl | Gesamtpreis in Cent |
service_snapshot |
Liste | Leistungen zum Buchungszeitpunkt, siehe 7 |
phase_snapshot |
Liste | Ablaufphasen, siehe 7 |
planning_snapshot |
Objekt | Personal- und Ressourcenplanung, siehe 7 |
seat_id |
Text | Platzkennung, leer ohne Platz |
seat_name |
Text | Platzname zum Buchungszeitpunkt |
booking_gender |
Text | bei der Buchung gewählte Zielgruppe |
second_guest_erased |
Wahrheitswert | Gastdaten wurden gelöscht |
needs_review |
Wahrheitswert | ungeklärte Zuordnung; ausgegebene Termine haben false |
status |
Text | booked, cancelled, completed oder no_show |
revision |
Ganzzahl | Änderungsstand |
changed_at |
Zeitstempel | letzte Änderung |
cancelled_at |
Zeitstempel oder null | Stornierung |
cancellation_reason |
Text | Stornierungsgrund, gegebenenfalls leer |
deletion_hold |
Text | Löschsperre: leer, tax, dispute oder request; hier ein Text, kein Wahrheitswert |
service_ids |
Liste von Ganzzahlen | verknüpfte Leistungen |
planning_employee_ids |
Liste von Ganzzahlen | weitere eingeplante Mitarbeiter |
series_id |
UUID oder null | Terminserie |
series_index |
Ganzzahl oder null | Position in der Serie, ab 0 |
series_baseline_revision |
Ganzzahl oder null | Ausgangsstand zur Erkennung einzelner Änderungen |
series_exception |
Wahrheitswert | Serientermin wurde einzeln geändert |
history – Änderungsverlauf der Termine (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
Ganzzahl | Kennung |
appointment_id |
Ganzzahl | Termin |
revision |
Ganzzahl | Änderungsstand |
action |
Text | Art des Ereignisses; keine abschließende Werteliste |
actor |
Text | handelnde Rolle, z. B. owner, customer oder system |
actor_user_id |
Ganzzahl oder null | handelndes Konto |
created_at |
Zeitstempel | Zeitpunkt |
before |
Objekt | Zustand vorher, bei Neuanlage gegebenenfalls {}; siehe 7 |
after |
Objekt | Zustand nachher, siehe 7 |
booking_mail – Termin-E-Mails (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
Ganzzahl | Kennung |
appointment_id |
Ganzzahl | Termin |
kind |
Text | confirmation, changed, cancelled, reminder oder released |
revision |
Ganzzahl | Terminstand der Nachricht |
customer_id |
Ganzzahl oder null | empfangender Kunde |
recipient |
Text | Empfängeradresse |
snapshot |
Objekt | Termininhalt der Nachricht, keine fertige E-Mail; siehe 7 |
created_at |
Zeitstempel | Erstellung |
expires_at |
Zeitstempel | Ablauf |
sent_at |
Zeitstempel oder null | Versand; kein Nachweis, dass die Nachricht gelesen wurde |
discarded_at |
Zeitstempel oder null | verworfen |
attempts |
Ganzzahl | Versandversuche |
last_error |
Text | Fehlercode, gegebenenfalls leer |
account_mail – Konto-E-Mails (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
Ganzzahl | Kennung |
kind |
Text | Art, z. B. verify, reset, invite, trial oder notice |
recipient |
Text | Empfängeradresse |
created_at |
Zeitstempel | Erstellung |
sent_at |
Zeitstempel oder null | Versand |
discarded_at |
Zeitstempel oder null | verworfen |
booking_legal_records – Buchungsunterlagen und Widerrufe (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
Ganzzahl | Kennung |
appointment_id |
Ganzzahl oder null | Termin |
customer_id |
Ganzzahl oder null | Kunde |
kind |
Text | contract (Buchungsunterlagen) oder withdrawal (Widerruf) |
recipient |
Text | Empfängeradresse |
document |
Text | vollständiger Dokumenttext |
created_at |
Zeitstempel | Erstellung |
resolved_at |
Zeitstempel oder null | Erledigung |
sent_at |
Zeitstempel oder null | Versand |
discarded_at |
Zeitstempel oder null | verworfen |
billing_agreements – Tarif- und Bestellvereinbarungen (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
reference |
UUID | Vorgangsreferenz |
kind |
Text | Art der Vereinbarung |
account_identity |
Objekt | email, company, first_name und last_name (Texte) bei der Annahme |
document |
Text | Vereinbarungstext |
version |
Text | Version |
accepted_at |
Zeitstempel | Annahme |
plan_agreements – angenommene Tarifbestellungen und -wechsel (Objekt)
| Feld | Typ | Bedeutung |
|---|---|---|
existing_offer_preserved |
Wahrheitswert | früheres Team-Angebot erhalten |
checkouts |
Liste | Tarifbestellungen |
changes |
Liste | Tarifwechsel |
Einträge in checkouts:
| Feld | Typ | Bedeutung |
|---|---|---|
plan_code |
Text | Tarif |
plan_terms_version |
Text | Version der Tarifbedingungen |
plan_terms_text |
Text | angenommener Tariftext |
plan_terms_accepted_at |
Zeitstempel | Annahme |
first_charge_at |
Zeitstempel oder null | erste Fälligkeit |
state |
Text | Bestellstand; kein Zahlungsnachweis |
Einträge in changes:
| Feld | Typ | Bedeutung |
|---|---|---|
target_code |
Text | Zieltarif |
amount_due |
Ganzzahl | fälliger Betrag in der kleinsten Währungseinheit |
currency |
Text | Währung, z. B. eur |
terms_version |
Text | Version der Wechselbedingungen |
terms_text |
Text | angenommener Wechseltext |
accepted_at |
Zeitstempel | Annahme |
state |
Text | Wechselstand |
trial_offer – kostenloser Test (Objekt)
| Feld | Typ | Bedeutung |
|---|---|---|
consumed_at |
Zeitstempel oder null | Test verbraucht |
local_start |
Zeitstempel oder null | Beginn des Tests ohne Zahlungsdaten |
local_end |
Zeitstempel oder null | zugesagtes Testende |
local_terms_version |
Text oder null | Version der Testbedingungen |
evidence |
Liste | Zeitnachweise mit created_at (Zeitstempel), consumed_at (Zeitstempel oder null) und retain_until (Zeitstempel, Aufbewahrungsende) |
acceptances |
Liste | Testannahmen aus Bestellungen mit trial_days (Ganzzahl, Testdauer in Tagen), trial_terms_version (Text) und trial_terms_accepted_at (Zeitstempel oder null) |
agreements – AV-Vertragsannahmen (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
version |
Text | Vertragsversion |
digest |
Prüfsumme | SHA-256 des Vertragsdokuments |
document |
Objekt | Vertragsdokument, siehe 7 |
accepted_at |
Zeitstempel | Annahme |
invalidated_at |
Zeitstempel oder null | Ablösung |
registration_agreements – Registrierungsnachweise (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
account_identity |
Objekt | email, company, first_name und last_name (Texte) bei der Registrierung |
document |
Objekt | Registrierungsdokument, siehe 7 |
document_digest |
Prüfsumme | SHA-256 des Dokuments |
accepted_at |
Zeitstempel | Annahme |
test_mode |
Wahrheitswert | lokale Testannahme, nicht der kostenlose Test eines Salons |
contract_acceptances – Annahmen neuer Vertragsfassungen (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
Ganzzahl | Kennung |
release_id |
Ganzzahl | angenommene Fassung |
actor_id |
Ganzzahl oder null | annehmendes Konto |
document |
Objekt | angenommener Stand, siehe 7 |
digest |
Prüfsumme | Prüfsumme des angenommenen Stands |
accepted_at |
Zeitstempel | Annahme |
retain_until |
Zeitstempel oder null | Aufbewahrungsende |
governance_notices – Ankündigungen von Tagano (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
Ganzzahl | Kennung |
category |
Text | z. B. price, subprocessors, termination oder inactivity |
reference |
Text | Vorgangsreferenz |
recipient |
Text | Empfänger |
subject |
Text | Betreff |
body |
Text | Nachrichtentext |
digest |
Prüfsumme | Prüfsumme des Inhalts |
created_at |
Zeitstempel | Anlage |
sent_at |
Zeitstempel oder null | Versand; null ist kein Versandnachweis |
cancelled_at |
Zeitstempel oder null | Aufhebung |
retain_until |
Zeitstempel oder null | Aufbewahrungsende |
subprocessor_releases – Dienstleisterlisten (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
Ganzzahl | Kennung |
version |
Text | Version |
providers |
Liste | Dienstleister mit name, address, purpose, data, countries und transfer_basis (Texte) |
digest |
Prüfsumme | Prüfsumme der Liste |
starts_at |
Zeitstempel | vorgesehener Beginn |
created_at |
Zeitstempel | Anlage |
announced_at |
Zeitstempel oder null | Ankündigung |
activated_at |
Zeitstempel oder null | Aktivierung |
Enthalten sind nur Fassungen, auf die ein Vorgang deines Salons verweist.
subprocessor_changes – Dienstleisteränderungen für deinen Salon (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
Ganzzahl | Kennung |
release_id |
Ganzzahl | Dienstleisterliste |
notice_id |
Ganzzahl | Ankündigung |
authorization |
Text | notice (Information) oder explicit (ausdrückliche Genehmigung) |
approved_at |
Zeitstempel oder null | Genehmigung |
objected_at |
Zeitstempel oder null | Widerspruch |
objection_channel |
Text | Weg des Widerspruchs, z. B. account oder email; sonst leer |
objection_reference |
Text | Nachweisreferenz |
objection |
Text | Widerspruchstext |
actor_id |
Ganzzahl oder null | Betreiberkonto |
retain_until |
Zeitstempel oder null | Aufbewahrungsende |
price_campaigns – Preisänderungen (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
UUID | Kennung |
plan_code |
Text | Tarif |
old_amount |
Ganzzahl | bisheriger Betrag in der kleinsten Währungseinheit |
new_amount |
Ganzzahl | neuer Betrag in derselben Einheit |
currency |
Text | Währung, z. B. eur |
effective_at |
Zeitstempel | Wirksamkeit |
kind |
Text | Art, regulär price |
state |
Text | Bearbeitungsstand |
created_at |
Zeitstempel | Anlage |
Enthalten sind nur Preisänderungen, die deinen Salon betreffen.
price_changes – Umsetzung einer Preisänderung für deinen Salon (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
UUID | Kennung |
campaign_id |
UUID | Preisänderung |
notice_id |
Ganzzahl oder null | Ankündigung |
effective_period_start |
Zeitstempel oder null | erster betroffener Abrechnungszeitraum |
state |
Text | Bearbeitungsstand |
checked_at |
Zeitstempel oder null | letzte Prüfung |
last_error |
Text | Prüf- oder Fehlercode |
retain_until |
Zeitstempel oder null | Aufbewahrungsende |
provider_terminations – Kündigungen durch Tagano (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
UUID | Kennung |
end_at |
Zeitstempel | Vertragsende |
notice_id |
Ganzzahl oder null | Kündigungsnachricht |
created_at |
Zeitstempel | Anlage |
reason |
Text | Anlass |
state |
Text | Bearbeitungsstand |
checked_at |
Zeitstempel oder null | letzte Prüfung |
last_error |
Text | Prüf- oder Fehlercode |
retain_until |
Zeitstempel oder null | Aufbewahrungsende |
customer_contract_ends – Kündigungen des Salons zu einem besonderen Termin (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
UUID | Kennung |
kind |
Text | Anlass: price, subprocessor oder switch |
source_reference |
Text | auslösender Vorgang, siehe Abschnitt 5 |
request_reference |
Text | Nachweis des Kundenauftrags |
received_at |
Zeitstempel | Eingang des Auftrags |
end_at |
Zeitstempel | Vertragsende |
created_at |
Zeitstempel | Anlage |
state |
Text | z. B. draft, applying, scheduled, manual_review oder completed |
checked_at |
Zeitstempel oder null | letzte Prüfung |
last_error |
Text | Prüf- oder Fehlercode |
retain_until |
Zeitstempel oder null | Aufbewahrungsende |
evidence |
Objekt | Nachweise zum Vertragsende, siehe 7 |
provider_switch_cases – Anbieterwechsel (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
Ganzzahl | Kennung |
reference |
UUID | Vorgangsreferenz |
started_at |
Zeitstempel | Beginn |
completed_at |
Zeitstempel oder null | Abschluss |
retrieval_until |
Zeitstempel oder null | Ende der Abrufphase |
workflow |
Objekt | Fristen, Übergabe und Verlauf, siehe 7 |
appointment_retention – automatische Terminlöschung (Liste mit höchstens einem Eintrag)
| Feld | Typ | Bedeutung |
|---|---|---|
enabled |
Wahrheitswert | eingeschaltet |
days |
Ganzzahl | Aufbewahrung in Tagen nach dem Termin |
revision |
Ganzzahl | Stand der Weisung |
accepted_at |
Zeitstempel oder null | Annahme |
terms_version |
Text | Version der Löschbedingungen |
terms_digest |
Prüfsumme | SHA-256 dieser Bedingungen |
effective_at |
Zeitstempel oder null | wirksam ab |
last_run_at |
Zeitstempel oder null | letzter Lauf |
last_deleted_count |
Ganzzahl | beim letzten Lauf gelöschte Termine |
additional_retention – weitere Löschfristen (Liste mit höchstens einem Eintrag)
| Feld | Typ | Bedeutung |
|---|---|---|
enabled |
Wahrheitswert | eingeschaltet |
customer_days |
Ganzzahl | Frist für inaktive Kunden in Tagen; 0 = aus |
roster_days |
Ganzzahl | Frist für vergangene Dienstplaneinträge in Tagen; 0 = aus |
staff_days |
Ganzzahl | Frist nach Archivierung von Mitarbeitern in Tagen; 0 = aus |
revision |
Ganzzahl | Stand der Weisung |
digest |
Prüfsumme | SHA-256 des angenommenen Stands |
accepted_at |
Zeitstempel oder null | Annahme |
effective_at |
Zeitstempel oder null | wirksam ab |
last_run_at |
Zeitstempel oder null | letzter Lauf |
last_result |
Objekt | {} oder customers, roster und staff mit der Anzahl gelöschter Datensätze |
deletion_evidence – Lösch-, Sperr- und Datenschutznachweise (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
Ganzzahl | Kennung |
action |
Text | Art des Vorgangs |
created_at |
Zeitstempel | Zeitpunkt |
details |
Objekt | Einzelheiten je Vorgangsart, siehe 7 |
appointment_count |
Ganzzahl | betroffene Termine |
Der Nachweis über den gerade erstellten Export erscheint erst im nächsten Export.
privacy_actions – Auskünfte und Löschungen zu Kunden (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
action |
Text | export oder delete |
customer_reference |
Ganzzahl | Kundenkennung, gegebenenfalls eines gelöschten Kunden |
appointment_count |
Ganzzahl | betroffene Termine |
created_at |
Zeitstempel | Zeitpunkt |
requests – Anfragen betroffener Personen (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
reference |
UUID | Referenz |
customer_id |
Ganzzahl oder null | Kunde |
employee_id |
Ganzzahl oder null | Mitarbeiter |
kind |
Text | access, erase, rectify, restrict, objection oder portability |
received_at |
Zeitstempel | Eingang |
due_at |
Zeitstempel | Frist |
identity_verified_at |
Zeitstempel oder null | Identität geprüft |
closed_at |
Zeitstempel oder null | Abschluss |
outcome |
Text | Ergebnis, z. B. fulfilled, partly_fulfilled, refused oder withdrawn; leer, solange offen |
salon_holds – salonweite Sperren (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
Ganzzahl | Kennung |
kind |
Text | deletion (Löschsperre) oder processing (Verarbeitungssperre) |
reference |
UUID | Vorgangsreferenz |
created_at |
Zeitstempel | Beginn |
released_at |
Zeitstempel oder null | Aufhebung; null, solange die Sperre besteht |
inactivity_schedules – vorgemerkte Löschung bei Inaktivität (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
Ganzzahl | Kennung |
accepted_at |
Zeitstempel oder null | maßgebliche Vertragsannahme |
cycle |
UUID | Berechnungsrunde |
anchor_at |
Zeitstempel oder null | Beginn der Frist |
anchor_kind |
Text | Art des Fristbeginns, z. B. Ende des Tests oder des Abos |
last_paid_period_end |
Zeitstempel oder null | Ende des letzten bezahlten Zeitraums |
cancellation_confirmed_at |
Zeitstempel oder null | bestätigtes Vertragsende |
due_at |
Zeitstempel oder null | geplanter Löschtermin |
state |
Text | waiting, scheduled, cancelled, manual_review oder completed |
review_reasons |
Liste von Texten | Prüfgründe |
reviewed_at |
Zeitstempel oder null | manuelle Prüfung |
completed_at |
Zeitstempel oder null | Löschung abgeschlossen |
retain_until |
Zeitstempel oder null | Aufbewahrungsende des Nachweises |
updated_at |
Zeitstempel | letzte Bearbeitung |
inactivity_reminders – Erinnerungen vor der Löschung (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
Ganzzahl | Kennung |
schedule_id |
Ganzzahl | Vormerkung |
cycle |
UUID | Berechnungsrunde, gegebenenfalls eine frühere |
days_before |
Ganzzahl | Vorlauf in Tagen, regulär 30 oder 7 |
notice_id |
Ganzzahl oder null | Nachricht |
target_at |
Zeitstempel | vorgesehener Zeitpunkt |
salon_deletion_cases – Salonlöschung (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
Ganzzahl | Kennung |
state |
Text | Bearbeitungsstand |
requested_at |
Zeitstempel | Löschauftrag |
execute_after |
Zeitstempel | frühester Ausführungszeitpunkt |
completed_at |
Zeitstempel oder null | Löschung ausgeführt |
blocked_reason |
Text | Hinderungsgrund |
provider_record |
Objekt | Abschlussnachweis, siehe 7 |
retain_until |
Zeitstempel oder null | Aufbewahrungsende |
Nach vollständiger Löschung gibt es keinen Salonexport mehr. Abgeschlossene Löschvorgänge erscheinen deshalb normalerweise nicht.
deletion_confirmations – Löschbestätigungen (Liste)
| Feld | Typ | Bedeutung |
|---|---|---|
id |
Ganzzahl | Kennung |
reference |
UUID | Referenz |
closure_id |
Ganzzahl oder null | Löschvorgang |
recipient |
Text | Empfänger |
subject |
Text | Betreff |
body |
Text | Text der Bestätigung |
digest |
Prüfsumme | Prüfsumme des Inhalts |
remaining |
Liste | Restbestände, siehe 7 |
deleted_at |
Zeitstempel | Löschung |
created_at |
Zeitstempel | Anlage |
retain_until |
Zeitstempel | Aufbewahrungsende |
sent_at |
Zeitstempel oder null | Versand |
delivery_reference |
Text | Versandreferenz |
delivery_state |
Text | pending, sent oder manual_review |
Eine Bestätigung entsteht erst nach der Löschung. Im Export eines bestehenden Salons ist die Liste normalerweise leer; nach der Löschung erhältst du die Bestätigung per E-Mail.
7 Verschachtelte Strukturen
employees.weekly_schedule
Liste von Wochenplänen mit from (Datum, Beginn der Gültigkeit) und days (Liste mit sieben Tagen, Index 0 = Montag bis 6 = Sonntag). Jeder Tag hat present (Wahrheitswert) sowie start und end (Text HHMM oder leer). Es gilt der jüngste Plan mit from am oder vor dem jeweiligen Datum. Die Liste kann leer sein. Spätere Änderungen der Öffnungszeiten ändern gespeicherte Wochenpläne nicht.
services.employee_price_adjustments
Objekt mit der Mitarbeiterkennung als Text-Schlüssel und dem Aufpreis in Cent als Ganzzahl ab 0. Fehlt ein Mitarbeiter, gilt kein Aufpreis. Ältere Daten können Aufpreise von 0 und frühere Mitarbeiter enthalten.
services.workflow
{} bei einfachen oder älteren Leistungen. Sonst: version (Ganzzahl, 1), kind (simple oder multi) und steps (Liste). Ein Schritt enthält:
name(Text) undkind:treatment(Behandlung),processing(Einwirkzeit) oderbuffer(Puffer)minutes(Ganzzahl, 1 bis 1.440)staff:same(die federführende Person),any(jede geeignete und verfügbare Person, auch die federführende) odernone(kein Personal)employee_ids(Liste von Ganzzahlen; leer = keine Eingrenzung)resources(Liste von Anforderungen mitids, einer Liste alternativer Ressourcenkennungen, undquantity, der Anzahl auszuwählender Ressourcen)customer_present(Wahrheitswert;false= Vor- oder Nachbereitung außerhalb der Besuchsdauer)- optional
staff_count(gleichzeitig benötigte Personen; fehlt das Feld, gilt 0 beinone, sonst 1) undsource_service_id(kopierte Ursprungsleistung, gegebenenfalls gelöscht)
treatment_notes.recipe
product, shade, amount, developer und mixing_ratio (Texte, gegebenenfalls leer) sowie processing_minutes (Ganzzahl oder null). Ältere Rezepturen können weniger Felder enthalten. Werte eine fehlende Angabe nicht als 0.
appointments.service_snapshot
Liste der Leistungen zum Buchungszeitpunkt mit id, name, duration (Minuten), category_id (Ganzzahl oder null), guest_count, base_price_cents, surcharge_cents (Mitarbeiteraufschlag) und price_cents. Ältere Einträge enthalten nur id, name, duration, price_cents und gegebenenfalls category_id. Es gelten die gespeicherten Preise, nicht der heutige Katalogpreis.
appointments.phase_snapshot
Liste der Ablaufphasen, bei älteren Terminen gegebenenfalls leer. start und end sind Minuten ab Terminbeginn; das Ende zählt nicht mit.
- Standardform:
kind(treatment,processingoderfinish),start,end,service_idundname. Währendprocessingist die Person frei, Kunde und Platz bleiben belegt. - Flexible Form, erkennbar an
workflow: true: die Felder eines Ablaufschritts ausservices.workflowsowiestart,end,service_idundservice_name.startkann bei Vorbereitung negativ sein,endnach dem Besuchsende liegen.kindisttreatment,processingoderbuffer, in älteren Daten auchfinish.
Verwende die gespeicherten Phasen und ersetze sie nicht durch den heutigen Ablauf der Leistung.
appointments.planning_snapshot
{} bei älteren Standardterminen. Sonst: version (1), staff, resources, seat_id, seat_name und phases (Kopie der Phasen).
staff:employee_id,start,end(Minuten ab Terminbeginn),step(Phasenindex ab 0) undname(damaliger Name). Mehrere Einträge je Phase sind möglich.resources:resource_id(Text),start,end,units(derzeit 1),stepundname.step=-1bedeutet Belegung über den gesamten Ablauf einschließlich Puffer. Räume sind ebenfalls Ressourcen.
resource_planning.configuration
{} ist möglich. Sonst: enabled und women_area (Wahrheitswerte), seats (Liste) sowie optional resources (Liste) und service_order (Liste von Leistungskennungen, auch nicht mehr vorhandener).
- Platz:
idundname(Texte),zone(generaloderwomen),service_ids,category_idsundemployee_ids(Listen von Ganzzahlen), optionalroom_id. Erlaubt ist eine Leistung, wenn sie selbst oder ihre Kategorie genannt ist; sind beide Listen leer, gilt keine Beschränkung. Eine leereemployee_ids-Liste bedeutet keine Beschränkung. - Ressource:
idundname(Texte),kind(room,placeoderdevice),room_id(bei Räumen leer, sonst der zugehörige Raum),capacity(Räume 1 bis 100, sonst 1),active(Wahrheitswert) undzone.
Platz- und Ressourcenkennungen sind dauerhafte Texte.
history.before, history.after und booking_mail.snapshot
Historischer Terminzustand mit date (Datum), time (Text HH:MM, Ortszeit), status, cancellation_reason, customer_id und employee_id (Ganzzahl oder null), employee (damaliger Name), employee_ids, services (wie service_snapshot), duration (Minuten), price_cents, phases (wie phase_snapshot), planning (wie planning_snapshot), seat_id, seat_name und booking_gender.
Nach Löschungen oder Einschränkungen können diese Angaben verkürzt sein: employee_id kann null sein, Listen können verkürzt sein, Namen können durch einen neutralen Ersatztext ersetzt sein. In planning.staff kann zusätzlich employee_name stehen. Werte solche Einträge nicht als aktuelle Zuordnung. Betroffene E-Mail-Kopien können ganz fehlen.
agreements.document
Historischer AV-Vertrag mit version, salon (company, representative, email, address, postal_code, city), provider (provider_name, provider_business_name, provider_address, privacy_contact; in Testständen {}), contract (Vertragstext), tom (technische und organisatorische Maßnahmen), subprocessors (Liste mit name, address, purpose, data, countries, transfer_basis; bei Zeilen aus der Vertragsanlage zusätzlich source_cells mit den fünf ursprünglichen Tabellenzellen), backup_retention_days (Ganzzahl) und acceptance (Annahmeerklärung). Einzelne ältere Fassungen enthalten zusätzlich release_scope und private_notice. Nach Annahme einer neuen Fassung kommen annex2 und full_text hinzu; full_text ist der vollständige AV-Vertrag mit beiden Anlagen.
registration_agreements.document
test_mode (Wahrheitswert), provider (wie oben), terms und privacy (jeweils version, text, digest), acceptance, business_declaration und privacy_notice (Texte), bei einzelnen älteren Fassungen release_scope und private_notice. Registrierungen nach Veröffentlichung einer neuen Vertragsfassung enthalten zusätzlich avv (version, contract, tom, annex2, full_text, subprocessors), release_id, release_digest und source_documents. source_documents enthält die Schlüssel imprint, privacy, terms, avv, switching und accessibility, jeweils mit filename, version, text (vollständiger Originaltext) und sha256. Ältere Nachweise werden nicht nachträglich geändert.
contract_acceptances.document
release (Version), release_digest, terms (version, text), avv (version, contract, tom, annex2, full_text, subprocessors, salon, provider, backup_retention_days, acceptance; Unterformen wie bei agreements.document) und capabilities (Liste der angenommenen Vertragsmerkmale). Neuere Annahmen enthalten zusätzlich source_documents wie oben.
deletion_evidence.details
Inhalt je nach action:
instruction:enabled,days,effective_at,preview_count,document,digestundacknowledgements(Liste der bestätigten Erklärungen).documententhältversion,paragraphs(Liste von Texten),acknowledgements(authority,reviewed,instructed),avv_url,avv_versionund je nach Fassungprovider_release_digest,provider,release_scopeundprivate_notice.automatic:days,appointment_ids;manual:appointment_ids;customer_erasure:customer_id,appointment_idshold_changed:appointment_id,beforeundafter(Sperrgründe als Text)data_instruction:version,terms,periods(customer_days,roster_days,staff_days),enabled,digest,revision,counts(customers,roster,staff);data_cleanup:counts,revisiondata_hold:model(customer,employeeoderroster),id,holdprocessing_restriction:model,id,reference,restricted,informed_before_lift,recipients_reviewedclosure_requested:execute_after,returned_or_waivedguest_exportundguest_erasure:guest_id;guest_restriction:guest_id,enablednotice_published:version,digest;notice_link_updated:digestinactivity_expired:due_at,accepted_at,anchor_kind,cyclepaused,data_paused,closure_cancelledundsalon_export:{}
Historische Texte in diesen Nachweisen dürfen beim Import nicht durch heutige Fassungen ersetzt werden.
provider_switch_cases.workflow
{} bei älteren Vormerkungen. Sonst:
version(1; unabhängig vonschema_version) undkind:provider(Wechsel zu einem anderen Anbieter),own_system(eigene Systeme) oderdelete(nur Löschung)request_reference,owner_id(Betreiberkonto),received_at(Eingang) undaccepted_at(zugrunde liegende Vertragsannahme)notice_end(Ende der Ankündigungsfrist),transition_deadline(geltende Übergangsfrist),exception_notice_due(Frist für eine Begründung, falls der Wechsel technisch nicht möglich ist) undmaximum_alternative_end(späteste alternative Frist)extension_used(Wahrheitswert: Verlängerung auf Kundenwunsch genutzt)fees: Liste vereinbarter Wechselentgelte mitamount_cents,direct_cost_cents,service_at,agreed_at(oder null) undagreement_reference; keine Rechnungevents: Bearbeitungsverlauf mitat,actor,action(request,exception,extension,fee,handoverodercompleted) unddetails- je nach Verlauf
exception(reason,sent_at,notice_reference,alternate_end),extension(until,customer_reference,reason),handover(sent_at,delivery_reference,verification_reference),contract_end_reference,contract_end_atundactual_completion_at(Abschluss des Wechsels, Beginn der Abrufphase)
In events enthält details bei request den Wert customer_confirmed, bei completed end_reference und retrieval_until, sonst das jeweilige Objekt. Übertragene Dateien sind nicht eingebettet.
customer_contract_ends.evidence
{}, solange kein Nachweis vorliegt. Sonst je nach Vorgang: basis (source, notice_id, sent_at, objected_at, request_reference, kind, owner_id), settlement_reference und final_settlement_reference (geprüfte Abrechnung), actual_subscription_end (tatsächliches Aboende beim Zahlungsanbieter), late_end_acknowledged und late_end_resolution_reference (verspätetes Aboende geprüft und ausgeglichen) sowie no_subscription (kein bezahltes Abo). Referenzen sind Kennungen; die zugrunde liegenden Unterlagen sind nicht eingebettet.
salon_deletion_cases.provider_record
Häufig {}. Bei Löschung wegen Inaktivität trigger (inactivity) und inactivity_cycle. Bei Löschung nach einem Anbieterwechsel trigger (provider_switch), switch_reference, request_reference, return_reference, operator und switch_workflow (wie provider_switch_cases.workflow). Der Abschlussnachweis kann company, owner_email, stripe_customer_id, stripe_subscription_id, subscription_status und purpose enthalten. Das sind Belegreferenzen, keine Zugangsschlüssel.
deletion_confirmations.remaining
Liste der Restbestände mit category (backups, contract_and_deletion_evidence, invoices, je nach Fall auch recovery_journal, trial_comparison oder confirmation_mail_queue), presence (retained = bei uns vorhanden, conditional_external = möglicherweise bei einem externen Dienst), description, reason, duration (Frist in Worten) und until (Zeitstempel oder null). null bedeutet, dass sich kein konkreter Termin bestimmen lässt, nicht unbegrenzte Aufbewahrung.
8 Versionierung
Ändert sich der Aufbau des Exports, erhöhen wir schema_version und aktualisieren diese Seite. Schemafassung 2 ergänzt gegenüber Fassung 1 die Bereiche separate_files und omitted_records, Salonrollen, Leistungsausschlüsse, Terminserien und weitere eingeplante Mitarbeiter, Vertragsannahmen und Ankündigungen sowie Dienstleister-, Preis-, Kündigungs-, Inaktivitäts-, Wechsel- und Löschvorgänge und salonweite Sperren.