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.
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?".
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.
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.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.
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.
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 $.
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)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.
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.
Find your tenant's portal URLPortal-URL Ihres Mandanten finden
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.Request a magic linkMagic-Link anfordern
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.Submit your first ticketErstes Ticket einreichen
Reply via portal OR via email — both workAntworten über Portal ODER per E-Mail — beides funktioniert
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.Privacy expectations — what you see and what you don'tDatenschutz-Erwartungen — was Sie sehen und was nicht
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.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.
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).
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.
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.
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.
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?“.
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.
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.
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.
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 countdownThe 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.
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-dupeThe 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.
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).
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.
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…
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
--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.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.
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:
What we're building over the next three months.Das bauen wir in den nächsten drei Monaten.
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.
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.
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.
Where we expect the platform to be — directional, not promises.Wo wir die Plattform sehen — richtungsweisend, kein Versprechen.
Every ACP-specific term used in this Help page, defined once.Jeder ACP-spezifische Begriff in dieser Hilfe, einmal definiert.
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.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.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.--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./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.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.(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).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.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.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./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.--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.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/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.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.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.
Required connectorsErforderliche Konnektoren
sentinel
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.
Required connectorsErforderliche Konnektoren
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.
Required connectorsErforderliche Konnektoren
helpdesk-triager
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.
Required connectorsErforderliche Konnektoren
microsoft-365-intune-watchtower
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.
Required connectorsErforderliche Konnektoren
teams-incident-notifier
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.
Required connectorsErforderliche Konnektoren
falcon-detection-watch
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.
Required connectorsErforderliche Konnektoren
revops-copilot
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.
Required connectorsErforderliche Konnektoren
finance-assistant
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.
Required connectorsErforderliche Konnektoren
devops-engineer
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.
Required connectorsErforderliche Konnektoren
sage-finance-copilot
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.
Required connectorsErforderliche Konnektoren
google-workspace-audit-watchtower
# 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.
Required connectorsErforderliche Konnektoren
aws-cloud-ops-sentinel
# 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
basys-analytics-agent
# 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`.