Centurio System- & Moduldokumentation
🏛️ Plattform-Architektur 🔑 Login
Alle Module / crm_office / Team-Chat & Anrufe
📘

Team-Chat & Anrufe

chat crm_office 🛡️ RLS Protected

Team-Chat & Anrufe — aus Code abgeleitete Prozess- und API-Dokumentation.

Fachliche Bestimmung: Kundenbeziehungen, Dokumente, Kommunikation und Office: Team-Chat & Anrufe — aus Code abgeleitete Prozess- und API-Dokumentation. Erfasst alle zugehörigen Geschäftsdaten, Zustandsmodelle, Automationskaskaden und Schnittstellen zur nahtlosen Einbindung in die unternehmensweiten Wertschöpfungsprozesse.

⚡ Workflows & Lebenszyklen

Vorgangsbasiertes Messaging & Team-Kollaboration case_chat_collaboration

Echtzeit-Kommunikation direkt an Belegen (Auftrag, Ticket, Fertigung) mit Teilnehmerbindung und Revisionsarchiv.

sequenceDiagram autonumber actor User as Sachbearbeiter participant ChatAPI as Chat & Messaging Engine participant Agent as KI-Fachassistent participant TaskModule as Aufgaben- & Ticketsystem User->>ChatAPI: Nachricht an Vorgang posten (@KI-Assistent) ChatAPI->>Agent: Event: mention_detected Agent-->>ChatAPI: Antwort mit Kontextanalyse & Handlungsvorschlag User->>TaskModule: Aufgabe aus Vorschlag erzeugen TaskModule-->>ChatAPI: Verknüpfte Task-ID im Chat eingebettet
1. CHANNEL_CREATE
Kanal öffnen
Automatisches oder manuelles Eröffnen eines Chat-Threads an einem ERP-Vorgang.
Aktionen: Beleg-Kontext binden, Teilnehmer laden
2. MESSAGE_POST
Nachricht posten
Teammitglieder oder KI-Agenten tauschen formatierte Nachrichten, @Erwähnungen und Anhänge aus.
Aktionen: Push-Benachrichtigung, Audit-Log
3. TASK_LINK
Aufgabe ableiten
Aus einer Chat-Nachricht wird direkt eine To-Do-Aufgabe oder ein Ticket erzeugt.
Aktionen: Task verknüpfen, Frist setzen
4. ARCHIVE
Vorgangsabschluss
Bei Belegabschluss wird der Chat-Verlauf revisionssicher in der Vorgangsakte archiviert.
Aktionen: Verlauf sperren, DMS-Akte aktualisieren

⚙️ Fachprozesse & Capabilities (System-Fachlogik)

Registrierte Fachoperationen und System-Capabilities dieses Moduls zur Steuerung von Workflows, Kaskaden und KI-Agenten.

Gesamt: 15 manual_entry: 1 engine: 14
Capability & Schlüssel Fachliche Bezeichnung Ausführung / Coverage Risikostufe & Freigabe Effekte & Kaskaden
Agent-Einstieg inbox_agent agent_entry:inbox_agent
Agent-Einstieg inbox_agent
Quelle: code:module_agent_map
manual_entry
✓ Auto
Keine Seiteneffekte deklariert
Bot-Übergabe capability:chat.bot.handoff
Op: chat.bot.handoff
Objekt: chat_channel
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • chat.bot.handoff
Chat-Kanal archivieren capability:chat.channel.archive
Op: chat.channel.archive
Objekt: chat_channel
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • chat_channel.archived
Chat-Kanal anlegen capability:chat.channel.create
Op: chat.channel.create
Intent: create_chat_channel
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • chat_channel.created
Chat: add members capability:chat.chat.add_members
Op: chat.chat.add_members
Objekt: chat
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • chat.add_members
Chat: archive capability:chat.chat.archive
Op: chat.chat.archive
Objekt: chat
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • chat.archive
Chat: create channel capability:chat.chat.create_channel
Op: chat.chat.create_channel
Objekt: chat
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • chat.create_channel
Chat: delete capability:chat.chat.delete
Op: chat.chat.delete
Objekt: chat
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • chat.delete
Chat: mark read capability:chat.chat.mark_read
Op: chat.chat.mark_read
Objekt: chat
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • chat.mark_read
Chat: post capability:chat.chat.post
Op: chat.chat.post
Objekt: chat
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • chat.post
Chat: set muted capability:chat.chat.set_muted
Op: chat.chat.set_muted
Objekt: chat
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • chat.set_muted
Chat: start call capability:chat.chat.start_call
Op: chat.chat.start_call
Objekt: chat
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • chat.start_call
Nachricht anpinnen capability:chat.message.pin
Op: chat.message.pin
Objekt: chat_message
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • chat.message.pin
Nachricht senden capability:chat.message.post
Op: chat.message.post
Intent: send_chat_message
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • chat_message.posted
Thread schließen capability:chat.thread.resolve
Op: chat.thread.resolve
Objekt: chat_thread
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • chat.thread.resolve

