OpsIQ Dokumentation

Bauen, betreiben und extend OpsIQ.

Dies ist die vollständige Dokumentation für OpsIQ. Einrichten des Produkts, Support ausführen, AI konfigurieren, CRM verwalten, Widget installieren, Konnektoren erstellen, REST aufrufen API Sie erhalten Webhooks, verpacken Marktplatz-Apps und betreiben selbst gehostete Bereitstellungen.

KundenleitfadenAdmin-AnleitungEntwicklerleitfadenCRM-ReferenznummerSteckverbinder SDKREST APISelbstgehostete
Anwendungsbereich

Anwendungsbereich dieses Handbuchs

Alles OpsIQ macht an einem Ort: wie jeder Bildschirm funktioniert, wie man seine eigenen Systeme verbindet und wie man darauf aufbaut.

Anwendungsbereich
DokumentationskarteDas Handbuch ist um das OpsIQ Produkt herum organisiert und folgt der gleichen Reihenfolge wie die Admin-Seitenleiste.DokumentationskarteOpsIQ ProduktAUDIENCEBetreiberGEBÄUDEEntwicklerRUNVerwalterLEBENDER ARBEITSPAZWERKVerwendung OpsIQProduktbildschirme und WorkflowsEingeschlossenVerlängern OpsIQSteckverbinder, APIs und WidgetEingeschlossenBetreiben Sie OpsIQSicherheit, cron und DeploymentEingeschlossenBezugsnummerPaket, API und Webhook-VerträgeEingeschlossen1CHOOSE AUDIENCEBetreiber oder Entwickler2FOLLOW THE UISchnittspiegel OpsIQ3USE SOURCE TRUTHStatus kommt von Build
Das Handbuch ist um das OpsIQ Produkt herum organisiert und folgt der gleichen Reihenfolge wie die Admin-Seitenleiste.
Portal Studio Field Guide

Verwenden Sie das dedizierte Administrator- und Entwicklerhandbuch für Portalarchitektur, Seiten, Komponenten, Vorschau, Help Center, Identität, SCIM, geregelte Releases, Erweiterungen, Migrationen und Zertifizierung.

Öffnen Sie den Portal Studio Guide

Was ist hier drin

Führen Sie das Produkt

Jeder Bildschirm im Admin: Analyse, Live-Chat, Tickets, CRM, Wissensdatenbank, Site Intelligence, Promotions und das Kundenportal. Was jede Seite tut, was die Zahlen bedeuten und was zu tun ist, wenn sie falsch aussehen.

Verbinden Sie Ihre Systeme

Das Website-Widget, E-Mail-Postfächer, eingehende und ausgehende Webhooks und die Konnektorbibliothek für Plattformen wie Shopify, WooCommerce, WHMCS Zendesk, Stripe, Slack und Gmail.

Bauen Sie sich selbst

Der Connector Builder für No-Code-Connectors, Aktionen & Triggers, wenn Sie überhaupt keine Konnektoren verwenden möchten, und der REST API mit jeder Aktion, jedem Umfang und jedem Fehlercode.

Betreiben Sie es

Rollen und Berechtigungen, Sicherheit, Cron, Diagnose, Backups sowie gehostete und selbstgehosteten Bereitstellung.

Wo man anfangen soll

1
Wenn Sie OpsIQ Tag für Tag laufen

Lesen Sie die Bildschirmabschnitte in der Reihenfolge der Seitenleiste. Jeder öffnet sich mit dem, wofür die Seite ist, so dass Sie aufhören können, sobald Sie das haben, was Sie brauchen.

2
Wenn Sie es verwalten

Fügen Sie Einstellungen, Sicherheit, Diagnose, Cron und Produktion hinzu. Dies sind die Abschnitte, die entscheiden, ob alles andere weiter funktioniert.

3
Wenn Sie eine Integration aufbauen

Beginnen Sie bei Connectors, dann dem Connector Builder, dann der REST API und Webhooks. Lesen Sie diese in der Reihenfolge, und Sie werden jeden Weg gesehen haben OpsIQ kann mit einem anderen System sprechen.

💡
Zwei Dinge ändern, was Sie sehen. Berechtigungen verstecken Seiten, die Ihre Rolle nicht öffnen kann, so dass ein Abschnitt hier beschrieben in Ihrer Sidebar fehlen könnte. Bitten Sie einen Administrator, Ihre Rolle zu überprüfen. Und Konnektoren tragen eine Laufzeitbezeichnung von Produktion, Beta, Vorschau oder Vorlage; der laufende Build und sein Konnektivmanifest sind die Autorität, auf der Sie haben, nicht diese Seite.
Beginnen Sie hier

Was OpsIQ für Ihr Unternehmen tut

OpsIQ Es ersetzt Ihre Analysen, Live-Chat, Helpdesk, CRM, SEO Toolkit, Integrations-Middleware und Entwicklerplattform durch einen einzigen einheitlichen Administrator, bei dem jedes Tool den gleichen Kundenkontext teilt. 8-12 separate SaaS-Produkte, die Sie installieren OpsIQ Einmalig und bedienen Sie alles von einem Bildschirm aus.

Die Plattform
OpsIQ einheitliche PlattformEin zentrales KI-Gehirn, das mit Live-Chat, CRM, Tickets, Site Intelligence, Promotionen und Analysen verbunden ist.Live ChatAbsatzförderungenAI CRMIntel-WebsiteTicketsAnalytikOpsIQKI-HIRN1ONE WORKSPACEJedes Tool in einem Admin2SHARED BRAINEin Kundenkontext3ANYWHERECloud oder selbst gehostet
OpsIQ ist eine Plattform mit einem gemeinsamen Kundenkontext, jedes Tool speist und wird von demselben KI-Gehirn angetrieben.

Alles OpsIQ tut · im Detail

Website Analytics und Visitor Intelligence

Echtzeit-Besucherverfolgung

Jedes Seiten-Load, Klicken, Scrollen und Navigationsereignis wird in Echtzeit erfasst. Sehen Sie, wer sich gerade auf Ihrer Website befindet, welche Seiten sie ansehen, wie lange sie verbringen und woher sie kommen, alles ohne Cookies von Drittanbietern.

Besucherprotokoll und Sitzungen

Vollständige Historie jedes Besuchers mit Gerät, Browser, Betriebssystem, Land, Stadt, Referrer, UTM-Parametern, Zielseite und Identitätsauflösung. Sitzungen gruppieren Seitenansichten in Reisen, damit Sie den gesamten Weg sehen können, den ein Besucher nimmt.

Sitzungswiedergabe

Timeline-Wiedergabe von erfassten Besuchersitzungen. Sehen Sie genau, was Benutzer gemacht haben: Mausbewegungen, Klicks, Scrollen, Seitenübergänge und Interaktionen. Verwenden Sie es, um UX-Probleme zu diagnostizieren, Drop-Off-Punkte zu verstehen und Konversionsflüsse zu überprüfen.

Lebendfutter

Ein Echtzeit-Stream von Besucheraktivitäten, wenn er stattfindet. Sehen Sie Seitenaufrufe, Chatstarts, Formulareingaben und Absichtssignale, die alle paar Sekunden aktualisiert werden. Filtern nach Land, Gerät oder Referrer, um sich auf bestimmte Verkehrssegmente zu konzentrieren.

Obere Seiten

Seiten, die nach Besuchen, Engagement-Zeit, Bounce-Rate, Conversions und Support-Aktivität geordnet sind. Identifizieren Sie Ihre leistungsstärksten Inhalte und Seiten, für die Verbesserungen erforderlich sind.

Geointelligenz

Land-, Stadt- und Regionsaufschlüsselungen mit Karten: Geräte- und Browserverteilung, Traffic-Quellenanalyse, Suchmaschinenreferentenverfolgung und Marktdurchdringungserkenntnisse.

Intenser Trichter

Verfolgen Sie Besucherabsichtssignale (Preisseitenbesuche, wiederholte Rückgaben, Dokumentation von Browsermustern und Unterstützungsinteraktionen), um Besucher zu identifizieren, die wahrscheinlich kaufen, abwandern oder Hilfe benötigen.

A/B-Experimente

Führen Sie Split-Tests auf Ihrer Website direkt über OpsIQ aus. Erstellen von Varianten, Setzen der Traffic-Zuordnung, Definieren von Konversionszielen und Messen der statistischen Signifikanz. Kein externes Testtool erforderlich.

JavaScript error tracking

Clientseitige JavaScript -Fehler automatisch von Ihrer Website erfassen. Fehlermeldungen, Stapelspuren, betroffene Browser, Häufigkeitszählungen und welche Seiten sie auslösen. Debug-Frontendprobleme ohne separate Fehlerüberwachung.

Ereignisprotokoll

Jedes nachverfolgte Ereignis (Seitenaufrufe, benutzerdefinierte Ereignisse, Chat-Interaktionen, Formulareinreichungen, Einkäufe) in einem durchsuchbaren, filterbaren Protokoll mit vollständigen Metadaten.

Verkäufe und Umwandlungen

Auftragserfassung, Einnahmen, Rückerstattungen, Abonnementverlängerungen und Attributumwandlungen in Traffic-Quellen, Kampagnen und Besucherreisen.

Blei

Besucher mit hohem Intentionsvermögen, die durch Verhaltensmuster identifiziert werden. Score führt basierend auf Seitenbesuchen, Zeit vor Ort, Rückgabehäufigkeit, Support-Interaktionen und benutzerdefinierten Signalen. Feed führt direkt in die CRM-Pipeline.

Site Intelligence (SEO und Content Analyse)

Ortskriechgänge

Automatisiertes Crawlen Ihrer gesamten Website, um Seiten zu entdecken, defekte Links zu erkennen, fehlende Meta-Tags zu finden, den Bild-Alttext zu überprüfen, kanonische URLs zu validieren und Ihre Websitestruktur abzubilden.

Technisches SEO-Audit

Umfassende technische Analyse: Seitengeschwindigkeitswerte, mobile Reaktionsfähigkeit, Core Web Vitals, SSL Zertifikatstatus, Redirect Chains, Duplicate Content Detection, Crawling-Tiefenanalyse und strukturierte Datenvalidierung.

Inhaltskontrolle

Bewerten Sie jede Seite auf Inhaltsqualität, Wortanzahl, Lesbarkeitspunktzahl, Keyword-Dichte, Überschriftenstruktur, internes/externes Linkverhältnis und Frische. Identifizieren Sie dünne Inhalte, doppelte Seiten und Inhaltslücken.

AI-powered Search

Semantische Suche über den gesamten Inhalt Ihrer Website. Stellen Sie Fragen zu Ihren Inhalten in natürlicher Sprache und erhalten Sie KI-synthetisierte Antworten mit Quellenseitenreferenzen.

SERP Rangverfolgung

Überwachen Sie Ihre Suchmaschinen-Rankings für Ziel-Keywords auf Google und anderen Suchmaschine, verfolgen Sie Positionsänderungen im Zeitverlauf, vergleichen Sie mit Mitbewerbern und sehen Sie, welche Seiten für welche Begriffe ranken.

Keyword-Recherche

Entdecken Sie Keyword-Möglichkeiten basierend auf Ihren Inhalten, der Konkurrenzanalyse und den Daten zum Suchvolumen. Holen Sie sich Vorschläge für neue Content-Themen, Long-Tail-Varianten und Ziele zur Inhaltsoptimierung.

Backlink-Analyse

Überwachen Sie Ihr Inbound-Linkprofil. Sehen Sie, welche Seiten mit Ihnen verlinkt sind, verfolgen Sie neue und verlorene Links, analysieren Sie die Verteilung von Ankertexten und identifizieren Sie Linkaufbaumöglichkeiten.

Lokales SEO-Netz

Für Unternehmen mit physischen Standorten: Visualisieren Sie Ihre lokale Suchsichtbarkeit über ein geografisches Raster. Sehen Sie, wie sich Ihre Rankings je nach Standort, Entfernung von Ihrem Unternehmen und Suchabsicht unterscheiden.

Google Business Profil Sync

Verbinden Sie Ihr Google Business Profil mit OpsIQ Synchronisieren Sie Bewertungen, Posts, Q&A, Fotos und Geschäftsinformationen. Verwalten Sie Ihren GBP-Eintrag von innen OpsIQ Reagieren Sie auf Bewertungen, veröffentlichen Sie Beiträge und überwachen Sie die Erkenntnisse.

Geplante Berichte

Automatisierte SEO- und Analyseberichte, die nach Ihrem Zeitplan generiert werden (täglich, wöchentlich, monatlich). Berichte enthalten Rankingänderungen, Traffic-Trends, gefundene technische Probleme und Content-Performance. White-Label-Ausgaben für Agenturen verfügbar.

AI-powered Unterstützung

Kunden-AI Chat

KI beantwortet Kundenfragen auf Ihrer Website 24/7 Nutzung Ihrer Wissensdatenbank, der Daten verbundener Plattformen (Bestellungen, Konten, Abonnements) und benutzerdefinierter Schulungsanweisungen. Unterstützt mehrere KI-Anbieter: Claude Anthropic), GPT-4o (OpenAI), Gemini (Google) und Grok (xAI).

Admin AI Assistent

Ein KI-Copilot in Ihrem Admin-Panel, der Ihnen hilft, Ticketantworten zu schreiben, Kundenkommunikation zu entwerfen, Supporttrends zu analysieren, Kundendaten über verbundene Plattformen hinweg nachzuschlagen und Aktionen über das Konnektorsystem auszuführen.

KI Wissensgrundlagen

Die KI basiert auf Ihren Knowledge Base-Artikeln, FAQ-Einträgen, Produktdokumentationen und verbundenen Plattformdaten. Sie halluziniert nicht. Sie antwortet aus Ihren tatsächlichen Geschäftsinformationen oder eskaliert, wenn sie unsicher ist.

Auto-Handoff für Menschen

Wenn die KI eine Frage nicht lösen kann, Frustration erkennt oder der Kunde nach einem Menschen fragt, gibt sie automatisch Ihr Team mit vollständigem Konversationskontext ab.

KI-Schulungsaufforderungen

Schreiben Sie separate Anweisungen für kundenorientierte KI und admin-orientierte AI. Kontrollieren Sie Ton, Grenzen, Eskalationsregeln, verbotene Themen und geschäftsspezifisches Verhalten. Pro-Workspace-Konfiguration wird unterstützt.

KI-Historie und Audit

Jede KI-Konversation wird mit vollständigen Anfrage- / Antwortdetails, Token-Nutzung, Kostenverfolgung, verwendetem Anbieter und Modellversion protokolliert.

KI-Insights

Automatisierte Analyse von KI-Konversationsmustern: Siehe allgemeine Fragen, Auflösungsraten, Häufigkeit der Übergabe, Kundenzufriedenheit nach Themen und Bereiche, in denen die KI eine bessere Schulung benötigt.

Per Workspace AI-Konfiguration

Jeder vernetzte Standort/Arbeitsbereich kann seinen eigenen KI-Anbieter, Modell, Temperatur, Tokenbudget und Schulungsanweisungen verwenden. Ein SaaS-Unternehmen kann Claude für das Hauptprodukt und GPT-4o für eine sekundäre Marke verwenden.

Managed AI und BYOK

Zwei KI-Modi: Managed AI (in Ihrem Plan enthalten, nein)API Schlüssel benötigt) oder Bring Your Own Key (verwenden Sie Ihren eigenen Schlüssel OpenAI/Anthropic/Google/xAI API Schlüssel für die volle Kontrolle über Modellauswahl und Kosten). Beide sind erstklassig, jedes Feature funktioniert mit jedem Modus.

AI-Token Budgets und Kostenkontrollen

Legen Sie monatliche Token-Budgets, Grenzen für Gespräche und Warnmeldungen mit geringem Gleichgewicht fest. Verfolgen Sie die Ausgaben pro Anbieter, Arbeitsplatz und Gespräch. Verhindern Sie außer Kontrolle geratene Kosten durch harte Obergrenzen.

Tickets und Helpdesk

Native Ticket System

Vollständiges Helpdesk mit Abteilungen, Prioritäten (niedrig/mittel/hoch/dringend), Status, SLA-Tracking, internen Notizen, Kundenantworten, Dateianhängen und Thread-Gesprächen.

AI Triage und Auto-Reply

AI wählt die eingehenden Tickets automatisch nach Abteilung und Priorität. Aktivieren Sie automatische Antwort für sichere Abteilungen. Die KI entwirft und sendet eine Antwort nach einer konfigurierbaren Verzögerung (Standard: 2 Minuten), damit Menschen zuerst eingreifen können.

E-Mail-Einnahme

Verbinden Sie eine Mailbox (Gmail, IMAP oder Provider-spezifisch), um automatisch Tickets aus eingehenden E-Mails zu erstellen. Antworten auf Ticketbenachrichtigungs-E-Mail-Adressen aktualisieren den Ticket-Thread.

Ticketportal Embed

Einbetten eines Ticketportals mit Kundenkontakt auf Ihrer Website. Kunden können Tickets einreichen, ihre Historie anzeigen, auf offene Tickets antworten und den Status überprüfen, alles gebrandmarkt nach Ihrem Design.

Zusammenführung von Fahrkarten

Zusammengeführte Tickets zeigen [zusammengeschlossen] in der Betreffzeile. Alle Gesprächsverlaufe werden im überlebenden Ticket gespeichert.

Zurück zu AI

Nachdem ein menschlicher Agent ein Ticket übernommen hat, verwenden Sie "Return to AI", um die KI die automatische Antwort auf dieses Ticket fortsetzen zu lassen. Nützlich, wenn der vom Menschen benötigte Teil gelöst ist, aber der Kunde Folgefragen hat, mit denen die KI umgehen kann.

Posteingangs-Kopilot

KI-gestütztes Ticketmanagement aus der Posteingangsansicht. Der Copilot schlägt Antworten vor, fasst den Konversationsverlauf zusammen, empfiehlt Prioritäts-/Abteilungszuweisungen und kann Aktionen auf verbundenen Plattformen ausführen.

Chat und Echtzeit-Support

Chat-Posteingang

Echtzeit-Kundenchat, verwaltet von einem einheitlichen Posteingang. Sehen Sie alle aktiven Gespräche, Kundenidentität, Konversationsverlauf und KI-Vorschläge an. Mehrere Agenten können an einer Unterhaltung mitarbeiten.

Proaktive Chat-Regeln

Trigger-Chat-Nachrichten basierend auf Besucherverhalten: Zeit auf der Seite, spezifisch URL besucht, Scroll-Tiefe, Anzahl der Rückbesuche, Exit-Intention oder benutzerdefinierte Ereignisse. Beispiel: Zeigen Sie eine Hilfenachricht nach 60 Sekunden auf der Preisseite.

Chat-Widget

Ein anpassbares Chat-Widget, das auf Ihrer Website eingebettet ist. Unterstützt AI-Chat, Live Agent Chat, Ticketeinreichung, Wissensdatenbanksuche und Besucheridentität. Responsive, zugänglich und brandfähig.

CSAT-Erhebungen

Sammeln Sie Bewertungen zur Kundenzufriedenheit nach Chat- und Ticketinteraktionen. Entwerfen Sie Umfragen mit Ihren eigenen Fragen, Bewertungsskala und Folgeaufforderungen. Ergebnisse fließen in Teamleistung und KI-Insights ein.

Post-Chat E-Mail Umfrage

Nachdem ein Chat beendet ist, können Besucher mit einer bekannten E-Mail eine Markenmail mit einer KI-Zusammenfassung dessen erhalten, was behandelt wurde, und einen Klick auf "War es einfach?" Ja / Nein. Einmal pro Thread, signierte Single-Use-Links, jeder gesendete protokolliert und das Ergebnis landet auf der Feedback-Seite als eigenes Signal neben den In-Chat-Sternen.

Rückkopplungs-Identitätsschleife

Jedes Feedback-Element, das eine Person trägt, zeigt ihnen: Name, E-Mail, ein Klick zu ihrer vollständigen Customer Journey und CRM-Kontakt sowie Ein-Klick-E-Mail- oder AI-Entwurfsantworten, die auf ihrem tatsächlichen Verlauf basieren.

Schreiben von AI

Separater KI-Schreibassistent zum Verfassen von E-Mail-Entwürfen, Ticketantworten, Ankündigungen und Kundenkommunikation. verwendet eine eigene Eingabeaufforderung (nicht das Chat-Gehirn) für professionelles Business Writing.

KI-First CRM

CRM-Befehlszentrale

Ein einzelner Bildschirm zeigt Ihren gesamten CRM-Zustand: Pipeline-Wert, Transaktionsgeschwindigkeit, bevorstehende Aufgaben, Risikogeschäfte, Agentenaktivitäten und KI-Empfehlungen. Die CRM-Homepage ist Ihr täglicher Ausgangspunkt.

Kontakte und Unternehmen

Verwalten Sie Kundenkontakte mit vollständigen Profilen: Name, E-Mail, Telefon, Unternehmen, Tags, Lifecycle-Phase, Konversationsverlauf, Ticketverlauf, Kaufverlauf und benutzerdefinierte Felder.

Deals und Pipeline Board

Visuelles Kanban-Dealboard mit anpassbaren Stufen, Deals zwischen Stufen ziehen, Werte festlegen, Eigentümer zuweisen, Termine verfolgen und Pipelinewert in jeder Phase sehen. Mehrere Pipelines werden unterstützt.

AI Deal Coaching

Die KI analysiert jeden Deal und bietet Coaching: Risikosignale (stiller geworden, erwähnter Wettbewerber, Budgetbedenken), Empfehlungen für die nächste Best-Action, Gewinnwahrscheinlichkeit und vorgeschlagenes Follow-up-Timing.

Prognose und Berichte

Umsatzprognosen auf der Grundlage von Pipelinedaten, historischen Schlusskursen und Transaktionsgeschwindigkeit: Berichte umfassen die Pipeline nach Phase, Eigentümer, Quelle, Umwandlungsraten, durchschnittliche Transaktionsgröße und Verkaufszykluslänge.

Prospecting Agent (SDR)

KI-gestützte Prospektion, die potenzielle Kunden anhand Ihrer Besucherdaten, Leadsignale und Aktivitäten der verbundenen Plattform identifiziert. Schlägt Outreach-Ziele vor, entwirft erste Nachrichten und bewertet Leadqualität.

Folgesequenzen

Automatisierte mehrstufige Folgesequenzen: E-Mail, Warten, E-mail, Antwort prüfen, eskalieren. Definieren Sie Sequenzen für neue Leads, blockierte Deals, Check-ins nach dem Kauf und Re-Engagement-Kampagnen.

Lebenszyklus und Aufbewahrung

Verfolgen Sie die Lebenszyklusphasen des Kunden (Lead, Prospect, Customer, Churnned) mit automatisierten Übergängen.

Data Steward Agent (Datenverwalter)

KI-Agent, der Ihre CRM-Daten kontinuierlich bereinigt und anreichert: dedupliziert Kontakte, füllt fehlende Felder aus, validiert E-Mails, standardisiert Firmennamen und markiert veraltete Datensätze.

Bauen Sie mein CRM

Natürliche Sprache CRM-Konfiguration: Sagen Sie der KI, wie Ihr Verkaufsprozess aussieht und es baut Ihre Pipeline-Stufen, benutzerdefinierten Felder, Deal-Vorlagen und Automatisierungsregeln.

CRM-Gesundheitsüberprüfung

Automatisierte Überprüfung Ihrer CRM-Datenqualität: doppelte Kontakte, Geschäfte ohne nächste Schritte, veraltete Pipelines, fehlende Kontaktinformationen und Datenvollständigkeitsbewertung.

Trust Dial

Dreistufige Autonomiekontrolle für jeden CRM-AI-Agenten: Autopilot (KI handelt unabhängig), Copilot (AI schlägt vor, Mensch genehmigt) und Manual (KA beobachtet nur).

Vier KI-Agenten

Das CRM betreibt vier spezialisierte KI-Agenten: Steward (Datenqualität), SDR (Prospektion), Retention (Absturzprävention) und Analyst (Berichte und Erkenntnisse). Jeder Agent hat seine eigene Trust Dial Einstellung.

Steckverbinder und Integrationen

Vorgefertigte Steckverbinder

Gebrauchsfertige Steckverbinder für Shopify, WooCommerce BigCommerce, Magento 2PrestaShop, OpenCart, osCommerce WordPress, WHMCS, Zendesk, Stripe, Amazon SES, Postmark, Resend, SendGrid, Mailgun, Gmail IMAP, Slack und Google Business Profile. Jeder Connector bringt plattformspezifische KI-Aktionen, Wissen und Datensynchronisierung mit sich.

Connector-Builder

Erstellen Sie benutzerdefinierte Konnektoren für jede Plattform, ohne Code, AI-unterstützten oder vollständigen Code. Der Builder unterstützt REST und GraphQL APIs, OAuth Autorisierungscodefluss, automatische Webhook-Registrierung mit Stripe und einfachen Signaturschemata, Paginierung (Offset, Seite, Cursor und Link-Header), Liste / Fehlertransformationen, Multi-Action-Kontext und Marktplatzverpackung.

AI-assisted Connector Authoring

Die ConnectorBuilderAI hilft Ihnen beim Erstellen von Konnektoren: Beschreiben Sie, was Sie wollen und schlägt Aktionen vor, schreibt Anforderungshandler und bildet API -Antworten ab. behandelt automatisch Authentifizierung, Paginierung und Fehlerbehandlung.

OAuth flow für jeden Anschluss

Generische In-App OAuth Autorisierungsfluss, der mit jedem Konnektor funktioniert. PKCE-Unterstützung, standortbezogene Zustandsverwaltung, automatische Token-Aktualisierung.OAuth Parameter und OpsIQ Handhabt den Flow.

Kapazitätsbusse (plattformweite Erweiterung)

Konnektoren fügen nicht nur Plattformaktionen hinzu. Sie können Kernfunktionen über "Kapazitätenbusse" versorgen. Ein Konnektiv deklariert eine Fähigkeit (Kalender, Anreicherung, esign in CRM; local_listing, rank_data in Site Intelligence; web_analytics in Analytics; payment_provider in Payments; email_sync in Mailbox; video_meeting in Comms) und implementiert seinen kleinen Methodensatz; OpsIQ entdeckt es über CapabilityRegistry und verdrahtet es in die Benutzeroberfläche, den Kunden 360 Mehrere Konnektoren können die gleiche Fähigkeit ohne Lock-in bieten. siehe Konnektoren/PLATFORM_CONNECTORS.md.

Vorinstallierte vs Marketplace Tier

Konnektoren leben in einer von zwei Ebenen. Vorinstallierte Konnekte (Connectors/) sind registry-aktiv out of the box, bleiben auf die schlüssellose Referenz und den am häufigsten verwendeten Anbieter pro Funktion beschränkt (z. B. Google Kalender, Gmail, Google Business Profile). Marketplace-Konnektor (marketplace_connectors/), sind auffindbar, aber inert bis zur Installation, z. B Microsoft 365 Kalender, Outlook, DocuSign, Stripe, GA4, SerpApi, Zoom. Jede Brücke taucht eine Marktplatzliste auf, so dass die Benutzeroberfläche und die KI "installieren vom Marktplatz" (Benachrichtigung-zu-Installation) auffordern können, wenn eine Fähigkeit keinen bereiten Provider hat, niemals einen defekten Button.

Connector Marketplace

Veröffentlichen Sie Ihre Connectors zum OpsIQ Steckverbinder mit Profil.json, Wissen.json Workflow_Rezepte.json Marketplace unterstützt kostenlose und kostenpflichtige Konnektoren mit Multi-Source-Abrechnung.

Steckverbinderunterzeichnung

Alle Konnektoren werden kryptographisch zur Integritätsüberprüfung signiert. Die Signierung wird zum Zeitpunkt der Installation überprüft. Verwenden Sie das Werkzeug resign_all_connectors, um nach Updates erneut zu unterschreiben.

SmartLookup

Deklaratives Fuzzy-Matching-System für Steckeraktionen, Definition von Nachschlagregeln und OpsIQ Gleicht Nutzeranfragen mithilfe von fuzzyScore und smartRank-Algorithmen an Plattformeinheiten ab. Beispiel: find_country("germ") passt zu Deutschland 88.9% Vertrauen.

Aktionsverträge

Der General OpsIQ API veröffentlicht 1,312 Benannte Aktionen, während Connector-Pakete ihre eigenen Vendor-Aktionen mit typisierten Parametern, Authentifizierungsanforderungen, Paginierungsregeln und Antworttransformationen durch den einheitlichen ActionExecutor deklarieren.

Steckverbinderrezepturen

Vorgefertigte Workflow-Rezepte, die mehrere Connector-Aktionen zu gängigen Geschäftsworkflows kombinieren. Beispiel: "Wenn eine neue Bestellung auf Shopify eingeht, erstellen Sie ein Ticket, aktualisieren Sie das CRM und senden Sie eine Slack-Benachrichtigung."

Wissenssynchronisation

Konnektoren deklarieren Wissensthemen, die mit der KI-Wissensdatenbank synchronisiert werden. Plattformspezifische Hilfeartikel, Setup-Anleitungen und Schritte zur Fehlerbehebung stehen der KI ohne manuelle Wissenseingabe automatisch zur Verfügung.

Entwicklerplattform

REST API

A benannt JSON API Deckt jeden registrierten Administrator ab JSON Betrieb mitAPI Schlüssel-Authentifizierung, Arbeitsplatzisolation, Scopes, Rate Limiting, idempotente Schreibvorgänge, OpenAPI und eine generierte Postman-Sammlung.

Webhooks

Outbound Webhooks für alle wichtigen Ereignisse: Bestellungen, Rechnungen, Abonnements, Tickets, Chats, Leads, Benutzerregistrierungen und Warenkorbabbruch. Async-Lieferung über Jobwarteschlange, exponentielle Backoff-Wiederholung, SSRF-Schutz und automatische Deaktivierung nach 15 aufeinanderfolgenden Fehlern.

Webhook unterschreibt

Jeder ausgehende Webhook ist mit HMAC-SHA256 signiert. Überprüfen Sie die Signaturen auf Ihrer Empfängerseite, um die Authentizität des Webhoks zu gewährleisten.

Widget SDK

JavaScript SDK für das Tracking-Widget mit Identitätsauflösung, benutzerdefiniertem Event-Tracking, programmatischer Chatsteuerung und seitenspezifischer Konfiguration. WordPress, Shopify, und statisch HTML.

Plugins und SDKs

Serverseitige SDKs und Plugins für gemeinsame Frameworks. WordPress Plugin, WHMCS Modul und generische PHP/Node.js Integrationsbibliotheken.

Ereignisse API

Push-eigene Ereignisse in OpsIQ aus Ihrem Backend: Käufe, Anmeldungen, Funktionsnutzung, Fehler oder jegliches Business-Event. Ereignisse erscheinen in der Besucherzeitleiste und werden in den Analytics- und KI-Kontext eingespeist.

Triggers Kochbuch

Erstellen Sie automatisierte Workflows, die durch Ereignisse ausgelöst werden: neues Ticket, Chat gestartet, Besucher identifiziert, Deal-Phase geändert oder benutzerdefiniertes Ereignis. Trigger führen Connector-Aktionen aus, senden Webhooks, aktualisieren Aufzeichnungen oder benachrichtigen Ihr Team.

API Builder

Vibrator API und Webhook Builder innerhalb des Administrators: Konfigurieren von Endpunkten, Testanforderungen, Inspect Responses und Debug-Integrationen ohne Verlassen OpsIQ.

Team und Administration

Rollenbasierte Zugangskontrolle

Drei Rollen: Besitzer (Vollzugriff, Abrechnung, Gefahrenzone), Volladministrator (alle Operationen außer Rechnungsstellung und Gefahrenzone) und Agent (nur zugewiesene Abteilungen, kein Zugriff auf Einstellungen).

Team Performance Dashboard

Nur für Besitzer und Full Admin-Dashboard mit Auflösungszeiten, Workloadverteilung, Grifftiefe, Kanalaufschlüsselung, Trendanalyse, SLA-Compliance, CSAT by Agent, Wiedereröffnungsraten, Teamrollups und geschäftigsten Stunden. Aktualisiert in Echtzeit.

Admin-Präsenz und Online-Tracking

Who-is-online-Widget in Echtzeit in der Admin-Navigation, Heartbeat-basierte Präsenzerkennung 60-zweiter Ping, 300 Zweite Verlängerung, Auto-Prune nach 120 Tage). Sehen Sie, welche Admins derzeit aktiv sind und auf welchen Seiten.

Einstellungen pro Arbeitsplatz

Jeder verbundene Standort (Workspace) kann seine eigene KI-Konfiguration, Connectoreinstellungen, Ticketabteilungen, Branding und Betriebsregeln haben. Globale Standardwerte werden zu Workspaces kaskadiert, die sie nicht überschreiben.

Verwaltung mehrerer Standorte

Verwalten Sie mehrere Websites von einem OpsIQ -Admin. Jede Website hat ihren eigenen Tracking-Snippet, Besucherdaten und Konfiguration. Wechseln zwischen den Sites über die Admin-Navigation.

E-Mail-Vorlagensystem

Registry-gesteuerte E-Mail-Vorlagen für alle automatisierten Kommunikationen: Ticketbenachrichtigungen, Chat-Transkripte, Willkommens-E-Mails, Passwort-Resets und Systemalarme. HTML Vorlagen mit Live-Vorschau, variable Chips (){{customer_name}}, {{ticket_id}}), und globale Layout-Kontrolle.

Ein- und Ausfuhr

Importieren Sie Kontakte, Tickets und Wissensartikel aus CSV/JSON. Exportieren von Besucherdaten, Analyseberichten und CRM-Datensätzen. Datenübertragbarkeit für die Migration zwischen Systemen.

Sicherheit, Compliance und Betrieb

Unternehmen SSO

OIDC (OpenID Connect) Single Sign-on mit voller Laufzeit: Discovery, Authorize, Callback, JWKS Signatur Verifizierung, Userinfo, Domain Allow-Listing, JIT Provisioning und Status Guards. SAML Konfigurationsunterstützung.

GDPR und Datenkonformität

DSAR (Datensubjekt-Zugriffsanfrage) -Handling: Export und Löschen von Kundendaten über alle Systeme hinweg. Löschung auf Kontaktebene für Sitzungen, Tickets, Chats, CRM-Einträge und E-Mail-Protokolle.

IP Blockierung und Brute-Force-Schutz

Blockspezifische IPs oder reicht vom Zugriff auf Ihre Website oder Ihren Administrator. Automatische Sperrung nach konfigurierbaren fehlgeschlagenen Anmeldeversuchen.IPZeitstempel und User Agent.

HSTS und Security Header

HTTP Strict Transport Security, Permissions-Policy Header und sichere Cookie Konfiguration. Selbst gehostete Bereitstellungen können CSP-Header über die Serverkonfiguration hinzufügen.

Ausgeführte Netzhakenhärtung

SSRF-Wachmann blockiert Webhooks zu privaten / Metadaten IP Die Async-Zustellung verhindert, dass langsame Endpunkte Ihre Anwendung blockieren. 15 Konsekutivfehler verhindern Ressourcenverschwendung an toten Endpunkten.

Isolation des Arbeitsplatzes

Strenge Datenisolation zwischen Arbeitsbereichen. Besucher, Tickets, Chats, CRM-Datensätze und KI-Konversationen werden auf ihren Arbeitsbereich beschränkt. Workspace-übergreifende Datenlecks werden auf der Abfrageschicht verhindert.

Abrechnungszyklusmanagement

Unterstützung für monatliche, vierteljährliche, halbjährliche, jährliche, zweijährige und lebenslange Abrechnungszyklen. Währungsnormalisierung für Gateways mit mehreren Währungen. Devisenumrechnung auf Zahlungseingang für eine genaue Umsatzberichterstattung.

Cron und geplante Automatisierung

Eingebautes Kronensystem für geplante Aufgaben: Berichtsgenerierung, Datenbereinigung, Abonnementverlängerungen, Aktualisierungen von KI-Schulungen, Konnektorsynchronisierung und Webhook-Retries. Gesundheitsdiagnostik mit Warnindikatoren.

Grundsätze für die Vorratsdatenspeicherung

Konfigurieren Sie, wie lange Besuchersitzungen, Chat-Transkripte, AI-Konversationsverlauf und Ereignisprotokolle beibehalten werden. Automatische Bereinigung alter Daten zur Verwaltung der Speicherung und Einhaltung von Aufbewahrungsrichtlinien.

Diagnostik und Gesundheit

Systemzustands-Dashboard mit Cronstatus, Datenbankverbindung, AI-Anbieterstatus, Connector-Gesundheit, Webhook-Lieferraten und Speichernutzung; Warnungen bei Konfigurationsproblemen und Leistungsengpässen.

Wer OpsIQ ist für

E-Commerce-Shops

Lagerräume

Verfolgen Sie jeden Besucher von der Landung bis zum Kauf. Lassen Sie die KI mit Live-Daten Shopify/WooCommerce antworten. Verwalten Sie Supporttickets mit automatischer Antwort auf AI. Führen Sie eine Deal-Pipeline für Großhandels- und B2B-Leads aus. Attributieren Sie Einnahmen zu Trafficquellen und Kampagnen. Überwachen Sie den Warenkorbabbruch mit Wiederherstellungsworkflows.

SaaS- und Softwareunternehmen

Software as a Service

Überwachen Sie Trial-Anmeldungen und Feature-Adoption mit Session Replay. Verfolgen Sie, welche Dokumentationsseiten konvertieren. Automatisieren Sie die Unterstützung mit AI in Ihrem API docs. Verwalten von Abonnementeinnahmen und Erweiterungsverträgen im CRM. Verbinden Sie Ihre Abrechnungsplattform (Stripe), WHMCS) für die Echtzeit-MRR-Tracking: Verwenden Sie den CRM Lifecycle Agent, um Abwanderung zu erkennen und zu verhindern.

Agenturen und Freelancer

Agentur

Bieten Sie Kunden White-Label-Analysen und Supportportale an. Verfolgen Sie Leads über mehrere Client-Websites von einem Administrator aus. Verwenden Sie die CRM-Pipeline, um Interessenten und Projektleiter zu verwalten. Erstellen Sie benutzerdefinierte Konnektoren für Client-Plattformen mit dem Connector Builder. Generieren Sie Marken-SEO-Berichte mit Site Intelligence. Resell Marktplatzkonnektor als Mehrwertdienste.

Hosting und Infrastruktur

Hosting

tief WHMCS Integration mit 80+ KI-Aktionen für Order Lookup, Service Management, DNS, und Provisioning. Auto-Reply auf gängige Hosting-Fragen mithilfe von Knowledge Base Artikeln. Tracking Server Status Page Engagement. Verwalten Sie Tickets für technischen Support mit AI Triage. Verwenden Sie die Billing Cycle Leder für monatliche bis lebenslange Hosting-Pläne.

Unterstützungslastige Unternehmen

Unterstützung

Deflect 40-_70% von sich wiederholenden Fragen mit KI-Chat, die in Ihrer Wissensdatenbank geerdet sind. Route Tickets zur richtigen Abteilung mit AI Triage. Track Team Performance mit Lösungszeiten, SLA Compliance und CSAT durch Agenten. Verwenden Sie das Schreiben von AI für professionelle Antwortgestaltung. Überwachen Sie Unterstützungstrends mit KI Insights.

Marketing- und SEO-Teams

Marketing

Full Site Intelligence Suite: Crawls, technische SEO-Audits, Inhaltsanalysen, SERP-Rank-Tracking, Keyword-Recherche, Backlink-Monitoring und lokales SEO-Raster. Google Business Profile Management. Geplante White-Label-Berichte für Kunden. A / B-Tests in das Tracking-Widget integriert. Kampagnenzuweisung über alle Kanäle hinweg.

Sologründer und kleine Teams

Start-ups

Beginnen Sie mit Tracking und Chat, kostenlos hinzuzufügen. Dann fügen Sie Tickets hinzu, wenn Sie Support-Volumen erhalten. Schalten Sie das CRM ein, sobald Sie mit dem Verkauf beginnen. Verbinden Sie Plattformen, während Sie sie übernehmen. OpsIQ Waage von einer Person, die alles zu einem 50-Person Operations Team mit RBAC, Abteilungen und Per-Agent Performance Tracking.

Enterprise und Multibrand

Unternehmen

Unternehmen SSO mit OIDC für die zentrale Authentifizierung, Multi-Workspace-Isolierung für verschiedene Marken oder Abteilungen, KI-Konfiguration pro Arbeitsplatz mit verschiedenen Anbietern und Modellen, kundenspezifische Konnektorentwicklung mit Marktplatzverteilung, Audit-Trails, GDPR Compliance-Tools und Richtlinien zur Datenspeicherung.

Was OpsIQ ersetzt

Google Analytics + Hotjar + Plausibel

Vollständige Website-Analyse mit Besucherverfolgung, Session-Wiedergabe, Seitenrankings, Geo-Intent Funnels, Conversion-Attribution, Events, A / B-Experimenten und JS-Fehlerverfolgung, alles privatsphärefreundlich, alles in einer Plattform.

Intercom + Drift + Tidio für Android

KI-gestützter Kundenchat mit Wissensgrundlage, AI-Unterstützung für mehrere Anbieter, automatische Übergabe an Menschen, proaktive Chatregeln, Konversationsverlauf, CSAT-Umfragen und Ticketerstellung aus dem Chat.

Zendesk + Freshdesk und Help Scout

Natives Ticketsystem mit Abteilungen, Prioritäten, SLA, AI-Triage, automatischer Antwort mit konfigurierbarer Verzögerung, E-Mail-Einnahme, Ticketeinbettung, Ticketzusammenführung, Posteingangskopilot und Rückkehr zur KI-Fähigkeit.

HubSpot + Pipedrive + Salesforce für Unternehmen

AI-first CRM mit vier spezialisierten KI-Agenten (Steward, SDR, Retention, Analyst), Trust Dial Autonomiekontrolle, Pipeline Board, Deal Coaching, Prognosen, Sequenzen, Lifecycle Management und natürliche Sprache CRM Konfiguration.

Ahrefs + SEMrush + Moz

Site Intelligence mit automatisierten Crawls, technischen SEO-Audits, Inhaltsanalysen, KI-Suche, SERP-Rank-Tracking, Keyword-Recherche, Backlink-Analyse, lokalem SEO-Raster und geplanten White-Label-Berichten.

Zapier + Make + Custom Middleware

Stecker SDK mit 25+ vorgefertigte Steckverbinder, Connector Builder (no-code/AI-assisted/full-code), OAuth flow, automatische Webhook-Registrierung, ein großer Katalog von Connector-Aktionsdefinitionen, die nur dann ausführbar sind, wenn der betreffende Connector installiert, aktiviert, konfiguriert und validiert ist, SmartLookup, Marketplace und signierte Pakete.

Google Business Profil Manager

Full GBP Connector: Review Management, Post Publishing, Q&A-Management, Fotouploads, Business Info Sync, Insights Tracking und AI-basierte Review Responses, alles von innen OpsIQ.

Separate E-Mail Template Tools

Registry-gesteuerte E-Mail-Vorlagen mit visuellem Editor, Live-Vorschau, variablen Chips, globaler Layoutsteuerung und Anpassung für alle automatisierten Kommunikationen.

Teammanagement-Dashboards

Integrierte Teamleistung: Auflösungszeiten, Workload, SLA-Compliance, CSAT by Agent, Wiedereröffnungsraten, arbeitsreichste Stunden, Echtzeit-Präsenzverfolgung und Ausfälle pro Abteilung.

GDPR _Compliance Tools

Natives DSAR -Handling, Datenlöschung über alle Systeme hinweg, Zustimmungsmanagement, Aufbewahrungsrichtlinien und Audit-Trails, die in der Plattform integriert sind, nicht angeschraubt.

Zwei Editionen

Hosted Deployment

OpsIQ Der Produktbetrieb ist derselbe; Infrastruktur, Updates und Backups werden vom Hosting-Betreiber verwaltet.OpsIQ Laufzeit statt Marketing oder kommerzielle Kontoströme.

Selbstgehostetes Modul

Installieren OpsIQ auf Ihrem eigenen Server für die volle Kontrolle über Daten, Branding, Updates und Integrationen. Erfordert PHP 8.4+, MySQL 5.7+ oder MariaDB 10.3+, HTTPS und die OpsIQ Unified Cron. Stützen WHMCS Integration als Addon-Modul. Volle Datenhoheit.

Empfohlene Lesereihenfolge

1
Schnellstart

Folgen Sie der 30-Minuten-Einrichtungsanleitung, um Tracking, Chat und grundlegende KI auf Ihrer Website zu erhalten.

2
Dashboard und Analytics

Erfahren Sie, wie Sie Ihre Besucherdaten lesen, eine Wiederholung der Sitzung einrichten, Leads identifizieren und Verkehrsmuster verstehen.

3
Website-Intelligenz

Führen Sie Ihren ersten SEO-Crawl aus, überprüfen Sie Ihren technischen Zustand und richten Sie SERP-Ranktracking für Ihre Ziel-Keywords ein.

4
Tickets und Support

Richten Sie Abteilungen ein, konfigurieren Sie die automatische Antwort mit KI, verbinden Sie die E-Mail-Aufnahme und trainieren Sie Ihre KI für die Bearbeitung allgemeiner Fragen.

5
CRM

Organisieren Sie Kontakte, bauen Sie Ihre Pipeline auf, konfigurieren Sie die KI-Agenten, legen Sie Vertrauenszifferstufen fest und lassen Sie AI Ihre Deals coachen.

6
Steckverbinder und Entwickler-Tools

Verbinden Sie Ihre E-Commerce/Rechnungsplattform, erstellen Sie benutzerdefinierte Konnektoren, richten Sie Webhooks ein und integrieren Sie über den REST API.

💡
Neu bei OpsIQ? Beginnen Sie mit der Quick Start Anleitung unten. 30 Minuten.
Beginnen Sie hier

Schneller Start in 30 Minuten

Wenn Sie OpsIQ ausführen, bauen alle Schritte auf dem vorherigen auf. Am Ende haben Sie Besucher-Tracking, AI-Chat und grundlegende Ticketunterstützung.

Einrichtung
Schnellstart-ChecklisteEine geführte Setup-Checkliste, die Widget-Installation, Plattformverbindung, KI-Training, Teameinladung und Go-Live mit einer 60 % Fortschrittsleiste zeigt.StartschusssetupInstallieren Sie das OpsIQ WidgetDONEine Plattform verbinden ()WHMCS, Shopify...)DONTrainieren Sie Ihre KI auf Ihren InhaltenDONLaden Sie Ihr Team einCheck and Go Live UbersetzungenFortschritte bei der Einrichtung3 von 5 · 60%1STEP 1Installieren Sie das Widget2STEP 2Connect & Train AI3STEP 3Einladen & Go Live
Der 30-Minutenpfad: Installieren Sie das Widget, verbinden Sie eine Plattform, trainieren Sie Ihre KI, laden Sie das Team ein und gehen Sie dann live.

Die 30-Minute

1
Aktivieren Sie Ihre Lizenz

Geben Sie Ihren Lizenzschlüssel im OpsIQ -Admin ein. Gehen Sie zu Einstellungen, geben Sie den für diese Installation gelieferten Lizenzschlüssel ein und klicken Sie auf Aktivieren.

2
Legen Sie Ihre Business Identity fest

Gehen Sie zu Einstellungen und geben Sie Ihren Firmennamen, Ihre Branche, Ihre Zeitzone, Ihre Standardwährung und Ihre Supportzeiten an. Diese Informationen werden von der KI bei der Beantwortung von Kundenfragen und durch Analysen für zeitzonenbewusste Berichte verwendet.

3
Wählen Sie einen AI Provider

Gehen Sie zu KI-Konfiguration und wählen Sie Ihren Provider.Anthropic), GPT-4o (OpenAI), Gemini (Google) oder Grok (xAI). API Schlüssel, wenn Sie Ihren eigenen Schlüssel verwenden oder Managed AI verwenden, falls in Ihrem Plan verfügbar.

4
Installieren Sie das Tracking Widget

Go to Connected Sites, copy the tracking snippet, and paste it before the closing </body> tag on your website. Visit your site in a private browser, then check the Live Feed in OpsIQ. You should see yourself as a visitor within 15 seconds.

5
Verbinden Sie Ihre Plattform

Wenn Sie verwenden Shopify, WooCommerce, WHMCS, oder eine andere unterstützte Plattform, gehen Sie zu Connectors, finden Sie Ihre Plattform, geben Sie Anmeldeinformationen ein und klicken Sie auf Verbindung testen. Dies gibt der KI Zugriff auf Bestelldaten, Kundenprofile und Supportkontext.

6
Laden Sie Ihr Team ein

Gehen Sie zum Team, klicken Sie auf Einladen, geben Sie ihre E-Mail und Rolle ein (Eigentümer, Volladministrator oder Agent). Agenten können nur auf Abteilungen zugreifen, denen Sie sie zuweisen. Besitzer und Volladmins sehen alles.

Der schnellste Weg (5 Minuten)

Schritt 1: Widget installieren

Kopieren Sie den Ausschnitt von Connected Sites und fügen Sie ihn auf Ihrer Website ein, sodass Sie sofort verfolgen können.

Schritt 2: Aktivieren von AI

Gehen Sie zu AI-Konfiguration, wählen Sie einen Anbieter aus, geben Sie Ihren Schlüssel ein und speichern Sie. Der KI-Chat ist jetzt auf Ihrer Website aktiv.

Geschehen

Sie haben jetzt Besucher-Tracking und AI Chat. Sie können Tickets, CRM und Connectors später hinzufügen.

Tag 2: Machen Sie es nützlich

Wissen hinzufügen

Gehe zur Knowledge Base und füge hinzu 5-10 Artikel über Ihre häufigsten Fragen. Die KI verwendet diese, um Kunden genau zu beantworten.

Abteilungen erstellen

Gehen Sie zu Tickets und erstellen Sie mindestens 2 -Abteilungen (z. B. "Vertrieb" und "Support").

Schreiben Sie Ihre AI prompt

Gehen Sie zu AI Training und schreiben Sie eine Customer AI-Eingabeaufforderung, die Ihr Geschäft, Ihren Ton und Ihre Eskalationsregeln beschreibt.

Teste ein Gespräch

Öffnen Sie Ihre Website in einem privaten Browser und chatten Sie mit der KI als Kunde. Überprüfen Sie, ob die Antworten korrekt sind und der Ton stimmt.

Woche 1: Bauen Sie Ihre Operationen auf

E-Mail-Adresse

Richten Sie eine Mailbox (Gmail, IMAP oder einen Provider-Connector) ein, damit Kunden-E-Mails automatisch Tickets erstellen.

Auto-Reply einrichten

Aktivieren Sie die automatische Antwort auf das Ticket für sichere Abteilungen. Legen Sie eine 2-Minutenverzögerung fest, damit Menschen zuerst eingreifen können.

Review Analytics

Überprüfen Sie Dashboard täglich. Sehen Sie sich Besucherzahl, Bounce-Rate, Top Pages und Sales an, wenn das Tracking verbunden ist.

Starten Sie Ihr CRM

Öffnen Sie AI CRM und lassen Sie OpsIQ Kontakte von Ihren verbundenen Plattformen importieren.

Monat 1: Optimieren

AI-Historie überprüfen

Überprüfen Sie die KI-Historie wöchentlich. Suchen Sie nach falschen Antworten, verpassten Fragen und Möglichkeiten, Wissen hinzuzufügen.

Proaktive Regeln hinzufügen

Erstellen Sie eine Regel: Wenn ein Besucher auf der Preisseite für 60+ Sekunden ist, zeigen Sie eine Chat-Nachricht an, in der er gefragt wird, ob er Hilfe benötigt.

Bauen Sie einen Connector

Wenn Sie eine Plattform verwenden, die keinen integrierten Stecker hat, verwenden Sie den Connector Builder, um einen zu erstellen.

Webhooks einrichten

Verbinden Sie OpsIQ mit Ihren internen Tools, indem Sie ausgehende Webhooks für Ticket-, Chat- und Verkaufsereignisse verwenden.

Kann ich die KI überspringen und einfach Tracking verwenden?+

Ja. Der AI-Anbieter ist optional. OpsIQ arbeitet als reine Analyse- und Ticketing-Plattform ohne KI. Sie können AI später aktivieren, wenn Sie bereit sind.

Kann ich Connectors überspringen und später hinzufügen?+

Ja. Connectors bereichern die KI mit plattformspezifischen Daten, aber OpsIQ funktioniert ohne sie. Beginnen Sie mit Tracking und Chat, dann verbinden Sie Plattformen bei Bedarf.

Was ist, wenn ich noch keine Website habe?+

Sie können OpsIQ weiterhin für Tickets, CRM und Teamzusammenarbeit verwenden. Das Tracking-Widget ist optional. Fügen Sie es hinzu, wenn Ihre Website fertig ist.

Woher weiß ich, ob das Widget korrekt installiert ist?+

Besuchen Sie Ihre Website in einem privaten/inkognito Browser. OpsIQ Live-Feed. Sie sollten sehen, wie Ihr Besuch innerhalb 15 Sekunden. Wenn nicht, überprüfen Sie: ()1) ist das snippet richtig eingefügt, (2) ist der Site-Schlüssel korrekt, (3) sind Werbeblocker oder CSP-Header, die das Skript blockieren.

Beginnen Sie hier

Vollständige Produktkarte

OpsIQ ist nicht ein Feature. Es ist ein Operator-Admin, ein Website-Widget, eine KI-Supportschicht, ein Ticket/Helpdesk-System, ein vollständiges CRM mit vier AI-Agenten, eine Site Intelligence Suite, eine Connector-Plattform mit Marktplatz und eine Entwickleroberfläche. Hier sind alle Komponenten, die es enthält.

Betreiberadministration

Dashboard, Live-Feed, Besucherprotokoll, Sessions, Session Replay, Top Pages, Geo Intelligence, Intent Funnel, Events Log, A/B Experimente, JS Error Tracking, Sales and Conversions, Leads, AI CRM (Command Center, Kontakte, Unternehmen, Deals, Pipeline Board, Prospecting, Sequenzen, Lifecycle, Data Steward, Build my CRM, CRM Config, CRM Health, CRM API), Tickets, Chat-Inbox, proaktive Regeln, CSAT-Umfragen, E-Mail-Entwürfe, Mailboxen, KI Konfiguration, AI Training, AI History, AI Insights, Knowledge Base, Connectors, Connector Builder, Marketplace, Connectoren, Marktplatz, vernetzte Seiten, Teammanagement, Team Performance, Einstellungen, Diagnose und Lizenz.

Kundenseitige Oberflächen

Website-Tracking-Widget (Analytics Beacon + Chat + Ticket-Embed + Knowledge Base Search), Client AI-Chat, Ticket-Einreichungsportal, Besucheridentitätstoken-Handling, Dateiuploads, CSAT-Umfrage-Wedget und Kunden-orientierte Hilfecenter.

KI-First CRM

Command Center, Kontakte, Unternehmen, Deals, Pipeline Board mit Drag-and-Drop, AI Deal Coaching (Risikosignale, Next-Best-Action, Gewinnwahrscheinlichkeit), Umsatzprognosen, Prospecting Agent (SDR), automatisierte Folgesequenzen, Lifecycle und Retention Management, Data Steward Agent (dedup, enrich, validate), Build my CRM (natürliches Sprachsetup), CRM Konfiguration, CRM Health Check, Trust Dial (Autopilot / Copilot / Manual pro Agent), vier spezialisierte Agenten (Steward, SDR, Retension, Analyst) und CRM API mit Webhooks.

Site Intelligence Suite

Automatisierte Website-Crawls, technische SEO-Audit (Geschwindigkeit, mobil, Core Web Vitals), SSL, Redirects, strukturierte Daten), Content-Audit (Wortanzahl, Lesbarkeit, Keyword-Dichte, Überschriftenstruktur), AI-basierte semantische Suche, SERP-Rank-Tracking über Engines hinweg, Keyword Research mit Opportunity Scoring, Backlink-Analyse und -Überwachung, lokale SEO-Gridvisualisierung, Google Business Profile Sync (Reviews, Posts, Q & A, Fotos, Insights), geplante Berichte (täglich / wöchentlich / monatlich) und White-Label PDF Output für Agenturen.

KI und Automatisierung

Kunden-KI-Chat (Multiprovider: Claude, GPT-4o), Gemini, Grok), Admin AI-Assistent, KI-Wissenserdung, Auto-Handoff mit konfigurierbarem Revert, pro Workspace AI-Konfiguration, Managed AI und BYOK Modi, Token-Budgets und Kostenkontrollen, AI History Audit Trail, KI Insights Analyse, Ticket AI Triage, Ticket Auto-Reply mit Verzögerung, Schreiben von AI (separate prompt) und Admin Inbox Copilot.

Steckverbinder und Integrationen

25+ vorgefertigte Steckverbinder ()Shopify, WooCommerce BigCommerce, Magento2PrestaShop, OpenCart, osCommerce WordPress, WHMCS, Zendesk, Stripe, Amazon SES, Postmark, Resend, SendGrid, Mailgun, Gmail IMAP, Slack, Google Business Profile), Connector Builder (no-code/AI-assisted/full-code), generisch OAuth Flow mit PKCE, Connector-Marktplatz mit kostenpflichtiger Verteilung, Konnektorsignierung und -verifizierung, SmartLookup Fuzzy Matching, einem großen Katalog von HTTP-Aktionsdefinitionen, deren Verfügbarkeit von der Installation, Aktivierung, Konfiguration und Validierung des Konnektors, Wissenssynchronisierung und Workflow-Rezepten abhängt.

Entwicklerplattform

RESTAPI(Besucher, Veranstaltungen, Tickets, Kontakte, Einstellungen, Steckverbinder), OpenAPI-Spezifikation;API Schlüsselmanagement, ausgehende Webhooks (async, signiert, wiederholt, SSRF-bewacht, automatisch deaktiviert), EreignisseAPI für Custom Event Ingestion, Widget SDKmit Identitätsauflösung, Triggern Kochbuch, Aktionsverträgen, Connector SDK, Marketplace Packaging, serverseitige SDKs (PHP, Node.js), WordPress Plugin und WHMCS Modul.

Einstellungen und Operationen

Business Identity, AI-Konfiguration pro Workspace, Tracking-Einstellungen, Sicherheit (HSTS, Permissions-Policy, IP Sperrung, Brute-Force-Schutz), RBAC (Owner/Full Admin/Agent), Teammanagement und Einladungen, Team Performance Dashboard, Admin Präsenz Tracking, E-Mail Template System (registrygesteuert, Visual Editor, variable Chips), Umfragedesigner, Domain Wissen, Ticket Embed Konfiguration, Branding, Datenaufbewahrungsrichtlinien, Abrechnungszyklus Management (monatlich bis zur Lebenszeit), Währungsnormalisierung, Import / Export, Diagnose, Cron Automation und Gefahrenzone.

Sicherheit und Einhaltung

Unternehmen SSO (OIDC mit JWKS-Verifikation, JIT-Bereitstellung), SAML Konfiguration, GDPR/DSAR Handling (Export und Löschen über alle Systeme hinweg), Datenlöschung per Kontakt, Einwilligungsmanagement, Arbeitsplatzisolierung (String Query-Layer Scoping), Audit Trails, fehlgeschlagenes Login Tracking; IP Sperren, ausgehende Webhook-SSRF-Wächter und Datenaufbewahrung.

Anbieterbrücke

Managed AI proxied durch OpsIQ Anbieter URL, Site Intelligence-Provideranrufe, Lizenzvalidierung, Gesundheitsberichte, PDF Rendering und Datenexporte, die alle über den konfigurierten Provider-Endpunkt geleitet werden, nicht durch direkten Anbieter API Anrufe von Ihrem Server.

Jede Admin-Seite

Dashboard

Kernnetz

Tägliche Kommandozentrale: Traffic-Übersicht, Live-Besucherzahl, Verkaufszusammenfassung, Tiefe der Support-Warteschlangen, AI-Aktivitätsalarme und Quick-Action-Verknüpfungen.

Lebendfutter

Analytik

Besucherstrom in Echtzeit: Seitenaufrufe, Chat-Starts, Formulareinreichungen und Absichtssignale, die alle paar Sekunden mit Land-, Geräte- und Referrerfiltern aktualisiert werden.

Besucherprotokoll

Analytik

Vollständige Besuchsaufzeichnungen: Gerät, Browser, Betriebssystem, Land, Stadt, Referrer, UTM-Params, Zielseite, Identität und vollständige Seitenansicht.

Sitzungen

Analytik

Reisegruppenansicht: Seitenfluss, Zeit auf der Seite, Scrolltiefe, Konvertierungspfad und Exit-Seite für jede Besuchersitzung.

Sitzungswiedergabe

Analytik

Timeline-Wiedergabe von erfassten Ereignissen: Mausbewegung, Klicks, Scrolls, Seitenübergänge und Forminteraktionen für die UX-Diagnose.

Obere Seiten

Analytik

Page Performance Ranking: Besuche, Engagement-Zeit, Bounce Rate, Conversions, Support-Interaktionen und Trendrichtung.

Geointelligenz

Analytik

Geographische Berichte: Land-/Stadtaufschlüsselung mit Karten, Geräteverteilung, Browserfreigabe, Trafficquellen und Marktdurchdringung.

Intenser Trichter

Analytik

Verhaltens-Intentions-Tracking: Preisgestaltung Besuche, Rückkehr Frequenz, Doc Browsing, Unterstützung Interaktionen und benutzerdefinierte Signale mit Conversion Wahrscheinlichkeit.

Ereignisprotokoll

Analytik

Durchsuchbare Ereignishistorie: Seitenaufrufe, benutzerdefinierte Ereignisse, Chats, Einkäufe, Formulareinreichungen mit vollständigen Metadaten und Filterung.

A/B-Experimente

Analytik

Split-Tests: Varianten erstellen, Traffic zuweisen, Ziele definieren, Signifikanz messen und Gewinner deklarieren, alles aus dem Inneren von OpsIQ.

JS-Fehler

Analytik

Frontend-Fehlererfassung: Nachrichten, Stack-Traces, betroffene Browser, Häufigkeit, betroffene Seiten und Trendtracking.

Verkäufe

Verkäufe

Revenue Dashboard: Bestellungen, Verlängerungen, Rückerstattungen, Zuordnung nach Quelle, Kampagnenleistung, Periodenvergleich und Trendanalyse.

Blei

Verkäufe

Lead Management: Scoring, Source Attribution, CRM-Status, Kontaktdaten, Verhaltenssignale und Pipeline Routing.

AI CRM

CRM

Full CRM: Kommandozentrale, Kontakte, Unternehmen, Deals, Pipeline Board, Coaching, Prognose, Prospektion, Sequenzen, Lifecycle, Data Steward und Gesundheit.

Tickets

Unterstützung

Support-Posteingang: Abteilungen, Prioritäten, SLA-Tracking, AI Triage, Auto-Reply, interne Notizen, Dateianhänge, Merging und Statusmanagement.

Chat-Posteingang

Unterstützung

Live-konversationen ki und menschlicher chat, handoff, zusammenarbeit, konversationsverlauf, kundenidentität und.CSATSammlung.

E-Mail-Entwürfe

Unterstützung

E-Mail-Verwaltung: eingehende Mail an Tickets, KI-gestützte Antwortzusammensetzung, Vorlagenauswahl und Postfachkonfiguration.

AI-Konfiguration

A

Provider-Setup: Wählen Sie Claude/GPT-4o/Gemini/Grok, geben Sie den Schlüssel API ein oder aktivieren Sie verwaltete KI, legen Sie die Budgets für Modell, Temperatur und Token pro Arbeitsbereich fest.

KI-Schulung

A

Prompt Authoring: Kunden- und Admin-orientierte Aufforderungen, Eskalationsregeln, Tonrichtlinien, verbotene Themen und Randkonfiguration.

AI-Geschichte

A

Conversation Audit: vollständige Anfrage-/Antwortprotokolle, Tokennutzung, Kosten pro Konversation, Anbieter, Modellversion und Auflösungsergebnis.

KI-Insights

A

Musteranalyse: häufige Fragen, Auflösungsraten, Häufigkeit der Übergaben, Zufriedenheit nach Themen und Identifizierung von Schulungslücken.

Wissensbasis

A

KI-Schulungsinhalte: Artikel, FAQ-Einträge, Produktdokumente, Connector-Wissen und benutzerdefinierte Einträge. Semantische und Keyword-Suche nach AI Grounding.

Connectoren

Integrationen

Integrations-Hub: installierte Konnektoren, Gesundheitszustand, Aktionsinventar, Berechtigungsverwaltung, Marktplatzbrowser und Connector Builder.

Verbundene Standorte

Einstellungen

Site-Management: Tracking Snippet, Site Key, Widget-Konfiguration, Domäneneinstellungen und Isolation des Workspaces pro Site.

Team

Einstellungen

Benutzerverwaltung: Mitglieder einladen, Rollen zuweisen (Eigentümer/Volladministrator/Agent), Abteilungszugriff festlegen und Berechtigungen verwalten.

Leistung des Teams

Einstellungen

Ops-Metriken: Auflösungszeiten, Workload, SLA-Compliance, CSAT by Agent, Wiedereröffnungsraten, verkehrsreichste Stunden und Trendanalyse.

Einstellungen

Einstellungen

Konfiguration: Business Identity, AI-Setup, Tracking, Sicherheit, Branding, Aufbewahrung, E-Mail-Vorlagen, Abrechnung, Import / Export, Diagnose und Gefahrenzone.

Lizenz

Einstellungen

Planmanagement: Lizenzstatus, Planfunktionen, Nutzungsmetriken, Erneuerungsdatum und Upgrade-/Downgrade-Optionen.

Beginnen Sie hier

Geführtes Onboarding

Die Onboarding-Reise verwandelt eine neue Installation in einen funktionierenden OpsIQ Workspace und kann verlassen und fortgesetzt werden, ohne den Fortschritt zu verlieren.

Produktbildschirm
OnboardingOnboarding zeigt jeden Setup-Bereich, seinen aktuellen Zustand und die nächste Aktion an.OnboardingArbeitsbereichPROGRESS60%COMPLETED6NÄCHSTEWidgetLEBENDER ARBEITSPAZWERKLizenzValidierung der ProduktlizenzGeschehenKI-AnbieterProvider und Testschlüssel auswählenGeschehenBrandmarkeBusiness Identity und TonGeschehenWebsiteHinzufügen von Site und Installieren von WidgetNächster Artikel1COMPLETE BASICSLizenz, Marke, AI2CONNECT DATASeite und Steckverbinder3VERIFY LAUNCHTeam, E-Mail, Prüfungen
Onboarding zeigt jeden Setup-Bereich, seinen aktuellen Zustand und die nächste Aktion an.

Empfohlene Sequenz

  1. Lizenz: die Lizenz zu validieren und den Arbeitsbereich als aktiv zu bestätigen.
  2. KI-Anbieter: Wählen Sie den Anbieter/Modell, geben Sie Anmeldeinformationen ein und führen Sie den Verbindungstest aus. KI kann übersprungen werden, wenn der Arbeitsbereich zunächst nur Analysen und Tickets verwendet.
  3. Unternehmensidentität: Legen Sie den Namen, die Branche, die Beschreibung, den kundenorientierten Ton und die Markendetails fest, die vom Widget und der KI verwendet werden.
  4. Steckverbinder: mindestens eine externe Plattform aktivieren, wenn OpsIQ Bestellungen, Kunden, Tickets, E-Mail oder einen anderen Plattformkontext benötigt.
  5. Website und Widget: Erstellen Sie die Website / den Arbeitsplatz, kopieren Sie den Site-Schlüssel und überprüfen Sie einen privaten Browserbesuch im Live Feed.
  6. Team und Routing: Laden Sie Admins / Agenten ein, erstellen Sie Abteilungen, legen Sie das E-Mail-Routing fest und bestätigen Sie die Benachrichtigungseinstellungen.
  7. Go-Live-Kontrollen: Testen Sie Chat, ein Ticket, Connector Sync, Cron, Outbound-E-Mails, Webhooks und Sicherheitsheader.

Die Reise speichert die Fertigstellung pro Arbeitsbereich. Bei der Rückkehr zum Onboarding sollten abgeschlossene Schritte angezeigt werden, anstatt einen Neustart zu erzwingen.

Beginnen Sie hier

Admin-Navigation und Berechtigungen

Die Seitenleiste OpsIQ ist permission-aware. Diese Karte erklärt, wo jeder Betriebsbereich lebt und warum eine Seite möglicherweise nicht für jeden Administrator sichtbar ist.

Produktbildschirm
OpsIQ NavigationDie Seitenleistengruppen OpsIQ nach Arbeitsbereich; einzelne Links erscheinen nur, wenn die aktuelle Rolle sie verwenden kann.OpsIQ NavigationArbeitsbereichGROUPS8SeitenGenehmigungsbasierteSEARCHVerfügbarLEBENDER ARBEITSPAZWERKUnterstützungTickets, E-Mails, CSAT, WissenOffenCRMKontakte, Pipeline, Geschäfte, ProspektionOffenAutomatisierungWorkflows, Regeln, ZieleOffenSicherheit & PrivatsphäreÜbersicht, Audit, Einwilligung, BlöckeAdmin1PICK A GROUPPassen Sie die Sidebar2CHECK ROLEVersteckte Mittel beschränkt3USE PAGE HELPÖffnen Sie den passenden Abschnitt
Die Seitenleistengruppen OpsIQ nach Arbeitsbereich; einzelne Links erscheinen nur, wenn die aktuelle Rolle sie verwenden kann.
Unterstützung

Tickets, die Team-E-Mail-Plattform, CSAT, das Help Center und der Chatbot fließen.

CRM

Die täglichen Verkaufsflächen: CRM Home, Command Center, Kontakte, Pipeline, Prognose, Lebenszyklus, Prospektion, Segmente, Rangliste, Deal-Genehmigungen, Daten Steward, Wachstumstools und der Aktivitätsstrom.

Automatisierung

Event-driven Workflows, Lifecycle Regeln und Conversion Ziele.

Marketing

Outreach, proaktive Nachrichten, Ankündigungen, Promotion Studio, Survey Studio, Push-Kampagnen und Führungen.

Analytik

Berichtsoberflächen zuerst - Analytics Hub, AI Insights, Sales, Customers, Leads, Funnels, A/B-Tests, Session Replay, benutzerdefinierte Dashboards und geplante Berichte - mit den Rohbesucher-, Sitzungs-, Seiten-, Geografie- und Ereignisprotokollen in einem Raw Data-Unterabschnitt.

Standalone-Seiten

Site Intelligence, Team Performance und Feedback sitzen außerhalb der Gruppen als direkte Einträge.

Integrationen

Konnektoren, Aktionen und Trigger, Postfächer, Entwürfe, E-Mail-Einstellungen, eingehende Endpunkte, ausgehende Webhooks und API -Schlüssel.

Sicherheit & Privatsphäre

Security overview, privacy and compliance, cookie consent, audit activity, failed logins, blocked IPs and JavaScript errors.

Einstellungen

Arbeitsbereichsgrundlagen (allgemein, Team, Sites, Sprachen), dann zusammenklappbare Unterabschnitte: AI Brain (Anweisungen, Konfiguration, Bewertung, Geschichte), CRM-Setup (Builder, benutzerdefinierte Felder, Lead Scoring, Gesundheit), Daten & Gesundheit (Diagnose, Export) und Erste Schritte (Onboarding, Hilfe).

Seiten, die eine Rolle nicht öffnen kann, werden aus der Sidebar ausgeblendet. Upgrade Tag und öffnen Sie einen In-App-Upgrade-Bildschirm.

Direkte Routen werden weiterhin serverseitig überprüft. Das Ausblenden eines Sidebar-Links ist nicht die Sicherheitsgrenze: Jede geschützte Aktion muss ihre Berechtigung und Arbeitsbereichsprüfungen bestehen.

Analytik

Analytics Hub

Der Analytics-Hub bringt Support, Chat, AI, Besucher- und Agentenberichte in einen datumsgefilterten Arbeitsbereich mit exportierbaren Ergebnissen.

Produktbildschirm
Analytics HubAnalytics Hub zeigt einen Datumsbereich, metrische Karten und Registerkarten für Support, Chat, AI, Besucher- und Agentenleistung an.Analytics HubArbeitsbereichTIKETTEN184AI RESOLVE63%CSAT4.7LEBENDER ARBEITSPAZWERKUnterstützungErstellt, geschlossen, ausstehend, SLATab.ChatAI / menschliche Ergebnisse und ZeitmanagementTab.AVertrauen, Feedback, Token-NutzungTab.AgentVolumen, Geschwindigkeit und ZufriedenheitTab.1CHOOSE DATESPreset oder custom2CHANGE TABUnterstützung für Agent3EXPORTCSV herunterladen
Analytics Hub zeigt einen Datumsbereich, metrische Karten und Registerkarten für Support, Chat, AI, Besucher- und Agentenleistung an.

Filter und Steuerungen

  • Verwenden Sie ein Preset oder eine benutzerdefinierte von/bis Range, dann Refresh, um jede Karte und jedes Diagramm für den gleichen Zeitraum neu zu erstellen.
  • Ausfuhr CSV Exportieren Sie die aktive analytische Ansicht anstelle eines Screenshots.
  • Workspace-Scoping ist automatisch; Ändern von Websites ändert den zugrunde liegenden Datensatz.

Was jeder Tab misst

  • Unterstützung: Tickets erstellt/geschlossen/ausstehend, erste Antwort, Auflösung, Erstkontaktlösung, SLA und Aufgliederung nach Priorität/Abteilung/Status.
  • Chat: Sitzungen gestartet, AI-Auflösungen, Eskalationen, Abbruch, Bearbeitungszeit, Nachrichten pro Sitzung und AI / Mensch / alle CSAT.
  • AI: durchschnittliche Konfidenz, niedrige Konfidanzrate, Triage-Genauigkeit, Feedback, Wissensablenkung, Token/Cache-Nutzung und die Elemente, die überprüft werden müssen.
  • Besucher: Verkehrs- und Engagementtrends für den ausgewählten Zeitraum.
  • Agenten: Arbeitsbelastung, Geschwindigkeit, Schließung und Zufriedenheit der einzelnen Agenten.

Verwenden Sie den Analytics Hub für die teamübergreifende Überprüfung; verwenden Sie die dedizierten Besucher-, Tickets-, CSAT-, AI-Historie- und Teamleistungsseiten, wenn Sie eine rekordpflichtige Untersuchung benötigen.

Analytik

Das Dashboard

Das Dashboard ist Ihre tägliche Kommandozentrale. Es zeigt Traffic, Verkäufe, Supportlast, KI-Aktivität und Konversionsindikatoren in einer Ansicht. Öffnen Sie es jeden Morgen, um zu verstehen, was über Nacht passiert ist und was heute Aufmerksamkeit braucht.

Dashboard
Übersicht DashboardDer Übersichtsbildschirm wird von einem OpsIQ Intelligence AI-Panel (mit täglichen Kurznachrichten, Smart Alerts, Forecast), KPI-Widget-Kacheln und einem siebentägigen Traffic-Wedget sowie einer Reset-Layout-Steuerung geleitet.ÜbersichtArbeitsbereichOPSIQ INTELLIGENZWählen Sie eine Analyse und OpsIQ schreibt esTägliche KurzfassungIntelligente WarnmeldungenPrognoseLayout zurücksetzenBESUCHER HEUTE2,481+12%EINNAHMEN$8.2k+5%Offene TIKETTEN143 SLAVerkehr · letzte 7 Tage1AI-FIRSTOpsIQ Intelligenzpanel2WIDGETSKPI-Kacheln, die Sie arrangieren3IHRLayout jederzeit zurücksetzen
Der echte Übersichtsbildschirm: das OpsIQ Intelligence-Panel oben (wählen Sie eine Analyse und es schreibt sie) über den KPI-Widgets, die Sie selbst arrangieren.

Dashboard-Karten erklärt

Live-Besucher

Die Anzahl der Personen auf Ihrer Website im Moment. 15 Ein Besucher ist "aktiv", wenn er eine Seite innerhalb des aktiven Schwellenwerts geladen hat (Standard: 90 Sekunden.

Einzigartige Besucher

Wie viele verschiedene Personen Ihre Website im ausgewählten Zeitraum besucht haben. OpsIQ identifiziert Besucher durch eine Kombination aus Browser-Fingerabdruck, Cookies und (falls vorhanden) authentifizierter Identität.

Neu vs. Rückkehr

Neue Besucher sehen Ihre Website zum ersten Mal. Wiederkehrende Besucher wurden schon einmal gesehen. Eine hohe Rückgabequote bedeutet, dass Ihr Inhalt die Leute zurückbringt. Eine sehr niedrige Rückgaberate könnte bedeuten, dass Sie kein Interesse behalten.

Absprungrate

Eine Absprungrate über 70% auf Zielseiten bedeutet normalerweise, dass die Seite nicht den Erwartungen der Besucher entspricht, falsche Inhalte, langsames Laden oder schlechtes mobiles Erlebnis.

Durchschnittliche Zeit auf der Seite

Wie lange Besucher im Durchschnitt auf jeder Seite verbringen. Sehr kurze Zeiten (unter 10 Sekunden) auf Inhaltsseiten deuten darauf hin, dass der Inhalt nicht ansprechend ist.

Bedrohungen blockiert

IPAdressen, die OpsIQ Als potenziell bösartig identifiziert, basierend auf Bedrohungs-Scoring, Brute-Force-Versuchen oder manuellen Blöcken. IPs Liste.

Verkauf heute / diese Woche / diesen Monat

Erlöse aus verbundenen Verkaufsquellen:Shopify, WooCommerce, Stripe usw. Wenn die Verkäufe Null anzeigen, überprüfen Sie, ob Ihr Plattform-Connector angeschlossen ist und synchronisiert wird.

Trendkurve

Ein Liniendiagramm, das die Besucherzahl über den ausgewählten Datumsbereich zeigt. Suchen Sie nach Mustern: Traffic-Spikes (Kampagnen, Presseerwähnungen), Dips (Wochenenden, Feiertage) und anhaltende Trends.

Top-Quellen

Woher Ihre Besucher kommen: Direkt, Google, Social Media, E-Mail-Kampagnen, Empfehlungsseiten. Nutzen Sie diese, um zu verstehen, welche Marketingkanäle funktionieren.

Top Browser

Chrome, Safari, Firefox, Edge und andere. Wenn ein Browser eine ungewöhnlich hohe Bounce-Rate hat, haben Sie möglicherweise CSS oder JavaScript Kompatibilitätsproblem.

Stündliche Heatmap

Ein Raster, das Besucheraktivitäten nach Tages- und Wochenstunden anzeigt. Verwenden Sie dieses, um zu entscheiden, wann Supportschichten geplant werden sollen, wann Ankündigungen gesendet werden müssen und wann Promotions durchgeführt werden sollen.

Jüngste Besucher

Die letzten Besucher mit Land, Seite, Gerät und Quelle. Nützlich für schnelle Vor-Ort-Kontrollen während Kampagnen.

Verwenden des Datumsbereichfilters

Klicken Sie auf die Datumsauswahl oben rechts im Dashboard. 7 Tage, Letzte 30 Tage, Dieser Monat, Letzter Monat, Benutzerdefinierter Bereich. Alle Dashboardkarten und Diagramme werden aktualisiert, wenn Sie den Bereich ändern. Der Datumsbereich befindet sich in Ihrer konfigurierten Zeitzone (eingestellt in Einstellungen).

Bearbeitete Beispiele

Untersuchung der Anstiegsrate (Spike)

Szenario:
Your bounce rate jumped from 45% to 78% this week. What happened?
Was zu tun ist:

Kontrolle: ()1) Hat sich eine bestimmte Landing Page geändert? Gehe zu Top Pages und sortiere nach Bounce Rate. (2) Hat eine Kampagne Traffic auf die falsche Seite geschickt? Überprüfen Sie Top Sources für neue Referrer. (3) Hat die Website auf dem Handy kaputt gemacht? Überprüfen Sie den Browserausfall für die mobile Bounce-Rate. (4) Ist es Bot-Traffic? Überprüfen Sie den Threats Counter und Besucherdetails auf verdächtige Muster.

Null Besucher im Dashboard

Szenario:
The dashboard shows 0 live visitors even though your website is getting traffic.
Was zu tun ist:

Kontrolle: ()1) Ist das Tracking-Widget installiert? Sehen Sie sich den Quellcode Ihrer Website an und suchen Sie nach OpsIQ Drehbuch. ()2) Ist der Site-Schlüssel korrekt? Vergleichen Sie den Data-Site-Key im Skript mit dem Schlüssel in Connected Sites. (3) Ist ein CDN oder Cache, der eine veraltete Seite ohne das Skript bedient?4) Blockiert ein Werbeblocker oder CSP-Header das Skript? Überprüfen Sie die Browserkonsole auf blockierte Anfragen.

Lesen der stündlichen Heatmap

Szenario:
Your heatmap shows heavy activity between 10am-2pm on weekdays but nothing on weekends.
Was zu tun ist:

This is a B2B traffic pattern. Your visitors are working professionals browsing during business hours. Implications: (1) Schedule support staff for weekday business hours. (2) Send email campaigns Tuesday-Thursday morning. (3) Weekend maintenance windows are safe. (4) Consider offering live chat only during peak hours.

Traffic Spike aus unbekannter Quelle

Szenario:
You see a sudden spike of 500 visitors in one hour from an unknown referrer.
Was zu tun ist:

Go to Visitors and filter by the time window. Check: (1) Are they real visitors or bots? Look at session duration, pages viewed, and browser diversity. (2) If real, what page are they landing on? (3) Check the referrer URL. Someone might have linked to you from Reddit, Hacker News, or a popular blog. (4) If it is bot traffic, check Threats and consider blocking the IP range.

Warum unterscheidet sich meine Besucherzahl von Google Analytics?+

OpsIQ Die Besucher werden unterschiedlich gezählt. Es verwendet Browser-Fingerabdrücke und Cookies, während GA ein anderes Cookie-Modell verwendet. Bot-Filterung, Werbeblockerraten und Skriptladereihenfolge können ebenfalls Unterschiede verursachen. 10-20% Varianz ist normal.

Kann ich das Dashboard in ein anderes Tool einbetten?+

Das Armaturenbrett ist für die OpsIQ admin. Für externe Berichte verwenden Sie das REST API Analysedaten abrufen und in Ihrem eigenen Dashboard oder BI-Tool anzeigen.

Was bedeutet der "Bedrohungen"-Zähler?+

Es zählt IP Adressen, die OpsIQ gekennzeichnet oder blockiert wurde, basierend auf Bedrohungs-Scoring, wiederholten fehlgeschlagenen Anmeldungen oder manuellen Blöcken.

Analytik

Besucherprotokoll

Das Besucherprotokoll zeigt jeden Besuch auf Ihren verfolgten Websites an. Jede Zeile wird von einem Besucher auf eine Seite geladen. Verwenden Sie es, um das Verhalten einzelner Besucher zu untersuchen, Kampagnenverkehr zu finden und Tracking-Probleme zu diagnostizieren.

Besucherprotokoll
BesucherprotokollEine Besuchertabelle mit Filterleiste (Datum, Suche)IP/email/city, Quelle, Gerät) und Spalten für IP/E-Mail, Standort, Quelle, Gerät und Zeit mit einer gekennzeichneten Bedrohungszeile.Besucherprotokollyoursite.com7 TageSuche IP, E-Mail, Stadt...Quelle: ▾Gerät ▾IP /EMAILLAGEQUELLEGERÄTWANN[email protected]USA · New YorkgoogleDesktop2 m41.62.10.4Großbritannien · LondondirectMobil6 m[email protected]DE · Berlinutm:adsMobil14 m203.0.113.9NG · LagosreferralDesktopthreat1–25 von 3,402Sitzung →1FILTERDatum · Suche · Quelle · Gerät2REAL COLUMNSIP/email · Standort · Gerät · Bedrohung3DRILL INÖffnen Sie die vollständige Sitzung
Das echte Besucherprotokoll: Filtern Sie nach Datum, Suche und Gerät, lesen Sie dann jeden Besuch durch IP/email, Ort, Quelle, Gerät und Zeit, Bedrohungen in rot markiert.

Was jede Zeile zeigt

IP address

Der Besucher IP Adresse. anonymisiert, wenn IP Anonymisierung ist in den Einstellungen aktiviert. Klicken Sie, um alle Besuche von diesem zu sehen IP.

Land und Stadt

Entdeckt von derIP eine Adresse mit GeoIP-Daten. Erfordert MaxMind GeoLite2-Datenbank oder Cloudflare Geo-Header: Zeigt "Unbekannt", wenn GeoIP nicht konfiguriert ist.

Seite URL

Die Seite, die der Besucher geladen hat.URLlang URLs in der Tabellenansicht abgeschnitten sind.

Referrer

Woher der Besucher kam, bevor er auf Ihrer Website landete. "Direkt" bedeutet keinen Referrer (Lesezeichen, getippt URLs, einige App-Links).

Gerät und Browser

Gerätetyp des Besuchers (Desktop, Mobilgerät, Tablet) und Browser (Chrome, Safari, Firefox usw.).

Datum und Uhrzeit

Wenn die Seite geladen wurde, in Ihrer konfigurierten Zeitzone.

Kundenidentität

Wenn der Besucher identifiziert wird (über Identitätstoken oder Login), erscheint sein Name oder seine E-Mail.

Filter

Datumsbereich

Filtert Besuche auf einen bestimmten Zeitraum. Standardmäßig: letzte 7 Tage.

Suchen

Suche nach IP Anschrift, Seite URL, Referrer, Land oder Kunden-E-Mail.

Quelle

Filtern Sie nach Traffic-Quelle: Direct, Organic, Social, Referral, Paid, E-Mail.

Vorrichtung

Filtern nach Desktop, Mobile oder Tablet.

Nur neu

Zeigen Sie nur Erstbesucher, die noch nie zuvor gesehen wurden.

Bearbeitete Beispiele

Finden Sie Besucher aus einer bestimmten Kampagne

Szenario:
You launched a Google Ads campaign with UTM parameter utm_source=google&utm_medium=cpc&utm_campaign=summer-sale. How do you find those visitors?
Was zu tun ist:

Verwenden Sie im Besucherprotokoll das Suchfeld und geben Sie "Sommer-Verkauf" ein.URLs und Seite URLs Sie können auch nach Quelle = Bezahlt filtern, um weiter einzugrenzen.

Finden Sie einen Kunden, der ein Problem gemeldet hat

Szenario:
A customer emailed saying "your checkout page was broken yesterday around 3pm." How do you find their session?
Was zu tun ist:

Suchen Sie nach ihrer E-Mail-Adresse im Besucherprotokoll. Wenn sie eingeloggt waren, wird ihre Identität angezeigt. Legen Sie den Datumsbereich auf gestern. Suchen sie nach Besuchen der Checkout-Seiten um 15 Uhr. Klicken Sie auf ihre Sitzung, um den vollständigen Seitenfluss und alle JavaScript Fehler zu sehen.

Loop Hitter oder Scraper erkennen

Szenario:
You notice an IP address has 500+ visits in one hour, all to the same page.
Was zu tun ist:

Dies ist wahrscheinlich ein Bot, Scraper oder defektes Skript.IP. Überprüfen Sie: ()1Sind alle Besuche auf der gleichen Seite? (2Ist der User Agent ein bekannter Bot? (3) Ist die Sitzungsdauer immer 0 Wenn Sie als Bot bestätigt werden, gehen Sie zu Security und blockieren Sie die IP.

Besucherlog vs Sessions vs Live Feed

Besucherprotokoll

Raw Page Loads. Eine Zeile pro Seitenaufruf. Am besten für: Untersuchung bestimmter Seiten, Auffinden von Traffic aus bestimmten Quellen, Diagnose von Tracking-Problemen.

Sitzungen

Gruppen von Seitenansichten in Fahrten. Eine Zeile pro Besuchssitzung. Am besten für: Benutzerfluss verstehen, Sitzungsdauer messen, Konversionspfade identifizieren.

Lebendfutter

Aktivitäten in Echtzeit. Zeigt Besucher, die sich gerade auf Ihrer Website befinden. Am besten für: laufende Kampagnen überwachen, hochintente Besucher erkennen, Unterstützungsmöglichkeiten beobachten.

Warum sehe ich meine eigenen Besuche im Protokoll?+

OpsIQ Verfolgt alle Besuche standardmäßig.IPAnschrift der Ausgeschlossenen IPs Liste in Einstellungen > Tracking.

Warum zeigt ein Besucher "Unbekanntes" Land?+

GeoIP-Lookup erfordert entweder Cloudflare Geo-Header (automatisch bei Verwendung)Cloudflare) oder eine MaxMind GeoLite2-Datenbankdatei. Überprüfen Sie Einstellungen > GeoIP-Pfad, um sicherzustellen, dass die Datenbankdatei vorhanden und lesbar ist.

Wie lange werden Besucherdaten gespeichert?+

Besucherdaten werden für die in Einstellungen konfigurierte Aufbewahrungsdauer (Standard: 90 Tage) gespeichert, danach werden alte Datensätze automatisch durch den Cron-Auftrag bereinigt.

Analytik

Sitzungen

Sitzungen gruppieren mehrere Seitenaufrufe von derselben Person in einer einzigen Reise. Während das Besucherprotokoll einzelne Seitenladungen anzeigt, zeigen Ihnen die Sitzungen, wie sich Personen von der Landung bis zum Ausgang durch Ihre Website bewegen.

Sitzungen
SitzungenDie Tabelle Session Log mit IP, Land, Gerät, Quelle, Dauer und Seitenspalten sowie einer gekennzeichneten Bedrohungszeile.Sitzungenyoursite.comLand (NG)SitzungsprotokollIP(S)LANDGERÄTQUELLEDAUERSeiten41.62.10.4DEDesktopgoogle3m 12s6102.89.6.2NGMobildirect1m 05s388.21.4.9DEDesktoputm:ads7m 48s11203.0.113.9DEMobilreferral0m 42s21SESSION LOGGruppenfahrten2COLUMNSLand · Gerät · Quelle · Dauer3THREATRiskante Sitzungen gekennzeichnet
Das echte Session Log: Jede Besucherreise als Zeile (IP, Land, Gerät, Quelle, Dauer und Seiten) mit riskanten Sitzungen in rot markiert.

Wie Sessions funktionieren

Eine Sitzung beginnt, wenn ein Besucher seine erste Seite lädt. Sie geht weiter, während er zu mehr Seiten navigiert. Eine Sitzung endet, wenn der Besucher für die Session-Timeout-Periode inaktiv ist (Standard: 30 Minuten) oder seinen Browser schließt. Die gleiche Person, die nach dem Timeout zurückkehrt, erstellt eine neue Sitzung.

Was jede Session zeigt

Erste Seite

Die Landing Page, auf der der Besucher Ihre Website betreten hat. Das sagt Ihnen, welche Inhalte Menschen anziehen.

Letzte Seite

Die Exit-Seite, auf der der Besucher gegangen ist. Wenn die Exitseite oft die Preisseite ist, vergleichen Sie die Besucher möglicherweise mit Mitbewerbern.

Seitenzahl

Wie viele Seiten der Besucher in dieser Sitzung angesehen hat. Mehr Seiten bedeuten normalerweise mehr Engagement, aber es kann auch bedeuten, dass der Besucher verloren geht.

Dauer

Gesamtzeit vom ersten Seitenaufruf bis zur letzten Aktivität. Sitzungen mit 0 Sekunden sind Bounces (Einzelseitenansicht, keine weitere Interaktion).

Quelle

Die Traffic-Quelle für diese Sitzung (Direct, Google, Social, Referral usw.).

Land

Land aus der IP -Adresse des Besuchers erkannt.

B. Hüllen

Ob der Besucher nach dem Betrachten nur eine Seite verlassen hat. Bounced-Sitzungen haben einen roten Indikator.

Umrechnung

Ob der Besucher während dieser Sitzung ein verfolgtes Conversion-Event (Kauf, Anmeldung, Einreichung des Formulars) abgeschlossen hat.

Filter

Suchen

Suche nach IP, E-Mail, Seite URL oder Referrer innerhalb von Sitzungen.

Art der Art

Filtern Sie nach Neuen Besuchern (erste Sitzung überhaupt) oder wiederkehrenden Besuchern.

Quelle

Filtern nach Traffic-Quelle.

Land

Filtern Sie nach Ländern, um Sitzungen aus einer bestimmten Region zu sehen.

Bedrohungen/Bounced

Filtern Sie, um nur Bounced-Sitzungen oder als Bedrohung gekennzeichnete Sitzungen anzuzeigen.

Bearbeitete Beispiele

Profil eines hochwertigen Kunden

Szenario:
A customer just made a large purchase. You want to understand their journey before buying.
Was zu tun ist:

Search for their email in Sessions. Look at all their sessions: (1) How many times did they visit before buying? (2) Which pages did they view? (3) Did they use chat or open a ticket? (4) What was the total time from first visit to purchase? This tells you the typical buying journey for high-value customers.

Login von einem neuen Standort erkennen

Szenario:
A customer usually logs in from Nigeria but you see a session from Russia.
Was zu tun ist:

Vergleichen Sie das Land der letzten Sitzungen. Wenn eine Sitzung plötzlich aus einem ungewöhnlichen Land erscheint, könnte es sich um legitime Reisen oder ein kompromittiertes Konto handeln. Überprüfen: (1) Gab es einen fehlgeschlagenen Login-Versuch vor dem erfolgreichen? (2) Did the IP Änderung innerhalb derselben Sitzung? Markieren Sie es zur Überprüfung, wenn verdächtig.

Was ist der Unterschied zwischen einer Session und einem Besucher?+

Ein Besucher ist eine Person (oder ein Browser). Eine Sitzung ist ein Besuch von dieser Person. Derselbe Besucher kann im Laufe der Zeit viele Sitzungen haben.

Wie identifiziert OpsIQ wiederkehrende Besucher?+

OpsIQ verwendet eine Kombination aus Cookies, Browser-Fingerabdrücken und authentifizierten Identitätstoken. Wenn ein Besucher seine Cookies löscht und nicht eingeloggt ist, erscheinen sie als neuer Besucher.

Analytik

Lebendfutter

Der Live Feed zeigt die Besucher, die sich aktuell auf Ihrer Website befinden, in Echtzeit an. Er aktualisiert automatisch alle 15 Sekunden (konfigurierbar). Verwenden Sie ihn während Kampagnen, Produkteinführungen und vollen Support-Zeiträumen, um zu sehen, was gerade passiert.

Lebendfutter
LebendfutterEin Echtzeit-Aktivitätsstrom, der eine Live-Online-Besucherzahl und einen Feed der jüngsten Besucheraktionen nach Ländern zeigt.Lebendfutteryoursite.com37Besucher jetzt onlineLebendaktivitätJetztUS · Viewing /pricing2sUK · Starten eines Chats5sDE · hinzugefügt zum Warenkorb9sCA · abgeschlossene Anmeldung1RIGHT NOWSehen Sie, wer vor Ort ist2AUTO-REFRESHUpdates für jeden 15s3ACTSpringen Sie in einen Live-Chat
Sehen Sie, wer diese Sekunde auf Ihrer Website ist und was sie tun, indem Sie automatisch alle 15 Sekunden aktualisieren.

Wie es funktioniert

Der Live Feed befragt Ihren Server im konfigurierten Aktualisierungsintervall. Jede Zeile zeigt einen Besucher an, der sich gerade auf Ihrer Website befindet: seine aktuelle Seite, Land, Gerät, Quelle, Sitzungsdauer und Seitenanzahl. Grüne Highlights zeigen neue Aktivitäten seit der letzten Aktualisierung an. Klicken Sie auf eine beliebige Besucherzeile, um die vollständigen Sitzungsdetails zu sehen.

Einstellungen

Erfrischungsintervall

Wie oft wird der Live-Feed aktualisiert. 15 Sekunden. Geringere Werte:5-10s) schnellere Updates geben, aber mehr Server-Ressourcen verwenden.30-60s) sind einfacher auf dem Server, aber weniger Echtzeit.

Aktiver Grenzwert

Wie lange ein Besucher nach dem letzten Seitenladen als "aktiv" betrachtet wird. 90 Sekunden. Wenn ein Besucher eine Seite lädt und sie dann liest für 2 Minuten ohne Klick verschwinden sie nach dem Schwellenwert aus dem Live-Feed.

Pausentaste

Klicken Sie auf Pause, um das automatische Update zu stoppen. Nützlich, wenn Sie Details lesen möchten, ohne die Liste zu aktualisieren. Klicken sie zum Neustart fortsetzen.

Bearbeitete Beispiele

Finde einen heißen Lead während einer Kampagne

Szenario:
You are running a product launch. A visitor just viewed your homepage, then features, then pricing, and is now on the checkout page.
Was zu tun ist:

This is high-intent behavior. In the Live Feed: (1) Click the visitor to see their session. (2) If they start a chat, the AI will have their full journey context. (3) If they leave without buying, they become a lead in the Leads page. (4) Consider creating a proactive rule to show a chat message when visitors reach checkout.

Zu viele Besucher von der gleichen IP

Szenario:
You see 20 visitors from the same IP address, all on different pages.
Was zu tun ist:

Dies könnte sein: ()1) Ein Büro mit geteiltem Internet. Überprüfen Sie, ob die Besuche wie echte Menschen aussehen (verschiedene Seiten, angemessene Sitzungsdauer).2) Ein Bot oder Scraper. Überprüfen Sie, ob die Sitzungen sehr kurz sind0-1Sekunden) oder das systematische Schlagen von Seiten. (3) Ein Lasttest. Wenn Sie automatisierte Tests durchführen, schließen Sie die IP vom Tracking.

Warum zeigt der Live-Feed 0 Besucher, wenn meine Website Traffic hat?+

Check: (1) Is the widget script installed on your site? (2) Is the site key correct? (3) Has the active threshold passed? (4) Are visitors using aggressive ad blockers that block the tracking script?

Kann ich den Live-Feed nach Land oder Gerät filtern?+

Der Live-Feed zeigt alle aktiven Besucher an. Für gefilterte Ansichten verwenden Sie die Visitor Log oder Sessions Seiten mit ihren Filteroptionen. Der Live Feed ist absichtlich einfach für Echtzeitüberwachung.

Analytik

Obere Seiten

Die Top-Seiten zeigen, welche Seiten auf Ihrer Website die meisten Zugriffe erhalten. Sie werden nach Besuchen, Interaktionen, Conversions und Supportaktivitäten eingestuft. Mit dieser Funktion können Sie Ihre besten Inhalte identifizieren, unterdurchschnittlich leistungsfähige Seiten finden und Seiten entdecken, die zu Supportanfragen führen.

Obere Seiten
Obere SeitenEine Liste der meistbesuchten Seiten mit horizontalen Besuchsbalken und Zählungen.Obere Seitenyoursite.comMeistbesuchte Seiten/pricing3,402/2,910/docs1,740/blog/seo-guide980/signup6401RANKEDMeistbesuchte Seiten2SIGNALSBesuche & Conversions3FINDSeiten, die Fahrkarten fahren
Ihre Seiten werden nach Traffic und Engagement eingestuft, sodass Sie Top-Inhalte und Seiten erkennen können, die Unterstützung generieren.

Was jede Seite zeigt

Seite URL

Der vollständige Pfad URL. Ähnliche Seiten (z. B. Produktvarianten) werden gruppiert, wenn die Gruppierung aktiviert ist.

Ansichten

Gesamtzahl der Male, die diese Seite im ausgewählten Datumsbereich geladen wurde.

Einzigartige Besucher

Wie viele verschiedene Personen diese Seite angesehen haben (eine Person, die dieselbe Seite zweimal betrachtet, zählt als 1 eindeutig).

Absprungrate

Prozentsatz der Besucher, die Ihre Website verlassen haben, nachdem Sie nur diese Seite angesehen haben. Hoher Sprung auf Landing Pages = Problem. Hohes Sprungen auf "Danke" Seiten = normal.

Durchschnittliche Zeit

Wie lange verbringen Besucher auf dieser Seite im Durchschnitt. Sehr kurz = nicht lesen. Sehr lang auf einer Formularseite = Verwirrung.

Chat beginnt

Wie viele chat-gespräche wurden von dieser seite aus gestartet hoher chat beginnt auf einer produktseite bedeutet, dass die produktbeschreibung möglicherweise unklar ist.

Support-Tickets

Wie viele Support-Tickets wurden von Besuchern erstellt, die auf dieser Seite waren. Hohe Ticketzahl = potenzielles UX- oder Inhaltsproblem.

Bearbeitete Beispiele

Finden Sie Seiten, die Support-Fragen antreiben

Szenario:
Your support team keeps getting questions about shipping. Which page is failing?
Was zu tun ist:

Die Seite mit den meisten Supportfragen hat wahrscheinlich unklare Informationen. Beheben Sie den Seiteninhalt und überwachen Sie, ob die Supportfragen abnehmen.

Finden Sie Seiten mit hoher Exit-Rate

Szenario:
You want to know where people leave your site most often.
Was zu tun ist:

Sortieren nach Absprungraten. Ignorieren von Seiten, die natürlicherweise Ausstiegspunkte sind (Dankeseiten, Bestätigungsseiten). Konzentrieren Sie sich auf Seiten, bei denen Besucher angehalten werden sollten: Produktseiten, Preise, Funktionen. Diese benötigen bessere Call-to-Action oder klarere Inhalte.

Warum zeigt eine Seite 0 Views an, obwohl ich weiß, dass sie Traffic bekommt?+

Kontrolle: ()1) Ist das Tracking-Widget auf dieser speziellen Seite installiert? Einzelseitige Apps können keine Seitenaufrufe bei Routenänderungen auslösen. (2) Ist die Seite in den Tracking-Einstellungen ausgeschlossen? (3) Serviert ein CDN eine zwischengespeicherte Version ohne das Tracking-Skript?

Analytik

Geointelligenz

Geo Intelligence zeigt, woher Ihre Besucher kommen, nach Land, Stadt, Gerät und Quelle. Nutzen Sie es, um Ihre geografischen Märkte zu verstehen, Sprachunterstützung zu wählen, regionales Marketing zu planen und verdächtige Verkehrsmuster zu erkennen.

Geo-Geo
GeointelligenzEine Karte der Besucherstandorte neben einem Bar-Ranking pro Land.Geointelligenzyoursite.comBesucher nach StandortDEDEDEDENG1MARKETSLand, Stadt, Gerät2PLANSprache & Regionen3WATCHSpot-Ungeradeverkehr
Woher Ihre Besucher kommen (nach Land, Stadt und Gerät), um Märkte zu bemessen und ungewöhnlichen Verkehr zu entdecken.

Was du siehst

Top Länder Balkendiagramm

Die Länder, die nach Besucherzahl geordnet werden. Klicken Sie auf ein Land, um Daten auf Stadtebene zu erhalten.

Landdoughnut

Visuelle Aufschlüsselung des Verkehrs nach Ländern.

Vollständige Ländertabelle

Jedes Land mit Besuchern im ausgewählten Zeitraum, in dem die Anzahl der Besucher, die Sitzungszahl, die Absprungrate und die Konversionsrate angezeigt werden.

Stadt-Drilldown

Klicken Sie auf ein Land, um zu sehen, welche Städte in diesem Land die meisten Besucher haben.

Wie GeoIP-Erkennung funktioniert

OpsIQ erkennt den Besucherstandort auf zwei Arten: ()1) Cloudflare Geo-Header. Wenn Ihre Website dahinter liegt Cloudflare Die Ländererkennung ist automatisch und genau. ()2) MaxMind GeoLite2-Datenbank. Laden Sie die kostenlose Datenbank herunter und konfigurieren Sie den Pfad in Einstellungen. Die Erkennung auf Stadtebene erfordert nicht nur die Länderdatenbank, sondern auch die GeoLité2-City-Datenbank.

VPN und Proxy Traffic

Besucher, die VPNs nutzen, scheinen vom Standort des VPN-Servers zu kommen, nicht von ihrem tatsächlichen Standort. OpsIQ Kann und sollte nicht versuchen, VPNs zu umgehen. Wenn Sie ungewöhnliche Ländermuster sehen, denken Sie daran 10-20% Besucher können VPNs verwenden.

Bearbeitete Beispiele

Unerwarteter Landverkehr

Szenario:
You run a US-only business but 30% of traffic is from India.
Was zu tun ist:

Kontrolle: ()1) Sind das echte Besucher? Sehen Sie sich Sitzungsdauer und angesehene Seiten an. Sehr kurze Sitzungen mit hohem Bounce = wahrscheinlich Bots. (2Werden sie dich über Google finden?3Wenn der Traffic echt und engagiert ist, sollten Sie Indien-spezifische Preise oder Inhalte hinzufügen.

Entscheidung für Sprachunterstützung

Szenario:
You want to know if you should translate your site into Spanish.
Was zu tun ist:

Wenn die spanischsprachigen Länder (Spanien, Mexiko, Kolumbien, Argentinien usw.) zusammen mehr als 10% Ihres Datenverkehrs mit niedrigen Absprungraten ausmachen, ist eine Übersetzung eine Überlegung wert.

Planen der regionalen Unterstützungsverlagerung

Szenario:
You need to decide support team hours for different time zones.
Was zu tun ist:

Verwenden Sie die stündliche Heatmap (auf Dashboard) in Kombination mit Geo Intelligence. 40% Ihr Verkehr kommt aus Europa und 35% Aus den USA braucht man Abdeckung für beide Zeitzonen. Die Heatmap zeigt genau, wann jede Region am aktivsten ist.

Land mit Besuchen, aber keine Bestellungen

Szenario:
Germany shows 500 visitors this month but zero sales.
Was zu tun ist:

Untersuchen: ()1Vielleicht ist Ihre Preisgestaltung für diesen Markt nicht wettbewerbsfähig. ()2) Verschiffen Sie nach Deutschland? Überprüfen Sie, ob auf Ihrer Versandseite Deutschland erwähnt wird. (3) Ist Ihr Checkout in EUR verfügbar? Währungsinkongruenz verursacht verlassene Checkouts. (4) Sind diese Besucher aus einer einzigen Quelle, die Low-Intent Traffic sein könnte?

Warum zeigt ein Besucher "Unbekanntes" Land?+

GeoIP ist nicht konfiguriert. Entweder richten Sie Cloudflare ein (was automatisch Geo-Header hinzufügt) oder laden Sie die MaxMind GeoLite2-Datenbank herunter und legen den Dateipfad unter Einstellungen > GeoIP Pfad fest.

Kann ich den Verkehr aus bestimmten Ländern blockieren?+

OpsIQ sperrt nicht nach Ländern. Verwenden Sie Ihren Webserver oder Cloudflare Firewall-Regeln für länderbasiertes Blockieren.OpsIQ Fokussiert sich auf Sichtbarkeit, nicht auf Zugriffskontrolle auf Netzwerkebene.

Analytik

Intenser Trichter

Der Intent Funnel klassifiziert Besuchersitzungen nach dem, was sie zu tun scheinen: durchsuchen, recherchieren, vergleichen, kaufen, Unterstützung erhalten oder gehen. Verwenden Sie es, um die Balance der Absicht auf Ihrer Website zu verstehen und festzustellen, wo Besucher absteigen.

Intenser Trichter
Intenser TrichterEin Funnel von Browse zu Research, um mit Zählungen zu vergleichen, plus Unterstützung und verlassenden Chips.Intenser Trichteryoursite.comBrowsen · 8,200Forschung · 4,100Vergleichen Sie · 1,650Kaufen · 520Unterstützung 6%Verlassen 11%1CLASSIFYWas Besucher wollen2STAGESBrowse zum Kaufen3FIXFinden Sie den Drop-Off
Sitzungen nach Absicht klassifiziert (Browsen, Recherchieren, Vergleichen, Kaufen), so dass Sie genau sehen können, wo die Leute absteigen.

Absichtskategorien

Browsen

Besucher, die sich beiläufig umsehen. Kurze Sitzungen, wenige Seiten, kein bestimmtes Ziel erkannt.

Forschung

Besucher, die Produkt-/Funktionsseiten, Dokumente oder Bloginhalte lesen. Längere Zeit auf der Seite, mehrere Inhaltsseiten.

Vergleichen

Besucher, die Preise anzeigen, einen Planvergleich oder Feature-Tabellen anschauen.

Kauf

Besucher an der Kasse, im Warenkorb oder auf den Anmeldeseiten. Gute Absicht. Das sind Ihre Konvertierungsmöglichkeiten.

Unterstützungssuche

Besucher auf Hilfeseiten, Kontaktseiten oder Chat-Anfänger. Sie brauchen Unterstützung.

Aufprall

Besucher, die nach einer Seite gegangen sind. Geringes Engagement.

Wie man den Trichter liest

Interpretieren Sie Ihren Funnel

Szenario:
1,000 visitors viewed Pricing. 270 opened chat. 92 started checkout. 64 paid. 18 opened support tickets.
Was zu tun ist:

Die Preisseite ist stark genug, um eine Absicht zu erzeugen. Chat ist wichtig für den Kaufpfad: 27% Besucher, die vor dem Kauf mit dem Chat in Kontakt treten. Supporttickets nach dem Checkout können auf Aktivierung oder Zahlungsverwechslung hindeuten.1Stellen sie sicher, dass der ki-chat die preisfragen gut beantwortet.2) Untersuchen Sie die 18 Post-Checkout Support Tickets für gemeinsame Probleme.

Zeitfilter

Wenn die Werbeaktionen Verwirrung stiften, dann ist es nicht möglich, dass wir uns mit dem "Buying"-Intentions- und möglicherweise "Support-Seeking"-Anteil an den Tag legen.

Wie klassifizieren Sie OpsIQ Intention?+

OpsIQ Blick auf die Seite URLs, Sitzungsverhalten und Zeitmuster. Preisseiten signalisieren Vergleichsabsicht. Checkout-Seiten signal Kaufabsicht. Hilfe / Kontaktseiten signalen Unterstützungsabsicht Die Klassifizierung ist heuristisch und nicht KI-gesteuert.

Kann ich die Intent-Kategorien anpassen?+

Die Kategorien sind auf Basis von gängigen Web-Verhaltensmustern eingebaut.

Analytik

Trichter, Rückhaltesysteme und Wege

Erstellen Sie benutzerdefinierte Reisen aus Seiten- oder Ereignisschritten, messen Sie die Kohortenbindung und entdecken Sie die Wege, die Besucher am häufigsten durch eine Website nehmen.

Produktbildschirm
TrichterEin benutzerdefinierter Funnel zeigt jede Seite/Eventschritt, die verbleibenden Besucher und den Conversion-Prozentsatz an.TrichterArbeitsbereichSTEPS4CONVERSION28.4%WINDOW72hLEBENDER ARBEITSPAZWERKPreisgestaltung betrachtet1,420 Besucher100%Ausgewählter Plan780 Besucher54.9%Checkout beginnt530 Besucher37.3%Auftrag abgeschlossen403 Besucher28.4%1DEFINEWählen Sie 2–8 Schritte2MASSNAHMENSet-Konversionsfenster3VERBESSERUNGFinden Sie den größten Tropfen
Ein benutzerdefinierter Funnel zeigt jede Seite/Eventschritt, die verbleibenden Besucher und den Conversion-Prozentsatz an.

Trichter

Erstellen Sie einen benannten Trichter mit 2 bis 8 Ein Besucher wird nur gezählt, wenn die bestellten Schritte innerhalb dieses Zeitfensters stattfinden. Verwenden Sie den Dropdown zwischen den Schritten, um auszuwählen, wo Wiederholungen, Fehler, Seitengeschwindigkeit oder Nachrichten überprüft werden sollen.

Retention

Retention gruppiert Besucher in wöchentliche Kohorten und zeigt an, wie viele zurückkehren. 6, 8 oder 12 Wochenhorizont: Halten Sie die Kohortendefinition beim Vergleich von Veröffentlichungen oder Kampagnen stabil.

Wege

Pfade listet die gebräuchlichsten Seitenfolgen auf. 2 bis 5 Seiten, um das Ergebnis lesbar zu halten. Verwenden Sie es, um unerwartete Umwege, gemeinsame Ausgänge und Inhalte zu finden, die wiederholt der Konvertierung vorausgehen.

Benutzerdefinierte Trichter sind analytische Definitionen, keine Automatisierungen. Um auf einen abgeschlossenen Schritt zu reagieren, erstellen Sie ein Konvertierungsziel, Segment, Trigger oder Workflow.

Analytik

Sitzungswiedergabe

Session Replay lässt Sie eine Zeitleiste sehen, was ein Besucher auf Ihrer Website gemacht hat: welche Elemente er angeklickt hat, wie er gescrollt ist, wo er geschwebt hat und was er eingegeben hat (mit maskierten sensiblen Feldern).

Sitzungswiedergabe
SitzungswiedergabeEin Wiedergabe-Player zeigt einen Seitenansichtsport mit einem Cursor, einem Sitzungsinfofeld und einem Timeline-Scrubber.Sitzungswiedergabeyoursite.comJetzt kaufenSESSUNGDauer 3m 12s14 klicktUS · Desktop-PCChrome 1241WATCHKlicks, Scroll, Typ2MASKEDSensible Felder versteckt3DIAGNOSEBug-Berichte überprüfen
Wiedergeben Sie genau das, was ein Besucher getan hat: Klicks, Scrollen, Tippen (empfindliche Felder maskiert), auf einer Zeitleiste Scrubber.

Die richtige Session finden

Suchen Sie auf der Seite Sitzungen nach Sitzungen mit gemeldeten Problemen, hohen Seitenzahlen ohne Konvertierung oder Sitzungen von Kunden, die Supporttickets eingereicht haben. Klicken Sie zum Öffnen der Timeline-Ansicht auf das Replay-Symbol.

Was Replay Shows

Zeitleiste

Eine horizontale Leiste, die Ereignisse im Laufe der Zeit anzeigt. Klicken Sie irgendwo auf der Timeline, um zu diesem Moment zu springen.

Seitennavigation

Jede Seite wird als Segment auf der Zeitleiste angezeigt. Sie können den genauen Weg sehen, den der Besucher genommen hat.

Klicks

Klickereignisse werden als Punkte auf der Timeline und als Highlights auf der Seitenrekonstruktion angezeigt.

Scrollen

Die Scroll-Tiefe wird verfolgt, so dass Sie sehen können, wie weit unten der Besucher gelesen hat.

Formwechselwirkung

Feldfokus und Eingabeereignisse werden aufgezeichnet, Texteingaben in Kennwort- und sensible Felder sind standardmäßig maskiert.

Privatsphäre und Maskierung

Session Replay maskiert standardmäßig sensible Formularfelder. Passwortfelder, Kreditkarteneingaben und Felder, die mit data-opsiq-mask markiert sind, werden nie aufgezeichnet. Sie können zusätzliche Maskierungsregeln unter Einstellungen > Tracking konfigurieren. Wenn Ihre Compliance-Richtlinie es erfordert, können Sie die Wiedergabe vollständig deaktivieren.

Diagnose eines kaputten Checkouts

Szenario:
A customer says "I tried to buy but the button did nothing."
Was zu tun ist:

Suchen Sie ihre Sitzung auf der Seite Sessions (Suche per E-Mail). Öffnen Sie die Wiederholung. Sehen Sie sich das Segment Checkoutseite an.1Haben sie den richtigen Button geklickt? ()2) Hat a JavaScript Fehler auftreten? (Überprüfen Sie die JS-Fehlerseite für diese Zeit.)3Hat die Seite neu geladen oder eine Fehlermeldung angezeigt? (4) War ein erforderliches Feld leer? Die Wiederholung zeigt genau, was passiert ist.

Wie viel Speicherplatz wird von Session Replay verwendet?+

Replay-Daten wachsen mit dem Datenverkehrsvolumen. Verwenden Sie Aufbewahrungseinstellungen, um alte Wiedergabedaten automatisch zu bereinigen. Für Websites mit hohem Datenverkehr sollten Sie eine kürzere Speicherdauer für die Wiedergabe (z. B. 30 Tage) in Betracht ziehen, um den Speicher zu verwalten.

Können Besucher sich von der Wiederholung abmelden?+

Wenn in den Einstellungen "Respect Do Not Track" aktiviert ist, werden Besucher mit DNT-Headern nicht aufgezeichnet.

Analytik

Ereignisprotokoll

Das Ereignisprotokoll zeigt jedes Ereignis, das OpsIQ aufgezeichnet hat: Seitenaufrufe, Klicks, Chatstarts, Ticketerstellung, Verkäufe und benutzerdefinierte Ereignisse. Verwenden Sie es zum Debuggen von Integrationen, Verifizieren der Webhook-Lieferung und Verstehen der Abfolge von Aktionen.

Ereignisprotokoll
EreignisprotokollEin chronologisches Ereignisprotokoll mit farbcodierten Abzeichen: Seitenaufruf, Chat, Verkauf, Webhook und benutzerdefiniert.Ereignisprotokollyoursite.compageviewUS · /pricing12:04:01chat.startUK · Widget geöffnet12:04:09Verkauf$49.00 · Ordnung #104212:05:22Netzhakenpayment.succeeded12:05:23customdemo_booked12:06:101EVERYTHINGJedes aufgezeichnete Ereignis2DEBUGVerifizieren Sie die Webhook-Lieferung3ORDERSiehe die genaue Sequenz
Eine Zeitleiste von allem OpsIQ -Datensätzen (Seitenansichten, Chats, Verkäufe, Webhooks, benutzerdefinierte Ereignisse) für Debugging und Audit.

Eingebaute Events (automatisch)

pageview

Wird jedes Mal ausgelöst, wenn eine getrackte Seite geladen wird. Enthält URL, Titel, Referrer und Zeitstempel.

chat.started

Gefeuert, wenn ein besucher das chat-widget öffnet und seine erste nachricht sendet.

chat.message

Gefeuert für jede nachricht in einer chat-konversation (beide besucher und ai agent).

ticket.created

Wird ausgelöst, wenn ein neues Support-Ticket erstellt wird (aus Chat, E-Mail, Widget oder Admin).

ticket.replied

Gefeuert, wenn eine Antwort zu einem Ticket hinzugefügt wird.

order.completed

Gefeuert, wenn ein Kauf über eine verbundene Plattform abgeschlossen wird.

form.submitted

Wird ausgelöst, wenn ein verfolgtes Formular gesendet wird (wenn das Formulartracking aktiviert ist).

identify

Gefeuert, wenn ein Besucher über einen Identitätstoken identifiziert wird.

security. login_failed

Gefeuert, wenn ein Login-Versuch fehlschlägt.

Zollrechtliche Ereignisse

Sie können benutzerdefinierte Ereignisse von Ihrer Website oder Ihrem Server an OpsIQ senden. Benutzerdefinierten Veranstaltungen sind nützlich für die Verfolgung Aktionen, die speziell für Ihr Unternehmen: Tastenklicks, Feature-Nutzung, Videowiedergabe, Downloads, etc.

JavaScript · benutzerdefiniertes Ereignis aus dem Browser
// Send a custom event from the browser
window.OpsIQ = window.OpsIQ || [];
window.OpsIQ.push(["track", "plan_selected", {
  plan: "pro",
  billing: "annual",
  value: 99
}]);
PHP · Aufzeichnung einer Kontaktaktivität von Ihrem Server
// Record a server-side activity for a contact (PHP)
$ch = curl_init("https://your-opsiq-domain.com/api/v1.php");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer opq_your_key",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "action" => "crm.activities.record",
        "site_key" => "site_abc123",
        "email" => "[email protected]",
        "event" => "subscription.upgraded",
        "value" => 50,
        "currency" => "USD",
    ]),
]);
$response = curl_exec($ch);
curl_close($ch);

Filterereignisse

Art der Veranstaltung

Filtern Sie nach bestimmten Ereignisnamen: pageview, chat. started, ticket. created usw.

Datumsbereich

Zeigen Sie Ereignisse aus einem bestimmten Zeitraum.

Suchen

Suchen Sie Ereignisdaten nach Schlüsselwörtern (URL, E-Mail, Ereigniseigenschaftswerte).

Wie lange werden Veranstaltungen gehalten?+

Ereignisse folgen der Aufbewahrungsrichtlinie, die in Einstellungen festgelegt ist. Standardmäßig: 90 Tage. Hochwertige Ereignisse (Käufe, Sicherheitsereignisse) können mit längerer Speicherung konfiguriert werden.

Kann ich Ereignisse in A/B-Experimenten verwenden?+

Ja. Beim Erstellen eines Experiments wählen Sie ein Konvertierungsereignis aus. Jedes integrierte oder benutzerdefinierte Ereignis kann als Konvertierziel verwendet werden.

Analytik

A/B-Experimente

Mit Experimenten können Sie zwei Versionen einer Seite oder eines Features testen und messen, welche besser funktioniert. OpsIQ verfolgt Impressionen, Conversions und statistische Signifikanz.

A/B-Experimente
A/B-ExperimenteZwei Variantenkarten vergleichen die Konversionsraten, mit einem Gewinnerabzeichen und der Bedeutung für die führende Variante.A/B-Experimenteyoursite.comVariante A4.2%Umwandlung · 1,020 viewsVariante BWINNER6.8%Umwandlung · 1,005 views+62% Aufzug · 96% signifikant1PRÜFUNGZwei Varianten Kopf-an-Kopf2MASSNAHMENConversions & Signifikanz3BESCHLUSSErklären Sie einen Gewinner
Führen Sie zwei Varianten aus, beobachten Sie Konvertierungen und statistische Signifikanz und erklären Sie den Gewinner.

Wie Experimente funktionieren

1
Erstellen Sie ein Experiment

Geben Sie ihm einen Namen, definieren Sie Ihre primäre Metrik (Konversionsereignis) und legen Sie die Varianten fest (Kontrolle und Test).

2
Laufen Sie es

OpsIQ ordnet Besuchern zufällig Varianten zu und verfolgt ihr Verhalten. Ändere das Experiment nicht, während es läuft.

3
Lesen Sie die Ergebnisse

Nachdem genügend Daten gesammelt wurden, überprüfen Sie das Konfidenzniveau.95% Vertrauen bedeutet, dass du sein kannst 95% Sicher ist der Unterschied real, nicht zufällig.

Versuchszustände

Entwurf

Erstellt, aber noch nicht gestartet. Sie können immer noch Varianten und Metriken bearbeiten.

Laufen

Aktive Zuordnung von Besuchern zu Varianten. Bearbeiten Sie nicht während der Ausführung.

Abgeschlossen

Statistische Signifikanz erreicht oder manuell gestoppt.

Archiviert

Die Ergebnisse wurden überprüft und das Experiment wird nicht mehr in der aktiven Liste benötigt.

Best Practices

Definieren Sie Ihre Metrik vor dem Start

Entscheiden Sie, was Sie messen, bevor Sie beginnen. Die Wahl einer Metrik nach dem Sehen der Ergebnisse führt zu Verzerrungen.

Interner Verkehr ausschließen

Fügen Sie die IP -Adressen Ihres Teams zur Ausschlussliste hinzu, damit Mitarbeiterbesuche keine Ergebnisse verzerren.

Lange genug laufen

Stoppen Sie ein Experiment nicht nach 100 Besuchern. Sie benötigen Hunderte oder Tausende von Besuchern pro Variante für zuverlässige Ergebnisse.

Testen Sie eine Änderung zu einer Zeit

Wenn Sie die Überschrift UND die Buttonfarbe ändern, wissen Sie nicht, welche Änderung die Verbesserung verursacht hat.

Schreibe deine Entscheidung auf

Nachdem das Experiment beendet ist, notieren Sie sich, welche Variante gewonnen hat und warum Sie es implementiert haben.

Wie viele Besucher benötige ich für ein gültiges Experiment?+

It depends on the baseline conversion rate and the effect size you want to detect. As a rule of thumb: at least 500 visitors per variant for a 20% effect size. For smaller effects, you need thousands.

Kann ich mehrere Experimente gleichzeitig durchführen?+

Ja, aber Vorsicht. Wenn zwei Experimente dieselbe Seite betreffen, können ihre Ergebnisse interagieren. Es ist sicherer, Experimente auf verschiedenen Seiten oder Features gleichzeitig durchzuführen.

Analytik

JavaScript Fehler

JavaScript Fehler sammeln clientseitige Fehler von Ihren Website-Besuchern. Ein defekter Button, ein fehlgeschlagener API Rufen Sie an, oder eine fehlende Ressource erscheint hier. Verwenden Sie sie, um Fehler zu finden und zu beheben, die echte Kunden betreffen.

JS-Fehler
JavaScript FehlerEine Liste der erfassten Front-End-Fehler mit Schweregradpunkten, Quelldatei, Browser und Ereignis zählt.JavaScript Fehleryoursite.comJüngste FehlerTypeError: kann nicht x von undefiniert lesencheckout. js:42 · Chrome×214404 Beladung /assets/app.cssIndex · Safari×88Uncaught (im Versprechen) NetworkErrorapi. js:17 · Firefox×51Warnung vor der Abnutzung: Entladeereignisvendor. js · Edge×331CAPTUREClientseitige Fehler2IMPACTZähler und Browser3FIXSquash echte Bugs
Echte Besucher, die hier auf eine defekte Codeoberfläche treffen (Nachricht, Quelle, Browser und wie oft), damit Sie beheben können, worauf es ankommt.

Was jeder Fehler zeigt

Fehlermeldung

Der JavaScript -Fehlertext (z. B. "TypeError: Cannot read properties of anddefined").

Seite URL

Auf welcher Seite der Fehler aufgetreten ist.

Browser und Gerät

Welcher Browser und welcher Gerätetyp den Fehler gesehen hat. Einige Fehler sind browserspezifisch.

Stapelspur

Der Codespeicherort, an dem der Fehler aufgetreten ist.

Erster Blick

Als dieser Fehler zuerst auftauchte.

Zuletzt gesehen

Als dieser Fehler zuletzt aufgetreten ist.

Zähler

Wie oft wurde dieser Fehler aufgezeichnet?

Betroffene Sitzungen

Wie viele verschiedene Besuchersitzungen haben diesen Fehler erlebt?

Priorisierung von Fehlern

Nicht alle JavaScript Fehler brauchen sofortige Aufmerksamkeit. Priorisieren von: ()1) Fehler auf kritischen Seiten (Checkout, Anmeldung, Login), (2) Fehler mit hoher Sitzungszahl, (3) Fehler, die kürzlich aufgetreten sind (mögliche Regression von einer Codeänderung), (4) Fehler auf Ihrem eigenen Code (nicht Skripte von Drittanbietern).

Beheben eines defekten Checkout-Buttons

Szenario:
The JS Errors page shows "TypeError: Cannot read properties of undefined (reading submit)" on /checkout, affecting 45 sessions this week.
Was zu tun ist:

This means 45 real customers could not complete checkout. Steps: (1) Open the page in the same browser/device combination. (2) Open browser console and reproduce the error. (3) Check the stack trace to find the exact line of code. (4) Fix the bug, deploy, and monitor the error count going to zero.

Erfasst OpsIQ Fehler von Skripten von Drittanbietern?+

Ja, OpsIQ Captures alle JavaScript Fehler auf der Seite, einschließlich Fehler aus Analytics-Skripten, Chat-Widgets und Anzeigenskripten. Filtern nach URL in der Stack-Spur, um sich auf den eigenen Code zu konzentrieren.

Wie kann ich bekannte harmlose Fehler ausschließen?+

Sie können bestimmte Fehler nicht unterdrücken OpsIQ, aber Sie können die Liste nach Seite filtern URL Fehlermeldung beheben oder ignorieren von Browsererweiterungen (sie werden oft als Fehler aus unbekannten Quellen angezeigt).

Verkäufe

Verkäufe und Umwandlungen

Sales Tracking verbindet Ihren Shop oder Ihre Abrechnungsplattform mit OpsIQ, sodass Sie Einnahmen neben dem Besucherverhalten sehen können. Jeder Kauf wird einer Besucherreise zugeschrieben, damit Sie wissen, welche Seiten, Kampagnen und Kanäle den Umsatz antreiben.

Verkäufe
VerkäufeDer Verkaufsbildschirm: eine Gesamtsumme der Einnahmen mit einer Kontrolle über den gesamten Zeitraum, einer Suche und einer Tabelle für die letzten Einkäufe (Datum, Kunde, Plattform, Betrag, Quelle).Verkäufeyoursite.comEINNAHMEN$42,180+18%Alle Zeiten ▾E-Mail suchen, IP, Bestell-ID...Käufe in letzter ZeitDATUMKUNDENPLATTFORMBETRAGQUELLEJun 3[email protected]Shopify$49googleJun 3[email protected]WooCommerce$129directJun 2[email protected]Stripe$480Werbeanzeigen1EINNAHMENBestellungen und Verlängerungen2RECENT PURCHASESDatum · Kunde · Betrag3ATTRIBUTEDZu der Verkehrsquelle
Der reale Verkaufsbildschirm, die Einnahmen oben, dann die letzten Einkäufe (Datum, Kunde, Plattform, Betrag), jeweils zugeordnet seiner Traffic-Quelle.

Verkaufs-Dashboard

Die heutigen Verkäufe

Einnahmen aus Bestellungen, die heute abgeschlossen wurden. Aktualisiert sich mit jedem neuen Bestellereignis von Ihrer verbundenen Plattform.

Diese Woche / diesen Monat / insgesamt

Die im Berichtszeitraum aggregierten Einnahmen werden von diesen Gesamtbeträgen abgezogen.

Trendkurve

Liniendiagramm mit den täglichen Einnahmen über den ausgewählten Zeitraum hinweg: Suchen Sie nach Spikes (Promotions, Kampagnen) und Dips (Ausgaben, saisonal).

Top-Konvertierungsquellen

Welche Traffic-Quellen zu den meisten Einkäufen führen. "Direkte" Käufer haben Ihre Website oft mit einem Lesezeichen versehen. "Google" -Käufer haben Sie durch die Suche gefunden.

Käufe in letzter Zeit

Die neuesten Bestellungen mit Kunden-E-Mail, Betrag, Währung und gekauften Artikeln.

Leitfäden für den Bahnsteigaufbau

Shopify

Gehen Sie zu Connectors >Shopify Erstellen Sie eine benutzerdefinierte App in Ihrem Shopify admin (Einstellungen > Apps und Vertriebskanäle > Apps entwickeln). Zuwendungsbereiche: read_orders, read_customers, reading_products. API Zugangs-Token. In OpsIQ Geben Sie Ihre Shop-Domain ein (z.B., your-store.myshopify.com) und das Access-Token. Klicken Sie auf Testverbindung. Wenn erfolgreich, aktivieren Sie die Webhook-Synchronisierung für Echtzeitbestellbenachrichtigungen.

WooCommerce

Gehen Sie zu Connectors >WooCommerce. In Ihrem WordPress admin, gehen Sie zu WooCommerce> Einstellungen > Fortgeschritten > REST API. Erstellen Sie einen Schlüssel mit Lese-/Schreibberechtigung, kopieren Sie den Verbraucherschlüssel und das Verbrauchergeheimnis OpsIQ Betreten Sie Ihre Website URL, Consumer Key und Verbrauchergeheimnis. Klicken Sie auf Testverbindung.

BigCommerce

Gehen Sie zu Connectors > BigCommerce. In Ihrem BigCommerce-Administrator gehen Sie zu Erweiterte Einstellungen >API Erstellen Sie eine V2 / V3 API Konto mit Leseumfang für Bestellungen, Kunden und Produkte. Kopieren Sie das Zugriffstoken, die Client-ID und API Betreten Sie sie in OpsIQ und Test.

Magento 2

Gehe zu Connectors > Magento. gehe in deinem Magento-Administrator zu System > Integrationen. Erstellen einer neuen Integration mit API Ressourcenzugriff auf Vertrieb, Kunden und Katalog. Aktivieren Sie die Integration und kopieren Sie das Zugriffstoken. Geben Sie es ein OpsIQ mit Ihrer Magento-Basis URL.

PrestaShop

Gehen Sie zu Connectors > PrestaShop. In Ihrem Prestashop-Administrator gehen Sie zu Erweiterte Parameter > Webservice. Aktivieren Sie den Webservice und erstellen Sie einen neuen Schlüssel. Gewähren Sie Zugriff auf Bestellungen, Kunden und Produkte. Kopieren Sie den Schlüssel und geben Sie ihn ein OpsIQ Mit Ihrem Shop URL.

OpenCart

Gehe zu Connectors > OpenCart. Generate API Anmeldeinformationen aus Ihrem OpenCart Admin Panel.API URL, Benutzername und Key in OpsIQ Der Stecker verwendet OpenCarts REST API für Bestell- und Kundendaten.

osCommerce

Gehen Sie zu Connectors > osCommerce. Konfigurieren Sie den Datenbankzugriff oder API Anmeldeinformationen wie in den Connector-Einstellungen dokumentiert. osCommerce Integration erfordert typischerweise direkten Datenbankzugriff oder eine benutzerdefinierte API Modul.

Stripe

Gehen Sie zu Connectors > Stripe. Kopieren Sie Ihren Streifen eingeschränkt API Schlüssel aus dem Stripe Dashboard (Entwickler >)API Schlüssel. Der Schlüssel muss Lesezugriff auf Kunden, Gebühren, Rechnungen und Abonnements haben. Geben Sie ihn ein OpsIQ Konfigurieren Sie den Webhook-Endpunkt für Echtzeitereignisse.

Custom / andere Plattformen

Verwenden des REST API Senden Sie order.completed-Ereignisse mit der E-Mail-Adresse des Kunden, dem Betrag, der Währung und den Artikeln. Siehe die Events API Abschnitt für das Payload-Format.

Verstehen Sie Ihren Sales Funnel

Top-Konvertierungsquellen

Shows which channels bring paying customers. If Google brings 1000 visitors and 50 sales, that is a 5% conversion rate. If email brings 200 visitors and 30 sales, that is 15%. Email is more effective per visitor.

Erstattungen

Refundierte Bestellungen werden separat verfolgt. Sie reduzieren Ihre Nettoeinnahmen. Wenn die Rückerstattungsraten aus einer bestimmten Quelle hoch sind, kann der Traffic von geringer Qualität sein.

Währungsumrechnung

OpsIQ speichert die ursprüngliche Transaktionswährung und den ursprünglichen Transaktionsbetrag. Unternehmen mit mehreren Währungen sehen Einnahmen in jeder Währung. Normalisierte Berichterstattung verwendet den konfigurierten Wechselkurs.

Bearbeitete Beispiele

100 Besucher, Null Verkäufe

Szenario:
Your pricing page gets 100 visitors per day but zero conversions.
Was zu tun ist:

Untersuchen: ()1) Verwenden Sie Session Replay auf der Preisseite Besucher. Sehen, wie sie mit der Preistabelle interagieren. (2) Überprüfen Sie Top Pages für die Preisseite Bounce Rate und Time-on-Page. (3) Überprüfen Sie Chat-Gespräche von Besuchern der Preisseite. Welche Fragen stellen sie? (4Vergleichen Sie Ihre Preisseite mit Wettbewerbern. (5Versuchen Sie ein A / B-Experiment mit verschiedenen Preislayouts.

Zuweisung für eine Marketingkampagne

Szenario:
You sent an email campaign with UTM tags. How do you measure its revenue impact?
Was zu tun ist:

Go to Sales and filter by source. Search for the campaign UTM parameter. You will see: (1) How many visitors came from the email. (2) How many converted to sales. (3) Total revenue attributed to the campaign. (4) Compare to the same period before the campaign.

Warum zeigt der Verkauf Null an, obwohl mein Shop Bestellungen hat?+

Kontrolle: ()1) Ist der Plattformstecker angeschlossen und gesund? Gehen Sie zu Steckverbindern und überprüfen Sie den Status.2) Ist die Webhook-Synchronisierung aktiviert?3Hat der Stecker das Recht API Anwendungsbereiche? Für Shopify Sie benötigen read_orders.

Wie schreibt OpsIQ einem Besucher einen Verkauf zu?+

Wenn eine Bestellung über den Connector eingeht, OpsIQ die Kunden-E-Mail mit einem bekannten Besucher abgleicht. Wenn der Besucher vor dem Kauf verfolgt wurde, wird der Verkauf seiner Besucherreise zugeschrieben, einschließlich der Trafficquelle, der Zielseite und des Sitzungsverlaufs.

Kann ich Verkäufe manuell hinzufügen?+

Sie können Verkaufsveranstaltungen über das REST senden API oder Webhooks von beliebigen Systemen. Das Veranstaltungsformat ist in den Events dokumentiert API Schnitt.

Verkäufe

Blei

Leads sind Besucher oder Kunden, die Kauf- oder Supportabsichten zeigen. OpsIQ erkennt automatisch Leads basierend auf Verhalten: Preisseitenbesuche, Rückbesuche und Chatinteraktionen, Checkout-Starts und hohes Engagement. Verwenden Sie die Leads-Seite, um Follow-up zu priorisieren und Ihre CRM-Pipeline zu füttern.

Blei
BleiDer Leads-Bildschirm: eine durchsuchbare Tabelle mit IP/Email, Standort, Gerät, Quelle und Time-on-Site-Spalten sowie Top Source und Land.Bleiyoursite.comSuche IP, Stadt, Land...Top Quelle: Google · Top Land: USAIP /EMAILLAGEGERÄTQUELLEZEIT41.62.10.4Großbritannien · LondonMobilgoogle4m 12s[email protected]USA · New YorkDesktopdirect7m 02s[email protected]DE · BerlinMobilutm:ads5m 40s203.0.113.9CA · TorontoDesktopgoogle3m 28s1DETECTEDHigh-Intent Besucher2TOPBleiquellen und Länder3ENRICHEDIP, Ort, Gerät, Zeit
Der echte Leads-Bildschirm, hochintentierte Besucher als durchsuchbare Tabelle (IP/email, Standort, Gerät, Quelle, Zeit vor Ort) mit Top-Quellen und Ländern.

Was macht einen Lead

Preisseitenbesuche

Besucher, die Ihre Preis- oder Planseite anzeigen, erwägen aktiv einen Kauf.

Rückbesuche

Besucher, die mehrmals zurückkommen, sind engagiert, aber noch nicht konvertiert.

Chat-Interaktionen

Besucher, die einen chat starten, suchen aktiv hilfe, entweder vor dem kauf oder nach dem erwerb.

Checkout beginnt

Besucher, die auf die Kassenseite gelangen, den Kauf aber nicht abschließen.

Formularvorlagen

Besucher, die ein Kontaktformular, eine Demoanfrage oder ein Anmeldeformular einreichen.

Hohes Seiten-Engagement

Besucher, die viele Seiten mit langer Sitzungsdauer ansehen, recherchieren intensiv.

Einzelplan für die Leitdaten

Klicken Sie auf einen beliebigen Lead, um das vollständige Profil zu sehen:

Identität

Name, E-Mail, Firma falls bekannt. Anonyme Leads zeigen IP und Standort an.

Sitzungen

Alle Sitzungen aus diesem Lead mit Seitenfluss, Dauer und Quelle.

Seiten angesehen

Jede Seite, die sie besuchten, geordnet nach Recency.

Quelle

Wie sie dich gefunden haben: organisch, bezahlt, sozial, Überweisung, direkt.

Lead-Score

Ein 0-100 Score basierend auf Verhaltensintensität, Rezendenz und Seitenintention.

CRM-Status

Ob dieser Lead dem CRM als Kontakt oder Deal hinzugefügt wurde.

Verkaufstipp

KI-generierte Vorschläge, was als nächstes zu tun ist (z. B. "Besuchte Preisgestaltung 3 Zeiten · proaktive Öffentlichkeitsarbeit in Betracht ziehen").

Hochwertiges Lead Badge

Leads mit einem Wert über 80 erhalten ein Badge „High Value“ (hoher Wert). Dies sind Ihre heißesten Interessenten, die Sie für Outreach-Aktivitäten, proaktiven Chat oder den Eintrag in die CRM-Pipeline priorisieren können.

Bearbeitete Beispiele

Arbeiten mit heißem Blei

Szenario:
A lead viewed your pricing page 3 times in 2 days, started a chat asking about enterprise plans, but has not purchased.
Was zu tun ist:

This is a high-intent lead. Steps: (1) Check their lead detail for company and role information. (2) Review the chat transcript for specific needs and objections. (3) Create a deal in the CRM with the information gathered. (4) Assign a follow-up task for a sales team member. (5) If they return to the pricing page, the proactive chat rule can trigger a personalized message.

Die Umwandlung von Anonymität führt zu CRM-Kontakten

Szenario:
You have 50 anonymous leads with high scores but no email addresses.
Was zu tun ist:

Options: (1) Create a proactive rule that offers a discount or resource download in exchange for email on high-intent pages. (2) Use the chat widget to ask for email when anonymous visitors start a conversation. (3) Add an identity token to your login/signup pages so returning visitors are automatically identified.

Wie wird der Lead Score berechnet?+

Die Punktzahl berücksichtigt: Häufigkeit der Besuche (letzter = höher), Häufigkeit der Besucher (mehr = höher) angesehene Seiten (Preis / Checkout = höher); Sitzungsdauer (länger = höher).

Kann ich Lead-Scoring-Regeln anpassen?+

Ja. In der CRM-Konfiguration können Sie Lead-Scoring-Regeln hinzufügen, die den Score basierend auf bestimmten Keywords, Ereignissen, Quellen oder Seitenmustern erhöhen.

CRM

Ihr CRM · Starten Sie hier

OpsIQ liefert ein vollständiges AI-First CRM, das die Wahrheit der Kunden erfasst, Daten bereinigt, Leads bewertet, Coaches Deals erstellt, Einnahmen prognostiziert und handelt, mit Website Intelligence, Support, Tickets, Produkten und Zahlungen als eine Live-Grafik. Jede KI-Aktion wird bezogen, erklärbar, reversibel und genehmigungskontrolliert.

AI CRM
AI CRM-ÜbersichtEin Trust Dial, das neben vier KI-Agentenkarten auf Copilot eingestellt ist: Steward, Prospector, Retention und Analyst.AI CRMArbeitsbereichTrust DialManuellKopilotAutopilotWie viel die KI alleine machtDSStewardDedupe, AnreicherungValidierung von DatenSZRProspektorFind & ScoreNeugeschäftRTRetentionSpot Churn,Erneuerung von TriebwerkenANAnalystPrognose &erläutern die Zahlen1AI-FIRSTVier Fachagenten2YOU DECIDEVertrauen Sie auf Dial Autonomie3TRUSTEDSourced & Reversible
Ein AI-first CRM, das von vier spezialisierten Agenten betrieben wird, und ein Trust Dial, das entscheidet, wie viel sie selbst tun.

CRM Seiten Übersicht

AI CRM (Kommandozentrum)

Beginnen Sie hier

Ihr täglicher Startbildschirm: Umsatzimpuls, was AI gefunden hat, was es getan hat, Genehmigungswarteschlange, nächste Schritte, Agentengesundheit und ROI.

Kontakte

Kernnetz

Menschen und Unternehmen in Ihrem CRM. Suchen, filtern, bewerten und verwalten Profile.

Pipeline

Kernnetz

Visuelles Deal Board mit Drag-and-Drop-Stufen, Gewinnwahrscheinlichkeit und KI-Coaching.

Prognose und Berichte

Kernnetz

Board-Grade-Prognose: engagiert, wahrscheinlich, Best Case, mit Konfidenzintervallen und Genauigkeitsverfolgung.

Lebenszyklus

Kernnetz

Wo jeder Kunde steht: aktiv, gefährdet, erweiterungsbereit, Erneuerung fällig oder abschweifend.

Bauen Sie mein CRM

Konfitüre

Beschreiben Sie Ihre CRM-Einrichtung in einfachem Englisch. OpsIQ erzeugt einen reversiblen Plan und wendet ihn bei Genehmigung an.

CRM-Gesundheit

Ops

Selbstüberprüfungsseite: Schema, Agenten, Routen, KI-Aktionen und Live-Datenzählung.

Wie OpsIQ hält Sie sicher

Fragen Sie vor dem Handeln

KI-Vorschläge gehen in die Genehmigungswarteschlange. Sie genehmigen, bearbeiten oder lehnen jeden ab. Nichts passiert ohne Ihre Mitsprache.

Niemals überschreiben

Wenn KI eine Änderung vorschlägt, zeigt sie den aktuellen Wert und den vorgeschlagenen Wert an. Menschen eingegebene Daten sind geschützt.

Alles ist reversibel

Jede KI-Aktion wird im Journal aufgezeichnet. Sie können jede Änderung mit einem Klick rückgängig machen.

Erklärbar

Jede KI-Empfehlung zeigt ihre Argumentation und die verwendeten Datenquellen. Keine Blackbox.

Brandneu? Starten Sie hier

1
Open AI CRM für Unternehmen

Klicken Sie auf AI CRM in der linken Navigation. Die Kommandozentrale zeigt Ihren aktuellen Zustand an.

2
CRM-Gesundheitszustand überprüfen

Open CRM Health, um das Schema, die Agenten und Routen zu überprüfen, sind bereit.

3
Einfuhrkontakte

Wenn ein Connector aktiv ist ()Shopify, WHMCS, etc.), Kontakte werden automatisch importiert. CSV oder manuell erstellen.

4
Erstellen einer Pipeline

Gehen Sie zu Pipeline und erstellen Sie Ihre erste Pipeline mit Phasen (z. B. Lead, Qualified, Proposal, Negotiation, Won, Lost).

5
Fügen Sie Ihren ersten Deal hinzu

Erstellen Sie einen Deal von einem Kontakt, legen Sie den Betrag und die Phase fest und lassen Sie sich vom Deal Coach leiten.

Muss ich das CRM nutzen?+

Nein. Das CRM ist optional. OpsIQ funktioniert perfekt als Tracking + Support + AI-Plattform ohne das CRM. Aktivieren Sie es, wenn Sie bereit sind, Vertriebs- und Kundenbeziehungen zu verwalten.

Kann das CRM ohne Connectors funktionieren?+

Ja. Sie können Kontakte und Deals manuell erstellen. Connectors bereichern das CRM mit Plattformdaten (Bestellungen, Abonnements, Tickets), sind aber nicht erforderlich.

Was ist die Trust Layer?+

Die Vertrauensschicht ist das Sicherheitssystem, das steuert, was die KI tun kann. Copilot-Modus (Standard): AI schlägt vor, Mensch genehmigt. Autopilot-Mode (Opt-in): AI agiert automatisch auf risikoarme, reversible Operationen.

CRM

Der AI CRM Home Screen

Die Kommandozentrale ist Ihr tägliches Briefing. Öffnen Sie es jeden Morgen, um zu sehen, was passiert ist, was Aufmerksamkeit braucht und was als nächstes zu tun ist.

Kommandozentrale
CRM-BefehlszentraleDas CRM-Haus mit Forecast / Win-Rate / Pipeline wechselt, einen gewichteten Prognose-KPI und eine AI-Vorschlagswarteschlange mit Genehmigen und Abweisen in jeder Zeile.CRM-BefehlszentraleArbeitsbereichPrognoseGewinnratePipelineVORAUSSCHÜSSE · DIES Q74k87%AI-Vorschläge · Warteschlange genehmigenDeal erstellen · Acme $24kaus einem Chat mit dem KäuferGenehmigungEntlassungNimbus → Vorschlag verschiebenpositives Ergebnis festgestelltGenehmigungEntlassungLog-Aufgabe · Follower PeakKeine Aktivität in 7 TagenGenehmigungEntlassung1TOGGLEPrognose · Gewinnrate · Pipeline2AI PROPOSESDeals, Phasen, Aufgaben3YOU DECIDEGenehmigen oder entlassen
Die echte Kommandozentrale: Wechseln Sie zwischen Prognose, Gewinnrate und Pipeline, und arbeiten Sie die Warteschlange für KI-Vorschläge, genehmigen oder entlassen Sie die von ihr vorgeschlagenen Geschäfte, Schrittbewegungen und Aufgaben.

Was das Command Center zeigt

Die heutigen Zahlen

Pipeline-Wert, gewonnene / verlorene Deals, neue Leads, aktive Deals und Umsatztrend, eine Momentaufnahme Ihres aktuellen Zustands.

Was OpsIQ gefunden hat

KI-entdeckte Erkenntnisse: ins Stocken geratene Geschäfte, Risikokonten, neue Chancen, Datenqualitätsprobleme und Marktsignale.

Was OpsIQ

Aktionen, die von der KI ausgeführt (im Autopilot) oder vorgeschlagen wurden (im Copilot): Stufenfortschritte, Punkteaktualisierungen, Kontaktanreicherung und Aufgabenerzeugung.

Benötigt Genehmigung

Warteschlange von KI-Vorschlägen, die auf Ihre Entscheidung warten. Jeder zeigt die vorgeschlagenen Maßnahmen, Begründungen und Beweise an. Genehmigen, bearbeiten oder ablehnen.

Nächster Schritt

AI-ranked Liste der 10 wichtigsten Dinge, die heute zu tun sind: Follow-up auf einem heißen Deal, überprüfen Sie ein at-risk Konto, Forschung einen neuen Lead, etc.

Status des Helfers

Gesundheit von KI-Agenten: Capture, Data Steward, Deal Intelligence, Deal Coach, SDR, Retention. Grün = Laufen, Bernstein = braucht Aufmerksamkeit, Rot = Fehler.

Ergebnisse

ROI-Tracking: von KI beeinflusste Geschäfte, Zeitersparnis, Genauigkeit der Vorhersagen und Vergleich mit manuellen CRM-Arbeiten.

Morgendliches Briefing Workflow

1
Lesen Sie die heutigen Zahlen

Überprüfen Sie die Pipeline-Gesundheit und den Umsatztrend. Sind Sie in diesem Monat auf Kurs?

2
Warteschlange für die Genehmigung

Überprüfen Sie jeden KI-Vorschlag. Genehmigen Sie sichere Aktionen, bearbeiten Sie sie wo nötig und lehnen Sie schlechte Vorschläge ab.

3
Überprüfen Sie, was OpsIQ gefunden hat

Lesen Sie KI-Insights. Sind irgendwelche Deals gefährdet? Gibt es neue Möglichkeiten?

4
Arbeiten Sie die nächste Moves Liste

Beginnen Sie mit der obersten Priorität. Die KI hat diese nach Dringlichkeit und potenziellen Auswirkungen eingestuft.

Aufholen nach einer Pause

Szenario:
You were away for a week. What happened while you were gone?
Was zu tun ist:

Öffnen Sie die Kommandozentrale und überprüfen Sie: ()1) "Was"OpsIQ did" zeigt alle KI-Aktionen während Ihrer Abwesenheit an. ()2"Braucht Genehmigung" zeigt Vorschläge, die auf Ihre Überprüfung warten. (3) "Was"OpsIQ found hebt dringende Gegenstände hervor. ()4Setzen Sie den Dashboard-Datumsbereich auf Ihre Abwesenheitsperiode, um den Trend zu sehen.

CRM

Kontakte, Unternehmen und Deals

Das CRM organisiert Ihre Geschäftsbeziehungen in vier Objekte: Kontakte (Personen), Unternehmen (Organisationen), Deals (Einnahmen) und Aufgaben (Follow-up-Aktionen).

CRM-Objekte
CRM-ObjekteEin Kontaktdatensatz, der mit Objekten Unternehmen, Deal und Task in einem verbundenen Diagramm verknüpft ist.CRM-ObjekteArbeitsbereichKontaktPerson · E-Mail · TelefonUnternehmenaccountsDealEinnahmenmöglichkeitenAufgabeFolgemaßnahmen1OBJECTSKontakte, Unternehmen, Deals2LINKEDEin zusammenhängender Graph3TASKSFollow-ups beigefügt
Vier Kernobjekte (Kontakte, Unternehmen, Deals und Aufgaben), die in einem verbundenen Kundengraphen verknüpft sind.

Kontakte

Was ist ein Kontakt

Eine Person in Ihrem CRM. Sie könnte ein Kunde, ein Interessent, ein Partner oder ein Lead sein. Kontakte haben eine E-Mail, einen Namen, ein Unternehmen, Tags, eine Lebenszyklusphase und einen Hotness-Score.

Kontaktaufnahme

Verwenden Sie die Suchleiste, um nach Name, E-Mail, Firma oder Tags zu suchen. Verwenden Sie Filter: Lebenszyklusphase, Lead-Score, Quelle, Land, letztes Aktivitätsdatum, zugewiesener Eigentümer.

Kontaktprofil

Klicken Sie auf einen Kontakt, um das vollständige Profil zu sehen: persönliche Informationen, Unternehmen, Angebote, Aktivitäten, Tickets, Chats, Website-Besuche, Lead-Score und KI-Insights.

Heiße Punktzahl

Ein 0-100 Score, der aus Verhaltenssignalen berechnet wird: Website-Besuche, E-Mail-Engagement, Chat-Interaktionen, Kaufhistorie und -Rezendenz. Höher = heißer.

Unternehmen

... mehr Tickets...
Kontakt-Unternehmensverknüpfung

Kontakte werden mit Unternehmen per E-Mail-Domain oder manueller Zuordnung verknüpft.

Geschäfte

Was ist ein Deal

Deals haben einen Titel, Betrag, Pipeline, Phase, Gewinnwahrscheinlichkeit, Abschlussdatum, zugewiesenen Eigentümer und zugehörige Kontakte / Unternehmen.

Gewinnwahrscheinlichkeit

Eine prozentuale Gewinnchance, die manuell festgelegt oder von KI basierend auf Ihren historischen Gewinndaten berechnet wird. Steuert die gewichtete Prognose an.

Deal Gesundheit

Grün (gesund), Bernstein (gefährdet) oder Rot (gestalbt): Basierend auf Aktivitätsreife, Bühnendauer und Engagement-Signalen.

Aufgaben

Was ist eine Aufgabe

Eine Folgemaßnahme, die einer Person zugewiesen ist: Aufgaben haben einen Titel, ein Fälligkeitsdatum, eine Priorität, einen Typ (Anruf, E-Mail, Besprechung, sonstige) und einen verknüpften Kontakt/Deal.

KI-generierte Aufgaben

Die KI erstellt Aufgaben automatisch, wenn sie etwas entdeckt, das Aufmerksamkeit erfordert: Folgen Sie einem blockierten Deal, reagieren Sie auf ein Risikokonto, recherchieren Sie einen neuen Lead.

Heiße Bleistifte finden

Szenario:
You want to see all high-score contacts in the UK who have not been contacted recently.
Was zu tun ist:

Gehen Sie zu Kontakte. Filtern nach: Lead score > 80, Land = Vereinigtes Königreich, Letzte Aktivität > 7 Vor Tagen. Sortieren Sie nach Lead-Score absteigend. Das sind die heißesten vernachlässigten Leads, priorisieren Sie Outreach.

Erstellen eines Deals aus einem Kontakt

Szenario:
A contact just expressed interest in your enterprise plan during a chat.
Was zu tun ist:

Öffnen Sie das Kontaktprofil. Klicken Sie auf "Deal erstellen." Geben Sie den Titel des Deals (z. B. "Acme Corp - Enterprise Plan"), Betrag, Pipeline und Phase ein (zB "Qualified"). Legen Sie das Abschlussdatum fest und weisen Sie es sich selbst zu. Der Deal Coach wird diese Gelegenheit verfolgen.

CRM

Die Pipeline (Ihr Deal Board)

Die Pipeline ist ein visuelles Board, auf dem sich Deals durch Phasen von links nach rechts bewegen. Drag and Drop-Karten, um Deals voranzutreiben. Jede Karte zeigt den Dealbetrag, die Gewinnwahrscheinlichkeit und den Gesundheitszustand an.

Pipeline
CRM-PipelineDer Pipeline-Bildschirm mit Open-Deals, Open-Value, Weighted-Forecast und Attributed-Deal-Statistiken, einem New-Deale-Button, einer AI Approve-Warteschlange und dem Lead / Qualified / Won Board.PipelineArbeitsbereichOffene Geschäfte23Offener Wert$ 128kGewichtete Prognose74kAttributed Deals12+ Neuer DealWarteschlange genehmigen2 zur ÜberprüfungFÜR DEN BEITRAGVolt Inc.4KLume6 kQUALIFIZIERTENimbus30kPeak9.000 $WUNDEROrbit48k1LIVE STATSOffener Wert & gewichtete Prognose2AI QUEUEGenehmigen Sie vorgeschlagene Deals3BOARDDrag Deals nach Bühne
Der echte Pipeline-Bildschirm: Live-Statistiken (offener Wert, gewichtete Prognose), eine AI Approve-Warteschlange für vorgeschlagene Deals und das Drag-and-Drop-Board.

Verwendung von Rohrleitungsplatten

1
Sehen Sie sich Ihre Deals an

In der Pipeline werden alle aktiven Deals als in Spalten (Stufen) angeordnete Karten angezeigt. Jeder Spaltenkopf zeigt den Gesamtwert der Deals in dieser Phase an.

2
Ziehen, um vorzurücken

Wenn die Karte nicht funktioniert, wird sie sofort aktualisiert.

3
Scheckkartenabzeichen

Grünes Abzeichen = gesund (letzte Aktivität, auf Kurs). Bernstein = gefährdet (Verlangsamung, braucht Aufmerksamkeit). Rot = abgewürgt (keine Aktivität zu lange).

4
Klicken Sie für Details

Klicken Sie auf eine Karte, um das Deal-Detail-Panel mit Kontakten, Aktivitäten, Deal Coach Brief und schnellen Aktionen zu öffnen.

Die Warteschlange für die Genehmigung

KI-Vorschläge erscheinen in der Genehmigungswarteschlange oben auf der Pipelineseite. Jeder Vorschlag zeigt, was die KI tun will, warum und welche Beweise sie haben möchte.

Genehmigung

Die Aktion läuft durch die Trust Layer und wird im Journal aufgezeichnet.

Bearbeiten

Ändern Sie den Vorschlag vor der Genehmigung, z. B. ändern Sie die vorgeschlagene Phase oder passen Sie den Betrag an.

Absage

Die KI lernt aus Ablehnungen, um in Zukunft bessere Vorschläge zu machen.

Gewinnwahrscheinlichkeit erklärt

Gewinnwahrscheinlichkeit kann manuell eingestellt oder von AI berechnet werden. Wenn AI sie berechnet, verwendet es ein Modell, das auf Ihre eigenen geschlossenen Deals trainiert wurde (gewonnen und verloren). $10,000 Deal bei 30% Wahrscheinlichkeit trägt dazu bei $3,000 Die "wahrscheinliche" Prognose.

Einen Deal nach Won verschieben

Szenario:
A customer signed the contract and paid.
Was zu tun ist:

Drag the deal card to the "Won" stage. OpsIQ will: (1) Mark the deal as closed-won. (2) Update the forecast. (3) Add a "Won" activity to the timeline. (4) If configured, trigger a webhook event (crm.deal.won). (5) Update the contact lifecycle stage to "Customer."

Spoting-Stacked Deals

Szenario:
You want to find deals that have been in the same stage for too long.
Was zu tun ist:

Suchen Sie nach roten (stallierten) Abzeichen auf der Pipeline-Platine. Diese Deals hatten keine Aktivität länger als die konfigurierte Verrottungsschwelle (in CRM-Konfiguration > Pipelines festgelegt). Klicken Sie auf jeden blockierten Deal, um die Empfehlung des Deal Coach zur Reaktivierung zu sehen.

Kann ich mehrere Pipelines haben?+

Ja. Gehen Sie zu CRM-Konfiguration > Pipelines, um zusätzliche Pipelines zu erstellen. Gemeinsame Anwendungsfälle: separate Pipelines für neue Geschäfte vs. Erneuerungen oder für verschiedene Produkte / Dienstleistungen.

Was passiert, wenn ich einen Deal zu "Lost" ziehe?+

Der Deal wird als Closed-Lost markiert. Sie werden nach einem Verlustgrund gefragt. Der Deal ist vom aktiven Board entfernt, kann aber im Filter für Closed Deals gefunden werden.CRM.

CRM

Deal Coaching

Der Deal Coach analysiert jeden Deal und gibt Ihnen eine kurze Beschreibung mit Gesundheitszustand, Risikosignalen, Schlüsselpersonen, einer Qualifikations-Checkliste, der Vorbereitung von Besprechungen und den nächsten Aktionen. Alles ist beschafft. Der Trainer zeigt an, aus welchem Ticket, Chat oder welcher Aktivität jeder Anspruch stammt.

Deal Coach
Deal CoachEine Deal-Karte, die AI-erkennte Risikosignale mit Beweisquellen neben einer KI-Empfehlung und einem Draft-E-Mail-Button auflistet.Deal CoachArbeitsbereichAcme Corp. $24,000Phase: Vorschlag · 60% winRISIKOZEICHENKeine Antwort in 10 TagenChampion wurde ruhigWettbewerber im Chat erwähntQuellen: Ticket #482 · Chat 6/12 · E-Mail ThreadAI empfiehltRe-engagement der WirtschaftKäufer mit einem ROI-Recapund einen 7-Tagesschlussplan.Entwurf der E-Mail1SIGNALSWarum ein Deal rutschen kann2SOURCEDJede Behauptung zitiert Beweise3AKTIONOne-Click nächster Schritt
Der Trainer zeigt, warum ein Deal rutschen könnte (jedes Signal zitiert seine Quelle) und gibt Ihnen den nächsten Schritt.

Was der Trainer Ihnen sagt

Gesundheitshinweise

Spezifische Signale: Tage in der Phase, letztes Kontaktdatum, Aktivitätshäufigkeit, Erwähnungen von Mitbewerbern, Einspruchsmuster.

Signale

Kategorisiert in: erhobene Einwände, Erwähnungen von Wettbewerbern, Preisdiskussionen, Support-Risikoindikatoren, Erneuerungs-/Erweiterungssignale. Jedes Signal ist mit seiner Quelle verbunden (Chat-Transkript, Ticket, E-Mail, Aktivität).

Champion und Blocker Map

Wer hilft dem Deal (Champion) und wer widersteht (Blocker). Basierend auf Interaktionsanalysen und Kontaktrollen.

Qualifikationsprüfliste

MEDDICC- oder BANT-Checkliste (konfigurierbar), aus der hervorgeht, welche Qualifikationskriterien erfüllt sind und welche fehlen; Grad: A, B, C, D oder F.

Sitzungsvorbereitung

Vor einem geplanten Meeting erstellt der Coach eine kurze Beschreibung: Tagesordnung, wichtige Punkte, die abgedeckt werden müssen, Fragen, Risiken und Materialien, die vorbereitet werden müssen.

Antwort- und Anrufpläne

Vorgeschlagene nächste Nachricht oder Call-Skript basierend auf dem aktuellen Deal-Status und den letzten Interaktionen.

Evidenzzeitleiste

Jede Behauptung, die der Trainer macht Links zu einer Quelle: eine Ticketnummer, Chat-Transkript-ID, Aktivitätsdatum oder Website-Besuch.

Wie man den Coach benutzt

1
Lesen Sie den Brief

Öffnen Sie einen Deal und scrollen Sie zum Abschnitt Deal Coach. Lesen Sie den Gesundheitszustand und die wichtigsten Signale.

2
Enge Qualifikationslücken

Wenn "Economic Buyer" fehlt, planen Sie die Identifizierung und Einbeziehung des Budgetinhabers.

3
Handeln Sie auf Anregungen

Der Trainer schlägt konkrete nächste Aktionen vor. Klicken Sie, um eine Aufgabe zu erstellen, eine E-Mail zu entwerfen oder ein Meeting zu planen, alles durch die Genehmigungswarteschlange geleitet.

Vorbereitung auf ein großes Meeting

Szenario:
You have a meeting with a prospect tomorrow about a $50,000 deal.
Was zu tun ist:

Open the deal and read the Meeting Prep section. It shows: (1) Key talking points based on recent interactions. (2) Objections they raised in chat last week. (3) Competitor they mentioned in a support ticket. (4) Questions to ask about their timeline. (5) Risk factors to address proactively. Use this brief to prepare a focused, evidence-based agenda.

Verstehen, warum ein Deal in Gefahr ist

Szenario:
The pipeline shows a red badge on a deal you thought was going well.
Was zu tun ist:

Klicken Sie auf den Deal und lesen Sie die Gesundheitserklärung des Deal Coach. 22 Tage (Schwellenwert): 14 Der letzte Kontakt war 11 Vor Tagen hat der primäre Kontakt ein Support-Ticket zu Datenmigrationsproblemen eröffnet. 5 Vor einigen Tagen (Ticket #T-)892 Vorschlag: Besprechen Sie die Migrationsbedenken und planen Sie einen Folgeaufruf. Jetzt wissen Sie genau, was zu beheben ist.

CRM

Prognose und Berichte

Board-grade-prognose mit einem vertretbaren bereich, Änderungserklärungen auf deal-ebene und genauigkeitsverfolgung, damit sie ihre zahlen beweisen und erklären können.

Prognose
PrognoseEine vierteljährliche Prognosezahl mit Commit-, Bestfall- und Pipelinebändern sowie eine Genauigkeitsanzeige.PrognoseArbeitsbereichVORAUSSCHÜSSE · DIESES QUARTER312K87% zum ZielAusschussBester FallPipelineAI-gewichtet nach Deal Gesundheit und Geschichte · Genauigkeit im Laufe der Zeit verfolgt1KATEGORIENVerpflichtung zur Pipeline2AI-WEIGHTEDNach dem Deal Gesundheit3PROVABLENachverfolgte Genauigkeit
Commit, Best-Case und Pipeline auf einen Blick, AI-gewichtet nach Deal Health, mit Genauigkeit verfolgt, so dass Sie es verteidigen können.

Prognosekategorien

Verpflichtete Mittel

Es geht um 80% oder höhere Gewinnwahrscheinlichkeit. Das sind Ihre wahrscheinlichsten Gewinne.

AI-gewichtet wahrscheinlich

Alle offenen Angebote, gewichtet nach ihrer KI-berechneten Gewinnwahrscheinlichkeit. Dies ist die realistischste Vorhersage dessen, was Sie schließen werden.

Bester Fall

Alle offenen Angebote zum vollen Wert. Dies ist der maximal mögliche Umsatz, wenn alles perfekt läuft (selten).

Vertrauensintervall

An 80% Wahrscheinlichkeitsband, das den realistischen Bereich zeigt. Beispiel: "Sie werden wahrscheinlich zwischen schließen"$45,000 und $72,000 in diesem Quartal.

Was sich geändert hat und warum

Die Prognose beinhaltet die Wochen-über-Wochen-Änderungszuordnung. $15,000, erklärt der Bericht genau, welche Deals die Änderung verursacht haben: „Deal A ist in das nächste Quartal gerutscht ()$8,000 Deal B verloren ()$5,000), Deal C im Wert reduziert ($2,000)."

Genauigkeitsverfolgung

Voraussichtliche MAPE

Mean Absolute Percentage Error: how far off your forecasts have been historically. Lower is better. A MAPE of 15% means your forecasts are typically within 15% of actual results.

Kalibrieren der Gewinnwahrscheinlichkeit

Brier-Score, der misst, wie gut die Gewinnwahrscheinlichkeiten mit den tatsächlichen Ergebnissen übereinstimmen.70% Wahrscheinlichkeit gewinnt tatsächlich 70% Zu dieser Zeit ist die Kalibrierung gut.

Wöchentliche Snapshots

OpsIQ erfasst jede Woche eine Momentaufnahme Ihrer Prognose (via cron). Im Laufe der Zeit können Sie sehen, wie sich Ihre Vorhersagegenauigkeit verbessert.

Rollups und Warnungen

Konvertierung pro Stufe

Wie viele Deals bewegen sich von jeder Stufe zur nächsten. Wenn 80% Übergang von Qualified zum Proposal, aber nur 20% vom Vorschlag zur Verhandlung übergehen, Ihre Vorschläge benötigen möglicherweise Arbeit.

Gewinnrate pro Quelle

Welche Hauptquellen die meisten Gewinne erzielen. Investieren Sie mehr in Quellen mit hoher Gewinnrate.

Leistung je Eigentümer

Wie jedes Verkaufsteammitglied abschneidet: gewonnene Deals, Pipeline-Wert, durchschnittliche Dealgröße, Gewinnrate.

Warnungen

Sandbagging (unrealistisch niedrige Wahrscheinlichkeiten), übermäßige Bindung (unwirklich hoch) und engagiertes Risiko (Hochwahrscheinlichkeitsgeschäfte, die Stallsignale zeigen).

Verstehen eines Forecast Drop

Szenario:
Your quarterly forecast dropped from $180,000 to $155,000 since last week.
Was zu tun ist:

Öffnen Sie die Forecast-Seite und überprüfen Sie "Was sich geändert hat." Der Bericht zeigt: "Acme Corp deal ()$15,000) zu Lost, Wettbewerber gewählt. Beta Inc Deal ($8,000) Schlusstermin auf das nächste Quartal verschoben.$3,000) diese Woche hinzugefügt.$20,000 + $3,000 = -$17,000, erklärt den Rückgang von $ 180.000 auf $ 163.000 (mit den verbleibenden $ 8K durch Wahrscheinlichkeitsanpassungen bei anderen Geschäften erklärt).

CRM

Neue Geschäfte finden

Der Prospecting Agent hilft Ihnen, potenzielle Kunden zu finden und zu recherchieren. Beschreiben Sie Ihren idealen Kunden, fügen Sie Zielunternehmen hinzu und lassen Sie die KI suchen, bewerten und erste Kontaktaufnahme erstellen.

Prospektion
ProspektionEine Liste von KI-gefundenen Unternehmen mit passenden Notizen, Noten und jeweils einem Draft-Outreach-Button.ProspektionArbeitsbereichPerspektiven des SDR-AgentenNorthwind Ltd.SaaS · 50 Personal · Einstellungsunterstützung88Entwurf der KontaktaufnahmeKobalt MfgFertigung · 200 Personal74Entwurf der KontaktaufnahmeMesa RetaileCommerce · 30 Personal69Entwurf der KontaktaufnahmeVega GesundheitGesundheitsversorgung · 80 Personal63Entwurf der Kontaktaufnahme1FINDKI-Quellen zielen auf Konten ab2ANWENDUNGSBEREICHFit & Intention auf Platz3DRAFTFirst-Touch für Sie geschrieben
Der SDR-Agent findet Zielunternehmen, bewertet sie nach Passform und entwirft die erste Kontaktaufnahme für Ihre Überprüfung.

Einmalige Einrichtung

1
Beschreiben Sie Ihren idealen Kunden

Gehen Sie zu CRM-Konfiguration > Prospektion. Beschreiben Sie Ihr ideales Kundenprofil (ICP): Zielbranchen, Unternehmensgrößen, Berufsbezeichnungen, geografischer Fokus, Produktabgleichsbedingungen und Mindestanpassungspunktzahl. Beispiel: "B2B SaaS-Unternehmen mit 50-500 Mitarbeiter in den USA / Großbritannien, die Entwickler-Tools verkaufen, mit einem VP of Sales oder Head of Growth als Hauptansprechpartner.

2
Zielunternehmen hinzufügen

Geben Sie Firmendomänen oder Namen ein, die Sie recherchieren möchten.

3
Überprüfung der Forschungsergebnisse

Die KI bereichert jedes Unternehmen mit verfügbaren Daten: Größe, Branche, Technologie-Stack, aktuelle Nachrichten und passende Ergebnisse mit Erklärung.

4
Genehmigung der Kontaktaufnahme

Für Unternehmen, die gut zu ihnen passen, erstellt die KI eine personalisierte First-Touch-Nachricht.

Fit-Scoring

Jeder Interessent erhält einen 0-100 fit-Score basierend auf fünf Faktoren:

ICP-Passform

Wie gut das Unternehmen zu Ihrem idealen Kundenprofil passt (Industrie, Größe, Standort).

Dringlichkeitssignale

Gibt es Beweise, dass sie Ihr Produkt jetzt brauchen? Stellenausschreibungen, technische Änderungen, Beschwerden über Wettbewerber.

Haushaltsvollstrecker

Unternehmensgröße, Finanzierungsphase und Umsatzindikatoren deuten auf die Verfügbarkeit von Budgets hin.

Produktübereinstimmung

Wie relevant Ihr Produkt für sein Geschäft ist, basierend auf Industrie und Technologie.

Stützsitz

Ob Sie diesen Kunden effektiv bedienen können (Zeitzone, Sprache, Komplexität).

Erforschen eines Zielunternehmens

Szenario:
You want to evaluate whether acme.com is worth pursuing.
Was zu tun ist:

Additiv acme.com Die KI gibt zurück: Fit score 78/100 (gute Passform) Gründe: B2B-SaaS, 120 Mitarbeiter mit Sitz in den USA, die vor kurzem einen VP of Sales eingestellt haben (Dringlichkeitssignal), verwenden Wettbewerber X (Produktübereinstimmung). [email protected] (VP of Sales). Der Drafted Opener bezieht sich auf die kürzlichen Besuche der Einstellungs- und Preisseite.

CRM

Automatische Folgesequenzen

Sequenzen automatisieren mehrstufiges Follow-up: eine Mischung aus E-Mail, Warten, Task, Anruf und Webhook-Schritten, die automatisch ausgeführt werden, nachdem Sie den ersten Versand genehmigt haben.

Sequenzen
FolgesequenzenEin horizontaler Sequenzfluss: E-Mail, drei Tage warten, E-mail, dann eine Aufgabe mit Antworterkennung.FolgesequenzenArbeitsbereichNachdem Sie den ersten Sendvorgang genehmigt haben →E-MailIntroWarten3 TageE-MailFolgemaßnahmenAufgabeRufSchritte können E-Mail, Warten, Aufgaben oder Webhook sein. Eine Antwort stoppt automatisch die Sequenz.1AUTOMATEMehrstufiges Follow-up2STEPSE-Mail · warten · Aufgabe · Webhook3YOU APPROVEDer erste Send ist gated
Automatisiertes mehrstufiges Follow-up (E-Mail, Warten, E-Mails, Aufgaben), das Sie zuerst genehmigen und eine Antwort automatisch beendet wird.

Wie Sequenzen funktionieren

1
Erstellen einer Sequenz

Definieren Sie die Schritte: E-Mail, warten 3 Tage, E-Mail, warten 5 Tage, Aufgabe (Anruf, wenn keine Antwort erfolgt), E-Mail. Jeder Schritt hat eine Vorlage, die Sie anpassen können.

2
Kontaktaufnahme

Fügen Sie der Sequenz Kontakte hinzu. Die KI kann auch eine Registrierung von Suchergebnissen vorschlagen.

3
Automatische Ausführung

Schritte laufen automatisch im Zeitplan ab. Wenn ein Kontakt an einem beliebigen Punkt antwortet, wird die Sequenz automatisch unterbrochen.

4
Gleisergebnisse

Siehe Öffnungsraten, Antwortraten, Konversionsraten und Abmeldungen pro Schritt.

Antwort Verständnis

Wenn ein Kontakt antwortet, klassifiziert die KI die Antwort:

Positiv

Interessiert, will reden. Sequenz pausiert, Aufgabe für die Nachverfolgung erstellt.

Einspruch

Hat Bedenken, aber nicht ablehnend. Sequenz pausiert, Aufgabe mit Einwänden erstellt Details.

Abmelden

Will aufhören, Nachrichten zu empfangen. Der Kontakt wird dauerhaft unterdrückt.

Nicht jetzt

Interessiert, aber das Timing ist falsch. Sequenz pausiert, Snooze-Aufgabe erstellt.

Falsche Person

Nicht der richtige Kontakt. Sequenz stoppt, Kontakt wird zur Überprüfung markiert.

Unterstützung

Eine Supportfrage, keine Verkaufsantwort. Sequenz pausiert, Ticket erstellt.

Spamschutz

Opt-out-Handling

Abmeldeanfragen werden sofort berücksichtigt und der Kontakt aus allen zukünftigen Sequenzen unterdrückt.

Tägliche Sendekappe

Arbeitsbereichs-Tageslimit (Standard: 1,000 E-Mails). Verhindert Massensendungen, die Spamfilter auslösen.

Kontaktgrenzwert

Maximale 1 Nachricht pro Kontakt und Tag. Verhindert, dass einzelne Personen überwältigt werden.

Überdeckelung

Schritte, die den Tageshöchstwert überschreiten, werden auf den nächsten Tag verschoben.

Was passiert, wenn ein Kontakt während einer Sequenz ein Support-Ticket öffnet?+

Die Sequenz wird automatisch angehalten. Der Support hat Vorrang vor der Reichweite. Die Sequenz kann manuell fortgesetzt werden, nachdem das Supportproblem behoben wurde.

Kann ich A/B-Testsequenzschritte durchführen?+

Nicht direkt innerhalb von Sequenzen, aber Sie können zwei Sequenzen mit unterschiedlichem Messaging erstellen und deren Ergebnisse vergleichen.

CRM

Wachstumswerkzeuge

Eine Seite unter CRM, die den Wachstumsmotor enthält: wiederkehrende Einnahmen (MRR/ARR), der Produktkatalog, Lead-Capture-Formulare, Buchungslinks und Lead-Routing. Alles hier schreibt sich direkt in das CRM ein, also ist eine Formulareinreichung oder ein gebuchter Anruf ein Kontakt mit der Historie, keine Zeile in einer Tabellenkalkulation.

Was auf der Seite lebt

Wiederkehrende Einnahmen

Einnahmen

MRR und ARR, die aus Ihrem realen Abrechnungsbuch projiziert werden. Abonnements werden von Zahlungen pro Plattform gruppiert, der Rechnungszyklus wird aus Zahlungslücken abgeleitet, und ein Abonnement verfällt, wenn eine Zahlung über 1.5 mal seinem Zyklus überfällig ist. Kunden verbinden sich automatisch mit CRM-Kontakten, wenn das Hauptbuch ihre E-Mail trägt.

Produktkatalog

Katalog

Eine Quelle der Wahrheit für das, was Sie verkaufen. Zitate ziehen den Namen und Listenpreis aus dem Katalog, und akzeptierte Zitate rollen in Einnahmen nach Produkten auf.

Bleiabscheidungsformulare

Fang

Jedes Formular erhält eine gehostete Seite plus einen iframe-Einbettungscode für Ihre eigene Website. Einreichungen werden zu Kontakten, der Eigentümer erhält eine Benachrichtigung und Ihre Routingregeln weisen den Lead zu.

Buchungslinks

Zeitplanung

Teilen Sie einen Link, lassen Sie die Interessenten einen freien Slot auswählen. Slots respektieren die Arbeitszeiten des Veranstalters, Zeitzone und bestehende Meetings. Eine Buchung erstellt das Meeting, sendet dem Interessenten eine Bestätigung per E-Mail und benachrichtigt den Organisator.

Leitendes Routing

Fahrweg

Territory Regeln laufen zuerst, dann Feldregeln (passen ein Feld wie Land oder Quelle an), dann Round-Robin über Ihren Rep Pool. Es leitet KONTAKTE UND DEALS gleichermaßen, unabhängig vom Status des Deals: Ein gewonnener Deal braucht immer noch einen Besitzer für Provisionszuweisung, Accountverantwortung und Follow-up, und im Eigentümer- oder Teamsichtbarkeitsmodus ist ein unbesitzter Datensatz für alle außer einem Manager unsichtbar. Aufzeichnungen, die durch Automatisierung erstellt wurden (ein Connector Sale, Chat, Import) tragen keinen interaktiven Schöpfer, also werden sie nach den gleichen Regeln für die Erstellung geleitet und nicht besitzerlos. Alles, was bereits einen Besitzer hat, wird nie neu zugewiesen.

Erstellen Sie Ihr erstes Formular

1
Offene Wachstumstools

Gehen Sie zu CRM, dann Growth Tools und dann zum Abschnitt Lead-Capture Forms.

2
Benennen Sie es und wählen Sie Felder

Geben Sie einen Namen und eine kommagetrennte Feldliste ein, z. B. Name, E-Mail, Telefon, Nachricht.

3
Teilen oder Einbetten

Kopieren Sie den gehosteten Link, um ihn überall zu teilen, oder kopieren Sie den Einbettungscode und fügen Sie ihn in eine beliebige Seite Ihrer Website ein.

4
Watch Leads kommen an

Jede Einreichung ist ein CRM-Kontakt mit einer von form. submitted eingereichten Aktivität, einer Benachrichtigung des Eigentümers und einem automatischen Routing.

💡
Öffentliche Capture-Seiten verwenden die eigene Adresse Ihres Workspace. Cloud-Workspaces verwenden ihre zugewiesene Subdomain (Firma.opsiq. help), so dass der Link immer die richtigen Daten auflöst.

Eingebaute Schutzvorrichtungen

Bots sehen Erfolg, Sie sehen nichts

Ein verstecktes Honeypot-Feld wirft Bot-Einreichungen stillschweigend weg.

Begrenzter Zinssatz

Zehn Einreichungen pro Stunde pro IP -Adresse über Formulare und Buchungen hinweg.

Die Zustimmung bleibt ehrlich

Das Absenden eines Formulars erteilt keine Marketing-Zustimmung, nur ein Checkbox für die ausdrückliche Zustimmung.

Keine Doppelbuchung

Ein Slot wird gegen eine neue Verfügbarkeitsprüfung zum Zeitpunkt der Buchung erneut validiert.

Woher kommen die wiederkehrenden Umsatzdaten?+

Aus dem gleichen Commerce-Ledger, das Ihre Verkaufsseite verwendet und von Abrechnungssteckern gespeist wird, verwenden Sie Re-Sync nach der Verbindung einer neuen Plattform.

Kann ich die Formulare auch ohne Website nutzen?+

Ja. Jedes Formular hat eine gehostete Seite an Ihrer eigenen Adresse, die eigenständig funktioniert, mit oder ohne JavaScript.

CRM

Messaging Hub (SMS und WhatsApp)

Ein Konnektor, bis zu zwanzig Gateways. Verbinden Sie die SMS- und WhatsApp-Anbieter, die Sie tatsächlich verwenden, markieren Sie einen als Standard und wählen Sie einen von ihnen aus, wenn Sie einen Kontakt texten. Die Zustimmung wird vom CRM überprüft, bevor ein Gateway kontaktiert wird.

Setzen Sie es auf

1
Verbinder aktivieren

Öffnen Sie auf der Connectors-Seite den Messaging Hub (SMS und WhatsApp) und aktivieren Sie ihn.

2
Hinzufügen eines Providers

Wählen Sie in der gleichen Schublade oder in CRM Growth Tools ein Gateway aus dem Dropdown (Twilio, Vonage, Termii, Meta WhatsApp Cloud, Infobip und mehr), fügen Sie seine API -Anmeldeinformationen ein und verbinden Sie sich.

3
Wire The Webhook

Jeder Anbietereintrag zeigt seinen eigenen Webhook URL Fügen Sie es in die Lieferbericht- und Inbound-Nachrichteneinstellungen des Gateways ein, um den Lieferstatus zu erhalten und Antworten zurück in OpsIQ.

4
Senden von einem Kontakt

Öffnen Sie einen Kontakt und verwenden Sie die SMS- oder WhatsApp-Taste. Wenn mehr als ein Anbieter den Kanal unterstützt, können Sie mit einem Selektor auswählen; andernfalls wird der Standard verwendet.

Zustimmung kommt zuerst

Nur erteilte Zustimmung

Unbekannte Einwilligung ist keine Zustimmung. Ein Senden verweigert, es sei denn, die SMS-Zustimmung wird ausdrücklich erteilt. WhatsApp hat dieselbe Zustimmung.

Do-not-Kontakt gewinnt immer

Ein Do-Not-Contact-Flag blockiert jeden Kanal, egal was sonst noch eingestellt ist.

Unterdrückung geehrt

Kontakte auf der Unterdrückungsliste werden niemals gesendet.

Ablehnungen nennen ihren Grund

Ein blockierter send sagt ihnen genau, warum, so dass sie die daten beheben können, anstatt zu raten.

Für Entwickler: der Webhook-Vertrag

URL Form

https://your-address/opsiq/cron/messaging_webhook.php?sk=SITE_KEY&e=ENTRY_ID&t=TOKEN. Das Per-Entry-Token wird geprägt, wenn der Anbieter verbunden ist und sich beim Bearbeiten nie dreht.

Formate verstanden

Twilio form posts (MessageStatus/MessageSid for delivery, Body/From for inbound), Meta WhatsApp Cloud JSON (statuses and messages, including the hub.challenge subscription handshake), and a generic JSON shape: {"type":"delivery","message_id":"...","status":"delivered"} or {"type":"inbound","from":"+234...","body":"..."}.

Auswirkungen

Lieferberichte stempeln die Outreach-Ledgerzeile, in der die Providernachrichten-ID als geliefert oder abgeprallt angezeigt wird. Inbound-Nachrichten stimmen mit dem Kontakt nach Telefonnummer im Arbeitsbereich überein, landen als message. received Aktivität und markieren das Gespräch beantwortet.

Fehlermodus

Falsche oder fehlende Token Antworten 403 Unbekannte Nutzlasten werden gezählt und ignoriert, niemals tödlich, so dass ein falsch konfiguriertes Gateway den Endpunkt nicht unterbrechen kann.

Welche Gateways werden unterstützt?+

Twilio, Vonage, Plivo, MessageBird, Sinch, Infobip, Telnyx, ClickSend, Termii, Africa's Talking, BulkSMS, Textlocal, Meta WhatsApp Cloud, 360dialog, SMSAPI, Gupshup, Kaleyra, D7 Networks, Hubtel und ein benutzerdefinierter HTTPS-Webhook für alles andere.

Sind die Anmeldeinformationen sicher?+

Anmeldeinformationen werden verschlüsselt in den Verbindungseinstellungen gespeichert und nie wieder an den Browser weitergeleitet. Das Bearbeiten eines Eintrags mit einem leeren Geheimnis hält den gespeicherten Speicher bereit.

Kann die KI Nachrichten senden?+

Ja, durch registrierte Aktionen, die eine Bestätigung erfordern und dasselbe Zustimmungsgate ausführen. Die KI kann auch angeschlossene Anbieter auflisten, um zu erklären, was verfügbar ist.

CRM

Kunden halten und wachsen

Lifecycle Management hilft Ihnen, bestehende Einnahmen zu schützen. Jedes Konto erhält einen Churn Risk Score, einen Health Score und ein empfohlenes Erfolgsbuch.

Lebenszyklus
Lifecycle-BoardEin Customer-Lifecycle Board (Onboarding, Active, At-Risk, Renewal) mit Gesundheitsleisten auf jeder Kontokarte.LebenszyklusArbeitsbereichEINBAUAcmeGesundheit 40AKTIVGlobexGesundheit 88InitechGesundheit 76AT-RISIKOSoylierungGesundheit 28ERNEUERUNGUmbraerneuert in 12dErweiterung + $ 8k1STAGESOnboarding zur Erneuerung2SCOREDGesundheit & Expansion3PLAYBOOKEmpfohlener nächster Schritt
Kunden bewegen sich durch Onboarding, Aktives, Risiko und Erneuerung, die jeweils mit einem Playbook für Gesundheit und Expansion bewertet werden.

Der Lifecycle Board

Bühnenkarte

Visual Board zeigt, wo jedes Konto steht: Lead, Prospect, Opportunity, Customer, Expansion, Renewal, At Risk, Churned.

Risikokonten

Konten mit hohem Abwanderungsrisiko, die jeweils den obersten Treiber (Support-Spike, Inaktivität, Zahlungsausfall) und ein empfohlenes Save Play anzeigen.

Erweiterungsmöglichkeiten

Konten, die Signale der Bereitschaft zeigen, mehr zu kaufen: hohe Nutzung, Feature-Anfragen, Planungsanfragen.

Verlängerungsfrist

Konten mit bevorstehenden Verlängerungsterminen, sortiert nach Risikograd und Umsatzwert.

Wie OpsIQ Churn-Risiko erkennt

Das Churn-Risiko wird aus mehreren miteinander verschmolzenen Signalen berechnet:

CRM-Signale

Gesundheit, Inaktivität, jüngste Verluste, sinkendes Engagement.

Unterstützungssignale

Offene Ticketzahl, Ticketvolumenspitzen, negative Stimmung, Eskalationen.

Produktbindung

Anmeldefrequenz, Funktionsnutzung, Seitenbesuche, API -Aufrufe.

Abrechnungssignale

Fehlgeschlagene Zahlungen, überfällige Rechnungen, Downgrade-Anfragen, Stornierungsseitenbesuche.

Spielbücher

Spielautomaten

Für Risikokonten: proaktiv ausstrecken, das Anliegen ansprechen, Unterstützung anbieten und bei Bedarf eskalieren.

Erneuerungsspiel

Für bevorstehende Verlängerungen: Bestätigung der Zufriedenheit, Überprüfungsnutzung, Barwert, gegebenenfalls Anreiz anbieten.

Expansionsspiel

Für wachstumsbereite Konten: Präsentieren Sie Upgrade-Optionen, teilen Sie Erfolgsgeschichten, demonstrieren Sie den ROI.

Adoptionsspiel

Für die Nichtauslastung von Konten: bieten Sie Schulungen an, teilen Sie Best Practices und aktivieren Sie Funktionen, die sie nicht verwenden.

Spotting Churn, bevor es passiert

Szenario:
A customer who normally logs in daily has not logged in for 2 weeks, and they opened 3 support tickets this month.
Was zu tun ist:

Das Lifecycle Board kennzeichnet dieses Konto als "At Risk" mit Fahrern: Inaktivität ()14 Tage seit dem letzten Login) und Support Spike (3x normales Ticketvolumen). Empfohlenes Spiel: proaktiver Outreach-Aufruf, um zu verstehen, was passiert. Gibt es ein Produktproblem? Bewerten sie Wettbewerber? Frühzeitiges Eingreifen kann das Konto retten.

CRM

Halten Sie Ihre Daten sauber

Der Data Steward Agent findet und behebt automatisch Datenqualitätsprobleme: Duplikate, fehlende Felder, Inkonsistenzen und veraltete Datensätze.

Datenverwalter
DatenverwalterEine Liste von Datenqualitätsproblemen (dupliziert, fehlt, veraltet, Format), die jeweils mit einer Aktion zur Behebung mit einem Klick versehen sind.DatenverwalterArbeitsbereichDatenprobleme, die der Steward Agent gefunden hatDoppeltes[email protected] und [email protected]FusionFehlend12 Kontakte haben keine FirmaAnreicherungStäbe38 Geschäfte unberührt für 90+ TageÜberprüfungFormatTelefonnummern im 4 FormatFix all1CATCHESDupes, Lücken, abgestanden2EXPLAINSWarum es jeden markiert3FIXESZu Ihrer Zustimmung
Der Steward-Agent hält Ihr CRM sauber und findet Duplikate, Lücken, veraltete Datensätze und schlechte Formate, die auf Genehmigung fixiert werden.

Was es fängt

Doppelte Kontakte

Mehrere Datensätze für dieselbe Person (z. B.: [email protected] und [email protected] Der Steward schlägt vor, sie zusammenzuführen.

Fehlende Daten

Kontakte ohne E-Mail, Geschäfte ohne Beträge, Unternehmen ohne Domains. Schlägt das Ausfüllen aus verfügbaren Quellen vor.

Nicht verknüpfte Aufzeichnungen

Angebote ohne zugehörige Kontakte, Kontakte ohne Unternehmen. Vorschläge für eine Verknüpfung basierend auf E-Mail-Domain und Kontext.

Unstimmigkeiten

Ein Deal in der "Won" -Phase mit 20% Wahrscheinlichkeit, ein Kontakt mit der Markierung "Kunde" ohne Deals, ein Unternehmen mit einer nicht übereinstimmenden Branche.

Falsche Phasen

Geschäfte, die sich zu lange in der gleichen Phase befanden oder Kontakte, deren Lebenszyklusphase nicht mit ihrer Aktivität übereinstimmt.

Wie man verwendet

1
Steward-Liste öffnen

Gehen Sie zu CRM und finden Sie den Abschnitt Data Steward (oder öffnen Sie ihn aus CRM Health).

2
Zulässige sichere Vorrichtungen

Grüne Gegenstände sind sicher: klare Duplikate, offensichtlich fehlende Daten.

3
Überprüfen Sie den Rest

Bernsteinartikel brauchen Ihr Urteil: mögliche Duplikate mit leichten Unterschieden, vorgeschlagene Etappenwechsel, Unternehmensverknüpfung. Überprüfen Sie jeden einzelnen.

Reinigung von Doppelkontakten

Szenario:
The steward found "John Smith ([email protected])" and "J. Smith ([email protected])": same email, different display names.
Was zu tun ist:

Der Steward schlägt vor, die Daten zu verschmelzen: Behalten Sie den Datensatz mit mehr Aktivitäten, verschmelze die Deals und Aktivitäten des anderen Datensatzes. Überprüfen Sie den Vorschlag, passen Sie den überlebenden Anzeigenamen an, falls erforderlich, und genehmigen Sie die Geschichte beider Datensätze wird im zusammengeführten Kontakt gespeichert.

CRM

Bauen Sie mein CRM

Build My CRM ermöglicht es Ihnen, Ihre CRM-Einrichtung in einfachem Englisch zu beschreiben. OpsIQ generiert einen validierten, reversiblen Plan und wendet ihn bei der Genehmigung an. Keine Codierung, kein manuelles Konfigurationsklicken.

Bauen Sie mein CRM
Bauen Sie mein CRMEine natürliche Sprachbeschreibung auf der linken Seite, die einen generierten CRM-Plan mit Phasen, Feldern und Segmenten auf der rechten Seite erzeugt.Bauen Sie mein CRMArbeitsbereichBeschreiben Sie Ihr GeschäftWir sind eine Webdesign AgenturVerkauf von Monatshaltern undEinmalige Projekte für kleineUnternehmen.Bauen Sie mein CRMGenerierter PlanBühnen: Lead → RetainerArt des Geschäfts: Retainer, ProjektFeld: Monatlicher WertSegmente: SMB, AgenturSequenz: OnboardingGenehmigen & Beantragen1DESCRIBEPlain English in Englisch2AI PLANSStufen, Felder, Segmente3APPROVEAngewandt · keine Kodierung
Beschreiben Sie Ihr Unternehmen in einfachem Englisch; OpsIQ entwirft das gesamte CRM (Stufen, Felder, Segmente) und wendet es nach Genehmigung an.

Wie es funktioniert

1
Beschreiben Sie, was Sie wollen

Geben Sie eine einfache englische Beschreibung Ihres CRM-Setups ein Beispiel: "Erstellen einer Erneuerungspipeline mit Phasen: Kommend, kontaktiert, verhandelnd, erneuert, verloren. Score führt höher, wenn sie die Preise zweimal anzeigen."

2
Überprüfung des Plans

OpsIQ zeigt eine Vorschau dessen, was es erzeugen wird: Pipeline, Stufen, Stufenwahrscheinlichkeiten, Scoring-Regeln, Lebenszyklusregeln.

3
Beantragen

Klicken Sie auf Apply, um den Plan auszuführen. Jede Änderung wird als Bundle aufgezeichnet, das Sie mit einem Klick rückgängig machen können.

4
Rollback bei Bedarf

Wenn etwas nicht stimmt, klicken Sie auf Undo, um das gesamte Paket zurückzusetzen. Ihr CRM kehrt in seinen vorherigen Zustand zurück.

Was Sie bauen können

Rohrleitungen und Phasen

Erstellen Sie benannte Pipelines mit benutzerdefinierten Stufen, Standardwahrscheinlichkeiten und verrottenden Schwellenwerten.

Scoring-Regeln

Steigern Sie die Lead-Scores basierend auf dem Verhalten: "Erhöhere Punktzahl, wenn sie Preise anzeigen", "Erheben Sie eine niedrigere Punktgröße, wenn Sie Karriereseiten besuchen."

Lebenszyklusregeln

Automatische Verbesserung der Lebenszyklusphasen: "Zu SQL bewegen, wenn eine Demo angefordert wird", "Zu Kunden wechseln, wenn ein Deal gewonnen wurde."

Zollfelder

Fügen Sie Felder zu Kontakten, Deals oder Unternehmen hinzu: Text, Nummer, Datum, Auswahl, Kontrollkästchen, URL, E-Mail.

Qualifikationsprüfliste

Definieren Sie die MEDDICC- oder BANT-Checkliste, gegen die der Deal Coach bewertet wird.

Einrichtung einer Pipeline zur Erneuerung

Szenario:
You manage SaaS subscriptions and need a pipeline for renewals.
Was zu tun ist:

Typ: "Erstellen einer Erneuerungspipeline. Phasen: 90 Tage aus ()10%), 60 Tage aus ()25%), Kontaktiert (40%), Verhandeln (60%), Erneuert (100%), gehäckselt (0% Setzen Sie die Fäulnisschwelle auf 14 Tage. OpsIQ generiert den Plan, Sie überprüfen ihn und klicken auf Anwenden. Die Pipeline erscheint sofort auf Ihrer Pipeline-Seite.

Was ist, wenn ich etwas beschreibe, das nicht möglich ist?+

Wenn Sie etwas außerhalb seiner Fähigkeiten anfordern (z. B. "Integrieren mit meinem benutzerdefinierten API"), wird der Builder die Anfrage ablehnen und erklären, was er stattdessen tun kann.

Kann ich Änderungen rückgängig machen?+

Ja. Jede Build My CRM-Aktion wird als reversibles Bundle erfasst. Gehen Sie zu CRM Health > Verlauf ändern, um alle Bundles anzuzeigen und sie rückgängig zu machen.

CRM

Einrichten Ihres CRM auf Ihre Weise

Manuelle CRM-Konfiguration für Teams, die lieber über das Tippen klicken. Alle Einstellungen, die Build My CRM erstellen kann, sind auch als traditionelle Formularfelder verfügbar.

Rohrleitungen und Phasen

Pipelines und Stufen erstellen, umbenennen, neu ordnen und löschen. Standardgewinnwahrscheinlichkeit pro Stufe festlegen. Fällende Schwelle (Tage ohne Aktivität vor dem Markieren eines Deals als "stalliert") festlegen.

Zollfelder

Felder zu Deals, Kontakten oder Unternehmen hinzufügen. Feldtypen: Text, Nummer, Datum, Select (Dropdown mit vordefinierten Optionen), Kontrollkästchen, URL, E-Mail. Benutzerdefinierte Felder erscheinen im Objektprofil und in Filtern.

Qualifikationsprüfliste

Definieren Sie die Checkliste, die der Deal Coach zur Bewertung von Deals verwendet. Wählen Sie MEDDICC, BANT oder einen benutzerdefinierten Satz von Kriterien aus. Jedes Element kann als erforderlich oder optional markiert werden.

Regeln für Lebenszyklen

Automatische Phasenübergänge definieren: Wenn ein Kontakt eine Bedingung erfüllt (Preise anzeigen, ein Formular senden, einen Kauf tätigen), wird die Lebenszyklusphase automatisch vorangetrieben.

Bleibewertungsregeln

Steigern oder reduzieren Sie Lead-Scores basierend auf Verhalten. Beispiele: "Gesehene Preisseite = +"15 Punkte, "Downloaded Whitepaper = +"10 Punkte," "Besuchte Karriereseite = -5Punkte. Mindestanzahl kann festgelegt werden (z. B. "muss die Preise mindestens anzeigen") 2 Zeiten).

Gespeicherte Ansichten

Erstellen Sie benannte Filter + Sortierkombinationen für Kontakte, Deals oder Unternehmen. Teilen Sie Ansichten mit Ihrem Team. Legen Sie eine Standardansicht pro Objekttyp fest.

Hinzufügen einer Lead-Scoring-Regel

Szenario:
You want contacts who view your pricing page twice or more to get a higher score.
Was zu tun ist:

Gehen Sie zu CRM-Konfiguration > Lead Scoring Rules. Klicken Sie auf Regel hinzufügen. Set: Event = "pageview", URL enthält = "/pricing", Mindestanzahl =2, Score Boost = +20 Speichern Sie das nächste Mal, wenn der Torschütze läuft, erhalten Kontakte, die dieser Regel entsprechen +20 zu ihrem Lead Score.

CRM

CRM-Gesundheitscheck

CRM Health ist eine Selbstdiagnoseseite, die überprüft, ob Ihr CRM korrekt eingerichtet ist und reibungslos läuft.

Gesundheitscheck
CRM-GesundheitskontrolleEin Gesundheits-Score klingelt bei 92 neben einer Checkliste mit Pass- und Warnkonfigurationsprüfungen.CRM-GesundheitskontrolleArbeitsbereich92GESUNDHEITKonfiguration von Pipeline-StufenConnector verbunden & ImportierenKI-Agenten aktiviert!Keine aktive Folgesequenz!12 Kontakte fehlende Firma1AUDITÜberprüfen Sie Ihr Setup2FLAGSWas fehlt3ANWENDUNGSBEREICHEine Gesamtnummer
Ein einseitiges CRM-Audit: ein allgemeiner Gesundheitswert plus eine Checkliste, was richtig eingerichtet ist und was noch Aufmerksamkeit braucht.

Was sie prüft

Schema

Datenbanktabellen existieren und haben die richtigen Spalten. Wenn eine Migration verpasst wurde, wird CRM Health sie kennzeichnen.

KI-Agenten

Alle CRM-Agenten (Capture, Data Steward, Deal Intelligence usw.) sind registriert und gesund. Grün = Laufen, Bernstein = braucht Aufmerksamkeit, Rot = Fehler.

Strecken

CRM API Routen und AJAX-Endpunkte sind registriert und abrufbar.

KI-Maßnahmen

Der CRM-Aktionskatalog ist im Aktionsregister registriert. Wenn Aktionen fehlen, heilt sich CRM Health selbst durch erneute Registrierung.

Live-Datenzählungen

Gesamtkontakte, Unternehmen, Geschäfte, Aufgaben, Aktivitäten und Veranstaltungen; nützlich für die Überprüfung von Importen und laufende Datenerfassung.

Nach der Einstellungsprüfung

Nach der erstmaligen CRM-Einrichtung öffnen Sie den CRM-Gesundheitszustand und verifizieren, dass alle Prüfungen grün sind.

Wie oft sollte ich CRM Health überprüfen?+

Überprüfen Sie nach der Ersteinrichtung, nach größeren Updates und wenn das CRM-Verhalten falsch erscheint. CRM Health heilt viele Probleme (wie fehlende Aktionsregistrierungen) selbst, indem Sie einfach die Seite öffnen.

CRM

CRM-Verbindungen für Entwickler

Das CRM stellt eine vollständige öffentliche REST API und ausgehende Webhooks zur Verfügung, so dass es ohne manuelle Exporte in jeden Stack passt.

API Endpunkte

Authentifizierung

API key (Authorization: Bearer opq_...) mit scope crm.read oder crm,write /api/v1.php mit action und site_key.

Kontakte

crm. contacts. list (Suche + Filter), crm,contacts,detail (durch ID), crM. contact. upsert (Erstellen oder Aktualisieren), crem. contactes. save.

Geschäfte

crm. deals. list, crm . deal. detail, cr m . eals. create, cr M . deals. update, cr . Deals. advance (alles über die Trust Layer).

Aktivitäten

crm. activities. list (Zeitleiste für einen Kontakt/Deal), crm,activitys. record (eine neue Aktivität protokollieren).

Veranstaltungen

crm. events. list (dauerhafter Änderungsfeed mit since_id cursor), crm,event. catalog (verfügbare Ereignistypen auflisten).

Erstellen Sie einen Deal über API
POST /api/v1.php
Authorization: Bearer opq_live_xxx
Content-Type: application/json

{
  "action": "crm.deals.create",
  "site_key": "<workspace>",
  "title": "Acme renewal",
  "amount": 12000,
  "pipeline_id": 1,
  "stage_id": 2
}

Webhook-Ereignisse

crm.contact.created

Wird ausgelöst, wenn ein neuer Kontakt zum CRM hinzugefügt wird.

crm. deal. stage_changed

Gefeuert, wenn ein Deal in eine andere Phase wechselt.

crm.deal.won

Gefeuert, wenn ein Deal als gewonnen geschlossen wird.

crm.deal.lost

Gefeuert, wenn ein Deal als verloren geschlossen wird.

crm.task.created

Gefeuert, wenn eine neue Aufgabe erstellt wird (manuell oder AI-generiert).

crm.outreach.reply

Gefeuert, wenn ein Interessent auf eine Sequenz-E-Mail antwortet.

crm. agent. proposal_created

Gefeuert, wenn ein KI-Agent einen Vorschlag für die Genehmigungswarteschlange erstellt.

Alle Webhook-Ereignisse werden von HMAC signiert und bei einem Ausfall erneut versucht. Abonnieren Sie eine URL in Einstellungen > Webhooks oder wählen Sie crm. events. list mit since_id für einen dauerhaften Änderungsfeed.

Synchronisieren von CRM-Kontakten mit Google Sheets

Szenario:
You want every new CRM contact to appear in a Google Sheet for your marketing team.
Was zu tun ist:

Richten Sie einen Webhook-Abonnenten für crm. contact. created ein. Zeigen Sie ihn auf eine Google Apps Script-Webapp oder einen Zapier-Webhook URL. Die Nutzlast enthält den Kontaktnamen, die E-Mail, das Unternehmen, den Lead-Score und die Quelle. Ihr Skript fügt dem Google Sheet für jeden neuen Kontakt eine Zeile hinzu.

CRM

Segmente

Segmente speichern wiederverwendbare Kontaktfilter für CRM-Ansichten, Outreach, Promotions und andere zielgruppenbewusste Tools.

Produktbildschirm
SegmenteDer Segment-Editor kombiniert Bedingungen, zeigt die Live-Match-Anzahl an und lässt den Betreiber einen Live-Filter oder eine gepinnte Snapshot auswählen.SegmenteArbeitsbereichMODELLLebendLOGICALLEMATCHES1,248LEBENDER ARBEITSPAZWERKKundenphaseGleichgestellt mit Active CustomerRegelLetzte Aktivitätinnerhalb von 30 TagenRegelLandgleich Vereinigtes KönigreichRegelHohe AbsichtMindestens 70Regel1CHOOSE MODELive oder Snapshot2ADD RULESALLE oder ANY3REUSEKampagnen und CRM
Der Segment-Editor kombiniert Bedingungen, zeigt die Live-Match-Anzahl an und lässt den Betreiber einen Live-Filter oder eine gepinnte Snapshot auswählen.

A Live-Segment berechnet sich bei jeder Verwendung aus aktuellen Daten neu. A Pinned Snapshot friert die aktuelle Mitgliederliste ein, was nützlich ist, wenn sich eine Öffentlichkeitsgruppe nach der Genehmigung nicht ändern darf.

Wählen ALLE Wenn jede Bedingung übereinstimmen muss oder SIE Wenn eine Bedingung ausreicht, überprüfen Sie die Live-Zählung vor dem Speichern. Systemsegmente können sichtbar sein, aber vor der normalen Bearbeitung geschützt werden.

CRM

Lead Scoring

Lead-Scoring-Regeln machen Verhaltens- und Profilsignale zu einer konsistenten Punktzahl, die Vertrieb und Automatisierung nutzen können.

Produktbildschirm
Lead ScoringLead Scoring zeigt aktive Regeln, das Rolling-Fenster und die positive oder negative Punktzahländerung an, für die jede Regel gilt.Lead ScoringArbeitsbereichVORSCHRIFTEN12SCORED8,412HOT LEADS286LEBENDER ARBEITSPAZWERKPreisgestaltung3+ Besuche in 14 Tage+20Keyword Kaufenenthält Migration oder Enterprise+15UnterstützungsrisikoBeschwerdeereignis in 30 Tagen-10Vertrauenswürdige QuellePartnerempfehlung+121DESCRIBE RULEVerwenden Sie plain English2REVIEW FIELDSSignal, Fenster, Punkte3RESCOREBewerben Sie sich für den Workspace
Lead Scoring zeigt aktive Regeln, das Rolling-Fenster und die positive oder negative Punktzahländerung an, für die jede Regel gilt.

Der KI-Regelersteller kann eine einfache englische Anweisung in eine strukturierte Regel umwandeln. Jede Regel sollte noch vor der Aktivierung überprüft werden: Aktivität oder Schlüsselwort bestätigen, Mindestanzahl, Fenster rollen und Punktzahländerung.

Positive und negative Regeln können koexistieren. Rescore-Arbeitsbereich Nach Änderung der Regel im Material werden bestehende Kontakte unter dem neuen Modell bewertet.

CRM

Rangliste der Verkaufslisten

Die Rangliste vergleicht Vertreter anhand der Quotenerreichung, des gewonnenen Umsatzes, der Provision und der offenen Pipeline für den ausgewählten Monat.

Produktbildschirm
Rangliste der VerkaufslistenDie monatliche Rangliste ordnet die Vertriebsmitarbeiter ein, während sie gewonnene Einnahmen, Provisionen und offene Pipeline sichtbar hält.Rangliste der VerkaufslistenArbeitsbereichPERIODJuliTEAM QUOTA82%WUNDER184kLEBENDER ARBEITSPAZWERKAmina104% Quote · £62k Won1stBen88% Quote · £51k Won2ndRita76% Quote · £43k Won3rdOffene Pipeline£ 312k im gesamten TeamÜberprüfung1CHOOSE MONTHVergleichen Sie eine Periode2CHECK QUOTAErreichung durch rep3COACHPipeline-Kontext verwenden
Die monatliche Rangliste ordnet die Vertriebsmitarbeiter ein, während sie gewonnene Einnahmen, Provisionen und offene Pipeline sichtbar hält.

Die Erreichung der Quote ist nur dann sinnvoll, wenn jeder Vertreter eine aktuelle Quote hat und die Geschäfte den richtigen Eigentümer, Betrag, Währung und engen Status haben.

CRM

Vertragszulassungen

Deal-Genehmigungen erfordern eine Manager-Abmeldung, bevor hochwertige Deals als gewonnen markiert werden können.

Produktbildschirm
VertragszulassungenDie Genehmigungsrichtlinie definiert zwei Schwellenwerte und die Warteschlange zeigt anhängige, genehmigte und abgelehnte Entscheidungen.VertragszulassungenArbeitsbereichPOLICYAktiviertWAITING6OLDEST3hLEBENDER ARBEITSPAZWERKEbene 1Deals von £10,000BetriebsleiterEbene 2Deals von £50,000SeniorErneuerung von Unternehmen£72,000 · angefordert von BenAusstehenderMigrationsprojekt£18,500 · angefordert von RitaZugelassen1SET THRESHOLDS0 deaktiviert eine Stufe2REQUESTRep reicht den Deal ein3BESCHLUSSGenehmigung oder Ablehnung
Die Genehmigungsrichtlinie definiert zwei Schwellenwerte und die Warteschlange zeigt anhängige, genehmigte und abgelehnte Entscheidungen.

Aktivieren Sie die Politik und setzen Sie Level 1 und Niveau 2 Schwellenwerte. Eine Schwelle von 0 Wenn ein Nicht-Manager versucht, einen Deal an oder über dem Schwellenwert zu gewinnen, erstellt OpsIQ eine Genehmigungsanforderung, anstatt die Phase stillschweigend zu ändern.

Manager und Volladministratoren werden durch die Richtlinie nicht blockiert. Jede Entscheidung sollte den Anforderer, Genehmiger, Zeit und Grund für die Prüfbarkeit behalten.

CRM

Lebenszyklusregeln

Lifecycle-Regeln verschieben Kontakte automatisch zwischen Phasen, wenn ihre aktuellen Daten mit einer gespeicherten Bedingung übereinstimmen.

Produktbildschirm
LebenszyklusregelnLifecycle-Regeln werden nach Priorität bewertet; die erste Übereinstimmungsregel ändert die Kontaktphase.LebenszyklusregelnArbeitsbereichAKTIV7RUNSNachtsPRIORITYHöchster ersterLEBENDER ARBEITSPAZWERKLead → QualifiziertScore ≥ 60 und aktuelle AktivitätPriorität 100Qualifiziert → KundeKaufereignis existiertPriorität 90Kunde → RisikoKeine Aktivität für 60 TagePriorität 70Gefährdet → KundeNeukauf oder AntwortPriorität 601PICK STAGESVon und bis2DEFINE FILTERSegmentstil JSON3ORDER RULESErstes Spiel gewinnt
Lifecycle-Regeln werden nach Priorität bewertet; die erste Übereinstimmungsregel ändert die Kontaktphase.

Jede Regel hat eine Quellstufe, Zielstufe, aktives Flag, Priorität und einen Segment-Filter. Der geplante Lebenszyklusjob bewertet zuerst höhere Prioritäten und endet nach dem ersten Match für einen Kontakt.

Regeln sollten gegenseitig verständlich sein. Vermeiden Sie zwei aktive Regeln, die den gleichen Kontakt während des gleichen Durchlaufs in entgegengesetzte Richtungen bewegen können. Testen Sie das Filter gegen ein Segment, bevor Sie es aktivieren.

CRM

CRM-Aktivitätsstrom

Der Workspace-Aktivitätsstrom kombiniert Kunden- und Betriebsereignisse, sodass Teams untersuchen können, was passiert ist, ohne jedes Modul zu öffnen.

Produktbildschirm
CRM-AktivitätDer Aktivitätsstrom verbindet Chat, Ticket, E-Mail, Webhook, Conversion und Anomalien mit Filtern und Paginierung.CRM-AktivitätArbeitsbereichEREIGNISSE2,804CUSTOMERS1,126ANOMALIES14LEBENDER ARBEITSPAZWERKChat gelöst[email protected]JetztAntwort auf das TicketT-1048 · Abrechnung4 mEingehendes Ereignissubscription.upgraded12 mUmrechnungReihenfolge #7788 · £14919 m1FILTEREvent und Kunde2OPEN CONTEXTSpringen Sie zum Protokoll3PAGE RESULTSUntersuchungen begrenzen
Der Aktivitätsstrom verbindet Chat, Ticket, E-Mail, Webhook, Conversion und Anomalien mit Filtern und Paginierung.

Filtern nach Ereignisart, Datum, Kontakt oder Kundenstatus (einschließlich zahlender Kunden): Der Feed ist ein Lesemodell der aufgezeichneten Aktivität; er ersetzt nicht den Quellticket-, Gesprächs-, Deal- oder Connector-Record. Öffnen Sie den verknüpften Record, bevor Sie eine sensible Aktion durchführen.

CRM

Workflows

Workflows reagieren auf ein Ereignis und führen eine geordnete Reihe von Aktionen aus, einschließlich verzögerter Schritte, die von cron fortgesetzt werden.

Produktbildschirm
WorkflowsEin Workflow-Lauf zeigt seinen Trigger, abgeschlossene Aktionen, Warteverzögerung und den nächsten Schritt.WorkflowsArbeitsbereichAKTIV9RUNNING42GEFAHREN1LEBENDER ARBEITSPAZWERKTriggercontact.createdBeginnSchritt 1Senden Sie Willkommens-E-MailGeschehenVerzögerungWarten 2 TageWartenSchritt 2Erstellen Sie eine VerkaufsaufgabeNächster Artikel1CHOOSE TRIGGEREvent startet den Lauf2ORDER STEPSAktionen und Verzögerungen3MONITORResume durch cron
Ein Workflow-Lauf zeigt seinen Trigger, abgeschlossene Aktionen, Warteverzögerung und den nächsten Schritt.

Erstellen Sie einen Workflow, indem Sie den Trigger auswählen, Schritte in der Reihenfolge hinzufügen und aktivieren. Verzögerungen werden gespeichert, nicht durch eine Browseranforderung gespeichert; das einheitliche Cron nimmt die fälligen Workflowläufe wieder auf.

Eingebaute Startvorlagen beinhalten Willkommen nach der Anmeldung, Dankeschön nach dem Kauf und Demo-Bestätigung. Klonen Sie eine Vorlage, ersetzen Sie ihre Empfänger / Inhalte und testen Sie dann mit einer kontrollierten Aufzeichnung vor der breiten Aktivierung.

Aktionen als idempotent zu gestalten: Ein Wiederholungsversuch darf keine doppelten Geldumwandlungsanfragen senden oder doppelte Datensätze erstellen.

Unterstützung

Tickets

Tickets sind Ihr formeller Support-Kanal. Sie haben Abteilungen, Prioritäten, SLA-Ziele, Anhänge, interne Notizen und vollständige Konversations-Threading. OpsIQ Admin, Ticketformular/Embed, E-Mail-Einnahme, Chat-Eskalation, Connector oder API.

Tickets
Angaben zum TicketEin Ticket mit einer Meta-Sidebar (Priorität, Abteilung, SLA, Status), dem Konversationsthread und KI-Entwurfs- und Rückerstattungsaktionen.FahrkartenArbeitsbereichT-12345PrioritäthochAbteilungAbrechnungSLA3h 12m linksStatusOffenIch wurde zweimal für meineAbonnement am Juni 3.ABestätigt das DuplikatKosten, Erstattungsverarbeitung.AI-Entwurf der AntwortErstattung1THREADEDVollständige Konversation + Notizen2SLA & ROUTINGPriorität, Dept, Timer3AI DRAFTAntwort für Sie geschrieben
Jedes Ticket trägt seine Priorität, Abteilung, SLA-Timer und den vollen Thread, und die KI kann die Antwort für Sie erstellen.

Wie ein Ticket fließt

1
Ticket kommt an

Ein Kunde sendet eine Nachricht per E-Mail, Chat Eskalation, Ticket Embed oder der Administrator erstellt eine.12345).

2
Triage

KI liest Subjekt und Körper, weist Priorität zu (niedrig/normal/hoch/dringend), schlägt eine Abteilung vor und erkennt Stimmung. Dies geschieht automatisch, wenn Triage aktiviert ist.

3
Antwort

Ein Agent öffnet das Ticket, liest den Kontext (Kundenprofil, Plattformdaten von Connectoren, frühere Tickets) und schreibt eine Antwort. AI kann die Antwort entwerfen, und der Agent bearbeitet sie vor dem Senden.

4
Schließen

Wenn das Problem behoben ist, schließt der Agent das Ticket. Der Kunde wird benachrichtigt. Wenn der Kunde nach dem Schließen antwortet, öffnet sich das Ticket automatisch wieder.

Aktionen pro Ticket

Änderungsabteilung

Bewegen Sie das Ticket in eine andere Abteilung (z. B. von General zu Billing). Nützlich, wenn die ursprüngliche Route falsch war.

Zuweisung an den Agenten

Weisen Sie das Ticket einem bestimmten Teammitglied zu. Der zugewiesene Agent sieht es in der Ansicht "Meine Tickets".

Interne Anmerkung hinzufügen

Schreiben Sie einen Hinweis, der nur für Mitarbeiter sichtbar ist. Verwenden Sie ihn für: Untersuchungsergebnisse, Erstattungsgründe, technische Zusammenhänge, frühere Verpflichtungen. Interne Notizen erscheinen den Kunden nie.

Zusammenführungstickets

Kombinieren Sie doppelte Tickets desselben Kunden. Das zusammengeführte Ticket-Subjekt erhält einen [MERGED] Tag. Alle Nachrichten von beiden Tickets werden im überlebenden Ticket gespeichert.

Antwort in Dosen

Einfügen einer vorschriftsmäßigen Antwortvorlage. {{customer_name}} und {{ticket_id}} automatisch ersetzt werden.

AI Rewrite

Lassen Sie AI Ihre Antwort auf den Entwurf verbessern: Ton anpassen, verkürzen/verlängern, Grammatik korrigieren oder übersetzen.

Änderungspriorität

Auf Low, Normal, High oder Urgent setzen. Die Priorität betrifft SLA-Timer und die Sortierreihenfolge.

Änderungsstatus

Setzen Sie auf Öffnen, Ausstehen, Warten auf den Kunden, Aufgelöst oder Geschlossen.

Bearbeitetes Beispiel: Umgang mit einem unzufriedenen Kunden

Kunden-E-Mail: "Ich wurde zweimal für mein Abonnement in Rechnung gestellt"

Szenario:
Subject: Double charge on my account
Body: Hi, I just checked my bank statement and I see two charges of $49.99 from your company dated June 3. I only have one subscription. Can you please refund the duplicate charge? This is really frustrating.
Was zu tun ist:

Step 1: AI triage assigns Priority: High, Department: Billing, Sentiment: Frustrated. Step 2: Agent opens the ticket. The connector panel shows the customer's Stripe charges, confirmed two charges on June 3. Step 3: Agent adds an internal note: "Confirmed duplicate charge in Stripe. Transaction IDs: ch_xxx and ch_yyy." Step 4: Agent drafts a reply: "Hi [Name], I can see the duplicate charge and I'm processing a refund for the second transaction right now. You should see $49.99 back in your account within 3-5 business days. I'm sorry for the inconvenience." Step 5: Agent triggers the refund action through the Stripe connector (with confirmation). Step 6: Agent sends the reply and sets status to Resolved.

Departements

Abteilungen erstellen unter Einstellungen > Tickets > Abteilungen. Gemeinsame Abteilungen: Allgemein, Abrechnung, Technik, Verkauf, Missbrauch, Onboarding. Jede Abteilung kann unterschiedliche Regeln für die automatische Antwort, KI-Kenntnisse und Teamzuweisungen haben.

Antworten in Dosen

Erstellen Sie wiederverwendbare Antwortvorlagen unter Einstellungen > Tickets > Antworten in Dosen. Gute Antworten in den Dosen sind:

Beispiel für ein Antwortmuster in Dosen
Hi {{customer_name}},

Thanks for reaching out. I checked the details and here is what I found:

{{response_details}}

If you need anything else, just reply to this ticket and I will be happy to help.

Best regards,
{{agent_name}}
{{department_signature}}

Zusammenführung von Tickets

Wenn ein Kunde dieselbe Frage mehrmals sendet (per E-Mail und Chat oder zwei separate E-mails), können Sie die Duplikate zusammenführen. Gehen Sie zum Ticket, klicken Sie auf Zusammenfügen, wählen Sie das andere Ticket aus, um zu verschmelzen. Das überlebende Ticket erhält alle Nachrichten von beiden Tickets. Der Betreff des zusammengeführten Tickets erhält einen [MERGED] Tag, um anzuzeigen, dass es kombiniert wurde.

Priorität und SLA

niedrig

Nicht dringende Fragen, Feature Requests, allgemeine Rückmeldungen. Erste Antwort: 24 Stunden

Normal

Standard-Supportfragen. Ziel erste Antwort: 8 Stunden.

hoch

Erste Antwort: 4 Stunden.

Dringend

Service down, Sicherheitsvorfall, Datenverlust, Abrechnungsfehler. Ziel erste Antwort: 1 Stunde.

Die SLA-Timer starten, wenn das Ticket erstellt wird. Sie werden angehalten, wenn der Status „Warten auf Kunden“ lautet. Wird das SLA verpasst, wird das Ticket hervorgehoben und optional eskaliert.

Können Kunden interne Notizen sehen?+

Niemals. Interne Notizen sind ausschließlich Mitarbeiter-nur. Sie erscheinen nicht im Kundenticketportal, E-Mail-Benachrichtigungen oder einer kundenorientierten Oberfläche.

Was passiert, wenn ein geschlossenes Ticket beantwortet wird?+

Das Ticket öffnet sich automatisch wieder und kehrt in die aktive Warteschlange zurück.

Kann ich ein Ticket sperren, um weitere Antworten zu verhindern?+

Ja. Verwenden Sie die Option Sperren, um zu verhindern, dass sowohl der Kunde als auch KI neue Antworten hinzufügen. Nützlich für beigelegte Streitigkeiten oder abgeschlossene Untersuchungen.

Unterstützung

Service Studio: SLA, Statusfluss und Qualität

Der Kontrollraum für das Verhalten Ihres Support-Betriebs: SLA-Richtlinien mit Eskalationsleitern, Geschäftszeitenkalendern, einem erzwungenen Statusfluss, CSAT-Einstellungen und den Enterprise-Feature-Schaltern. Öffnen Sie ihn von der Tickets-Seite (die Service Studio-Taste in der Operationsleiste).

SLA-Politik

Jedes neue Ticket erhält eine erste Antwort und eine Lösungsfrist aus der spezifischsten aktiven Richtlinie: Abteilung + Priorität schlägt Abteilung, Priorität schlägt Standard. Fristen pausieren automatisch, während ein Ticket in Pending oder On Warteschleife steht.

Steigleitern

Instead of one breach action, a policy can define up to six steps: for example warn the assignee at 75% of the window, alert managers at 100%, reassign to a named agent at 150%. Each step fires exactly once per ticket.

Geschäftszeiten und Kalender

Bei eingeschalteten Geschäftszeiten brennen SLA-Uhren nur während der Arbeitszeit, so dass ein freitagabendoffenes Ticket bis Samstag nicht verletzt wird. Benannte Kalender (Zeitzone, Tage, Stunden, Feiertage) können an individuelle Policen für Teams in verschiedenen Regionen angehängt werden.

Statusfluss

Eine von/zu-Matrix, die die Statusänderungen einschränkt, mit einer Zendesk-Style-Voreinstellung. Automatisierung, eingehende E-Mails und vom Kunden stammende Ticketantworten sind immer ausgenommen, so dass eine strenge Matrix niemals die Pipeline blockieren kann. Optional ist vor dem Schließen eine genehmigte Abmeldung erforderlich.

Genehmigungen

Agenten verlangen die Abmeldung auf einem Ticket (Rückerstattungen über einen Schwellenwert, Richtlinienausnahmen). Ein benannter Genehmiger oder ein vollständiger Administrator entscheidet mit einer Notiz; Anforderer können niemals ihre eigene Anfrage genehmigen. Ausstehende Genehmigungen werden als Banner im Posteingang angezeigt.

Ticketbeziehungen

Verlinken Sie Tickets als verwandt, Duplikat, Elternteil / Kind oder Blockieren; aufgeteilte Antworten auf ein neues verknüpftes Ticket (umgekehrt von Merge, ohne den Kunden zu e-Mails zu senden); Folgen Sie Tickets für In-App-Benachrichtigungen und optional CC-Follower-E-Mail-Adressen bei ausgehenden Antworten.

Live-Posteingang und Kollisionen

Wenn der Echtzeit-Posteingang aktiviert ist, werden innerhalb von Sekunden neue Tickets und Antworten für Agenten durch den vorhandenen Benachrichtigungsstrom angezeigt. Auf einem Ticket sehen die Agenten, wer sonst noch zusieht, und erhalten ein Warnbanner, wenn ein Teamkollege bereits eine Antwort schreibt. Eine Ein-Klick-Anforderungsschaltfläche weist das Ticket Ihnen selbst zu.

AI-bewusstes Routing

Routing-Regeln können auf AI Triage-Signalen übereinstimmen: Priorität, Kategorie, Stimmung und Eskalationsrisiko sowie eingegebene benutzerdefinierte Feldwerte aus Ihrem Portalanforderungsformular. Regeln mit diesen Bedingungen bleiben ruhend, bis die Funktion aktiviert ist.

💡
Jeder Enterprise-Switch wird mit der Option OFF ausgeliefert. Wenn Sie einen in Service Studio → Qualität & Automatisierung aktivieren, ist das Opt-in. Wenn sie deaktiviert bleiben, bleibt das Verhalten identisch wie vor dem Upgrade.
Warum kann ein Kunde ein geschlossenes Ticket immer noch wieder öffnen, wenn meine Matrix es verbietet, geschlossen → offen zu sein?+

Die Matrix regelt nur ADMIN-Aktionen. Kundenbezogene Antworten, E-Mail-Antworten und Automatisierung sind absichtlich ausgenommen, so dass eine strenge Richtlinie niemals Kunden ausschließen oder die Pipeline unterbrechen kann.

Ersetzen SLA-Leiter die alte Breat Action?+

Nein. Richtlinien, die mit einer einzelnen Aktion gespeichert wurden, funktionieren unverändert. Eine Leiter ersetzt die einzelne Aktion nur bei Richtlinien, in denen Sie Schritte definieren.

Unterstützung

Auto-Republik Ticket und Eskalation

Auto-Reply ermöglicht es der KI, automatisch auf neue Tickets zu reagieren. Eskalation verschiebt Tickets in eine andere Abteilung, wenn die KI spezielle Bedürfnisse erkennt. Beide Funktionen funktionieren über native Tickets und E-Mail-erstellte Tickets hinweg.

Auto-Reply
Ticket-Auto-AntwortEin Flow: neues Ticket, eine zweiminütige Verspätung, KI-Antwort aus Wissen und Kontext, dann gesendet oder als Entwurf gespeichert.Auto-ReplyArbeitsbereichWenn ein neues Ticket ankommtNeues Ticketjede QuelleVerzögerung2 minAI-AntwortenKB + KontextGesendetoder EntwurfWenn ein Mensch während der Verzögerung antwortet, wird die automatische Antwort abgebrochen.1DELAYMenschen bekommen erste Chance2AI REPLIESAus KB + Kontext3OR ESCALATERoute nach Vorsatz
Neue Tickets erhalten eine kurze Verzögerung (damit Menschen einspringen können), dann eine KI-Antwort aus Ihrem Wissen, gesendet oder als Entwurf in die Warteschlange gestellt.

Wie Auto-Reply funktioniert

1
Ticket erscheint

Ein neues Ticket wird aus einer beliebigen Quelle erstellt (E-Mail, Chat, Portal, API).

2
Zeitplan für die Antwort

OpsIQ Wartet auf die konfigurierte Verzögerung (Standard): 2 Dies gibt menschlichen Agenten die Möglichkeit, zuerst zu reagieren.

3
Erste Antwort gewinnt

Wenn ein menschlicher Agent während der Verzögerung antwortet, wird die automatische Antwort abgebrochen.

4
Generieren und senden

Die KI liest das Ticket, prüft die Wissensdatenbank, den Connector-Kontext und die Kundenhistorie und schreibt dann eine Antwort.

Wie Eskalation funktioniert

1
Konfigurieren von Abteilungen

Legen Sie fest, welche Abteilungen Eskalationen erhalten können (z. B. kann die Abrechnung von General eskaliert werden, Technical kann von General Eskaliert).

2
Klassifizieren Sie das Ticket

Vor der automatischen Antwort klassifiziert die KI die Ticketabsicht: Abrechnung, technische, Rückerstattung, Missbrauch usw.

3
Umzug bei Bedarf

Wenn die Ticketabsicht mit einer Eskalationsabteilung übereinstimmt, wird das Ticket verschoben. Eine interne Notiz erklärt warum.

4
Generieren in neuer Stimme

Die Antwort wird mit dem Wissen der Zielabteilung und KI-Training generiert.

Bezugsnummer der Einstellungen

Auto-Reply aktiviert

Hauptschalter. Schalten Sie ein, um die automatische Antwort von KI auf Tickets zu aktivieren.

Zulässige Abteilungen

Welche Abteilungen Auto-Antworten erhalten können. Beginnen Sie mit risikoarmen Abteilungen (Allgemein, Vertrieb), bevor Sie die Abrechnung aktivieren.

Verzögerung

Wie lange warten, bis die KI antwortet (in Sekunden). 120 Sekunden2Minuten.0für sofortige Antworten.

Zeitplan für die Verzögerung

Optional unterschiedliche Verzögerungen für Geschäftszeiten vs. nach Stunden einstellen.

Stoppen Sie auf Admin Antwort

Wenn ein menschlicher Agent zuerst antwortet, stornieren Sie die automatische Antwort.

Eskalation ermöglicht

Aktivieren Sie das automatische Abteilungs-Routing basierend auf der Ticketabsicht.

Abteilungen für Eskalation

Zu welchen Abteilungen Tickets eskaliert werden können.

Eskalationsstatus

Welchen Status bei Eskalation einstellen (z. B. Offen, Ausstehend).

Eskalationsanzeige

Ob man eine interne Notiz hinzufügt, die den Eskalationsgrund erklärt.

E-Mail erstellte Tickets

Tickets, die über E-Mails erstellt werden (über Mailbox Polling oder MX-Piped Delivery), folgen den gleichen Regeln für automatische Antwort und Eskalation. Die KI-Antwort wird als E-mail-Anantwort an den Kunden gesendet.

Wird die KI automatisch auf Abrechnungsfragen antworten?+

Nur wenn Sie Auto-Reply für die Abrechnungsabteilung aktivieren. Wir empfehlen, mit Auto-Redaktion für die Rechnungsstellung zu beginnen und erst dann zu aktivieren, nachdem Sie die KI mit umfassenden Abrechnungskenntnissen geschult und gründlich getestet haben.

Was ist, wenn die KI eine falsche Antwort gibt?+

Wenn ein Kunde antwortet, dass die Antwort falsch war, sollte ein menschlicher Agent eingreifen.

Kann ich Auto-Replies überprüfen, bevor sie gesendet werden?+

Ja. Stellen Sie den Zustellmodus auf "Entwurf" statt "Auto-Send". Auto-Reply Entwürfe werden in der Warteschlange für die menschliche Überprüfung vor dem Senden angezeigt.

Unterstützung

Ticketportal Embed

Mit dem Einbetten des Ticketportals können Sie eine Ticketverwaltungsschnittstelle zu jeder Website hinzufügen. Kunden können ihre Tickets anzeigen, neue erstellen und antworten, ohne den OpsIQ -Admin einzugeben.

Wie es funktioniert
Ticketportal EmbedEin Support-Portal, das in eine Website eingebettet ist und einem Kunden seine eigenen Tickets und einen New-Ticket-Button zeigt.yoursite.com/supportSupport CenterNeues TicketIHRE TIKTE#1042 · RückerstattungsfrageOffen#1038 · Hilfe beim EinrichtenAbgeschlos-#1031 · RechnungsauszugAusstehender1EMBEDHinzufügen zu jeder Website2SELF-SERVEKunden sehen ihre Tickets3NO LOGINIdentität sicher gehandhabt
Ticketportal Embed

Drei Einbettaromen

Inline Embed

Rendert das Ticketportal in einem Div auf Ihrer Seite. Das Portal nimmt die volle Breite seines Containers ein.

Floating Widget

Zeigt eine Floating-Taste an, die das Ticketportal in einem Panel öffnet. Ähnlich wie ein Chat-Widget.

Authentifizierung

Benötigt einen signierten Identitätstoken. Kunden sehen nur ihre eigenen Tickets.

Installation

Ticket Embed Snippet
<script src="https://your-opsiq-domain.com/widget.php"
  data-site-key="site_abc123"
  data-mode="tickets"
  data-identity-token="SERVER_GENERATED_TOKEN"
  async></script>

Identitätsgenerierung

Für den authentifizierten Modus muss Ihr Server ein signiertes Identitätstoken generieren, das OpsIQ aussagt, wer der Kunde ist, damit er nur seine eigenen Tickets sieht.

PHP · Identitäts-Token generieren
<?php
// Generate identity token (PHP)
$site_secret = "opsiq_whsec_your_secret";
$payload = json_encode([
    "site_key" => "site_abc123",
    "customer" => [
        "id" => "cust_1001",
        "email" => "[email protected]",
        "name" => "Ada Lovelace",
    ],
    "iat" => time(),
    "exp" => time() + 900, // 15 minutes
]);
$token = base64_encode($payload) . "." . hash_hmac("sha256", $payload, $site_secret);
// Pass $token to the frontend
WHMCS hook · Identitätsmarker
// WHMCS hook — auto-generate identity token
add_hook("ClientAreaPage", 1, function($vars) {
    if (!isset($vars["loggedinuser"])) return;
    $payload = json_encode([
        "site_key" => "site_abc123",
        "customer" => [
            "id" => $vars["loggedinuser"]["id"],
            "email" => $vars["loggedinuser"]["email"],
            "name" => $vars["loggedinuser"]["firstname"]." ".$vars["loggedinuser"]["lastname"],
        ],
        "iat" => time(),
        "exp" => time() + 900,
    ]);
    $token = base64_encode($payload).".".hash_hmac("sha256", $payload, "opsiq_whsec_xxx");
    // Inject into page
});
Node. js, generieren Identitätstoken
// Node.js / Express — generate identity token
const crypto = require("crypto");

function generateOpsIQToken(customer) {
    const payload = JSON.stringify({
        site_key: "site_abc123",
        customer: {
            id: customer.id,
            email: customer.email,
            name: customer.name,
        },
        iat: Math.floor(Date.now() / 1000),
        exp: Math.floor(Date.now() / 1000) + 900,
    });
    const sig = crypto.createHmac("sha256", "opsiq_whsec_xxx")
        .update(payload).digest("hex");
    return Buffer.from(payload).toString("base64") + "." + sig;
}

Widget-Funktionen

Ticketliste

Eine durchsuchbare, statusgefilterte Liste. Ein "Auf Sie warten" Highlight Flags Tickets das Team beantwortet hat.

Threaded Conversation

Vollständige Konversationsansicht mit Rich Text, Anhängen und Zeitstempeln.

Entwurf Autosparen

Kundenentwurf Antworten werden automatisch gespeichert, so dass sie nicht verlieren Arbeit, wenn sie weg navigieren.

Wahllokale am Leben

Das Widget fragt alle ~12 Sekunden nach neuen Antworten.

Resolve / Reopen

Kunden können ihre eigenen Tickets mit einem Klick auflösen oder wieder öffnen.

Interne Mitarbeiterbriefe werden den Kunden NIEMALS im Ticket-Embed angezeigt.
Unterstützung

Chat-Posteingang

Im Chat-Posteingang verwaltet Ihr Team Live-Kundengespräche. Es zeigt aktive Chats, zugewiesene Gespräche, AI-gesteuerte Chats und archivierte Historie an.

Chat-Posteingang
Chat-PosteingangEin drei-pane-agenten-chat-posteingang: konversationsliste, die live-konversation mit einem ki-entwurfschip und ein besucher.CRMContext Panel.Chat-PosteingangArbeitsbereichJDJaneWo ist meine BestellungMOMensahAbrechnungsfrageRTRitaAKF-HandlingWo ist meine Bestellung?Heute ausgeliefert · UPSAI Draft bereitAntwort ...BESUCHERJane DoeUS · Chrom3 Vergangene AufträgeLTV $480CRMBühne: Kunde1UNIFIEDJeder Live Chat2CONTEXTBesucher + CRM-Panel3AI ASSISTEntwurf & Rewrite
Ein Posteingang für jeden Live-Chat, Konversationsliste, den Thread mit AI Draft auf Tap und voller Besucher + CRM Kontext.

Management von Gesprächen

Aktive Chats

Aktuelle Gespräche. Grüner Punkt = Kunde tippt ein oder ist kürzlich aktiv.

AI-handhabed

Gespräche, bei denen die KI reagiert. Sie können jederzeit übernehmen, indem Sie auf "Beitreten" klicken.

Zugeordnet mir

Gespräche, die Ihnen speziell zugewiesen wurden.

Warten

Gespräche, bei denen der Kunde auf eine Antwort wartet.

Archiv

Abgeschlossene Gespräche. Durchsuchbar nach Keyword, Datum und Kunde.

Handoff von AI zum Menschen

Wenn Sie ein Gespräch von der KI übernehmen, befolgen Sie diese drei Regeln:

1
Grüßt persönlich

Stellen Sie sich mit Namen vor. "Hi, das ist Sarah vom Support-Team."

2
Bezugskontext

Zeigen Sie, dass Sie das Gespräch gelesen haben. "Ich kann sehen, wie Sie nach Ihrem Bestellstatus gefragt wurden."

3
Erwartungen setzen

Sagen Sie dem Kunden, was als nächstes passiert. "Ich schaue mir das jetzt an und werde in wenigen Minuten eine Antwort für Sie haben."

AI ein-/ausschalten pro Gespräch

Wenn die KI eingeschaltet ist, erzeugt sie Antworten. Wenn ausgeschaltet sind, können nur menschliche Agenten antworten. Die KI erinnert sich an den Konversationskontext, selbst wenn sie aus- und wieder eingeschaltet sind.

Auswärtsmodus / außerhalb der Stunden

Geschäftszeiten in Einstellungen konfigurieren. Außerhalb der Geschäftszeiten kann die KI: ()1) Reagieren Sie weiterhin auf Kunden, (2) Zeigen Sie eine "Weg" -Nachricht und erstellen Sie ein Ticket für die Nachverfolgung, oder (3Deaktivieren Sie den Chat vollständig und zeigen Sie das Ticketformular. Wählen Sie das Verhalten, das zu Ihrem Support-Modell passt.

Umgang mit schwierigen Gesprächen

1
Bleib ruhig

Passen Sie nicht der emotionalen Intensität des Kunden an. Erkenne seine Frustration, ohne defensiv zu sein.

2
Fakten sammeln

Bevor Sie antworten, sammeln Sie die relevanten Informationen: Bestelldetails, Kontostatus, frühere Tickets.

3
Frühzeitige Eskalation

Wenn die Situation Rückerstattungen, rechtliche Drohungen, Missbrauch oder Sicherheit beinhaltet, eskalieren Sie zu einem leitenden Teammitglied, anstatt zu versuchen, alleine damit umzugehen.

Kann ich einen Teamchat (Agent zu Agent) haben?+

Ja. Verwenden Sie interne Notizen innerhalb einer Unterhaltung, um mit anderen Agenten zu kommunizieren. Diese Notizen sind für den Kunden nie sichtbar.

Was passiert, wenn ich einen Chat schließe?+

Die Konversation wird ins Archiv verschoben. Wenn der Kunde später eine neue Nachricht sendet, entsteht eine neue Unterhaltung.

Unterstützung

Messaging-Kanäle

Verbinden Sie WhatsApp, Facebook Messenger, Instagram DM, Telegram und LINE, damit die Nachrichten, die Kunden Ihnen bereits senden, im gleichen Posteingang wie Ihr Website-Chat ankommen und vom selben KI-Assistenten beantwortet werden.

Jeder Kanal verhält sich identisch, sobald er verbunden ist: Eine Kundennachricht wird zu einer Konversation im Chat-Posteingang, Ihr KI-Assistent beantwortet sie mit dem gleichen Wissen und den gleichen Anweisungen wie Ihr Website-Chat, und jeder Agent kann übernehmen.

Wie das Verbinden aussieht

Facebook Messenger und Instagram

Ein Klick. Verbinder öffnen → Facebook Messenger & Instagram DM, auf Connect klicken, sich mit dem Facebook-Konto anmelden, das Ihre Seite verwaltet, und die Seite auswählen. Instagram kommt damit, wenn Ihre Seite ein professionelles Instagram-Konto hat.

WhatsApp

Ein Klick, wo Ihr Provider es anbietet: Öffnen Sie den Messaging Hub-Connector und verwenden Sie Connect WhatsApp, dann folgen Sie der geführten Anmeldung von Meta, um Ihre WhatsApp Business-Nummer auszuwählen oder zu erstellen.20Gateways.

Telegramm

Zwei Minuten. Nachricht @BotFather in Telegramm, senden/newbot,Wählen Sie einen Namen und einen Benutzernamen, der mit "Bot" endet, und fügen Sie das Token ein, das Ihnen zur Verfügung gestellt wird, in den Telegram-Connector ein.OpsIQRegistriert den Webhook für Sie.

LISTE

Create a Messaging API channel at developers.line.biz, paste the Channel secret and access token, then copy the webhook URL shown in OpsIQ into LINE and switch its own auto-replies off.

SMS

Fügen Sie einen Anbieter (Twilio, Vonage, Termii und andere) im Messaging Hub mit seinen Anmeldeinformationen und Absendernummer hinzu.

Jeder Connector zeigt seine eigenen Schritt-für-Schritt-Anweisungen in der Schublade, einschließlich genau was zu kopieren ist und wo.

Einen Kanal einschalten

Einen Kanal anzuschließen, startet ihn nicht. Settings → Client Chat → Advanced → Messaging Channels, den Master-Schalter und dann den einzelnen Kanal einschalten. Jeder Kanal hat seinen eigenen AI-Autoantwortschalter, so dass Sie einen steuern können, bevor Sie den Rest öffnen.

1
Verbinden Sie den Kanal

In Connectors, mit den Anweisungen in der Schublade dieses Connectors.

2
Testen Sie die Verbindung

Klicken Sie auf Test. Es macht einen echten Anruf beim Anbieter und sagt Ihnen, was falsch ist, wenn etwas nicht stimmt.

3
Messaging-Kanäle aktivieren

Einstellungen→Client Chat→Erweitert. Schalten Sie den Master-Switch ein, dann den Kanal.

4
Senden Sie sich eine Nachricht

Über ein anderes Konto können Sie Ihre Seite, Nummer oder Ihren Bot melden. Es sollte innerhalb von Sekunden im Chat-Posteingang erscheinen und eine KI-Antwort erhalten.

Antwortfenster

Messaging-Plattformen begrenzen, wie lange ein Unternehmen antworten kann, nachdem ein Kunde geschrieben hat. OpsIQ zeigt die verbleibende Zeit bei jedem Gespräch an und setzt die Regel für Sie durch.

WhatsApp

24 Stunden nach der letzten Nachricht des Kunden. Danach dürfen Sie nur eine genehmigte Vorlage senden, die Sie im selben Advanced-Tab konfigurieren.

Messenger und Instagram

24Stunden für normale Antworten; Agenten können bis zu7Tage später unter metas human agent allowance.

Telegramm, LINE, SMS

Kein plattformauferlegtes Fenster.

⚠️
Wenn eine Antwort fehlschlägt, weil das Fenster geschlossen ist, zeigt die Konversation warum. Dies ist eine Plattformregel und kein OpsIQ Limit.

Gemeinsame Fragen

Sehen die Kunden, dass eine KI geantwortet hat?+

Nur wenn Sie es ihnen sagen. Die Antwort kommt von Ihrer Seite, Nummer oder Ihrem Bot genau wie eine menschliche Antwort. Ihre KI-Anweisungen kontrollieren den Ton und ob er sich selbst identifiziert.

Kann ein Agent Mid-Conversation übernehmen?+

Ja. Öffnen Sie die Unterhaltung im Chat-Posteingang und klicken Sie auf Join. Die KI stoppt, geben Sie ein und der Kunde sieht einen durchgehenden Thread auf seiner Seite.

Was passiert, wenn ich einen Kanal abtrenne?+

Nachrichtenverlauf wird beibehalten; neue nachrichten kommen einfach nicht mehr an und die plattform wird aufgefordert, sie nicht mehr zu senden.

Können zwei Workspaces dieselbe Facebook-Seite verwenden?+

Nein. Eine Seite gehört zu einem Arbeitsbereich gleichzeitig. Wenn sie an einen anderen Ort angeschlossen wird, verschiebt sie sich und der erste Arbeitsbereich hört auf, Nachrichten zu empfangen, also trennen Sie absichtlich, anstatt sich anderswo wieder zu verbinden.

Unterstützung

Echte Chat-Gespräche

Diese Beispiele zeigen, wie eine gut ausgebildete Customer AI mit gängigen Szenarien umgehen sollte.

10 Konversation Beispiele

1. Kunden zurückfragen nach Bestellung

Szenario:
Customer: Hi, I placed an order 3 days ago and haven't received any shipping notification yet. Order #ORD-5523.
Was zu tun ist:

The AI should: (1) Look up order #ORD-5523 through the connector. (2) Report the current status and tracking info if available. (3) If the order is delayed, acknowledge the delay and provide an estimated timeline. (4) Do NOT invent a shipping status if the connector does not have one.

2Prospect fragt nach Preisgestaltung

Szenario:
Customer: How much does your Pro plan cost? Do you offer annual billing?
Was zu tun ist:

The AI should: (1) Answer from the knowledge base with current pricing. (2) Explain the difference between monthly and annual billing. (3) If the answer is not in the knowledge base, say so and offer to connect them with sales. (4) Do NOT invent pricing that is not in the knowledge base.

3Wütender Kunde fordert Rückerstattung

Szenario:
Customer: This is ridiculous! Your product does not work and I want my money back NOW.
Was zu tun ist:

The AI should: (1) Acknowledge the frustration calmly. (2) Ask for the order number or account email. (3) Explain the refund process. (4) Create a support ticket or escalate to a human agent. (5) Do NOT promise a refund, that requires human approval.

4. Doppelte Rechnungskante

Szenario:
Customer: I was charged twice this month. My bank shows two charges of $29.99.
Was zu tun ist:

Die KI sollte: ()1) Erkenne die Besorgnis an. (2) Sammeln Sie die relevanten Details (E-Mail, Gebührendaten). (3Erklären Sie, dass Abrechnungsprobleme eine menschliche Überprüfung erfordern. (4) Erstellen Sie ein Billing-Abteilungsticket mit den Details. (5Setzen Sie die Priorität auf High.

5. mehrsprachiger Kunde

Szenario:
Customer: Bonjour, je voudrais savoir si vous livrez en France?
Was zu tun ist:

Die KI sollte: ()1Reagieren Sie in der Sprache des Kunden, wenn diese Sprache unterstützt wird. (2) Beantworten Sie die Frage nach der Lieferung von der Wissensdatenbank nach Frankreich. (3Wenn die Sprache nicht unterstützt wird, antworten Sie in der Standardsprache und geben Sie an, welche Sprachen verfügbar sind.

6. Nach-Stunden-Gespräch

Szenario:
Customer: Hello, is anyone there? I need help with my account.
Was zu tun ist:

Die KI sollte: ()1) Wenn für After-Hours AI konfiguriert, antworten und unterstützen. (2) Wenn nach Stunden Tickets erstellt werden, sagen Sie: "Unser Team ist derzeit offline. Ich habe ein Support-Ticket für Sie erstellt und jemand wird während der Geschäftszeiten folgen." (3) Geben Sie die Ticketnummer an.

7. Käufer vor dem Kauf

Szenario:
Customer: How does your product compare to [Competitor X]?
Was zu tun ist:

The AI should: (1) Describe your product's strengths factually. (2) Do NOT badmouth the competitor. (3) If there is a comparison page in the knowledge base, link to it. (4) If the customer asks about features you do not have, be honest.

8. Der Kunde möchte eine Empfehlung

Szenario:
Customer: I run a small online store with about 100 orders per month. Which plan is right for me?
Was zu tun ist:

The AI should: (1) Ask clarifying questions if needed (e.g., what features matter most). (2) Recommend a plan based on the knowledge base. (3) Explain why that plan fits their needs. (4) Mention that they can start with a smaller plan and upgrade later.

9. Kunde versucht, einen nicht autorisierten Rabatt zu erhalten

Szenario:
Customer: I saw online that you give 50% discounts. Can I have one?
Was zu tun ist:

Die KI sollte: ()1) Erklären Sie höflich aktuelle Promotionen, wenn es welche gibt. (2Erstellen oder versprechen Sie keine Rabatte, die sich nicht in der Wissensdatenbank befinden. (3Wenn der Kunde fortbesteht, bieten Sie an, ihn mit dem Verkaufsteam zu verbinden.

10. Der Kunde braucht Hilfe bei einem Feature

Szenario:
Customer: How do I export my data? I can't find the export button.
Was zu tun ist:

The AI should: (1) Provide step-by-step instructions from the knowledge base. (2) Include the exact page path and button location. (3) If the feature requires a specific plan, mention that. (4) If the feature does not exist, be honest and suggest alternatives.

Unterstützung

Chat-Routing und Eskalation

Wenn ein Live-Chat eine reale Person benötigt, beantwortet die KI zwei Fragen: Welches Team besitzt diese Konversation und wem sollte man das sagen. Beide sind in Einstellungen, Client Chat, Support Flow unter AI Routing Abteilungen konfiguriert.

Wählen Sie aus, welche Abteilungen die KI verwenden darf

Die beiden Felder auf diesem Feld sind eine Whitelist. Abteilungen, die nach rechts verschoben werden, sind die einzigen, zu denen die KI weiterleiten oder Tickets öffnen kann. Alles links ist für sie unsichtbar, auch wenn die Abteilung existiert und besetzt ist. Beginne eng und füge Abteilungen hinzu, während du sie beschäftigst.

💡
Wenn überhaupt keine Abteilung aktiviert ist, OpsIQ fällt zurück auf Legacy-Routing in jeder Abteilung, die es finden kann.

Wer die Eskalation erhält

This is the part most people expect to configure and do not need to. When the AI escalates a chat, OpsIQ emails the people attached to that department. You manage that list once, on the Team and Departments page, and both ticket escalation and chat escalation follow it.

Abteilungsteammitglieder

Jeder aktive Administrator, der an die Abteilung angeschlossen ist, erhält eine eigene Kopie. Gesperrte und deaktivierte Konten werden übersprungen.

Primäradmin

Wird verwendet, wenn keine Teammitglieder angeschlossen sind, so dass eine Eskalation immer noch jemanden erreicht.

Niemand ist angehängt

Die Routing-Panel markiert diese Abteilung in rot und die KI sagt dem Besucher nicht, dass ein Mensch benachrichtigt wurde.

⚠️
Die eigene E-Mail-Adresse einer Abteilung wird absichtlich nie als Empfänger verwendet. Diese Adresse ist die Postbox des Eingangstickets der Abteilung, die eine eingehende Mail wird mit offenen Tickets verglichen. Eine Eskalation, die dorthin gesendet wird, würde als neues Ticket zurückgeschickt werden, anstatt eine Person zu erreichen.

Die Catch-All-Abteilung

Genau eine Abteilung trägt das Aufholzeichen. Sie erhält Chats, die die KI nicht selbstbewusst platzieren konnte, und sie ist eher der letzte Ausweg als der normale Weg.

1
Klare Signale gewinnen

Billing Wording geht an eine Abrechnungsabteilung, Hosting und Fehler Wording zu einem technischen, Kauf Wortlaut zum Verkauf.

2
Der AI-Klassifikator versucht als nächstes

Wenn Keywords nicht schlüssig sind, liest das Modell die Konversation und wählt aus den aktivierten Abteilungen.

3
Dann das Catch-All

Erst wenn beide leer sind, erhält die catch-all-abteilung den chat.

4
Der Sales Guard

Wenn das Catch-All eine Verkaufsabteilung ist und der Besucher kein Kaufsignal zeigte, sucht OpsIQ stattdessen nach einem Support oder einer technischen Abteilung, so dass sich gewöhnliche Supportfragen im Verkauf nicht ansammeln.

Was dem Besucher gesagt wird

Wenn die Eskalations-E-Mail ausgeht, teilt die KI dem Besucher mit, dass das Team benachrichtigt wurde. Wenn sie nicht ausgehen kann, sagt die KI etwas Ehrliches und lädt sie ein, die Nachricht stattdessen im Chat zu hinterlassen. Sie wird nicht behaupten, dass ein Mensch alarmiert wurde, wenn keine E-Mail gesendet wurde.

Das Panel sagt "Niemand zu benachrichtigen" für eine Abteilung+

Niemand ist daran gebunden. Team und Abteilungen öffnen, mindestens einen aktiven Administrator anhängen, dann die Einstellungsseite neu laden. Das Panel liest live.

Können chat-eskalationen irgendwo anders als das team gehen?.+

Ja. Eine benutzerdefinierte Adresse, die zuvor für eine Abteilung gespeichert wurde, überschreibt immer noch die Teamliste. Neue Setups sollten stattdessen Personen an die Abteilung anschließen, so dass es einen einzigen Ort gibt, an dem sie gewartet werden können.

Warum wurde mein catch-all übersprungen?+

Überprüfen Sie, ob es sich um eine Verkaufsabteilung handelt. Wenn ja, und der Besucher kein Kaufsignal gezeigt hat, führt OpsIQ absichtlich zu einem Support oder einer technischen Abteilung.

Unterstützung

E-Mail-Postfächer und Entwürfe

OpsIQ kann eine Verbindung zu E-Mail-Postfächern herstellen, um automatisch Tickets aus eingehenden E-mails zu erstellen und Antworten als E- Mail zu senden.

E-Mail
E-Mail an TicketEine IMAP Mailbox auf der linken Seite, die eingehende E-Mails in ein Thread-Ticket mit einer AI-entworfenen Antwort auf der rechten Seite einspeist.E-MailArbeitsbereich[email protected] · IMAPErstattungsantrag[email protected]Kann sich nicht einloggen[email protected]Kopie der Rechnung[email protected]Ticket #1042aus E-Mail · AbrechnungIch möchte eine Rückerstattung für diedoppelte Gebühr ...AI-EntwurfReview & Senden Sie Antwort1INGESTIMAP & Weiterleitung in2TO TICKETSAutomatisch Gewinde3AI DRAFTSAntworten zur Überprüfung
Ziehen Sie E-Mails über IMAP (oder Weiterleitung), verwandeln Sie jedes in ein Thread-Ticket und lassen Sie die KI die Antwort zur Überprüfung entwerfen.

Verbinden einer Mailbox

Protokoll

IMAP (die meisten Anbieter), Gmail API (Google Workspace) oder Microsoft Graph (Outlook) 365).

Einstellungen erforderlich

Host, Port, Verschlüsselung (SSL/TLS), Benutzername, Passwort oder App-Passwort, Ordner (normalerweise INBOX).

Abteilungsübersicht

Die Mailbox einer Ticketabteilung zuordnen. E-Mails an [email protected] erstellen Tickets in der Abteilung "Support".

Gmail-Einrichtung (Schritt für Schritt)

1
Aktivieren 2-Schritt Verifizierung

Gehen Sie zu Google Account > Sicherheit > 2-Schritt Verifizierung und aktivieren Sie es.

2
Erstellen Sie ein App-Passwort

Wählen Sie "Mail" und "Andere (OpsIQ)". Kopieren Sie das Kennwort 16.

3
Geben Sie in OpsIQ ein

Gehen Sie zu E-Mail > Mailboxes > Add. Host einstellen: imap.gmail.com Hafen: 993, Verschlüsselung: SSL, Benutzername: [email protected] Passwort: das App-Passwort.

4
Test

Klicken Sie auf Testverbindung. Wenn dies erfolgreich ist, beginnt OpsIQ im konfigurierten Intervall mit der Abfrage nach neuen E-Mails.

Outlook 365 Einrichtung

1
Check IMAP ist aktiviert

In Outlook-Einstellungen > Mail > E-Mail synchronisieren, stellen Sie sicher IMAP aktiviert ist.

2
Verwenden Sie App-Passwort oder modernes Auth

Wenn MFA aktiviert ist, erstellen Sie ein App-Passwort.

3
Geben Sie in OpsIQ ein

Gastgeber: outlook.office365.com Hafen: 993, Verschlüsselung: SSL, Benutzername: [email protected].

cPanel Webmail Setup

1
Suchen Sie IMAP Einstellungen

In cPanel > E-Mail-Konten, klicken Sie auf Ihr E-mail-Konto für IMAP Einstellungen.

2
Geben Sie in OpsIQ ein

Gastgeber: in der Regel mail.yourdomain.com oder Ihr Server-Hostname, Port: 993 (SSL) oder 143 (STARTTLS), Benutzername: vollständige E-Mail-Adresse.

AI E-Mail Entwürfe

Wenn die automatische Antwort auf den Modus "Entwurf" eingestellt ist, generiert die KI Antwortentwürfe, die in der Warteschlange für Entwürfe erscheinen.

Überprüfung

Lesen Sie den Entwurf und überprüfen Sie die Genauigkeit.

Bearbeiten

Ändern Sie den Text, Ton oder Inhalt vor dem Senden.

Senden

Genehmigen Sie den Entwurf und senden Sie ihn als E-Mail-Antwort.

Rückwurf

Löschen Sie den Entwurf, wenn er nicht angemessen ist.

Auto-Send

Wenn das Vertrauen hoch genug ist und der automatische Versand aktiviert ist, werden Entwürfe nach einer konfigurierbaren Verzögerung automatisch gesendet.

Warum werden E-Mails nicht in Tickets konvertiert?+

Kontrolle: ()1) Ist die Mailbox verbunden und gesund? Suchen Sie nach dem grünen Status in E-Mail > Postfächern. (2) Läuft der Cron-Job? E-Mail Polling erfordert Cron. (3Wird die E-Mail gefiltert oder in einen anderen Ordner als INBOX verschoben?

Kann ich mehrere Mailboxen verwenden?+

Jede Mailbox kann einer anderen Abteilung zugeordnet werden. [email protected] geht an den Support, [email protected] geht nach Billing.

Unterstützung

Kundenzufriedenheit (CSAT)

CSAT misst die Zufriedenheit mit Tickets und Chats, zeigt unglückliche Reaktionen auf und vergleicht KI und menschliche Ergebnisse.

Produktbildschirm
KundenzufriedenheitDie CSAT-Seite kombiniert Score Cards, Detraktor Follow-up, Kommentare, Abteilung und Agenten Aufschlüsselungen und Chat-Feedback.KundenzufriedenheitArbeitsbereichANTWORTUNGEN386AVERAGE4.6POSITIVE91%LEBENDER ARBEITSPAZWERKDetraktor-Follow-up12 Antworten bewertet1–2ÜberprüfungTicketerhebungenSent 24h nach CloseAutomatikChat FeedbackA. 4.5 · Mensch 4.7VergleichenAgent AnsichtScore und Response CountReisezug1WATCH AVERAGETrend verwenden, nicht eine Punktzahl2FOLLOW DETRACTORSLesen Sie den Kommentar3COMPARE FAIRLYKI und Mensch
Die CSAT-Seite kombiniert Score Cards, Detraktor Follow-up, Kommentare, Abteilung und Agenten Aufschlüsselungen und Chat-Feedback.

Ticket-Umfragen werden nach der Schließung geplant (normalerweise) 24 Eine positive Antwort ist eine Punktzahl von4oder 5Verwenden Sie die Detraktor-Warteschlange für Punkte von 1 oder2und lesen Sie das Ticket / Gespräch, bevor Sie den Kunden kontaktieren.

Chat-feedback wird separat für ki-gelöste und von menschen behandelte konversationen gemeldet niedrige probegrößen sollten nicht zum ranken von agenten oder modellen verwendet werden.

Unterstützung

E-Mail-Sendungen des Teams

Die Seite E-Mail Plattform ermöglicht es einem autorisierten Betreiber, eine einmalige Nachricht an alle aktiven Agenten, ausgewählten Agenten oder eine Abteilung zu senden und die Sendehistorie zu überprüfen.

Produktbildschirm
E-Mail-PlattformDer Team-E-Mail-Komponist zeigt das Publikum, Thema, Nachricht und vergangene Lieferhistorie.E-Mail-PlattformArbeitsbereichERNEUTEN12DELIVERED11GEFAHREN1LEBENDER ARBEITSPAZWERKPublikumAlle WirkstoffeAusgewähltThemaJuli Unterstützung RotaFertigNachrichtZeitplan und EskalationsberechnungenFertigGeschichteFrühere Sendungen und ErgebnisseSicht1CHOOSE PEOPLEAlle, ausgewählt oder Team2WRITE CLEARLYBetreff und Nachricht3REVIEW HISTORYErgebnis bestätigen
Der Team-E-Mail-Komponist zeigt das Publikum, Thema, Nachricht und vergangene Lieferhistorie.

Diese Seite ist für interne operative Nachrichten, nicht für Kundenmarketing. Wählen Sie die kleinste richtige Zielgruppe aus, sehen Sie Namen und Adressen vor und senden Sie dann. Die Lieferung verwendet den konfigurierten ausgehenden E-Mail-Pfad und zeichnet das Ergebnis auf.

Unterstützung

Postfächer, Zustellung und eingehende E-Mail

Konfigurieren Sie, wie OpsIQ E-Mails sendet, eingehende Nachrichten in Tickets umwandelt und beweist, dass die sendende Domain bereit ist.

Produktbildschirm
E-Mail-EinstellungenE-Mail-Einstellungen kombinieren Outbound Routing, From Identity, Mailbox Ingestion, Zustellbarkeitsprüfungen und Test-E-Mail.E-Mail-EinstellungenArbeitsbereichAUSSERHALBSMTPMAILBOXES3BETRIEBPassLEBENDER ARBEITSPAZWERKBevorzugter SteckverbinderSMTP / Provider-AnschlussKonfiguriertAus der IdentitätSupport <[email protected]>FertigIMAP Mailbox[email protected] · INBOXAbstimmungLieferfähigkeitSPF · DKIM · DMARCPass1CHOOSE OUTBOUNDSteckverbinder oder SMTP2CONNECT INBOXIMAP oder Rohrleitung3PRÜFUNGSenden und Verifizieren
E-Mail-Einstellungen kombinieren Outbound Routing, From Identity, Mailbox Ingestion, Zustellbarkeitsprüfungen und Test-E-Mail.

E-Mails

Vollständige Administratoren können den bevorzugten E-Mail-Connector auswählen; OpsIQ fällt zurück zu konfiguriert SMTP/mail-Zustellung, wenn zutreffend. Stellen Sie eine erkennbare von Name/Adresse, senden Sie einen Test und überprüfen Sie die 24-hour success/failure metrics.

Postfächer

Eine Postbox IMAP benötigt einen Namen, eine E-Mail-Adresse, Zielabteilung, Host, Port, Sicherheitsmodus, Benutzername, Passwort, Ordner, Abfragestatus und Zertifikatsvalidierung. Jetzt Pollen um die Einnahme zu überprüfen, bevor Sie auf Cron warten.

Sofortige Rohrleitungen

Auf demselben Server kann eine Postleitung die rohe RFC822-Nachricht direkt übergeben. Ein Remote-Mailserver kann die rohem Nachrichten mit seinem Token an den geschützten eingehenden Endpunkt POSTen. Beide Pfade gehen in dieselbe Deduplizierungs-, Threading- und Ticket-Routing-Pipeline ein.

Lieferfähigkeit

Der SPF/DKIM/DMARC-Check ist ein Hinweis auf die konfigurierte From-Domäne. Ein Green Check garantiert keine Platzierung im Posteingang, aber ein Fehler sollte vor dem Senden von Produktionsnachrichten behoben werden.

Unterstützung

Support-Portal für Studio

Support Portal Studio gestaltet und veröffentlicht die kundenorientierte Unterstützung, ohne externe Image-Assets zu benötigen.

Produktbildschirm
Support-Portal für StudioPortal Studio zeigt eine responsive Vorschau neben Thema, Navigation, Wissen, Ticket, Assistent, Formular, Fußzeile und CSS -Steuerelementen.Support-Portal für StudioArbeitsbereichTEMPLATEmodernVORBEREITUNGDesktopSTAATEntwurfLEBENDER ARBEITSPAZWERKThemaMarkenfarben und TypografieBearbeitenNavigationWissen, Tickets, AssistentBearbeitenVordruck des FahrscheinsFelder, Routing und KopieBearbeitenPublishierenValidieren und leben lassenÜberprüfung1CHOOSE TEMPLATEStarten Sie von der Struktur2PREVIEW SIZESDesktop für Mobile3PUBLISH SAFELYReview dann Release
Portal Studio zeigt eine responsive Vorschau neben Thema, Navigation, Wissen, Ticket, Assistent, Formular, Fußzeile und CSS -Steuerelementen.

Verwenden Sie die Vorlage als Ausgangspunkt, dann konfigurieren Sie Thema, Layout, Navigation, Wissenssuche, Ticketformular, Assistent, Fußzeile, Marke, Ticketverhalten, benutzerdefinierte CSS und allgemeine Einstellungen. Vorschau Desktop, Tablet und Handy vor der Veröffentlichung.

Unterstützung

Wissenslücken

Die Warteschlange für Wissenslücken sammelt Kundenfragen, die von der KI nicht sicher beantwortet werden konnten, sodass das Team die Abdeckung verbessern kann.

Produktbildschirm
WissenslückenDie Lückenwarteschlange rangiert verpasste oder wenig vertrauensvolle Fragen und verfolgt, ob das Team sie gelöst hat.WissenslückenArbeitsbereichOPEN GAPS28REPEATED9RESOLVED116LEBENDER ARBEITSPAZWERKMigrationsgrenzwerteGefragt 14 ZeitenhochWochenendunterstützungGefragt 8 ZeitenMittelZeitpunkt der ErstattungGefragt 6 ZeitenMittelAPI RegionGefragt 3 Zeitenniedrig1REVIEW QUESTIONSiehe Konversationskontext2CHOOSE FIXArtikel oder Einleitung3RESOLVEÜberprüfen Sie die nächste Antwort
Die Lückenwarteschlange rangiert verpasste oder wenig vertrauensvolle Fragen und verfolgt, ob das Team sie gelöst hat.

Öffnen Sie eine Lücke, um die ursprüngliche Frage und das Gespräch in der Nähe zu lesen, und wählen Sie dann den richtigen Fix: Aktualisieren Sie einen vorhandenen Artikel, erstellen Sie einen neuen Wissensartikel, fügen Sie eine Geschäftstatsache hinzu, korrigieren Sie die Verbindungsdaten oder ändern Sie Eskalationsanweisungen. Markieren Sie ihn erst nach einer Bewertung oder einem echten Test, der eine akzeptable Antwort liefert.

Unterstützung

Verwaltung der Statusseite

Die Statusverwaltungsseite kommuniziert Servicezustand und Vorfälle mithilfe von Komponenten, aktuellen Zuständen und Updates.

Produktbildschirm
StatusverwaltungDie Statusverwaltung listet Komponenten und Vorfälle auf, damit die Betreiber klare, zeitgestempelte Serviceinformationen veröffentlichen können.StatusverwaltungArbeitsbereichOVERALLBetrieblichBAUTEILEN7INCIDENTS1LEBENDER ARBEITSPAZWERKWebsiteBetrieblichGrünAPIGeminderte LeistungUhrzeitE-Mail-EinnahmeBetrieblichGrünAktueller VorfallAPI LatenzuntersuchungOffen1UPDATE COMPONENTWählen Sie einen klaren Zustand2POST INCIDENTZeitstempel-Updates3RESOLVESchließen Sie mit der Zusammenfassung
Die Statusverwaltung listet Komponenten und Vorfälle auf, damit die Betreiber klare, zeitgestempelte Serviceinformationen veröffentlichen können.

Komponentenzustände konsistent verwenden. Wenn ein Vorfall Kunden betrifft, veröffentlichen Sie eine erste Benachrichtigung, fügen zeitgestempelte Updates hinzu, wenn sich Fakten ändern, und schließen mit einer Zusammenfassung der prägnanten Auflösung ab. Verwenden Sie die Statusseite nicht als internes Debug-Protokoll; sensible Diagnosen gehören in OpsIQ und Serverprotokolle.

A

Richten Sie Ihre AI ein

Bei der KI-Konfiguration wählen Sie Ihren AI-Anbieter, Ihr Modell und Ihre Kostenkontrolle aus. OpsIQ unterstützt mehrere Anbieter: Claude ()Anthropic), GPT-4o (OpenAI), Gemini (Google) und Grok (xAI). API Schlüssel:BYOK) oder Managed AI, wenn in Ihrem Plan verfügbar.

AI einrichten
AI-KonfigurationEin AI-Einstellungsfeld: ein Managed-AI / BYOK Provider-Toggle, ein Modellwähler und ein monatliches Token-Budget-Meter.AI-KonfigurationArbeitsbereichAI-KonfigurationAnbieterManaged AIIhr Schlüssel (BYOK)ModellClaude · ausgewogenMonatliches AI-Budget62%1TWO MODESManaged AI oder BYOK2PICK A MODELGeschwindigkeit vs Tiefe3BUDGETSToken Caps & Kostenkontrolle
Wählen Sie Managed AI oder Ihren eigenen Schlüssel, wählen Sie ein Modell für Geschwindigkeit vs Tiefe und begrenzen Sie monatliche Ausgaben mit einem Token-Budget.

Auswahl eines Anbieters

Claude (Anthropic)

Starkes Denken, vorsichtig mit Fakten, gut im Befolgen komplexer Anweisungen.4-20250514, claude-3.5-sonnet. Am besten für: Supportgespräche, technische Fragen, detaillierte Analysen.

GPT-4o (OpenAI)

Schnelles, kreatives, gutes Allgemeinwissen. Modelle: gpt-4o, gpt-4-o-mini. Am besten für schnelle Antworten, kreative Schreiben, breite Wissensfragen.

Gemini (Google)

Gut in sachlichen Fragen, mehrsprachige Unterstützung.gemini-2.0-blitzen,gemini-1.5 Am besten für: mehrsprachige Unterstützung, sachliche Lookups.

Grau (xAI)

Schnelle, knappe Antworten. Modelle: grok-3-minischnell. Am besten für schnelle Antworten, beiläufiger Ton.

BYOK vs. Verwaltete KI

BYOK (Bringen Sie Ihren eigenen Schlüssel)

Sie stellen Ihren eigenen API -Schlüssel vom Anbieter zur Verfügung. Sie bezahlen den Anbieter direkt.

Managed AI

AI wird als Teil Ihrer OpsIQ Plan Nr. API Die Nutzung wird mit dem AI-Guthaben Ihres Plans verglichen.

Schritt-für-Schritt-Einrichtung

1
Gehen Sie zu AI Configuration

Navigieren Sie im OpsIQ -Admin zu Einstellungen > AI Configuration.

2
Ausgewählter Anbieter

Wählen Sie Ihren AI-Anbieter aus dem Dropdown.

3
Geben Sie den Schlüssel API ein

Bei Verwendung BYOK Betreten Sie Ihre API Schlüssel. Bei Managed AI wird dies automatisch gehandhabt.

4
Wählen Sie das Modell

Wählen Sie das zu verwendende Modell aus. Kleinere Modelle sind schneller und billiger. Größere Modelle liefern qualitativ bessere Antworten.

5
Prüfanschluss

Klicken Sie auf "Verbindung testen", um zu überprüfen, ob API -Taste und Modell funktionieren. Ein grünes Häkchen bedeutet Erfolg.

6
Sparen

Klicken Sie auf Speichern, um Ihre AI-Konfiguration zu aktivieren.

Kostenkontrolle

Monatlicher Haushalt

Legen Sie einen maximalen monatlichen Aufwand für KI-Token fest. Wenn das Budget erreicht ist, verschlechtern sich die AI-Funktionen anmutig (kürzere Antworten, keine automatische Antwort), anstatt ganz zu stoppen.

Per-Conversation Token Limit

Maximale Token pro einzelne Konversation. Verhindert, dass außer Kontrolle geratene Gespräche übermäßige Credits verbrauchen.

Alarmstufe 1

Wenn Ihr AI-Guthaben unter den Schwellenwert fällt (Standard: 50,000 Token), erscheint im Administrator eine Warnung.

Konfiguration pro Arbeitsbereich

KI-Konfiguration ist pro Arbeitsbereich. Wenn Sie mehrere Standorte verwalten, kann jeder Arbeitsbereich einen anderen Anbieter, ein anderes Modell und ein anderes Budget verwenden. Der Arbeitsbereich erbt globale Standardwerte, sofern nicht überschrieben. Um pro Arbeitsraum zu konfigurieren: Wechseln Sie zum Arbeitsbereich, gehen Sie dann zu AI Configuration und speichern Sie dort Einstellungen.

API -Schlüssel erhalten

Anthropic (Claude)

Gehen Sie zu console.anthropic.com > API Tasten > Schlüssel erstellen. Kopieren Sie den Schlüssel beginnend mit "sk-ant-".

OpenAI (GPT)

Gehen Sie zu platform.openai.com > API Tasten > Erstellen Sie einen neuen geheimen Schlüssel. Kopieren Sie den Schlüssel, der mit "sk-" beginnt.

Google (Gemini)

Gehen Sie zu aistudio.google.com > Get API Schlüssel. Erstellen Sie einen Schlüssel für Ihr Projekt. Kopieren Sie den Schlüssel.

xAI (Grok)

Gehen Sie zu console.x.ai > API Schlüssel. Erstellen und kopieren Sie Ihren Schlüssel.

Testen Sie Ihr AI-Setup

Szenario:
After entering your API key, click "Test connection." You should see a green checkmark and a sample response from the AI.
Was zu tun ist:

If the test fails: (1) Check that the API key is correct (no extra spaces). (2) Check that your account has billing set up with the provider. (3) Check that the model name is valid. (4) If using Managed AI, verify your license is active.

Welcher Anbieter ist der beste?+

Es gibt keinen einzigen besten Anbieter. Claude ist hervorragend für Support-Gespräche geeignet. GPT-4o ist schnell und vielseitig. Gemini verarbeitet mehrere Sprachen gut. Probieren Sie jede einzelne aus und sehen Sie, welche die besten Ergebnisse für Ihren speziellen Anwendungsfall liefert.

Kann ich später den Anbieter wechseln?+

Ja. Wechseln Sie den Provider und API -Schlüssel jederzeit. Bestehender Konversationsverlauf bleibt erhalten. Die KI wird den neuen Anbieter für alle zukünftigen Gespräche verwenden.

Was passiert, wenn mir die Credits ausgehen?+

Die KI verschlechtert sich anmutig: Antworten werden kürzer, Auto-Reply-Pausen und der Administrator zeigt eine Warnung mit niedrigem Gleichgewicht. Core-Tracking, Tickets und CRM funktionieren weiterhin ohne KI.

A

Intelligenter & billiger Kundenchat

Eine Reihe von Opt-in-Steuerelementen, die Ihren Kundenchat entweder intelligenter (es Gründe für ein Kundenkonto wie ein menschlicher Agent) oder billiger machen (es sendet die KI weniger oder Antworten in weniger Schritten). Jede Steuerung ist standardmäßig ausgeschaltet und unabhängig, das Einschalten ändert nie anderes Verhalten. Die meisten leben unter Einstellungen > Client Chat > Verhalten; einige sind auf Einrichtung Ihrer AI und Trainieren Sie Ihre KI.

Smartere Antworten (Agentenmodus)

Ein normaler Chatbot beantwortet eine Frage aus einem Lookup. Agent-Modus Auf, kann der Assistent mehrere Read-Only-Kontoprüfungen in einem einzigen Zug machen und Querverweise sie zB "habe ich offene Tickets, und ist mein Guthaben genug für meine nächste Erneuerung?" wird in einer Antwort mit den fertigen Mathematik beantwortet. es nur für verifizierte Kunden auf Rechnung oder Rückerstattung Fragen eingreift; alles andere läuft die normale Single-Antwort-Pfad.

Agent-Modus

Bis zu ein paar schreibgeschützte Lookups pro Runde, bevor Sie antworten.WHMCS, Shopify, Stripe, Zendesk usw. Aus = heutiges Single-Lookup-Verhalten, unverändert.

Tiefe denken für Antworten von Agenten

Wie hart das Modell auf komplexen Kurven (niedrig/mittel/hoch) begründet.

Agentenmodell

Pins ein stärkeres modell nur für komplexe agenten-drehungen, so dass der tägliche chat auf einem leichten, billigen modell bleibt und nur die harten kurven zahlen für tiefe.

Vorausplanung · One-Pass Antworten (Beta)

Ein kleiner Planungsschritt entscheidet, welche Lookups zu ziehen sind und ob die Wissensbasis benötigt wird, dann antwortet er in EINEM Hauptaufruf anstelle von mehreren Schritten. Ein Unterschalter unter Agent-Modus. Es kann nicht aktiviert werden, wenn der Agenten-Modus nicht eingeschaltet ist. Gleiche Antwortqualität, weniger Aufrufe mehrteiliger Fragen.

Gespräch & Verständnis

Langkonversationsgedächtnis (Beta)

Behält eine kurze Zusammenfassung älterer Nachrichten (Namen, Ticket-/Rechnungsnummern, Beträge, Entscheidungen), damit der Assistent über sehr lange Chats hinweg konsistent bleibt, ohne das gesamte Transkript erneut zu senden.

Typtoleranz

Lesen Sie kleine Tippfehler ("meine offenen Ticketts", "unbezahlte Invocies") als die beabsichtigten Wörter, damit die richtigen Informationen gefunden werden anstatt verpasst. Funktioniert mit jeder verbundenen Plattform. Standardmäßig ausgeschaltet; nützlich für den mobilen Chat.

Lean Account Kontext

Der Kunde fügt nur dann eine Momentaufnahme des Kundenkontos bei, wenn die Frage tatsächlich auf sein Konto (Guthaben, Rechnungen, Tickets, Dienstleistungen) zutrifft und überspringt sie in allgemeinen Fragen. Kostensenkung ohne Qualitätsverlust. Der Assistent kann das Konto immer noch live abrufen, wenn ein Zug es braucht.

Kosteneinsparung

Skip Knowledge Suche nach Grüßen (Beta)

"Hi", "Danke" und "ok" lösen keine Wissensdatenbanksuche aus, diese Antworten verwenden sie nie. Jede Nachricht mit echtem Inhalt sucht immer noch normal.

Längste zulässige Antwort (Token)

Die Antwortlänge ist der teuerste Teil eines Anrufs, also eine vernünftige Obergrenze (um 500 für Support) ist die effektivste Chat-Kostenkontrolle.

Auf der Einrichtung Ihrer AI

Tiefe denken (Kunden- & Admin-Chat)

Wie viel das Modell denkt, bevor es antwortet (minimal bis hoch). Halten Sie den Kundenchat auf minimal / niedrig für die Geschwindigkeit; reservieren Sie höhere Einstellungen für die Analyse und den Admin-Kopiloten.

Per-AI-Modell (pro Job)

Jede KI-Oberfläche (Live-Chat, Ticketentwürfe, Zusammenfassungen, Analyse, Admin-Copilot, Promotions, Site Intelligence und mehr) kann nach ihrem eigenen Modell laufen. Licht, wo Geschwindigkeit wichtig ist, stark, wo Qualität wichtig ist. Leer auf einer Oberfläche = Provider Standard für diesen Job.

Admin-Chat Kostenkontrollen

Der Admin-Copilot kann einen begrenzten Arbeitsspeicher beibehalten und nur die Werkzeuge laden, die eine Frage benötigt (schlanke Tools) anstelle jedes Werkzeugs in jeder Runde.

Im Zug Ihre AI

Komprimierungsanweisungen

Die Komprimierungstaste schreibt einen Steckplatz um, um dasselbe in weniger Worten zu sagen. Es lehnt das Umschreiben ab, wenn es eine {variable} oder Regel fallen lässt und meldet, was sie schützt, so dass sie nie stillschweigend ihre Bedeutung ändert.

"Was ist schon im Gehirn" (i️)

Zeigt an, was OpsIQ bereits über Ihr Geschäft pro Slot weiß, so dass Sie alles löschen können, was Sie in Ihren eigenen Anweisungen wiederholt haben.

💡
Wohin geht das Geld? Für kurze Support-Chats kostet die Eingabe (Anweisungen + Kontodaten + Geschichte, gesendet jede Runde) normalerweise mehr als die kurze Antwort, Caching und Lean Kontext helfen dort am meisten. Für lang generierte Inhalte dominiert die Ausgabe. Die Begrenzung der Antwortlänge und eine geringere Denktiefe zahlen sich dort aus. Sehen Sie Einrichten Ihrer KI, um ein schnelles Cachen zu halten, was den großen wiederholten Teil jeder Runde billig macht.
Ändern sich diese, wie der chat bereits antwortet.+

Nein. Jedes Steuerelement ist standardmäßig ausgeschaltet und unabhängig. Wenn man es einschaltet, fügt es nur sein Verhalten hinzu; schaltet es aus, gibt der Chat genau so zurück, wie er vorher funktioniert hat.

In welcher Reihenfolge soll ich sie einschalten?+

Führen Sie den täglichen Chat mit einem Lichtmodell aus und heften Sie ein stärkeres Agentenmodell an. Wenn Sie eine verbundene Plattform haben, aktivieren Sie den Agentenmodus, dann planen Sie voraus, dann lange Konversationsspeicher. Dann schlanker Kontext, überspringen-KB-für-Grüße und eine Antwortkappe. Schließlich komprimieren Sie Ihre Anweisungen. Sehen Sie sich nach jedem Wechsel einige echte Chats an.

Das Admin Agent Kit: Websuche, Runbooks, Missionen, Dateiübertragung

Der Admin AI Chat ist ein funktionierender Ingenieur, nicht nur eine Fragebox. Er kann Fixes im Web recherchieren, eine Bibliothek Ihrer Betriebsverfahren führen, Ihre Server nach einem Zeitplan patrouillieren und Dateien verschieben. Das meiste davon wird durch die Anfrage im Chat gesteuert; das einzige, was Sie im Voraus konfigurieren, ist der Web-Suchanbieter, den er verwendet, auf der Seite "Einrichten Ihrer KI".

Web-Suche

Eingebaut in

Der Agent durchsucht das Web nach Dokumenten, Fehlermeldungen und aktuellen Informationen während es funktioniert. Out of the box verwendet dies DuckDuckGo, welches keinen Schlüssel und keine Einrichtung benötigt.

Runbooks

Im Chat

Eine gespeicherte Bibliothek Ihrer Prozeduren ("wie wir X hier machen"). Der Agent schreibt eine nach dem Nageln eines kniffligen Jobs und folgt ihm das nächste Mal, so dass das Know-how das Ende des Chats übersteht.

Missionen

Geplant

Geplante Lesepatrouillen. "Jeden Morgen überprüfen Sie den Festplattenspeicher und die Fehlerprotokolle und sagen Sie es mir." Die Ergebnisse kommen auf Ihrer Admin-Glocke an.

Dateiübertragung

Im Chat

Bitten Sie um eine Protokolldatei und erhalten Sie einen privaten Download-Link, oder lassen Sie eine Datei von einem verbundenen Server auf einen anderen kopieren. 5 MB.

Admin Agent Websuche (auf Einrichtung Ihrer AI)

Suchanbieter

Der Standard ist DuckDuckGo: schlüssellos, kostenlos, funktioniert bei jeder Installation. Serper.dev (Google-Ergebnisse) in der Regel bessere Ergebnisse, aber jeder braucht eine API Wenn ein Keyed-Provider aus irgendeinem Grund ausfällt (bad key, quote verbraucht, Netzwerkprobleme), fällt diese Suche automatisch auf DuckDuckGo zurück, so dass die Suche nie dunkel wird.

Suchen API Schlüssel

Der Schlüssel für den von Ihnen gewählten Anbieter, der nur für Brave, Tavily oder Serper benötigt wird. Einmal gespeichert wird er maskiert und nie wieder auf der Seite angezeigt; fügen Sie einen neuen ein, um ihn zu ersetzen. Ein Keyed Provider wird erst aktiv, wenn sowohl der Anbieter als auch sein Schlüssel gespeichert sind.

Runbooks

Wenn der Agent gerade einen Job abgearbeitet hat, den Sie auf die gleiche Weise wieder erledigen möchten, sagen Sie "speichern Sie das als Laufbuch namens Nightly-Cleanup". Von da an sieht er das Laufbuch nach Namen in jeder Sitzung und wenn Sie nach dem Job fragen (oder es beschreiben), zieht es die Schritte hoch und folgt ihnen.

💡
Ein Runbook ist Anleitung, kein Freipass. Wenn der Agent einem folgt, geht jeder Schritt, der einen Server verändern würde, immer noch durch den aktuellen Berechtigungsmodus und zeigt die üblichen Genehmigungskarten an.

Missionen

Eine Mission ist ein wiederkehrender Job, den der Agent alleine ausführt: stündlich, täglich zu einer festgelegten Stunde oder wöchentlich an einem bestimmten Tag. Missionen sind nur durch Design lesbar. Sie können Server lesen, Daten und das Internet, aber sie können nie etwas ändern; sie untersuchen und berichten. Wenn eine Mission beendet ist, landen die Ergebnisse als Benachrichtigung auf Ihrer Admin-Glocke. Sagen Sie "Run the Morning Patrouillen jetzt", um einen auf Abruf auszulösen, oder bitten Sie den Agenten, Missionen aufzulisten, anzuhalten oder zu entfernen.

⚠️
Missionen laufen vom OpsIQ cron ab, daher muss es eingerichtet werden (siehe Cron und Automation). Ein einmaliges "Run it now" aus dem Chat funktioniert sogar zwischen cron läuft auf den meisten Servern.

Umzugsdateien

Bitten Sie um eine Datei ("Holen Sie mir das heutige Fehlerprotokoll vom Webserver") und der Agent führt sie durch und antwortet mit einem privaten Download-Link. Der Link funktioniert nur für angemeldete Administratoren und läuft nach etwa einem Tag ab. Dateien sind auf 5 MB begrenzt; Für etwas Größeres bitten Sie den Agenten, es zuerst auf dem Server zu komprimieren oder zu schneiden.

Der Agent kann auch eine einzelne Datei zwischen zwei verbundenen Servern kopieren, wieder bis zu 5 MB. Das Schreiben am Zielort wird wie jede andere Änderung behandelt: Im Abfragemodus erhalten Sie zuerst eine Genehmigungskarte, die vorhandene Datei wird gesichert und die Kopie ist reversibel. Aus Sicherheitsgründen wird der Dateiinhalt im Moment des Anbringens der Kopie erneut von der Quelle gelesen, nicht aus dem Chat genommen.

A

Trainieren Sie Ihre AI

KI-Training ist, wo man OpsIQ lehrt wie man sich verhält. Man schreibt Aufforderungen, die Persönlichkeit, Grenzen, Wissensfokus und Eskalationsregeln definieren. Stellen Sie sich vor, es würde ein Trainingshandbuch für einen neuen Supportagenten schreiben.

Zug-AI
Trainieren Sie Ihre AIEin AI-Anweisungseditor mit Kunden- / Administrator-Tabs und einfachem englischen Ton, immer und nie Regeln.Trainieren Sie Ihre AIArbeitsbereichKunden-AIAdminTonFreundlich, prägnant, niemals aufdringlich.ImmerBieten Sie eine menschliche Abzweigung für Abrechnungsstreitigkeiten an.NiemalsVersprich eine Rückerstattung, ohne das Konto zu überprüfen.1TWO MANUALSKunden & Admin AI2PLAIN ENGLISHTon, immer, nie3GROUNDEDPlus Ihre Wissensbasis
Trainieren Sie die KI wie ein neuer Mitarbeiter, Kunden- und Admin-Handbücher in einfachem Englisch (Ton, immer, nie), geerdet in Ihrem KB.

Zwei Ausbildungsbereiche

Kunden-AI prompt

Steuert, wie die KI mit Ihren Kunden im Chat-Widget spricht. Dies ist der wichtigste Schritt, um richtig zu werden.

Admin-KI prompt

Steuert, wie die KI Ihr Admin-Team im Operator Dashboard unterstützt.

Schreiben einer großartigen Kunden-KI prompt

Ihre Kunden-KI-Eingabeaufforderung sollte diese Bereiche abdecken:

1
Identität

Wer ist die KI? Geben Sie ihr einen Namen, eine Rolle und Persönlichkeit. Beispiel: "Sie sind Luna, ein freundlicher und sachkundiger Kundenbetreuer für Acme Store."

2
Ton und Stil

Wie sollte es kommunizieren? Beispiel: "Sei professionell, aber warm. Benutze einfache Sprache. Vermeiden Sie Fachjargon. Halten Sie die Antworten kurz (2-_3 Absätze max)."

3
Wissensgrenzen

Was sollte es wissen und nicht wissen? Beispiel: "Sie kennen unsere Produkte, Preise, Versand- und Rückgaberichtlinien. Sie kennen NICHT die Produkte von Wettbewerbern oder interne Unternehmensentscheidungen."

4
Eskalationsregeln

Wann sollte es an einen Menschen übergeben werden? Beispiel: "Eskalieren Sie zu einem menschlichen Agenten, wenn der Kunde eine Rückerstattung verlangt, rechtliche Schritte erwähnt, ein Sicherheitsproblem meldet oder dreimal die gleiche Frage stellt."

5
Dinge, die man nie tun kann

Harte Grenzen. Beispiel: "Versprechen Sie niemals Rückerstattungen. Teilen Sie keine internen Preisformeln. Erfinden Sie nie Produktmerkmale, die es nicht gibt. Geben Sie niemals medizinische, rechtliche oder finanzielle Beratung."

Beispielaufforderungen

Beispiel Kunden-AI prompt · Online-Shop
You are Aria, a friendly customer support assistant for TechGear.

PERSONALITY:
- Warm and professional
- Concise (2-3 paragraphs max per response)
- Use simple language, no jargon
- If unsure, say so honestly

KNOWLEDGE:
- Our products: laptops, accessories, software subscriptions
- Pricing: as listed in the knowledge base
- Shipping: free over $50, 3-5 business days standard, 1-2 days express ($12)
- Returns: 30-day money-back guarantee, must be in original condition

ESCALATION (hand off to human):
- Refund requests over $100
- Account security concerns
- Legal threats or complaints
- Customer explicitly asks for a human

NEVER DO:
- Promise specific delivery dates (say "estimated")
- Share discount codes not in the knowledge base
- Make up product specifications
- Give financial or legal advice
Beispiel Kunden AI prompt · Hosting-Unternehmen
You are Atlas, an AI assistant for CloudHost web hosting.

TONE: Technical but accessible. Assume the customer has basic web knowledge.

KNOWLEDGE:
- Shared hosting, VPS, dedicated servers
- cPanel, DNS, SSL, email configuration
- WordPress, Joomla, Drupal installation
- Common error codes and troubleshooting

ESCALATION:
- Server outages affecting multiple customers
- Data loss or security breach reports
- Billing disputes over $50
- Complex migration requests

BOUNDARIES:
- Do NOT access customer servers or databases
- Do NOT change DNS records or passwords
- Always recommend the customer makes changes themselves
- For code issues, suggest steps but clarify you cannot debug their application

Verfeinern Sie Ihre Aufforderung im Laufe der Zeit

1
Launch mit Basics

Beginnen Sie mit Identität, Ton und Schlüsselgrenzen. Versuchen Sie nicht, alles am ersten Tag abzudecken.

2
AI History wöchentlich

Lesen Sie Gespräche, in denen die KI falsche oder suboptimale Antworten gab.

3
Aktualisieren Sie die prompt

Fügen Sie spezielle Regeln für wiederkehrende Probleme hinzu. Beispiel: Wenn die KI weiterhin Rückerstattungen verspricht, fügen Sie "Versprechen Sie niemals eine Erstattung. Sagen Sie, dass Sie zum Abrechnungsteam eskalieren werden."

4
Wissen hinzufügen

Wenn die KI eine Frage nicht beantworten kann, fügen Sie die Antwort zur Knowledge Base hinzu, anstatt zu versuchen, alles in die Eingabeaufforderung einzupassen.

⚠️
Bewahren Sie Ihre Eingabeaufforderung unter 2,000 -Wörtern auf. Zu lange Eingabeaufrufe können die KI verwirren und die Tokenkosten erhöhen.
Was ist der Unterschied zwischen der prompt und die Wissensbasis?+

Die Eingabeaufforderung definiert Persönlichkeit, Grenzen und Regeln. Die Wissensdatenbank liefert Fakten (Produktdetails, Preise, Richtlinien). Die KI liest beides, aber die Eingabeaufgabe prägt das Verhalten, während die KB Antworten gibt.

Kann ich für verschiedene Abteilungen unterschiedliche Aufforderungen haben?+

Wenn Sie für verschiedene Abteilungen unterschiedliches KI-Verhalten benötigen, verwenden Sie die Wissensdatenbank, um abteilungsspezifische Informationen bereitzustellen und den Abteilungskontext in Ihrer Eingabeaufforderung zu erwähnen.

A

AI-Geschichte

AI History zeigt jedes Gespräch, das die KI mit Kunden und Administratoren geführt hat. Verwenden Sie es, um die Leistung der KI zu überprüfen, falsche Antworten zu finden und Schulungslücken zu identifizieren.

AI-Geschichte
AI-GeschichteEin Protokoll der KI dreht sich mit Typabzeichen, Frage und Antwort, Reaktionszeit und Ergebnis.AI-GeschichteArbeitsbereichJede KI-Wende, aufgezeichnetChatQ: Wo ist meine Bestellung?A: heute ausgeliefert, UPS Tracking...0.9sansweredticketAntwortentwurf für T-12345Abgefasste Erstattungsbestätigung1.4sdraftedAdminDie Tickets für diese Woche zusammenfassen12-Zeilenübersicht zurückgegeben2.1sfertigChatQ: Abbrechen meines PlansÜbergeben an einen Menschen0.7sescalated1EVERY TURNSofortige, Antwort, Aktion2SEARCHABLEFilter & Export3OWNER-ONLYVollständiger Prüfpfad
Jede KI-Umdrehung (Chat, Ticketentwurf, Adminaktion) wurde mit der genauen Eingabeaufforderung, Antwort, Dauer und Ergebnis protokolliert.

Was jedes Gespräch zeigt

Datum und Uhrzeit

Als das Gespräch stattfand.

Kundenidentität

Name und E-Mail, falls bekannt, ansonsten IP und Land.

Kanal

Chat-widget, ticket auto-antwort, e-mail-entwurf oder admin ai.

Nachrichten

Vollständiges Transkript des Gesprächs: Kundennachrichten und KI-Antworten.

Token-Nutzung

Wie viele Tokens die Konversation verbraucht hat. Hohe Token-Nutzung kann darauf hindeuten, dass die KI übermäßig ausführliche Antworten gibt oder das Gespräch im Kreis ging.

Ergriffene Maßnahmen

Alle Aktionen, die die KI während des Gesprächs ausgeführt hat (Auftrag gesucht, Ticket erstellt usw.).

Bewertung

Wenn CSAT aktiviert ist, die Zufriedenheitsbewertung des Kunden für dieses Gespräch.

Probleme beim Auffinden

Suche nach Keyword

Suchen Sie nach bestimmten Themen, um zu sehen, wie die KI damit umgeht. Beispiel: Suchen sie nach "Rückerstattung", um zu überprüfen, ob die KI Ihre Rückerstattungsrichtlinien befolgt.

Filter nach Rating

Zeigen Sie nur Gespräche mit niedriger Bewertung, um sich auf unzufriedene Kunden zu konzentrieren.

Filtern nach Kanal

Zeigen sie nur ticket-auto-antworten an, um automatisierte antworten separat vom chat zu auditieren.

Sortieren nach Token-Nutzung

High-token-gespräche können auf probleme hinweisen, die ki wandert, sich im kreis bewegt oder die frage nicht beantwortet.

Wöchentliche Auditroutine

1
Überprüfen Sie Low-Rated Gespräche

Lesen Sie das vollständige Transkript. Was ist schief gelaufen? War es eine Wissenslücke, ein Tonproblem oder eine falsche Antwort?

2
Überprüfen Sie High-Token-Gespräche

Das könnte auf Verwirrung hinweisen. Hat sich die KI wiederholt? Hat sie die Frage nicht verstanden?

3
Aktualisierung der Schulung

Bei Wissenslücken fügen Sie Artikel zur Knowledge Base hinzu. Bei Verhaltensproblemen aktualisieren Sie die KI-Eingabeaufforderung. Bei wiederkehrenden falschen Antworten fügen sie explizite Korrekturregeln hinzu.

Wissenslücken finden

Szenario:
You search AI History for "installation" and find 15 conversations where the AI said "I do not have specific installation instructions for this product."
Was zu tun ist:

Das bedeutet, dass Ihrer Knowledge Base Installationsanleitungen fehlen. Erstellen Sie Wissensdatenbankartikel für die Installationsschritte jedes Produkts. Testen Sie nach dem Hinzufügen diese durch Stellen der AI-Installationsfragen.

A

KI-Insights

AI Insights analysiert automatisch Konversationsmuster und greift auf umsetzbare Ergebnisse zurück: häufige Fragen, Zufriedenheitstrends, Wissenslücken und Eskalationsmuster.

KI-Insights
AI Insights (Intelligence Hub)Der Intelligence Hub: ein AI Today's Brief, Smart Alerts, ein Score-a-Lead / Analyse-a -Page-Tool und ein 14-Day Traffic Pattern Chart.KI-InsightsArbeitsbereichHEUTEVerkehr nach oben 12%; 3 heiße Leitungen;2Deals brauchen Follow-up.Intelligente AlarmeCheckout-Fehler SpikedAufspringen auf /pricingNeue heiße Lead aus den USAEinnahmen vor der letzten WocheEinen Lead erzielen / Eine Seite analysierenIP oder URL…Lauf14-Tagesverkehrsmuster1HEUTEAI schreibt die Morgenzusammenfassung2SMART ALERTSAnomalien aufgetaucht3ON DEMANDEinen Lead erzielen · eine Seite analysieren
Der echte Intelligence Hub: ein von KI geschriebener Today's Brief, Smart Alerts für Anomalien, On-Demand Lead Scoring und Seitenanalyse sowie das 14-Tagesverkehrsmuster.

Was Insights zeigen

Top-Fragen

Die am häufigsten gestellten Fragen. Wenn "Wie setze ich mein Passwort zurück?" #1ist, benötigt Ihre Wissensbasis eine auffällige Anleitung zum Zurücksetzen von Kennwörtern.

Zufriedenheitstrends

CSAT-Werte im Laufe der Zeit. Verbessert sich die KI-Zufriedenheit oder sinkt sie? Plötzliche Rückgänge können auf eine Veränderung der Wissensbasis hinweisen, die etwas kaputt gemacht hat.

Abwicklungsrate

Wie viel Prozent der Gespräche löst die KI ohne menschliches Eingreifen? 70% ist gut. Unten 50% Das bedeutet, dass die KI mehr Training braucht.

Eskalationsgründe

Warum Gespräche an Menschen weitergegeben werden. Häufige Gründe: Kunde hat einen Menschen gefragt, KI konnte nicht antworten, sensibles Thema, Abrechnungsproblem.

Wissenslücken

Themen, bei denen die KI häufig sagt "Ich weiß es nicht" oder Antworten mit geringem Vertrauen gibt.

Durchschnittliche Gesprächsdauer

Sehr lange Gespräche (10+ Nachrichten) könnten darauf hindeuten, dass die KI die Frage nicht versteht.

Insights nutzen, um zu verbessern

Szenario:
AI Insights shows that 23% of escalations are "Customer asked about warranty" and the AI could not answer.
Was zu tun ist:

Dies ist eine klare Wissenslücke.1Schreiben Sie einen umfassenden Garantieartikel in der Knowledge Base, der alle Garantiebedingungen, den Anspruchsprozess und Ausschlüsse abdeckt. (2Aktualisieren Sie die AI-Eingabeaufforderung, um auf Garantieinformationen zu verweisen. (3) Überwachen Sie AI Insights nächste Woche, um zu sehen, ob die Eskalation der Garantie abnimmt.

A

Admin AI Playbook

Die Admin AI (Fragen)OpsIQ Hilft Ihrem Team zu managen OpsIQ Innerhalb des Admin-Dashboards können Sie es bitten, Daten nachzuschlagen, Funktionen zu erklären, Tickets zusammenzufassen und Plattformaktionen auszuführen.

Admin
Admin AI PlaybookDas Befehlsfeld Ask-OpsIQ mit einer von der KI vorgeschlagenen Plattformaktionskarte, die Parameter anzeigt und bestätigt/abbricht.Fragen Sie OpsIQArbeitsbereichFragen Sie OpsIQSperren Sie den Dienst für überfälliges Konto #4821AVorgeschlagene Maßnahme: suspend_serviceKonto: #4821 (überfällig $120)Plattform: WHMCS · reversibel · auditiertBestätigenAbbruch1ASK ANYTHINGEnglische Kommandos2PROPOSE FIRSTAktion gezeigt, bevor es läuft3YOU CONFIRMScoped & geprüft
Sagen Sie der Admin-KI, was Sie wollen in einfachem Englisch; es schlägt die genaue Aktion vor (scoped, reversible, audited) und wartet auf Ihre Bestätigung.

Was die Admin AI tun kann

Daten nachschlagen

Fragen Sie: "Zeigen Sie mir alle Tickets von [email protected]" oder "Wie ist der Status der Bestellung #ORD-5523?"

Summaris

Fragen Sie: "Zusammenfassen der letzten 10 Tickets" oder "Was sind die wichtigsten Support-Probleme in dieser Woche?"

Erläutern Sie die Merkmale

Fragen Sie: "Wie richte ich die automatische Antwort ein?" oder "Was bedeutet die Bounce Rate Card?"

Durchführung von Maßnahmen

Fragen Sie: "Erstellen Sie ein Ticket für [email protected] über die Abrechnung" oder "Schließen Sie das Ticket T-12345"

Plattformanfragen

Fragen Sie: "Wie viele Besucher haben wir gestern bekommen?" oder "Wie hoch sind unsere Einnahmen in diesem Monat?"

Beispielhafte Gespräche

Einen Kunden aufsuchen

Szenario:
Admin asks: "Find customer [email protected] and show me their recent activity"
Was zu tun ist:

Die KI sucht den Kunden über alle verbundenen Datenquellen hinweg: Besuchersitzungen, Tickets, Chat-Gespräche, Bestellungen und CRM-Kontakte. Es gibt eine Zusammenfassung der letzten Aktivitäten mit Links zu jedem Element zurück.

Eine tägliche Zusammenfassung erhalten

Szenario:
Admin asks: "What happened today?"
Was zu tun ist:

Die KI fasst zusammen: „Heute hattest du 245 Besucher (up) 12%), 8neue Tickets ()3 von AI gelöst,2Neuaufträge insgesamt $198, und1Chat-eskalation über eine verspätung.

Ausführung einer Maßnahme

Szenario:
Admin asks: "Change ticket T-5523 priority to Urgent"
Was zu tun ist:

Die KI bestätigt: "Ich ändere die Priorität T-5523 von Normal auf Dringend. Dies wirkt sich auf den SLA-Timer aus. Bestätigen Sie?"

💡
Die Admin AI führt nur Aktionen aus, die im Action Registry registriert sind. Es kann keine Aktionen erfinden oder auf Systeme außerhalb von OpsIQ zugreifen.
A

Kunden-KI-Szenarios

Dieser Abschnitt behandelt gängige KI-Szenarien mit Kundenkontakt und erwartetem Verhalten sowie Trainingstipps.

Kunden-AI
Kunden-KI-SzenariosEine Bibliothek mit Kundenfragen gepaart mit dem erwarteten KI-Verhalten und einem Outcome-Tag für jeden.Kunden-KI-SzenariosArbeitsbereichSzenariobibliothek · erwartetes KI-Verhalten"Wo ist meine Bestellung?"Schauen Sie die Bestellung über den Connector nach, geben Sie TrackingAuflösen"Ich möchte eine Rückerstattung"Akzeptieren, niemals versprechen · Hand an einen MenschenAblösung"Ist der Service down?"Status der Überprüfung, aktueller Zustand meldenStatus"Mein Konto stornieren"Bestätigen Sie die Absicht, dann den Weg zu einem MenschenBestätigen1SCENARIOSGemeinsame Fragen2EXPECTEDWie KI antworten sollte3PRÜFUNGFinde Ausbildungslücken
Eine Bibliothek mit echten Kundenfragen und genau, wie die KI damit umgehen sollte, um Ihr Training zu testen und Lücken zu finden.

Szenariobibliothek

Auftragsstatusuntersuchung

Szenario:
Customer: "Where is my order #12345?"
Was zu tun ist:

Expected AI behavior: (1) Look up the order through the platform connector. (2) Report current status (processing, shipped, delivered). (3) Include tracking number if available. (4) If the order is delayed, acknowledge and provide estimated timeline. (5) Never invent tracking information.

Rückgabeanforderung für das Passwort

Szenario:
Customer: "I forgot my password and cannot log in"
Was zu tun ist:

Expected AI behavior: (1) Provide the password reset steps from the knowledge base. (2) Include the reset link or page path. (3) Mention that the reset email may take a few minutes. (4) Suggest checking spam folder. (5) If the customer still cannot reset, escalate to a human.

Feature Request

Szenario:
Customer: "Can you add dark mode to the mobile app?"
Was zu tun ist:

Expected AI behavior: (1) Thank them for the suggestion. (2) Explain how feature requests are handled (logged, reviewed, prioritized). (3) Do NOT promise the feature will be built. (4) If a similar feature exists, mention it.

Abrechnungsstreitigkeiten

Szenario:
Customer: "I was charged but my service is not working"
Was zu tun ist:

Expected AI behavior: (1) Acknowledge the frustration. (2) Check the service status if possible. (3) Escalate to the billing department with all details. (4) Do NOT promise a refund. (5) Set ticket priority to High.

Off-Topic-Frage

Szenario:
Customer: "What is the weather like in London today?"
Was zu tun ist:

Erwartetes KI-Verhalten: ()1) Höflich umleiten. "Ich bin Ihr Support-Assistent und kann Ihnen bei Fragen zu unseren Produkten und Dienstleistungen helfen. Versuchen Sie für Wetterinformationen einen Wetterdienst." (2Fragen Sie, ob sie eine Produktfrage haben.

Wie teste ich das Verhalten von Kunden-KI?+

Öffnen Sie Ihre Website in einem privaten/inkognito Browser und chatten Sie mit der KI als Kunde. Versuchen Sie es mit gängigen Fragen, Randfällen und kontradiktorischen Szenarien. Überprüfen Sie, ob die KI Ihren Anweisungen folgt und Wissensbasisinhalte korrekt verwendet.

A

KI-Wissensbasis

Die Knowledge Base ist eine Bibliothek von Artikeln, die die KI verwendet, um Fragen zu beantworten. Wenn ein Kunde etwas fragt, durchsucht die KI die Wissensdatenbank nach relevanten Artikeln und nutzt sie, um eine genaue, fundierte Antwort zu generieren.

Wissensbasis
WissensbasisQuellen, die in einen Wissensspeicher einspeisen, dann eine KI, die eine geerdete, zitierte Antwort erzeugt.WissensbasisArbeitsbereichQuellenWebsite CrawlHilfeartikelFAQsImportierte DokumenteWissenSemantik + KeywordAGegründete Antwortmit einer zitierten Quelle."Erstattung nehmen 3–5"Werktage.1INGESTCrawl, FAQ, Import2RETRIEVESemantik + Keyword3GROUNDEDAntworten aus Ihren Inhalten
Crawlen Sie Ihre Website und importieren Sie Dokumente in die Wissensdatenbank; Die KI ruft die richtigen Teile und Antworten ab, geerdet und zitiert.

Wie es funktioniert

1
Der Kunde stellt eine Frage

"Wie ist Ihre Rückgabepolitik?"

2
KI durchsucht die Wissensbasis

OpsIQ findet den Artikel "Return Policy" durch Übereinstimmung mit Schlüsselwörtern und semantischer Bedeutung.

3
KI erzeugt eine Antwort

Die KI liest den Artikel und schreibt eine natürlichsprachige Antwort basierend auf dem Inhalt des Artikels.

4
Der Kunde erhält eine genaue Antwort

Die Antwort basiert auf Ihrer tatsächlichen Richtlinie, nicht auf den allgemeinen Trainingsdaten der KI.

Erstellen Sie gute Artikel

Ein Thema pro Artikel

Schreiben Sie einen separaten Artikel für jedes Thema: Rückgaberecht, Versandkosten, Kontoeinrichtung, Passwort-Reset.

Schreiben wie eine FAQ

Beginnen Sie mit der Frage, die Kunden stellen, und geben Sie dann die Antwort. Dies hilft der KI, Fragen zu Artikeln abzugleichen.

Spezifisch

"Rücksendungen müssen innerhalb von 30 Tagen nach Lieferung eingeleitet werden" ist besser als "Wir haben ein Rückgaberecht."

Randgehäuse einschließen

Was ist mit internationalen Rücksendungen? Was ist Mit digitalen Produkten? Was Ist Mit Waren, Die Zum Verkauf Gekauft Werden? Umfassen Sie die Ausnahmen.

Halten Sie es aktuell

Artikel vierteljährlich durchsehen. Alte Informationen löschen. Preise, Richtlinien und Verfahren aktualisieren, wenn sie sich ändern.

Startartikel, die Sie schreiben sollten

Versand und Lieferung

Versandkosten, Lieferzeiten, Tracking, internationaler Versand und Handhabungsverzögerungen.

Rücksendungen und Erstattungen

Rückgabefenster, Bedingungen, Prozess, Rückerstattungszeitleiste und Ausnahmen.

Kontoverwaltung

Passwort-Reset, E-Mail-Änderung, Kontolöschung und Datenexport.

Preisgestaltung und Abrechnung

Planbeschreibungen, Abrechnungszyklus, Zahlungsmethoden, Rechnungen und Währung.

Produktführer

Wie man jedes Produkt oder Feature benutzt. Schritt-für-Schritt Anleitung mit Screenshots.

Fehlerbehebung

Häufige Probleme und Lösungen, Fehlermeldungen und deren Korrekturen.

Kontaktinformationen

Geschäftszeiten, Supportkanäle, Reaktionszeiten und Eskalationspfade.

Recht und Einhaltung

Zusammenfassung der Datenschutzrichtlinie, Zusammenfassung der Nutzungsbedingungen, GDPR Datenanforderungen.

Konnektorwissen

Jeder Steckverbinder kann Wissen zur KI beitragen. Wenn ein Steckverschluss aktiviert ist, stehen die eingebauten Wissensartikel (Produktkatalog, allgemeine Fragen, plattformspezifische Fehlersuche) automatisch für die KI zur Verfügung. Sie können das Steckverankerwissen in den Steckverknüpfungseinstellungen pro Steckverstecker ein- oder ausschalten.

Token-Budget

Die Wissensdatenbank hat eine konfigurierbare Token-Obergrenze (Standard: 32,000 Wenn Sie eine große Wissensdatenbank haben, wählt die KI im Rahmen dieses Budgets die relevantesten Artikel aus. Erhöhen Sie das Limit, wenn die KI keine relevanten Artikel findet; verringern Sie es, wenn Sie die Kosten für Tokens senken möchten.

Wie viele Artikel sollte ich haben?+

Beginnen Sie mit5-10 Artikel, die Ihre häufigsten Fragen behandeln. Fügen Sie mehr hinzu, wenn Sie Lücken durch AI History und AI Insights identifizieren. Die meisten Unternehmen benötigen 20-50 Artikel für eine umfassende Abdeckung.

Kann ich Artikel aus einem anderen System importieren?+

Derzeit werden Artikel manuell in OpsIQ erstellt. Sie können Inhalte aus vorhandenen FAQs, Hilfezentren oder Dokumenten kopieren und einfügen.

In welchem Format sollten Artikel sein?+

Die KI versteht die natürliche Sprache besser als strukturierte HTML oder Markdown. Schreiben Sie so, wie Sie es einem Kunden erklären würden.

A

KI-Evaluierung und Wachtturm

Bewertungssets verwandeln kritische Kundenfragen in wiederholbare Tests für Antwortqualität, Zitate, Eskalation und Aktionssicherheit.

Produktbildschirm
AI-BewertungAI Evaluation listet goldene Testfälle, erforderliche Verhaltensweisen, neueste Ergebnisse und geplante Wachtturmläufe auf.AI-BewertungArbeitsbereichSETS6CASES84PASS RATE96%LEBENDER ARBEITSPAZWERKSchifffahrtspolitikZitiervermerk erforderlichPassErstattungsantragBestätigung durch den Menschen erforderlichPassNicht belegte ForderungVerbotene MaßnahmenPassMigrationsfrageErwartete Quelle fehltScheitern1CREATE CASESGoldener Input und Regeln2RUN SAFELYTrockenlauf oder Lebend-Eval3WATCHZeitplan täglich oder wöchentlich
AI Evaluation listet goldene Testfälle, erforderliche Verhaltensweisen, neueste Ergebnisse und geplante Wachtturmläufe auf.

Vollständige Administratoren können Auswertungssätze mit einem prompten, erwarteten Quellcode, erforderlichen Zitationen, menschlichen Bestätigungsregeln, Eskalationserwartungen und verbotenen Aktionen erstellen.

Wachturm Planet tägliche oder wöchentliche Prüfungen durch cron und führt eine begrenzte Anzahl von Fällen (bis zu acht pro geplantem Durchlauf) durch, überprüft Fehler neben Anbieter/Modell, prompter Version, Wissensversion, vorgeschlagenen Maßnahmen und Kosten, bevor das Produktionsverhalten geändert wird.

A

Sprachen und Übersetzungen

Languages verwaltet übersetzten kundenorientierten Text und das Verhalten, wenn OpsIQ der Sprache eines Kunden folgt.

Produktbildschirm
SprachenDie Sprachenseite zeigt die Ausgangssprache, übersetzte Sprachen, den Entwurfs-/Livezustand und das Verhalten der Kundensprache.SprachenArbeitsbereichQUELLEEnglischLANGUAGES4LEBEND3LEBENDER ARBEITSPAZWERKFranzösischSchnittstelle und InhaltLebendDeutschSchnittstelle und InhaltLebendSpanischEntwurf der ÜbersetzungEntwurfFolge dem KundenAntwort in erkannter Spracheam1SET SOURCEOriginale Betreibersprache2ADD LANGUAGEÜbersetzen im Hintergrund3PUBLISHEntwurf oder Direktübertragung
Die Sprachenseite zeigt die Ausgangssprache, übersetzte Sprachen, den Entwurfs-/Livezustand und das Verhalten der Kundensprache.

OpsIQ übersetzt vom Betreiber eingegebenen kundenorientierten Text. Legen Sie die Ausgangssprache korrekt fest, bevor Sie Übersetzungen erstellen, fügen Sie Zielsprachen hinzu und überprüfen Sie dann Entwürfe vor der Veröffentlichung. „Kundensprache folgen steuert die Antwortsprache; Übersetzen der Widget-Schnittstelle steuert seine Schaltflächen, Beschriftungen und Systemtext.

Übersetzungsumfang kann nur für den Entwurf oder live sein. Verlassen Sie sich nicht auf maschinelle Übersetzungen für Rechts-, Rückerstattungs-, Sicherheits- oder Sicherheitstext ohne menschliche Überprüfung.

Jeder ort, der ihren eigenen wortlaut hat, wird mit seiner nachrichtenzahl aufgelistet: kunden-chat-nachrichten, promotions, proaktive nachrichten, chat-flows, geführte touren, ankündigungen, teaserblasen und. Erhebungen und FormulareDie Umfrageoberfläche deckt jede veröffentlichte Umfrage vollständig ab: Titel, jede Frage, jede Antwortoption, Schaltflächen, Begrüßungs- und Dankeskopie, Seitenchrome und Ergebnisseiten. Schlüssel sind an die Fragen-ID und den Optionswert gebunden, so dass das Neuordnen von Fragen oder Optionen niemals eine Übersetzung verliert und das Umformulieren einer Nachricht nur diese Nachricht neu übersetzt. Veröffentlichte Live-Umfragen werden standardmäßig angeboten; Entwürfe werden hinzugefügt, wenn Sie den Umfang erweitern.

Die Post-Chat-E-Mail-Umfrage folgt der Sprache, in der der Besucher tatsächlich gechattet hat, vorausgesetzt, dass es sich um eine Sprache handelt, die Sie hier anbieten; ansonsten verwendet sie Ihre Systemsprache.

Ticket- und Portalnachrichten deckt den Festtext Operatortyp einmalig ab und jeder Kunde erhält dann in dieser einen Sprache: die Ticket-Bestätigung, die geöffneten, geschlossenen und Feedback-Bestatigungen, pro Abteilung Abmelder und die Portalbegrüßungslinie. (Die KI braucht nichts davon, sie antwortet bereits in der Sprache des Kunden.) Mit E-Mail-Kunden in ihrer eigenen Sprache aktiviert in OpsIQ Schreiben, Ticket-E-Mail löst die Sprache des Empfängers in dieser Reihenfolge: die Sprache, die er im Portal oder Help Center ausgewählt hat (auf dem Ticket getragen), das Gebietsschema auf ihrem Kontaktdatensatz, dann die Sprache in der sie geschrieben haben, lokal durch Skriptbereich und Markierungswörter erkannt, ohne externe Anrufe. Nur Sprachen, die auf der Sprachseite ausgewählt wurden, werden jemals verwendet, so dass die Funktion inert ist, bis Sprachen hinzugefügt werden. HTML E-Mail Wrapper wird absichtlich nicht übersetzt: Es ist Markup, keine Prosa. Mitarbeiterorientierte E-mails (Benachrichtigungen, Abteilungsbenachrichtigungen, Analystenbriefs, geplante Berichte, der wöchentliche Digest) verwenden immer die Systemsprache.

Unterstützung

Hilfe-Center

Ihr Help Center ist eine Selbstbedienungs-Hilfeseite, die aus den von Ihnen veröffentlichten Artikeln aufgebaut wurde. Kunden können sie auf ihrer eigenen öffentlichen Seite lesen und durchsuchen, und zwar direkt im Chat-Widget, so dass sie selbst Antworten finden können, bevor sie überhaupt ein Gespräch eröffnen. Alles darin kommt aus Ihrer Wissensbasis, also der gleiche Inhalt, der Ihre KI begründet, unterstützt auch Ihre öffentliche Hilfe.

Wo Ihre Kunden es sehen

eigene öffentliche Seite

Eine saubere, durchsuchbare Hilfeseite bei /help.php. Kunden durchsuchen nach Kategorien, suchen und öffnen jeden Artikel. Sie können ihm Ihren eigenen Namen und Stil geben.

Innerhalb des Chat-Widgets

Ein Hilfelink im Chat-Widget, damit Kunden Ihre Artikel durchsuchen können, ohne den Chat zu verlassen.

Schalten Sie es ein

1
Öffnen Sie die Help Center Seite

Gehen Sie zu Config, then Help Center In Ihrem Admin und schalten Sie ein Öffentliches Hilfe-Center aktivieren.

2
Geben Sie ihm einen Namen und einen Blick

Stellen Sie den Namen des Hilfecenters ein, der im Header und auf dem Browser-Tab angezeigt wird, und wählen Sie einen visuellen Stil.

3
Veröffentlichen Sie einige Artikel

Nichts zeigt, bis Sie Artikel dazu veröffentlichen. Der nächste Teil behandelt wie.

Artikel im Help Center veröffentlichen

Artikel leben in Ihrer Wissensdatenbank. Ein Artikel erscheint im Hilfe-Center, sobald er veröffentlicht und öffentlich markiert ist. Es gibt einige Möglichkeiten, dies zu tun:

Veröffentlichen Sie einen Artikel

Öffnen Sie den Artikel, markieren Sie ihn veröffentlicht und aktivieren Sie die Option, um ihn im Hilfecenter anzuzeigen.

Alles auf einmal veröffentlichen

Verwenden Sie die Veröffentlichen Sie alle Schaltfläche, um Ihre gesamte veröffentlichte Set auf das Hilfe-Center in einem Klick zu drücken, anstatt sie eins nach dem anderen.

Verwandeln Sie FAQs in Artikel

Sie haben bereits FAQs? Veröffentlichen Sie alles, um zu helfen um sie in Hilfeartikel zu verwandeln, damit sie neben allem anderen sitzen.

Importieren einer vorhandenen Wissensdatenbank

Umzug von einem anderen Helpdesk? Einfuhr KB Auf der Registerkarte Artikel wird eine vorhandene Wissensbasis für Sie bereitgestellt.

Einfügen a URL

Geben Sie ihm die Adresse Ihres aktuellen Hilfecenters an. Wenn es die Plattform erkennt (z. B. Zendesk), liest es den genauen Kategoriebaum von dieser Plattform aus. Andernfalls durchsucht es die Website und baut die Struktur der Seiten neu auf, importiert nur die echten Artikel und überspringt Login-, Preis- und Kontaktseiten.

Wählen Sie eine Connected App

Wenn eine Plattform bereits mit diesem Arbeitsbereich verbunden ist und über eine Wissensdatenbank verfügt, wird sie in einer Dropdown-Datei unter Import aus einer verbundenen App. Wählen Sie es aus und importieren, keine URL oder Passwort erforderlich. Die App wird nur aufgelistet, wenn sie verbunden und eingerichtet ist.

Lade eine CSV hoch

Keine Live-Site, auf die man zeigen kann? Hochladen einer Tabelle mit title, category, und body Spalten. Parent / Child in der Kategorie Spalte um verschachtelte Kategorien zu erstellen.

Welchen Weg auch immer Sie wählen, Sie erhalten eine Preview First: die Artikel, die es gefunden hat, gruppiert nach Kategorie, jeder mit einem Kontrollkästchen, so dass Sie alles ablegen können, was Sie nicht wollen. Nichts wird gespeichert, bis Sie auf Import klicken. Rückgängig den gesamten Import mit einem Klick oder Re-Sync Ein URL oder Connected-App Import später, um neue und geänderte Artikel zu ziehen.

💡
Entwickler: Jeder Connector kann seine Wissensbasis für diesen Dropdown bewerben, indem er eine kb_capabilities Block in seinem settings.json (Typ) kb_source, mit einem adapter und a base_templateSiehe Abschnitt Steckverbinder und Referenzplattform-Verbindung.

Organisieren mit AI

Ein ordentliches Hilfe-Center ist einfach zu durchsuchen und einfacher zu suchen. Organisieren mit AI Mit einem Klick liest er Ihre veröffentlichten Artikel, sortiert sie in sinnvolle Kategorien und fügt Tags hinzu. Er erstellt eine Kategorie, wenn er eine braucht, verwendet eine bereits passende Kategorie wieder und überspringt alles, was Sie bereits organisiert haben, so dass Sie es jederzeit wieder ausführen können, wenn Sie neue Artikel hinzufügen. Schalten Sie ein AI in Unterkategorien organisieren lassen in den Help Center-Einstellungen und es kann auch Artikel unter verschachtelt Parent / Child Kategorien, die direkt nach dem Import einer Wissensdatenbank mit Unterabschnitten praktisch sind.

💡
Kategorien geben Kunden die Möglichkeit zu surfen und Tags schärfen die Suche sowohl auf der öffentlichen Seite als auch im Widget. Sie können Dinge danach umbenennen oder verschieben. Die KI gibt Ihnen einen starken Ausgangspunkt, nicht ein Setup, mit dem Sie feststecken.

Das Help Center in Ihrem Chat-Widget

Sie können das Hilfecenter direkt im Chat-Widget anzeigen, damit die Leute nach Antworten suchen, bevor sie Ihnen eine Nachricht senden.

Im Header

Ein kleines Hilfe-Icon oben auf dem Widget.

Am unteren Ende

Ein Textlink unter dem Nachrichtenfeld, z. B. "Hilfezentrum durchsuchen".

Beide Orte

Zeigen Sie es in der Kopfzeile und unten für die meiste Sichtbarkeit.

Der Hilfelink hat eine eigene Farbsteuerung unter den Widget-Einstellungen. Keine um Ihre Launcher-Farbe zu entsprechen, oder wählen Sie eine Festkörper Farbe oder eine GefälleDie gesamte Hilfeerfahrung folgt Ihrem Widget-Thema, so dass es immer wie ein Teil Ihrer Marke aussieht.

Setzen Sie Ihr Help Center auf Ihre eigene Webadresse

Out of the box Ihr Help Center hat bereits eine saubere, teilbare Adresse für sich (z. B.) /help/your-help-centerDu kannst noch einen Schritt weiter gehen und ihn unter deinem Eigene Domain, so dass Kunden und Suchmaschinen es als Teil Ihrer Marke sehen, zum Beispiel yourdomain.com/help oder help.yourdomain.comAlles funktioniert weiter an Ihrer Domain: Links, Bilder, Suche und Artikelbewertungen.

Unter Ihrer Hauptseite

In Config, dann Help Center, öffnen Sie die Einbettung Suchen Sie "Ihr Hilfecenter auf Ihrer eigenen Webadresse anzeigen". Wählen Sie Ihr Setup (Cloudflare, Nginx oder Apache), kopieren Sie den vorgefertigten Block und fügen Sie ihn in Ihre Website ein. Rüstführer Daneben knopfen Sie mit den genauen Schritten.

Auf einer Subdomain

Vorzug help.yourdomain.com? Das gleiche Panel hat eine Subdomain-Option. Auf Cloudflare ist eine Subdomäne die zuverlässigste Route, und sie gibt Ihnen eine saubere Adresse mit nichts danach.

💡
Verwendung Cloudflare Es führt seinen Worker nur auf einer Adresse aus, die durch Cloudflare Ihre Hauptdomain zeigt oft direkt auf Ihre Website, so dass eine Regel, die auf der Hauptdomäne platziert wird, stillschweigend nichts tun kann. help.yourdomain.comDer Setup Guide führt Sie durch den einen DNS -Rekord und die Route.
Gut für SEO. Sobald Ihr Hilfe-Center auf Ihrer eigenen Domain ist, indizieren Suchmaschinen Ihre Artikel unter Ihrer Marke. Jede Seite gibt ihre korrekte Adresse an und die Sitemap listet sie auf, so dass derselbe Artikel nie zweimal indexiert wird.
💡
In der Chat-Widget "In Hilfecenter öffnen" Einstellungen, eingestellt Wohin der Link geht bis Ihre eigene Help Center Domain Dann öffnen sich diese Artikellinks auch auf Ihrer Domain, nicht auf der OpsIQ Adresse.

Sehen Sie, wie es Ihrem gesamten Help Center geht

Neben Einzelartikel-Stimmen hat das Help Center seine eigenen analyticsSchalten Sie es in den Einstellungen des Hilfecenters ein und es zeichnet leise auf, wie die Leute Ihre Hilfe nutzen: die meistgesehenen Artikel, wonach sie suchen, und Suchanfragen, die leer zurückkamen (eine fertige Liste zum Schreiben), wobei das Besucherland und das Gerät selbst erstellt werden, so dass das Chat-Widget nicht installiert werden muss, um zu berichten. Jede Nummer wird angezeigt both Stellen Sie Ihre Hilfe erscheint, die öffentliche Seite und das In-Widget-Hilfe, sowie kombiniert, so dass Sie sehen können, wie viel jede einzelne tatsächlich verwendet wird.

💡
Analytics bleibt ausgeschaltet, bis Sie es einschalten und Sie können die Besucher- IP Adressen anonymisieren lassen.

Wählen Sie aus, was auf jedem Teil der Seite erscheint

Jeder Abschnitt des Hilfe-Centers (die Kategorien auf der Startseite, die beliebten Artikel, die Artikelliste auf einer Kategorieseite und mehr) hat seine eigene einfache Regel. all Positionen, a Satznummer, the letzte, oder nur diejenigen, die Sie feature Wenn eine Regel eine Liste begrenzt, erhalten die Kunden immer noch einen "Alles anzeigen"-Link, so dass nichts wirklich außer Reichweite ist.

Sie entscheiden auch, wie die hilfreichen Stimmen aussehen: versteckt, ein freundliches Verhältnis wie "12 von 14 Eine Mindeststimmeneinstellung stoppt einen brandneuen Artikel, der eine unangenehme "0Auswärts0".

Sehen Sie, welche Artikel funktionieren

Jeder Artikel zeigt eine War das hilfreich? prompt. Jedes Ja oder Nein wird pro Artikel gezählt, so dass Sie auf einen Blick sehen können, welche Artikel Fragen gut beantworten und welche neu geschrieben werden müssen. Wiederholte Stimmen vom gleichen Besucher werden ignoriert, damit die Zählungen ehrlich bleiben.

Text und Etiketten

Sie können die Überschriften und Beschriftungen im Hilfe-Center an Ihre Stimme anpassen. Lassen Sie ein Feld leer und es fällt auf einen vernünftigen Standard zurück, so dass Sie nur den Wortlaut bearbeiten, den Sie tatsächlich ändern möchten.

Jedes Artikel, den Sie hier veröffentlichen, ist der gleiche Inhalt, den die KI verwendet, um Chats und Tickets zu beantworten, so dass eine Verbesserung das andere verbessert.

Gemeinsame Fragen

Muss ich separate Inhalte für das Help Center schreiben?+

Nein, es basiert auf den gleichen Wissensdatenbankartikeln wie die KI. Veröffentlichen Sie einen Artikel einmal und er kann beides bedienen.

Kann ich einige Artikel intern aufbewahren?+

Ja. Nur Artikel, die Sie veröffentlichen und öffentlich markieren, erscheinen im Hilfe-Center. Alles Unveröffentlichte bleibt dabei draußen.

Werden Kunden noch in der Lage sein, eine Person zu erreichen?+

Ja. Der Widget-Hilfelink ist nur einen Tipp entfernt vom Beginn einer Konversation, so dass Selbstbedienung niemals jemanden in die Falle lockt.

Wachstum & SEO

Site Intelligence (SEO-Suite)

Site Intelligence ist OpsIQ's eingebaute SEO- und Suchvisibilitäts-Suite. Es crawlt Ihre Website wie eine Suchmaschine, verfolgt, wo Sie ranken, recherchiert Keywords, schaut Backlinks und Konkurrenten, scannt Ihre lokale Kartenpräsenz, überprüft die Seitengeschwindigkeit und verwandelt alles in kundenbereite Berichte, mit einem KI-Analysten, der erklärt, was zu beheben ist und die Korrekturen entwerfen kann. Es ist ein Premium-Feature; wenn es aktiviert wird, erscheint es als Site Intelligence in der Sidebar. Jede Domain Daten bleiben getrennt, Crawls, Rankings und Berichte mischen sich nie zwischen Domänen.

Website-Intelligenz
Site Intelligence DashboardEin SEO-Dashboard, das einen Site-Health-Score, Keyword-Rank-Tracking und einen Traffic-Trend zeigt.Website-Intelligenzyoursite.com86GESUNDHEIT AUF DER SITE3 Kritische ProblemeKeyword Rang Trackingai Helpdesk#3Live Chat Saas#7Crm für Agenturen#12Organische Klicks1KRAFTFindet technische Probleme2STRAHLRanks, Keywords, Backlinks3AI-AnalystErläutert und entwirft Fixes
Die Site Intelligence-Übersicht: ein Site-Health-Score aus dem neuesten Crawl, Live-Keyword-Rank-Tracking, ein organischer Klicks-Trend und die dreistufige Schleife: Crawlen, verfolgen, lassen Sie die KI die Fixes entwerfen.

Crawl ausführen · hier starten

Ein Crawl ist OpsIQ, wenn Sie Ihre Seiten so besuchen, wie es eine Suchmaschine tun würde, um technische Probleme zu finden: defekte Links, fehlende Titel, dünner Inhalt, langsame Seiten, Indexierungsprobleme.

1
Starten Sie den Crawl

Klicken Sie in der Übersicht, um einen Crawl zu starten. OpsIQ steht an und arbeitet im Hintergrund durch Ihre Seiten; ein Statusindikator zeigt den Fortschritt an.

2
Lesen Sie die Berichte

Wenn es fertig ist, öffnen Sie die Probleme und die Seitenliste. Jedes Problem wird nach Schweregrad gruppiert, so dass Sie zuerst die größten Gewinne angehen.

3
Lassen Sie die KI helfen

Der AI-Analyst erstellt einen einfachen Überblick darüber, was falsch ist und warum es wichtig ist, und kann Vorschläge für Korrekturen erstellen, die Sie vor der Bewerbung überprüfen.

Was Site Intelligence verfolgt

Crawls & Site Health

Scannt Ihre Seiten auf technische SEO-Probleme und listet jede Seite mit ihren Problemen auf, die Sie jederzeit erneut ausführen oder planen können.

Rangfolgeverfolgung

Fügen Sie die Schlüsselwörter hinzu, die Ihnen wichtig sind; OpsIQ prüft, wo Ihre Website im Laufe der Zeit rankt und Bewegungen verfolgt.

Keyword-Recherche

Entdecken sie neue keyword-ideen, die sie anvisieren können, mit dem ki-keyword-coach, um zu priorisieren.

Backlinks

Sehen Sie, wer mit Ihnen verlinkt ist, aktualisieren Sie die Liste und verwerfen Sie Links, die nicht mit Ihrer Website verknüpft sein sollen.

Wettbewerber

Fügen Sie Wettbewerber-Domains hinzu und vergleichen Sie Ihre Sichtbarkeit mit ihrer, mit einer KI-Konkurrentenanalyse.

Lokales (Karten-)Raster

Scannen Sie die Sichtbarkeit der lokalen Auflistung in einem geografischen Raster, um zu sehen, wo Sie auf der Karte angezeigt werden, sowie Google Business Profile-Tools.

Seitengeschwindigkeit

Führen Sie Page-Speed-Checks aus, damit Sie langsame Seiten beheben können, die Rankings und Conversions beeinträchtigen.

AI-Gehalt

Generieren Sie Inhaltsvorträge und Entwürfe, die auf die Keywords abzielen, auf die Sie abzielen.

Berichte

Erstellen Sie druckbare, kundenbereite Berichte über alles oben.

Google für genaue Daten

Zwei Google-Connectors verwandeln Schätzungen in reale Zahlen:

Google Search Console

Suchen

Ziehen Sie die genauen Abfragen, Klicks und Impressionen, die Google für Ihre Website berichtet, ordnen Sie Ihr Eigentum ab und erstellen Sie die Ranking-Möglichkeiten direkt aus den eigenen Daten von Google.

Google Analytics 4

Verkehr

Bringen Sie Ihre Traffic- und Engagementdaten neben Ihre SEO-Daten, so dass Berichte Sichtbarkeit und Verhalten zusammen zeigen.

Geplante Aktualisierungen & White-Label-Berichte

Sie müssen nicht alles von Hand ausführen. Geplante Aktualisierungen wiederholen Crawls, Rangprüfungen, Keyword-Checks, Backlink-Aktualisierungen, lokale Gitterscans und Berichtsgenerierung in einer Trittfrequenz (täglich oder wöchentlich je nach Plan und Volumen). Diese laufen durch den OpsIQ cron, siehe Cron und Automatisierung Abschnitt. Generierte Berichte exportieren als druckbare, kundenbereite Dokumente: Agenturen senden jedem Kunden ein regelmäßiges SEO-Update, und weil die Daten jeder Domain getrennt sind, sieht jeder Kunde immer nur seine eigenen.

Einige Site Intelligence-Funktionen rufen externe Datenanbieter und AI durch OpsIQ's konfigurierter Provider. Sie arbeiten out-of-the-box, wenn die Suite für Ihren Plan aktiviert ist.OpsIQ cron läuft (siehe Cron und Automation).
Muss ich etwas zu meiner Website für SEO-Tracking hinzufügen?+

Crawls, Rangverfolgung, Keyword-Recherche und Backlinks funktionieren ohne Ihre Website zu berühren. Für Traffic und genaue Suchdaten verbinden Sie die Google Search Console und GA4.

Kann ich mehr als eine Domain verfolgen?+

Ja. Fügen Sie jede Domain separat hinzu; ihre Crawls, Rankings und Berichte bleiben vollständig voneinander isoliert.

Wie oft sollte ich crawlen?+

Wöchentlich ist genug für die meisten Seiten; Crawlen auf Anfrage nach einer großen Inhalts- oder Strukturänderung. Legen Sie einen Zeitplan fest, damit Sie ihn nie vergessen.

Wachstum & SEO

Auto-Implementierung (SEO Agent)

Auto-Implement ist der Teil von Site Intelligence, der die Korrekturen anwendet, die der Crawl und AI-Analyst empfehlen, anstatt Sie nur zu beraten. Der Agent arbeitet strikt nach dem, was Site Intelligence bereits gefunden hat (es kann niemals eine Änderung erfinden) und geht jeden Fix durch den gleichen sicheren Loop: eine Trockenlaufvorschau, Ihre pro-Schritt-Genehmigung, das Live-Schnappschuss, ein automatisches Re-Crawlen, das beweist, dass die Anzahl der offenen Ausgaben gesunken ist. Es ist eine reine Managed-AI-Funktion; es erscheint als Auto-Implement (Rakete) Aktion innerhalb des Bereichs Site Intelligence und es ist ausgeschaltet, bis Sie es einschalten.

Auto-Implementierung
Auto-Implementieren SEO AgentEin Flow, der empfohlene SEO anzeigt, behebt das Bewegen durch Vorschau, Genehmigung und ein Live-Schreiben mit einem Beweis-es erneut kriechen.Auto-Implementierungyoursite.comEmpfohlene FixesAdd missing <title>genehmigtFix robots. txtgenehmigtStellen Sie eine Sitemap ein.xmlreviewPRÜFUNG VON DROHMEN (DIFF)+ <title>AI Helpdesk - OpsIQ</title>+ <meta name=description ...>- <title>Home</title>GenehmigungSchiffBEWEISE ES - RE-CRAWLOffene Themen 124Snapshot gespeichert1VORBEREITUNGTrockendiff jedes Fixes2ANWENDUNG UND WRITESSH oder gehostet API3PROVE & ROLLBACKRe-Crawl + Snapshot
Wie eine Sitzung läuft: Der Agent listet die bereits empfohlenen Fixes Site Intelligence auf, zeigt ein Dry-Run-Diff von jedem einzelnen an, wendet diejenigen an, die Sie genehmigen SSH oder ein Hoster API Schnappschüsse vor jedem schreiben und neu crawls, um zu beweisen, dass die anzahl der offenen herausgabe gefallen ist.

Was es ändern kann

Der Agent wendet immer nur die Korrekturen an, die Site Intelligence (oder der KI-Analyst) bereits für diese Domain empfohlen haben.

Server-Konfiguration

sitemap.xml, robots. txt und redirect, kanonische und Header-Regeln in . htaccess (Apache / LiteSpeed) oder der nginx config.

Leitende Ketten

Einstürzt eine Multi-Hop-Redirect-Kette auf einen einzelnen Hopfen direkt zum endgültigen URL innerhalb des gleichen verwalteten . htaccess-Blocks, so dass Geschwindigkeit und Linkwert nicht mehr durch die zusätzlichen Hopfen lecken.

Page <head>

Fehlende oder schwache Seitentitel, Meta-Beschreibungen, kanonische Tags und Blöcke für strukturierte Daten (Schema).

WordPress SEO

Yoast, Rank Math und SEOPress Titel & Meta sowie Image-Alttext, angewendet über WP-CLI auf der SSH Pfad oder REST API Auf dem gehosteten Weg.

WordPress strukturierte Daten

Zusätze JSON-LD (Schema) zu Seiten, die es vermissen. SSH Ein kleiner verwalteter Helfer (ein Must-Use-Plugin) druckt das Markup so aus, dass es mit oder ohne SEO-PlugIn funktioniert; auf dem gehosteten Pfad trägt Ihr SEO- Plugin es.

Interne Links

Fügen Sie einen relevanten internen Link innerhalb bestehender WordPress -Inhalte hinzu, um verwaiste Seiten zu retten und verwandte Beiträge zu verbinden. Ein Link pro Seite, niemals in einer Überschrift, einem vorhandenen Link oder einem Shortcode und immer zuerst von Ihnen genehmigt.

Thin-Page Content Rewrites

Entwürfe vollständiger Ersatzinhalt für dünne Seiten (durch eine Crawl-Option aktiviert, siehe unten). Jeder Entwurf wird von Ihnen überprüft und genehmigt, bevor etwas veröffentlicht wird, und der alte Inhalt bleibt erhalten, damit er wiederhergestellt werden kann.

Seiten-Cache (WordPress)

Schaltet das W3 Total Cache-Seitencaching ein, wenn der Crawl Geschwindigkeitsprobleme feststellt und dieses Plugin installiert ist, sodass Seiten schneller dienen.

Shopify SEO

Produkt- und Sammlung SEO Titel & Beschreibungen, Seite und Blog-Artikel SEO, plus 301 Redirects, durch die Shopify Admin API.

Webflow SEO

Per-Page SEO Titel und Meta Beschreibung durch die Webflow Daten API v2.

Bereiten Sie die Fixes automatisch vor (zwei Crawl-Optionen)

Das Konfigurieren von Site Intelligence-Einstellungen für eine Domain (die Crawl-Einsätze) enthält zwei Optionen, die bestimmen, wie viel der Agent im Voraus für Sie einrichtet. Beide sind standardmäßig deaktiviert und beide verwenden KI-Guthaben. Sie können sie also nur aktivieren, wenn Sie diese Arbeit für sich erledigen möchten.

Auto-Prepare AI Fixes nach jedem Crawl

Jeder Crawl schreibt auch den konkreten Fix-Inhalt (Titel, Metabeschreibungen, Alttext, Schema, Redirects) für das, was er gefunden hat, so dass die Fixes bereit sind, den Moment zu überprüfen und anzuwenden, in dem der Crawling beendet wird, anstatt später auf Abruf generiert zu werden.

AI-Inhalte umschreiben (dünne Seiten)

Der Agent kann vollständige Ersatzinhalte für dünne Seiten entwerfen. Nichts wird jemals selbst veröffentlicht: Jeder Entwurf erscheint als Änderung, die Sie Seite an Seite überprüfen und genehmigen oder ablehnen, der vorherige Inhalt bleibt reversibel und ist auf einige Seiten pro Durchlauf beschränkt. Verwendet KI-Kredit pro Entwurf.

💡
Jede Änderung durchläuft immer noch die gleiche pro-Schritt-Genehmigung, Momentaufnahme und Rollback wie jede andere Korrektur, so dass das Einschalten von ihnen niemals etwas selbst zum Leben erweckt.

Zwei Wege, die es verbindet

SSH / SFTP Wegstrecke

Selbstverwaltete

Für Websites auf Ihrem eigenen Server verbindet sich der Agent mit SSH/SFTP Anmeldeinformationen verwenden, die Sie speichern, die Server-Konfiguration und Seitendateien direkt bearbeiten und WP-CLI für WordPress Am besten, wenn Sie Shell-Zugriff haben und die vollständige Kontrolle über Dateien wünschen.

Pfad Hosted-API (kein SSH)

Keine Schale

Für Plattformen, die nicht zulassen SSH Der Agent arbeitet vollständig durch einen Beamten API Steckverbinder WordPress (REST + Application Passwords) Webflow (Daten)API v2 und Shopify (Administration)API Nichts ist auf dem Host installiert.

💡
Wix und Squarespace haben kein öffentliches SEO-Write API, daher läuft Auto-Implement auf diesen Plattformen im beratenden Modus: Es zeigt Ihnen die genaue Änderung (der genaue Titel, Meta oder Einstellung), die Sie von Hand anwenden können.

Schalten Sie die Steckverbinder ein

Der Agent erreicht jede Plattform über einen Connector:

Eingebaut in

Shopify und WordPress Steckverbinder Schiff mit OpsIQ, aktivieren Sie sie einfach unter Connectors und fügen Sie die Speicher- / Site-Anmeldeinformationen hinzu.

Vom Marktplatz

Webflow, Wix und Squarespace installieren Sie von Connectors → Marketplace und verbinden Sie sich dann auf die gleiche Weise.

Wie eine Session läuft

1
Wählen Sie die Fixes

Öffnen Sie Auto-Implement (Rakete) aus dem Bereich Site Intelligence. Es listet die Probleme auf, die Site Intelligence bereits gefunden hat und die in dieser Domain behoben werden können.

2
Vorschau auf jede Änderung

Für jeden Fix zeigt der Agent ein Dry-Run-Diff (genau das, was er schreiben wird), bevor irgendetwas die Live-Site berührt.

3
Schritt für Schritt genehmigen

Sie genehmigen (oder überspringen) jede Änderung einzeln. Nichts wird angewendet, ohne dass Sie diesen Schritt ausdrücklich genehmigt haben.

4
Es schreibt, dann Snapshots

Nach Genehmigung macht der Agent den Live-Wechsel über SSH oder der Gastgeber API und speichert zuerst einen Snapshot, so dass jede Änderung zurückgerollt werden kann.

5
Beweisen Sie es, live

Da es jede Änderung anwendet, überprüft der Agent sofort die genaue Seite und zeigt ein pro Schritt "fixed live" -Urteil, so dass Sie sehen, wie jedes Fix auf der Live-Seite landet, während es passiert. Am Ende wird die gesamte Website neu gecrawlt und bestätigt, dass die Anzahl der offenen Ausgaben gefallen ist.

Sicherheit & Abrechnung

Nur SEO

Der Agent kann nur das tun, was Site Intelligence für diese Domain empfohlen hat.

Einzelphasengenehmigung

Jeder Schreibvorgang wird als Diff vorgeschaut und erst angewendet, nachdem Sie diesen bestimmten Schritt genehmigt haben.

Snapshot & Rollback

Vor jedem Schreiben wird ein Snapshot gespeichert, sodass jede Änderung rückgängig gemacht werden kann.

Live-Per-Step Proof

Jede geänderte Seite wird im Moment des Schreibens erneut überprüft und erhält ein "fixed live" -Urteil, so dass eine Korrektur sofort gegen die Live-Seite bestätigt wird, nicht nur beim abschließenden Neucrawlen.

Content wird niemals automatisch veröffentlicht

Interne Links und Thin-Page-Content-Umschreibungen sind höher, so dass sie Ihnen immer zur Genehmigung angezeigt werden und niemals automatisch angewendet werden, unabhängig davon, welchen Modus Sie ausführen.

Nur Managed-AI

Auto-Implement läuft auf Managed AI; es wird blockiert, wenn ein Arbeitsbereich seine eigenen Schlüssel (BYOK) verwendet.

Abrechnung

AI-Tokens berechnen normalerweise, wie Sie sie verwenden, plus eine Pauschalgebühr pro Nutzung pro Auto-Implementierungssitzung, die beide aus dem gleichen Managed-AI-Kredit stammen.

Auto-Implement ist standardmäßig deaktiviert. Aktivieren Sie es auf der AI-Konfigurationsseite (Auto-Iimplement-Karte) und stellen Sie sicher, dass der Connector für Ihre Plattform zuerst angeschlossen ist.
Ändert sich etwas, ohne zu fragen?+

Nein. Jede Änderung wird als Dry-Run Diff vorgeschaut und erst angewendet, nachdem Sie genau diesen Schritt genehmigt haben. Vor jedem Schreiben wird eine Momentaufnahme gespeichert, damit Sie zurückrollen können.

Benötige ich SSH Zugang?+

Nicht am WordPress, Shopify oder Webflow. Diese arbeiten durch ihre offiziellen APIs Ohne Shell-Zugang. SSH ist nur einer der beiden Pfade, die verwendet werden, wenn Sie möchten, dass der Agent Server-Konfiguration und Dateien direkt auf Ihrem eigenen Server bearbeitet.

Woher weiß ich, dass es funktioniert hat?+

Nach dem Anwenden der genehmigten Korrekturen durchsucht der Agent die Website erneut und zeigt die Anzahl der offenen Ausgaben vor und nach, sodass Sie bestätigen können, dass die Korrekturen die Probleme reduziert haben.

Wird es den Seiteninhalt selbst neu schreiben oder veröffentlichen?+

Nein. AI-Inhalte umschreiben sind ausgeschaltet, bis Sie sie in den Crawl-Optionen einschalten, sie sind auf wenige dünne Seiten pro Durchlauf begrenzt und jeder Entwurf wird Ihnen zur Genehmigung nebeneinander angezeigt, bevor etwas veröffentlicht wird. Der vorherige Inhalt bleibt erhalten, so dass eine Umschreibung immer rückgängig gemacht werden kann.

Kann ich es mit meinen eigenen AI-Schlüssel verwenden?+

Auto-Implement ist nur Managed-AI und wird unter BYOK blockiert. Es berechnet normalerweise AI-Token plus eine Pauschalgebühr pro Sitzung aus demselben Managed -AI-Kredit.

Wachstum und Engagement

Umfragestudio

Survey Studio ist der Arbeitsbereich für die Erstellung von editierbaren Umfragen, die als eigenständige Rich-Seite, Website-Widget oder Inline-Embed bereitgestellt werden können. Das aktuelle Produkt bietet auch gehostete Links, signierte Vorschauvorschauen, private Einladungen, QR-Sharing, Antwortbrowsing und umfragebasierte Analysen. Das Website-widget ist eine Lieferoption; es ist nicht die Definition einer Umfrage.

⚠️
Strom-gegen-Zielgrenze: die Premium-Erstellung und Vorschauerfahrung, Connector Builder survey Survey Studio benötigt weiterhin die unabhängige Multi-Deployment-Architektur, das signierte Umfrageidentitäts-Gateway, Targeting/Variablenverdrahtung, CRM Outreach Send Flow und Typisierung. surveys.* API.

Erstellen Sie eine Umfrage

1
Wählen Sie, wie die Leute es nehmen

Der aktuelle Assistent bietet Standalone-Seite & Link, Website Widget und Inline-Embed. Der genehmigte Zielfluss beginnt mit dem Umfragetyp und fügt später CRM-E-Mails, Private-Links und QR-Bereitstellungen als erstklassige Optionen hinzu.

2
Wählen Sie den Zweck

Wählen Sie NPS, CSAT, CES, Produktfeedback, Post-Kauf, Stornierung, Onboarding, Website, Veranstaltung, Webinar, Support, Lead / Demo, Test, Testimonial, Forschung, Mitarbeiter, Aufnahme oder allgemeines Feedback.

3
Verwenden Sie eine vollständige Vorlage oder Start leer

Der aktuelle Katalog hat fertige, editierbare Starter, die nach Zweck gruppiert sind. Durch Auswählen einer Vorlage wird ein kopierter Entwurf erstellt: Das Ändern der Umfrage ändert nicht den Starter oder eine andere Umfrage.

4
Anpassen oder Quick Review

Customize öffnet jede Frage, Design, Verhalten und Zustellungskontrolle. Quick Review öffnet den gleichen Entwurf bei der letzten Kundenansichtsprüfung. Nichts veröffentlicht oder sendet automatisch.

Lieferentscheidungen und gegenwärtiges Verhalten

Standalone Seite & Link

Eine responsive Markenseite mit eigenem URL. Verwenden Sie private Einladungen und Ablauf, wenn jeder Empfänger einen kontrollierten Link benötigt. QR-Sharing-Punkte auf dieser gehosteten Erfahrung.

Website Widget

Der migrierte Legacy-Kanal. Er kann Seiten-, Geografie-, Geräte-, Besucher-, Datums-, Probenahme-, Cooldown-, Besuchs- und Quotenregeln verwenden. Er wird immer noch durch die bestehende Active-Widget-Brücke unterstützt, während die Bereitstellungsarchitektur aufgebaut ist.

Inline Embed

Eine responsive Umfrage, die auf einer Seite, einem Portal, einem Produkt oder einem Hilfecenter durchgeführt wird.

E-Mail

Heute kann das Studio Einladungen HTML und private Links generieren. End-to-End-Versand von CRM-Kontakten/Segmenten mit Zustimmung, Unterdrückung, Planung, Wiederholung und Antwortkorrelation ist das genehmigte Ziel der CRM Outreach-Integration.

Enterprise Design und Preview

Umfrageseiten haben Survey-eigene Themen und Seitenlayoutfamilien, responsive Controls, Begrüßungs- und Abschlusskopien sowie eine signierte Entwurfsvorschau. Die Designervorschau ist in voller Breite unter dem Editor, keine schmale Seitenleiste. Sie verwendet die real gehostete Laufzeit in einem Sandbox-Rahmen und unterstützt Desktop-, Tablet- und Telefonbreiten; Vorschauverkehr schreibt keine Antworten oder Analysen.

💡
Survey Studio ist unabhängig von Promotion Studio. Laufzeit-Targeting, Identität, Assets, Rendering und Analysen müssen im Besitz der Umfrage sein. Promotion-Inhalte dürfen nur durch eine explizite einmalige Kopie/Importierung wiederverwendet werden, die getrennte Umfragedaten erzeugt; spätere Promotion-Editierungen dürfen keine Wirkung haben.

Das Vollformerzeugnis

Unabhängige Einsätze

Lebend

Eine Umfrage kann separat versionierte Seiten-, Widget-, Embed-, CRM-E-Mail-, Private-Link- und QR-Bereitstellungen haben, jede mit ihrem eigenen Status, Design, Publikum und Analysen.

CRM Outreach und Kampagnen

Lebend

Erstellen Sie eine verifizierte Zielgruppe aus CRM-Segmenten und Survey-fähigen Konnektoren, frieren Sie sie in eine unveränderliche Version ein, geben Sie jeweils eine signierte Einladung aus und senden Sie über den angehefteten Outbound-E-Mail-Konnektor mit einem Zustellnachweis pro Einladung.

Feldkit und Validierung

Lebend

Slider, Bildauswahl, Datei-Upload, Signatur, Adresse, Telefon, Überschriften und Rich Text mit min/max Länge, E-Mail/URL/Nummer Presets, benutzerdefinierte Fehlertexte und pro Frage Vorfüllparameter URL.

Logik, Formeln, Ergebnisse

Lebend

UND/ODER Bedingungsgruppen, Zweigregeln, eine sichere Formel-Engine über Antworten und Scorebänder, die ihre eigene Ergebnisseite tragen: Ein bewertetes Quiz landet auf seinem Urteil.

Sprache, Kiosk, Prefill

Lebend

Eine Besuchersprache Dropdown-Liste nur Sprachen mit echten Übersetzungen, Kiosk-Modus für freigegebene Tablets (größere Ziele, Auto-Reset, keine Redirects), ein Prefill Link Builder und editierbare Secure-Badge und Fußzeile Text.

Version A/B-Prüfung

Lebend

Veröffentlichen Sie eine Challenger-Version bei jedem Einsatz mit einer Traffic-Split. Besucher werden klebrig zugewiesen, Antworten werden mit der tatsächlich bedienten Version abgestempelt und die Vergleichstabelle zeigt Antworten, Abschluss und mittlere Punktzahl pro Version. Fördern Sie den Gewinner mit einem Klick.

Wöchentlicher Digest

Lebend

Eine wöchentliche E-Mail mit den letzten 7 Tagen der Umfrage-KPIs, den arbeitsreichsten Umfragen, dem Feedback-Puls und dem neuesten AI-Briefing, die über den angepinnten Outbound-Connector gesendet wird.

Governance

Lebend

Per-survey Zugriffslisten beschränken, wer eine Umfrage bearbeiten, veröffentlichen oder löschen kann. Veröffentlichung der Genehmigung (vier Augen) erfordert einen zweiten Administrator, um den genauen Entwurf freizugeben; Bearbeitung setzt die Genehmigung zurück.

Entwicklerplattform

Lebend

Steckverbindervertrag 2.2, typisierte Umfragen.* und Feedback.* Aktionen auf api/v1, kanonische Umfrage.* Veranstaltungen, dauerhafte signierte Webhooks mit Slack- und Google Sheets-Relayformaten und One-Response PDF Ausfuhr.

Wachstum und Engagement

Umfrageanalysen und Feedback sind unterschiedliche Produkte

Survey Analytics erklärt, wie eine Umfrage selbst Menschen erreicht und performiert. Feedback erklärt, was Kunden aus allen zulässigen Quellen sagen und was das Unternehmen dagegen tun sollte. Die beiden Produkte verknüpfen sich miteinander, aber teilen oder überschreiben keine analytische Wahrheit.

Umfrageanalysen

Die Eingabe erfolgt aus der individuellen Umfrage im Survey Studio, nicht von der globalen Seitennavigation. Sie misst die Förderfähigkeit, Belichtung, Triggerverhalten, Starts, Abschluss, Abbruch, Frage- und Zweigreibung, Timing, Ergebnisse für Bereitstellung/Kampagne/Version und Laufzeitzuverlässigkeit.

Feedback Überblick & Inbox

Ein genehmigungsbewusster chronologischer Feed für abgeschlossene Umfrageantworten, Legacy-Widget-Feedback, Chat und Ticket CSAT, Ticket Response Feedback, Kunden-AI-Answer-Ratings, hilfreiche Knowledge-Base-Abstimmungen und genehmigte externe / kundenspezifische Quellen.

Feedback Analytics

Analysiert die Bedeutung für Kunden: ursprüngliche Metriken, Themen, Stimmungen, Emotionen, Absichten, Dringlichkeit, Anfragen, Beschwerden, Lob, Segmente von Journey/Produkt/Service/Team, Kritiker und Ergebnisse aus geschlossenen Kreisläufen.

Datenbesitz

Umfrageantworten bleiben im Survey-Speicher maßgeblich. Feedback speichert eine wiederholbare Quellenreferenz und abgeleitete Signale, lädt dann auf Anforderung zulässige Beweise. Eine abgeschlossene Umfrageantwort wird höchstens zu einem Feedbackelement.

⚠️
Die aktuelle Feedback-Seite hat noch einen Antwortbrowser für Umfragen und einen separaten Legacy-Widget-Posteingang, und die KI-Gesamtsummen verwenden noch nicht das vollständige normalisierte Quellmodell.

NPS, CSAT, CES, Sterne, Daumen und Hilfsbereitschaft müssen immer ihre ursprüngliche Methode, Maßstab, Stichprobe, Datumsfenster und Nenner beibehalten; sie dürfen niemals zu einem ungeklärten Durchschnitt zusammengefasst werden.

Wachstum & SEO

Promotion Studio

Das Promotion Studio verwandelt Ihre Website in eine Konvertierungs-Engine. Entwerfen Sie Popups, Banner, Dia-Ins, Top / Bottom Bars, Vollbild Übernahmen, Inline-Blöcke und sogar Land-basierte Redirects, dann zeigen die richtige Nachricht an den richtigen Besucher im richtigen Moment. Alles wird über das OpsIQ Widget bereits auf Ihrer Website geliefert, so gibt es nichts extra zu installieren. Sie entwerfen und speichern Kampagnen jederzeit; sie werden nur angezeigt, wenn Sie sie veröffentlichen und das Studio ist für Ihren Arbeitsbereich eingeschaltet.

Promotion Studio
Promotion Studio DesignerEin visueller Kampagnendesigner mit einer Blockpalette, einem Pop-up auf der Leinwand und einem Targeting Panel.Promotion Studio - Designer und VeranstalterBELOCKExWillkommen, {first_name}!Holen Sie sich 15% von Ihrer ersten BestellungSAVE15Fordern Sie meinen Coupon anZIELUNGLandUS, CATriggerAusstiegsabsichtA/B-Split50 / 50Publishieren1BEZEICHNUNGZiehen Sie Blöcke auf Canvas2ZUGANGLand, Seite, Publikum3MASSNAHMENA/B-Gewinner + AI Insight
Der visuelle Designer: eine Blockpalette auf der linken Seite, Ihre Kampagne auf der Leinwand (hier ein personalisiertes Coupon-Popup mit einem {first_name} -Token) und das Targeting + Publishing-Panel auf der rechten Seite.

Das große Bild

Kampagne

Was

Eine Promotion: Pop-up, Banner, Bar, Slide-In, Vollbild, Inline-Block oder Geo-Redirect. Jede hat ein Ziel: Verkauf, Lead, Anmeldung, Chat, Umfrage, Ankündigung.

Design & Versionen

Wie

Man baut den Look im visuellen Editor. Jedes Speichern erstellt eine neue Version, so dass man immer zurückrollen kann. Nichts geht verloren.

Targeting

Wer

Wer sieht es: Land, Seite, Gerät, Traffic-Quelle, Retouren vs. Neu, Zeitplan und (mit einem Connector) Ihre angemeldeten Kunden.

Trigger

Wann

Wenn es erscheint: sofort, bei Verzögerung, auf Scroll, auf Exit-Intent, im Leerlauf, auf einen Klick, nach N Seiten oder von Chat / Ticket Aktivität.

Analytik

Ergebnisse

Live-Impressionen, Click-through, Conversions, ein Drop-Off-Trichter, Country / Page / Device Splits, A/B Gewinner und ein AI Insight.

Starten Sie Ihre erste Promotion in 5 Schritten

1
Starten Sie mit einer Vorlage oder einem Leerwert

Öffnen Sie Promotion Studio und klicken Sie auf Neue Kampagne, oder wählen Sie ein fertiges Design aus der Vorlagengalerie. Ein Entwurf wird im Designer geöffnet.

2
Design it jetzt

Ziehen Sie Blöcke, Überschriften, Text, Tasten, Bilder, Abzeichen, Statistiken, Countdowns, Formulare, Coupons, Videos, Bewertungen, Spin-Wheels ein. Stilieren Sie Farben, Steigungen und 3D-Effekte mit den Schiebereglern. Vorschau Desktop / Tablet / Mobile und verwenden Sie Free Move, um alles überall zu platzieren.

3
Personalisieren Sie es

Typ-Token wie {first_name}, {country} oder {company} Zur Showzeit werden sie zu den wahren Werten des Besuchers.

4
Ziel und Auslöser

Wählen Sie, wer es sieht (Land, Seite, Gerät, Publikum) und wann es feuert (Verzögerung, Scrollen, Exit-Intent).

5
Check, dann veröffentlichen

Klicken Sie auf Check für einen schnellen Pre-Launch-Scan, dann veröffentlichen. Es geht innerhalb von Sekunden live und beginnt mit dem Sammeln von Analysen.

Blöcke, die Sie bauen können

Inhalt

Kernnetz

Überschrift, Absatz, Liste, Zitat, Bild, Symbol, Abzeichen, Stat, Teiler und Spacer, die Bausteine einer Nachricht.

Aufruf zum Handeln

Kernnetz

Buttons mit echten Aktionen: Öffnen Sie einen Link, starten Sie einen Chat, erstellen Sie ein Ticket, kopieren Sie einen Coupon oder springen Sie zu einer Seite.

Dringlichkeit und Erfassung

Premium

Countdown-Timer, Formulare (E-Mail / Telefon / Text), Coupon-Lecks und Video-Einbettungen.

Gamified & Feedback

Premium

Spin-to-win Räder, Rubbelkarten, NPS / Stern Bewertungen und mehrstufige Trichter.

Layout & Effekte

Premium

Spalten, Fortschrittsbalken, sozialer Anteil, soziale Beweisticker, ja/nein zweistufige Quiz und 3D-Effekte, Neigung, Glühen, Parallaxe, Glasmorphismus.

Personalisierungstoken

Geben Sie diese in Überschriften, Absätze, Buttons, Abzeichen, Statistiken, Listen oder Zitate ein. Sie werden durch die Live-Details des Besuchers ersetzt, sobald die Promotion angezeigt wird (immer aus Sicherheitsgründen gereinigt):

Verfügbare Token
From the visit:   {country} {city} {device} {page_path} {utm_source} {referrer}
From your CRM:    {first_name} {last_name} {email} {company} {segment} {lifecycle_stage}
From a connector: {balance_due} {unpaid_invoices}   (logged-in customers only)

Zielvorgabe

Land und Standort

Zeigen Sie nur in ausgewählten Ländern, Städten oder Zeitzonen (oder verstecken Sie sich vor ihnen) über GeoIP. Großartig für regionenspezifische Angebote oder eine Geo-Weiterleitung.

Seiten & URLs

Beschränken Sie sich auf bestimmte Seiten mit Equals / Start-with / Enthält / Regex und schließen Sie auch Seiten aus.

Vorrichtung

Desktop, Tablet oder Mobile, z. B. eine schlanke Leiste auf dem Handy, ein Modal auf dem Desktop.

Besuchertyp

Neu, zurückgebend, bekannt (in Ihrem CRM) oder anonym; CRM-Segmente, Lifecycle-Phase, Lead Score oder Browsersprache.

Verkehrsquelle

Von UTM (utm_source, utm/campaign) oder verweisende Seite, z. B. nur Besucher einer bestimmten Anzeige.

Zeitplan und Häufigkeit

Start- / Enddaten, Tageszeitfenster und wie oft eine Person es sehen kann (pro Sitzung, pro Tag, nachdem sie geschlossen / geklickt / konvertiert haben).

A/B Verkehrsaufteilung

Zeigen Sie einem Prozentsatz der Besucher und führen Sie Varianten Kopf an Kopf; die gleiche Person sieht immer die gleiche Variante.

Publikum (logged-in)

Mit einem Connector aktiviert, Ziel durch Live-Konto Zustand, z. B. Kunden mit unbezahlten Rechnungen oder aktive Abonnenten.

Trigger

Wählen Sie, wie die Promotion erscheint: Sofort, nach einer Verzögerung, auf Scroll-Tiefe, auf Exit-Intent, im Leerlauf, auf einen Klick eines Elements, nach mehreren Seiten, auf Formular-Verzicht oder aus Chat / Ticket-Aktivität. window.OpsIQPromo.fire('event').

Ziel angemeldete Kunden (Connectors)

Dies ist, was macht OpsIQ Promotions Special: Verbinden Sie eine Plattform wie WHMCS (oder jeder Connector, der das Publikum unterstützt) und das Studio können Besucher nach ihrem Live-Kontostatus ansprechen.

1
Aktivieren Sie einen Audience Connector

Unter Connectors aktivieren Sie einen, der die Fakten des Publikums offenlegt (WHMCS tut out of the box). Kunden werden beim Einloggen in diese Plattform sicher erkannt, OpsIQ vertraut niemals einer eingegebenen E-Mail.

2
Hinzufügen einer Audience-Regel

In der Kampagne Targeting > Publikum, verlangen Sie angemeldet und fügen Sie Regeln wie unbezahlte Rechnungen hinzu >= 1, Abonnement ist überfällig, oder Kontogutschrift > 0.

3
Personalisieren mit Ihren Daten

Verwenden Sie Token wie {first_name} oder {balance_due}. Eine Mahnung "Sie haben eine überfällige Rechnung" schreibt sich von selbst.

Das Targeting für die Zielgruppe ist ausfallsicher: Wenn der Connector eine Tatsache nicht bestätigen kann (oder der Besucher nicht angemeldet ist), wird die Promotion einfach nicht angezeigt, so dass ein abrechnungsorientiertes Angebot niemals die falsche Person erreicht.

Connected Commerce (die Studio-Supermacht)

Produktkarten aus Ihrem Shop

Live-Daten

Ein Produktblock zieht reale Artikel (Name, Preis, Verkaufspreis, Bild, Link) direkt aus WHMCS, WooCommerce, Shopify oder Ihre OpsIQ Tick "Keep fresh" und die Karte aktualisiert ihren Preis von der Plattform jede Stunde, während sie veröffentlicht wird.

Kupons für den Laden

Gutscheine

Ein Couponblock kann den echten Rabattcode in Ihrem Shop erstellen, sobald Sie ihn veröffentlichen, sodass der Code, den ein Besucher enthüllt, immer an der Kasse funktioniert.

Einnahmen aus der Auftragswahrheit

Zuschreibung

Echte Bestellungen von Ihren Plattformen werden stündlich mit Kampagnen abgeglichen (durch den verwendeten Gutscheincode oder durch die E-Mail des Leads), so dass die Einnahmen, die Sie sehen, aus tatsächlichen Verkäufen stammen, nicht aus Schätzungen.

Echter sozialer Beweis

Vertrauen

Der Social-Proof-Ticker kann mit echten aktuellen Bestellungen ("Ada bestellt Starter Plan · 2h vor"), nur Vorname und Artikel führen, niemals E-Mails oder Beträge.

Experimente und Reisen

A/B-Varianten & Auto-Winner

Teilen Sie den Traffic auf verschiedene Designvarianten; Lassen Sie das Studio automatisch den statistischen Gewinner bewerben oder geben Sie den Datenverkehr an den Banditen-Optimierer, der die Besucher zu dem verlagern wird, was konvertiert, wenn Beweise eintreffen.

Hebung von Haltestellen

Reservieren Sie ein Stück Besucher, die nichts sehen, damit Sie beweisen können, dass die Kampagne selbst den Aufzug verursacht.

Segmentvarianten

Unterschiedliche Inhalte pro Publikum in der gleichen Kampagne (mobile Besucher, große Wagen, wiederkehrende Kunden), jedes Segment erhält seine eigene Version.

Triggerexperimente

Varianten können auch testen, WANN: sofort vs. verzögert vs Exit-Intent, Kopf an Kopf gemessen.

Fahrten (Ketten)

Ziel durch das, was jemand mit einer anderen Kampagne getan hat ("saw campaign A but did't convert"), um mehrstufige Promotion-Sequenzen zu erstellen.

Teaser

Eine kleine Pille Besucher können nach dem Schließen der Kampagne wieder öffnen, so dass ein geschlossenes Pop-up ist nie für immer weg.

Wissen, was passiert ist

Klicken Sie auf Heatmap

Designer

Schalten Sie im Designer die Heatmap ein, um echte Besucherklicks über jeden Block Ihres Designs zu zeichnen.

Stufentrichter

Trichter

Mehrstufige Kampagnen zeigen genau, wo Menschen absteigen, Bildschirm für Bildschirm.

Kampagnen vergleichen

Studio

Setzen Sie bis zu vier Kampagnen nebeneinander (Impressionen, Klicks, Conversions), wobei der beste Wert hervorgehoben wird.

Wöchentliche Geschichte & Digest

A

Jeden Montag landet ein Digest in Ihren Benachrichtigungen; Der 📖 Weekly Story Button schreibt eine einfache Zusammenfassung mit den nächsten Schritten, wann immer Sie möchten.

Bequem arbeiten

AI Copilot & Ideen

Chatten Sie mit dem Design-Copiloten, um die Leinwand zu bearbeiten ("Machen Sie die Überschrift dringend, fügen Sie einen Countdown hinzu"), holen Sie sich Kampagnenideen aus Ihren eigenen Verkehrsdaten, übersetzen Sie eine Kampagne pro Land oder beheben Sie automatisch einen niedrigen Design-Score.

Brand Kit Import

Ein Befehl liest Ihre Website und schlägt Ihre echten Markenfarben und Schriftarten vor; speichern Sie und jeder Picker führt mit ihnen.

Mehrsiebtrichter

Schritte Blöcke erhalten true per-screen-Bearbeitung: Tabs für jeden Bildschirm, hinzufügen oder neu ordnen Sie Bildschirme, und die Vorschau folgt entlang.

Benannte Versionen & Präsenz

Benennen Sie wichtige Versionen ("Launch Candidate"), stellen Sie eine davon wieder her und sehen Sie eine Warnung, wenn ein Teamkollege dieselbe Kampagne bearbeitet.

Gerätestreifen und Lineale

Sehen Sie Desktop, Tablet und Mobile nebeneinander in einer Ansicht; Pixellineale für eine präzise Platzierung umschalten.

Hosted Page & Channels

Jede Kampagne kann auch eine eigenständige gehostete Seite für Bios und QR-Codes, eine E-Mail-Trippsequenz für erfasste Leads oder ein One-Click-Webpush-Entwurf sein.

Sicherheit des Unternehmens

Veröffentlichen Sie Frostfenster (Change-Freeze-Perioden), einen Notpausenschalter, Genehmigungen, Audit Trail und Versionsrollback.

Muss ich Code zu meiner Website hinzufügen?+

Nein. Promotions werden von dem gleichen OpsIQ Widget geliefert, das Sie bereits installiert haben.

Werden Besucher immer wieder dasselbe Pop-up sehen?+

Nein. Frequenzobergrenzen setzen (pro Sitzung / pro Tag, oder nach dem Schließen, Klicken oder Konvertieren stoppen).

Wer kann veröffentlichen?+

Das Veröffentlichen, Pausieren, Archivieren und Zurückrollen ist auf Workspace-Besitzer und vollständige Administratoren beschränkt. Jedes Teammitglied kann Entwürfe erstellen und entwerfen.

Wachstum & SEO

Promotion Designer bei 3D-Design

Promotion Designer ist ein responsiver Blockeditor zum Erstellen, Überprüfen, Versionieren und Veröffentlichen einer Kampagnenerfahrung.

Produktbildschirm
Promotion Designer bei 3D-DesignDer Designer kombiniert eine Live-Canvas, Gerätevorschaus, Blöcke, Personalisierungsvariablen, Kommentare und Versionshistorie.Promotion Designer bei 3D-DesignArbeitsbereichVIEWPORTDesktopVERSANDv12STAATEntwurfLEBENDER ARBEITSPAZWERKHeroblockHeadline, Medien und CTABearbeitenAngebotsblockDiscount und FristBearbeitenPersonalisierungKontakt- und KampagnenvariablenFertigStartkontrolleAnmerkungen und ValidierungÜberprüfung1BUILD BLOCKSBearbeiten Sie Live-Layout2VORBEREITUNGDesktop, Tablet, Mobile3PUBLISHVersionierte Freigabe
Der Designer kombiniert eine Live-Canvas, Gerätevorschaus, Blöcke, Personalisierungsvariablen, Kommentare und Versionshistorie.

Verwenden Sie Blöcke, um die Erfahrung zu erstellen, eine Vorschau jedes unterstützten Viewports und fügen Sie genehmigte Personalisierungsvariablen ein. Überprüfen Sie Kommentare und die Herkunft der KI-Medien vor dem Start. Speichern erstellt Versionen, damit ein früheres Design inspiziert oder wiederhergestellt werden kann.

Wachstum & SEO

Muster für Absatzförderungsvorlagen

Vorlagen bieten eine durchsuchbare, kategorisierte Startgalerie für Promotion Studio Kampagnen.

Produktbildschirm
Muster für AbsatzförderungsvorlagenDie Vorlagengalerie filtert Premium-Layouts und wendet die Farben der Workspace-Marke an, wenn eine Vorlage zu einem Entwurf wird.Muster für AbsatzförderungsvorlagenArbeitsbereichKATEGORIEUmrechnungRESULTS24BESTANDENAngewendetLEBENDER ARBEITSPAZWERKAusstiegsangebotModal mit Dringlichkeit und CTAVorschauNeuer Besucher willkommenBanner und Benefit ListVorschauProduktstartHeld, Beweis und CountdownVorschauFeedback-AnfrageKompakte UmfrageanfrageVorschau1FILTERKategorie und Suche2VORBEREITUNGÜberprüfen Sie das vollständige Design3USEErstellen Sie einen Branded Draft
Die Vorlagengalerie filtert Premium-Layouts und wendet die Farben der Workspace-Marke an, wenn eine Vorlage zu einem Entwurf wird.

Suchen oder filtern Sie nach Kategorie, laden Sie zusätzliche Ergebnisse, sehen Sie die gesamte Erfahrung an und wählen Sie VerwendungsvorlageDie neue Kampagne bleibt ein Entwurf und kann vor der Veröffentlichung in Promotion Designer geändert werden.

Wachstum & SEO

Promotion Analytics

Promotion Analytics verbindet Impressionen und Klicks mit Conversions, Publikumskontext, Connector-Aktionsergebnissen und Kampagnenlernen.

Produktbildschirm
Promotion AnalyticsPromotion Analytics zeigt Headline Performance, Audience und Trigger-Ausfälle, Leads Export und Connector Action Ergebnisse.Promotion AnalyticsArbeitsbereichIMPRESSIONS42.8kCTR6.4%CONVERSIONS814LEBENDER ARBEITSPAZWERKLandVereinigtes Königreich · 31%AufschlüsselungSeite/pricing · 22%AufschlüsselungTriggerAusstiegsabsicht · 44%AufschlüsselungSteckverbinderwirkungGutschein erstellt · 97% erfolgreichErgebnis1MASSNAHMENImpressionen bis zur Konversion2SLICESeite, Land, Gerät3LEARNAnwendung der Einsicht
Promotion Analytics zeigt Headline Performance, Audience und Trigger-Ausfälle, Leads Export und Connector Action Ergebnisse.

Lesen Sie Impressionen, Klickrate und Conversions zusammen. Aufschlüsseln der Ergebnisse nach Land, Seite, Trigger und Gerät; ggf. erfasste Leads exportieren. Die Ergebnisse der Connector-Aktion zeigen, ob die versprochene Fortsetzung der Promotion tatsächlich lief. KI-Insights und Lernzusammenfassungen sollten als Hypothesen behandelt werden, um sie zu validieren, nicht automatischer Beweis.

Wachstum & SEO

Ankündigungen

Ankündigungen veröffentlichen eine Nachricht im Widget-Benachrichtigungsbereich mit optionalem Targeting, Zeitplan und Aufruf zum Handeln.

Produktbildschirm
AnkündigungenDer Ankündigungseditor enthält Inhalte, CTA, Publikum, Segment, Seitenregel, aktive Daten und visuellen Stil.AnkündigungenArbeitsbereichAKTIV3AUDIENCESegmentSYSTEMJul 22–_29LEBENDER ARBEITSPAZWERKTitelGeplante InstandhaltungFertigInhaltMarkdown-MeldungFertigCTALesen Sie das UpdateFakultativRegelPreisseiten · aktive KundenZiel1WRITETitel und Markdown2ZUGANGPublikum, Segment, Seite3SYSTEMAktives Fenster
Der Ankündigungseditor enthält Inhalte, CTA, Publikum, Segment, Seitenregel, aktive Daten und visuellen Stil.

Wählen Sie alle Besucher, angemeldete Besucher oder neue Besucher; fakultativ Einengen der Zielgruppe mit einem Kontaktsegment und einer Seitenregel. Aktiv-von/aktiv-zu-Daten festlegen und aktives Flag. Premium-Stilvoreinstellungen und Farben ändern die Darstellung, ersetzen jedoch keine klaren Inhalte.

Wachstum & SEO

Push-Kampagnen

Push-Kampagnen senden Browserbenachrichtigungen an abonnierte Besucher, nachdem sie die Website verlassen haben.

Produktbildschirm
Push-KampagnenDer Push-Komponist zeigt Abonnementreichweite, Inhalte, Medien, Aktionen, Zielregeln und Zeitplanzustand.Push-KampagnenArbeitsbereichSUBSCRIBERS8,214SEND31.6kCLICK RATE5.8%LEBENDER ARBEITSPAZWERKTitelIhr Wagen wartetFertigKörperHeute noch zurück zur kostenlosen LieferungFertigCTAOffener WarenkorbFertigZeitplanJetzt senden oder geplantEntwurf1PREPARE PUSHTitel, Körper, Symbol2ZUGANGPublikum, Segment, Seite3SENDJetzt, Zeitplan oder Entwurf
Der Push-Komponist zeigt Abonnementreichweite, Inhalte, Medien, Aktionen, Zielregeln und Zeitplanzustand.

Konfigurieren Sie die Web-Push-Tasten zuerst unter den Web- Push-Einstellungen. Eine Kampagne kann Titel, Körper, Symbol, Heldenbild, Abzeichen, CTA und bis zu zwei Aktionstasten enthalten; eine dauerhafte Benachrichtigung bleibt bestehen, bis der Besucher interagiert.

Ziel nach Zielgruppe, optionales Kontaktsegment und Seitenregel. Speichern Sie einen Entwurf, planen Sie ihn oder senden Sie ihn sofort. Verwenden Sie die Abonnement- und Klickmetriken, um die Reichweite zu beurteilen. HTTPS und ein korrekt gehosteter Servicemitarbeiter sind auf eingebetteten Websites von Drittanbietern erforderlich; siehe Web Push auf Websites von Drittanbietern.

Wachstum & SEO

Proaktive Nachrichten

Proaktive Nachrichten werden automatisch in dem Moment angezeigt, wenn das Verhalten eines Besuchers mit einer Regel übereinstimmt, bevor er fragt. Sie bauen jede als eine Regel aus drei Teilen: Was soll passieren, wann sollte es feuern und wie oft. Alles wird über das OpsIQ Widget bereits auf Ihrer Website geliefert.

Proaktiv
Proaktive NachrichtenEin proaktiver Komponist mit drei Teilen: Wählen Sie eine Aktion (Chat, Banner, Tour, Push, E-Mail), fügen Sie Bedingungen hinzu und legen Sie eine Frequenzabklingzeit fest.Proaktive NachrichtenArbeitsbereich1 · ActionChat-NachrichtBannerTourPushE-Mail2 · Bedingungenpage = /pricingZeit auf der Seite > 20sRückübernahme3 · HäufigkeitEinmal pro SitzungStatus1AKTIONChat, Banner, E-Mail, Push...2CONDITIONSSeite, Uhrzeit, Punktzahl, Rückkehr3FREQUENZCooldown pro Besucher
Jede proaktive Regel besteht aus drei Möglichkeiten: Was passiert (Chat, Banner, Tour, Push, E-Mail, Webhook), wann (Bedingungen) und wie oft (Cooldown).

Die drei Teile einer Regel

1
Was sollte passieren (Aktion)

Zeigen Sie eine Chat-Blase oder ein On-Page-Banner, starten Sie eine geführte Tour, senden Sie einen Web-Push oder eine E-Mail, weisen Sie eine Abteilung zu oder feuern Sie einen Internethook. {{visitor_name}} und {{page_title}} werden zu echten Werten.

2
Wann es feuern sollte (Bedingungen)

Schmal, wer es auslöst: page/URL, time on page, scroll depth, lead score, return vs new, idle. Ohne Bedingungen feuert die Regel für jeden Besucher. Fügen Sie mindestens eine hinzu, um sie zu zielen. Bedingungen kombinieren sich mit AND.

3
Wie oft (Häufigkeit)

Stellen Sie eine Abklingzeit ein, damit nicht dieselbe Person belästigt wird, z. B. einmal pro Sitzung oder einmal am Tag. Jede Regel hat einen Ein-/Aus-Status.

⚠️
Der Arbeitsbereich umschaltet "Zeit/Leerlaufregeln stündlich" lässt serverseitige Aktionen (E-Mail, Push, Webhook, Zuweisung) nach einem Zeitplan für bekannte Kontakte feuern, die sich derzeit nicht auf der Seite befinden, so dass Sie automatisch "leerlaufende Hot Leads" senden können. Es braucht den OpsIQ cron, der läuft. Lassen Sie ihn aus, wenn Sie nur live On-Page-Nudges wollen.
Wird es für alle feuern?+

Nur wenn Sie keine Bedingungen hinzufügen. Fügen Sie mindestens eine Bedingung hinzu (Seite, Lead-Score, Rückkehr ...), um die richtigen Besucher anzusprechen.

Wie hängen diese mit Flows und Touren zusammen?+

Sie arbeiten zusammen: Eine proaktive Regel kann eine geführte Tour starten, und ein Chatbot-Flow kann durch eine proaktiven Regel ausgelöst werden. Beginnen Sie mit einer einzigen Chat-Nachrichtenregel und schichten Sie dann die anderen auf.

Wachstum & SEO

Chatbot-Flows

Chatbot Flows Skript Verzweigung Gespräche in Ihrem Chat-Widget (Grüße, Keyword-Antworten, geführte Pfade) ohne Code. Ein Fluss ist eine Reihe von verbundenen Schritten (Knoten): Sie stellen eine Frage, der Besucher wählt eine Option aus und der Fluss sendet sie den passenden Zweig hinunter. Nur aktive Flüsse laufen auf Ihrer Website.

Wie es funktioniert
Chatbot-FlowsEin Flow-Canvas: Ein Begrüßungsknoten verzweigt sich in drei Optionstasten, die jeweils zu einem nächsten Schritt führen, nach oben suchen oder an einen Menschen übergeben.BegrüßungHi! Wie kann ich helfen?Verfolgen Sie meine BestellungAbrechnungsfrageSprechen Sie mit einem MenschenAuftrag nachschlagen→ Human AgentTrigger: Begrüßung · Schlüsselwort · Manual · After-Details · On-Chat-Ende
Chatbot-Flows

Flow vs. AI · Wann verwenden Sie welche

Verwenden Sie einen Flow

Wenn der Pfad vorhersehbar ist und Sie ihn jedes Mal identisch haben wollen: Buchungsschritte, ein Rückkehrer-Assistent, eine "Welcher Plan?"-Auswahl, das Sammeln einer E-Mail vor dem Abliefern. Flows improvisieren nie.

Verwenden Sie die AI

Wenn Fragen offen sind, "funktioniert das mit meinem Setup?". Die Customer Chat AI antwortet aus Ihrem geschulten Wissen. Ein Fluss kann an die KI (oder einen Menschen) bei jedem Schritt übergeben werden.

Trigger

Begrüßung

Läuft als Öffnungsnachricht, wenn ein Besucher den Chat zum ersten Mal öffnet.

Schlüsselwort

Läuft, wenn der Besucher ein von Ihnen aufgeführtes Wort eingibt (z. B. Rückerstattung, Preisgestaltung, Stornierung).

Nach Details / Nach Verzögerung

Beginnt, sobald kontaktdaten geteilt werden oder eine festgelegte zeit in die konversation.

Am Ende des Chats / Proaktiv

Läuft, wenn der Chat abgeschlossen ist (z. B. eine Bewertung), oder wird durch eine Proactive Message-Regel gestartet.

Bauen Sie einen in vier Schritten

1
Erstellen Sie den Flow

Klicken Sie auf New Flow, nennen Sie es, wählen Sie einen Triggertyp (und Keywords wenn Keyword), speichern. Es beginnt abgeschaltet.

2
Öffnen Sie die Leinwand

Klicken Sie auf Canvas bearbeiten. Der visuelle Builder, in dem Sie Schritte (Nachrichten, Fragen mit Schaltflächen, Zweige) hinzufügen und verbinden.

3
Hinzufügen von Branchs und einem Hand-Off

Zeichne für jede Wahl einen Zweig zum nächsten Schritt. Beende Pfade, indem du auflöst, an die KI übergibst oder zu einem Menschen übergisst.

4
Ermöglicht es

Klicken Sie auf Aktivieren. Der Flow geht sofort in Ihrem Widget live. Deaktivieren Sie jederzeit, ohne das Design zu verlieren.

Ersetzen Flows die KI?+

Nein. Sie laufen nebeneinander. Verwenden Sie Flows für vorhersagbare Pfade und die KI für offene Fragen; ein Flow kann immer an beide übergeben werden.

Wachstum & SEO

Geführte Touren

Geführte Touren sind schrittweise Durchgänge, die auf Teile Ihrer Seite mit Sprachblasen und einem Scheinwerfer zeigen, einen Besucher durch Onboarding oder eine neue Funktion führen. Sie sind vollständig thematisiert und in einem visuellen Designer mit einer Live-Vorschau eingebaut. Eine Tour läuft nur, wenn sie als aktiv markiert ist.

Wie es funktioniert
Geführte TourenEine gedimmte Seite mit einem Spotlight-Klingel um eine Add-Deal-Taste und ein Themen-Sprachblasenlesen Schritt 1 von 4 Mit einem Next Button.+ Deal hinzufügenSCHRITT 1 AUS 4Erstellen Sie Ihren ersten DealKlicken Sie hier, um einen Deal zu Ihrer Pipeline hinzuzufügen.Nächster →
Geführte Touren

Wie eine Tour gebaut wird

Stufen

Jeder Schritt zielt auf ein Element und zeigt eine Blase mit Ihrem Text. Fügen Sie so viele Stopps hinzu, wie der Walkthrough benötigt, und ordnen Sie sie an.

Presets und Theme

Beginnen Sie mit einer Voreinstellung oder gestalten Sie Ihre eigene Blase (Farben, Steigungen, Scheinwerfer) mit einer Live-Vorschau rechts.

Trigger

Optional eine proaktive Regel verknüpfen, damit die Tour automatisch startet, wenn diese Regel ausgelöst wird (z. B. der erste Dashboard-Besuch eines wiederkehrenden Besuchers).

Aktives Umschalten

Eine Tour ist nur während Aktiv ankreuzbar. Deaktivieren Sie es, ohne sie zu löschen.

Bauen Sie einen in vier Schritten

1
Neue Tour

Klicken Sie auf Neue Tour, geben Sie ihr einen Namen und verknüpfen Sie optional eine proaktive Regel, damit sie automatisch startet.

2
Addieren von Schritten

Fügen Sie jeden Stopp hinzu: Wählen Sie das Element, auf das es zeigt und schreiben Sie den Blasentext.

3
Design it jetzt

Wählen Sie eine Voreinstellung oder stylen Sie die Blase selbst. Die Live-Vorschau zeigt genau, was Besucher sehen.

4
Aktivieren

Aktiv ankreuzen und speichern. Die Tour kann nun mit einem eigenen Trigger laufen oder durch eine Proactive Message-Regel gestartet werden.

Wie beginnen Touren?+

Auf eigene Faust oder über die Aktion "Guided Tour" einer Proactive Message Rule, so dass Sie entscheiden, welche Besucher wann welche Tour sehen.

Wachstum & SEO

Konversionsziele

Conversion-Ziele verwandeln eine Aktivität, die Ihnen wichtig ist (ein eingehendes Webhook-Ereignis, eine Chatnachricht, eine Ticketauflösung), in eine aufgezeichnete Konversion mit voller Attribution. Wenn die Aktivität ausbricht, OpsIQ meldet sich eine Konvertierung gegen den Kontakt und verknüpft sie zurück zu den Kampagnen, Segmenten und Quellen, die dorthin geführt haben.

Wie es funktioniert
KonversionszieleEin Zielfluss: ein payment. succeeded Webhook-Event wird zu einer aufgezeichneten "Kauf" -Konvertierung im Wert von $49, die seiner Quelle und Kampagne zugeschrieben wird, mit voreingestellten Schnellstartchips oben.SchnellstartStripe KaufDemo gebuchtNewsletter Signingpayment.succeededInbound WebhookUmrechnung"Kauf" · $49AbgeschriebenQuelle · Kampagne
Konversionsziele

Definieren Sie ein Ziel in drei Schritten

1
Wählen Sie die Trigger-Aktivität

Klicken Sie auf Neues Konvertierungsziel. Wählen Sie den Aktivitätstyp, der als Konvertierungen zählt, oder verwenden Sie eine Schnellstart-Voreinstellung, Stripe-Kauf, Demo gebucht, Newsletter-Anmeldung oder Abonnement gestartet.

2
Benennen Sie es und legen Sie einen Wert fest

Geben Sie der Konvertierung einen Namen (Kauf, demo_booked, Anmeldung) und optional einen festen Wert sowie ein Attributionsfenster.

3
Sparen

Speichern und aktivieren. Von da an, wenn die Aktivität feuert, zeichnet OpsIQ eine Konvertierung gegen den Kontakt mit Zuordnung zu den vorherigen Berührungen auf.

Ziele sind bereits in eingehende Webhooks verdrahtet: jedes Ziel, dessen Trigger mit dem Typ eines eingehenden Ereignisses übereinstimmt, wird automatisch ausgelöst, sobald das Ereignis landet. Verwenden Sie die Inbound-Webhooks-Seite, um Stripe, Calendly oder ein System zu verbinden, das JSON POST kann.
Was kann eine Conversion sein?+

Jede aufgezeichnete Aktivität: ein eingehendes Webhook-Ereignis (payment. succeeded), eine Chat-E-Mail-Erfassung, eine Ticketauflösung, alles auf der Kontaktzeitleiste.

Analytik

Benutzerdefinierte Dashboards

Mit benutzerdefinierten Dashboards können Sie Ihre eigene Ansicht der wichtigen Metriken erstellen, anstatt sich nur auf die Standardübersicht zu verlassen. Fügen Sie die gewünschten Widgets hinzu, ziehen und ändern Sie sie in das Layout, das Ihnen gefällt, speichern Sie es und teilen Sie es mit Ihrem Team.

Benutzerdefinierte Dashboards
Benutzerdefinierte DashboardsEin Dashboard Builder mit KPI und Chart Widget Kacheln, einer gestrichelten Drop Zone und einem Add-Widget Button.Benutzerdefinierte Dashboards erstellenArbeitsbereichMein Dashboard+ Widget hinzufügenVISITOREN2,481EINNAHMEN$8.2kVERKEHRZiehen Sie ein Widget hierOBERE PAGES/pricing/docs/signup1ADD WIDGETSPick Metriken & Charts2ARRANGEZiehen und Größe ändern3SHAREMit Ihrem Team
Bauen Sie Ihr eigenes Board: Fügen Sie KPI hinzu, Diagramm- und Listenwidgets hinzu, ziehen und ändern Sie sie in das gewünschte Layout und teilen Sie es dann mit dem Team.

Bauen Sie einen in drei Schritten

1
Hinzufügen von Widgets

Klicken Sie auf Widget hinzufügen und wählen Sie die Metrik oder das Diagramm aus, das Sie verfolgen möchten. Wiederholen Sie für alles, was Sie auf dem Board haben möchten.

2
Ordnen Sie das Layout an

Ziehen Sie Widgets, um sie neu zu positionieren und ziehen Sie ihre Kanten, um die Größe zu ändern. KPIs oben, Diagramme unten. Was auch immer am besten liest.

3
Save & Share

Speichern Sie das Dashboard und teilen Sie es mit Ihrem Team, damit alle die gleichen Zahlen sehen.

Halten Sie separate Boards für getrennte Jobs (ein "tägliches Blickbrett" mit Live-Zählungen und ein "monatliches Reviewboard" mit Trendcharts), damit jeder konzentriert bleibt.
Wachstum & SEO

Sensibilisierungskampagnen

Outreach ist OpsIQ's1:1und Massen-E-Mail-Engine: Verfassen Sie eine personalisierte Nachricht oder führen Sie eine Kampagne für ein CRM-Segment aus, mit Antworterkennung, Sendezeitkontrolle, Open/Click-Tracking, einem Tracking-Pixel und Ein-Klick-Abmelden. Es ist Zustimmungs-gated und CAN-SPAM / CASL konform.

Kontaktaufnahme
SensibilisierungskampagnenDer Outreach-Bildschirm mit den Registerkarten Composer/Kampagnen/Templates/Replies und einer Kampagnentabelle, die gesendete, offene und Antwortrate anzeigt.KontaktaufnahmeArbeitsbereichKampagnenKomponistMeldebögenAntwortenBEWERBSSTELLESENDÖFFNENANTWORTJuni Newsletter1,20048%7%Folgeuntersuchung34062%14%Rückkauf82039%5%Antworterkennung automatisch stoppt Follow-ups · Ein-Klick-Abmelden bei jedem Senden11:1 & BULKVerfassen oder Kampagne2TRACKEDÖffnet, Klicks, Antworten3COMPLIANTUnsubscribe eingebaut
Die Outreach-Engine: Senden Sie 1:1 oder führen Sie Kampagnen zu einem Segment aus, verfolgen Sie das Öffnen und Antworten und bleiben Sie konform mit der eingebauten Abmelde- und Antworterkennung.

Die vier Tabs

Komponist

Schreiben Sie eine personalisierte1:1E-Mail mit {tokens} vom Kontakt und CRM.

Kampagnen

Senden Sie an ein CRM-Segment, geplant oder jetzt, mit Caps und Sendezeitsteuerung.

Meldebögen

Wiederverwendbare Vorlagen für Nachrichten zur wiederholten Übermittlung.

Antworten

Die Antworterkennung zeichnet Antworten auf und stoppt automatisch die Nachverfolgung für alle, die geantwortet haben.

Wie eine Kampagne läuft

1
Wählen Sie ein Publikum

Wählen Sie ein CRM-Segment (oder laden Sie eine Liste hoch). Unterdrückung und Zustimmung werden automatisch angewendet.

2
Zusammensetzung

Schreiben Sie die Nachricht mit Personalisierungstoken; Vorschau gegen einen echten Kontakt.

3
Zeitplan & Senden

Senden Sie jetzt oder zum besten Zeitpunkt. Ein Tracking-Pixel zeichnet auf, Klicks und Antworten werden zugeordnet.

Outreach ist Zustimmungs- und Unterdrückungs-gated, beinhaltet einen One-Click-Abmelden bei jedem Senden und folgt CAN-SPAM / CASL. Antworten automatisch weitere Follow-ups zu stoppen.
Analytik

Geplante Berichte

Geplante Berichte E-Mail eine gewählte Metrik an ausgewählte Empfänger nach einem Zeitplan (täglich, wöchentlich oder monatlich) als druckbares White-Label PDF Setzen Sie es einmal und der Bericht landet automatisch in Posteingängen durch die OpsIQ cron.

Geplante Berichte
Geplante BerichteDer Bildschirm für geplante Berichte: eine Tabelle mit Berichten mit Zeitplan, Empfängern und zuletzt gesendeter Zeit sowie einer Schaltfläche "Bericht speichern".Geplante BerichteArbeitsbereichGeplante Berichte+ SpeicherberichtBERICHTSYSTEMERNEUTENLETZTER SENDWöchentlicher VerkehrMon 9:00[email protected]Vor 2dSEO KundenberichtMonatlich[email protected]Jun 1VerkaufsübersichtTäglich[email protected]todayGeliefert als White-Label PDF über die OpsIQ cron1AUTOMATEDTäglich · wöchentlich · monatlich2WEISSLABELPDF für Kunden3ERNEUTENE-Mails im Zeitplan
Einmalige Erstellung eines Berichts (metrischer Satz, Bereich, Zeitplan, Empfänger) und OpsIQ E-Mails mit White-Label PDF automatisch auf Ihrer Kadenz.

Erstellung eines Berichts

1
Wählen Sie, was zu senden

Wählen Sie den Metrik-Satz (Verkehr, SEO, Verkauf, Support ...) und einen Datumsbereich.

2
Zeitplan und Empfänger festlegen

Täglich, wöchentlich oder monatlich zu einem Zeitpunkt, den Sie wählen, an einen oder mehrere E-Mail-Empfänger.

3
Sparen

Speichern und aktivieren. Der Bericht generiert und sendet sich selbst im Zeitplan, ohne manuellen Schritt.

💡
Geplante Berichte laufen durch den OpsIQ cron, wenn ein Bericht nicht ankommt, bestätigen Sie, dass der Cron ausgeführt wird (siehe Cron und Automatisierung).
Datenschutz

Datenschutz & Compliance

Die Privacy & Compliance-Seite ist der einzige Ort, um einem Auditor zu zeigen, dass Sie verantwortungsvoll mit personenbezogenen Daten umgehen: das Einwilligungsbuch, das Admin Access Log, Ihre Datenschutz- und Aufbewahrungsrichtlinien sowie ein druckfertiges DPA in einer Registerkarte.

Datenschutz & Compliance
Datenschutz & ComplianceDer Datenschutz- und Compliance-Bildschirm: Registerkarten für das Einverständnis-Ledger, Access-Log, Residency und DPA mit einer Zustimmungs-Linggertabelle von Zuschüssen und Widerrufen per Kanal.Datenschutz & ComplianceArbeitsbereichZustimmungs-LedgerZugangsprotokollWohnsitzDPAKONTAKTCHANALAKTIONDATUM[email protected]E-MailZugesprochenJun 12[email protected]pushwiderrufenJun 10[email protected]marketingZugesprochenJun 9Durchsuchbarer Nachweis jeder Einwilligungserklärung und jedes Widerrufs, per Kanal1CONSENT LEDGERNachweis jeder Zuwendung2ACCESS LOGWer berührte Daten3DPADruckvorlage
Ein auditorbereiter Bildschirm: ein durchsuchbares Zustimmungsbuch (Gestattung/Widerruf per Kanal), ein Zugriffsprotokoll darüber, wer Daten berührt hat, Aufenthalts-/Aufbewahrungseinstellungen und ein druckbares DPA.

Die vier Tabs

Zustimmungs-Ledger

Eine durchsuchbare Aufzeichnung jeder Zustimmung erteilen und widerrufen, per Kontakt, Kanal (E-Mail, Push, SMS, In-Widget), Aktion, Quelle und Datum. Ihr Beweis ein Kontakt vereinbart (oder zurückgezogen).

Zugangsprotokoll

Wer in Ihrem Team die Daten eines Kontakts angesehen, bearbeitet, exportiert, gelöscht oder mit der Nachricht gesendet hat Admin, Kontakt, Aktion, angegebener Grund und IP. Genau das, was eine Regulierungsbehörde verlangt.

Wohnsitz und Aufbewahrung

Deklarieren Sie, wo die Daten dieses Arbeitsbereichs gespeichert sind, legen Sie fest, wie viele Tage Aktivitätszeilen aufbewahrt werden (0 = für immer), und notieren Sie Ihren Datencontroller und DPO.

DPA Template

Ein druckbares Datenverarbeitungs-Adendum, das Ihren Controller, Adresse, DPO, Wohnsitz und Aufbewahrung ausfüllt. Drucken oder speichern Sie als PDF.

Privacy & Compliance verbindet sich mit dem Cookie-Einwilligungsstudio (das die Zustimmung sammelt) und der Exportseite (die die Datenkopie für eine DSAR erzeugt).
Connectoren

Verbinden Sie Ihre Plattformen

Steckverbinder OpsIQ zu externen Plattformen: E-Commerce-Shops, Abrechnungssysteme, Zahlungsabwickler, E-Mail-Anbieter und Kundenspezifische APIs Sobald die KI verbunden ist, kann sie Bestellungen, Kundendaten, Abonnements und mehr nachschlagen und mit Ihrer Zustimmung Maßnahmen ergreifen.

Wie es funktioniert
Steckverbinder-HubOpsIQ Kern verbunden mit WHMCS, Shopify, Stripe WooCommerce, SendGrid und Google Business Profile mit jeweils einem verbundenen Status.WHMCSShopifyStripeWooCommerceSendGridGoogle BPOpsIQKERN1PLUG IN25+ vorgefertigte Steckverbinder2AI CONTEXTEchte Plattformdaten3ACTIONSErledigt mit Ihrer Zustimmung
Connectoren

Schiffe mit OpsIQ

Diese sind in dem Moment vorhanden, in dem Sie installieren und benötigen nur ihre Anmeldeinformationen.

WHMCS

Abrechnung

Webhosting-Abrechnung: Kunden, Dienste, Tickets, Rechnungen, Domains, Server.

Shopify

E-Commerce

E-Commerce: Bestellungen, Kunden, Produkte, Inventar, Zahlungen, Webhooks.

WooCommerce

E-Commerce

WordPress E-Commerce: Bestellungen, Kunden, Produkte, Coupons, Versand.

WordPress

CMS

Inhalte und Benutzer auf einer WordPress -Website.

Quadrat

Zahlungen

Zahlungen und Verkaufsstelle: Bestellungen, Kunden, Katalog.

osCommerce

E-Commerce

Legacy E-Commerce: Bestellungen, Kunden, Produkte.

Bottle Hotel

Brücke

Eine Botble CMS Hotel-Website durch die signierteOpsIQDie Referenzimplementierung für eine Plattform ohneAPI.

Zendesk

Unterstützung

Helpdesk: Tickets, Benutzer, Organisationen, Kommentare.

Google Business Profil

Marketing

Lokales Geschäft: Bewertungen, Posts, Q&A, Insights. Verwendet OAuth.

Google Kalender

Produktivität

Kalender und Ereignisse. Verwendet OAuth.

GmailundIMAP

E-Mail

Postfächer: eingehende und ausgehende Mail, Adressbuch-Synchronisierung.

SendGrid

E-Mail

E-Mail-Zustellung: Versenden Sie E-mails und verwalten Sie Vorlagen.

Mailgun

E-Mail

E-Mail-Zustellung: Versenden Sie E-mails per Mailgun.

Slack, Telegramm, LINE, X DM

Messaging

Messaging-Kanäle für eingehende und ausgehende Gespräche.

Metakanäle

Messaging

Facebook Messenger, Instagram DM und WhatsApp.

Site Intelligence (GA4, Search Console)

Analytik

Analyse- und Suchdaten für die SEO Suite.

Website-Anreicherung und CRM import

CRM

Unternehmensanreicherung und Massenimport von Kunden.

Verfügbar vom Marktplatz

Installieren Sie eines von Connectors, Marketplace und es wird in den Live-Connector-Ordner kopiert, wonach es sich genau wie die oben genannten verhält.

Stripe

Marktplatz

Zahlungen: Gebühren, Kunden, Rechnungen, Abonnements, Auszahlungen, Streitigkeiten.

BigCommerce

Marktplatz

E-Commerce: Bestellungen, Kunden, Produkte, Kategorien, Marken.

Magento 2

Marktplatz

E-Commerce: Bestellungen, Kunden, Produkte, Kategorien, Inventar.

PrestaShop

Marktplatz

E-Commerce: Bestellungen, Kunden, Produkte, Warenkorbregeln, Spediteure.

OpenCart

Marktplatz

E-Commerce: Bestellungen, Kunden, Produkte, Kategorien.

Amazon SES, Postmark, Resend

Marktplatz

Transaktionale E-Mail-Zustellung.

Jira, Linear

Marktplatz

Issue und Projekt-Tracking.

Zoom, Microsoft Kalender, Outlook Mail

Marktplatz

Meetings, Kalender und Mail.

DocuSign, Apollo, SerpApi, Google Analytics

Marktplatz

Signatur-, Prospektions-, Such- und Analysedaten.

Webflow, Wix, Squarespace

Marktplatz

Webseitenplattformen.

💡
Die Liste der Konnektoren bewegt sich, wenn Pakete veröffentlicht werden. Die maßgebliche Liste für IHRE Installation ist die Seite der Konnektoren: Was dort aufgeführt ist, ist das, was die Laufzeit entdeckt hat, und die Registerkarte Marktplatz zeigt an, was Sie hinzufügen können.

Installieren eines Steckers

1
Gehe zu Connectors

Navigieren Sie zu Connectors in der Admin-Seitenleiste.

2
Finden Sie den Connector

Durchsuchen Sie die Liste oder Suche. Verbinder werden nach Kategorie gruppiert.

3
Ermöglicht es

Klicken Sie auf den Connector und schalten Sie Aktivieren.

4
Anzugebende Berechtigungen

Füllen Sie die erforderlichen Felder aus: API Schlüssel, URL, Token usw. Jeder Stecker hat spezifische Anforderungen in seinem Einstellungsfeld dokumentiert.

5
Prüfanschluss

Klicken Sie auf "Verbindung testen". Ein grünes Ergebnis bedeutet, dass der Stecker die externe Plattform erreichen kann.

6
Merkmale konfigurieren

Wählen Sie die Funktionen, die aktiviert werden sollen: Wissenssynchronisation, Webhook-Synchronisierung, KI-Aktionen. Nicht alle Konnektoren unterstützen alle Funktionen.

Welche Connectors bieten Ihnen

KI-Kontext

Die KI kann Kundendaten, Bestellungen, Abonnements und mehr über den Connector nachschlagen. Wenn ein Kunde chattet, hat die AI echte Plattformdaten als Referenz.

AI-Kontext (Connector Autoren)

Der ContextProvider Ihres Connectors füttert die Ticket-AI mit einer Read-Only-Kontozusammenfassung des Ticketbesitzers. customer_id wenn bekannt; ansonsten auf Ticket Auto-Antworten, wo die ctx Flag customer_trust_email Ist wahr, schauen Sie sich das Konto nach oben customer_email (der verifizierte Ticket-Absender) Remote-Plattformen zeigen eine /context/customer-by-email Das macht das AI-Zitat zu einem echten Saldo/Rechnung, anstatt "Bitte loggen Sie sich ein."customer_sections, customer_allow_credit) und bleiben Sie streng lese-only, nie Geheimnisse emittieren.

Kundenverzeichnis (Connector-Autoren)

Der IdentityProvider Ihres Connectors füttert drei universelle Ticket-Lookups: lookupCustomerById() (Kundenkarte), lookupCustomerServices() (Produkt-/Dienstleistungstabelle) und listCustomers($query,$limit): die "Search customer or type email"-Auswahl auf dem nativen Compose-New-Ticket-Formular. {id, external_id, name, email, company, phone, platform, platform_label}. Fernsteuerung: Wenn Ihre Kunden in einer anderen Datenbank oder einem anderen Dienst leben, holen Sie sie über die Plattform ab API Lesen Sie in diesen Methoden niemals die Tabellen des anderen Systems direkt (in der OpsIQ DB sie sind leere Platzhalter, weshalb ein lokaler Lesewert einen leeren Picker zurückgibt.API URL Behalten Sie einen lokalen Lesewert nur als Fallback mit gleicher DB.

E-Mail-Piped Tickets, Erkennung & Routing (Connector Autoren)

Wenn eingehende E-Mails zu einem nativen Ticket werden, erkennt OpsIQ den Absender durch Anrufen lookupCustomerById(0, ['email'=>$sender]) über jeden Connector; das erste Match "besitzt" den Kunden und seine platform Der Slug wird auf den ticket.created Ereignis als _pipe_owner_platform (leer = Gast).WHMCS-Kunden-E-Mail öffnet ein Ticket in WHMCS (WHMCS Nummerierung, gespiegelt als Eins), während ein unbekannter Absender ein einheimischer Gast bleibt. Wenn Ihr Connector native Tickets auf seiner eigenen Plattform widerspiegelt, Ihre ticket.created Der Handler muss hierüber Gate eingeben: if (array_key_exists('_pipe_owner_platform',$payload) && $payload['_pipe_owner_platform'] !== '<your-slug>') return;Der Schlüssel fehlt auf Nicht-Pipe-Tickets (Chat/Manual/AI), also diese spiegeln sich wie zuvor. Die Kontrolle pro Abteilung befindet sich unter Team & Departments → Offene Tickets per E-Mail (nur für alle / Kunden / Aus).

Aktionen

Die KI kann Aktionen über den Connector durchführen: Tickets erstellen, Bestellungen aktualisieren, Abonnements stornieren, alles mit Ihrer Zustimmung über die Vertrauensebene.

Wissen

Connectors tragen plattformspezifische Wissensartikel zur KI bei. Shopify Connector fügt E-Commerce-Fehlersuche hinzu; WHMCS Connector fügt Hosting Wissen hinzu.

Wissensdatenbankimport (Connector-Autoren)

Wenn Ihre Plattform eine Wissensdatenbank hostet, erklären Sie einen kb_capabilities Block in settings.json (Typ) kb_source) und Ihr Connector erscheint im Help Center Editor Importieren Sie KB → Importieren aus einer verbundenen App Dropdown, wenn es im Arbeitsbereich aktiviert und konfiguriert ist. Es ist deklarativ, keine Methode zu implementieren: Name a built in adapter (zendesk für das Hilfecenter mit exaktem Baum API oder crawl für jede KB-Site und eine base_template wie z. B. https://{subdomain}.zendesk.com, die OpsIQ aus den gespeicherten Einstellungen Ihres Connectors füllt. Anmeldeinformationen verlassen niemals den Server; der Browser sendet nur den Connector-Slug. opsiq_kb_<platform>_manifest() Adaptieren und mit Namen referenzieren. connectors/PLATFORM_CONNECTORS.md §5.

Webhooks

Einige Connectoren registrieren Webhooks mit der externen Plattform für Echtzeit-Ereignismeldungen (Neubestellungen, Ticketaktualisierungen usw.).

Verkaufsverfolgung

E-Commerce-Connectors füttern Umsatzdaten in das Sales Dashboard für die Attribution und Analyse.

💡
Steckverbinder sind Workspace-scoped. Jeder Arbeitsbereich kann unterschiedliche Steckverbindungen mit unterschiedlichen Anmeldeinformationen haben.WHMCS Der Workspace nutzt die WHMCS Steckverbinder;Shopify Der Workspace nutzt die Shopify Stecker.
Kann ich mehrere Steckverbinder gleichzeitig verwenden?+

Ja. Sie können Shopify für Bestellungen und Stripe für Zahlungen im gleichen Arbeitsbereich haben. Die KI führt Daten von allen aktivierten Konnektoren zusammen.

Was ist, wenn meine Plattform nicht aufgeführt ist?+

Verwenden Sie den Connector Builder, um einen benutzerdefinierten Steckverbinder für jede Plattform mit einem REST API zu erstellen oder überprüfen Sie den Marketplace auf Community-gebaute Steckveranker.

Arbeiten Konnektoren mit selbst gehostetem OpsIQ?+

Ja. Connectors funktionieren identisch in Cloud- und Self-Hosted Editionen.

Connectoren

Vertrag über Verkaufs- und Abrechnungsstecker

Jeder Commerce-Connector verwendet den gleichen plattformneutralen Eventvertrag. WHMCS ist die Referenzimplementierung, aber SaaS Bridge, Stores, Zahlungsanbieter, Marktplatz-Connectors und Connector Builder-Pakete müssen dieselben Regeln befolgen.

Was jeder Commerce Connector veröffentlichen muss

Ein autoritatives Ledger

Publish realised economic events to opsiq_sales_events through CommerceEventRegistry::normalize(). Do not build a connector-specific Sales table or make core analytics query a remote platform directly.

Stable Source Identity

Plattform ist der Connector Registry Slug, wie z.B. whmcs, shopify oder opsiq_saas. traffic_source enthält die verifizierte Acquisition-Attribution, wenn sie geliefert wird; andernfalls verwenden Sie denselben Slug wie das Fallback. OpsIQ löst den freundlichen Connectornamen in der Benutzeroberfläche auf.

Idempotenz

map mindestens eine immutable order_ref, bill_rep oder subscription_reb so webhook retries und backfills aktualisieren das gleiche Ereignis statt doppelte Verkäufe zu erstellen. service_reg identifiziert das betroffene Produkt oder die Serviceinstanz, wenn es existiert.

Quelle Zeitstempel

occurred_at ist die von der Quellplattform gemeldete Zahlungs- oder Wirtschaftsereigniszeit. Ersetzen Sie niemals historische Zahlungsdaten durch die Importzeit.

Geld und FX

Senden Sie den Quellbetrag und eine gültige ISO-Währung mit drei Buchstaben. Wenn die Steckereinstellung die OpsIQ FX-Konvertierung aktiviert, wird das Reporting in die Berichtswährung des Arbeitsbereichs umgewandelt; andernfalls werden Berichte die Währung des Speichers oder der Abrechnungsplattform beibehalten. Der Steckercode darf keine Meldewährung oder keinen Wechselkurs fest codieren.

Evidenzbasierter Lebenszyklus

Neu, Erneuerung, Upgrade, Rückerstattung, Gutschrift oder unbekannt verwenden; vom Rechnungsgrund, Abonnement- oder Dienstleistungsverhältnis, Art der Posten oder einem anderen maßgeblichen Quellenfeld klassifizieren; ein wiederholter Kauf durch denselben Kunden ist nicht automatisch eine Verlängerung.

Verkaufsgrenze

Nur positiv bezahlte Neu-, Erneuerungs-, Upgrade- oder rechtmäßig unbekannte Commerce-Belege gehören zu Sales & Conversions. Rückerstattungen werden durch Erstattungs- und Nettoeinnahmenanalysen gemeldet. Kontoguthaben, Wallet-Aufladungen, Token-Auffüllungen und Add Funds bleiben Abrechnungsbuchereignisse und zählen niemals als Verkäufe, Konvertierungen, Bestellvolumen oder Verkaufserlöse.

CRM bleibt getrennt

CRM-Deals stellen Pipeline- und Deal-Aktivitäten dar. Sie sind keine Commerce-Plattform-Verkäufe, es sei denn, eine angeschlossene Abrechnungs- oder Store-Plattform sendet die realisierte bezahlte Bestellung oder Rechnung über diesen Vertrag aus.

Abgeleitete Vorsprünge

Die Konnektoren dürfen eine Projektion nicht als finanzielle Quelle der Wahrheit behandeln. Vertragsrevisionen können abgeleitete Zeilen neu bewerten, ohne die zugrunde liegende Abrechnungshistorie zu löschen.

Ferne Plattformgrenze

Ein Remote-Connector liest seine Plattform über die konfigurierte authentifizierte API. Sie darf niemals von Datenbanktabellen des gleichen Servers abhängen. Der genaue authemmte Domain-Site_Key wird von ConnectorRegistry bereitgestellt und muss auf jedes Ledgerschreiben und Backfill angewendet werden. Arbeitsbereich oder Gruppenumfang ist nur eine Lesezeitaggregation; er darf nie den Speicherstatus erweitern.

Canonical Paid-Event Beispiel

Normalisiertes Handelsereignis
{
  "event_id": "acme_store:invoice:INV-1042",
  "event_name": "invoice.paid",
  "platform": "acme_store",
  "order_ref": "ORDER-884",
  "invoice_ref": "INV-1042",
  "subscription_ref": "SUB-28",
  "service_ref": "SERVICE-91",
  "status": "paid",
  "lifecycle_type": "renewal",
  "amount": 129.00,
  "currency": "USD",
  "traffic_source": "acme_store",
  "occurred_at": "2026-07-23 08:30:27"
}

Connector Builder Mapping

Wenn der Verkauf und die Abrechnung im Connector Builder aktiviert sind, Kartenbetrag, Währung, Quellstatus und Quelldatum sowie mindestens eine Bestellung, Rechnung oder Bezugsnummer. Map lifecycle_type, wenn API autoritative Lebenszyklusnachweise ausstellt. Der generierte SalesIngest führt jede Zeile durch denselben CommerceEventRegistry-Normalizer, der von integrierten Konnektoren und Marktplatz verwendet wird.

⚠️
Credits und Add Funds werden absichtlich für die Abrechnungshistorie, den Kundenbilanzkontext und die Ledgeranalyse aufbewahrt. Der Ausschluss von Sales löscht sie nicht; es verhindert nur, dass sie die Commerce-Performance aufblähen.

lifecycle_type entscheidet, was ein CRM-Deal wird

lifecycle_type OpsIQ liest es, um zu entscheiden, ob ein Verkauf in die CRM-Pipeline gelangt, so dass jeder Verkaufsstecker eine Pipelineentscheidung trifft, ob er beabsichtigt oder nicht.

neu

Eröffnet einen geschlossenen Deal (Neugeschäft).

Erneuerung, Aufrüstung

Aufgeführt als wiederkehrende Einnahmen. Kein Neugeschäftsabschluss — Erneuerungen konvertieren auf einer anderen Wahrscheinlichkeitskurve und ihre Vermischung korrumpiert beide Prognosen.

Erstattung, Kredit

Niemals einen Deal eröffnet, in irgendeinem Modus. Geld zurück zu einem Kunden ist kein Gewinn.

weggelassen / unbekannt

Nur Einnahmen: Der Verkauf wird erfasst, erreicht aber nie die Pipeline.

Ein Verkauf, eine Hauptbuchreihe: Identität ist der VERKAUF, nicht das Ereignis

Nicht übereinstimmen auf event_id und fügen Sie sich ein. event_id is platform:eventName:externalId, die antwortet "haben wir diese Lieferung bereits verarbeitet" und nicht antworten kann "haben Wir diesen Verkauf bereits aufgezeichnet". Eine Plattform, die eine Zahlung zweimal ankündigt - als invoice.paid und wieder als payment.completed - Minze zwei IDs und landet das gleiche Geld zweimal, mit nichts zu kollidieren und nichts zu warnen.

💡
Auf der Referenzinstallation gefunden: sechs Rechnungen mit je drei Hauptbuchzeilen, aus drei Codepfaden unter Verwendung von drei verschiedenen event_id-Schemata. Sie alle trugen 0.00, so dass keine Gesamtsumme falsch aussah und jeder spätere Prozess zur Wiederherstellung echter Beträge eine Zahlung dreimal gezählt hätte.

Call the shared write statt. Core berechnet die Geschäftsidentität des Verkaufs ()sale_fingerprint), passt zu einer bestehenden Zeile darauf, bewahrt das Original event_id bei Updates und Filtern in echte Spalten:

Die einzige unterstützte Art, das Verkaufsbuch zu schreiben
\OpsIQ\Commerce\CommerceEventContract::upsertSaleRow('opsiq_sales_events', $row);
Der gleiche Verkauf, viele Veranstaltungen

bill. paid, payment. completed und sale. completeed teilen sich für eine Rechnung einen Fingerabdruck und aktualisieren eine Zeile.

Rückerstattungen bleiben getrennt

Geld, das ausgeht, ist eine andere Tatsache als Geld, dass hereinkommt. Eine Rückerstattung einer Rechnung behält ihre eigene Identität bei, so dass sie die rückgängig gemachte Zahlung niemals überschreiben kann.

Kein Bezug, kein Fingerabdruck

Eine Zeile, die keine Bestellung, Rechnung, Abonnement oder Service-Referenz enthält, erhält überhaupt keinen Fingerabdruck, so dass zwei nicht verwandte Zeilen niemals kollidieren, nur weil beide eine ID fehlen.

Bezugspriorität

bill_ref, dann order_rep, dann subscription_re f, dann service_reF — zuerst am stärksten, so dass ein Verkauf eine stabile Identität behält.

Das Ledger ist nur anhängen: Niemals einen Verkauf umschreiben

Eine Rückerstattung, eine Stornierung oder Korrektur ist ein neue datierte Eintragung. Niemals die Zeile, die sie korrigiert, mutieren. Eine Zahlung in eine Rückerstattung umzuschreiben sieht ordentlich aus und bricht drei Dinge auf einmal:

Sie zerstört Bruttoeinnahmen

Bruttoverkaufs- und Rückerstattungsrate hören auf, trennbar zu sein - und die Erstattungsrate ist die Metrik, über die die Umkehrung informiert wird.

Es bucht die Umkehrung in der falschen Zeit

Eine Rückerstattung eines Verkaufs im Januar muss den März reduzieren.

Es bricht den Audit-Trail

Ein Hauptbucheintrag zeichnet auf, was zu einem bestimmten Zeitpunkt passiert ist. Korrekturen sind Gegensätze, so funktioniert die doppelte Buchhaltung seit fünf Jahrhunderten.

Ein Connector meldet also die Umkehrung, anstatt sie anzuwenden: return refunded_at und refund_amount Der Anrufer muss die Rückerstattung als eigene Zeile schreiben, da die Erstattung erfolgte. Die beiden können niemals kollidieren, weil der Verkaufsfingerabdruck eine Rückkehr von einem Verkauf trennt.

💡
Das gleiche Prinzip gilt für Beträge. Nicht "reparieren" einen gespeicherten Betrag auf den aktuellen Wert der Plattform: eine Rechnung aus Kontoguthaben rechtmäßig aufgezeichnet 0 zur Zahlungszeit, und das Geld wurde bereits erfasst, wenn der Kunde aufgefüllt.

Der Einstufungsvertrag

OpsIQ entscheidet über den Lebenszyklus once, in \OpsIQ\Commerce\SaleLifecycleClassifierEin Steckverbinder erklärt nur, welche eigene Plattform Worte bedeuten was, durch Umsetzung \OpsIQ\Connectors\SalesLifecycleConnectorInterface::salesLifecycleVocabulary(), und ruft dann den gemeinsamen Klassifikator auf.

Vokabular erklären, Entscheidung delegieren
public static function salesLifecycleVocabulary(): array
{
    return [
        'credit'             => ['addfunds'],                  // adds balance, sells nothing
        'upgrade'            => ['upgrade'],                   // resizes an existing commitment
        'recurring'          => ['hosting', 'domainrenew'],    // continues something owned
        'acquisition'        => ['domainregister'],            // obtains something new
        'recurring_prefixes' => ['domainaddon'],               // families that grow over releases
    ];
}

$lifecycle = \OpsIQ\Commerce\SaleLifecycleClassifier::classify([
    'explicit'    => $platformSaidSo,     // wins outright when present
    'line_types'  => $types,              // your platform's own line/item types
    'vocabulary'  => self::salesLifecycleVocabulary(),
    'is_order'    => $cameFromANewOrder,
    'is_refunded' => $moneyWentBack,
]);
💡
Präzedenz wird festgelegt und geteilt: explizit, dann erstattet / storniert, dann Kredit, dann Upgrade, dann is_order, dann wiederkehrende, dann Akquisition, dann unbekannt. Upgrade sitzt über der Auftragsüberprüfung, weil Plattformen auch einen Auftrag für Upgrades erheben; wiederkehrender Sitz darunter, weil die erste Rechnung eines neuen Abonnements eine wiederkehrende Zeilenart trägt. Bei einem mehrdeutigen Nicht-Auftragsverkauf neigt sich der Klassifikator dem Umsatz zu und weg von der Pipeline.

Erklären Sie das gesamte Vokabular der Plattform

Dies ist der Fehler, der am meisten kostet und am wenigsten falsch aussieht. Der WHMCS -Anschluss passte ['hosting','addon','domain'] — eine Liste, die als vollständig gelesen wird. WHMCS sendet keine nackte Domain Typ für echte Domain-Linien; es sendet DomainRegister, DomainRenew, DomainTransfer, PromoHosting, PromoDomain, DomainAddon* und Upgrade. Alle sind über die Liste hinausgegangen, unknown: 1,288 Rechnungen, drei Jahre, kein Fehler und keine Log-Linie.

Jeder neue Kunde importiert seine Historie über eine Stecker-Backfill, also betrifft ein Klassifikationsfehler nicht einen Arbeitsbereich – er betrifft jeden Arbeitsbereich, der jemals über diesen Connector an Bord ist, sobald sie zum ersten Mal ihre Pipeline betrachten. Nehmen Sie das Vokabular aus der Dokumentation der Plattform oder einer Zählung von Live-Daten und passen Sie wachsende Familien an prefix Ein Geschwisterkind, das noch niemand gesehen hat, klassifiziert sich mit seinen Verwandten, anstatt zu verschwinden.

💡
Eine praktische Überprüfung: Zählen Sie, wie viele Ihrer eigenen Zeilen auf unbekannt landen. Ein gesunder Verkaufsstecker klassifiziert fast alles. Ein stetiger Strom von Unbekannten sind fast nie Daten, die Sie nicht haben — es ist ein Vokabular, das der Stecker nie gelesen hat.

Reparatur importierter Geschichte

Jeder ausgelieferte OpsIQ Verkaufsstecker implementiert dies — WHMCS, Shopify, WooCommerce, osCommerce, SaaS Bridge, Stripe, BigCommerce and Magento 2. Treat it as expected, not optional: a customer imports their old records on day one, so a classification fix that cannot reach that history only helps people who signed up afterwards. Implement \OpsIQ\Connectors\SalesLifecycleRepairInterface::reclassifySale() Verwenden Sie, was per-Record Fetch Ihr Connector bereits hat. tools/crm_backfill_sales_lifecycle.php repariert dann die importierte Historie Ihres Connectors ohne Pro-Connector-Code: Dry Run standardmäßig, sichert sich selbst und überprüft die Zeilenanzahl vor dem Schreiben, reversibel durch ein Rückgängiges Ledger, und es schreibt niemals eine fehlgeschlagene Lektüre als Antwort.

💡
Wenn Ihr Connector vergangene Datensätze nicht erneut lesen kann — ein Webhook-Connector kann dies nicht tun — stuben Sie die Methode nicht. Ein Stub, der unbekannt zurückgibt, ist schlimmer als keine Implementierung: eine Backfill würde gute Zeilen als unklassifiziert umschreiben und Erfolg melden. Implementieren Sie nur das Vokabularinterface.
💡
Detaillierte Paketreferenzen bleiben in Connectors/CONNECTOR_EVENTS. md und Connectors / PLATTFORM_CONNEKTORS. Md in selbst gehosteten Quellverteilungen verfügbar.
Connectoren

Reiseveranstaltungsvertrag

Journey Intelligence akzeptiert einen plattformneutralen Ereignisumschlag vom Browser-Widget, integrierten Konnektoren, SaaS Bridge, Marktplatzpaketen und Connector Builder-Ausgabe. Plattformspezifische Namen werden am Rand übersetzt; Trichter, Attribution und Site Intelligence Code verbrauchen nur kanonische Ereignisse.

Isolation und Vertrauensgrenze

Exakte Peer-Domain-Schlüssel

Jedes Ereignis ist an den authentifizierten Domain-Side_key gebunden. Ein Connector muss diesen Schlüssel von ConnectorRegistry oder seinem authmentifizierten Endpunkt übernehmen, niemals von einem nicht vertrauenswürdigen Request-Body. Domänen führen separate Aufzeichnungen; eine Domänengruppe ist nur ein Lesezeitaggregat.

Idempotente Identität

event_id ist für Connectors erforderlich und muss deterministisch für dasselbe native Ereignis sein. Retries, Webhooks und Backfills aktualisieren ein Ereignis anstatt eine Reise oder einen Verkauf zu duplizieren.

Native plus kanonische Bezeichnung

Bewahren Sie source_event_name für Beweise und Fehlersuche auf, dann ordnen Sie es zu event_name_canonical. Core Analytics darf sich niemals auf einen Connector-Slug verzweigen.

Server-Beweis gewinnt

Browserbeobachtung kann eine Reise starten oder ableiten. Authentifizierte Connector-Ereignisse bestätigen die Anmeldung, das Anmelden, die Zahlung, den Kauf, die Erneuerung, die Rückerstattung und andere Terminalergebnisse. Ein gültiger ortsgebundener Korrelationstoken ist der stärkste Beitritt; ein ungültiges Token wird abgelehnt und seine eingebetteten IDs sind nicht vertrauenswürdig.

Datenschutz

Nur Kennungen und Felder senden, die für die angegebene Reise erforderlich sind; Einwilligungs-, Maskierungs- und Aufbewahrungseinstellungen; keine Anmeldeinformationen, Kartendaten, Authentifizierungsgeheimnisse oder private Nachrichtenstellen in den Objekten einfügen.

Kanonischer Umschlag

Flugveranstaltungs-Umschlag
{
  "contract_version": 1,
  "event_id": "myshop:order:884:paid",
  "source": "myshop",
  "source_event_name": "order.paid",
  "event_name_canonical": "commerce.purchase.completed",
  "site_key": "exact_domain_site_key",
  "occurred_at": "2026-07-23T08:30:27Z",
  "visitor_id": "optional-browser-visitor",
  "session_id": "optional-browser-session",
  "journey_id": "optional-journey",
  "attempt_id": "optional-attempt",
  "correlation_token": "optional-signed-token",
  "customer_ref": "C-42",
  "user_email": "[email protected]",
  "object_type": "order",
  "object_ref": "884",
  "order_ref": "884",
  "outcome": "succeeded",
  "evidence_level": "server_confirmed",
  "confidence": 1,
  "properties": {"amount": 129, "currency": "USD"}
}

Kanonische Taxonomie

Unterstützte Familien umfassen die Engagement-Seite/CTA-Events, Kontoanmeldung, Anmeldung, MFA und Passwort-Reset, Lead- und Formularphasen, Produkt-, Warenkorb-, Checkout-, Zahlungs-, Kauf-, Abonnement-, Verlängerungs- und Rückerstattungs-Impressionen und -Konversionen, Hilfezentren-, Chat- und Ticket-Event, Sicherheitsereignisse sowie namespaced custom events. Typische Terminalnamen sind: account.signup.succeeded, account.login.succeeded, lead.form.succeeded, commerce.payment.succeeded, commerce.purchase.completed, commerce.subscription.renewed und commerce.refund.completed.

Browser-Inferenz, Bestätigung und Abbruch

Das Widget kann ohne einen Konnektor arbeiten, indem es die Seitenstruktur, Formularaktionen, DOM-Ergebnisse und das Visitor Journey Protokoll beobachtet. Dieser Beweis bleibt explizit bewertet als beobachtet oder abgeleitet. Ein Konnektiv fügt eine autoritative Serverbestätigung hinzu und kann sie mit dem gleichen Browserversuch korrelieren. Der Verzicht wird zuerst als Kandidat gespeichert; er wird erst nach dem Inaktivitätsfenster in der Benutzeroberfläche aufgegeben und nur dann, wenn keine spätere Wiederherstellung oder kein Erfolg vorliegt.

Zuordnung und Einnahmen

Die Zuordnung bevorzugt ein gültiges signiertes Korrelations-Token, dann eine exakte Reise-, Versuchs-, Sitzungs- oder Commerce-Referenz, dann das akzeptierte Identitätsgraph und schließlich einen begrenzten Verhaltensabgleich. Unübertroffene Verkäufe bleiben nicht zugeordnet. Multi-Touch-Ledgergewichte müssen insgesamt 1betragen. Zugeschriebene Einnahmen von Site Intelligence lesen dieses Ledger; Credits, Wallet-Aufladungen, Token-Aufstockungen und Add Funds sind niemals Kaufkonversionen. Das Verhalten des Connectors FX bleibt durch diese Konnektoreinstellung kontrolliert.

⚠️
Zuordnungsmodell, Rückblickfenster, Direktverkehrsabwicklung, Mindestsicherheit, Zeitüberschreitung und Trichterdefinitionen sind UI-Richtlinien.

Connector Manifest und Builder

Steckverbinder-Fahrterklärung
{
  "capabilities": ["sales", "journey_events"],
  "journey_capabilities": {
    "journey_events": true,
    "payments": true,
    "subscriptions": false,
    "correlation_token": false,
    "backfill": true
  },
  "journey_event_mappings": [{
    "source_event_name": "order.paid",
    "event_name_canonical": "commerce.purchase.completed",
    "field_map": {
      "order_ref": "order.id",
      "customer_ref": "order.customer_id",
      "amount": "order.total",
      "currency": "order.currency",
      "occurred_at": "order.paid_at"
    }
  }]
}

Connector Builder validiert die Zuordnung und generiert den gleichen plattformneutralen Adapter, der von First-Party-Paketen verwendet wird. Journey Ingestion akzeptiert ein Ereignis oder einen begrenzten Batch von 100 über den erzeugten authentifizierten Integrationsendpunkt.

💡
Die Commerce-to-Journey Bridge veröffentlicht serverbestätigte Ergebnisse und versöhnt die Zuordnung nach dem bestehenden idempotenten Ledger Upsert, so dass eine Zahlung niemals zu zwei Verkäufen wird.
Connectoren

Wie KI-Aktionen funktionieren

Jeder Connector deklariert eine Reihe von Aktionen: Dinge, die KI über die externe Plattform tun kann. Aktionen sind die Brücke zwischen "die KI sagt" und "die AI tut".

KI-Maßnahmen
Wie KI-Aktionen funktionierenEine Kundenanfrage, die einer Aktionskarte vom Löschtyp zugeordnet ist, dann eine Checkliste: Berechtigung geprüft, Sie bestätigen, API aufgerufen.Wie KI-Aktionen funktionierenArbeitsbereich"Kündigen Sie mein Abonnement"KundeAcancel_subscriptiondeleteBestätigung erforderlichparams: subscription_id (aus dem Kontext)AKTIONSARTENreadwritedeleteZulassung und Rolle geprüftSie bestätigen die AktionAPI aufgerufen · Ergebnis gemeldet1DECLAREDJeder Connector listet Aktionen auf2GATEDErlaubnis + Bestätigung3THEN RUNAPI call, Ergebnis zurück
Eine Anforderung wird zu einer deklarierten Aktion (getippt read/write/delete), die durch Berechtigungen überprüft, bestätigt, dann ausgeführt und gemeldet wird.

Der Action Lifecycle

1
Der Kunde fragt nach etwas

"Abonnement kündigen". Die KI erkennt, dass dies die Aktion "cancel_subscription" erfordert.

2
KI prüft Berechtigungen

Ist diese Aktion erlaubt? Ist sie aktiviert? Hat der aktuelle Benutzer die richtige Rolle?

3
AI sammelt Parameter

Die Aktion benötigt eine Abonnement-ID. Die KI schaut sie aus dem Kundenkontext nach oder fragt den Kunden.

4
Bestätigung

Bei destruktiven oder hochwirksamen Aktionen bittet die KI um Bestätigung, bevor sie ausgeführt wird.

5
Ausführung

Die Aktion ruft die externe Plattform API auf.

6
Ergebnis

Die KI meldet das Ergebnis dem Kunden.

Aktionsarten

Leseaktionen

Suchen Sie nach Daten, ohne etwas zu ändern. Beispiele: list_orders, get_customer. Safe, keine Bestätigung erforderlich.

Schreibe Aktionen

Daten erstellen oder ändern, Beispiele: create_ticket, update_order.

Löschung von Aktionen

Daten entfernen. Beispiele: cancel_subscription. Immer eine Bestätigung benötigen.

HTTP-Aktionen

Deklariert in Aktionen.json, generische API Aufrufe deklarativ definiert.

Leistungskennzeichen

Optionales Feld "Fähigkeit" pro Aktion in Aktionen.json, ein Connector-neutrales Klassen-Tag (z. B. "Tickets" für ein Ticket read/lookup, "ticket_create" zum Öffnen eines Tickets).OpsIQ Gates die gesamte Klasse einheitlich über jeden Connector: Ticket-Lesungen fallen aus der KI, wenn der Betreiber AI Ticket Awareness deaktiviert und Ticketerstellung ist reserviert für OpsIQ Der eigene Composer (also kann ein Connector-Erstellungswerkzeug ihn nicht duplizieren). Deklarieren Sie es und Ihr Connector passt sich an.OpsIQ Der Connector Builder stellt ihn als Kapazitäts-Dropdown pro Aktion aus.

Code-Aktionen

Implementiert in PHP in der Connector-Klasse. Volle Kontrolle über Logik.

Beispiel für die Maßnahme
{
  "lookup_order": {
    "label": "Look up an order",
    "description": "Find an order by ID or email",
    "method": "GET",
    "endpoint": "/admin/api/2024-01/orders.json",
    "params": {
      "order_id": { "type": "string", "label": "Order ID" },
      "email":    { "type": "email",  "label": "Customer email" }
    }
  }
}
Connectoren

Bauen Sie einen Connector

Mit dem Connector Builder können Sie einen kompletten Steckverbinder für jede Plattform mit einem REST API erstellen.

Bauen Sie einen Connector
Connector-BuilderEin No-Code-Connectorformular: Name, Authentyp, Basis URL, ein Action Mapping, ein Passing Test und eine Publish-Taste.Connector-BuilderArbeitsbereichConnector-BuilderNameMeine PlattformAuthentienOAuth 2.0(PKCE)Basis URLhttps://api.example.com/v2AktionGET/customers → list_customsTest bestandenGehäusesteckverbinder1NO-CODEName, Auth, Basis URL2ANY APISchlüssel, Bearer, Basic, HMAC, OAuth3PUBLISHInto /connectors/<slug>/
Richten Sie den Builder an einem beliebigen REST API Set auth, Basis URL und Aktionen, testen Sie es und veröffentlichen Sie einen funktionierenden Connector. Kein Code erforderlich.

Vollständiger Anbieter API Abdeckung

Jeder erzeugte API Connector kann separaten Native aussetzen API Read und Native API Curated actions stay preferred; native actions cover provider endpoints later added. Die Laufzeit unterstützt REST, GraphQL, JSON Formblatt, XML, rohe und mehrteilige Körper, begrenzte Paginierung,API-Versions-Header und Idempotenz, während Anmeldeinformationen in den Workspace-Connectoreinstellungen beibehalten werden.

⚠️
Marketplace-Pakete stammen aus /marketplace_connectors sowie gebündelt /connectors. Erhöhen Sie die Paketversion, regenerieren Sie den Vertrag und die Dokumentation, führen Sie Konformitätstests durch, unterschreiben und veröffentlichen Sie dann die neue Marketplace-Version.

Connector Builder Wizard

Der Zauberer hat sechs Stufen, die oben als Registerkarten dargestellt sind. Save Draft In der Fußzeile hält Ihre Arbeit an jedem Punkt.

1
Identität und Profil

Name, slug, description and icon, then choose a contract profile: Standard API, Commerce, Helpdesk, Mailbox, Site Intelligence, SaaS Bridge, Local PHP Platform, or Platform with no API when the platform serves nothing callable and OpsIQ has to install a bridge. The profile selects a complete capability starting point; you can still adjust individual capabilities.

2
Authentien

Wählen Sie das Authentifizierungsmuster aus, das die Plattform verwendet und füllen Sie ihre Felder aus. Geben Sie auch hier echte Testanmeldeinformationen ein: Sie werden für den Verbindungstest im nächsten Schritt verwendet und nach der Veröffentlichung nicht gespeichert.

3
Test

Geben Sie die API Basis URL und einen Verifizierungsendpunkt, dann führen Sie einen Live-Verbindungstest mit den Anmeldeinformationen aus Schritt durch 2Tun Sie dies, bevor Sie irgendwelche Aktionen definieren, wenn das Auth oder die Basis URL ist falsch, jede Aktion, die Sie danach schreiben, würde aus dem gleichen Grund fehlschlagen und Sie würden das Falsche debuggen.

4
Aktionen

Definieren Sie jede Operation: Name, HTTP-Methode, Endpunktpfad, Parameter, Antwortfeldzuordnung und die unten beschriebenen Zuverlässigkeitseinstellungen. API Aus diesem Schritt.

5
Trigger

Karte die Webhook-Ereignisse, auf die deine Plattform sendet OpsIQ Ereignisse, so dass dinge, die auf ihrer plattform passieren, beginnen können.OpsIQ.

6
Review, Enterprise Contract und Publizieren

Review every action, trigger and capability. Enterprise profiles expose the generated queue, worker, hook, migration, ticket-mirror, attachment and conflict contract before publishing. Publishing writes the package into /connectors/<slug>/.

⚠️
Die vollständige Suite — Manifest, Fähigkeitsdateien, den Identitäts-Token-Vertrag und die Bridge-Snippet-Prüfung — läuft, wenn Sie Dry-Run drücken, und erneut zur Installationszeit. Drücken Sie vor dem Versand jedes Mal Dry -Run.

Was die Veröffentlichung tut, dass das Formular Ihnen nicht zeigt

Fünf Verhaltensweisen des Generators überraschen die Leute. Keine ist ein Fehler; alle werden Sie einen Nachmittag kosten, wenn Sie sie zufällig treffen.

One question decides the passthrough: does the platform serve an API?

Answer it in step 1 by picking the data-access mode (or the "Platform with no API" profile). API mode declares native_api and emits the <slug>_api_call passthrough. Bridge mode declares platform_bridge instead and STRIPS native_api even if an older spec carried it, so the manifest, the generated class and the expertise docs cannot disagree. ai_brain_aware is added either way.

SILENCE MEANS "it has an API"

The Builder follows your answer; it does not work the truth out for itself, and the default when nothing is said is API mode. So a no-API platform must ACTIVELY say so — pick the "Platform with no API" profile, set data access to bridge, or tick platform_bridge; any one of the three is enough and they cannot contradict each other. Skip the question on a platform with no API and you are back to the old failure: a dead <slug>_api_call the model keeps reaching for. This used to be stamped unconditionally, so the trap is now escapable rather than gone.

Standardmäßiger Anschlusstest zu GET /ping

Wenn Sie den Verifizierungspfad leer lassen, schreibt der Builder /ping in den erzeugten Stecker und in das Profil ein.jsonFast keine wirkliche Plattform bedient diese Route, so dass Test Connection mit HTTP fehlschlägt404Bei jeder Installation liest sie sich wie eine Fehlkonfiguration des Kunden und nicht wie ein Paketfehler. Legen Sie einen Verifizierungspfad fest, den Ihre Plattform tatsächlich beantwortet. Richten Sie ihn für einen Bridge-Connector auf Ihren eigenen Diagnoseendpunkt – er beweist die gesamte Kette in einem Aufruf: Die Brücke ist bereitgestellt, der Schlüssel stimmt überein und die Brücke kann die Datenbank erreichen.

Re-publishing still overwrites your hand-edits

Capabilities now follow the data-access answer, so those no longer drift. Everything else generated still does: edit ContextProvider.php or any other emitted file and the next publish replaces it. The one protected exception is the bridge file — the wizard only overwrites a bridge carrying its own marker, so a hand-written one is left alone.

Republishing löscht Dateien

Wenn Sie eine Funktion deaktivieren, wird die Providerdatei entfernt. Hand-Bearbeitungen einer generierten Datei – vor allem ContextProvider.php – werden ohne Vorwarnung überschrieben.opsiq-Erbauer.json(Danach wird der Zauberer es nicht mehr schaffen.)

release_status ist immer Preview

Der Assistent hat keine Kontrolle darüber. Ein Paket, das als Produktion ausgeliefert werden soll, muss den release_status in den Einstellungen von Hand geändert haben.json — und diese Bearbeitung bricht die Signatur, also unterschreiben Sie danach erneut.

Die Signatur beweist Integrität, nicht Herkunft

Baupakete werden mit dem symmetrischen Schlüssel dieser Installation signiert. Dieser erkennt Manipulationen. Er beweist nicht, wer das Paket geschrieben hat und jede Installation, die denselben Schlüssel hält, kann dieselbe Signatur erzeugen. Behandeln Sie ein lokal signiertes Paket als selbstsigniert.

Slug Kollisionen werden nur in einem Baum überprüft

Veröffentlichen weigert sich, eine Slug, die bereits existiert unter/connectors/.Sie schaut nicht auf/marketplace_connectors/,So kann ein handverfasstes first-party-paket mit der gleichen schnecke beschattet werden.

💡
Der Assistent hat keinen Schritt zum Erstellen von Wissen. Eine Wissensdatei, die Ihre Plattform beschreibt, wird für Sie aus dem Namen, der Beschreibung, dem Auth-Typ und den von Ihnen definierten Aktionen generiert und bei aktiviertem Connector in die KI geladen.

Definieren einer Aktion (Schritt 4)

Jede Aktion hat die folgenden Einstellungen. Nur die ersten vier sind erforderlich; der Rest Kontrolle, wer es ausführen kann und wie sorgfältig.

Aktionsschlüssel und Label

Der Schlüssel ist, was die KI aufruft; das Label ist, wie ein Mensch liest. Schlüssel werden automatisch mit dem Stecker-Slug benannt, so dass zwei Stecker beide eine "list_orders" haben können, ohne zu kollidieren.

HTTP-Methode

GET, POST, PUT, PATCH oder DELETE.

URL Weg

An die Basis angehängt URL. Verwendung {name} für Platzhalter, z.B. /opportunities/{id}/stage

Parameter

Für jeden Parameter wählen Sie auch, wohin er geht: Körper, path, query oder KopfEin Pfadparameter füllt a {placeholder}; ein Abfrageparameter wird dem URL.

Response Mapping

Sagen Sie, welches Feld in der JSON -Antwort was bedeutet, was der Kundenname ist, was die E-Mail ist, welche die Gesamtbestellmenge ist.

Wer kann es verwenden

Ihr Team (Admin AI), angemeldete Kunden (Kundenchat) und beides, oder der Schreibassistent. Die Aktionen des Kunden laufen nur für den angemeldeten Kunden, und die Identitätsfelder werden automatisch gesperrt, sodass ein Kunde nicht nach einem anderen fragen kann.

Benötigt Bestätigung

Ein Mensch muss zustimmen, bevor die Aktion läuft.

Zerstörerisch

Markiert die Aktion als Löschen oder Ändern des Zustands. Wird verwendet, um zu warnen, bevor sie läuft.

Erforderliche Erlaubnis

The admin must hold this permission for the AI to run the action on their behalf; full administrators always pass. Choose from manage_integrations, manage_general, manage_billing, manage_sales_bridge, manage_knowledge, manage_appearance, manage_behavior, manage_permissions, manage_dangerzone, reply_to_chats, escalate_to_ticket, send_agent_email, or none, meaning any authenticated admin.

Beschreibung / AI-Hinweis

Optional, aber es lohnt sich zu schreiben. Es sagt der KI, wann sie nach dieser Aktion greifen soll, zum Beispiel "Verwenden Sie dies, wenn der Administrator eine Deal-Phase ändern möchte". Ein guter Hinweis ist der Unterschied zwischen einer Aktion, die die KI richtig verwendet und einer, die sie ignoriert.

Leistungsfähigkeit

Optionales Klassen-Tag, entweder Tickets (ein Ticket gelesen oder nachgeschlagen) oder ticket_create (öffnet ein Ticket). Mit dem Tagging kann OpsIQ die gesamte Klasse auf einmal gleiten, z. B. das Ausblenden von Tickets, wenn ein Betreiber die KI-Ticket-Awareness ausschaltet.

Listenpfad

Optional: Für Endpunkte, die eine Liste zurückgeben, den gepunkteten Pfad zum Array, z. B. data oder data. items

Fehlerpfad

Optional: Ein Body-Feld, dessen Anwesenheit bedeutet, dass der Aufruf fehlgeschlagen ist, z. B. error.message, nützlich für APIs Diese Rückgabe HTTP 200 zum Scheitern.

Laufen Sie es

Jede Aktion kann gegen das Live- API aus diesem Schritt ausgeführt werden, so dass Sie einen falschen Pfad oder Feldnamen beheben können, bevor jemand anderes es verwendet.

⚠️
Schreibaktionen sind standardmäßig geschützt. Jede Aktion, die POST, PUT, PATCH oder DELETE verwendet, beginnt mit der Berechtigung manage_integrations und Eine neue Schreibaktion schlägt nicht geschlossen statt zuzulassen, dass die KI Ihre Daten unbeaufsichtigt ändern kann. Sie können beides an der Aktion ändern, aber sie wissentlich ändern.
💡
Um vom Kundenchat aus aufgerufen werden zu können, muss eine Aktion schreibgeschützt sein: sowohl Bestätigung erforderlich als auch Zerstörungsfrei lassen. Eine Aktion, die ein Kunde auslösen kann und die ebenfalls den Status ändert, lässt der Zauberer Sie nicht versehentlich versenden.

Empfangen von Webhooks (Schritt 5)

Der Trigger-Schritt gibt Ihnen einen Webhook URL, um sich bei Ihrer Plattform zu registrieren und überprüft jede Anfrage, die auf ihr eintrifft.

Unterschriftenkopf

Der Header Ihrer Plattform signiert beispielsweise mit X-Hub-Signature-256.

Signaturalgorithmus

HMAC-SHA1, HMAAC- SHA256 oder HMAB-SSH512.

Signaturschema

Einfach, ein einfacher Hex- oder Base64-Digest. Oder Stripe-Style, das t=...,v1=... Format, das von Stripe und mehreren Plattformen verwendet wurde, die es kopiert haben.

Unterschriftspräfix

Optional. Einige Plattformen setzen dem Digest voraus, z. B. sha256=. Lassen Sie ihn leer, wenn nicht Ihrs.

Ereigniskartierungen

Karte jedes Ereignis, das deine Plattform sendet, dem OpsIQ -Ereignis zu, das es auslösen soll.

Auto-Registrierung des Webhooks

Wenn Ihre Plattform eine API für die Verwaltung seiner eigenen Webhooks, müssen Sie nicht registrieren URL von Hand geöffnet Auto-Registrieren Sie diesen Webhook auf aktivieren und zeigen Sie es auf zwei der Aktionen, die Sie in Schritt 4definiert haben:

Einrichtung von Webhook-Maßnahmen

Aufruf, wenn ein Administrator den Connector aktiviert: Sie geben den Parameternamen an, der die URL trägt, optional den Namen, der eine Ereignisliste enthält, und den Pfad in der Antwort, der das neue Webhook-ID enthält.

Netzhaken löschen

Wird aufgerufen, wenn der Connector deaktiviert ist, indem Sie die oben erfasste ID verwenden, so dass das Deaktivieren des Connectors auch das Senden Ihrer Plattform an einen toten Endpunkt verhindert.

Fähigkeiten, die Sie einschalten können

Profile und Fähigkeiten werden durch den Connector Contract 2.2 definiert. Generierte und deklarative Fähigkeiten werden direkt ausgegeben; Enterprise-Fähigkeiten erzeugen eine EnterpriseExtension.php Gerüst mit Laufzeit-Lebenszyklusverdrahtung.

Aktionen

Operationen, die die KI auf Ihrer Plattform ausführen kann: Listenaufträge, finden Sie einen Kunden, stellen Sie eine Rückerstattung aus.

Trigger

Empfangen Sie Webhooks von Ihrer Plattform und verwandeln sie in. OpsIQ Veranstaltungen.

AI Tickets

AI Triage und der Antwort-Copilot auf Tickets, die auf Ihrer Plattform bleiben. Wählen Sie den Endpunkt aus, der ein Ticket mit seinen Antworten zurückgibt, und kartieren Sie die Felder; OpsIQ liest den Thread durch ihn hindurch.

Mailbox und Kontakte

Zeigen Sie die E-Mail eines Kunden auf seiner Timeline, senden Sie von einem Deal und synchronisieren Sie Ihr Adressbuch mit dem OpsIQ CRM.

Import von Kunden

Seite durch Ihre Kundenliste und importiere jede einzelne als OpsIQ Kontakt.

Kontext

Pushen Sie Live-Daten von Ihrer Plattform in jede KI-Konversation.

Identität

Finden Sie heraus, welche Ihrer Kunden ein Besucher ist, und zeigen Sie ihr Profil und ihre Einkäufe auf einem Ticket.

Verkauf und Abrechnung

Feed Umsatzereignisse und MRR Zahlen in die OpsIQ Dashboards.

Eingehende Tickets

Drehen Sie Tickets und E-Mails, die Ihre Plattform per Webhook liefert, in OpsIQ Support Threads um.

Ausgehende Antworten

Post OpsIQ Staff antwortet zurück auf die Plattform, von der aus das Thema stammt.

Benutzer synchronisieren

Importieren Sie Ihre Mitarbeiterkonten in OpsIQ Admin-Benutzer.

Sync-Abteilungen

Importieren Sie Ihre Support-Abteilungen in OpsIQ.

Promo-Targeting und Produktfeed

Lassen Sie Promotion Studio auf Fakten abzielen, die Sie über eine Person kennen, und machen Sie Ihre echten Produkte in einer Promotion.

Anbieter von Umfragestudios

Enthüllen Sie serververifizierte Umfragefakten, entkommene Variablen und begrenzte CRM-Empfängerseiten über einen dedizierten SurveyProvider. php. Dies verwendet die Promotion-Runtime nicht erneut.

Native IP Blockierung

Wann OpsIQ Blöcke a IP Rufen Sie den eigenen Block Ihrer Plattform auf API Auch hier wird die Blockierung erzwungen.

Sicherheitsereignisse

Empfangen Sie blockiert-IP Bedrohungssignale von OpsIQ.

Plattformwissen für die KI

Jeder Connector, den Sie erstellen, liefert eine kurze Referenz, die beschreibt, was Ihre Plattform ist und was ihre Aktionen bewirken. Die OpsIQ Admin AI liest sie immer dann, wenn Ihr Connector aktiviert ist, damit sie Ihre Plattform versteht, anstatt nur eine Liste von Aktionsnamen zu sehen.

API durchgang

Ihr Connector erhält immer einen Allzweckanruf, damit die KI einen Endpunkt erreichen kann, für den Sie keine getippte Aktion definiert haben.

Canonical Connector Contract 2.2 Referenz

Contract version: 2.2 · 54 capabilities · 8 profiles.

Steckverbinderprofile

standard_api · Standard REST or GraphQL API

Actions, triggers, OAuth/API-key authentication and optional context/identity mappings. Capabilities: actions, triggers, native_api, ai_brain_aware.

commerce · Commerce and billing platform

Customers, orders, sales, subscriptions, billing, promotions and journey events. Capabilities: actions, triggers, journey_events, sales, billing, sync_orders, customer_import, survey, promo_audience, promo_feed, context, identity.

helpdesk · Helpdesk and ticket platform

Inbound tickets, outbound replies/notes, customer roster, AI triage and bidirectional ticket mirroring. Capabilities: actions, triggers, inbound_ticket, outbound_reply, outbound_note, ai_tickets, customer_import, survey, context, identity, ticket_mirror, attachment_bridge, conflict_resolution.

mailbox · Mailbox and email provider

Inbound/outbound mail, address-book sync, multi-account OAuth and CRM timeline integration. Capabilities: inbound_email, outbound_email, mailbox, email_mailbox, oauth, actions, customer_import, ai_reply.

site_intelligence · Site Intelligence data provider

SEO, analytics, search-console, local-search or monitoring provider with scheduled sync. Capabilities: actions, triggers, site_intelligence, seo, scheduled_workers, durable_queue.

saas_bridge · SaaS bridge

Deep two-way SaaS integration with customers, billing, identity, tickets, webhooks, queues, attachments and workers. Capabilities: actions, triggers, webhook, context, identity, customer_import, survey, journey_events, sales, billing, inbound_ticket, outbound_reply, ticket_mirror, attachment_bridge, durable_queue, scheduled_workers, database_migrations, conflict_resolution, enterprise_hooks, admin_assets.

no_api_bridge · Platform with no API (OpsIQ installs a bridge)

For a self-hosted PHP application that serves no callable API. The wizard generates a signed bridge file the operator drops into their own site, plus the typed actions that read and write through it. Capabilities: actions, platform_bridge, ai_brain_aware.

local_php_platform · Local PHP platform bridge

WHMCS-style local hooks, database access, two-way tickets, billing/customer sync, queues and migrations. Capabilities: actions, native_data, context, identity, customer_import, survey, journey_events, sales, billing, inbound_ticket, outbound_reply, ticket_mirror, attachment_bridge, durable_queue, scheduled_workers, database_migrations, conflict_resolution, enterprise_hooks, admin_assets.

Canonische Fähigkeiten

Maßnahmen

Universal actions. Capability version: 1.0. Mode: generated. Runtime methods: registerActions. Package files: actions.json.

Auslöser

Inbound event triggers. Capability version: 1.0. Mode: generated. Runtime methods: handleWebhook. Package files: actions.json.

Netzhaken

Inbound webhook endpoint. Capability version: 1.0. Mode: generated. Runtime methods: handleWebhook.

journey_events

Universal Journey Event Contract mapping. Capability version: 1.1. Mode: generated. Interfaces: OpsIQ\Connectors\JourneyEventConnectorInterface. Package files: settings.json.

context

AI context providers. Capability version: 1.0. Mode: generated. Runtime methods: contextProviders. Interfaces: OpsIQ\Connectors\ContextConnectorInterface. Package files: ContextProvider.php.

guest_lookup

Guest record lookup without login (reference + proof match). Capability version: 1.0. Mode: generated. Runtime methods: contextProviders. Interfaces: OpsIQ\Connectors\ContextConnectorInterface. Package files: GuestLookupProvider.php.

Identität

Admin/customer identity providers. Capability version: 1.0. Mode: generated. Runtime methods: identityProviders, detectAdmin, detectCustomer. Interfaces: OpsIQ\Connectors\IdentityConnectorInterface. Package files: IdentityProvider.php.

sales

Sales and revenue ingestion. Capability version: 1.1. Mode: generated. Interfaces: OpsIQ\Connectors\CommerceConnectorInterface. Package files: SalesIngest.php.

Abrechnung

Cross-platform billing snapshot. Capability version: 1.0. Mode: generated. Runtime methods: billingProviders. Interfaces: OpsIQ\Connectors\BillingConnectorInterface. Package files: BillingProvider.php.

payments

Payment-provider capability bus. Capability version: 1.0. Mode: generated. Runtime methods: paymentsCapabilities.

inbound_ticket

External ticket/email to OpsIQ ticket ingestion. Capability version: 1.0. Mode: generated. Runtime methods: handleWebhook. Interfaces: OpsIQ\Connectors\TicketMirrorConnectorInterface.

outbound_reply

Reply mirroring to the external platform. Capability version: 1.0. Mode: generated. Runtime methods: pushReply. Interfaces: OpsIQ\Connectors\TicketMirrorConnectorInterface.

sync_users

Staff/customer synchronisation. Capability version: 2.0. Mode: generated. Runtime methods: listCustomers. Interfaces: OpsIQ\Connectors\CustomerImportConnectorInterface. Package files: SyncImport.php.

sync_departments

Department/team synchronisation. Capability version: 1.0. Mode: generated. Package files: SyncImport.php.

sync_orders

Order roster and order-event synchronisation. Capability version: 1.0. Mode: declarative. Interfaces: OpsIQ\Connectors\CommerceConnectorInterface.

sync_products

Product, catalog and inventory synchronisation. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

sync_projects

Project, issue and workspace synchronisation. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

customer_import

CRM customer roster import. Capability version: 2.0. Mode: generated. Runtime methods: listCustomers, backfillChunk. Interfaces: OpsIQ\Connectors\CustomerImportConnectorInterface.

security_events

Receive and emit security events. Capability version: 1.1. Mode: generated. Runtime methods: securityCapabilities, syncBlockedIp, removeBlockedIp. Interfaces: OpsIQ\Connectors\SecuritySyncConnectorInterface.

security_native_block

Native remote IP/CIDR blocking. Capability version: 1.0. Mode: generated. Runtime methods: syncBlockedIp, removeBlockedIp. Interfaces: OpsIQ\Connectors\SecuritySyncConnectorInterface.

survey

Survey identity, audiences, recipients and variables. Capability version: 1.0. Mode: generated. Runtime methods: surveyAudienceCatalog, surveyAudienceFacts, surveyVariableCatalog, surveyVariables, surveyRecipientPage. Interfaces: OpsIQ\Connectors\SurveyConnectorInterface. Package files: SurveyProvider.php.

reply_feedback

Ticket reply feedback mirror (platform reply ratings land via the portal write method). Capability version: 1.0. Mode: generated. Runtime methods: replyFeedbackCatalog, pullReplyFeedback. Interfaces: OpsIQ\Connectors\ReplyFeedbackConnectorInterface.

promo_audience

Promotion targeting facts. Capability version: 1.0. Mode: generated. Runtime methods: subscribers. Interfaces: OpsIQ\Connectors\PromotionConnectorInterface.

promo_feed

Promotion product/content feed. Capability version: 1.0. Mode: generated. Interfaces: OpsIQ\Connectors\PromotionConnectorInterface.

email_mailbox

Mailbox bus, outbound mail and address-book sync. Capability version: 1.0. Mode: generated. Runtime methods: emailAccounts. Interfaces: OpsIQ\Connectors\MailboxConnectorInterface.

inbound_email

Receive inbound email. Capability version: 1.0. Mode: declarative. Runtime methods: poll, handleWebhook. Interfaces: OpsIQ\Connectors\MailboxConnectorInterface.

outbound_email

Send outbound email. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions. Interfaces: OpsIQ\Connectors\MailboxConnectorInterface.

mailbox

Mailbox connector. Capability version: 1.0. Mode: declarative. Runtime methods: emailAccounts. Interfaces: OpsIQ\Connectors\MailboxConnectorInterface.

ai_tickets

AI triage and Inbox Copilot for remote tickets. Capability version: 1.0. Mode: generated. Runtime methods: loadTriageContext. Package files: AiOperations.php.

ai_reply

AI-assisted reply drafting. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

ai_brain_aware

Connector expertise supplied to Admin AI. Capability version: 1.0. Mode: generated. Package files: ai_expertise_admin.md, ai_api_reference.md.

native_api

Native API passthrough. Capability version: 1.0. Mode: generated. Runtime methods: registerActions.

platform_bridge

Signed platform bridge (for platforms with no API). Capability version: 1.0. Mode: generated. Runtime methods: registerActions. Package files: bridge/.

native_data

Local database/platform data adapter. Capability version: 1.0. Mode: declarative. Runtime methods: nativeDataProviders. Interfaces: OpsIQ\Connectors\NativeDataConnectorInterface.

crm

CRM capability provider (calendar, enrichment, telephony or customer data). Capability version: 1.0. Mode: declarative. Runtime methods: crmCapabilities. Interfaces: OpsIQ\Connectors\CrmCapabilityConnectorInterface.

block_registry

Remote sender block-registry synchronisation. Capability version: 1.0. Mode: declarative. Runtime methods: blockSender, unblockSender, isSenderBlocked. Interfaces: OpsIQ\Platform\BlockRegistryInterface.

inbound_comment

Inbound comment ingestion. Capability version: 1.0. Mode: declarative. Runtime methods: handleWebhook.

outbound_note

Outbound private note. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

outbound_notification

Outbound notification delivery. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

oauth

OAuth 2.0 authorisation. Capability version: 1.0. Mode: generated.

reviews

Review ingestion and response. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

lokal

Local search/location data. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

seo

SEO data and actions. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

site_intelligence

Site Intelligence provider. Capability version: 1.0. Mode: declarative. Runtime methods: siteIntelligenceProviders. Interfaces: OpsIQ\Connectors\SiteIntelligenceConnectorInterface.

analytics

Analytics data provider. Capability version: 1.0. Mode: declarative. Runtime methods: analyticsCapabilities.

comms

Communications/video-meeting provider. Capability version: 1.0. Mode: declarative. Runtime methods: commsCapabilities.

admin_assets

Connector-provided admin/account/public browser assets. Capability version: 1.0. Mode: generated. Runtime methods: adminAssets. Interfaces: OpsIQ\Connectors\AdminAssetConnectorInterface.

enterprise_hooks

Platform-native hooks and lifecycle callbacks. Capability version: 1.0. Mode: extension. Package files: EnterpriseExtension.php.

durable_queue

Durable outbox/inbox queue and retry policy. Capability version: 2.0. Mode: extension. Package files: EnterpriseExtension.php.

ticket_mirror

Bidirectional ticket mirror with conflict handling. Capability version: 2.0. Mode: extension. Interfaces: OpsIQ\Connectors\TicketMirrorConnectorInterface. Package files: EnterpriseExtension.php.

attachment_bridge

Attachment upload/download transfer. Capability version: 2.0. Mode: extension. Package files: EnterpriseExtension.php.

database_migrations

Connector-owned schema migrations. Capability version: 1.0. Mode: extension. Package files: EnterpriseExtension.php.

scheduled_workers

Connector-owned scheduled/background workers. Capability version: 1.0. Mode: extension. Package files: EnterpriseExtension.php.

conflict_resolution

Two-way sync conflict strategy. Capability version: 1.0. Mode: extension. Package files: EnterpriseExtension.php.

⚠️
Builder-Spezifikationen bleiben die maßgebliche Quelle. Setzen Sie plattformspezifische Geschäftsregeln in die generierten Erweiterungspunkte; der Paketlebenszyklus, Warteschlangen, Worker, Migrationen und Konformitätstests bleiben Builder verwaltet.

Zuverlässigkeitseinstellungen für jede Aktion

Versuchsreihen

Wie oft man einen fehlgeschlagenen Anruf wiederholt, mit einem Backoff, der jeden Versuch verdoppelt. Nur Timeouts, 429s und 5xx Fehler werden erneut versucht; ein 4xx ist die Schuld Ihrer Anfrage und das Wiederholen würde nur Ihr Tariflimit verbrennen.

Zinsbeschränkung

Eine Obergrenze pro Minute für diese Aktion, so dass ein beschäftigter Trigger Ihre Plattform nicht hämmern kann. 0 ohne Limit.

Timeout

Wie lange warten Sie auf Ihre Plattform, bevor Sie aufgeben.

Bestätigung

Erfordert die Genehmigung eines Menschen, bevor eine Aktion ausgeführt wird. Verwenden Sie es für alles Destruktive.

Authentifizierungstypen

Schritt 2 bietet sieben Muster. Wählen Sie das, das zu Ihrer Plattform passt API Dokumentation, sendet der Generator den richtigen HTTP-Client dafür aus.

API -Taste im Header

Ein statischer Schlüssel, der als fester Header gesendet wird, zum Beispiel X-API Sie geben den Header-Namen und die Bezeichnung an, die das Adminformular anzeigen soll. Dies sendet den Schlüssel nur als Kopfzeile; wenn Ihr SQL-Formular API Wenn der Schlüssel stattdessen als Abfrageparameter erwartet wird, verwenden Sie benutzerdefinierte Header oder einen vollständigen Code-Connector.

Inhabermarken

Token sent as Authorization: Bearer <token>. Common for modern APIs.

Grundlegende Authentizität

Benutzername und Passwort, base64-codiert in den Autorisierungskopf. Sie wählen die Beschriftungen aus, die beide Felder auf dem Adminformular anzeigen.

HMAC-signiert

Einen öffentlichen Schlüssel plus ein Geheimnis, mit dem Request-Body signiert. Sie geben den Signatur-Header, den Key Header und den Timestamp-Heeder Ihrer Plattform.

OAuth 2.0 (Kundenanmeldeinformationen)

Server-zu-Server, ohne Benutzerinteraktion und ohne Umleitung. Sie geben das Token URL und einen optionalen Bereich an; der Administrator gibt eine Client-ID und ein Geheimnis aus. Verwenden Sie diese, wenn Ihre Plattform Anmeldeinformationen für eine Anwendung statt für eine Person ausgibt.

OAuth 2.0 (Knopf anschließen)

Der Authorization-Code Flow mit PKCE, für Stripe, Shopify Apps im Stil von Slack und QuickBooks.URL, das Token URL Nach der Veröffentlichung klickt der Admin auf Connect auf dem Connector, autorisiert Ihre Plattform und OpsIQ Speichert den Refresh-Token und Mints Access Token auf Anfrage. URI um sich in Ihrem OAuth Die App wird auf der Einstellungsseite des Connectors angezeigt.

Benutzerdefinierte Kopfzeilen

Freiform JSON Header Map für alles, was die obigen Muster nicht abdecken, zum Beispiel {"X-")API-Schlüssel": "{api_key}",X-Tenant":{tenant_id} Jeder Platzhalter wird zu einem Feld auf dem Admin-Formular.

💡
Der Client-Credentials-Fluss hat keine Umleitung und keinen Benutzerschritt, so dass PKCE nicht auf ihn zutrifft.

Paginationsstile

Offset

Verwendet Offset- und Limitparameter. Beispiel: ?offset=100&limit=50.

Seite

Verwendet Seitennummer. Beispiel: ?page=3&per_page=50.

Cursor

Verwendet ein Cursor-Token aus der vorherigen Antwort.

Link Header

Verwendet den Link Response Header mit rel="next".

Erweitert: Custom PHP Code

connector. php wendet eine Instanz an, die keine benannte Klasse deklariert, nach der OpsIQ jagt. Die folgenden Methodennamen sind diejenigen, die ConnectorInterface benötigt; einen Fehler zu bekommen ist ein fataler Vorgang beim Laden, keine Warnung.

connector. php — der echte Vertrag, minimal und lauffähig
<?php
/* connectors/myplatform/connector.php */
declare(strict_types=1);

use OpsIQ\Connectors\AbstractConnector;

require_once __DIR__ . '/Client.php';

return new class extends AbstractConnector {

    /* ── the three identity methods. NOT identifier()/label(). ── */
    public function slug(): string        { return 'myplatform'; }
    public function name(): string        { return 'My Platform'; }
    public function description(): string { return 'Orders and customers from My Platform.'; }

    public function capabilities(): array { return ['actions', 'context']; }

    public function settingsSchema(): array
    {
        $f = __DIR__ . '/settings.json';
        if (!is_file($f)) return [];
        $j = json_decode((string)file_get_contents($f), true);
        return is_array($j['settings'] ?? null) ? $j['settings'] : [];
    }

    /* ── NOTE THE ARGUMENT. testConnection() with no parameter is a fatal. ── */
    public function testConnection(array $settings): array
    {
        try {
            $resp = \OpsIQ\Connectors\MyPlatform\Client::callWithSettings($settings, 'GET', '/me', [], []);
            $code = (int)($resp['http_code'] ?? 0);
            return ($code >= 200 && $code < 300)
                ? ['success' => true,  'info'  => ['message' => 'Connection OK', 'http_code' => $code]]
                : ['success' => false, 'error' => "Verify endpoint returned HTTP $code"];
        } catch (\Throwable $e) {
            return ['success' => false, 'error' => 'Test failed: ' . $e->getMessage()];
        }
    }

    public function onEnable(array $settings): array  { return ['success' => true]; }
    public function onDisable(array $settings): array { return ['success' => true]; }

    public function handleWebhook(array $payload, array $headers, array $settings): array
    {
        return ['success' => true, 'note' => 'No triggers declared.'];
    }

    /* Inherited from AbstractConnector: reads actions.json for you.
     * Override only to ADD actions the manifest cannot express. */
    public function registerActions(array $settings): array
    {
        return parent::registerActions($settings);
    }
};
⚠️
Three things that fatal at class load rather than failing gracefully. The identity methods are slug(), name() and description() — not identifier() and label(). testConnection() TAKES an array of settings; a no-argument version is an incompatible signature. And there is no $this->http() or runAction() on AbstractConnector — HTTP goes through your own Client.php or through an action declared in actions.json.

Spiegeln Sie Tickets in das native Ticketsystem

Wenn Ihre Plattform ein Ticket besitzt, spiegeln Sie es in OpsIQ von Ihrem Connector mit dem Ticket-Ingest-Helfer, den Ihr Connector erbt (Erstellen für ein neues Ticket, Add-Reply für Follow-ups). subscribers() Methode, ticket.created, ticket.replied, ticket.updated, ticket.deletedAuto-Reply, Eskalation, SLA und CSAT alle die gleichen Ereignisse, so dass Sie sie ohne zusätzlichen Code erben.

Sagen Sie, wer die Eröffnungsnachricht geschrieben hat

Ein Ticket ist immer für der Kunde, aber die Eröffnungsnachricht kann geschrieben werden durch staff: ein Agent, der im Auftrag des Kunden ein Ticket öffnet oder proaktiv ausfährt. Jeder Helpdesk unterstützt dies und ist somit Teil des Universal Service ticket.created Vertrag statt etwas, das jeder connector privat löst.

author_type

Client (Standard) oder Admin. Weglassen und der Kunde wird angenommen.

author_id

Die staff-ID bei author_type=admin. Niemals die Customer-ID.

author_name

Name des Agenten oder der Abteilung, fällt zurück auf "Personal".

author_email

Die Adresse des Agenten. NIEMALS der Kunde. Eine Mitarbeiternachricht unter der Kunden-E-Mail ist ein Melde- und Auditfehler.

Das ist nicht kosmetisch. Verbraucher lesen author_type Eine von den Mitarbeitern geschriebene Eröffnung wurde als client lässt die automatische Antwort berechtigt, eine Nachricht zu beantworten, die Ihr eigener Agent geschrieben hat, und lässt das Echo Ihrer Plattform dieser Eröffnung wie eine neue Kundennachricht aussehen, die dann als Duplikat landet und das Ticket auf den nächsten Tag umdreht. answered. Das Signal Ihrer Plattform wird in Ihrem Stecker EreignisnormalisierungNiemals bei den Verbrauchern.

Zentrale Blockierung

Wenn ein Agent einen Absender blockiert, gilt dies für every Kanal sofort (E-Mail, Chat, Portal, Widget und jeder Connector Twin), weil der Block zentral durchgesetzt wird, bevor ein Connector die Nachricht sieht. Ihr Connector erbt sie, indem er nichts tut. Es gibt keine eingehende Arbeit zu implementieren und keine Möglichkeit, es falsch zu machen.

Die optionale Hälfte ist outbound: Ihrer Plattform mitteilen, dass ein Kunde hier blockiert wurde. Implementieren Sie es nur, wenn Ihre Plattform etwas Äquivalentes ausdrücken kann.

Fähigkeiten()

Die Klasse muss BlockRegistryInterface implementieren. Das Flag ist ein Claim, die Schnittstelle ist die Garantie.

blockSender($b)

Empfangt die Art (email|domain|ip), den Wert, Grund, admin_id, expires_at, site_key.

unblockSender($b)

Die gleiche Nutzlast, umgekehrt. Muss idempotent sein. Etwas zu entsperren, das nie blockiert wurde ist noop, kein Fehler.

isSenderBlocked($b)

Zur Abstimmung wird also Drift von einem Kunden gemeldet und nicht entdeckt.

Ergebniswerte

ok

Auf Ihrer Plattform angewendet. Fügen Sie remote_ref hinzu, wenn Sie eine ID haben, die es wert ist, aufgezeichnet zu werden.

noop

Schon im beantragten Zustand.

unsupported

Ihre Plattform hat kein gleichwertiges Konzept. KEIN Fehler.

gescheitert

Sie hätten es machen können und es ging schief. Details einschließen; es landet im Audit-Trail.

Sinkende ist eine richtige Antwort. Viele Plattformen haben kein "Blockieren dieses Absender" Konzept und bieten nur eine KONTENSEN-Aussetzung, die Rechnungsstellung, Logins und Dienste stoppt, anstatt nur E-Mail zu unterstützen. unsupported Und lass es in Ruhe.

Sinkende umfasst auch den Fall, dass die Plattform can Tu es, aber lässt dich nicht. API, kein Feature: Ein Hebel, der nur in der Admin-Benutzeroberfläche der Plattform existiert, ist ein Hebel für Ihren Connector.

Bearbeitetes Beispiel · Zendesk (die Referenzimplementierung)

Lesen connectors/zendesk/connector.php alongside this. It is short, and every branch below is a decision you will face too.

E-Mail → ok

PUT /api/v2/users/{id} Die neuen Anfragen eines ausgesetzten Endbenutzers werden zu gesperrten Tickets umgeleitet, anstatt eine zu öffnen, was wirklich die gleiche Idee ist wie das Blockieren eines Absenders, und es stoppt keine Abrechnung, weil Zendesk-Endbenutzer keine haben. Gibt die Benutzerid als remote_ref zurück.

Domain → nicht unterstützt

Zendesk KANN eine ganze Domain aussetzen, aber nur durch das Schlüsselwort suspend: in der Blockliste Admin Center Textarea und kein API schreibt dieses Feld.

ip → nicht unterstützt

Es gibt keinen Ticket-Level IP Block.

unbekannte Adresse → noop

Zendesk kann eine Adresse, die es noch nie gesehen hat, nicht vorhalten. Nichts zu tun ist kein Fehler, und der lokale Block stoppt immer noch das Ticket.

Agent oder Admin → nicht unterstützt

Wenn Mitarbeiter aussetzen, sperren sie einen Kollegen aus dem Helpdesk. Eine Adresse des Personals, die eine Blockliste erreicht, ist viel wahrscheinlicher ein Fehler als eine Anweisung: Überprüfen Sie die Rolle, bevor Sie danach handeln.

Der Vertrag kann nicht verhindern, dass Sie einen Block auf etwas Zerstörendes abbilden, also muss jeder Verbinder selbst entscheiden, was er ablehnen wird. detail ein Bediener lesen kann, schlägt gehorchend.

Berichten Sie ehrlich. Beachten Sie, wie wenige dieser Zeilen sind ok. Das ist das richtige Ergebnis, keine Lücke: Ein Domainblock funktioniert immer noch (er wird im Kern durchgesetzt, sobald er geschrieben wird); er kann einfach nicht nach außen gespiegelt werden. ok für etwas, das sie nicht getan haben, würde einem betreiber sagen, dass der block ihre plattform erreicht hat, als er nie verlassen wurde. OpsIQ.

Vorschriften

Der lokale Block gewinnt immer

Sie steht, bevor man gerufen wird und steht, was immer man zurückgibt.

Niemals werfen

Ein Wurf wird als nicht unterstützt und aufgezeichnet behandelt. Return scheiterte mit einem Detail, so dass der Grund überlebt.

Sei idempotent

Der gleiche Block kann mehr als einmal angekündigt werden.

Schnell zurückkehren

Fan-out ist synchron mit dem Operatorklick. Warteschlangen langsame Arbeit, anstatt die Anfrage offen zu halten.

Rufen Sie nicht zurück in

Niemals wieder in OpsIQ von Ihrem Handler blockieren. Die Registry überspringt den ursprünglichen Connector, aber ein zweiter Hop würde Schleife.

Jede Ankündigung wird geschrieben opsiq_block_registry_log (Operation, Art, Wert, Grund, Administrator, Ursprung, Konnektor-Schleife, Ergebnis, Detail und Zeitstempel), damit ein Operator sehen kann, dass ein Block von Ihrer Plattform anstelle eines Agenten angekommen ist und was jeder Konnektiv dagegen getan hat.

Richtige Druckbefestigungen

Hand attachments array to create()/addReply(). Jedes Element trägt die Datei in einer von drei Formen:

content_b64

Base64 der RAW-Dateibytes, verwenden Sie für Dateien hinter auth (die meisten eingehenden Fälle). OpsIQ dekodiert sie und hostet die Datei erneut für Sie.

url/source_url

Ein öffentliches https URL (z. B. ein Zendesk content_url). Muss https sein; besteht eine SSRF / Allowlist-Prüfung, bevor es gespeichert wird.

stored_path

Eine gespeicherte Dateireferenz, die Sie bereits geschrieben haben (was der native Composer Uploader produziert).

Items also accept filename, mime_type and size_bytes. Caps: 12 MB/file, ~24 MB total, 10 files per call. Most platform read APIs return attachment Nur Dateinamen (nicht Bytes), also ist das zuverlässige Inbound-Muster: Lesen Sie die Bytes, in denen Ihr Code bereits läuft (innerhalb der Plattform oder von der Webhook-Nutzlast), Basis64 sie und versenden Sie sie als content_b64 über die Veranstaltung.

Outbound (OpsIQ → Ihre Plattform). Wenn ein Agent eine Datei anhängt, wird ticket.replied Payload gibt Ihnen die Dateien der Antwort als stored_path Posten unter dem OpsIQ Dateispeicher. Lesen Sie sie und schieben Sie das Format Ihrer Plattform ein, und überprüfen Sie die Plattformdokumente, die Kodierung ist wichtig: WHMCS Wünschen base64_encode(json_encode([[name,data]])) (JSON, nicht serialisieren); Zendesk lädt Rohbytes hoch /uploads.json Für ein Zeichen setzt dann comment.uploads; Gmail sendet eine mehrteilige/gemischte RFC-822 Nachricht base64url-codiert in raw; Amazon SES inbound attachments need the S3 receive action (the SNS path caps at 150 KB).

Remote-Plattformen: API + webhook, nie eine andere app Tabellen

Wenn Ihre Plattform eine separate App oder Datenbank (ein gehostetes SaaS, ein Remote- WHMCS, eine andere DB auf demselben Server), Schreiben Sie niemals seine Tabellen direkt: Eine Datenbank-übergreifende Schreibe landet auf jeder Verbindung, die aktiv ist und verpasst stillschweigend die echten Zeilen. outbound = Aufruf der signierten REST API (Antworten, Status, Abteilung, Löschungen) inbound = die Plattform POST einen signierten Webhook, Ihren handleWebhook() Verifiziert es und feuert das Matching ticket.* Um eine Spiegelschleife zu stoppen, markieren Sie das, was Sie drücken, mit einem Ursprungsmarker (z. B. mirror_origin:'opsiq'); die Plattform spiegelt es auf dem Webhook und Ihr Inbound-Handler überspringt seine eigenen Echos. OpsIQEvents::isMirroredEvent() An der Spitze jedes Handlers.

Spiegelstatus, Priorität & Abteilung

Eine Antwort verschiebt den Status automatisch, ein agent Antwort → answered, a Kunde Antwort → customer_reply; spiegeln Sie das auf die gleiche Weise. Für explizite Änderungen abonnieren ticket.updated und lesen payload['changes'] (z. B.) {status:'closed'}).

Status: OpsIQ s kanonischer Satz ist open, customer_reply, answered, in_progress, pending, closedHalten Sie eine kleine Zwei-Wege-Karte zum Vokabular Ihrer Plattform und stellen Sie sicher, dass Ihre Spalte die von Ihnen geschriebenen Werte tatsächlich akzeptiert (eine) ENUM Ein fehlender Wert wird von einigen Datenbanken stillschweigend auf leer gelegt. Abteilung: die OpsIQ -Abteilungs-ID ist bedeutungslos auf Ihrer Seite, Senden Sie es niemalsSenden Sie den Deskriptor ()name, email und slug) und lösen Sie es gegen Ihre eigenen Abteilungen per E-Mail → Name → Slug, so dass "Billing Department" in Ihr Rechnungsabteilung statt allgemeinAuslöser für beide ticket.escalated und a department_id Wechsel in ticket.updated.

💡
Status/Priorität/Thema/Abteilung/Löschen-Spiegelung wird durch Per-Connector-Toggles (mirror_status_changes, mirror_priority_changings, Mirror_subject_ changes, reflect_department_change, mirror&deletes) durchgelesen OpsIQ\Connectors\MirrorOptions-Helfer. Betten Sie diesen Block in Ihre Einstellungen ein.json Und jeder Ticket-Spiegel-Anschluss liest die Umschalter identisch.

Verknüpfen eines Tickets mit einem Produkt / einer Dienstleistung

Wenn der Kunde beim Öffnen des Tickets ein bestimmtes Produkt ausgewählt hat, stempeln Sie einen Hinweis, damit der Agent eine fokussierte Servicekarte sieht (mit einem Klick auf "andere Produkte anzeigen" für den Rest).

related_service_id

Preferred: the service id exactly as it appears in your IdentityProvider::lookupCustomerServices() list (each service's id). Unambiguous match.

related_service_label

Ein Platform Service-Code, z.B. WHMCS S396 (Dienstleistung)396) / D11 (Domain11). OpsIQ Zerlegt den optionalen Typ-Buchstaben + ID und passt zu Ihrer Serviceliste mit einem Type Guard, so dass ein Domaincode niemals mit einem Produkt derselben ID übereinstimmt.

related_domain

Ein Domainname; als Substring gegen jedes Service-Detail / Domain abgeglichen.

💡
Erstellen Sie die Anlageliste einmal in der obigen Form und OpsIQ übernimmt den Rest: Hosted URLs base64-Inhalte werden für Sie gespeichert und erneut gehostet.
⚠️
Aktionsschlüssel sind Kleinbuchstaben, Ziffern und Unterstriche.3bis80Zeichen und erlaubt auch Punkte; der Aktionsspeicher akzeptiert2bis100Zeichen ohne Punkte, also haltet euch an Buchstaben, Ziffern und Unterstriche und ihr befriedigt beides. Das Hinzufügen einer Aktion erzeugt keine AJAX-Route, so dass es nichts zu regenerieren gibt — speichert den Connector erneut und er wird synchronisiert.
Connectoren

Verbinden Sie eine Plattform mit NO API (das Brückenmuster)

Viele echte Plattformen liefern keine RESTAPIEin Hotel-CMS, ein altes Abrechnungssystem, ein maßgeschneidertes internes Tool.OpsIQConnector für einen: Der Connector versendet eine einzelne PHP-Datei, die der Betreiber in seinen eigenen öffentlichen Webroot eingibt, und diese Datei istAPIDiese Seite ist das ganze Muster, mit den Regeln, die es sicher machen zu laufen und der Grund für jede Regel.

Die Form davon

Ein normaler Connector ruft jemand anderen auf API. Ein Bridge-Connector bringt seinen eigenen. Nichts anderes ändert sich: die gleichen Aktionen, die gleichen Kontextanbieter, der gleiche Identitätsvertrag, das gleiche Paketlayout.

1
Sie schreiben eine PHP-Datei

It lives in your package at bridge/opsiq-<platform>-bridge.php. It talks to the platform's database directly, or boots the platform's framework, or both. It answers JSON.

2
Der Betreiber kopiert es in seine Webroot

Neben dem eigenen index. php der Plattform wird kein Plattformcode geändert, kein Plugin installiert und es gibt nichts zu pflegen über alle Plattform-Upgrades hinweg.

3
Das Steckverbinderfeld übergibt ihnen die Datei

Ihre Einstellungen.json deklariert webhook_help. snippet_template. Die Verbindungsseite stellt sie als kopierbare Datei dar, deren Live-Einstellungen bereits ersetzt sind, so dass es nichts zu bearbeiten gibt.

4
OpsIQ nennt es Server-to-Server

Ihre Client. php sendet GET-Anfragen mit dem freigegebenen Schlüssel in einem X-Opsiq-Bridge-Key-Header. Die Basiseinstellung URL ist die Plattform-Websitewurzel.

The Connector Builder CAN generate this for you now. Pick the "Platform with no API" profile (or set data access to bridge) and it emits the bridge file, the matching panel snippet and the typed actions that read and write through it — for a Laravel application reading its .env, for WordPress reading wp-config.php, or with credentials you paste in for anything else. Hand-author only when your platform is none of those, or when you need behaviour the generated bridge does not cover. A hand-written bridge is safe from the wizard: it only overwrites a bridge file carrying its own marker.
💡
Everything on this page is shown in PHP against MySQL, because that is the reference implementation and the only combination the packaging pipeline fully supports. The pattern itself is language-agnostic and engine-agnostic: see "The bridge in other languages and other databases" for the gate in Node, Python, Go, Ruby, .NET and Java, the introspection query for PostgreSQL, SQL Server, SQLite and Oracle, and the MongoDB equivalent — along with the packaging constraint that decides how a non-PHP bridge reaches the operator.

Das Sicherheitsmodell und warum jede Regel da ist

Diese Datei befindet sich in einem öffentlichen Webroot hinter einem gemeinsamen Schlüssel. Diese einzelne Tatsache treibt jede Regel unten an.

Der Anrufer liefert niemals SQL

Keine WHERE-Klausel, kein ORDER BY-Fragment, kein "nur dieses eine Mal" Rohabfrageparameter. Der Aufrufer benennt eine Tabelle, eine Spalte und einen Wert; Ihre Datei erstellt die Anweisung. In dem Moment, in dem ein Anrufer SQL Text beitragen kann, wird ein gemeinsamer Schlüssel zu einer willkürlichen Datenbankausführung.

Tabellen- und Spaltennamen werden gegen information_schema validiert

Identifikatoren können nicht als Parameter gebunden werden, daher müssen sie stattdessen überprüft werden. Lesen Sie die reale Tabelle und Spaltenliste für DIESE Datenbank und verweigern Sie alles, was nicht darauf steht. Ein Bezeichner, der kein echtes Objekt dieses Schemas ist, kann dann überhaupt keine Abfrage erreichen – was es sicher macht, jede Tabelle freizulegen.

Jeder Wert ist ein gebundener Parameter

Validierte Kennungen plus gebundene Werte sind das Paar, aus dem die Gesamtfläche und die Injektionsfläche nil bestehen.

Lesen ist universell, Schreiben sind genehmigungspflichtig

Sehen Sie sich den nächsten Block an. Das ist die Regel, die Leute am meisten überspringen wollen.

Geheime Spalten werden beim Lesen gekürzt und beim Schreiben abgelehnt

Match auf Spalte NAME: password, remember_token, secret, api_key, private_key , salt, token. Ersetzen Sie den Wert durch einen Platzhalter auf dem Weg nach draußen. Verweigern Sie das Schreiben vollständig auf dem Wege in - ein Rohpasswort-Hash zu schreiben ist keine Operation, es ist eine Fußflinte. Senden Sie den Bediener an den eigenen Passwortfluss der Plattform.

Löschen sind Single-Line, nach Primärschlüssel

Niemals ein Massenlöschen, niemals ein Löschen per Filter. Eine Massenentfernung ist wie eine Datenbank stirbt. Wenn jemand wirklich einen braucht, kann er es auf der Plattform tun.

Lesewerte sind row-capped

Schließen Sie den Grenzwertparameter mit einer harten Decke ein. Eine auslaufende Abfrage darf die Datenbank nicht über eine Chat-Nachricht abrufen können.

Fail closed bis der Schlüssel gesetzt ist

Eine unkonfigurierte Bridge antwortet 403 auf alles. Eine Brücke, die hilfreich ist, bevor sie konfiguriert wird, ist eine Brücke, welche für einen Fremden hilfreich war.

Konstante Zeit Schlüssel Vergleich, Schlüssel in einem Header

Der Schlüssel geht in X-Opsiq_Bridge-Key, nicht die Abfragezeichenfolge, also bleibt er außerhalb von Zugriffsprotokollen, Proxyprotokollen und Referer-Headern.

Nur ET

Eine Methode, eine Form, nichts zum Schmuggeln in einen Körper. Alles was die Brücke tut ist als GET mit validierten Parametern ausdrückbar und OpsIQ ist der einzige Anrufer.

Lesen Sie universal, schreibt allow-listed - und warum

Dies ist die Regel, mit der argumentiert wird, also hier ist die Argumentation in vollem Umfang. Der Assistent sollte in der Lage sein, die gesamte Plattform zu SEHEN: das macht es nützlich, und ein Lesen kann nichts zerstören. Schreibt anders. Diese Datei befindet sich in einem öffentlichen Webroot hinter EINEM gemeinsamen Schlüssel. Wenn dieser Schlüssel durchsickert, macht eine uneingeschränkte Schreibfläche das Leck gleichbedeutend mit einer vollständigen Datenbankkontrolle - ein neuer Admin-Benutzer, eine leere Buchungstabelle. Eine Erlaubnisliste bedeutet, dass ein durchgesickerter Schlüssel immer noch nicht an eine Tabelle gelangen kann, die der Betreiber nie aktiviert hat.

⚠️
Die Genehmigungskarte OpsIQ gibt die KI an, nicht den Schlüssel. Der Administrator, der auf eine destruktive Aktion Zulassen klickt, ist eine Kontrolle über den Assistenten. Es ist keine Kontrolle darüber, wer auch immer den Bridge-Schlüssel innehat. Das sind zwei verschiedene Bedrohungen und die Erlaubnisliste ist die Antwort auf die zweite.
Der Bediener-Knopf, von der Botble Bridge
/* ── WRITE ALLOW-LIST — which tables the assistant may CHANGE here.
 *
 * READS are unrestricted: the assistant can see every table in the platform.
 * WRITES are limited to this list, because this file sits in a PUBLIC webroot
 * behind ONE shared key — an allow-list means that even a leaked key cannot
 * reach a table you never enabled (no new admin users, no emptied bookings).
 *
 * Comma-separated table names. Add tables as you need them — e.g. append
 * ',pages,posts' to let the assistant edit site content. Set it to '*' to
 * allow every table, deliberately. Empty falls back to the hotel defaults. ── */
const OPSIQ_WRITE_TABLES = 'ht_bookings,ht_booking_rooms,ht_booking_addresses,ht_rooms,ht_room_types,ht_customers,customers';

Zwei Details in der unten stehenden Überprüfung sind leicht falsch. Der Tabellenname kommt bereits BESCHLOSSEN an und trägt das Tabellenpräfix der Installation, während ein Operator die Erlaubnisliste unpräfixiert schreibt, weil sie das natürlich eingeben würden. Vergleichen Sie beide Wege oder eine vorbeschriebene Installation erlaubt stillschweigend nichts und jedes Schreiben bricht ab. Und die Ablehnung muss sich erklären, denn die Person, die es liest, ist ein Administrator in einem Chat-Fenster, kein Entwickler mit einer Stapelspur.

Die Prüfung der Genehmigungsliste, wörtlich aus marketplace_connectors/botble/bridge/opsiq-botble-bridge. php
/** Tables a WRITE may touch. Empty = the built-in defaults. */
$writeAllowed = static function (string $table) use ($prefix): bool {
    $raw = trim((string)(defined('OPSIQ_WRITE_TABLES') ? OPSIQ_WRITE_TABLES : ''));
    if ($raw === '') $raw = 'ht_bookings,ht_booking_rooms,ht_rooms,ht_customers,customers';
    if (trim($raw) === '*') return true;                     // explicit opt-in to everything
    $bare = ($prefix !== '' && stripos($table, $prefix) === 0) ? substr($table, strlen($prefix)) : $table;
    foreach (explode(',', $raw) as $t) {
        $t = trim($t);
        if ($t === '') continue;
        if (strcasecmp($t, $table) === 0) return true;
        if (strcasecmp($t, $bare)  === 0) return true;
        if ($prefix !== '' && strcasecmp($prefix . $t, $table) === 0) return true;
    }
    return false;
};

/** One refusal, one explanation — used by every write op. */
$requireWritable = static function (string $table) use ($writeAllowed): void {
    if ($writeAllowed($table)) return;
    opsiq_bridge_out(['success' => false, 'error' =>
        'write_not_allowed: "' . $table . '" is not in this bridge\'s write allow-list. '
        . 'Reads are unrestricted. To permit writes here, add the table to OPSIQ_WRITE_TABLES '
        . 'in opsiq-botble-bridge.php (or set it to "*" to allow every table).'], 403);
};

Das Tor, in voller

Vier Prüfungen, in dieser Reihenfolge, bevor irgendetwas Daten berührt. Kopieren Sie die Bestellung sowie die Prüfungen.

Die vier Gate-Checks, in der Reihenfolge
<?php
declare(strict_types=1);

/* ── EDIT THIS: a long random secret (40+ chars). Empty = bridge OFF. ── */
const OPSIQ_BRIDGE_KEY = '';

header('Content-Type: application/json; charset=utf-8');
header('Cache-Control: no-store');

function opsiq_bridge_out(array $payload, int $code = 200): void
{
    http_response_code($code);
    echo json_encode($payload, JSON_UNESCAPED_SLASHES);
    exit;
}

/* 1. Fail closed. An unconfigured bridge answers nothing to anyone. */
if (OPSIQ_BRIDGE_KEY === '' || strlen(OPSIQ_BRIDGE_KEY) < 24) {
    opsiq_bridge_out(['success' => false, 'error' => 'bridge_not_configured'], 403);
}
/* 2. One method. */
if (strtoupper((string)($_SERVER['REQUEST_METHOD'] ?? '')) !== 'GET') {
    opsiq_bridge_out(['success' => false, 'error' => 'method_not_allowed'], 405);
}
/* 3. Constant-time key comparison, key from a header (never the query string). */
$given = (string)($_SERVER['HTTP_X_OPSIQ_BRIDGE_KEY'] ?? '');
if ($given === '' || !hash_equals(OPSIQ_BRIDGE_KEY, $given)) {
    opsiq_bridge_out(['success' => false, 'error' => 'forbidden'], 403);
}
/* 4. Only now read credentials and connect. */

Validierung von Identifikatoren gegen information_schema

Das ist der Teil, der "der Assistent kann jeden Tisch erreichen" von leichtsinnig in sicher verwandelt. Lösen Sie den Tabellennamen des Anrufers gegen das reale Schema auf, tolerieren Sie ein fehlendes oder zusätzliches Tabellenpräfix und geben Sie Null für alles andere zurück. Alles funktioniert dann mit einem Namen, der nachweislich existiert.

Identifier-Validierung und Redaktion, wörtlich von der Botble Bridge
/** Real tables in THIS database — the allow-list, straight from the DB. */
$allTables = static function () use ($pdo, $db): array {
    static $cache = null;
    if ($cache !== null) return $cache;
    $st = $pdo->prepare('SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = ? ORDER BY TABLE_NAME');
    $st->execute([$db]);
    return $cache = array_map('strval', $st->fetchAll(PDO::FETCH_COLUMN));
};

/** Resolve a caller-supplied table name to a REAL one, or null. */
$resolveTable = static function (string $name) use ($allTables, $prefix): ?string {
    $name = trim($name);
    if ($name === '' || !preg_match('/^[A-Za-z0-9_]+$/', $name)) return null;
    $tables = $allTables();
    foreach ($tables as $t) if (strcasecmp($t, $name) === 0) return $t;
    /* Tolerate a missing or extra table prefix. */
    foreach ($tables as $t) {
        if (strcasecmp($t, $prefix . $name) === 0) return $t;
        if ($prefix !== '' && strcasecmp($prefix . $t, $name) === 0) return $t;
    }
    return null;
};

/** Column introspection: table => [column => true]. Cached per request. */
function opsiq_bridge_columns(PDO $pdo, string $db, string $table): array
{
    static $cache = [];
    if (isset($cache[$table])) return $cache[$table];
    $stmt = $pdo->prepare('SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?');
    $stmt->execute([$db, $table]);
    $cols = [];
    foreach ($stmt->fetchAll(PDO::FETCH_COLUMN) as $c) $cols[strtolower((string)$c)] = true;
    return $cache[$table] = $cols;
}

/** Columns whose VALUES must never leave the platform. */
$secretCol = static function (string $c): bool {
    return (bool)preg_match('/(^|_)(password|remember_token|secret|api_key|private_key|salt|token)($|_)/i', $c);
};
/** Columns a write may never touch — auth material. */
$writeBanned = static function (string $c): bool {
    return (bool)preg_match('/(^|_)(password|remember_token)($|_)/i', $c);
};
/** Strip secret values from a row before it leaves the server. */
$redact = static function (array $row) use ($secretCol): array {
    foreach ($row as $k => $v) if ($secretCol((string)$k)) $row[$k] = '[redacted]';
    return $row;
};

Ein Read Op und ein Write Op, komplett

Man beachte, was gebunden und was validiert ist. Die Filterspalte wird mit der echten Spaltenliste verglichen und dann als Identifikator interpoliert; ihr Wert ist gebunden. Der Grenzwert ist geklemmt. Zeilen werden auf dem Weg nach draußen neu bearbeitet. Das Update verweigert den Primärschlüssel und jede Auth-Spalte und stempelt update_at ab, wenn die Tabelle eine enthält.

Lesen Sie eine beliebige Tabelle — validierte Identifikatoren, gebundene Werte, gedeckelte Zeilen
case 'query': {
    $t = $resolveTable((string)($_GET['table'] ?? ''));
    if ($t === null) opsiq_bridge_out(['success' => false, 'error' => 'unknown_table'], 404);
    $cols = opsiq_bridge_columns($pdo, $db, $t);
    if (!$cols) opsiq_bridge_out(['success' => false, 'error' => 'unknown_table'], 404);

    $sql = "SELECT * FROM `$t` WHERE 1=1";
    $args = [];

    /* Equality filter: column must be REAL, value is bound. */
    $wc = strtolower(trim((string)($_GET['where_column'] ?? '')));
    if ($wc !== '') {
        if (!isset($cols[$wc])) opsiq_bridge_out(['success' => false, 'error' => 'unknown_column: ' . $wc], 400);
        $sql .= " AND `$wc` = ?";
        $args[] = (string)($_GET['where_value'] ?? '');
    }
    /* Ordering: column validated, direction from a fixed pair. */
    $ob = strtolower(trim((string)($_GET['order_by'] ?? '')));
    if ($ob !== '' && isset($cols[$ob])) {
        $dir = strtoupper(trim((string)($_GET['order'] ?? 'DESC'))) === 'ASC' ? 'ASC' : 'DESC';
        $sql .= " ORDER BY `$ob` $dir";
    } elseif (isset($cols['id'])) {
        $sql .= " ORDER BY `id` DESC";
    }
    /* Hard row cap. */
    $lim = (int)($_GET['limit'] ?? 25);
    if ($lim < 1)   $lim = 25;
    if ($lim > 200) $lim = 200;
    $off = max(0, (int)($_GET['offset'] ?? 0));
    $sql .= " LIMIT $lim OFFSET $off";

    $st = $pdo->prepare($sql);
    $st->execute($args);
    $rows = array_map($redact, $st->fetchAll());
    opsiq_bridge_out(['success' => true, 'data' => [
        'table' => $t, 'returned' => count($rows), 'rows' => $rows,
    ]]);
}
Schreiben Sie eine Zeile — Listenliste zulassen, abgelehnte Auth-Spalten, einzelne Zeile nach Primärschlüssel
case 'record.update': {
    $t = $resolveTable((string)($_GET['table'] ?? ''));
    if ($t === null) opsiq_bridge_out(['success' => false, 'error' => 'unknown_table'], 404);
    $requireWritable($t);                       // the allow-list, before anything else
    $cols = opsiq_bridge_columns($pdo, $db, $t);
    $pk   = $primaryKey($t);
    $id   = (string)($_GET['id'] ?? '');
    if ($id === '') opsiq_bridge_out(['success' => false, 'error' => 'id_required'], 400);

    $set = json_decode((string)($_GET['set'] ?? ''), true);
    if (!is_array($set) || !$set) opsiq_bridge_out(['success' => false, 'error' => 'set_json_required'], 400);

    $frag = []; $args = [];
    foreach ($set as $col => $val) {
        $col = strtolower(trim((string)$col));
        if (!isset($cols[$col]))  opsiq_bridge_out(['success' => false, 'error' => 'unknown_column: ' . $col], 400);
        if ($writeBanned($col))   opsiq_bridge_out(['success' => false, 'error' => 'refused: "' . $col . '" is auth material - change it through the platform own password flow, never by direct write.'], 400);
        if ($col === $pk)         opsiq_bridge_out(['success' => false, 'error' => 'refused: the primary key cannot be rewritten.'], 400);
        if (is_array($val) || is_object($val)) $val = json_encode($val, JSON_UNESCAPED_SLASHES);
        $frag[] = "`$col` = ?";
        $args[] = ($val === null) ? null : (string)$val;
    }
    if (isset($cols['updated_at']) && !isset($set['updated_at'])) $frag[] = '`updated_at` = NOW()';

    $before = $pdo->prepare("SELECT * FROM `$t` WHERE `$pk` = ? LIMIT 1");
    $before->execute([$id]);
    $prev = $before->fetch();
    if (!$prev) opsiq_bridge_out(['success' => false, 'error' => 'not_found'], 404);

    $args[] = $id;
    $up = $pdo->prepare("UPDATE `$t` SET " . implode(', ', $frag) . " WHERE `$pk` = ? LIMIT 1");
    $up->execute($args);
    opsiq_bridge_out(['success' => true, 'data' => [
        'table' => $t, 'id' => $id, 'changed' => $up->rowCount(),
        'before' => $redact(array_intersect_key($prev, $set)),
    ]]);
}

Überlebende Schemadifferenzen

Plattformversionen unterscheiden sich. Spalten verschieben, werden umbenannt oder sind abwesend. Eine Brücke, die ein Schema annimmt, funktioniert bei einer Installation. Introspektieren und stattdessen anpassen: Wählen Sie nur die Spalten aus, die hier vorhanden sind, tolerieren Sie das Tabellenpräfix und versuchen Sie es mit den plausiblen Schreibweisen einer Referenz.

Schema-Toleranz von der Botble Bridge
/* Only ever select columns that exist on THIS install. */
$pick = static function (array $cols, array $wanted, string $alias = 'b'): string {
    $out = [];
    foreach ($wanted as $c) if (isset($cols[$c])) $out[] = "`$alias`.`$c`";
    return $out ? implode(', ', $out) : "`$alias`.*";
};

/* References vary: stored with or without a leading "#", with or without an
 * operator-configured alpha prefix, or only as a numeric id. Try every
 * plausible form — the PROOF match is what actually gates disclosure, so
 * tolerant matching here is safe. */
$refCandidates = [$ref, '#' . $ref];
$digitsOnly = preg_replace('/\D+/', '', $ref);
if ($digitsOnly !== '' && $digitsOnly !== $ref) {
    $refCandidates[] = $digitsOnly;
    $refCandidates[] = '#' . $digitsOnly;
}
$refCandidates = array_values(array_unique($refCandidates));
💡
Geben Sie Ihrer Bridge eine op=diag, die nur STRUCTURE meldet — welche Tabellen aufgelöst wurden, welche Spalten die Haupttabelle hat und die FORM der neuesten Referenz mit jeder maskierten Ziffer. Es ist wie alles andere mit dem Schlüssel versehen und verwandelt "der Nachschlag findet nichts" von einem Support-Ticket in eine zehnsekunden Antwort. Lassen Sie es niemals echte Datensätze zurückgeben.

Einheitliche Fehler und die Enumerationsfalle

Eine Form für alles

Success is {"success":true,"data":{...}}. Failure is {"success":false,"error":"snake_case_reason"}. Your Client.php and every action then have exactly one response shape to handle.

Nicht gefunden und No-Match müssen identisch sein

Auf einer Lookup-Oberfläche muss eine Referenz, die nicht existiert und eine Referenz deren Beweis nicht übereinstimmt, die gleiche Antwort liefern. Verschiedene Antworten verwandeln Ihre Brücke in ein Orakel, das bestätigt, welche Referenzen echt sind, was für jeden Patienten ein kostenloser Kundenlistenexport ist.

Niemals den Grund an einen Besucher weitergeben

Die Brücke kann präzise sein mitOpsIQWas einen Besucher erreicht, entscheidet sichOpsIQ, in einer festen Ablehnung.

Die kopierbare Datei im Steckverbinder-Panel

Der Operator öffnet niemals Ihr Repository. Sie öffnen das Bedienfeld des Steckers in OpsIQ und drücken Kopieren. Diese Kopie stammt aus Einstellungen.json, und es muss dasselbe Programm wie bridge/*. php sein.

settings.json — der Paneleintrag für einen Bridge-Connector
{
  "settings": [
    { "key": "base_url", "label": "API base URL", "type": "text", "required": true },
    { "key": "api_key",  "label": "Bridge key",   "type": "password", "required": true,
      "autogenerate": true,
      "help": "Auto-generated the moment you enable the connector. It must match OPSIQ_BRIDGE_KEY inside the bridge file; the copyable file below already carries this value once saved." }
  ],
  "webhook_help": {
    "title": "One file, three surfaces",
    "body": "This platform has no public REST API, so this ONE file IS the API. Copy it into the site PUBLIC webroot, keeping the filename.",
    "snippet_filename": "opsiq-yourplatform-bridge.php   (drop next to the site index.php)",
    "snippet_template": "<?php\n/* ... the whole bridge file ... */\nconst OPSIQ_BRIDGE_KEY = \u0027{{setting:api_key}}\u0027;\n..."
  }
}
{{setting:key}} carries live values

The connector panel substitutes {{setting:<key>}} in the snippet with that connector's saved value, so the copied file already contains the operator's generated bridge key and needs no hand-edit. An empty or unsaved setting leaves the token visible, so the operator can see exactly what is still missing.

Andere Platzhalter sind serverseitig substituiert

Unabhängig davon,{webhook_url}, {webhook_path}, {webhook_secret}, {site_key}, {base_url}und{slug}werden ausgefüllt, bevor das Panel jemals den Snippet sieht.

webhook_help kann ein Objekt oder eine Liste sein

Eine Liste gibt Ihnen mehrere Snippets in einem Panel, z. B. eine Bridge-Datei und einen separaten Relay-Hook.

🚫
Halten Sie das Snippet nicht von Hand. Die Bridge-Datei und die Panel-Kopie sind zwei Kopien eines Programms, und sie WERDEN driften — eine Bridge wurde aktualisiert und ihre Panel-Kopierung nicht, also installierte jeder, der neu installiert und vom Panel kopiert hatte, die alte Brücke und verlor stillschweigend jede neue Fähigkeit. Nichts erkannte es: Konformität bestanden, Unterschriften bestanden und Tests bestanden.
Halten Sie die beiden Kopien identisch
# Regenerate every package's panel snippet from its bridge file
php tools/sync_connector_bridge_snippets.php --apply

# Show what would change, without writing
php tools/sync_connector_bridge_snippets.php

Drift is now a failing conformance check, not a support ticket: the verifier compares the two line by line (ignoring the {{setting:...}} placeholders, which are supposed to differ) and names the first line that differs. Run the sync tool as the last step before every release, right before signing.

Was die Brücke aussetzen sollte

Geformte Operationen und eine universelle Datenoberfläche, zusammen. Die Geformten geben ordentliche, zweckgerichtete Antworten auf die Fragen zurück, die Menschen tatsächlich stellen; die universellen decken alles andere ab, so dass der Assistent nie stecken bleibt.

Formlesepapier

Statistiken, die Hauptobjektliste mit Filtern, ein Objekt mit den zugehörigen Zeilen, der Katalog dessen, was verkauft wird, Kundensuche mit Geschichte. Diese geben der KI eine gute Antwort in einem Aufruf statt fünf.

Shaping Writes

Die zwei oder drei Statusänderungen, die wichtig sind — Status festlegen, abbrechen.

Universelle Entdeckung

Tabellen (mit Zeilenzählungen) und Beschreibung (Spalten, Typen, Primärschlüssel sowie lesbare und beschreibbare Flaggen pro Spalte).

Universal lesen und schreiben

Abfrage, record. get, record-create, record:update, record; jede einzelne davon wurde wie oben beschrieben validiert.

Identität, vor dem Schlüsseltor

Identitätsprüfköpfe werden vom ADMIN'S BROWSER aufgerufen, gleichen Ursprungs, so dass sie keinen benutzerdefinierten Header senden können. Ihre Authentifizierung ist die Plattformsitzung selbst. Legen Sie sie vor das Schlüsseltor, halten Sie sie von allen Datensatzdaten fern und lassen Sie sie niemals ein Geheimnis zurückgeben. Sehen Sie sich die Connector-Identitätsseite an.

Diagnose

op=diag, structure only, masked.

💡
Wenn Ihre Plattform immer nur Fragen beantwortet, versenden Sie eine Brücke ohne Schreiboperationen und die gesamte Klasse des Schreibrisikos verschwindet.

Checkliste bevor Sie eine Brücke versenden

Die Brücke lehnt alles ab, ohne Schlüsselsatz

Testen Sie es. Benennen Sie die Konstante um, um sie zu leeren und bestätigen Sie alle op-Antworten 403.

Ein falscher Schlüssel wird in konstanter Zeit abgelehnt

Hash_equals und der Schlüssel nur aus dem Header gelesen.

Ein erfundener Tabellenname wird abgelehnt

Und ein echter Tabellenname mit einem falschen Präfix löst sich immer noch auf.

Eine Passwortspalte erscheint nie in einem Read

Und ein Schreiben, das einen benennt, wird mit einer Erklärung abgelehnt.

Ein Schreiben an eine Tabelle außerhalb der Erlaubnisliste wird abgelehnt

Mit der Nachricht, die dem Betreiber sagt, wie er sie erweitern soll.

Das Panel-Snippet stimmt mit der Bridge-Datei überein

php tools/sync_connector_bridge_snippets. php meldet es im Schritt.

Neuinstallation des Steckers reicht nicht aus

Wenn Ihr Paket eine Bridge-Datei verschickt, muss ein Betreiber, der den Connector aktualisiert, diese Datei AUCH in seinen Webroot neu bereitstellen. Sagen Sie dies im Panel-Körper und in Ihrem CHANGELOG, bei jeder Veröffentlichung.

Connectoren

Die Brücke in anderen Sprachen und anderen Datenbanken

Das Brückenmuster ist kein PHP-Muster.OpsIQAufrufe sind ein HTTP-Endpunkt, so dass die Datei Node, Python, Go, Ruby, .NET oder Java sein kann und der Speicher dahinter kann beliebig seinSQLMotor oderMongoDB. Was PHP-förmig ist, ist die Verpackungspipeline, und diese Einschränkung entscheidet darüber, wie Ihre Brücke den Betreiber erreicht. Lesen Sie zuerst den Lieferabschnitt: Es ist der Teil, der die Leute überrascht.

Was der Connector eigentlich braucht

Dies ist der ganze Vertrag. Nichts darin benennt eine Sprache.

Verkehr

HTTPS. Eine GET-Anfrage pro Anruf. Kein Körper, keine andere Methode.

Authentifizierung

Ein gemeinsames Geheimnis in der X-Opsiq-Bridge-Key Request Header, verglichen in konstanter Zeit. Kein Abfrageparameter, kein Cookie, nicht Basic auth.

Parameter

Query String. op benennt die Oberfläche, do Die Operation nennt sich die Operation, der Rest sind die Argumente dieser Operation.

Antwort

JSON. {"success":true,"data":{...}} oder {"success":false,"error":"snake_case_reason"}Inhaltstyp Anwendung/json und kein Caching.

Statuscodes

200zum Erfolg.403unkonfigurierter oder falscher Schlüssel,404nicht gefunden,405falsche Methode,400schlechtes Argument,501Nicht unterstützt in diesem Schema.

Das ist alles

Kein Framework, keine Laufzeit, keine OpsIQ -Bibliothek auf Ihrer Seite. Wenn es das bedienen kann, kann es eine Brücke sein.

Lieferung: was in Bridge/ leben darf und was nicht

Das signierte Paket deckt eine feste Liste von Dateierweiterungen ab, und eine Datei außerhalb dieser Liste wird aus dem ZIP herausgelassen. Eine Brücke in einer Sprache, die die Liste nicht abdeckt, kann daher nicht innerhalb des Pakets ausgeliefert werden - aber sie kann auch nicht mehr auf Ihnen verschwinden.26August2026Eine Datei in bridge/ dass der Paketer fallen würde, ist ein harter Konformitätsfehler, so dass das Paket sich weigert zu passieren, anstatt ohne Brücke darin zu installieren.

Wie eine Brücke / ein Ordner zur Build-Zeit behandelt wird
bridge/bridge.php     ->  SHIPPED, and drift-checked against the panel snippet
bridge/server.js      ->  SHIPPED, and drift-checked against the panel snippet
bridge/bridge.py      ->  REFUSED at conformance: "Bridge files are packaged" FAILS
bridge/bridge.rb      ->  REFUSED at conformance
bridge/main.go        ->  REFUSED at conformance
bridge/Bridge.cs      ->  REFUSED at conformance
bridge/Bridge.java    ->  REFUSED at conformance
PHP und JavaScript – vollständig unterstützt

Die Datei wird im signierten ZIP ausgeliefert, und der Snippet-Verifier hält Ihr Panel Copy Byte-identisch mit ihm, egal was von den beiden es ist. Der Drift-Check liest jede Datei in Bridge /, nicht nur die PHP-Dateien, so dass eine aktualisierte Brücke mit einer veralteten Panel-Kopie den Build in beiden Sprachen ausfällt.

Alles andere — nur durch das Panel liefern

Das Panel-Snippet ist Klartext ohne Ahnung, welche Sprache es enthält. Es funktioniert also für jeden Stapel. Setzen Sie das gesamte Programm in webhook_help. snippett_template, benennen Sie die Datei in snippets_filename und lassen Sie keine Kopie in bridge/ — Konformität wird das Paket ablehnen anstatt es hohl zu versenden. Sagen Sie einfach in webHook_ help. body, dass der Operator diese Datei kopiert, anstatt sie aus dem Paket zu bekommen.

Wenn Sie wirklich eine andere Sprache im Paket benötigen

Widen PackageSigner::EXTENSIONS deliberately, then re-sign and re-seed. That is a decision about what executable code Nabtech distributes, so make it on purpose — do not discover it from a missing file.

💡
Name der Datei in webhook_help.snippet_filename Wenn Ihr Paket mehr als eine Brücke versendet, weiß der Verifizierer also, zu welcher Brücke eine Panelkopie gehört; ohne sie wird ein zweideutiges Pairing als Konformitätswarnung gemeldet und das Snippet bleibt ungeprüft.
⚠️
Der Punkt der Drift-Prüfung ist, dass eine Bridge-Datei und ihre Panel-Kopie zwei Kopien eines Programms sind und WILL divergieren. php tools/sync_connector_bridge_snippets.php --applyund unterschreiben dann das Paket erneut.

Das Tor, in sechs Sprachen

Überall dieselben vier Prüfungen in der gleichen Reihenfolge: Fail closed ohne Schlüssel, eine Methode, Vergleich von Konstanten-Zeit-Schlüssel aus dem Header, dann verbinden. Die einzige wirkliche Falle ist der Vergleich und es ist eine andere Falle in jeder Sprache.

⚠️
Vergleichen Sie die SHA-256Es ist in jeder Sprache korrekt und umgeht die Tatsache, dass mehrere Konstantzeit-Komparatoren entweder eine Längenabweichung auswerfen oder durchsickern lassen — Nodes TimingSafeEqual erhöht einen RangeError, wenn sich die Puffer in der Länge unterscheiden, was einen falschen Schlüssel zu einem500anstelle von a403.
Node. js — das Gate
// Node.js — no dependencies
const http = require("http"), crypto = require("crypto"), url = require("url");

const BRIDGE_KEY = process.env.OPSIQ_BRIDGE_KEY || "";   // empty = bridge OFF

const sameKey = (a, b) => {
  const ha = crypto.createHash("sha256").update(String(a)).digest();
  const hb = crypto.createHash("sha256").update(String(b)).digest();
  return crypto.timingSafeEqual(ha, hb);                 // equal lengths, always
};
const out = (res, payload, code = 200) => {
  res.writeHead(code, { "Content-Type": "application/json; charset=utf-8",
                        "Cache-Control": "no-store" });
  res.end(JSON.stringify(payload));
};

http.createServer(async (req, res) => {
  if (BRIDGE_KEY.length < 24)         return out(res, { success: false, error: "bridge_not_configured" }, 403);
  if (req.method !== "GET")           return out(res, { success: false, error: "method_not_allowed" }, 405);
  const given = req.headers["x-opsiq-bridge-key"] || "";
  if (!given || !sameKey(BRIDGE_KEY, given))
                                      return out(res, { success: false, error: "forbidden" }, 403);

  const q = url.parse(req.url, true).query;
  // ... dispatch on q.op / q.do exactly as the PHP bridge does
}).listen(process.env.PORT || 8787);
Python – das Tor
# Python — Flask
import hashlib, hmac, os
from flask import Flask, request, jsonify

app = Flask(__name__)
BRIDGE_KEY = os.environ.get("OPSIQ_BRIDGE_KEY", "")      # empty = bridge OFF

def same_key(a: str, b: str) -> bool:
    return hmac.compare_digest(
        hashlib.sha256(a.encode()).digest(),
        hashlib.sha256(b.encode()).digest(),
    )

def out(payload, code=200):
    resp = jsonify(payload)
    resp.status_code = code
    resp.headers["Cache-Control"] = "no-store"
    return resp

@app.before_request
def gate():
    if len(BRIDGE_KEY) < 24:
        return out({"success": False, "error": "bridge_not_configured"}, 403)
    if request.method != "GET":
        return out({"success": False, "error": "method_not_allowed"}, 405)
    given = request.headers.get("X-Opsiq-Bridge-Key", "")
    if not given or not same_key(BRIDGE_KEY, given):
        return out({"success": False, "error": "forbidden"}, 403)
Go, Ruby, . NET und Java – der gleiche Vergleich
// Go
func sameKey(a, b string) bool {
    ha := sha256.Sum256([]byte(a))
    hb := sha256.Sum256([]byte(b))
    return subtle.ConstantTimeCompare(ha[:], hb[:]) == 1
}

func gate(next http.HandlerFunc) http.HandlerFunc {
    return func(w http.ResponseWriter, r *http.Request) {
        w.Header().Set("Content-Type", "application/json; charset=utf-8")
        w.Header().Set("Cache-Control", "no-store")
        key := os.Getenv("OPSIQ_BRIDGE_KEY")
        if len(key) < 24 { out(w, 403, "bridge_not_configured"); return }
        if r.Method != http.MethodGet { out(w, 405, "method_not_allowed"); return }
        given := r.Header.Get("X-Opsiq-Bridge-Key")
        if given == "" || !sameKey(key, given) { out(w, 403, "forbidden"); return }
        next(w, r)
    }
}

// Ruby
def same_key?(a, b)
  OpenSSL.secure_compare(Digest::SHA256.digest(a.to_s), Digest::SHA256.digest(b.to_s))
end

// C# / .NET
static bool SameKey(string a, string b) =>
    CryptographicOperations.FixedTimeEquals(
        SHA256.HashData(Encoding.UTF8.GetBytes(a)),
        SHA256.HashData(Encoding.UTF8.GetBytes(b)));

// Java
static boolean sameKey(String a, String b) throws Exception {
    MessageDigest d = MessageDigest.getInstance("SHA-256");
    return MessageDigest.isEqual(d.digest(a.getBytes(UTF_8)), d.digest(b.getBytes(UTF_8)));
}

Validierung von Kennungen für jede Datenbank-Engine

Die Sicherheitseigenschaft ändert sich nicht: Ein Tabellen- oder Spaltenname, den der Anrufer angegeben hat, muss vor seiner Interpolation mit dem realen Schema verglichen werden, und jeder Wert muss ein gebundener Parameter sein.

MySQLundMariaDB

Tabellen: SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = ?Spalten: das gleiche gegen information_schema.COLUMNS mit AND TABLE_NAME = ?Zitat mit Backticks, Verdoppelung des Backticks im Inneren. LIMIT n OFFSET m.

PostgreSQL

Same information_schema views, Kleinbuchstabennamen, WHERE table_schema = $1 (in der Regel) publicZitat mit doppelten Anführungszeichen, Verdoppelung eines beliebigen doppelten Zitates innerhalb. LIMIT n OFFSET m. Sehen Sie sich die Faltregel an: Ein unzitierter Bezeichner wird in Kleinbuchstaben gefaltet, also vergleichen Sie den Fall-unempfindlich, wenn Sie einen Namen auflösen.

SQL Server

Gleiche INFORMATION_SCHEMA-Ansichten. Zitat mit eckigen Klammern, Verdopplung der Schließklammer im Inneren. Paging benötigt eine BESTELLUNG BY: ORDER BY [id] DESC OFFSET @o ROWS FETCH NEXT @n ROWS ONLY.

SQLite

Tabellen: SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%'Spalten: SELECT name FROM pragma_table_info(?) — Verwenden Sie diese Tabelle-Wert Form, weil die nackte PRAGMA table_info(x) Eine Aussage kann keinen gebundenen Parameter annehmen und eine einladende String-Interpolation gibt es genau das Loch, das Sie zu schließen versuchen. LIMIT n OFFSET m.

Orbit

Tabellen: SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = :owner; Spalten von ALL_TAB_COLUMNSZitat mit doppelten Anführungszeichen und erinnern Sie sich an eine nicht zitierte Kennung, die in den UPPER-Fall gefaltet ist, das Gegenteil von PostgreSQL. OFFSET :o ROWS FETCH NEXT :n ROWS ONLY 12c und später.

MongoDB

Nein SQL, also keine Interpolation von Kennungen und keine gebundenen Parameter — eine andere Disziplin für dasselbe Ziel.

Die Introspektionsabfrage pro Motor
-- MySQL / MariaDB
SELECT TABLE_NAME  FROM information_schema.TABLES  WHERE TABLE_SCHEMA = ?;
SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?;

-- PostgreSQL
SELECT table_name  FROM information_schema.tables  WHERE table_schema = $1;
SELECT column_name FROM information_schema.columns WHERE table_schema = $1 AND table_name = $2;

-- SQL Server
SELECT TABLE_NAME  FROM INFORMATION_SCHEMA.TABLES  WHERE TABLE_SCHEMA = @schema;
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = @schema AND TABLE_NAME = @table;

-- SQLite
SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%';
SELECT name FROM pragma_table_info(?);

-- Oracle
SELECT TABLE_NAME  FROM ALL_TABLES      WHERE OWNER = :owner;
SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE OWNER = :owner AND TABLE_NAME = :tbl;
💡
Lösen Sie, verwenden Sie dann den BESCHLOSSENEN Namen. Geben Sie die Schreibweise des Anrufers niemals an die Abfrage weiter, auch wenn Sie sie überprüft haben - schauen Sie sich den richtigen Namen in der Liste an, die Sie aus dem Schema gelesen haben und interpolieren Sie das. Es kostet nichts und es schließt die Lücke zwischen "diesem Namen passte etwas" und "das ist der Name, den ich gerade ausführen werde".

MongoDBDie gleichen Regeln, ohneSQL

Es gibt keine Abfragezeichenfolge, in die man einspritzen kann, also nehmen die Leute an, dass es nichts zu schützen gibt.JSONgeradeaus find() lässt einen Anrufer senden {"$ne": null} oder {"$gt": ""} Wo Sie einen Wert erwartet haben, und wählen Sie ruhig jedes Dokument aus.

MongoDB — Sammelzulassungsliste, skalarerzwungenes Filter, Projektion als Redaktion
// Node + the official driver
const names = (await db.listCollections({}, { nameOnly: true }).toArray()).map(c => c.name);

function resolveCollection(given) {
  if (!/^[A-Za-z0-9_.-]+$/.test(given || "")) return null;
  return names.find(n => n.toLowerCase() === String(given).toLowerCase()) || null;
}

const coll = resolveCollection(q.collection);
if (!coll) return out(res, { success: false, error: "unknown_collection" }, 404);

// Build the filter from a validated field and a SCALAR value. Never spread
// caller JSON into it: {"$ne":null} would match every document.
const filter = {};
if (q.where_field) {
  if (!/^[A-Za-z0-9_.]+$/.test(q.where_field))
    return out(res, { success: false, error: "unknown_field: " + q.where_field }, 400);
  filter[q.where_field] = String(q.where_value ?? "");   // String() is the guard
}

// Projection is the redaction allow-list: drop secrets, never return them.
const projection = { password: 0, remember_token: 0, api_key: 0, secret: 0, token: 0 };

const limit = Math.min(Math.max(parseInt(q.limit ?? "25", 10) || 25, 1), 200);
const rows  = await db.collection(coll)
                      .find(filter, { projection })
                      .limit(limit)
                      .skip(Math.max(0, parseInt(q.offset ?? "0", 10) || 0))
                      .toArray();
Collection-Namen kommen von listCollections

Das ist Ihr information_schema. Lösen Sie die Schreibweise des Anrufers dagegen und verwenden Sie den aufgelösten Namen.

Erzwingen Sie jeden Filterwert auf einen Skalar

Ein String() oder eine Number() um ihn herum ist die gesamte Verteidigung gegen Operator Injection. ein Dokument, in dem Sie einen Wert erwartet haben, ist das NoSQL-Äquivalent eines Streuansatzes.

Projektion ist die Redaktionsregel

Schließen Sie geheime Felder in der Projektion aus, damit sie den Server nie verlassen, anstatt sie danach vom Ergebnis zu löschen.

Löscht Bleiben Single-Dokument von _id

deleteOne mit einer aufgelösten _id. Never deleteMany, and never a filter the caller influenced.

Schreibt Bleiben Sie erlaubt-listed

Gleiche Argumentation wie SQL: Nennen Sie die Sammlungen, die ein Schreiben berühren kann, und verweigern Sie den Rest mit einer Erklärung.

Der Identitätsendpunkt in anderen Sprachen

Die Identitäts-Sonde ist die andere Hälfte einer Brücke, und es ist auch HTTP. Der Signierblock ist in jeder Sprache identisch: base64url the payload, HMAC-SHA256 diese Zeichenfolge, verbunden mit einem Punkt.

Schreiben Sie dies nicht von Hand. Einstellungen, Support Portal trägt bereits einen fertigen Snippet-Katalog für PHP, Laravel,WordPress, WHMCS, Knoten mit und ohne Abhängigkeiten, Flask und FastAPI, Django, .NET, Ruby on Rails, Java Spring Boot und Go. Nehmen Sie den Unterzeichner aus dem Geschmack, der zu Ihrem Stapel passt.
Was zu ändern ist, wenn Sie es wiederverwenden

Diese Snippets prägen ein PORTAL-Handoff-Token, das bewusst strenger ist: Es trägt jti und single_use:true und lebt von120Sekunden, weil es in einemURLEin Bridge- oder Widget-Identitätstoken trägt keine davon und verwendet einen längeren Exp, Minuten bis Stunden.

Was bleibt gleich

site_key, iat, exp und ein top-level authenticated:true, plus einen admin oder kundenbetreff mit einer id und einem benutzernamen oder e-mail.

Beide Token-Formen überprüfen

Eine dreiteilige JWT signiert HS256 funktioniert, und so auch die zweiteilige base64url Nutzlast plus hex HMAC, dass der PHP-Referenz emittiert. Verwenden Sie, was Ihre Sprachbibliotheken natürlich machen — eine JW T Bibliothek ist in der Regel der kürzere Pfad außerhalb von PHP.

Niemals Mint es im Browser

Kundenseitig zu signieren bedeutet, die Website jedem Besucher geheim zu stellen.

Wählen, ehrlich

Die Plattform ist PHP

Schreibe die Brücke in PHP. Sie wird im Paket ausgeliefert, sie ist drift-checked und kann das plattformeigene Framework booten, um eine Live-Sitzung für die Identitätssonde zu lesen. Nichts anderes gibt dir alle drei.

Die Plattform ist Node

Eine . js-Brücke wird Schiff, Zeichen und Drift genau wie eine PHP-Bridge überprüft. Nichts wird aufgegeben.

Die Plattform ist Python, Ruby, Go, . NET oder Java

Liefern Sie über das Panel-Snippet und sagen Sie es im Panel-Körper; lassen Sie die Datei nicht in Bridge/, wo Konformität das Paket ablehnt. Der Connector ist ansonsten völlig normal: Aktionen, Kontextanbieter, Identitäts- und Gastsuche funktionieren alle gleich, weil keiner von ihnen sich darum kümmert, was den HTTP-Aufruf beantwortet.

Sie können keinen Prozess auf dem Plattform-Host ausführen

Eine Brücke existiert, um eine Plattform von ihrem eigenen Host aus zu erreichen. Wenn man sie nur von außen erreichen kann, schreibt man einen gewöhnlichen API -Anschluss gegen jede Oberfläche, die sie freilegt.

⚠️
Eine weitere Einschränkung, die es wert ist, geplant zu werden: eine Identitätssonde muss die Anmeldesitzung der Plattform lesen, was normalerweise bedeutet, dass sie innerhalb des plattformeigenen Prozesses oder zumindest auf ihrem Host mit Zugriff auf ihren Sitzungsspeicher läuft. Eine Brücke, die in einer anderen Sprache als die Plattform geschrieben ist, kann Daten bequem bedienen und kann immer noch Schwierigkeiten haben, op=admin_identity zu beantworten.
Connectoren

Geben Sie dem Assistenten beide Hälften: Aktionen UND Kontext

Dies ist die häufigste Sache, die in einem Connector fehlt, der "funktioniert aber nutzlos ist". Aktionen lassen die KI Dinge tun. Kontextabschnitte lassen sie Dinge WISSEN. Ein Connector braucht beides und die meisten Fragen, die ein Administrator stellt, werden durch Kontext beantwortet, niemals durch eine Aktion. Ein Verbinder mit perfekten Aktionen und kein Kontextanbieter wird wahrheitsgemäß berichten, dass er nichts sehen kann.

Die beiden Hälften

Aktionen - wie die KI Dinge macht

In Aktionen deklariert.json oder von registerActions() zurückgegeben. Das Modell wählt eine aus, füllt ihre Parameter und OpsIQ führt sie aus.

Kontextabschnitte - wie die KI Dinge weiß

Zusammengebaut von einem ContextProvider, bevor das Modell läuft. "Wie viele Bestellungen in diesem Monat", "Wer sind meine neuesten Kunden", "Was verkaufen wir" lösen sich alle durch einen Kontext-Lookup auf und berühren Sie keine Aktion überhaupt.

⚠️
Symptom eines fehlenden Anbieters: Der Assistent antwortet "Kein aktivierter Konnektor hat diesen Kontextabschnitt geliefert", während der Konnektiv installiert, aktiviert und seinen Verbindungstest bestanden wird. Nichts ist protokolliert, nichts Fehler. Diese Meldung bedeutet, dass kein Anbieter den Abschnitt beansprucht hat.

Der universelle Abschnitt Vokabular

OpsIQ fragt nach Abschnitten mit generischem Namen. Ihre Aufgabe ist es, zu entscheiden, was jeder einzelne auf Ihrer Plattform bedeutet und antworten Sie darauf. Eine Hotelbuchung IST die Bestellung des Hotels; ein Zimmer IST das, was das Hotel verkauft. Karte, erfinde nicht.

Orders / pending_orders

Was auch immer eine Transaktion auf Ihrer Plattform ist: Bestellungen, Buchungen, Reservierungen, Jobs, Sendungen. pending_orders ist die gleiche Liste, die auf die unfertigen gefiltert wird.

Kunden

Der Kundenplan.

products

Was die Plattform verkauft: Produkte, Zimmer, Pläne, Dienstleistungen.

Abrechnung

Einnahmen und geldförmige Summen, plus Zählungen nach Staat.

Tickets, Dienste, Domains, Server, Aktivität

Verwenden Sie diese, wenn Ihre Plattform sie wirklich hat. Erzwingen Sie keine Zuordnung - ein unbeantworteter Abschnitt ist besser als ein falscher.

Alles andere, was Ihre Plattform hat

Ein Anbieter, der sections(): ['licenses', 'shipments'] deklariert, hat diese in die Erlaubnisliste des universellen Lookups aufgenommen, so dass plattformspezifische Lookups ohne Kernänderungen verfügbar werden.

Der Fehler, der einen Tag kostet

Ein Kontextanbieter MUSS die Schnittstelle implementieren. Die Registry typisiert sie, so dass eine Klasse, die nur nach rechts schaut, übersprungen wird – ohne Fehler, überall.

ContextProvider. php — der Vertrag, aus dem Botble-Referenzpaket
use OpsIQ\Platform\ContextProviderInterface;

/* MUST implement ContextProviderInterface: ContextRegistry::collectAll()
 * type-checks it, so a provider that merely LOOKS right is skipped and every
 * section answers "No enabled connector supplied this context section" — the
 * exact symptom, with no error anywhere. */
final class ContextProvider implements ContextProviderInterface
{
    public function slug(): string  { return 'yourplatform_context'; }
    public function label(): string { return 'Your Platform (orders, customers, products)'; }
    public function priority(): int { return 30; }   // lower renders earlier

    /** ADMIN only. The guest surface has its own provider and its own rules. */
    public function surfaces(): array { return ['admin']; }

    /** The universal section names this connector can answer. */
    public function sections(): array
    {
        return ['orders', 'pending_orders', 'clients', 'products', 'billing'];
    }

    public function isAvailable(): bool
    {
        try {
            $s = \OpsIQ\Connectors\ConnectorRegistry::getSettings('yourplatform') ?: [];
            return trim((string)($s['base_url'] ?? '')) !== '' && trim((string)($s['api_key'] ?? '')) !== '';
        } catch (\Throwable $e) {
            return false;
        }
    }

    public function build(array $ctx): string
    {
        $section = strtolower(trim((string)($ctx['section'] ?? '')));
        $limit   = max(3, min(50, (int)($ctx['limit'] ?? 20)));
        $query   = trim((string)($ctx['query'] ?? ''));
        try {
            switch ($section) {
                case 'orders':
                case 'pending_orders': return $this->orders($limit, $query, $section === 'pending_orders');
                case 'clients':        return $this->customers($limit, $query);
                case 'products':       return $this->products($limit);
                case 'billing':        return $this->billing();
            }
        } catch (\Throwable $e) {
            return '';   // a provider must NEVER break prompt assembly
        }
        return '';
    }
}
Registrieren Sie es vom Connector

Implementieren Sie ContextConnectorInterface und geben Sie Ihre Provider von contextProviders() zurück. Die Konnektorklasse kann auch ContextProviDERInterface direkt implementieren und als sich selbst registriert sein.

Geben Sie Klartext zurück, nicht JSON

build() gibt einen Textblock zurück, der in die Eingabeaufforderung verkettet ist. Schreibe ihn für einen Leser: eine Überschrift, dann eine Zeile pro Zeile.

Zurück "statt werfen"

Ein Anbieter, der wirft, wird protokolliert und übersprungen, aber "wiederkehrend" ist der Vertrag.

Der Builder kann nicht schreiben sections() für Sie

Der generierte ContextProvider. php liefert section(): array { return []; } und der Wizard hat kein Feld dafür. Füllen Sie es von Hand aus - und denken Sie daran, dass die Datei durch erneutes Veröffentlichen vom Assistenten ÜBERSCHREIBT wird. Kopieren Sie zuerst Ihre Bearbeitungen.

⚠️
Eine Seite ist nicht total. Ein Anbieter, der zwanzig Zeilen auflistet, ohne zu sagen, so bekommt der Assistent zuversichtlich antworten "Sie haben"20Buchungen, wenn die Plattform hält669. Eine billige ZAHL und eine explizite Zeile — "GESAMT in den Akten":669(Diese Liste zeigt die neuesten)20Nur" - ist die ganze Lösung, und eine selbstbewusst falsche Zählung ist schlimmer als keine Zählung. "
Ein Abschnitt Block, der nicht falsch gezählt werden kann
$lines = ['YOUR PLATFORM — ORDERS (live, newest first)'];
$lines[] = 'TOTAL orders on file: ' . (int)$total
         . ' (this list shows the newest ' . count($rows) . ' only — never count these rows to answer "how many")'
         . ' | by status: ' . $byStatus;
foreach ($rows as $r) {
    $lines[] = '#' . (int)$r['id'] . ' ' . $r['reference'] . ' | ' . $r['status']
             . ' | amount ' . $r['amount'] . ' | ' . substr((string)$r['created_at'], 0, 16);
}
$lines[] = 'Use yourplatform_get_order (order_id) for the full record.';
return implode("\n", $lines);

Benennen Sie Ihre Aktionen so OpsIQ kann Lesen von Schreibvorgängen erkennen

OpsIQ klassifiziert eine Aktion nach den WORTEN in ihrer action_id, und sie ist bewusst konservativ: Alles, was sie nicht erkennen kann, wird als Schreibe behandelt und erfordert eine Genehmigungskarte. Holen Sie sich das Verb richtig und ein Read läuft einfach.

1
is_destructive oder requires_confirmation gewinnt

Wenn beides festgelegt ist, muss die Aktion immer genehmigt werden. Deklarieren Sie sie ehrlich — das zeigt die Genehmigungskarte des Administrators.

2
Ein Schreibwort irgendwo in der ID macht es zu einem Schreiben

add, create, open, update, edit, change, modify, delete, remove, destroy, cancel, refund, suspend, terminate, activate, approve, reject, send, mark, reset, capture, void, close, reopen, assign, revoke, grant, set, toggle, enable, disable, issue, generate, apply, charge, pay, provision, renew, upgrade, merge, move, transfer, escalate, flag, register, sync, push, import, run, trigger, start, stop, restart and a few more.

3
Ein gelesenes Wort macht es zu einem gelesenen

get, liste, suche, finde, anschau, zeige, rufe, zähle, nachschlage, beschreibe, lese, exportiere, vorschau, test, ping, status, zusammenfassung, detail, aktuell, geschichte, check, log, statistiken, metriken, Überblick, einnahmen, aufschlüsselung, bericht, analysen, balance, nutzung, quote, snapshot, insights, feed, draft, triage, klassifizierung, suggest.

4
Dann entscheidet die HTTP-Methode

GET, HEAD und OPTIONS werden gelesen.

5
Ansonsten ist es ein Schreiben

Nicht anerkannt bedeutet Genehmigung erforderlich, dies ist beabsichtigt.

⚠️
Schreibwörter werden VOR dem Lesen von Wörtern überprüft, so dass ein gemischter Name wie get_and_sync_orders als WRITE klassifiziert wird. Wählen Sie ein Verb aus, setzen Sie es zuerst und halten Sie es sauber: list_order, get_customer, search_bookings, cancel_booked, set_order_status.

Erklären Sie nur native_api, wenn die Plattform wirklich eine hat

The native_api capability registers a generic <slug>_api_call passthrough so the model can reach endpoints your typed actions do not cover. On a platform with no API it is worse than useless: the model keeps reaching for a tool that cannot succeed, instead of using the tools that can.

The Builder decides it from your data-access answer

Say the platform has an API and it declares native_api and emits the passthrough. Say it has none (bridge mode, or the "Platform with no API" profile) and it declares platform_bridge instead and strips native_api, so the two can never both be true. You no longer hand-edit this.

Hand-authored packages must still get it right

If you are writing the manifest yourself, declare exactly one of native_api or platform_bridge. Conformance treats platform_bridge as the escape hatch a bridge connector is expected to have, and the Builder refuses a spec that claims platform_bridge on an API connector.

Keep ai_api_reference.md honest either way

On a connector that declares native_api the admin brain heads that file with a line naming <slug>_api_call. Without native_api it is headed neutrally instead, so a bridge connector no longer advertises a tool it does not have. Describe your real surface — for a bridge, that is your op and do vocabulary, not a REST endpoint table.

Unterrichten Sie das Admin-Gehirn über Ihre Plattform

Declare ai_brain_aware and ship two Markdown files. They are read from the INSTALLED package directory (opsiq/connectors/<slug>/) for ENABLED connectors only, and injected into the admin agent's system prompt.

ai_expertise_admin. md

Was diese Plattform IST, wie ihre Daten geformt sind, wie sie Objekte heißen und welche Macken sonst der Assistent raten würde. Schreiben Sie es für einen kompetenten Kollegen, der die Plattform noch nie gesehen hat.

ai_api_reference. md

Für einen Bridge-Connector ist dies Ihr Op-and-Do-Vokabular mit ihren Parametern, keine REST-Endpunkttabelle.

Haushalt

grob6,000pro Connector gespeicherte Zeichen und über24,000Über die Pro-Connector-Kappe wird Ihre Datei gekürzt; seien Sie kurz, bevor der Trunkator ist.

Präzision zahlt sich aus

Diese Dateien sind der Unterschied zwischen dem Assistenten mit Ihren universellen Tabellenwerkzeugen und der Beantwortung aus dem falschen Abschnitt, weil nichts jemals gesagt hat, dass diese Werkzeuge existierten.

💡
Beide Dateien müssen sich im INSTALLED-Paket befinden, nicht nur in Ihrem Quellbaum. Es sind gewöhnliche Paketdateien, also werden sie von der Signatur abgedeckt und im ZIP versendet – was auch bedeutet, dass eine nach dem Signieren das Siegel bricht. Neusignieren.
Connectoren

Identität durch einen Connector: Admin, Kunde, Portal

Der Connector hat die Aufgabe, "wer auf der Plattform angemeldet ist" in ein signiertes Token zu verwandeln.OpsIQkann verifizieren und dann das verifizierte Thema inOpsIQDie Form. Der Steckverbinder authentifiziert niemals jemanden — die Plattform tut es, und die Signatur trägt diese Aussage.

Die drei Oberflächen, ein Unterzeichner

Admin - Ihre Mitarbeiter, in Ihrem Backend

Ein Admin-Betreff. Das Widget wird innerhalb des Admin Panels der Plattform geladen und jeder Mitarbeiter ist mit seinem eigenen OpsIQ Agenten abgeglichen.

Kunde - ein angemeldeter kunde, im client-chat.

Ein Kundenthema. Dies ist, was ein angemeldeter Kunde ihr GANZES Konto anstelle eines anonymen Lookups erhalten kann: jede Bestellung, alle Details und jede Selbstbedienungsaktion, die Sie zulassen.

Portal — eine tiefe Verbindung in das Support-Portal

Die gleichen Ansprüche plus jti und single_use, mit einem120-zweites Leben, weil das Token in einemURLund muss einmal auszahlbar sein. nicht von hand rollen dieses: einstellungen, support-portal trägt einen fertigen snippet pro sprache, und die plattform prägt es für sie, wenn der kontobereich auf diesem server läuft.

Der Nutzlastvertrag

Dies sind die Behauptungen, die von den Umweltgutachtern geprüft werden.

site_key

Top Level. Muss dem Site Key der Anfrage entsprechen, oder das Token wird abgelehnt.

iat und exp

Die meisten dieser Dinge sind nicht nur ein paar Sekunden, sondern auch ein paar Minuten.

authentifiziert: true

Top Level, neben exp. Ihre Plattform Behauptung, dass ein echter Mensch eingeloggt ist.

Plattform

Eine kurze Schnecke, die den Ursprung nennt. Empfohlen, und es ermöglicht dem Identitätsanbieter eines Connectors, seine eigenen Token von einer anderen Plattform zu unterscheiden.

Admin oder Kunde

Ein Objekt, das den Betreff nennt. Es muss eine nicht leere ID und einen Benutzernamen oder eine E-Mail tragen — das Zugangstor pro Administrator stimmt mit diesen überein. Fügen Sie beide hinzu, wenn Sie beide haben.

Minting, wörtlich von der Botble Bridge
$payload = [
    'site_key'      => $cfgSiteKey,
    'iat'           => time(),
    'exp'           => time() + 6 * 3600,
    'authenticated' => true,
    'platform'      => 'yourplatform',
    /* 'admin' or 'customer' — OpsIQ stamps the matching session identity
     * from whichever key is present. */
    $opsiqSubject   => $subjectPayload,
];
$payload64     = rtrim(strtr(base64_encode(json_encode($payload, JSON_UNESCAPED_SLASHES)), '+/', '-_'), '=');
$identityToken = $payload64 . '.' . hash_hmac('sha256', $payload64, $cfgSecret);

Die beiden Verifizierer und deren Fehler

OpsIQ hat zwei Token-Verifikatoren, und sie waren nicht identisch. Das zu wissen erspart Ihnen einen Nachmittag, weil das Symptom nichts wie die Ursache aussieht.

Das Admin-Widget hat einen eigenen Verifier

opsiq/embed/admin_ajax. php trägt einen lokalen Verifier, der das authentifizierte Flag an beiden Positionen akzeptiert. Konversationsliste, Geschichte und ungelesen gehen alle durch, so dass sie sich gut authemieren.

Der Shared Verifier ist strenger

opsiq/includes/customer_identity_token_verify.php sitzt hinter dem Chat-Stream und dem Core AJAXAPI. – Historisch gesehen war die Flagge auf der TOP-Ebene erforderlich.

Das Symptom

Jeder Chat-Wandler antwortet "Anmeldung erforderlich" und liest sich wie ein Sitzungsfehler, aber nicht: Dem Token fehlt das Flag auf oberster Ebene.

Was der aktuelle Kern tut

Es akzeptiert jetzt das Flag auf der obersten Ebene ODER innerhalb des Betreffs, so dass der Vertrag einheitlich ist. Ältere Kerne lesen nur die obere Ebene.

Jede Datei in Ihrem Paket, die Identitätstoken prägt, wird statisch gegen den Vertrag gescannt und eine Nutzlast, die die Plattform ablehnen würde, scheitert an der genauen Datei und Zeile. Führen Sie sie selbst aus: php tools/verify_identity_contracts. php.

Angemeldete Kunden im Client Chat

Zwei Dinge müssen wahr sein. Core muss den verifizierten Kunden abstempeln und Ihr Connector muss ihn präsentieren.

1
Ihre Bridge oder Ihr Endpunkt prägt ein Kunden-Token

Derselbe Unterzeichner wie der Administrator, mit einem Kundenthema. Lesen Sie den Kunden aus der eigenen Sitzung der Plattform. Wenn Ihre Plattform Kunden in einer anderen Wache als Administratoren anmeldet, lesen Sie die Wache, die Sie wollen und greifen Sie nie auf Themen zurück - so würde ein Kunde einen Admin-Token erhalten.

2
Core überprüft und stempelt es

Auf einem gültigen Token stempelt core das verifizierte Thema in die Sitzung. Ihr Provider liest eine nachgewiesene Identität; es authentifiziert sich nie.

3
Ihr IdentityProvider präsentiert es

detectCustomer() gibt dieOpsIQForm. Es muss umgesetzt werdenOpsIQ\Platform\IdentityProviderInterface, oder die Registry überspringt sie stillschweigend - dieselbe Falle wie der Kontextanbieter.

4
Ihre kundenscoped Aktionen akzeptieren eine customer_id

Und OpsIQ sperrt es vor der Ausführung an die verifizierte Identität.

IdentityProvider. php — Lesen Sie die bewährte Identität, präsentieren Sie sie in OpsIQs Form
use OpsIQ\Platform\IdentityProviderInterface;

final class IdentityProvider implements IdentityProviderInterface
{
    public function slug(): string  { return 'yourplatform_identity'; }
    public function label(): string { return 'Your Platform identity (bridge-signed identity_token)'; }
    public function priority(): int { return 25; }   // ahead of the generic session provider

    public function isAvailable(): bool
    {
        try {
            $s = \OpsIQ\Connectors\ConnectorRegistry::getSettings('yourplatform') ?: [];
            return trim((string)($s['base_url'] ?? '')) !== '';
        } catch (\Throwable $e) { return false; }
    }

    public function detectAdmin(): ?array
    {
        $row = $this->sessionRowFor('_opsiq_admin_identity');
        if (!$row || !$this->isOurs($row)) return null;
        return [
            'id'       => (int)($row['id'] ?? 0),
            'name'     => $this->displayName($row, 'Admin'),
            'email'    => (string)($row['email'] ?? ''),
            'username' => (string)($row['username'] ?? ''),
            'role'     => (string)($row['role'] ?? ''),
            'platform' => 'yourplatform',
            'source'   => 'yourplatform_identity_token',
        ];
    }

    public function detectCustomer(): ?array
    {
        $row = $this->sessionRowFor('_opsiq_customer_identity');
        if (!$row || !$this->isOurs($row)) return null;
        return [
            'id'       => (int)($row['id'] ?? 0),
            'name'     => $this->displayName($row, 'Customer'),
            'email'    => (string)($row['email'] ?? ''),
            'phone'    => (string)($row['phone'] ?? ''),
            'platform' => 'yourplatform',
            'source'   => 'yourplatform_identity_token',
        ];
    }

    /* A session identity stamped by ANOTHER platform's token must not be
     * claimed here. An empty platform is accepted because older bridges did
     * not stamp one, and the site key already scoped the token. */
    private function isOurs(array $row): bool
    {
        $p = strtolower(trim((string)($row['platform'] ?? '')));
        return $p === '' || $p === 'yourplatform' || $p === 'remote';
    }

    private function sessionRowFor(string $key): ?array
    {
        if (session_status() !== PHP_SESSION_ACTIVE) return null;
        $row = $_SESSION[$key] ?? null;
        return (is_array($row) && (int)($row['id'] ?? 0) > 0) ? $row : null;
    }
}

Kundenspezifische Aktionen: zwei Schlösser, beide erforderlich

Das Modell darf niemals wählen, wessen Daten es liest. OpsIQ setzt das auf seiner Seite durch, und Ihre Plattform muss es auch auf der anderen Seite durchsetzen. Ein Schloss ist ein Fehler von einem Leck entfernt; zwei Schlösser sind ein Vertrag.

Schleusen1 — OpsIQüberschreibt die Identitätsparameter

Bevor eine Kundenchat-Aktion ausgeführt wird, ersetzt OpsIQ jeden identitätsförmigen Parameter durch die VERIFIED Besucheridentität: client_id, clientid, user_id. userid, customer_id; account_id take the verified numeric id; client_identifier, customer/identification, account_idendifier take it as a string; email, client_email, customer&email; user_eMail take the verificationed email. Was auch immer das vorgeschlagene Modell verworfen wird.

Sperren 2 — Ihre Plattform überprüft jede Abfrage

Wenn Sie die Nummer, die Ihnen gegeben wurde, nehmen und sie zur WHERE-Klausel jedes Lesens und Schreibens auf dieser Oberfläche hinzufügen, vertrauen Sie niemals der Referenz in der Anfrage selbst. Ein angemeldeter Kunde, der nach einer anderen Bestellung fragt, muss leer zurückkommen, nicht verboten.

Benennen Sie Ihre Parameter, damit 1 sie finden kann

Nennen Sie es customer_id, nicht cust oder ref. Ein Parameter OpsIQ erkennt keinen Parameter, den er nicht sperren kann.

⚠️
Geben Sie der angemeldeten Kundenoberfläche ihre EIGENEN Operationen, getrennt von den Administratoren, auch wenn die SQL ähnlich aussieht. Zwei Oberflächen mit unterschiedlichen Regeln bleiben ehrlich; eine Oberfläche mit einem Flag wird an dem Tag zu einem Leck, an dem jemand den falschen Branch bearbeitet.

Nullseitenverdrahtung: die vom Stecker deklarierte Sonde

You can spare the operator all page wiring. Add an admin_identity_probe_url setting (https only) pointing at your identity endpoint. The plain admin-widget loader from Remote Sites, Codes then works with no page attributes at all: the widget discovers the endpoint through the connector, calls it with the site key and widget token, and authenticates each admin individually. A page can still override with a data-identity-endpoint attribute or window.OpsIQAdminIdentityEndpoint.

Einstellungen.json — Einstellung der Sonde
{
  "key": "admin_identity_probe_url",
  "label": "Admin identity probe URL",
  "type": "text",
  "placeholder": "https://your-site.com/opsiq-yourplatform-bridge.php?op=admin_identity",
  "help": "Set this to your bridge admin_identity endpoint and the plain admin-widget loader works with NO page wiring: the widget probes this URL by itself, the bridge answers with the signed identity of the CURRENTLY logged-in admin, and every admin is matched to their own OpsIQ agent. Leave empty to keep the admin embed off."
}
Die Sonde wird vom Browser aufgerufen

Sie ist gleich, also kann sie keinen benutzerdefinierten Header tragen. Ihre Authentifizierung ist die Plattformsitzung. Legen Sie sie vor Ihrem Bridge-Key-Gate, halten Sie es von Datensatzdaten fern und geben Sie für einen angemeldeten Besucher überhaupt nichts zurück.

Es beantwortet eine feste Form

{"success":true,"authenticated":true,"admin":{...},"identity_token":"..."} — and {"success":false,"authenticated":false,"error":"..."} when nobody is signed in.

Kein langlebiges Geheimnis in der Seitenquelle

Nur das signierte, auslaufende Token.

Die vollständigen Endpunktimplementierungen für Laravel,WordPress, WHMCS, Symfony und einfaches PHP sowie die hart erkämpften Laravel-Besonderheiten und die Fehlerbehebungsreihenfolge befinden sich auf der Admin-Widget-Seite. Sie sind der gleiche Code für ein Kundenthema: Ändern Sie den von Ihnen gelesenen Wachmann und den Betreffschlüssel, den Sie unterschreiben.

Connectoren

Veröffentlichen: Das Bearbeiten des Ordners wird nicht veröffentlicht

Die häufigste Möglichkeit, einen Nachmittag zu verlieren ist, einen Connector unter marketplace_connectors/ zu bearbeiten, ihn neu zu installieren und nichts geändertes zu finden. Installierte lesen diesen Ordner nicht. Sie ziehen eine signierte ZIP aus dem Marktplatzkatalog. Publishing ist die Sequenz, die Ihre Änderungen in diese ZIP einfügt.

Warum der Edit nichts getan hat

marketplace_connectors/<slug>/ is the SOURCE

Es ist, wo Sie arbeiten. Nichts installiert sich von ihm aus.

Der Katalog enthält ein signiertes ZIP

Eine Installation lädt diese ZIP herunter, überprüft die Signatur und entpackt sie. Bis Sie die ZIP neu erstellen, erhält jede Installation das alte Paket.

Der Connector Builder veröffentlicht woanders

It writes into /connectors/<slug>/ on this install. That is a local connector, not a marketplace release. The two paths do not overlap.

Die Release-Sequenz

1
Bumpen Sie die Version in zwei Dateien

Einstellungen.jsonConnector_Vertrag.json. Conformance vergleicht sie und schlägt fehl, wenn die Schnecke, die Version oder der Fähigkeitssatz nicht übereinstimmen. Fügen Sie einen CHANGELOG.md-Eintrag hinzu, während Sie dort sind - es ist eine erforderliche Datei.

2
Re-Sync des Bridge Snippet

php tools/sync_connector_bridge_snippets.php --apply — only relevant if your package ships bridge/*.php, and mandatory if it does. Skipping it means the panel hands operators the previous bridge.

3
Unterschreiben Sie jedes Paket

php tools/resign_all_connectors. php — die Signatur deckt Datei-Hashes ab, sodass JEDE Bearbeitung sie ungültig macht.

4
Exportieren Sie den Signaturschlüssel, dann Seed

Der Seeder signiert jedes Paket, während er den ZIP erstellt, und läuft in einem Kontext, in dem der Schlüssel nicht aus Einstellungen gelesen werden kann - also muss er aus der Umgebung kommen.

5
Bereitstellen der Bridge-Datei, wenn Sie eine versenden

Wenn Sie den Connector neu installieren, wird das Paket aktualisiert. Es berührt NICHT die Kopie im Webroot des Operators. Sagen Sie es ihm, in der Anzeigetafel und im Changelog.

Die gesamte Freigabe, in Ordnung
# 2 — hold the panel copy identical to the shipped bridge
php tools/sync_connector_bridge_snippets.php --apply

# 3 — re-sign (do this last, after every file is final)
php tools/resign_all_connectors.php

# 4 — the seeder reads the signing key from the ENVIRONMENT only
export OPSIQ_CONNECTOR_SIGNING_KEY="$(php -r 'require "bootstrap/init.php"; echo opsiq_setting("connector_signing_key","");')"
php saas/scripts/maint/seed_marketplace_free.php --apply --only=<slug>

# verify before and after
php tools/verify_identity_contracts.php
php vendor/bin/phpunit tests/phpunit/Unit/Connectors
⚠️
Warum der Export nicht optional ist: Der Unterzeichner sucht den Schlüssel zuerst in OPSIQ_CONNECTOR_SIGNING_KEY und die Einstellung connector_signing_key. Der Seeder läuft auf dem SaaS-Bootstrap und tools/sign_connector. php bootet überhaupt nichts, so dass in beiden Einstellungen kein Lesegerät existiert — ohne Umgebungsvariable gibt es keinen Schlüssel, und Sie erhalten "No signature key available" oder jedes Paket, das als signature_failed gemeldet wird. Nur tools/resign_all_connectors. phf bootet OpsIQ und kann den Schlüssel selbstständig finden.

Was eigentlich Schiffe

Nur Dateien der Signatur Covers

Der ZIP basiert auf der eigenen Dateiliste des Unterzeichners, so dass eine Streudatei in Ihrem Paketordner nicht versendet wird. Das ist absichtlich: eine unsignierte Datei, die verwendet wird, um zu den Kunden zu fahren.

Überdeckte Erweiterungen

php,json, js,cssmd, txt,html, sh, svg, png, jpg, jpeg, gif, webp, ico, yml, yaml — rekursiv, einschließlich Bridge/ und Tests/Signatur.jsonselbst aus den Hashes ausgeschlossen und dann zum ZIP hinzugefügt, so dass Installationen überprüft werden können.

Alles andere wird als not_packaged gemeldet

Der Seeder benennt jede Datei, die er hinterlassen hat. Lies diese Liste. Eine Datei, von der du erwartet hast, dass sie dort erscheint, bedeutet eine falsche Erweiterung oder einen falschen Ort - kein stiller Erfolg.

Bearbeiten einer abgedeckten Datei bricht das Siegel

Einschließlich einer Markdown-Datei. Unterschreiben Sie das Paket erneut.

Erforderliche Dateien in einem verteilbaren Paket

connector.php

Muss eine Instanz von ConnectorInterface zurückgeben.

settings.json

Manifest: slug, name, version, manifest_version, Kompatibilität, Fähigkeiten, connector_contract_version und Einstellungen.

connector_contract.json

Maschinenlesbarer Vertrag. Seine Slug, Version und Fähigkeit müssen mit den Einstellungen identisch sein.json.

README. md, DEVELOPER. mD, CHANGELOG. mC

Alle drei werden auf Existenz UND Mindestgröße überprüft. DEVELOPER. md benötigt echten Inhalt, keinen Stub.

Eine Datei pro deklarierter Fähigkeit

Jede Funktion benennt die Datei, die sie erwartet - ContextProvider. php für Kontext, IdentityProviDER. phf für Identität, GuestLookupProviden. phP für guest_lookup und so weiter - es sei denn, der Connector implementiert die Funktion inline.

Nichts, was wie ein Credential aussieht

Conformance scannt die drei Markdown-Dateien nach geheimen Werten und privaten Schlüsseln und schlägt bei einem Treffer fehl.

Überprüfen Sie es, bevor Sie es versenden

Die Full Conformance Suite ist die gleiche, die eine Installation durchführt. Sie überprüft das Manifest mit dem kanonischen Vertrag, dass Laufzeit- und Maniskriptfähigkeiten übereinstimmen, dass jede deklarierte Fähigkeit ihre Datei und ihre Methoden hat, den Identitäts-Token-Vertrag in jeder Münzdatei, das Bridge-Snippet-Match, Gast-Lookup-Genehmigungsliste Hygiene, Aktion Einzigartigkeit und Bestätigung Sicherheit und die Paketsignatur.

Führen Sie alle vier vor jedem Release aus
# conformance for every marketplace package
php tools/test_marketplace_connector_conformance.php

# the identity-token contract, statically, with file:line on failure
php tools/verify_identity_contracts.php

# the connector unit suite
php vendor/bin/phpunit tests/phpunit/Unit/Connectors

# the release gate
php tools/release_gate_connectors.php
💡
Ein Fehler wird erwartet und ist kein Problem: Die Paketsignaturprüfung meldet eine Warnung, während Sie noch bearbeiten. Es löscht den Moment, in dem Sie erneut unterschreiben. Jeder andere Fehler ist ein echter.
Connectoren

Steckverbinderpaket und Lifecycle-Referenz

Dies ist der Source-Level-Vertrag zum Erstellen eines Connectors, den OpsIQ entdecken, konfigurieren, validieren, aktivieren, ausführen, testen, signieren und verteilen kann.

Referenz des Entwicklers
SteckverbinderpaketEin Konnektorpaket hat eine erforderliche Konnigerimplementierung und -manifest mit optionalen Aktionen, Rezepten, Wissen, Assets und Signaturmetadaten.SteckverbinderpaketdeveloperMANIFESTv1LIFECYCLEVerwaltetARBEITSBEREICHScopeLEBENDER ARBEITSPAZWERKconnector.phpSteckverbinderklasse/FabrikErforderlichsettings.jsonManifest- und EinstellungsschemaErforderlichactions.jsonMaßnahmendefinitionenFakultativsignature.jsonMetadaten zur PaketsignaturFreigabe1DECLAREManifest und Fähigkeiten2IMPLEMENTLifecycle und Anbieter3VALIDATEPrüfung, Zeichen, Packung
Ein Konnektorpaket hat eine erforderliche Konnigerimplementierung und -manifest mit optionalen Aktionen, Rezepten, Wissen, Assets und Signaturmetadaten.

Mindestpackung

connectors/example_platform/
├── connector.php          # connector implementation / entry point
├── settings.json          # manifest + configuration schema
├── actions.json           # optional action catalogue
├── README.md              # setup, scopes, webhooks and limits
├── workflow_recipes.json  # optional reusable recipes
├── knowledge.json         # optional provider knowledge
├── profile.json           # optional connector profile
├── src/                   # optional client/provider classes
├── assets/                # optional admin assets
└── signature.json         # signed release metadata

Manifestierter Vertrag

settings.json verwendet Manifestversion 1. Der Validator erwartet eine Slug, einen Namen, eine Version, eine Manifest_Version, Kompatibilität, Beschreibung und Fähigkeiten. opsiq_min und opsiq_maxDer Release-Status ist einer von production, beta, Vorschau oder template; Fähigkeitsreife verwendet die Stufen L1–L6. Legacy-Pakete können mit Warnhinweisen normalisiert werden, aber ein neues Paket sollte ohne Warnungen bestehen bleiben.

Kernanschlussschnittstelle

  • Identität und Einrichtung: slug(), name(), description(), capabilities(), settingsSchema(), testConnection().
  • Lebenszyklus: onEnable() und onDisable()Die Deaktivierung muss zerstörungsfrei sein; die Datenbereinigung ist eine separate, bewusste Operation.
  • Inbound/Sync: handleWebhook(), poll(), backfill()Poll übernimmt schrittweise Arbeit; Backfill importiert Geschichte und muss sicher sein, sich zu wiederholen.
  • Unterstützung: pushReply() wenn die Plattform Antworten akzeptiert.
  • Maßnahmen: registerActions() Verträge über ausführbare Maßnahmen liefert.
  • Sicherheit: securityCapabilities(), syncBlockedIp(), removeBlockedIp(), testSecuritySync().

Die abstrakte Basis bietet auch optionale Backfill-Abschnitte, Kundenlisten, E-Mail-Account-Erstellung, Abonnenten, Admin / Customer Detection, Abrechnung / Kontext / Identitätsanbieter, Antwortextraktion, Wiederholung von HTTP-Aufrufen, JSON-Path-Zugriff, Fuzzy-Ranking und Paginierungshelfer.

Fähigkeiten und Authentifizierung

Supported capability names include actions, triggers, context, identity, sales, billing, inbound_ticket, outbound_reply, sync_users, sync_departments, security_events, customer_import, security_native_block, promo_audience, promo_feed, email_mailbox, native_api, ai_brain_aware and ai_tickets. The builder provides API key, bearer, basic, HMAC, OAuth 2 client credentials, OAuth 2 authorisation code and custom authentication templates.

Registerlebensdauer

  1. Discovery lädt das Paket und validiert sein Manifest.
  2. Die Konfiguration wird pro Arbeitsbereich gespeichert, Geheimnisse werden verschlüsselt.
  3. Der Verbindungstest beweist die Anmeldeinformationen, ohne den Connector zu aktivieren.
  4. Aufrufe aktivieren onEnable(), synchronisiert Aktionsdefinitionen und kann die anfängliche Backfill starten.
  5. Polling / Webhook / Abonnentenausführung trägt immer den Workspace-Kontext.
  6. Anrufe deaktivieren onDisable() und beendet die Aktivität, ohne importierte Daten zu löschen.
  7. Purge ist eine separate explizite Operation.

Richtigkeitsregeln

  • Verwenden Sie den Workspace/Site Key in jedem Read, Write, Cache Key, Deduplizierungsschlüssel und Webhook Lookup.
  • Machen Sie Backfill, Webhook-Aufnahme und Schreibaktionen idempotent. notieren Sie eine externe ID / Event-ID, wo immer die Plattform eine bereitstellt.
  • Für Remote-Systeme, verwenden Sie ihre API; niemals davon ausgehen, dass ihre Datenbanktabellen in der OpsIQ Verbindung.
  • Geben Sie strukturierte, kundensichere Fehler zurück.
  • Deklarieren Sie nur Fähigkeiten, die das Paket tatsächlich implementiert. actions.json Der Katalog macht eine Aktion erst dann nutzbar, wenn der Stecker installiert, aktiviert und konfiguriert ist und seine Verbindung gültig ist.

Prüfung und Freigabe

Führen Sie PHP-Felgen, Manifestvalidierung, Verbindungstests, Aktionsschematests, Webhook-Signatur-/Wiedergabetests, Workspace-Isolationstests, Backfill-Repeat-Tests, Behindertenkonnektortests und Fehler-/Retry-Teste aus. Ein Marktplatzpaket sollte dann signiert und verifiziert werden, die Setup-/Permissions-/Webhookdokumentation enthalten und seinen tatsächlichen Release-Status angeben. Die Konnektorkachel und das Maniskript sind das maßgebliche Verfügbarkeitssignal.

Connectoren

Steckverbinderrezepturen

Schritt-für-Schritt-Rezepte für gängige Connector-Setups.

Rezepte
SteckverbinderrezepturEin Shopify Setup-Rezept als Checkliste: App erstellen, Scopes gewähren, Token einfügen und testen, Webhooks aktivieren, einen Testauftrag erteilen.SteckverbinderrezepturShopifyRezept · Shopify mit WebhooksErstellen Sie eine benutzerdefinierte App in Shopify adminZuschussbereiche: read_orders, read_customers...Paste Store Domain + Token, klicken Sie auf TestWebhook-Synchronisierung aktivieren (Auto-Registrierung bestellen)Testauftrag → erscheint in Sales in 30s1STEP BY STEPRezepturen für die Kopiereingabe2REAL PLATFORMSShopify · WHMCS · Stripe· GBP3VERIFYTestreihenfolge zeigt 30s
Jedes Rezept ist eine Checkliste, der Sie von oben nach unten folgen, hier Shopify mit Echtzeit-Order-Webhooks, verifiziert durch einen Testauftrag.

Rezept: Shopify mit Echtzeit-Webhooks

Szenario:
Goal: Connect Shopify with automatic order sync and GDPR compliance.
Was zu tun ist:

1. Create a custom app in Shopify admin (Settings > Apps > Develop apps). 2. Grant scopes: read_orders, read_customers, read_products, write_customers. 3. Copy the Admin API access token. 4. In OpsIQ Connectors > Shopify, enter store domain and token. 5. Click Test Connection. 6. Enable Webhook sync, OpsIQ registers order/customer webhooks automatically. 7. GDPR webhooks register automatically (data_request, customers/redact, shop/redact). 8. Verify: place a test order, check it appears in OpsIQ Sales within 30 seconds.

Rezept: WHMCS Integration

Szenario:
Goal: Connect WHMCS so AI can look up clients, services, tickets, and invoices.
Was zu tun ist:

1. In WHMCS admin, Setup > Staff Management > Manage API Credentials. Create a key. 2. In OpsIQ Connectors > WHMCS, enter URL, API identifier, and secret. 3. Click Test Connection. 4. Install the WHMCS module addon for ticket relay. 5. Verify: ask the admin AI "Find client [email protected]". WHMCS data should appear.

Rezept: Stripe-Zahlungen

Szenario:
Goal: Track Stripe payments and let AI look up transactions.
Was zu tun ist:

1. In Stripe Dashboard > Developers > API keys, create a restricted key (read: Customers, Charges, Invoices, Subscriptions). 2. In OpsIQ Connectors > Stripe, enter the restricted key. 3. Test Connection. 4. Add webhook endpoint in Stripe: copy the webhook URL shown on the connector's own settings page. It carries a per-connector token and looks like https://your-domain.com/api/connectors.php?slug=stripe&token=THE_TOKEN A URL without the token is rejected with "Missing slug or token". 5. Select events: charge.succeeded, invoice.paid, customer.subscription.updated. 6. Copy the webhook signing secret to OpsIQ. 7. Verify: make a test payment, check it in OpsIQ Sales.

Rezept: Google Business Profile

Szenario:
Goal: Connect GBP for review management, posts, and insights.
Was zu tun ist:

1. Create a Google Cloud project, enable Business Profile API. 2. Create OAuth 2.0 credentials (Web application). 3. Set redirect URI: copy it from the connector's own settings page. Google and Microsoft connectors share one slug-less callback: https://your-domain.com/connectors.php?oauth=callback Everything else uses https://your-domain.com/connectors.php?slug=<slug>&oauth=callback OAuth redirect URIs must match EXACTLY, and a URI missing oauth=callback is read as a webhook and answered with "Missing slug or token". 4. In OpsIQ, enter Client ID and Client Secret. 5. Click Authorize, sign in, grant access. 6. Select your business location. 7. Verify: reviews, posts, and insights should appear.

Connectoren

Erweitern Sie das CRM & Site Intelligence

OpsIQ Subsysteme können erweitert werden. Ein Connector kann eine neue Funktion in das CRM oder Site Intelligence ohne Änderungen an OpsIQ core, über die Plattformfähigkeit Registry (\)OpsIQ\Platform\CapabilityRegistry). Deklarieren Sie die Fähigkeit, implementieren Sie den kleinen Methodensatz, versenden Sie den Stecker,OpsIQ entdeckt es und verdrahtet es in die Benutzeroberfläche, der Kunde 360 Timeline und die Installationsaufforderungen.

Erweitern Sie CRM & SI
PlattformfähigkeitEin Stecker auf dem linken Fütterungsfunktionsbus (CRM, Site Intelligence, Analytics), der von der CapabilityRegistry entdeckt wurde.PlattformfähigkeitArbeitsbereichIhr Steckverbindererklärt FähigkeitenCRMKalender · Anreicherung · Esign · Zahlungen · MailboxWebsite-IntelligenzVeröffentlicht unter local_listing · rank_dataAnalytikweb_analytics · Bericht & IngestCapabilityRegistrierenEntdeckt es & verkabelt die UI + Timeline1DECLAREFähigkeiten, nicht Core Edits2PLUG INCRM · SI · Analytics Busse3AUTO-WIREDUI, Zeitleiste, Aufforderungen
Ein Connector deklariert Fähigkeiten (Kalender, Anreicherung, Rangdaten, Analysen ...) und OpsIQ verkabelt sie automatisch in CRM und Site Intelligence, keine Kernänderungen.

Fähigkeiten angeben

Deklarativ (Einstellungen.json)

Hinzufügen a <domain>_capabilities Array, am besten für No-Code/Marketplace-Connectoren. crm, site_intelligence.

In Code (connector. php)

Durchführung crmCapabilities() / siCapabilities() die gleichen Deskriptoren zurückgeben.

Melden Sie einen CRM-Kalenderanbieter an (Einstellungen.json)

Szenario:
Goal: make a calendar connector appear in the CRM Schedule-meeting panel.
Was zu tun ist:

"crm_capabilities": [ { "type": "calendar", "label": "Calendar (Acme)", "actions": ["createEvent","listEvents","freeBusy"], "requires_auth": true } ]

Erklären Sie einen Site Intelligence-Anbieter (Einstellungen.json)

Szenario:
Goal: feed local-listing data into Site Intelligence.
Was zu tun ist:

"site_intelligence_capabilities": [ { "type": "local_listing", "actions": ["listLocations","listReviews","getInsights"], "requires_auth": true } ]

Kapazitätsbusse und deren Verfahrensoberfläche

crm / Kalender

createEvent($settings,$params) → {success,event_id,html_link,meet_link}; listEvents; freeBusyAngetrieben von \OpsIQ_CRM\CalendarBridge.

crm/Anreicherung

enrich($settings,$params) →Angetrieben von \OpsIQ\CRM\EnrichmentBridge (läuft auch automatisch auf der Firmenerstellung, wenn ein Anbieter verbunden ist).

crm/esign

sendForSignature($settings,$params) → {success,envelope_id,sign_url}. Angetrieben von \OpsIQ_\CRM\EsignBridge.

Site_Intelligence / Lokale Auflistung

listLocations, listReviews, getInsightsVersand über den Google Business Profile Connector.

Site_Intelligence / Ranking-Daten

keywordRanks($settings,$params) →Angetrieben von \OpsIQ\SiteIntelligence\RankDataBridge.

Analytik / web_analytics

report($settings,$params) (Sync/Export) + ingest($settings,$events) (Import) Angetrieben von \OpsIQ\Analytics\WebAnalyseBridge. Google Analytics (GA4) Steckverbinder API für Berichte, Measurement Protocol für den Import. Analytics ist offen für Konnektoren wie CRM + Site Intelligence (Domain) analytics / analytics_capabilities).

Zahlungen / payment_provider

listPayments, customerPayments, createPaymentLink. Angetrieben von \OpsIQ\Payments\PaymentBridge. Zeigen Sie die Zahlungen eines Kunden auf der CRM-Zeitleiste + senden Sie einen Zahlungslink für ein Geschäft. Ships: Stripe Payments Connector. Domain payments / payments_capabilities.

Mailbox / E-Mail_Sync

listMessages + sendMessage. Driven by \OpsIQ\Mailbox\MailboxBridge. A customer's emails on the Customer 360 timeline + send email from a deal. Ships: Gmail + Outlook/Microsoft 365 connectors. Domain mailbox / mailbox_capabilities.

Geteilte OAuth App + EINE Weiterleitung

Alle Google Connectors teilen sich eine App über \OpsIQ\OAuth\SharedGoogleApp. Set google_oauth_client_id/_secret Once und Calendar, Analytics, Business Profile + Gmail funktionieren alle (die Per-Connector "(optional)" Felder werden überschrieben). URI, <site>/connectors.php?oauth=callback (keine per-connector slug), weil google keine. API um Redirect-URIs zu einer App hinzuzufügen; OpsIQ Wiederherstellung des Connectors aus dem signierten OAuth state Registrieren Sie sich einmalig URI und jeder Google-Connector (Gegenwart + Zukunft) autorisiert ohne weitere Konsoleneinrichtung. SharedGoogleApp::resolve(...)’s redirect_uri von deinem oauthParams(); nie Hard-Code eine per-Slug Redirect. Microsoft Connectors tun das gleiche über \OpsIQ\OAuth\SharedMicrosoftApp ()microsoft_oauth_*).

Import-Buttons sind fähigkeitsgerecht

Die Einfuhr (historisches Backfill) und Einführer Tasten zeigen NUR für Steckverbinder, die sie tatsächlich implementieren, erkannt durch Reflexion, so dass es kein Flag zu deklarieren gibt. backfill() oder backfillChunk() Um den Import-Button zu erhalten; überschreiben listCustomers() (return {email, first_name, ...} pages) um Import-Kunden zu verdienen. AbstractConnector No-op und die Taste bleibt verborgen, so dass die Benutzeroberfläche niemals einen Import anbietet, den ein Connector nicht ausführen kann.

AI über Busse

Der CRM-Agent schlägt und bucht Meetings aus Dealsignalen (\OpsIQ_\CRM\MeetingProposer → CalendarBridge) und bereichert automatisch neue Konten, die "AI betreibt die CRM" -Schleife, die über Connectorbusse ausgeführt wird.

Client-Chat Ticket Lookup (Kaufseite)fetchTicket())

Zweistufige, keine Kernänderungen

Wenn ein Besucher im Client-Chat auf eine Ticketnummer verweist ("Wie ist der Status von T-000123?"), löst OpsIQ diese in zwei Ebenen auf. Ebene 1 Lesen Sie den gemeinsamen OpsIQ Ticket-Shop, jeder Connector mit inbound_ticket Spiegelt seine tickets dort, so dass synchronisierte tickets nur für alle connectors mit null pro connector-code funktionieren. Ebene 2 ist ein Live-Ausfallback für alte Tickets, die nie gespiegelt wurden: core ruft eine OPTIONAL fetchTicket() auf jedem aktivierten Stecker, der es implementiert. duck-typed (entdeckt von) method_exists(), wie contextProviders()/audienceCatalog()), so die Unterzeichnete ConnectorInterface ist unberührt und Konnektoren, die es nicht brauchen (E-Mail / Chat-Quellen, die Tickets nativ erstellen), lassen Sie es einfach weg.

⚠️
Das Eigentum ist obligatorisch und Ihre Durchsetzung. fetchTicket() erhält die verifizierte Besucheridentität in $ctx (client_id + client_email, die gleiche verifizierte Identität, die der Client-Chat AI verwendet. Lösen Sie den Plattformkunden von dieser Identität und fragen Sie NUR die Tickets dieses Kunden ab, dann überprüfen Sie erneut das Eigentum an dem Detaildatensatz. null bei Fehlverhalten, Missverhältnissen oder Fehlern niemals Daten eines anderen Kunden. null Degradiert anmutig, um "das Ticket nicht finden zu können".
connector. php, der Vertrag fetchTicket() (Referenz: connectors/whmcs und connectors / zendesk)
<?php
// connector.php — OPTIONAL universal client-chat ticket resolver (Tier 2).
// Only add it if your platform keeps its OWN ticket store that may hold tickets
// not yet mirrored into OpsIQ. Return the normalised array below, or null.
//
// $ref      = ['mode' => 'id'|'tid', 'value' => string]  (from extract_ticket_ref)
// $ctx      = ['client_id' => int, 'client_email' => string]  (VERIFIED visitor)
// $settings = your connector settings
public function fetchTicket(array $ref, array $ctx, array $settings): ?array
{
    try {
        $email = trim((string)($ctx['client_email'] ?? ''));
        $cid   = (int)($ctx['client_id'] ?? 0);
        if ($cid <= 0 && $email === '') return null;            // no verified identity → refuse

        // 1) Resolve THIS visitor on your platform (by verified email/id).
        // 2) List ONLY their tickets and match $ref against the ticket number/id.
        // 3) Re-confirm ownership on the detail record before returning.
        //    On any miss/mismatch/error → return null (never leak).

        return [
            'tid'        => 'T-000123',     // the customer-facing reference
            'id'         => 123,            // your internal id
            'status'     => 'open',
            'subject'    => '…',
            'department' => 'Billing',     // '' if your platform has none
            'priority'   => 'high',
            'opened_at'  => '2026-06-29 10:00:00',
            'last_reply' => '2026-06-29 12:00:00',
            'message'    => 'opening message text',
            'replies'    => [               // oldest → newest; opening message may be first
                ['who' => 'You',   'date' => '…', 'message' => '…'],
                ['who' => 'Staff', 'date' => '…', 'message' => '…'],
            ],
        ];
    } catch (\Throwable $e) {
        error_log('[yourslug][fetchTicket] ' . $e->getMessage());
        return null;                                             // graceful degrade
    }
}

Wie die Plattform es nutzt

Entdeckung

CapabilityRegistry::providers($domain,$type) listet Anbieter mit installiertem/aktiviertem/bereitem Status auf (filesystembasiert; DB nur für das aktivierte Flag).

Auswahl

CapabilityRegistry::active($domain,$type) Der erste bereite Anbieter mit seinem geladenen Stecker und Einstellungen wird zurückgegeben. Bridges nennen dies anstelle von Hardcoding-Slugs.

Benachrichtigen-um-zu-installieren

Wenn eine Funktion eine Fähigkeit benötigt, die noch nicht verbunden ist, zeigt die Benutzeroberfläche eine Ein-Klick-Eingabeaufforderung Connect / Installieren an, niemals eine tote Steuerung.

Vollständige Anleitung

Siehe connectors/PLATFORM_CONNECTORS.md (CRM + Site Intelligence) und connectors/CRM_CONNECTORS.md im Paket.

Connectoren

Kunden-Self-Service-Lookups & Rückerstattungen (bauen Sie Ihren Connector für den Kundenchat auf)

Angemeldete Kunden können die Customer Chat AI nach ihrem EIGENEN Konto fragen ("mein Saldo", "Meine Bestellungen", "hat das Unternehmen mein Ticket beantwortet") und, wenn das Geschäft es ermöglicht, Rückerstattungen anfordern. Alles wird durch die Erklärungen Ihres Connectors unterstützt: keine OpsIQ Kernänderungen, keine Plattform-Hardcodierung. Die KI nennt Ihre Lookups als native Tools (sie kann keine erfinden), Identität ist serverseitig für den verifizierten Kunden gesperrt und Ergebnisse werden automatisch für die KI getrimmt.

Deklarieren Sie einen Customer Lookup

In deinem actions.jsonEine schreibgeschützte Aktion wird mit ALL THREE kundenabrufbar: "scope":"client", "requires_confirmation":false, "is_destructive":false. Verwendung "scope":"both" wenn das gleiche Lookup auch von Ihrem Team in der Admin AI aufrufbar sein sollte. admin, client, both und system (system Es erreicht weder AI — API noch Webhook-Routen. Alles andere wird direkt abgelehnt: Paketvalidierung fehlschlägt und die Aktion nicht installiert. writing Umfang — Der Schreibassistent wird bedient admin Maßnahmen festgelegt.

Die Identitätsregel (obligatorisch)

Benennen Sie Ihren Identitätsparameter aus dem Standardsatz. client_id, clientid, customer_id, user_id, userid, account_id. An dieser ID als Zeichenfolge gesperrt: client_identifier, customer_identifier, account_identifier. An der verifizierten E-Mail festgehalten: email, client_email, customer_email, user_email. OpsIQ verriegelt und füllt es automatisch vom plattformverifizierten angemeldeten Kunden; die KI sieht oder wählt niemals Identität aus. Ein nicht standardmäßiger Name schlägt fehl (verweigert, nie durchgesickert).

Was muss admin-only bleiben

Alles, was nicht von dieser Identität erfasst wird: fetch-by-bare-id ()order_id/ticket_id Allein), speicherweite Listen, Freitextsuche. Das sind kundenübergreifende Leaks auf jeder Plattform. Behalten Sie sie "scope":"admin".

Ergebnisformung (Antwortfedern)

Lookup-Ergebnisse werden strukturell getrimmt, bevor sie die KI erreichen: Geheime Tasten werden fallen gelassen, lange Strings und Listen werden gedeckelt, leere Felder beschnitten und eine flache Karte, die breiter ist als die Tastenkappe behält ihre Antwort-tragende Schlüssel zuerstGeld ()credit, balance, amount, total, due, paid), Identität (email, *name, phone, company), Staat (status, active, expir*, renew*), Daten, Plan / Produkt / Domain / Service / Abonnement / Bestellung / Rechnung / Ticket Felder, Währung, Zählungen und stats/summary/totals, bevor die verbleibenden Plätze zu anderen Schlüsseln mit dem kleinsten Wert zuerst gehen. Praktische Anleitung: Benennen Sie Ihre Felder mit diesem Standardvokabular und geben Sie die Felder zurück, die die Frage des Kunden beantworten, anstatt einen rohen 100_-Schlüsselplattformdump; ein Feld, das außerhalb des Vokabulars benannt wird, konkurriert um die übrig gebliebenen Sitze und kann aus sehr breiten Nutzlasten getrimmt werden.

Rückerstattungen · was Ihr Connector bietet

Zwei Rohoperationen, richtlinienfrei: (1) eine Zahlungsüberprüfung, die nach Identität filterbar ist UND eine Transaktionsreferenz (Ihr API muss UND die Filter), z. B. whmcs_get_transactions; (2) eine Rückerstattungsausführungsaktion (scope:"admin", requires_confirmation:true, is_destructive:true, niemals vom Kunden ausgesetzt), z. B. whmcs_refund_orderDas Unternehmen wählt beide Tasten in Einstellungen → Client Chat aus; OpsIQ überprüft erneut die Zahlungsserverseite, wendet das Richtlinienfeld des Unternehmens an (Betragsobergrenze, Altersfenster, monatliches Limit), Probleme innerhalb der Box und reicht ein Bewertungsticket für alles andere ein.

No-Code Builder

Der Aktionseditor des Connector Builders hat die gleichen Steuerelemente: Setzen Sie "Wer kann es verwenden" auf Angemeldete Kunden, lassen Sie beide Kontrollkästchen aus und verwenden Sie einen Standard-Identitätsparameternamen.

Referenzimplementierungen

Die "Customer Self-Service" Einträge in connectors/whmcs/actions.json, woocommerce/actions.json, oscommerce/actions.json; Vollständiger Vertrag in connectors/README.md §8.1–8.2 und ConnectorInterface::registerActions().

Connectoren

Gast-Lookups - lassen Sie Besucher eine Buchung, Lieferung oder Bestellung verfolgen OHNE Anmeldung (guest_lookup)

Hotels, Kuriere und viele Commerce-Plattformen bedienen Kunden, die eine Referenz haben, aber kein Login: einen Gast mit einer Buchungsbestätigung, einen Empfänger mit einer Tracking-Nummer. guest_lookup Fähigkeit (Connector Contract, Modus: generiert) ermöglicht es IHREM Connector, die Besucher im Client-Chat zu bedienen AI - neinOpsIQKernänderungen, keine Plattform-Hardcodierung. Ihr Connector erklärt WAS die Berechtigung beweist und welche Felder sichtbar sind;OpsIQerzwingt die Schalter, das Gas und die Uniform deny.

Das Vertrauensmodell

Referenz + Beweis, niemals Identität

Der Besucher liefert die Datensatzreferenz (übereinstimmend mit dem Regex, den Sie deklarieren) plus den von Ihnen ausgewählten Beweis - normalerweise die E-Mail auf dem Datensatz. Ihre Abrufaktion ruft den Datensatz SERVER-SIDE durch Referenz ab; OpsIQ's generierter Anbieter vergleicht den Beweis mit dem FETCHED-Datensatz. Die Eingabe des Besuchers wird nie vertrauenswürdig und es wird keine verifizierte Identität erstellt: das Match berechtigt den Besucher zu den zulässigen Feldern dieses einen Datensatzes, sonst nichts.

Uniform Deny (keine Enumeration Orakel)

Die KI wird ausdrücklich angewiesen, niemals zu bestätigen, ob eine Referenz existiert und niemals Datensatzdetails zu erfinden. Versuche sind pro Konversation + IP durch Core begrenzt, bevor Ihr Connector jemals konsultiert wird.

Double Opt-in, beide standardmäßig AUS

Nichts dient den Gästen, bis das Geschäft BEIDE Switches ermöglicht: die Workspace-weite Steuerung in Settings→Sicherheit→"Gastaufzeichnungs-Lookups im Client-Chat" (erlaubnisgeschützt UND immer passwortbestätigt, auch wenn die optionale Schrittaufnahme deaktiviert ist) und der eigene Connector guest_lookup_enabled Einstellungen umschalten. Das Installieren oder Aktivieren eines Steckers allein öffnet niemals die Gästeoberfläche.

Die engagierte Gästeoberfläche

Der generierte Anbieter registriert sich auf der guest Kontextoberfläche - strukturell getrennt von admin und customer. Bestehende Kontextanbieter werden niemals für anonyme Besucher konsultiert, und der Gastanbieter wird nie für angemeldete befragt. Der empfangene Ctx trägt die Chat-Nachricht, die Thread-ID und die vom Besucher behaupteten (nicht verifizierten) Pre-Chat-E-Mails als Beweiskandidat - keine Identitätsfelder.

Deklarieren Sie es im Builder

1
Definieren Sie die Fetch-Aktion

Fügen Sie im Schritt Aktionen eine schreibgeschützte Aktion hinzu, die EINEN Datensatz durch ihre Referenz zurückgibt (z. B.) GET /bookings/{booking_number}) und seine Antwortfelder mit Aliasnamen abbilden: Status, Ankunft, Abreise, room_type, customer_email...

2
Tick "Guest Lookups"

Auf der Stufe Fähigkeit, aktivieren guest_lookupEin eigenes Panel erscheint: Wählen Sie die Aktion abrufen, benennen Sie den Referenzparameter, geben Sie das Referenzmuster (ein Regex-Körper wie z. B. \bBK-[0-9]{4,10}\b), benennen Sie den Datensatz ("Buchung") und wählen Sie den Beweis - E-Mail auf dem Datensatz (empfohlen) oder keine (Referenz allein, nur für Status-Kurier-Tracking).

3
Zulässige sichtbare Felder

Alles andere ist DROPPED — nie redigiert. Der Builder lehnt PII-förmige Felder (E-Mail, Telefon, Adresse, Zahlung...) in der Genehmigungsliste ab und die Release-Gate-Konformitätssuite überprüft dieselbe Regel erneut, bevor sie veröffentlicht wird, so dass eine handbearbeitete Spezifikation keine einschleichen kann. Beachten Sie, dass die Validierung der Installationszeit nur das Manifest und die Signatur abdeckt, also führen Sie die Konformitätssites selbst aus, bevor Sie versenden. Das Beweisfeld selbst kann niemals angezeigt werden.

4
Publish und aktivieren

Der Builder emittiert GuestLookupProvider.php - die kanonische gehärtete Implementierung, identisch für jedes generierte Paket - und fügt das hinzu guest_lookup_enabled Umschalten Sie zu den Einstellungen Ihres Connectors. Das Unternehmen schaltet die beiden Switches und die Chat-AI bietet das Lookup an, wenn ein Besucher nach Ihrem Datensatztyp fragt.

Vertragsbedingungen

Nur Statusförmige Felder

Denken Sie daran, "was würde ein Kurier auf der öffentlichen Tracking-Seite drucken": Status, Daten, Zimmer oder Servicekategorie, zählt. Namen, Kontaktdaten, Straßenadressen, Zahlungsdaten und Freitextnotizen haben keinen Platz in einem anonymen Chat - sowohl der Builder als auch die Konformität verweigern sie.

Die KI antwortet NUR aus dem Block

Der generierte Anbieter beendet seine Ausgabe mit der Anweisung, nur aus den aufgeführten Feldern zu antworten und ein Ticket für alles andere anzubieten. Detail nicht in der Erlaubnisliste ist "nicht im Chat verfügbar" - nach Design.

Follow-ups arbeiten weiter

Der Anbieter leitet die Referenz aus den letzten Nachrichten des Besuchers in derselben Konversation erneut ab, also "und wann ist Check-out?" funktioniert ohne erneute Eingabe der Referenz. Die übereinstimmende Referenz und Beweis-E-Mail werden im Chat-Thread als KANDIDATE gespeichert, so dass Follow-ups nicht erneut fragen. Sie sind nur Kandidaten: Jede Runde holt immer noch die Datensatzserverseite neu ein und vergleicht den Beweis, bevor sie ein einzelnes Feld veröffentlicht.

Handschriftenpakete

Ein Marktplatzpaket kann sein eigenes Paket versenden GuestLookupProvider.php implementing ContextProviderInterface mit surfaces(): ['guest']. Befolgen Sie den Vertrag der generierten Vorlage genau — abrufen nach Referenz, Server-Seite mit Proof-Match, einheitliches Deny, reine Erlaubnislistenausgabe — und erklären guest_lookup in capabilities. Die Konformität überprüft die Gästeoberfläche und scannt die Erlaubnisliste auf PII.

💡
Gast-Lookups sind schreibgeschützter Kontext für die Chat-AI. Sie führen niemals Aktionen aus, erstellen nie Identitäten und entsperren niemals den oben genannten Kunden-Self-Service-Aktionspfad - dieser Pfad erfordert immer noch einen plattformverifizierten angemeldeten Kunden.
Connectoren

Zielgruppen-Targeting (promo_audience)

Lassen Sie das Promotion Studio Kampagnen von LIVE Client und Rechnungsstellung auf Ihrer Plattform anvisieren: "hat eine unbezahlte Rechnung", "Auftrag ausstehend", "Abonnement storniert". Jeder Connector (vorinstalliert, Marktplatz oder einer, den Sie selbst erstellen) wird durch die Implementierung zweier kleiner Methoden verbunden. Keine OpsIQ Kernänderungen, keine Plattform-Hardcoding: Ihr Connector erscheint als Plattform im Studio Targeting Tab mit eigener Dropdown-Datei von Fakten, und mehrere Konnektoren können nebeneinander aktiviert werden.

Promo-Audience
Zielgruppen-TargetingEine verifizierte Identität, die an einen Connector audienceFlags-Aufruf übergeben wird und Fakten erzeugt, die eine Targeting-Regel mit einer ausgefallenen Notiz bestimmen.Zielgruppen-TargetingArbeitsbereichEingeloggtVerifizierte IdentitätaudienceFlags()Ihr SteckverbinderFAKTENunpaid_invoices = 2REGELunbezahlte_Rechnungen ≥ 1Kampagnen-ShowsFails closed: unbekannter Client oder ein Fehler → Die Kampagne bleibt verborgen.1TWO METHODSaudienceCatalog + Flaggen2LIVE STATEUnbezahlt, noch nicht abgeschlossen, Status3FAIL-SAFEZeigt niemals falsche Person
Ihr Connector beantwortet die Live-Abrechnungsinformationen für den angemeldeten Besucher; das Studio zielt auf sie ab und schlägt fehl, so dass ein Abrechnungsangebot niemals die falsche Person erreicht.

Wie es funktioniert

1
Erklären Sie Ihre Fakten

Implementieren Sie audienceCatalog() in Ihrer Connector-Klasse. Es gibt ein Label und die Liste der Schlüssel zurück, auf die Ihre Plattform antworten kann. Jeder Schlüssel wird im Studio-Dropdown unter Ihrem Plattformnamen angezeigt.

2
Antwort für einen Kunden

Implement audienceFlags(array $identity). OpsIQ calls it at delivery time with the VERIFIED logged-in visitor identity (from the widget identity token, the same identity the client chat AI uses). Return a flat key => value map.

3
Geschehen

Der Reiter Promotion Studio Targeting erweitert den Bereich "Client & Billing", in dem Ihre Plattform aufgeführt ist; Administratoren erstellen Regeln wie "unpaid_invoices >="1„; jede Tatsache wird auch zu einer Personalisierungsvariable wie {unpaid_invoices}.

connector. php, der komplette promo_audience Vertrag
public function audienceCatalog(): array
{
    return ['label' => 'My Billing Platform', 'keys' => [
        ['key' => 'unpaid_invoices', 'label' => 'Unpaid invoices (count)', 'type' => 'number'],
        ['key' => 'pending_orders',  'label' => 'Pending orders (count)',  'type' => 'number'],
        ['key' => 'client_status',   'label' => 'Client status',           'type' => 'text'],
    ]];
}

public function audienceFlags(array $identity): array
{
    // $identity = verified token payload: ['email' => ..., 'id' => ..., 'name' => ...]
    $email = strtolower(trim((string)($identity['email'] ?? '')));
    if ($email === '') return [];
    $client = $this->api('GetClient', ['email' => $email]); // your platform call
    if (!$client) return []; // unknown client -> return [] (fails CLOSED)
    return [
        'unpaid_invoices' => (int)$client['unpaid_count'],
        'pending_orders'  => (int)$client['pending_orders'],
        'client_status'   => (string)$client['status'],
    ];
}

Vertragsbedingungen

Werben für die Fähigkeit

Additiv 'promo_audience' zu Ihrem Connector capabilities() Array, so dass die Plattform und der Marktplatz es als Audience-fähig auflisten (die Entdeckung funktioniert auch von der Methodenpräsenz aus, aber sie ist das saubere Signal). connectors/whmcs Connector ist die vollständige Referenzimplementierung.

Schlüsselbezeichnung

Kleinbuchstaben-Schlange_Fall, 2-60 chars, übereinstimmend ^[a-z0-9_]+$. Typen: Zahl, Text, bool. Nicht deklarierte Schlüssel, die von audienceFlags() zurückgegeben werden, sind immer noch in Regeln verwendbar, aber deklarieren Sie alles, was Sie unterstützen, damit Administratoren es sehen können.

Identität wird überprüft

The $identity array comes from the signed widget identity token issued by the customer site at login, never from client-supplied fields. If your platform cannot resolve the identity, return an empty array.

Fail closed · immer

Bei jedem Fehler (API down, Client nicht gefunden, Timeout) Return []. Eine Regel, deren Tatsache fehlt, lässt die Kampagne NICHT erscheinen. Ein auf Rechnung ausgerichtetes Popup darf niemals die falsche Person erreichen; OpsIQ setzt dies auch im Regel-Matcher durch.

Leistung

audienceFlags() wird höchstens einmal pro Connector und Seitenaufruf aufgerufen, und NUR wenn eine veröffentlichte Kampagne tatsächlich die Regeln Ihrer Plattform verwendet. Anonyme Besucher kosten Sie null Anrufe. 1-2 API Anrufe; OpsIQ Memoizes innerhalb der Anfrage.

Freigestellte Marktteilnehmer

Administratoren kombinieren Ihre Schlüssel mit =, !=, >,>=, <,<=, enthält, ist gesetzt, ist leer, Sie liefern nur Werte.

Personalisierungstoken

Jede Tatsache verdoppelt sich als Variable in der Kampagnenkopie: {unpaid_invoices}, {client_status}, plus die eingebauten {first_name} und {client_email} Werte werden vor dem Rendern saniert.

Steckverbinder ohne Code-Marktplatz

Automatische Fakten

Erklärung ()JSON-nur) Marktplatz-Connectors erhalten promo_audience KOSTENLOS: wenn Ihr Connector Kunden/Nutzer, Rechnungen, Bestellungen oder Abonnementressourcen angibt, OpsIQ leitet customer_status, unpaid_invoices, amount_due, pending_orders, active_subscriptions und subscription_status aus Ihren vorhandenen Suchaktionen ab.

Benutzerdefinierter Katalog (Einstellungen.json)

Fügen Sie ein audience_capabilities-Objekt hinzu · {"label": "Meine Plattform", "keys": [{"key": 'open_carts', "label" - "Open carts", "type":"number"}]}, um genau zu steuern, welche Fakten (und Labels) im Studio Dropdown erscheinen.

Testen Sie Ihren Provider

1
Verbinder aktivieren

Steckverbinder > Ihr Stecker > Aktivieren. Dann öffnen Sie die Registerkarte Targeting einer Kampagne. Ihre Plattform muss unter "Client & Billing (Verbindungen)" erscheinen.

2
Erstellen einer Regel

Fügen Sie hinzu: Ihre Plattform · ein Schlüssel · >= · 1 und legen Sie "Nur angemeldete Clients" fest.

3
Überprüfen Sie beide Richtungen

Melden Sie sich bei Ihrer Plattform als Client an, der die Regel erfüllt (Popup muss angezeigt werden) und als einer, der nicht (Poppup muss verborgen bleiben).

Starten Sie eine Kampagne aus Ihrem eigenen Code (benutzerdefinierter Auslöser)

Warum

Über die eingebauten Trigger hinaus (Verzögerung, Scrollen, Exit-Intent, Leerlauf, Klicken, Seiten angesehen, Chat / Ticketaktivität) können Sie eine Kampagne von überall auf Ihrer Website oder Ihrem Connector-Frontend nach einem erfolgreichen Checkout-Schritt starten, wenn ein Warenkorb aufgegeben wird, wenn Ihr SPA die Route ändert usw.

Wie

Setzen Sie den Kampagnentrigger auf Zoll mit einem Ereignisnamen (z. B. checkout_failed), dann rufen Sie den globalen Hook von Ihrer Seite:

Ihre Website / Connector Front-End JS
// Any campaign whose Custom trigger event matches will be evaluated
// (it still respects targeting, frequency caps and audience rules).
window.OpsIQPromo && window.OpsIQPromo.fire('checkout_failed');
💡
Das Abfeuern eines Events übergeht niemals Targeting oder Frequenz, sondern gibt nur das „Wann frei. Die Kampagne muss noch alle Regeln (Geo, Publikum, Zustimmung, Caps) bestehen, bevor sie angezeigt wird.
Der vollständige Leitfaden zur Verwendung (Design, Blöcke, Analysen, A/B, Veröffentlichung) befindet sich im In-App Help Center unter Engage → Promotion Studio auf Pinterest. Die Fähigkeit hier wird automatisch von jedem ENABLED-Connector in connectors/ oder marketplace_connectors/ entdeckt. Es gibt nichts zu registrieren. Versenden Sie die beiden Methoden und das Studio erledigt den Rest.
Connectoren

Vermessungssteckverbinder (Vertrag 2.2)

Die survey Mit der Fähigkeit können alle Plattformen verifizierte Kundenidentitätsadapter, Zuschauerdaten, sichere Variablen und Empfängerkandidaten an Survey Studio liefern. promo_audience und gibt keinem Connector das Eigentum an Umfragen, Antworten, Analysen oder E-Mail-Zustellung.

💡
Status der Umsetzung. Die Autorisierung ist vollständig und heute verwendbar: Konnektorvertrag 2.2, SurveyConnectorInterface, das dedizierte Builder-Panel, generiert SurveyProvider.php, Paket-Metadaten und Konformitätsisolierung alle Schiffe; der Verbrauch ist noch nicht verdrahtet: SurveyConnectorRegistry ist implementiert und getestet, aber keine Survey-Runtime ruft es noch auf, so dass die Provider-Gesundheit nicht in der Admin-Benutzeroberfläche aufgetaucht ist und kein veröffentlichtes Connectorpaket die Fähigkeit erklärt. Signed-Token Survey Identity Gateway Ausgabe, Targeting und Variablenintegration, CRM Outreach Materialisierung und die ersten ausgelieferten Provider-Mappings bleiben getrennte Phasen. Bauen Sie jetzt gegen diesen Vertrag; erwarten Sie, dass die Laufzeit beginnt, sie in einer späteren Version zu verbrauchen.

Verantwortlichkeiten des Anbieters

Publikumskatalog und Fakten

Typische Fakten sind order_count, last_order_status, cancel_order/count, customer_created_at, active_subscription_count und past_due_invoice_count.

Variable Kataloge und Werte

Deklarieren Sie Kunden-, Konto-, Bestell-, Abonnement- und Supportvariablen mit Art, Empfindlichkeit und zulässigem Kontext.

Empfänger-Paging

Optional Kandidaten für CRM Outreach mit stabilen externen IDs, begrenzten Seiten, deterministischen Cursoren und zustimmungsbezogenen Metadaten aufzählen.

Identität

Identität nur vom Survey Identity Gateway nach Token-Signatur, Ablauf, Zweck, Connector und Workspace-Verifizierung akzeptieren. Browser-versorgte E-Mails, IDs, Tags oder Abrechnungsinformationen sind niemals maßgebend.

Laufzeit der Laufzeit

SurveyConnectorRegistry wurde entwickelt, um kompatible, blockierte und nicht verfügbare Anbieter zu melden, ohne Einstellungen, Pfade, Rohidentitäten oder Ausnahmemeldungen offenzulegen, und ein blockierter Provider kann niemals aufgerufen werden. Die Berichtsoberfläche ist noch nicht in der Administrator-Benutzeroberfläche angezeigt: Heute ist ein blockiertes Unternehmen einfach inert.

Fail-closed Regeln

Nicht deklarierte Schlüssel, falsche Typen, übergroße Werte, Subjekt-Mismatches, Connector-Timeouts und unbekannte Identitäten werden abgelehnt. Eine Targeting-Regel, die eine nicht verfügbare Tatsache erfordert, stimmt nicht überein. Empfängerseiten werden gedeckelt und geprüft. Sensible Werte erscheinen niemals in öffentlichen Vorschau oder Protokollen.

Builder Release Gate

Vertrag 2.2 versendet den Fähigkeitsregistereintrag, die Schnittstelle, das Survey Mapping Panel, generiert SurveyProvider.php, Fähigkeitsversion, README/Entwicklerreferenz und Konformitäts-Fixes. Commerce, Helpdesk, SaaS Bridge und lokale PHP-Profile enthalten es; Standard API Connectors opt in. Das statische Gate lehnt einen Umfrageanbieter ab, der einen Promotion Namespace, eine Tabelle oder eine Funktion aufruft.

💡
Kopieren aus Promotion ist nur importierend: Der Builder kann kompatible Promotion-Mappings einmal übersetzen, eine vollständige Survey-eigene Kopie speichern und die Herkunft aufzeichnen. Das Löschen oder Ändern des Promotion-Zuordnung darf das Verhalten der Umfrage nicht ändern.
Connectoren

Antwort-Feedbackfähigkeit (Vertrag 2.2)

Die reply_feedback Die Fähigkeit spiegelt die eigenen Per-Reply-Bewertungen einer Plattform in OpsIQ. Ein Stern, den ein Kunde einem Mitarbeiter im Inneren gibt WHMCS Der Kundenbereich landet auf der gleichen Antwort in der OpsIQ Admin-thread, mit dem gleichen chip, agentenkredit, feedback-seiteneintrag und team & performance berechnung als bewertung auf einem.OpsIQ Portalticket. Ein Speicher, ein Chip, eine Pipeline; der Stecker übersetzt nur.

Der One Write Path

Es gibt genau zwei Einsteigerpfade und eine Wahrheit. OpsIQ Portaltickets schreiben nativ. Plattformtickets fließen durch den Connector, und Core landet jedes Ereignis über ReplyFeedback::recordMirrored(): die gleichen Spalten, Personal-only-Regel, One-Rating-per-Reply-News-Wins-Semantik, Arbeitsbereichsstempel und Voice of Customer Indexierung des Portalschreibvorgangs. Ein Connector schreibt niemals selbst Feedbackzeilen.

Konform (vier Dateien, dann erneut signieren)

1
connector_contract.json

Fügen Sie den capabilities. reply_feedback-Eintrag hinzu: Version 1.0, die ReplyFeedbackConnectorInterface, Methoden answerFeedBackCatalog und pullReplyFeetback, impliziert inbound_ticket.

2
settings.json

Fügen Sie answer_feedback zur Liste der Fähigkeiten hinzu.

3
spec.json

Deklarieren Sie answer_feedback. modes (Umfrage und/oder Webhook) und die Bewertungsskala der Plattform, was das Konformitätsgatter liest.

4
Laufzeitklasse

Implementieren Sie die Schnittstelle, listen Sie reply_feedback in capabilities() auf und unterschreiben Sie das Paket erneut.

Verantwortlichkeiten des Anbieters

Katalog

Deklarieren Sie Modi, die eigene Rating-Skala der Plattform (Core normalisiert sich zum nativen) 1-5), und alle Reaktions-Token. Der Katalog muss mit spec übereinstimmen.json.

Pull Übersetzung

pullReplyFeedback gibt kanonische Ereignisse zurück: Plattformticket-ID, Plattformantwort-ID , Bewertung, optionale Reaktion / Kommentar, eingereichte Zeit und eine stabile Event_id. Es liest und übersetzt.

Idempotenz

event_id ist pro Feedback STATE stabil, so dass ein wiederholtes Ereignis ein No-Op und eine geänderte Bewertung überschreibt (letzter Gewinn wie das Portal).

Cursordisziplin

Seiten sind begrenzt und deterministisch; ein Cursor, der nicht vorwärts geht, beendet den Lauf. Historische Auffüllung läuft ab wie ein rollendes Fenster, niemals eine riesige Zugkraft.

Sondensicherheit

Wenn keine Konfiguration vorhanden ist, geben Sie eine leere vollständige Seite zurück anstatt zu werfen.

Nicht geschlossene Auflösung

Core löst jedes Ereignis auf eine lokale Antwort durch den Spiegelmarker der Ticketspiegel bereits stempelt ()<slug>:<ticket>:reply:<reply>Ein Ereignis, das nicht gelöst werden kann, wird fallen gelassen, nie erraten; Feedback hängt nur an Antworten des Personals; und Agentenkredit kommt immer vom vorhandenen Autor der Antwort. inbound_ticket oder ticket_mirror.

Bearbeitetes Beispiel: WHMCS

WHMCS speichert Client-Bereich pro Antwortsternbewertung in tblticketreplies.rating. WHMCS Der Connector deklariert den Poll-Modus mit einem 1-5 Waage, Schiffe a ticket_reply_ratings Relay-Befehl in seiner Bridge-Datei und übersetzt jede Zeile in ein Ereignis, dessen IDs mit dem whmcs:<ticket>:reply:<reply> Nach dem Upgrade des Connectors kopieren Sie die Bridge-Datei erneut auf den Server WHMCS, damit der neue Befehl dort existiert.

💡
Vollständiger Entwicklervertrag mit der Schnittstelle, Ereignisformen, Normierungsregeln und Konformitäts-Checkliste: doc/contracts/TICKET_REPLY_FEEDBACK_CAPABILITY.md in der OpsIQ Paket. Akzeptanz: Bewerten Sie eine Antwort innerhalb der Plattform, warten Sie auf die stündliche Umfrage und dieselbe Antwort in OpsIQ zeigt den Chip, die Feedback-Seite listet ihn auf und ein wiederholtes Ereignis ändert nichts.
Connectoren

Connector Marketplace

Der Marktplatz ermöglicht es Ihnen, Connectors zu entdecken, zu installieren und zu veröffentlichen, die von der Community erstellt wurden.

Marktplatz
Connector MarketplaceEin durchsuchbares Raster von Community-Connectorkarten mit Kategorien, Installieren von Schaltflächen und Sternbewertungen.Connector MarketplaceArbeitsbereichSuchen Sie Connectors...KalendineZeitplanungInstallieren★ 4.8HubSpotCRMInstallieren★ 4.6PostchimpE-MailInstallieren★ 4.7QuickBooksBuchführungInstallieren★ 4.5TwilioSMSInstallieren★ 4.9NominalwertDokumenteInstallieren★ 4.41DISCOVERSteckverbinder der Gemeinschaft2INSTANDEin Klick3PUBLISHUnterschreiben & Einreichen Ihrer
Durchsuchen Sie Community-Connectors, installieren Sie mit einem Klick oder signieren und veröffentlichen Sie Ihre eigenen vorinstallierten und Marktplatzebenen.

Finden und Installieren von Steckverbindern

1
Browsen

Gehen Sie zu Connectors > Marketplace. Suchen nach Name, Kategorie oder Plattform.

2
Überprüfung

Überprüfen Sie die Beschreibung, unterstützte Aktionen und Bewertungen.

3
Installieren

Klicken Sie auf Installieren. Das Konnektorpaket lädt und installiert es auf marketplace_connectors/.

4
Konfigurieren

Aktivieren Sie es in Connectors, geben Sie API -Anmeldeinformationen ein und testen Sie.

Veröffentlichen eines Connectors

1
Bau und Test

Verwenden Sie den Connector Builder. Überprüfen Sie alle Aktionen arbeiten.

2
Paket

Profil erzeugen.json, Aktionen.json, Wissen.json und PHP-Dateien.

3
Zeichen

Run php tools/sign_connector.php <slug> to sign ONE package (it also accepts a path). It does not boot OpsIQ, so give it the key: either --key=<secret> or the OPSIQ_CONNECTOR_SIGNING_KEY environment variable, otherwise it stops with "No signing key available". tools/resign_all_connectors.php re-signs EVERY package on the install and reads the key from settings by itself, but it can also mint a NEW install-wide signing key, so reach for it only when that is what you want.

4
Einreichung

Hochladen durch den Marktplatz-Einreichungsfluss zur Überprüfung.

Zwei Steckverbinderebenen

Steckverbinder/- was eigentlich läuft

Die Laufzeit-Discovery-Root. Alles hier ist live: die Steckverbinder, die mit OpsIQ ausgeliefert werden, alles, was vom Marktplatz installiert wurde und alles, das der Connector Builder auf dieser Installation veröffentlicht.

marketplace_connectors/ — wo Pakete verfasst werden

Die Publishing-Quelle für First Party Marketplace Pakete. Es ist keine Discovery Root: Nichts hier ist live, bis es verpackt, signiert, in den Katalog eingesät und installiert wird, an dem eine Kopie in Connectors landet /

💡
Ein Paket, das Sie unter marketplace_connectors/ verfasst haben, ist nicht die Kopie, die ausgeführt wird – indem Sie es in Connectoren installieren / und nur diese Kopie wird zur Laufzeit entdeckt.StripeBigCommerce, Magento2, PrestaShop, OpenCart, Amazon SES, Postmark und Resend sind alle Marktplatzpakete: Installieren Sie eines, bevor Sie es in Connectors finden.
Entwickler

API und Webhook Builder

Die API und Webhook Builder können Sie benutzerdefiniert erstellen API Endpunkte und Webhook-Hörer im Inneren OpsIQ Ohne rohes PHP zu schreiben.

API Builder
API und Webhook BuilderEin Builder, der einen Triggertyp (Inbound-Webhook, Zeitplan, Ereignis, Handbuch) auswählt, der in eine konfigurierbare Aktion eingespeist wird.API & Webhook BuilderArbeitsbereichAUSLÖSENEingehender WebhookZeitplan (cron)OpsIQ EreignisManuellAktionLandekarteneingänge →Ticket erstellen / benachrichtigen / anrufen APIEndpunkt speichern1TRIGGERWebhook · Zeitplan · Veranstaltung2NO RAW PHPGebaut in der UI3AKTIONKartenfelder, dann laufen
Erstellen Sie Endpunkte ohne PHP: Wählen Sie einen Trigger (eingehender Webhook, Zeitplan, Ereignis oder Handbuch), und ordnen Sie dann Felder einer Aktion zu.

Trigger

Veranstaltung

Laufen, wenn etwas passiert in OpsIQ, oder wenn ein externes System ein passendes Ereignis in Ihrem Webhook veröffentlicht URL Geben Sie den Ereignisnamen ein, z. B. ticket.created.

Zeitplan

Verwenden Sie als Ereignisname eines der eingebauten Intervallereignisse: cron. minutely, crons. hourly oder cron,daily. Der Bildschirm Aktionen und Auslöser hat Schaltflächen für diese, so dass Sie sich nicht daran erinnern müssen.

Phrase

Führen Sie, wenn ein Administrator die KI danach fragt, in einfacher Sprache aus. Fügen Sie den Satz hinzu, der übereinstimmen soll, z. B. Kunden finden.

Eingehender Webhook

Ein externes System sendet eine HTTP-Post an Ihre OpsIQ Netzhaken URL mit einem Ereignisnamen. Jeder Auslöser, der auf dieses Ereignis hört, feuert.

Führen Sie es nur manchmal aus: Bedingungen

Ein Ereignistrigger kann Bedingungen tragen, also läuft er nur dann, wenn die ankommenden Daten übereinstimmen.

Feld

Ein Pfad in die Ereignisdaten. Verwenden Sie einen Punkt für verschachtelte Werte, z. B. customer. email.

Alle oder alle passen

Wählen Sie, ob jede Regel übereinstimmen muss oder nur eine davon.

Textprüfungen

Ist gleich, ist nicht gleich, enthält, enthalten nicht, beginnt mit, ist einer von, ist keiner von.

Anzahl der Prüfungen

Zahlen, die als Text geschrieben sind, vergleichen sich immer noch korrekt.

Vorkommenstests

ist vorhanden, fehlt, ist leer, ist nicht leer.

Nur Seite der On-Call-Ingenieur für dringende Tickets

Szenario:
Event ticket.created, with one rule: priority equals urgent.
Was zu tun ist:

Die Aktion läuft für dringende Tickets und wird für alles andere übersprungen.

💡
Wenn Sie die Regeln leer lassen, läuft der Trigger bei jedem übereinstimmenden Ereignis, was das gleiche Verhalten ist wie vor den Bedingungen.

Aktionen

Webhook senden

Senden Sie HTTP POST an ein externes URL mit einer benutzerdefinierten Nutzlast.

Erstellen Sie ein Ticket

Erstellen Sie ein Support-Ticket mit angegebener Abteilung, Betreff und Nachricht.

E-Mail senden

Senden Sie eine E-Mail mit einer benutzerdefinierten Vorlage.

Aktualisierungsprotokoll

Aktualisieren Sie einen Kunden-, Ticket- oder CRM-Record.

Steckverbinder

Führen Sie eine registrierte Aktion von einem aktivierten Connector aus mit den Regeln für die Berechtigung und Bestätigung des Connectors.

Lauf OpsIQ Generaldirektion API Aktion

Durchsuchen Sie den kompletten Namen General API Katalog. Felder, Umfange, Berechtigungen, Bestätigung, Idempotenz und Dry-Run-Unterstützung stammen aus dem Live-Action-Vertrag; der Workflow wird innerhalb des gespeicherten Arbeitsbereichs und Administratorkontexts ausgeführt.

Senden Sie providernative API Request

Verwenden Sie einen Connector Native API Lesen oder bestätigt Native API Schreibe eine Aktion, wenn der Provider-Endpunkt keine kuratierte Aktion hat. Die Anmeldeinformationen bleiben im Connector und es werden nur relative Anbieterpfade akzeptiert.

Der Actions & Triggers Builder, /api/v1.php, OpenAPI und Postman verwenden die gleiche ActionContractRegistry, sodass eine auswählbare Aktion nicht von der Laufzeitdokumentation driften kann.
Entwickler

Triggers Kochbuch

Gebrauchsfertige Trigger-Aktionsrezepte für gängige Automatisierungen.

Wie es funktioniert
Triggers KochbuchEin Rezeptfluss: ein uptime. down Webhook passiert einen Produktionsfilter, dann Fans aus, um ein dringendes Ticket zu erstellen und Slack zu benachrichtigen.uptime.downMonitor-Webhookwenn prodfilterErstellen Sie dringende TicketsBenachrichtigen Sie Slack #ops
Triggers Kochbuch

Auto-Erstellen Ticket aus der Überwachung

Szenario:
Monitoring system sends POST when server goes down.
Was zu tun ist:

Trigger: Inbound webhook Condition: payload.status = "down" Action: Create ticket · Dept: Technical, Subject: "Server {{payload.hostname}} down", Priority: Urgent

Slack-Benachrichtigung bei großen Bestellungen

Szenario:
Slack message every time a customer places an order over $100.
Was zu tun ist:

Trigger: Event (order.completed) Condition: order.amount > 100 Action: Send webhook to Slack incoming webhook URL with order details

Wöchentliche Digest E-Mail

Szenario:
Summary email to management every Monday at 9am.
Was zu tun ist:

Trigger: Schedule (Monday 09:00) Action: Send email with last week's stats pulled from the REST API

Eskalierende abgestandene Tickets

Szenario:
If a ticket has no reply for 24 hours, assign to team lead.
Was zu tun ist:

Trigger: Schedule (every hour) Condition: ticket.status = "Open" AND ticket.last_reply_age > 86400 Action: Assign to team-lead, add internal note

Entwickler

Aufbauen Sie Ihre erste Aktion

Diese Walkthrough schafft eine einfache Connector-Aktion von Grund auf neu.

Baumaßnahmen
Aufbau einer AktionEin Aktionsdefinitionsformular: name lookup_order, eine GET-Anfrage an /orders/{id}, ein typisierter ID-Parameter und eine Weitergabe 200 Prüfung.Neue MaßnahmeArbeitsbereichNeue MaßnahmeNamelookup_orderAntragGET/orders/{id}Eckenid · Zeichenfolge200 · order found1DEFINEName, Methode, Endpunkt2PARAMSTypisierte Vorleistungen3PRÜFUNGLive 200 Ergebnis
Erstellen Sie eine Aktion von Grund auf neu. Benennen Sie sie, legen Sie die Methode und den Endpunkt fest, deklarieren Sie eingegebene Parameter und testen Sie sie auf ein Live- 200.

Zwei Arten von Aktionen

Bevor Sie beginnen, entscheiden Sie, welche Sie benötigen. Beide sind auf dem gleichen Bildschirm konfiguriert.

Rufen Sie ein externes API an

Die Aktion sendet eine HTTP-Anfrage an Ihre Plattform. Wählen Sie diese aus, wenn OpsIQ etwas auf Ihrer Seite tun muss.

Führen Sie eine Connector-Aktion aus

Die Aktion führt etwas aus, das ein bereits installierter Connector bereitstellt. Wählen Sie dies, wenn die Arbeit bereits verfügbar ist und Sie sie nur auslösen möchten. Sie wählen die Connectoraktion aus einer Liste, so dass es nichts zu verkabeln gibt.

Die zweite Option ist, wie Sie alles wiederverwenden können, was Ihre Steckverbinder bereits tun können, ohne es erneut zu erstellen: Lesen Sie einen Ticket-Thread, suchen Sie nach einem Kunden, importieren Sie Kontakte und so weiter. Wählen Sie die Steckeraktion aus der Dropdown-Datei und Sie sind fertig.
1
Planen Sie die Maßnahme

Beispiel: "lookup_product". Suchen Sie nach Name, Rückgabepreis, Lagerbestand und Beschreibung.

2
Definieren Sie in Aktionen.json

Fügen Sie die Action-Definition hinzu:

Aktionen.json — die reale manifeste Form
{
  "actions": [
    {
      "action_id": "lookup_product",
      "label": "Look up a product",
      "category": "Catalogue",
      "description": "Find a product by name and return price, stock and description.",
      "scope": "admin",
      "requires_confirmation": false,
      "is_destructive": false,
      "delivery_type": "http",
      "http_method": "GET",
      "http_url": "/api/products/search",
      "parameters": [
        { "name": "name", "type": "string", "required": true, "in": "query",
          "description": "Product name to search for" }
      ],
      "returns": [
        { "alias": "id",          "path": "data.id",             "type": "string" },
        { "alias": "name",        "path": "data.name",           "type": "string" },
        { "alias": "price",       "path": "data.price",          "type": "number" },
        { "alias": "stock",       "path": "data.stock_quantity", "type": "number" }
      ]
    }
  ]
}
⚠️
Drei Dinge, die eine Aktion auslösen, können sich überhaupt nicht registrieren. action_id ist ERFORDERLICH und muss2bis100Zeichen aus Kleinbuchstaben, Ziffern und Unterstrichen – ein Eintrag ohne einen wird direkt abgelehnt. Das Manifest ist ein Objekt mit einer "Aktions"-LISTe, keine Karte, die mit dem Aktionsnamen markiert ist. Und Response Mapping ist "Returns" mit DOTTED Pfaden (data.id), nicht JSONPath ($.data.ID) – es gibt keinen "response_mapping", "Methode", "Endpunkt" oder "Params" -Schlüssel irgendwo in der Registry.
3
Test mit Trockenlauf

Im Schritt "Überprüfung" des Connector Builders drücken Sie den Trockenlauf. Er führt die vollständige Konformitäts-Checkliste mit Ihrem Paket aus und macht, wenn Sie Anmeldeinformationen geliefert haben, einen echten Verbindungstest. Es werden keine Beispieldaten verwendet.

4
Verifizieren der KI-Nutzung

Fragen Sie Admin AI: "Produkt Widget Pro nachschlagen." Die KI sollte die Aktion finden und ausführen.

⚠️
Hinzufügen einer Aktion zu Aktionen.json erzeugt KEINE AJAX-Route, so dass nichts regeneriert werden muss. Connector-Aktionen werden mit OpsIQ synchronisiert, wenn der Connector aktiviert ist oder seine Einstellungen gespeichert sind: Speichern Sie den Connector erneut und die neue Aktion erscheint. tools/gen_route_registry. php deckt den Admin-AJAx-Versand ab und hat keinen Einfluss auf die Connectoraktionen.
Entwickler

Endpunkte des eingehenden Ereignisses

Inbound-Endpunkte akzeptieren signierte JSON von einem anderen System und verwandeln es in deduplizierte Kontaktaktivität, die Zeitlinien, Scoring und Workflows liefern kann.

Produktbildschirm
Inbound-EndpunkteJede eingehende Quelle hat ihre eigene URL, geheimes, Mapping und aktuelles Aktivitätsergebnis.Inbound-EndpunkteArbeitsbereichQUELLEN5ACCEPTED12.4kREJECTED18LEBENDER ARBEITSPAZWERKAbrechnungsplattformAbonnementveranstaltungenGesundProdukt-AppAnmelde- und NutzungsereignisseGesundEreignis-IDprovider_event_idDeduplikationUnterschriftX-OpsIQ-Inbound-SignaturHMAC1CREATE SOURCEURL und geheim2MAP PAYLOADE-Mail, Veranstaltung und ID3VERIFYHMAC dann einnehmen
Jede eingehende Quelle hat ihre eigene URL, geheimes, Mapping und aktuelles Aktivitätsergebnis.

Erstellen Sie eine Quelle pro sendendes System. OpsIQ erzeugt a URL/token und geheim. Senden JSON mit Content-Type: application/json und unterschreiben Sie den genauen Rohkörper mit HMAC-SHA256:

X-OpsIQ-Inbound-Signature: sha256=<hex hmac>

Map JSON Pfade für die Kontakt-E-Mail, Ereignisname und optionale Ereignis-ID. Die Ereignis-Identifikation ist der bevorzugte Deduplizierungsschlüssel. Akzeptierte Aktivität tritt in die Kontaktzeitleiste ein und kann Lead-Scoring, Segmente, Lifecycle-Regeln und Workflows beeinflussen.

Ungültige Signaturen vor dem Parsen von Geschäftsdaten ablehnen, ein Geheimnis durch Aktualisieren beider Seiten innerhalb eines kontrollierten Fensters drehen; das Geheimnis nicht protokollieren.

Entwickler

Abgehender Webhook-Betrieb

Die Outbound-Webhook-Administration erstellt signierte Abonnements, testet Endpunkte und überwacht die asynchrone Lieferung und den Zustand des Wiederholvorgangs.

Produktbildschirm
Ausgehende WebhooksDie ausgehende Webhook-Seite listet HTTPS-Endpunkte, Event-Abonnements, Lieferzustand und einen mit einem Klick signierten Test auf.Ausgehende WebhooksArbeitsbereichENDPOINTS7SUCCESS99.2%RÜCKNAHME4LEBENDER ARBEITSPAZWERKCRM-SpiegelKontakt.* und Deal.*GesundUnterstützungsbusTicket.* und Chat.*GesundData Warehouse*WiederholenTestlieferungSignierte Nutzlast der ProbeFertig1SUBSCRIBEHTTPS URL und Ereignisse2AUTHENTICATEHMAC-Signatur3OBSERVEZustellschiene und -wiederholungen
Die ausgehende Webhook-Seite listet HTTPS-Endpunkte, Event-Abonnements, Lieferzustand und einen mit einem Klick signierten Test auf.

Vollständige Administratoren erstellen einen HTTPS-Endpunkt, wählen bestimmte Ereignisse oder die Platzhalter aus, speichern das Geheimnis sicher und senden einen Test. OpsIQ signiert mit HMAC-SHA256 die Rohnutzlast:

X-OpsIQ-Signature: sha256=<hex hmac>

Prüfung der Unterschrift vor Entzerrung oder Aktion; Lieferung erfolgt asynchron und automatisch nach etwa 1Minute, 5 Minuten, 30 Minuten,2Stunden und 12 Stunden. Verwenden Sie die kürzlich gelieferte Schiene, um den Status, den Antwortcode und die Versuchszählung zu überprüfen.

Ihr Empfänger muss idempotent sein, weil jedes asynchrone System neu liefern kann.

Entwickler

Webhooks

Webhooks lassen externe Systeme benachrichtigen OpsIQ Wenn etwas passiert (inbound), und lassen Sie OpsIQ Benachrichtigen Sie externe Systeme, wenn intern etwas passiert (outbound).

Webhooks
Ausgehende WebhooksDer Outbound-Webhooks-Bildschirm: eine Endpunkttabelle mit Name, abonnierten Ereignissen, letzten Lieferstatuspunkten und einer Send-Test-Taste.Ausgehende WebhooksArbeitsbereichEndpunkte+ Endpunkt speichernNAMEEREIGNISSELIEFERUNGENSlack #sales-alerts - Verkaufsalarmhttps://hooks.slack.com/…lead. created, VerkaufTestCRM-Spiegelhttps://api.acme.com/hookcontact.*, ticket. createdTestZapierhttps://hooks.zapier.com/…chat.startedTest1ENDPOINTSName, Ereignisse, URL2SIGNEDHMAC + automatisch getestet3SEND TESTÜberprüfung der Lieferungen
Der echte Outbound-Webhooks-Bildschirm: jeder Endpunkt mit seinen Ereignissen, dem aktuellen Lieferzustand und einem Ein-Klick-Sendetest, signiert und erneut getestet.

Ausgehende Webhooks

Zeichnung

Gehen Sie zu Einstellungen > Webhooks. Fügen Sie einen Endpunkt URL hinzu und wählen Sie Ereignisse aus, die Sie empfangen möchten.

Veranstaltungen

ticket. created, ticket. replied, chat. started, Chat. message, order. completed, crm. deal. stage_changed,crm. contact. creating usw.

Versuch

Fehlgeschlagene Lieferungen wiederholen sich mit exponentiellem Backoff. Nach 15 aufeinanderfolgenden Fehlern wird der Endpunkt automatisch deaktiviert.

Unterzeichnung

Jede Anfrage enthält eine HMAC-Signatur in X-OpsIQ-Symbol.

SSRF-Schutz

OpsIQ wird nicht an private / interne senden IPs (127.x 10.x 172.16.x 192.168.x 169.254.169.254).

Async-Lieferung

Webhooks werden über die Jobwarteschlange geliefert und blockieren nicht OpsIQ Operationen.

ID des stabilen Ereignisses

Jedes Ereignis hat eine eindeutige event_id, die bei allen Versuchsreihen für die Deduplizierung gleich bleibt.

Überprüfung von Webhook-Signaturen

PHP · Webhook-Signatur überprüfen
<?php
$payload   = file_get_contents("php://input");
$signature = $_SERVER["HTTP_X_OPSIQ_SIGNATURE"] ?? "";
$secret    = "opsiq_whsec_your_secret";

$expected = hash_hmac("sha256", $payload, $secret);
if (!hash_equals($expected, $signature)) {
    http_response_code(401);
    exit(json_encode(["error" => "Invalid signature"]));
}

$event = json_decode($payload, true);
// Process the event...
http_response_code(200);
echo json_encode(["received" => true]);
Node. js, überprüfen Sie die Webhook-Signatur
const crypto = require("crypto");

app.post("/opsiq-webhook", (req, res) => {
    const payload  = JSON.stringify(req.body);
    const sig      = req.headers["x-opsiq-signature"];
    const expected = crypto.createHmac("sha256", "opsiq_whsec_xxx")
        .update(payload).digest("hex");

    if (!crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(sig || "")))
        return res.status(401).json({ error: "Invalid signature" });

    console.log("Webhook:", req.body);
    res.json({ received: true });
});
Wie teste ich Webhooks lokal?+

Setzen Sie den Webhook-Endpunkt auf Ihren ngrok URL.

Was ist, wenn mein Endpunkt vorübergehend ausfällt?+

OpsIQ wird mit exponentiellem Backoff wiederholt. Wenn sich Ihr Endpunkt innerhalb des Wiederholfensters erholt, gehen keine Ereignisse verloren.

Entwickler

API-Schlüssel

API Schlüssel authentifizieren Anfragen an die OpsIQ REST API Jeder Schlüssel verfügt über Berechtigungen.

API-Schlüssel
API-SchlüsselDer API -Tastenbildschirm: ein Problemfeld mit Zugriffsebene und Umfangschips neben einer Liste vorhandener maskierter Schlüssel mit Sperrtasten.API-SchlüsselArbeitsbereichGeben Sie einen Schlüssel ausZugangNur lesenEingeschränktAnwendungsbereichecontacts.readtickets.readevents.writeAusgabeschlüsselDeine SchlüsselZapier-Integrationopq_•••4f2aWiderrufMobile Appopq_•••91c7WiderrufAnalytics Exportopq_•••2db0Widerruf1SCOPEDNur lesen oder eingeschränkt2PER-ACTIONWählen Sie genaue Scopes3REVOCABLEjederzeit rotieren
Der reale API -Schlüsselbildschirm: Geben Sie einen Scoped, Read-Only oder Restricted Key aus, indem Sie genaue Scopes auswählen und widerrufen Sie jeden Schlüssel jederzeit.

Erstellen eines API Schlüssels

1
Gehen Sie zu Einstellungen > API Keys

Navigieren Sie zu API Key Management.

2
Klicken Sie auf Create Key

Geben Sie ihm einen beschreibenden Namen.

3
Auswählen von Anwendungsbereichen

Geben Sie dem Schlüssel nur das, was er braucht. Die Bereiche werden in Lese- und Schreibpaaren pro Bereich angezeigt, so dass eine Berichtsintegration Lesevorgänge erhalten kann und sonst nichts.

Verfügbare Anwendungsbereiche

Wählen Sie das schmalste Set, das den Job erledigt. admin erfüllt jeden bereich unten, also verwenden sie ihn nur, wenn sie wirklich einen breiten zugang benötigen.

crm. read / crm-write

Kontakte, Unternehmen, Deals, Aktivitäten, Segmente, Outreach, Conversions, Lifecycle und CRM Webhooks.

tickets. read / tickets. write

Listen und lesen Sie Tickets und ihre Nachrichten; Antworten, Aktualisieren, Öffnen und Ausführen von Massenwarteschlangen.

conversations. read / conversations. write

Lesen Sie Live-Chat-Gespräche und Nachrichtenverlauf; Senden von Nachrichten, Zuweisen und Ändern des Status.

kb. read / kb

Einträge in der Wissensdatenbank.

chat. read / chat. write

Gespeicherte Antwortvorlagen.

connectors.read

Sehen Sie, welche Steckverbinder installiert sind, was sie tun können und testen Sie ihre Anmeldeinformationen.

automations.read

Sehen Sie Ihre Aktionen, Trigger und ihre Laufgeschichte.

departments.read

Abteilungen für Routing verfügbar.

notifications.read

Benachrichtigungen für einen benannten Betreiber.

analytics.read

Berichtsabschnitte, CSV exporte und Definitionen des geplanten Berichts.

site_intelligence. read

Überwachte Websites und ihre SEO-Berichte.

files.read

Signierte Download-Links für Anhänge.

status.write

Statusseitenkomponenten und Incidents.

writing

KI-Schreibhelfer: Entwurf, Zusammenfassung, Übersetzung, Umschreiben, Komponieren, Analysieren.

Admin

Alles, einschließlich einer kleinen Anzahl sensibler Aktionen, die absichtlich nicht durch einen engen Rahmen erreichbar sind: Löschen eines Kontakts, Ändern der Datenschutzeinstellungen und Lesen des Zugriffsprotokolls.

💡
Rufen Sie meta. actions mit Ihrem Schlüssel auf, um genau zu sehen, welche Aktionen es in Ihrer Installation ausführen kann. Das ist immer zuverlässiger als das Arbeiten aus einer Liste heraus.

Zugangsniveaus

alle

Der Schlüssel kann alles nennen, was seine Reichweiten erlauben.

Nur lesen

Jede Schreibweise wird abgelehnt, egal was der Anwendungsbereich sagt. Die sicherste Wahl für Berichte, Dashboards und alles, was niemals Daten verändern sollte.

Eingeschränkt

Sie listen die genauen Aktionen auf, die der Schlüssel aufrufen kann. Alles andere wird abgelehnt, sogar innerhalb eines erlaubten Rahmens.

4
Kopieren Sie den Schlüssel

Einmal gezeigt. Beginnt mit "opq_". Speichern Sie es sicher.

🚫
Niemals teilen API Schlüssel im öffentlichen Code, Client-Seite JavaScript, oder Versionskontrolle; Verwendung von Umgebungsvariablen.
Entwickler

Verbinden Sie Ihre Website

Die OpsIQ Widget ist ein JavaScript Snippet, das Sie zu Ihrer Website hinzufügen, um Tracking, AI-Chat, Ticketerstellung und Kundenidentifikation zu verwenden.

Wie es funktioniert
Verbinden Sie Ihre WebsiteEin einzeiliges Skript-Tag auf der linken Seite und rechts eine Webseite mit der OpsIQ Chat-Blase, die in der Ecke erscheint.<!-- paste before </body> --><script src="https://cdn.opsiq.io/w.js" data-site="ws_8a2f" async></script>
Verbinden Sie Ihre Website

Grundlegende Einrichtung

Basic Widget Snippet
<script src="https://your-opsiq-domain.com/widget.php"
  data-site-key="site_abc123"
  async></script>

Paste before the closing </body> tag. The script loads asynchronously and does not block page rendering.

Konfigurationsattribute

data-site-key

Erforderlich. Ihr Site Key von Connected Sites.

data-mode

Optional. "chat" (Standard), "tickets" oder "beide".

data-position

Optional: "bottom-right" (Standard) oder "botto-left".

data-color

Fakultativ: Primärfarben-Hex-Code.

data-greeting

Fakultativ: Erstbegrüßung.

data-language

Fakultativ; Benutzeroberflächensprache: "en", "es", "fr", "de", "pt", "ar" usw.

data-identity-token

Optional: Servergeneriertes signiertes Identitätstoken.

Unterstützung des Spa

Manuelles SPA-Streckenverfolgungssystem
// Manually notify OpsIQ of a route change (for custom routers)
window.OpsIQ = window.OpsIQ || [];
window.OpsIQ.push(["pageview", {
  url: window.location.href,
  title: document.title,
}]);

CSP-Regeln

CSP-Regeln für Widget
script-src 'self' https://your-opsiq-domain.com;
connect-src 'self' https://your-opsiq-domain.com;
frame-src https://your-opsiq-domain.com;
Verlangsamt das Widget meine Website?+

Nein. Unter 15 KB gzipped lädt async nach dem Seiteninhalt.

Kann ich das Aussehen anpassen?+

Verwenden Sie data-color für Primärfarbe. kontaktieren Sie die Unterstützung für CSS override Optionen.

Entwickler

Widget-Installationsrezepte

Plattformspezifische Installationsführungen.

Wie es funktioniert
Widget-InstallationsrezeptePlatform Install Cards für WordPress, Shopify und Google Tag Manager Und jeder sagt, wo man das Widget hinzufügen soll.WPWordPressInstallieren Sie das Plugin, geben Sie einIhr Website-Schlüssel, speichern.ShoppenShopifyFügen Sie das Snippet intheme. liquid vor /body.GTMTag ManagerCustom HTML Tag, alle Seiten.
Rezepte installieren

WordPress

Szenario:
Add to all pages of a WordPress site.
Was zu tun ist:

Option 1: Edit theme footer.php, paste snippet before </body>. Option 2: Use "Insert Headers and Footers" plugin > Scripts in Footer. Option 3: Use a child theme footer.php to survive theme updates.

Shopify

Szenario:
Add to your Shopify store.
Was zu tun ist:

Online Store > Themes > Edit Code > Layout > theme.liquid. Paste before </body>. Save.

React / Next. js

Szenario:
Add to a React or Next.js app.
Was zu tun ist:

In Next.js, use next/script in app/layout.tsx: import Script from "next/script"; <Script src="https://your-opsiq.com/widget.php" data-site-key="site_abc" strategy="lazyOnload" />

WHMCS

Szenario:
Add to your WHMCS client area.
Was zu tun ist:

Setup > Allgemeine Einstellungen > Andere > Global Footer Content. Fügen Sie das Snippet ein oder bearbeiten Sie Ihre Vorlage footer. tpl.

Google Tag Manager

Szenario:
Add via GTM.
Was zu tun ist:

Erstellen Sie Custom HTML Tag, Einfügen Snippet.

Entwickler

Admin-Widget in Ihrem Backend (ein Vertrag, jede Plattform)

Embed the OpsIQ admin assistant — admin chat, ticket inbox and AI Writing — inside YOUR OWN platform's admin panel, so your team never leaves their tools. Like visitor identity and portal SSO, this is ONE generic contract implemented in ~15 lines of your platform's server code — the same pattern Zendesk, Intercom and Discourse use for SSO. There is no per-platform plugin to wait for: any stack that can compute an HMAC can do this today.

Schritt 1 — die Einbettungslinie

von Abgelegene Standorte→Ihre Website→CodesKopieren Sie die Loader-Zeile und fügen Sie sie den Seiten Ihres Admin-Panels hinzu (Fußzeile, Layoutvorlage oder ein Admin nur benutzerdefiniertes JS-Feld):

Die One-Line Embed
<script async src="https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=SITE_KEY&identity_token=TOKEN_FROM_STEP_2"></script>

Schritt2— sagenOpsIQWer ist eingeloggt (Server-signiert)

Nur IHRE Anwendung weiß, welcher Administrator angemeldet ist — das ist kein Mangel, es ist das Sicherheitsmodell. Ihr Server generiert ein kurzlebiges signiertes Token aus Ihrer eigenen Sitzung, genau wie das Besucheridentitäts-Token, das mit demselben Webhook-Geheimnis der Website signiert wurde:

PHP · Unterschreiben Sie die Admin-Identität aus Ihrer Sitzung
<?php
$secret  = "opsiq_whsec_your_site_secret";   // Remote Sites → Codes
$payload = json_encode([
    "site_key"      => "SITE_KEY",
    "iat"           => time(),
    "exp"           => time() + 6 * 3600,
    "authenticated" => true,          // REQUIRED, top level — see note below
    "platform"      => "your-platform",
    "admin"    => [
        "id"            => (string)$admin->id,      // from YOUR session
        "name"          => $admin->name,
        "username"      => $admin->username,
        "email"         => $admin->email,
        "role"          => $admin->role,
        "authenticated" => true,
    ],
]);
$payload64 = rtrim(strtr(base64_encode($payload), "+/", "-_"), "=");
$identityToken = $payload64 . "." . hash_hmac("sha256", $payload64, $secret);
// Put $identityToken into the embed line (identity_token=…), or expose it as
// window.OpsIQAdminIdentityToken before the loader script.
Per-Admin-Zugriff, automatisch

Jeder Admin, der sich bei Ihrer Plattform anmeldet, wird individuell abgestimmt:OpsIQ's per-admin access gate löst den benutzernamen des tokens + e-mail gegen ein.OpsIQAgent (Teamseite; verwenden Sie die Liste der "Match-E-Mails" des Agenten, wenn sich Plattform-Emails unterscheiden) und wendet den Arbeitsbereich, die Abteilung und die Posteingangsberechtigungen des Agenten an. Neuer Mitarbeiter = Fügen Sie den Agenten hinzuOpsIQ; keine Einbettungsänderungen.

Rollen fahren entlang

Welche Rollenfolge auch immer Ihre Plattform sendet, wird auf derOpsIQSeite für die Zuschreibung; Autorisierung kommt immer von derOpsIQAgent Record, nie von der behaupteten Rolle.

Warum nicht unser Login-Cookie lesen?

Browser senden Ihr Admin-Cookie niemals an einen anderen Ursprung — kein Anbieter kann Ihren Login domänenübergreifend "erkennen". Jedes ernsthafte Produkt löst dies auf dieselbe Weise: Ihr Server beglaubt, unterschrieben. Das ist der gesamte Vertrag.

Einfacher Modus (Single-Admin Shops)

Überspringen2und verwenden Sie das statische Token von Remote Sites→Codes in der Loaderzeile (token=... anstelle von identity_token =...). Das Widget arbeitet mit der gemeinsamen Identität des Arbeitsbereichs; das Per-Admin-Gate kann später durchgesetzt werden, wenn das Team wächst.

Die authenticated Flagge — auf TOP-Ebene setzen

Dieses Flag ist die Behauptung Ihres Servers, dass ein Mensch wirklich eingeloggt ist und OpsIQ jedes Token ohne es ablehnt. "authenticated" => true beside site_key/iat/expNicht nur innerhalb des admin Current OpsIQ akzeptiert es in beiden Positionen, aber ältere Releases lesen nur die oberste Ebene – und der Fehler ist trügerisch: Konversationsliste, Geschichte und ungelesene alle authentifizieren sich gut, während jeder Chat-Wechsel antwortet "Admin Login erforderlich"Wenn Sie genau diese Aufteilung sehen, überprüfen Sie zuerst dieses Flag.

Tokenhygiene

Nur auf dem Server anmelden, niemals im BrowserJavaScriptExp kurz halten (Minuten bis Stunden);OpsIQlehnt abgelaufene und zukunftsbezogene Token ab, und die Signatur bindet das Token an Ihren Websiteschlüssel.

Referenzimplementierungen

DieWHMCSDas Modul macht dies automatisch aus demWHMCSAdmin-Sitzung; die Bridge-Datei des Botble Hotel Connectors macht es aus der Laravel-Sitzung (op=admin_identity). Beide sind nur dieser Vertrag im Dialekt ihrer Plattform - Kopie, je nachdem, was am nächsten an Ihrem Stapel liegt.

Nullseitenverdrahtung (angeschlossene Sonde)

Wenn Ihr OpsIQ -Anschluss Ihren Identitätsendpunkt in seinem admin_identity_probe_url Einstellung, die PLAIN-Loaderlinie ist alles, was Ihre Admin-Seiten brauchen: Das Widget entdeckt den Prüfkopf vom Connector, ruft ihn mit Ihrem Site Key + Widge-Token auf und authentifiziert jeden Administrator automatisch. data-identity-endpoint Attribut oder window.OpsIQAdminIdentityEndpoint.

Implementierung des Identitätsendpunkts auf Laravel (hart erkämpfte Notizen)

Wenn Ihre Plattform Laravel (Botble, Bagisto, benutzerdefinierte Apps) ist und Ihr Endpunkt eine eigenständige Datei ist, die das Framework zum Lesen des angemeldeten Administrators bootet, sparen Sie drei Details Stunden - jede einzelne hat einen echten Produktionsfehler verursacht, bevor sie gelernt wurde:

Binden Sie die Anfrage VOR dem Bootstrap

Ihre Dienstleister können request Laravels eigener Lebenszyklus bindet die erfasste Anforderung als erstes im Inneren Kernel::handle() — diese Reihenfolge widerspiegeln: $app->instance('request', Request::capture()) VOR $kernel->bootstrap()oder Sie bekommen "Zielklasse [Anfrage] existiert nicht".

Das Session-Cookie-Präfix ist HMAC-keyed

Moderne Laravel präfixiert Cookie-Werte mit einem HMAC berechnet MIT DEM APP SCHLÜSSEL ()CookieValuePrefix) — eine Ebene sha1(name."v2") kann es nie zusammenbringen. CookieValuePrefix::validate($name, $decrypted, $keys), mit einem strukturellen Fallback (40 hex chars +) | an der Stelle40Sagen Sie: eine Sitzungs-ID länger als40Schnitzel81= Präfix noch angehängt) und eine Sitzung, die nur mit _token In ihm.

Wo das Login lebt

Der Auth Stempel ist login_<guard>_<sha1(guard class)> — für den Standard-Webguard: 'login_web_' . sha1(Illuminate\Auth\SessionGuard::class)Scannen Sie alle login_* Numerischer Schlüssel als Fallback für benutzerdefinierte Wächter.

Debug wie die Brücke

Schiff a debug=1 Der Modus, der den ausfallenden STEP und die Ausnahme benennt — ein blindes Auffangen machte eine Live-Bereitstellung nicht zu erkennen. Die Botble Bridge (von v1.0.7) ist die Referenz: Schrittmarker bei Kernel/bind/bootstrap/decrypt/session/auth/db.

Laravel · vollständiger Identitätsendpunkt (kopieren, setzen Sie die beiden Konstanten, fertig)
<?php
/* identity endpoint · LARAVEL (Botble, Bagisto, any Laravel admin)
 * Drop this in your PUBLIC web root, e.g. /opsiq-identity.php
 * Answers: {"success":true,"authenticated":true,"admin":{...},"identity_token":"..."} */
define("OPSIQ_SITE_KEY", "SITE_KEY");
define("OPSIQ_SITE_SECRET", "opsiq_whsec_your_site_secret");   // Remote Sites → Codes

header("Content-Type: application/json");
$step = "boot";
try {
    require __DIR__ . "/../vendor/autoload.php";
    $app = require_once __DIR__ . "/../bootstrap/app.php";

    $step = "bind";
    // ORDER MATTERS: bind the request BEFORE bootstrapping, or providers that
    // resolve "request" during boot throw "Target class [request] does not exist".
    $request = Illuminate\Http\Request::capture();
    $app->instance("request", $request);

    $step = "bootstrap";
    $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
    $kernel->bootstrap();

    $step = "session";
    $app["session"]->driver()->setId($request->cookie(config("session.cookie")));
    $app["session"]->driver()->start();

    $step = "auth";
    $user = auth()->guard("web")->user();   // use YOUR admin guard name
    if (!$user) {
        echo json_encode(["success" => false, "authenticated" => false, "error" => "no admin session"]);
        exit;
    }

    $step = "sign";
    $admin = [
        "id"            => (string)$user->id,
        "name"          => (string)($user->name ?? $user->username),
        "username"      => (string)($user->username ?? $user->email),
        "email"         => (string)$user->email,
        "role"          => (string)optional($user->roles->first())->name,
        "authenticated" => true,
    ];
    $payload = json_encode([
        "site_key"      => OPSIQ_SITE_KEY,
        "iat"           => time(),
        "exp"           => time() + 6 * 3600,
        "authenticated" => true,          // TOP LEVEL — required
        "platform"      => "laravel",
        "admin"         => $admin,
    ], JSON_UNESCAPED_SLASHES);
    $p64   = rtrim(strtr(base64_encode($payload), "+/", "-_"), "=");
    $token = $p64 . "." . hash_hmac("sha256", $p64, OPSIQ_SITE_SECRET);

    echo json_encode(["success" => true, "authenticated" => true,
                      "admin" => $admin, "identity_token" => $token]);
} catch (\Throwable $e) {
    // debug=1 names the failing STEP — never ship a blind catch-all
    $err = ($_GET["debug"] ?? "") === "1"
        ? get_class($e) . " at [" . $step . "]: " . $e->getMessage()
        : "identity unavailable";
    echo json_encode(["success" => false, "authenticated" => false, "error" => $err]);
}

Der gleiche Endpunkt auf anderen Stapeln

Nur die Zeile "Wer ist eingeloggt?" ändert sich — der Signierblock ist überall identisch.JavaScript.

WordPress · WHMCS· Symfony · einfaches PHP – tauschen Sie den Lookup aus, behalten Sie den Unterzeichner
<?php
/* The ONE helper every platform shares. Keep it verbatim. */
function opsiq_identity_token(array $admin, string $siteKey, string $secret, string $platform): string {
    $payload = json_encode([
        "site_key"      => $siteKey,
        "iat"           => time(),
        "exp"           => time() + 6 * 3600,
        "authenticated" => true,          // TOP LEVEL — OpsIQ refuses the token without it
        "platform"      => $platform,
        "admin"         => $admin + ["authenticated" => true],
    ], JSON_UNESCAPED_SLASHES);
    $p64 = rtrim(strtr(base64_encode($payload), "+/", "-_"), "=");
    return $p64 . "." . hash_hmac("sha256", $p64, $secret);
}

/* ── WORDPRESS ─────────────────────────────────────────────────────────── */
require_once ABSPATH . "wp-load.php";
if (!current_user_can("manage_options")) { /* not an admin → refuse */ }
$u = wp_get_current_user();
$admin = ["id" => (string)$u->ID, "name" => $u->display_name,
          "username" => $u->user_login, "email" => $u->user_email,
          "role" => implode(",", $u->roles)];

/* ── WHMCS (inside an addon/hook, admin area) ──────────────────────────── */
$aid = (int)($_SESSION["adminid"] ?? 0);
if ($aid <= 0) { /* not an admin → refuse */ }
$row = Capsule::table("tbladmins")->where("id", $aid)->first();
$admin = ["id" => (string)$row->id, "name" => trim($row->firstname . " " . $row->lastname),
          "username" => $row->username, "email" => $row->email, "role" => "administrator"];

/* ── SYMFONY ───────────────────────────────────────────────────────────── */
$u = $security->getUser();                    // Symfony\Bundle\SecurityBundle\Security
if (!$u) { /* not an admin → refuse */ }
$admin = ["id" => (string)$u->getId(), "name" => $u->getName(),
          "username" => $u->getUserIdentifier(), "email" => $u->getEmail(),
          "role" => implode(",", $u->getRoles())];

/* ── PLAIN PHP / your own app ──────────────────────────────────────────── */
session_start();
if (empty($_SESSION["admin_id"])) { /* not an admin → refuse */ }
$admin = ["id" => (string)$_SESSION["admin_id"], "name" => $_SESSION["admin_name"] ?? "",
          "username" => $_SESSION["admin_username"] ?? "", "email" => $_SESSION["admin_email"] ?? "",
          "role" => $_SESSION["admin_role"] ?? ""];

/* ── then, on EVERY stack ──────────────────────────────────────────────── */
$token = opsiq_identity_token($admin, "SITE_KEY", "opsiq_whsec_your_site_secret", "wordpress");
echo json_encode(["success" => true, "authenticated" => true,
                  "admin" => $admin, "identity_token" => $token]);

Wenn es nicht funktioniert - Diagnose in dieser Reihenfolge

Widget erscheint nie, Konsole sagt "signiertes Admin-Identitätstoken ist erforderlich"

Dein Endpunkt hat Nein zurückgegeben identity_tokenÖffnen Sie den Endpunkt URL direkt im angemeldeten Admin-Browser mit &debug=1 - Sie sehen den fehlgeschlagenen Schritt. Bei Laravel ist dies fast immer das oben genannte anforderungsbindende oder Cookie-Präfix.

Geschichte und Gespräche funktionieren, aber jeder Chat-Wechsel sagt "Admin Login erforderlich"

Der klassische Split. Ihrem Token fehlt der TOP-LEVEL authenticated Flag - der eigene endpunkt des widgets akzeptiert das token, der freigegebene verifizierer hinter dem chat-stream lehnt es ab. "authenticated" => true beside exp.

"admin not provisioned in OpsIQ" (HTTP 401)

The token verified, but its username + email match no OpsIQ agent. Add the agent in OpsIQ → Team, or add the platform email to that agent's match-emails list when it differs from their OpsIQ email.

Alles 403s aus dem Browser funktioniert aber mit curl

Ein CORS-Preflight lehnt einen Ihrer Anfrageheader ab. Ihr Endpunkt muss antworten OPTIONS und Echo der anfordernden Herkunft, oder einfach vermeiden Sie benutzerdefinierte Header — das Widget braucht nur den Cookie.

Gestern gearbeitet, heute gescheitert

Überprüfung expDas Widget wird automatisch neu getestet, was bedeutet, dass der Endpunkt die Sitzung nicht mehr sieht - eine App-Tastenrotation, ein Session-Treiberwechsel oder ein Cookie-Domainwechsel.

💡
Das Admin-Widget wird ausgeblendet, bis die Identität aufgelöst ist und jeder Chat / Posteingang / Datenaufruf serverseitig gegen den übereinstimmenden durchgesetzt wirdOpsIQAgent, egal was die Seite behauptet. Das Token entsperrt die Benutzeroberfläche; Berechtigungen kommen immer vonOpsIQ.
Entwickler

Besucheridentität

Identität verbindet anonyme Besucher mit bekannten Kunden. Wenn sie identifiziert werden, verknüpft OpsIQ Browserverlauf, Chats und Tickets mit dem Kundenprofil.

Wie es funktioniert
BesucheridentitätEin Flow: Ein Benutzer meldet sich auf Ihrer Website an, Sie geben ein signiertes Identitätstoken aus und OpsIQ vereinigt ihre Sitzungen, Chats und Tickets in einem Profil.Benutzer loggen sich einauf Ihrer WebsiteSigniertes TokenIdentitäts-Token (HMAC)Ein Profilsessions+ Chats+ Tickets
Besucheridentität

Zwei Ebenen der Identität, und wenn jede genug ist

Level 1 — ein unsignierter Hinweis

You tell the widget who the visitor is with a plain JavaScript object. It fills the email and customer id on the visitor log, so your dashboard shows signed-in traffic and sessions join up. It is a HINT: anyone can edit it in their browser, so OpsIQ never releases account data on the strength of it.

Level 2 — ein signierter Identitätstoken

Ihr Server signiert ein kurzlebiges Token mit dem Website-Webhook-Geheimnis. OpsIQ überprüft die Signatur und behandelt die Person erst dann als bewährten Kunden. Dies ist die Ebene, die Kontoantworten im Kundenchat und in Connector-Lookups freischaltet.

⚠️
Ebene1ist ein Display Komfort.2Wenn eine Frage nur für den echten Kontoinhaber beantwortet werden kann, benötigen Sie Level2.

Level 1 — der unsignierte Hinweis

Legen Sie das Objekt VOR dem Widget-Skript fest oder rufen Sie später identify() auf, sobald Ihre App weiß, wer angemeldet ist. Beide Formulare werden gelesen; verwenden Sie je nachdem, was zu Ihrer Seite passt.

JavaScript · die beiden unterstützten Formulare
<!-- Form A: set the global before the loader -->
<script>
  window.OpsIQClient = {
    id:    "cust_1001",
    email: "[email protected]",
    name:  "Jane Smith",
    plan:  "pro"
  };
</script>
<script async src="https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY"></script>

<!-- Form B: identify later, e.g. after a client-side login -->
<script>
  window.opsiq.identify({
    id:    "cust_1001",
    email: "[email protected]",
    name:  "Jane Smith",
    plan:  "pro"
  });
</script>
⚠️
Only these forms are read: the window.OpsIQClient global, window.opsiqConfig.user, and window.opsiq.identify(). There is no OpsIQ.push(['identify', ...]) queue and no OpsIQClientSignature global — if you find either in an old note, it does nothing.

Level 2 — das vom Server signierte Identitätstoken

Genau der gleiche Token-Vertrag wie das Admin-Widget, mit einem customer Thema statt eines admin Erstens, signiere es auf deinem Server und gib es an das Widget weiter. Zwei Details entscheiden darüber, ob es verifiziert wird, und beides ist leicht falsch:

DieHMACdeckt die BASE64URL-Saite ab, nicht denJSON

Zeichen $payload64, nicht $payloadWenn Sie den rohen JSON signieren, wird ein Token erzeugt, das richtig aussieht und jedes Mal mit einer Signaturfehlanpassung abgelehnt wird.

base64url, nicht gepolstert

Übersetzen +/ bis -_ und Streifen Sie die = Plain base64 passiert heute zu überleben; base64url ist der Vertrag und ist, was jeder OpsIQ Verifier und Referenz-Connector aussendet.

authentifiziert geht auf TOP-Ebene

Nebenbei site_key, iat und expEs ist Ihre Behauptung, dass ein echter Mensch eingeloggt ist und OpsIQ das Token ohne es ablehnt.

customer. id ist obligatorisch

Ein Token, der nur eine E-Mail enthält, wird als Signatur bestätigt und dann stillschweigend gelöscht.

Halten Sie exp short

Minuten bis Stunden. Das Token ist eine Sitzungsbestätigung, kein Speichernachweis.

PHP - signieren Sie ein Customer Identity Token (dieser genaue Code überprüft)
<?php
/* Server-signed customer identity. Runnable as-is: set the two constants. */
$siteKey = "YOUR_SITE_KEY";                        // Remote Sites -> Codes
$secret  = "opsiq_whsec_your_site_secret";         // Remote Sites -> Codes

$payload = json_encode([
    "site_key"      => $siteKey,
    "iat"           => time(),
    "exp"           => time() + 3600,
    "authenticated" => true,                       // TOP LEVEL - required
    "platform"      => "your-platform",
    "customer"      => [
        "id"            => (string)$user->id,      // REQUIRED
        "email"         => (string)$user->email,   // REQUIRED
        "name"          => (string)$user->name,
        "plan"          => (string)($user->plan ?? ""),
        "authenticated" => true,
    ],
], JSON_UNESCAPED_SLASHES);

/* base64url(payload) . "." . hex HMAC-SHA256 OF THAT STRING. */
$payload64 = rtrim(strtr(base64_encode($payload), "+/", "-_"), "=");
$token     = $payload64 . "." . hash_hmac("sha256", $payload64, $secret);

/* Hand it to the widget either way: */
printf(
    '<script async src="https://YOUR-OPSIQ/widget.php?site_key=%s&identity_token=%s"></script>',
    rawurlencode($siteKey),
    rawurlencode($token)
);
// or, if the loader is already on the page:
// echo '<script>window.opsiqConfig = window.opsiqConfig || {}; '
//    . 'window.opsiqConfig.identityToken = ' . json_encode($token) . ';</script>';
🚫
Ein im Browser JavaScript geprägtes Token bedeutet, dass die Website jedem Besucher geheim bleibt und jeder die Möglichkeit hat, sich als Kunde auszugeben.

Der gleiche Vertrag, drei Oberflächen

Kunden-Chat auf Ihrer Website

Kunden-Betreff, übergeben als identity_token an widget. php.

Admin-Chat in Ihrem Backend

admin subject, übergeben an opsiq/embed/admin_widget. php. Gleicher Unterzeichner, anderer Betreffschlüssel.

Support Portal Deep Links

Eine strengere Variante: die gleichen Ansprüche plus jti und single_use:true, und eine120-zweites Leben, weil das Token in einemURLWenn Sie es nicht von Hand rollen, haben die Einstellungen des Support-Portals einen fertigen Ausschnitt für Ihre Sprache und die Plattform prägt ihn für Sie, wenn Ihr Kontobereich auf diesem Server läuft.

Was ist, wenn ein Besucher Cookies löscht?+

Sie werden anonym, bis sie wieder identifiziert werden. OpsIQ verknüpft den neuen anonymen Datensatz mit dem Kundenprofil, sobald ein Hinweis oder ein Token eintrifft.

Warum überprüft mein Token das Besucherprotokoll, nicht aber Kontofragen?+

Das ist die Ebene1/ Niveau2Ein unsignierter Hinweis füllt das Besucherprotokoll und nichts anderes. Die Antworten auf den Account erfordern eine verifizierte Signatur.

Entwickler

Plugins und SDKs

OpsIQ bietet SDK Pakete und Plugins für gemeinsame Plattformen.

Wie es funktioniert
Plugins und SDKsVier Pakete: PHP SDK, Node.js SDK, WordPress Plugin und WHMCS Modul, jedes mit seinem Installationsbefehl.PHPPHP SDKKomponisten benötigen opsiq/sdkSKNode. js SDKnpm i @opsiq/sdkWPWordPress PluginOne-Click Installation & ConnectWHWHMCS ModulAddon für Abrechnung + Ticket Relais
Plugins & SDKs
PHP SDK

Composer-Paket: Generierung von Identitätstoken, Aktion API Helfer, Überprüfung der Webhook-Signatur.

JavaScript SDK

Browser-Seite: Tracking, Identität, benutzerdefinierte Ereignisse, Chatsteuerung.

WordPress Plugin

Widget-Injection, Identität aus WP-Benutzersitzungen, WooCommerce Sync.

WHMCS Modul

Volle Integration: Widget, Ticket-Relay, Identität, Admin AI.

Shopify Themaerweiterung

App-Embed mit automatischer Kundenidentität.

PHP SDK Schnellstart

PHP SDK Beispiel
composer require opsiq/sdk

use OpsIQ\SDK\Identity;
$token = Identity::createToken(
    siteKey: "site_abc123",
    secret:  "opsiq_whsec_your_secret",
    customer: ["id" => "cust_1001", "email" => "[email protected]", "name" => "Jane"]
);

// Call any catalog action over the action API
$ch = curl_init("https://your-opsiq.com/api/v1.php");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer opq_your_key",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "action" => "crm.contacts.list",
        "status" => "lead",
        "limit"  => 25,
    ]),
]);
$contacts = json_decode(curl_exec($ch), true);
Entwickler

Umfrage API, Events und Connector-freie Automatisierung

Survey Studio wurde entwickelt, um den gleichen Typ zu verwenden General API, interne Executor, Event-Bus und Webhook-Operationen wie der Rest von OpsIQ Dies ermöglicht es Entwicklern, Ende an Ende zu integrieren, ohne einen verpackten Stecker zu erstellen.

⚠️
Implementierungsstatus: Der Live-Katalog zeigt derzeit nur platform.get.survey.config und platform.save.survey.config. The surveys.* und feedback.* Familien unten sind der genehmigte Zielvertrag und müssen zurückkehren unknown_action bis zur Registrierung.

Zielgruppen

Typen, Vorlagen und Schnellstart

surveys.types.*, surveys.templates.* und surveys.quick_launch.* Liste, Vorschau, Instanziierung und Validierung vollständiger Starter.

Erhebungen und Fassungen

surveys.create|get|list|update|archive|duplicate sowie unveränderliche Versions-, Validierungs- und Veröffentlichungsaktionen.

Bereitstellung und Targeting

surveys.deployments.*, surveys.links.*, surveys.audiences.*, surveys.triggers.* und surveys.variables.*.

Outreach und Antworten

surveys.invitations.*, surveys.campaigns.*, surveys.recipients.*, surveys.responses.*Export, Redaktion und Analytics.

Webhooks, Import und Feedback

surveys.webhooks.*, surveys.imports.*, feedback.items.*, feedback.analytics.*, feedback.sources.* und feedback.analysis.*.

Konnektorfreier Fluss

1
Erstellen und Veröffentlichen über General API

Verwenden Sie typisierte Umfragen.* Aktionen mit einem Workspace-pinned Schlüssel. Schreibt Berechtigung, Risiko, Bestätigung, Idempotenz und Dry-Run Verhalten an.

2
Erhalten Sie Ihr Business Event

Senden Sie ein signiertes Event an einen Inbound-Webhook, z. B. eine Auftragsstornierung oder abgeschlossene Onboarding-Schritte. Replay Protection dedupliziert die Ereignis-ID.

3
Map it in Aktionen & Triggers

Wählen Sie eine OpsIQ Generaldirektion API Aktionen wie das Ausgeben einer Umfrageeinladung oder die Vorbereitung einer Kampagne, dann Kartenfelder aus der verifizierten Trigger-Nutzlast.

4
Abonnieren Sie Survey Events

Liefern Sie die dokumentierte Business-Safe-Umfrage.* Lifecycle-Subset an Ihren Endpunkt mit Signatur, Filter, Retry, Log und autorisierter Wiederholung.

Canonisches Ereignisziel

Der freigegebene Katalog umfasst den Status der Umfrage / Bereitstellung, die Publikums- und Triggerentscheidungen, Einladungen, Rendern / Starten / Teilweises / Lebenslauf / Vollständig / Aufgeben, Antwortredaktion, Kampagnenzustand und Lieferfehler. Hochvolumige Fokussierung, Scrollen und Fragen Timing bleiben im Survey Analytics Speicher, sofern nicht explizit für Fan-Out dokumentiert.

Ein Connector ist optional. Er fügt wiederverwendbare Plattformerkennung, verifizierte Identität, Fakten, Variablen und Empfängeraufzählung hinzu. General API plus Aktionen & Triggers/Webhooks bleibt der vollständige Integrationspfad für Entwickler, die keinen verpackten Connector benötigen.
Entwickler

REST API

Die OpsIQ REST API ermöglicht Ihnen den programmatischen Zugriff auf alle Funktionen der Plattform.

Wie es funktioniert
REST APIEin Terminal, das eine POST zum OpsIQ API mit einem Bearer-Schlüssel, Auflistung der offenen Tickets und die Seite JSON Antwort.$ curl -X POST https://your-domain.com/api/v1.php \-H "Authorization: Bearer opq_..."200 OK{ "data": [{ "id": 4192, "ticket_number": "T-4192","subject": "Card declined", "status": "open" },... more tickets ...], "page": 1, "per_page": 50, "has_more": true }
REST API

Antragsformat

Senden Sie den Schlüssel als Authorization: Bearer opq_... oder X-OpsIQ-Key: opq_...Verwenden Sie einen Authentifizierungs-Header, nicht beide.

API _Anfrageformat
POST https://your-opsiq-domain.com/api/v1.php
Authorization: Bearer opq_your_api_key
# Alternative header: X-OpsIQ-Key: opq_your_api_key
Content-Type: application/json

{
  "action": "endpoint.name",
  "site_key": "site_abc123"
}

Gemeinsame Maßnahmen

Die API ist action-basiert: Senden Sie eine action Jeder registrierte Administrator JSON hat eine stabile benannte Aktion. {"action":"meta.actions"} (kein Schlüssel erforderlich) für die maßgebliche Liste, die Liste der einzelnen Anlagen, den Antragsvertrag, Risikometadaten und den Anwendungsbereich. platform.routes.* Bridge bleibt nur für ältere Integrationen übrig.

crm.contacts.list

CRM-Kontakte auflisten (scope crm. read), Params: q, status, source, tag, lead score, limit.

crm.contacts.upsert

Resolve-or-create a contact (scope crm. write): Params: E-Mail plus Felder, Tags, Notizen.

crm.deals.list

Liste CRM-Deals (scope crm. read): Params: status, stage_id, company_id; owner_admin_id

crm.activities.record

Einen Lebenszyklus/Geschäftsaktivität für einen Kontakt (Scope crm. write) aufzeichnen. Params: email or contact_id, event, value, currency.

crm.conversions.record

Eine Konvertierung (scope crm. write) aufzeichnen Params: contact_id oder email, conversion_type, value, currency.

crm.events.list

Abfrage des CRM-Ereignisstroms (Scope crm. read).

tickets.list

Listentickets (Scope tickets. read): Parameter: Seite, per_page, Sortieren, Bestellung, Status, Priorität, department_id, assigned_admin_id und client_email, Suche.

tickets.get

Ein Ticket und seine Nachrichten (scope tickets. read). Params: ticket_id oder ticket_number, include_messages, messages_limit.

tickets.reply

Schreiben Sie eine Antwort auf ein Ticket (scope tickets. write): Params: ticket_id oder ticket_number, body, author_type, author*name, internal.

tickets.update

Aktualisieren Sie ein Ticket (scope tickets. write). Params: ticket_id oder ticket_number, status, priority, subject, department_id, assigned_admin_id.

tickets.open

Öffnen Sie ein Support-Ticket (scope tickets. write). Params: customer_email, customer_name, subject, body, priority.

tickets.bulk

Führen Sie eine Bulk-Warteschlangenoperation (scope tickets. write) durch, Params: Operation, IDs.

conversations.list

Live-Chat-Konversationen auflisten (scope conversations. read), Params: page, per_page, status, assigned_admin_id, client_email, search.

conversations.get

Eine Konversation und ihre Nachrichten (scope conversations. read). Params: conversation_id oder thread_key, include_messages.

conversations.messages

Seitengeschichtliche Nachrichten (scope conversations. read). Params: conversation_id, page, per_page, include_internal.

conversations.send

Senden Sie eine Nachricht an ein Gespräch (scope conversations. write). Params: conversation_id, message, sender_type, internal.

conversations.update

Zuweisen, Re-Status oder Re-Titeln einer Konversation (scope conversations. write). Params: conversation_id, status, assigned_admin_id und subject.

connectors. list / . get /

Sehen Sie, welche Steckverbinder installiert sind, was jeder einzelne tun kann und ob seine Anmeldeinformationen funktionieren (scope connectors. read).

automations.actions.list

Die Aktionen, die Ihr Actions Builder ausführen wird (Scope Automations. read).

automations.triggers.list

Was wird feuern und unter welchen Bedingungen (scope automations. read).

automations.runs.list

Ausführungshistorie zum Debuggen einer Integration (scope automations. read). Params: status, action_key.

departments.list

Abteilungen, zu denen Sie ein Ticket weiterleiten können (scope department. read).

notifications.list

Benachrichtigungen für einen Betreiber (scope notifications. read), Params: admin_id (required), unread_only.

analytics.export

Ein Berichtsabschnitt als CSV (scope analytics. read). Params: section, preset, from, to. Call analytics. sections. list for valid values.

site_intelligence. sites. list / . reports. list

Überwachte Websites und ihre SEO-Berichte (scope site_intelligence. read).

files.get

Kurzlebiger signierter Download-Link für einen Anhang (scope files. read). Params: reference, ttl.

security.check

Fragen Sie, ob eine IP oder E-Mail wird hier blockiert oder misstrauisch (scope security.read).IP Firewall, die Ticket-Spam-Blockliste und das zwischengespeicherte Security AI Urteil Params: ip E-Mail.

security.report

Melden Sie den beobachteten Missbrauch Ihres Systems (scope security. write). Aufgezeichnet als Sicherheitsereignis, von der Security AI sofort klassifiziert und Administratoren werden auf hochriskante Urteile aufmerksam gemacht. Params: ip, E-Mail, Art, Grund, Quelle.

security. blocklist. add / . list

Verwalten Sie die Spam-Regeln, die von der Ticketpipeline durchgesetzt werden (scope security. write / security. read). Derselbe Speicher wie die Tickets-Seite "Block sender" Steuerelement. Params: type (email, domain, ip), value, reason, expires_hours.

💡
meta. actions ist immer autoritativ. Es gibt jede auf Ihrer Installation verfügbare Aktion mit dem Umfang zurück, den jeder benötigt, so dass Sie diese Liste nie erraten oder fest codieren müssen.

Paging, Filterung und Sortierung

Jede Listen-Aktion verwendet die gleichen Parameter, sodass Sie diese nur einmal lernen.

Seite / per_page

Seitenzahl beginnend bei 1und Seitengröße. 50, maximal 200 Limit und Offset werden auch akzeptiert, wenn Sie sie bevorzugen.

Sortierung/Auftrag

Feld zum Sortieren und asc oder desc (Standard-Desk). Jede Aktion akzeptiert einen festen Satz von Sortierfeldern; alles andere wird ignoriert, anstatt Fehler zu machen.

filters

Filter als Objekt senden oder einen Filter als Parameter der obersten Ebene übergeben. Unbekannte Filter werden ignoriert.

Was kommt zurück

items, page, per_page, count, total und has_more. Seiten anfordern lassen bis has_mehr falsch ist.

Seitenweise, gefiltert, sortiert Listenanforderung
POST /api/v1.php
Authorization: Bearer opq_your_api_key

{
  "action": "tickets.list",
  "status": "open",
  "priority": "urgent",
  "sort": "created_at",
  "order": "desc",
  "page": 1,
  "per_page": 50
}

Fehler

Jeder Fehler gibt die gleiche Form zurück, mit einem stabilen code Sie können sich verzweigen. Nicht übereinstimmen auf der Menschen-lesbar error Text, der umformuliert werden kann.

Fehlermeldung
{
  "success": false,
  "code": "missing_scope",
  "error": "API key missing required scope. Needed one of: tickets.read, admin",
  "request_id": "req_8f2c1a9d4b7e"
}
missing_api_key / invalid_aPI_key

Es wurde kein Schlüssel gesendet, oder der Schlüssel ist falsch oder abgelaufen. HTTP 401.

missing_scope

Der Schlüssel ist gültig, aber es fehlt der Umfang dieser Aktion. HTTP 403.

Nur-Lesen-Schlüssel / action_restricted

Der Schlüssel ist schreibgeschützt, oder diese Aktion befindet sich nicht in der Erlaubnisliste. HTTP 403.

unknown_action

Keine solche Aktion. Aufrufen Sie meta. actions für die aktuelle Liste. HTTP 400.

Fehlender Parameter / Ungültiger Parameter

Ein erforderlicher Parameter ist nicht vorhanden oder ein Wert wird nicht akzeptiert. HTTP 400.

not_found

Der Datensatz existiert nicht oder befindet sich nicht im Arbeitsbereich, den dieser Schlüssel sehen kann. HTTP 404.

rate_limited

Die stündliche Begrenzung für diesen Schlüssel ist aufgebraucht. HTTP 429.

server_error

Etwas ist auf unserer Seite fehlgeschlagen. Die request_id identifiziert den Versuch, wenn Sie ihn melden müssen. HTTP 500.

Sichere Versuchsdurchführungen

Wenn ein Schreiben ausfällt, kann man nicht sagen, ob es gelandet ist. idempotency_key und eine Wiederholung des gleichen Aufrufs das ursprüngliche Ergebnis zurückgibt, anstatt die Arbeit zweimal auszuführen.

Idempotentes Schreiben
{
  "action": "tickets.reply",
  "ticket_id": 4192,
  "body": "Thanks, that is now fixed.",
  "idempotency_key": "your-unique-id-for-this-attempt"
}
Wie lange es dauert

Ein Schlüssel wird in Erinnerung behalten für 24 Stunden gegen die gleiche Aktion und API Schlüssel.

Was du zurückbekommst

Die ursprüngliche Antwort plus idempotent_replay: true, so dass Sie sehen können, es war eine Wiederholung.

Fehler bleiben reproduzierbar

Wenn ein Anruf fehlgeschlagen ist, führt das erneute Senden mit dem gleichen Schlüssel es wieder aus, was Sie wollen.

Lesen Sie

Lesen ignoriert den Schlüssel. Eine Lektüre zu wiederholen ist harmlos.

Testen ohne etwas zu ändern

Additiv dry_run: true Ihr Schlüssel, Umfang und Parameter werden alle genau wie normal überprüft, dann hört der Aufruf auf, bevor etwas erstellt oder geändert wird.

Trockenlauf: Prüfen Sie Anmeldeinformationen und Nutzlast sicher
{
  "action": "tickets.update",
  "ticket_id": 4192,
  "status": "closed",
  "dry_run": true
}

{
  "success": true,
  "dry_run": true,
  "would_execute": true,
  "message": "Authorised and validated. No write was performed because dry_run was set."
}
Verwenden Sie dry_run während des Bauens. Es ist der schnellste Weg, um zu bestätigen, dass ein Schlüssel die richtigen Bereiche hat und Ihre Nutzlast korrekt geformt ist, ohne Testdaten zu erstellen, die Sie dann bereinigen müssen.

Zinsbindungen

Limit für die einzelnen Schlüssel

Ein konfigurierbares Stundenlimit pro API Schlüssel (Standard) 1000 Requests per hour). Setzen Sie es pro Schlüssel unter Einstellungen,API Schlüssel.

Wann überschritten

HTTP 429 mit Coderate_limited, plus einem Retry-After Header, der Ihnen sagt, wie viele Sekunden Sie warten müssen.

Wissen, wo du stehst

Jede Antwort trägt X-RateLimit-Limit, X-RasseLimit -Remaining und X-RauteLimit –Reset (ein Unix-Zeitstempel).

Sprechend 429 von 401

A 429 bedeutet warten und es noch einmal versuchen. A 401 Bedeutet, dass der Schlüssel selbst falsch oder abgelaufen ist, so dass das Wiederholen nicht hilft, bis Sie den Schlüssel reparieren.

Vorauth-Bruttokräfteschutz

Wiederholte Fehlversuche von einem IP werden separat gedrosselt.

Best Practice

Halten Sie sich zurück, wenn das Verbleiben niedrig wird, und ehren Sie Retry-After nach einem 429, anstatt es sofort zu wiederholen.

Versionen und Stabilität

Aktuelle Fassung

v1. Jede Antwort trägt X-OpsIQ-API-Version und X-OpsIQ-API Status, damit sie bestätigen können, mit was sie sprechen.

Wie Sie gewarnt werden

Wenn eine Version jemals ausgemustert wird, erhalten die Antworten Standard-Deprecation- und Sunset-Header, und meta. actions berichtet veraltet und sunset_at. Überprüfen Sie diese in Ihrem Monitoring und Sie werden nie überrascht sein.

Was sich nicht ändern wird

Bestehende Aktionsnamen, ihre Parameter und Fehlercodes: Neue Aktionen und neue optionale Felder können jederzeit hinzugefügt werden, also ignorieren Sie Felder, die Sie nicht erkennen, anstatt sie zu versagen.

Eine vollständige Integration, Start to Finish

Dies ist die ganze Schleife: Arbeit finden, lesen, danach handeln und bestätigen, was Sie getan haben.

Voller Ticket-Workflow über API
# 1. Discover what this install offers and what each action needs.
POST /api/v1.php
{"action":"meta.actions"}

# 2. Find the urgent open tickets.
POST /api/v1.php
Authorization: Bearer opq_your_api_key
{"action":"tickets.list","status":"open","priority":"urgent","per_page":25}

# 3. Read one, including its conversation history.
{"action":"tickets.get","ticket_id":4192}

# 4. Reply, safely enough to retry if the network drops.
{"action":"tickets.reply","ticket_id":4192,
 "body":"We have issued the refund.","idempotency_key":"reply-4192-attempt-1"}

# 5. Close it.
{"action":"tickets.update","ticket_id":4192,"status":"closed"}

# 6. Page through anything larger: keep going until has_more is false.
{"action":"tickets.list","page":2,"per_page":50}
💡
Alles oben funktioniert auf die gleiche Weise für Gespräche: conversations. list, conversations. get, conversations. send und conversations. update folgen dem gleichen Muster, den gleichen Parametern und der gleichen Antwortform.

Jede Aktion, mit dem Umfang, den sie braucht

Diese Liste wird aus dem laufenden Katalog generiert, so dass sie immer mit der Version übereinstimmt, in der Sie sich befinden. meta.actions gibt die gleichen Informationen wie JSON zurück.

1744 named actions: 587 reads, 1157 writes and 62 scopes. Every registered administrator JSON operation has a stable named action. OpenAPI: /api/v1/openapi.php. Postman: /api/v1/postman.php. Contract quality: declared_dynamic: 390; explicit: 92; route_inferred: 1146; source_inferred: 116.

administration (25)

administration.2fa.disable

Write. Scope: administration.write, admin. Contract: route_inferred. Admin 2fa Disable

administration.2fa.enable

Write. Scope: administration.write, admin. Contract: route_inferred. Admin 2fa Enable

administration.2fa.recovery.regenerate

Write. Scope: administration.write, admin. Contract: route_inferred. Admin 2fa Recovery Regenerate

administration.2fa.setup

Read. Scope: administration.read, admin. Contract: declared_dynamic. Admin 2fa Setup

administration.2fa.status

Read. Scope: administration.read, admin. Contract: declared_dynamic. Admin 2fa Status

administration.ai.train.from.reply

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Ai Train From Reply

administration.brain.cancel

Write. Scope: administration.write, admin. Contract: declared_dynamic. Admin Brain Cancel

administration.brain.view

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Brain View

administration.chat.access.check

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Chat Access Check

administration.chat.create.ticket.on.behalf

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Chat Create Ticket On Behalf

administration.chat.draft.ticket.from.thread

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Chat Draft Ticket From Thread

administration.conv.delete

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Conv Delete

administration.conv.get

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Conv Get

administration.conv.list

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Conv List

administration.conv.new

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Conv New

administration.conv.save

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Conv Save

administration.notification.prefs.get

Read. Scope: administration.read, admin. Contract: declared_dynamic. Admin Notification Prefs Get

administration.notification.prefs.save

Write. Scope: administration.write, admin. Contract: declared_dynamic. Admin Notification Prefs Save

administration.notifications.list

Read. Scope: administration.read, admin. Contract: route_inferred. Admin Notifications List

administration.notifications.mark.all.read

Read. Scope: administration.read, admin. Contract: declared_dynamic. Admin Notifications Mark All Read

administration.notifications.mark.read

Read. Scope: administration.read, admin. Contract: route_inferred. Admin Notifications Mark Read

administration.notifications.pulse

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Notifications Pulse

administration.online.list

Read. Scope: administration.read, admin. Contract: declared_dynamic. Admin Online List

administration.presence.ping

Write. Scope: administration.write, admin. Contract: declared_dynamic. Admin Presence Ping

administration.realtime.token

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Realtime Token

analytics (43)

analytics.add.widget

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Add Widget

analytics.analytics.connectors.catalog

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Analytics Connectors Catalog

analytics.analytics.data

Read. Scope: analytics.read, admin. Contract: route_inferred. Analytics Data

analytics.analytics.export

Read. Scope: analytics.read, admin. Contract: route_inferred. Analytics Export

analytics.analytics.export.csv

Read. Scope: analytics.read, admin. Contract: route_inferred. Analytics Export Csv

analytics.analytics.import

Write. Scope: analytics.write, admin. Contract: route_inferred. Analytics Import

analytics.analytics.report

Write. Scope: analytics.write, admin. Contract: route_inferred. Analytics Report

analytics.analytics.segments.delete

Write. Scope: analytics.write, admin. Contract: route_inferred. Analytics Segments Delete

analytics.analytics.segments.list

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Analytics Segments List

analytics.analytics.segments.save

Write. Scope: analytics.write, admin. Contract: route_inferred. Analytics Segments Save

analytics.analytics.status

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Analytics Status

analytics.clear.all

Write. Scope: analytics.write, admin. Contract: declared_dynamic. Replay Clear All

analytics.compute

Read. Scope: analytics.read, admin. Contract: route_inferred. Funnels Compute

analytics.create

Write. Scope: analytics.write, admin. Contract: route_inferred. Ab Test Create

analytics.create.route.dashboard.create

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Create

analytics.create.route.report.create

Write. Scope: analytics.write, admin. Contract: route_inferred. Report Create

analytics.delete

Write. Scope: analytics.write, admin. Contract: route_inferred. Ab Test Delete

analytics.delete.route.dashboard.delete

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Delete

analytics.delete.route.funnels.delete

Write. Scope: analytics.write, admin. Contract: route_inferred. Funnels Delete

analytics.delete.route.report.delete

Write. Scope: analytics.write, admin. Contract: route_inferred. Report Delete

analytics.events

Read. Scope: analytics.read, admin. Contract: route_inferred. Replay Events

analytics.export

Read. Scope: analytics.read, admin. Contract: source_inferred. Analytics Export

analytics.get

Read. Scope: analytics.read, admin. Contract: route_inferred. Dashboard Get

analytics.layout.get

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Dashboard Layout Get

analytics.layout.save

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Layout Save

analytics.list

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Ab Test List

analytics.list.route.dashboard.list

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Dashboard List

analytics.list.route.funnels.list

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Funnels List

analytics.list.route.report.list

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Report List

analytics.remove.widget

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Remove Widget

analytics.rename

Read. Scope: analytics.read, admin. Contract: route_inferred. Dashboard Rename

analytics.results

Read. Scope: analytics.read, admin. Contract: route_inferred. Ab Test Results

analytics.save

Write. Scope: analytics.write, admin. Contract: route_inferred. Funnels Save

analytics.scheduled.list

Read. Scope: analytics.read, admin. Contract: explicit. List scheduled analytics reports for an operator Required fields: admin_id.

analytics.sections.list

Read. Scope: analytics.read, admin. Contract: explicit. List analytics report sections and date presets

analytics.send.now

Write. Scope: analytics.write, admin. Contract: route_inferred. Report Send Now

analytics.sessions

Read. Scope: analytics.read, admin. Contract: route_inferred. Replay Sessions

analytics.step.visitors

Read. Scope: analytics.read, admin. Contract: route_inferred. Funnels Step Visitors

analytics.timeline

Read. Scope: analytics.read, admin. Contract: route_inferred. Replay Timeline

analytics.toggle.shared

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Toggle Shared

analytics.update

Write. Scope: analytics.write, admin. Contract: route_inferred. Ab Test Update

analytics.update.route.report.update

Write. Scope: analytics.write, admin. Contract: route_inferred. Report Update

analytics.widget.data

Read. Scope: analytics.read, admin. Contract: route_inferred. Dashboard Widget Data

automations (6)

automations.actions.list

Read. Scope: automations.read, admin. Contract: explicit. List integration actions

automations.delete

Write. Scope: automations.write, admin. Contract: route_inferred. Workflow Delete

automations.list

Read. Scope: automations.read, admin. Contract: route_inferred. Workflow List

automations.runs.list

Read. Scope: automations.read, admin. Contract: explicit. List automation execution history

automations.save

Write. Scope: automations.write, admin. Contract: route_inferred. Workflow Save

automations.triggers.list

Read. Scope: automations.read, admin. Contract: explicit. List integration triggers

Chat (34)

chat.call.start

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Call Start

chat.cobrowse.send

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Cobrowse Send

chat.feedback

Read. Scope: chat.read, admin. Contract: route_inferred. Chat Feedback

chat.feedback.digest

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Feedback Digest

chat.form.delete

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Form Delete

chat.form.get

Read. Scope: chat.read, admin. Contract: route_inferred. Chat Form Get

chat.form.list

Read. Scope: chat.read, admin. Contract: declared_dynamic. Chat Form List

chat.form.save

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Form Save

chat.form.set.default

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Form Set Default

chat.online.admins

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Online Admins

chat.permissions.list

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Permissions List

chat.permissions.revoke

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Permissions Revoke

chat.permissions.save

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Permissions Save

chat.permissions.upload.avatar

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Permissions Upload Avatar

chat.reaction.toggle

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Reaction Toggle

chat.saved_replies.add

Write. Scope: chat.write, admin. Contract: source_inferred. Chat Saved Replies Add Retry-safe with idempotency_key.

chat.saved_replies.list

Read. Scope: chat.read, admin. Contract: explicit. List workspace and personal saved replies

chat.saved_replies.save

Write. Scope: chat.write, admin. Contract: source_inferred. Chat Saved Replies Save Retry-safe with idempotency_key.

chat.set.persona

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Set Persona

chat.snooze.clear

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Snooze Clear

chat.snooze.set

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Snooze Set

chat.transfer.thread

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Transfer Thread

chat.transfer.unread

Write. Scope: chat.write, admin. Contract: declared_dynamic. Chat Transfer Unread

chat.typing.preview

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Typing Preview

chat.whisper.ai.summary

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper Ai Summary

chat.whisper.controls

Write. Scope: chat.write, admin. Contract: declared_dynamic. Chat Whisper Controls

chat.whisper.delete.room

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper Delete Room

chat.whisper.list

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper List

chat.whisper.mentions

Write. Scope: chat.write, admin. Contract: declared_dynamic. Chat Whisper Mentions

chat.whisper.rooms

Write. Scope: chat.write, admin. Contract: declared_dynamic. Chat Whisper Rooms

chat.whisper.save.controls

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper Save Controls

chat.whisper.send

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper Send

chat.whisper.targets

Write. Scope: chat.write, admin. Contract: declared_dynamic. Chat Whisper Targets

chat.whisper.unread

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper Unread

communications (21)

communications.auth.check

Read. Scope: communications.read, admin. Contract: route_inferred. Email Auth Check

communications.campaign.delete

Write. Scope: communications.write, admin. Contract: route_inferred. Push Campaign Delete

communications.campaign.save

Write. Scope: communications.write, admin. Contract: route_inferred. Push Campaign Save

communications.campaign.send

Write. Scope: communications.write, admin. Contract: route_inferred. Push Campaign Send

communications.campaigns.list

Read. Scope: communications.read, admin. Contract: declared_dynamic. Push Campaigns List

communications.drafts.delete

Write. Scope: communications.write, admin. Contract: route_inferred. Email Drafts Delete

communications.drafts.list

Read. Scope: communications.read, admin. Contract: declared_dynamic. Email Drafts List

communications.drafts.save

Write. Scope: communications.write, admin. Contract: route_inferred. Email Drafts Save

communications.drafts.send

Write. Scope: communications.write, admin. Contract: route_inferred. Email Drafts Send

communications.mailboxes.delete

Write. Scope: communications.write, admin. Contract: route_inferred. Email Mailboxes Delete

communications.mailboxes.list

Read. Scope: communications.read, admin. Contract: route_inferred. Email Mailboxes List

communications.mailboxes.poll

Read. Scope: communications.read, admin. Contract: declared_dynamic. Email Mailboxes Poll

communications.mailboxes.save

Write. Scope: communications.write, admin. Contract: route_inferred. Email Mailboxes Save

communications.mailboxes.test

Read. Scope: communications.read, admin. Contract: declared_dynamic. Email Mailboxes Test

communications.pipe.regen.token

Write. Scope: communications.write, admin. Contract: declared_dynamic. Email Pipe Regen Token

communications.platform.list

Read. Scope: communications.read, admin. Contract: declared_dynamic. Email Platform List

communications.platform.send

Write. Scope: communications.write, admin. Contract: route_inferred. Email Platform Send

communications.settings.get

Read. Scope: communications.read, admin. Contract: declared_dynamic. Email Settings Get

communications.settings.save

Write. Scope: communications.write, admin. Contract: route_inferred. Email Settings Save

communications.settings.test

Read. Scope: communications.read, admin. Contract: route_inferred. Email Settings Test

communications.vapid.generate

Write. Scope: communications.write, admin. Contract: declared_dynamic. Push Vapid Generate

connector_builder (11)

connector_builder.export

Read. Scope: connector_builder.read, admin. Contract: explicit. Export a generated connector Required fields: slug.

connector_builder.generate

Write. Scope: connector_builder.write, admin. Contract: explicit. Generate a connector package Required fields: spec. Retry-safe with idempotency_key.

connector_builder.get

Read. Scope: connector_builder.read, admin. Contract: explicit. Load a Builder specification Required fields: slug.

connector_builder.import.curl

Write. Scope: connector_builder.write, admin. Contract: explicit. Import cURL into Connector Builder Retry-safe with idempotency_key.

connector_builder.import.openapi

Write. Scope: connector_builder.write, admin. Contract: explicit. Import OpenAPI into Connector Builder Retry-safe with idempotency_key.

connector_builder.import.postman

Write. Scope: connector_builder.write, admin. Contract: explicit. Import Postman into Connector Builder Retry-safe with idempotency_key.

connector_builder.list

Read. Scope: connector_builder.read, admin. Contract: explicit. List Builder connectors

connector_builder.profiles

Read. Scope: connector_builder.read, connectors.read, admin. Contract: source_inferred. List Connector Builder profiles and capability contracts

connector_builder.test

Write. Scope: connector_builder.write, admin. Contract: explicit. Run Builder conformance tests Required fields: slug. Retry-safe with idempotency_key.

connector_builder.update

Write. Scope: connector_builder.write, admin. Contract: explicit. Update a generated connector Required fields: slug, spec. Retry-safe with idempotency_key.

connector_builder.validate

Read. Scope: connector_builder.read, admin. Contract: explicit. Validate a Builder specification Required fields: spec.

connectors (49)

connectors.action

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Action

connectors.backfill

Write. Scope: connectors.write, admin. Contract: explicit. Start connector backfill Required fields: slug. Retry-safe with idempotency_key.

connectors.backfill.route.connectors.backfill

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Backfill

connectors.backfill.status

Read. Scope: connectors.read, admin. Contract: explicit. Read connector backfill status Required fields: slug.

connectors.backfill.status.route.connectors.backfill.status

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Backfill Status

connectors.builder.ai.actions

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Ai Actions

connectors.builder.ai.handler

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Ai Handler

connectors.builder.ai.map

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Ai Map

connectors.builder.delete

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Delete

connectors.builder.dry.run

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Dry Run

connectors.builder.generate

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Generate

connectors.builder.import.curl

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Import Curl

connectors.builder.import.openapi

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Import Openapi

connectors.builder.import.postman

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Import Postman

connectors.builder.list

Read. Scope: connectors.read, admin. Contract: declared_dynamic. Connectors Builder List

connectors.builder.load

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Load

connectors.builder.marketplace.apply

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Marketplace Apply

connectors.builder.marketplace.link

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Marketplace Link

connectors.builder.marketplace.status

Read. Scope: connectors.read, admin. Contract: declared_dynamic. Connectors Builder Marketplace Status

connectors.builder.marketplace.submit

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Marketplace Submit

connectors.builder.test

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Test

connectors.builder.test.action

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Test Action

connectors.builder.update

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Update

connectors.builder.validate

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Validate

connectors.contacts.import

Write. Scope: connectors.write, admin. Contract: route_inferred. Connector Contacts Import

connectors.contract

Read. Scope: connectors.read, connector_builder.read, admin. Contract: source_inferred. Read the canonical connector capability contract

connectors.customers.sync

Write. Scope: connectors.write, admin. Contract: explicit. Synchronize connector customers Required fields: slug. Retry-safe with idempotency_key.

connectors.disable

Write. Scope: connectors.write, admin. Contract: explicit. Disable a connector Required fields: slug. Retry-safe with idempotency_key.

connectors.disable.route.connectors.disable

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Disable

connectors.email.account.department

Read. Scope: connectors.read, admin. Contract: route_inferred. Connector Email Account Department

connectors.email.account.remove

Write. Scope: connectors.write, admin. Contract: route_inferred. Connector Email Account Remove

connectors.email.account.routing

Read. Scope: connectors.read, admin. Contract: route_inferred. Connector Email Account Routing

connectors.enable

Write. Scope: connectors.write, admin. Contract: explicit. Enable a connector Required fields: slug. Retry-safe with idempotency_key.

connectors.enable.route.connectors.enable

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Enable

connectors.get

Read. Scope: connectors.read, admin. Contract: source_inferred. Connectors Get

connectors.get.route.connectors.get

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Get

connectors.install

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Install

connectors.integrity.scan

Read. Scope: connectors.read, admin. Contract: declared_dynamic. Connector Integrity Scan

connectors.list

Read. Scope: connectors.read, admin. Contract: explicit. List installed connectors and capabilities

connectors.list.route.connectors.list

Read. Scope: connectors.read, admin. Contract: declared_dynamic. Connectors List

connectors.oauth.start

Write. Scope: connectors.write, admin. Contract: route_inferred. Connector Oauth Start

connectors.settings.get

Read. Scope: connectors.read, admin. Contract: explicit. Read connector settings Required fields: slug.

connectors.settings.save

Write. Scope: connectors.write, admin. Contract: explicit. Save connector settings Required fields: slug, settings. Retry-safe with idempotency_key.

connectors.shared.oauth.delete

Write. Scope: connectors.write, admin. Contract: route_inferred. Connector Shared Oauth Delete

connectors.sync.customers

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Sync Customers

connectors.test

Read. Scope: connectors.read, admin. Contract: source_inferred. Connectors Test

connectors.test.route.connectors.test

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Test

connectors.uninstall

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Uninstall

connectors.workflow.recipes

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Workflow Recipes

conversations (37)

conversations.ai.draft

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Ai Draft

conversations.ai.rewrite

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Ai Rewrite

conversations.archive

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Archive

conversations.assign

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Assign

conversations.assignees

Write. Scope: conversations.write, admin. Contract: declared_dynamic. Admin Client Chat Assignees

conversations.bulk

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Bulk

conversations.clear

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Clear

conversations.clear.all

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Clear All

conversations.customer.tickets

Write. Scope: conversations.write, admin. Contract: declared_dynamic. Admin Client Chat Customer Tickets

conversations.decline

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Decline

conversations.delete

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Delete

conversations.delete.last

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Delete Last

conversations.edit.last

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Edit Last

conversations.export

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Export

conversations.forget.visitor

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Forget Visitor

conversations.get

Read. Scope: conversations.read, admin. Contract: source_inferred. Conversations Get

conversations.history

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat History

conversations.list

Read. Scope: conversations.read, admin. Contract: source_inferred. Conversations List

conversations.messages

Read. Scope: conversations.read, admin. Contract: source_inferred. Conversations Messages

conversations.resolve

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Resolve

conversations.saved.replies

Write. Scope: conversations.write, admin. Contract: declared_dynamic. Admin Client Chat Saved Replies

conversations.saved.reply.add

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Saved Reply Add

conversations.saved.reply.ai.generate

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Saved Reply Ai Generate

conversations.saved.reply.delete

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Saved Reply Delete

conversations.saved.reply.save

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Saved Reply Save

conversations.send

Write. Scope: conversations.write, admin. Contract: source_inferred. Conversations Send Retry-safe with idempotency_key.

conversations.send.route.admin.client.chat.send

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Send

conversations.tags.set

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Tags Set

conversations.thread

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Thread

conversations.threads

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Threads

conversations.toggle

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Toggle

conversations.toggle.attachments

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Toggle Attachments

conversations.toggle.call.button

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Toggle Call Button

conversations.typing

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Typing

conversations.unarchive

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Unarchive

conversations.update

Write. Scope: conversations.write, admin. Contract: explicit. Update a conversation status, assignment or subject Retry-safe with idempotency_key.

conversations.upload

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Upload

crm (260)

crm.ab.results

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Ab Results

crm.access.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Access Set

crm.access_log.list

Read. Scope: admin. Contract: source_inferred. Crm Access Log List

crm.account.health

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Account Health

crm.account.health.board

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Account Health Board

crm.account.health.refresh

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Account Health Refresh

crm.account.plan.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Account Plan Get

crm.account.plan.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Account Plan Save

crm.account.plans.due

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Account Plans Due

crm.account.timeline

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Account Timeline

crm.activities.list

Read. Scope: crm.read. Contract: explicit. List CRM contact activities

crm.activities.record

Write. Scope: crm.write. Contract: explicit. Record a CRM contact activity Required fields: contact_id, activity_type. Retry-safe with idempotency_key.

crm.activity.feed

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Activity Feed

crm.agent.toggle

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Agent Toggle

crm.ai.policy.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Ai Policy Get

crm.ai.policy.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Ai Policy Save

crm.ai.policy.simulate

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Ai Policy Simulate

crm.ai.trace

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Ai Trace

crm.approval.decide

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Approval Decide

crm.approval.delegate.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Approval Delegate Set

crm.approval.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Approval List

crm.approval.policy.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Approval Policy Get

crm.approval.policy.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Approval Policy Save

crm.approval.settings

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Approval Settings

crm.approve.apply

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Approve Apply

crm.approve.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Approve List

crm.approve.reject

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Approve Reject

crm.approve.update

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Approve Update

crm.ask

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Ask

crm.assign.owner

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Assign Owner

crm.assignment.get

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Assignment Get

crm.assignment.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Assignment Save

crm.attachment.delete

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Attachment Delete

crm.attachment.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Attachment List

crm.attachment.upload

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Attachment Upload

crm.autobook.meeting

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Autobook Meeting

crm.autodeal.mode

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Autodeal Mode

crm.book.meeting

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Book Meeting

crm.booking.link.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Booking Link Save

crm.booking.links.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Booking Links List

crm.build.apply

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Build Apply

crm.build.get

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Build Get

crm.build.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Build List

crm.build.plan

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Build Plan

crm.build.rollback

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Build Rollback

crm.bulk

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Bulk

crm.bundle.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Bundle Set

crm.calendar.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Calendar Status

crm.capture.status

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Capture Status

crm.comm.policy.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Comm Policy Get

crm.comm.policy.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Comm Policy Save

crm.command.snapshot

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Command Snapshot

crm.companies.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Companies List

crm.company.hierarchy

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Company Hierarchy

crm.company.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Company Save

crm.company.set.parent

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Company Set Parent

crm.company.suggest.related

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Company Suggest Related

crm.connectors.catalog

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Connectors Catalog

crm.consent_log.list

Read. Scope: crm.read. Contract: source_inferred. Crm Consent Log List

crm.contact.churn

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Contact Churn

crm.contact.draft.email

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contact Draft Email

crm.contact.enrich

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contact Enrich

crm.contact.propose.email

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contact Propose Email

crm.contacts.detail

Read. Scope: crm.read. Contract: source_inferred. Crm Contacts Detail

crm.contacts.erase

Write. Scope: admin. Contract: source_inferred. Crm Contacts Erase Retry-safe with idempotency_key.

crm.contacts.export

Read. Scope: crm.read. Contract: source_inferred. Crm Contacts Export

crm.contacts.import.list

Read. Scope: crm.read. Contract: source_inferred. Crm Contacts Import List

crm.contacts.import.run

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Import Run Retry-safe with idempotency_key.

crm.contacts.list

Read. Scope: crm.read. Contract: source_inferred. Crm Contacts List

crm.contacts.next_action

Read. Scope: crm.read. Contract: source_inferred. Crm Contacts Next Action

crm.contacts.open_chat

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Open Chat Retry-safe with idempotency_key.

crm.contacts.open_ticket

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Open Ticket Retry-safe with idempotency_key.

crm.contacts.resync

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Resync Retry-safe with idempotency_key.

crm.contacts.save

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Save Retry-safe with idempotency_key.

crm.contacts.send_email

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Send Email Retry-safe with idempotency_key.

crm.contacts.upsert

Write. Scope: crm.write. Contract: explicit. Crm Contacts Upsert Required fields: email. Retry-safe with idempotency_key.

crm.contract.amend

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contract Amend

crm.contract.price.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contract Price Set

crm.contract.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contract Save

crm.contract.usage

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contract Usage

crm.contracts.list

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contracts List

crm.conversation.intel

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Conversation Intel

crm.conversions.goals.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Conversions Goals Delete Retry-safe with idempotency_key.

crm.conversions.goals.list

Read. Scope: crm.read. Contract: source_inferred. Crm Conversions Goals List

crm.conversions.goals.save

Write. Scope: crm.write. Contract: source_inferred. Crm Conversions Goals Save Retry-safe with idempotency_key.

crm.conversions.list

Read. Scope: crm.read. Contract: source_inferred. Crm Conversions List

crm.conversions.record

Write. Scope: crm.write. Contract: source_inferred. Crm Conversions Record Retry-safe with idempotency_key.

crm.create.video.meeting

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Create Video Meeting

crm.customer.auto.sync

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Customer Auto Sync

crm.customer.auto.sync.status

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Customer Auto Sync Status

crm.customer.emails

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Customer Emails

crm.customer.payments

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Customer Payments

crm.data.steward.bulk.propose

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Data Steward Bulk Propose

crm.data.steward.inbox

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Data Steward Inbox

crm.data.steward.propose

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Data Steward Propose

crm.deal.advance

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Deal Advance

crm.deal.coach

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Deal Coach

crm.deal.coach.action

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Deal Coach Action

crm.deal.get

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Deal Get

crm.deal.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Deal Save

crm.deal.splits.get

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Deal Splits Get

crm.deal.splits.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Deal Splits Set

crm.deals.advance

Write. Scope: crm.write. Contract: explicit. Advance a CRM deal to another stage Required fields: deal_id, stage_id. Retry-safe with idempotency_key.

crm.deals.create

Write. Scope: crm.write. Contract: explicit. Create a CRM deal Required fields: title. Retry-safe with idempotency_key.

crm.deals.detail

Read. Scope: crm.read. Contract: explicit. Get one CRM deal Required fields: deal_id.

crm.deals.list

Read. Scope: crm.read. Contract: explicit. List CRM deals

crm.deals.list.route.crm.deals.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Deals List

crm.deals.update

Write. Scope: crm.write. Contract: explicit. Update a CRM deal Required fields: deal_id. Retry-safe with idempotency_key.

crm.detail

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Detail

crm.draft.outreach

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Draft Outreach

crm.enrich.account

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Enrich Account

crm.erase

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Erase

crm.events.catalog

Read. Scope: crm.read. Contract: explicit. List subscribable CRM domain events

crm.events.list

Read. Scope: crm.read. Contract: explicit. List durable CRM domain events

crm.export

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Export

crm.export.all

Read. Scope: crm.read, admin. Contract: route_inferred. Contact Export All

crm.field.add

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Field Add

crm.field.policy.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Field Policy Get

crm.field.policy.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Field Policy Save

crm.field.remove

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Field Remove

crm.fields.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Fields List

crm.forecast.board

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Forecast Board

crm.forecast.snapshot

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Forecast Snapshot

crm.form.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Form Save

crm.forms.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Forms List

crm.health.repair.catalog

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Health Repair Catalog

crm.health.smoke

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Health Smoke

crm.health.snapshot

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Health Snapshot

crm.home.persona.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Home Persona Set

crm.identity.rules.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Identity Rules Get

crm.identity.rules.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Identity Rules Save

crm.import.list

Read. Scope: crm.read, admin. Contract: route_inferred. Contact Import List

crm.import.run

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Import Run

crm.inbound.activity

Read. Scope: crm.read. Contract: source_inferred. Crm Inbound Activity

crm.inbound.endpoints.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Inbound Endpoints Delete Retry-safe with idempotency_key.

crm.inbound.endpoints.list

Read. Scope: crm.read. Contract: source_inferred. Crm Inbound Endpoints List

crm.inbound.endpoints.save

Write. Scope: crm.write. Contract: source_inferred. Crm Inbound Endpoints Save Retry-safe with idempotency_key.

crm.inbound.endpoints.test

Write. Scope: crm.write. Contract: source_inferred. Crm Inbound Endpoints Test Retry-safe with idempotency_key.

crm.leaderboard

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Leaderboard

crm.lifecycle.evaluate

Write. Scope: crm.write. Contract: source_inferred. Crm Lifecycle Evaluate Retry-safe with idempotency_key.

crm.lifecycle.rules.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Lifecycle Rules Delete Retry-safe with idempotency_key.

crm.lifecycle.rules.list

Read. Scope: crm.read. Contract: source_inferred. Crm Lifecycle Rules List

crm.lifecycle.rules.save

Write. Scope: crm.write. Contract: source_inferred. Crm Lifecycle Rules Save Retry-safe with idempotency_key.

crm.list

Read. Scope: crm.read, admin. Contract: route_inferred. Contacts List

crm.mailbox.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Mailbox Status

crm.meeting.book

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Meeting Book

crm.meeting.cancel

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Meeting Cancel

crm.meeting.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Meeting List

crm.meeting.reschedule.accept

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Meeting Reschedule Accept

crm.meeting.reschedule.reject

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Meeting Reschedule Reject

crm.merge

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Merge

crm.message.send

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Message Send

crm.messaging.provider.delete

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Messaging Provider Delete

crm.messaging.provider.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Messaging Provider Save

crm.messaging.provider.test

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Messaging Provider Test

crm.messaging.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Messaging Status

crm.next.action

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Next Action

crm.object.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Object Save

crm.objects.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Objects List

crm.offline.pull

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Offline Pull

crm.offline.push

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Offline Push

crm.open.chat

Read. Scope: crm.read, admin. Contract: route_inferred. Contact Open Chat

crm.open.ticket

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Open Ticket

crm.outreach.campaigns.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Campaigns Delete Retry-safe with idempotency_key.

crm.outreach.campaigns.list

Read. Scope: crm.read. Contract: source_inferred. Crm Outreach Campaigns List

crm.outreach.campaigns.save

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Campaigns Save Retry-safe with idempotency_key.

crm.outreach.campaigns.send

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Campaigns Send Retry-safe with idempotency_key.

crm.outreach.send

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Send Retry-safe with idempotency_key.

crm.outreach.templates.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Templates Delete Retry-safe with idempotency_key.

crm.outreach.templates.list

Read. Scope: crm.read. Contract: source_inferred. Crm Outreach Templates List

crm.outreach.templates.preview

Read. Scope: crm.read. Contract: source_inferred. Crm Outreach Templates Preview

crm.outreach.templates.save

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Templates Save Retry-safe with idempotency_key.

crm.payments.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Payments Status

crm.pipeline.data

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Pipeline Data

crm.price.resolve

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Price Resolve

crm.pricebook.entry.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Pricebook Entry Set

crm.pricebook.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Pricebook Save

crm.pricebooks.list

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Pricebooks List

crm.privacy_settings.get

Read. Scope: crm.read. Contract: source_inferred. Crm Privacy Settings Get

crm.privacy_settings.save

Write. Scope: admin. Contract: source_inferred. Crm Privacy Settings Save Retry-safe with idempotency_key.

crm.product.archive

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Product Archive

crm.product.revenue

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Product Revenue

crm.product.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Product Save

crm.products.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Products List

crm.propose.meeting

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Propose Meeting

crm.propose.outreach

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Propose Outreach

crm.prospecting.dashboard

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Prospecting Dashboard

crm.prospecting.icp.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Prospecting Icp Save

crm.prospecting.import

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Prospecting Import

crm.prospecting.research

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Prospecting Research

crm.prospecting.score

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Prospecting Score

crm.prospecting.sequence

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Prospecting Sequence

crm.qualification.checklist.get

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Qualification Checklist Get

crm.qualification.checklist.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Qualification Checklist Save

crm.quota.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Quota Save

crm.quote.get

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Quote Get

crm.quote.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Quote Save

crm.quotes.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Quotes List

crm.record.delete

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Delete

crm.record.fields.get

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Record Fields Get

crm.record.fields.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Fields Save

crm.record.get

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Record Get

crm.record.history

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Record History

crm.record.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Save

crm.record.share.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Share Set

crm.record.share.unset

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Share Unset

crm.record.shares

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Shares

crm.records.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Records List

crm.restore.email.consent

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Restore Email Consent

crm.resync.from.platform

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Resync From Platform

crm.retention.catalog

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Retention Catalog

crm.revert

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Revert

crm.runtime.policy.get

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Runtime Policy Get

crm.runtime.policy.remote.wipe

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Runtime Policy Remote Wipe

crm.runtime.policy.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Runtime Policy Save

crm.save

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Save

crm.scoring.rule.ai

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Scoring Rule Ai

crm.scoring.rule.delete

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Scoring Rule Delete

crm.scoring.rule.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Scoring Rule List

crm.scoring.rule.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Scoring Rule Save

crm.segments.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Segments Delete Retry-safe with idempotency_key.

crm.segments.list

Read. Scope: crm.read. Contract: source_inferred. Crm Segments List

crm.segments.members

Read. Scope: crm.read. Contract: source_inferred. Crm Segments Members

crm.segments.preview

Read. Scope: crm.read. Contract: source_inferred. Crm Segments Preview

crm.segments.save

Write. Scope: crm.write. Contract: source_inferred. Crm Segments Save Retry-safe with idempotency_key.

crm.segments.suggestions.accept

Write. Scope: crm.write. Contract: source_inferred. Crm Segments Suggestions Accept Retry-safe with idempotency_key.

crm.segments.suggestions.dismiss

Write. Scope: crm.write. Contract: source_inferred. Crm Segments Suggestions Dismiss Retry-safe with idempotency_key.

crm.segments.suggestions.list

Read. Scope: crm.read. Contract: source_inferred. Crm Segments Suggestions List

crm.semantic.search

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Semantic Search

crm.send.email

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Send Email

crm.send.email.route.crm.send.email

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Send Email

crm.send.for.signature

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Send For Signature

crm.send.payment.link

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Send Payment Link

crm.sequence.action

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Sequence Action

crm.sequence.runs

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Sequence Runs

crm.setup.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Setup Status

crm.sharing.rules.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Sharing Rules Get

crm.sharing.rules.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Sharing Rules Save

crm.subject.registry

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Subject Registry

crm.subscriptions.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Subscriptions List

crm.subscriptions.rollup

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Subscriptions Rollup

crm.subscriptions.sync

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Subscriptions Sync

crm.task.create

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Task Create

crm.tasks.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Tasks List

crm.team.parent.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Team Parent Set

crm.team.rules.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Team Rules Set

crm.team.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Team Save

crm.teams.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Teams List

crm.territory.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Territory Set

crm.video.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Video Status

crm.views.delete

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Views Delete

crm.views.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Views List

crm.views.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Views Save

crm.webhooks.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Webhooks Delete Retry-safe with idempotency_key.

crm.webhooks.list

Read. Scope: crm.read. Contract: explicit. List CRM outbound webhook endpoints and recent deliveries

crm.webhooks.save

Write. Scope: crm.write. Contract: source_inferred. Crm Webhooks Save Retry-safe with idempotency_key.

crm.webhooks.test

Write. Scope: crm.write. Contract: source_inferred. Crm Webhooks Test Retry-safe with idempotency_key.

crm.workflows.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Workflows Delete Retry-safe with idempotency_key.

crm.workflows.list

Read. Scope: crm.read. Contract: source_inferred. Crm Workflows List

crm.workflows.save

Write. Scope: crm.write. Contract: source_inferred. Crm Workflows Save Retry-safe with idempotency_key.

Kunden (44)

customers.analyze

Write. Scope: customers.write, journey.write, admin. Contract: explicit. Analyze a customer journey with AI Required fields: client_id. Retry-safe with idempotency_key.

customers.behaviour

Read. Scope: customers.read, admin. Contract: route_inferred. Cdp Behaviour

customers.behaviour.analyze

Write. Scope: customers.write, admin. Contract: route_inferred. Cdp Behaviour Analyze

customers.chat.embed.backfill

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Embed Backfill

customers.chat.embed.status

Read. Scope: customers.read, admin. Contract: declared_dynamic. Client Chat Embed Status

customers.chat.faq.ai.generate

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Ai Generate

customers.chat.faq.approve.all

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Approve All

customers.chat.faq.delete

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Delete

customers.chat.faq.delete.all

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Faq Delete All

customers.chat.faq.export

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Faq Export

customers.chat.faq.generate

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Generate

customers.chat.faq.import

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Import

customers.chat.faq.list

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq List

customers.chat.faq.save

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Save

customers.chat.faq.set.help

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Set Help

customers.chat.faq.set.help.all

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Set Help All

customers.chat.faq.status

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Status

customers.chat.grant.upload

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Grant Upload

customers.chat.help.set.slug

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Help Set Slug

customers.chat.knowledge.crawl.step

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Knowledge Crawl Step

customers.chat.knowledge.delete

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Knowledge Delete

customers.chat.knowledge.delete.all

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Knowledge Delete All

customers.chat.knowledge.delete.duplicates

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Knowledge Delete Duplicates

customers.chat.knowledge.duplicates

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Knowledge Duplicates

customers.chat.knowledge.export.json

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Knowledge Export Json

customers.chat.knowledge.import.json

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Knowledge Import Json

customers.chat.knowledge.preview

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Knowledge Preview

customers.chat.knowledge.recrawl

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Knowledge Recrawl

customers.chat.knowledge.test.url

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Knowledge Test Url

customers.chat.revoke.upload

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Revoke Upload

customers.chat.upload.agent.avatar

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Upload Agent Avatar

customers.chat.upload.ai.avatar

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Upload Ai Avatar

customers.chat.upload.icon

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Upload Icon

customers.client.analyze

Write. Scope: customers.write, admin. Contract: route_inferred. Cdp Client Analyze

customers.client.delete

Write. Scope: customers.write, admin. Contract: route_inferred. Cdp Client Delete

customers.client.export

Write. Scope: customers.write, admin. Contract: route_inferred. Cdp Client Export

customers.client.journey

Read. Scope: customers.read, admin. Contract: route_inferred. Cdp Client Journey

customers.client.prepare.outreach

Write. Scope: customers.write, admin. Contract: route_inferred. Cdp Client Prepare Outreach

customers.clients.list

Read. Scope: customers.read, admin. Contract: route_inferred. Cdp Clients List

customers.detail

Read. Scope: customers.read, admin. Contract: route_inferred. Client Detail

customers.get

Read. Scope: customers.read, crm.read, admin. Contract: explicit. Get a customer profile Required fields: client_id.

customers.journey

Read. Scope: customers.read, journey.read, admin. Contract: explicit. Get a complete customer journey Required fields: client_id.

customers.list

Read. Scope: customers.read, crm.read, admin. Contract: explicit. List known customers

customers.outreach.prepare

Write. Scope: customers.write, crm.write, admin. Contract: explicit. Prepare CRM outreach for a customer Required fields: client_id. Retry-safe with idempotency_key.

departments (1)

departments.list

Read. Scope: departments.read, admin. Contract: source_inferred. Departments List

engagement (164)

engagement.ab.autowinner

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ab Autowinner

engagement.ab.bandit

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ab Bandit

engagement.address.get

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Survey Address Get

engagement.address.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Address Save

engagement.ai.agent

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Agent

engagement.ai.analyze

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Analyze

engagement.ai.compile.profile

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Compile Profile

engagement.ai.copy

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Copy

engagement.ai.critique

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Ai Critique

engagement.ai.decide

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Decide

engagement.ai.design

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Design

engagement.ai.edit

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Edit

engagement.ai.generate

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Generate

engagement.ai.ideas

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Ai Ideas

engagement.ai.image

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Image

engagement.ai.image.edit

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Image Edit

engagement.ai.localize

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Localize

engagement.ai.logo

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Logo

engagement.ai.media.jobs

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Ai Media Jobs

engagement.ai.narrative

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Ai Narrative

engagement.ai.responsive

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Ai Responsive

engagement.ai.variants

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Variants

engagement.ai.video.start

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Video Start

engagement.ai.video.status

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Video Status

engagement.approval.decide

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Approval Decide

engagement.approval.request

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Approval Request

engagement.approvals.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Approvals List

engagement.asset.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Asset Delete

engagement.asset.upload

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Asset Upload

engagement.assets.list

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Assets List

engagement.audience.materialize

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Audience Materialize

engagement.audience.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Audience Save

engagement.audience.test

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Audience Test

engagement.audit.export

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Audit Export

engagement.autoresponder.get

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Autoresponder Get

engagement.autoresponder.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Autoresponder Save

engagement.bank.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Bank Delete

engagement.bank.list

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Survey Bank List

engagement.bank.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Bank Save

engagement.bank.used

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Bank Used

engagement.blackouts.get

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Blackouts Get

engagement.blackouts.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Blackouts Save

engagement.brand.kit.bootstrap

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Brand Kit Bootstrap

engagement.brand.kit.font.upload

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Brand Kit Font Upload

engagement.brand.kit.get

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Brand Kit Get

engagement.brand.kit.get.route.survey.brand.kit.get

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Survey Brand Kit Get

engagement.brand.kit.save

Write. Scope: engagement.write, admin. Contract: declared_dynamic. Promo Brand Kit Save

engagement.brand.kit.save.route.survey.brand.kit.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Brand Kit Save

engagement.campaign.archive

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Campaign Archive

engagement.campaign.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Campaign Delete

engagement.campaign.duplicate

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Campaign Duplicate

engagement.campaign.get

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Campaign Get

engagement.campaign.launch

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Campaign Launch

engagement.campaign.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Campaign List

engagement.campaign.pause

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Campaign Pause

engagement.campaign.preview

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Campaign Preview

engagement.campaign.publish

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Campaign Publish

engagement.campaign.rollback

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Campaign Rollback

engagement.campaign.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Campaign Save

engagement.campaign.save.route.survey.campaign.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Campaign Save

engagement.campaign.toggle

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Campaign Toggle

engagement.campaign.versions

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Campaign Versions

engagement.comment.add

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Comment Add

engagement.comments.add

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Comments Add

engagement.comments.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Comments Delete

engagement.comments.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Comments List

engagement.comments.list.route.survey.comments.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Comments List

engagement.comments.resolve

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Comments Resolve

engagement.connectors.catalog

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Connectors Catalog

engagement.coupon.providers

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Coupon Providers

engagement.coupons.clear

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Coupons Clear

engagement.coupons.stats

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Coupons Stats

engagement.coupons.upload

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Coupons Upload

engagement.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Announcement Delete

engagement.delete.route.tour.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Tour Delete

engagement.delivery.analytics

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Delivery Analytics

engagement.delivery.dashboard

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Delivery Dashboard

engagement.deployment.ab.promote

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Deployment Ab Promote

engagement.deployment.ab.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Deployment Ab Save

engagement.deployment.publish

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Deployment Publish

engagement.deployment.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Deployment Save

engagement.deployment.status

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Deployment Status

engagement.detail

Read. Scope: engagement.read, admin. Contract: route_inferred. Campaign Detail

engagement.digest.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Digest Save

engagement.feed.catalog

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Feed Catalog

engagement.feed.items

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Feed Items

engagement.geo.preview

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Geo Preview

engagement.idle.cron.set

Write. Scope: engagement.write, admin. Contract: route_inferred. Proactive Idle Cron Set

engagement.import.create

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Import Create

engagement.import.replay

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Import Replay

engagement.leads.export

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Leads Export

engagement.leads.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Leads List

engagement.list

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Announcements List

engagement.list.route.tours.list

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Tours List

engagement.module.set.ai.live

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Module Set Ai Live

engagement.module.set.custom.html

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Module Set Custom Html

engagement.module.set.enabled

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Module Set Enabled

engagement.module.status

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Module Status

engagement.onsite.preview

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Onsite Preview

engagement.pause.all

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Pause All

engagement.presence

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Presence

engagement.preview.share

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Preview Share

engagement.push.draft

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Push Draft

engagement.recipients.issue

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Recipients Issue

engagement.recipients.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Recipients List

engagement.recipients.revoke

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Recipients Revoke

engagement.response.detail

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Response Detail

engagement.responses.browse

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Responses Browse

engagement.rule.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Proactive Rule Delete

engagement.rule.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Proactive Rule Save

engagement.rule.stats

Read. Scope: engagement.read, admin. Contract: route_inferred. Proactive Rule Stats

engagement.rule.test

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Rule Test

engagement.rule.toggle

Write. Scope: engagement.write, admin. Contract: route_inferred. Proactive Rule Toggle

engagement.rules.list

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Proactive Rules List

engagement.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Announcement Save

engagement.save.route.tour.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Tour Save

engagement.stats

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Stats

engagement.stats.route.tour.stats

Read. Scope: engagement.read, admin. Contract: route_inferred. Tour Stats

engagement.studio.a11y

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio A11y

engagement.studio.ai.generate

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Ai Generate

engagement.studio.ai.insights

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Ai Insights

engagement.studio.ai.target

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Ai Target

engagement.studio.archive

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Archive

engagement.studio.assets

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Survey Studio Assets

engagement.studio.create

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Create

engagement.studio.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Delete

engagement.studio.duplicate

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Duplicate

engagement.studio.event

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Studio Event

engagement.studio.get

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Studio Get

engagement.studio.governance

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Governance

engagement.studio.list

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Survey Studio List

engagement.studio.preview

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Studio Preview

engagement.studio.preview.link

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Studio Preview Link

engagement.studio.publish

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Publish

engagement.studio.rename

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Rename

engagement.studio.revert

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Revert

engagement.studio.save.draft

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Save Draft

engagement.studio.save.targeting

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Save Targeting

engagement.studio.set.active

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Set Active

engagement.studio.set.status

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Set Status

engagement.studio.template.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Template Delete

engagement.studio.template.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Template Save

engagement.studio.tpl.preview

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Tpl Preview

engagement.studio.upload

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Upload

engagement.studio.webhook

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Webhook

engagement.targeting.simulate

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Targeting Simulate

engagement.template.apply

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Template Apply

engagement.template.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Template List

engagement.template.save.custom

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Template Save Custom

engagement.toggle

Write. Scope: engagement.write, admin. Contract: route_inferred. Announcement Toggle

engagement.toggle.route.tour.toggle

Write. Scope: engagement.write, admin. Contract: route_inferred. Tour Toggle

engagement.trigger.set.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Trigger Set Save

engagement.variant.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Variant Delete

engagement.variant.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Variant List

engagement.variant.promote

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Variant Promote

engagement.variant.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Variant Save

engagement.version.compare

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Version Compare

engagement.version.get

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Version Get

engagement.version.label

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Version Label

engagement.webhook.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Webhook Delete

engagement.webhook.replay

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Webhook Replay

engagement.webhook.run

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Webhook Run

engagement.webhook.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Webhook Save

engagement.widget.data

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Tour Widget Data

feedback (8)

feedback.analytics

Read. Scope: feedback.read, admin. Contract: source_inferred. Feedback Analytics

feedback.detractors

Read. Scope: feedback.read, admin. Contract: source_inferred. Feedback Detractors

feedback.get

Read. Scope: feedback.read, admin. Contract: source_inferred. Feedback Get

feedback.ingest

Write. Scope: feedback.write, admin. Contract: explicit. Ingest a feedback record or external review

feedback.list

Read. Scope: feedback.read, admin. Contract: source_inferred. Feedback List

feedback.overview

Read. Scope: feedback.read, admin. Contract: source_inferred. Feedback Overview

feedback.sources.list

Read. Scope: feedback.read, admin. Contract: explicit. List Voice of Customer feedback sources

feedback.update

Write. Scope: feedback.write, admin. Contract: source_inferred. Feedback Update Retry-safe with idempotency_key.

files (1)

files.get

Read. Scope: files.read, admin. Contract: source_inferred. Files Get

intent (6)

intent.clear

Write. Scope: intent.write, admin. Contract: declared_dynamic. Intent Clear

intent.funnel

Read. Scope: intent.read, analytics.read, admin. Contract: explicit. Read the intent funnel

intent.funnel.aggregate

Read. Scope: intent.read, admin. Contract: route_inferred. Intent Funnel Aggregate

intent.funnel.route.intent.funnel

Read. Scope: intent.read, admin. Contract: route_inferred. Intent Funnel

intent.summary

Read. Scope: intent.read, analytics.read, admin. Contract: explicit. Read intent summaries

intent.summary.route.intent.summary

Read. Scope: intent.read, admin. Contract: route_inferred. Intent Summary

kb (6)

kb.faq.delete

Write. Scope: kb.write, admin. Contract: source_inferred. Kb Faq Delete Retry-safe with idempotency_key.

kb.faq.generate

Write. Scope: kb.write, admin. Contract: source_inferred. Kb Faq Generate Retry-safe with idempotency_key.

kb.faq.import

Write. Scope: kb.write, admin. Contract: source_inferred. Kb Faq Import Retry-safe with idempotency_key.

kb.faq.list

Read. Scope: kb.read, read, admin. Contract: source_inferred. Kb Faq List

kb.faq.save

Write. Scope: kb.write, admin. Contract: source_inferred. Kb Faq Save Retry-safe with idempotency_key.

kb.faq.set_status

Write. Scope: kb.write, admin. Contract: source_inferred. Kb Faq Set Status Retry-safe with idempotency_key.

knowledge (77)

knowledge.analytics.get

Read. Scope: kb.read, admin. Contract: route_inferred. Help Analytics Get

knowledge.analytics.toggle

Write. Scope: kb.write, admin. Contract: route_inferred. Help Analytics Toggle

knowledge.article.ai.refine

Read. Scope: kb.read, admin. Contract: route_inferred. Help Article Ai Refine

knowledge.article.class.bulk

Write. Scope: kb.write, admin. Contract: route_inferred. Help Article Class Bulk

knowledge.article.delete

Write. Scope: kb.write, admin. Contract: route_inferred. Help Article Delete

knowledge.article.publish

Write. Scope: kb.write, admin. Contract: route_inferred. Help Article Publish

knowledge.article.save

Write. Scope: kb.write, admin. Contract: route_inferred. Help Article Save

knowledge.article.set.category

Write. Scope: kb.write, admin. Contract: route_inferred. Help Article Set Category

knowledge.article.set.public

Write. Scope: kb.write, admin. Contract: route_inferred. Help Article Set Public

knowledge.articles.ai.generate

Write. Scope: kb.write, admin. Contract: route_inferred. Help Articles Ai Generate

knowledge.articles.bulk.delete

Write. Scope: kb.write, admin. Contract: route_inferred. Help Articles Bulk Delete

knowledge.articles.count

Read. Scope: kb.read, admin. Contract: declared_dynamic. Help Articles Count

knowledge.articles.ids

Read. Scope: kb.read, admin. Contract: route_inferred. Help Articles Ids

knowledge.articles.list

Read. Scope: kb.read, admin. Contract: route_inferred. Help Articles List

knowledge.articles.set.public.all

Write. Scope: kb.write, admin. Contract: route_inferred. Help Articles Set Public All

knowledge.categories.ai.merge

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Categories Ai Merge

knowledge.categories.bulk.delete

Write. Scope: kb.write, admin. Contract: route_inferred. Help Categories Bulk Delete

knowledge.categories.list

Read. Scope: kb.read, admin. Contract: declared_dynamic. Help Categories List

knowledge.categories.merge.dupes

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Categories Merge Dupes

knowledge.category.delete

Write. Scope: kb.write, admin. Contract: route_inferred. Help Category Delete

knowledge.category.get

Read. Scope: kb.read, admin. Contract: route_inferred. Help Category Get

knowledge.category.save

Write. Scope: kb.write, admin. Contract: route_inferred. Help Category Save

knowledge.center.article.image.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Article Image Upload

knowledge.center.favicon.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Favicon Upload

knowledge.center.hero.dark.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Hero Dark Upload

knowledge.center.hero.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Hero Upload

knowledge.center.logo.dark.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Logo Dark Upload

knowledge.center.logo.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Logo Upload

knowledge.center.settings.get

Read. Scope: kb.read, admin. Contract: declared_dynamic. Help Center Settings Get

knowledge.center.settings.save

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Settings Save

knowledge.center.translate.estimate

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Translate Estimate

knowledge.center.translate.run

Write. Scope: kb.write, admin. Contract: route_inferred. Help Center Translate Run

knowledge.center.translate.status

Read. Scope: kb.read, admin. Contract: declared_dynamic. Help Center Translate Status

knowledge.center.translate.stop

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Translate Stop

knowledge.center.widget.icon.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Widget Icon Upload

knowledge.comments.deliver.notifications

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Comments Deliver Notifications

knowledge.comments.maintenance

Write. Scope: kb.write, admin. Contract: route_inferred. Help Comments Maintenance

knowledge.comments.moderate

Write. Scope: kb.write, admin. Contract: route_inferred. Help Comments Moderate

knowledge.comments.moderate.route.kb.comments.moderate

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Comments Moderate

knowledge.comments.moderation.list

Read. Scope: kb.read, admin. Contract: route_inferred. Help Comments Moderation List

knowledge.comments.moderation.list.route.kb.comments.moderation.list

Read. Scope: kb.read, admin. Contract: route_inferred. Kb Comments Moderation List

knowledge.comments.notification.run

Write. Scope: kb.write, admin. Contract: route_inferred. Help Comments Notification Run

knowledge.import.batches

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Import Batches

knowledge.import.connectors

Write. Scope: kb.write, admin. Contract: declared_dynamic. Kb Import Connectors

knowledge.import.csv.preview

Read. Scope: kb.read, admin. Contract: route_inferred. Kb Import Csv Preview

knowledge.import.preview

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Import Preview

knowledge.import.resync

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Import Resync

knowledge.import.run

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Import Run

knowledge.import.undo

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Import Undo

knowledge.insights.generate

Write. Scope: kb.write, admin. Contract: route_inferred. Help Insights Generate

knowledge.insights.get

Read. Scope: kb.read, admin. Contract: declared_dynamic. Help Insights Get

knowledge.mark.reviewed

Write. Scope: kb.write, admin. Contract: declared_dynamic. Kb Mark Reviewed

knowledge.missed.dismiss

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Missed Dismiss

knowledge.missed.draft.article

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Missed Draft Article

knowledge.missed.list

Read. Scope: kb.read, admin. Contract: route_inferred. Kb Missed List

knowledge.missed.mark.published

Read. Scope: kb.read, admin. Contract: route_inferred. Kb Missed Mark Published

knowledge.missed.refresh

Write. Scope: kb.write, admin. Contract: declared_dynamic. Kb Missed Refresh

knowledge.organize.descriptions

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Organize Descriptions

knowledge.organize.status

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Organize Status

knowledge.organize.step

Write. Scope: kb.write, admin. Contract: route_inferred. Help Organize Step

knowledge.publish

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Publish

knowledge.reformat.revert

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Reformat Revert

knowledge.reformat.status

Read. Scope: kb.read, admin. Contract: declared_dynamic. Help Reformat Status

knowledge.reformat.step

Write. Scope: kb.write, admin. Contract: route_inferred. Help Reformat Step

knowledge.review.queue

Read. Scope: kb.read, admin. Contract: declared_dynamic. Kb Review Queue

knowledge.search.gaps

Read. Scope: kb.read, admin. Contract: declared_dynamic. Kb Search Gaps

knowledge.set.featured

Write. Scope: kb.write, admin. Contract: route_inferred. Help Set Featured

knowledge.set.visibility

Write. Scope: kb.write, admin. Contract: declared_dynamic. Kb Set Visibility

knowledge.subdomain.allocate

Write. Scope: kb.write, admin. Contract: route_inferred. Help Subdomain Allocate

knowledge.subdomain.check

Read. Scope: kb.read, admin. Contract: route_inferred. Help Subdomain Check

knowledge.subdomain.release

Write. Scope: kb.write, admin. Contract: route_inferred. Help Subdomain Release

knowledge.taxonomy.organize

Write. Scope: kb.write, admin. Contract: declared_dynamic. Kb Taxonomy Organize

knowledge.taxonomy.status

Read. Scope: kb.read, admin. Contract: declared_dynamic. Kb Taxonomy Status

knowledge.taxonomy.step

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Taxonomy Step

knowledge.widget.categories

Read. Scope: kb.read, admin. Contract: route_inferred. Kb Widget Categories

knowledge.widget.publish

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Widget Publish

knowledge.widget.targets

Read. Scope: kb.read, admin. Contract: route_inferred. Kb Widget Targets

leads (6)

leads.delete

Write. Scope: leads.write, crm.write, admin. Contract: explicit. Delete a lead Required fields: lead_id. Retry-safe with idempotency_key.

leads.delete.route.lead.delete

Write. Scope: leads.write, admin. Contract: route_inferred. Lead Delete

leads.list

Read. Scope: leads.read, crm.read, admin. Contract: explicit. List leads

leads.stats

Read. Scope: leads.read, analytics.read, admin. Contract: explicit. Get lead statistics

leads.stats.route.leads.stats

Read. Scope: leads.read, admin. Contract: declared_dynamic. Leads Stats

leads.update

Write. Scope: leads.write, crm.write, admin. Contract: explicit. Update a lead Required fields: lead_id, status. Retry-safe with idempotency_key.

Metamet (4)

meta.action

Read. Scope: none. Contract: explicit. Get one General API action contract Required fields: name.

meta.actions

Read. Scope: none. Contract: explicit. List the complete General API contract

meta.me

Read. Scope: none. Contract: explicit. Describe the authenticated API key and active workspace

meta.scopes

Read. Scope: none. Contract: explicit. List API scopes and the actions protected by each scope

notifications (1)

notifications.list

Read. Scope: notifications.read, admin. Contract: source_inferred. Notifications List

Plattform (345)

platform.add.announcement

Write. Scope: platform.write, admin. Contract: declared_dynamic. Add Announcement

platform.add.kb.article

Write. Scope: platform.write, admin. Contract: route_inferred. Add Kb Article

platform.add.todo.item

Write. Scope: platform.write, admin. Contract: route_inferred. Add Todo Item

platform.ai.action.lookup

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Action Lookup

platform.ai.anomaly.detect

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Anomaly Detect

platform.ai.brain.add

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Brain Add

platform.ai.brain.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Brain Delete

platform.ai.brain.edit

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Brain Edit

platform.ai.brain.list

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Brain List

platform.ai.brain.pin

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Brain Pin

platform.ai.brain.status

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Brain Status

platform.ai.chat

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Chat

platform.ai.confidence.stats

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Confidence Stats

platform.ai.context.lookup

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Context Lookup

platform.ai.daily.brief

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Daily Brief

platform.ai.daily.brief.check

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Daily Brief Check

platform.ai.daily.brief.dismiss

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Daily Brief Dismiss

platform.ai.daily.brief.fetch

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Daily Brief Fetch

platform.ai.eval.control.summary

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Eval Control Summary

platform.ai.eval.feedback.queue

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Eval Feedback Queue

platform.ai.eval.kb.gap.queue

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Eval Kb Gap Queue

platform.ai.eval.load

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Eval Load

platform.ai.eval.replay.history

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Eval Replay History

platform.ai.eval.run

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Eval Run

platform.ai.eval.save

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Eval Save

platform.ai.eval.score.answer

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Eval Score Answer

platform.ai.eval.simulate

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Eval Simulate

platform.ai.feedback.analysis

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Feedback Analysis

platform.ai.feedback.stats

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Feedback Stats

platform.ai.history.archive

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History Archive

platform.ai.history.clear.all

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History Clear All

platform.ai.history.delete

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History Delete

platform.ai.history.export.csv

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History Export Csv

platform.ai.history.get

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History Get

platform.ai.history.list

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History List

platform.ai.history.stats

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History Stats

platform.ai.insight.clear

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Insight Clear

platform.ai.insight.history

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Insight History

platform.ai.insight.report.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Insight Report Delete

platform.ai.insight.report.get

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Insight Report Get

platform.ai.instructions.compress

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Instructions Compress

platform.ai.instructions.connector.templates

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Instructions Connector Templates

platform.ai.instructions.example

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Instructions Example

platform.ai.instructions.load

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Instructions Load

platform.ai.instructions.preview

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Instructions Preview

platform.ai.instructions.reset

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Instructions Reset

platform.ai.instructions.save

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Instructions Save

platform.ai.page.insights

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Page Insights

platform.ai.popup.regen

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Popup Regen

platform.ai.quality.view

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Quality View

platform.ai.reasoning.chain.get

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Reasoning Chain Get

platform.ai.score.lead

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Score Lead

platform.ai.smart.alerts

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Smart Alerts

platform.ai.triage.accuracy

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Triage Accuracy

platform.ai.whmcs.chat

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Whmcs Chat

platform.ai.writing

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Writing

platform.api.keys.catalog

Read. Scope: platform.read, admin. Contract: declared_dynamic. Api Keys Catalog

platform.api.keys.create

Write. Scope: platform.write, admin. Contract: route_inferred. Api Keys Create

platform.api.keys.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Api Keys Delete

platform.api.keys.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Api Keys List

platform.api.keys.revoke

Write. Scope: platform.write, admin. Contract: route_inferred. Api Keys Revoke

platform.api.keys.update

Write. Scope: platform.write, admin. Contract: route_inferred. Api Keys Update

platform.audit.export

Read. Scope: platform.read, admin. Contract: route_inferred. Audit Export

platform.blocked

Write. Scope: platform.write, admin. Contract: route_inferred. Blocked

platform.campaigns

Read. Scope: platform.read, admin. Contract: declared_dynamic. Campaigns

platform.chart.browsers

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart Browsers

platform.chart.countries

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart Countries

platform.chart.devices

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart Devices

platform.chart.hourly

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart Hourly

platform.chart.new.returning

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart New Returning

platform.chart.os

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart Os

platform.chart.sources

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart Sources

platform.chart.visitors

Read. Scope: platform.read, admin. Contract: route_inferred. Chart Visitors

platform.chatbot.flow.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Chatbot Flow Delete

platform.chatbot.flow.get

Read. Scope: platform.read, admin. Contract: route_inferred. Chatbot Flow Get

platform.chatbot.flow.save

Write. Scope: platform.write, admin. Contract: route_inferred. Chatbot Flow Save

platform.chatbot.flow.stats

Read. Scope: platform.read, admin. Contract: route_inferred. Chatbot Flow Stats

platform.chatbot.flow.test.advance

Read. Scope: platform.read, admin. Contract: route_inferred. Chatbot Flow Test Advance

platform.chatbot.flow.test.start

Write. Scope: platform.write, admin. Contract: route_inferred. Chatbot Flow Test Start

platform.chatbot.flow.toggle

Write. Scope: platform.write, admin. Contract: route_inferred. Chatbot Flow Toggle

platform.chatbot.flows.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chatbot Flows List

platform.chatbot.flows.widget.data

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chatbot Flows Widget Data

platform.chatbot.node.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Chatbot Node Delete

platform.chatbot.node.save

Write. Scope: platform.write, admin. Contract: route_inferred. Chatbot Node Save

platform.chatbot.nodes.list

Read. Scope: platform.read, admin. Contract: route_inferred. Chatbot Nodes List

platform.clear.admin.chat.history

Write. Scope: platform.write, admin. Contract: declared_dynamic. Clear Admin Chat History

platform.command.center.view

Read. Scope: platform.read, admin. Contract: declared_dynamic. Command Center View

platform.complete.todo.item

Write. Scope: platform.write, admin. Contract: route_inferred. Complete Todo Item

platform.consent.log.list

Read. Scope: platform.read, admin. Contract: route_inferred. Consent Log List

platform.countries

Read. Scope: platform.read, admin. Contract: declared_dynamic. Countries

platform.country.detail

Read. Scope: platform.read, admin. Contract: route_inferred. Country Detail

platform.custom.code.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Custom Code Approve

platform.custom.code.disable

Write. Scope: platform.write, admin. Contract: route_inferred. Custom Code Disable

platform.custom.code.reject

Write. Scope: platform.write, admin. Contract: route_inferred. Custom Code Reject

platform.custom.code.rollback

Write. Scope: platform.write, admin. Contract: route_inferred. Custom Code Rollback

platform.custom.code.status

Read. Scope: platform.read, admin. Contract: route_inferred. Custom Code Status

platform.delete.todo.item

Write. Scope: platform.write, admin. Contract: route_inferred. Delete Todo Item

platform.devices

Read. Scope: platform.read, admin. Contract: declared_dynamic. Devices

platform.diag.check.resolutions

Read. Scope: platform.read, admin. Contract: declared_dynamic. Diag Check Resolutions

platform.diag.dismiss

Write. Scope: platform.write, admin. Contract: route_inferred. Diag Dismiss

platform.diag.recheck

Read. Scope: platform.read, admin. Contract: route_inferred. Diag Recheck

platform.diag.recheck.all

Read. Scope: platform.read, admin. Contract: declared_dynamic. Diag Recheck All

platform.diag.report

Write. Scope: platform.write, admin. Contract: route_inferred. Diag Report

platform.diag.unmute

Read. Scope: platform.read, admin. Contract: route_inferred. Diag Unmute

platform.dismiss.credit.alert

Write. Scope: platform.write, admin. Contract: route_inferred. Dismiss Credit Alert

platform.domain.knowledge.ai.generate

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Knowledge Ai Generate

platform.domain.knowledge.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Knowledge Delete

platform.domain.knowledge.list

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Knowledge List

platform.domain.knowledge.save

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Knowledge Save

platform.domain.knowledge.toggle

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Knowledge Toggle

platform.domain.verify.add

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Verify Add

platform.domain.verify.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Domain Verify List

platform.domain.verify.recheck

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Verify Recheck

platform.domain.verify.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Verify Remove

platform.dynamic.action.dispatch

Write. Scope: platform.write, admin. Contract: route_inferred. Dynamic Action Dispatch

platform.events.clear.all

Write. Scope: platform.write, admin. Contract: declared_dynamic. Events Clear All

platform.events.list

Read. Scope: platform.read, admin. Contract: route_inferred. Events List

platform.experiment.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Experiment Delete

platform.experiment.results

Read. Scope: platform.read, admin. Contract: route_inferred. Experiment Results

platform.experiment.save

Write. Scope: platform.write, admin. Contract: route_inferred. Experiment Save

platform.experiments.clear.all

Write. Scope: platform.write, admin. Contract: declared_dynamic. Experiments Clear All

platform.experiments.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Experiments List

platform.failed.logins.clear.all

Write. Scope: platform.write, admin. Contract: declared_dynamic. Failed Logins Clear All

platform.failed.logins.clear.history

Write. Scope: platform.write, admin. Contract: declared_dynamic. Failed Logins Clear History

platform.failed.logins.journey

Write. Scope: platform.write, admin. Contract: route_inferred. Failed Logins Journey

platform.failed.logins.list

Write. Scope: platform.write, admin. Contract: declared_dynamic. Failed Logins List

platform.failed.logins.unblock

Write. Scope: platform.write, admin. Contract: route_inferred. Failed Logins Unblock

platform.feedback.analysis.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Analysis Get

platform.feedback.analysis.run

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Analysis Run

platform.feedback.analytics.all

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics All

platform.feedback.analytics.detractors

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Detractors

platform.feedback.analytics.metrics

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Metrics

platform.feedback.analytics.overview

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Overview

platform.feedback.analytics.segments

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Segments

platform.feedback.analytics.sentiment

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Sentiment

platform.feedback.analytics.themes

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Themes

platform.feedback.analytics.trends

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Trends

platform.feedback.assignees.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Assignees List

platform.feedback.event.outbox.drain

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Event Outbox Drain

platform.feedback.exports.create

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Exports Create

platform.feedback.exports.get

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Exports Get

platform.feedback.external.review.ingest

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback External Review Ingest

platform.feedback.ingest.create

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Ingest Create

platform.feedback.items.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Assign

platform.feedback.items.evidence

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Items Evidence

platform.feedback.items.follow.up.complete

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Follow Up Complete

platform.feedback.items.follow.up.set

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Follow Up Set Required fields: bool.

platform.feedback.items.get

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Items Get

platform.feedback.items.list

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Items List

platform.feedback.items.mark.read

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Mark Read

platform.feedback.items.notes.add

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Notes Add

platform.feedback.items.set.priority

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Set Priority

platform.feedback.items.set.status

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Set Status

platform.feedback.items.tags.add

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Tags Add

platform.feedback.items.tags.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Tags Remove

platform.feedback.list

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback List

platform.feedback.reconciliation

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Reconciliation

platform.feedback.reports.delete

Write. Scope: platform.write, admin. Contract: declared_dynamic. Feedback Reports Delete

platform.feedback.reports.email

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Reports Email

platform.feedback.reports.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Reports Get

platform.feedback.reports.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Reports List

platform.feedback.satisfaction.advice.last

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Satisfaction Advice Last

platform.feedback.satisfaction.advise

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Satisfaction Advise

platform.feedback.satisfaction.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Satisfaction Overview

platform.feedback.sources.health

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Sources Health

platform.feedback.sources.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Sources List

platform.feedback.sources.rebuild

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Sources Rebuild

platform.feedback.sources.replay

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Sources Replay

platform.feedback.stats

Write. Scope: platform.write, admin. Contract: declared_dynamic. Feedback Stats

platform.fx.refresh.now

Write. Scope: platform.write, admin. Contract: declared_dynamic. Fx Refresh Now

platform.geoip.autodetect

Read. Scope: platform.read, admin. Contract: declared_dynamic. Geoip Autodetect

platform.get.admin.chat.history

Read. Scope: platform.read, admin. Contract: declared_dynamic. Get Admin Chat History

platform.get.ai.snapshot

Write. Scope: platform.write, admin. Contract: route_inferred. Get Ai Snapshot

platform.get.campaign.groups

Read. Scope: platform.read, admin. Contract: declared_dynamic. Get Campaign Groups

platform.get.client.chat.knowledge.overview

Write. Scope: platform.write, admin. Contract: declared_dynamic. Get Client Chat Knowledge Overview

platform.get.kb.categories

Read. Scope: platform.read, admin. Contract: route_inferred. Get Kb Categories

platform.get.live.health.snapshot

Read. Scope: platform.read, admin. Contract: route_inferred. Get Live Health Snapshot

platform.get.pwa.chat.prefs

Write. Scope: platform.write, admin. Contract: declared_dynamic. Get Pwa Chat Prefs

platform.get.servers

Read. Scope: platform.read, admin. Contract: declared_dynamic. Get Servers

platform.get.survey.config

Read. Scope: platform.read, admin. Contract: declared_dynamic. Get Survey Config

platform.get.ticket.options

Read. Scope: platform.read, admin. Contract: declared_dynamic. Get Ticket Options

platform.get.ticket.thread

Read. Scope: platform.read, admin. Contract: route_inferred. Get Ticket Thread

platform.get.todo.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Get Todo List

platform.get.whmcs.health.snapshot

Read. Scope: platform.read, admin. Contract: declared_dynamic. Get Whmcs Health Snapshot

platform.get.widget.advanced

Read. Scope: platform.read, admin. Contract: route_inferred. Get Widget Advanced

platform.groups.create

Write. Scope: platform.write, admin. Contract: route_inferred. Groups Create

platform.groups.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Groups Delete

platform.groups.list

Write. Scope: platform.write, admin. Contract: route_inferred. Groups List

platform.groups.rename

Write. Scope: platform.write, admin. Contract: route_inferred. Groups Rename

platform.groups.set.primary

Write. Scope: platform.write, admin. Contract: route_inferred. Groups Set Primary

platform.hc.preview.mint

Read. Scope: platform.read, admin. Contract: route_inferred. Hc Preview Mint

platform.hc.template.apply

Write. Scope: platform.write, admin. Contract: route_inferred. Hc Template Apply

platform.hc.template.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Hc Template Delete

platform.hc.template.preview

Read. Scope: platform.read, admin. Contract: route_inferred. Hc Template Preview

platform.hc.template.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hc Template Save

platform.hc.templates.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hc Templates List

platform.hc.translation.review.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hc Translation Review Get

platform.hc.translation.review.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hc Translation Review List

platform.hc.translation.review.revert

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hc Translation Review Revert

platform.hc.translation.review.save

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hc Translation Review Save

platform.heatmap

Read. Scope: platform.read, admin. Contract: route_inferred. Heatmap

platform.inbound.activity.feed

Write. Scope: platform.write, admin. Contract: route_inferred. Inbound Activity Feed

platform.inbound.endpoints.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Inbound Endpoints Delete

platform.inbound.endpoints.list

Write. Scope: platform.write, admin. Contract: route_inferred. Inbound Endpoints List

platform.inbound.endpoints.save

Write. Scope: platform.write, admin. Contract: route_inferred. Inbound Endpoints Save

platform.inbound.endpoints.test

Write. Scope: platform.write, admin. Contract: route_inferred. Inbound Endpoints Test

platform.ip.classify

Read. Scope: platform.read, admin. Contract: route_inferred. Ip Classify

platform.js.errors.clear.all

Write. Scope: platform.write, admin. Contract: declared_dynamic. Js Errors Clear All

platform.js.errors.list

Read. Scope: platform.read, admin. Contract: route_inferred. Js Errors List

platform.js.issue.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Js Issue Assign

platform.js.issue.update

Write. Scope: platform.write, admin. Contract: route_inferred. Js Issue Update

platform.js.sourcemap.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Js Sourcemap Delete

platform.js.sourcemap.upload

Write. Scope: platform.write, admin. Contract: route_inferred. Js Sourcemap Upload

platform.js.sourcemaps.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Js Sourcemaps List

platform.leads

Read. Scope: platform.read, admin. Contract: route_inferred. Leads

platform.license.delete

Write. Scope: platform.write, admin. Contract: declared_dynamic. License Delete

platform.license.diagnostics

Read. Scope: platform.read, admin. Contract: declared_dynamic. License Diagnostics

platform.license.force.check

Read. Scope: platform.read, admin. Contract: declared_dynamic. License Force Check

platform.license.preflight

Read. Scope: platform.read, admin. Contract: declared_dynamic. License Preflight

platform.license.save

Write. Scope: platform.write, admin. Contract: route_inferred. License Save

platform.license.status

Read. Scope: platform.read, admin. Contract: declared_dynamic. License Status

platform.license.verify.now

Write. Scope: platform.write, admin. Contract: declared_dynamic. License Verify Now

platform.lifecycle.evaluate

Read. Scope: platform.read, admin. Contract: route_inferred. Lifecycle Evaluate

platform.lifecycle.rule.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Lifecycle Rule Delete

platform.lifecycle.rule.list

Read. Scope: platform.read, admin. Contract: route_inferred. Lifecycle Rule List

platform.lifecycle.rule.save

Write. Scope: platform.write, admin. Contract: route_inferred. Lifecycle Rule Save

platform.list.assignable.sites

Read. Scope: platform.read, admin. Contract: declared_dynamic. List Assignable Sites

platform.list.network.issues

Read. Scope: platform.read, admin. Contract: declared_dynamic. List Network Issues

platform.list.sites

Read. Scope: platform.read, admin. Contract: declared_dynamic. List Sites

platform.lookup.client.full

Read. Scope: platform.read, admin. Contract: route_inferred. Lookup Client Full

platform.mark.feedback.read

Write. Scope: platform.write, admin. Contract: route_inferred. Mark Feedback Read

platform.marketplace.local.install

Write. Scope: platform.write, admin. Contract: route_inferred. Marketplace Local Install

platform.marketplace.local.uninstall

Write. Scope: platform.write, admin. Contract: route_inferred. Marketplace Local Uninstall

platform.marketplace.session.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Marketplace Session Get

platform.marketplace.session.set

Write. Scope: platform.write, admin. Contract: route_inferred. Marketplace Session Set

platform.message.contact.locale

Write. Scope: platform.write, admin. Contract: route_inferred. Message Contact Locale

platform.message.outbound.convert

Write. Scope: platform.write, admin. Contract: route_inferred. Message Outbound Convert

platform.message.translate

Write. Scope: platform.write, admin. Contract: route_inferred. Message Translate

platform.message.translation.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Message Translation Delete

platform.message.translation.save

Write. Scope: platform.write, admin. Contract: route_inferred. Message Translation Save

platform.meta.channels.disconnect

Write. Scope: platform.write, admin. Contract: declared_dynamic. Meta Channels Disconnect

platform.onboarding.action

Read. Scope: platform.read, admin. Contract: declared_dynamic. Onboarding Action

platform.onboarding.readiness

Read. Scope: platform.read, admin. Contract: declared_dynamic. Onboarding Readiness

platform.open.network.issue

Read. Scope: platform.read, admin. Contract: declared_dynamic. Open Network Issue

platform.open.ticket

Read. Scope: platform.read, admin. Contract: route_inferred. Open Ticket

platform.operator.text.translate

Write. Scope: platform.write, admin. Contract: route_inferred. Operator Text Translate

platform.opsiq.backup.export

Read. Scope: platform.read, admin. Contract: declared_dynamic. Download a full backup in one request (retired)

platform.opsiq.backup.import

Write. Scope: platform.write, admin. Contract: route_inferred. Opsiq Backup Import

platform.opsiq.backup.import.start

Write. Scope: platform.write, admin. Contract: route_inferred. Opsiq Backup Import Start

platform.opsiq.backup.job.start

Write. Scope: platform.write, admin. Contract: route_inferred. Opsiq Backup Job Start

platform.opsiq.backup.job.status

Write. Scope: platform.write, admin. Contract: route_inferred. Opsiq Backup Job Status

platform.outreach.campaign.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Campaign Delete

platform.outreach.campaign.list

Read. Scope: platform.read, admin. Contract: route_inferred. Outreach Campaign List

platform.outreach.campaign.save

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Campaign Save

platform.outreach.campaign.send

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Campaign Send

platform.outreach.compose.send

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Compose Send

platform.outreach.replies.list

Read. Scope: platform.read, admin. Contract: route_inferred. Outreach Replies List

platform.outreach.reply.ai

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Reply Ai

platform.outreach.reply.mark

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Reply Mark

platform.outreach.reply.pref

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Reply Pref

platform.outreach.reply.send

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Reply Send

platform.outreach.reply.thread

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Reply Thread

platform.outreach.template.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Template Delete

platform.outreach.template.list

Read. Scope: platform.read, admin. Contract: route_inferred. Outreach Template List

platform.outreach.template.preview

Read. Scope: platform.read, admin. Contract: route_inferred. Outreach Template Preview

platform.outreach.template.save

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Template Save

platform.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Overview

platform.overview.hub.view

Read. Scope: platform.read, admin. Contract: route_inferred. Overview Hub View

platform.overview.intelligence.graph

Read. Scope: platform.read, admin. Contract: declared_dynamic. Overview Intelligence Graph

platform.pages

Read. Scope: platform.read, admin. Contract: route_inferred. Pages

platform.paths.data

Read. Scope: platform.read, admin. Contract: route_inferred. Paths Data

platform.profile.change.password

Write. Scope: platform.write, admin. Contract: declared_dynamic. Profile Change Password

platform.profile.get

Read. Scope: platform.read, admin. Contract: route_inferred. Profile Get

platform.profile.reward.claim

Write. Scope: platform.write, admin. Contract: route_inferred. Profile Reward Claim

platform.profile.reward.claim.cancel

Write. Scope: platform.write, admin. Contract: route_inferred. Profile Reward Claim Cancel

platform.profile.save

Write. Scope: platform.write, admin. Contract: declared_dynamic. Profile Save

platform.profile.session.revoke

Write. Scope: platform.write, admin. Contract: route_inferred. Profile Session Revoke

platform.profile.sessions.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Profile Sessions List

platform.profile.sessions.revoke.others

Write. Scope: platform.write, admin. Contract: declared_dynamic. Profile Sessions Revoke Others

platform.profile.team.dispute.file

Write. Scope: platform.write, admin. Contract: route_inferred. Profile Team Dispute File

platform.purge

Write. Scope: platform.write, admin. Contract: route_inferred. Purge

platform.purge.all

Write. Scope: platform.write, admin. Contract: route_inferred. Purge All

platform.realtime

Read. Scope: platform.read, admin. Contract: route_inferred. Realtime

platform.realtime.test

Write. Scope: platform.write, admin. Contract: route_inferred. Realtime Test

platform.retention.data

Read. Scope: platform.read, admin. Contract: route_inferred. Retention Data

platform.routes.list

Read. Scope: admin. Contract: source_inferred. List every registered OpsIQ operation

platform.routes.read

Read. Scope: admin. Contract: explicit. Execute a registered read operation Required fields: route.

platform.routes.write

Write. Scope: admin. Contract: explicit. Execute a registered write operation Required fields: route, idempotency_key. Retry-safe with idempotency_key.

platform.run.ai.analysis

Write. Scope: platform.write, admin. Contract: route_inferred. Run Ai Analysis

platform.save.admin.chat.history

Write. Scope: platform.write, admin. Contract: route_inferred. Save Admin Chat History

platform.save.pwa.chat.prefs

Write. Scope: platform.write, admin. Contract: declared_dynamic. Save Pwa Chat Prefs

platform.save.survey.config

Write. Scope: platform.write, admin. Contract: route_inferred. Save Survey Config

platform.save.widget.advanced

Write. Scope: platform.write, admin. Contract: declared_dynamic. Save Widget Advanced

platform.scim.token.issue

Read. Scope: platform.read, admin. Contract: route_inferred. Scim Token Issue

platform.scim.token.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Scim Token List

platform.scim.token.revoke

Write. Scope: platform.write, admin. Contract: route_inferred. Scim Token Revoke

platform.segment.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Segment Delete

platform.segment.list

Read. Scope: platform.read, admin. Contract: route_inferred. Segment List

platform.segment.members

Read. Scope: platform.read, admin. Contract: route_inferred. Segment Members

platform.segment.preview

Read. Scope: platform.read, admin. Contract: route_inferred. Segment Preview

platform.segment.save

Write. Scope: platform.write, admin. Contract: route_inferred. Segment Save

platform.segment.suggestion.accept

Write. Scope: platform.write, admin. Contract: route_inferred. Segment Suggestion Accept

platform.segment.suggestion.dismiss

Write. Scope: platform.write, admin. Contract: route_inferred. Segment Suggestion Dismiss

platform.segment.suggestion.list

Read. Scope: platform.read, admin. Contract: route_inferred. Segment Suggestion List

platform.send.campaign

Write. Scope: platform.write, admin. Contract: route_inferred. Send Campaign

platform.send.client.email

Write. Scope: platform.write, admin. Contract: route_inferred. Send Client Email

platform.send.ticket.reply

Write. Scope: platform.write, admin. Contract: route_inferred. Send Ticket Reply

platform.service.studio.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Service Studio Get

platform.set.active.site

Write. Scope: platform.write, admin. Contract: route_inferred. Set Active Site

platform.site.set.group

Write. Scope: platform.write, admin. Contract: route_inferred. Site Set Group

platform.sites.add

Write. Scope: platform.write, admin. Contract: route_inferred. Sites Add

platform.sites.edit

Write. Scope: platform.write, admin. Contract: route_inferred. Sites Edit

platform.sites.list

Write. Scope: platform.write, admin. Contract: route_inferred. Sites List

platform.sites.picker

Write. Scope: platform.write, admin. Contract: route_inferred. Sites Picker

platform.sites.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Sites Remove

platform.stats

Read. Scope: platform.read, admin. Contract: declared_dynamic. Stats

platform.stepup.verify

Write. Scope: platform.write, admin. Contract: declared_dynamic. Stepup Verify

platform.submit.agent.ai.feedback

Write. Scope: platform.write, admin. Contract: route_inferred. Submit Agent Ai Feedback

platform.submit.triage.feedback

Write. Scope: platform.write, admin. Contract: route_inferred. Submit Triage Feedback

platform.test.geoip

Read. Scope: platform.read, admin. Contract: route_inferred. Test Geoip

platform.top.pages

Read. Scope: platform.read, admin. Contract: route_inferred. Top Pages

platform.train.client.chat.knowledge

Write. Scope: platform.write, admin. Contract: route_inferred. Train Client Chat Knowledge

platform.triggers

Read. Scope: platform.read, admin. Contract: declared_dynamic. Triggers

platform.turn.pool.add

Write. Scope: platform.write, admin. Contract: route_inferred. Turn Pool Add

platform.turn.pool.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Turn Pool List

platform.turn.pool.pick.test

Write. Scope: platform.write, admin. Contract: route_inferred. Turn Pool Pick Test

platform.turn.pool.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Turn Pool Remove

platform.turn.pool.update

Write. Scope: platform.write, admin. Contract: route_inferred. Turn Pool Update

platform.update.lead.status

Write. Scope: platform.write, admin. Contract: route_inferred. Update Lead Status

platform.wa.embedded.signup.exchange

Write. Scope: platform.write, admin. Contract: route_inferred. Wa Embedded Signup Exchange

platform.warehouse.export.run

Read. Scope: platform.read, admin. Contract: declared_dynamic. Warehouse Export Run

platform.warehouse.exports.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Warehouse Exports List

platform.webhook.deliveries.list

Read. Scope: platform.read, admin. Contract: route_inferred. Webhook Deliveries List

platform.webhook.endpoint.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Webhook Endpoint Delete

platform.webhook.endpoint.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Webhook Endpoint List

platform.webhook.endpoint.save

Write. Scope: platform.write, admin. Contract: route_inferred. Webhook Endpoint Save

platform.webhook.endpoint.test

Write. Scope: platform.write, admin. Contract: route_inferred. Webhook Endpoint Test

platform.webhook.redeliver

Write. Scope: platform.write, admin. Contract: route_inferred. Webhook Redeliver

platform.weekly.digest.view

Read. Scope: platform.read, admin. Contract: route_inferred. Weekly Digest View

platform.whmcs.op.dispatch

Read. Scope: platform.read, admin. Contract: declared_dynamic. Whmcs Op Dispatch

platform.workspace.custom.domain.remove

Write. Scope: platform.write, admin. Contract: declared_dynamic. Workspace Custom Domain Remove

platform.workspace.custom.domain.set

Write. Scope: platform.write, admin. Contract: route_inferred. Workspace Custom Domain Set

platform.writing.json.knowledge.clear

Write. Scope: platform.write, admin. Contract: declared_dynamic. Writing Json Knowledge Clear

platform.writing.json.knowledge.count

Read. Scope: platform.read, admin. Contract: declared_dynamic. Writing Json Knowledge Count

platform.writing.json.knowledge.import

Write. Scope: platform.write, admin. Contract: route_inferred. Writing Json Knowledge Import

portal_studio (147)

portal_studio.add

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Domain Add

portal_studio.allocate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Subdomain Allocate

portal_studio.apply.kit

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Apply Kit

portal_studio.apply.theme

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Apply Theme

portal_studio.approval

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Approval

portal_studio.approve

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Approve

portal_studio.ask

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Ask

portal_studio.audience.explain

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Audience Explain

portal_studio.brand.generate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Brand Generate

portal_studio.brand.import

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Brand Import

portal_studio.cancel.schedule

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Design Cancel Schedule

portal_studio.certify

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Certify

portal_studio.check

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Host Check

portal_studio.check.route.portal.subdomain.check

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Subdomain Check

portal_studio.comment.add

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Comment Add

portal_studio.comment.resolve

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Comment Resolve

portal_studio.component.package.inspect

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Component Package Inspect

portal_studio.component.package.install

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Component Package Install

portal_studio.component.validate

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Component Validate

portal_studio.config

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Handoff Config

portal_studio.data.resolve

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Data Resolve

portal_studio.delete.theme

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Delete Theme

portal_studio.developer.contract

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Developer Contract

portal_studio.discovery.preview

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Studio Discovery Preview

portal_studio.discovery.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Discovery Save

portal_studio.document.load

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Load

portal_studio.document.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Save

portal_studio.form.archive

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Form Archive

portal_studio.form.catalog

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Form Catalog

portal_studio.form.create

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Create

portal_studio.form.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Delete

portal_studio.form.duplicate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Duplicate

portal_studio.form.evaluate

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Studio Form Evaluate

portal_studio.form.group.apply

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Group Apply

portal_studio.form.group.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Group Delete

portal_studio.form.group.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Group Save

portal_studio.form.publish

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Publish

portal_studio.form.restore

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Form Restore

portal_studio.form.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Save

portal_studio.form.template

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Template

portal_studio.form.test

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Studio Form Test

portal_studio.form.version.restore

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Version Restore

portal_studio.identity.discover

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Identity Discover

portal_studio.identity.load

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Identity Load

portal_studio.identity.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Identity Save

portal_studio.integration.activate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Activate

portal_studio.integration.install

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Install

portal_studio.integration.kill.switch

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Kill Switch

portal_studio.integration.list

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Integration List

portal_studio.integration.policy

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Integration Policy

portal_studio.integration.policy.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Integration Policy Save

portal_studio.integration.preflight

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Preflight

portal_studio.integration.revise

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Revise

portal_studio.integration.rollback

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Rollback

portal_studio.integration.transition

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Transition

portal_studio.journey.archive

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Journey Archive

portal_studio.journey.catalog

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Journey Catalog

portal_studio.journey.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Journey Delete

portal_studio.journey.duplicate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Journey Duplicate

portal_studio.journey.evaluate

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Studio Journey Evaluate

portal_studio.journey.instantiate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Journey Instantiate

portal_studio.journey.restore

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Journey Restore

portal_studio.journey.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Journey Save

portal_studio.kb.category.delete

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Kb Category Delete

portal_studio.kb.category.reorder

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Kb Category Reorder

portal_studio.kb.category.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Kb Category Save

portal_studio.kb.governance

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Kb Governance

portal_studio.kb.governance.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Kb Governance Save

portal_studio.kb.languages

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Kb Languages

portal_studio.kb.languages.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Kb Languages Save

portal_studio.kb.parity

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Kb Parity

portal_studio.kb.search.tuning

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Kb Search Tuning

portal_studio.kb.search.tuning.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Kb Search Tuning Save

portal_studio.kb.tree

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Kb Tree

portal_studio.knowledge.summary

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Knowledge Summary

portal_studio.list

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Domain List

portal_studio.load

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Analytics Load

portal_studio.load.route.portal.design.load

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Design Load

portal_studio.load.route.portal.form.load

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Form Load

portal_studio.lock

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Lock

portal_studio.migration.apply

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Migration Apply

portal_studio.migration.approve

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Migration Approve

portal_studio.migration.list

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Migration List

portal_studio.migration.reconcile

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Migration Reconcile

portal_studio.migration.report

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Migration Report

portal_studio.migration.rollback

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Migration Rollback

portal_studio.migration.rollout

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Migration Rollout

portal_studio.migration.start

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Migration Start

portal_studio.node.add

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Node Add

portal_studio.node.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Node Delete

portal_studio.node.duplicate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Node Duplicate

portal_studio.node.move

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Node Move

portal_studio.node.update

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Node Update

portal_studio.operations.control

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Operations Control

portal_studio.operations.record

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Operations Record

portal_studio.operations.summary

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Operations Summary

portal_studio.org.context

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Org Context

portal_studio.org.member.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Org Member Save

portal_studio.org.members

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Org Members

portal_studio.org.requests

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Org Requests

portal_studio.page.archive

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Page Archive

portal_studio.page.create

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Page Create

portal_studio.page.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Page Delete

portal_studio.page.duplicate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Page Duplicate

portal_studio.page.restore

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Page Restore

portal_studio.page.update

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Page Update

portal_studio.parity.accept

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Parity Accept

portal_studio.parity.capture

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Parity Capture

portal_studio.parity.compare

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Parity Compare

portal_studio.parity.create

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Parity Create

portal_studio.parity.list

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Parity List

portal_studio.presence

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Presence

portal_studio.preview

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Preview

portal_studio.preview.catalog

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Preview Catalog

portal_studio.publish

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Publish

portal_studio.redirect.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Redirect Delete

portal_studio.redirect.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Redirect Save

portal_studio.release.publish

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Publish

portal_studio.release.rollback

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Rollback

portal_studio.release.schedule

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Schedule

portal_studio.remove

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Domain Remove

portal_studio.request.changes

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Request Changes

portal_studio.restore.published

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Restore Published

portal_studio.revert

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Design Revert

portal_studio.review

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Review

portal_studio.review.link

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Review Link

portal_studio.rollback

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Rollback

portal_studio.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Save

portal_studio.save.route.portal.form.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Form Save

portal_studio.save.theme

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Save Theme

portal_studio.saved.section.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Saved Section Delete

portal_studio.saved.section.instantiate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Saved Section Instantiate

portal_studio.saved.section.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Saved Section Save

portal_studio.schedule

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Design Schedule

portal_studio.schedule.cancel

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Schedule Cancel

portal_studio.scim.config

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Scim Config

portal_studio.service.archive

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Service Archive

portal_studio.service.catalog

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Service Catalog

portal_studio.service.duplicate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Service Duplicate

portal_studio.service.reorder

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Service Reorder

portal_studio.service.restore

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Service Restore

portal_studio.service.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Service Save

portal_studio.service.template

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Service Template

portal_studio.sign.in.flow.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Sign In Flow Save

portal_studio.test.link

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Handoff Test Link

portal_studio.unlock

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Unlock

portal_studio.upload

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Image Upload

sales (14)

sales.ai.insight

Write. Scope: sales.write, admin. Contract: route_inferred. Sales Ai Insight

sales.analyze

Write. Scope: sales.write, analytics.write, admin. Contract: explicit. Analyze sales with AI Retry-safe with idempotency_key.

sales.chart

Write. Scope: sales.write, admin. Contract: route_inferred. Sales Chart

sales.compare

Read. Scope: sales.read, analytics.read, admin. Contract: explicit. Compare sales periods

sales.compare.route.sales.compare

Read. Scope: sales.read, admin. Contract: route_inferred. Sales Compare

sales.goal.delete

Write. Scope: sales.write, admin. Contract: route_inferred. Conversion Goal Delete

sales.goal.list

Read. Scope: sales.read, admin. Contract: route_inferred. Conversion Goal List

sales.goal.save

Write. Scope: sales.write, admin. Contract: route_inferred. Conversion Goal Save

sales.list

Read. Scope: sales.read, analytics.read, admin. Contract: explicit. List sales and conversions

sales.list.route.conversion.list

Read. Scope: sales.read, admin. Contract: route_inferred. Conversion List

sales.record

Write. Scope: sales.write, admin. Contract: route_inferred. Conversion Record

sales.stats

Read. Scope: sales.read, analytics.read, admin. Contract: explicit. Read sales statistics

sales.stats.route.sales.stats

Read. Scope: sales.read, admin. Contract: declared_dynamic. Sales Stats

sales.table

Read. Scope: sales.read, admin. Contract: route_inferred. Sales Table

Sicherheit (21)

security.ai.analyze

Write. Scope: security.write, admin. Contract: route_inferred. Security Ai Analyze

security.ai.ask

Write. Scope: security.write, admin. Contract: route_inferred. Security Ai Ask

security.ai.briefs

Read. Scope: security.read, admin. Contract: declared_dynamic. Security Ai Briefs

security.ai.chain.explain

Read. Scope: security.read, admin. Contract: route_inferred. Security Ai Chain Explain

security.ai.incident.action

Write. Scope: security.write, admin. Contract: route_inferred. Security Ai Incident Action

security.ai.incidents

Read. Scope: security.read, admin. Contract: route_inferred. Security Ai Incidents

security.ai.js.triage

Read. Scope: security.read, admin. Contract: route_inferred. Security Ai Js Triage

security.ai.policies

Read. Scope: security.read, admin. Contract: declared_dynamic. Security Ai Policies

security.ai.policy.action

Write. Scope: security.write, admin. Contract: route_inferred. Security Ai Policy Action

security.ai.verdicts

Read. Scope: security.read, admin. Contract: route_inferred. Security Ai Verdicts

security.blocklist.add

Write. Scope: security.write, admin. Contract: source_inferred. Add a spam rule (email, domain or IP) to the ticket blocklist Required fields: kind, value. Retry-safe with idempotency_key.

security.blocklist.list

Read. Scope: security.read, admin. Contract: explicit. List the current ticket spam rules

security.chain.reanchor

Write. Scope: security.write, admin. Contract: declared_dynamic. Security Chain Reanchor

security.check

Read. Scope: security.read, admin. Contract: source_inferred. Check an IP or email against the platform blocklists and Security AI verdicts

security.ip

Write. Scope: security.write, admin. Contract: route_inferred. Block Ip

security.ip.route.unblock.ip

Write. Scope: security.write, admin. Contract: route_inferred. Unblock Ip

security.list

Write. Scope: security.write, admin. Contract: route_inferred. Access Log List

security.overview.chains

Read. Scope: security.read, admin. Contract: declared_dynamic. Security Overview Chains

security.overview.data

Read. Scope: security.read, admin. Contract: declared_dynamic. Security Overview Data

security.report

Write. Scope: security.write, admin. Contract: source_inferred. Report abuse a connector observed (spam, login attack, scan, fraud) Retry-safe with idempotency_key.

security.visitor

Write. Scope: security.write, admin. Contract: route_inferred. Block Visitor

sessions (5)

sessions.detail

Read. Scope: sessions.read, admin. Contract: route_inferred. Session Detail

sessions.get

Read. Scope: sessions.read, analytics.read, admin. Contract: explicit. Get a session journey Required fields: session_id.

sessions.list

Read. Scope: sessions.read, analytics.read, admin. Contract: explicit. List sessions

sessions.merged

Read. Scope: sessions.read, admin. Contract: route_inferred. Sessions Merged

sessions.table

Read. Scope: sessions.read, admin. Contract: route_inferred. Sessions Table

settings (11)

settings.ai.eval.watchtower.config

Write. Scope: settings.write, admin. Contract: declared_dynamic. Ai Eval Watchtower Config

settings.get.client.chat.settings

Read. Scope: settings.read, admin. Contract: route_inferred. Get Client Chat Settings

settings.get.settings

Read. Scope: settings.read, admin. Contract: route_inferred. Get Settings

settings.opsiq.branding.clear

Write. Scope: settings.write, admin. Contract: route_inferred. Opsiq Branding Clear

settings.opsiq.branding.upload

Write. Scope: settings.write, admin. Contract: route_inferred. Opsiq Branding Upload

settings.privacy.settings.get

Read. Scope: settings.read, admin. Contract: declared_dynamic. Privacy Settings Get

settings.privacy.settings.save

Write. Scope: settings.write, admin. Contract: route_inferred. Privacy Settings Save

settings.save.ai.settings

Write. Scope: settings.write, admin. Contract: route_inferred. Save Ai Settings

settings.save.chat.widget.settings

Write. Scope: settings.write, admin. Contract: declared_dynamic. Save Chat Widget Settings

settings.save.client.chat.settings

Write. Scope: settings.write, admin. Contract: route_inferred. Save Client Chat Settings

settings.save.settings

Write. Scope: settings.write, admin. Contract: route_inferred. Save Settings

site_intelligence (221)

site_intelligence.action.audit.chain

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Action Audit Chain

site_intelligence.action.execute

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Action Execute

site_intelligence.action.preview

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Action Preview

site_intelligence.action.token

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Action Token

site_intelligence.agent.auto.bg

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Auto Bg

site_intelligence.agent.auto.bg.stop

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Auto Bg Stop

site_intelligence.agent.auto.step

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Auto Step

site_intelligence.agent.chat

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Chat

site_intelligence.agent.conn.delete

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Conn Delete

site_intelligence.agent.conn.get

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Conn Get

site_intelligence.agent.conn.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Conn Save

site_intelligence.agent.conn.test

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Conn Test

site_intelligence.agent.coverage

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Coverage

site_intelligence.agent.events

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Events

site_intelligence.agent.hosted.apply

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Apply

site_intelligence.agent.hosted.finalize

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Finalize

site_intelligence.agent.hosted.live.set

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Live Set

site_intelligence.agent.hosted.preview

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Preview

site_intelligence.agent.hosted.rollback

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Rollback

site_intelligence.agent.hosted.start

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Start

site_intelligence.agent.hosted.verify

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Verify

site_intelligence.agent.run.delete

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Run Delete

site_intelligence.agent.run.finalize

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Run Finalize

site_intelligence.agent.run.rollback

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Run Rollback

site_intelligence.agent.run.start

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Run Start

site_intelligence.agent.run.status

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Run Status

site_intelligence.agent.run.verify

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Run Verify

site_intelligence.agent.runs.list

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Runs List

site_intelligence.agent.set.mode

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Set Mode

site_intelligence.agent.status

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Status

site_intelligence.agent.step.apply

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Step Apply

site_intelligence.agent.step.skip

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Step Skip

site_intelligence.agent.turn.status

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Turn Status

site_intelligence.ai.activity

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Ai Activity

site_intelligence.ai.alert.enrich

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Alert Enrich

site_intelligence.ai.alerts

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Alerts

site_intelligence.ai.analyst

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Analyst

site_intelligence.ai.analyst.ask

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Analyst Ask

site_intelligence.ai.analyst.email

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Analyst Email

site_intelligence.ai.analyst.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Analyst Run

site_intelligence.ai.badges

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Badges

site_intelligence.ai.badges.portfolio

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Ai Badges Portfolio

site_intelligence.ai.badges.preview

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Badges Preview

site_intelligence.ai.bl.plan

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Bl Plan

site_intelligence.ai.bl.plan.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Bl Plan Run

site_intelligence.ai.brief

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Brief

site_intelligence.ai.brief.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Brief Run

site_intelligence.ai.comp.analyse

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Comp Analyse

site_intelligence.ai.comp.analyse.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Comp Analyse Run

site_intelligence.ai.content.get

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Content Get

site_intelligence.ai.content.list

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Content List

site_intelligence.ai.content.publish

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Content Publish

site_intelligence.ai.content.write

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Content Write

site_intelligence.ai.daily.digest

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Daily Digest

site_intelligence.ai.discover

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Discover

site_intelligence.ai.fix.apply

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix Apply

site_intelligence.ai.fix.apply.bulk

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix Apply Bulk

site_intelligence.ai.fix.dismiss

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix Dismiss

site_intelligence.ai.fix.dismiss.bulk

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix Dismiss Bulk

site_intelligence.ai.fix.generate

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix Generate

site_intelligence.ai.fix.generate.all

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix Generate All

site_intelligence.ai.fix.list

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix List

site_intelligence.ai.kw.coach

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Kw Coach

site_intelligence.ai.kw.coach.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Kw Coach Run

site_intelligence.ai.overview

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Overview

site_intelligence.ai.page.audit

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Page Audit

site_intelligence.ai.page.audit.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Page Audit Run

site_intelligence.ai.portfolio

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Ai Portfolio

site_intelligence.ai.portfolio.history

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Ai Portfolio History

site_intelligence.ai.portfolio.run

Write. Scope: site_intelligence.write, admin. Contract: declared_dynamic. Si Ai Portfolio Run

site_intelligence.ai.probe

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Probe

site_intelligence.ai.prompt.add

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Prompt Add

site_intelligence.ai.prompt.history

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Prompt History

site_intelligence.ai.prompt.remove

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Prompt Remove

site_intelligence.ai.prompts

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Prompts

site_intelligence.ai.readiness

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Readiness

site_intelligence.ai.ready

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Ready

site_intelligence.alert.resolve

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Alert Resolve

site_intelligence.alerts

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Alerts

site_intelligence.alerts.list

Read. Scope: site_intelligence.read, admin. Contract: explicit. List Site Intelligence alerts

site_intelligence.alerts.resolve

Write. Scope: site_intelligence.write, admin. Contract: explicit. Resolve a Site Intelligence alert Required fields: alert_id. Retry-safe with idempotency_key.

site_intelligence.analyze

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Analyze

site_intelligence.ask

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ask

site_intelligence.audit.hint

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Audit Hint

site_intelligence.backlink.disavow

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Backlink Disavow

site_intelligence.backlinks

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Backlinks

site_intelligence.backlinks.list

Read. Scope: site_intelligence.read, admin. Contract: explicit. List backlinks

site_intelligence.backlinks.refresh

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Backlinks Refresh

site_intelligence.billing.overview

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Billing Overview

site_intelligence.brand.get

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Brand Get

site_intelligence.brand.radar

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Brand Radar

site_intelligence.brand.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Brand Save

site_intelligence.cannibalisation

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Cannibalisation

site_intelligence.compare

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Compare

site_intelligence.competitor.add

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Competitor Add

site_intelligence.competitor.refresh

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Competitor Refresh

site_intelligence.competitor.remove

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Competitor Remove

site_intelligence.competitors

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Competitors

site_intelligence.competitors.list

Read. Scope: site_intelligence.read, admin. Contract: explicit. List competitors

site_intelligence.content.brief

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Content Brief

site_intelligence.content.decay

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Content Decay

site_intelligence.content.draft

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Content Draft

site_intelligence.crawl.budget

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Crawl Budget

site_intelligence.crawl.list

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Crawl List

site_intelligence.crawl.status

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Crawl Status

site_intelligence.crawls.list

Read. Scope: site_intelligence.read, admin. Contract: explicit. List Site Intelligence crawls

site_intelligence.crawls.status

Read. Scope: site_intelligence.read, admin. Contract: explicit. Get crawl status

site_intelligence.dashboard

Read. Scope: site_intelligence.read, admin. Contract: explicit. Read the Site Intelligence dashboard

site_intelligence.dashboard.route.si.dashboard

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Dashboard

site_intelligence.dashboard.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Dashboard Save

site_intelligence.diag.backfill

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Backfill

site_intelligence.diag.compare

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Compare

site_intelligence.diag.portfolio

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Diag Portfolio

site_intelligence.diag.recs.regen

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Recs Regen

site_intelligence.diag.thresholds

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Thresholds

site_intelligence.diag.thresholds.eval

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Thresholds Eval

site_intelligence.diag.thresholds.history

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Thresholds History

site_intelligence.diag.thresholds.profile

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Thresholds Profile

site_intelligence.diag.thresholds.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Thresholds Save

site_intelligence.diagnostics

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diagnostics

site_intelligence.exec.report

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Exec Report

site_intelligence.export

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Export

site_intelligence.ga4.connect

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ga4 Connect

site_intelligence.ga4.list.properties

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ga4 List Properties

site_intelligence.ga4.map

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ga4 Map

site_intelligence.ga4.status

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ga4 Status

site_intelligence.ga4.sync

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ga4 Sync

site_intelligence.gbp

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp

site_intelligence.gbp.draft.approve

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Draft Approve

site_intelligence.gbp.draft.dismiss

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Draft Dismiss

site_intelligence.gbp.draft.sync

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Draft Sync

site_intelligence.gbp.drafts

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Drafts

site_intelligence.gbp.locations

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Gbp Locations

site_intelligence.gbp.map

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Map

site_intelligence.gbp.post.draft

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Post Draft

site_intelligence.gbp.post.publish

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Post Publish

site_intelligence.gbp.qa

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Qa

site_intelligence.gbp.qa.approve

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Qa Approve

site_intelligence.gbp.qa.dismiss

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Qa Dismiss

site_intelligence.gbp.qa.sync

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Qa Sync

site_intelligence.gbp.site.prefs

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Site Prefs

site_intelligence.gbp.sync

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Sync

site_intelligence.google.truth.schedule.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Google Truth Schedule Save

site_intelligence.growth

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Growth

site_intelligence.gsc.connect

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gsc Connect

site_intelligence.gsc.list.properties

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gsc List Properties

site_intelligence.gsc.map

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gsc Map

site_intelligence.gsc.opportunities

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gsc Opportunities

site_intelligence.gsc.status

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gsc Status

site_intelligence.gsc.sync

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gsc Sync

site_intelligence.image.audit

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Image Audit

site_intelligence.internal.links

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Internal Links

site_intelligence.issue.history

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Issue History

site_intelligence.issues

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Issues

site_intelligence.issues.list

Read. Scope: site_intelligence.read, admin. Contract: explicit. List Site Intelligence issues

site_intelligence.keyword.add

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Keyword Add

site_intelligence.keyword.remove

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Keyword Remove

site_intelligence.keyword.research

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Keyword Research

site_intelligence.keywords

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Keywords

site_intelligence.keywords.list

Read. Scope: site_intelligence.read, admin. Contract: explicit. List tracked keywords

site_intelligence.local

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Local

site_intelligence.local.grid

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Local Grid

site_intelligence.local.grid.scan

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Local Grid Scan

site_intelligence.log.ingest

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Log Ingest

site_intelligence.log.summary

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Log Summary

site_intelligence.metadata.audit

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Metadata Audit

site_intelligence.overview

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Overview

site_intelligence.page

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Page

site_intelligence.page.experience

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Page Experience

site_intelligence.page.optimize

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Page Optimize

site_intelligence.pages

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Pages

site_intelligence.pages.list

Read. Scope: site_intelligence.read, admin. Contract: explicit. List Site Intelligence pages

site_intelligence.pagespeed.bridge.status

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Pagespeed Bridge Status

site_intelligence.portfolio.export

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Portfolio Export

site_intelligence.provider.health

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Provider Health

site_intelligence.rank.check

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Rank Check

site_intelligence.rec.action

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Rec Action

site_intelligence.recommendations

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Recommendations

site_intelligence.redirect.audit

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Redirect Audit

site_intelligence.report

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Report

site_intelligence.report.generate

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Report Generate

site_intelligence.reports

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Reports

site_intelligence.reports.list

Read. Scope: site_intelligence.read, admin. Contract: source_inferred. Site Intelligence Reports List

site_intelligence.reset.google.oauth

Write. Scope: site_intelligence.write, admin. Contract: declared_dynamic. Si Reset Google Oauth

site_intelligence.revenue

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Revenue

site_intelligence.revenue.portfolio

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Revenue Portfolio

site_intelligence.save.shared.google.oauth

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Save Shared Google Oauth

site_intelligence.scan.run

Write. Scope: site_intelligence.write, admin. Contract: explicit. Start a Site Intelligence analysis Retry-safe with idempotency_key.

site_intelligence.schedule.delete

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Schedule Delete

site_intelligence.schedule.run.now

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Schedule Run Now

site_intelligence.schedule.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Schedule Save

site_intelligence.schedules.list

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Schedules List

site_intelligence.schema.audit

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Schema Audit

site_intelligence.server.engineer

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Server Engineer

site_intelligence.settings.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Settings Save

site_intelligence.sites.list

Read. Scope: site_intelligence.read, admin. Contract: explicit. List Site Intelligence monitored sites

site_intelligence.speed

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed

site_intelligence.speed.progress

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed Progress

site_intelligence.speed.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed Run

site_intelligence.speed.v2

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed V2

site_intelligence.speed.v2.build.task

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed V2 Build Task

site_intelligence.speed.v2.collect

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed V2 Collect

site_intelligence.speed.v2.read

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed V2 Read

site_intelligence.speed.v2.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed V2 Run

site_intelligence.start.crawl

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Start Crawl

site_intelligence.task.approve

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Approve

site_intelligence.task.assign

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Assign

site_intelligence.task.bulk.apply

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Bulk Apply

site_intelligence.task.bulk.assign

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Bulk Assign

site_intelligence.task.bulk.deadline

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Bulk Deadline

site_intelligence.task.bulk.dismiss

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Bulk Dismiss

site_intelligence.task.deadline

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Deadline

site_intelligence.task.note

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Note

site_intelligence.task.proof

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Proof

site_intelligence.task.reject

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Reject

site_intelligence.task.review

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Review

site_intelligence.topical.map

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Topical Map

site_intelligence.webhook.delete

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Webhook Delete

site_intelligence.webhook.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Webhook Save

site_intelligence.webhooks.list

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Webhooks List

site_intelligence.workflow

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Workflow

Status (6)

status.component.save

Write. Scope: status.write, admin. Contract: declared_dynamic. Status Component Save

status.components.save

Write. Scope: status.write, admin. Contract: explicit. Create or update a public status component Required fields: name. Retry-safe with idempotency_key.

status.incident.create

Write. Scope: status.write, admin. Contract: declared_dynamic. Status Incident Create

status.incident.resolve

Read. Scope: status.read, admin. Contract: route_inferred. Status Incident Resolve

status.incidents.create

Write. Scope: status.write, admin. Contract: explicit. Create a status-page incident Required fields: title. Retry-safe with idempotency_key.

status.incidents.resolve

Write. Scope: status.write, admin. Contract: source_inferred. Status Incidents Resolve Retry-safe with idempotency_key.

Erhebungen (22)

surveys.analytics.get

Read. Scope: surveys.read, admin. Contract: source_inferred. Surveys Analytics Get

surveys.audiences.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey audiences

surveys.audiences.materialize

Write. Scope: surveys.write, admin. Contract: source_inferred. Surveys Audiences Materialize Retry-safe with idempotency_key.

surveys.campaigns.create

Write. Scope: surveys.write, admin. Contract: explicit. Create or update a survey campaign Required fields: deployment_id. Retry-safe with idempotency_key.

surveys.campaigns.launch

Write. Scope: surveys.write, admin. Contract: source_inferred. Surveys Campaigns Launch Retry-safe with idempotency_key.

surveys.campaigns.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey campaigns

surveys.deployments.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey deployments

surveys.deployments.set_status

Write. Scope: surveys.write, admin. Contract: source_inferred. Surveys Deployments Set Status Retry-safe with idempotency_key.

surveys.get

Read. Scope: surveys.read, admin. Contract: source_inferred. Surveys Get

surveys.imports.create

Write. Scope: surveys.write, admin. Contract: explicit. Create and run a survey import Required fields: kind. Retry-safe with idempotency_key.

surveys.imports.process

Write. Scope: surveys.write, admin. Contract: source_inferred. Surveys Imports Process Retry-safe with idempotency_key.

surveys.invitations.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey invitations

surveys.links.create

Write. Scope: surveys.write, admin. Contract: source_inferred. Surveys Links Create Retry-safe with idempotency_key.

surveys.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey definitions

surveys.responses.get

Read. Scope: surveys.read, admin. Contract: source_inferred. Surveys Responses Get

surveys.responses.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey responses

surveys.triggers.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey trigger sets

surveys.types.list

Read. Scope: surveys.read, admin. Contract: explicit. List supported question types and Studio templates

surveys.versions.list

Read. Scope: surveys.read, admin. Contract: source_inferred. Surveys Versions List

surveys.webhooks.delete

Write. Scope: surveys.write, admin. Contract: source_inferred. Surveys Webhooks Delete Retry-safe with idempotency_key.

surveys.webhooks.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey webhook subscriptions

surveys.webhooks.save

Write. Scope: surveys.write, admin. Contract: explicit. Create or update a survey webhook subscription Required fields: url. Retry-safe with idempotency_key.

team (63)

team.delete

Write. Scope: team.write, admin. Contract: route_inferred. Admin Users Delete

team.delete.route.departments.delete

Write. Scope: team.write, admin. Contract: route_inferred. Departments Delete

team.list

Read. Scope: team.read, admin. Contract: route_inferred. Admin Users List

team.list.route.departments.list

Read. Scope: team.read, admin. Contract: declared_dynamic. Departments List

team.perf.activity

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Activity

team.perf.ai.compare

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Ai Compare

team.perf.ai.review

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Ai Review

team.perf.availability

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Availability

team.perf.award.finalize

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Award Finalize

team.perf.award.history

Read. Scope: team.read, admin. Contract: route_inferred. Team Perf Award History

team.perf.award.void

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Award Void

team.perf.claim.pay

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Claim Pay

team.perf.claim.recover

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Claim Recover

team.perf.claim.reject

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Claim Reject

team.perf.clear

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Clear

team.perf.coaching.action.item.add

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Action Item Add

team.perf.coaching.action.item.complete

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Action Item Complete

team.perf.coaching.evidence.pin

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Evidence Pin

team.perf.coaching.evidence.unpin

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Evidence Unpin

team.perf.coaching.session

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Session

team.perf.coaching.session.create

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Session Create

team.perf.coaching.session.update

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Session Update

team.perf.coaching.sessions

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Sessions

team.perf.coaching.status

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Status

team.perf.data

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Data

team.perf.heatmap

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Heatmap

team.perf.history

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf History

team.perf.pay.all.claims

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Pay All Claims

team.perf.qa.calibration.record

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Qa Calibration Record

team.perf.qa.dispute.resolve

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Qa Dispute Resolve

team.perf.qa.disputes

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Qa Disputes

team.perf.qa.evaluation.submit

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Qa Evaluation Submit

team.perf.qa.overview

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Qa Overview

team.perf.qa.scorecard.publish

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Qa Scorecard Publish

team.perf.qa.scorecard.save

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Qa Scorecard Save

team.perf.quest.record

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Quest Record

team.perf.quest.save

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Quest Save

team.perf.quest.status

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Quest Status

team.perf.quests

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Quests

team.perf.recognition

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Recognition

team.perf.recognition.settings.save

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Recognition Settings Save

team.perf.recognition.streak.history

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Recognition Streak History

team.perf.recognition.streaks.record

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Recognition Streaks Record

team.perf.reward.budget.authorize

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Reward Budget Authorize

team.perf.reward.claims

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Reward Claims

team.perf.reward.pay

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Reward Pay

team.perf.reward.payouts

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Reward Payouts

team.perf.reward.period.finalize

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Reward Period Finalize

team.perf.reward.period.history

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Reward Period History

team.perf.reward.period.preview

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Reward Period Preview

team.perf.reward.period.reverse

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Reward Period Reverse

team.perf.reward.period.void

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Reward Period Void

team.perf.reward.save

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Reward Save

team.perf.reward.state

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Reward State

team.perf.trends

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Trends

team.perf.v2.data

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf V2 Data

team.perf.v2.export

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf V2 Export

team.perf.v2.live

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf V2 Live

team.perf.v2.reward.sheet

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf V2 Reward Sheet

team.perf.v2.settings

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf V2 Settings

team.perf.v2.settings.save

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf V2 Settings Save

team.save

Write. Scope: team.write, admin. Contract: route_inferred. Admin Users Save

team.save.route.departments.save

Write. Scope: team.write, admin. Contract: route_inferred. Departments Save

Fahrkarten (75)

tickets.ai.summary

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Ai Summary

tickets.analytics

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Analytics

tickets.approval.decide

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Approval Decide

tickets.approval.request

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Approval Request

tickets.approvals.pending

Read. Scope: tickets.read, admin. Contract: declared_dynamic. Ticket Approvals Pending

tickets.assignment.rule.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Assignment Rule Delete

tickets.assignment.rule.list

Read. Scope: tickets.read, admin. Contract: declared_dynamic. Ticket Assignment Rule List

tickets.assignment.rule.save

Write. Scope: tickets.write, admin. Contract: declared_dynamic. Ticket Assignment Rule Save

tickets.assignment_rules.delete

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Assignment Rules Delete Retry-safe with idempotency_key.

tickets.assignment_rules.save

Write. Scope: tickets.write, admin. Contract: explicit. Create or update a ticket assignment rule Required fields: name. Retry-safe with idempotency_key.

tickets.bulk

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Bulk Retry-safe with idempotency_key.

tickets.bulk.route.tickets.bulk

Write. Scope: tickets.write, admin. Contract: route_inferred. Tickets Bulk

tickets.calendar.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Sla Calendar Delete

tickets.calendar.save

Write. Scope: tickets.write, admin. Contract: declared_dynamic. Sla Calendar Save

tickets.claim

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Claim

tickets.embed.load

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Embed Load

tickets.embed.save

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Embed Save

tickets.embed.secret

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Embed Secret

tickets.field.save

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Field Save

tickets.follower.add

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Follower Add

tickets.follower.remove

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Follower Remove

tickets.get

Read. Scope: tickets.read, admin. Contract: source_inferred. Tickets Get

tickets.kb.deflection

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Kb Deflection

tickets.kb.draft

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Kb Draft

tickets.kb.save

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Kb Save

tickets.kb.version.restore

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Kb Version Restore

tickets.kb.versions

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Kb Versions

tickets.link.add

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Link Add

tickets.link.remove

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Link Remove

tickets.list

Read. Scope: tickets.read, admin. Contract: source_inferred. Tickets List

tickets.open

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Open Retry-safe with idempotency_key.

tickets.open_guest

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Open Guest Retry-safe with idempotency_key.

tickets.ops.summary

Read. Scope: tickets.read, admin. Contract: declared_dynamic. Ticket Ops Summary

tickets.policy.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Sla Policy Delete

tickets.policy.list

Read. Scope: tickets.read, admin. Contract: declared_dynamic. Sla Policy List

tickets.policy.save

Write. Scope: tickets.write, admin. Contract: declared_dynamic. Sla Policy Save

tickets.presence.leave

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Presence Leave

tickets.presence.ping

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Presence Ping

tickets.quick.replies

Write. Scope: tickets.write, admin. Contract: declared_dynamic. Ticket Quick Replies

tickets.quick.reply.save

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Quick Reply Save

tickets.relations.get

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Relations Get

tickets.reply

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Reply Retry-safe with idempotency_key.

tickets.reply.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Reply Delete

tickets.reply.edit

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Reply Edit

tickets.reply.outbound.convert

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Reply Outbound Convert

tickets.reply.translate

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Reply Translate

tickets.reply.translation.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Reply Translation Delete

tickets.reply.translation.save

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Reply Translation Save

tickets.rule.compose

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Rule Compose

tickets.side.ai.draft

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Side Ai Draft

tickets.side.assign.department

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Side Assign Department

tickets.side.create

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Side Create

tickets.side.list

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Side List

tickets.side.mention

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Side Mention

tickets.side.recipients

Read. Scope: tickets.read, admin. Contract: declared_dynamic. Ticket Side Recipients

tickets.side.reply

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Side Reply

tickets.sla.delete

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Sla Delete Retry-safe with idempotency_key.

tickets.sla.save

Write. Scope: tickets.write, admin. Contract: explicit. Create or update an SLA policy Required fields: name. Retry-safe with idempotency_key.

tickets.split

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Split

tickets.split.candidates

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Split Candidates

tickets.tag.add

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Tag Add

tickets.tag.list

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Tag List

tickets.tag.remove

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Tag Remove

tickets.tags.add

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Tags Add Retry-safe with idempotency_key.

tickets.tags.list

Read. Scope: tickets.read, admin. Contract: source_inferred. Tickets Tags List

tickets.tags.remove

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Tags Remove Retry-safe with idempotency_key.

tickets.update

Write. Scope: tickets.write, admin. Contract: source_inferred. Update a ticket status, priority, subject, department or assignment Retry-safe with idempotency_key.

tickets.view.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket View Delete

tickets.view.list

Read. Scope: tickets.read, admin. Contract: declared_dynamic. Ticket View List

tickets.view.save

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket View Save

tickets.views.delete

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Views Delete Retry-safe with idempotency_key.

tickets.views.save

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Views Save Retry-safe with idempotency_key.

tickets.worklog.add

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Worklog Add

tickets.worklog.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Worklog Delete

tickets.worklog.list

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Worklog List

todos (1)

todos.add

Write. Scope: todos.write, admin. Contract: source_inferred. Todos Add Retry-safe with idempotency_key.

visitors (3)

visitors.block

Write. Scope: visitors.write, security.write, admin. Contract: explicit. Block a visitor Required fields: visitor_id. Retry-safe with idempotency_key.

visitors.list

Read. Scope: visitors.read, analytics.read, admin. Contract: explicit. List visitors

visitors.table

Read. Scope: visitors.read, admin. Contract: route_inferred. Visitors Table

writing (6)

writing.analyze

Write. Scope: writing. Contract: source_inferred. Writing Analyze Retry-safe with idempotency_key.

writing.compose

Write. Scope: writing. Contract: source_inferred. Writing Compose Retry-safe with idempotency_key.

writing.reply

Write. Scope: writing. Contract: source_inferred. Writing Reply Retry-safe with idempotency_key.

writing.rewrite

Write. Scope: writing. Contract: source_inferred. Writing Rewrite Retry-safe with idempotency_key.

writing.summarize

Write. Scope: writing. Contract: source_inferred. Writing Summarize Retry-safe with idempotency_key.

writing.translate

Write. Scope: writing. Contract: source_inferred. Writing Translate Retry-safe with idempotency_key.

Sind OpenAPI und Postman verfügbar?+

Ja, das generierte OpenAPI 3.0 Das Dokument befindet sich in /api/v1/openapi.php, Die generierte Postman-Sammlung befindet sich /api/v1/postman.php, und die menschenlesbaren entwicklerdokumente sind bei. /api/docs/.

Wie arbeite ich mit mehr als einem Workspace?+

Send site_key in the request body to choose a workspace. Ein für einen Workspace ausgegebener Schlüssel bleibt daran gebunden; ein Schlüssel mit Administratorkontext kann jeden Arbeitsbereich auswählen, den er sehen darf, und wird abgelehnt, wenn er nicht angezeigt wird.

Welche Aktionen kann ein Read-Only Key aufrufen?+

Jede Aktion, die als gelesen markiert ist. Legen Sie den Berechtigungsmodus auf dem Schlüssel read_only fest und jedes Schreiben wird mit read_ only_key abgelehnt, so dass eine Berichtsintegration nichts ändern kann, auch nicht aus Versehen.

Warum wurde ich nicht_gefunden für etwas, das ich im Admin sehen kann?+

Datensätze in anderen Arbeitsbereichen geben nicht_gefunden statt eines Berechtigungsfehlers zurück, so dass API niemals bestätigt wird, ob etwas an anderer Stelle existiert.

Entwickler

Sicherheit API

Ein Sicherheitsvertrag für jeden Connector und jede Integration: fragen OpsIQ Was sie über eine IP oder Absender, und füttern Sie den Missbrauch Ihr eigenes System sieht.

OpsIQ Schon jetzt verteidigt er sich: die IP Firewall blockiert Angreifer, die Ticketpipeline filtert Spam und die Security AI klassifiziert Täter und schlägt Blockregeln vor. API Eine Abrechnungsplattform, ein Client-Portal oder eine benutzerdefinierte App kann einen Besucher überprüfen, bevor er ihm vertraut, und berichten, was er beobachtet hat, so dass die gesamte Installation von jeder Oberfläche lernt.

Was du tun kannst

Überprüfen Sie, bevor Sie vertrauen

security. check antwortet mit dem Firewall-Status, jeder Spam-Regel, die zum Absender passt, und dem zwischengespeicherten AI-Urteil für das IP.

Berichten Sie, was Sie gesehen haben

security.report zeichnet die Beobachtung als Sicherheitsereignis auf, hat die Security AI den IP Wenn das Urteil mit hohem Risiko zurückkommt, häufen sich wiederholte Berichte zu Vorfällen, genau wie Angriffe. OpsIQ direkt sehen.

Spam-Regeln teilen

security. blocklist. add und security. Blocklist. list lesen und schreiben die gleichen Spam-Regeln, die auf der Tickets-Seite verwendet werden, so dass ein in einem System blockierter Absender überall blockiert ist.

Missbrauch von einem Connector melden
POST /api/v1.php
Authorization: Bearer opq_your_api_key
Content-Type: application/json

{
  "action": "security.report",
  "ip": "203.0.113.7",
  "kind": "spam",
  "reason": "Sent 40 junk tickets in 10 minutes",
  "source": "whmcs:example.com"
}

Geltungsbereich und Sicherheit

security.read

Benötigt für security. check und security. blocklist. list. Safe, um eine Reporting-Integration zu geben.

security.write

Benötigt für security. report und security. blocklist. add. Geben Sie es nur Systemen, in denen Sie Regeln und Berichte eingeben möchten.

Nichts wird stillschweigend zerstört

Ein blocklistierter Absender landet immer noch in der Spam-Ansicht, wo das Ticket gelesen und wiederhergestellt werden kann.

Die Plattform schützt sich selbst

Der Server selbst IP Adressen können niemals blockiert, blockiert oder gemeldet werden. API, so dass eine falsch konfigurierte Integration die Plattform nicht herunterfahren kann.

💡
Mint einen Schlüssel unter Integrationen, dann API Keys und gib ihm nur die Sicherheitsbereiche, die er benötigt. Der vollständige Anfragevertrag für jede Aktion befindet sich in meta. actions und dem OpenAPI-Dokument.
Verwenden meine vorhandenen Steckverbinder dies automatisch?+

Outbound-Synchronisierung ist bereits automatisch: Wenn Sie eine IP, angeschlossene Plattformen werden über die Sicherheitssynchronisierung des Steckers informiert. API Richten Sie Ihren Connector oder benutzerdefinierten Code auf diese vier Aktionen mit einem Schlüssel, der die Sicherheitsbereiche trägt.

Wo leben die Spam-Regeln?+

Ein Geschäft. Die Tickets-Seite Block Absendersteuerung, die Spam AI in Einstellungen und diese API arbeiten alle gegen dieselbe Blockliste, so dass es genau einen Ort gibt, an dem man suchen kann.

Entwickler

Ereignisse API

Senden Sie benutzerdefinierte Ereignisse von Ihrem Server oder Ihrer Website an OpsIQ für Analysen, Experimente, CRM-Trigger und Webhook-Bedingungen.

Wie es funktioniert
Ereignisse APIEin Track()-Aufruf, der ein benutzerdefiniertes demo_booked Ereignis in OpsIQ sendet und Conversion Ziele, Segmente und Trigger liefert.OpsIQ. track("demo_booked"),Wert: 0, Plan: "pro"});KonversionszieleSegmenteTrigger und WebhooksBrowser (OpsIQ. track) oder serverseitige POST /v1/events
Ereignisse API

Browserseitige Ereignisse

Browser Event Tracking
window.OpsIQ = window.OpsIQ || [];
window.OpsIQ.push(["track", "button_clicked", {
  button: "signup",
  page: "/pricing",
  variant: "green"
}]);

Serverseitige Ereignisse

Serverseitig, Aktivitäten und Konvertierungen gegen einen Kontakt über die Aktion API aufzeichnen. crm.activities.record für Lebens-/Geschäftstätigkeit und crm.conversions.record für Conversions. events.send action; der eingehende CRM-Ereignisempfänger lebt bei /v1/inbound.php?t=<token> für Systeme von Drittanbietern, die Ereignisse einspringen.

Serverseitige Aktivität (Aktion API)
POST /api/v1.php
Authorization: Bearer opq_your_key
Content-Type: application/json

{
  "action": "crm.activities.record",
  "site_key": "site_abc123",
  "email": "[email protected]",
  "event": "subscription.upgraded",
  "value": 50,
  "currency": "USD"
}

Benennungsübereinkommen

Punktnotation

"order. completed" nicht "orderCompleted".

Past Tense

"button. clicked" nicht "butto. cklick".

Spezifisch

"pricing. plan_selected" nicht "user_action".

Entwickler

Wie Daten durch OpsIQ fließen

Das Verständnis des Datenflusses hilft Ihnen, Integrationen zu debuggen und die Leistung zu optimieren.

Wie es funktioniert
Wie Daten fließenDaten fließen von Widget und Beacon in OpsIQ Core (CDP, Identity Graph, AI Brain, Analytics, CRM) dann über Webhooks und das REST API.Widget& BeaconOpsIQ KernCDP · IdentitätsgraphKI-GehirnAnalyse · CRMWebhooks rausREST API
Datenfluss

Eingehender Datenfluss

1
Widget Beacon

Die JavaScript Widget sendet Seitenaufrufe, Klicks und Chat-Nachrichten an /beacon.php.

2
Ereignisverschluckung

Ereignisse, die in opsiq_events mit site_key, Ereignistyp, Kunde und Eigenschaften gespeichert sind.

3
Sitzungsversammlung

Session Builder gruppiert Seitenansichten in Sitzungen (via cron).

4
Identitätsentschließung

Bei der Identifizierung werden anonyme Datensätze mit dem Kundenprofil verknüpft.

5
Steckverbinder-Synchronisierung

Steckverbinder ziehen Daten von externen Plattformen und speichern sie im Verbindungs-Cache.

6
KI-Kontext

AI stellt Kontext zusammen aus: Besucherhistorie, Kundenprofil, Steckerdaten, KB und prompt.

Datenfluss in den Inlandsverkehr

1
Brandereignisse

Interne Ereignisbrände (ticket. created, chat. message, order. completed).

2
Job Warteschlange

Ereignis in der async-Jobwarteschlange.

3
Webhook-Versand

Der Dispatcher signiert und sendet an alle abonnierten Endpunkte.

4
Versuch des Scheiterns

Fehlgeschlagene Lieferungen wiederholt mit exponentiellem Backoff.

Einstellungen

Bezugsnummer der Einstellungen

Die Einstellungen sind die Kontrollzentrale für einen Arbeitsbereich. Alles unten ist auf den Arbeitsbereich abgestimmt, in dem Sie sich befinden, sodass ein Konto mehrere Marken mit unterschiedlichen Identitäten, Chat-Verhalten und Aufbewahrungsregeln ausführen kann.

Suche nach einem Setting

Es gibt rund sechshundert individuelle Bedienelemente in den Einstellungen, verteilt auf elf Registerkarten, die unter vier Menüs gruppiert sind.

Sucheinstellungen (Strg + K)

Drücken Sie Strg + K oder Cmd + K auf einem Mac, überall auf der Einstellungsseite. Geben Sie einfache Wörter ein und drücken Sie Enter, um direkt zum Steuerelement zu springen. Die Suche toleriert kleine Tippfehler und versteht verwandte Wörter, so dass Scheduler Cron findet und Privatsphäre die Tracking-Steuerelemente findet. Es zeigt nur Einstellungen an, die Ihre Rolle öffnen kann.

Workspace und Plan

General und Lizenz.

AI und Kundensupport

Admin AI Assistant, Client Chat, OpsIQ Schreib- und Supportportal.

Daten und Governance

Tracking und Privatsphäre, Berechtigungen und Sicherheit.

System

Cron Setup (nur selbst gehostet) und Danger Zone.

Sparen

Jeder Tab speichert sich selbst mit seinem eigenen Speicher-Button. Client Chat und OpsIQ Schreiben befestigen ihre auf den Bildschirm. Speichern Sie vor dem Wechsel der Registerkarten; Änderungen werden nicht übertragen.

Tiefe Links

Der aktive Tab wird in die Seitenadresse geschrieben, so dass ein Tab mit einem Lesezeichen versehen oder an einen Kollegen gesendet werden kann.

Allgemein: Business Identity

Die wichtigste Karte auf der Seite. Die KI liest diese Werte bei jeder Antwort, jedem Bericht und jedem täglichen Briefing.

Firmenname

Wird in KI-Berichten, täglichen Briefings und kundenorientierten Formulierungen verwendet. Passen Sie Ihre Website-Fußzeile an.

Industrielle Industrie

Schneider AI-Analyse, Lead-Scoring, Briefs und Umfrage Presets. Wählen Sie aus Webhosting, E-Commerce, SaaS, Immobilien, Agentur, Beratung, Gesundheitswesen, Bildung, Finanzen oder allgemeine Unternehmen.

Systemsprache

Die Sprache, die jedem gezeigt wird, der nicht seine eigene gewählt hat. Jeder Agent kann sie in seinem Profil überschreiben.

Verwenden Sie Browsersprache

Zeigt die Anmeldeseite in der eigenen Sprache des Besuchers an. Sobald jemand eine Sprache dort wählt, gewinnt seine Wahl und diese überschreibt sie nie.

Systemzeitzone

Die Zone, in der das gesamte System läuft: Daten, Berichte, Zeitpläne und Hintergrund. Verwenden Sie Ihre Operations-Zeitzone, nicht Ihre Kunden.

Allgemein: GeoIP und Tracking

GeoIP2-Datenbankpfad

Vollständiger Pfad zu GeoLite2-City. mmdb. Auto-Erkennt beim ersten Laden über cPanel, Plesk, DirectAdmin, Cloudways, Docker und einfaches Linux oder Windows. Fügen Sie GeoLiter2-ASN. mmtb im gleichen Ordner für den Besucher-Internetanbieter hinzu.

Geoquellen-Modus

GeoLite2 nur, Geolite2 mit einem Cloudflare Fallback oder Cloudflare nur.Cloudflare Modi erfordern, dass die Website durch proxied werden Cloudflare, mit Besucherstandort-Headern für Stadt- und Regionsdetails.

Sitzungs-Timeout (s)

Inaktivität vor einer Besuchersitzung gilt als beendet. Standard 14400, das sind vier Stunden.

Intervall (s) für Live Refresh

Wie oft wird der Live Feed aktualisiert. 30 Sekunden.

Aktive Schwelle (min)

Wie lange ein Besucher nach dem letzten Seiten-Load als live zählt. Standardmäßig 2 Minuten. Dies ist der Live Feed Dropoff, nicht die Sitzungsdauer.

Datenspeicherung (Tage)

Löscht gesammelte und generierte Datensätze, die über dieses Alter hinausgingen: Analysen, Chat, Tickets, Feedback, Transaktionen, KI-Telemetrie, Integrationsprotokolle und CRM-Aktivität. 0 behält alles für immer. Einstellungen, verfasste Inhalte und Zustimmungsbelege werden niemals entfernt.

Wenn ein Chat gelöscht wird

Wählt aus, wie viel von einer gelöschten Konversation auf dem Datensatz bleibt: der vollständige Datensatz, der Datensatz ohne das Gespräch oder nur die Partitur. Löschen verbirgt immer den Chat aus dem Posteingang und der Besucherhistorie. Geplante Aufbewahrung und Vergessen Besucher löschen immer vollständig unabhängig davon.

Bot-Traffic verfolgen

Zählt Crawler als Besucher. Lassen Sie ab, es bläst Besucher auf und verzerrt jeden Bericht.

Feedback Umfrage Popup aktiviert

Zeigt das Site-weite Feedback-Widget für Besucher an. Separate von den Chat-Umfragen unter Client Chat, Support Flow.

Allgemein: AI Features

Master-Schalter für jede AI-Oberfläche. Alle standardmäßig auf eingeschaltet und pro Arbeitsbereich speichern.

AI Triage auf Tickets

Klassifiziert jedes Ticket nach Kategorie, Priorität und Stimmung und schreibt eine Thread-Zusammenfassung oben auf dem Ticket.

Zusammenfassung des AI Triage-Hovers

Zeigt die Triage-Tags und Zusammenfassung in einem Tooltip an, wenn ein Agent eine Zeile in der Ticketliste bewegt.

Inbox Copilot (Komponist)

Fügt KI-Antworten in den Entwurf, wärmer, kürzere, formellere und entschuldigende Tasten unter dem Ticketantwortfeld hinzu.

Ask-OpsIQ Copilot

Der seitenbewusste schwimmende Copilot auf jeder Admin-Seite. Weiß, welcher Kunde, welche Rechnung oder welches Ticket geöffnet ist.

Morgens kurz

Jeden Tag präsentiert der Copilot dringende Tickets, überfällige Antworten und Wartegespräche. Sonntags wird eine Woche im Rückblick angezeigt.

Allgemein: Geld, Branding, Backup

OpsIQ Basiswährung

Jedes Geld im Admin wird in diese Währung für die Anzeige umgewandelt. Connectors speichern ihre eigene Quellwährung; stellen Sie diese pro Connector ein.

Auto-Sync FX Raten

Wenn Sie die Preise alle sechs Stunden von einem kostenlosen öffentlichen Feed ohne API -Schlüssel aktualisieren, können Sie manuelle Kurse hinzufügen, die den Feed überschreiben.

Funktionen für Commerce und Billing aktivieren

Schiffe aus. Wenn man es einschaltet, werden die Verkaufs- und Konvertierungsseite, das Dashboard-Einnahmenkarten und der Live Intelligence Feed angezeigt. Mit dem Ausschalten wird jede Preisfläche ausgeblendet und die Verkaufsseite verlässt das Menü.

Handelsvokabular

Lehren OpsIQ Ihren Wortlaut: ob Sie Erneuerungen machen, das Wort für die Erneuerung, was Sie verkaufen und welche Käufer heißen.

Branding und Logos

Zwei Uploads, einer für helle Hintergründe (Admin Sidebar) und einer für dunkle Seiten (Anmeldeseite). PNG, JPG, WebP oder SVG bis 3 MB.

Site Intelligence Agent, erlauben private SSH Ziele

Der Auto-Implement SEO Agent verbindet sich über SSH. Private, Loopback und reservierte Adressen werden standardmäßig als Anti-SSRF-Maßnahme blockiert. Nur auf selbst gehosteten Installationen aktivieren, die einen lokalen Server erreichen müssen.

OpsIQ Backup / Wiederherstellen

Exportieren Sie jede Einstellung und OpsIQ-eigene Tabelle plus hochgeladene Dateien.OpsIQ Konfiguration und nur Datensätze; es berührt niemals Kunden, Rechnungen, Tickets, Dienste, Domains, Bestellungen oder Transaktionen.

⚠️
Backup lebt im Allgemeinen und die Löschaktionen leben in der Gefahrenzone, so dass Sie einfach auf den Löschknopf zugreifen können, ohne vorher exportiert zu haben.
Einstellungen

Einstellungen: Sicherheit

Schutz für die Admin-Anmeldung, Ihre Mitarbeiterkonten und die Daten, die OpsIQ erfasst. Die Kundenanmeldung für das Supportportal wird separat konfiguriert.

Anmeldeschutz

Google reCAPTCHA

Stoppt Bots und Anmeldeinformationen beim Admin-Anmelden. Wählen Sie v3 (unsichtbar, bewertet) oder v2 (Checkbox), legen Sie den Wert für v3 fest und geben Sie die Website und geheime Schlüssel an.

Fehlgeschlagene Anmeldung Auto-Lockout

Blockiert eine Adresse nach einer Anzahl von Fehlern innerhalb eines Fensters für mehrere Stunden. Sie können die Sperrseite anpassen und eine kleine Wartebildschirm-Ablenkung anzeigen.

Login-Härtung

Passwortrichtlinie mit einer Mindestlänge, Ablehnung von Passwörtern, die in bekannten Verstößen gefunden wurden, Sperrung pro Konto gegen Anmeldeinformationen, obligatorischer Zwei-Faktor für jeden Administrator, erneute Eingabe von Kennworten vor gefährlichen Aktionen und Anmeldungsbenachrichtigungen für neue Geräte.

Einmaliges Anmelden (OIDC)

Personal meldet sich über Ihren Identitätsanbieter an. Benötigt den Aussteller URL, Client-ID und Clientgeheimnis. Auto-Provision-Domains, eine pro Zeile, erstellen Benutzer automatisch bei der ersten Anmeldung.

Single Sign-On (SSO)SAML 2.0)

Für Anbieter, die sprechen SAML. OpsIQ liefert die Antwort des ACS URL und SP Entity ID; Sie geben die IdP Entity-ID, Anmelden URL, optionale Anmeldung URL und X.509 Signaturzertifikat: E-Mail- und Name-Attribut-Felder werden nur für nicht standardmäßige Attributnamen benötigt.

SCIM-Bereitstellung

Verzeichnisgesteuerte Erstellung, Aktualisierung und Deaktivierung von OpsIQ Konten.OpsIQ Lieferungen an SCIM Basis URL; Sie generieren hier gekennzeichnete Token, damit man widerrufen werden kann, ohne den Rest zu brechen.

Bedrohungen, Sperrung und Sammlung

Liste der Ausgangsberechtigungen

Beschränkt, welche externen Hosts diese Workspace-Connectors aufrufen dürfen. Companion zur SSH Zielsteuerung im Allgemeinen.

Threat Scoring und Auto-Block

Blockiert einen Besucher, sobald sein Bedrohungs-Score Ihren Schwellenwert überschreitet. 0 deaktiviert ihn. Sehen Sie sich die Seite Sicherheitsübersicht eine Woche lang an, bevor Sie eine Nummer auswählen.

Blockseitenmeldung

Die Nachricht, die ein blockierter Besucher sieht, als Klartext oder Ihren eigenen benutzerdefinierten HTML -Blockbildschirm.

Core Web Vitals von echten Besuchern

Bemisst LCP, INP und CLS aus echten Sitzungen.

Batched, retry-safe Event Delivery

Benutzerdefinierte Ereignisse stehen im Browser an und liefern in Chargen mit Wiederholungen, wodurch der Verlust bei schlechten mobilen Verbindungen reduziert wird.

Signierte Tracking Beacons

Echte Widget-Embeds tragen ein rotierendes kryptographisches Token, so dass gefälschte Tracking-Daten abgelehnt werden können. Standardmäßig ausgeschaltet; Änderungen an der Authentifikation von Einbettungen ermöglichen, also zuerst testen.

Sicherheitswarnungen

Standardmäßig ausgeschaltet. Erkennung und Blockierung laufen unabhängig davon. Diese Karte kontrolliert, ob Ihnen gesagt wird und wie viel die KI unterstützt.

Sicherheitswarnungen aktivieren

Master Switch für diese Karte.

Schwelle der fehlgeschlagenen Anmeldewelle

Wie viele fehlgeschlagene Anmeldungen in kurzer Zeit zählen als eine Welle, auf die es sich zu warnen lohnt.

IP Reputation Intelligence

Fügt einen Bedrohungswert für Besucher hinzu, die in öffentlichen Missbrauchs-Feeds erscheinen.

Ortsüberwachung

Stündliche Verfügbarkeit und TLS Ablaufprüfungen, Alarmierung vor dem Verfall eines Zertifikats.

AI Security Analyst und AI Incident Briefs

Fügt ein erklärbares Urteil zu verdächtigen Aktivitäten hinzu und gruppiert Angriffe in einem einzigen lesbaren Vorfall statt eines Stroms von Ereignissen.

Autopilot

Handeln Sie selbst, indem Sie das, was sie aus einem Vorfall gelernt haben, in eine vorgeschlagene oder angewandte Regel umwandeln und so lange warten, bis Sie ihre Vorschläge überprüft haben und ihnen zustimmen.

Täglicher Sicherheitsdarm und wöchentlicher Haltungsberater

Eine tägliche Zusammenfassung auf der Seite Sicherheitsübersicht und eine wöchentliche Härtungs-Checkliste, die zeigt, was geschützt ist und was noch geöffnet ist.

Auto-Expire veralteten Vorschläge

Eine vorgeschlagene Blockregel, auf die Sie nie gehandelt haben, läuft von selbst ab, anstatt sich zu akkumulieren.

DOM Session Wiedergabe

DOM Session Replay aktivieren

Aufzeichnung von Besuchersitzungen zur Wiedergabe. Wenn die Wiedergabebibliothek ausgeschaltet ist, werden keine Kosten für das Ausschalten anfallen. Aufnahmen werden gesampelt und datenschutzgemaskiert und auf der Seite Sitzungswiedergabe unter Analytics angesehen.

Probenrate, max. Abscheidung, Retention

Wie viel an Sitzungen aufgezeichnet werden soll, wie lange eine einzelne Aufzeichnung laufen darf und wie viele Tage Aufzeichnungen aufbewahrt werden.

⚠️
Halten Sie die Abtastrate und Aufbewahrungsdauer so niedrig, dass Ihre Frage trotzdem beantwortet werden kann. Geben Sie dies in Ihrer Datenschutzerklärung an. Verwenden Sie eine Sitzungs-Replay-Funktion, um echten Nutzern zu helfen, Ihre Website zu verwenden.
Einstellungen

Einstellungen: Tracking und Privatsphäre

Was OpsIQ sammeln kann und wie lange jede Art von Datensatz überlebt.

Ausschlüsse

Ausgenommen IPs und CIDR-Bereiche

Adressen, die nie verfolgt wurden, eine pro Zeile, genaue Adressen oder CIDR-Bereiche. Der sauberste Weg, um Ihr eigenes Team von Ihren Analysen fernzuhalten, da es alle an dieser Adresse abdeckt und nicht nur angemeldete Administratoren.

Ausgenommen URL Pfade

Seitenmuster, die nie verfolgt wurden, eine pro Zeile, Platzhalter mit einem Sternchen. /admin/* hält zum Beispiel das gesamte Backoffice aus dem Besucherprotokoll heraus.

Datenspeicherungspolitik

Auto-Purge pro Subsystem in Tagen: getrennt von der Gesamteinstellung für die Datenspeicherung im Allgemeinen und von der Bereinigung der Gefahrenzone.

KI-Interaktionsprotokolle

Vertrauenstelemetrie mit kurzen Vorschauen von Abfrage und Antwort. Standard 90 Tage. Dies enthält den meisten Kundentext, also verkürzen Sie ihn zuerst, wenn Sie die Privatsphäre verschärfen.

AI-Nutzungsereignisse

Für die Kostenabrechnung zählt das pro Anruf-Token. Standard 90 Tage. Nur Zahlen, kein Nachrichteninhalt.

Prüfpfad für Maßnahmen

Die Aktion und das Sicherheitsprotokoll für Manipulationen. Standard 365 Tage. Halten Sie dies am längsten; es ist Ihre Beweisspur.

Diagnose

Systemzustandsakten: Standard 30 Tage.

Unbeantwortete Fragen

Cluster von Fragen, die die KI nicht beantworten konnte. Standard 90 Tage. Arbeiten Sie sie auf der Seite "Fragen, die von der KI verpasst wurden, bevor sie ablaufen."

Watchdogs und Exporte

metrische Anomalien

Täglicher Vergleich von gestern mit der letzten Baseline, Alarmierung wenn eine Metrik sich mehr als Ihren Schwellenwert bewegt. Standard 35 %. Standardmäßig ausgeschaltet.

Lagerexport

Nächtliche Dumps von Sitzungen, Besuchern, Seitenaufrufen und verwandten Tabellen für Ihren eigenen BI-Stack in einem Format, das Sie auswählen, einige Tage lang aufbewahrt. Standardmäßig ausgeschaltet.

Einstellungen

Einstellungen: Admin AI Assistant

Der Floating Assistant, den Ihre Mitarbeiter im Administrator verwenden, mit Live-Lesezugriff auf Clients, Rechnungen, Tickets, Server und Cron Logs. Ein anderer Assistent als der Kunden-orientierte unter Client Chat.

Aktivieren Sie OpsIQ AI Widget

Zeigt den Assistenten-Button auf jeder Admin-Seite. Off versteckt ihn für alle.

Layout und Verhalten

Ecklage, Breite der Platte ()320 bis 600 px), max. Höhe (400 bis 900 px), Eckradius (0bis 24), Schriftgröße, und ein frostiertes Glas Unschärfe hinter dem Panel.

Schnelle Chips anzeigen

Ein Klick-Knopfknöpfe unter der Kopfzeile. Der schnellste Weg für die meisten Mitarbeiter.

Modell Infos anzeigen

Zeigt an, welches Modell geantwortet hat und wie lange es gedauert hat. Nützlich bei der Abstimmung Kosten, Lärm für den täglichen Gebrauch.

Per-Admin Access Gate

Zeigt den Assistenten nur einem angemeldeten Administrator an, dessen Benutzername und E-Mail mit dem OpsIQ Agenten übereinstimmen, der diesem Arbeitsbereich zugewiesen ist. Besitzer gehen immer vorbei. Verwenden Sie die Schaltfläche "Meinen Zugriff überprüfen", bevor Sie aktivieren, oder Sie können Ihr eigenes Team aussperren.

AI Persona

Zeigen Sie den Namen, die Header-Tagline und eine benutzerdefinierte Begrüßungsnachricht an, die beim Öffnen des Panels angezeigt wird.

Smarte Quick-Action Chips

Bearbeite das Label und die zugrunde liegende Eingabeaufforderung für jede Verknüpfung, füge deine eigene hinzu oder setze sie auf Standardwerte zurück. Das Label ist das, was der Mitarbeiter sieht, die Eingabeaufforderung ist das.

Farben und Form

Chipform (Pille, abgerundet, quadratisch), Chipfarben, Kartenthema und Trägerform (rund, Eichhörnchen, quadrat) mit Live-Vorschau.

Gesprächsgedächtnis

Der Assistent merkt sich die Historie jeder Person über Browsersitzungen hinweg, bis zu 120 -Nachrichten, die in Ihrer eigenen Datenbank gespeichert sind.

Einstellungen

Einstellungen: Client Chat

Das Chat-Widget, das Ihre Kunden verwenden, und der größte Bereich von Einstellungen. Sechs Unterregisterkarten mit dem Master-Switch und Save oben auf der Registerkarte angeheftet.

Arbeiten Sie die Unterregisterkarten in einer neuen Installation an: Identität und Kopie, Aussehen, Verhalten, Support Flow, Wissenstraining. Fortgeschritten ist Infrastruktur und kann warten.

Identität und Kopie

Markenidentität

Widgetname, Tagline, AI-Name, der Name für System- und Leerlaufhinweise und wie Agentennamen erscheinen. Agent Name Source entscheidet zwischen echten Namen, einem benutzerdefinierten Namen oder einem Teamlabel.

In-Chat Gruß

Zwei Grüße, einer für alle Besucher und einer für identifizierte Besucher. Eine Frage beginnt mehr Gespräche als eine Aussage.

Popup Teaser

Die schwebende Nachricht vor dem Chat wird geöffnet, mit ihrem eigenen Namen, Schriftgröße und Farben. Die KI kann die Teaser schreiben, mit Kontrollen dafür, wie viele sie erzeugen sollen, wie viel sie pro Besuch zeigen sollen und welche Lücke zwischen ihnen besteht.

Prompts und Handoff

Das vollständige Skript: nach einem Namen und einer E-Mail fragen, Bestätigungen, einen Menschen anfordern, keine Agenten verfügbar, Ticket erstellt oder storniert, Übergabe ausstehend. Rund zwei Dutzend einzelne Zeilen in einem zusammenklappbaren Panel.

Status und Idle-Mitteilungen

Drei kundensichtbare Nachrichten: Agent schließt den Chat, Besucher sind still geworden und Agent geht zurück zur KI. Vermeiden Sie interne Formulierungen wie gelöst oder triaged.

Komponist und Vorschläge

Platzhalter für die Eingabe, das "Talk-to-a-Human" Button Label und die vorgeschlagenen Eröffnungsfragen. Drei gute Vorschläge lenken mehr Tickets als eine Seite Artikel ab.

Launcher, Icon und Avatare

Launcher-Symbol, ein optionales anderes Symbol bei geöffnetem Starter, Größe des Starters und Bilder für den menschlichen Agenten und die KI.

Aussehen

Thema und Glas

Thema-Modus, Premium-Farbvorgabe, Unschärfeintensität und -undurchlässigkeit sowie Umschaltungen für Animationen, Trennlinien, Ausblenden der Statuszeile, Verstecken der Messageboxkarte und Versteckt den Schließknopf. Beginnen Sie mit einer Voreinstellung; es setzt Dutzende von Farben auf einmal ein.

Hauptfarben

Launcher, Header, Hilfefeld, Links, Buttons, Systemhinweise und Composer mit jeweils einer Anfangs- und Endfarbe für Verläufe. Eine Use Default Glas Option ignoriert diese und hält das transparente Finish aufrecht.

Panel, Bubbles und Chips

Rund dreißig Picker, die das Panel, den Rahmen, Text, Eingabebereich und jeden Blasentyp (Besucher, KI, Agent, Typisierung, System) sowie Vorschlagschips und ihren Schwebezustand abdecken. Öffnen Sie diesen nur für eine genaue Markenabstimmung und überprüfen Sie den Kontrast auf Blasentext.

Layout und Form

Panelbreite und -höhe, Eckradius, Schriftgröße, Bildschirmposition, Trägerform, Blasenstil und ob Avatare angezeigt werden. Testen Sie die Breite auf einem Telefon.

Verhalten

KI antwortet automatisch

Master-Schalter für KI-Antworten. Aus bedeutet, dass jede Nachricht auf einen Menschen wartet.

Menschliche follow-ups und natürliches double-texting.

Eine sanfte Nachverfolgung, wenn ein Besucher still wird und eine optionale kurze zweite Nachricht, wie sie eine Person senden würde. mit maximalen Nachbeobachtungen pro Stille, erster Verzögerung, späterem Multiplikator, Anwesenheitsfenster und maximalem Sequenzfenster. Kann auf Geschäftszeiten beschränkt werden und nach einem einfachen Dank unterdrückt werden.

Schreibmaschinenantworten und Antwortgeschwindigkeit

Ob Antworten Wort für Wort eingeben und wie schnell der Assistent antwortet, nach vorgegebenen oder eigenen minimalen und maximalen Verzögerungen in Millisekunden. Eine kleine Verzögerung liest sich menschlicher als eine sofortige Antwort.

Live-Übersetzung

Jeder Agent liest und schreibt in seiner eigenen Sprache, während der Besucher seine eigene liest.

Zurück zu AI nach Agent Leerlauf

Minuten der agenteninaktivität, bevor die ki das gespräch wieder aufnimmt.

Auto-Öffnen Sie den Chat

Sekunden, bevor sich das Widget öffnet.0Niemals öffnet. Aufdringlich auf dem Handy;0Es sei denn, es wird getestet.

Intelligentere Antworten

Vorausplanung für One-Pass-Antworten, Nachdenken, ein optionales separates Modell für Agentenantworten, Argumentation für Besucher zeigen, Rechtschreibfehler tolerieren, lange Konversationsgedächtnis, die Beschränkung des Assistenten nur auf Ihr Unternehmen, Preise in der Besucherwährung und wie Links erscheinen. Nur über Ihr Geschäft sprechen sollte für fast jeden sein.

Kosteneinsparung

Überspringt Wissen Suche nach Grüßen wie Hallo und danke, und begrenzt die längste Antwort in Token.

Sprachen

Welche Sprachen das Widget unterstützt und wie es eine für einen Besucher auswählt.

Kundenkonto Antworten

Antworten von einem angemeldeten Kundenkonto, optional live nachgeschlagen und optional nur bei Bedarf geladen. in allen Fällen lesen; Load-when-Needed spürbar kostensenkend.

Erstattungen

Gehilfene Erstattungsanträge, bei denen der Assistent Details und Hände an eine Person sammelt.

Konversation und Widget

Halten sie vergangene gespräche, setzen sie einen chat über ihre angeschlossenen websites fort, ziehen sie ein fenster, bitten sie die gäste um eine e-mail und lassen sie ihr team einen chat in ein ticket verwandeln.

Widget-Funktionen

Emoji-Picker, Anhänge mit einem optionalen Nur-Einfügen-Modus, AI-Bildverständnis, Inline-Icons, Mikrofon, Talk-to-Agent-Taste, Besuchergeräusche, Vorschau des Anhangs, Sprachanruftaste und Sitzungsisolation. KI-Bildverstehen ermöglicht es dem Besucher, einen Fehlerscreenshot einzufügen und eine nützliche Antwort zu erhalten.

Admin-Posteingang, Benachrichtigungen und Willkommens-Popup

Der Besucher begrüßt Popup, plus Ihre Agenten Benachrichtigungen: Posteingangsgeräusche, Desktop-Benachrichtigungen, Flüstern, ob private Flüstertöne piepen und das Posteingang Umfrageintervall.

Unterstützungsfluss

Menschliches Handoff

Wie Anfragen für eine Person zugewiesen werden, die Sekunden, die ein Agent antworten muss, ob der Chat an die KI zurückgeht und ob die KI nach Ablauf des Timeouts wieder aufgenommen wird. Konfigurieren Sie dies, bevor Sie live gehen oder ein Besucher, der nach einem Menschen fragt, einfach wartet.

Arbeitszeiten

Öffnungszeiten, Zeitzone und die geschlossene Uhrzeit. Außerhalb dieser Stunden bietet die KI keinen Menschen an. Einen separaten Zeitplan von den Ticket-Geschäftsstunden unter OpsIQ Schreiben.

Antwortet, wenn die AI ausgeschaltet ist

Die erste Antwort auf eine neue Nachricht, die Antwort, wenn jemand bereits in der Warteschlange steht und wie lange bevor er wiederholt wird.

Offline-Formular

Zeigt ein kontaktformular anstelle des chats an.

Ticket Lookup und Abteilungsbenachrichtigungen

KI-Ticketbewusstsein, so dass ein Besucher, der eine Ticketnummer angibt, seinen tatsächlichen Status erhält und zu welchen Abteilungen die AI weitergeleitet werden kann. Ein eingebautes Panel zeigt die echten Empfänger für jede Abteilung, gelöst auf dieselbe Weise wie der Benachrichtigungsbearbeiter sie löst, sodass Sie sehen können, bevor ein Kunde es tut, dass eine Abteilung niemanden alarmiert.

Help Center im Chat Widget

Sie wählen, wo der Einstiegspunkt erscheint, das untere Balkenlabel und Symbol und ob ein Link zum vollständigen Hilfecenter angeboten werden soll.

Bewertung der Konversation

Die Sternenbewertung wird ausgelöst, wenn ein Agent den Chat schließt, wenn eine Übergabe endet oder nach einer Inaktivitätsperiode, die Sie festgelegt haben. Wählen Sie einen oder zwei Trigger aus, nicht alle.

Post-Chat Umfrage

Eine kurze Umfrage, wenn der Besucher den Chat schließt, mit Ihrer Frage, Verzögerung, Zeitvorgabe und einer Obergrenze pro Besuch. Besucher können auch eine E-Mail senden oder das Transkript herunterladen.

Post-Chat E-Mail Umfrage

Eine Folgeumfrage per E-Mail nach dem Ende der Konversation, optional in der Sprache des Besuchers, mit Kontrolle über Verzögerung, Betreff, Intro, Frage, beide Buttonbeschriftungen und die Dankeszeile.

Antwort Feedback

Daumen nach oben und Daume nach unten auf jede KI-Antwort, Fütterung der Qualität dashboards.

Konversationsarchiv

Auto-Archiv nach Tagen, automatische Auflösung nach Minuten der Stille und Löschen archivierter Gespräche nach Tagen. Eine dritte Platzretention wird neben General und Tracking festgelegt.

Wissensschulung

Was der Assistent eigentlich weiß. Nichts anderes im Client Chat ist so wichtig.

Website-Wissenstraining

Bis zu zehn Startlinks, ein Seitenlimit, eine Linktiefe und ausgeschlossene Ordner. Ein einzelnes URL kann vor dem vollständigen Crawlen getestet werden. Checkout, Account und Admin Pfade ausschließen.

Einbettungen

Der API -Schlüssel und das Modell, die Seiten in durchsuchbare Bedeutung anstatt Keyword-Übereinstimmungen verwandeln.

AI Wissens-Veranstalter

Ein Klick und die KI liest jede FAQ- und Crawlseite und sortiert sie in Kategorien.

FAQs, verifizierte Antworten

Frage-Antwort-Paare, die als Quelle mit höchster Priorität behandelt werden, jede mit Status, Gewicht und Kategorie. Durchsuchbar, importierbar aus JSON, und die KI kann sie aus einer Beschreibung Ihres Unternehmens schreiben. Wenn der Assistent etwas falsch macht, schreibe eine FAQ: Es übertrifft gecrawlte Seiten, so dass die Korrektur sofort erfolgt.

Fortgeschrittene

Leistung und Grenzen

Abfrageintervall, Nachrichtenratenbegrenzung und Fenster, maximale Anlagegröße, Anhängeversuche pro Fenster und zulässige Dateierweiterungen.

Echtzeit-Lieferung

Sofortnachrichten und Statuszustellung statt Umfragen, über Pusher, Ably oder Firebase mit einem Fallback-Abfrageintervall.

Push-Benachrichtigungen

Gerätebenachrichtigungen für Agenten über Pusher Beams oder OneSignal mit einem Geräteinteresse.

Web-Push (VAPID)

Browser-Push mit eigenen generierten Schlüsseln ohne Drittanbieter. Erzeugt hier, nicht in der Gefahrenzone.

Voice, Video und Screen Share

TURN-Anmeldeinformationen, so dass Anrufe über restriktive Netzwerke verbunden sind, indem sie Cloudflare oder Twilio Anmeldeinformationen oder Ihre eigene TURN URL, Benutzername und Anmeldeinformationen.

Workflow für den Posteingang

Einstellungen des Agentenarbeitsbereichs statt Besuchereinstellungen: SLA mit erster Antwort in Minuten, gespeicherte Warteschlangenansichten, Tastenkombinationen und die Befehlspalette, In-Conversation-Suche und Kundentickets im Prüfer.

Nachrichtenkanäle

WhatsApp, SMS, Facebook Messenger, Instagram, Telegram, X Direct Messages und LINE, jede mit eigenem AI Auto-Reply Switch sowie einem Policy Switch für KI Aktionen auf Kanälen, einem Antwort-Debounce und der WhatsApp Re-Engagement Vorlage. Jeder Kanal landet im selben Posteingang wie Web Chat.

Eine Live-Widget-Vorschau am unteren Rand des Tabs aktualisiert sich während der Bearbeitung, sodass Sie Ihre Website nicht neu laden müssen, um eine Änderung zu überprüfen.
Einstellungen

Einstellungen: OpsIQ Schreiben

schriftlich beantwortete Tickets: automatische Antworten, das native Ticketsystem, Eskalation, Geschäftszeiten, Routing und die kundenorientierten E-Mails.

Auto-Reply

Zeigen Sie OpsIQ Schreibtasten

Fügt die Schreibhilfe-Buttons für Ihre Agenten im Admin hinzu.

Auto-Reply Ticket aktivieren

Wenn Sie neue Tickets anstehen und Antworten geben, dann beginnen Sie damit und überprüfen die Entwürfe für eine Woche.

Auto-Reply Abteilungen

Alles, was nicht aufgeführt ist, bleibt einem Menschen überlassen, was der sichere Standard ist.

Zeitplan für die Antwort auf Verspätungen (Minuten)

Wie lange man warten muss, bevor die automatische Antwort sendet. Eine sofortige Antwort liest sich als Roboter; ein paar Minuten lesen sich als schnelles Team.

Max AI Antworten pro Ticket nach Abteilung

Eine Kappe pro Abteilung, zum Beispiel Abrechnung 1 und Unterstützung 3Ohne Kappe kann ein verwirrter Faden schlaufen.

Länge, Status und Identität der Antwort

Maximale Schreibtoken, der Ticketstatus nach einer Antwort und nach einer Eskalation sowie das Administratorkonto, dem die automatischen Antworten zugeordnet werden. Verwenden Sie ein eindeutig benanntes Konto, damit Mitarbeiter KI-Antworten von menschlichen unterscheiden können.

Native Ticket Operations

Natives Ticketsystem

Das Ticketsystem, das in OpsIQ integriert ist, für Installationen ohne externen Helpdesk.

Pipe eingehende E-Mails in native Tickets

Verwandelt eingehende E-Mails in Tickets. OpsIQ liefert den Endpunkt URL Alles, was zu diesem Endpunkt posten kann, kann Tickets erstellen, also halte das Token geheim.

Multiturn-Antworten und Delay and Debounce

Ob die KI weiter antwortet, während das Gespräch fortgesetzt wird und ob sie ein ruhiges Fenster wartet, so dass drei schnelle Nachrichten eine als Antwort betrachtete erhalten. Das stille Fenster ist die beste Einzeleinstellung, um automatisierte Antworten in Betracht zu ziehen.

Portal für öffentliche Unterstützung

Eine Kundenseite, auf der jeder ein Ticket hochziehen und verfolgen kann, mit einer optionalen Willkommenslinie. Seine Adresse und sein Aussehen sind im Support Portal konfiguriert.

Format der Ticketnummer

Wie viele zufällige Buchstaben in generierten Ticketnummern erscheinen.

E-Mail-Kunden in ihrer eigenen Sprache

Ticket-E-Mails folgen der Kundensprache. Mitarbeiter-Emails ändern ihre Sprache nie: Benachrichtigungen, Abteilungsbenachrichtigungen, Briefings und geplante Berichte bleiben in Ihrer Systemsprache.

Bestätigungen und Bestätigungen

Eine feste Bestätigung auf neuen Tickets, plus Bestätigungsnachrichten beim Öffnen eines Tickets, wenn Feedback hinterlassen wird und wenn ein Ticket geschlossen ist, jeweils mit einer Live-Vorschau. Es gibt auch einen globalen E-Mail-Vorlagen-Wrapper und den Link hinter der Ansicht Ihres Ticketbuttons.

AI Spam-Screening

Bildschirme Tickets von unbekannten Absendern und kann optional entfernen Sie vermuteten spam auf seine eigene.

Auto-Close Leerlauftickets

Schließt ein Ticket nach einigen ruhigen Tagen. Sagen Sie dem Kunden in der Schlussnachricht, wie er wieder öffnen soll.

Geschäftszeiten (SLA-Kalender)

Zeitzone, Öffnungs- und Schließzeiten, Arbeitstage und Feiertage für First-Reply- und Auflösungstimer. Ein separater Zeitplan von den Arbeitszeiten unter Client Chat.

Auto-Zuweisung neuer Tickets

Automatische Zuweisung, optional nur an Agenten, die online sind, mit Agent-Fähigkeiten und einer Übereinstimmungsempfindlichkeit für Skill-basiertes Routing.

Vorgeschlagene Doppeltickets

Spots, wenn ein Kunde ein Ticket in der Nähe eines bereits vorhandenen öffnet, mit einer einstellbaren Match-Sensibilität.

Zufriedenheitsumfrage nach dem Schließen

E-Mails an eine Umfrage einen Tag nach dem Abschluss. Ergebnisse erscheinen auf der CSAT Seite.

Benachrichtigen Sie die Abteilung per E-Mail

Empfänger sind die Mitglieder dieser Abteilung, nicht die Postfachadresse der Abteilung, d. h. die eingehenden Adresskarten, auf denen eintreffen.

Was die KI lesen kann

KI-Clientdatenzugriff

Ein Master-Switch plus individuelle Leseberechtigungen für die Kundenprofilzusammenfassung, Rechnungen, Transaktionen, Guthaben, Produkte und Dienstleistungen, Domains, verknüpfte Server und eine hochrangige Kontoübersicht. Beginnen Sie mit der Profilzusammenfassung und fügen Sie Kategorien hinzu, wenn Antworten erforderlich sind.

Eskalation und Wissen

AI Ticket Eskalation ermöglichen

Wenn Sie ein Ticket in eine besser geeignete Abteilung verschieben, bevor Sie antworten, wählen Sie die erlaubten Abteilungen aus, die Verzögerung der Überprüfung und können Ihre eigenen Anweisungen für Eskalationsmeldungen schreiben. Schalten Sie den internen Eskalationshinweis ein, damit Ihr Team sehen kann, warum sich ein Ticket bewegt hat.

Wissenseinstellungen

Ob Antworten die Kundensprache verwenden, ob sie auf gecrawlte Links und FAQs zurückgreifen, ob die KI Bilder liest und PDF Anhänge, der Knowledge Response-Modus, ob importiert JSON Wissen wird verwendet und ob Quelllinks erscheinen können. Verwenden Sie gecrawlte Links und FAQs sollten eingeschaltet sein, oder die KI errät.

Stoppen Sie die automatische Antwort nach menschlicher Antwort

Sobald die Mitarbeiter antworten, hört die KI auf, das Ticket zu beantworten.

Ticket und E-Mail Anweisungen

Freitextanweisungen, die Ton und Inhalt für jede Antwort mit einem ladefähigen Arbeitsbeispiel formen.

Import JSON Wissen

Laden oder fügen Sie eine JSON Knowledge-Datei für den Schreibassistenten ein.

Button Studio

Ein vollständiger Designer für den kundenorientierten Button: Anzeigestil, Größe, Etikett, Symbol, Form, Mindestbreite, Hintergrundstil mit Primär- und Sekundärfarben, Steigungswinkel, Rahmen, Eckradius, Schatten, Typografie, Polsterung, Leerlaufanimation, Schwebebewegung und Farben sowie der Fokusring sowie eine benutzerdefinierte CSS Box für alles, was die Bedienelemente nicht abdecken.

Einstellungen

Einstellungen: Support Portal

Die Kundenseite, auf der Leute Tickets sammeln und verfolgen und Ihre Hilfeartikel lesen. Diese Registerkarte steuert, wie sie erreicht wird und wie sich die Kunden anmelden; das visuelle Design erfolgt im Support Portal Studio.

Portal Studio oder Embedded Ticket Portal: Welches möchte ich?

Dies sind zwei verschiedene Produkte und die Leute mischen sie ständig. Sie lösen verschiedene Probleme, und beides zusammen zu laufen ist normal.

Support Portal Studio: ein Ort, an den Sie Kunden senden

Das Studio entwirft eine komplette Support-Site, die OpsIQ für Sie hostet. Es hat seine eigene Webadresse oder Ihre eigene Domain und es trägt die gesamte Selbstbedienungserfahrung: Hilfeartikel mit der Suche, das Anfrageformular, Ticketverlauf, Kundenanmelden und den Assistenten. Wählen Sie eine Vorlage aus, arbeiten Sie sich durch Theme, Navigation, Layout, Wissen, Fußzeile, Marke, Tickets, Assistant, Formular und CSS, Vorschau auf Desktop-, Tablet- und Telefongrößen, dann veröffentlichen.

Verwenden Sie es, wenn Sie möchten ein Markenziel, auf das Sie jeden Kunden verweisen können, und Sie möchten keinen Supportbereich innerhalb Ihrer eigenen Website erstellen oder pflegen.

Embedded Ticket Portal: Tickets innerhalb Ihrer eigenen Website

Die Embed Puts nur das Ticket-Erlebnis auf einer Seite der eigenen Website. Kunden öffnen, verfolgen und antworten auf Supportanfragen, ohne jemals Ihre Seiten zu verlassen, und Ihr eigener Header, Navigation und Design bleiben genau so wie sie sind. Legen Sie das Layout, Aussehen und Zugriffsregeln im Widget-Builder fest, sehen Sie sich das Ergebnis an und kopieren Sie dann den Einbettungsausschnitt in Ihre Seite.

Verwenden Sie es, wenn Sie haben bereits eine Website oder Anwendung mit einem eigenen Design, und Sie möchten, dass die Unterstützung darin erfolgt, anstatt den Kunden an eine andere Adresse zu übergeben.

Die Kurzfassung

Das Studio baut Ein Ort, an den Sie Kunden schicken. Das Embed bringt Tickets dorthin, wo Ihre Kunden bereits sindViele Unternehmen betreiben beides, indem sie das Ticket-Widget in ihren Kontobereich für In-Kontext-Anfragen einbetten und gleichzeitig das gehostete Portal als vollständiges Selbstbedienungsziel mit Artikeln und Suchfunktionen beibehalten.

Anschrift und Zugang

Zugangsmodus

Ob das Portal für jedermann offen ist oder auf angemeldete Kunden beschränkt. Offene Portale erhalten mehr Tickets und mehr Spam.

Layout-Optionen

Ob das Portal und das Hilfezentrum einen Helden teilen oder zwei verwenden, welche Navigations- und Fußzeile auf beiden Oberflächen erscheinen, und die Markierung des Navigationsbereichs.

Portaladresse

Die Adresse, die Kunden verwenden. Wählen Sie einen Namen und OpsIQ zeigt das resultierende Portal und passende Helpcenter-Adressen an. Wenn Sie es später ändern, werden Links unterbrochen, die Sie bereits gesendet haben.

Ihre eigene Domain

Serviert das Portal von einer Domain, die Sie besitzen, wie support. yourdomain. com.

Eingebettetes Ticketportal

Wenn Sie das oben beschriebene Drop-in-Widget aktivieren, öffnen Sie den Einbettungs-Builder, in dem Sie Layout, Aussehen und Zugriffsregeln auswählen, die Ergebnisvorschau anzeigen und das Snippet für Ihre Seite kopieren.

Wie sich Kunden anmelden

Dies sind die Anmeldeoptionen Ihrer Kunden. Die Mitarbeiteranmeldung ist unter Einstellungen, Sicherheit konfiguriert.

Anmeldemethoden

Welche Optionen auf der Anmeldeseite erscheinen. Connector und E-Mail-Anmeldung funktionieren automatisch.

Social Sign-in

Verbraucherkontoanbieter, die jeweils eine Kunden-ID und ein Geheimnis benötigen, mit der von OpsIQ angegebenen Umleitungsadresse, um sich bei diesem Anbieter zu registrieren.

Single Sign-on (OIDC)

Kundenanmeldung über einen Identitätsanbieter mit dem Emittenten URL, Client-ID, Secret und einer optionalen E-Mail-Domainliste.

Kunde SAML 2.0

Die SAML Äquivalent. OpsIQ liefert die Antwort des ACS URLund SP Entity ID; Sie geben die IdP Entity-ID, Anmelden und Abmelden an URLs, X.509 Bescheinigung und optionale Attributnamen.SAML In den anmeldemethoden oder es wird nicht angezeigt.

Nahtlose Anmeldung von Ihrer App

Ein signierter Deep-Link, so dass ein bereits bei Ihrer Anwendung angemeldeter Kunde im Portal landet, ohne sich erneut anzumelden. OpsIQ liefert das Signaturgeheimnis, den Portal- URL und den Workspace-Schlüssel sowie einen Generator für einen signierten Testlink.

Überall abmelden

Die Abmeldung aus dem Portal kennzeichnet auch den Kunden aus Ihrer Anwendung.

Ansaugen und Schutz

Formularfelder für die Anfrage

Jedes zusätzliche Feld verliert Eingaben, also fragen Sie nur nach dem, was Sie zum Triagen benötigen.

Spam- und Missbrauchsschutz

Ein Honeypot und eine Tarifbegrenzung schützen immer das öffentliche Formular. Darüber hinaus können Sie Einweg-E-Mail-Adressen sperren, Ihre eigenen blockierten Domains hinzufügen und ein CAPTCHA mit Google reCAPTCHA oder Cloudflare Turnstile hinzufügen. reCaptcha verwendet die bereits unter Einstellungen, Sicherheit eingestellten Schlüssel wieder; Drehkreuzschlüssel werden hier eingegeben.

Portalanalyse

Eine schreibgeschützte Zusammenfassung der Portalaktivitäten in den letzten dreißig Tagen.

Einstellungen

Einstellungen: Berechtigungen, Lizenz, Cron und Gefahrenzone

Die Systemgruppe sowie die Zugriffssteuerung für das Team entscheiden, wer welche Einstellungen sehen kann.

Teamzugriff und Berechtigungen

Per-Admin Berechtigungen

Jeder Administrator erhält einen expliziten Satz von Berechtigungen, der den Chat-Posteingangszugriff abdeckt, welche Einstellungen sie bearbeiten können und ihre Abteilungen. Jeder mit der Rolle Voller Administrator hat immer alle Berechtigungen. Einstellungen Berechtigungen entscheiden, welche Registerkarten eine Person sieht, also gewähren Sie die engste Menge, die es ihnen ermöglicht zu arbeiten.

Lizenz

Zeigt Ihre aktuelle Lizenz, was sie Ihnen zusagt und ihren Status.

Cron-Einrichtung

Selbst gehostete Installationen nur. In der OpsIQ Cloud laufen die geplanten Aufgaben für Sie und der Tab ist versteckt. Eine Zeile von crontab steuert jede geplante Aufgabe: Ticket-Autoantwort, Eskalationsroutenführung, Wechselkursaktualisierung, Mailbox Polling und Connector Sync.

1
Kopieren Sie die Zeile

Die Registerkarte zeigt die genaue Crontab-Zeile für Ihren Server mit der korrekten PHP-Binärdatei, die bereits ausgewählt wurde.

2
Fügen Sie es zu Crontab hinzu

Führen Sie crontab -e als Benutzer aus, der PHP ausführt und fügen Sie die einzelne Zeile ein. cPanel Verwenden Sie stattdessen das Cron Jobs-Tool.

3
Überprüfung

Innerhalb einer Minute leuchten die Herzschlagkacheln auf. Verwenden Sie Run jetzt, um sofort zu testen, anstatt zu warten.

Das Heartbeat-Panel zeigt den letzten Lauf, die Dauer und was sowohl für die automatische Antwortwarteschlange als auch für die E-Mail- und Connector-Umfrage verarbeitet wurde. Es warnt, wenn der letzte Lauf von der manuellen Webtaste kam und nicht von einem echten Server-Cron, und wenn ein Heartbeil veraltet ist.

Gefahrenzone

Löschen Sie alle Tracking-Daten

Löscht alles OpsIQ, das gesammelt oder generiert wurde. Sie kreuzen an, was Sie einfügen und geben die Bestätigungsphrase genau ein. Einstellungen und Site-Konfiguration, blockierte Adressen, alles, was Ihr Team geschrieben hat (Wissensdatenbank, FAQs, Übersetzungen, Portaldesigns, Aktionsdefinitionen) und Zustimmungsbestätigungen bleiben erhalten.

Bereinigungsdaten älter als

Der gleiche Sweep ist auf ältere Datensätze beschränkt als 30, 60, 90 oder 180 Tage oder ein Jahr. Für die automatische Roll-Retention verwenden Sie stattdessen die Retentionswerte in Allgemein und Tracking und lassen Sie die geplante Aufgabe es tun.

🚫
Exportieren Sie ein Backup aus Einstellungen, Allgemein, bevor Sie etwas in der Gefahrenzone verwenden.
Einstellungen

Verwalten Ihres Teams

Laden Sie Teammitglieder ein und weisen Sie Rollen zu, um zu steuern, wer auf was zugreifen kann.

Team
Team & AbteilungenDer Teambildschirm: eine Tabelle mit Admins mit Kontakt, Rollenabzeichen (Eigentümer, Volladministrator, Agent) und den Abteilungen, auf die jeder zugreifen kann.Team & AbteilungenArbeitsbereichTeam & Abteilungen+ Speichern Sie Admin-BenutzerKONTAKTROLLEBEGRIFFSBESTIMMUNGENAO[email protected]Ada OwusuEigentümeralleKM[email protected]Kojo MensahVollständiger AdminalleRT[email protected]Rita TettehAgentAbrechnungSB[email protected]AgentUnterstützung1TEAMEinladen und Verwalten von Admins2ROLESEigentümer · Volladministrator · Agent3SCOPEDZugang zu den einzelnen Abteilungen
Der echte Teamscreen: jeder Admin mit seinem Kontakt, seiner Rolle und den Abteilungen, die er erreichen kann, Agenten, volle Eigentümer.

Rollen

Eigentümer

Voller Zugriff einschließlich Lizenz, Abrechnung und Gefahrenzone. Eine pro Installation.

Vollständiger Admin

Voller Zugriff, außer Lizenz und Gefahrenzone. Verwalten von Administratoren

Agent

Begrenzt auf zugewiesene Abteilungen. Tickets, Chats und Analysen nur.

Einladende Teammitglieder

1
Gehe zum Team

Navigieren Sie zum Team in der Sidebar.

2
Klicken Sie auf Einladung

Geben Sie die E-Mail des Teammitglieds ein.

3
Set-Rolle

Wählen Sie Besitzer, Volladministrator oder Agent.

4
Zuweisende Dienststellen

Für Agenten, wählen Sie zugängliche Abteilungen.

5
Senden Sie eine Einladung

Sie erhalten eine E-Mail mit einem Setup-Link.

Einstellungen

Leistung des Teams

Wie Ihr Supportteam funktioniert. Zugriff erfolgt durch Berechtigung, nicht durch Rolle: Die Ansichtsberechtigung öffnet die Seite, die Verwaltungsberechtigung schaltet Ziele frei, QA und die Mitarbeiteridentifizierung lesen, und die Belohnungs-Finanzierungsberechtigung fügt den Rewards-Tab hinzu. Ein Teamleiter kann eine davon erhalten, ohne ein vollständiger Administrator zu werden.

Leistung des Teams
Leistung des TeamsDer Team-Performance-Bildschirm: Agenten, die nach einer zusammengesetzten Punkteleiste, CSAT und einem Belohnungsausgleich mit einem Pay-Button pro Zeile eingestuft werden.Leistung des TeamsArbeitsbereichLeistung des TeamsANSÄTZEANWENDUNGSBEREICHCSATBALANCERTRita Tetteh4.8$42ZahlSBSam Boateng4.5$28ZahlKMKojo Mensah4.2$15ZahlAOAda Owusu4.9$51Zahl1SCOREDVerbundwerkstoffe2CSAT & LOADRatings + Volumen3REWARDSSalden der Zahlstellen
Der echte Team-Performance-Bildschirm: Jeder Agent erzielte Ergebnisse nach Volumen und CSAT, mit einem Belohnungsausgleich, den Sie pro Zeile auszahlen können.

Wie die Seite organisiert ist

Team Performance besteht aus fünf Tabs. Jeder beantwortet eine andere Frage, und sie werden danach geordnet, wie dringend sie Sie normalerweise brauchen.

01 Befehlszentrale

Status der Live-Warteschlange, Kundenergebnisse im Vergleich zu Ihren Zielen, wie die Kapazität ausgegeben wurde, Situationen, in denen eine Entscheidung erforderlich ist und der evidenzbereinigte Index pro Teamkollege.

02 Teamkollegen

Die Rangliste, die Anerkennung (am meisten verbessert und Streifen), Quests und die Opt-in-Steuerung für wer das Ranking sehen kann.

03 Qualität

Scorecards, aufgezeichnete Auswertungen, chancenkorrigierte Rezensentvereinbarung, Rezension Drift und Beweisstreitigkeiten.

04 Belohnungen

Token-Wert, Auszahlungsansprüche und die geregelte Periodenzuweisung: autorisieren Sie eine finanzierte Obergrenze, überprüfen Sie die Vorschau, schließen Sie sie ab.

05 Historie

Wie sich der Arbeitsbereich im Laufe der Zeit bewegt hat: Trendmetriken mit einem Diagramm und einer 28-Tages-Coverage-Heatmap, die zeigt, wann das Team tatsächlich gearbeitet hat. Jede Karte versteckt sich, bis genug Geschichte vorhanden ist, um sie zu zeichnen.

Unscored ist nicht Null

Ein Teamkollege ohne genügend bearbeitetes Volumen — oder dessen Dimensionen sich auf weniger als die Hälfte des konfigurierten Gewichts summieren — wird als unerfasst angezeigt. Ihre Punktzahl, Rang und Band sind leer und ihre Aufschlüsselung ist verborgen. Das ist absichtlich: Wenn man eine fehlende Messung als Null darstellt, steht jemand am Ende einer Rangliste für eine ruhige Woche. Die Nachweisschwellen sind pro Arbeitsbereich in Targets & Scoring konfigurierbar.

Die beiden Evidenzschwellenwerte machen unterschiedliche Aufgaben und es lohnt sich, sie voneinander zu trennen. Minimum handle entscheidet darüber, ob jemand überhaupt erzielt wird. Minimale Bewertungen beeinflussen die Punktzahl nicht: Sie entscheiden über die Berechtigung für Prämien und Belohnungen. Ein Teamkollege kann also vollständig bewertet und eingestuft werden und ist für diesen Zeitraum immer noch nicht förderfähig, weil zu wenige Kunden sie bewertet haben.

💡
Jede Zahl wird auf den Arbeitsbereich, den Sie betrachten und die Zeitspanne, die Sie auswählen, abgestimmt. Ein Teamkollege, der in zwei separaten Arbeitsbereichen arbeitet, hat eine unabhängige Aufzeichnung in jedem. Zwei Ausnahmen sollten Sie wissen: Eine Site GROUP ist ein Arbeitsbereich.

Der Leistungsindex

Ein Verbund aus fünf Dimensionen, die jeweils gegen ein von Ihnen festgelegtes Ziel und nicht gegen Kollegen gemessen werden, dann in Richtung Mitte gezogen, wenn der Beweis dahinter dünn ist. Beachten Sie die Richtung: Die Anpassung bewegt die Figur in Richtung 70, so dass eine dünne ausgezeichnete Punktzahl nach unten gezogen wird und eine dünnen schlechten Punktzahl hochgezogen wird. Eine schlechte erste Woche bei vier Gesprächen ist auch kein festes Urteil. Wenn sich die Beweise ansammeln, konvergiert die angepasste Zahl auf die rohe.

Qualität

Kundenzufriedenheit durch verifiziertes Feedback, ergänzt durch QA Scorecard-Ergebnisse, sofern diese vorhanden sind und geregelt werden.

Reaktionsfähigkeit

Erste Reaktionszeiten bei den P50- und P90-Perzentilen, gegen Ihre Ziele.

Resolution

Auflösungszeit und One-Touch-Auflösungsrate.

SLA

Erreichen gegen den von Ihnen konfigurierten SLA, plus Risiko und durchbrochene Zählungen.

Stewarding

Wiedereröffnungs- und Transferraten - die Arbeit, die zurückkommt.

💡
Gewichte sind konfigurierbar und relativ; sie müssen nicht 100 total sein. Fehlende Beweise können den Index nur senken, niemals erhöhen - das voll konfigurierte Gewicht bleibt im Nenner.

Kapazität und Produktionszeit

Belegung, produktive Zeit, gelöst pro produktiver Stunde und Online-Anteil des Fensters. Die Nutzung wird absichtlich nicht gemeldet: Sie benötigt geplante Stunden als Nenner, OpsIQ hat keine Dienstplan- oder Schichtquelle, und ein ersetzter Nenner wäre eine Schätzung mit einem Prozentzeichen.

⚠️
Nur Bericht erstatten. Belegung sagt, wie Zeit ausgegeben wurde, niemals, wie gut sie ausgegeben wurde und es finanziert, tort oder maß eine Zahlung. Ein Teamkollege ohne Nachweis der Bearbeitungszeit liest sich als nicht verfügbar, nie als Null.

Qualitätssicherung

Eine Scorecard ist die Rubrik, gegen die Rezensenten echte Gespräche bewerten. Nur eine veröffentlichte Version kann eine Bewertung erhalten, und die Veröffentlichung einer neuen Version schreibt niemals das um, was bereits erzielt wurde.

Überprüfungsvereinbarung

Zwei Gutachter, die alles durchgehen, stimmen 100% der Zeit zu und tragen keine Informationen bei.

Testergebnisse

Ob ein Rezensent systematisch härter oder weicher abschneidet als seine Kollegen im selben Gespräch — ein Vergleich mit dem Rest des Panels, kein Trend über die Zeit. Es braucht eine Interaktion, die mehr als einmal unabhängig überprüft wird.

Streitigkeiten

Ein Teamkollege kann die über ihn aufgezeichneten Beweise formell anfechten, ein offener Streit blockiert den Abschluss der Belohnungsperiode bis zu ihrer Auflösung.

Selbstbeurteilung

Ein Teamkollege kann keine Bewertung seiner selbst vorlegen.

⚠️
KI-gewertete Auswertungen können die Bezahlung nicht beeinflussen, bis eine Kalibrierung veröffentlicht wird, die zeigt, dass das Modell mit menschlichen Rezensenten genau genug übereinstimmt, gemessen an einer Mindeststichprobe. Ein offenes Tor bedeutet, dass sich das Modell eng genug mit den Menschen deckt, um zu zählen — es bedeutet niemals, dass es korrekt ist.

Anerkennung

Allein das Ranking hat Fehlermodi dokumentiert: Metrisches Spielen, Burnout und öffentliche Beschämung des Letzten. Drei Alternativen stehen daneben.

Am meisten verbessert

Gemessen an der eigenen früheren Rekord eines Teamkollegen, nie gegen Kollegen, mit Schrumpfung so ein winziger Nenner kann keinen Sieg kaufen.

Streifen

Aufeinanderfolgende Perioden, die eine feste, deklarierte Bar erfüllen – durchschnittliche Bewertung, behandeltes Volumen, Bewertungen zählen und negative Feedback-Rate, alles absolute Zahlen. Jeder kann eine Streifen gleichzeitig halten, so dass es kein Ranking erzeugt, und ein Kollege mit einem außergewöhnlichen Monat kann Ihre nicht brechen.

Opt-in Ranking

Standardmäßig ausgeschaltet. Ein Teamkollege sieht immer seinen eigenen Index; ob er Kollegen sieht, ist eine Entscheidung des Arbeitsbereichs. Perzentilbänder können anstelle von absoluten Positionen veröffentlicht werden.

💡
Anerkennung berührt nie Geld. Eine Streifen kann keine Auszahlung finanzieren oder brechen, und am meisten verbessert ist nicht eine Auszeichnung Kategorie.

Quests

Ein Ziel, auf das das Team hinarbeitet, gemessen an einer festen deklarierten Bar und nicht gegeneinander - so kann jeder die gleiche Quest in der gleichen Zeit löschen.

Anwendungsbereich und Trittfrequenz

Einzelperson oder Team; einmalig, wiederholbar oder saisonal mit einem expliziten Fenster.

Kriterien

Gespräche, eingegangene Bewertungen, aktive Tage, durchschnittliche Bewertung oder negative Feedback-Rate. Alle absoluten — keine Metrik, deren Wert davon abhängt, was die Kollegen gemacht haben.

Qualitätssicherung

Erforderlich für jede Quest mit einem Volumenziel: Wenn Sie die Nummer treffen, während die Qualität unter den Boden fällt, wird die Quest zurückgehalten und nicht abgeschlossen, und sie wird als zurückgehalten, nicht unvollendet angezeigt.

Wiederholgrenzwerte

Eine pro Periodenobergrenze, die vom langsamsten Kriterium angetrieben wird, plus eine optionale Abklingzeit vor einer Wiederholung kann zählen.

Teamquests

Gemeinsame Fortschritte ohne Veröffentlichung von Teamkollegen, sodass eine Teamquest nicht zu einer Rangliste werden kann.

Coaching-Sitzungen

Eine Coaching-Sitzung ist eine Aufzeichnung, kein Chat. Es hat einen Trainer, ein Teamkollege wird gecoacht, eine geplante Zeit, vereinbarte Gesprächspunkte und eine Zusammenfassung, die danach geschrieben wurde. Echte Chats, Tickets und QS-Bewertungen werden als Beweis dafür festgehalten, so dass das Gespräch auf der Arbeit verankert ist, die tatsächlich passiert ist, anstatt auf einem erinnerten Eindruck.

Sprechende Punkte

Vor der Sitzung vereinbart, so dass der Teamkollege nicht in eine Überraschung gerät.

Angeheftete Beweise

Chats, Tickets und QA-Auswertungen an die Sitzung. Ein Pin speichert eine Referenz – einen Typ und eine ID – keine Kopie, so dass er immer auf den Live-Record zeigt. OpsIQ überprüft die ID nicht bevor sie akzeptiert wird.

Aktionspunkte

Jeder mit einem Besitzer und einem Fälligkeitsdatum. Ein Gegenstand, der über sein Datum hinausgeht, wird als überfällig angezeigt — ein abgeleiteter Zustand, kein Status, an den sich jemand erinnern muss.

Privatbrief

Der Trainer selbst hat einen Hinweis. Der Teamkollege, der gecoacht wird, kann ihn niemals lesen — nicht als Agent, nicht als Manager, nicht wie der Besitzer. Dieser Scheck läuft vor jeder anderen Erlaubnis und kann nicht außer Kraft gesetzt werden.

Wer kann eine Sitzung sehen

Der Trainer, der Teamkollege und jeder mit der Erlaubnis zur Verwaltung der Teamleistung. Niemand sonst, auch nicht andere Teamkameraden in derselben Abteilung.

Audit

Jede Erstellung, Aktualisierung, Pin, Unpin und Fertigstellung wird mit dem aufgezeichnet, was sich geändert hat, von wem.

💡
Coaching ist bewusst getrennt vom Scoring und vom Geld. Eine Session verändert niemandes Index, gibt keine Belohnung ab und erscheint nicht auf der Rangliste.

Prämien und Prämien

Die aufgezeichnete Aktivität wird in Token mit einem von Ihnen festgelegten Barwert umgewandelt. Der Weg zu einer Zahlung ist bewusst langsam und jeder Schritt wird aufgezeichnet.

1
Setzen Sie den Token-Wert

Wie viele Tokens entsprechen, wie viel Geld und was jede Aktivität wert ist.

2
Genehmigung der finanzierten Obergrenze

Für einen geschlossenen Kalenderzeitraum gibt ein Vollverwalter an, welche maximalen Token er zahlen darf. Das Speichern des Einstellungsformulars autorisiert kein Budget und kann keine bereits genehmigte Obergrenze ändern.

3
Überprüfen Sie die Preview

Empfänger, Reserve und der Grund, warum jemand nicht berechtigt ist. Offene Beweisstreitigkeiten blockieren diesen Schritt.

4
Finalisierung

Die Zuweisung wird permanent mit den Beweisen hinter ihr aufgezeichnet. Eine Periode, die nichts zugewiesen hat, kann ungültig gemacht und wieder ausgeführt werden. Eine, die Tokens ausgegeben hat, muss zuerst rückgängig gemacht werden: OpsIQ schreibt einen kompensierenden Eintrag gegen jede Brieftasche und löscht niemals das Original, so dass das Hauptbuch immer noch zeigt, was passiert ist und warum, und erst dann wird die Periode freigegeben. Die Umkehrung weigert sich, wenn jemand bereits mehr als den Betrag ausgezahlt hat, der zurückerhalten wird, und nennt wer und um wie viel.

⚠️
Die Berechtigung erfordert verifiziertes Kundenfeedback. KI-Qualitätsbewertungen können dieses Urteil ergänzen, aber niemals ersetzen, und ein Teamkollege, der als nicht bewertet angezeigt wird, ist nicht berechtigt. Jeder Mitwirkende ist auf 25% über seinem erwarteten Anteil an dem Zeitraum begrenzt, so dass ein sehr umfangreicher Monat das gesamte Budget nicht absorbieren kann.
💡
Der Kontoinhaber nimmt an Prämien oder symbolischen Belohnungen nicht teil, ohne zu wechseln: er genehmigt die finanzierte Obergrenze und schließt jede Zuteilung ab, und es gibt niemanden über ihnen, der seine eigene Bezahlung billigt.

Alle anderen nehmen standardmäßig teil, Teamleiter und Miteigentümer eingeschlossen. Jemanden auszulassen, ihn in Team & Abteilungen zu öffnen und die Option "Teilnehmen an Auszeichnungen und Belohnungen" auszuschalten. Ihre Arbeit wird immer noch gewertet und gezeigt; sie hören von da an auf, ein Kandidat zu sein, und nichts bereits abgeschlossenes wird berührt.

⚠️
Da die Leute, die teilnehmen können auch die Leute sind, die Auszahlungen genehmigen können, verweigert OpsIQ eine Auszahlung oder Gutschrift in Ihre eigene Brieftasche, zahlt Ihre eigene Forderung, schließt einen Zeitraum ab, in dem Sie bezahlt werden würden, und schließt eine Auszeichnung ab, die Sie gewinnen würden. Ein anderer Vollverwalter oder der Besitzer muss es tun. Bezahlen Sie alle Ansprüche überspringt Ihre eigenen und meldet sie als übersprungen, nicht fehlgeschlagen.

Wer sieht und tut, was

Teamleistung ansehen

Das Board, der Live-Zustand, die Kapazität und die Qualitätsübersicht für den Arbeitsbereich.

Verwalten der Teamleistung

Ziele und Scoring, Exporte, QA-Scorecards und -Bewertungen, Coaching, Quests und die Lesevorgänge, die kollegenidentifizierende Daten wie den Verlauf pro Administrator und die Vergabehistorie enthalten.

View Team Belohnung Finanzen

Salden, Barwerte, Schadensbescheide und Zahlungsreferenzen — getrennt von Leistungsnachweisen, da sie gehaltsabrechnungsfähig sind.

Nur Volladministrator

Jede Geldmutation: Zahlung einer Belohnung, Zahlung oder Ablehnung eines Anspruchs, Genehmigung eines Haushaltsplans, Abschluss, Aufhebung oder Rücknahme einer Zuweisung und Festlegung des Token-to-Cash-Satzes; diese können nicht durch Erteilung einer Erlaubnis delegiert werden.

Es fair zu nutzen

Der Performance-Index ist Management-Evidenz, keine automatische Beschäftigungsentscheidung. Öffnen Sie die Quellgespräche hinter einer Zahl, bevor Sie darauf reagieren, und wiegen Sie Fallkomplexität, Zeitpläne, Urlaub und Zugänglichkeitsbedürfnisse ab. Eine einzelne schwierige Woche sieht nicht nach einem anhaltenden Muster aus.

Einstellungen

Ihre Websites (Workspaces)

Mit Websites (Workspaces) können Sie mehrere Websites über eine OpsIQ -Installation verwalten. Jede hat ihr eigenes Tracking, AI, Connectors und Teamzugriff.

Gebiete
Ihre WebsitesDer Site-Bildschirm: eine Liste von Workspaces, jeder mit seiner Domain, Typ, Connector, Statusabzeichen und einer Schaltfläche öffnen sowie Add-new-Site.Ihre WebsitesArbeitsbereichIhre Websites+ Neue Website hinzufügenSshop.acme.comeCommerce · Shopify ConnectorAktivOffenHhost.acme.comHosting · WHMCS ConnectorAktivOffenBblog.acme.comInhalt · kein ConnectorEinrichtungOffen1MULTI-SITEEin Workspace pro Site2ISOLATEDDaten mischen sich nie3PER-SITEEigene Einstellungen & Connectoren
Der Bildschirm der echten Sites: Jede Site ist ein eigener isolierter Arbeitsbereich (eigene Domain, Connector und Einstellungen), hinzugefügt und aus einer Liste geöffnet.

Erstellen einer Website

1
Gehen Sie zu Connected Sites

Navigieren Sie zu verbundenen Sites.

2
Fügen Sie eine neue Website hinzu

Geben Sie Name, Domain und Beschreibung ein.

3
Kopieren Sie den Site Key

Jede Site erhält einen eindeutigen Schlüssel (site_xxx) für das Widget-Snippet.

4
Unabhängig konfigurieren

Jede Site hat ihre eigene AI, Connectors und Einstellungen.

Wie viele Websites kann ich haben?+

Hängt von Ihrem Lizenzplan ab. Überprüfen Sie Ihre Lizenzdetails.

Einstellungen

Lizenz und Plan

Ihre OpsIQ -Lizenz steuert Funktionen, Standortlimits und AI-Guthaben.

Lizenz
LizenzzentrumDas OpsIQ Lizenzcenter: Plan, ein Aktivstatus-Badge, der maskierte Lizenzschlüssel, ein AI-Kreditmesser und eine Force-Remote-Check-Taste.LizenzzentrumArbeitsbereichOpsIQ LizenzzentrumPlanGeschäftStatusAktivSchlüsselOPSIQ-•••·••‒••-2F9CKI-Gutschriften$68 linksFernüberwachung1PLAN & STATUSAktiv, auf einen Blick2KEYHMAC lokal zwischengespeichert3CREDITSAI Balance & Limits
Das echte Lizenzzentrum: Ihr Plan und aktiver Status, der maskierte Schlüssel, Ihr AI-Kreditsaldo und eine One-Click-Force überprüfen erneut.
Lizenzschlüssel

Geben Sie in Einstellungen > Lizenz ein. Validiert gegen den OpsIQ -Lizenzserver.

Lizenz Heartbeat / Validierung

OpsIQ Normalerweise liest er den unterzeichneten lokalen Lizenz-Cache und aktualisiert die Validierung, wenn erforderlich. DNS HTTPS oder Serverzeitprobleme.

Plan

Bestimmt die Verfügbarkeit von Features und Limits.

Standortbegrenzung

Maximale Anzahl von Arbeitsbereichen.

KI-Gutschriften

Wenn Sie Managed AI verwenden, wird Ihr Kreditsaldo hier angezeigt.

Verfallsdatum

Erneuern Sie vor Ablauf, um eine Unterbrechung des Dienstes zu vermeiden.

Was passiert, wenn meine Lizenz abläuft?+

Tracking, Tickets und CRM gehen weiter. KI-Funktionen halten an bis zur Erneuerung. Daten bleiben erhalten.

Einstellungen

Profil, Passwort und Zwei-Faktor-Authentifizierung

Jeder Administrator kann seine eigene Identität, Arbeitseinstellungen, sein Passwort und die Zwei-Faktor-Authentifizierung beibehalten.

Produktbildschirm
Mein ProfilDie Profilseite trennt persönliche Daten, Sprache/Zeitzone, Avatar/Signatur, Passwort und Zwei-Faktor-Authentifizierung.Mein ProfilArbeitsbereichPROFILvollständigTIMEZONEEuropa/Athen2FAAktiviertLEBENDER ARBEITSPAZWERKName und E-MailPersönliche IdentitätBearbeitenSprache und ZeitzoneTermine und SchnittstelleBearbeitenAvatar und SignaturAntworten und Anwesenheit des TeamsBearbeitenPasswort und 2FAKontoschutzSicher1UPDATE PROFILEIdentität und Gebietskörper2SECURE LOGINPasswort und 2FA3SAVEBewerben Sie sich für diesen Admin
Die Profilseite trennt persönliche Daten, Sprache/Zeitzone, Avatar/Signatur, Passwort und Zwei-Faktor-Authentifizierung.

Profileinstellungen gehören dem angemeldeten Administrator und ändern das Branding des Arbeitsbereichs nicht. Verwenden Sie ein eindeutiges Passwort und aktivieren Sie die Zwei-Faktor-Authentifizierung. Das Ändern einer E-Mail oder Authentifizierungseinstellung kann eine erneute Überprüfung oder eine neue Anmeldung erfordern.

Einstellungen

Präferenzen bei der Anmeldung

Benachrichtigungspräferenzen kontrollieren, welche Betriebsereignisse einen Administrator im Produkt oder per E-Mail erreichen.

Produktbildschirm
Präferenzen bei der AnmeldungDie Benachrichtigungsseite bietet pro Ereignis In-App und E-Mail-Optionen sowie eine aktuelle Benachrichtigung Liste.Präferenzen bei der AnmeldungArbeitsbereichIN-APPamEMPARSelektivUNREAD4LEBENDER ARBEITSPAZWERKTicket zugewiesenIn-App und E-MailamKunden antwortetenIn-AppamSLA-RisikoIn-App und E-MailamAI-ZulassungIn-App und E-Mailam1CHOOSE EVENTSNur nützliche Signale2CHOOSE CHANNELIn-App oder E-Mail3ÜBERPRÜFUNGKürzliche Mitteilungen
Die Benachrichtigungsseite bietet pro Ereignis In-App und E-Mail-Optionen sowie eine aktuelle Benachrichtigung Liste.

Die Einstellungen umfassen Ticketzuweisung, Kundenantworten, SLA-Warnungen, Chat-Übergabe und AI-Genehmigungsereignisse. Halten Sie dringende Betriebssignale irgendwo aktiviert; das Ausschalten von E-Mails schaltet nicht unbedingt die In-App-Benachrichtigung aus.

Einstellungen

Sicherheitsübersicht

Die Sicherheitsübersicht ist der erste Bildschirm zur Bewertung von Blöcken, Anmeldeangriffen, Bedrohungssitzungen, Sicherheitstrends und Ereignisintegrität.

Produktbildschirm
SicherheitsübersichtSecurity Overview kombiniert aktuelle Risikokarten, einen 14-Tagestrend, eine Angreiferliste, einen Ereignisfeed und Integritätsstatus.SicherheitsübersichtArbeitsbereichACTIVE BLOCKS18FAILED LOGINS42HIGH THREAT3LEBENDER ARBEITSPAZWERKAuto-Blocked7-Tagesgesamtzahl und QuelleTrendNeueste AngreiferIP, Land und GrundÜberprüfungSicherheitsereignisseRisiko- und HandlungsergebnisFuttermittelHash-Kette IntegritätManipulationssichere EreignisketteGültig1READ HEADLINEAktuelle Exposition2OPEN EVIDENCEAngreifer und Ereignisse3ACTBlockieren, Untersuchen, Export
Security Overview kombiniert aktuelle Risikokarten, einen 14-Tagestrend, eine Angreiferliste, einen Ereignisfeed und Integritätsstatus.

Verwenden Sie die Überschriftenkarten für Triage und öffnen Sie dann das zugehörige Audit, Failed Logins, Blocked IPs oder JavaScript Fehlerseite für Rekordarbeit. 14 Der Tagestrend ist nützlicher als ein einzelner Spike. Hochbedrohungssitzungen sollten gegen Besucher-, Anfrage- und Authentifizierungsnachweise untersucht werden, bevor ein permanenter Block angewendet wird.

Einstellungen

Prüfprotokoll für Manipulationsfälle

Im Auditprotokoll wird erfasst, wer was, wann, zu welchem Objekt, auf welcher Risikostufe und ob es gelungen ist.

Produktbildschirm
TätigkeitsauditDie Audit-Seite bietet durchsuchbare manipulationssichere Aktivitäten mit Aktion, Akteur, Risiko, Ziel und Ergebnis.TätigkeitsauditArbeitsbereichEREIGNISSE18.2kHIGH RISK21INTEGRITYGültigLEBENDER ARBEITSPAZWERKSteckverbinder aktiviert[email protected] · ShopifyErfolgreichAPI Schlüssel widerrufen[email protected] · Schlüssel 19ErfolgreichEinstellungen geändert[email protected]ErfolgreichErlaubnis verweigert[email protected] · exportBlockiert1FILTERHandlung, Risiko und Akteur2INSPEKTZiel und Ergebnis3EXPORTCSV oder JSON
Die Audit-Seite bietet durchsuchbare manipulationssichere Aktivitäten mit Aktion, Akteur, Risiko, Ziel und Ergebnis.

Filter nach Aktion, Risiko und Akteur; Export CSV oder JSON Die Hash-Kette hilft bei der Erkennung fehlender oder veränderter Auditzeilen, ersetzt jedoch nicht geschützte Backups und eingeschränkten Datenbankzugriff.

Betrieb

Diagnose

Die Diagnose verwandelt die Subsystemprüfungen in einfache englische Gesundheitsergebnisse und direkte nächste Maßnahmen.

Produktbildschirm
DiagnoseDiagnostics gruppiert Gesundheitschecks für das Widget, AI, Tickets, Integrationen, Site Intelligence, Hintergrundaufgaben, CRM-Automatisierung, Lizenzierung und Speicherung.DiagnoseArbeitsbereichGESUNDHEIT13WARNING2GEFAHREN1LEBENDER ARBEITSPAZWERKWidgetBeacon und Chat-EndpunkteGesundHintergrundaufgabenCron Heartbeat spätWarnungE-MailTest auf Abwärtsfahrt fehlgeschlagenFehlgeschlagenConnectorenRegistrierung und EreigniseingangGesund1REFRESHPrüfung des Laufstroms2OPEN WARNINGVerlesene Beweise3FIX AND RETESTRückforderung bestätigen
Diagnostics gruppiert Gesundheitschecks für das Widget, AI, Tickets, Integrationen, Site Intelligence, Hintergrundaufgaben, CRM-Automatisierung, Lizenzierung und Speicherung.

Die Seite überprüft Site Speed, Rang/Keyword/Backlink/Lokaldaten, KI und Action Gateway, Tickets, Crawler/Audits, Integration/Event-Eingang, Hintergrundaufgaben, CRM-Automatisierungen, Lizenz, Widget und verwandte Produktdienste. Es werden absichtlich vom Bediener lesbare Ursachen gemeldet, anstatt rohe Geheimnisse aufzudecken.

Nach einer Änderung wird das betroffene Teilsystem wieder gesund aktualisiert und bestätigt. Eine grüne Diagnoseseite ist notwendig, reicht aber nicht aus, um den Start durchzuführen; außerdem die Checkliste vor dem Start ausfüllen.

Einstellungen

Sicherheit und Zugang

OpsIQ enthält mehrere Sicherheitsebenen zum Schutz Ihrer Admins, Daten und API Zugang.

Wie es funktioniert
Sicherheit und ZugangEin Sicherheitsschild neben aktivierten Kontrollen: Zwei-Faktor, OIDC SSO, SCIM 2.0 OAuth2 PKCE, CSRF/CSP IP Firewall, Tariflimits und ein Geheimtresor.Zwei-Faktoren (TOTP)OIDC SSOSCIM 2.0OAuth2 PKCECSRF + CSPIP firewallZinsbindungenSecrets Vault
Sicherheit

Sicherheitsmerkmale

Admin-Authentifizierung

E-Mail/Passwort mit optionalem 2FA.

Login Lockout

Temporäre Sperre nach zu vielen gescheiterten Versuchen.

IP Sperrung

Block IPs oder CIDR reicht vom Zugriff auf verfolgte Websites.

Threat Scoring

Verhaltensbasierte Bedrohungswerte. Besucher mit hoher Bedrohung können automatisch blockiert werden.

Durchsetzung von HTTPS

Erforderlich für alle Verbindungen. HTTP leitet zu HTTPS um.

HSTS-Header

Strict-Transport-Security verhindert Downgrade-Angriffe.

CSRF-Schutz

Alle Admin-Formulare enthalten CSRF-Token.

XSS-Schutz

Alle Benutzereingaben werden entgangen. CSP-Header beschränken die Skriptausführung.

SSRF-Schutz

Outbound Webhooks blockieren private / interne IP Adressen.

Empfohlenes Setup

1
2FA aktivieren

Für alle Admin-Konten.

2
Starke Passwörter

Mindestens 12 -Zeichen, gemischt.

3
Überprüfungsabschlüsse

Entfernen Sie den Zugriff für ehemalige Teammitglieder.

4
Monitor fehlgeschlagene Logins

Überprüfen Sie wöchentlich auf verdächtige Muster.

5
Bleiben Sie auf dem neuesten Stand

Aktualisieren Sie umgehend Updates für Sicherheitspatches.

Einstellungen

Rollen und Berechtigungen

Rollenbasierte Zugriffskontrolle ermöglicht es Ihnen zu kontrollieren, was jedes Teammitglied tun kann.

Rollen und Berechtigungen
Rollen und BerechtigungenEine Matrix für Rollen nach Fähigkeiten: Der Besitzer hat alles; Full Admin fehlt die Abrechnung und Gefahrenzone; Agent hat nur Tickets mit Skalierung.Rollen und BerechtigungenArbeitsbereichSETZUNGENBILLIERUNGGEFAHRTIKETTENEigentümerVollständiger AdminAgentscoped13 ROLESEigentümer · Volladministrator · Agent2GRANULARSeite + Abteilung3DEFAULT-DENYVergessene Routen blockiert
Die Rollenmatrix auf einen Blick: Besitzer bekommt alles, Full Admin alles außer Abrechnung und Gefahrenzone, Agent nur ihre Scope-Tickets.

Standardrollen

Eigentümer

Alles einschließlich Lizenz, Gefahrenzone und Installationsmanagement.

Vollständiger Admin

Alles außer Lizenz und Gefahrenzone. Kann das Team managen.

Agent

Reagieren Sie auf Tickets und Chats für zugewiesene Abteilungen, Anzeigenanalysen. Keine Einstellungen, Team- oder Sicherheitszugriffe.

Kann ich benutzerdefinierte Rollen erstellen?+

Drei eingebaute Rollen plus Abteilungszuweisung geben granulare Kontrolle.

Einstellungen

Gesperrt IPs

Verwalten Sie IP -Adressen, die vom Zugriff auf Ihre verfolgten Websites blockiert sind.

Gesperrt IPs
Gesperrt IPsDie blockierte-IPs Bildschirm: ein Block-an-IP/CIDR-Formular neben einer Tabelle für blockierte Adressen mit jedem Eintrag, Datum, Grund und einem Unblocking-Button.Gesperrt IPsArbeitsbereichBlockieren Sie ein IP /CIDR203.0.113.0/24Grund (fakultativ)BlockGesperrte Adressen203.0.113.9Jun 12 · BrutalitätEntsperrung45.12.0.0/16Ju 10 · SpamEntsperrung102.89.6.2Jun 9 · MissbrauchEntsperrung1BELOCKIP oder CIDR-Bereich2LISTWer & Wann, mit Grund3UNBLOCKEin Klick
Das echte Blockierte IPs Screen: Blockieren Sie einen Single IPoder einen CIDR-Bereich, und verwalten Sie die Liste mit Datum, Grund und einem Klick entsperren.

Wie man blockiert

1
Gehen Sie zu Sicherheit > Blockiert IPs

2
Fügen Sie einen IP oder CIDR-Bereich hinzu

Beispiel: 203.0.113.42 oder 203.0.113.0/24

3
Fügen Sie einen Grund hinzu

Dokumentieren Sie, warum: Spam, Missbrauch, Scraping usw.

Wird die Blockierung legitime Benutzer beeinflussen?+

Wenn Kunden ein Unternehmens-IP oder VPN teilen, blockieren Sie dieses IP und blockieren alle darauf.

Einstellungen

Fehlgeschlagene Logins

Alle erfolglosen Anmeldeversuche an Ihren OpsIQ -Admin.

Fehlgeschlagene Logins
Fehlgeschlagene LoginsDer Bildschirm mit fehlgeschlagenen Anmeldungen: eine Tabelle von Konten/IPs mit Fehlerzahlen, Zeit des letzten Versuchs und einer Blockschaltfläche pro Zeile.Fehlgeschlagene LoginsArbeitsbereichFehlgeschlagene Login-VersucheKONTENKONTEN / IPGEFAHRENLETZTEAKTION[email protected] · 41.62.10.47Vor 2mBlock[email protected] · 102.89.6.23Vor 18 m vorBlockunbekannt · 45.12.9.712Vor 26m vorBlock[email protected] · 88.21.4.921h agoBlock1WATCHFehlgeschlagene Login-Versuche2COUNTSPro Konto / IP3ACTBlock aus der Zeile
Der echte fehlgeschlagene Anmeldebildschirm: Jedes Konto /IP mit seiner Fehlerzahl und dem letzten Versuch, blockieren Sie eine Brute-Force-Quelle direkt aus der Zeile.

Was jeder Eintrag zeigt

Datum/Uhrzeit

Als der Versuch passierte.

E-Mail

Verwendete E-Mail-Adresse.

IP address

Quelle des Versuchs.

Land

Geographischer Standort.

Grund

Falsches Passwort, gesperrt oder nicht gefunden.

Warnzeichen

Viele Versuche, gleiche E-Mail

Kennwortraten. Stellen Sie sicher, dass 2FA aktiviert ist.

Viele Versuche, verschiedene E-Mails

Automatischer Angriff. Blockieren Sie die Quelle IP.

Ungewöhnliche Länder

Wenn Ihr Team lokal ist, sind ausländische Versuche wahrscheinlich Angriffe.

Einstellungen

AI Security Analyst

Eine Opt-in-Analystenschicht über den Sicherheitsseiten: Urteile, Incident Briefs, ein täglicher Digest, eine wöchentliche Haltungsprüfung, Ask Security und 0-token Blockpolicen. Es läuft nie im Besucheranforderungspfad.

Jede Sicherheitsseite zeichnet auf, was passiert ist, aber wenn man sie liest, braucht man immer noch Urteile. Der KI-Sicherheitsanalyst fügt dieses Urteil hinzu und es wurde so gebaut, dass er fast nichts ausgeben kann: Er sitzt nie im Leuchtfeuer oder Login-Pfad, deterministische Regeln regeln die offensichtlichen Fälle ohne AI-Aufruf, Urteile werden zwischengespeichert und der beste Output des Analysten ist eine deterministischen Regel, die dann für immer mit Null Token durchgesetzt wird. Funktionen einschalten in Einstellungen → Sicherheit; alle Standard-Aus.

Was es hinzufügt

Verdict Chips + Erklären

Blockiert IPs und fehlgeschlagene Logins-Zeilen zeigen einen gutartigen / verdächtigen / feindlichen Chip mit einem Konfidenzwert an. Erklären öffnet die Argumentation, die verwendeten Fakten und Ein-Klick-Block / Release-Aktionen. 24h, also noch einmal eine Überprüfung einer IPist frei.

Incident Briefs

Ähnliche Ereignisse gruppieren sich zu einem Vorfall (Login-Welle, URL Scan, Autoblock Burst) mit einer einfachen englischen Zeitleiste und einem empfohlenen nächsten Schritt.

Tägliche Verdauung

Eine Zusammenfassung pro Tag: Gestern im Vergleich zu Ihrer Basislinie, Blöcken, Vorfällen und der einzigen Sache. Ruhige Tage senden eine deterministische Entwarnung bei Null-Tokens.

Wöchentliche Haltungskontrolle

Eine Checkliste für die Montagshärtung (2FA-Lücken, Sperrschwelle im Vergleich zum realen Angriffsvolumen, Warnungen aus) mit Schweregrad, Aufwand und genauer Korrektur pro Element.

Fragen Sie nach Sicherheit

Ein Fragefeld in der Sicherheitsübersicht, das Antworten aus Ihrem Live-Sicherheitszustand gibt. Tiefe Serverfragen werden an den Admin Engineer Chat übergeben und nicht erraten.

Politikvorschläge + Autopilot

Der Analyst schlägt konkrete Blockregeln als Approve/Dismiss-Karten vor; genehmigte Regeln setzen sich mit einem Live-Hit-Zähler bei Null Token durch. Optionaler Autopilot genehmigt nur die sichersten Regeln automatisch.

Einstellungen

AI Security Analyst (security_ai_enabled)

Master Switch. Ermöglicht Urteilschips, erklären und fragen Sicherheit. Nur mehrdeutig IPs erreichen das Modell in einem Anruf.

Ereignisbeschreibung (security_ai_incidents)

Clustert Ereignisse in Vorfälle und schreibt jede neue Geschichte. Läuft auf dem vorhandenen stündlichen Sicherheits-Cron ab.

Täglicher Verdauungsvorgang (security_ai_digest)

Eine Sicherheits-Rekapitulation pro Tag auf der Glocke und dem Überblick. Ruhige Tage kosten nichts.

Wöchentliche Haltungskontrolle (security_ai_posture)

Montags-Härtungs-Checkliste in der Übersicht. Die Checkliste ist vollständig deterministisch.

Politik-Autopilot (security_ai_autopilot)

Lassen Sie den Analysten seine sichersten Vorschläge unbeaufsichtigt aktivieren: nur reversible zeitlich begrenzte Blöcke, Single IPs oder nicht breiter als /24, Nie geteilt / mobil / privat, gedeckelt 10 pro Stunde, immer auditiert und undoierbar.

💡
Jeder Anruf wird mit security_ai mit einer eigenen monatlichen Obergrenze in AI Config → Cost Guardrails (Standard 300k Token) versehen. Wenn die Obergrenze getroffen wird, degradieren Funktionen zu deterministischen Lesewerten. Blockierung, Sperrungen und Warnungen hängen nie von diesem Budget ab. Der Analyst kann niemals Daten löschen, Einstellungen ändern, das Audit-Ledger berühren oder ein dauerhaftes Verbot vornehmen.
Betrieb

Cron und Automatisierung

OpsIQ verwendet einen Produkt-Scheduler, um E-Mail-Abfragen, Ticketautomatisierung, Analyserollups, Aufbewahrung, KI-Warteschlangen, CRM-Arbeit, Berichte und Connector-Jobs auszuführen.

Produktbildschirm
Cron und AutomatisierungEin Produkt Cron Eintrag liefert den Herzschlag; OpsIQ entscheidet, welche internen Jobs fällig sind.Cron und AutomatisierungServerHERZBEIJede MinuteRUNNERcron/all.phpHEALTHEinstellungenLEBENDER ARBEITSPAZWERKUnified Product Runner (Deutscher Produkt-Runner)opsiq/cron/all.phpErforderlichTicket- und E-Mail-WarteschlangenKurzzeitarbeitAktivAnalyse und RetentionInterne TrittfrequenzGeplantTeilnehmer des AnschlussesAngegebene cron-EreignisseScope1INSTALL ONE LINEFühren Sie den Produkt-Scheduler jede Minute aus2CHECK CRON SETUPBestätigen Sie CLI Heartbeats3USE DIAGNOSTICSUntersuchung verspäteter oder gescheiterter Arbeit
Ein Produkt Cron Eintrag liefert den Herzschlag; OpsIQ entscheidet, welche internen Jobs fällig sind.

Erforderlicher Produkt Cron Eintrag

Fügen Sie diese einzelne Zeile zum crontab für denselben Server und dieselbe PHP-Umgebung hinzu, die OpsIQ ausführt:

OpsIQ Produkt-Kronenabdruck
* * * * * php /path/to/opsiq/opsiq/cron/all.php >> /tmp/opsiq-cron.log 2>&1

Ersetzen /path/to/opsiq Verwenden Sie den vollständigen PHP CLI-Pfad, wenn der Host einen benötigt, zum Beispiel /usr/bin/php8.4.

Verwenden Sie nicht die Top-Level /cron.php für Produktarbeit. In diesem Repository gehört dieser Läufer zu einem separaten Nicht-Produkt-Service außerhalb dieses Handbuchs. OpsIQ Product Runner ist opsiq/cron/all.php.

Was der Unified Scheduler antreibt

Ticket und AI Warteschlangen

Prozesse aufgrund von Auto-Antworten, Eskalationen, Genehmigungen und anderen in der Warteschlange stehenden Produktarbeiten.

E-Mail-Adresse

Umfragen konfigurierten Postfächer, in denen die Polling-Methode die gewählte Einnahmemethode ist.

Analytics und Sessions

Zusammenbauen von Sitzungen und Aktualisierungen geplanter Aggregate, wenn sie fällig sind.

CRM und Engagement

Führt Scoring-, Lifecycle-, Workflow-, Kampagnen- und Planberichtsaufgaben aus, die aktiviert sind.

Aufbewahrung und Instandhaltung

Führt Due Cleanup, Archivierung, Ablauf und Integritätsarbeit durch.

Connectoren

Dispatch Connector Cron Abonnenten und Polling nur für installierte, aktivierte und konfigurierte Konnektoren.

Vergewissern Sie sich, dass Cron

  1. Offen Einstellungen - Cron Setup und bestätigen, dass der Produkt-Läufer existiert.
  2. Verwendung Jetzt laufen einmal, dann bestätigen Sie die Admin und Polling Heartbeats Update.
  3. Überprüfung Diagnose für einen späten Herzschlag, PHP CLI, Datenbank oder Dateipfad Problem.
  4. Inspektion /tmp/opsiq-cron.log oder den Log-Pfad, den Sie ausgewählt haben, wenn ein manueller Durchlauf fehlschlägt.

Halten Sie die Steckverbinder kurz, idempotent und vom Arbeitsbereich aus betrachtet. Stapeln Sie lange Synchronisationen und speichern Sie einen Cursor/Checkpoint, damit der nächste Durchlauf sicher fortgesetzt werden kann.

🚫
Wenn der Produkt-Cron stoppt, wird die zeitbasierte OpsIQ -Arbeit gestoppt oder verspätet, obwohl gewöhnliche Adminseiten möglicherweise noch geladen werden.
Betrieb

Hosted Deployment Operations

Eine gehostete OpsIQ -Bereitstellung verwendet die gleichen Produktbildschirme und Workflows, während der Hosting-Betreiber die Serverschicht verwaltet. Kommerzielle Anmeldung, Pläne, Abrechnung und Kontoportalverfahren befinden sich außerhalb dieses Handbuchs.

Produktbildschirm
Hosted DeploymentDer gehostete Betrieb ändert sich, wer die Infrastruktur pflegt; er ändert nicht, wie Kunden OpsIQ verwenden.Hosted DeploymentArbeitsbereichPRODUCT UIGleiches OpsIQINFRASTRUCTUREBetreibergeführtWORKSPACE DATAIsoliertLEBENDER ARBEITSPAZWERKLaufzeit der AnwendungPHP, Webserver und DatenbankVerwaltetProdukt CronGeplant vom Hosting-BetreiberÜberprüfungBackups und UpdatesRichtlinie des Anbieters und NachweiseÜberprüfungOpsIQ EinstellungenSites, AI, Team und ConnectorsDein Team1OPERATE OPSIQ NORMALLYVerwenden Sie die gleiche Produktnavigation2VERIFY SERVICE HEALTHVerwenden Sie Diagnose und Statusnachweis3KNOW RESPONSIBILITYSeparate Produkteinstellungen von Hosting-Arbeit
Der gehostete Betrieb ändert sich, wer die Infrastruktur pflegt; er ändert nicht, wie Kunden OpsIQ verwenden.

Was der Hosting-Betreiber normalerweise verwaltet

  • Webserver, PHP Runtime, Datenbankdienst, TLS und Storage.
  • Der einheitliche Produkt-Cron und seine Server-Level-Logs.
  • Anwendungsupdates, Infrastrukturüberwachung und der durch die Hosting-Vereinbarung definierte Backup-Prozess.

Was ein OpsIQ -Administrator noch verwaltet

  • Websites und Widget-Installation, KI-Einstellungen, Wissen, Mailboxen und Kundensupport-Workflows.
  • Teamzugriff, Abteilungen, Sicherheitskontrollen, API -Schlüssel, Steckverbinder, Automatisierungen und Datenspeicherungseinstellungen.
  • Produktverifizierung durch Diagnose, das Auditprotokoll, Connector-Tests und echte End-to-End-Checks.

Betriebskontrollen

Gehen Sie nicht davon aus, dass ein Managed Service bedeutet, dass jede Produktintegration gesund ist. OpsIQ Diagnostik nach Änderungen DNS, E-Mail, KI-Anbieter, Websites oder Connectors.

Kommerzielle Onboarding-, Abonnements-, Abrechnungs- und Kundenkontoverwaltung bleiben außerhalb des OpsIQ Handbuchs.

Betrieb

Selbst-Hosting OpsIQ

Ein Self-Hosting OpsIQ Die Installation läuft auf der von Ihnen kontrollierten Infrastruktur. TLS, Product Cron, Backups, Updates und Monitoring.

Produktbildschirm
Selbst-HostingSelf-Hosting gibt Infrastrukturkontrolle und macht Ihr Team für jede operative Abhängigkeit verantwortlich.Selbst-HostingServerPHP8.4+DATABASEMySQL 5.7+SCHEDULERJede MinuteLEBENDER ARBEITSPAZWERKLaufzeitverlängerungencurl, pdo_mysql, mbstring, jsonErforderlichZusätzliche Verlängerungenxml, openssl, zip, intl, gdErforderlichDatenbankalternativeMariaDB 10.3+ mit InnoDBUnterstütztVerkehrHTTPS und Outbound Provider-ZugangÜberprüfung1PREPARE THE SERVERAnforderungen an die Match-Laufzeit2INSTALL AND CONFIGUREVerwenden Sie eine dedizierte Datenbank und HTTPS3ADD PRODUCT CRONLauf opsiq/cron/all. php
Self-Hosting gibt Infrastrukturkontrolle und macht Ihr Team für jede operative Abhängigkeit verantwortlich.

Mindestsoftwarevertrag

PHP

PHP 8.4 oder neuer: Erforderliche Erweiterungen: curl, pdo_mysql, mbstring; json, xml, openssl, zip, intl und gd.

Datenbank

MySQL 5.7+ oder MariaDB 10.3+ mit InnoDB. Erstellen Sie eine dedizierte Datenbank und einen am wenigsten privilegierten Anwendungsbenutzer.

Webserver

Apache oder Nginx konfiguriert für den OpsIQ Frontcontroller, statische Assets und erforderliche Umschreibungen.

HTTPS

Erforderlich für Admin-Sitzungen, Widget-Traffic, API Schlüssel, Webhooks und Provider-Aufrufe.

Ausländischer Zugang

Ermöglichen Sie DNS und HTTPS Zugriff auf die AI, E-Mail, Connector und Lizenzendpunkte, die Sie tatsächlich aktivieren.

Dateizugriff

Die Web- und CLI-Benutzer müssen in der Lage sein, Anwendungsdateien zu lesen und nur an die dokumentierten Laufzeit-/Speicherorte zu schreiben.

Cron

Führen Sie den OpsIQ Produkt-Scheduler jede Minute mit der gleichen Anwendungskonfiguration und Datenbankzugriff wie der Webprozess aus.

Installationssequenz

  1. Laden Sie die Freigabe auf den beabsichtigten Dokumentstamm hoch und bewahren Sie die mitgelieferte Verzeichnisstruktur bei.
  2. Erstellen Sie die Datenbank und den Anwendungsbenutzer, geben Sie dann die Datenbank, kanonische URL und Lizenzeinstellungen ein.
  3. Führen Sie den Installationsprogramm-/Setup-Flow aus und erstellen Sie das erste Besitzerkonto.
  4. Aktivieren Sie HTTPS und überprüfen Sie Umleitungen, Cookies und die öffentlichen Widget/API Pfade.
  5. Fügen Sie das einheitliche OpsIQ Produkt cron hinzu:
Selbstgehostetes Produkt cron
* * * * * php /path/to/opsiq/opsiq/cron/all.php >> /tmp/opsiq-cron.log 2>&1
  1. Einstellungen öffnen - Cron-Einrichtung und Diagnose; führen Sie den Scheduler einmal aus und lösen Sie jede fehlgeschlagene Abhängigkeit.
  2. Konfigurieren Sie Sicherungs-, Wiederherstellungstest-, Protokollspeicherungs- und Aktualisierungsverfahren, bevor Sie Produktionsdaten hinzufügen.

Sicheres Aktualisieren

  1. Lesen Sie die Release Notes und überprüfen Sie die erforderlichen PHP / Erweiterungen, bevor Sie Dateien ändern.
  2. Sichern Sie die Datenbank und Anwendungs- / Konfigurationsdateien, um dann zu beweisen, dass das Backup an einem Teststandort wiederhergestellt werden kann.
  3. Bereitstellen der neuen Dateien, ohne Installations-spezifische Konfiguration oder Laufzeitdaten zu löschen.
  4. Führen Sie den mitgelieferten Migrations- / Preflight-Prozess aus und überprüfen Sie Login, Widget-Tracking, Tickets, E-Mail, AI, Connectors und Cron.
  5. Halten Sie die vorherige Version und Datenbanksicherung für das dokumentierte Rollback-Fenster verfügbar.
🚫
Das Repository Top-Level /cron.php ist nicht die OpsIQ Product Scheduler: Punktproduktautomatisierung nur bei opsiq/cron/all.php.
⚠️
Löschen Sie. schema_cache.json nicht als routinemäßige Wartung, sondern nur dann, wenn die Produktanleitungen ausdrücklich einen Neuaufbau des Schema-Cache erfordern.
Betrieb

Produktionsleitfaden

Checkliste und Best Practices für den Betrieb von OpsIQ in Produktion.

Produktionsleitfaden
ProduktionsleitfadenEine Go-Live-Checkliste: benutzerdefinierte Domain und SSL, KI trainiert, Connectors und Cron, Backups und Retention sowie Teamrollen.Go-Live ChecklisteArbeitsbereichBevor du live gehstBenutzerdefinierte Domäne + SSL konfiguriertKI trainiert auf Ihre InhalteGeprüfte Steckverbinder · cron runningBackups geplant · Retention SetTeamrollen zugewiesen und überprüft1GO-LIVECheckliste vor dem Start2VERIFYDomain · SSL · Backups3CONFIDENTSchiff, wenn es grün ist
Eine Go-Live-Checkliste, damit nichts verpasst wird: Domain + SSL, trainierte KI, getestete Connectors und Cron, Backups und Retention sowie Teamrollen.

Bevor Sie live gehen

HTTPS konfiguriert

SSL installiert, HTTP-Weiterleitungen, HSTS aktiviert.

Cron-Laufen

Überprüfen Sie dies über Diagnoseseite.

AI getestet

Chatten Sie als Kunde. Überprüfen Sie Genauigkeit und Ton.

Widget installiert

Auf allen Webseiten. Verifizieren Sie sich mit Live Feed.

Backup konfiguriert

Automatisierte tägliche Datenbank- und Datei-Backups.

Fehlerprotokollierung

PHP-Fehlerprotokoll aktiviert und überwacht.

Team eingeladen

Alle Mitglieder haben Konten mit korrekten Rollen.

Wissensbasis bevölkert

Mindestens 5-10 Artikel.

Täglich: Dashboard überprüfen, Ticketwarteschlange löschen, KI-Gespräche vor Ort prüfen.

Wöchentlich: AI Insights überprüfen, KB aktualisieren, Teamleistung prüfen, Sicherheit überprüfen.

Monatlich: Analysetrends überprüfen, Konnektoren prüfen, KI-Schulungen aktualisieren, Backups verifizieren.

Betrieb

Checkliste vor dem Start

Führen Sie die Source-Gates aus und führen Sie echte Produktprüfungen vor einem Release oder dem ersten Produktionsstart durch.

Produktbildschirm
FreigabeprüfungDie Release-Ansicht zeigt die erforderlichen Tore, um zu laufen; sie wird nicht vorbeschriftet als übergeben.FreigabeprüfungServerRUHRZEITPHP 8.4SOURCE GATESLokalOUTCOMEEvidenzbasiertLEBENDER ARBEITSPAZWERKErforderliche ErweiterungenÜberprüfen Sie vor der SuiteTorPHP Syntax SweepAlle Projekt-PHP-DateienTorAI-Evaluierung und PHPUnitFühren Sie aus, wenn Abhängigkeiten vorhanden sindTorStatische und Browser-ChecksAusführen bei KonfigurationTor1RUN THE CHECKSErfassung des tatsächlichen Outputs2FIX EVERY REQUIRED FAILUREErsetzen Sie keine Beweise durch Annahmen3TEST THE PRODUCTÜberprüfen Sie die realen User Journeys
Die Release-Ansicht zeigt die erforderlichen Tore, um zu laufen; sie wird nicht vorbeschriftet als übergeben.

Source- und Releasegates

Führen Sie die Repository-Checks von der Installationswurzel aus und behalten Sie ihre vollständige Ausgabe mit dem Release-Record.

Primäre Flugsteigtür
php tools/preflight.php
Erweitertes Release Gate
php tools/release_gate.php

Der Preflight überprüft die Laufzeit von PHP 8.4 und benötigte Erweiterungen, führt einen PHP-Syntax-Sweep durch, führt das AI-Evaluation Ship Gate und die vollständige PHPUnit Suite aus und führt PHPStan/Node-Prüfungen aus, wenn diese Tools installiert sind. Das erweiterte Gate enthält auch Raucher-, Clean-Installations- / Schema- und Browser-End-to-Ende-Prüfung, wenn ihre Umgebung konfiguriert ist.

Eine übersprungene Überprüfung ist kein Pass. Notieren Sie, warum sie nicht verfügbar war, installieren Sie die fehlende Abhängigkeit oder führen Sie sie vor der Veröffentlichung in der richtigen CI / Standing-Umgebung aus.

Produktprüfungen

1. Authentifizierung und Rollen

Melden Sie sich als jede beabsichtigte Rolle an; Überprüfen Sie erlaubte und verweigerte Seiten / Aktionen.

2Widget und Tracking

Laden Sie eine echte Website in einem privaten Browser; überprüfen Sie den Beacon-Datenverkehr, Live Feed, Besucher- und Sitzungsaufzeichnungen.

3Chat und AI

Stellen Sie repräsentative Fragen; überprüfen Sie Wissensgrundlage, Sicherheit, Eskalation und KI-Geschichte.

4Tickets

Erstellen, Zuweisen, Antworten, Eskalieren, Schließen und Wiedereröffnen durch jeden aktivierten Einlasspfad.

5. E-Mail

Testen Sie die ausgehende Zustellung und jeden konfigurierten eingehenden Postfach- oder Webhookpfad.

6. CRM und Analytics

Erstellen Sie einen kontrollierten Kontakt / Deal / Konvertierung und überprüfen Sie Dashboards, Trichter, Scoring und Berichte.

7. Steckverbinder

Verbindungstests, ein Lese-, ein sicherer Schreib-/Trockenlauf und Webhook-/Polilingpfade für jeden aktivierten Stecker.

8. API und Webhooks

Überprüfen Sie enge Bereiche, Tarifgrenzen, idempotente Wiederholungen, Unterschriften und doppelte Handhabung.

9Cron

Führen Sie den einheitlichen Produkt-Scheduler aus und bestätigen Sie alle erforderlichen Herzschläge in Cron Setup / Diagnose.

10 Sicherheit

Überprüfen Sie 2FA, CSRF / Session-Kontrollen, Auditeinträge, Schlüsselentzug und Arbeitsplatzisolierung.

11. Backup und Wiederherstellung

Stellen Sie ein aktuelles Backup in einer separaten Testumgebung wieder her und überprüfen Sie Daten und Konfiguration.

12 Beobachtbarkeit und Rollback

Bestätigen Sie Logs/Alerts, bewahren Sie die Request-IDs auf und belegen Sie das Rollback-Verfahren.

⚠️
Deploy nur nach jeder erforderlichen Gate- und Business-kritischen Reise hat aktuelle Beweise für die genaue Freigabe und Umgebung.
Entwickler

Web Push auf Websites von Drittanbietern

Browser-Push-Benachrichtigungen (einschließlich)OpsIQ Push-Kampagnen) benötigen einen Servicemitarbeiter, der von dem gleichen Ursprung wie die Seite bedient wird.OpsIQ Widget-Ladungen von Ihrem OpsIQ Bereitstellung, so dass sich eine Website eines Drittanbieters nicht registrieren kann OpsIQ Die Mitarbeiter direkt. Hosten Sie eine kleine Datei auf der eigenen Domain der Website, um dort Push zu ermöglichen. Kampagnen werden über beide unterstützte Methoden bereitgestellt.

Wie es funktioniert
Web PushEine Push-Benachrichtigung im OS-Stil über zwei Karten der Zustellmethode: Built-in VAPID und Pusher Beams.Dein LadenIhr Warenkorb wartet · 10% heute ausJetztEingebaut (VAPID)Keine DrittparteiHosten einer DateiPusher-BalkenVerwenden Sie Ihr KontoGastwirt des Arbeitnehmers
Web Push

Warum das nötig ist

Browser lassen nur eine Seite einen Service Worker von seinem eigenen Ursprung registrieren.OpsIQ Bereitstellung, so dass es den Push-Worker nicht auf einer Kundenseite installieren kann, bis Sie den Worker auf dem Ursprung dieser Website hosten, überspringt das Widget stillschweigend Push (kein Fehler, kein Abonnement).OpsIQ Push-Kampagnen veröffentlichen durch beide.

Option A · Selbst gehosteter Web-Push (VAPID, kein Dritter)

1. Laden Sie den Worker von Ihrem OpsIQ Deployment herunter: https://YOUR-OPSIQ/opsiq/opsiq-push-sw.js

2. Laden Sie es auf Ihre Webroot So ist es erreichbar an https://yoursite.com/opsiq-push-sw.jsDas Widget Auto-Erkennt diesen Pfad auf dem eigenen Ursprung der Seite und registriert sie, keine Änderung des Snippets erforderlich. (Es verwendet einen engen Umfang, so dass es niemals einen Servicemitarbeiter ersetzt, den Sie bereits ausführen.)

Fakultativ: Wenn Sie es auf einem nicht standardmäßigen Pfad hosten müssen, richten Sie das Widget darauf vor Snippet: Es wird nur akzeptiert, wenn derselbe Ursprung

Optional · nur wenn sich die Datei NICHT am Webroot befindet
<script>window.OpsIQ=window.OpsIQ||{};window.OpsIQ.pushSwUrl="/custom/opsiq-push-sw.js";</script>

3. Generieren Sie in OpsIQ VAPID-Schlüssel (Einstellungen → Client Chat AI → Erweitert → Web Push). Das Widget fragt dann die Besucher nach der Benachrichtigung und abonniert sie.

Hinter einem CDN/Cloudflare? /opsiq-push-sw.js zurück zu HTTP 200 (Löschen Sie den Cache, wenn es war)404 bevor Sie hochgeladen haben; ein Cached 404 wird die Registrierung blockieren.

Option B · Pusher Beams (verwalteter Anbieter)

1. In OpsIQ Einstellungen setzen Sie den Push-Provider auf Pusher-Balken und betrete deine Strahlen Kennung des Instancers und Geheimschlüssel.

2. Hosten Sie den Beams-Servicemitarbeiter auf dem Root der Website als /service-worker.jsKopie https://YOUR-OPSIQ/opsiq/pusher-beams-service-worker.jsoder diese Zeile in Ihren bestehenden Root-Worker einfügen:

Beams worker, host bei https://yoursite.com/service-worker.js
importScripts("https://js.pusher.com/beams/service-worker.js");

3. Das Widget lädt die Beams automatisch SDK und abonniert jeden Besucher für das Interesse pro Site opsiq-site-<your-site-key>. Keine andere Verkabelung erforderlich.

Wie Kampagnen liefern

Push-Kampagnen veröffentlichen durch both Methoden auf einmal: Besucher des selbst gehosteten VAPID-Mitarbeiters erhalten den verschlüsselten Web Push, und Besucher, die über Pusher Beams abonniert sind, erhalten die Beam-Veröffentlichung. Jeder Besucher wird durch dasjenige erreicht, was er abonnet hat, so dass Sie VAPid mit gleichem Ursprung auf einigen Websites ausführen können und Beam mit Cross-Origin auf anderen.

HTTPS ist erforderlich Für Service-Mitarbeiter und Web Push (localhost ist für Tests ausgenommen) verwendet der Admin-Chat-Posteingang bereits den gleichen Beams-Interessemechanismus für Bedienerbenachrichtigungen.

Betrieb

Fehlerbehebung

Gemeinsame Probleme und wie man sie beheben kann.

Generalgeneral

Leerseite+

PHP-Fehlerprotokolle überprüfen. Ursachen: altes PHP (brauchen 8.4+), fehlende Erweiterung, DB-Verbindung fehlgeschlagen, falsche Dateiberechtigungen.

Dashboard zeigt Nullen+

Check: Widget installiert? Cron läuft? Datumsbereich korrekt? IP ausgeschlossen?

A

AI reagiert nicht+

Check: Provider konfiguriert? API Key gültig (Testverbindung verwenden)? Budget erschöpft? Workspace AI config korrekt?

KI gibt falsche Antworten+

Check: Wissensbasis auf dem neuesten Stand? Sofort klar? Steckverbinder-Lookups, die korrekte Daten zurückgeben? Gespräch in AI History überprüfen.

AI ist langsam+

Hängt ab von: Provider API Geschwindigkeit, Kontextgröße (große KB = mehr Token = langsamer), Netzwerklatenz.

Tracking

Widget fehlt+

Check: Skript in der Seitenquelle? JS-Fehler in der Konsole? CSP-Blockierung? Werbeblocker?

Unbekanntes Land+

GeoIP nicht konfiguriert: Verwenden Sie Cloudflare (automatisch) oder die MaxMind GeoLite2-Datenbank.

Tickets

E-Mails, die keine Tickets erstellen+

Check: Mailbox verbunden? Cron läuft? App Passwort geändert? IMAP Einstellungen korrekt?

Auto-Reply funktioniert nicht+

Check: aktiviert? Abteilung erlaubt? AI konfiguriert? Cron läuft? Mensch hat zuerst geantwortet?

Connectoren

Verbindung fehlgeschlagen+

Prüfen Sie: Anmeldeinformationen korrekt? Schlüssel abgelaufen? API vom Server aus erreichbar? URL Richtig?

Vernetzt, aber keine Daten+

Check: API Key Scopes? Webhook-Synchronisierung aktiviert? Cron läuft?

Leistung

Langsame Seiten+

Check: Datenbankleistung (SHOW PROCESSLIST), PHP-Speicher (erhöhen auf 1GB), Opcache aktivieren, Speicherdauer reduzieren.

Betrieb

Widget protokolliert keine Besuche

Verwenden Sie diese fokussierte Überprüfung, wenn das Widget falsch geladen wird oder der Live-Feed leer bleibt.

Wann die Widget protokolliert keine Besuche, überprüfen Sie den Site-Schlüssel, laden Sie die Seite in einen privaten Browser, überprüfen die Netzwerk-/Konsolenfelder des Browsers auf blockierte Beacon- oder Widget-Anforderungen, überprüfen Inhaltssicherheitsrichtlinien und Werbeblocker, bestätigen Sie, dass die Website in OpsIQ aktiv ist, und öffnen Sie Diagnose. Eine sichtbare Chatblase beweist nicht von selbst, dass das Analyse-Beacon akzeptiert wurde.

Bezugsnummer

Glossar

Definitionen für Begriffe, die in OpsIQ verwendet werden.

Aktion

Etwas, das die KI über einen Connector oder die Plattform tun kann.

Agent

Ein Teammitglied mit eingeschränktem Zugriff oder ein KI-Agent.

BYOK

Bringen Sie Ihren eigenen Schlüssel, stellen Sie Ihre eigene AI API -Schlüssel.

Steckverbinder

Ein Plugin, das eine externe Plattform mit OpsIQ integriert.

CSAT

Customer Satisfaction Score.

Deal

Eine Umsatzmöglichkeit im CRM.

Abteilung

Eine Ticketkategorie für Routing und Zugangskontrolle.

Eskalation

Ein Ticket in eine andere Abteilung oder von AI zum Menschen zu bewegen.

GeoIP

Besucherorterkennung von IP Adresse.

Ablösung

Übertragung eines Gesprächs von AI auf den Menschen.

Kennzeichen

Signiertes Token zur Identifizierung eines Website-Besuchers.

Wissensbasis

Artikel, die von der KI verwendet werden, um Fragen zu beantworten.

Blei

Ein Besucher, der Kaufabsicht zeigt.

Lead-Score

0-100 Nummer zur Angabe der Umwandlungswahrscheinlichkeit.

Lebenszyklusphase

Wo ein Kunde ist: Lead, Prospect, Customer, At Risk, Churned.

Managed AI

AI wird als Teil Ihres OpsIQ -Plans bereitgestellt.

Pipeline

Visual Board of Deal-Phasen.

RBAC

Rollenbasierte Zugriffskontrolle.

Sitzung

Eine Reihe von Seitenaufrufen innerhalb eines Timeout-Fensters.

Standortschlüssel

Eindeutige Kennung für eine verfolgte Website.

SLA

Service Level Agreement, Ziel-Responsezeiten.

Token

Einheit des AI-Textes. 4 Zeichen = 1 Token.

Vertrauensschicht

Sicherheitssystem zur Steuerung der KI-Autonomie.

Webhook

HTTP Callback für Event-Benachrichtigungen.

Widget

JavaScript Code auf Ihrer Website eingebettet.

Arbeitsbereich

Eine Website mit eigenem Tracking, KI, Connectoren und Team.

Bezugsnummer

Mehr Hilfe bekommen

Wenn diese Dokumentation Ihre Frage nicht beantwortet:

Admin

Klicken Sie im Administrator auf "Ask OpsIQ". Hat Zugriff auf diese Dokumentation und Ihre Plattformdaten.

Supportticket

Fügen Sie hinzu: was Sie versucht haben, was passiert ist, was Sie erwartet haben und Fehlermeldungen.

E-Mail

E-Mail-Unterstützung mit Ihrem Lizenzschlüssel und Problembeschreibung.

Tipps für effektive Supportanfragen

Fügen Sie die Seite hinzu

Welche Admin-Seite (URL oder Name).

Fügen Sie die Einstellung hinzu

Genaues Festlegen von Name und aktuellem Wert.

Einschließlich des Fehlers

Genaue Fehlermeldung mit Codes.

Fügen Sie die Schritte

Was du getan hast, Schritt für Schritt.

Erwartete vs. tatsächliche

Was sollte passieren, vs. was passiert ist.

💡
Je konkreter Ihre Anfrage ist, desto schneller wird die Antwort. "Es funktioniert nicht" erfordert eine Untersuchung. "Auf AI-Konfiguration speichern gibt Fehlercode 502" erhält eine direkte Antwort.