Basys Analytics Agent Control Panel
Basys AnalyticsAgent Control Panel
Login
Basys ACP
    • Overview
    • Dispatch
    • Inbox
    • Tickets
    • My Agents
    • Activity
    • Incidents
    • Topology
    • Knowledge Base
    • Agent Skills
    • External vendorsComing soon
    • Audit
    • API
    • Workflows
    • Connectors
© 2026 Basys AnalyticsAll systems operationalAlle Systeme in Betrieb--:--:--

ACP Help & roadmapACP-Hilfe & Roadmap

The canonical reference for customers, operators, and admins. Every config screen, every roadmap window, every term used on the platform.Die zentrale Referenz für Kunden, Operatoren und Admins. Jede Konfigurationsfläche, jedes Roadmap-Fenster, jeder Plattform-Begriff.

User viewNutzer-Ansicht

You see the users section. Operator and admin sections are hidden until you sign in with the matching role.Sie sehen den Nutzer-Abschnitt. Die Operator- und Admin-Abschnitte werden eingeblendet, sobald Sie sich mit der passenden Rolle anmelden.

ACP — the AI-Agent-to-Agent Portal. Ingest events from any channel, route them through tiered AI + human operators, deliver enterprise-grade ticketing with audit, SLA, and ROI math built in. Pick your audience tile below to jump to the right setup walkthrough.ACP — das AI-Agent-zu-Agent-Portal. Ereignisse aus jedem Kanal aufnehmen, durch gestaffelte KI- + Menschen-Operatoren leiten und Enterprise-Ticketing mit Audit, SLA und ROI-Mathematik ausliefern. Wählen Sie unten Ihre Zielgruppen- Kachel, um zum passenden Setup-Walkthrough zu springen.

  • I'm a customerIch bin Kunde

    Submit a ticket, reply by email or portal, see your privacy expectations.Ticket einreichen, per E-Mail oder Portal antworten, Datenschutz verstehen.

    Setup guide ↓Setup-Guide ↓

ContentsInhalt

  • AMA — Ask Me AnythingAMA — Frag mich was
  • OverviewÜberblick
  • Setup — CustomerEinrichtung — Kunde
  • ACP SurfacesACP-Flächen
  • Menu referenceMenü-Referenz
  • Data flowsDatenflüsse
  • Available agentsVerfügbare Agenten
  • Available connectorsVerfügbare Konnektoren
  • For users (customers)Für Nutzer (Kunden)
  • RoadmapRoadmap
  • GlossaryGlossar

AMA — Ask Me AnythingAMA — Frag mich was

Ask AMA anything about the ACP Portal. The chat below is grounded in every section of this help page — answers cite the sections they came from.Frag AMA alles über das ACP-Portal. Der Chat unten ist auf alle Abschnitte dieser Hilfe gestützt — jede Antwort zitiert den Quellabschnitt.

Ask Me Anything

Ask me how anything in ACP Portal works. Try "how do I set up MSP tenancy?" or "what does Correlation Rules do?".

About the floating AMA windowÜber das schwebende AMA-Fenster

The chat above is the help-content AMA. AMA also runs as a floating assistant window inside /play/acp, where operators ask about their own tickets, inbox events, and tenant posture. Open it from the sparkle button in the top bar (or the minimized pill at the bottom-right) on any operator page. The window survives client-side navigation, can be minimized to a pill, dragged, resized, and maximized, and stays visible inside fullscreen mode.Der obige Chat ist die Hilfe-AMA. AMA läuft zusätzlich als schwebendes Assistenzfenster in /play/acp, wo Operatoren zu eigenen Tickets, Inbox-Ereignissen und Tenant-Posture fragen. Öffnen Sie es über den Sparkle-Button in der oberen Leiste (oder die minimierte Pille unten rechts), um eine Frage zur aktuellen Seite, zur Tenant-Posture oder zur Plattform zu stellen — ohne die Fläche zu verlassen, auf der Sie gerade arbeiten. Das Fenster überlebt clientseitige Navigation, lässt sich zur Pille minimieren, ziehen, skalieren und maximieren und bleibt auch im Vollbildmodus sichtbar.

What you getWas Sie bekommen

  • Always-on chat window. Ask a question on any ACP page; AMA answers with context from the operator surface area (tickets, inbox, workflows, connectors, KB) without needing to copy-paste anything in.Immer verfügbarer Chat. Frage auf jeder ACP-Seite stellen; AMA antwortet mit Kontext aus den Operator-Flächen (Tickets, Inbox, Workflows, Connectors, KB), ohne dass Sie etwas einfügen müssen.
  • Survives navigation. Open AMA on /play/acp/tickets, click through to /play/acp/inbox, and your conversation is still there. The window state — position, size, minimize — is persisted to localStorage so it stays put across page loads.Übersteht Navigation. AMA auf /play/acp/tickets öffnen, zu /play/acp/inbox wechseln — Ihr Gesprächsverlauf ist noch da. Der Fenster-Zustand — Position, Größe, Minimierung — wird in localStorage gespeichert, damit er über Seiten-Wechsel hinweg erhalten bleibt.
  • Minimize to pill. Click the minus button on the title bar; the window collapses to a sparkle pill at the bottom-right. Click the pill to restore — the conversation history is kept in memory across the minimize.Auf Pille minimieren. Klick auf das Minus-Symbol in der Titelleiste; das Fenster zieht sich zur Sparkle-Pille unten rechts zusammen. Klick auf die Pille stellt wieder her — der Gesprächsverlauf bleibt im Speicher erhalten.
  • Drag, resize, maximize. Drag the title bar to reposition; drag the bottom-right corner to resize; click maximize to take the full viewport. Mobile mode pins the window to the bottom of the screen.Ziehen, skalieren, maximieren. Titelleiste ziehen zum Verschieben; rechte untere Ecke ziehen zum Skalieren; Maximieren-Button schaltet auf den vollen Viewport. Auf Mobilgeräten haftet das Fenster unten am Bildschirm.
  • Works in fullscreen. AMA reparents itself into the current fullscreen subtree so it stays visible if you go fullscreen on a topology graph or ticket detail page.Funktioniert im Vollbild. AMA hängt sich an den aktuellen Vollbild-Teilbaum um, so bleibt es sichtbar, wenn Sie etwa eine Topology-Grafik oder Ticket-Detailseite im Vollbild öffnen.

How it worksSo funktioniert es

AMA is mounted at the ACP layout root. The provider holds window state ({open, minimized, position, size}) plus the in-memory list of question / answer pairs. The window itself is a portaled overlay that reparents into the fullscreen element when one is active, or into the ACP shell root otherwise. Initial state is closed, not minimized, empty conversation — so server-rendered HTML never leaks AMA content to anonymous probes.AMA ist an der ACP-Layout-Wurzel montiert. Der Provider hält Fenster-Zustand ({open, minimized, position, size}) plus die In-Memory-Liste der Frage/Antwort-Paare. Das Fenster selbst ist ein portaliertes Overlay, das sich beim Aktivieren in das Vollbild-Element umhängt oder andernfalls in die ACP-Shell-Wurzel. Initial-Zustand ist geschlossen, nicht minimiert, leerer Verlauf — serverseitig gerendertes HTML leakt damit nie AMA-Inhalt an anonyme Probes.

The persisted state lives in localStorage under key acp-ama-window-state-v1 and is corrupt- tolerant: an invalid JSON payload, a shape mismatch, or non-finite numbers are caught and replaced with defaults (with a console.warn so the failure is greppable in prod logs). The conversation list is in-memory only by design — a hard refresh or a logout clears it. That is intentional: AMA is a transient helper, not a record of your work.Der persistierte Zustand liegt in localStorage unter Schlüssel acp-ama-window-state-v1 und ist tolerant gegen Korruption: ungültiger JSON-Payload, falsche Form oder nicht-endliche Zahlen werden abgefangen und durch Defaults ersetzt (mit console.warn, damit der Fehler in Prod-Logs greifbar ist). Der Gesprächsverlauf ist nur In-Memory — ein Hard-Refresh oder Logout leert ihn. Das ist gewollt: AMA ist ein flüchtiger Helfer, kein Arbeitsprotokoll.

How to configureKonfiguration

There is nothing to configure. AMA mounts for every signed-in user on every /play/acp page. There is no admin toggle and no per-tenant kill switch — it is part of the platform shell, not a tenant feature.Es ist nichts zu konfigurieren. AMA wird für jeden angemeldeten Nutzer auf jeder /play/acp- Seite gemountet. Es gibt keinen Admin-Schalter und keinen mandantenspezifischen Not-Aus — AMA ist Teil der Plattform- Shell, kein Tenant-Feature.

Where to find things in the UIWo finden Sie was im UI

  • Top-bar sparkle button — opens AMA from any /play/acp page. If AMA is already open it re-focuses the window.Sparkle-Button oben — öffnet AMA von jeder /play/acp-Seite. Ist AMA bereits offen, fokussiert der Klick das Fenster.
  • Title-bar buttons — minimize (−), maximize / restore, close (×). Pointer- downs on these never start a drag.Titelleisten-Buttons — Minimieren (−), Maximieren / Wiederherstellen, Schließen (×). Pointer-Down auf diesen Buttons löst nie ein Ziehen aus.
  • Bottom-right pill — visible only while AMA is minimized. Click restores the window.Pille unten rechts — nur sichtbar, solange AMA minimiert ist. Klick stellt das Fenster wieder her.

Privacy postureDatenschutz

AMA does not persist conversation content server-side. Questions and answers stay in your browser tab; closing the tab or refreshing wipes them. The platform may log aggregate usage signals (open / close, message count) for capacity planning.AMA persistiert Gesprächsinhalte nicht serverseitig. Fragen und Antworten bleiben in Ihrem Browser-Tab; Tab schließen oder neu laden löscht sie. Die Plattform kann aggregierte Nutzungssignale (Öffnen / Schließen, Nachrichtenzahl) zur Kapazitätsplanung erfassen.

OverviewÜberblick

The Agent Control Panel (ACP) is a multi-tenant marketplace help-desk built around a tiered human + AI workforce. External events arrive as Inbox items, become Tickets, get worked by an L1/L2/L3 human operator or the L4 AI tier, and emit auditable outcomes to webhooks and the customer portal. The ROI math is surfaced on every Ticket: cost-if-human versus cost-if-AI versus Saved $.Das Agent Control Panel (ACP) ist ein mehrmandantenfähiger Marketplace-Helpdesk mit gestaffelter Mensch- + KI-Belegschaft. Externe Ereignisse landen als Inbox-Einträge, werden zu Tickets, werden von einem L1/L2/L3-Operator oder der L4-KI-Stufe bearbeitet und liefern auditierbare Ergebnisse an Webhooks und das Kunden-Portal. Die ROI-Rechnung erscheint auf jedem Ticket: Kosten-mit-Mensch gegen Kosten-mit-KI gegen gespart $.

The tier modelDas Stufenmodell

  • L1 — Triage human. Sorts incoming events, accepts/rejects them into Tickets, handles the easy ones.L1 — Triage-Mensch. Sortiert eingehende Ereignisse, nimmt sie als Tickets an oder lehnt sie ab, erledigt einfache Fälle.
  • L2 — Standard human. Owns most ticket resolutions; bumps to L3 only when domain expertise or higher trust is required.L2 — Standard-Mensch. Erledigt die meisten Ticket-Lösungen; eskaliert zu L3 nur, wenn Fachwissen oder höhere Vertrauensstufe nötig sind.
  • L3 — Specialist human. Domain expert; signs off on regulated/high-risk replies.L3 — Spezialist-Mensch. Fachexperte; gibt regulierte / risikoreiche Antworten frei.
  • L4 — Autonomous AI. Drafts suggested resolutions for every ticket and, in autonomous mode, closes well-scoped tickets without a human in the loop. Every L4 reply is logged + reversible.L4 — Autonome KI. Schlägt für jedes Ticket eine Lösung vor und schließt im autonomen Modus eng abgegrenzte Tickets ohne menschlichen Eingriff. Jede L4-Antwort wird protokolliert und ist rückgängig machbar.

How it all fits togetherWie alles zusammenhängt

An external event (email, API call, inbound webhook) lands in the Inbox. An operator (or an auto-rule) accepts it into a Ticket; the per-tenant cost model snapshot is frozen onto the ticket at creation so the ROI math stays consistent. The L4 AI immediately drafts a suggested resolution from the ticket title, description, last five comments, and the top-three matching knowledge-base articles. Operators or the L4 tier work the ticket via internal-vs-public comments — public comments email back to the requester through the configured outbound provider, internal comments are hidden from the portal by a server filter. The SLA countdown runs from creation; breach state surfaces on the operator UI and fires browser notifications. Configured outbound webhooks fire on lifecycle events with HMAC-SHA256 over canonical JSON, retried with exponential backoff and a dead-letter terminal state. Resolution closes the ticket, writes an audit-trail entry, and may seed a knowledge-base article candidate.Ein externes Ereignis (E-Mail, API-Aufruf, eingehender Webhook) landet im Posteingang. Ein Operator (oder eine Auto-Regel) akzeptiert es zu einem Ticket; die Kostenmodell-Snapshot des Tenants wird beim Anlegen eingefroren, damit die ROI-Rechnung konsistent bleibt. Die L4-KI entwirft sofort einen Lösungsvorschlag aus Ticketname, Beschreibung, den letzten fünf Kommentaren und den drei am besten passenden Wissensartikeln. Operatoren oder die L4-Stufe arbeiten das Ticket mit internen vs. öffentlichen Kommentaren ab — öffentliche Kommentare gehen per ausgehendem Anbieter zurück an den Anfragenden, interne Kommentare blendet ein Server-Filter im Portal aus. Der SLA-Countdown startet bei Erstellung; Breach-Zustände erscheinen in der Operator-Oberfläche und lösen Browser-Benachrichtigungen aus. Eingerichtete ausgehende Webhooks feuern bei Lifecycle-Ereignissen mit HMAC-SHA256 über kanonisches JSON, werden mit exponentiellem Backoff und Dead-Letter-Endzustand wiederholt. Die Lösung schließt das Ticket, schreibt einen Audit-Eintrag und kann einen Wissensartikel-Kandidaten anstoßen.

External event  (email / API / webhook)
   →  Inbox        (normalized event)
       →  operator accept / reject decision  (or auto-rules)
           →  Ticket  (ROI cost-model snapshot frozen at creation)
               →  L4 AI suggested resolution draft  (optional)
                   →  operator or L4 comment loop
                       →  internal vs public comments  (public → outbound email)
                           →  SLA countdown  (breach → browser + audible)
                               →  outbound webhook fires on lifecycle events
                                   →  resolution + audit trail + KB candidate

                                          ║   parallel
                                          ▼
                                /portal/<tenant-slug>
                                (customer-side view of the
                                 same Ticket; PUBLIC comments only,
                                 server-filtered)

One-paragraph elevator pitchAufzug in einem Absatz

ACP turns every customer signal — email, webhook, portal — into a Ticket the right tier picks up, with the AI doing the drafts and the humans owning the calls. The cost model on every ticket tells you, in your currency, what a human would have spent and what the AI did spend, so the ROI of the workforce mix is visible without a spreadsheet. The platform is multi-tenant, bilingual, whitelabel-aware, and fully auditable. Drop in via portal, email, or API in minutes.ACP verwandelt jedes Kundensignal — E-Mail, Webhook, Portal — in ein Ticket, das die richtige Stufe übernimmt: Die KI schreibt die Entwürfe, der Mensch trifft die Entscheidungen. Das Kostenmodell auf jedem Ticket zeigt in Ihrer Währung, was ein Mensch gekostet hätte und was die KI gekostet hat, damit der ROI Ihres Workforce-Mix ohne Tabellenkalkulation sichtbar ist. Die Plattform ist mehrmandantenfähig, zweisprachig, white-label-fähig und vollständig auditierbar. Einstieg über Portal, E-Mail oder API in Minuten.

Setup — Customer walkthroughEinrichtung — Kunden-Walkthrough