🧠 Fachprozess-Erzählung & Dual Knowledge Architektur

Synthese aus der ideologischen Blaupause (Meta-Fachlogik / Soll), der faktischen System-Implementierung (System-Fachlogik / Ist) und No-Code Customizing für KI-Consultants.

Dual Knowledge Layer
📖

Der durchgängige Businessprozess im Detail (End-to-End Fließtext-Erzählung)

Der funktionale Ablauf von Team-Chat & Anrufe in Kommunikation & Office

Das Modul chat verbindet operative Dokumentenflüsse mit Kundeninteraktionen. Eingehende Korrespondenz wird semantisch erfasst, Vorgängen zugeordnet und in digitale Umlaufmappen zur Prüfung eingesteuert. Teammitglieder arbeiten belegbezogen über Aufgaben, Chats und Notizen zusammen.

🏛️

Meta-Fachlogik: Ideologische Blaupause, Soll-Weltbild & Normen

Meta-Fachlogik: Dokumentenmanagement & DSGVO

Basiert auf DIN ISO 15489 (Schriftgutverwaltung), GoBD-Aufbewahrungsfristen (10 Jahre für Handelsbriefe) und DSGVO-Vorgaben zum Auskunfts- und Löschrecht.

⚙️

Systemische Fachlogik: Faktische Umsetzung in Centurio ERP & Capabilities

Systemische Fachlogik: Die faktische Umsetzung von Team-Chat & Anrufe

Realisierung über app.modules.chat mit OCR-Pipeline, Partner-Matching und Volltextindex. DMS-Ablagen sichern Unveränderbarkeit durch Prüfsummen.

🤖

KI-Consultant Leitfaden: Customizing- & No-Code-Konzept (Soll-Ist-Synthese)

AI Solution Architect Blueprint

KI-Consultant Blueprint: Customizing & No-Code Leitfaden für Team-Chat & Anrufe

  • Zusatzfelder: Kundenkategorien, Dokumententypen und Prioritätsstufen anlegen.

  • DAG-Workflows: Automatische Zuordnung von Eingangsnachrichten und Wiedervorlagen einrichten.

📚 Operative Prozessbegriffe & Transaktionsschnittstellen

Zentrale Fachbegriffe im Prozesszusammenhang (Operatives Modell)
Interessentenmanagement
Strukturierte Pflege von Anfragen bis zur Kaufentscheidung.
Dokumentenmanagement (DMS)
Zentrale, versionssichere Ablage aller Geschäftsdokumente.
Umlaufmappen
Geregelte Prüf- und Freigabewege für Dokumente und Verträge.
Omnichannel-Inbox
Zusammenführung von E-Mail, Scan und Portal in einer Arbeitsoberfläche.
📥 Eingänge & Trigger (Inputs)
  • Eingehende E-Mails, Briefe und Scans
  • Kundenanfragen über Website oder Telefon
  • Interne Notizen und Dokumentenentwürfe
📤 Ausgänge & Arbeitsergebnisse (Outputs)
  • Archivierte Dokumente mit Metadaten
  • Zugeordnete CRM-Aktivitäten
  • Freigegebene Veröffentlichungen
⚡ Kaskaden & Folgeprozesse (Cascades)
  • inbox_mail -> crm_activity: Aktivitäteneintrag
  • document_approved -> archive_locked: GoBD-Archivierung
🛡️ Nebenprozesse & Resilienz
  • Manuelle Ausnahmebehandlung durch berechtigte Sachbearbeiter
  • Revisionssichere Protokollierung im Audit-Trail
💡 No-Code Checkliste & Praxistipps
  • Dokumentenkategorien und Verschlagwortungsregeln festlegen
  • E-Mail-Postfächer an die Inbox anbinden

🗄️ Datenmodelle & Felder

ChatChannels chat_channels RLS Aktiv
18 Felder / Spalten

Tabelle chat_channels

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
kind VARCHAR(8) Ja * - Feld kind
name VARCHAR(120) Nein - Feld name
topic VARCHAR(255) Nein - Feld topic
is_private BOOLEAN Ja * - Feld is_private
entity_type VARCHAR(32) Nein - Feld entity_type
entity_id UUID Nein - Feld entity_id
dm_key VARCHAR(80) Nein - Feld dm_key
archived_at DATETIME Nein - Feld archived_at
last_message_at DATETIME Nein - Feld last_message_at
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata
ChatMembers chat_members RLS Aktiv
15 Felder / Spalten