Five steps from never-heard-of-us to your first reply on a ticket. No software to install — you only need an email address.Fünf Schritte vom Erstkontakt bis zur ersten Ticket-Antwort. Keine Software-Installation — Sie brauchen nur eine E-Mail-Adresse.

  1. 1

    Find your tenant's portal URLPortal-URL Ihres Mandanten finden

    Every Basys-powered tenant has a portal at marketplace.basysanalytics.com/portal/<tenant-slug> — for example marketplace.basysanalytics.com/portal/acme. If the tenant operates a custom domain via CNAME (Q3 2026 roadmap), the URL can be something like help.acme.com. Either way, the page asks for your email and nothing else.Jeder von Basys betriebene Mandant hat ein Portal unter marketplace.basysanalytics.com/portal/<tenant-slug> — z. B. marketplace.basysanalytics.com/portal/acme. Bei eigener CNAME-Domain (Q3-2026-Roadmap) kann es etwas wie help.acme.com sein. In beiden Fällen verlangt die Seite ausschließlich Ihre E-Mail-Adresse.
  2. 2

    Request a magic linkMagic-Link anfordern

    Enter your email and click Send link. Within a few seconds a one-time login link arrives via your tenant’s outbound email provider (Postmark / SES / SendGrid). The link is valid for 15 minutes, can be consumed exactly once, and issues a 30-day session cookie when you click it. The cookie is HttpOnly, Secure, and SameSite=Lax — it is not visible to client-side JavaScript and only travels with the portal origin. Only the SHA-256 hash of the link token is persisted on the server, never the raw token.E-Mail eingeben und auf Link senden klicken. Innerhalb weniger Sekunden trifft ein einmaliger Anmeldelink über den ausgehenden E-Mail-Provider des Mandanten (Postmark / SES / SendGrid) ein. Der Link ist 15 Minuten gültig, genau einmal einlösbar und gibt beim Klick ein 30-Tage-Session-Cookie aus. Das Cookie ist HttpOnly, Secure und SameSite=Lax — für Client-JavaScript nicht lesbar, ausschließlich am Portal-Origin gebunden. Server-seitig wird nur der SHA-256-Hash des Link-Tokens gespeichert, nie der Rohwert.

    Email did not arrive?E-Mail nicht angekommen?

    Check spam first. We rate-limit at 5 magic-link requests per email per hour and 30 portal requests per IP per minute, so spam-bursting the form will not help. If still missing after a minute, contact your tenant — their outbound provider may be misconfigured.Zuerst Spam-Ordner prüfen. Rate-Limit: 5 Magic-Link-Anforderungen pro E-Mail/Stunde und 30 Portal-Anfragen pro IP/Minute — schnelles Wiederholen hilft nicht. Wenn nach einer Minute immer noch nichts da ist, beim Mandanten melden; der ausgehende Provider ist evtl. fehlkonfiguriert.
  3. 3

    Submit your first ticketErstes Ticket einreichen

    The portal opens with a list of your tickets (empty on the first visit). Click New ticket and fill in a title, description, optional priority, and any attachments. Title becomes the ticket title; description becomes the first public comment. Priority is a hint — your tenant’s SLA policy translates it into actual response and resolution windows you can see on the ticket after submission. Attachments persist server-side up to the tenant’s byte cap; image previews render inline on both portal and operator views.Das Portal öffnet mit Ihrer Ticket-Liste (beim ersten Besuch leer). Klick auf Neues Ticket, dann Titel, Beschreibung, optional Priorität und Anhänge ausfüllen. Titel wird zum Ticketnamen; Beschreibung zum ersten öffentlichen Kommentar. Priorität ist ein Hinweis — die SLA-Richtlinie des Mandanten übersetzt sie in konkrete Antwort- und Lösungsfenster, die nach dem Absenden im Ticket sichtbar sind. Anhänge bleiben serverseitig bis zum Byte-Limit des Mandanten erhalten; Bildvorschauen erscheinen im Portal und in der Operator-Sicht inline.
  4. 4

    Reply via portal OR via email — both workAntworten über Portal ODER per E-Mail — beides funktioniert

    When an operator (or the L4 AI tier) posts a public reply, you receive an email. Hit Reply in your mail client — the reply lands on the same ticket via In-Reply-To header threading, becomes the next public comment, and emails the operator side. Alternatively hop into the portal and reply in the comment box — same effect. Full two-way parity. Internal triage comments, AI-suggestion drafts, cost-model numbers, and audit trail entries are server-filtered out of your view — not hidden by CSS, not visible in network responses.Sobald ein Operator (oder die L4-KI-Stufe) eine öffentliche Antwort postet, erhalten Sie eine E-Mail. Antworten Sie im Mail-Client — die Antwort landet über In-Reply-To-Threading am gleichen Ticket, wird der nächste öffentliche Kommentar und geht per E-Mail an die Operator-Seite zurück. Alternativ ins Portal wechseln und im Kommentarfeld antworten — gleiche Wirkung. Volle Zwei-Wege-Parität. Interne Triage-Kommentare, KI-Entwürfe, Kostenmodell-Zahlen und Audit-Trail-Einträge sind serverseitig herausgefiltert — nicht per CSS versteckt, nicht in Netzwerkantworten sichtbar.
  5. 5

    Privacy expectations — what you see and what you don'tDatenschutz-Erwartungen — was Sie sehen und was nicht

    • You see: your own tickets, public operator replies, your attachments, your SLA status, the tenant’s public KB articles that were linked to your replies.Sie sehen: Ihre eigenen Tickets, öffentliche Operator-Antworten, Ihre Anhänge, Ihren SLA-Status, die öffentlichen KB-Artikel des Mandanten, die mit Ihren Antworten verknüpft wurden.
    • You never see: other customers’ tickets, other tenants’ data, internal triage comments, AI suggestion drafts, cost-model numbers, ROI math, operator names beyond what they signed their comment with, the tenant’s internal KB articles, the audit trail.Sie sehen nie: Tickets anderer Kunden, Daten anderer Mandanten, interne Triage-Kommentare, KI-Vorschlagsentwürfe, Kostenmodell-Zahlen, ROI-Berechnung, Operator-Namen über das hinaus, womit sie signiert haben, interne KB-Artikel des Mandanten, den Audit-Trail.
    • Filters are server-enforced: the portal store layer pre-filters every query by email AND tenant. Even a crafted URL cannot return another customer’s ticket.Filter sind serverseitig erzwungen: Die Portal-Store-Schicht filtert jede Abfrage vorab nach email UND tenant. Auch eine konstruierte URL kann das Ticket eines anderen Kunden nicht zurückgeben.

Common things to do after your first ticketHäufige nächste Schritte nach dem ersten Ticket

  • Bookmark the portal URL so the magic-link step is one click next time.Portal-URL als Lesezeichen speichern, damit der Magic-Link-Schritt beim nächsten Mal ein Klick ist.
  • Switch language EN/DE via the bilingual toggle in the header.Sprache EN/DE über den Bilingual-Schalter im Header umschalten.
  • Re-open a resolved ticket by replying to its email; threading routes you back onto the same ticket.Geschlossenes Ticket durch Antworten auf seine E-Mail erneut öffnen; das Threading führt Sie zurück auf dasselbe Ticket.
  • Sign out at any time by deleting the portal session cookie or waiting 30 days for it to expire.Jederzeit abmelden, indem das Portal-Session-Cookie gelöscht oder die 30 Tage abgewartet werden.

ACP SurfacesACP-Flächen

ACP is not one product — it is four distinct surfaces with shared identity, shared tenant data, and a clear separation of concerns. Pick the right surface for the job and the rest follows. Each card below explains where the surface lives, who can reach it, and when you should use it instead of the others.ACP ist nicht ein Produkt — es sind vier eigenständige Flächen mit gemeinsamer Identität, gemeinsamen Mandantendaten und klarer Aufgabentrennung. Wer die richtige Fläche wählt, hat es leichter. Jede Karte unten erklärt, wo die Fläche lebt, wer darauf zugreifen kann und wann man sie statt der anderen nutzt.

ACP PortalACP-Portal

Customer-facingKundenseite

Lives at /portal/<tenant-slug> (or a custom CNAME domain when configured — Q3 2026). The customer-facing surface where requesters submit tickets, read public operator replies, and reply back. Auth is magic-link only: enter email → click link in inbox → 30-day session cookie. No password to remember, no second factor today; SAML / WebAuthn for the portal is on the 2027 enterprise roadmap.Liegt unter /portal/<tenant-slug> (oder einer CNAME-Domain, wenn konfiguriert — Q3 2026). Die kundenseitige Fläche: Tickets einreichen, öffentliche Antworten lesen, zurück antworten. Auth nur per Magic-Link: E-Mail → Link im Posteingang → 30-Tage- Session-Cookie. Kein Passwort, heute keine Zweitfaktor; SAML / WebAuthn für das Portal steht in der 2027- Enterprise-Roadmap.

Brand: whitelabel via --brand-portal-* CSS variables, independent of the operator brand. Crypto: separate JWT secret PORTAL_JWT_SECRET so an operator key leak cannot forge portal sessions. Rate limits: 5 magic-link requests per email per hour, 30 portal requests per IP per minute. Server persistence is SHA-256 hash only — raw tokens never touch disk. Store-layer queries are pre-filtered by (email, tenant).Branding: Whitelabel über --brand-portal-*-CSS-Variablen, unabhängig vom Operator-Branding. Krypto: separates JWT-Secret PORTAL_JWT_SECRET, damit ein Operator-Leak keine Portal-Sessions fälschen kann. Rate-Limits: 5 Magic-Link-Anforderungen pro E-Mail/Stunde, 30 Portal- Anfragen pro IP/Minute. Server-Persistenz nur SHA-256-Hash — Rohtokens berühren nie die Platte. Store-Schicht filtert jede Abfrage vorab nach (email, tenant).

Use this surface when…Diese Fläche nutzen wenn…

…you ARE the customer of a Basys-powered tenant, OR you want to preview what your customers see (admins can hit the portal directly with a personal email).…SIE der Kunde eines Basys-betriebenen Mandanten sind ODER Sie sehen wollen, was Ihre Kunden sehen (Admins können das Portal mit einer persönlichen E-Mail direkt aufrufen).

ACP AppsACP-Apps

Operator + Admin web appOperator+Admin-Web-App