Tabelle chat_members

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
channel_id UUID Ja * FK ➔ chat_channels.id Feld channel_id
user_id UUID Nein FK ➔ users.id Feld user_id
portal_user_id UUID Nein FK ➔ portal_users.id Feld portal_user_id
role VARCHAR(8) Ja * - Feld role
last_read_seq BIGINT Ja * - Feld last_read_seq
muted BOOLEAN Ja * - Feld muted
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata
ChatMessages chat_messages RLS Aktiv
19 Felder / Spalten

Tabelle chat_messages

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
seq BIGINT Ja * - Feld seq
channel_id UUID Ja * FK ➔ chat_channels.id Feld channel_id
author_id UUID Nein FK ➔ users.id Feld author_id
portal_author_id UUID Nein FK ➔ portal_users.id Feld portal_author_id
parent_id UUID Nein FK ➔ chat_messages.id Feld parent_id
kind VARCHAR(8) Ja * - Feld kind
body TEXT Ja * - Feld body
mention_ids JSONB Ja * - Feld mention_ids
edited_at DATETIME Nein - Feld edited_at
deleted_at DATETIME Nein - Feld deleted_at
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata
ChatReactions chat_reactions RLS Aktiv
12 Felder / Spalten

Tabelle chat_reactions

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
message_id UUID Ja * FK ➔ chat_messages.id Feld message_id
user_id UUID Ja * FK ➔ users.id Feld user_id
emoji VARCHAR(16) Ja * - Feld emoji
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata

🔌 Einstiegspunkte (UI & APIs)

Art Methode Endpunkt / Pfad Titel & Zweck Berechtigung
⚡ REST API DELETE /api/v1/chat/messages/{message_id}
delete_message
Semantic binding: operator_surface; mutation=True
chat
⚡ REST API GET /api/v1/chat/channels
list_channels
Semantic binding: inventory_only; mutation=False
chat
⚡ REST API GET /api/v1/chat/channels/{channel_id}/members
channel_members
Semantic binding: inventory_only; mutation=False
chat
⚡ REST API GET /api/v1/chat/channels/{channel_id}/messages
channel_messages
Semantic binding: inventory_only; mutation=False
chat
⚡ REST API GET /api/v1/chat/messages/{message_id}/thread
message_thread
Semantic binding: inventory_only; mutation=False
chat
⚡ REST API GET /api/v1/chat/search
search
Semantic binding: inventory_only; mutation=False
chat
⚡ REST API GET /api/v1/chat/unread
unread
Semantic binding: inventory_only; mutation=False
chat
⚡ REST API GET /chat
chat_page
Semantic binding: inventory_only; mutation=False
chat
⚡ REST API PATCH /api/v1/chat/messages/{message_id}
edit_message
Semantic binding: operator_surface; mutation=True
chat
⚡ REST API POST /api/v1/chat/channels
create_channel
Semantic binding: operator_surface; mutation=True
chat
⚡ REST API POST /api/v1/chat/channels/{channel_id}/archive
archive_channel
Semantic binding: operator_surface; mutation=True
chat
⚡ REST API POST /api/v1/chat/channels/{channel_id}/call
start_call
Semantic binding: operator_surface; mutation=True
chat
⚡ REST API POST /api/v1/chat/channels/{channel_id}/join
join_channel
Semantic binding: operator_surface; mutation=True
chat
⚡ REST API POST /api/v1/chat/channels/{channel_id}/leave
leave_channel
Semantic binding: operator_surface; mutation=True
chat
⚡ REST API POST /api/v1/chat/channels/{channel_id}/members
add_members
Semantic binding: operator_surface; mutation=True
chat
⚡ REST API POST /api/v1/chat/channels/{channel_id}/messages
post_message
Semantic binding: operator_surface; mutation=True
chat
⚡ REST API POST /api/v1/chat/channels/{channel_id}/read
mark_read
Semantic binding: operator_surface; mutation=True
chat
⚡ REST API POST /api/v1/chat/dm
open_dm
Semantic binding: operator_surface; mutation=True
chat
⚡ REST API POST /api/v1/chat/entity
open_entity_chat
Semantic binding: operator_surface; mutation=True
chat
⚡ REST API POST /api/v1/chat/messages/{message_id}/react
react
Semantic binding: operator_surface; mutation=True
chat
⚡ REST API PUT /api/v1/chat/channels/{channel_id}/mute
mute_channel
Semantic binding: operator_surface; mutation=True
chat

🛡️ Regulatorik & Compliance

Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:

  • GoBD Nachvollziehbarkeit
  • Mandanten-Isolation (PostgreSQL RLS)