The operator + admin web app at /play/acp/*. Every config screen, every inbox triage row, every ticket detail, every audit panel, every API-key issuer — all live here. Auth is session- based via NextAuth.js (Auth.js). Role-based access: ADMIN, OPERATOR_L1 through OPERATOR_L4 (L4 is the AI identity, not a human role), plus board-level USER for anyone signed in but not tenant-attached. Every server action and route handler calls requireSessionOrApiKey({scopes, sessionRoleAtLeast}).Die Operator- und Admin-Web-App unter /play/acp/*. Jede Konfigurationsfläche, jede Inbox-Zeile, jedes Ticket-Detail, jeder Audit- Bereich, jeder API-Key-Aussteller — alles hier. Auth session-basiert über NextAuth.js (Auth.js). Rollen: ADMIN, OPERATOR_L1 bis OPERATOR_L4 (L4 ist die KI-Identität, keine Menschenrolle), plus Board-Level USER für Eingeloggte ohne Mandantenbindung. Jede Server-Action und jeder Route-Handler ruft requireSessionOrApiKey({scopes, sessionRoleAtLeast}) auf.

Subsurfaces: /play/acp (dashboard), /play/acp/inbox, (+ , , , ), , , , , , . The Menu reference section below documents every entry.

ACP AgentACP-Agent

Autonomous AI (L4)Autonome KI (L4)

The L4 autonomous AI tier is a first-class identity, not a bolt-on. The agent participates in two modes: (1) Suggested resolution drafts — fires automatically on every new ticket regardless of tenant config; the operator surfaces the draft as a card on the ticket detail page; draft-only, never auto-posted in v0. (2) Autonomous mode — opt-in per tenant, enabled on a tier eligibility window (typically L1-equivalent repeatable work: password resets, invoice copies, FAQ answers from the public KB). The agent runs end-to-end: drafts the reply, applies the public-comment toggle, fires the outbound email through the configured provider, and writes the audit-trail entry.Die L4-autonome KI-Stufe ist eine eigenständige Identität, kein Aufsatz. Der Agent agiert in zwei Modi: (1) Vorschlagsentwürfe — feuert automatisch auf jedem neuen Ticket, unabhängig von Mandantenkonfiguration; der Entwurf erscheint als Karte im Ticket-Detail; nur Entwurf, in v0 niemals automatisch gepostet. (2) Autonomer Modus — opt-in je Mandant, aktiviert auf einem Stufen- Eignungsfenster (typisch L1-äquivalente wiederkehrende Arbeit: Passwort-Resets, Rechnungskopien, FAQ-Antworten aus der öffentlichen KB). Der Agent läuft end-to-end: Entwurf schreiben, Öffentlich-Schalter anwenden, ausgehende E-Mail über den konfigurierten Provider feuern und den Audit-Trail-Eintrag schreiben.

Auth: scope tickets:suggest:Ln on the agent identity. Prompt context: title + description + last-five comments + top-three KB articles by tag/title similarity. What the agent canNOT do in v0: autopost outside autonomous mode, escalate above its eligibility window, post on an internal-comments-only ticket, or bypass rate-limits. Every L4 action lands in the audit trail with an event of ai.draft / ai.post / ai.escalate-back, and is reversible from the operator surface. Per-tenant fine-tuning on historical resolved tickets is on the Q3 2026 roadmap.

ACP Core APIACP-Core-API

ProgrammaticProgrammatisch

Programmatic access lives at /api/acp/* with bearer auth via API keys issued from /play/acp/api. Four scopes: events:write (push raw events into the inbox), tickets:read (list / get tickets), tickets:write (create / update / comment / resolve), metrics:read (dashboard + ROI metrics). Key format bsya_pk_live_<24-char-base62>; rotation with 60s grace; revoke immediate. The bearer middleware composes with session — when both are present session always wins so the operator surface stays byte-identical for users carrying an API key in another tab.Programmatischer Zugriff unter /api/acp/* mit Bearer-Auth über API-Schlüssel aus /play/acp/api. Vier Scopes: events:write (Roh-Events in die Inbox pushen), tickets:read (Tickets listen/holen), tickets:write (anlegen / aktualisieren / kommentieren / lösen), metrics:read (Dashboard- + ROI-Metriken). Schlüsselformat bsya_pk_live_<24-char-base62>; Rotation mit 60s Grace; Widerruf sofort. Die Bearer-Middleware komponiert mit der Session — bei beiden vorhanden gewinnt die Session, damit die Operator-Oberfläche byte-identisch bleibt, wenn jemand einen API-Key in einem anderen Tab trägt.

Decision tree — which surface should I use?Entscheidungsbaum — welche Fläche?

  • Are you a customer of a Basys-powered tenant? → /portal/<slug> (Portal).Sind Sie Kunde eines Basys-Mandanten? → /portal/<slug> (Portal).
  • Are you an operator or admin doing tenant work? → /play/acp/* (Apps).Sind Sie Operator oder Admin in Mandantenarbeit? → /play/acp/* (Apps).
  • Do you want the AI to draft or own a ticket? → Surface Agent (auto-fires inside the Apps surface; no separate URL).Soll die KI entwerfen oder übernehmen? → Surface Agent (feuert automatisch in der Apps-Fläche; keine separate URL).
  • Are you integrating ACP with a pipeline, monitor, or CRM? → /api/acp/* with a bearer API key (Core API).Integrieren Sie ACP mit Pipeline, Monitoring oder CRM? → /api/acp/* mit Bearer-API-Schlüssel (Core API).

Menu reference — every /play/acp/* linkMenü-Referenz — jeder /play/acp/*-Link

Every menu entry the operator + admin sees, what it does, who can reach it, where to set it up, and the relevant data-flow diagram. Use this as the lookup table when a colleague says 'where is X?' or a tenant asks 'what does Y configure?'.Jeder Menüeintrag, den Operator + Admin sehen, was er tut, wer ihn erreicht, wo eingerichtet, und das passende Datenfluss-Diagramm. Nachschlagewerk, wenn eine Kollegin „Wo ist X?“ fragt oder ein Mandant „Was konfiguriert Y?“.

Dashboard rootDashboard-Wurzel

/play/acpOperator + AdminOperator + Admin
PurposeZweck
Tenant landing page — KPI strip (Saved this month, AI-handled, Avg resolution, SLA hit rate), recent activity, breach alerts.Mandanten-Landeseite — KPI-Streifen (Gespart diesen Monat, KI-bearbeitet, Ø Lösungsdauer, SLA-Trefferquote), letzte Aktivität, Breach-Hinweise.
SetupEinrichtung
No setup — auto-populates from ticket activity. Cards hide cleanly when there's no data yet.Keine Konfiguration — füllt sich aus Ticket-Aktivität. Karten verbergen sich sauber, wenn noch keine Daten da sind.

InboxPosteingang

/play/acp/inboxOperator + AdminOperator + Admin
PurposeZweck
Normalized event triage. Each row is one inbound signal (email / webhook / portal submit / API call) mapped to one canonical shape. Click → accept (bridge to ticket, cost-model snapshot frozen) or reject (archived with reason).Triage normalisierter Ereignisse. Jede Zeile ein eingehendes Signal (E-Mail / Webhook / Portal / API), auf eine kanonische Form abgebildet. Klick → Annahme (Brücke ins Ticket, Kostenmodell eingefroren) oder Ablehnung (mit Grund archiviert).
SetupEinrichtung
Inbound providers wired separately (see Email inbound + Outbound webhooks). Auto-rules pre-accept / pre-reject patterns to keep judgement calls front-and-center.Eingangsprovider separat verdrahtet (siehe E-Mail-Eingang + Ausgehende Webhooks). Auto-Regeln nehmen Muster vorab an oder lehnen sie ab, damit Entscheidungsfälle vorn stehen.
DiagramDiagramm
Event ingestion lifecycleEvent-Ingest-Lifecycle

Tickets listTicket-Liste

/play/acp/ticketsOperator + AdminOperator + Admin
PurposeZweck
Filterable list of every accepted ticket — assignee / tier / priority / channel / time-range filters, server-sanitized search, SLA breach badges per row (orange <25%, red <10%, overdue pulse), bulk actions capped at 50.Gefilterte Liste aller angenommenen Tickets — Filter Bearbeiter / Stufe / Priorität / Kanal / Zeitraum, serverseitig sanitierte Suche, SLA-Breach-Badges je Zeile (orange <25%, rot <10%, Überfällig-Puls), Massenaktionen gedeckelt auf 50.
SetupEinrichtung
Wires to the SLA policy + cost model — no separate setup. Saved-views config arrives Q3 2026.Hängt an SLA-Policy + Kostenmodell — keine separate Konfiguration. Gespeicherte Ansichten Q3 2026.

Ticket detailTicket-Detail

/play/acp/tickets/[id]Operator + AdminOperator + Admin
PurposeZweck
Three-card ROI header (If human / If AI / Saved $) frozen from the cost-model snapshot, assignee picker (scope-filtered), internal/public comment toggle, AI suggested resolution card (draft-only), audit trail panel, attached KB articles, customer-portal preview tab.Drei-Karten-ROI-Header (Mit Mensch / Mit KI / Gespart) eingefroren aus dem Snapshot, Bearbeiter-Auswahl (scope-gefiltert), Schalter intern/öffentlich, KI-Vorschlagskarte (nur Entwurf), Audit-Bereich, verknüpfte KB-Artikel, Portal-Vorschau-Tab.
SetupEinrichtung
No per-ticket setup — derives from tenant config (cost model, SLA, KB, branding) at creation.Keine Ticket-Konfiguration — leitet bei Erstellung aus Mandanten-Config ab (Kostenmodell, SLA, KB, Branding).
DiagramDiagramm
Cost-model lifecycleKostenmodell-Lifecycle

Cost modelKostenmodell

/play/acp/tickets/cost-modelAdminAdmin
PurposeZweck
Per-tenant pricing for the 16-cell tier × side grid (L1-L4 × human/AI). Live preview pane shows every combination. Reset-to-default writes platform defaults back. New tickets pick up changes; existing tickets keep their frozen snapshot.Mandantenspezifische Preise im 16-Zell-Raster Stufe × Seite (L1-L4 × Mensch/KI). Live-Vorschau zeigt jede Kombination. Zurücksetzen schreibt Plattform-Defaults zurück. Neue Tickets übernehmen Änderungen; bestehende behalten ihren eingefrorenen Snapshot.
SetupEinrichtung
Set during admin Setup step 5. Common change: bump a tier rate when salary band shifts (raise L2 human $39 → $50).In Admin-Setup-Schritt 5 gesetzt. Häufige Änderung: einen Stufensatz anheben, wenn das Gehaltsband sich verschiebt (L2-Mensch $39 → $50).
DiagramDiagramm
Cost-model lifecycleKostenmodell-Lifecycle

SLA policiesSLA-Richtlinien

/play/acp/tickets/slaAdminAdmin
PurposeZweck
Response + resolution minutes per priority, business-hours JSON per day-of-week with timezone. Drives the breach countdown badges and browser-notification firings on the operator surface.Antwort- und Lösungsminuten je Priorität, Geschäftszeiten-JSON je Wochentag mit Zeitzone. Treibt Breach-Badges und Browser-Benachrichtigungen in der Operator-Oberfläche.
SetupEinrichtung
Set during admin Setup step 4. Common change: tighten 'high' response window from 240 to 120 minutes when volume drops.In Admin-Setup-Schritt 4 gesetzt. Häufige Änderung: Antwortfenster „hoch“ von 240 auf 120 Minuten straffen.
DiagramDiagramm
SLA lifecycleSLA-Lifecycle

Outbound webhooks + Email inbound + PortalAusgehende Webhooks + E-Mail-Eingang + Portal

/play/acp/tickets/webhooksAdminAdmin
PurposeZweck
Three cards on one surface: outbound webhook targets (HTTPS URL + lifecycle event picker + per-endpoint signing secret), inbound email provider switch (Postmark / SES / SendGrid), portal toggle + slug + custom-domain placeholder.Drei Karten auf einer Fläche: ausgehende Webhook-Ziele (HTTPS-URL + Lifecycle-Event-Auswahl + Endpunkt-Signing-Secret), Eingangsprovider-Schalter (Postmark / SES / SendGrid), Portal-Schalter + Slug + Custom-Domain-Platzhalter.
SetupEinrichtung
Set during admin Setup steps 6 + 7. Common change: rotate the per-endpoint signing secret quarterly; switch outbound provider when volume crosses an inflection.In Admin-Setup-Schritten 6 + 7 gesetzt. Häufige Änderung: Endpunkt-Secret quartalsweise rotieren; Ausgangsprovider wechseln, wenn Volumen den Knickpunkt überschreitet.
DiagramDiagramm
Outbound webhook lifecycleOutbound-Webhook-Lifecycle

Knowledge baseWissensdatenbank

/play/acp/kbOperator (read) + Admin (write)Operator (lesen) + Admin (schreiben)
PurposeZweck
Article CRUD with title, body, tags, audience (public / internal), language (EN/DE). Drives the AI suggestion engine's top-three KB picks by tag/title similarity. Public articles reachable from the portal; internal stay operator-side.Artikel-CRUD mit Titel, Inhalt, Tags, Sichtbarkeit (öffentlich / intern), Sprache (EN/DE). Treibt die Top-Drei-Auswahl der KI-Vorschläge nach Tag-/Titel-Ähnlichkeit. Öffentliche Artikel im Portal erreichbar; interne nur operatorseitig.
SetupEinrichtung
Set during admin Setup step 9 (seed top-10 FAQs). Common change: promote internal article to public when ready for customer surface.In Admin-Setup-Schritt 9 gesetzt (Top-10-FAQs anlegen). Häufige Änderung: internen Artikel öffentlich machen, sobald kundenfertig.
DiagramDiagramm
KB + AI suggested resolution loopKB + KI-Vorschlags-Loop

API keys + OpenAPIAPI-Schlüssel + OpenAPI

/play/acp/apiAdminAdmin
PurposeZweck
Create / rotate / revoke API keys. Pick scopes from events:write / tickets:read / tickets:write / metrics:read. OpenAPI spec preview; SDK tabs (cURL functional + JS / Python / Go badged Phase 3 Q3 2026).API-Schlüssel anlegen / rotieren / widerrufen. Scopes wählen aus events:write / tickets:read / tickets:write / metrics:read. OpenAPI-Vorschau; SDK-Tabs (cURL funktional + JS / Python / Go als Phase 3 Q3 2026).
SetupEinrichtung
Set during admin Setup step 8. Common change: rotate a key with 60s grace; revoke when a caller is decommissioned.In Admin-Setup-Schritt 8 gesetzt. Häufige Änderung: Schlüssel mit 60s Grace rotieren; widerrufen bei Aufrufer-Abschaltung.

WorkflowsWorkflows

/play/acp/workflowsAdminAdmin
PurposeZweck
YAML-defined automations. v0 triggers: ticket.created, ticket.resolved, inbox.accepted, schedule.cron. v0 actions: post-comment, set-priority, assign, tag, call-webhook. Visual drag-drop canvas builder ships Q4 2026.YAML-definierte Automatisierungen. v0-Trigger: ticket.created, ticket.resolved, inbox.accepted, schedule.cron. v0-Aktionen: post-comment, set-priority, assign, tag, call-webhook. Visueller Canvas-Builder Q4 2026.
SetupEinrichtung
Start with one workflow (e.g. auto-tag tickets containing the word 'refund' as priority=high). Add more as patterns emerge.Mit einem Workflow starten (z.&nbsp;B. Tickets mit „Erstattung“ automatisch auf Priorität=hoch taggen). Weitere ergänzen, wenn Muster auftauchen.

ComplianceCompliance

/play/acp/complianceAdminAdmin
PurposeZweck
Per-framework checklist with answer-tracking + score. Today: base set (data residency, user-deletion, audit-log retention, key-rotation cadence). Q4 2026 adds HIPAA, SOX, PCI DSS, FedRAMP, EU/UK packs.Checkliste je Rahmenwerk mit Antwort-Tracking + Score. Heute: Basissatz (Datenresidenz, Nutzerlöschung, Audit-Log-Retention, Schlüsselrotation). Q4 2026 ergänzt HIPAA, SOX, PCI DSS, FedRAMP, EU/UK-Pakete.
SetupEinrichtung
No setup — questionnaire is the surface. Common change: re-answer a question when the underlying control changes; the audit trail records every transition.Keine Konfiguration — der Fragebogen IST die Fläche. Häufige Änderung: Frage neu beantworten, wenn sich das Control ändert; der Audit-Trail erfasst jede Änderung.

Branding (whitelabel)Branding (Whitelabel)

/play/acp/settings/brandingAdminAdmin
PurposeZweck
Per-tenant brand surface — logo, favicon, header logo, primary, accent, background, foreground. Operator side uses --brand-acp-*; portal uses --brand-portal-*. Image validator rejects anything outside PNG / SVG / JPEG / WEBP.Mandantenspezifische Markenfläche — Logo, Favicon, Header-Logo, Primär, Akzent, Hintergrund, Vordergrund. Operator-Seite über --brand-acp-*; Portal über --brand-portal-*. Bild-Validator weist alles außerhalb PNG / SVG / JPEG / WEBP zurück.
SetupEinrichtung
Set during admin Setup step 3. Common change: drop a darker logo variant for the operator surface; keep the portal in the customer-facing brand.In Admin-Setup-Schritt 3 gesetzt. Häufige Änderung: dunklere Logo-Variante für die Operator-Oberfläche; das Portal in Kundenmarke belassen.

Help & roadmap (this page)Hilfe & Roadmap (diese Seite)

/play/acp/helpPublicÖffentlich
PurposeZweck
The canonical reference — setup guides per audience, surface explainers, this menu reference, data-flow diagrams, audience deep-dives, roadmap, glossary. Anonymous-readable so customers can land here from outbound email help links.Die zentrale Referenz — Setup-Guides je Zielgruppe, Flächen-Erklärungen, diese Menü-Referenz, Datenfluss-Diagramme, Zielgruppen-Detailabschnitte, Roadmap, Glossar. Anonym lesbar, damit Kunden aus E-Mail-Hilfslinks hier landen.
SetupEinrichtung
No setup — content travels with the codebase. Filed under `app/play/acp/help/_content.tsx`.Keine Konfiguration — Inhalt im Repo. Datei `app/play/acp/help/_content.tsx`.

Data flows & correlationsDatenflüsse & Korrelationen

Six diagrams that explain how the platform's moving parts fit together. Use them when you need a mental model — 'what happens when an admin saves the cost model?' or 'what does the AI agent see when it drafts?' — without reading source code. Every diagram has a one-paragraph caption.Sechs Diagramme, die zeigen, wie die beweglichen Teile zusammenwirken. Mentalmodell, wenn man wissen will, was beim Speichern des Kostenmodells passiert oder was der KI-Agent beim Entwerfen sieht — ohne in den Quellcode zu schauen. Jedes Diagramm hat einen Absatz-Kommentar.

1 — Event ingestion lifecycle1 — Event-Ingest-Lifecycle

External signal  (email / API webhook / portal submit)
   ↓
POST /api/acp/events                  ← HMAC verified per provider
   ↓
Normalized AcpEvent row               ← inbox state: "new"
   ↓
operator triage OR auto-rule          ← /play/acp/inbox
   ↓
   ├── accept  →  Bridge to AcpTicket ← cost snapshot FROZEN at creation
   │
   └── reject  →  archived with audit-trail reason

Every inbound signal — regardless of channel — lands in /api/acp/events. The provider-specific HMAC is verified, the payload is normalized into the canonical AcpEvent shape, and the row enters the inbox in 'new' state. An operator (or a tenant-defined auto-rule) decides: accept routes it into a new AcpTicket and freezes the cost-model snapshot onto the ticket at that exact moment; reject archives it with a reason for the audit trail.Jedes eingehende Signal — egal welcher Kanal — landet unter /api/acp/events. Die provider-spezifische HMAC wird geprüft, die Payload auf die kanonische AcpEvent-Form normalisiert, und die Zeile betritt die Inbox als „new“. Ein Operator (oder eine mandantendefinierte Auto-Regel) entscheidet: Annahme leitet das Ereignis in ein neues AcpTicket und friert dabei den Kostenmodell-Snapshot ein; Ablehnung archiviert mit Grund für den Audit-Trail.

2 — Cost-model lifecycle2 — Kostenmodell-Lifecycle

Admin edits /play/acp/tickets/cost-model
   ↓
costModelJson upserted on AcpTenantTicketSettings
   ↓
next ticket created
   ↓
resolveTicketCostModel() copies the resolved 16-cell grid
   ↓
ticket.costSnapshot                   ← FROZEN: per-ticket immutable copy
   ↓
three-card ROI header reads ticket.costSnapshot   (NOT current settings)
   ↓
existing tickets keep their frozen snapshot       (audit-consistency invariant)

The admin saves a new pricing grid; ACP upserts it as costModelJson on AcpTenantTicketSettings. The next ticket created copies the resolved 16-cell grid (tier × side) into ticket.costSnapshot — a per-ticket immutable copy. The three-card ROI header always reads from this snapshot, never from the current settings. The reason: a closed ticket's historical ROI math must reflect what was true the day it was opened. This is the audit-consistency invariant.Der Admin speichert ein neues Preisraster; ACP upsertet es als costModelJson auf AcpTenantTicketSettings. Das nächste neue Ticket kopiert das aufgelöste 16-Zell-Raster (Stufe × Seite) in ticket.costSnapshot — eine pro-Ticket unveränderliche Kopie. Der Drei-Karten-ROI-Header liest immer aus diesem Snapshot, nie aus den aktuellen Einstellungen. Grund: Die historische ROI-Rechnung eines geschlossenen Tickets muss den Tag der Eröffnung widerspiegeln. Audit-Konsistenz-Invariante.

3 — SLA lifecycle3 — SLA-Lifecycle

Admin defines policy at /play/acp/tickets/sla
   ↓
AcpSlaPolicy row upserted             ← response + resolution minutes per priority
                                       + business-hours JSON per day + timezone
   ↓
ticket.slaPolicyRef resolved at creation
   ↓
breach countdown calculated business-hours-aware against ticket.slaPolicyRef
   ↓
operator UI badges
   ├── orange  <25% of window remaining
   ├── red     <10% of window remaining
   └── pulse   "X overdue" (respects prefers-reduced-motion)
   ↓
breach → browser notification + audible toast (opt-in once per browser)
   ↓
resolution event clears the countdown

The admin defines per-priority response and resolution minutes plus a business-hours JSON window per day-of-week with a timezone. Each new ticket carries a reference to the policy snapshot active at creation. The breach countdown is business-hours-aware — a ticket opened Friday 16:30 doesn't tick during a closed weekend. As the window shrinks, the operator UI emits orange (<25%), red (<10%), and finally a pulsing 'X overdue' badge that respects prefers-reduced-motion. Browser notification + audible toast fire once per breach (opt-in per browser). Resolution clears the countdown.Der Admin definiert Antwort- und Lösungsminuten je Priorität plus ein Geschäftszeit-JSON-Fenster je Wochentag mit Zeitzone. Jedes neue Ticket hält eine Referenz auf den Policy-Snapshot zum Erstellungszeitpunkt. Der Breach-Countdown ist geschäftszeit-bewusst — Freitag 16:30 tickt nicht durch ein geschlossenes Wochenende. Bei schrumpfendem Fenster zeigt die Operator-UI orange (<25%), rot (<10%) und schließlich ein pulsierendes „X überfällig“-Badge, das prefers-reduced-motion respektiert. Browser-Benachrichtigung + akustischer Toast feuern einmal je Breach (opt-in je Browser). Lösung löscht den Countdown.

4 — Outbound webhook lifecycle4 — Outbound-Webhook-Lifecycle

Admin defines target at /play/acp/tickets/webhooks
   ↓
ticket lifecycle event fires          ← 5 events:
                                         ticket.created
                                         ticket.updated
                                         ticket.commented
                                         ticket.resolved
                                         ticket.reopened
   ↓
canonical-JSON payload signed HMAC-SHA256 with endpoint signing secret
   ↓
POST to target URL with X-Basys-Signature header
   ↓
   ├── 2xx       → audit "delivered"
   │
   └── non-2xx   → exponential backoff
                    1m → 5m → 30m → 2h → 12h → DEAD-LETTER
                    ↑                          ↑
                    │                          DLQ replay UI = Q3 deferred
                    │
                    idempotency = (ticketId, eventId) — receivers MUST de-dupe

The admin adds an HTTPS target URL on /play/acp/tickets/webhooks. When any of five ticket-lifecycle events fires, ACP builds a canonical-JSON payload, signs it HMAC-SHA256 with the per-endpoint signing secret, and POSTs to the target with an X-Basys-Signature header. 2xx → audited as delivered. Non-2xx → exponential retry schedule 1m → 5m → 30m → 2h → 12h, then dead-letter. The DLQ replay UI ships Q3. Idempotency key is (ticketId, eventId) — receivers MUST de-dupe on this composite key to survive retries without double-processing.Der Admin trägt unter /play/acp/tickets/webhooks eine HTTPS-Ziel-URL ein. Beim Feuern eines der fünf Ticket-Lifecycle-Ereignisse baut ACP eine kanonische JSON-Payload, signiert sie mit HMAC-SHA256 gegen das Endpunkt-Secret und postet sie mit X-Basys-Signature-Header. 2xx → als zugestellt protokolliert. Non-2xx → exponentielle Wiederholung 1m → 5m → 30m → 2h → 12h, dann Dead-Letter. Die DLQ-Replay-Oberfläche kommt Q3. Idempotenz-Key ist (ticketId, eventId) — Empfänger MÜSSEN über diesen zusammengesetzten Schlüssel deduplizieren.

5 — KB + AI suggested resolution loop5 — KB + KI-Vorschlags-Loop

Admin writes KB article at /play/acp/kb
   ↓
article indexed for tag-similarity + title-similarity scoring
   ↓
new ticket created
   ↓
L4 AI agent (scope tickets:suggest:Ln) generates draft using prompt =
   title  +  description  +  last-5 comments  +  top-3 KB by similarity
   ↓
"AI suggested resolution" card on ticket detail   ← DRAFT-ONLY, no autopost
   ↓
operator reviews → edit → post as public comment
   ↓
resolution → audit-trail entry + KB candidate flag  ← auto-KB Q4 roadmap

The admin writes KB articles with tags + audience + language. On every new ticket the L4 AI agent (scoped tickets:suggest:Ln) builds a prompt from the title, description, last-five comments, and the top-three KB articles ranked by tag/title similarity. The agent generates a draft and surfaces it as a card on the ticket detail page — draft-only in v0, never autoposted. The operator reviews, edits, and posts it as a public comment. On resolution, the ticket can flag itself as a KB candidate. Auto-KB authoring from resolved tickets is on the Q4 roadmap (closes the loop).Der Admin schreibt KB-Artikel mit Tags + Sichtbarkeit + Sprache. Bei jedem neuen Ticket baut der L4-KI-Agent (Scope tickets:suggest:Ln) aus Titel, Beschreibung, letzten fünf Kommentaren und den drei besten KB-Artikeln nach Tag-/Titel-Ähnlichkeit einen Prompt. Der Agent erzeugt einen Entwurf und zeigt ihn als Karte im Ticket-Detail an — in v0 nur Entwurf, nie automatisch gepostet. Der Operator prüft, bearbeitet und postet ihn als öffentlichen Kommentar. Bei der Lösung kann das Ticket sich als KB-Kandidat markieren. Auto-KB aus gelösten Tickets steht in der Q4-Roadmap (Loop schließt sich).

6 — Portal session lifecycle6 — Portal-Session-Lifecycle

Customer hits /portal/<tenant-slug>
   ↓
enters email → POST magic-link request
   ↓
rate-limit checks:  5/hr per email   AND   30/min per IP
   ↓
SHA-256 hash of the token persisted   (raw token never on disk)
   ↓
email delivered via tenant's outbound provider
   ↓
click link  (15min TTL, single-use, atomic mark-consumed)
   ↓
30-day session cookie issued
   PORTAL_JWT_SECRET signed   ← independent of operator session secret
   HttpOnly + Secure + SameSite=Lax
   ↓
every query store-layer filtered by (email, tenant)
   ↓
only public comments returned   ← server-forced, not CSS-hidden

The customer enters an email at /portal/<slug>. ACP rate-limits requests (5 per email per hour + 30 per IP per minute) and persists only a SHA-256 hash of the magic-link token — the raw token never touches disk. The email goes out via the tenant's outbound provider. The link has a 15-minute TTL, can be consumed exactly once, and on click issues a 30-day session cookie signed by PORTAL_JWT_SECRET — an independent secret from the operator session crypto, so an operator-side leak can't forge portal sessions. The store layer pre-filters every query by (email, tenant); internal triage comments, AI drafts, and cost-model numbers are server-filtered out — not hidden by CSS, not in network responses.Der Kunde gibt eine E-Mail unter /portal/<slug> ein. ACP wendet Rate-Limits an (5 pro E-Mail/Stunde + 30 pro IP/Minute) und persistiert nur den SHA-256-Hash des Magic-Link-Tokens — der Rohwert berührt nie die Platte. Die E-Mail geht über den ausgehenden Provider des Mandanten raus. Der Link hat 15 Minuten TTL, ist genau einmal einlösbar und gibt beim Klick ein 30-Tage-Session-Cookie aus, signiert mit PORTAL_JWT_SECRET — ein unabhängiges Secret vom Operator-Session-Krypto, sodass ein Operator-Leak keine Portal-Sessions fälschen kann. Die Store-Schicht filtert jede Abfrage vorab nach (E-Mail, Mandant); interne Triage-Kommentare, KI-Entwürfe und Kostenmodell-Zahlen sind serverseitig gefiltert — nicht per CSS versteckt, nicht in Netzwerkantworten.

Available agentsVerfügbare Agenten

Every agent that ships in the Basys marketplace, with its dashboard template, required connectors, and link to the configure flow. The list reads live from the marketplace catalog; signed-in operators and admins also see a Configure CTA per card.Jeder Agent, der im Basys-Marktplatz veröffentlicht ist, mit Dashboard-Vorlage, benötigten Konnektoren und Link zum Konfigurations-Flow. Die Liste wird live aus dem Marketplace-Katalog gelesen; angemeldete Operatoren und Admins sehen zusätzlich pro Karte eine Konfigurieren-Aktion.

Loading the agent catalog…Agenten-Katalog wird geladen…

Available connectorsVerfügbare Konnektoren

Every inbound and outbound connector the platform supports, with its role axis, required credential fields, and the configure path. Wired connectors deep-link to a published agent's configure section or the marketplace filter; future connectors show their tracking issue; the sentinel-backed source deep-links to Sentinel.Jeder eingehende und ausgehende Konnektor, den die Plattform unterstützt, mit Rollenachse, erforderlichen Credential-Feldern und Konfigurations-Pfad. Verdrahtete Konnektoren verlinken auf den Konfigurations-Bereich eines veröffentlichten Agenten oder den Marketplace-Filter; zukünftige Konnektoren zeigen ihr Tracking-Issue; die Sentinel-gestützte Quelle führt direkt zu Sentinel.

  • PagerDutyPagerDuty

    Forward PagerDuty incident webhooks into the ACP fabric AND let installed agents acknowledge incidents on your behalf. Pair an HMAC extension with your tenant URL for ingest; supply a PagerDuty REST API key for the action surface.Leitet PagerDuty-Incident-Webhooks in das ACP-Fabric weiter und erlaubt installierten Agenten, Incidents in Ihrem Namen zu bestätigen. Verknüpfen Sie eine PagerDuty-HMAC-Extension mit Ihrer Tenant-Ingest-URL für den Ingest; hinterlegen Sie einen PagerDuty-REST-API-Schlüssel für die Action-Oberfläche.

    BothBeides1 field1 Feld
  • SlackSlack

    Capture Slack message events from a watcher channel as ACP events, and post incident-resolved / playbook-outcome messages back into a Slack channel as an action target. Configure the inbound side via a Slack app's Events API; the outbound action side uses an OAuth bot token with rotating refresh credentials.Erfasst Slack-Nachrichtenereignisse aus einem Beobachter-Kanal als ACP-Ereignisse und postet Incident-Resolved- / Playbook-Outcome-Nachrichten als Action-Ziel zurück in einen Slack-Kanal. Inbound-Konfiguration über die Events-API einer Slack-App; die Action-Seite nutzt ein OAuth-Bot-Token mit rotierenden Refresh-Credentials.

    BothBeides4 fields4 Felder
  • GitHubGitHub

    Receive GitHub webhook events (workflow_run, deployment_status, alerts) into the fabric. Point a repo webhook at your tenant URL.Empfängt GitHub-Webhook-Ereignisse (workflow_run, deployment_status, Alerts) im Fabric. Richten Sie einen Repository-Webhook auf Ihre Tenant-Ingest-URL ein.

    BothBeidesHMAC webhookHMAC-Webhook
  • HMAC Ingest (Generic Webhook)HMAC-Ingest (generischer Webhook)

    Forward any HTTP-postable source. Sign the body with HMAC-SHA-256, supply X-ACP-Signature, and the fabric ingests it like any other connector.Leitet beliebige HTTP-fähige Quellen weiter. Signieren Sie den Body mit HMAC-SHA-256, übermitteln Sie X-ACP-Signature, und das Fabric verarbeitet die Ereignisse wie jeden anderen Connector.

    SourceQuelleHMAC webhookHMAC-Webhook
  • Microsoft GraphMicrosoft Graph

    Ingest Microsoft 365 change-notifications (Intune device compliance, Defender XDR incidents, Entra risky sign-ins) via a Graph subscription pointed at your tenant ingest URL. Provisioned with an Entra app registration + a subscription POST — the subscription's clientState is the per-subscription shared secret.Empfängt Microsoft-365-Änderungsbenachrichtigungen (Intune-Gerätekonformität, Defender-XDR-Incidents, riskante Entra-Anmeldungen) über ein Graph-Abonnement, das auf Ihre Tenant-Ingest-URL zeigt. Bereitstellung über eine Entra-App-Registrierung plus Abonnement-POST – der clientState des Abonnements ist das geteilte Geheimnis pro Subscription.

    SourceQuelle3 fields3 Felder
  • NinjaOne RMMNinjaOne RMM

    Poll the NinjaOne RMM alerts API and emit each new alert as an ACP event, plus dispatch device action verbs (Wave A: restart a Windows service via the RMM control endpoint). Tenants authenticate both paths with a NinjaOne API key (bearer token).Pollt die Alerts-API von NinjaOne RMM und gibt jede neue Warnung als ACP-Ereignis aus; verteilt zusätzlich Action-Verbs auf NinjaOne-verwaltete Geräte (Wave A: Windows-Dienst über den RMM-Control-Endpoint neu starten). Tenants authentifizieren beide Pfade mit einem NinjaOne-API-Schlüssel (Bearer-Token).

    BothBeides5 fields5 Felder
  • AWSAWS

    AWS read-only inventory + cloud-ops action surface — CloudTrail, Cost Explorer, Config, CloudWatch, Backup, IAM, S3. SigV4-signed calls against the per-tenant AWS account; credentials are long-lived access keys plus an STS AssumeRole arn + external-id (confused-deputy guard). v0 ships a security-signal SOURCE plane (CloudTrail Lookup-Events + GuardDuty list-findings) via the same adapter; v1 ships the outbound correlation-read ACTION verbs. IAM-policy-attach action verbs are gated behind v0.1.AWS-Read-Only-Action-Ziel — CloudTrail-/Cost-Explorer-/Config-Inventory-Oberfläche für installierte Cloud-Ops-Agenten. v0 ist lesend; mutierende Verben landen hinter expliziten per-Tenant-Scope-Grants.

    BothBeides5 fields5 Felder
  • CrowdStrike FalconCrowdStrike Falcon

    Stream CrowdStrike Falcon endpoint-detection-and-response detections into the ACP fabric. The streaming consumer holds a long-lived chunked HTTP connection to Falcon's `/sensors/entities/datafeed/v2`, authenticated via OAuth2 client_credentials, and emits each new detection as an ACP event. The cloud region is auto-discovered from the Falcon API base — override only if you operate against a fixed Falcon cloud.Streamt CrowdStrike-Falcon-Detections (Endpoint Detection and Response) in das ACP-Fabric. Der Streaming-Consumer hält eine langlebige Chunked-HTTP-Verbindung zu Falcons `/sensors/entities/datafeed/v2`, authentifiziert per OAuth2-Client-Credentials, und gibt jede neue Detection als ACP-Ereignis aus. Die Cloud-Region wird automatisch aus dem Falcon-API-Host erkannt – nur überschreiben, wenn Sie gegen eine feste Falcon-Cloud arbeiten.

    SourceQuelle3 fields3 Felder
  • DatadogDatadog

    Pull Datadog observability events into the ACP fabric via the Datadog REST API. Authenticate with a Datadog API key + Application key issued from the per-tenant Datadog organization; the `site` allowlist pins the API host to your Datadog region (US1, US3, US5, EU1, AP1, or US-GOV). No OAuth — rotate the keys in Datadog if a credential is compromised.Ruft Datadog-Observability-Ereignisse über die Datadog-REST-API ab. Authentifizierung erfolgt mit einem Datadog-API-Schlüssel und einem Application-Key, die in Ihrer Datadog-Organisation erstellt werden; das `site`-Feld pinnt den API-Host auf Ihre Datadog-Region (US1, US3, US5, EU1, AP1 oder US-GOV). Kein OAuth – bei Schlüsselrotation oder Kompromittierung tauschen Sie die Schlüssel direkt in Datadog aus.

    SourceQuelle3 fields3 Felder
  • Backup StatusBackup-Status

    Vendor-neutral backup-job telemetry. Supports Veeam Backup & Replication, Veritas NetBackup, Microsoft Azure Backup / DPM, AWS Backup, Commvault, Rubrik, Cohesity, Acronis Cyber Protect, and Datto BCDR — plus a generic backup webhook fallback. POST a normalized envelope ({job_id, state, last_success_at, rpo_seconds, source, subject}) to your tenant HMAC URL; webhook-native vendors send directly, poll-only vendors run via an n8n / Make / Power Automate shim.Anbieterneutrale Backup-Job-Telemetrie. Unterstützt Veeam Backup & Replication, Veritas NetBackup, Microsoft Azure Backup / DPM, AWS Backup, Commvault, Rubrik, Cohesity, Acronis Cyber Protect und Datto BCDR – plus einen generischen Backup-Webhook-Fallback. POSTen Sie einen normalisierten Envelope ({job_id, state, last_success_at, rpo_seconds, source, subject}) an Ihre Tenant-HMAC-URL; webhook-fähige Anbieter senden direkt, reine Poll-Anbieter laufen über einen n8n-/Make-/Power-Automate-Shim.

    SourceQuelleHMAC webhookHMAC-Webhook
  • ZendeskZendesk

    Let installed agents read and update Zendesk tickets on your behalf. Supply your subdomain and a Zendesk API token; stored encrypted per-tenant.Installierte Agenten lesen und aktualisieren Zendesk-Tickets in Ihrem Namen. Hinterlegen Sie Ihre Subdomain und ein Zendesk-API-Token; pro Tenant verschlüsselt gespeichert.

    ActionAktion3 fields3 Felder
  • FreshdeskFreshdesk

    Let installed agents read and update Freshdesk tickets. Supply your domain prefix and a Freshdesk API key; stored encrypted per-tenant.Installierte Agenten lesen und aktualisieren Freshdesk-Tickets. Hinterlegen Sie Ihre Subdomain und einen Freshdesk-API-Schlüssel; pro Tenant verschlüsselt gespeichert.

    ActionAktion2 fields2 Felder
  • Jira Service DeskJira Service Desk

    Let installed agents read and update Jira Service Desk issues. Supply your Atlassian base URL, the integration user's email, and a scoped API token; stored encrypted per-tenant.Installierte Agenten lesen und aktualisieren Jira-Service-Desk-Vorgänge. Hinterlegen Sie Ihre Atlassian-Basis-URL, die E-Mail-Adresse des Integrationsbenutzers und ein zweckgebundenes API-Token; pro Tenant verschlüsselt gespeichert.

    ActionAktion4 fields4 Felder
  • Generic HTTPGenerisches HTTP

    Catch-all outbound connector for ticketing/CRM systems we don't ship a first-class kind for. Supply a base endpoint and a bearer token; agents POST to it on your behalf.Sammel-Connector für ausgehende Ticket-/CRM-Systeme, für die kein dedizierter First-Class-Kind ausgeliefert wird. Hinterlegen Sie einen Basis-Endpoint und ein Bearer-Token; Agenten POSTen in Ihrem Namen dorthin.

    ActionAktion2 fields2 Felder
  • ConnectWise ManageConnectWise Manage

    Open and update ConnectWise Manage service tickets from installed agents. Authenticates with an API-member key pair and a registered integration clientId.Eröffnet und aktualisiert ConnectWise-Manage-Servicetickets aus installierten Agenten. Authentifizierung über ein API-Member-Schlüsselpaar und eine registrierte Integration-ClientId.

    ActionAktion5 fields5 Felder
  • Microsoft TeamsMicrosoft Teams

    Post incident-resolved / playbook-outcome cards into a Teams channel as an action target. Uses an Entra app registration with `ChannelMessage.Send` application permission; OAuth2 client-credentials flow.Postet Incident-Resolved- und Playbook-Outcome-Karten als Action-Ziel in einen Teams-Kanal. Verwendet eine Entra-App-Registrierung mit der Anwendungsberechtigung `ChannelMessage.Send` und den OAuth2-Client-Credentials-Flow.

    ActionAktion4 fields4 Felder
  • Jira CloudJira Cloud

    Create and transition Jira Cloud issues from installed agents via Atlassian 3LO OAuth. The adapter refreshes the access token on every dispatch; the cloudId is validated against the strict Atlassian UUID shape at parse time and at every outbound call.Legt Jira-Cloud-Vorgänge an und treibt sie über Workflow-Übergänge weiter — direkt aus installierten Agenten. Authentifizierung über Atlassian-3LO-OAuth; der Adapter erneuert das Access-Token bei jeder Aktion. Die `cloudId` wird sowohl beim Hinterlegen der Zugangsdaten als auch bei jedem ausgehenden Aufruf gegen das strikte Atlassian-UUID-Muster geprüft. Abgegrenzt von `jira-servicedesk`, das die JSM-Portal-API mit Benutzername und zweckgebundenem API-Token anspricht.

    ActionAktion4 fields4 Felder
  • HubSpotHubSpot

    Create-or-update HubSpot contacts (idProperty=email upsert) and patch deals from installed agents. Authenticates with a HubSpot OAuth app — refresh_token grant on every dispatch.Legt HubSpot-Kontakte über die idProperty=email-Upsert-Semantik an oder aktualisiert sie und patcht Deals aus installierten Agenten. Authentifizierung über eine HubSpot-OAuth-App — refresh_token-Grant bei jedem Dispatch.

    ActionAktion3 fields3 Felder
  • Sage Business Cloud AccountingSage Business Cloud Accounting

    Post sales invoices into Sage Business Cloud Accounting as an action target. Uses Sage OAuth2 with refresh-per-dispatch token minting; business-region (`dc`) is locked to a closed allowlist (gb / de / ie / us / ca / fr / es).Postet Verkaufsrechnungen als Action-Ziel in Sage Business Cloud Accounting. Verwendet Sage-OAuth2 mit Refresh-per-Dispatch-Token-Minting; die Geschäftsregion (`dc`) ist auf eine geschlossene Allowlist beschränkt (gb / de / ie / us / ca / fr / es).

    ActionAktion5 fields5 Felder
  • StripeStripe

    Receive Stripe webhook events (invoice / payment / dispute) into the ACP fabric via the HMAC-receiver route at `/api/acp/webhooks/stripe`, AND let installed billing agents dispatch REST actions against `api.stripe.com` on your behalf. Supply a restricted Stripe API key (Bearer auth, outbound) AND the webhook signing secret (`whsec_…`) for the source receiver; both are stored encrypted per-tenant in the same vault row.Empfängt Stripe-Webhook-Ereignisse (Invoice / Payment / Dispute) über die HMAC-Receiver-Route `/api/acp/webhooks/stripe` im ACP-Fabric UND erlaubt installierten Billing-Agenten, REST-Aktionen gegen `api.stripe.com` in Ihrem Namen auszuführen. Hinterlegen Sie einen Stripe-Restricted-API-Key (Bearer-Auth, ausgehend) UND das Webhook-Signing-Secret (`whsec_…`) für den Receiver; beide werden pro Tenant in derselben Vault-Zeile verschlüsselt gespeichert.

    BothBeides2 fields2 Felder
  • QuickBooks OnlineQuickBooks Online

    Create invoices and upsert customers on a QuickBooks Online tenant via the Intuit v3 REST API. OAuth2 refresh-token grant — Intuit rotates the refresh token on every refresh; the adapter exchanges the stored token at every dispatch. `environment` pins the API host to either the production or sandbox Intuit cluster.QuickBooks-Online-Action-Ziel — erstellt Rechnungen und legt Kunden über die Intuit-v3-REST-API an oder aktualisiert sie. Verwendet Intuit-OAuth2 mit Refresh-per-Dispatch-Token-Minting; das Feld `environment` (`production` | `sandbox`) pinnt den API-Host auf die jeweilige Intuit-Cluster-Region. Hinterlegen Sie ClientId, ClientSecret, Refresh-Token, `realmId` (die QBO-Firmen-Id) und `environment` pro Tenant; alle werden in derselben Vault-Zeile verschlüsselt gespeichert.

    BothBeides5 fields5 Felder
  • CloudflareCloudflare

    Receive Cloudflare audit-log + WAF firewall events into the ACP fabric via the HMAC-receiver route at `/api/acp/webhooks/cloudflare`, AND let installed network agents dispatch REST actions against `api.cloudflare.com` on your behalf. Supply a scoped Cloudflare API token (read scope for the audit-log source v0; future WAF/DNS verbs will require account-edit scopes) plus the account ID and zone ID the token is scoped to.Empfängt Cloudflare-Webhook-Ereignisse (DNS, WAF/Firewall, Audit-Log) über die HMAC-Receiver-Route `/api/acp/webhooks/cloudflare` im ACP-Fabric. Hinterlegen Sie ein Cloudflare-Scoped-API-Token (Bearer-Auth) sowie Account-ID und Zone-ID (32-stellig, Kleinbuchstaben-Hex); alle drei werden pro Tenant in derselben Vault-Zeile verschlüsselt gespeichert. Ausgehende Action-Verben (WAF-Rule-, DNS-Oberfläche) folgen in einem separaten Wave-C-Follow-up.

    BothBeides3 fields3 Felder
  • SalesforceSalesforce

    Create-or-update Salesforce records by external id from installed agents via the Connected-App JWT-bearer OAuth2 flow. The adapter PATCHes the canonical upsert endpoint `/services/data/v60.0/sobjects/{type}/{externalIdField}/{externalId}`; the `instanceUrl` is pinned to the `my.salesforce.com` / `lightning.force.com` allowlist at parse time and at every URL build. Sandbox tenants land via their sandbox subdomain; set the `sandbox` flag to switch the JWT-bearer login endpoint to `test.salesforce.com`.Erstellt oder aktualisiert Salesforce-Datensätze anhand eines External-Id-Felds direkt aus installierten Agenten — über den Connected-App-JWT-Bearer-OAuth2-Flow. Der Adapter setzt PATCH-Aufrufe gegen den kanonischen Upsert-Endpunkt `/services/data/v60.0/sobjects/{type}/{externalIdField}/{externalId}` ab; die `instanceUrl` wird sowohl beim Hinterlegen als auch bei jedem ausgehenden Aufruf gegen die geschlossene Allowlist `my.salesforce.com` / `lightning.force.com` geprüft. Sandbox-Tenants landen über ihre Sandbox-Subdomain auf demselben Muster; das `sandbox`-Flag schaltet lediglich den JWT-Bearer-Login-Endpunkt auf `test.salesforce.com` um.

    BothBeides5 fields5 Felder
  • Google WorkspaceGoogle Workspace

    Stream Google Workspace activity into the ACP fabric: Admin SDK audit feed (login + admin activity events), Drive v3 change-log polling, and Calendar v3 event-change polling (event-created / event-modified / external-attendee-added). Dispatch the `calendar.gws.event-create` verb to insert one bounded-write Calendar v3 event per dispatch. Authenticated with a service-account JWT-bearer assertion plus domain-wide delegation (DWD) — the service account impersonates the named domain user inside the granted scopes. Scope allowlist is closed: read-only Admin SDK reports/directory + Drive readonly, plus read-only Calendar events and the bounded-write `calendar.events` scope (events-only — no calendar-CRUD, share, ACL, or settings surfaces). Gmail Send and Drive write are intentionally deferred to a dedicated threat-model follow-up.Streamt Google-Workspace-Aktivität in den ACP-Fabric: Admin-SDK-Audit-Feed (Login- und Admin-Aktivitätsereignisse) sowie Drive-v3-Change-Log-Polling. Authentifiziert über eine Service-Account-JWT-Bearer-Assertion mit Domain-Wide-Delegation (DWD) — das Service-Konto impersoniert den angegebenen Workspace-Benutzer innerhalb der gewährten Scopes. Die Scope-Allowlist ist in v0 geschlossen und LESEZUGRIFF-only (Admin-SDK-Reports/-Directory + Drive read-only); Gmail Send und Schreibscopes werden bewusst zurückgestellt und folgen einem eigenen Threat-Model-Ticket.

    BothBeides4 fields4 Felder
  • Generic API PollGenerisches API-Polling

    Poll any HTTPS endpoint for new events on a configured cursor field. Use for vendor APIs without a webhook surface. Configure via the sentinel source-modules page.Pollt einen beliebigen HTTPS-Endpoint anhand eines konfigurierten Cursor-Felds nach neuen Ereignissen. Geeignet für Anbieter-APIs ohne Webhook-Oberfläche. Konfiguration über die Sentinel-Source-Modules-Seite.

    SourceQuelle——
  • Email (SMTP)E-Mail (SMTP)

    Send playbook-outcome and approval-request mail via per-tenant SMTP credentials.Versendet Playbook-Outcome- und Genehmigungsanfrage-Mails über pro Tenant hinterlegte SMTP-Zugangsdaten.

    ActionAktion——
    Adapter coming soonAdapter folgtBASA-14548

For users (customers)Für Nutzer (Kunden)

If you submitted a support request to a Basys-powered help-desk, this is what you see and how it works.Wenn Sie eine Support-Anfrage an einen von Basys betriebenen Helpdesk gesendet haben, sehen Sie hier, was passiert.

Submit a ticket via the customer portalTicket über das Kunden-Portal einreichen

Each tenant has a portal at /portal/<tenant-slug> — e.g. /portal/acme. Enter your email, receive a magic link (TTL 15 minutes, single-use), click it, and you are signed in. A 30-day cookie keeps you signed in across visits. You see only your own tickets and only the public comments — internal triage comments are hidden by a server filter, not by client CSS.Jeder Mandant hat ein Portal unter /portal/<tenant-slug> — z. B. /portal/acme. E-Mail eingeben, Magic-Link erhalten (TTL 15 Minuten, einmalig nutzbar), darauf klicken und Sie sind angemeldet. Ein 30-Tage-Cookie hält Sie über Besuche hinweg angemeldet. Sie sehen nur Ihre eigenen Tickets und nur die öffentlichen Kommentare — interne Triage-Kommentare blendet ein Server-Filter aus, nicht das Client-CSS.

What you can do in the portalWas Sie im Portal tun können

  • Open a new ticket with a title, description, and attachments.Neues Ticket mit Titel, Beschreibung und Anhängen öffnen.
  • Read the operator's public reply and reply back in-thread.Öffentliche Antwort des Operators lesen und im Thread antworten.
  • See your ticket priority and current status.Priorität und aktuellen Status Ihres Tickets sehen.
  • Switch between English and German via the language toggle.Über den Sprachumschalter zwischen Englisch und Deutsch wechseln.

Submit a ticket via emailTicket per E-Mail einreichen

Write to the tenant’s inbound address — typically tickets+<tenant-slug>@basysanalytics.com or a custom inbound domain if your provider has set one up. The email subject becomes the ticket title, the body becomes the first comment, and attachments are preserved. Reply by hitting Reply on the operator’s email — threading uses the In-Reply-To header, so your reply lands as the next public comment on the same ticket. Portal and email are full two-way parity.Schreiben Sie an die Eingangsadresse des Mandanten — typisch tickets+<tenant-slug>@basysanalytics.com oder eine eigene Eingangsdomäne, falls eingerichtet. Der Betreff wird zum Ticketnamen, der Text zum ersten Kommentar, Anhänge bleiben erhalten. Antworten Sie einfach auf die Operator-Mail — das Threading nutzt den In-Reply-To-Header, Ihre Antwort landet als nächster öffentlicher Kommentar am selben Ticket. Portal und E-Mail haben volle Zwei-Wege-Parität.

What happens after submissionWas nach dem Einreichen passiert

  • An automatic acknowledgement confirms we received the request.Eine automatische Eingangsbestätigung quittiert den Eingang.
  • The AI triage tier assigns an initial priority and tier.Die KI-Triage-Stufe vergibt eine erste Priorität und Stufe.
  • An operator or the autonomous AI tier works your ticket — the SLA your tenant has configured sets the expected response and resolution windows by priority.Ein Operator oder die autonome KI-Stufe bearbeitet Ihr Ticket — die vom Mandanten konfigurierte SLA legt die erwarteten Antwort- und Lösungsfenster je Priorität fest.
  • Public replies email back to you (and appear in the portal); internal triage notes stay out of your view.Öffentliche Antworten gehen per E-Mail an Sie zurück (und erscheinen im Portal); interne Triage-Notizen bleiben außerhalb Ihrer Sicht.

Privacy & whitelabelDatenschutz & Whitelabel

  • You see only your own tickets and the tenant's public comments. AI suggestion drafts, cost-model numbers, and other tenants' data are server-filtered out.Sie sehen nur Ihre eigenen Tickets und die öffentlichen Kommentare des Mandanten. KI-Vorschlagsentwürfe, Kostenmodellzahlen und Daten anderer Mandanten werden serverseitig gefiltert.
  • The portal can carry the tenant’s brand colors via the --brand-portal-* CSS variables — you may see their logo and palette instead of the default Basys brand.Das Portal kann die Markenfarben des Mandanten über die --brand-portal-*-CSS-Variablen tragen — Sie sehen ggf. das Logo und die Palette des Mandanten statt der Standard-Basys-Marke.

RoadmapRoadmap

Four time windows: Q2 2026 (now live), Q3 2026, Q4 2026, and a 2027 outlook. The Q3 / Q4 2026 backlog is the firm short-term commitment; 2027 items are directional, not committed dates.Vier Zeitfenster: Q2 2026 (live), Q3 2026, Q4 2026 und ein Ausblick 2027. Q3-/Q4-Backlog ist die feste kurzfristige Zusage; 2027-Punkte sind richtungsweisend, keine festen Termine.

2026 Q2 — shipped this quarter2026 Q2 — in diesem Quartal ausgeliefert

ACP went from a single-page demo to a multi-surface enterprise marketplace this quarter. The tracks now live:ACP wuchs in diesem Quartal vom einseitigen Demo zum mehrflächigen Enterprise-Marketplace. Live ausgeliefert:

  • ACP Tickets v0 + v0.1 — full enterprise ticketing with Inbox→Ticket bridge, three-card ROI display, AI suggested resolution drafts, knowledge base, per-tenant SLA policies + breach countdown + audible notifications, outbound webhooks with HMAC + retry + dead-letter, customer portal with magic-link auth, real bi-directional email via Postmark / SES / SendGrid, full audit trail.ACP Tickets v0 + v0.1 — vollständiges Enterprise-Ticketing mit Inbox→Ticket-Brücke, Drei-Karten-ROI, KI-Vorschlagsentwürfen, Wissensdatenbank, mandantenspezifischen SLA-Policies + Breach-Countdown + akustischen Benachrichtigungen, ausgehenden Webhooks mit HMAC + Retry + Dead-Letter, Kunden-Portal mit Magic-Link-Auth, bidirektionaler E-Mail über Postmark / SES / SendGrid, vollständigem Audit-Trail.
  • ACP Cost Model — per-tenant per-tier human-vs-AI pricing, live 16-combo preview, Reset-to-default, ROI math surfaced on every ticket.ACP-Kostenmodell — Mensch-vs-KI-Preise je Mandant je Stufe, Live-16-Kombi-Vorschau, Zurücksetzen, ROI-Rechnung auf jedem Ticket.
  • ACP API v0 — public API keys with scopes, OpenAPI spec preview, SDK tabs (cURL functional + JS / Python / Go badged Phase 3), bearer middleware composing with sessions, events + metrics as v0 reference paths.ACP API v0 — öffentliche API-Keys mit Scopes, OpenAPI-Vorschau, SDK-Tabs (cURL funktional + JS / Python / Go als Phase 3 markiert), Bearer-Middleware in Komposition mit der Session, Events + Metrics als v0-Referenzpfade.
  • ACP Compliance — tabbed restructure with answer-tracking and per-framework score.ACP Compliance — Tab-Restrukturierung mit Antwort-Tracking und Score je Rahmenwerk.
  • ACP Inbox enterprise redesign — normalized event view, accept/reject flow, auto-rules surface.ACP-Posteingang Enterprise-Redesign — normalisierte Ereignisansicht, Accept/Reject-Flow, Auto-Regel-Fläche.
  • ACP Workflows v0 — YAML automations, triggers, actions.ACP Workflows v0 — YAML-Automatisierungen, Trigger, Aktionen.
  • Whitelabel themes (--brand-acp-*, --brand-portal-*) and bilingual EN/DE across every shipped surface.Whitelabel-Themes (--brand-acp-*, --brand-portal-*) und durchgängig zweisprachige EN-/DE-Oberflächen.
  • Mobile shell polish — workspace switcher visible below md:, gap-3 spacing, viewport down to 390px wide.Mobile-Shell-Politur — Workspace-Switcher unter md: sichtbar, gap-3-Abstand, Viewport bis 390px.

2026 Q3 — July–September2026 Q3 — Juli bis September

What we're building over the next three months.Das bauen wir in den nächsten drei Monaten.

  • Webhook DLQ replay UI, IMAP/POP3 polling as a fallback inbound transport, SLA / cost-model recalc-open-tickets toggle, per-tier minute allocations and overage billing.Webhook-DLQ-Replay-UI, IMAP-/POP3-Polling als Fallback-Eingangstransport, SLA-/Kostenmodell-Recalc-Schalter für offene Tickets, Minutenkontingente je Stufe und Overage-Abrechnung.
  • KB versioning, multi-language KB, publish workflow with draft / review / live states.KB-Versionierung, mehrsprachige KB, Publish-Workflow mit Entwurf / Review / Live.
  • Operator-level saved views, time tracking on tickets, keyboard shortcut palette.Operator-spezifische gespeicherte Ansichten, Zeiterfassung auf Tickets, Tastenkürzel-Palette.
  • Customer portal CNAME custom-domain support.Eigene CNAME-Domain für das Kunden-Portal.
  • Voice channel via Twilio — inbound calls → tickets, AI voice replies with consent disclosure.Sprachkanal über Twilio — eingehende Anrufe → Tickets, KI-Sprachantworten mit Zustimmungshinweis.
  • SMS channel via Twilio — inbound and outbound.SMS-Kanal über Twilio — eingehend und ausgehend.
  • Outbound bearer auth for Workflows calling external APIs with stored credentials.Ausgehende Bearer-Auth für Workflows, die externe APIs mit hinterlegten Anmeldedaten aufrufen.
  • AI fine-tuning per tenant on their historical resolved tickets.KI-Feinabstimmung je Mandant auf den eigenen historischen gelösten Tickets.
  • ACP Mobile app for operators (iOS + Android), starting with read-only triage and escalating to full ticket work.ACP-Mobile-App für Operatoren (iOS + Android), zuerst Read-only-Triage, danach vollständige Ticketarbeit.

2026 Q4 — end of year2026 Q4 — Jahresende

  • Multi-channel expansion: WhatsApp, Telegram, Discord, Slack-as-channel (DMs into ACP).Multi-Channel-Ausbau: WhatsApp, Telegram, Discord, Slack-als-Kanal (DMs nach ACP).
  • Workflows visual drag-drop canvas builder (GA).Visueller Drag-and-drop-Canvas-Builder für Workflows (GA).
  • Multi-region deployment for data residency (EU / US / APAC).Multi-Region-Deployment für Datenresidenz (EU / US / APAC).
  • SOC 2 Type II audit completion.SOC 2 Type II-Audit abgeschlossen.
  • Public marketplace API for plugin ecosystem (third parties build ACP extensions).Öffentliche Marketplace-API für ein Plugin-Ökosystem (Dritte bauen ACP-Erweiterungen).
  • Predictive ticket routing using historical patterns.Prädiktives Ticket-Routing aus historischen Mustern.
  • Sentiment-aware priority bump and churn-risk flags.Sentiment-bewusste Prioritätsanhebung und Churn-Risk-Flags.
  • Auto-generated KB articles from resolved tickets (closing the feedback loop).Automatisch erzeugte KB-Artikel aus gelösten Tickets (Feedback-Loop schließen).
  • Cross-tenant anonymized benchmarks (how does our SLA hit rate compare?).Mandantenübergreifende anonymisierte Benchmarks (wie ist unsere SLA-Trefferquote im Vergleich?).

2027 — full-year outlook2027 — Ganzjahresausblick

Three parallel build-out themes for 2027. Investor-facing summary, not committed delivery dates.Drei parallele Bauthemen für 2027. Investorentauglicher Überblick, keine zugesagten Liefertermine.

BasysAnalytics AcademyBasysAnalytics-Akademie

Launch the certification platform for ACP operators, admins, and integrators. Operator certs cover L1/L2/L3/L4 ticket handling, escalation discipline, AI co-pilot fluency, autonomous tier oversight. Admin certs cover SLA design, cost-model tuning, KB curation, security configuration, and API integration. Integrator certs cover webhook patterns, custom workflow building, embedded-ACP deployment. On-demand self-paced courses plus live instructor cohorts. Revenue model: per-seat training, partner revenue share, public agency listings. Public credential verification — anyone can confirm 'Marcus is a certified ACP Admin L3' via the Basys directory.Start der Zertifizierungsplattform für ACP-Operatoren, -Admins und -Integratoren. Operator-Zertifikate decken L1/L2/L3/L4-Ticketbearbeitung, Eskalationsdisziplin, KI-Co-Piloten-Souveränität und autonome Stufenaufsicht ab. Admin-Zertifikate decken SLA-Design, Kostenmodell-Tuning, KB-Kuratierung, Sicherheitskonfiguration und API-Integration ab. Integrator-Zertifikate decken Webhook-Muster, Custom-Workflow-Bau und Embedded-ACP-Deployments ab. On-Demand-Kurse plus Live-Kohorten. Erlösmodell: per-Seat-Training, Partner-Umsatzbeteiligung, öffentliche Agenturlistungen. Öffentliche Credential-Verifikation — jeder kann „Marcus ist zertifizierter ACP-Admin L3“ im Basys-Verzeichnis verifizieren.

Enterprise build-outEnterprise-Ausbau

SSO/SAML/SCIM for Okta, Azure AD, Google Workspace, OneLogin, JumpCloud. On-premise and private-cloud deployment via Kubernetes operator + Helm chart for regulated customers. Dedicated CSM, custom SLAs with financial penalties for missed targets. White-glove migration tooling from Zendesk, Intercom, Freshdesk, Salesforce Service Cloud, ServiceNow ITSM. Industry verticals with pre-built compliance packs: Healthcare HIPAA, Finance SOX / PCI DSS, Government FedRAMP, EU GDPR-residency, UK ICO. Multi-tenant federation so a parent corporation can view subsidiary ACP fleets in one pane.SSO/SAML/SCIM für Okta, Azure AD, Google Workspace, OneLogin, JumpCloud. On-Premise- und Private-Cloud-Deployment über Kubernetes-Operator + Helm-Chart für regulierte Kunden. Dedizierter CSM, individuelle SLAs mit finanziellen Strafen bei Zielverfehlung. White-glove-Migrationswerkzeuge von Zendesk, Intercom, Freshdesk, Salesforce Service Cloud, ServiceNow ITSM. Branchen-Verticals mit vorgefertigten Compliance-Paketen: Healthcare HIPAA, Finance SOX / PCI DSS, Government FedRAMP, EU-GDPR-Residenz, UK ICO. Mehrmandantenfähige Föderation, damit ein Konzern Tochter-ACPs in einer Ansicht sieht.

High-tech / futuristic features by end of 2027Hightech-/Zukunftsfunktionen bis Ende 2027

Where we expect the platform to be — directional, not promises.Wo wir die Plattform sehen — richtungsweisend, kein Versprechen.

  • Fully autonomous L4 AI closing 80%+ tickets end-to-end without human escalation.Vollständig autonome L4-KI schließt 80%+ Tickets end-to-end ohne menschliche Eskalation.
  • Predictive ticket creation — anticipating user issues before customers complain, based on telemetry signals upstream.Prädiktive Ticket-Erstellung — Nutzerprobleme vor der Beschwerde antizipieren, basierend auf Upstream-Telemetrie.
  • Real-time AI co-pilot that suggests replies token-by-token as the operator types, Copilot-style, with citation hover into the KB.Echtzeit-KI-Co-Pilot, der Antworten Token-für-Token vorschlägt, Copilot-Stil, mit Citation-Hover in die KB.
  • Multi-modal AI — agents view screenshots, screen recordings, and video walkthroughs that customers attach to tickets.Multimodale KI — Agenten sehen Screenshots, Bildschirmaufnahmen und Video-Walkthroughs, die Kunden an Tickets anhängen.
  • Voice cloning for outbound callbacks, consent-gated, disclosed as synthetic, matched to tenant brand voice.Voice-Cloning für ausgehende Rückrufe, einwilligungsbasiert, als synthetisch ausgewiesen, an Marken-Stimme des Mandanten angepasst.
  • Sentiment-aware everything: priority bumps, routing, retention alerts, churn-risk flags surfaced on the ticket header.Sentiment-bewusst überall: Prioritäten anheben, Routing, Retention-Alarme, Churn-Risk-Flags im Ticket-Header.
  • LLM-agnostic backend with per-workflow switching between Claude, GPT, Gemini, Llama, and open-weights — cost arbitrage handled automatically.LLM-agnostisches Backend mit Per-Workflow-Switching zwischen Claude, GPT, Gemini, Llama und Open-Weights — Kosten-Arbitrage automatisch.
  • Quantum-safe encryption migration: post-quantum crypto on portal sessions and API bearer tokens.Quantensichere Verschlüsselungsmigration: Post-Quantum-Krypto auf Portal-Sessions und API-Bearer-Tokens.
  • Embedded ACP web component — <basys-acp tenant="…" /> drops a full helpdesk widget into any web app in one line.Eingebettetes ACP-Web-Component — <basys-acp tenant="…" /> bringt ein vollständiges Helpdesk-Widget in jede Web-App in einer Zeile.
  • Agentic multi-tenant workflows: consented agents acting across tenant boundaries for B2B vendor escalations.Agentische Multi-Mandanten-Workflows: einwilligungsbasierte Agenten handeln über Mandantengrenzen hinweg für B2B-Lieferantenes­kalationen.
  • Self-healing infrastructure — ACP detects degraded provider health (Postmark, OpenAI, etc.) and reroutes automatically.

Important — 2027 is directionalWichtig — 2027 ist richtungsweisend

2027 items above are not committed delivery dates. The Q3 / Q4 2026 backlog is the firm short-term commitment.Die 2027-Punkte sind keine zugesagten Liefertermine. Q3-/Q4-2026-Backlog ist die feste kurzfristige Zusage.

GlossaryGlossar

Every ACP-specific term used in this Help page, defined once.Jeder ACP-spezifische Begriff in dieser Hilfe, einmal definiert.

ACPACP
Agent Control Panel — the operator workspace at /play/acp/* where humans + AI tiers work tickets.Agent Control Panel — der Operator-Arbeitsplatz unter /play/acp/*, an dem Mensch- und KI-Stufen Tickets bearbeiten.
Tier (L1 / L2 / L3 / L4)Stufe (L1 / L2 / L3 / L4)
Workforce stratification. L1–L3 are human; L4 is the autonomous AI tier. Tier is set per ticket and drives both cost-model resolution and assignee-picker filtering.Stufung der Belegschaft. L1–L3 sind Menschen; L4 ist die autonome KI-Stufe. Stufe wird je Ticket gesetzt und treibt sowohl die Kostenmodell-Auflösung als auch die Bearbeiter-Filterung.
Cost modelKostenmodell
Per-tenant pricing table mapping each (tier × side) combo to a cost. Stored on AcpTenantTicketSettings.costModelJson. Snapshot is frozen onto each new ticket at creation.Mandantenspezifische Preistabelle, die jede (Stufe × Seite)-Kombination auf einen Kostensatz mappt. Gespeichert in AcpTenantTicketSettings.costModelJson. Snapshot wird bei jedem neuen Ticket eingefroren.
ROI cards (three-card header)ROI-Karten (Drei-Karten-Header)
If human / If AI / Saved $. Read directly from the frozen cost-model snapshot on the ticket.Mit Mensch / Mit KI / Gespart $. Direkt aus dem eingefrorenen Kostenmodell-Snapshot.
SLA policySLA-Richtlinie
Per-tenant response and resolution minutes per priority, plus business-hours JSON per day with a timezone.Antwort- und Lösungsminuten je Priorität pro Mandant, plus JSON-Geschäftszeiten je Wochentag mit Zeitzone.
Breach (SLA breach)Breach (SLA-Verletzung)
The ticket has exceeded its response or resolution window. Shows as an overdue pill on the operator list view and detail header.Das Ticket hat sein Antwort- oder Lösungsfenster überschritten. Erscheint als Überfällig-Pille in Liste und Header.
Autonomous tier (L4)Autonome Stufe (L4)
The AI tier configured to close well-scoped tickets end-to-end without human escalation. Every action logged and reversible.Die KI-Stufe, die eng abgegrenzte Tickets ohne menschliche Eskalation schließt. Jede Aktion protokolliert und reversibel.
Normalized eventNormalisiertes Ereignis
An inbound signal (email, webhook, API) mapped to a single canonical shape inside the Inbox.Ein eingehendes Signal (E-Mail, Webhook, API), das auf eine einheitliche kanonische Form im Posteingang abgebildet ist.
Scope (API key scope)Scope (API-Key-Scope)
Capability tag on an API key — events:write, tickets:read, tickets:write, metrics:read. The bearer middleware checks scope per route.Capability-Tag auf einem API-Key — events:write, tickets:read, tickets:write, metrics:read. Die Bearer-Middleware prüft den Scope je Route.
Bearer (API authentication)Bearer (API-Authentifizierung)
HTTP header Authorization: Bearer <api-key>. Composes with the session middleware — session takes precedence when both are present.HTTP-Header Authorization: Bearer <api-key>. Komponiert mit der Session-Middleware — Session hat Vorrang, wenn beide vorliegen.
Portal magic-linkPortal-Magic-Link
Single-use email link the customer portal sends to verify a requester's email. TTL 15min; once consumed, a 30-day session cookie keeps them signed in.Einmaliger E-Mail-Link, den das Kunden-Portal versendet, um die Adresse des Anfragenden zu verifizieren. TTL 15min; nach Konsum hält ein 30-Tage-Session-Cookie die Anmeldung.
Dead-letter (DLQ)Dead-Letter (DLQ)
Terminal state for an outbound webhook delivery after all retries (1m → 5m → 30m → 2h → 12h) failed. Replay UI ships in Q3 2026.Endzustand für eine ausgehende Webhook-Zustellung nach allen Wiederholungen (1m → 5m → 30m → 2h → 12h). Replay-Oberfläche kommt Q3 2026.
WhitelabelWhitelabel
Per-tenant brand surface — CSS variables --brand-acp-* (operator) and --brand-portal-* (customer) carry logo, primary, accent, background, foreground.Mandantenspezifische Markenfläche — CSS-Variablen --brand-acp-* (Operator) und --brand-portal-* (Kunde) tragen Logo, Primär, Akzent, Hintergrund, Vordergrund.
Internal vs public commentInterner vs öffentlicher Kommentar
Internal comments stay on the operator side; public comments email back to the requester and appear in the portal. The portal filter is server-side, not client CSS.Interne Kommentare bleiben operatorseitig; öffentliche Kommentare gehen per E-Mail an den Anfragenden zurück und erscheinen im Portal. Der Portal-Filter ist serverseitig, kein Client-CSS.
HMAC-SHA256 over canonical JSONHMAC-SHA256 über kanonisches JSON
Signature scheme used on outbound webhooks. Receivers verify against the per-endpoint signing secret using a timing-safe comparison.Signaturschema für ausgehende Webhooks. Empfänger verifizieren mit dem Endpunkt-Signing-Secret in einem zeitkonstanten Vergleich.
ACP PortalACP-Portal
Customer-facing surface at /portal/<tenant-slug>. Magic-link auth, public comments only, server-filtered by (email, tenant).Kundenseitige Fläche unter /portal/<tenant-slug>. Magic-Link-Auth, nur öffentliche Kommentare, serverseitig nach (E-Mail, Mandant) gefiltert.
ACP AppsACP-Apps
Operator + admin web app at /play/acp/*. Session-based NextAuth.js auth, role-based (ADMIN / OPERATOR_L1-L4 / USER).Operator- und Admin-Web-App unter /play/acp/*. Session-basierte NextAuth.js-Auth, rollenbasiert (ADMIN / OPERATOR_L1-L4 / USER).
ACP AgentACP-Agent
The L4 autonomous AI tier identity. Drafts suggested resolutions for every ticket and, in autonomous mode, closes well-scoped tickets end-to-end.Die L4-autonome KI-Stufen-Identität. Entwirft Lösungsvorschläge auf jedem Ticket und schließt im autonomen Modus eng abgegrenzte Tickets durch.
ACP Core APIACP-Core-API
Programmatic interface at /api/acp/*. Bearer auth via API keys, four scopes, OpenAPI spec preview, SDK auto-gen on the Q3 2026 roadmap.Programmatische Schnittstelle unter /api/acp/*. Bearer-Auth über API-Schlüssel, vier Scopes, OpenAPI-Vorschau, SDK-Auto-Gen auf der Q3-2026-Roadmap.
Audit-consistency invariantAudit-Konsistenz-Invariante
Closed tickets MUST keep their original frozen state (cost-model snapshot, SLA policy ref) — the historical ROI math of a resolved ticket must reflect what was true on the day it was opened.Geschlossene Tickets MÜSSEN ihren ursprünglichen eingefrorenen Zustand (Kostenmodell-Snapshot, SLA-Policy-Ref) behalten — die historische ROI-Rechnung eines gelösten Tickets muss den Tag der Eröffnung widerspiegeln.
Bridge (inbox → ticket)Brücke (Inbox → Ticket)
The accept action on an Inbox event that creates a new AcpTicket from the normalized event payload and freezes the cost-model snapshot onto the ticket at that moment.Die Accept-Aktion auf einem Inbox-Ereignis, die ein neues AcpTicket aus der normalisierten Event-Payload erzeugt und dabei den Kostenmodell-Snapshot einfriert.
Cost snapshotKosten-Snapshot
The immutable per-ticket copy of the resolved 16-cell cost-model grid stored as ticket.costSnapshot at creation. The three-card ROI header reads from this, not from current settings.Die pro-Ticket unveränderliche Kopie des aufgelösten 16-Zell-Kostenrasters, bei Erstellung als ticket.costSnapshot gespeichert. Der Drei-Karten-ROI-Header liest hieraus, nicht aus den aktuellen Einstellungen.
Frozen costEingefrorene Kosten
Same as cost snapshot — the ticket-local copy that doesn't change when the admin edits the tenant cost model afterwards.Synonym zum Kosten-Snapshot — die Ticket-lokale Kopie, die sich nicht ändert, wenn der Admin das Kostenmodell später bearbeitet.
Business-hours-aware SLAGeschäftszeit-bewusste SLA
Breach countdown that pauses outside the tenant's defined business-hours JSON window. A ticket opened Friday 16:30 does not breach at 18:30 if the tenant is closed weekends.Breach-Countdown, der außerhalb des Mandanten-Geschäftszeit-Fensters pausiert. Ein Ticket Freitag 16:30 läuft nicht 18:30 auf, wenn am Wochenende geschlossen.
Idempotency keyIdempotenz-Schlüssel
Composite key (ticketId, eventId) on outbound webhook deliveries (receivers must de-dupe), or the Idempotency-Key HTTP header on Core API writes (ACP de-dupes within 24h).Zusammengesetzter Schlüssel (ticketId, eventId) bei Outbound-Webhooks (Empfänger müssen deduplizieren) oder der Idempotency-Key-HTTP-Header bei Core-API-Writes (ACP dedupliziert binnen 24h).
Canonical JSONKanonisches JSON
Deterministic JSON serialization — keys sorted, no extra whitespace, escaped consistently — used as the input to the HMAC-SHA256 signature on outbound webhooks. Without canonicalization, two semantically equal payloads would sign differently.Deterministische JSON-Serialisierung — Schlüssel sortiert, kein extra Whitespace, konsistent escapet — als Eingabe für die HMAC-SHA256-Signatur ausgehender Webhooks. Ohne Kanonisierung würden zwei semantisch gleiche Payloads unterschiedlich signiert.
PORTAL_JWT_SECRETPORTAL_JWT_SECRET
Independent JWT signing secret used by the customer portal so an operator-session crypto leak can't be used to forge portal sessions. Separation of concerns at the secret level.Unabhängiges JWT-Signing-Secret des Kunden-Portals, damit ein Operator-Session-Krypto-Leak keine Portal-Sessions fälschen kann. Trennung der Belange auf Secret-Ebene.
RBACRBAC
Role-Based Access Control. ACP composes three RBAC layers: board (ADMIN / TENANT_OWNER / USER), tenant membership (ADMIN / OPERATOR_L1-L4), and API-key scopes.Role-Based Access Control. ACP komponiert drei RBAC-Schichten: Board (ADMIN / TENANT_OWNER / USER), Mandanten-Mitgliedschaft (ADMIN / OPERATOR_L1-L4) und API-Key-Scopes.
requireSessionOrApiKeyrequireSessionOrApiKey
Composable auth helper called by every server action and route handler: requireSessionOrApiKey({scopes, sessionRoleAtLeast}). Accepts either a signed session or a bearer key covering the requested scopes; rejects with a typed error otherwise.Komponierbarer Auth-Helper, den jede Server-Action und jeder Route-Handler aufruft: requireSessionOrApiKey({scopes, sessionRoleAtLeast}). Akzeptiert eine signierte Session oder einen Bearer-Key mit passenden Scopes; sonst typisierter Fehler.
Role-gateRollen-Gate
Content-shaping filter that hides audience-tagged sections from viewers below the matching role tier. Distinct from an auth wall — the page itself stays public; only the body content is shaped.Inhalts-Formender Filter, der zielgruppentaggierte Abschnitte vor Betrachtenden unterhalb der passenden Stufe verbirgt. Anders als eine Auth-Mauer — die Seite bleibt öffentlich; nur der Inhalt wird geformt.
Viewer roleBetrachter-Rolle
The role used by the role-gate to filter the help page's audience sections. Derived from auth(): no session → user; ADMIN → admin; anyone else → operator.Die vom Rollen-Gate zur Filterung verwendete Rolle. Aus auth() abgeleitet: keine Session → user; ADMIN → admin; sonst → operator.
Audience filterZielgruppen-Filter
Helper filterSectionsForRole(sections, role) that removes audience-tagged sections the viewer’s role does not cover, while keeping reference content (audience-omitted) visible to every viewer.Helper filterSectionsForRole(sections, role) entfernt Zielgruppen-Sektionen, die die Rolle nicht abdeckt, lässt aber Referenzinhalt (ohne audience) für jeden Betrachter sichtbar.
Tenant slugMandanten-Slug
Short, stable, URL-safe identifier per tenant — the shape of /portal/<slug>, every webhook payload, every audit row.Kurze, stabile, URL-taugliche Mandanten-Kennung — die Form von /portal/<slug>, jeder Webhook-Payload, jeder Audit-Zeile.
CNAME custom domainCNAME-eigene Domain
Portal hosted under the tenant's own domain (e.g. help.acme.com) via a CNAME record pointing at marketplace.basysanalytics.com. v0 deferred; lands Q3 2026.Portal unter eigener Mandanten-Domain (z.&nbsp;B. help.acme.com) per CNAME-Record auf marketplace.basysanalytics.com. v0 verschoben; kommt Q3 2026.
OpenAPIOpenAPI
The machine-readable spec describing every Core API endpoint, schema, and error code. Surfaced on /play/acp/api; SDK auto-gen reads this in Q3 2026.Die maschinenlesbare Spezifikation jeder Core-API-Route, des Schemas und der Fehlercodes. Auf /play/acp/api sichtbar; SDK-Auto-Gen liest sie Q3 2026.
SDKSDK
Per-language client library (JS / Python / Go) auto-generated from the OpenAPI spec. cURL is the only functional client today; SDK tabs ship Q3 2026 (Phase 3).Pro-Sprache-Client-Bibliothek (JS / Python / Go), aus der OpenAPI-Spec auto-generiert. cURL ist heute der einzige funktionale Client; SDK-Tabs Q3 2026 (Phase 3).
RequestorAnfragender
The customer email that opened or holds a ticket. The portal store layer pre-filters all queries by (requestor email, tenant) so cross-customer reads are structurally impossible.Die Kunden-E-Mail, die ein Ticket öffnet oder besitzt. Die Portal-Store-Schicht filtert jede Abfrage vorab nach (Anfrager-E-Mail, Mandant) — kundenübergreifende Lesezugriffe sind strukturell unmöglich.
Suggested resolution draftLösungs-Vorschlagsentwurf
The L4 AI's per-ticket draft, built from title + description + last-five comments + top-three KB by similarity. Surfaced as a card on the ticket detail page; draft-only in v0, never autoposted.Der pro-Ticket-Entwurf der L4-KI, gebaut aus Titel + Beschreibung + letzten fünf Kommentaren + den drei besten KB-Artikeln nach Ähnlichkeit. Als Karte im Ticket-Detail; in v0 nur Entwurf, nie automatisch gepostet.
Tag-similarityTag-Ähnlichkeit
The scoring function the AI suggestion engine uses to pick the top-three KB articles for a ticket — overlap between ticket tags / title tokens and KB article tags / title tokens.Die Scoring-Funktion, mit der die KI-Vorschlags-Engine die drei besten KB-Artikel für ein Ticket wählt — Überlappung zwischen Ticket-Tags / Titel-Tokens und KB-Artikel-Tags / Titel-Tokens.
Knowledge base articleWissensdatenbank-Artikel
A single CRUD row in /play/acp/kb with title, body, tags, audience (public / internal), language (EN/DE). Feeds the AI suggestion engine and (for public articles) the customer portal.Eine CRUD-Zeile in /play/acp/kb mit Titel, Inhalt, Tags, Sichtbarkeit (öffentlich / intern), Sprache (EN/DE). Speist die KI-Vorschlags-Engine und (bei öffentlich) das Kunden-Portal.
Brand CSS variableBrand-CSS-Variable
Per-tenant tokens emitted by the shell on every render. Operator side uses --brand-acp-*; portal uses --brand-portal-*. Independent per surface.Per-Mandant-Tokens, die die Shell bei jedem Render ausgibt. Operator-Seite nutzt --brand-acp-*; Portal nutzt --brand-portal-*. Pro Fläche unabhängig.
Server filterServer-Filter
Visibility constraint enforced at the store / query layer, not at the UI. Means a crafted URL or network response cannot return data the viewer is not authorized to see. Distinct from CSS-based hiding.Sichtbarkeitsbedingung auf Store-/Query-Ebene, nicht im UI. Eine konstruierte URL oder Netzwerkantwort kann keine Daten zurückgeben, für die der Betrachter nicht berechtigt ist. Anders als CSS-Verstecken.
  • EU Compliance HUBEU Compliance HUB

    hub

    ## 🛡️ Ist deine Organisation compliance-ready? **Compliance Hub** ist ein professioneller Multi-Framework-Scanner der dir in wenigen Minuten zeigt wo deine Organisation steht – mit konkreten Handlungsempfehlungen und einer priorisierten Roadmap. ## 🔍 Unterstützte Frameworks | Framework | Beschreibung | |-----------|-------------| | 🇪🇺 **NIS2** | EU-Richtlinie für Netzwerk- & Informationssicherheit | | 🔐 **ISO 27001** | Internationaler Standard für Informationssicherheit | | 🏛️ **BSI Grundschutz** | Deutscher IT-Sicherheitsstandard | | 📋 **DSGVO** | Datenschutz-Grundverordnung der EU | | 🎯 **CIS Controls** | Praxisnahe Cybersecurity-Maßnahmen | ## ⚡ Kernfunktionen ### 📊 Compliance-Scanner Beantworte strukturierte Fragen pro Domain – der Hub berechnet sofort deinen Reifegrad als Prozentwert und zeigt Schwachstellen in Echtzeit. ### 🗺️ Automatische Roadmap Basierend auf deinen Antworten erstellt der Hub eine priorisierte Maßnahmen-Roadmap in drei Zeithorizonten: **0–30**, **30–60** und **60–90 Tage**. ### ⚠️ Top-Risiken & Maßnahmen Identifiziere automatisch deine kritischsten Lücken und erhalte konkrete Handlungsempfehlungen mit Aufwand- und Impact-Bewertung. ### 🌐 Zweisprachig Alle Fragen, Ergebnisse und Empfehlungen – vollständig auf **Deutsch und Englisch** verfügbar. ## 👥 Für wen? Perfekt für **IT-Verantwortliche**, **CISOs**, **Compliance-Manager** und **Geschäftsführer** die schnell den Compliance-Status ihrer Organisation erfassen möchten – ohne teure Beratung. > *Kein Account nötig. Ergebnisse direkt im Browser. Sofort einsatzbereit.*## 🛡️ Ist deine Organisation compliance-ready? **Compliance Hub** ist ein professioneller Multi-Framework-Scanner der dir in wenigen Minuten zeigt wo deine Organisation steht – mit konkreten Handlungsempfehlungen und einer priorisierten Roadmap. ## 🔍 Unterstützte Frameworks | Framework | Beschreibung | |-----------|-------------| | 🇪🇺 **NIS2** | EU-Richtlinie für Netzwerk- & Informationssicherheit | | 🔐 **ISO 27001** | Internationaler Standard für Informationssicherheit | | 🏛️ **BSI Grundschutz** | Deutscher IT-Sicherheitsstandard | | 📋 **DSGVO** | Datenschutz-Grundverordnung der EU | | 🎯 **CIS Controls** | Praxisnahe Cybersecurity-Maßnahmen | ## ⚡ Kernfunktionen ### 📊 Compliance-Scanner Beantworte strukturierte Fragen pro Domain – der Hub berechnet sofort deinen Reifegrad als Prozentwert und zeigt Schwachstellen in Echtzeit. ### 🗺️ Automatische Roadmap Basierend auf deinen Antworten erstellt der Hub eine priorisierte Maßnahmen-Roadmap in drei Zeithorizonten: **0–30**, **30–60** und **60–90 Tage**. ### ⚠️ Top-Risiken & Maßnahmen Identifiziere automatisch deine kritischsten Lücken und erhalte konkrete Handlungsempfehlungen mit Aufwand- und Impact-Bewertung. ### 🌐 Zweisprachig Alle Fragen, Ergebnisse und Empfehlungen – vollständig auf **Deutsch und Englisch** verfügbar. ## 👥 Für wen? Perfekt für **IT-Verantwortliche**, **CISOs**, **Compliance-Manager** und **Geschäftsführer** die schnell den Compliance-Status ihrer Organisation erfassen möchten – ohne teure Beratung. > *Kein Account nötig. Ergebnisse direkt im Browser. Sofort einsatzbereit.*

/play/acp/tickets
/[id]
/cost-model
/sla
/webhooks
/play/acp/kb
/play/acp/api
/play/acp/workflows
/play/acp/compliance
/play/acp/settings/branding
/play/acp/help
Unterflächen: /play/acp (Dashboard), /play/acp/inbox, /play/acp/tickets (+ /[id], /cost-model, /sla, /webhooks), /play/acp/kb, /play/acp/api, /play/acp/workflows, /play/acp/compliance, /play/acp/settings/branding, /play/acp/help. Der Menü-Referenzabschnitt unten dokumentiert jeden Eintrag.

Use this surface when…Diese Fläche nutzen wenn…

…you ARE an operator or admin doing tenant work — triaging inbox, working tickets, tuning cost / SLA / KB / brand / API config.…Sie als Operator oder Admin Mandantenarbeit leisten — Inbox-Triage, Ticketarbeit, Kosten- / SLA- / KB- / Brand- / API-Konfiguration.
Auth: Scope tickets:suggest:Ln auf der Agenten-Identität. Prompt-Kontext: Titel + Beschreibung + letzte fünf Kommentare + drei beste KB-Artikel nach Tag-/ Titel-Ähnlichkeit. Was der Agent in v0 NICHT kann: außerhalb des autonomen Modus posten, über sein Eignungsfenster hinaus eskalieren, auf einem Nur-Intern- Ticket posten oder Rate-Limits umgehen. Jede L4-Aktion landet im Audit-Trail mit event ai.draft / ai.post / ai.escalate-back und ist aus der Operator- Oberfläche reversibel. Per-Mandanten-Feinabstimmung auf historisch gelöste Tickets steht in der Q3-2026-Roadmap.

Use this surface when…Diese Fläche nutzen wenn…

…you want the AI to OWN the work, not just advise. Suggested-resolution drafts run for everyone; enable autonomous mode when you trust the eligibility-window scope to be tight enough.…die KI die Arbeit besitzen soll, nicht nur beraten. Vorschlagsentwürfe laufen für alle; den autonomen Modus erst aktivieren, wenn das Eignungsfenster eng genug sitzt.

Tooling: OpenAPI spec preview on the API page; SDK tabs with cURL functional today and JS / Python / Go badged Phase 3 — Q3 2026 (auto-generated from the OpenAPI spec on every release). Errors are typed and surfaced as JSON with a stable error code; rate limits are per-key, returned via X-RateLimit-* headers. Retries are idempotent by key — pass an Idempotency-Key header on writes and ACP de-dupes within a 24h window.Tooling: OpenAPI-Vorschau auf der API-Seite; SDK-Tabs mit cURL heute funktional und JS / Python / Go als Phase 3 — Q3 2026 markiert (auto-generiert aus der OpenAPI-Spec bei jedem Release). Fehler sind typisiert und werden als JSON mit stabilem Fehlercode ausgegeben; Rate-Limits pro Schlüssel, zurück über X-RateLimit-*-Header. Wiederholungen sind idempotent per Key — Idempotency-Key-Header bei Writes setzen, ACP dedupliziert binnen 24h.

Use this surface when…Diese Fläche nutzen wenn…

…you need to integrate ACP with another system — CI pipeline opens tickets on red builds, a monitoring rule files them on alerts, a CRM pushes events. Or when a workflow needs metrics for dashboards outside ACP.…ACP mit einem anderen System integriert werden soll — CI-Pipeline öffnet Tickets bei roten Builds, Monitoring-Regel reicht sie bei Alarmen ein, CRM pusht Events. Oder wenn ein Workflow Metriken außerhalb ACP braucht.
Selbstheilende Infrastruktur — ACP erkennt schlechte Anbieter-Gesundheit (Postmark, OpenAI usw.) und routet automatisch um.
  • Causal analytics — 'Why' clustering across tickets surfaces root causes rather than frequency-only metrics.Kausalanalytik — „Warum“-Clustering über Tickets bringt Grundursachen zum Vorschein statt reiner Häufigkeiten.
  • AI agent marketplace where third-party specialists (legal, finance, HR) plug into ACP per tenant.KI-Agenten-Marktplatz, in dem Drittspezialisten (Recht, Finanzen, HR) je Mandant einsteckbar sind.
  • Conversation continuity across channels — customer starts in chat, switches to email, finishes on voice — one unified thread.Kanalübergreifende Konversationskontinuität — Kunde startet im Chat, wechselt zur E-Mail, schließt am Telefon ab — ein einheitlicher Thread.
  • AR / VR support sessions for physical products where the operator joins the customer's AR view.AR-/VR-Support-Sessions für physische Produkte; der Operator klinkt sich in die AR-Sicht des Kunden ein.
  • Generative onboarding — a new tenant signs up, the platform ingests their site and docs, then auto-builds an initial KB, SLA proposal, and starter workflows.Generatives Onboarding — neuer Mandant meldet sich an, die Plattform liest Webseite und Dokumente ein und baut anschließend eine initiale KB, einen SLA-Vorschlag und Starter-Workflows automatisch auf.
    • chat.slack.channel-post
    • incident.pagerduty.acknowledge
    • incident.pagerduty.create
    • incident.pagerduty.escalate

    Required connectorsErforderliche Konnektoren

    • generic-http
    • generic-webhook
    • microsoft-graph
    • pagerduty
    • slack
    • zendesk
  • SentinelSentinel

    sentinel

    Alert dashboardAlert-Dashboard

    Sentinel watches your monitoring stack (Uptime Kuma in Phase 0; NinjaOne and others to follow) and turns alerts into ranked, actionable approvals. Pilot release — listing visibility controlled by BASA admin.Sentinel überwacht Ihren Monitoring-Stack (Uptime Kuma in Phase 0; NinjaOne und weitere folgen) und macht aus Alerts priorisierte, handlungsreife Genehmigungen. Pilotversion – die Sichtbarkeit des Listings steuert der BASA-Admin.

    • monitor
    • approve
    • dispatch
    • tickets:resolve:L4
    • incident.correlate
    • ticket.create-msp
    • ticket.create-helpdesk
    • alert.triage

    Required connectorsErforderliche Konnektoren

    • backup-status
    • connectwise-manage
    • crowdstrike-falcon
    • datadog
    • generic-http
    • generic-webhook
    • jira-servicedesk
    • microsoft-graph
    • ms-teams
    • ninjaone
    • pagerduty
    • slack
    • zendesk
  • BSYA-PatchBSYA-Patch

    bsya-patch

    One-shot patch agent for guided OS and endpoint patching. Scans, requests approval, and dispatches the patch run when you accept.One-Shot-Patch-Agent für geführtes Betriebssystem- und Endpoint-Patching. Scannt, holt Genehmigungen ein und startet den Patch-Lauf, sobald Sie zustimmen.

    • device.ninjaone.restart-service

    Required connectorsErforderliche Konnektoren

    • generic-http
    • generic-webhook
    • ninjaone
  • ACP Help Desk TriagerACP Help Desk Triager

    helpdesk-triager

    Task dashboardTask-Dashboard

    Markdown. What the agent does, what tickets it touches, what value the user gets.Markdown. What the agent does, what tickets it touches, what value the user gets.

    • triage
    • classify
    • summarize

    Required connectorsErforderliche Konnektoren

    • freshdesk
    • generic-http
    • generic-webhook
    • jira-servicedesk
    • zendesk
  • Microsoft 365 Intune WatchtowerMicrosoft 365 Intune Watchtower

    microsoft-365-intune-watchtower

    Alert dashboardAlert-Dashboard

    Watchtower ingests Microsoft 365 Intune device-compliance state and non-compliant device alerts via a Microsoft Graph change-notification subscription, correlates them on the ACP fabric, and routes outcomes to your incident action connectors (Slack, PagerDuty, Jira Service Desk) on the standard correlation engine. Connect once with an Entra app registration; Watchtower mints the Graph subscription on save and keeps it renewed.Watchtower erfasst über ein Microsoft-Graph-Änderungsbenachrichtigungs-Abonnement Intune-Gerätekonformitätsstati und Alerts für nicht konforme Geräte aus Microsoft 365, korreliert sie im ACP-Fabric und leitet die Ergebnisse über die Standard-Korrelations-Engine an Ihre Incident-Action-Connectoren (Slack, PagerDuty, Jira Service Desk) weiter. Einmalige Einrichtung mit einer Entra-App-Registrierung; Watchtower erstellt das Graph-Abonnement beim Speichern und hält es automatisch verlängert.

    • triage
    • summarize
    • alert

    Required connectorsErforderliche Konnektoren

    • microsoft-graph
  • Teams Incident NotifierTeams Incident Notifier

    teams-incident-notifier

    Alert dashboardAlert-Dashboard

    Posts incident-resolved and playbook-outcome cards into a Microsoft Teams channel via an Entra app registration. Pairs with the ms-teams outbound connector.Postet Incident-Resolved- und Playbook-Outcome-Karten über eine Entra-App-Registrierung in einen Microsoft-Teams-Kanal. Wird mit dem ausgehenden ms-teams-Connector kombiniert.

    • chat.teams.channel-post

    Required connectorsErforderliche Konnektoren

    • ms-teams
  • CrowdStrike Falcon DetectCrowdStrike Falcon Detect

    falcon-detection-watch

    Alert dashboardAlert-Dashboard

    Streams CrowdStrike Falcon endpoint-detection-and-response detections into the ACP fabric. Each new detection arrives as a normalized event ready for correlation, approval, and dispatch routing.Streamt CrowdStrike-Falcon-Detections (Endpoint Detection and Response) in das ACP-Fabric. Jede neue Detection trifft als normalisiertes Ereignis ein und steht für Korrelation, Genehmigung und Dispatch-Routing bereit.

    • edr_stream
    • detection_normalize

    Required connectorsErforderliche Konnektoren

    • crowdstrike-falcon
  • RevOps CopilotRevOps Copilot

    revops-copilot

    Task dashboardTask-Dashboard

    Routes inbound leads, enriches deals, and keeps your CRM + sales-ops stack in sync. Watches HubSpot, Salesforce, and Stripe for new signals and acts in Slack + Jira.Routes inbound leads, enriches deals, and keeps your CRM + sales-ops stack in sync. Watches HubSpot, Salesforce, and Stripe for new signals and acts in Slack + Jira.

    • lead.enrich
    • lead.route
    • deal.summarize
    • deal.stage-suggest
    • crm.sync
    • quote.draft
    • outreach.draft
    • pipeline.report

    Required connectorsErforderliche Konnektoren

    • hubspot
    • jira-cloud
    • slack
    • stripe
  • Finance AssistantFinance Assistant

    finance-assistant

    Task dashboardTask-Dashboard

    Reconciles payments across Stripe, QuickBooks Online, and Sage. Flags AR exceptions, drafts invoices, and posts daily cashflow summaries to your team.Reconciles payments across Stripe, QuickBooks Online, and Sage. Flags AR exceptions, drafts invoices, and posts daily cashflow summaries to your team.

    • payment.reconcile
    • invoice.draft
    • invoice.send
    • ar.exception-detect
    • cashflow.report
    • refund.process
    • tax.categorize
    • vendor.summarize

    Required connectorsErforderliche Konnektoren

    • jira-cloud
    • quickbooks-online
    • sage
    • slack
    • stripe
  • DevOps EngineerDevOps Engineer

    devops-engineer

    Alert dashboardAlert-Dashboard

    Watches GitHub repos, AWS CloudTrail + GuardDuty, and Cloudflare for code, infra, and security events. Triggers GitHub Actions, escalates to PagerDuty, and posts incident updates to Slack/Teams.Watches GitHub repos, AWS CloudTrail + GuardDuty, and Cloudflare for code, infra, and security events. Triggers GitHub Actions, escalates to PagerDuty, and posts incident updates to Slack/Teams.

    • pr.triage
    • pr.review-summary
    • deploy.trigger
    • ci.investigate
    • incident.escalate
    • cloudtrail.audit
    • guardduty.triage
    • dns.audit
    • waf.rule-suggest

    Required connectorsErforderliche Konnektoren

    • github
    • ms-teams
    • pagerduty
    • slack
  • Sage Finance Co-PilotSage Finance Co-Pilot

    sage-finance-copilot

    Task dashboardTask-Dashboard

    An always-on accounting co-pilot that lives inside Sage Business Cloud Accounting. Connect once with your Sage OAuth client; the agent then keeps your AR/AP queue triaged, posts approved sales invoices via the wired `accounting.sage.invoice-create` action verb, and surfaces the daily close-the-books checklist as routed tasks on the ACP TASK dashboard. Every action target carries a per-tenant idempotency key, business-region (`dc`) allowlist enforcement, and a refresh-per-dispatch OAuth token mint — so the blast radius of any one dispatch is bounded to one Sage business id.An always-on accounting co-pilot that lives inside Sage Business Cloud Accounting. Connect once with your Sage OAuth client; the agent then keeps your AR/AP queue triaged, posts approved sales invoices via the wired `accounting.sage.invoice-create` action verb, and surfaces the daily close-the-books checklist as routed tasks on the ACP TASK dashboard. Every action target carries a per-tenant idempotency key, business-region (`dc`) allowlist enforcement, and a refresh-per-dispatch OAuth token mint — so the blast radius of any one dispatch is bounded to one Sage business id.

    • accounting.sage.invoice-create

    Required connectorsErforderliche Konnektoren

    • sage
  • Google Workspace Audit WatchtowerGoogle Workspace Audit Watchtower

    google-workspace-audit-watchtower

    Alert dashboardAlert-Dashboard

    # Google Workspace Audit Watchtower Watchtower keeps the Google Workspace Admin SDK audit feed (login + admin activity) and Drive v3 change-log under continuous correlation on the ACP fabric. Connect once with a service-account JWT-bearer credential with domain-wide delegation (DWD); the agent then surfaces login anomalies, external-share drift, and admin activity alerts on the ACP ALERT dashboard. v1 is READ-ONLY by construction — the catalog scope allowlist is closed to Admin SDK reports/directory + Drive readonly. Gmail Send and Drive write are intentionally deferred to a dedicated threat-model + follow-up child issue and are NOT in v1 scope. Action verbs (gmail-send, drive-share, calendar-create) are unwired in `action-verb-registry.ts` today and would no-op at dispatch time if added to capabilities.# Google Workspace Audit Watchtower Watchtower keeps the Google Workspace Admin SDK audit feed (login + admin activity) and Drive v3 change-log under continuous correlation on the ACP fabric. Connect once with a service-account JWT-bearer credential with domain-wide delegation (DWD); the agent then surfaces login anomalies, external-share drift, and admin activity alerts on the ACP ALERT dashboard. v1 is READ-ONLY by construction — the catalog scope allowlist is closed to Admin SDK reports/directory + Drive readonly. Gmail Send and Drive write are intentionally deferred to a dedicated threat-model + follow-up child issue and are NOT in v1 scope. Action verbs (gmail-send, drive-share, calendar-create) are unwired in `action-verb-registry.ts` today and would no-op at dispatch time if added to capabilities.

    • drive.gws.file-share
    • email.gmail.send

    Required connectorsErforderliche Konnektoren

    • google-workspace
  • AWS Cloud-Ops SentinelAWS Cloud-Ops Sentinel

    aws-cloud-ops-sentinel

    Alert dashboardAlert-Dashboard

    # AWS Cloud-Ops Sentinel Sentinel correlates CloudWatch alarms, AWS Backup posture, and IAM drift signals on the ACP fabric and surfaces them on the ACP ALERT dashboard. v1 is read-only: the wired `aws` adapter is CloudTrail / Cost Explorer / Config inventory only. Mutation verbs (instance restart, key rotation, snapshot volume) are gated by explicit per-tenant scope grants and land in a follow-up wave. ⚠ v1 install caveat: the `aws` connector kind is in `FUTURE_CONNECTORS` on `main` (not yet in the live `ConnectorKind` union). The picker checkbox for `aws` will NOT be visible in the admin form today, and pasting `aws` into the form will be silently dropped by `sanitizeConnectorList`. Land the catalog promotion first (see appendix gap row) — then save this AgentSpec.# AWS Cloud-Ops Sentinel Sentinel correlates CloudWatch alarms, AWS Backup posture, and IAM drift signals on the ACP fabric and surfaces them on the ACP ALERT dashboard. v1 is read-only: the wired `aws` adapter is CloudTrail / Cost Explorer / Config inventory only. Mutation verbs (instance restart, key rotation, snapshot volume) are gated by explicit per-tenant scope grants and land in a follow-up wave. ⚠ v1 install caveat: the `aws` connector kind is in `FUTURE_CONNECTORS` on `main` (not yet in the live `ConnectorKind` union). The picker checkbox for `aws` will NOT be visible in the admin form today, and pasting `aws` into the form will be silently dropped by `sanitizeConnectorList`. Land the catalog promotion first (see appendix gap row) — then save this AgentSpec.

    Required connectorsErforderliche Konnektoren

    • aws
  • Basys Analytics AgentBasys Analytics Agent

    basys-analytics-agent

    Alert dashboardAlert-Dashboard

    # Basys Analytics Agent — L4 KI assistant for cross-umbrella ACP work The Basys Analytics Agent (internal slug **basys-analytics-agent**, L4 KI tier) is the in-house reasoning agent that ships the Vault ([BASA-29168](/BASA/issues/BASA-29168)), Playbook Safety ([BASA-29169](/BASA/issues/BASA-29169)) and Settlement Lifecycle ([BASA-29170](/BASA/issues/BASA-29170)) umbrellas end-to-end. It accepts a dispatched instruction + asset selection from `/play/acp/dispatch`, resolves credentials from the Vault, matches the request against an installed playbook or plans a reasoning-mode sequence, executes the work via the ACP remote-exec adapters (TeamViewer, SSH, WinRM, RDP-Gateway), emits ACP events into the audit panel, and triggers settlement. ## What it does for you - 24/7 L4-KI dispatch on assets you already onboard via `/admin/acp/assets`. - Vault-resolved credential handling with zero local secret exposure. - Reasoning-mode planning when no playbook step matches. - Full audit trail in the ticket panel: `RemoteExecAudit` row + `AcpEvent` rows per dispatch. ## Pilot scope Phase 1 production on all three umbrellas. Activation flag is the CEO-posted comment on [BASA-29171](/BASA/issues/BASA-29171). Install to enable dispatch from `/play/acp/dispatch`.# Basys Analytics Agent — L4 KI assistant for cross-umbrella ACP work The Basys Analytics Agent (internal slug **basys-analytics-agent**, L4 KI tier) is the in-house reasoning agent that ships the Vault ([BASA-29168](/BASA/issues/BASA-29168)), Playbook Safety ([BASA-29169](/BASA/issues/BASA-29169)) and Settlement Lifecycle ([BASA-29170](/BASA/issues/BASA-29170)) umbrellas end-to-end. It accepts a dispatched instruction + asset selection from `/play/acp/dispatch`, resolves credentials from the Vault, matches the request against an installed playbook or plans a reasoning-mode sequence, executes the work via the ACP remote-exec adapters (TeamViewer, SSH, WinRM, RDP-Gateway), emits ACP events into the audit panel, and triggers settlement. ## What it does for you - 24/7 L4-KI dispatch on assets you already onboard via `/admin/acp/assets`. - Vault-resolved credential handling with zero local secret exposure. - Reasoning-mode planning when no playbook step matches. - Full audit trail in the ticket panel: `RemoteExecAudit` row + `AcpEvent` rows per dispatch. ## Pilot scope Phase 1 production on all three umbrellas. Activation flag is the CEO-posted comment on [BASA-29171](/BASA/issues/BASA-29171). Install to enable dispatch from `/play/acp/dispatch`.

    • dispatch
    • tickets:resolve:L4
    • reachability.exec
    • playbook.match
    • reasoning.plan
    • vault.resolve
    • settlement.trigger