OpsIQ Dokumentation

Byg, operér og udvide OpsIQ.

Dette er den fuldstændige dokumentation for OpsIQ. Opsætning af produktet, køre support, konfigurere AI, administrere CRM, installere widget, bygge stik, ringe til REST API, modtage webkroge, pakke markedsplads apps, og operere selv-hostede installationer.

KundeguideAdmin- guideUdvikler guideCRM-referenceForbinder SDKREST APISelvhosted
Anvendelsesområde

Denne håndbog indeholder en oversigt over de vigtigste emner i denne håndbog.

Alt OpsIQ gør, på ét sted: hvordan hver skærm virker, hvordan du forbinder dine egne systemer, og hvordan man bygger oven på det. Start hvor som helst, de sektioner følger samme rækkefølge som admin sidebar.

Anvendelsesområde
DokumentationskortHåndbogen er organiseret omkring OpsIQ produkt, efter samme rækkefølge som admin sidebar.DokumentationskortOpsIQ produktAUDIENCEOperatørerOPBYGNINGUdviklereRUNAdministratorerSYGDOM AF LIVE ARBEJDSPLADSERBrug OpsIQProduktskærme og -arbejdsgangeInkluderetUdvid OpsIQForbindere, APIs og widgetInkluderetOperér OpsIQSikkerhed, kryn og deployeringInkluderetHenvisningPakke, API og webhook kontrakterInkluderet1CHOOSE AUDIENCEOperatør eller udvikler2FOLLOW THE UIAfsnitspejl OpsIQ3USE SOURCE TRUTHStatus kommer fra bygge
Håndbogen er organiseret omkring OpsIQ produkt, efter samme rækkefølge som admin sidebar.
Portal Studio-feltguide

Brug den dedikerede administrator og udvikler guide til Portal arkitektur, sider, komponenter, preview, Hjælp Center, identitet, SCIM, regulerede udgivelser, udvidelser, migreringer og certificering.

Åbn vejledningen Portal Studio

Hvad er der herinde?

Kør produktet

Hver skærm i admin: analytics, live chat, billetter, CRM, videnbase, Site Intelligence, kampagner og kunde portal. Hvad hver side gør, hvad tallene betyder, og hvad de skal gøre, når de ser forkert.

Tilslut dine systemer

Websidens widget, e-mail postkasser, indgående og udgående webkroge, og connecter bibliotek til platforme som Shopify, WooCommerce, WHMCS, Zendesk, Stripe, Slack og Gmail.

Byg din egen

Connector Builder til no- code-stik, Handlinger & Triggers hvis du helst ikke vil bruge konnektorer overhovedet, og REST API med hver handling, omfang og fejlkode.

Betjener det

Roller og tilladelser, sikkerhed, cron, diagnostik, sikkerhedskopier, og både hosted og self-hosted implementering.

Hvor skal vi begynde?

1
Hvis du kører OpsIQ dag til dag

Læs skærmsnittene i sidebjælken. Hver åbner med hvad siden er til, så du kan stoppe, så snart du har det du har brug for.

2
Hvis De anvender

Tilføj Indstillinger, Sikkerhed, Diagnostik, Cron og Produktion. Dette er de sektioner, der bestemmer om alt andet fortsætter med at virke.

3
Hvis du er ved at opbygge en integration

Start ved Connectors, derefter Connector Builder, så REST API og webkroge. Læs dem i rækkefølge, og du vil have set alle måder OpsIQ kan tale med et andet system.

💡
To ting ændrer det du ser. Tilladelse til at skjule sider din rolle kan ikke åbne, så et afsnit beskrevet her kan være mangler fra din sidebar. Bed en administrator om at kontrollere din rolle. Og stik bærer en modenhed etiket af produktion, Beta, Preview eller skabelon; den kørende build og dens konnektor manifestation er den myndighed, som en du har, ikke denne side.
Start her

Hvad OpsIQ gør for din virksomhed

OpsIQ er en komplet AI- første business operationsplatform. Den erstatter din analytics, live chat, helpdesk, CRM, SEO toolkit, integration middleware og udvikler platform med en enkelt samlet admin, hvor hvert værktøj deler den samme kundesammenhæng. 8-12 separate SaaS-produkter, du installerer OpsIQ én gang og operere alt fra en skærm.

Platformen
OpsIQ samlet platformEn central AI-hjerne forbundet til live chat, CRM, billetter, Site Intelligence, kampagner og analytics.Live chat med supportForfremmelserAI CRMWebsted IntelBilletterAnalyseOpsIQAI HJERNE1ONE WORKSPACEHvert værktøj i én admin2SHARED BRAINEn kundesammenhæng3ANYWHERECloud eller selvhostet
OpsIQ er en platform med én fælles kundekontekst, hver værktøj feeds, og er drevet af, den samme AI-hjerne.

Alt OpsIQ gør · i detaljer

Website analytics og besøgende intelligens

Real- time besøgssporing

Hver side belastning, klik, rulle og navigation begivenhed er fanget i realtid. Se hvem der er på dit websted lige nu, hvilke sider de ser, hvor længe de bruger, og hvor de kom fra, alle uden tredjeparts cookies.

Besøgslog og sessioner

Fuld historie om hver besøgende med enhed, browser, operativsystem, land, by, referrer, UTM parametre, landing side, og identitet opløsning. Sessions gruppe sidevisninger i rejser, så du kan se hele stien en besøgende tager.

Session replay

Tidslinje-stil afspilning af fangede besøgende sessioner. Se præcis, hvad brugerne gjorde: musemoduler, klik, ruller, side overgange, og danne interaktioner. Brug det til at diagnosticere UX spørgsmål, forstå drop- off punkter, og kontrollere konverteringsstrømme.

Levende foder

En real- time strøm af besøgende aktivitet som det sker. Se sidevisninger, chat starter, form indlæg, og intentsignaler opdateres hvert par sekunder. Filter efter land, enhed eller referrer til at fokusere på specifikke trafiksegmenter.

Top sider

Sider rangeret efter besøg, engagement tid, bounce rate, konverteringer og støtte aktivitet. Identificer din højeste-performance indhold og sider, der har brug for forbedring.

Geo intelligens

Land, by og region opdelinger med kort. Enhed og browser distribution, trafik kilde analyse, søgemaskine refrerer tracking, og markedsindtrængning indsigt.

Intenttragt

Spor besøgende intention signaler (prissætning side besøg, gentagne afkast, dokumentation browsing mønstre, og støtte interaktioner) til at identificere besøgende, der er tilbøjelige til at købe, churn, eller har brug for hjælp.

A / B-forsøg

Kør split tests på din hjemmeside direkte fra OpsIQ. Opret varianter, sæt trafikfordeling, definere konverteringsmål og måle statistisk betydning.

JavaScript fejlsporing

Capture client- side JavaScript fejl fra din hjemmeside automatisk. Se fejlmeddelelser, stack spor, berørte browsere, frekvenstal, og hvilke sider udløser dem. Fejlhåndtering problemer uden separat fejlovervågning.

Begivenheder log

Hver tracked event (sidevisninger, brugerdefinerede begivenheder, chatinteraktioner, formularindlæg, køb) i en søgbar, filtrerbar log med fuld metadata.

Salg og ombygninger

Spor ordrer, indtægter, tilbagebetaling, abonnement fornyelser, og tilskrive konverteringer til trafik kilder, kampagner, og besøgende rejser. Indtægtsdashboards med periode sammenligning og trend analyse.

Blade

Højtintense besøgende identificeret af adfærdsmønstre. Score fører baseret på sidebesøg, tid på stedet, returfrekvens, support interaktioner, og brugerdefinerede signaler. Feed fører direkte ind i CRM rørledningen.

Efterretninger for lokaliteten (SEO og indholdsanalyse)

Krabber på byggepladsen

Automatiseret kravle af hele din hjemmeside for at opdage sider, opdage brudte links, finde manglende meta tags, kontrollere billede alt tekst, validere kanonical URLs, og kort dit websted struktur. Skema kravler til at køre dagligt, ugentligt eller på forespørgsel.

Teknisk SEO-revision

Omfattende teknisk analyse: Sidehastighedsscore, mobil reaktionsevne, Core Web Vitals, SSL certifikat status, omdirigerer kæder, duplikeret indhold detektering, kravl dybde analyse, og struktureret datavalidering.

Indhold revision

Evaluere hver side for indhold kvalitet, ordtal, læsbarhed score, nøgleord tæthed, overskrift struktur, intern / ekstern link ratio, og friskhed. Identificer tyndt indhold, duplikerede sider, og indhold huller.

AI- drevet søgning

Semantisk søgning på tværs af hele dit websted indhold. Spørg naturligt sprog spørgsmål om dit indhold og få AI- syntetiserede svar med kildesiden referencer.

SERP-rangsporing

Overvåg dine søgemaskiners placering efter målsøgeord på tværs af Google og andre motorer. Spor position ændres over tid, sammenligne med konkurrenterne, og se hvilke sider rangerer for hvilke vilkår.

Nøgleordsforskning

Oplev søgeord muligheder baseret på dit indhold, konkurrent analyse og søge volumen data. Få forslag til nye indhold emner, langhalevariationer, og indhold optimering mål.

Backlink-analyse

Se hvilke websteder der linker til dig, spore nye og mistede links, analysere ankertekstdistribution og identificere link-building muligheder.

Lokal SEO-net

For virksomheder med fysiske steder: visualisere din lokale søgningssynlighed på tværs af et geografisk gitter. Se hvordan dine placeringer varierer efter placering, afstand fra din virksomhed og søge hensigt.

Google Business Profile-synkronisering

Tilslut din Google Business Profile til OpsIQ. Synkronisér anmeldelser, indlæg, Q & A, fotos og forretningsoplysninger. Administrer din GBP-notering indefra OpsIQ. Svar på anmeldelser, udgive indlæg og overvåge indsigter.

Planlagte rapporter

Automatiseret SEO og analytics rapporter genereret på din tidsplan (dagligt, ugentligt, månedligt). Rapporter omfatter ranking ændringer, trafik tendenser, tekniske problemer fundet, og indhold ydeevne. White- label output til rådighed for agenturer.

AI- drevet support

KundeAI chat

AI besvarer kundespørgsmål på din hjemmeside 24/7 ved hjælp af din viden base, tilsluttede platform data (ordrer, konti, abonnementer), og brugerdefinerede uddannelse prompts. Understøtter flere AI-udbydere: Claude (Anthropic), GPT- 4o (OpenAI), Gemini (Google), og Grok (xAI).

Admin AI assistent

En AI copilot inde i din admin panel, der hjælper dig med at skrive billet svar, udkast kundekommunikation, analysere support tendenser, slå kundedata op på tværs af tilsluttede platforme, og udføre handlinger gennem stikkontakt system.

AI viden jording

AI er baseret på dine videnbaserede artikler, FAQ-indgange, produktdokumentation og tilsluttede platformdata. Det hallucinerer ikke. Det svarer fra din faktiske forretningsinformation eller eskalerer når usikre.

Auto- overgivelse til mennesker

Når AI 'en ikke kan løse et spørgsmål, opdager frustration, eller kunden beder om et menneske, det automatisk afleverer til dit team med fuld samtale kontekst. Konfigurativ tilbagegang / timeout auto-vende tilbage til AI.

AI træningsprompter

Skriv separate instruktion prompts for customer-face AI og admin- facting AI. Control tone, grænser, eskalering regler, forbudte emner, og business-specifik adfærd. Per- workspace konfiguration understøttet.

AI historie og revision

Hver AI samtale er logget med fuld anmodning / svar detaljer, token brug, omkostningssporing, udbyder brugt, og model version. Gennemgå samtaler til at identificere uddannelseshuller og forbedre AI nøjagtighed.

AI-indsigt

Automatisk analyse af AI samtale mønstre. Se fælles spørgsmål, afviklingsrater, aflevering frekvens, kundetilfredshed efter emne, og områder, hvor AI har brug for bedre uddannelse.

Per- workspace AI config

Hver tilsluttet site / arbejdsplads kan bruge sin egen AI-udbyder, model, temperatur, token budget, og uddannelse prompts. En SaaS virksomhed kan bruge Claude for det vigtigste produkt og GPT- 4o for et sekundært mærke.

Administreret AI og BYOK

To AI tilstande: Administreret AI (inkluderet i din plan, nej API nøgle nødvendig) eller medbring din egen nøgle (brug din egen OpenAI/Anthropic/ Google / xAI API nøgle til fuld kontrol over modelvalg og omkostninger). Begge er førsteklasse, hver funktion fungerer med begge tilstande.

AI token budgets and cost controls

Sæt månedlige token budgetter, per-samtale grænser, og lav-balance advarsler. Spor udgifter pr udbyder, pr. arbejdsområde, og pr samtale. Forebyg runaway omkostninger med hårde lofter.

Billetter og helpdesk

Indfødt billetsystem

Fuld helpdesk med afdelinger, prioriteter (lav / medium / høj / presserende), statusser, SLA tracking, interne noter, kundesvar, fil vedhæftede filer og gevindsamtaler.

AI-prøve og automatisk svar

AI automatisk uddeler indgående billetter efter afdeling og prioritet. Aktivér auto- svar for sikre afdelinger. AI-udkast og sender et svar efter en konfigurerbar forsinkelse (standard: 2 minutter), så mennesker kan gribe ind først.

Email-indtagelse

Tilslut en postkasse (Gmail, IMAP eller provider- specifikke) til automatisk at oprette billetter fra indgående e-mails. Svar på billettelefoner opdaterer billettråden.

Billetportal med

Indlejret en customer-vender billet portal på din hjemmeside. Kunderne kan indsende billetter, se deres historie, svare på åbne billetter, og kontrollere status, alle mærkevarer til dit design.

Billetsammenfletning

Sammenfletning af billetter i en enkelt tråd. Sammenflettede billetter viser [Merged] på emnelinjen. Al samtale historie er bevaret i den overlevende billet.

Retur til AI

Efter en menneskelig agent overtager en billet, skal du bruge "Return to AI" til at lade AI genoptage automatisk-svar på denne billet. Nyttigt når den human- nødvendige del er løst, men kunden har opfølgning spørgsmål AI kan håndtere.

Indbakke-copilot

AI- assisteret billethåndtering fra indbakke visning. Copilot foreslår svar, opsummerer samtale historie, anbefaler prioritet / afdeling opgaver, og kan udføre handlinger på tilsluttede platforme.

Chat og realtidsstøtte

Chat indbakke

Real- time kunde chat lykkedes fra en samlet indbakke. Se alle aktive samtaler, kundenidentitet, samtale historie, og AI forslag. Flere agenter kan samarbejde om en samtale.

Proaktive chatregler

Trigger chat-beskeder baseret på besøgsadfærd: tid på side, specifik URL Besøgte, skriftdybde, returantal, exit intention eller brugerdefinerede begivenheder. Eksempel: Vis en help- besked efter 60 sekunder på prissiden.

Chat-widget

En brugervenlig chat widget indlejret på din hjemmeside. Understøtter AI chat, live agent chat, billet indsendelse, viden base søgning, og besøgende identitet. Responsive, tilgængelig, og brandbar.

CSAT-undersøgelser

Indsamle kundetilfredshed ratings efter chat og billet interaktioner. Design undersøgelser med dine egne spørgsmål, vurdering skalaer, og opfølgning prompts. Resultater feed i team ydeevne og AI indsigt.

Postchat-e-mail-undersøgelse

Efter en chat slutter, kan besøgende med en kendt e-mail modtage en mærkevare mail med et AI resumé af hvad der blev håndteret og et enkelt klik "Var det nemt?" Ja / Nej. En gang pr. tråd, signeret singleuse links, hver send logget, og resultatet lander på Feedback side som sit eget signal ved siden af in-chat stjerner.

Feedback identitetsløkke

Hver feedback element, der bærer en person viser dem: navn, e-mail, et klik-gennem til deres fulde kunde rejse og CRM kontakt, og one-click e-mails eller AI- udkast svar baseret på deres faktiske historie.

Skrivning af AI

Separat AI skriftligt assistent for at komponere e-mail udkast, billet svar, meddelelser og kundekommunikation. Bruger sin egen prompt (ikke chat hjerne) til professionel virksomhed skrivning.

AI- Første CRM

CRM-kommandocenter

En enkelt skærm, der viser hele din CRM-tilstand: rørlednings værdi, dealhastighed, kommende opgaver, at- risk tilbud, agent aktivitet og AI anbefalinger. CRM startsiden er dit daglige udgangspunkt.

Kontakter og virksomheder

Administrer kundekontakter med fulde profiler: navn, e-mail, telefon, virksomhed, tags, livscyklusscenen, samtale historie, billet historie, køb historie og brugerdefinerede felter. Link kontakter til virksomheder for B2B forhold management.

Deals og rørledninger

Visual Kanban- stil dealboard med brugerdefinerede stadier. Træk handler mellem faser, sæt værdier, tildele ejere, spore tætte datoer, og se rørledningen værdi på hvert trin. Flere rørledninger understøttes.

AI-aftalecoaching

AI analyserer hver aftale og giver coaching: risikosignaler (gik stille, konkurrent nævnt, budget bekymringer), nextbest- handling anbefalinger, vinde sandsynlighed, og foreslået opfølgning timing.

Prognose og rapporter

Indtægtsprognoser baseret på rørlednings data, historiske tætte rater og dealhastighed. Rapporter omfatter rørledning efter trin, efter ejer, efter kilde, omregningskurser, gennemsnitlig deal størrelse, og salgscyklus længde.

Prospektører (SDR)

AI- drevet prospektering, der identificerer potentielle kunder fra dine besøgende data, blysignaler og tilsluttet platform aktivitet. Foreslår outreach mål, udkast indledende meddelelser, og scorer bly kvalitet.

Opfølgningssekvenser

Automatiseret multi- step opfølgning sekvenser: e-mail, vent, e-post, tjek svar, eskalere. Definer sekvenser for nye ledninger, stagnerede tilbud, efter-køb checkins, og re- engagement kampagner.

Livscyklus og retention

Spor kundens livscyklusstadier (bly, perspektiv, kunde, churned) med automatiserede overgange. Tilbageholdelsesmidlet overvåger for churn signaler og foreslår indgreb.

Datastyringsagent

AI agent, der løbende renser og beriger dine CRM-data: duplikerer kontakter, udfylder manglende felter, validerer e-mails, standardiserer firmanavne og flaglister.

Byg min CRM

Naturligt sprog CRM konfiguration: fortælle AI, hvordan din salgsproces ser ud, og det bygger din rørledning faser, brugerdefinerede felter, deal skabeloner, og automatisering regler.

CRM-sundhedskontrol

Automatisk revision af din CRM-datakvalitet: duplikering af kontakter, tilbud uden næste trin, gamle rørledninger, manglende kontaktoplysninger og datagrunding.

Trust Dial

Trusselsniveau autonomi kontrol for hver CRM AI agent: Autopilot (AI handler uafhængigt), Copilot, (AI foreslår, menneskelige godkendelser) og Manual (AI observerer kun). Sæt dial per agent, per aktionstype, og pr. deal værdi tærskel.

Fire AI-agenter

CRM kører fire specialiserede AI-agenter: Steward (datakvalitet), SDR (prospektering), Gentening (churn prevention) og Analyst (rapportering og indsigt). Hver agent har sin egen Trust Dial indstilling.

Forbindere og integrations

Forbyggede konnektorer

Ready- to- use konnektorer til Shopify, WooCommerce, BigCommerce, Magento 2, PrestaShop, OpenCart, osCommerce, WordPress, WHMCS, Zendesk, Stripe, Amazon SES, Postmark, Resend, SendGrid, Mailgun, Gmail, IMAP, Slack, og Google Business Profile. Hvert stik bringer platformspecifikke AI-handlinger, viden og datasynkronisering.

Connector Builder

Byg brugerdefinerede konnektorer til enhver platform, ingen kode, AI- assisteret, eller fuld kode. Byggeren understøtter REST og GraphQL APIs, OAuth godkendelse kode flow, webhook auto-registrering med Stripe og enkle signatur ordninger, paginering (offset, side, markør, og link-header), liste / fejl transformerer, multi-action sammenhæng, og markedsplads emballage.

AI- assisteret stik authoring

ConnectorBuilderai hjælper dig med at bygge stik: beskrive, hvad du ønsker, og det foreslår handlinger, skriver anmodning håndtere, og kort API svar. Håndterer autentificering, pagination og fejlhåndtering automatisk.

OAuth flow til enhver tilslutning

Generisk in- app OAuth godkendelse flow, der virker med enhver forbindelse. PKCE støtte, site- scoped state management, automatisk token opdatering.OAuth parametre og OpsIQ tager sig af strømmen.

Kapacitetsbusser (bred- og bredforlængelse)

Connectors don't just add platform actions. They can power core features through capability "buses". A connector declares a capability (calendar, enrichment, 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) and implements its small method set; OpsIQ discovers it via CapabilityRegistry and wires it into the UI, the Customer 360 timeline, and the AI actions. Several connectors can offer the same capability with no lock-in. See connectors/PLATFORM_CONNECTORS.md.

Forinstalleret vs markedsplads tier

Connectors live in one of two tiers. Pre-installed connectors (connectors/) are registry-active out of the box, kept lean to just the keyless reference and the most-used provider per capability (e.g. Google Calendar, Gmail, Google Business Profile). Marketplace connectors (marketplace_connectors/) are discoverable but inert until installed, e.g. Microsoft 365 Calendar, Outlook, DocuSign, Stripe, GA4, SerpApi, Zoom. Every bridge surfaces a marketplace list so the UI and the AI can prompt "install from the marketplace" (notify-to-install) when a capability has no ready provider, never a broken button.

Forbindelsesmarked

Publish your connectors to the OpsIQ marketplace. Package connectors with profile.json, knowledge.json, workflow_recipes.json, and signed archives. Marketplace supports free and paid connectors with multi-source billing.

Forbindelsessignatur

All connectors are cryptographically signed for integrity verification. Signing is checked at install time. Use the resign_all_connectors tool to re-sign after updates.

SmartLookup

Declarative fuzzy-matching system for connector actions. Define lookup rules and OpsIQ matches user queries to platform entities using fuzzyScore and smartRank algorithms. Example: find_country("germ") matches Germany with 88.9% confidence.

Aktionskontrakter

Den almindelige beretning OpsIQ API publicerer 1,312 navngivne handlinger, mens konnektor pakker erklærer deres egen leverandør handlinger med indtastede parametre, autentificering krav, pagineringsregler, og svar transformerer gennem den forenede ActionExecutor.

Koblingsopskrifter

Præ- byggede workflow opskrifter, der kombinerer flere konnektor handlinger i fælles business arbejdsgange. Eksempel: "Når en ny ordre kommer ind på Shopify, oprette en billet, opdatere CRM, og sende en Slack notification".

Viden synkronisering

Forbindere erklærer videnemner, der synkroniserer til AI-vidensbasen. Platformspecifikke hjælpeartikler, opsætningsvejledninger og fejlfindingstrin er automatisk tilgængelige for AI uden manuel viden adgang.

Udvikler platform

REST API

A navngivet JSON API omfatter alle registrerede administratorer JSON operation, medAPI-nøgle autentificering, arbejdsplads isolation, scope, hastighedsbegrænsende, idempotent skriver, OpenAPI, og en genereret Postman samling.

Webhooks

Outbound webkrogs til alle større begivenheder: ordrer, fakturaer, abonnementer, billetter, chats, ledninger, brugerregistreringer og indkøbskurv opgivelse. Async levering via job kø, eksponentiel backoff relry, SSRF beskyttelse, og auto- deaktivere efter 15 fortløbende svigt.

Webhook signering

Every outbound webhook is signed with HMAC-SHA256. Verify signatures on your receiving end to ensure webhook authenticity. Stable event_id for idempotent processing.

Widget SDK

JavaScript SDK til tracking widget med identitetsopløsning, brugerdefineret event tracking, programmatisk chat kontrol, og page- specifik konfiguration. Installer opskrifter for React, Vue, Next.js, WordPress, Shopify og statisk HTML.

Plugins og SDK 'er

Serverside SDK og plugins til fælles rammer. WordPress plugin WHMCS modul, og generiske PHP / Node.js integration biblioteker.

Begivenheder API

Push brugerdefinerede begivenheder ind OpsIQ fra din backend: køb, signups, feature brug, fejl eller enhver forretningsbegivenhed. Begivenheder vises i den besøgende tidslinje og feed til analytics og AI-sammenhæng.

Triggers kogebog

Byg automatiske arbejdsgange udløst af begivenheder: ny billet, chat startet, besøgende identificeret, deal stage ændret, eller brugerdefinerede begivenhed. Triggers udføre stik handlinger, sende webkrogs, opdatere optegnelser, eller underrette dit team.

API -bygmester

Visuel API og webhook builder inde i admin. Indstil endpoints, testanmodninger, inspicer svar, og debug integration uden at forlade OpsIQ.

Gruppe og administration

Rolebaseret adgangskontrol

Tre roller: Ejer (fuld adgang, fakturering, farezone), Full Admin (alle operationer undtagen fakturering og farezone, og Agent (kun tildelte afdelinger, ingen indstillinger adgang). Alle følsomme sider er hårdnakket af rolle.

Teamperformance instrumentbræt

Ejer og Full Administrerende-kun dashboard viser opløsning gange, arbejdsbyrde distribution, håndtere dybde, kanal opdeling, trend analyse, SLA overholdelse, CSAT efter agent, genåbne satser, team rollups, og travleste timer. Opdateret i realtid.

Admin tilstedeværelse og online tracking

Real- time whos- is- online widget i admin navigation. Hjertebeat- baseret tilstedeværelse påvisning (60- anden ping, 300- anden udvidelse, auto- beskære efter 120) Se, hvilke administratorer der er aktive i øjeblikket, og på hvilke sider.

Indstillinger for arbejdsområde

Hvert tilsluttet websted (arbejdsområde) kan have sin egen AI-konfiguration, stik indstillinger, billet afdelinger, branding og operationelle regler. Globale standard kaskade til arbejdsrum, der ikke tilsidesætter dem.

Forvaltning af flere lokaliteter

Administrer flere hjemmesider fra en OpsIQ admin. Hvert websted har sin egen tracking snuppet, besøgende data og konfiguration. Skift mellem sites fra admin navigation.

System til e- mail- skabelon

Registreringsdreven e-mail skabeloner for alle automatiserede meddelelser: billetmeddelelser, chat-udskrifter, velkomstmails, kodeord nulstilles og systemalarmer. HTML skabeloner med live preview, variable chips ({{customer_name}}, {{ticket_id}}) og global layout kontrol.

Import og eksport

Importér kontakter, billetter og videnartikler fra CSV/JSON. Eksportér besøgsdata, analyserapporter og CRM-registreringer. Dataportabilitet for migration mellem systemer.

Sikkerhed, overholdelse og operationer

Forretningsrejser til SSO

OIDC (OpenID Connect) enkelt signal- on med fuld driftstid: opdagelse, tillade, callback, JWKS signatur verifikation, userinfo, domæne allow- liste- notering, JIT providering, og statusvagter. SAML konfiguration støtte.

GDPR og dataoverholdelse

Bygge- i DSAR (Data Subject Access Request) håndtering: eksportere og slette kundedata på tværs af alle systemer. Contact- niveau data sletning dækker sessioner, billetter, chats, CRM-optegnelser, og e-mail logfiler.

IP blokerende og brute- force beskyttelse

Blokspecifik IPs eller varierer fra adgang til dit websted eller admin. Automatisk lockout efter konfigurerbar mislykkedes login forsøg.IP, tidsstempel, og bruger agent.

HSTS og sikkerhedshoveder

HTTP Streng Transport Security, Permissions- Policy headers, og sikker cookie konfiguration. Selvhostede installationer kan tilføje CSP-headere gennem server konfigurationen.

Udgående webshook hærdning

SSRF Guard blokerer webkroge til private / metadata IP intervaller. Async levering forhindrer langsomme slutpunkter fra at blokere din applikation. Auto- deaktivere efter 15 fortløbende fejl forhindrer ressourceaffald på døde endepunkter.

Isolering af arbejdsrummet

Streng dataisolation mellem arbejdsområder. Besøgende, billetter, chats, CRM-poster og AI samtaler er indfanget til deres arbejdsplads. Cross-workspace data lækager forhindres på forespørgselslaget.

Styring af faktureringscyklus

Støtte til månedlige, kvartalsvise, halvårlige, årlige, toårige og levetid fakturering cykler. Valuta normalisering for multi-valuta gateways. FX konvertering på betalingskvittering for nøjagtig indtægtsrapportering.

Cron- og skemalagte automatisering

Byg-i cron system til planlagte opgaver: rapport generation, data oprydning, abonnement fornyelser, AI uddannelse opdateringer, stik syncs, og webhook reles. Sundhed diagnostik med advarselsindikatorer.

Dataopbevaringspolitik

Indstil hvor lange besøgssessioner, chattroner, AI-samtalehistorik og hændelseslogfiler der opbevares. Automatisk oprydning af gamle data til håndtering af opbevaring og overholdelse af opbevaringspolitikker.

Diagnostik og sundhed

System sundhed dashboard viser cron status, database forbindelse, AI udbyder status, stik sundhed, webhook leveringspriser, og opbevaring brug. Advarsler om konfiguration problemer og ydeevne flaskehalse.

Hvem OpsIQ er til

E-handel butikker

Butikker

Spor hver besøgende fra landing til køb. Lad AI svare "Hvor er min ordre?" ved hjælp af live Shopify/WooCommerce/ BigCommerce data. Administrer support billetter med AI auto-svar. Kør en deal pipeline for engros og B2B fører. Attributte indtægter til trafik kilder og kampagner. Monitor indkøbskurv opgivelse med opsving arbejdsgange.

SaaS og software-virksomheder

SaaS

Overvåg forsøg signups og feature adoption med session replay. Spor hvilke dokumentationssider konvertere. Automatisk support med AI jorden i din API docs. Administrer abonnementsindtægter og ekspansionstilbud i CRM. Tilslut din faktureringsplatform (Stripe, WHMCS) for real- time MRR tracking. Brug CRM livscyklusagent til at opdage og forhindre churn.

Agenturer og freelancere

Agenturet

Tilbyd white- label analytics og support portaler til klienter. Spor fører på tværs af flere klientsteder fra en admin. Brug CRM-rørledningen til at styre perspektiver og projektleder. Byg brugerdefinerede konnektorer til klientplatforme ved hjælp af Connector Builder. Generér mærkevarer SEO rapporter med Site Intelligence. Sælge markedsplads konnektioner som værditillæg tjenester.

Hosting og infrastruktur

Hosting

Dybt WHMCS integration med 80+ AI-handlinger for ordreopslag, service management, DNS, og provision. Auto- svar på fælles hosting spørgsmål ved hjælp af videnbase artikler. Spor server status side engagement. Administrer teknisk support billetter med AI triage. Brug fakturering cyklus stige til månedlige gennem levetid hosting planer.

Støtte - tunge virksomheder

Støtte

Fejl 40-70% af gentagne spørgsmål med AI chat baseret på din viden base. Route billetter til den rigtige afdeling med AI triage. Bane team ydeevne med opløsning gange, SLA overholdelse, og CSAT ved agent. Brug skriftligt AI for professionel svar udarbejdelse. Monitor støtte tendenser med AI indsigt.

Markedsføring og SEO-hold

Markedsføring

Full Site Intelligence suite: kravler, tekniske SEO-audit, indholdsanalyse, SERP rank tracking, nøgleord forskning, backlink overvågning og lokale SEO grid. Google Business Profile management. Planlagte white- label rapporter for klienter. A / B test indbygget i sporing widget. Kampagne tildeling på tværs af alle kanaler.

Solo grundlæggere og små hold

Opstartsvirksomheder

Start med blot at spore og chatte, gratis at tilføje. Tilføj derefter billetter, når du får støtte volumen. Tænd CRM, når man begynder at sælge. Tilslut platforme som du vedtager dem. OpsIQ skalaer fra én person, der gør alt til en 50-person operationsteam med RBAC, afdelinger og peragent performance tracking.

Erhvervs- og multibrand

Enterprise

Erhvervspolitik SSO med OIDC for centraliseret autentificering. Multi- workspace isolation for separate mærker eller divisioner. Per- worcspace AI konfiguration med forskellige udbydere og modeller. Custom connector udvikling med markedsplads distribution. Revision stier, GDPR overvågningsværktøjer og datalagringspolitikker.

Hvad OpsIQ erstatter

Google Analytics + Hotjar + Plausibelt

Fuld hjemmeside analytics med besøgende sporing, session replay, side rankings, geo intelligens, intent funnels, konvertering tildeling, begivenheder, A / B eksperimenter, og JS fejlsporing, alle privat-venlige, alle i en platform.

Intercom + Drift + Tidio tilbehør

AI- drevne kundechat med viden jordforbindelse, multi-udbyder AI støtte, auto- overdragelse til mennesker, proaktive chatregler, samtale historie, CSAT undersøgelser, og billetskabelse fra chat.

Zendesk + Freshdesk plus Hjælp til spejder

Indfødt billetsystem med afdelinger, prioriteter, SLA, AI-prøve, auto- svar med konfigurerbar forsinkelse, e-mail indtagelse, billet indlejret, billet sammenfletning, indbakke copilot, og Retur til AI kapacitet.

Hvad er HubSpot + Pipedrive?

AI- første CRM med fire specialiserede AI-agenter (Steward, SDR, retention, Analyst), Trust Dial autonomi kontrol, rørledning bord, deal coaching, prognoser, sekvenser, livscyklusstyring, og naturligt sprog CRM konfiguration.

Hvad er Ahrefs + SEMrush?

Website Intelligence med automatiserede kravler, tekniske SEO revisioner, indholdsanalyse, AI søgning, SERP rank tracking, søgeord forskning, backlinks analyse, lokale SEO grid, og skemalagt white- label rapporter.

Zapier + Make + brugerdefineret middleware

Forbindelse SDK med 25+ pre- build connections, Connector Builder (no- code / AI- assisted / full-code) OAuth flow, webhook auto- registrering, et stort katalog af connector handling definitioner, der bliver eksekverbare kun når den relevante konnektor er installeret, aktiveret, konfigureret og valideret, SmartLookup, markedsplads, og signerede pakker.

Google Business-profiladministrator

Fuld GBP-stik: gennemgang management, post publishing, Q & A ledelse, foto uploads, business info sync, indsigt sporing, og AI- drevne revision svar, alle indefra OpsIQ.

Separat e- mail- skabelonværktøj

Registreringsdrevne e-mail skabeloner med visuel editor, live preview, variable chips, global layout kontrol, og per- event tilpasning til alle automatiserede kommunikation.

Teamstyringsinstrumentbrætter

Bygge- i team ydeevne: Opløsning gange, arbejdsbyrde, SLA overholdelse, CSAT efter agent, genåbne satser, travleste timer, realtids tilstedeværelse sporing, og per- afdeling opdelinger.

GDPR compliance værktøjer

Native DSAR håndtering, data sletning på tværs af alle systemer, samtykke management, tilbageholdelse politikker, og revision stier, indbygget i platformen, ikke boltet på.

To udgaver

Indsættelse af en vært

OpsIQ drives på forvaltet infrastruktur. Produktdrift er den samme; infrastruktur, opdateringer og sikkerhedskopier håndteres af hosting-operatøren.OpsIQ runtime i stedet for marketing eller kommercielle konto strømme.

selvhostede modul

Installér OpsIQ på din egen server for fuld kontrol over data, branding, opdateringer og integreringer. Kræver PHP 8.4+, MySQL 5.7+ eller MariaDB 10.3+, HTTPS og OpsIQ samlet cron. Understøtter WHMCS integration som et addon modul. Fuld datasuverænitet.

Anbefalet læseramme

1
Hurtig start

Følg 30-minuttersopsætningsvejledningen for at få sporet, chatten og grundlæggende AI til at arbejde på din hjemmeside.

2
Dashboard og analytics

Lær at læse dine besøgsdata, opsætte session spil igen, identificere spor og forstå trafikmønstre.

3
Efterretningstjeneste

Kør din første SEO kravl, tjek dit tekniske helbred, og opsætte SERP rang sporing for dine mål søgeord.

4
Billetter og support

Opsætning afdelinger, konfigurere auto- svar med AI, tilslutte e-mail indtagelse, og træne din AI til at håndtere fælles spørgsmål.

5
CRM

Organiser kontakter, bygge din pipeline, konfigurere AI agenter, indstille Trust Dial niveauer, og lad AI coach dine tilbud.

6
Forbindere og udviklerværktøjer

Tilslut din e-handel / fakturering platform, opbygge brugerdefinerede stik, oprette webkroge, og integrere via REST API.

💡
Ny til OpsIQ? Start med Quick Start guiden nedenfor. Du kan have sporing og grundlæggende AI chat kører i under 30 minutter.
Start her

Hurtig start i 30 minutter

Følg disse trin for at få OpsIQ kørende. Hvert skridt bygger på den forrige. Til sidst vil du have besøgende tracking, AI chat og grundlæggende billet support.

Opsætning
Hurtig start checklisteEn guidet setup tjekliste, der viser widget installation, platform connect, AI uddannelse, team invitere og go-live, med en 60 procent statuslinje.Kom i gangsetupInstallér OpsIQ - kontrollenFærdigForbind en platform (WHMCS, Shopify...)FærdigTræn din AI på dit indholdFærdigInviter dit holdTjek og gå liveOpsætning af fremskridt3 af 5 · 60%1STEP 1Installér kontrollen2STEP 2Connect & tog AI3STEP 3Inviter & gå live
30-minut sti: installere widget, tilslutte en platform, træne din AI, invitere holdet, derefter gå live.

30-minuttersopsætning

1
Aktivér din licens

Indtast din licensnøgle i OpsIQ admin. Gå til Indstillinger, indtast den licens-nøgle, der er leveret til denne installation, og klik på Aktivér. Du bør se et grønt "Active" skilt.

2
Sæt din virksomheds identitet

Gå til Indstillinger og udfylde dit firmanavn, industrien, tidszone, standard valuta, og support timer. Denne information bruges af AI når du besvarer kundespørgsmål og ved analytics for timezone- aware rapporter.

3
Vælg en AI-udbyder

Gå til AI konfiguration og vælg din udbyder. Indstillinger: Claude (Anthropic), GPT- 4o (OpenAI), Gemini (Google), eller Grok (xAI). API tasten hvis du bruger din egen nøgle, eller bruge Managed AI hvis tilgængelig på din plan. Klik på "Test forbindelse" for at verificere.

4
Installér sporings kontrol

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
Tilslut din platform

Hvis De bruger Shopify, WooCommerce, WHMCS, eller en anden understøttet platform, gå til Connectors, finde din platform, indtaste legitimation, og klik på Test Connection. Dette giver AI adgang til bestillingsdata, kundeprofiler og support kontekst.

6
Inviter dit hold

Gå til Team, klik på Invitation, indtast deres e-mail og rolle (Ejer, Full Admin, eller agent). Agenterne kan kun få adgang til afdelinger, du tildeler dem til. Ejere og Full Administratorer se alt.

Den hurtigst mulige sti (5 minutter)

Trin 1: Installer widget

Kopiér slangen fra Connected Sites og indsæt den på din hjemmeside. Dette giver dig sporing med det samme.

Trin 2: Aktivér AI

Gå til AI konfiguration, vælge en udbyder, indtaste din nøgle, og gemme. AI chat er nu aktiv på din hjemmeside.

Færdig

Du har nu besøgende tracking og AI chat. Du kan tilføje billetter, CRM, og stik senere.

Dag 2: Gør det nyttigt

Tilføj viden

Gå til videnbase og tilføje 5-10 artikler om dine mest almindelige spørgsmål. AI bruger disse til at besvare kunderne præcist.

Opret afdelinger

Gå til billetter og oprette mindst 2 afdelinger (fx "Salg" og "Support"). Tildel team medlemmer til hver.

Skriv din AI-prompt

Gå til AI-træning og skrive en Kunde AI prompt, der beskriver din virksomhed, tone, og eskalering regler.

Test en samtale

Åbn din hjemmeside i en privat browser og chatte med AI som kunde. Tjek, at svarene er nøjagtige og tone er rigtigt.

Uge 1: Byg dine operationer

Forbind e- mail

Oprette en postkasse (Gmail, IMAP, eller en udbyder stik) så kundee-mails automatisk oprette billetter.

Sæt automatisk svar op

Aktivér billetten automatisk - svar for sikre afdelinger. Indstil en 2- minutforsinkelse, så mennesker kan gribe ind først.

Gennemgå analytics

Tjek Dashboard dagligt. Se på besøgsantal, bounce rate, topsider og salg, hvis sporing er tilsluttet.

Start din CRM

Åbn AI CRM og lad OpsIQ import kontakter fra dine tilsluttede platforme. Gennemgå rørledningen bord.

Måned 1: Optimér

Anmeldelse AI historie

Tjek AI Historie ugentligt. Kig efter forkerte svar, mistede spørgsmål og muligheder for at tilføje viden.

Tilføj proaktive regler

Opret en regel: hvis en besøgende er på prissiden for 60+ sekunder, vise en chatbesked spørger om de har brug for hjælp.

Byg en konnektor

Hvis du bruger en platform, der ikke har en build- in stik, skal du bruge Connector Builder til at oprette en.

Sæt netkroge op

Tilslut OpsIQ til dine interne værktøjer ved hjælp af udgående webkroge til billet, chat og salgsarrangementer.

Kan jeg springe AI 'en over og bare bruge sporing?+

Ja. AI-udbyderen er valgfri. OpsIQ fungerer som en ren analytics og billetsystem platform uden AI. Du kan aktivere AI senere, når du er klar.

Kan jeg springe stik og tilføje dem senere?+

Ja. Connectorer berige AI med platformspecifikke data, men OpsIQ virker uden dem. Start med sporing og chat, og tilslut derefter platforme efter behov.

Hvad hvis jeg ikke har en hjemmeside endnu?+

Du kan stadig bruge OpsIQ til billetter, CRM og team samarbejde. Sporingskontrollen er valgfri. Tilføj den når din hjemmeside er klar.

Hvordan ved jeg om kontrollen er installeret korrekt?+

Besøg din hjemmeside i en privat / inkognito browser. OpsIQ Live Feed. Du bør se dit besøg vises inden 15 sekunder. Hvis ikke, så tjek: (1) er den snippet indsat korrekt, (2) er lokalitetsnøglen korrekt, (3) er ad blokkere eller CSP headers blokerer scriptet.

Start her

Komplet produktkort

OpsIQ er ikke en funktion. Det er en operatør admin, en hjemmeside widget, en AI support lag, en billet / helpdesk system, en fuld CRM med fire AI agenter, en Site Intelligence suite, en konnektor platform med markedsplads, og en udvikler overflade. Her er hver komponent det indeholder.

Operatør admin

Dashboard, live feed, besøgende log, sessioner, session replay, top sider, geo intelligens, intentfunnel, begivenheder log, A / B eksperimenter, JS fejlsporing, salg og konverteringer, ledninger, AI CRM (kommandocenter, kontakter, virksomheder, tilbud, pipeline bord, deal coaching, prognose, prospektering, sekvenser, livscyklus, data steward, Bygge min CRM, CRM config, CRR sundhed, CRM API), billetter, chat inbox, proaktive regler, CSAT undersøgelser, e-udkast, postkasser, AI konfiguration, AI-uddannelse, AI historie, AI indsigt, viden base, stik, Connector Builder, markedsplads, netværk, team, funktioner, design, software, teknologi, hardware, software og software.

Brugerdefinerede overflader

Website tracking widget (analytics beacon + chat + billet indlejret + viden base søgning), klient AI chat, billet indsendelse portal, besøgende identitet token håndtering, fil uploads, CSAT undersøgelse kontrol, og customer-vender hjælpcenter.

AI- Første CRM

Command center, kontakter, virksomheder, tilbud, pipeline bord med drag- and-drop, AI deal coaching (risikosignaler, nextbest- handling, win sandsynlighed), indtægter prognoser, prospektering agent (SDR), automatiseret opfølgning sekvenser, livscyklus og opbevaring management, data steward agent (dedup, berigelse, validere), opbygge min CRM (naturligt sprog setup), CRM konfiguration, CRM- sundhedstjek, Trust Dial (Autopilot / Copilot-manual per agent), fire specialiserede agenter (Steward, SDR, retention, Analyst), og CRM API med netkroge.

Site Intelligence-pakke

Automatiseret site kravler, teknisk SEO revision (hastighed, mobil, Core Web Vitals, SSL, omdirigerer, strukturerede data), indholdsrevision (ordoptælling, læsbarhed, nøgleord tæthed, overskrift struktur), AI- drevne semantisk søgning, SERP rank tracking på tværs af motorer, søgeord forskning med mulighed scoring, backlink analyse og overvågning, lokal SEO grid visualisering, Google Business Profile sync (anmeldelser, indlæg, Q & A, fotos, indsigt), planlagte rapporter (dagligt / ugentligt / månedligt), og white- label PDF produktion til agenturer.

AI og automatisering

Kunde AI chat (multi-udbyder: Claude, GPT- 4o, Gemini, Grok), admin AI assistent, AI viden jordforbindelse, auto-overdragelse med konfigurerbar return, per- workspace AI konfiguration, administreret AI og BYOK modes, token budgetter og omkostninger kontrol, AI historie revision spor, AI indsigt analyse, billet AI triage, billet auto-svar med forsinkelse, skrivning AI (separat prompt), og admin indbakke copilot.

Forbindere og integrations

25+ præ- byggede konnektorer (Shopify, WooCommerce, BigCommerce, Magento2, PrestaShop, 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- codes), generisk OAuth flow med PKCE, connect markedsplads med betalt distribution, konnektor signering og verifikation, SmartLookup fuzzy matching, et stort katalog af HTTP handling definitioner, hvis tilgængelighed afhænger af stik installation, enablement, konfiguration og validering, viden synkronisering, og workflow opskrifter.

Udvikler platform

RESTAPI(besøgende, events, billetter, kontakter, indstillinger, konnektorer), OpenAPI spec,API key management, outbound webkroge (async, signeret, prøvet igen, SSRF- bevogtet, auto- deaktiver), EventsAPI for brugerdefineret begivenhed indtagelse, widget SDKmed identitetsopløsning, udløser kogebog, actionkontrakter, stik SDK, markedsemballage, serverside SDK (PHP, Node.js) WordPress plugin, og WHMCS modul.

Indstillinger og operationer

Business identitet, AI konfiguration per arbejdsområde, sporingsindstillinger, sikkerhed (HSTS, Permissions-Policy, IP blokerende, brute- force beskyttelse), RBAC (Ejer / Full Admin / Agent), team management og invitationer, team performance dashboard, admin tilstedeværelse sporing, e-mail skabelon system (registry- drevet, visuelle editor, variable chips), undersøgelse designer, domæne viden, billet indlejret konfiguration, branding, data retention politikker fakturering cyklus forvaltning (månedligt gennem levetid), valuta normalisering, import / eksport, diagnostik, cron automatisering, og fare zone.

Sikkerhed og overholdelse

Erhvervspolitik SSO (OIDC med JWKS-verifikation, JIT-hensættelser) SAML konfiguration GDPR/DSAR håndtering (eksport og sletning på tværs af alle systemer), sletning af data pr. kontakt, samtykkestyring, isolering af arbejdsområdet (streng Query- lag scoping), revisionsspor, fejlslagne login-sporing IP blokerende, udgående webhook SSRF vagt, og datalagring politikker.

Udbyderbro

Administreret AI proxied through OpsIQ udbyder URL, Website Intelligence udbyder opkald, licens validering, sundhedsrapporter, PDF rendering, og data eksport, alle dirigeret gennem den konfigurerede udbyder endpoint, ikke direkte leverandør API opkald fra din server.

Hver admin side

Dashboard

Hovednet

Dagligt kommandocenter: trafikoversigt, levende besøgstal, salgsoversigter, support kø dybde, AI aktivitet advarsler og quick-action genveje.

Levende foder

Analyse

Real- time besøgende stream: sidevisninger, chat starter, form indlæg, og intentsignaler opdateres hvert par sekunder med land, enhed, og referrer filtre.

Besøgslog

Analyse

Komplet besøg poster: enhed, browser, OS, land, by, referrer, UTM params, landing side, identitet, og fuld sideview historie.

Sessioner

Analyse

Rejsegrupperet visning: sideflow, tid på side, skriftdybde, konverteringssti og exit-side for hver besøgssession.

Session replay

Analyse

Tidsplan afspilning af optagne begivenheder: muse bevægelse, klik, ruller, side overgange, og danne interaktioner for UX diagnose.

Top sider

Analyse

Sideperformance ranking: besøg, engagement tid, bounce rate, konverteringer, støtte interaktioner, og trend retning.

Geo intelligens

Analyse

Geografiske rapporter: land / by sammenbrud med kort, enhedsdistribution, browser-andel, trafikkilder og markedspenetration.

Intenttragt

Analyse

Opførsel af hensigt sporing: prisbesøg, returfrekvens, doc browsing, støtte interaktioner, og brugerdefinerede signaler med konvertering sandsynlighed.

Begivenheder log

Analyse

Søgetabel hændelseshistorie: sidevisninger, brugerdefinerede begivenheder, chats, køb, formular indlæg med fuld metadata og filtrering.

A / B-forsøg

Analyse

Split test: oprette varianter, tildele trafik, definere mål, måle betydning, og erklære vindere, alle indefra OpsIQ.

JS fejl

Analyse

Frontend fejlregistrering: meddelelser, stack spor, berørte browsere, frekvens, berørte sider og trendsporing.

Salg

Salg

Indtægtsinstrumentbrættet: ordrer, fornyelser, tilbagebetalinger, henførsel efter kilde, kampagneindsats, periodisering og trendanalyse.

Blade

Salg

Lead management: scoring, kildetildeling, CRM-status, kontaktoplysninger, adfærdssignaler og rørledningsføring.

AI CRM

CRM

Full CRM: kommandocenter, kontakter, virksomheder, tilbud, rørledning bord, coaching, prognose, prospektering, sekvenser, livscyklus, data steward, og sundhed.

Billetter

Støtte

Støtte indbakke: afdelinger, prioriteter, SLA tracking, AI-triage, auto-svar, interne noter, fil vedhæftede filer, fusionering og status management.

Chat indbakke

Støtte

Live samtaler: AI og menneskelig chat, overdragelse, samarbejde, samtale historie, kundeidentitet, og CSAT samling.

E-mail-kladder

Støtte

E-mail håndtering: indgående post til billetter, AI- assisteret svar sammensætning, skabelon valg, og postkasse konfiguration.

AI- konfiguration

AI

Udbyderopsætning: vælg Claude / GPT- 4o /Gemini/ Grok, indtast API nøgle eller aktivere administreret AI, sæt model, temperatur og token budgetter per arbejdsområde.

AI-træning

AI

Hurtig authoring: customer-facting og admin- face prompts, eskalering regler, tone retningslinjer, forbudte emner, og grænse konfiguration.

AI historik

AI

Samtalekontrol: fuld anmodning / svar logs, token brug, omkostninger pr. samtale, udbyder, model version, og løsning resultat.

AI-indsigt

AI

Mønsteranalyse: fælles spørgsmål, opløsertal, afslutningsfrekvens, tilfredshed efter emne og identifikation af uddannelsesafstand.

Videnbase

AI

AI træningsindhold: artikler, FAQ poster, produkt docs, konnektor viden, og brugerdefinerede poster. Semantisk og søgeord søgning efter AI jordforbindelse.

Connectorer

Integrationer

Integration hub: installerede stik, sundhed status, action inventar, kreditstyring, markedsplads browser, og Connector Builder.

Forbundne steder

Indstillinger

Webstedshåndtering: tracking snuppet, site nøgle, widget konfiguration, domæneindstillinger og per- site arbejdsområde isolation.

Hold

Indstillinger

Brugerstyring: invitere medlemmer, tildele roller (Ejer / Full Admin / Agent), indstille afdelings adgang, og administrere tilladelser.

Holdets ydeevne

Indstillinger

Ops målinger: Opløsning gange, arbejdsbyrde, SLA overholdelse, CSAT efter agent, genåbne satser, travleste timer, og trend analyse.

Indstillinger

Indstillinger

Konfiguration: business identity, AI setup, tracking, sikkerhed, branding, retention, e-mail skabeloner, fakturering, import / eksport, diagnostik, og fare zone.

Licens

Indstillinger

Plan management: licensstatus, planfunktioner, brugsmålinger, fornyelse dato, og opgradering / nedgradering muligheder.

Start her

Vejledt efter opstigning

På on-boarding turen bliver en ny installation til et fungerende OpsIQ arbejdsområde og kan lades tilbage og genoptages uden at miste fremskridt.

Produktskærm
IndbordsrejseOnboarding viser hvert opsætningsområde, dets nuværende tilstand og næste handling at fuldføre.IndbordsrejsearbejdsområdePROGRESS60%COMPLETED6NÆSTEKontrollérSYGDOM AF LIVE ARBEJDSPLADSERLicensValidér produktlicensenFærdigAI-udbyderVælg udbyder og testnøgleFærdigMærkeVirksomhedens identitet og tonusFærdigWebstedTilføj site og installere widgetNæste1COMPLETE BASICSLicens, brand, AI2CONNECT DATASite og stik3VERIFY LAUNCHTeam, email, check
Onboarding viser hvert opsætningsområde, dets nuværende tilstand og næste handling at fuldføre.

Anbefalet sekvens

  1. Licens: validere certifikatet og bekræfte, at arbejdsområdet er aktivt.
  2. AI-udbyder: vælge udbyder / model, indtaste legitimation og køre forbindelsen test. AI kan blive sprunget over hvis arbejdsstedet vil i første omgang bruge analytics og billetter.
  3. Virksomhedsidentitet: indstille navn, branche, beskrivelse, brugervenlig-vendt tone og mærke detaljer, der anvendes af widget og AI.
  4. Forbindelse: aktivere mindst én ekstern platform, når OpsIQ har brug for ordrer, kunder, billetter, e-mail eller andre platform kontekst.
  5. Site og kontrol: oprette webstedet / arbejdsstedet, kopiere websitets nøgle og verificere et privat- browser besøg i Live Feed.
  6. Team og rute: invitere administratorer / agenter, oprette afdelinger, indstille e-mail routing og bekræfte meddelelser præferencer.
  7. Go- live-check: test chat, en billet, stik sync, cron, udgående e-mail, webkroge og sikkerhedsheaders.

Rejsebutikkerne færdiggørelse per arbejdsområde. Returnering til Onboarding bør vise afsluttede trin i stedet for at tvinge en genstart.

Start her

Admin- navigation og tilladelser

OpsIQ sidebjælken er permission- aware. Dette kort forklarer, hvor hvert operationelt område bor, og hvorfor en side ikke kan ses for hver administrator.

Produktskærm
OpsIQ navigationSidebjælkegrupperne OpsIQ efter arbejdsområde; individuelle links vises kun, når den nuværende rolle kan bruge dem.OpsIQ navigationarbejdsområdeGROUPS8SIDERTilladelsesbaseretSEARCHTilgængeligSYGDOM AF LIVE ARBEJDSPLADSERStøtteBilletter, e-mail, CSAT, videnÅbnCRMKontakter, rørledninger, aftaler, prospekteringÅbnAutomatiseringArbejdsgange, regler, målÅbnSikkerhed & PrivatlivOversigt, revision, samtykke, blokkeAdministrator1PICK A GROUPMatch sidebjælken2CHECK ROLESkjulte midler begrænset3USE PAGE HELPÅbn matchningssektionen
Sidebjælkegrupperne OpsIQ efter arbejdsområde; individuelle links vises kun, når den nuværende rolle kan bruge dem.
Støtte

Billetter, team e-mail platform, CSAT, Hjælp Center og chatbot strømme.

CRM

De daglige salgsflader: CRM Home, Command Center, kontakter, rørledning, prognose, livscyklus, prospektering, segmenter, leaderboard, deal godkendelser, data steward, vækstværktøjer og aktiviteten stream.

Automatisering

Aftendrevne arbejdsgange, livscyklusregler og omregningsmål.

Markedsføring

Opsøgende, proaktive budskaber, meddelelser, Promotion Studio, Survey Studio og push kampagner og guidede ture.

Analyse

Rapport overflader først - Analytics Hub, AI indsigt, salg, kunder, ledninger, tragte, A / B tests, session replay, brugerdefinerede dashboards og planlagte rapporter - med den rå besøgende, session, side, geografi og begivenhed logs i en Raw Data-afsnit.

Standalone sider

Webstedet Intelligence, Team Performance og Feedback sidder uden for grupperne som direkte poster.

Integrationer

Forbindere, handlinger og udløsere, postkasser, udkast, e-mail indstillinger, indgående endepunkter, udgående webkroge og API nøgler.

Sikkerhed & Privatliv

Sikkerhedsoversigt, privatliv og overholdelse, cookie samtykke, revision aktivitet, fejlbehæftede logins, blokeretIPsogJavaScriptfejl.

Indstillinger

Arbejdsrums grundlæggende (generel, team, websteder, sprog), derefter kollapse undersektioner: AI Brain (instruktioner, konfiguration, evaluering, historie), CRM Opsætning (bygherre, brugerdefinerede felter, bly scoring, sundhed), Data & Health (diagnostik, eksport) og komme i gang (on-boarding, hjælp).

Sider en rolle kan ikke åbne er skjult fra sidepanelet. Sider den nuværende plan ikke omfatter ophold synlige med en Opgradering tag og åbne en in- app opgraderingsskærm.

Direkte ruter er stadig kontrolleret serverside. At gemme et sidebar link er ikke sikkerhedsgrænsen: enhver beskyttet handling skal passere sin tilladelse og arbejdsområde kontrol.

Analyse

Analytisk hub

The Analytics hub bringer support, chat, AI, besøgende og agent rapportering i en datafilteret arbejdsrum med bærbare resultater.

Produktskærm
Analytisk hubAnalytics Hub viser et datointerval, metriske kort og faner for Support, Chat, AI, Besøgende og Agent ydeevne.Analytisk hubarbejdsområdeTIKKER184AI RESOLVE63%CSAT4.7SYGDOM AF LIVE ARBEJDSPLADSERStøtteSkabt, lukket, afventende, SLAFanebladChatAI / menneskelige resultater og håndterings tidFanebladAITillid, feedback, token brugFanebladAgentVolumen, hastighed og tilfredshedFaneblad1CHOOSE DATESForetag eller brugerdefineret2CHANGE TABStøtte til agent3EXPORTHent CSV
Analytics Hub viser et datointerval, metriske kort og faner for Support, Chat, AI, Besøgende og Agent ydeevne.

Filtre og kontroltavler

  • Brug et forudindstillet eller en brugerdefineret fra / til række, derefter genopfriske at genopbygge hvert kort og diagram for samme periode.
  • Eksportér CSV eksportere det aktive analysesynspunkt frem for et screenshot.
  • Workspace scoping er automatisk; skiftende websteder ændrer den underliggende datasæt.

Hvad hver fane måler

  • Støtte: billetter oprettet / lukket / afventende, første svar, opløsning, first-kontakt resolution, SLA, og prioritet / afdeling / status opdelinger.
  • Chat: sessioner startet, AI resolutioner, eskalationer, opgivelse, håndtere tid, meddelelser pr. session, og AI / menneskelige / alle CSAT.
  • AI: gennemsnitlig tillid, lav-konfidensrate, triage nøjagtighed, feedback, viden deformation, token / cache brug, og de elementer, der har brug for gennemgang.
  • Besøgende: trafik- og forholdstendenser for den valgte periode.
  • Agent: arbejdsbyrde, hastighed, lukning og foranstaltninger til tilfredshed.

Brug Analytics Hub til cross-team gennemgang; bruge de dedikerede Besøgende, Billetter, CSAT, AI Historie og Team Performance sider, når du har brug for record-niveau undersøgelse.

Analyse

Dashboardet

Dashboardet er din daglige kommandocentral. Det viser trafik, salg, support belastning, AI aktivitet, og konvertering indikatorer i én visning. Åbn den hver morgen for at forstå, hvad der skete natten over, og hvad der har brug for opmærksomhed i dag.

Dashboard
Oversigt dashboardSkærmen Overblik ledet af et OpsIQ Intelligence AI panel (med Daily brief, Smart advarsler, Prognose), KPI widget fliser og en syvdages trafik widget- plus en Nulstil layout kontrol.OversigtarbejdsområdeOPSIQ INDSIGTVælg en analyse og OpsIQ skriver detDaglig kortlægningIntelligente indberetningerPrognoseNulstil layoutBESØG I DAG2,481+12%INDTÆGTER$8.2k+5%ÅBENTIKKER143 SLATrafik · sidste 7 dage1AI-FIRSTOpsIQ Intelligens panel2WIDGETSKPI fliser du arrangerer3YOURSNulstil layout når som helst
Den virkelige Overblik: OpsIQ Intelligence panel op top (vælg en analyse og det skriver det) over KPI widgets du arrangere dig selv.

Dashboard kort forklaret

Levende besøgende

Antallet af personer på din hjemmeside lige nu. Dette opdaterer hver 15 sekunder (konfigurerbar). En besøgende er "aktiv" hvis de indlæste en side inden for den aktive tærskel (standard: 90 sekunder).

Unik besøgende

Hvor mange forskellige mennesker besøgte din hjemmeside i det valgte datointerval. OpsIQ identificerer besøgende ved en kombination af browser fingeraftryk, cookies og (hvis tilgængelig) bekræftet identitet.

Ny vs returnering

Nye besøgende ser dit websted for første gang. Returnering besøgende har været set før. En høj returnering forhold betyder, at dit indhold bringer folk tilbage. En meget lav returnering ratio kan betyde, at du ikke bevarer interessen.

Afvisningsfrekvens

Procentdelen af besøgende, der forlod efter visning kun én side. En bounce rate over 70% på landingssider normalt betyder, at siden ikke opfylder de besøgende forventninger, forkert indhold, langsom belastning, eller dårlig mobil oplevelse.

Gennemsnitlig tid på side

Hvor længe besøgende bruger på hver side i gennemsnit. Meget korte gange (under 10 sekunder) på indhold sider tyder indholdet er ikke engagerende. Meget lange gange på kassen sider kan indikere forvirring.

Trusler blokeret

IPadresser, der OpsIQ identificeret som potentielt skadelig baseret på trussel scoring, brute kraft forsøg, eller manuelle blokke. Klik for at se den blokerede IPs liste.

Salg i dag / denne uge / denne måned

Indtægter fra forbundne salgskilder (Shopify, WooCommerce, Stripe, osv.). Hvis salget viser nul, kontrollere, at din platform stik er tilsluttet og synkronisering.

Trend diagram

En linjegraph, der viser antallet af besøgende i det valgte datoområde. Søg efter mønstre: trafikpropper (kampagner, presseomtale), dips (weekender, helligdage) og vedvarende tendenser.

Top kilder

Hvor dine besøgende kommer fra: direkte, Google, sociale medier, e-mail kampagner, henvisning sites. Brug dette til at forstå, hvilke marketingkanaler der arbejder.

Topbrowsere

Chrome, Safari, Firefox, Kant, og andre. Hvis en browser har usædvanlig høj bounce rate, kan du have en CSS eller JavaScript kompatibilitetsspørgsmål.

Timelønnet vartegn

Et gitter, der viser besøgsaktivitet pr. time i døgnet og ugedag. Brug dette til at beslutte, hvornår du skal planlægge support skift, hvornår at sende meddelelser, og hvornår du kan køre kampagner.

Nylige besøgende

De sidste få besøgende med land, side, enhed og kilde. Nyttig for hurtig spot- checks under kampagner.

Brug af datointervalfilteret

Klik på dato plukker øverst til højre for Dashboard. Presets: I dag, i går, Sidste 7 dage, Sidste 30 dage, Denne måned, Sidste måned, Brugerdefineret område. Alle dashboard kort og diagrammer opdateres, når du ændrer området. Datointervallet er i din konfigurerede tidszone (sæt i Indstillinger).

Bearbejdede eksempler

Bounce rate spike undersøgelse

Scenarie:
Your bounce rate jumped from 45% to 78% this week. What happened?
Hvad skal man gøre:

Check: (1) Ændrede en specifik landingsside sig? Gå til Top Sider og sortere efter starthastighed. (2) Har en kampagne sendt trafik til den forkerte side? Tjek Top Kilder for nye henvisere. (3) Har siden brudt på mobil? Tjek browser opdeling for mobile bounce rate. (4) Er det bot trafik? Tjek Trusler tælleren og besøgende detaljer for mistænkelige mønstre.

Nul besøgende på instrumentbrættet

Scenarie:
The dashboard shows 0 live visitors even though your website is getting traffic.
Hvad skal man gøre:

Check: (1) Er tracking widget installeret? Se din hjemmeside kildekode og søge efter OpsIQ script. (2) Er nøglen på webstedet korrekt? Sammenlign data- site- tasten i scriptet med nøglen i Connected Sites. (3) Er en CDN eller cache servering en gammel side uden scriptet? Ryd din CDN cache. (4) Er en annonce blocker eller CSP header blokerer scriptet? Tjek browseren konsol for blokerede anmodninger.

Læsning af timesvartegn

Scenarie:
Your heatmap shows heavy activity between 10am-2pm on weekdays but nothing on weekends.
Hvad skal man gøre:

Dette er et B2B trafikmønster. Dine besøgende arbejder fagfolk browsing i løbet af forretningstider. Konsekvenser: (1) Planlæg støtte personale til hverdage åbningstider. (2) Send e-mail kampagner Tuesday- Torsdag morgen. (3) Ugentlige vedligeholdelsesvinduer er sikre. (4) Overvej at tilbyde live chat kun i myldretiden.

Trafikstigning fra ukendt kilde

Scenarie:
You see a sudden spike of 500 visitors in one hour from an unknown referrer.
Hvad skal man gøre:

Gå til besøgende og filter ved tidsvinduet. Tjek: (1) Er de rigtige besøgende eller bots? Se på session varighed, sider set, og browser mangfoldighed. (2) Hvis virkelige, hvilken side lander de på? (3) Kontroller referencen URL. Nogen kan have knyttet til dig fra Reddit, Hacker News, eller en populær blog. (4) Hvis det er bot trafik, kontrollere Trusler og overveje at blokere IP rækkevidde.

Hvorfor er min besøgstælling forskellig fra Google Analytics?+

OpsIQ tæller besøgende forskelligt. Det bruger browser fingeraftryk og cookies, mens GA bruger en anden cookie model. Bot filtrering, ad blocker satser, og script loading orden kan også forårsage forskelle. 10-20% varians er normal.

Kan jeg indføje instrumentbrættet i et andet værktøj?+

Dashboardet er designet til OpsIQ admin. Ved ekstern rapportering, brug REST API til at trække analytics data og vise det i dit eget instrumentbræt eller BI værktøj.

Hvad betyder "trusler" skranken?+

Det tæller. IP adresser, der OpsIQ har markeret eller blokeret baseret på trusselsscoring, gentagne fejlbehæftede logins eller manuelle blokke. Klik på tælleren for at se detaljer og administrere blokke.

Analyse

Besøgslog

Den besøgende log viser hvert besøg på dine sporede hjemmesider. Hver række er en side belastning fra én besøgende. Brug det til at undersøge individuel besøgende adfærd, finde kampagne trafik, og diagnosticere tracking spørgsmål.

Besøgslog
BesøgslogEt besøgsbord med filterbar (dato, søgning)IP/ e-mail / by, kilde, enhed) og kolonner til IP/ e-mail, placering, kilde, enhed og tid, med en markeret trussel række.Besøgslogyoursite.com7 dageSøg IP, e-mail, by...Kilde ▾Enhed ▾IP / EMAILPLADSEKILDEANORDNINGERHVORNÅR[email protected]USA · New YorkgoogleSkrivebord2m41.62.10.4Storbritannien · LondondirectMobil6m[email protected]DE · Københavnutm: annoncerMobil14m203.0.113.9NG · LagosreferralSkrivebordthreat1–25 af 3,402session →1FILTERDato · søgning · kilde · enhed2REAL COLUMNSIP/ email · location · enhed · trussel3DRILL INÅbn hele sessionen
Den virkelige besøgende log: filter efter dato, søgning og enhed, derefter læse hvert besøg af IP/ e-mail, placering, kilde, enhed og tid, trusler markeret med rødt.

Hvad hver række viser

IP -adresse

Besøgende IP adresse. Anonymeret hvis IP anonymisering er aktiveret i Indstillinger. Klik for at se alle besøg fra dette IP.

Land og by

Detekteret fraIP adresse ved hjælp af GeoIP-data. Kræver MaxMind GeoLite2 database eller Cloudflare geo headers. Viser "Ukendt" hvis GeoIP ikke er konfigureret.

Side URL

Den side, den besøgende indlæste. Klik for at se den fulde URL. Lang URLs er afkortet i tabellen visning.

Henviser

Hvor den besøgende kom fra før landing på dit websted. "Direkte" betyder ingen referrer (bogmærker, indtastede URLs, nogle app links).

Enhed og browser

Besøgende enhed type (desktop, mobil, tablet) og browser (Chrome, Safari, Firefox, osv.). Parsed fra User- Agent header.

Dato og klokkeslæt

Når siden var indlæst, i din konfigurerede tidszone.

Kundeidentitet

Hvis den besøgende identificeres (via id-token eller login), vises deres navn eller e-mail. Ellers vises som anonym.

Filtre

Datointerval

Filtrerbesøg til en bestemt tidsperiode. Standard: sidste 7 dage.

Søg

Søg efter IP adresse, side URL, referrer, land eller kunde e-mail.

Kilde

Filtrér efter trafikkilde: Direkte, Organisk, Social, Henvis, Betalt, Email.

Enhed

Filtrer efter skrivebord, mobil eller tablet.

Kun nye

Vis kun første gang besøgende, der aldrig er blevet set før.

Bearbejdede eksempler

Find besøgende fra en specifik kampagne

Scenarie:
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?
Hvad skal man gøre:

I Besøgsloggen skal du bruge søgefeltet og skrive "sommer-salg". Søgechecks henviser til URLs og side URLs, så UTM parametre vil matche. Du kan også filtrere efter Kilde = Betalt for at indsnævre yderligere.

Find en kunde, der rapporterede et problem

Scenarie:
A customer emailed saying "your checkout page was broken yesterday around 3pm." How do you find their session?
Hvad skal man gøre:

Søg efter deres e-mail adresse i Besøgsloggen. Hvis de var logget ind, vil deres identitet vise sig. Sæt datoområdet til i går. Kig efter besøg for at tjekke sider omkring kl. 15. Klik på deres session for at se den fulde side flow og eventuelle JavaScript fejl.

Detektér en loop-hitter eller scrafer

Scenarie:
You notice an IP address has 500+ visits in one hour, all to the same page.
Hvad skal man gøre:

Dette er sandsynligvis en bot, skraber, eller brudt script. Gå til Besøgslog og søge efter IP. Check: (1) Er alle besøg på samme side? (2) Er brugeragenten en kendt bot? (3) Er sessionen altid varighed 0 Hvis bekræftet som en bot, gå til sikkerhed og blokere IP.

Besøgslog vs sessioner vs Live feed

Besøgslog

Rå sidebelastninger. En række per side visning. Bedste for: undersøge specifikke sider, finde trafik fra specifikke kilder, diagnosticere tracking problemer.

Sessioner

Grupper sidevisning i rejser. En række pr. besøg session. Bedste for: forstå brugerflow, måling sessionsvarighed, identificere konverteringsstier.

Levende foder

Real- time aktivitet. Viser besøgende i øjeblikket på dit websted. Bedste for: overvågning kampagner i gang, spotting high- intention besøgende, ser supportmuligheder.

Hvorfor ser jeg mine egne besøg i loggen?+

OpsIQ spore alle besøg som standard. For at udelukke din egen trafik, tilføje dine IPadresse til de udelukkede IPs liste i Indstillinger > Sporing.

Hvorfor viser en besøgende "Ukendt" land?+

GeoIP opslag kræver enten Cloudflare geo headers (automatisk hvis du bruger Cloudflare) eller en MaxMind GeoLite2 database fil. Tjek Indstillinger > GeoIP sti for at sikre databasefilen eksisterer og er læsbar.

Hvor længe opbevares besøgsdata?+

Besøgsdata opbevares i opbevaringsperioden indstillet i Indstillinger (standard: 90 dage). Derefter bliver gamle optegnelser automatisk renset af cron- retentionjobbet.

Analyse

Sessioner

Sessions gruppe flere sidevisninger fra samme person til en enkelt rejse. Mens Besøgende log viser individuelle side belastninger, Sessioner viser dig, hvordan folk bevæger sig gennem din hjemmeside fra landing til exit.

Sessioner
SessionerSessionslog- tabellen med IP, land, enhed, kilde, varighed og sider kolonner, og en markeret trusselsrække.Sessioneryoursite.comLand (NG)SessionslogIP (S)LANDANORDNINGERKILDEVARIGHEDSIDER41.62.10.4DanmarkSkrivebordgoogle3m 12s6102.89.6.2NGMobildirect1m 05s388.21.4.9DESkrivebordutm: annoncer7m 48s11203.0.113.9USMobilreferral42s21SESSION LOGGrupperejser2COLUMNSLand · enhed · kilde · varighed3THREATRisika- sessioner markeret
Den virkelige Session Log: hver besøgende rejse som en række (IP, land, enhed, kilde, varighed og sider) med risikable sessioner markeret med rødt.

Hvordan sessioner fungerer

En session starter når en besøgende indlæser deres første side. Den fortsætter som de navigerer til flere sider. En session slutter, når den besøgende er inaktiv i sessionstimeperioden (standard: 30 minutter) eller lukker deres browser. Den samme person vender tilbage efter timeout skaber en ny session.

Hvad hver session viser

Første side

Landingssiden, hvor den besøgende indtastede dit websted. Dette fortæller dig, hvilket indhold der tiltrækker folk.

Sidste side

Exit side, hvor den besøgende venstre. Hvis exit siden er ofte prissætningen side, kan de besøgende sammenligne dig med konkurrenter.

Side antal

Hvor mange sider den besøgende har set i denne session. Flere sider betyder normalt mere engagement, men det kan også betyde at den besøgende er tabt.

Varighed

Total tid fra første side belastning til sidste aktivitet. Sessioner med 0 sekunder er bounces (enkelt sidevisning, ingen yderligere interaktion).

Kilde

Trafikkilden til denne session (direkte, Google, social, henvisning osv.).

Land

Detected land fra den besøgendes IP adresse.

Bounce

Om den besøgende forlod efter visning kun én side. Bundede sessioner har en rød indikator.

Omregning

Om den besøgende har gennemført en tracked conversion event (køb, tilmelding, formular indsendelse) under denne session.

Filtre

Søg

Søg efter IP, e-mail, side URL, eller referere inden for sessioner.

Type

Filtrer af nye besøgende (første session nogensinde) eller Returnerer besøgende.

Kilde

Filtrér efter trafikkilde.

Land

Filtrér efter land for at se sessioner fra en bestemt region.

Trusler / unddragne

Filter der kun viser hoppede sessioner eller sessioner markeret som trusler.

Bearbejdede eksempler

Profil en kunde med høj værdi

Scenarie:
A customer just made a large purchase. You want to understand their journey before buying.
Hvad skal man gøre:

Søg efter deres e-mail i sessioner. Se på alle deres sessioner: (1) Hvor mange gange besøgte de, før de købte? (2) Hvilke sider så de? (3) Brugte de chat eller åbnede en billet? (4) Hvad var den samlede tid fra første besøg til at købe? Dette fortæller dig den typiske købsrejse for høj-værdi kunder.

Detektér login fra et nyt sted

Scenarie:
A customer usually logs in from Nigeria but you see a session from Russia.
Hvad skal man gøre:

Søg efter kundens e-mail i sessioner. Sammenlign det land, som de seneste sessioner har fundet sted. Hvis en session pludselig vises fra et usædvanligt land, kan det være lovlig rejse eller en kompromitteret konto. Tjek: (1) Var der et mislykket login forsøg før den succesfulde? (2) Gjorde IP ændre inden for samme session? Flag det til gennemgang, hvis mistænkelig.

Hvad er forskellen på en session og en besøgende?+

En besøgende er en person (eller browser). En session er et besøg fra den pågældende person. Den samme besøgende kan have mange sessioner over tid. Sessioner udløber efter timeout periode.

Hvordan identificerer OpsIQ de besøgende, der vender tilbage?+

OpsIQ bruger en kombination af cookies, browserfingeraftryk og bekræftede identitetstokens. Hvis en besøgende rydder sine cookies og ikke er logget ind, vil de fremstå som en ny besøgende.

Analyse

Levende foder

Live Feed viser besøgende i øjeblikket på din hjemmeside i realtid. Det opdateres automatisk hver 15 sekunder (konfigurerbar). Brug det under kampagner, produkt lancerer, og travle supportperioder for at se, hvad der sker lige nu.

Levende foder
Levende foderEn realtids aktivitet stream viser en live online-besøgende tæller og et feed af nylige besøgshandlinger efter land.Levende foderyoursite.com37besøgende online nuLevende aktivitetNuUS · visning /pricing2sUK · startede en chat5sDE · tilføjet til indkøbskurven9sCA · afsluttet tilmelding1RIGHT NOWSe hvem der er på stedet2AUTO-REFRESHOpdaterer hver 15s3AKTSpring ind i en live chat
Se, hvem der er på dit websted dette andet og hvad de gør, forfriskende automatisk hver 15 sekunder.

Sådan virker det

Live Feed meningsmålinger din server på den konfigurerede opdateringsinterval. Hver række viser en besøgende i øjeblikket på dit websted: deres nuværende side, land, enhed, kilde, sessionsvarighed og sidetal. Grønne højdepunkter indikerer ny aktivitet siden sidste opdatering. Klik på alle besøgendes rækker for at se deres fulde sessionsdetaljer.

Indstillinger

Genopfrisk interval

Hvor ofte live feed opdateringer. Standard: 15 sekunder. Lavere værdier (5-10s) give hurtigere opdateringer, men bruge flere serverressourcer. Højere værdier (30-60s) er lettere på serveren, men mindre real- tid.

Aktivt tærskelbeløb

Hvor længe en besøgende anses for at være "aktiv" efter deres sidste sidebelastning. Standard: 90 sekunder. Hvis en besøgende indlæser en side og derefter læser det for 2 minutter uden at klikke, de forsvinder fra live feed efter tærsklen.

Pause knap

Klik på Pause for at stoppe auto- genopfriske. Nyttigt, når du ønsker at læse detaljer uden listen opdatering. Klik på Genoptag for at genstarte.

Bearbejdede eksempler

Spot en varm bly under en kampagne

Scenarie:
You are running a product launch. A visitor just viewed your homepage, then features, then pricing, and is now on the checkout page.
Hvad skal man gøre:

Dette er højintention adfærd. I live feed: (1) Klik på den besøgende for at se deres session. (2) Hvis de starter en chat, AI vil have deres fulde rejse sammenhæng. (3) Hvis de forlader uden at købe, de bliver et spor i Leads side. (4) Overvej at skabe en proaktiv regel for at vise en chat besked, når besøgende nå checkout.

For mange besøgende fra samme IP

Scenarie:
You see 20 visitors from the same IP address, all on different pages.
Hvad skal man gøre:

Dette kan være: (1) Et kontor med fælles internet. Tjek, om besøgene ligner virkelige mennesker (forskellige sider, rimelige sessionsvarighed). (2) En bot eller skraber. Tjek, om sessioner er meget korte (0-1sekunder) eller rammer sider systematisk (3) En belastningsprøve. Hvis du kører automatiserede tests, udelukker IP fra sporing.

Hvorfor live feed viser 0 besøgende, når mit websted har trafik?+

Check: (1) Er widget script installeret på dit websted? (2) Er lokalitetsnøglen korrekt? (3) Er den aktive tærskel overskredet? (4) Bruger besøgende aggressive annonceblokkere, der blokerer for sporingsscriptet?

Kan jeg filtrere live-feed efter land eller enhed?+

Live feed viser alle aktive besøgende. Til filtrerede visninger, skal du bruge Besøgslog eller sessioner sider med deres filter muligheder. Live feed er bevidst enkel for real- time overvågning.

Analyse

Top sider

Top Sider viser, hvilke sider på din hjemmeside får mest trafik. Det rangerer sider ved besøg, engagement, konverteringer og støtte aktivitet. Brug det til at identificere dit bedste indhold, finde underpræsterende sider, og opdage sider, der genererer supportspørgsmål.

Top sider
Top siderEn liste over de mest besøgte sider med horisontale besøgsbarer og tællinger.Top sideryoursite.comMost- besøgte sider/pricing3,402/2,910/docs1,740/blog/seo-guide980/signup6401RANKEDMost- besøgte sider2SIGNALSBesøg og konverteringer3FINDSider, der kører billetter
Dine sider rangeret efter trafik og engagement, så du kan spotte top indhold og sider, der genererer støtte.

Hvad hver side viser

Side URL

Den fulde URL sti. Lignende sider (fx, produktvarianter) grupperes hvis gruppering er aktiveret.

Visninger

Samlet antal gange denne side blev indlæst i det valgte datointerval.

Unik besøgende

Hvor mange forskellige mennesker har set denne side (en person, der ser den samme side to gange tæller som 1 unik).

Afvisningsfrekvens

Procentdel af besøgende, der forlod dit websted efter kun at have set denne side. Høj bounce på landing sider = problem. Høj hoppe på "tak" sider = normal.

Gennemsnitstid

Hvor længe besøgende bruger på denne side i gennemsnit. Meget kort = ikke at læse. Meget lang på en formular side = forvirring.

Chat starter

Hvor mange chatsamtaler blev startet fra denne side. High chat starter på en produktside betyder, at varebeskrivelsen kan være uklar.

Understøttelseskort

Hvor mange supportbilletter blev skabt af besøgende, der var på denne side. Høj billetpris = potentielle UX eller indhold problem.

Bearbejdede eksempler

Find sider der kører support- spørgsmål

Scenarie:
Your support team keeps getting questions about shipping. Which page is failing?
Hvad skal man gøre:

Sortér Top Sider ved "Support billetter" eller "Chat starter" faldende. Kig efter produkt eller forsendelse sider med høje tællinger. Siden med de mest supportspørgsmål har sandsynligvis uklart information. Fix sideindholdet og overvåge, om support spørgsmål falder.

Find sider med høj exit rate

Scenarie:
You want to know where people leave your site most often.
Hvad skal man gøre:

Sortere ved at hoppe sats faldende. Ignorer sider, der naturligt exit punkter (tak sider, bekræftelse sider). Fokus på sider, som bør holde besøgende engageret: produktsider, priser, funktioner. Disse har brug for bedre calls- to- action eller klarere indhold.

Hvorfor viser en side 0 visninger, selvom jeg ved, at det får trafik?+

Check: (1) Er tracking widget installeret på denne specifikke side? Single-page apps måske ikke brand sidevisninger på ruteændringer. (2) Er siden udelukket i tracking indstillinger? (3) Er en CDN servering af en cachet version uden tracking script?

Analyse

Geo intelligens

Geo Intelligence viser, hvor dine besøgende kommer fra efter land, by, enhed og kilde. Brug det til at forstå dine geografiske markeder, beslutte sprogstøtte, planlægge regional markedsføring, og opdage mistænkelige trafikmønstre.

GeoCity in New York USA
Geo intelligensEt kort over besøgssteder ved siden af en rangering på per-country bar.Geo intelligensyoursite.comBesøgende efter placeringUSDanmarkDEDKNG1MARKETSLand, by, enhed2PLANSprog og regioner3WATCHSpot ulige trafik
Hvor dine besøgende kommer fra (efter land, by og enhed) til at størrelse markeder og spotte usædvanlig trafik.

Hvad du ser

Top lande søjlediagram

De øverste lande rangeret efter besøgstælling. Klik på et land for at bore ned til City- niveau data.

Landets doughnut

Synsopdeling af trafikken efter land.

Samlet landefortegnelse

Hvert land med besøgende i den valgte periode, viser besøgsantal, sessionstal, bounce rate og omregningskurs.

By bore- down

Klik på et land for at se, hvilke byer i landet har flest besøgende.

Hvordan GeoIP detektering virker

OpsIQ registrerer besøgsplacering på to måder: (1) Cloudflare geo headers. Hvis dit websted er bag Cloudflare, landedetektion er automatisk og præcis (2) MaxMind GeoLite2 database. Download den gratis database og konfigurere stien i Indstillinger. City- niveau detektion kræver Geolite2- City databasen, ikke kun landedatabasen.

VPN og proxytrafik

Besøgende, der bruger VPN 'er, vil synes at komme fra VPN- serverens placering, ikke deres virkelige placering. Dette er ved design. OpsIQ kan og bør ikke forsøge at omgå VPN 'er. Hvis du ser usædvanlige land mønstre, overveje, at 10-20% af besøgende kan bruge VPN 'er.

Bearbejdede eksempler

Uventet landtrafik

Scenarie:
You run a US-only business but 30% of traffic is from India.
Hvad skal man gøre:

Check: (1) Er disse reelle besøgende? Se på sessionsvarighed og sider set. Meget korte sessioner med høj bounce = sandsynligvis bots. (2) Finder de dig via Google? Tjek referenten. (3) Kan de være potentielle kunder på et nyt marked? Hvis trafikken er ægte og engageret, overveje at tilføje Indiaspecifikke priser eller indhold.

Beslutning om sprogunderstøttelse

Scenarie:
You want to know if you should translate your site into Spanish.
Hvad skal man gøre:

Se på Geo Intelligence side. Hvis Spanish- talende lande (Spanien, Mexico, Colombia, Argentina osv.) tilsammen repræsenterer mere end 10% af din trafik med lave hoppe satser, oversættelse er værd at overveje. Også kontrollere: gør besøgende fra disse lande konvertere til samme priser som dit primære marked?

Regional støtte skiftplanlægning

Scenarie:
You need to decide support team hours for different time zones.
Hvad skal man gøre:

Brug timebaseret heatmap (på Dashboard) kombineret med Geo Intelligence. Hvis 40% af din trafik er fra Europa og 35% Hvis du arbejder fra USA, skal du have dækning for begge tidszoner.Heatmap viser præcis, hvornår hver region er mest aktiv.

Land med besøg, men ingen ordrer

Scenarie:
Germany shows 500 visitors this month but zero sales.
Hvad skal man gøre:

Undersøg: (1) Er de hoppende på prissiden? Måske er din prisfastsættelse ikke konkurrencedygtig for dette marked. (2) Skiber du til Tyskland? Tjek om din forsendelsesside nævner Tyskland. (3) Er din checkout tilgængelig i EUR? Valuta mismatch forårsager opgivet check outs. (4) Er disse besøgende fra en enkelt kilde, der kan være lav- hensigt trafik?

Hvorfor viser en besøgende "Ukendt" land?+

GeoIP er ikke konfigureret. Enten opsættes Cloudflare (som tilføjer geo headers automatisk) eller downloader MaxMind GeoLite2 databasen og indstille filstien i Indstillinger > GeoIP- sti.

Kan jeg blokere trafikken fra bestemte lande?+

OpsIQ blokerer ikke for hvert land. Brug din webserver eller Cloudflare firewall regler for landbaseret blokering.OpsIQ fokuserer på synlighed, ikke adgangskontrol på netværksniveau.

Analyse

Intenttragt

The Intent Funnel klassificerer besøgssessioner efter, hvad de synes at være forsøger at gøre: gennemse, forskning, sammenligne, købe, få støtte, eller forlade. Brug det til at forstå balancen af hensigt på dit websted og identificere, hvor besøgende falder ud.

Intenttragt
IntenttragtEn tragt fra Gennemse til Forskning for at sammenligne med køb med tællinger, plus support og forlader chips.Intenttragtyoursite.comGennemse · 8,200Forskning · 4,100Sammenlign · 1,650Køb · 520Støtte 6%Forlader 11%1CLASSIFYHvad besøgende ønsker2STAGESGennemse for at købe3FIXFind drop- off
Sessioner klassificeret efter hensigt (gennemse, forskning, sammenligne, købe), så du kan se præcis hvor folk falder.

Intensive kategorier

Browsing

Besøgende kigger sig omkring. Korte sessioner, få sider, ingen specifikke mål opdaget.

Forskning

Besøgende læse produkt / funktion sider, docs, eller blog indhold. Længere tid på side, flere indhold sider.

Sammenligning

Besøgende ser priser, plan sammenligning eller feature tabeller. Ofte vender tilbage besøgende.

Køb

Besøgende på checkout, vogn eller signup sider. Høj hensigt. Dette er dine konverteringsmuligheder.

Støtte- søgning

Besøgende på hjælpsider, kontaktsider eller start chat.

Hoppende

Besøgende, der forlod efter en side.

Hvordan man læser tragten

Fortolkning af tragten

Scenarie:
1,000 visitors viewed Pricing. 270 opened chat. 92 started checkout. 64 paid. 18 opened support tickets.
Hvad skal man gøre:

Prisliste side er stærk nok til at skabe hensigt. Chat er vigtigt i køberstien: 27% af prissætning besøgende engagere sig med chat, før de køber. Support billetter efter kassen kan indikere aktivering eller betaling forvirring. Action: (1) Sikre AI chat svar prisspørgsmål godt. (2) Undersøg 18 post-checkout support billetter til fælles spørgsmål.

Tidsfiltre

Brug datointervallet til at sammenligne intentionsmønstre på tværs af perioder. For eksempel sammenligne Black Friday uge til en normal uge. Du bør se et spike i "Købe" hensigt og muligvis "Support- søger" hvis dine kampagner skabt forvirring.

Hvordan klassificerer OpsIQ hensigt?+

OpsIQ ser på siden URLs, session adfærd, og tidsmønstre. Prissætning sider signalsammenligning intention. Checkout sider signal køber hensigt. Hjælp / kontakt sider signal støtte hensigt. Klassificeringen er heuristic- baseret, ikke AI- drevet.

Kan jeg tilpasse intention kategorier?+

Ikke i øjeblikket. Kategorierne er bygget-i baseret på almindelige web adfærd mønstre. Brugerdefineret hensigt klassificering er på køreplanen.

Analyse

Kromner, retention og stier

Byg brugerdefinerede rejser fra side eller begivenhed trin, måle kohort fastholdelse og opdage stier besøgende oftest tage gennem et websted.

Produktskærm
Krydderier i form af blomstergrifler / støvfangEn brugerdefineret tragt viser hver side / begivenhed trin, de resterende besøgende og konverteringsprocent.Krydderier i form af blomstergrifler / støvfangarbejdsområdeSTEPS4CONVERSION28.4%WINDOW72hSYGDOM AF LIVE ARBEJDSPLADSERPrisfastsættelsesvisning1,420 besøgende100%Plan valgt780 besøgende54.9%Check out startet530 besøgende37.3%Ordren er afsluttet403 besøgende28.4%1DEFINEVælg 2–8 trin2FORANSTALTNINGSæt konverteringsvindue3FORBEDRINGFind den største dråbe
En brugerdefineret tragt viser hver side / begivenhed trin, de resterende besøgende og konverteringsprocent.

Krydderier i form af blomstergrifler / støvfang

Opret en navngivet tragt med 2 til 8 side eller begivenhed trin. Indstil konverteringsvinduet i timer; en besøgende tæller kun, når de bestilte trin forekommer inde i dette vindue. Brug droppet mellem trin til at vælge hvor man kan inspicere replay, fejl, sidehastighed eller beskeder.

Tilbageholdelse

Tilbageholdelse grupper besøgende i ugentlige kohorter og viser, hvor mange tilbage. 6, 8 eller 12 week horisont. Hold kohortedefinitionen stabil, når du sammenligner udgivelser eller kampagner.

Stier

Stier viser de mest almindelige sidesekvenser. Vælg en sti længde fra 2 til 5 sider til at holde resultatet læseligt. Brug det til at finde uventede omveje, fælles udgange og indhold, der gentagne gange går forud for konvertering.

Brugerdefinerede tragte er analytiske definitioner, ikke automatiseringer. For at reagere på et afsluttet trin, skal du oprette en konvertering mål, segment, udløser eller workflow.

Analyse

Session replay

Session Replay lader dig se en tidslinje for, hvad en besøgende gjorde på dit websted: hvilke elementer de klikkede, hvordan de rullede, hvor de svævede, og hvad de skrev (med følsomme felter maskeret). Brug det til at diagnosticere UX problemer, kontrollere fejlrapporter, og forstå kundeforvirring.

Session replay
Session replayEn genafspilningsafspiller, der viser en sideviewport med markør, et sessionsinfo panel og en tidslinje scrubber.Session replayyoursite.comKøb nuMØDET TIDLIGEREVarighed 3m 12s14 klikUS · SkrivebordChrome 1241WATCHklik-, rull-, type2MASKEDFølsomme felter skjult3DIAGNOSEVerificér fejlrapporter
Replay præcis hvad en besøgende gjorde: klik, ruller, skrive (følsomme felter maskeret), på en tidslinje scrubber.

At finde den rigtige session

Fra siden Sessioner, se efter sessioner med rapporterede problemer, high page tæller uden konvertering, eller sessioner fra kunder, der har indgivet supportbilletter. Klik på genafspilningsikonet for at åbne tidslinjen visning.

Hvad spil viser

Tidslinje

En vandret bjælke, der viser begivenheder over tid. Klik hvor som helst på tidslinjen for at hoppe til det øjeblik.

Sidenavigation

Hver side belastning vises som et segment på tidslinjen. Du kan se den nøjagtige sti, besøgende tog.

Klik

Klik begivenheder vises som prikker på tidslinjen og som højdepunkter på siden genopbygning.

Rulning

Rul dybden er sporet, så du kan se hvor langt ned besøgende læse.

Form interaktion

Feltfokus og indtastning registreres. Tekstinput i adgangskode og følsomme felter er som standard maskeret.

Privatliv og maskering

Session replay masker følsomme formularfelter som standard. Adgangskodefelter, kreditkortindgange og felter markeret med data-opsiq-maske registreres aldrig. Du kan indstille yderligere maskeringsregler i Indstillinger > Tracking. Hvis din compliance politik kræver det, kan du deaktivere reafspille helt.

Diagnosticering af en brudt udtjekning

Scenarie:
A customer says "I tried to buy but the button did nothing."
Hvad skal man gøre:

Find deres session på siden Sessions (søg via e-mail). Åbn genafspilningen.1) Har de klikke på den rigtige knap? (2) Har en JavaScript fejl opstår? (Tjek siden med JS Fejl for den tid.) (3) Har siden genindlæst eller vist en fejlmeddelelse? (4) Var et krævet felt tomt? Genafspilningen viser præcis, hvad der skete.

Hvor meget opbevaring genspiller session brug?+

Replay data vokser med trafikvolumen. Brug retentionsindstillinger til automatisk at rydde op gamle replay-data. For high-traffic sites, overveje en kortere genspils opbevaring periode (fx 30 dage) til at styre lagring.

Kan besøgende fravælge at spille igen?+

Hvis "Respect Do Not Track" er aktiveret i Indstillinger, registreres besøgende med DNT-overskrifter ikke. Du kan også udelukke specifikke sider fra at genspille i sporingsindstillingerne.

Analyse

Begivenheder log

The Events Log viser hver begivenhed, at OpsIQ har optaget: sidevisninger, klik, chat starter, billet kreationer, salg, og brugerdefinerede begivenheder. Brug det til debug-integreringer, kontrollere webhook levering, og forstå rækkefølgen af handlinger.

Begivenheder log
Begivenheder logEn kronologisk hændelseslog med farvekodede typer badges: sidevisning, chat, salg, webhook og brugerdefinerede.Begivenheder logyoursite.compageviewDK · /pricing12:04:01chat.startUK · widget åbnet12:04:09salg$49.00· order #104212:05:22webhookpayment.succeeded12:05:23customdemo_booked12:06:101EVERYTHINGHver registreret begivenhed2DEBUGVerificér levering af webhook3ORDERSe den nøjagtige sekvens
En tidslinje over alt OpsIQ -records (sidevisninger, chats, salg, webkrogs, brugerdefinerede begivenheder) til fejlsøgning og revision.

Bygning i events (automatisk)

pageview

Fyret hver gang en sporet side belastninger. Inkluderer URL, titel, referrer og tidsstempel.

chat.started

Fyret når en besøgende åbner chatkontrollen og sender deres første besked.

chat.message

Fyret for hver besked i en chat samtale (både besøgende og AI / agent).

ticket.created

Fyret, når en ny supportbillet er oprettet (fra chat, e-mail, widget eller admin).

ticket.replied

Fyret, når et svar tilføjes til en billet.

order.completed

Fyret, når et køb er gennemført gennem en tilsluttet platform.

form.submitted

Fyret når en sporede formular indsendes (hvis formularsporing er aktiveret).

identify

Fyret, når en besøgende identificeres via et identitetstegn.

security.login_failed

Fyret, når et login forsøg mislykkes.

Brugerdefinerede begivenheder

Du kan sende brugerdefinerede begivenheder fra din hjemmeside eller server til OpsIQ. Brugerdefinerede begivenheder er nyttige for sporing af handlinger, der er specifikke for din virksomhed: klik på knappen, brug af funktionen, videospil, downloads osv.

JavaScript · brugerdefineret begivenhed fra 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 · optage en kontaktaktivitet fra din 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);

Filtrering af begivenheder

Begivenhedstype

Filtrér med specifikke begivenhedsnavne: sidevisning, chat. started, ticket. created osv.

Datointerval

Vis begivenheder fra en bestemt tidsperiode.

Søg

Søgeresultater efter søgeord (URL, e-mail, begivenhedsegenskabstal).

Hvor længe er der gået?+

Begivenheder følger retentionspolitikken som er angivet i Indstillinger. Standard: 90 dage. Højværdibegivenheder (køb, sikkerhedshændelser) kan indstilles med længere retention.

Kan jeg bruge begivenheder i A / B eksperimenter?+

Ja. Når du opretter et eksperiment, vælger du en konverteringsbegivenhed. Enhver bygnings-i eller brugerdefineret begivenhed kan bruges som konvertering mål.

Analyse

A / B-forsøg

Eksperimenter lader dig teste to versioner af en side eller funktion og måle, som man udfører bedre. OpsIQ spor indtryk, konverteringer, og statistisk betydning.

A / B-forsøg
A / B-forsøgTo variantkort, der sammenligner konverteringshastigheder med et vinderskilt og betydning på den førende variant.A / B-forsøgyoursite.comVariante A4.2%konvertering · 1,020 visningerVariante BVINDER6.8%konvertering · 1,005 visninger+62% elevator · 96% signifikant1PRØVNINGTo varianter head- to- head2FORANSTALTNINGKonverteringer og betydning3TRUFFET FØLGENDE AFGØRELSEDeklarér en vinder
Kør to varianter, se konverteringer og statistisk betydning, og erklære vinderen.

Hvordan eksperimenter virker

1
Opret et eksperiment

Giv det et navn, definere din primære metrisk (konvertering begivenhed), og indstille varianter (kontrol og test).

2
Kør det

OpsIQ tilfældigt tildeler besøgende til varianter og sporer deres adfærd. Må ikke ændre eksperimentet, mens det kører.

3
Læs resultaterne

Efter nok data er indsamlet, kontrollere konfidensniveau.95% tillid betyder, at du kan være 95% Jeg er sikker på, at forskellen er reel, ikke tilfældig chance.

Eksperimentstater

Udkast

Oprettet, men endnu ikke startet. Du kan stadig redigere varianter og målinger.

Kører

Aktivt at tildele besøgende til varianter. Rediger ikke mens du kører.

Færdiggjort

Nået statistisk betydning eller blev manuelt stoppet. Resultater er endelige.

Arkiveret

Resultaterne er blevet gennemgået, og forsøget er ikke længere nødvendigt på den aktive liste.

Bedste praksis

Definér din metrisk før lanceringen

Beslut hvad du måler før start. Valg af en metrisk efter at se resultater introducerer bias.

Ekskl. intern trafik

Tilføj dit holds IP adresser til udelukkelseslisten, så personalets besøg ikke skæve resultater.

Løb længe nok

Stop ikke et eksperiment efter 100 besøgende. Du har brug for hundredvis eller tusindvis af besøgende per variant for pålidelige resultater.

Test en ændring ad gangen

Hvis du ændrer overskriften OG knappens farve, vil du ikke vide, hvilken ændring forårsagede forbedringen.

Registrer din beslutning

Efter eksperimentet slutter, bemærk hvilken variant der vandt og hvorfor du valgte at gennemføre det.

Hvor mange besøgende skal jeg bruge til et gyldigt eksperiment?+

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.

Kan jeg køre flere eksperimenter på samme tid?+

Ja, men vær forsigtig. Hvis to eksperimenter påvirker den samme side, kan deres resultater interagere. Det er sikrere at køre eksperimenter på forskellige sider eller funktioner samtidigt.

Analyse

JavaScript fejl

JavaScript Fejl indsamler klient- side fejl fra din hjemmeside besøgende. En brudt knap, en mislykkedes API call, eller en manglende ressource dukker op her. Brug den til at finde og rette fejl, der påvirker virkelige kunder.

JS fejl
JavaScript fejlEn liste over optagne front- end fejl med sværhedsindeks, kildefil, browser og forekomst tæller.JavaScript fejlyoursite.comSeneste fejlTypeError: kan ikke læse x af udefineretcheckout. js:42 · Chrome×214404, der indlæser /assets/app.cssIndeks · Safari×88Ufanget (i løfte) NetworkErrorapi.js:17· Firefox×51Advarsel om udstigning: Load begivenhedvendor. js · Edge×331CAPTUREFejl på klientsiden2IMPACTTæller og browsere3FIXSquash rigtige bugs
Rigtige besøgende rammer brudt kode overflade her (besked, kilde, browser og hvor ofte), så du kan løse hvad der betyder noget.

Hvad hver fejl viser

Fejlmeddelelse

JavaScript fejltekst (fx "TypeError: Kan ikke læse egenskaber for udefinerede").

Side URL

Hvilken side fejlen opstod på.

Browser og enhed

Hvilken browser og enhed type så fejlen. Nogle fejl er browser- specifikke.

Stack- spor

Kodestedet hvor fejlen opstod. Klik for at udvide hele stack sporet.

Første set

Da denne fejl første gang dukkede op.

Sidst set

Når denne fejl senest opstod.

Tælling

Hvor mange gange denne fejl er blevet registreret.

Berørte sessioner

Hvor mange forskellige besøgssessioner oplevede denne fejl.

Prioritering af fejl

Ikke alle JavaScript fejl kræver øjeblikkelig opmærksomhed. Prioritér ved: (1) fejl på kritiske sider (checkout, tilmelding, login), (2) fejl med høje sessionstal, (3) fejl, der dukkede op for nylig (mulig regression fra en kode ændring), (4) fejl på din egen kode (ikke tredjeparts scripts).

Fastsættelse af en brudt udtjekningsknap

Scenarie:
The JS Errors page shows "TypeError: Cannot read properties of undefined (reading submit)" on /checkout, affecting 45 sessions this week.
Hvad skal man gøre:

Det betyder: 45 virkelige kunder kunne ikke fuldføre check out. Trin: (1) Åbn siden i den samme browser / enhed kombination. (2) Åbn browser konsol og reproducere fejlen. (3) Kontroller stack spor for at finde den nøjagtige linje kode. (4) Fix fejlen, implementere og overvåge fejltallet går til nul.

Er OpsIQ fange fejl fra tredjeparts scripts?+

Ja. OpsIQ indfanger alle JavaScript fejl på siden, herunder fejl fra analytics scripts, chat widgets og annonce scripter. Filtrér efter URL i stack sporet til at fokusere på din egen kode.

Hvordan udelukker jeg kendte harmløse fejl?+

Man kan ikke undertrykke specifikke fejl i OpsIQ, men du kan filtrere listen efter side URL eller fejlmeddelelse. Retter eller ignorerer fejl fra browserudvidelser (de viser ofte som fejl fra ukendte kilder).

Salg

Salg og ombygninger

Salgssporing forbinder din butik eller fakturering platform til OpsIQ, så du kan se indtægter sammen med besøgende adfærd. Hvert køb tilskrives en besøgende rejse, så man ved, hvilke sider, kampagner og kanaler drev indtægter.

Salg
SalgSalgsskærmen: en omsætning i alt med en All- time periode kontrol, en søgning, og en Seneste indkøb tabel (dato, kunde, platform, beløb, kilde).Salgyoursite.comINDTÆGTER$42,180+18%All time ▾Søg e-mail, IP, Ordrens...Nylige indkøbDATOTIDLIGEREPLATFORMBELØBKILDEJun 3[email protected]Shopify$49googleJun 3[email protected]WooCommerce$129directJun 2[email protected]Stripe$480annoncer1INDTÆGTEROrdrer og fornyelser2RECENT PURCHASESDato · kunde · beløb3ATTRIBUTEDTil trafikkilden
Den virkelige salgsskærm, indtægter op toppen, derefter Nylige indkøb (dato, kunde, platform, beløb), hver tilskrives sin trafik kilde.

Salgsdashboard

Dagens salg

Indtægter fra ordrer afsluttet i dag. Forfrisker med hver ny ordre begivenhed fra din tilsluttede platform.

Denne uge / denne måned / i alt

Indtægter, der er aggregeret i perioden. Tilbagebetalinger fratrækkes disse totaler.

Trend diagram

Linjediagram, der viser daglig omsætning i det valgte datointerval. Kig efter toppe (kampagner) og fald (problemer, sæsonbestemt).

Top konvertering kilder

Hvilke trafikkilder fører til de fleste køb. "Direkte" købere ofte bogmærke dit websted. "Google" købere fandt dig gennem søgning.

Nylige køb

De seneste ordrer med kunde e-mail, beløb, valuta og elementer købt.

Platformopsætningsvejledninger

Shopify

Go to Connectors > Shopify. Create a custom app in your Shopify admin (Settings > Apps and sales channels > Develop apps). Grant scopes: read_orders, read_customers, read_products. Copy the Admin API access token. In OpsIQ, enter your store domain (e.g., your-store.myshopify.com) and the access token. Click Test Connection. If successful, enable webhook sync for real-time order notifications.

WooCommerce

Gå til forbindelser >WooCommerce. i din WordPress admin, gå til WooCommerce> Indstillinger > Avanceret > REST API. Opret en nøgle med læse / skrive tilladelse. Kopiér forbrugernøglen og forbruger hemmelighed. OpsIQ, indtast dit websted URL, forbrugernøgle, og forbruger hemmelighed. Klik på Test Connection.

Hvad er BigCommerce?

Gå til Connectors > BigCommerce. I din BigTrade admin, gå til Avancerede Indstillinger >API Konti. Opret en V2 / V3 API Konto med læseplads for ordrer, kunder og produkter. Kopiér adgangskoden, klientens id, og API sti. Indtast dem i OpsIQ og test.

Magento 2

Gå til Connectors > Magento. I din Magento admin, gå til System > Integrationer. Opret en ny integration med API Ressourceadgang til Salg, Kunder og Katalog. Aktivér integrationen og kopiér adgangstavlen. Indtast den i OpsIQ med din Magento base URL.

PrestaShop

Gå til Connectors > PrestaShop. I din Prestashop admin, gå til Avancerede parametre > Webservice. Aktivér webtjenesten og oprette en ny nøgle. Giv adgang til ordrer, kunder og produkter. Kopiér nøglen og indtast den i OpsIQ med din butik URL.

OpenCart

Gå til Connectors > OpenCart. Generér API legitimation fra dit OpenCart admin panel. Indtast API URL, brugernavn, og nøgle i OpsIQ. Forbindelsen bruger OpenCart 's REST API for ordre- og kundedata.

osCommerce

Gå til Connectors > osCommerce. Indstil databaseadgang eller API legitimation som dokumenteret i connector settings. osCommerce integration typisk kræver direkte databaseadgang eller en brugerdefineret API modul.

Stripe

Gå til forbindelser > Stripe. Kopiér din Stripe begrænset API nøgle fra Stripe instrumentbrættet (Udviklere >API taster). Nøglen har brug for læse adgang til Kunder, afgifter, fakturaer og abonnementer. Indtast det i OpsIQ. Indstil webhook endpoint for realtids begivenheder.

Brugerdefinerede / andre platforme

Brug REST API eller webkroge til at sende salgsbegivenheder fra enhver platform. Send order. completed events med kundens e-mail, beløb, valuta og elementer. Se afsnittet Begivenheder API for nyttelast format.

Forståelse af din salgstragt

Top konvertering kilder

Viser hvilke kanaler der bringer betalende kunder. 1000 besøgende og 50 salg, det vil sige en5% konverteringsrate. Hvis e-mail bringer 200 besøgende og 30 salg, dvs. 15%. E-mail er mere effektiv per besøgende.

Restitutionsbeløb

Refinansierede ordrer spores separat. De reducerer din nettoindtægt totaler. Hvis refunderingsrater er høje fra en bestemt kilde, trafikken kan være lav kvalitet.

Valuta håndtering

OpsIQ gemmer den oprindelige transaktionsvaluta og beløb. Multivalutavirksomheder se indtægter i hver valuta. Normaliseret rapportering bruger den konfigurerede vekselkurs.

Bearbejdede eksempler

100 besøgende, nul salg

Scenarie:
Your pricing page gets 100 visitors per day but zero conversions.
Hvad skal man gøre:

Undersøg: (1) Brug Session Replay på prissætning side besøgende. Se, hvordan de interagerer med prissætningen tabellen. (2) Tjek Top Sider for prissætningen side bounce sats og tid-on- side. (3) Check Chat samtaler fra prissætning side besøgende. Hvilke spørgsmål stiller de? (4) Sammenlign din prissætning side til konkurrenter. (5) Prøv et A / B eksperiment med forskellige priser layouts.

Tildeling af en marketingkampagne

Scenarie:
You sent an email campaign with UTM tags. How do you measure its revenue impact?
Hvad skal man gøre:

Gå til Salg og filter ved kilden. Søg efter kampagnen UTM parameter. Du vil se: (1) Hvor mange besøgende kom fra e-mailen. (2) Hvor mange omregnet til salg. (3) Samlede indtægter, der er afsat til kampagnen (4) Sammenlign med den samme periode før kampagnen.

Hvorfor viser Sales nul, selvom min butik har ordrer?+

Check: (1) Is the platform connector connected and healthy? Go to Connectors and check the status. (2) Is webhook sync enabled? If using polling, is the cron job running? (3) Does the connector have the right API scopes? For Shopify, you need read_orders.

Hvordan tildeler OpsIQ et salg til en besøgende?+

Når en ordre kommer ind via stikket, matcher OpsIQ kundens e-mail til en kendt besøgende. Hvis den besøgende blev sporet før købet, er salget tilskrives deres besøgende rejse, herunder trafik kilde, landing side, og session historie.

Kan jeg manuelt tilføje salg?+

Du kan sende salgsarrangementer via REST API eller webkroge fra ethvert system. Begivenhedsformatet er dokumenteret i Events API afsnit.

Salg

Blade

Leads er besøgende eller kunder, der viser køb eller støtte hensigt. OpsIQ registrerer automatisk fører baseret på adfærd: prissætning sidebesøg, returbesøg, chat interaktioner, checkout starter, og høj engagement. Brug den Leads side til at prioritere opfølgning og fodre din CRM-rørledning.

Blade
BladeDen Leads skærm: en søgbar tabel med IP/ e-mail, placering, enhed, kilde og tid-on- site kolonner, og top kilde og land.Bladeyoursite.comSøg IP, by, land...Top source: google · Top land: USAIP / EMAILPLADSEANORDNINGERKILDETIDS@@41.62.10.4Storbritannien · LondonMobilgoogle4m 12s[email protected]USA · New YorkSkriveborddirect7m 02s[email protected]DE · KøbenhavnMobilutm: annoncer5m 40s203.0.113.9CA · TorontoSkrivebordgoogle3m 28s1DETECTEDHøjtstående besøgende2TOPLedende kilder og lande3ENRICHEDIP, placering, enhed, tid
Den virkelige Leads skærm, high- intention besøgende som et søgbart bord (IP/ e-mail, placering, enhed, kilde, tid på stedet) med top kilder og lande.

Hvad der fører til det

Prisfastsættelsesbesøg

Besøgende, der ser din prissætning eller planer side er aktivt overvejer et køb.

Besøg på hjemkomststedet

Besøgende, der kommer tilbage flere gange er engageret, men endnu ikke konverteret.

Chat interaktioner

Besøgende, der starter en chat, søger aktivt hjælp, enten før-køb eller efter-køb.

Checkout starter

Besøgende, der når checkout side, men ikke fuldføre købet.

Indlæg

Besøgende, der indsender en kontaktformular, demo anmodning eller signap form.

Højsidet engagement

Besøgende, der ser mange sider med lang sessionstid er dybt forskningskrævende.

Blydetailpanel

Klik på et hvilket som helst spor for at se deres fulde profil:

Identitet

Navn, e-mail, virksomhed hvis kendt. Anonyme spor viser IP og placering.

Sessioner

Alle sessioner fra dette bly med sideflow, varighed og kilde.

Sider set

Hver side de besøgte, beordret af rekognoscering.

Kilde

Hvordan de fandt dig: økologisk, betalt, social, henvisning, direkte.

Blyscore

A0-100 score baseret på adfærd intensitet, recoence, og side hensigt.

CRM-status

om dette spor er blevet tilføjet CRM som en kontakt eller aftale.

Salgstips

AI- genereret forslag om, hvad der skal gøres næste (fx "Besøgte prissætning 3 gange · overveje proaktiv outreach").

Højværdi- blyskilt

Førere med en score over 80 få et "High Value" skilt. Det er dine hotteste udsigter. Prioritize dem for outreach, proaktiv chat eller CRM rørledning indgang.

Bearbejdede eksempler

Arbejde med et varmt bly

Scenarie:
A lead viewed your pricing page 3 times in 2 days, started a chat asking about enterprise plans, but has not purchased.
Hvad skal man gøre:

Dette er en høj hensigt. Trin: (1) Kontroller deres ledende detaljer for virksomheds- og rolleinformation (2) Gennemgå chatudskriften for specifikke behov og indvendinger. (3) Opret en aftale i CRM med de indsamlede oplysninger. (4) Tildel en opfølgningsopgave for et salgsholds medlem. (5) Hvis de vender tilbage til prisfastsættelsessiden, kan den proaktive chatregel udløse en personlig besked.

Konvertering af anonyme spor til CRM-kontakter

Scenarie:
You have 50 anonymous leads with high scores but no email addresses.
Hvad skal man gøre:

Indstillinger: (1) Opret en proaktiv regel, der tilbyder en rabat eller ressource download i bytte for e-mail på high- intention sider. (2) Brug chatkontrollen til at bede om e-mail, når anonyme besøgende starter en samtale. (3) Tilføj en identitet token til din login / tilmelding sider, så returnering besøgende er automatisk identificeret.

Hvordan beregnes hovedpointene?+

Scoren mener: tilbagevendende besøg (seneste = højere), hyppighed af besøg (mere = højere], sider set (prissætning / checkout = højere}, sessionsvarighed (længere = højere.), chatinteraktioner (engageret = højere!) og returbesøg (flere sessioner = højere?).

Kan jeg tilpasse bly scoring regler?+

Ja. I CRM-konfiguration kan du tilføje lead-scoring regler, der øger score baseret på specifikke søgeord, begivenheder, kilder eller sidemønstre.

CRM

Din CRM · start her

OpsIQ sender en fuld AI- første CRM, der fanger kundesandhed, renser data, scorer fører, trænere tilbud, prognoser indtægter og handler, med hjemmeside intelligens, støtte, billetter, produkter og betalinger som én levende graf. Hver AI handling er indkøbt, forklarlig, reversibel og approvalskontrolleret.

AI CRM
AI CRM-oversigtEn Trust Dial indstillet til Copilot ved siden af fire AI agent kort: Steward, Prospector, Tilbageholdelse og Analytiker.AI CRMarbejdsområdeTrust DialManuelKopiotCity in Quebec CanadaAutopilotCity in New York USAHvor meget AI gør på egen håndDSSteward FormandDedupe, berigelse,validere dataSDRProspektorFind & scoreny virksomhedRTTilbageholdelseSpot churnDrivfornyelser10 mgAnalytikerPrognose ogForklar numre1AI-FIRSTFire specialagenter2YOU DECIDETillid Dial autonomi3TRUSTEDSendt og reversibel
En AI- første CRM kører af fire specialagenter, og en Trust Dial, der bestemmer, hvor meget de gør alene.

CRM-sider oversigt

AI CRM (Kommandocenter)

Start her

Din daglige hjem skærm: omsætning puls, hvad AI fundet, hvad det gjorde, godkendelse kø, næste træk, agent sundhed, og ROI.

Kontakter

Hovednet

Folk og virksomheder i din CRM. Søg, filter, score og administrere profiler.

Rørledning

Hovednet

Visuel deal board med drag- and-drop stadier, vinde sandsynlighed, og AI coaching.

Prognose og rapporter

Hovednet

Board- grade prognoser: forpligtet, sandsynligt, bedste tilfælde, med konfidensintervaller og nøjagtighed sporing.

Livscyklus

Hovednet

Hvor hver kunde står: aktiv, i fare, ekspansion klar, fornyelse skyldig, eller churning.

Byg min CRM

Konfiguration

Beskriv din CRM-opsætning på almindelig engelsk. OpsIQ genererer en reversibel plan og anvender den ved godkendelse.

CRM-sundhed

Ops.

Selv- check side: schema, agenter, ruter, AI handlinger, og levende data tæller.

Hvordan OpsIQ holder dig sikker

Spørg før handling

AI forslag gå til godkendelse kø. Du godkender, redigere eller afvise hver enkelt. Intet sker uden dit ord.

Overskriv aldrig

Når AI foreslår en ændring, det viser den aktuelle værdi og den foreslåede værdi. Human- indtastede data har herkomst beskyttelse.

Alt er reversibelt.

Hver AI handling er optaget i tidsskriftet. Du kan fortryde enhver ændring med et klik.

Forklarende

Hver AI anbefaling viser sin begrundelse og de datakilder, den brugte. Ingen sort boks.

- Helt ny?

1
Åbn AI CRM

Klik på AI CRM i venstre navigation. Kommandocentret viser din nuværende tilstand.

2
Kontrollér CRM-sundheds

Åbn CRM-sundhed for at verificere skemaet, agenter og ruter er klar.

3
Importér kontakter

Hvis en tilslutning er aktiv (Shopify, WHMCS, osv.), bliver kontakterne importeret automatisk. CSV eller oprette manuelt.

4
Opret en rørledning

Gå til Pipeline og oprette din første rørledning med faser (fx, bly, Kvalificerede, Forslag, forhandling, Won, Lost).

5
Tilføj din første aftale

Opret en aftale fra en kontakt, indstille beløb og scenen, og lad Deal Coach guide dig.

Skal jeg bruge CRM 'en?+

Nej. CRM er valgfri. OpsIQ fungerer perfekt som en tracking + support + AI platform uden CRM. Aktivér den, når du er klar til at styre salg og kundeforhold.

Kan CRM-systemet fungere uden stik?+

Ja. Du kan oprette kontakter og tilbud manuelt. Connectorer beriger CRM med platformsdata (ordrer, abonnementer, billetter), men er ikke påkrævet.

Hvad er Trust Layer?+

Trust Layer er det sikkerhedssystem, der styrer hvad AI kan gøre. Copilot-tilstand (standard): AI foreslår, menneskelige godkender. Autopilot mode (opt- in): Al virker automatisk på lav risiko, reversible operationer.

CRM

AI CRM-hjemmeskærmen

Kommandocentralen er din daglige briefing, og åbner den hver morgen for at se hvad der skete, hvad der skal gøres.

Kommandocenter
CRM-kommandocenterCRM-home med Prognose / Win- rate / Pipeline togles, en vægtet -prognose KPI, og en AI forslag kø med Act og Dismiss på hver række.CRM-kommandocenterarbejdsområdePrognoseGevinstrenteRørledningFORKORTELSE AF DET$74k87%Al forslag · godkender køOpret deal · Acme $24kfra en snak med køberenGodkendtFrafaldFlyt Nimbus → Forslagpositivt svar fundetGodkendtFrafaldLogopgave · opfølgende topingen aktivitet i 7 dageGodkendtFrafald1TOGGLEPrognose · Vinderrente · Rørledning2AI PROPOSESDeals, stases, opgaver3YOU DECIDEGodkend eller frafald
Det virkelige kommandocenter: skift mellem Prognose, Win rate og Pipeline, og arbejde AI forslag kø, godkende eller afvise de tilbud, fase bevæger sig og opgaver, det foreslår.

Hvad kommandocentret viser

Dagens numre

Pipeline værdi, tilbud vundet / tabt, nye spor, aktive tilbud og indtægter tendens, et øjebliksbillede af din nuværende tilstand.

Hvad OpsIQ fundet

AI- opdagede indsigt: stagnerede tilbud, at- risk konti, nye muligheder, data kvalitet spørgsmål, og markedssignaler.

Hvad OpsIQ gjorde

Handlinger AI har taget (i Autopilot) eller foreslået (i Copilot.): sceneforskud, score opdateringer, kontakt berigelse, og opgaveskabelse.

Nødvendig godkendelse

Queue of AI forslag venter på din beslutning. Hver viser den foreslåede handling, ræsonnement og beviser. Godkend, rediger eller afviser.

Næste træk

AI- rangeret liste over 10 vigtigste ting at gøre i dag: følge op på en hot deal, kontrollere en at- risk konto, forske et nyt spor osv.

Hjælpens status

Sundhed af AI agenter: Capture, Data Steward, Deal Intelligence, Dee Coach, SDR, Gentention. Green = kører, rav = har brug for opmærksomhed, rød = fejl.

Resultater

ROI tracking: tilbud påvirket af AI, tid gemt, nøjagtigheden af forudsigelser, og sammenligning med manuelt CRM arbejde.

Workflow for briefing om morgenen

1
Læs dagens numre

Tjek rørledningen sundhed og indtægter tendens. Er du på sporet i denne måned?

2
Ryd godkendelseskø

Gennemgå hvert AI forslag. Godkend sikre handlinger, redigere hvor det er nødvendigt, afvise dårlige forslag.

3
Tjek hvad OpsIQ fandt

Læs AI indsigt. Er nogen tilbud i fare? Er der nye muligheder?

4
Arbejd på næste flyteliste

Start med den øverste prioritet. AI har rangeret disse ved uopsættelighed og potentielle indvirkning.

Optagelse efter fritid

Scenarie:
You were away for a week. What happened while you were gone?
Hvad skal man gøre:

Åbn kommandocentralen og tjek: (1) "Hvad OpsIQ gjorde "viser alle AI handlinger under dit fravær. (2) "Skal godkendes" viser forslag, der venter på din gennemgang. (3) "Hvad OpsIQ fandt "fremhæver presserende punkter. (4) Sæt instrumentbrættets datointerval til din fraværsperiode for at se tendensen.

CRM

Kontakter, virksomheder og aftaler

CRM organiserer dine forretningsforbindelser i fire objekter: Kontakter (mennesker), Virksomheder (organisationer), tilbud (indtægtsmuligheder) og opgaver (opfølgningshandlinger).

CRM-objekter
CRM-objekterEn kontaktpost knyttet til Company, Deal og Task-objekter i en tilsluttet graf.CRM-objekterarbejdsområdeKontaktperson · e-mail · telefonVirksomhedaccountsAftaleindtægtsmulighedOpgaveOpfølgning1OBJECTSKontakter, virksomheder, aftaler2LINKEDEn tilsluttet graf3TASKSFollow- ups vedhæftet
Fire kerneobjekter (kontakter, virksomheder, tilbud og opgaver) knyttet til en tilsluttet kundechef.

Kontakter

Hvad er en kontakt

En person i din CRM. De kan være en kunde, et perspektiv, en partner eller et bly. Kontakter har en e-mail, navn, selskab, tags, livscyklusscenarie og hotness score.

Finde kontakter

Brug søgelinjen til at finde ved navn, e-mail, virksomhed eller tags. Brug filtre: livscyklus stadie, bly score, kilde, land, seneste aktivitetsdato, tildelt ejer.

Kontaktprofil

Klik på en kontakt for at se deres fulde profil: personlig info, virksomhed, tilbud, aktiviteter, billetter, chats, besøg på hjemmesiden, lead score og AI indsigt.

Hottness score

A0-100 score beregnet ud fra adfærdssignaler: hjemmesidebesøg, e-mail engagement, chat interaktioner, købshistorik og recount. Højere = varmere.

Virksomheder

... flere billetter...
Kontakt-virksomhed linking

Kontakter er knyttet til virksomheder via e-mail domæne eller manuel tildeling. En virksomhed kan have mange kontakter.

Varer

Hvad er en aftale?

En indtægtsmulighed. Deals har en titel, beløb, rørledning, scene, vinde sandsynlighed, lukkedato, tildelt ejer, og tilknyttede kontakter / selskab.

Vind sandsynlighed

En procentdel chance for at vinde handlen. Sæt manuelt eller beregnet af AI baseret på dine historiske win data. Driver den vægtede prognose.

Aftalens sundhedstilstand

Grøn (sund), gul (i risiko) eller rød (gået i stå). Baseret på aktivitet recount, fase varighed, og engagement signaler.

Opgaver

Hvad er en opgave

En opfølgning-up handling tildelt en person. Opgaver har en titel, forfaldsdato, prioritet, type (opkald, e-mail, møde, andet), og knyttet kontakt / aftale.

AI- genererede opgaver

AI skaber opgaver automatisk, når det registrerer noget har brug for opmærksomhed: opfølgning på en blokeret aftale, reagere på en at- risk konto, forskning et nyt spor.

Finde varme spor

Scenarie:
You want to see all high-score contacts in the UK who have not been contacted recently.
Hvad skal man gøre:

Gå til kontakter. Filter efter: Blyscore > 80, Land = Storbritannien, seneste aktivitet > 7 Det her er dine hotteste forsømte spor.

Oprettelse af en aftale fra en kontakt

Scenarie:
A contact just expressed interest in your enterprise plan during a chat.
Hvad skal man gøre:

Åbn kontaktprofilen. Klik på "Opret handel". Indtast titlen på handlen (fx, "Acme Corp - Enterprise Plan"), beløb, rørledning og fase (f. eks. "Kvalificeret"). Sæt den nære dato og tildele det til dig selv. Deal Coach vil begynde at spore denne mulighed.

CRM

Rørledningen (din deal board)

Pipeline er et visuelt bræt, hvor tilbud bevæger sig gennem faser fra venstre mod højre. Træk og slip kort til at fremme tilbud. Hvert kort viser dealens beløb, vinde sandsynlighed, og sundhedstilstand.

Rørledning
CRM-rørledningRørledningen skærm med Open- tilbud, Open-værdi, Vægtet-prognose og Attributed- tilbud statistik, en New- deal knap, en AI Acceve kø, og bly / Kvalificeret / Won bord.RørledningarbejdsområdeÅbne aftaler23Uudnyttet værdi$128kVejet prognose$74kAttributerede aftaler12+ Ny aftaleGodkend kø2 at gennemgåLÆSVolt Inc.4.000 dollars.Ild6.000 dollarsKVALIFICERETNimbus30.000 dollarsPeak9k $VUNDETKredsløb48k.1LIVE STATSUudnyttet værdi og vægtet prognose2AI QUEUEGodkend foreslåede aftaler3BOARDTræk tilbud efter trin
Den virkelige rørledningsskærm: levende statistik (åben værdi, vægtet prognose), en AI Accepter kø for foreslåede tilbud, og drag- and-drop bord.

Brug af rørledningen

1
Vis dine tilbud

Rørledningen viser alle aktive tilbud som kort arrangeret i kolonner (trin). Hver søjle header viser den samlede værdi af tilbud i det pågældende stadium.

2
Træk til forspring

Træk et kort til næste trin. Vindersandsynligheden og tæller opdateringen med det samme. Hvis flytningen mislykkes (valideringsfejl), falder kortet tilbage til sin oprindelige position.

3
Kontrollér kortskilte

Grøn badge = sund (seneste aktivitet, på sporet). Amber = i risiko (aftagende, har brug for opmærksomhed). Rød = gået i stå (ingen aktivitet for længe).

4
Klik for detaljer

Klik på et kort for at åbne deal detaljer panel med kontakter, aktiviteter, Deal Coach korte, og hurtige handlinger.

Godkendelseskø

AI forslag vises i godkendelsen kø øverst på pipeline side. Hvert forslag viser, hvad AI ønsker at gøre, hvorfor og beviserne. Du kan:

Godkendt

Accepter forslaget som - er. Handlingen løber gennem Trust Layer og registreres i tidsskriftet.

Redigér

Ændre forslaget, før det godkendes. For eksempel ændre den foreslåede fase eller justere beløbet.

Afvis

Afslå forslaget. AI lærer fra afslag til at gøre bedre forslag i fremtiden.

Vind sandsynlighed forklaret

Win sandsynlighed kan indstilles manuelt eller beregnes af AI. Når AI beregner det, det bruger en model uddannet på dine egne lukkede tilbud (vundet og tabt). Hvis du ikke har nok historiske data, AI bruger stadie standard sandsynlighed. Sandsynligheden driver den vægtede prognose: a $10,000 deal at 30% Sandsynligheden bidrager $3,000 til den "sandsynlige" prognose.

Flytte en aftale til Won

Scenarie:
A customer signed the contract and paid.
Hvad skal man gøre:

Træk kort til "Won" scenen. OpsIQ vil: (1) Markér handlen som lukket-vundet. (2) Opdatér prognosen. (3) Tilføj en "Won" aktivitet til tidslinjen. (4) Hvis konfigureret, udløse en webhook begivenhed (crm.deal.won). (5) Opdater kontakt livscyklusscenen til "Kunden".

Spotting af faste aftaler

Scenarie:
You want to find deals that have been in the same stage for too long.
Hvad skal man gøre:

Kig efter røde (stilstands) skilte på rørledningen. Disse tilbud har ikke haft nogen aktivitet i længere tid end den indstillede rådnetærskel (indstillet i CRM Configuration > Pipelines). Klik på hver stoppet aftale for at se Deal Coach 's anbefaling til reaktivering.

Må jeg få flere rørledninger?+

Ja. Gå til CRM Configuration > Pipelines for at skabe yderligere rørledninger. Fælles brugstilfælde: separate rørledninger til nye forretninger vs. fornyelser, eller til forskellige produkter / tjenester.

Hvad sker der, når jeg trækker en aftale til "Lost"?+

Aftalen er markeret som lukket-tabt. Du vil blive bedt om at miste grund. Handlen fjernes fra det aktive bræt, men kan findes i den lukkede handel filter. Kontakten forbliver i CRM.

CRM

Aftale coaching

The Deal Coach analyserer hver aftale og giver dig en kort med sundhedsstatus, risikosignaler, nøglepersoner, en kvalifikation checklist, møde prep, og foreslået næste handlinger. Alt er indkøbt. Træneren viser hvilken billet, chat eller aktivitet hvert krav kommer fra.

Deal coach
Deal coachEn deal card notering AI- detekterede risikosignaler med beviskilder, ved siden af en AI anbefaling og et udkast-e-mail-knap.Deal coacharbejdsområdeAcme Corp · $24,000Fase: Forslag · 60% vinderRISIKOSIGNALERIntet svar i 10 dageChampion gik stilleKonkurrent nævnt i chatKilder: billet #482 · chat 6/12 · e-mail trådAI anbefalerGenstart af den økonomiske vækstkøber med en ROI recapog en 7- dag lukkemekanisme.Udarbejdelse af e-mail1SIGNALSHvorfor en aftale kan slippe2SOURCEDAlle påstande citerer beviser3FORANSTALTNINGEROne- klik på næste trin
Træneren flag hvorfor en aftale kan glide (hvert signal citerer sin kilde) og hænder dig det næste skridt at tage.

Hvad træneren fortæller dig

Sundhedsmæssig forklaring

Hvorfor handlen er sund, i fare eller gået i stå. Specifikke signaler: dage i scenen, sidste kontaktdato, aktivitetsniveau, konkurrent nævner, protestancemønstre.

Signaler

Categorized into: indsigelser rejst, konkurrent nævner, prisforhandlinger, støtte risikoindikatorer, fornyelse / ekspansion signaler. Hvert signal links til sin kilde (chat udskrift, billet, e-mail, aktivitet).

Champion og blocker kort

Hvem hjælper handlen (mester) og hvem er imod (blocker). Baseret på interaktionsanalyse og kontaktroller.

Kejserliste for kvalifikationer

SECTlisten MEDDICC eller BANT (konfigurerbar) viser, hvilke kvalifikationskriterier der er opfyldt, og hvilke der mangler.

Mødeforberedelse

Før et planlagt møde udarbejder træneren en kort dagsorden, nøglepunkter at dække, spørgsmål, risici at tage fat på, og materialer til forberedelse.

Besvar og ring planer

Foreslåede næste besked eller kaldescript baseret på den aktuelle handel tilstand og seneste interaktioner.

Bevisets tidslinje

Hver påstand træneren gør links til en kilde: et billetnummer, chat udskrift ID, aktivitet dato, eller hjemmeside besøg.

Hvordan man bruger træneren

1
Læs det korte

Åbn enhver aftale og rulle til Deal Coach sektion. Læs sundhedstilstanden og nøglesignaler.

2
Tæt kvalifikationskløfter

Kontrollér tjeklisten for kvalifikationer. Hvis "Economic Buyer" mangler, skal du planlægge at identificere og engagere budgetindehaveren.

3
Retsakter om forslag

Træneren foreslår konkrete næste handlinger. Klik for at oprette en opgave, udkast til en e-mail eller planlægge et møde, alle dirigeret gennem godkendelsen kø.

Forberedelse af et stort møde

Scenarie:
You have a meeting with a prospect tomorrow about a $50,000 deal.
Hvad skal man gøre:

Åbn handlen og læs Forhåndsafsnittet. Det viser: (1) Nøglepunkter baseret på de seneste interaktioner. (2) Indsigelser de rejste i chatten sidste uge. (3) Konkurrent de nævnte i en støtte billet. (4) Spørgsmål om deres tidslinje. (5) Risikofaktorer, der skal håndteres proaktivt. Brug dette kort til at forberede en fokuseret, bevisbaseret dagsorden.

Forstå, hvorfor en aftale er i fare

Scenarie:
The pipeline shows a red badge on a deal you thought was going well.
Hvad skal man gøre:

Klik på aftalen og læse Deal Coach sundhed forklaring. Det kan sige: "Denne aftale har været i forslag fase for 22 dage (tærskel: 14). Sidste kontakt var 11 for dage siden. Den primære kontakt åbnede en supportbillet om data migration bekymringer 5 dage siden (billet # T -892). Forslag: adressere migration bekymring og planlægge en opfølgning opkald. "Nu ved du præcis, hvad der skal rettes.

CRM

Prognose og rapporter

Board- grade prognoser med en forsvarlig rækkevidde, deal-niveau ændre forklaringer, og nøjagtighed sporing, så du kan bevise og forklare dine numre.

Prognose
PrognoseEt kvartalsvist prognosemummer med Commit, Best- case og Pipeline bånd og en nøjagtighed note.PrognosearbejdsområdeFORST · DENNE KVARTER$312k87% til målUdvalgI bedste faldRørledningAI- vægtet efter deal sundhed og historie · nøjagtighed spores over tid1KATEGORIERTilsyn med rørledninger2AI-WEIGHTEDVed handel sundhed3PROVABLENøjagtighed sporet
Kommitte, best- case og rørledning på et øjeblik, AI- vægtet ved handel sundhed, med nøjagtighed spores, så du kan forsvare det.

Prognosekategorier

Udpeget

Dealer med 80% eller højere gevinstsandsynlighed. Det er dine mest sandsynlige gevinster. Dette bør være din forventede minimumsindtægt.

AI- vægtet sandsynlighed

Alle åbne tilbud vægtet med deres AI- beregnede vindersandsynlighed. Dette er den mest realistiske forudsigelse af, hvad du vil lukke.

I bedste fald

Alle åbne tilbud til fuld værdi. Dette er den maksimale mulige indtægt, hvis alt går perfekt (det sjældent gør).

Tiltrolighedsinterval

En 80% Sandsynlighedsbånd viser det realistiske område. Eksempel: "Du vil sandsynligvis lukke mellem $45,000 og $72,000 i dette kvartal ".

Hvad ændrede sig og hvorfor

Prognosen omfatter ugens-over-uge ændring tildeling. Når din prognose falder ved $15,000 rapporten forklarer præcist, hvilke aftaler der forårsagede ændringen: "Deal A smuttede til næste kvartal ($8,000), Deal B tabt ($5,000), Deal C reduceret i værdi ($2,000)."

Nøjagtighed tracking

Prognose for den forventede udvikling

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.

Kalibrering af vindsandsynlighed

Brier-score, der måler hvor godt sandsynligheden for at vinde stemmer overens med de faktiske resultater. Hvis aftaler med 70% sandsynlighed rent faktisk vinder _70% af gangene, er kalibreringen god.

Ugentlige snapshots

OpsIQ fanger et øjebliksbillede af din prognose hver uge (via cron). Over tid kan du se, hvordan din prognose nøjagtighed forbedres.

Ruller og advarsler

Omstilling på per- stadie

Hvor mange handler der flyttes fra hvert trin til det næste. Hvis 80% gå fra Kvalificeret til Forslag, men kun 20% Når du går fra forslag til forhandling, kan dine forslag have brug for arbejde.

Per- source-gevinsthastighed

Hvilke ledende kilder producerer de fleste gevinster. Invester mere i højvindskilder.

Per- ejer ydeevne

Hvordan hvert salgshold udfører: tilbud vundet, rørlednings værdi, gennemsnitlig deal størrelse, win rate.

Advarsler

Sandsække (urealistisk lave sandsynligheder), overbegå (urealistiske høj) og engageret-risiko (high-sandsynlighed tilbud viser stall signaler).

Forståelse af et prognosefald

Scenarie:
Your quarterly forecast dropped from $180,000 to $155,000 since last week.
Hvad skal man gøre:

Åbn siden med prognoser og tjek "hvad der ændrede sig". Rapporten viser: "Acme Corp deal ($15,000) flyttet til Lost, konkurrent valgt. Beta Inc deal ($8,000) tæt dato skubbet til næste kvartal. Ny aftale med Gamma LLC ($3,000) tilføjet i denne uge. "Nettoændringen er -$20,000 + $3,000 = -$17,000, forklarer faldet fra $180K til $163K (med de resterende $8K forklares ved sandsynlighedsjusteringer på andre tilbud).

CRM

Finde nye forretninger

Den Prospecting Agent hjælper dig med at finde og forske potentielle kunder. Beskriv din ideelle kunde, tilføje målvirksomheder, og lad AI forskning, score, og udkast til first-touch outreach.

Prospektering
ProspekteringEn liste over AI- fundet fremtidsvirksomheder med fit noter, scorer og et udkast-outreach knappen hver.ProspekteringarbejdsområdePerspektiver fundet af SDR-agentenNorthwind Ltd.SaaS · 50 personale · leje støtte88Udkast til outreachCobalt MfgFremstillingsvirksomhed · 200 personale74Udkast til outreachMesa Detailhandele-handel · 30 personale69Udkast til outreachVega SundhedSundhedspleje · 80 personale63Udkast til outreach1FINDAI-kilder, målkonti2HVORFit & intentrangeret3DRAFTFørst-touch skrevet for dig
SDR agenten finder målselskaber, scorer dem på plads og udskriver førstehåndsopsøgende til din anmeldelse.

Opsætning af tid på åbent tidspunkt

1
Beskriv din ideelle kunde

Gå til CRM Configuration > Prospecting. Beskriv din ideelle kunde profil (ICP): målindustrier, virksomhedens størrelse, jobtitler, geografisk fokus, produkt- match vilkår, og minimum fit score. Eksempel: "B2B SaaS virksomheder med 50-500 ansatte i USA / Storbritannien, der sælger udviklerværktøjer, med en VP af Salg eller chef for vækst som den primære kontakt ".

2
Tilføj målvirksomheder

Indtast virksomhedens domæner eller navne, du ønsker at forske. Du kan også lade AI foreslå virksomheder baseret på din ICP.

3
Gennemgå forskningsresultater

AI beriger hver virksomhed med tilgængelige data: størrelse, industri, tech stack, seneste nyheder, og fit score med forklaring.

4
Godkend outreach

For god- fit virksomheder, AI udkast en personlig førstehåndsmeddelelse. Gennemgå og godkende i køen.

Tilpasningsscoring

Hver udsigt får en0-100 fit score baseret på fem faktorer:

ICP-fit

Hvor godt virksomheden matcher din ideelle kunde profil (industri, størrelse, placering).

Hastesignaler

Er der beviser for, at de har brug for dit produkt nu? Jobstillinger, tech ændringer, klager over konkurrenter.

Budgetproxy

Virksomhedens størrelse, finansieringsstadiet og indtægtsindikatorer tyder på, at der er budgetmæssigt til rådighed.

Produktmatch

Hvor relevant dit produkt er for deres virksomhed baseret på industri og teknologi.

Støtteform

Om du kan betjene denne kunde effektivt (tidszone, sprog, kompleksitet).

Forskning af en målvirksomhed

Scenarie:
You want to evaluate whether acme.com is worth pursuing.
Hvad skal man gøre:

Tilføj acme.com til prospektlisten. AI 'en returnerer: Fit score 78/100 Grunde: B2B SaaS 120 medarbejdere, US- baseret, for nylig hyret en VP af Salg (uopsættelighed signal), bruger konkurrent X (produkt match). Købe signaler: besøgte din prissætning side to gange i sidste måned (fra hjemmeside sporing). Bedste kontakt: [email protected] (VP of Sales). Udpegede åbner refererer deres seneste leje og prissætning sidebesøg.

CRM

Automatisk opfølgning sekvenser

Sekvenser automatisere multi- step follow- up: en blanding af e-mail, vent, opgave, opkald og webhook trin, der kører automatisk efter du godkender den første send.

Sekvenser
OpfølgningssekvenserEn horisontal sekvens flow: e-mail, vent tre dage, E-mail og derefter en opgave, med svar detektion.OpfølgningssekvenserarbejdsområdeEfter du godkender den første send →E- mailIndledningVent.3 dageE- mailFollow- upOpgaveRingSkridt kan være e-mail, vent, opgave eller webhook. Et svar auto- stopper sekvensen.1AUTOMATEMultitrins opfølgning2STEPSe-mail · wait · task · webhook3YOU APPROVEFørste send er blevet sendt
Automatiseret multitrins opfølgning (e-mail, vent, e-post, opgave) som du godkender først og et svar stopper automatisk.

Hvordan sekvenser virker

1
Opret en sekvens

Definér trinene: e-mail, vent 3 dage, e-post, vent 5 dage, opgave (ring hvis ingen svar), e. Hvert e-mailtrin har en skabelon du kan tilpasse.

2
Tilmeld kontakter

Tilføj kontakter til sekvensen. AI kan også foreslå tilmelding fra prospektering resultater.

3
Automatisk udførelse

Skridt køre automatisk på tidsplanen. Hvis en kontakt svarer på et hvilket som helst punkt, rækkefølgen pauser automatisk.

4
Sporresultater

Se åbne priser, svarsatser, omregningskurser og afabonnenter pr. trin. Brug dette til at optimere din sekvens.

Replik forståelse

Når en kontakt svar, AI klassificerer svaret:

Positiv

Interesseret, ønsker at tale. Sequence pauser, opgave skabt til opfølgning.

Indsigelse

Har bekymringer, men ikke afvise. Sekvence pauser, opgave skabt med indsigelser detaljer.

Afmeld

Ønsker at stoppe med at modtage beskeder. Kontakt er undertrykt permanent.

Ikke nu

Interesseret, men timing er forkert. Sekvenser, snooze opgave skabt.

Forkert person

- Ikke den rette kontakt.

Støtte

Et supportspørgsmål, ikke et salgssvar.

Antispambeskyttelse

Opt- out håndtering

Afmeld anmodninger bliver hædret øjeblikkeligt og kontakten er undertrykt fra alle fremtidige sekvenser.

Daglig sending- hætte

Arbejdsområde-niveau daglig grænse (standard: 1,000 e-mails). Forebygger masse sender, at udløse spam filtre.

Grænse for kontakt med personer

Maksimal 1 besked pr. kontakt per dag. Forebygger overvældende individuelle mennesker.

Håndtering af over- cap

Skridt, der overstiger den daglige cap er udsat til næste dag. De bliver aldrig droppet eller sprunget over.

Hvad sker der, hvis en kontakt åbner en supportbillet under en sekvens?+

Sekvensen holder automatisk pause. Support tager prioritet over outreach. Sekvenset kan genstartes manuelt efter supportproblemet er løst.

Kan I A / B-testsekvenserne trin?+

Ikke direkte inden for sekvenser, men du kan oprette to sekvenser med forskellige beskeder og sammenligne deres resultater.

CRM

Vækstværktøjer

En side under CRM, der holder vækstmotoren: tilbagevendende indtægter (MRR / ARR), produktkataloget, lead-capture formularer, booking links og ledende routing. Alt her skriver direkte ind i CRM-formularen, så en formular indsendelse eller et booket opkald er en kontakt med historien, ikke en række i et regneark.

Hvad der bor på siden

Indtægter

Indtægter

MRR og ARR projiceret fra din rigtige fakturering hovedbog. Abonnementer er grupperet fra betalinger per platform, faktureringscyklussen udledes af betalingshuller, og et abonnement bortfalder, når en betaling er forsinket forbi 1.5 gange sin cyklus. Kunder link til CRM-kontakter automatisk, når hovedbogen bærer deres e-mail.

Produktkatalog

Katalog

En kilde til sandhed for hvad du sælger. Citater trække navn og liste pris fra kataloget, og accepterede citater rulle op i omsætning efter produkt. Products arkiv, de aldrig slette.

Blyindfangningsformer

Fangst

Hver formular får en hostet side plus en iframe integreret kode for dit eget websted. Indlæg bliver kontakter, ejeren får en meddelelse, og din routing regler tildele føringen.

Booking links til værelser

Skemalægning

Del et link, lad udsigter vælge en gratis slot. Slots respektere arrangørens arbejdstid, tidszone og eksisterende møder. En booking skaber mødet, e-mails udsigten en bekræftelse og underretter organisatoren.

Blyruditering

Routing

Territoriale regler kører først, derefter felt regler (matche et felt som land eller kilde), derefter rund- robin på tværs af din rep pool. Det ruter KONTAKTS og DEALS både, uanset dealens status: en vundet aftale stadig har brug for en ejer til provision tildeling, kontoansvar og opfølgning, og i ejer eller team synlighed tilstand en ubody record er usynlige for alle men en manager. Records skabt ved automatisering (en connect salg, chat, en import) bærer ingen interaktiv skaberen, så de er dirigeret af de samme regler om oprette snarere end venstre ejerløs. Alt, der allerede har en ejer er aldrig ombytte.

Opret din første formular

1
Åbne vækstværktøjer

Gå til CRM, derefter vækstværktøjer, så Lead-capture danner sektion.

2
Navn og vælg felter

Skriv et navn og en kommaadskilt feltliste, for eksempel navn, e-mail, telefon, besked. E-mail er altid påkrævet.

3
Del eller indlemmet

Kopiér det hostede link til at dele det hvor som helst, eller kopiere den indlejrede kode og indsætte den i en side på din hjemmeside.

4
Watch fører ankomme

Hver indsendelse er en CRM-kontakt med en formular. Indsendt aktivitet, en ejermeddelelse og automatisk routing.

💡
Offentlige indfangningssider bruger din arbejdsrums egen adresse. Cloud-arbejdsrum bruger deres tildelte underdomæne (virksomhed.opsiq Hjælp), så linket altid løser de rigtige data.

Bygge- og anlægsvirksomhed

Bots ser succes, du ser ingenting

En skjult honningkrukke felt lydløst smider bot indlæg.

Begrænset sats

Ti indlæg pr. time pr IP adresse på tværs af formularer og bookinger.

Samtykke forbliver ærlig

Indgivelse af en formular giver ikke markedsføringstilladelse. Kun et udtrykkeligt samtykke afkrydsningsfelt gør.

Ingen dobbeltbooking

En slot er gen- valideret mod en ny tilgængelighed check i øjeblikket af booking.

Hvor kommer de tilbagevendende indtægtsdata fra?+

Fra samme handel hovedger din Sales side bruger, fodret af fakturering stik. Brug re-sync fra fakturering efter tilslutning af en ny platform.

Kan jeg bruge formularerne uden en hjemmeside?+

Ja. Hver formular har en hostet side på din egen adresse, der virker standalone, med eller uden JavaScript.

CRM

Messaging Hub (SMS og WhatsApp)

Et stik, op til tyve gateways. Tilslut SMS og WhatsApp-udbydere du faktisk bruger, markere et som standard, og vælg nogen af dem, når du sms 'er en kontakt. Samtykke kontrolleres af CRM før der kontaktes en gateway.

Sæt det op

1
Aktivér stikket

På siden med forbindelser, åbnes messaging Hub (SMS og WhatsApp) og aktiveres.

2
Tilføj en udbyder

I samme skuffe eller i CRM Growth Tools, skal du vælge en gateway fra dropdown (Twilio, Vonage, Termii, Meta WhatsApp Cloud, Infobip og mere), indsætte sin API legitimation og forbinde. Du kan tilføje flere, herunder den samme gateways to gange med forskellige konti.

3
Wire webhook

Hver udbyder post viser sin egen webhook URL med en kopiknap. Indsæt det i gateways delivery-rapport og indbound- message indstillinger for at få leveringsstatus og svar tilbage i OpsIQ.

4
Send fra en kontakt

Åbn en kontakt og brug SMS eller WhatsApp-knappen. Hvis mere end én udbyder understøtter kanalen, kan du vælge mellem en vælger; ellers bruges standarden.

Samtykke kommer først

Kun givet samtykke

Ukendt samtykke er ikke samtykke. En send nægter medmindre SMS samtykke udtrykkeligt gives. WhatsApp rider det samme samtykke.

Ikke-kontakt vinder altid

Et ikke-kontaktflag blokerer alle kanaler, uanset hvad der er indstillet.

Hædret undertrykkelse

Kontakter på undertrykkelseslisten bliver aldrig sendt.

Afslag nævner deres årsag

En blokeret send fortæller dig præcis hvorfor, så du kan reparere data i stedet for at gætte.

For udviklere: webhook-kontrakten

URL form

https://your-address/opsiq/cron/messaging_webhook.php?sk=SITE_KEY&e=ENTRY_ID&t=TOKEN. Per- entry token er minted, når udbyderen er tilsluttet og aldrig roterer på redigere.

Formater forstået

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":"..."}.

Virkninger

Leveringsrapporter stempler den opsøgende hovedbog række, der bærer udbyderens meddelelse id som leveret eller sendt. Indgående meddelelser matcher kontakten med telefonnummer inde i arbejdsrummet, jord som en message. received aktivitet, og markere samtalen svarede.

Fejltilstand

Forkert eller manglende token svar 403. Ukendt nyttelast tælles og ignoreres, aldrig fatal, så en forkert konfigureret gateway kan ikke bryde endepunktet.

Hvilke gateways er understøttet?+

Twilio, Vonage, Plivo, MessageBird, Sinch, Infobip, Telnyx, ClickSend, Termii, Africa 's Talking, BulkSMS, Textlocal, Meta WhatsApp Cloud, 360dialog, SMSAPI, Gupshup, Kaleyra, D7 Networks, Hubtel, og en brugerdefineret HTTPS webhook for noget andet.

Er legitimation sikker?+

Valgs-knappen gemmes krypteret i stikkontakten og er aldrig ekko tilbage til browseren. Edit af en indgang med en tom hemmelighed holder den gemte én.

Kan AI sende beskeder?+

Ja, gennem registrerede handlinger, der kræver bekræftelse og køre den samme samtykke gate. AI kan også liste tilsluttede udbydere til at forklare, hvad der er tilgængelige.

CRM

Beholder og voksende kunder

Livscyklusstyring hjælper dig med at beskytte eksisterende indtægter. Hver konto får en churn risiko score, et helbred score, en udvidelse score, og en anbefalet succes playbook.

Livscyklus
Livscyklus boardEt bruger- livscyklusplade (Onboarding, Active, At- risk, Reneural) med sundhedsbarer på hvert kontokort.LivscyklusarbejdsområdeOPBYGNING AF EN FÆLLESSKABSHELHEDAcmesundhed 40AKTIVEGlobexsundhed 88Kinitechsundhed 76AT- RisikoSoylentsundhed 28ForstyrrelserUmbraCity in Italynyheder i 12dekspansion + $8k1STAGESOmbordstigning til fornyelse2SCOREDSundhed & ekspansion3PLAYBOOKAnbefalet næste træk
Kunder bevæger sig gennem on-boarding, aktiv, risiko og fornyelse, hver scoret for sundhed og ekspansion med en playbook.

Lifecycle board

Stage kort

Visuel tavle, der viser hvor hver konto står: Bly, Prospect, Opportunity, Customer, Expansion, Reneural, In risk, Churned.

Risikokonti

Konti markeret med høj churn risiko. Hver viser den øverste driver (støtte spike, inaktivitet, betalingsfejl) og en anbefalet gemme spil.

Udvidelsesmuligheder

Konti, der viser tegn på villighed til at købe mere: høj brug, feature anmodninger, plan forespørgsler.

Fornyelser

Konti med kommende fornyelsesdatoer. Sorteret efter risikoniveau og indtægtsværdi.

Hvordan OpsIQ registrerer churn risiko

Churn-risikoen beregnes ud fra flere sammensmeltet signaler:

CRM-signaler

Handle sundhed, inaktivitet, nylige tab, faldende engagement.

Støtteklammer

- Udestående billetter, lydspor, negative følelser.

Produktengagement

Loginfrekvens, brug af funktioner, sidebesøg, API opkald.

Billesignaler

Fejlede betalinger, forfaldne fakturaer, nedgradering anmodninger, annullering side besøg.

Spillebøger

Gem spil

For risikokonti: nå ud proaktivt, tage fat på bekymring, tilbyde støtte, eskalere om nødvendigt.

Fornyelse

For kommende fornyelser: Bekræft tilfredshed, gennemgang brug, nutidsværdi, tilbyde incitament hvis det er relevant.

Udvidelsesspil

For ready- to- grow konti: nuværende opgraderingsmuligheder, dele succeshistorier, demonstrere ROI.

Adoptionsspil

For underudnyttelse konti: tilbyde uddannelse, dele bedste praksis, aktivere funktioner, de ikke bruger.

Spotting churn før det sker

Scenarie:
A customer who normally logs in daily has not logged in for 2 weeks, and they opened 3 support tickets this month.
Hvad skal man gøre:

Lifecycle board flag denne konto som "På Risiko" med drivere: inaktivitet (14 dage siden sidste login) og støtte spike (3x normal billet volumen). Anbefalet spil: proaktiv opsøgende opkald til at forstå, hvad der sker. Er der et produkt problem? Evaluerer de konkurrenter? Tidlig intervention kan gemme kontoen.

CRM

Hold dine data rene

Data Steward agenten finder og løser automatisk problemer med datakvalitet: duplikater, manglende felter, uoverensstemmelser og dårlige optegnelser.

Dataforvalter
DataforvalterEn liste over data- kvalitet spørgsmål (duplikat, mangler, gamle, format), hver med en one-klik fix handling.DataforvalterarbejdsområdeDataproblemer Steward agenten fandtDuplikér[email protected] og [email protected]SammenfletMangler12 kontakter har ingen virksomhedTilrigeCity in GermanyForældet38 handler uberørt for 90+ dageRevisionFormattelefonnumre i 4 formaterFix alle1CATCHESDupler, huller, gamle2EXPLAINSHvorfor det markeret hver3FIXESom godkendelse
Steward-agenten holder din CRM ren, finder duplikater, huller, dårlige optegnelser og dårlige formater, der fastsætter godkendelsen.

Hvad det fanger

Duplikér kontakter

Flere records for den samme person (f.eks. [email protected] og [email protected]). steward foreslår at fusionere dem.

Manglende data

Kontakter uden e-mail, tilbud uden beløb, virksomheder uden domæner. Foreslår påfyldning fra tilgængelige kilder.

Utilknyttede optegnelser

Foreslår linkning baseret på e-mail domæne og kontekst, så du kan oprette en ny kontakt.

Inflammation

En aftale i "Won" scenen med 20% sandsynlighed, en kontakt mærket "Kunde" uden tilbud, en virksomhed med mismatchende industri.

Forkert trin

Forhandler, der har været i samme fase for længe eller kontakter, hvis livscyklus ikke svarer til deres aktivitet.

Sådan skal De bruge

1
Åbn stewar- listen

Gå til CRM og find afsnittet om datastyring (eller åbn den fra CRM Health).

2
Godkend sikre rettelser

Grønne genstande er sikre: klare duplikater, åbenlyse manglende data. Accepter disse i bulk.

3
Gennemgå resten

Amber elementer har brug for din vurdering: mulige duplikater med små forskelle, foreslåede fase ændringer, selskab forbinder. Gennemgå hver enkelt.

Rengøring af duplikerede kontakter

Scenarie:
The steward found "John Smith ([email protected])" and "J. Smith ([email protected])": same email, different display names.
Hvad skal man gøre:

Stewarden foreslår at sammenlægge: holde rekorden med mere aktivitet, sammenflette de andre rekordhandler og aktiviteter. Gennemgå forslaget, justere det overlevende displaynavn om nødvendigt, og godkende. Begge records historie bevares i den fusionerede kontakt.

CRM

Byg min CRM

Byg min CRM kan du beskrive din CRM opsætning på almindelig engelsk. OpsIQ genererer en valideret, reversibel plan og anvender den ved godkendelse. Ingen kodning, ingen manuelt indstillingsklik.

Byg min CRM
Byg min CRMEn natursprogbeskrivelse til venstre, der producerer en genereret CRM-plan med trin, felter og segmenter til højre.Byg min CRMarbejdsområdeBeskriv din virksomhedVi er et webdesign agentursælge månedlige tilbageholdere og1-off projekter til småvirksomheder.Byg min CRMUddannet planFase: Bly → TilbageholderDealtyper: forskudsbetaling, projektFelt: månedsværdiSegmenter: SMB, agenturSekvens: opbordingGodkend og anvend1DESCRIBEEnglish in2AI PLANSFase, felter, segmenter3APPROVEAnvendt · ingen kodning
Beskriv din virksomhed på almindeligt engelsk; OpsIQ udarbejder hele CRM (stadier, felter, segmenter) og anvender den ved godkendelse.

Sådan virker det

1
Beskriv hvad du vil

Skriv en plain-engelsk beskrivelse af din CRM setup. Eksempel: "Opret en fornyelse rørledning med faser: Kommende, Kontakt, Forhandle, Reneged, Lost. Score fører højere, når de ser prissætning to gange".

2
Gennemgå planen

OpsIQ viser en preview af, hvad det vil skabe: rørledning, faser, fase sandsynligheder, scoring regler, livscyklusregler. Gennemgå hvert element.

3
Anvend

Klik på Anvend for at udføre planen. Hver ændring registreres som et bundt du kan fortryde med ét klik.

4
om nødvendigt rulles tilbage

Hvis noget ikke er rigtigt, skal du klikke på Fortryd for at vende hele bundtet tilbage. Din CRM vender tilbage til sin tidligere tilstand.

Hvad du kan bygge

Rørledninger og etaper

Opret navngivne rørledninger med brugerdefinerede stadier, standard sandsynligheder, og rådne tærskler.

Regler for arbejdsgang

Boost ledende resultater baseret på adfærd: "Score højere, når de ser priser", "Scor lavere, når man besøger karrieresider".

Regler for livscyklus

Automatisk fremme livscyklusstadier: "Flyt til SQL, når de anmoder om en demo", "Flyt hen til Kunden, når handlen er vundet".

Brugerdefinerede felter

Tilføj felter til kontakter, tilbud eller virksomheder: tekst, nummer, dato, vælg, afkrydsningsfelt, URL, e-mail.

Kejserliste for kvalifikationer

Definer MEDDICC eller BANT checklisten Deal Coach kvaliteter mod.

Etablering af en fornyelsesrørledning

Scenarie:
You manage SaaS subscriptions and need a pipeline for renewals.
Hvad skal man gøre:

Type: "Opret en fornyelsesrørledning. 90 Dage ud (10%), 60 Dage ud (25%), kontakt (40%), forhandlinger (60%), genoprettet (100%), Churned (0%). Sæt rådnetærsklen til 14 dage ". OpsIQ genererer planen, du gennemgår den, og klik på Anvend. Rørledningen vises på din Pipeline side med det samme.

Hvad hvis jeg beskriver noget, der ikke er muligt?+

Bygherren genererer kun handlinger, den ved hvordan man validerer. Hvis du beder om noget uden for dens muligheder (f. eks. "Integrer med min brugerdefinerede API"), vil den afvise anmodningen og forklare, hvad den kan gøre i stedet.

Kan jeg ændre på tingene?+

Ja. Hver Build My CRM handling er fanget som en reversibel bundt. Gå til CRM Health > Skift historie for at se alle bundter og fortryde nogen af dem.

CRM

Opsætning af din CRM på din måde

Manuel CRM konfiguration for hold, der foretrækker at klikke over skrive. Alle indstillinger, som Bygge min CRM kan skabe, er også tilgængelige som traditionelle formfelter.

Rørledninger og etaper

Opret, omdøb, ombestil og slet rørledninger og trin. Sæt standardvindenergien pr. fase. Indstil rådnetærsklen (dage uden aktivitet før en aftale er markeret "gået i stå").

Brugerdefinerede felter

Tilføj felter til tilbud, kontakter eller virksomheder. Felttyper: tekst, nummer, dato, vælg (dropdown med foruddefinerede indstillinger), afkrydsningsfelt, URL, e-mail. Brugerdefinerede felter vises på objektets profil og i filtre.

Kejserliste for kvalifikationer

Definer tjeklisten deal Coach bruger til at evaluere tilbud. Vælg MEDDICC, BANT eller et brugerdefineret sæt af kriterier. Hvert element kan markeres kræves eller valgfrit.

Regler for livscyklusscenariet

Definer automatiske trin overgange: når en kontakt opfylder en betingelse (synspunkter prissætning, indsende en formular, foretager et køb), deres livscyklus fase forskud automatisk.

Regler for bedømmelse af leadscoring

Boost eller reducere lead scores baseret på adfærd. Eksempler: "Viewed pricing side = +15 point "," Downloadet whitepaper = +10 point "," Besøgte karrieresider = -5point. "Minimum optælling kan sættes (fx," skal se prissætning mindst 2 gange ".

Gemt visninger

Opret navngivne filter + sortkombinationer til kontakter, tilbud eller virksomheder. Del visninger med dit team. Sæt en standardvisning pr. objekttype.

Tilføjelse af en regel om blyscoring

Scenarie:
You want contacts who view your pricing page twice or more to get a higher score.
Hvad skal man gøre:

Gå til CRM Configuration > Foretrukne regler. Klik på Tilføj regel. Sæt: Event = "pageview", URL indeholder = "/pricing", Minimum count =2, Score boost = +20. Gem. Næste gang scorer kører, kontakter der matcher denne regel vil få +20 til deres hovedscore.

CRM

CRM Health-kontrol

CRM Health er en selvdiagnostisk side, der kontrollerer din CRM er sat op korrekt og kører problemfrit.

Sundhedsundersøgelse
CRM sundhedstjekEn sundhedsscore ring ved 92 ved siden af en tjekliste over adgangskontrol og advarselskontrol.CRM sundhedstjekarbejdsområde92DEN HØJE KONTRAHERENDE PARTERRørledningstrin indstilletForbinder forbundet & importAI-agenter aktiveret!Ingen aktiv opfølgningssekvens!12 kontakter mangler virksomhed1REVISIONVerificerer din opsætning2FLAGSHvad mangler?3HVOREt samlet tal
En one-page CRM revision: en samlet sundhed score plus en checkliste over, hvad der er sat op rigtigt og hvad der stadig har brug for opmærksomhed.

Hvad det kontrollerer

Ordninger

Databaserne findes og har de rigtige kolonner. Hvis en migration blev overset, vil CRM Health markere det.

AI-agenser

Alle CRM-agenter (Capture, Data Steward, Deal Intelligence, osv.) er registreret og sunde. Green = kører, rav = har brug for opmærksomhed, rød = fejl.

Ruter

CRM API ruter og AJAX endpoints er registreret og kan kaldes.

AI-aktioner

CRM action kataloget er registreret i Action Registry. Hvis der mangler handlinger, CRM Health selv heler ved at genregistrere dem.

Antal levende data

Samlede kontakter, virksomheder, tilbud, opgaver, aktiviteter og arrangementer. Nyttig til at kontrollere import og løbende dataindsamling.

Efter opsætningscheck

Efter første gang CRM opsætning, åbne CRM sundhed og kontrollere alle kontroller er grønne. Hvis nogen er gule eller røde, skal du klikke på elementet for en diagnostisk forklaring og foreslået rettelse.

Hvor ofte skal jeg tjekke CRM Health?+

Tjek efter første opsætning, efter større opdateringer, og når CRM adfærd synes forkert. CRM Health selv heler mange problemer (som manglende handling registreringer) bare ved at åbne siden.

CRM

CRM-forbindelser til udviklere

CRM udsætter en komplet offentlig REST API og udgående webkroge, så det passer til enhver stak uden manuel eksport.

API endepunkter

Godkendelse

API key (Authorization: Bearer opq_...) with scope crm.read or crm.write. POST to /api/v1.php with action and site_key.

Kontakter

crm. contact. list (search + filter), crm. Contacts. details (by ID), crm. contapts. upsert (create or update), crom. contakt ts. save.

Varer

crm. deals. list, crm. dels. details, crm. deals. create, crm. deal. update, crM. dales. proward (alle gennem Trust Layer).

Aktiviteter

crm. activities. list (tidslinje for en kontakt / aftale), crm. aktivitiesrecord (log en ny aktivitet).

Begivenheder

crm.events.list (durable change feed with since_id cursor), crm.events.catalog (list available event types).

Opret en aftale via 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-begivenheder

crm.contact.created

Fyret, når en ny kontakt tilføjes CRM.

crm.deal.stage_changed

Fyret, når en aftale bevæger sig til et andet stadium.

crm.deal.won

Fyret, når en aftale er lukket som vundet.

crm.deal.lost

Fyret, når en aftale er lukket som tabt.

crm.task.created

Fyret når en ny opgave er oprettet (manuel eller AI- genereret).

crm.outreach.reply

Fyret, når en udsigt svarer på en sekvens e-mail.

crm.agent.proposal_created

Fyret, når en AI-agent laver et forslag til godkendelse kø.

All webhook events are HMAC-signed and retried on failure. Subscribe a URL in Settings > Webhooks, or poll crm.events.list with since_id for a durable change feed.

Synkronisering af CRM-kontakter til Google Sheets

Scenarie:
You want every new CRM contact to appear in a Google Sheet for your marketing team.
Hvad skal man gøre:

Sæt en webhook abonnent til crm. contact. created. Ret det til en Google Apps Script-app eller en Zapier webhook URL. Lasten inkluderer kontaktnavn, e-mail, firma, lead score og kilde. Dit script tilfalder en række til Google Sheet for hver ny kontakt.

CRM

Segmenter

Segmenter gemmer genanvendelige kontaktfiltre til CRM-visninger, outreach, kampagner og andre auditor- bevidste værktøjer.

Produktskærm
SegmenterSegment editoren kombinerer betingelser, viser live match-tællingen og lader operatøren vælge et levende filter eller fastgjort snapshot.SegmenterarbejdsområdeMODELevendeLOGICALLEMATCHES1,248SYGDOM AF LIVE ARBEJDSPLADSERKundetriner lig med aktiv kundeArtikelSidste aktivitetinden for 30 dageArtikelLander lig med StorbritannienArtikelHøj hensigtscore mindst 70Artikel1CHOOSE MODELevende eller snapshots2ADD RULESALLE ELLER ANTIGE3REUSEKampagner og CRM
Segment editoren kombinerer betingelser, viser live match-tællingen og lader operatøren vælge et levende filter eller fastgjort snapshot.

A levende segment Genberegning af aktuelle data, når de anvendes. fast snapshot fryser den nuværende medlemsliste, som er nyttig, når et outreachaktivpublikum ikke må ændres efter godkendelse.

Vælg ALLE når hver tilstand skal matche eller Anything når en betingelse er nok. Gennemgå levende tal før du gemmer. System segmenter kan være synlige, men beskyttet mod almindelig redigering.

CRM

Blyscoring

Lead- scoring regler forvandle adfærd og profil signaler til en konsekvent score, som salg og automatisering kan bruge.

Produktskærm
BlyscoringBlyscoring viser aktive regler, rullende vindue og den positive eller negative score ændring hver regel gælder.BlyscoringarbejdsområdeREGLER12SCORED8,412HOT LEADS286SYGDOM AF LIVE ARBEJDSPLADSERPrisaktivitet3+ besøg i 14 dage+20Købe nøgleordindeholder migration eller virksomhed+15Støtterisikoklage begivenhed i 30 dage-10Tillid til kildePartners henvisning+121DESCRIBE RULEBrug almindeligt engelsk2REVIEW FIELDSSignal-, vindues-, punkts-3RESCOREAnvend på arbejdsområde
Blyscoring viser aktive regler, rullende vindue og den positive eller negative score ændring hver regel gælder.

AI regel builder kan vende en sle- engelsk instruktion til en struktureret regel. Hver regel bør stadig revideres før aktivering: bekræfte aktiviteten eller søgeord, minimum tæller, rullende vindue og score ændring.

Positive og negative regler kan eksistere side om side. Rescore arbejdsområde efter materialeregelændringer, så eksisterende kontakter evalueres under den nye model. Scorer kan fodre segmenter, routing, prospektering og arbejdsgange betingelser.

CRM

Salgsleaderboard

Leaderboardet sammenligner repræsentanter med kvotemængde, vandt indtægter, provision og åben rørledning for den udvalgte måned.

Produktskærm
SalgsleaderboardDen månedlige leaderboard rangerer salgsrepræsentanter samtidig holde vundet indtægter, provision og åben rørledning synlig.SalgsleaderboardarbejdsområdePERIODJuliTEAM QUOTA82%VUNDET184.000 £SYGDOM AF LIVE ARBEJDSPLADSERAminaCity in Italy104% kvote · £62k vundet1st- Ja.88% kvote · £51k vundet2ndRita.76% kvote · £43k vundet3rdÅbne rørledninger£312k på tværs af holdetRevision1CHOOSE MONTHSammenlign en periode2CHECK QUOTAInddeling efter rep3COACHBrug rørledningens kontekst
Den månedlige leaderboard rangerer salgsrepræsentanter samtidig holde vundet indtægter, provision og åben rørledning synlig.

Kvoteopnåelse er kun meningsfuld, når hver repræsentant har en nuværende kvote og handler har den korrekte ejer, beløb, valuta og tæt status. Brug leaderboard til coaching og anerkendelse, ikke som den eneste kvalitetsforanstaltning; parre det med deal sundhed, aktivitet og prognose nøjagtighed.

CRM

Godkendelse af en aftale

Aftalegodkendelser kræver, at manager sign-off før høj værdi tilbud kan markeres vundet.

Produktskærm
Godkendelse af en aftaleI godkendelsespolitikken er der fastsat to værditærskler, og køen viser verserende, godkendte og afviste beslutninger.Godkendelse af en aftalearbejdsområdePOLICYAktiveretWAITING6OLDEST3hSYGDOM AF LIVE ARBEJDSPLADSERNiveau 1Tilbud fra £10,000BestyrelseNiveau 2Tilbud fra £50,000ÆldreVirksomhedsfornyelse£72,000 · anmodet af BenAfventerMigrationsprojekt£18,500 ·, som Rita har anmodet omGodkendt1SET THRESHOLDS0 deaktiverer et niveau2REQUESTRep indsender handlen3TRUFFET FØLGENDE AFGØRELSEGodkend eller afviser
I godkendelsespolitikken er der fastsat to værditærskler, og køen viser verserende, godkendte og afviste beslutninger.

Aktivér politik og sæt niveau 1 og niveau 2 tærskelværdier. En tærskel på 0 deaktiverer dette niveau. Når en ikke-leder forsøger at vinde en aftale på eller over tærsklen, OpsIQ skaber en godkendelse anmodning i stedet for lydløst at ændre scenen.

Ledere og fulde administratorer er ikke blokeret af politikken. Enhver beslutning bør bevare den anmodende, godkendelse, tid og grund til audit.

CRM

Regler for livscyklus

Livscyklusregler flytter automatisk kontakter mellem faser, når deres aktuelle data matcher en gemt tilstand.

Produktskærm
Regler for livscyklusLivscyklusregler vurderes efter prioritet; den første matchende regel ændrer kontaktstadiet.Regler for livscyklusarbejdsområdeAKTIVE7RUNSNatligPRIORITYHøjeste førstSYGDOM AF LIVE ARBEJDSPLADSERBly → Kvalificeretscore ≥ 60 og seneste aktivitetPrioriteret 100Kvalificeret → Kundeder findes en købsbegivenhedPrioriteret 90Kunde → på risikoingen aktivitet for 60 dagePrioriteret 70Risiko → Kundenyt køb eller svarPrioriteret 601PICK STAGESFra og til2DEFINE FILTERSegment- stil JSON3ORDER RULESFørste match vinder
Livscyklusregler vurderes efter prioritet; den første matchende regel ændrer kontaktstadiet.

Hver regel har en kilde fase, destination stadium, aktivt flag, prioritet og segment- stil filter. Den planlagte livscyklus job evaluerer højere prioriteter først og stopper efter den første kamp for en kontakt.

Regler skal være gensidigt forståelige. Undgå to aktive regler, der kan flytte den samme kontakt i modsatte retninger under samme kørsel. Test filteret mod et segment, før det aktiveres.

CRM

CRM-aktivitetsstrøm

Workspace aktivitet stream kombinerer kunde og operationelle begivenheder, så teams kan undersøge, hvad der skete uden at åbne hvert modul.

Produktskærm
CRM-aktivitetAktiviteten stream interleaves chat, billet, e-mail, webhook, konvertering og anomali begivenheder med filtre og paginering.CRM-aktivitetarbejdsområdeBEGIVENHEDER2,804CUSTOMERS1,126ANOMALIES14SYGDOM AF LIVE ARBEJDSPLADSERChat løst[email protected] · AINuBilletten svaredeT-1048 · Fakturering og betaling4mIndgående begivenhedsubscription.upgraded12mOmregningBestil #7788 · £14919 m1FILTERBegivenhed og kunde2OPEN CONTEXTSpring til pladen3PAGE RESULTSHold undersøgelserne afgrænset
Aktiviteten stream interleaves chat, billet, e-mail, webhook, konvertering og anomali begivenheder med filtre og paginering.

Filtrér efter hændelsestype, dato, kontakt- eller kundetilstand (herunder betalende kunder). Foderet er en read model af indspillet aktivitet; det erstatter ikke kildebilletten, samtalen, handlen eller konnektor record. Åbn den linkede record før du tager en følsom handling.

CRM

Arbejdsgange

Workflows reagerer på en begivenhed og køre en bestilt række af handlinger, herunder forsinkede trin genoptages med cron.

Produktskærm
ArbejdsgangeEt workflow-løb viser dens udløsende, afsluttede handlinger, venteforsinkelse og næste skridt.ArbejdsgangearbejdsområdeAKTIVE9RUNNING42SLAGTET1SYGDOM AF LIVE ARBEJDSPLADSERUdløsningsmiddelcontact.createdStartTrin 1Send velkomste- mailFærdigForsinkelseVent 2 dageVenterTrin 2Opret salgsopgaveNæste1CHOOSE TRIGGERBegivenhed starter løbet2ORDER STEPSAktioner og forsinkelser3MONITORGenoptag gennem cron
Et workflow-løb viser dens udløsende, afsluttede handlinger, venteforsinkelse og næste skridt.

Opret en workflow ved at vælge udløseren, tilføje trin i rækkefølge og gør det muligt. Forsinkelser gemmes, ikke holdes af en browser anmodning; den forenede cron genoptager due workflowet kører.

Build- in startskabeloner omfatter velkommen efter tilmelding, post- køb Thanks- you og demo bekræftelse. Klone en skabelon, erstatte sine modtagere / indhold, derefter teste med en kontrolleret rekord før bred aktivering.

Design handlinger, der skal være idempotent. Et forsøg igen må ikke sende duplikerede penge-flytte anmodninger eller oprette duplicate poster.

Støtte

Billetter

Billetter er din formelle support kanal. De har afdelinger, prioriteter, SLA mål, vedhæftede filer, interne noter, og fuld samtale threading. Billetter kan ankomme fra OpsIQ admin, billet form / montering, e-mail indtagelse, chat eskalering, connector, eller API.

Billetter
BilletdetaljerEn billet med en meta sidebar (prioritet, afdeling, SLA, status), samtaletråd, og AI udkast og tilbagebetaling handlinger.BilletNamearbejdsområdeT-12345PrioriteretHøjAfdelingFaktureringSLA3h 12m venstreStatusÅbnJeg blev sigtet to gange for minabonnement på 3's hjemmeside:AIBekræftet duplikateksemplarbetaling, refundering behandling.AI udkast til svarRestitutionsbeløb1THREADEDFuld samtale + noter2SLA & ROUTINGPrioriteret, dept, timere3AI DRAFTSvar skrevet for dig
Hver billet bærer sin prioritet, afdeling, SLA timer og fuld tråd, og AI kan udarbejde svaret for dig.

Hvordan en billet flyder

1
Billetvarer

En kunde sender en besked via e-mail, chat eskalering, billet isat, eller admin skaber en. Billetten får et unikt ID (fx, T-12345).

2
Forsøg

AI læser emnet og kroppen, tildeler prioritet (Low / Normal / High / Urgent), foreslår en afdeling, og registrerer følelser. Dette sker automatisk, hvis triage er aktiveret.

3
Svar

En agent åbner billetten, læser sammenhængen (kunde profil, platform data fra konnektorer, tidligere billetter), og skriver et svar. AI kan udarbejde svaret, og agenten redigerer før afsendelse.

4
Luk

Når problemet er løst, lukker agenten billetten. Kunden underrettes. Hvis kunden svarer efter lukning, åbner billetten automatisk igen.

Per- billet handlinger

Skift afdeling

Flyt billetten til en anden afdeling (f. eks. fra General til Billing). Nyttigt, når den oprindelige routing var forkert.

Tildel agent

Tildel billetten til et bestemt team medlem. Den udpegede agent ser billetten i deres "My ticket" visning.

Tilføj intern note

Skriv en note synlig kun for personalet. Brug til: undersøgelsesresultater, tilbagebetaling grunde, ingeniørmæssig kontekst, tidligere forpligtelser. Interne noter aldrig vises for kunderne.

Flet billetter

Kombiner duplikerede billetter fra samme kunde. Den sammenlagte billet emne får en [MERGED] tag. Alle beskeder fra begge billetter bevares i den overlevende billet.

Annulleret respons

Indsæt en præ- skriftlig svarskabelon. Variabler som {{customer_name}} og {{ticket_id}} automatisk udskiftes.

AI omskrive

Lad AI forbedre dit udkast til svar: justere tone, kortere / forlænge, fastsætte grammatik, eller oversætte. Du gennemgå resultatet før du sender.

Ændr prioritet

Sæt til lav, normal, høj eller hurtig. Prioriteret påvirker SLA timere og sortere orden.

Ændr status

Sæt til åben, afventende, venter på kunden, genoplivet eller lukket.

Arbejdede eksempel: håndtering af en ulykkelig kunde

Kundemail: "Jeg blev opkrævet to gange for mit abonnement"

Scenarie:
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.
Hvad skal man gøre:

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.

Afdelinger

Opret afdelinger i Indstillinger > Billetter > Afdelinger. Fælles afdelinger: General, Billing, Teknisk, Salg, Misbrug, Onboarding. Hver afdeling kan have forskellige auto-svar regler, AI viden og team opgaver.

Afvist svar

Opret genanvendelige svarskabeloner i Indstillinger > Billetter > Annullerede svar. Gode dåsesvar inkluderer:

Eksempel på dåsemargin
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}}

Feltstiftelse

Når en kunde sender det samme spørgsmål flere gange (via e-mail og chat eller to separate e-mails), kan du flette duplikater sammen. Gå til billetten, klik på Merge, vælg den anden billet til at flette. Den overlevende billet får alle beskeder fra begge billetter. Den fusionerede billets emne får et [MERGED] mærke for at angive, at den blev kombineret.

Prioriteret og godkendt af SLA

Lav

Ikke- presserende spørgsmål, feature anmodninger, generel feedback. Mål første svar: 24 timer.

Normal

Standard support spørgsmål. Mål første svar: 8 timer.

Høj

Påvirkning af kundens forretning. Mål første svar: 4 timer.

Hasteforanstaltninger

Service ned, sikkerhedshændelse, tab af data, fakturering fejl. Mål første svar: 1 time.

SLA-timere starter, når billetten er oprettet og pause, når status er "venter på Kunden". Hvis SLA 's mål ikke overholdes, bliver billetten fremhævet og eventuelt eskaleret.

Kan kunderne se interne noter?+

Aldrig. Interne noter er strengt personale-kun. De vises ikke i kundens billet portal, e-mail meddelelser, eller nogen customer-vender overflade.

Hvad sker der, når en lukket billet bliver besvaret?+

Billetten åbner automatisk igen og vender tilbage til den aktive kø. Holdet får besked om det nye svar.

Kan jeg låse en billet for at forhindre yderligere svar?+

Ja. Brug Lock Tråd mulighed for at forhindre både kunde og AI i at tilføje nye svar. Nyttig for løst tvister eller lukkede undersøgelser.

Støtte

Service Studio: SLA, statusflow og kvalitet

Kontrolrummet for, hvordan din supportoperation opfører sig: SLA-politikker med eskaleringsstiger, virksomhedskalendere, en tvungen statusstrøm, CSAT-indstillinger og virksomhedens funktion skifter. Åbn den fra Billetter side (Service Studio knappen i operationsbaren).

SLA-politikker

Hver ny billet får et første- svar og en opløsning deadline fra den mest specifikke aktive politik: afdeling + prioritet slår afdeling, slår prioritet, slår standard. Deadlines pause automatisk, mens en billet sidder i afventning eller på hold.

Eskaleringsstiger

I stedet for én overtrædelse kan en politik definere op til seks trin: for eksempel advare modtageren på 75% af vinduet, alarm managers på 100%, forflyt til en navngivet agent på 150% Hvert trin affyrer præcis én gang pr. billet.

Arbejdstider og kalendere

Med åbningstider på, SLA ure kun brænde i arbejdstiden, så en billet åbnet fredag aften ikke er brudt af lørdag. Opkaldt kalendere (tidszone, dage, timer, ferie) kan knyttes til individuelle politikker for hold i forskellige regioner.

Statusstrøm

A fra / til matrix begrænser hvilken status ændringer admins kan gøre, med en Zendesk- stil forudindstillet. Automation, indgående e-mail og customer- oprindede billetsvar er altid fritaget, så en streng matrix aldrig kan blokere rørledningen.

Godkendelser

Agenterne anmoder om signatur- off på en billet (refunderinger over en tærskel, politiske undtagelser). En navngivet approver eller enhver Full Administrator beslutter med en note; rekvisitter kan aldrig godkende deres egen anmodning.

Billetforhold

Link billetter som relateret, duplikeret, forældre / barn eller blokering; split svar ud til en ny linked billet (den omvendte af fletning, uden at maile kunden); følg billetter til in-app meddelelser, og eventuelt CC follower e-mail adresser på udgående svar.

Levende indbakke og kollisioner

Med real- time indbakken aktiveret, nye billetter og svar vises for agenter inden for få sekunder gennem den eksisterende notifikationsstrøm. På en billet, agenter se hvem der ellers ser og få en advarsel banner, når en holdkammerat allerede skriver et svar. En one-click Claim knap tildeler billetten til dig selv.

Al- bevidst routing

Routing regler kan matche på AI triage signaler: prioritet, kategori, følelser og eskalering risiko, plus indtastede custom-field værdier fra din portal anmodning formular. Regler ved hjælp af disse betingelser forblive hvilende indtil funktionen er aktiveret.

💡
Hver virksomhed skifte skibe OFF. At tænde en i Service Studio → Kvalitet & Automation er opt- in; forlader dem holder adfærd identisk med før opgraderingen.
Hvorfor kan en kunde stadig genåbne en lukket billet, når min matrix forbyder lukket → åben?+

Den matrix kun regulerer ADMIN handlinger. Customer- oprindede svar, e-mail-svar og automatisering er bevidst fritaget, så en streng politik kan aldrig låse kunder ud eller bryde rørledningen.

Erstatter SLA stiger den gamle brudsag?+

Nej. Politikker gemt med en enkelt brud handling holde arbejder uændret. En stige erstatter den enkelte aktion kun på politikker, hvor du definerer trin.

Støtte

Billet automatisk svar og eskalering

Auto- svar lader AI reagere på nye billetter automatisk. Eskalering flytter billetter til en anden afdeling, når AI registrerer specialiserede behov. Begge funktioner arbejde på tværs af indfødte billetter og email- oprettet billetter.

Auto- svar
Automatisk billetsvarEn strøm: ny billet, en to-minutters forsinkelse, AI svar fra viden og kontekst, derefter sendt eller gemt som et udkast.Auto- svararbejdsområdeNår en ny billet ankommerNy billetenhver kildeForsinkelse2 minAI-svarKB + kontekstCommentSendteller udkastHvis et menneske svarer under forsinkelsen, auto- svar er annulleret. Intent kan eskalere til en anden afdeling først.1DELAYMennesker får første chance2AI REPLIESFra KB + - kontekst3OR ESCALATEForsæt
Nye billetter får en kort forsinkelse (så mennesker kan hoppe i), derefter en AI svar fra din viden, sendt eller i kø som et udkast.

Hvordan virker automatisk svar

1
Billetvises

En ny billet er skabt fra enhver kilde (e-mail, chat, portal, API).

2
Skemasvar

OpsIQ venter på den indstillede forsinkelse (standard: 2 Dette giver menneskelige agenter en chance for at reagere først.

3
Første svar vinder

Hvis en menneskelig agent svarer under forsinkelsen, auto- svar er annulleret. Hvis ikke, AI genererer et svar.

4
Generér og send

AI læser billetten, kontrollerer videnbasen, konnektor sammenhæng og kundehistorie, derefter skriver et svar. Svaret sendes (eller i kø som en udkast til gennemgang, afhængigt af indstillinger).

Hvordan eskalering virker

1
Indstil afdelinger

Sæt hvilke afdelinger der kan modtage eskalationer (fx kan Billing eskaleres fra Generelt, Teknisk kan eskalere fra Generelt).

2
Klassificere billetten

Før auto-svar, AI klassificerer billetten hensigt: fakturering, teknisk, tilbagebetaling, misbrug osv.

3
Flyt om nødvendigt

Hvis billetten er i overensstemmelse med en eskaleringsafdeling, flyttes billetten.

4
Generér i ny stemme

Svaret genereres ved hjælp af destinationsafdelingens viden og AI uddannelse.

Opsætning reference

Auto- svar aktiveret

Master switch. Tænd for at aktivere AI automatisk-svar på billetter.

Tilladte afdelinger

Hvilke afdelinger kan modtage automatisk svar. Start med lavrisiko afdelinger (Generelt, Salg) før du aktiverer fakturering.

Forsinkelse

Hvor lang tid at vente, før AI svarer (i sekunder). Standard: 120 sekunder (2minutter).0for øjeblikkelige svar.

Forsinkelsesskema

Muligt indstille forskellige forsinkelser for business timer vs. efter timer.

Stop med admin svar

Hvis en menneskelig agent svarer først, annullere auto- svar. Standard: til.

Eskalering aktiveret

Aktivér automatisk afdelingsrouting baseret på billettehensigt.

Eskaleringsafdelinger

Hvilke afdelinger billetter kan optrappes til.

Eskaleringsstatus

Hvilken status der skal indstilles når du eskalerer (f. eks. Åbn, afventende).

Eskaleringsnote

Om der skal tilføjes en intern note, som forklarer årsagen til eskaleringen.

Email- oprettet billetter

Billetter oprettet fra e-mail (via mailbox afstemning eller MX- pipeed levering) følger de samme auto- svar og eskaleringsregler. AI 's svar sendes som en e- mail reaktion til kunden. E-mail udkast gå til udkast kø for gennemgang, hvis konfigureret.

Vil AI automatisk besvare faktureringsspørgsmål?+

Kun hvis du aktiverer auto- svar for faktureringsafdelingen. Vi anbefaler at starte med auto- svar til fakturering og kun gør det muligt, når du har trænet AI med omfattende faktureringsviden og testet grundigt.

Hvad hvis AI giver et forkert svar?+

Hvis en kunde svarer siger, at svaret var forkert, bør en menneskelig agent gribe ind. Anmeld AI historie for at forstå, hvorfor AI gav det forkerte svar, så opdatere videnbasen eller AI uddannelse for at forhindre det i at ske igen.

Kan jeg gennemgå auto- svar, før de sendes?+

Ja. Sæt leveringstilstanden til "draft" i stedet for "Autosend". Autosvar-udkast vil blive vist i Kladderne kø for menneskelig gennemgang, før du sender.

Støtte

Billetportal med

Billetportalen kan du tilføje en billet management interface til enhver hjemmeside. Kunder kan se deres billetter, oprette nye, og svare, alle uden at indtaste OpsIQ admin.

Sådan virker det
Billetportal medEn supportportal indlejret i en hjemmeside, der viser kunden deres egne billetter og en new- ticket knap.yoursite.com/supportStøttecenterNy billet- Hvad?#1042 · RestitutionsspørgsmålÅbn#1038 · Opsætning hjælpOpløst#1031 · FakturakopiAfventer1EMBEDTilføj til et hvilket som helst sted2SELF-SERVEKunder ser deres billetter3NO LOGINIdentitet håndteres sikkert
Billetportal med

Tre indlejrede varianter

Inline inkl.

Renders billet portal inde i en div på din side. Portalen tager hele bredden af sin container.

Flydende kontrol

Viser en flydende knap, der åbner billetten portal i et panel. Svarende til en chat widget.

Autentificeret

Kræver en signeret identitet token. Kunderne se kun deres egne billetter.

Installation

Billetindlejret snuppet
<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>

Identitetstegning

For bekræftet tilstand, skal din server generere en signeret identitet token. Denne token fortæller OpsIQ hvem kunden er, så de kun ser deres egne billetter.

PHP · genererer identitetssymbol
<?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 kroge · identitetssymbol
// 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, generér identitetstoken
// 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;
}

Kontrolfunktioner

Billetliste

Søgebar, status- filtreret liste. En "Afventer dig" fremhæve flag billetter holdet har besvaret.

Gevindudveksling

Fuld samtale visning med rig tekst, vedhæftede filer og tidsstempler.

Udkast til automatisk lagring

Kundeudkast svar er automatisk gemt, så de ikke mister arbejde, hvis de navigerer væk.

Live vallevirksomhed

Kontrolmålinger for nye svar hver ~12 sekunder.

Løs / genåbn

Kunderne kan løse eller genåbne deres egne billetter med et enkelt klik.

Interne medarbejdernoter vises ALDRIG til kunderne i billetten, hvilket er en hård sikkerhedsgrænse.
Støtte

Chat indbakke

Chat Indbakken er hvor dit team styrer live kundesamtaler. Det viser aktive chats, tildelte samtaler, AI- håndterede chats og arkiveret historie.

Chat indbakke
Chat indbakkeEn tre-pane agent chat indbakke: samtaleliste, den live samtale med en AI draft chip, og en besøgende / CRM kontekst panel.Chat indbakkearbejdsområdeDKKJane.hvor er min ordreMÅNEDMensahCity in GermanyfaktureringsspørgsmålRTRita.AI håndteretHvor er min ordre?Afsendt i dag · UPSAI udkast klarSvar...GÆSTEBØGERJane DoeOS · Chrome3 tidligere ordrerLTV $480CRMStage: Kunde1UNIFIEDHver live chat2CONTEXTBesøgende + CRM-panel3AI ASSIST& omskrivning
En indbakke til hver live chat, samtaleliste, tråden med AI udkast på tap, og fuld besøgende + CRM sammenhæng.

Håndtering af samtaler

Aktive chats

Samtaler i øjeblikket er i gang. Green dot = kunde skriver eller for nylig aktiv.

AI- håndteret

Samtaler hvor AI 'en reagerer. Du kan til enhver tid overtage ved at klikke på "Deltag".

Tildelt mig

Samtaler, der er tildelt dig.

Venter

Samtaler, hvor kunden venter på et svar.

ArkivQShortcut

Afsluttede samtaler. Søges efter søgeord, dato og kunde.

Aflevering fra AI til menneske

Når du overtager en samtale fra AI, skal du følge disse tre regler:

1
Greet personligt

"Hej, det er Sarah fra supportholdet".

2
Referenceramme

"Jeg kan se, at du spurgte om din ordreseddel".

3
Sæt forventninger

Fortæl kunden, hvad der sker nu. "Jeg undersøger dette nu og vil have et svar til dig i et par minutter".

Slå AI til / fra pr. samtale

Brug AI skifte til toppen af hver samtale. Når AI er på, den AI genererer svar. Når slukket, kun menneskelige agenter kan svare. AI husker samtalen sammenhæng, selv når slået fra og tilbage på.

Afgang i tilstand / ud af timer

Indstil åbningstider i Indstillinger. Uden for åbningstider kan AI: (1) Fortsætte med at reagere på kunder, (2) Vis en "væk" besked og oprette en billet til opfølgning, eller (3) Deaktivér chat fuldstændigt og vis billetten. Vælg den adfærd, der passer til din supportmodel.

Håndtering af hårde samtaler

1
Bevar roen

Matcher ikke kundens følelsesmæssige intensitet. Anerkend deres frustration uden at være defensiv.

2
Indsamle fakta

Før du svarer, indsamle de relevante oplysninger: bestillingsdetaljer, kontostatus, tidligere billetter.

3
Eskalat tidligt

Hvis situationen omfatter refusioner, juridiske trusler, misbrug eller sikkerhed eskalerer til et seniorholdmedlem i stedet for at forsøge at håndtere det alene.

Kan jeg få team chat (agent til agent)?+

Ja. Brug interne noter i en samtale til at kommunikere med andre agenter. Disse noter er aldrig synlige for kunden.

Hvad sker der, når jeg lukker en snak?+

Samtalen flytter til arkivet. Hvis kunden sender et nyt budskab senere, oprettes en ny samtale.

Støtte

Meddelelseskanaler

Connect WhatsApp, Facebook Messenger, Instagram DM, Telegram og LINE så de meddelelser kunder allerede sende dig ankommer i samme indbakke som din hjemmeside chat, besvaret af den samme AI assistent.

Hver kanal opfører sig identisk én gang tilsluttet: en kundebesked bliver en samtale i chatindbakken, din AI assistent svarer det ved hjælp af den samme viden og instruktioner som din hjemmeside chat, og enhver agent kan tage over. Intet om din AI har brug for konfigurering pr. kanal.

Hvordan forbinder ser ud

Facebook Messenger & Instagram

Et klik. Åbn forbindelser → Facebook Messenger & Instagram DM, klik på Connect, login med Facebook-konto, der forvalter din side, og vælg siden. Instagrams kommer med det, når din side har en Instagramms professionel konto knyttet.

WhatsApp

Et klik hvor din udbyder tilbyder det: åbne Messaging Hub-stik og bruge Connect WhatsApp, derefter følg Meta 's guidede sign- up for at vælge eller oprette dit WhassApp Business nummer. Ellers indsætte legitimation fra nogen af 20 gateways.

TelegramCity in Ontario Canada

To minutter. Besked @ BotPater i Telegram, send/newbot,vælge et navn og et brugernavn, der slutter i "bot", og indsætte den token, det giver dig i Telegram stik.OpsIQRegistrer webhook for dig.

LINJE

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

Tilføj en udbyder (Twilio, Vonage, Termii og andre) i messaging Hub med dens legitimations- og afsender nummer.

Hvert stik viser sine egne trin-by-step instruktioner inde i skuffen, herunder præcis hvad de skal kopiere og hvor. Du har aldrig brug for udvikler legitimation for one-klik muligheder.

Tænder en kanal

Forbindelse af en kanal starter ikke. Gå til Settings → Client Chat → Advanced → Messaging Channels, tænde for master skifte og derefter den enkelte kanal. Hver kanal har sin egen AI auto- svar kontakt, så du kan pilot på en før åbning af resten.

1
Forbind kanalen

I Connectors, ved hjælp af instruktionerne i den connector skuffe.

2
Test af forbindelsen

Klik på Test. Det gør en reel opkald til udbyderen og fortæller dig, hvad der er galt, hvis noget er.

3
Aktivér meddelelseskanaler

Indstillinger→Client Chat→Avanceret. Tænd hovedkontakten, derefter kanalen.

4
Send dig selv en besked

Fra en anden konto, bestil din side, nummer eller bot. Det skal vises i chat- indbakken inden for få sekunder og få et AI svar.

Svar på vinduer

Beskeder platforme begrænser, hvor længe en virksomhed kan svare efter en kunde skriver. OpsIQ viser den resterende tid på hver samtale og håndhæver reglen for dig.

WhatsApp

24 timer fra kundens sidste besked. Derefter kan du kun sende en godkendt skabelon, som du konfigurerer i samme Avanceret fane.

Messenger & Instagram

24timer for normale svar; agenter kan svare op til7dage senere under Meta 's humanagent godtgørelse.

Telegram, LINE, SMS

Ingen platform- påtvunget vindue.

⚠️
Hvis et svar mislykkes, fordi vinduet lukket, samtalen viser hvorfor. Dette er en platform regel, ikke en OpsIQ grænse.

Fælles spørgsmål

Kan kunderne se, at en AI svarede?+

Kun hvis du fortæller dem. Svaret kommer fra din side, nummer eller bot præcis som et menneskeligt svar ville. Din AI instruktioner styre tonen, og om det identificerer sig selv.

Kan en agent overtage midt-samtale?+

Ja. Åbn samtalen i chatindbakken og klik på Deltag. AI stopper, du skriver, og kunden ser en kontinuerlig tråd på deres side.

Hvad hvis jeg afbryder en kanal?+

Brug Afbryd forbindelsen på stikket. Brevhistorikken holdes; nye breve skal simpelthen stoppe med at ankomme, og platformen får besked om at holde op med at sende dem.

Kan to arbejdsrum bruge den samme Facebook-side?+

Nej. En side tilhører et arbejdsområde ad gangen. Forbindelse et andet sted flytter den, og det første arbejdsrum stopper med at modtage beskeder, så frakoble bevidst snarere end gentilslutte andre steder.

Støtte

Rigtige chatsamtaler

Disse eksempler viser, hvordan en veluddannet Kunde AI skal håndtere fælles scenarier. Brug dem til at teste din AI-træning og identificere huller.

10 samtaleeksempler

1. Afleverer kundespørgsmål om ordre

Scenarie:
Customer: Hi, I placed an order 3 days ago and haven't received any shipping notification yet. Order #ORD-5523.
Hvad skal man gøre:

AI bør: (1) Slå op ordre # ORD -5523 gennem stikket. (2) Rapportér den aktuelle status og tracking info hvis tilgængelig. (3) Hvis ordren er forsinket, skal du bekræfte forsinkelsen og give en estimeret tidslinje (4) Opfinde IKKE en shipping status, hvis stikket ikke har en.

2. Prospekt spørger om priser

Scenarie:
Customer: How much does your Pro plan cost? Do you offer annual billing?
Hvad skal man gøre:

AI bør: (1) Svar fra videnbasen med aktuelle priser. (2) Forklar forskellen mellem månedlig og årlig fakturering (3) Hvis svaret ikke er i videnbasen, skal du sige det og tilbyde at forbinde dem med salg (4) Opfinde IKKE prissætning, der ikke er i videnbasen.

3. Vred kunde krævende refusion

Scenarie:
Customer: This is ridiculous! Your product does not work and I want my money back NOW.
Hvad skal man gøre:

AI bør: (1) Anerkend frustrationen roligt. (2) Spørg efter ordrenummer eller e-mail. (3) Forklar tilbagebetalingsprocessen. (4) Opret en supportbillet eller eskalere til en menneskelig agent. (5) Lover IKKE en tilbagebetaling, der kræver menneskelig godkendelse.

4. Dobbeltfaktureringskanttilfælde

Scenarie:
Customer: I was charged twice this month. My bank shows two charges of $29.99.
Hvad skal man gøre:

AI bør: (1) Bekræft bekymringen. (2) Indsamle de relevante oplysninger (e-mail, dato for gebyrer). (3) Forklar, at fakturering spørgsmål kræver menneskelig gennemgang. (4) Opret en billet til fakturering med detaljerne. (5) Sæt prioritet til High.

5. Multisprogkunde

Scenarie:
Customer: Bonjour, je voudrais savoir si vous livrez en France?
Hvad skal man gøre:

AI bør: (1) Svar på kundens sprog, hvis dette sprog er understøttet. (2) Svar på spørgsmålet om levering til Frankrig fra videnbasen. (3) Hvis sproget ikke understøttes, skal du svare på standardsproget og nævne hvilke sprog der er tilgængelige.

6. Diskussion efter lukketid

Scenarie:
Customer: Hello, is anyone there? I need help with my account.
Hvad skal man gøre:

AI bør: (1) Hvis konfigureret til efter-timer AI, svar og assist. (2) Hvis after- hours skaber billetter, siger: "Vores team er i øjeblikket offline. Jeg har skabt en support billet til dig, og nogen vil følge op på i løbet af forretningstider". (3) Angiv billetnummeret.

7. Forhåndskøb sammenligning shopper

Scenarie:
Customer: How does your product compare to [Competitor X]?
Hvad skal man gøre:

AI bør: (1) Beskriv dit produkts styrker faktuelt. (2) Må IKKE nag konkurrenten. (3) Hvis der er en sammenligning side i videnbasen, link til det. (4) Hvis kunden spørger om funktioner, du ikke har, være ærlig.

8. Kunden ønsker en anbefaling

Scenarie:
Customer: I run a small online store with about 100 orders per month. Which plan is right for me?
Hvad skal man gøre:

AI bør: (1) Spørg om nødvendigt at afklare spørgsmål (f.eks., hvilke funktioner der betyder mest) (2) anbefale en plan baseret på videnbasen (3) Forklar, hvorfor den plan passer til deres behov (4) Nævn, at de kan starte med en mindre plan og opgradere senere.

9. Kunde, der forsøger at få en uautoriseret rabat

Scenarie:
Customer: I saw online that you give 50% discounts. Can I have one?
Hvad skal man gøre:

AI bør: (1) Polært forklare aktuelle kampagner, hvis nogen findes. (2) Opret eller lov IKKE rabatter, der ikke er i videnbasen. (3) Hvis kunden fortsætter, tilbyde at forbinde dem med salgsholdet.

10. Kunden har brug for hjælp til en funktion

Scenarie:
Customer: How do I export my data? I can't find the export button.
Hvad skal man gøre:

AI bør: (1) Giv trin-for-trin instruktioner fra videnbasen. (2) Inkludér den nøjagtige side sti og knap placering. (3) Hvis funktionen kræver en specifik plan, skal det nævnes (4) Hvis funktionen ikke findes, være ærlig og foreslå alternativer.

Støtte

Chat routing og eskalering

Når en live chat har brug for en rigtig person, AI besvarer to spørgsmål: hvilket team ejer denne samtale, og hvem der skal informeres. Begge er konfigureret i Indstillinger, Client Chat, Support Flow, under AI routing afdelinger.

Valg af hvilke afdelinger AI kan bruge

De to kasser på dette panel er en whitelist. Afdelinger flyttet til højre er de eneste AI kan rute til eller åbne billetter i. Alt venstre til venstre er usynligt for det, selv om afdelingen eksisterer og er bemandet. Start smal og tilføje afdelinger som du personale dem.

💡
Hvis ingen afdeling er aktiveret overhovedet, OpsIQ falder tilbage til arv routing på tværs af hver afdeling, det kan finde. Behandl det som et sikkerhedsnet, ikke en konfiguration valg.

Hvem modtager eskaleringen

Dette er den del, de fleste mennesker forventer at konfigurere og behøver ikke at. Når AI eskalerer en chat, OpsIQ e-mails de personer, der er knyttet til denne afdeling. Du styre denne liste én gang, på Team og afdelinger side, og både billet eskalering og chat eskalation følge det.

Medlemmer af afdelingsteamet

Hver aktiv admin knyttet til afdelingen modtager deres egen kopi. Suspenderet og deaktiveret konti er sprunget over.

Primær admin

Bruges, når der ikke er nogen holdmedlemmer, så en eskalation stadig når frem til nogen.

Ingen knyttet

Levering er ikke muligt. Rutepanelet markerer, at afdelingen i rødt og AI fortæller ikke besøgende et menneske blev anmeldt.

⚠️
En afdelings egen e-mail adresse er bevidst aldrig bruges som modtageren. Denne adresse er afdelingens indgående billet postkasse, den ene indkommende post matches mod at åbne billetter. En eskalering sendt der ville blive pired tilbage i som en ny billet snarere end at nå en person.

- Hele afdelingen.

Præcis en afdeling bærer catch- all mark. Det modtager chats AI kunne ikke trygt sted, og det er en sidste udvej snarere end den normale sti.

1
Ryd signaler vinder

Billing formulering går til en fakturering afdeling, hosting og fejl formulering til en teknisk en, køber ordlyd til salg.

2
AI klassifikatoren forsøger næste

Hvis nøgleord er inkonklusive, modellen læser samtalen og vælger fra de aktiverede afdelinger.

3
Så er det hele på plads.

Først når begge kommer op tom, catch- alle afdeling modtager chatten.

4
Salgsvagten

Hvis catch- all er en salgsafdeling og den besøgende viste ingen købssignal, OpsIQ søger støtte eller teknisk afdeling i stedet, så almindelige support spørgsmål ikke akkumuleres i Salg.

Hvad er det, den besøgende får at vide?

Hvis eskalering email går ud, AI fortæller den besøgende holdet er blevet underrettet. Hvis det ikke kan gå ud, Al siger noget ærligt og inviterer dem til at efterlade meddelelsen i chatten i stedet. Det vil ikke hævde et menneske blev advaret, når ingen e-mail blev sendt.

Panelet siger "ingen at underrette" for en afdeling+

Ingen er knyttet til det. Åbn Team og afdelinger, vedhæfte mindst én aktiv admin, derefter genindlæs indstillingerne side. Panelet læser live.

Kan vi snakke om eskalationer et andet sted end holdet?+

Ja. En brugerdefineret adresse, som tidligere er gemt til en afdeling, tilsidesætter stadig holdlisten. Nye opsætninger bør sætte folk på afdelingen i stedet, så der er et enkelt sted at vedligeholde.

Hvorfor var min kamp sprunget over?+

Kontroller om det er en salgsafdeling. Hvis det er, og den besøgende viste ingen købssignal, OpsIQ ruter til en support eller teknisk afdeling med vilje.

Støtte

e-mail-postkasser og udkast

OpsIQ kan oprette forbindelse til e-mail-postkasser for automatisk at oprette billetter fra indgående e-mails og sende svar som e-post. Det giver også AI- udarbejdet svar til menneskelig gennemgang.

E- mail
E- mail til billetEn IMAP postkasse til venstre fodring indgående e-mails ind i en gevindbillet med et AI- udarbejdet svar til højre.E- mailarbejdsområde[email protected] · IMAPAnmodning om tilbagebetaling[email protected]Kan ikke logge ind[email protected]Fakturakopi[email protected]Billet #1042fra e-mail · BillingJeg vil gerne have en tilbagebetaling tilduplikeret ladning...AI udkastGennemgå og send svar1INGESTIMAP & videresendelse i2TO TICKETSMed gevind automatisk3AI DRAFTSSvar med henblik på fornyet undersøgelse
Træk e-mail ind over IMAP (eller videresendelse), slå hver til en gevindret billet, og lad AI udkast svaret for gennemgang.

Forbindelse af en postkasse

Protokol

IMAP (de fleste udbydere), Gmail API (Google Workspace), eller Microsoft Graph (Outlook 365).

Indstillinger der er nødvendige

Vært, havn, kryptering (SSL/TLS), brugernavn, adgangskode eller app password, mappe (normalt INBOX).

Afdelingens kortlægning

Kort postkassen til en billetafdeling. E-mails til [email protected] opretter billetter i afdelingen "Support".

Gmail opsætning (trin for trin)

1
Aktivér 2- stedverifikation

Gå til Google-konto > Sikkerhed > 2- Trin Verifikation og aktivere det.

2
Opret en app- adgangskode

Gå til Google-konto > Sikkerhed > App Passwords. Vælg "Mail" og "Andet (OpsIQ) ". 16- tegnkodeord.

3
Indtast i OpsIQ

Gå til e-mail > Postkasser > Tilføj. Sæt vært: imap.gmail.com, port: 993, kryptering: SSL, brugernavn: [email protected], password: app 'en password.

4
Test

Klik på Test Connection. Hvis det lykkes, vil OpsIQ begynde at stemme om nye e-mails med det indstillede interval.

Outlook 365 opsætning

1
Check IMAP er aktiveret

I Outlook indstillinger > Mail > Sync e-mail, sikre IMAP er aktiveret.

2
Brug app adgangskode eller moderne auth

Hvis MFA er aktiveret, skal du oprette en app adgangskode. Ellers skal du bruge din almindelige adgangskode.

3
Indtast i OpsIQ

Vært: outlook.office365.com, port: 993, kryptering: SSL, brugernavn: [email protected].

cPanel webmail opsætning

1
Find IMAP indstillinger

I cPanel > e-mail-konti, klik på din e-mailadresse for IMAP indstillinger.

2
Indtast i OpsIQ

Vært: normalt mail.yourdomain.com eller dit serverværtsnavn, port: 993 (SSL) eller 143 (STARTLLS), brugernavn: fuld e-mail adresse.

AI e-mail udkast

Når auto- svar er indstillet til "draft" tilstand, AI genererer svar udkast, der vises i træk kø. Du kan:

Revision

Læs udkastet og tjek for nøjagtighed.

Redigér

Ændr tekst, tone eller indhold før afsendelse.

Send

Godkend udkastet og send det som et e-mail svar.

Kassér

Udkastet udgår, hvis det ikke er hensigtsmæssigt.

Send automatisk

Hvis tilliden er høj nok og autosend er aktiveret, sendes udkast automatisk efter en konfigurerbar forsinkelse.

Hvorfor konverteres e-mails ikke til billetter?+

Check: (1) Er postkassen forbundet og sund? Kig efter grøn status i e-mail > Postkasser. (2) Er cron job kører? E-mail afstemning kræver cron. (3) Bliver e-mailen filtreret eller flyttet til en anden mappe end INBOX?

Må jeg bruge flere postkasser?+

Hver postkasse kan kortlægges til en anden afdeling. [email protected] går til Support [email protected] til Billing.

Støtte

Kundetilfredshed (CSAT)

CSAT måler billet og chat tilfredshed, overflader ulykkelige svar og sammenligner AI og menneskelige resultater.

Produktskærm
KundetilfredshedCSAT-siden kombinerer scorekort, detractor follow- up, kommentarer, afdelings og agentopdelinger og chat feedback.KundetilfredshedarbejdsområdeSVAR386AVERAGE4.6POSITIVE91%SYGDOM AF LIVE ARBEJDSPLADSERFølgefølge af detraktor12 respons vurderet1–2RevisionBilletundersøgelserSendt 24h efter lukningAutomatiskFeedback fra chatAI 4.5 · Menneskelige 4.7SammenlignVisning af agentScore og responstællingCoach1WATCH AVERAGEBrug trend, ikke en score2FOLLOW DETRACTORSLæs kommentaren3COMPARE FAIRLYAI og human
CSAT-siden kombinerer scorekort, detractor follow- up, kommentarer, afdelings og agentopdelinger og chat feedback.

Billetundersøgelser er planlagt efter lukning (normalt 24 time senere). Et positivt respons er en score på4eller 5. Brug detractor kø for scorer af 1 eller2og læse billetten / samtalen, før du kontakter kunden.

Chat feedback rapporteres separat for AI- løst og humanhåndteret samtaler. Lave stikprøvestørrelser bør ikke anvendes til ranking agenter eller modeller.

Støtte

Team e-mail udsendelser

Email Platform-siden lader en autoriseret operatør sende en one-time besked til alle aktive agenter, udvalgte agenter eller en afdeling og gennemgå send historie.

Produktskærm
Email-platformTeamkomponisten viser publikum, emne, besked og tidligere leveringshistorik.Email-platformarbejdsområdeRECIPIENTER12DELIVERED11SLAGTET1SYGDOM AF LIVE ARBEJDSPLADSERPublikumAlle aktive stofferUdvalgteEmneJuli støtte rotaKlarMeddelelseSkema og eskaleringsnoterKlarHistorieTidligere udsendelser og resultatVis1CHOOSE PEOPLEAlle, udvalgte eller hold2WRITE CLEARLYEmne og meddelelse3REVIEW HISTORYBekræft resultat
Teamkomponisten viser publikum, emne, besked og tidligere leveringshistorik.

Denne side er for interne operationelle meddelelser, ikke kundemarketing. Vælg det mindste korrekte publikum, preview navne og adresser, derefter sende. Levering bruger den konfigurerede udgående e-mail sti og registrerer resultatet.

Støtte

Postkasser, levering og indadgående e-mail

Indstil hvordan OpsIQ sender e-mail, forvandler indgående beskeder til billetter og beviser at afsenderdomænet er klar.

Produktskærm
E- mail- indstillingerEmail indstillinger kombinerer udgående routing, Fra identitet, postkasse indtagelse, leveringsmuligheder kontrol og test e-mail.E- mail- indstillingerarbejdsområdeUDENBOUNDSMTPMAILBOXES3DOMÆNEPassSYGDOM AF LIVE ARBEJDSPLADSERForetrukken konnektorSMTP / provisor connectorKonfigurationFra identitetSupport <[email protected]>KlarIMAP postkasse[email protected] · INDBOKSPoleringLeveringSPF · DKIM · DMARCPass1CHOOSE OUTBOUNDForbindelse eller SMTP2CONNECT INBOXIMAP eller rør3PRØVNINGSend og verificer
Email indstillinger kombinerer udgående routing, Fra identitet, postkasse indtagelse, leveringsmuligheder kontrol og test e-mail.

Udgående e- mail

Fulde administratorer kan vælge den foretrukne e-mail stik; OpsIQ falder tilbage til konfigureret SMTP/ mail levering når det er relevant. Indstil en genkendelig Fra navn / adresse, send en test og tjek 24-time succes / fiasko målinger.

Postkasser

En IMAP postkasse har brug for et navn, e-mail adresse, målafdeling, vært, port, sikkerhedstilstand, brugernavn, adgangskode, mappe, valgstat og certificeringsvalideringsvalg. Brug Poll nu til at kontrollere indtagelse, før de venter på cron.

Øjeblikkelig rørføring

På samme server kan et postrør passere den rå RFC822-besked direkte. En ekstern mail- server kan POST meddelelsen til det beskyttede indgående endpoint ved hjælp af sin token. Begge stier indtaster den samme dobbelt-, tråde- og ticket- routing rørledning.

Levering

SPF / DKIM / DMARC-kontrollen er vejledende dokumentation for det konfigurerede Fra domæne. Et grønt tjek garanterer ikke placering af indbakke, men der bør rettes op på en fejl før afsendelse af produktionsmeddelelser.

Støtte

Støtte Portal Studio

Støtte Portal Studio designs og udgiver den brugervenlige support oplevelse uden at kræve eksterne billedaktiver.

Produktskærm
Støtte Portal StudioPortal Studio viser en lydhør preview sammen tema, navigation, viden, billet, assistent, form, sidefod og CSS -kontroller.Støtte Portal StudioarbejdsområdeTEMPLATEModerneINDLEDNINGSkrivebordSTATEUdkastSYGDOM AF LIVE ARBEJDSPLADSERTemaMærkefarver og typografiRedigérNavigationViden, billetter, assistentRedigérBilletformularFelter, ruter og kopierRedigérUdgivValidér og gør liveRevision1CHOOSE TEMPLATEStart fra struktur2PREVIEW SIZESDesktop til mobil3PUBLISH SAFELYGennemgang derefter udgivelse
Portal Studio viser en lydhør preview sammen tema, navigation, viden, billet, assistent, form, sidefod og CSS -kontroller.

Brug skabelonen som udgangspunkt, og opstil derefter tema, layout, navigation, viden søgning, billet form, assistent, fod, mærke, billet adfærd, brugerdefinerede CSS og generelle indstillinger.

Støtte

Knudepunkter

Den viden-hul kø indsamler kundespørgsmål AI kunne ikke besvare trygt, så holdet kan forbedre dækningen.

Produktskærm
KnudepunkterHulkøen rækker savnede eller lav-tillid spørgsmål og sporer, om holdet har løst dem.KnudepunkterarbejdsområdeOPEN GAPS28REPEATED9RESOLVED116SYGDOM AF LIVE ARBEJDSPLADSERMigrationsgrænserSpurgte 14 gangeHøjStøtte til weekenderSpurgte 8 gangeMellemTidspunkt for tilbagebetalingSpurgte 6 gangeMellemAPI -regionenSpurgte 3 gangeLav1REVIEW QUESTIONSe samtalesammenhæng2CHOOSE FIXArtikel eller omgående3RESOLVEVerificér det næste svar
Hulkøen rækker savnede eller lav-tillid spørgsmål og sporer, om holdet har løst dem.

Åbn et hul for at læse det oprindelige spørgsmål og den nærliggende samtale, derefter vælge den rigtige rettelse: opdatere en eksisterende artikel, oprette en ny viden artikel, tilføje en business fact, rette stik data eller ændre eskalering instruktioner. Markér det løst først efter en evaluering eller reel test returnerer et acceptabelt svar.

Støtte

Status side administration

Statusadministrationen siden kommunikerer service sundhed og hændelser ved hjælp af komponenter, aktuelle tilstande og opdateringer.

Produktskærm
StatusadministrationStatusadministration indeholder en liste over komponenter og hændelser, så operatørerne kan offentliggøre klare, tidsstemplede serviceoplysninger.StatusadministrationarbejdsområdeOVERALLOperationeltKOMPONENTER7INCIDENTS1SYGDOM AF LIVE ARBEJDSPLADSERWebstedOperationeltGrønAPIDegraderet ydelseUrEmail-indtagelseOperationeltGrønNuværende hændelseAPI latency-undersøgelseÅbn1UPDATE COMPONENTVælg klar tilstand2POST INCIDENTTidsstemplede opdateringer3RESOLVELuk med resumé
Statusadministration indeholder en liste over komponenter og hændelser, så operatørerne kan offentliggøre klare, tidsstemplede serviceoplysninger.

Brug komponentstater konsekvent. Når en hændelse påvirker kunder, udgive en indledende meddelelse, tilføje tidsstemplede opdateringer som fakta ændre sig, og lukke med en kortfattet opløsning resumé. Brug ikke statussiden som en intern debug log; følsomme diagnostik hører til i OpsIQ og server logs.

AI

Indstil din AI

AI Configuration er hvor du vælger din AI udbyder, model og omkostningsstyring. OpsIQ understøtter flere udbydere: Claude (Anthropic), GPT- 4o (OpenAI), Gemini (Google), og Grok (xAI). Du kan bruge din egen API nøgle (BYOK) eller Managed AI, hvis tilgængelig på din plan.

Indstil AI
AI-konfigurationEt AI-indstillingspanel: en Managed- AI / BYOK udbyder skifte, en model vælger, og en månedlig budget meter.AI-konfigurationarbejdsområdeAI-konfigurationUdbyderManaged AIDin nøgle (BYOK)Modelclaud · balanceretMånedlig AI-budget62%1TWO MODESAdministreret AI eller BYOK2PICK A MODELHastighed vs dybde3BUDGETSToken-loft og omkostningskontrol
Vælg Administreret AI eller din egen nøgle, skal du vælge en model for hastighed vs dybde, og cap månedlige udgifter med et token budget.

Valg af udbyder

Anmeldt af Claude (Anthropic)

Stærk ræsonnement, forsigtig med fakta, god til at følge komplekse instruktioner. Modeller: claude- sonnet -4-20250514, klaude...3.5-sonnet. Bedste for: support samtaler, tekniske spørgsmål, detaljeret analyse.

GPT- 4o (OpenAI)

Hurtig, kreativ, god generel viden. Modeller: gpt- 4o, gpt-4o-mini. Bedste for: hurtige svar, kreative skrivning, brede videnspørgsmål.

Gemini (Google)

God til faktuelle spørgsmål, flersproget support. Modeller:gemini-2.0-flash,gemini-1.5-pro. Bedste for: flersproget støtte, faktuelle opslag.

Gul (xAI)

Hurtige, koncise svar. Modeller: grok-3Det bedste for: hurtige svar, afslappet tone.

BYOK vs Administreret kunstig intelligens

BYOK (medbring din egen nøgle)

Du giver din egen API nøgle fra udbyderen. Du betaler leverandøren direkte. Fuld kontrol over model valg og brug.

Managed AI

AI leveres som en del af din OpsIQ - Nej. API nøgle nødvendig. Anvendelse er afmålt mod din plans AI kredit balance.

Opsætning af trinvis trin

1
Gå til AI - indstilling

I OpsIQ admin, navigere til Indstillinger > AI konfiguration.

2
Vælg udbyder

Vælg din AI udbyder fra dropdown.

3
Indtast API - tasten

Hvis De bruger BYOK, indtast din API tasten. For Administreret AI, dette håndteres automatisk.

4
Vælg model

Vælg den specifikke model der skal bruges. Mindre modeller er hurtigere og billigere. Større modeller giver bedre kvalitet svar.

5
Prøvningsforbindelse

Klik på "Test-forbindelse" for at verificere API -tasten og modellen virker. Et grønt checkmark betyder succes.

6
Gem

Klik på Gem for at aktivere din AI-konfiguration.

Omkostningskontrol

Månedligt budget

Sæt en maksimal månedlig forbrug på AI tokens. Når budgettet er nået, AI funktioner yndefuldt nedgradering (kortere svar, ingen auto-svar) snarere end at stoppe helt.

Grænse for menighedstegn

Maksimale tokens per enkelt samtale. Forhindrer løbske samtaler fra at forbruge overdreven kreditter.

Alarm med lav balance

Når din AI kreditsaldo falder under tærsklen (standard: 50,000 tokens), en advarsel vises i admin. Sæt dette i AI konfiguration.

Konfiguration af arbejdsområde

AI konfiguration er per- arbejdsområde. Hvis du håndterer flere steder, kan hvert arbejdssted bruge en anden udbyder, model og budget. Arbejdsområdet arver globale standardværdier medmindre overskridelsen. For at indstille per arbejdsrum: skifte til arbejdsrummet, så gå til AI konfiguration og gemme indstillinger der.

Henter API nøgler

Anthropic (Claude)

Gå til console.anthropic.com > API Nøgler > Opret nøgle. Kopiér tasten startende med "sk- ant-".

OpenAI (GPT)

Gå til platform.openai.com > API Nøgler > Opret ny hemmelig nøgle. Kopiér nøglen startende med "sk-".

Google (Gemini)

Gå til aistudio.google.com > Hent API Lav en nøgle til dit projekt.

xAI (Grækenland)

Gå til console.x.ai > API Opret og kopiér din nøgle.

Test din AI-opsætning

Scenarie:
After entering your API key, click "Test connection." You should see a green checkmark and a sample response from the AI.
Hvad skal man gøre:

Hvis prøvningen ikke lykkes: (1) Kontroller, at API tasten er korrekt (ingen ekstra mellemrum) (2) Kontroller, at din konto har fakturering oprettet med udbyderen. (3) Kontroller, at modelnavnet er gyldigt. (4) Hvis du bruger Managed AI, kontrollere din licens er aktiv.

Hvilken udbyder er bedst?+

Der er ingen enkelt bedste udbyder. Claude er fremragende til support samtaler. GPT- 4o er hurtig og alsidig. Gemini håndterer flere sprog godt. Prøv hver eneste og se, hvilke der giver de bedste resultater for din specifikke brug sag.

Kan jeg skifte udbyder senere?+

Ja. Skift leverandør og API -nøgle til enhver tid. Eksisterende samtale historie er bevaret. AI vil bruge den nye udbyder til alle fremtidige samtaler.

Hvad sker der, når jeg løber tør for kreditter?+

AI nedbrydes yndefuldt: svar bliver kortere, auto-svar pauser, og admin viser en lav balance advarsel. Kernesporing, billetter, og CRM fortsætter med at arbejde uden AI.

AI

Smartere & billigere kundechat

Et sæt opt- in kontroller, der gør din kunde chat enten smartere (det årsager på tværs af en kundes konto som en menneskelig agent) eller billigere (det sender AI mindre, eller svar i færre trin). Hver kontrol er slukket som standard og uafhængig, at slå en til aldrig ændrer nogen anden adfærd. De fleste lever under Indstillinger > Client Chat > Behaviour; nogle få er på Opsætning af din AI og Train din AI.

Smarter-svar (agent mode)

En normal chatbot besvarer et spørgsmål fra et kig op. Agent-tilstand på, kan assistenten foretage flere read- only konto kontrol i en enkelt tur og krydshenvisning dem, fx "har jeg åbne billetter, og er min balance nok til min næste fornyelse?" besvares i et svar med math gjort. Det kun gør for verificerede kunder på grund eller tilbagebetaling spørgsmål; alt andet kører den normale single- svar sti.

Agent-tilstand

Op til et par read- only lookups per tur, krydsrefereret før du svarer. Tænd når du har en tilsluttet platform (WHMCS, Shopify, Stripe, Zendesk osv.). Off = dagens single-lookup adfærd, uændret.

Tænkning dybde for agent svar

Hvor svært modellen grunde på komplekse sving (lav / medium / høj). Start på Lav; de fleste supportspørgsmål håndteres godt der.

Agentmodel

Pins en stærkere model bare for komplekse agent drejninger, så hverdagen chat forbliver på en let, billig model og kun de hårde sving betale for dybde. Blank = din normale customer-chat model.

Plan forude · one-pass svar (beta)

Et lille planlægningstrin afgør hvilke opslag der skal trækkes, og om videnbasen er nødvendig, så besvarer du i et enkelt hovedopkald i stedet for flere trin. En sub- skifte under Agent tilstand. Den kan ikke aktiveres medmindre Agent mode er tændt. Samme svarkvalitet, færre opkald på multipart spørgsmål.

Samtale og forståelse

Long- contalking memory (beta)

Holder en kort løbende oversigt over ældre beskeder (navne, billet / faktura numre, beløb, beslutninger) så assistenten forbliver konsekvent på tværs af meget lange chats uden at genstarte hele udskrift. Bedste for support- tunge, lange tråde; par med Agent mode.

Typo-tolerance

Læser små typoer ("mine åbne billetter", "ubetalte fakturaer") som de planlagte ord, så den rigtige information findes i stedet for at gå glip af. Fungerer med hver tilsluttet platform. Off som standard; nyttigt for mobil-tunge chat.

Kontokonteksten for lean

Kun lægger kundens konto snapshot, når spørgsmålet er faktisk om deres konto (balance, fakturaer, billetter, tjenester), springer det på generelle spørgsmål. Klipper omkostninger uden tab af kvalitet. Assistenten kan stadig hente kontoen live, når en tur har brug for det.

Omkostningsbesparelser

Spring viden søgning efter hilsener (beta)

"Hej", "tak" og "ok" udløser ikke en viden- base søgning, disse svar aldrig bruge det. Enhver besked med reelt indhold stadig søger som normalt.

Længste svar tilladt (tokens)

Caps hvor længe et enkelt svar kan være. Replik længde er den dyreste del af et opkald, så en fornuftig cap (omkring 500 for støtte) er den eneste mest effektive chat omkostningskontrol. Kun sænker din globale grænse, aldrig hæver det.

På Indstil din AI

Tænkning dybde (kunde & admin chat)

Hvor meget modellen tænker før svar (minimal til høj). Hold kunde chat på minimal / lav for hastighed; reservere højere indstillinger for analyse og admin copilot.

Per- AI model (per job)

Hver AI overflade (live chat, billet udkast, resuméer, analyse, admin copilot, kampagner, site intelligens og mere) kan køre på sin egen model. Lys, hvor hastighed betyder noget, stærk, hvor kvalitet er afgørende. Blank på en overflade = udbyder standard for dette job.

Admin chat omkostningsstyring

Den admin copilot kan holde en afgrænset arbejdshukommelse og indlæse kun de værktøjer et spørgsmål har brug for (magert værktøj) i stedet for hvert værktøj hver tur.

På Train din AI

Komprimeringsinstruktioner

Dine instruktioner sendes på hver tur, så deres længde er en tilbagevendende omkostninger. Knappen Compress omskriver en slot for at sige det samme med færre ord. Det nægter omskrivning, hvis det ville droppe enhver {variable} eller regel, og rapporterer hvad den beskyttede, så det aldrig lydløst ændrer mening.

"Hvad der allerede er i hjernen" (Det)

Viser hvad OpsIQ allerede ved om din virksomhed per slot, så du kan slette alt, hvad du var gentage i dine egne instruktioner.

💡
Hvor går pengene hen? For kort support chat input (instruktioner + konto data + historie, sendt hver tur) normalt koster mere end den korte svar, caching og lean kontekst hjælpe de fleste der. For længe genereret indhold output dominerer. Reply-længde cap og en lavere tænkende dybde betale ud der. Se Sæt din AI til at holde hurtig cachning på, hvilket gør den store gentagne del af hver slå billigt.
Ændrer disse hvordan chatten allerede svarer?+

Nej. Hver kontrol er slukket som standard og uafhængig. At tænde en, tilføjer kun sin opførsel; at slukke den returnerer chatten til præcis hvordan det fungerede før.

Hvilken ordre skal jeg tænde dem for?+

Kør hverdagschat på en lys model og pin en stærkere Agent model. Derefter, hvis du har en tilsluttet platform, aktivere Agent mode, derefter Plan forude, så Long- samtale hukommelse. Derefter læne sammenhæng, skip-KB- for- hilsner, og et svar cap. Endelig komprimere dine instruktioner. Se et par rigtige chats efter hver ændring.

Admin Agent kit: web søgning, runbooks, missioner, filoverførsel

Admin AI chat er en arbejder ingeniør, ikke bare et spørgsmål boks. Det kan forske rettelser på nettet, holde et bibliotek over dine operationelle procedurer, patrulje dine servere på en tidsplan, og flytte filer. Det meste af dette drives ved at bede om det i chat; den ene ting du konfigurerer op foran er, hvilken web søgemaskine det bruger, på Opsætning din AI side.

Websøgning

Indbygget

Agenten søger på nettet efter dokumenter, fejlmeddelelser og aktuelle oplysninger, mens det virker. Ud af boksen bruger dette DuckDuckGo, som ikke behøver nogen nøgle og ingen opsætning.

Runbogs

I chat

Et gemt bibliotek af dine procedurer ("hvordan vi gør X her"). Agent skriver en ned efter nagle et vanskeligt job og følger det næste gang, så know-hvordan overlever slutningen af chatten.

Tjenesterejser

Skemalagt

Planlagt read- only patruljer. "Hver morgen, kontrollere diskplads og fejlloggen og fortælle mig." Resultater ankommer på din admin klokke.

Filoverførsel

I chat

Bed om en logfil og få et privat download link, eller har en fil kopieret fra en tilsluttet server til en anden. Begge begrænset på 5 MB.

Admin Agent websøgning (på Opsæt din AI)

Søgeudbyder

Hvad agent web søgning bruger. Standard er DuckDuckGo: keyless, gratis, arbejder på hver installation. Brave Search, Tavily og Serper.dev (Google resultater) normalt vender tilbage bedre resultater, men hver har brug for en API nøgle fra denne udbyder. Hvis en keyed udbyder mislykkes af nogen grund (dårlig nøgle, kvote brugt op, netværk problemer), at søgning falder tilbage til DuckDuckGo automatisk, så søgningen aldrig går mørk.

Søg efter API nøgle

Nøglen til din valgte udbyder, kun nødvendig for Brave, Tavily eller Serper. Når gemt er det maskeret og aldrig vises på siden igen; indsætte en ny til at erstatte den. En keyed udbyder bliver kun aktiv, når både udbyderen og dens nøgle gemmes.

Runbogs

Når agenten lige har arbejdet igennem et job, som du vil have udført på samme måde igen, så sig "save that as a runbook called nightly-cleanup" (gem det som en runbook kaldet natlig oprydning). Fra da af ser den runbogen ved navn i hver session, og når du beder om jobbet ved navn (eller beskriver det), henter den trinnene frem og følger dem.

💡
En runbook er vejledning, ikke et gratis pass. Når agenten følger en, går hvert skridt, der ville ændre en server stadig gennem din nuværende tilladelse tilstand og viser de sædvanlige godkendelseskort. En runBook kan aldrig omgå en godkendelse.

Tjenesterejser

En mission er en tilbagevendende job agenten kører på sin egen: time, dagligt på et sæt time, eller ugentligt på en fastsat dag. Missioner er read- kun ved design. De kan læse servere, data og internettet, men de kan aldrig ændre noget; de undersøger og rapporterer. Når en mission slutter, resultaterne lander som en meddelelse på din admin klokke. Sig "køre morgenen patrulje nu" til at udløse en på forespørgsel, eller bede agenten om at liste, pause eller fjerne missioner.

⚠️
Missioner kører fra OpsIQ cron, så det skal være sat op (se Cron og automatisering). En one-off "køre det nu" fra chat værker selv mellem cron runs på de fleste servere.

Flytning af filer

Spørg efter en fil ("få mig dagens fejllog fra webserveren") og agenten faser det og svar med et privat download link. Linken virker kun for signed- in admins og udløber efter omkring en dag. Filer er begrænset på 5 MB; for noget større, bede agenten til at komprimere eller trimme det på serveren først.

Agenten kan også kopiere en enkelt fil mellem to forbundne servere, igen op til 5 MB. Skriften på destinationen behandles som enhver anden ændring den gør: i ask mode du får et godkendelseskort først, er den eksisterende fil sikkerhedskopieret, og kopien er reversibel. For sikkerhed, filindholdet gen- læses fra kilden i det øjeblik kopien anvendes, ikke taget fra chatten.

AI

Træn din AI

AI Træning er, hvor du underviser OpsIQ hvordan man opfører sig. Du skriver prompts, der definerer personlighed, grænser, viden fokus og eskalering regler.

Tog AI
Træn din AIEn AI instruerer editor med Kunde / Admin faner og slea- engelsk tone, altid og aldrig regler.Træn din AIarbejdsområdeKunde AIAI- administratorToneVenlig, koncis, aldrig anmassende.AltidTilbyd en menneskelig overdragelse for fakturering tvister.AldrigLov en tilbagebetaling uden at tjekke kontoen.1TWO MANUALSKunde & admin AI2PLAIN ENGLISHTone, altid, aldrig3GROUNDEDPlus din videnbase
Træn AI som en ny leje, Kunde og Admin manualer skrevet på almindeligt engelsk (tone, altid, aldrig), grundfæstet i din KB.

To uddannelsesområder

KundeAI-prompt

Kontrollerer hvordan AI taler til dine kunder i chatkontrollen. Dette er den vigtigste prompt for at komme rigtigt.

Admin AI prompt

Kontrollerer, hvordan AI hjælper din admin team i operatøren dashboard. Dette håndterer interne forespørgsler og handling udførelse.

Skrivning af en stor kunde AI prompt

Din kunde AI prompt bør dække disse områder:

1
Identitet

Hvem er AI? Giv det et navn, en rolle og personlighed. Eksempel: "Du er Luna, en venlig og kyndig kundesupport assistent for Acme Store".

2
Tone og stil

Hvordan skal det kommunikere? Eksempel: "Vær professionel, men varm. Brug simpelt sprog. Undgå jargon. Hold svar koncise (2-3 stk. max) ".

3
Viden grænser

Hvad skal det vide og ikke kender? Eksempel: "Du kender til vores produkter, priser, forsendelse, og returpolitik. Du ved IKKE om konkurrerende produkter eller interne virksomhedens beslutninger".

4
Eskaleringsregler

Hvornår skal det give videre til et menneske? Eksempel: "Eskalere til en menneskelig agent, når: kunden beder om en tilbagebetaling, nævner juridiske foranstaltninger, rapporterer et sikkerhedsspørgsmål, eller stiller det samme spørgsmål tre gange".

5
Ting at aldrig gøre

Hårde grænser. Eksempel: "Aldrig love restitutioner. Aldrig dele interne prissætning formler. Aldrig gøre op produktfunktioner, der ikke eksisterer. Aldrig give medicinsk, juridisk eller finansiel rådgivning".

Eksempel på prompts

Eksempel kunde AI prompt · online butik
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
Eksempel kunde AI prompt · hosting selskab
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

Raffinering af din prompt over tid

1
Start med grundlæggende

Start med identitet, tone og nøglegrænser. Forsøg ikke at dække alt på dag et.

2
Anmeldelse AI Historie ugentligt

Læs samtaler, hvor AI gav forkerte eller suboptimale svar.

3
Opdatér prompten

Tilføj specifikke regler for tilbagevendende problemer. Eksempel: hvis AI holder lovende restitutioner, tilføje "Aldrig love en refusion. Sig du vil eskalere til fakturering team".

4
Tilføj viden

Hvis AI 'en ikke kan besvare et spørgsmål, tilføje svaret på videnbasen i stedet for at forsøge at passe alt i prompten.

⚠️
Hold din prompt under 2,000 ord. Overly lange spørgsmål kan forvirre AI og øge token omkostninger. Sæt detaljerede oplysninger i videnbasen i stedet.
Hvad er forskellen mellem den hurtige og videnbasen?+

Den prompt definerer personlighed, grænser og regler. Kundskabsbasen giver faktuelle oplysninger (produktdetaljer, priser, politikker). AI læser begge, men den hurtige former adfærd, mens KB giver svar.

Kan jeg få forskellige forspring for forskellige afdelinger?+

Den prompt er per- arbejdsplads. Hvis du har brug for forskellige AI-adfærd for forskellige afdelinger, bruge videnbasen til at give department- specifikke oplysninger og nævne afdeling sammenhæng i din prompt.

AI

AI historik

AI Historie viser hver samtale, som AI har haft med kunder og administratorer. Brug det til at revidere AI ydeevne, finde forkerte svar, og identificere uddannelseshuller.

AI historik
AI historikEn log af AI vender med type badges, spørgsmålet og svar, responstid og resultat.AI historikarbejdsområdeHver AI-drejning, optagetchatQ: hvor er min ordre?A: sendt i dag, UPS sporing...0.9sansweredticketUdkast til svar for T-12345Udarbejdet refunderingsbekræftelse1.4sdraftedadminSammenfatter denne uges billetter12-line summary returneret2.1sgjortchatQ: annuller min planafleveret til et menneske0.7sescalated1EVERY TURNHurtig, svar, handling2SEARCHABLEFiltrér & eksport3OWNER-ONLYFuldstændig revisionsspor
Hver AI tur (chat, billet udkast, admin handling) logget med den nøjagtige prompt, svar, varighed og resultat.

Hvad hver samtale viser

Dato og klokkeslæt

Da samtalen skete.

Kundeidentitet

Navn og e-mail, hvis kendt, ellers IP og land.

Kanal

Chat widget, billet auto-svar, e-mail udkast, eller admin AI.

Meddelelser

Fuld udskrift af samtalen: kundemeddelelser og AI svar.

Brug af token

Hvor mange tokens samtalen forbrugt. Høj symbolsk brug kan indikere AI giver alt for verbose svar eller samtalen gik i cirkler.

Foranstaltninger

Alle handlinger AI udført under samtalen (slog op ordre, oprettet billet, osv.).

Bedømmelse

Hvis CSAT er aktiveret, kundens tilfredshed rating for denne samtale.

At finde problemer

Søg efter nøgleord

Søg efter specifikke emner for at se, hvordan AI håndterer dem. Eksempel: Søg efter "refund" for at kontrollere, om AI er i overensstemmelse med din refunderingspolitik.

Filtrér efter rating

Vis kun lavvurderede samtaler for at fokusere på utilfredse kunder.

Filtrér efter kanal

Vis kun billetten auto- svar til audit automatiske svar adskilt fra chat.

Sortér efter møntværdi

High- token samtaler kan indikere problemer: AI rablende, går i cirkler, eller undlader at besvare spørgsmålet.

Ugentlig revision

1
Tjek samtaler med lav kvalitet

Var det et videnhul, et toneproblem eller et forkert svar?

2
Tjek top- token samtaler

De kan indikere forvirring. Var AI gentage sig selv? Har det ikke forstået spørgsmålet?

3
Opdatering af uddannelse

For videnhuller, tilføje artikler til videnbasen. For adfærdsproblemer, opdatere AI prompt. For tilbagevendende forkerte svar, tilføje eksplicitte korrektionsregler.

Finde videnspalter

Scenarie:
You search AI History for "installation" and find 15 conversations where the AI said "I do not have specific installation instructions for this product."
Hvad skal man gøre:

Dette betyder, at din viden base mangler installationsguider. Opret videnbaserede artikler for hvert produkt installation trin. Efter tilføjelse af dem, test ved at stille AI-installationsspørgsmål.

AI

AI-indsigt

AI Insights analyserer automatisk konversationsmønstre og overflader, der kan gøres til genstand for handling: fælles spørgsmål, tilfredshedstendenser, videnhuller og eskaleringsmønstre.

AI-indsigt
AI-indsigt (Intelligence Hub)The Intelligence Hub: en AI Today 's Brief, Smart Alerts, en Score-a- Lead / Analyse- a- Side værktøj, og en 14-Day Traffic Mønster diagram.AI-indsigtarbejdsområdeTODAYS BRIEFTrafik op 12%; 3 hot leads2aftaler har brug for opfølgning.Smart- rapporterKontrolfejl spikedBounce op på /pricingNyt varmt bly fra USAIndtægter før sidste ugeScore en bly / analysere en sideIP eller URL…Kør14- Day Traffic Mønster1TODAYS BRIEFAI skriver morgenresumeet2SMART ALERTSAnomalierne dukkede op3ON DEMANDScore et spor · analysere en side
Den virkelige Intelligence Hub: en AI- skrevet Dagens kort, Smart Alerts for anomalier, on- demand bly scoring og side analyse, og 14-dag trafikmønster.

Hvad indsigt viser

Top spørgsmål

Den oftest stillede spørgsmål. Hvis "Hvordan nulstiller jeg min adgangskode?" er #1, din viden base har brug for en fremtrædende password reset guide.

Tilfredsstillende tendenser

CSAT scorer over tid. Er AI tilfredshed forbedre eller faldende? Pludselig dråber kan indikere en viden base ændring, der brød noget.

Opløsningsrate

Hvilken procentdel af samtalerne løser AI uden menneskelig indgriben? En sats over 70% Det er godt. 50% betyder, at den kunstige intelligens har brug for mere træning.

Eskaleringsårsager

Hvorfor samtaler får overdraget til mennesker. Almindelige grunde: kunde anmodet menneske, AI kunne ikke besvare, følsomme emne, fakturering problem.

Knudepunkter

Emner, hvor AI ofte siger "Jeg ved det ikke" eller giver lav- tillid svar.

Gennemsnitlig samtalelængde

Hvor mange beskeder per samtale. Meget lange samtaler (10+ meddelelser) kan indikere AI er ikke at forstå spørgsmålet.

Brug af indsigt til at forbedre

Scenarie:
AI Insights shows that 23% of escalations are "Customer asked about warranty" and the AI could not answer.
Hvad skal man gøre:

Dette er et klart videnhul.1) Skriv en omfattende garanti artikel i videnbasen dækker alle garantibetingelser, krav proces, og udelukkelser. (2) Opdater AI-prompt til reference garanti oplysninger. (3) Monitor AI Insights næste uge for at se, om garanti eskaleringer falder.

AI

Admin AI spilbog

The Admin AI (Spørg OpsIQ) hjælper dit team med at håndtere OpsIQ fra admin dashboard. Du kan bede det om at slå data op, forklare funktioner, sammenfatte billetter, og udføre platform handlinger.

AI- administrator
Admin AI spilbogKommandoboksen Ask-OpsIQ med et AI- foreslået platform-aktionskort, der viser parametre og bekræfter / annullerer.Spørg OpsIQarbejdsområdeSpørg OpsIQSuspendér tjenesten for forfaldne konto #4821AIProposed action: suspend_servicekonto: #4821 (forsinket) $120)platform: WHMCS · reversibel · revideretBekræftAnnullér1ASK ANYTHINGPlain-engelske kommandoer2PROPOSE FIRSTHandling vist før det kører3YOU CONFIRMScoped & revideret
Fortæl admin AI, hvad du ønsker på almindelig engelsk; det foreslår den nøjagtige handling (scoped, reversibel, revideret) og venter på din bekræftelse.

Hvad admin AI kan gøre

Slå data op

Spørg: "Vis mig alle billetter fra [email protected]"eller" Hvad er status for orden # ORD-5523?"

Sammenfatning

Spørg: "Summarisér de sidste 10 billetter" eller "Hvad er de øverste support spørgsmål i denne uge?"

Forklar funktioner

Spørg: "Hvordan konfigurerer jeg automatisk svar?" eller "Hvad betyder bounce rate kort?"

Udfør handlinger

Spørg: "Opret en billet til [email protected] om fakturering "eller" Luk billet T -12345"

Platformforespørgsler

Spørg: "Hvor mange besøgende fik vi i går?" eller "Hvad er vores indtægter denne måned?"

Eksempel på samtaler

Opstilling af en kunde

Scenarie:
Admin asks: "Find customer [email protected] and show me their recent activity"
Hvad skal man gøre:

AI ser op på kunden på tværs af alle tilsluttede datakilder: besøgende sessioner, billetter, chat samtaler, ordrer og CRM kontakter. Det returnerer en oversigt over seneste aktivitet med links til hvert element.

Få et dagligt resumé

Scenarie:
Admin asks: "What happened today?"
Hvad skal man gøre:

AI opsummerer: "I dag du havde 245 besøgende (op 12%), 8nye billetter (3 er løst af AI),2nye ordrer i alt $198, og1chat eskalering om en forsendelsesforsinkelse ".

Gennemførelse af en handling

Scenarie:
Admin asks: "Change ticket T-5523 priority to Urgent"
Hvad skal man gøre:

AI bekræfter: "Jeg vil ændre billet T-5523 prioritet fra Normal til Hastende. Dette vil påvirke SLA timer. Bekræft?" Du bekræfter, og handlingen er udført.

💡
Admin AI udfører kun handlinger, der er registreret i Action Registry. Det kan ikke opfinde handlinger eller adgangssystemer uden OpsIQ.
AI

KundeAI-scenarier

Dette afsnit dækker fælles customer-vender AI scenarier med forventet adfærd og uddannelse tips.

Kunde AI
KundeAI-scenarierEt bibliotek af kundespørgsmål parret med den forventede AI-adfærd og et resultat tag for hver.KundeAI-scenarierarbejdsområdeScenario bibliotek · forventet AI adfærd"Hvor er min ordre?"Slå op på ordren via stik, give sporingOpløs"Jeg vil have en refundering"Erkend, aldrig love at give hånd til et menneskeHandoff"Er tjenesten nede?"Kontrolstatus, rapportér nuværende tilstandStatus"Annuller min konto"Bekræft hensigt, derefter rute til et menneskeBekræft1SCENARIOSFælles spørgsmål2EXPECTEDHvordan AI skal svare3PRØVNINGFind træningshuller
Et bibliotek af rigtige kundespørgsmål og præcis, hvordan AI skal håndtere hver, at teste din uddannelse og finde huller.

Scenario-bibliotek

Undersøgelse af ordrestatus

Scenarie:
Customer: "Where is my order #12345?"
Hvad skal man gøre:

Forventet AI adfærd: (1) Slå ordren op gennem platformen stik. (2) Rapport om status (behandling, forsendelse, levering). (3) Inkludér tracking nummer hvis tilgængelig. (4) Hvis ordren er forsinket, skal du bekræfte og give estimeret tidslinje (5) Opfinde aldrig tracking information.

Anmodning om nulstilling af adgangskode

Scenarie:
Customer: "I forgot my password and cannot log in"
Hvad skal man gøre:

Forventet AI adfærd: (1) Giv adgangskoden nulstille trin fra videnbasen. (2) Inkludér nulstille link eller side sti. (3) Nævn, at nulstille e-mail kan tage et par minutter. (4) Foreslår at tjekke spam mappe. (5) Hvis kunden stadig ikke kan nulstille, eskalere til et menneske.

Anbefaling om funktion

Scenarie:
Customer: "Can you add dark mode to the mobile app?"
Hvad skal man gøre:

Forventet AI adfærd: (1) Tak for forslaget. (2) Forklar, hvordan anmodninger om funktioner håndteres (logget, revideret, prioriteret). (3) Lover du ikke at funktionen vil blive bygget. (4) Hvis en lignende funktion findes, nævne det.

Afgiftskonflikt

Scenarie:
Customer: "I was charged but my service is not working"
Hvad skal man gøre:

Forventet AI adfærd: (1) Bekræft frustrationen. (2) Kontroller servicestatus, hvis det er muligt. (3) Eskalere til fakturering afdeling med alle detaljer. (4) Lover du ikke en tilbagebetaling. (5) Sæt billet prioritet til High.

Off- topic spørgsmål

Scenarie:
Customer: "What is the weather like in London today?"
Hvad skal man gøre:

Forventet AI adfærd: (1) Polært omdirigerer. "Jeg er din [Firma] støtte assistent og kan hjælpe med spørgsmål om vores produkter og tjenester. For vejr information, prøv en vejrtjeneste" (2) Spørg, om de har et produkt spørgsmål.

Hvordan tester jeg kunde AI adfærd?+

Åbn din hjemmeside i en privat / inkognito browser og chatte med AI som kunde. Prøv fælles spørgsmål, kant sager, og modstridende scenarier. Tjek, at AI følger dine hurtige regler og bruger videnbase indhold korrekt.

AI

AI videnbase

The Knowledge Base er et bibliotek af artikler, som AI bruger til at besvare spørgsmål. Når en kunde spørger noget, AI søger videnbasen for relevante artikler og bruger dem til at generere en præcis, jordbaseret svar.

Videnbase
VidenbaseKilder, der fodrer ind i en vidensbutik, og derefter en AI, der genererer et jordbaseret svar.VidenbasearbejdsområdeKilderWebsite crawNameHjælpematerialeFAQ 'erImporterede dokumenterVidensemantik + nøgleordAISvarskriftmed en citeret kilde."Refusion take 3–5"Jeg har været på arbejde i flere dage".1INGESTKravl, FAQ, import2RETRIEVESemantisk + nøgleord3GROUNDEDSvar fra dit indhold
Crawl dit websted og importere docs i videnbasen; AI henter de rigtige stykker og svar, grundfæstet og citeret.

Sådan virker det

1
Kunden stiller et spørgsmål

"Hvad er din returpolitik?"

2
AI søger videnbasen

OpsIQ finder artiklen "Returneringspolitik" ved at matche søgeord og semantisk betydning.

3
AI genererer et svar

AI læser artiklen og skriver en natursprog svar baseret på artiklen indhold.

4
Kunden får et præcist svar

Svaret er baseret på din politik, ikke AI 's generelle træningsdata.

Oprettelse af gode artikler

Et emne pr. artikel

Skriv en separat artikel for hvert emne: returpolitik, forsendelsespriser, kontoopsætning, nulstilling af adgangskode. Kombinér ikke uafhængige emner.

Skriv som en FAQ

Start med det spørgsmål, kunder stiller, og giv derefter svaret. Dette hjælper AI matche spørgsmål til artikler.

Vær specifik

"Returnering skal indledes inden for 30 dage levering" er bedre end "Vi har en returpolitik".

Inkludér kanttilfælde

Hvad med internationale afkast? Hvad med digitale produkter? Hvad så med varer købt til salg? Dække undtagelserne.

Hold den aktuel

Gennemgå artikler kvartalsvis. Slet forældede oplysninger. Opdatér prissætning, politikker og procedurer, når de ændrer sig.

Startartikler du skal skrive

Forsendelse og levering

Forsendelsesomkostninger, leveringstider, sporing, international forsendelse og håndtering af forsinkelser.

Returnering og tilbagebetaling

Returvindue, betingelser, proces, tilbagebetaling tidslinje, og undtagelser.

Kontostyring

Adgangskode nulstilles, e- mail- ændring, kontosletning og dataeksport.

Prissætning og fakturering

Planbeskrivelser, faktureringscyklus, betalingsmetoder, fakturaer og valuta.

Produktvejledninger

Sådan bruger du hvert produkt eller hver funktion. Trin- stap instruktioner med screenshots.

Fejlfinding

Fælles problemer og løsninger. Fejlmeddelelser og deres rettelser.

Kontaktoplysninger

Forretningstider, supportkanaler, svartider og eskaleringsstier.

Retlig og retlig overholdelse

Databehandling, vilkår for service, anmodninger om GDPR data.

Kendingsviden

Hver stik kan bidrage med viden til AI. Når en forbindelse er aktiveret, dens build- in videnartikler (produktkatalog, fælles spørgsmål, platform- specifikke fejlfinding) er automatisk tilgængelig for AI. Du kan skifte konnektor viden på eller fra pr connector indstillinger.

Token-budgettet

Videnbasen har et konfigurerbart token loft (standard: 32,000 tokens), der styrer hvor meget viden sammenhæng er sendt til AI per samtale. Hvis din videnbase er meget stor, AI vælger de mest relevante artikler inden for dette budget. Øg loftet, hvis AI ikke finder relevante artikler; reducere det, hvis du ønsker at reducere token omkostninger.

Hvor mange artikler skal jeg have?+

Start med5-10 artikler, der dækker dine mest almindelige spørgsmål. Tilføj mere som du identificerer huller gennem AI Historie og AI Insights. De fleste virksomheder har brug for 20-50 artikler til omfattende dækning.

Kan jeg importere artikler fra et andet system?+

I øjeblikket er artikler oprettet manuelt i OpsIQ. Du kan kopiere-paste indhold fra eksisterende FAQ 'er, hjælpe centre eller dokumenter.

Hvad format skal artikler være i?+

Almindelig tekst fungerer bedst. AI forstår naturligt sprog bedre end struktureret HTML eller markdown. Skriv som du ville forklare til en kunde.

AI

AI evaluering og Watchtower

Evalueringssæt gør kritiske kundespørgsmål til gentagelige test for svarkvalitet, citater, eskalering og handlingssikkerhed.

Produktskærm
AI EvalueringAI Evaluation lister gyldne test tilfælde, krævede adfærd, nyeste resultater og planlagte Watchtower kører.AI EvalueringarbejdsområdeSETS6CASES84PASS RATE96%SYGDOM AF LIVE ARBEJDSPLADSERSkibsfartspolitikPåkrævet henvisningPassAnmodning om tilbagebetalingKrævet menneskelig bekræftelsePassIkke-understøttet fordringForbudte handlingerPassMigrationsspørgsmålForventet kilde manglerFejl1CREATE CASESGolden input og regler2RUN SAFELYTør kørsel eller live eval3WATCHTidsplan dagligt eller ugentligt
AI Evaluation lister gyldne test tilfælde, krævede adfærd, nyeste resultater og planlagte Watchtower kører.

Fulde administratorer kan oprette evalueringssæt med en hurtig, forventet kildemærkning, nødvendige citater, human- bekræftelsesregler, eskalering forventninger og forbudte handlinger. Kør et sæt direkte, tør- køre det, eller genafspille valgte historie.

Vagttårnet planer dagligt eller ugentligt kontrollerer gennem cron og kører et afgrænset antal tilfælde (op til otte pr skemalagt pass). Anmeldelse fejl sammen med udbyder / model, hurtig version, viden version, aktioner foreslået og omkostninger før ændring af produktionsadfærd.

AI

Sprog og oversættelse

Sprog håndterer oversat brugervenlig tekst og adfærd, der anvendes, når OpsIQ følger en kundes sprog.

Produktskærm
SprogSiden Sprog viser kildesproget, oversatte sprog, udkast / live stat og customer-sprog adfærd.SprogarbejdsområdeKILDEEngelskLANGUAGES4LEVENDE3SYGDOM AF LIVE ARBEJDSPLADSERFranskGrænseflade og indholdLevendeTyskGrænseflade og indholdLevendeSpanskUdkast til oversættelseUdkastFølg kundenSvar på opdaget sprogTil1SET SOURCEOriginalt operatørsprog2ADD LANGUAGEOversæt i baggrunden3PUBLISHUdarbejdelse eller live
Siden Sprog viser kildesproget, oversatte sprog, udkast / live stat og customer-sprog adfærd.

OpsIQ oversætter operator- indtastet brugervendt tekst. Sæt kildesproget korrekt, før du laver oversættelser, tilføje målsprog, derefter gennemgå udkast før publicering. "Følg kundesprog" styrer svarsproget; oversætte widget interface styrer sine knapper, etiketter og systemtekst.

Oversættelse omfang kan være udkast-kun eller live. Må ikke stole på maskinoversættelse for juridiske, tilbagebetaling, sikkerhed eller sikkerhedstekst uden menneskelig gennemgang.

Hvert sted, der holder din egen formulering er anført med sin meddelelse tæller: klient chat beskeder, kampagner, proaktive meddelelser, chatstrømme, guidede ture, meddelelser, teaser bobler og Undersøgelser og formularer. Undersøgelsens overflade dækker hver offentliggjort undersøgelse helt: titel, hvert spørgsmål, alle svar muligheder, knapper, velkommen og tak-du kopiere, side krom og udfald sider. Nøglerne er bundet til spørgsmålet ID og optionsværdien, så ombestilling af spørgsmål eller indstillinger aldrig mister en oversættelse, og omformulering en meddelelse gen- oversætter kun denne besked. Offentliggjorte live undersøgelser tilbydes som standard; udkast slutter sig når du udvider omfanget.

Postchat e-mail undersøgelsen følger det sprog, som den besøgende faktisk chattede på, forudsat at sproget er et du tilbyder her; ellers bruger det dit systemsprog. Dens seks redigerbare felter oversættes også på denne side, og adfærden har sin egen kontakt i klient- chat- indstillinger.

Billet- og portalmeddelelser dækker den faste tekst operatører type en gang og hver kunde derefter modtager på det ene sprog: billetten anerkendelse, de åbnede, lukkede og feedback bekræftelser, per- afdeling signaturer og portalen velkommen linje. (AI auto-svar behøver ikke noget af dette, det allerede svar på kundens sprog.) Email kunder på deres eget sprog aktiveret i OpsIQ Skrivning, billet e-mail løser modtagerens sprog i denne rækkefølge: det sprog, de valgte i portalen eller Hjælp Centre (transporteres på billetten), lokaliteten på deres kontakt record, derefter det sprog de skrev i, detekteres lokalt ved script range og markør ord, uden eksternt opkald. Kun sprog valgt på Sprogsiden er nogensinde anvendes, så funktionen er inert indtil sprog tilføjes. HTML email wrapper er bevidst ikke oversat: det er markup, ikke prose. Stafffacing e-mail (meddelelser, afdeling advarsler, analytiker briefinger, planlagte rapporter, den ugentlige digest) bruger altid systemet sprog.

Støtte

Hjælp center

Dit Help Center er et selvserv hjælpesite bygget fra de artikler du publicerer. Kunderne kan læse og søge i det på sin egen offentlige side, og lige inde i chatkontrollen, så de kan finde svar på sig selv, før de nogensinde åbner en samtale. Alt i det kommer fra din videnbase, så det samme indhold, der giver din AI også beføjelser til din offentlige hjælp.

Hvor dine kunder ser det

Dens egen offentlige side

Et rent, søgbart hjælpested på /help.php. Kunder gennemse efter kategori, søge og åbne enhver artikel. Du kan give det dit eget navn og stil.

Inde i chat- widget

Et link til chatkontrollen, så kunderne kan søge i dine artikler uden at forlade chatten. Hvis de stadig har brug for en person, er de et tryk på fra at starte en samtale.

Tænd for den

1
Åbn siden med Hjælp

Gå til Config, then Help Center i din admin og slå til Aktivér offentligt hjælpecenter.

2
Giv det et navn og et kig

Sæt navnet på Hjælp Center, som vises i overskriften og browserfanebladet, og vælg en visuel stil. Du kan slå den øverste navigation fra for en ren side uden menu.

3
Udgiv nogle artikler

Intet viser, før du udgiver artikler til det. Den næste del dækker hvordan.

Udgiv artikler til hjælpecentret

Artikler lever i din videnbase. En artikel vises i Hjælp Center, når det er offentliggjort og markeret offentligt. Der er et par måder at gøre dette:

Udgiv en artikel

Åbn artiklen, markér den offentliggjort, og slå muligheden for at vise den i Hjælp Center.

Udgiv alt på én gang

Brug Udgiv alle knap til at trykke hele dit publicerede sæt til Hjælp Center i et klik, i stedet for at gøre dem en ad gangen.

Omdan FAQ 'er til artikler

Har du allerede FAQ 'er? Udgiv alle til at hjælpe til at gøre dem til hjælp artikler, så de sidder sammen med alt andet.

Importér en eksisterende vidensbase

Flytter fra en anden hjælp skrivebord? Importér KB knappen på fanebladet Artikler bringer en eksisterende videnbase ind for dig. Du har tre måder at pege det på dit indhold:

Indsæt en URL

Giv det adressen på din nuværende hjælp center. Hvis den anerkender platformen (for eksempel Zendesk) det læser den nøjagtige kategori træ fra denne platform. Ellers kravler stedet og genopbygger strukturen fra siderne, importerer kun de rigtige artikler og springer login, priser og kontakt sider.

Vælg en tilsluttet app

Hvis en platform allerede er tilsluttet dette arbejdsområde, og den har et videngrundlag, dukker den op i et nedkastningssystem under Importér fra en tilsluttet app. Vælg det og importere, ingen URL eller adgangskode behov. App 'en er kun angivet, når den er tilsluttet og sat op.

Upload en CSV

Ingen live site at pege på? Upload et regneark med title, category, og body Søjler. Parent / Child i kolonnen vedrørende kategori til opbygning af indlejrede kategorier.

Uanset hvilken måde du vælger, får du en forhåndsvisning først: de artikler den fandt, grupperet efter kategori, hver med et afkrydsningsfelt så du kan slippe alt hvad du ikke ønsker. Intet gemmes før du klikker på Importér. Fortryd den samlede import med et enkelt klik, eller Gensynkronisering en URL eller forbundet-app import senere for at trække i nye og ændrede artikler.

💡
Udviklere: enhver forbindelse kan annoncere sin viden base til denne dropdown ved at erklære en kb_capabilities blokken i dens settings.json (type kb_sourcemed adapter og a base_template). Se afsnittet om forbindelser og reference til platformstik.

Organiser med AI

En ryddelig hjælp center er let at gennemse og lettere at søge. Organiser med AI knappen gør rydning for dig. I et klik læser det dine offentliggjorte artikler, sortere dem i fornuftige kategorier, og tilføjer tags. Det skaber en kategori, når den har brug for en, genbruger en kategori der allerede passer, og springer noget du allerede har organiseret, så du kan køre det igen når som helst du tilføjer nye artikler. Lad AI organisere i underkategorier i Help Center indstillinger og det kan også fil artikler under indlejret Parent / Child kategorier, som er praktisk lige efter import af en videnbase, der havde undersektioner.

💡
Kategorier giver kunderne en måde at gennemse, og tags skarpere søgning på både den offentlige side og i widget. Du kan omdøbe eller flytte ting bagefter. AI giver dig et stærkt udgangspunkt, ikke en opsætning du er fanget med.

Hjælpe Center inde i din chat widget

Du kan vise Hjælp Center lige inde i chatkontrollen, så folk søger svar, før de giver besked. I dine chat widget indstillinger, vælge hvor hjælpelinket vises:

I overskriften

Et lille hjælpe- ikon øverst i kontrollen.

Nederst

Et tekstlink under meddelelsesfeltet, for eksempel "Gennemse hjælpecenter". Du kan ændre ordlyden.

Begge steder

Vis det i overskriften og nederst for den mest synlige.

Hjælpen link har sin egen farvekontrol under widget udseende indstillinger. Lad det være tændt Ingen til at matche din affyrings farve, eller vælge en Fast farve eller Gradient. Hele hjælpeferien følger dit widget tema, så det altid ligner en del af dit mærke.

Sæt din hjælp center på din egen web-adresse

Ud af boksen din hjælp center allerede har en ren, delt adresse af sin egen (for eksempel /help/your-help-center). Du kan gå et skridt videre og tjene det under din eget domæne, så kunder og søgemaskiner se det som en del af dit mærke, for eksempel yourdomain.com/help eller help.yourdomain.com. Alt arbejder på dit domæne: links, billeder, søgning og artiklen ratings.

Under dit hovedwebsted

I Konfiguration, derefter Hjælp center, åben Indlejret tab og finde "Vis din hjælp center på din egen web-adresse". Vælg din setup (Cloudflare, Nginx eller Apache), kopiere den ready- made blok, og indsætte det i dit websted. Hver indstilling har en Opsætningsguide knap ved siden af det med de nøjagtige trin.

På et underdomæne

Foretag en foreløbig vurdering af de enkelte projekter. help.yourdomain.com? Det samme panel har en underdomæne mulighed. På Cloudflare er et subdomæne den mest pålidelige rute, og det giver dig en ren adresse med intet efter det.

💡
Brug Cloudflare? Det kun kører sin arbejder på en adresse, der er proxyed gennem Cloudflare(den orange sky). Dit hoveddomæne ofte peger lige på din hjemmeside, så en regel placeret på hoveddomænet kan stille og roligt gøre noget. Den pålidelige måde er en proxyed subdomæne som help.yourdomain.com. Opsætning guide fører dig gennem den ene DNS record og ruten.
Godt for SEO. Når din hjælp center er på dit eget domæne, søgemaskiner indeksere dine artikler under dit mærke. Hver side erklærer sin korrekte adresse og sitemap lister dem, så den samme artikel aldrig indekseres to gange.
💡
Brug af in- widget hjælp link også? I chat kontrol indstillinger "Åbn i hjælpcenter", indstille Hvor linket går til Dit eget hjælpecenterdomæne og indtast den samme adresse. Derefter disse artikel links åbne på dit domæne samt, ikke på OpsIQ -adressen.

Se hvordan hele dit hjælpcenter klarer sig

Ud over enkeltartikelafstemninger har hjælpecentret sin egen analytics. Slå det til i Help Center indstillinger, og det registrerer roligt, hvordan folk bruger din hjælp: de mest-viste artikler, hvad de søger efter, og søgninger, der kom tilbage tomme (en ready- made to- write liste), at arbejde ud besøgende land og enhed på egen hånd, så det ikke behøver chat widget installeret til at rapportere. Hvert nummer vises for both steder din hjælp vises, den offentlige side og in-widget hjælp, samt kombineret, så du kan se, hvor meget hver enkelt faktisk bruges.

💡
Analytics forbliver slukket, indtil du tænder den, og du kan have besøgende IP adresser anonymiseret. Intet er registreret, før du vælger i.

Vælg hvad der vises på hver del af siden

Hver sektion af Hjælp Center (kategorierne på hjemmesiden, de populære artikler, artikellisten på en kategori side og mere) har sin egen enkle regel. For hver enkelt kan du vise eller skjule det, og vise all a sat nummer, the senesteeller kun dem, du feature med en stjerne. Når en regel hætter en liste, kunderne stadig får et "Vis alle" link, så intet er virkelig ude af rækkevidde.

Du bestemmer også, hvordan de nyttige stemmer ser: skjult, en venlig forhold som "12 af 14 fandt denne hjælpsomme, "eller almindelige tommelfingre tæller. En minimumm- stemmer indstilling stopper en brand- ny artikel viser en akavet"0ud af0".

Se hvilke artikler der virker

Hver artikel viser en Var det her en hjælp? prompt. Hvert ja eller nej tælles pr. artikel, så du kan se på et øjeblik hvilke artikler der besvarer spørgsmål godt og hvilke der skal omskrives. Gentagne stemmer fra samme besøgende ignoreres, så tællingerne forbliver ærlige.

Tekst og etiketter

Du kan ændre overskrifterne og etiketterne på Hjælp Center for at matche din stemme. Lad alle felter være blanke, og det falder tilbage til en fornuftig standard, så du kun redigere den formulering, du faktisk ønsker at ændre.

Hjælpe Center deler et bibliotek med din AI. Hver artikel du udgiver her er det samme indhold AI bruger til at besvare chats og billetter, så forbedre den ene forbedrer den anden.

Fælles spørgsmål

Skal jeg skrive separat indhold til Hjælp Center?+

Nej. Det er bygget fra de samme videnbase artikler AI allerede bruger. Udgiv en artikel én gang, og det kan tjene begge dele.

Må jeg holde nogle artikler interne?+

Ja. Kun artikler, du udgiver og markerer offentlige vises i Hjælp Center. Alt upubliceret forbliver ude af det.

Vil kunderne stadig kunne nå en person?+

Ja. Kontrollinket hjælper med at sidde et hank væk fra at starte en samtale, så selv-tjene aldrig fanger nogen.

Vækst og SEO

Webstedet Intelligence (SEO suite)

Website Intelligence er OpsIQ's bygning-i SEO og search- synlighed suite. Det kravler dit websted som en søgemaskine, spor hvor du rangerer, research søgeord, ure backlinks og konkurrenter, scanner din lokale korttilstedeværelse, kontrollerer sidehastighed, og gør det hele til customer-klar rapporter, med en AI analytiker, der forklarer hvad man skal fastsætte og kan udarbejde rettelser. Det er en premium funktion; når aktiveret det vises som Site Intelligity i sidebar. Hvert domæne data forbliver adskilt, crawls, rankings og rapporter aldrig blande mellem domænerne.

Efterretningstjeneste
Website Intelligence instrumentbrætEt SEO instrumentbræt, der viser en site- health score, nøgleord rank tracking og en trafik tendens.Efterretningstjenesteyoursite.com86SITE-SUNDHED3 kritiske spørgsmålSporing af nøgleordai helpdesk#3levende chatsaaer#7cm for agenturer#12Økologiske klik1KRAWLFinder tekniske spørgsmål2TRAKKConstellation name (optional)Ranks, nøgleord, backlinks3AI ANALYST - 2018Forklaringer og udkast rettelser
Website Intelligence overblik: en site- sundhed score fra den seneste kravl, live søgeord rank tracking, en organ- klik tendens, og tretrins løkke: kravle, spore, lad AI udkast rettelser.

Kør en kravl · start her

En kravl er OpsIQ besøger dine sider den måde, en søgemaskine ville, at finde tekniske spørgsmål: brudte links, manglende titler, tyndt indhold, langsomme sider, indeksering problemer.

1
Start kravlen

På Oversigten, klik for at starte en kravl. OpsIQ køer det og arbejder gennem dine sider i baggrunden; en status indikator viser fremskridt.

2
Læs rapporterne

Når det er færdigt, åbne spørgsmål og sidelisten. Hvert problem er grupperet efter sværhedsgrad, så du tackle de største gevinster først.

3
Lad AI hjælpe

AI analytiker producerer en plain-sprog kort over, hvad der er galt, og hvorfor det betyder noget, og kan generere foreslåede rettelser du gennemgå, før du anvender.

Hvilke spor af efterretninger på webstedet

Kravler og lokalitetssundhed

Scanner dine sider for tekniske SEO spørgsmål og lister hver side med sine problemer. Retur når som helst, eller planlægge det.

Ranksporing

Tilføj de søgeord, du holder af; OpsIQ kontrollerer, hvor dit websted rangerer og sporer bevægelse over tid.

Nøgleordsforskning

Oplev nye søgeord ideer til at målrette, med AI nøgleord træner til at hjælpe prioritere.

Tilbagekoblinger

Se hvem der linker til dig, opdater listen og desavow links du ikke ønsker at blive tilknyttet dit websted.

Konkurrenter

Tilføj konkurrentdomæner og sammenligne din synlighed mod deres, med en AI konkurrent analyse.

Lokal (kort) gitter

Scan local- listing synlighed på tværs af et geografisk gitter for at se, hvor du dukker op på kortet, plus Google Business Profile værktøjer.

Sidehastighed

Kør side- hastighed kontroller, så du kan fastsætte langsomme sider, der skader placeringer og konverteringer.

AI-indhold

Generér indhold briefinger og udkast rettet mod de søgeord, du er målrettet.

Rapporter

Byg printbare, customer-ready rapporter af alt ovenfor.

Tilslut Google for nøjagtige data

To Google-stik gør estimater til reelle tal:

Google-søgekonsol

Søg

Træk de præcise forespørgsler, klik og indtryk Google-rapporter til dit websted, kort din ejendom, og overflade ranking muligheder direkte fra Googles egne data.

Google Analytics 4

Trafik

Medbring dine trafik- og forlovelsesdata sammen med dine SEO-data, så rapporter viser synlighed og adfærd sammen.

Planlagte genopfriskninger & hvidetikerrapporter

Du behøver ikke at køre alt i hånden. Planlagte genopfriskninger re- run kravler, rank kontrol, søgeord kontroller, backlink forfriskninger, local- grid scanninger og rapport generation på en kadence (dagligt eller ugentligt afhængigt af plan og volumen). Disse kører gennem OpsIQ cron, se Cron og automatisering sektion. Genererede rapporter eksport som printable, customer- ready dokumenter: agenturer sende hver klient en regelmæssig SEO opdatering, og fordi hvert domæne data er adskilt, hver klient kun ser deres egne.

Nogle site Intelligence funktioner kalder eksterne dataudbydere og AI gennem OpsIQ er konfigureret udbyder. De arbejder ud af boksen, når suiten er aktiveret for din plan.OpsIQ cron kører (se Cron og automatisering).
Skal jeg tilføje noget til mit websted for SEO sporing?+

Crawls, rank tracking, nøgleord forskning og backlinks arbejde uden at røre dit websted. For trafik og nøjagtige søgedata, tilslut Google Search Console og GA4.

Kan jeg spore mere end et domæne?+

Ja. Tilføj hvert domæne separat; deres kravler, placeringer og rapporter forbliver helt isoleret fra hinanden.

Hvor tit skal jeg kravle?+

Ugentlig er masser for de fleste steder; kravl på efterspørgslen efter et stort indhold eller struktur ændring. Sæt en tidsplan, så du aldrig glemmer.

Vækst og SEO

Auto- Implementation (SEO-agent)

Auto- Implementering er den del af Site Intelligence, der faktisk anvender rettelser crawl og AI analytiker anbefale, i stedet for kun at rådgive dig. Agent virker strengt fra hvad Site Efterretninger allerede fundet (det kan aldrig opfinde en ændring) og går hver fix gennem samme sikre loop: en dry- run preview, din per- step godkendelse, live skrive, et automatisk snapshot, og en re- craw, der beviser open- issue tal gik ned. Det er en Managed- AI- eneste funktion; det vises som Auto-Implement (raket) handling inde i Site intelligens sektion, og det er slukket indtil du tænder det.

Auto- Implementér
Autoimplementér SEO-agentEn flow viser anbefalede SEO rettelser bevæger sig gennem preview, godkendelse og en live-skrive, med et prove- it re- craw.Auto- Implementéryoursite.comAnbefalede rettelserAdd missing <title>godkendtFix robots. txtgodkendtIndsend sitemap.xmlreviewDRY- RUN PRÆVIEY (DIFF)+ <title>AI Helpdesk - OpsIQ</title>+ <meta name=description ...>- <title>Home</title>GodkendtSkibePROVE IT - RE- CRAWLÅbne spørgsmål 124Snapshot gemt1INDLEDNINGDry- run diff af hvert fix2TILNÆRMELSE OG WRITESSH eller hostet API3Bevis & tilbagekaldelseRe- crawl + snapshot
Hvordan en session kører: agenten lister de rettelser Site Intelligence allerede anbefales, viser en dry- run diffs af hver én, anvender dem, du godkender over SSH eller hostet API, snapshots før hver skrive, og re- kravler for at bevise den åbne-problem tæller faldt.

Hvad kan det ændre

Agent kun nogensinde anvender rettelser, at Site Intelligence (eller AI analytiker) allerede anbefalet til dette domæne. På tværs af de understøttede platforme, der dækker:

Server- indstillingsfil

sitemap.xml, robots. txt og omdirigerer, kanoniske og header regler i htaccess (Apache / LiteSpeed) eller nginx config.

Omdirigerede kæder

Kollaps en multi-hop omdirigering kæde ned til en enkelt hop lige til den endelige URL, inde i samme forvaltede htaccess blok, så hastighed og link værdi stoppe utæt gennem ekstra humle.

Page <head>

Manglende eller svage sidetitler, metabeskrivelser, kanoniske tags og strukturerede data (skema) blokke.

WordPress SEO

Yoast, Rank Math og SEOPress titler & meta, og billede alt tekst, anvendt gennem WP-CLI på SSH sti eller REST API på den hostede sti.

WordPress strukturerede data

Tilføjelser JSON-LD (schema) til sider, der mangler det. SSH sti en lille administreret hjælper (et must-use plugin) udskriver markup, så det virker med eller uden en SEO plugin; på den hostede sti din SEO-plugin bærer det.

Interne forbindelser

Tilfører et relevant internt link inde i eksisterende WordPress indhold til at redde forældreløse sider og forbinde relaterede indlæg. Et link pr side, aldrig inden for en overskrift, et eksisterende link eller en kortkode, og altid godkendt af dig først.

Thin- side indhold omskriver

Tegninger fuld erstatning indhold for tynde sider (tændt af en kravl mulighed, se nedenfor). Hvert udkast er revideret og godkendt af dig, før noget publicerer, og det gamle indhold holdes, så det kan gendannes.

Sidecache (WordPress)

Tænder på W3 Total Cache side caching, når kravlen finder hastighedsproblemer og at plugin er installeret, så siderne tjener hurtigere.

Shopify SEO

Produkt og samling SEO titler & beskrivelser, side og blog- artikel SEO, plus 301 omdirigerer, gennem Shopify Admin API.

Webflow SEO

Per- side SEO titel og meta beskrivelse gennem Webflow Data API v2.

Forbered rettelser automatisk (to kravl muligheder)

Webstedet Intelligence Indstil panel for et domæne (dets crawl indstillinger) har to muligheder, der bestemmer hvor meget agenten lines op for dig forud for tid. Begge er slukket som standard og begge bruge AI kredit, så du tænder dem kun, når du ønsker at arbejde gjort for dig.

Auto- prepare AI rettelser efter hver kravl

Hver kravl også skriver den konkrete fix indhold (titler, meta beskrivelser, alt tekst, skema, omdirigerer) for hvad det fandt, så rettelser er klar til at gennemgå og anvende det øjeblik kraven slutter i stedet for at blive genereret senere på efterspørgslen. Bruger AI kredit på hver kravle.

AI indhold omskriver (tynde sider)

Agenten kan udarbejde fuld erstatning indhold for tynde sider. Intet er nogensinde offentliggjort på egen hånd: hvert udkast vises som en ændring, du gennemgår side om side og godkende eller afvise, det tidligere indhold holdes så det er reversibelt, og det er begrænset til et par sider per pass. Bruger AI kredit pr. draft.

💡
Begge muligheder kun forberede og udkast arbejde. Hver ændring stadig går gennem den samme per- trin godkendelse, snapshot og rollback som enhver anden rettelse, så at tænde dem aldrig sætter noget levende af sig selv.

To måder, det forbinder

SSH / SFTP sti

Selvstyret

For websteder på din egen server, agenten forbinder over SSH/SFTP ved hjælp af legitimation du gemmer, redigerer serveren config og side filer direkte, og kører WP- CLI for WordPress. Bedste, når du har shell adgang og ønsker fuld kontrol af filer.

Hosted-API sti (nej SSH)

Ingen skal

For platforme, der ikke tillader SSH, agenten arbejder udelukkende gennem en embedsmand API konnektor WordPress (REST + application Passwords), Webflow (Data API v2) og Shopify (Admin API). Intet er installeret på værten.

💡
Wix og Squarespeed har ingen offentlig SEO- skrive API, så på disse platforme Auto- Implement kører i rådgivende tilstand: det viser dig den nøjagtige ændring at gøre (den præcise titel, meta eller indstilling) for dig at anvende med hånden. Alt andet er read- kun og sikker.

Tænd for konnektorer

Agent når hver platform gennem en konnektor:

Indbygget

Shopify og WordPress konnektorer med OpsIQ, bare aktivere dem under Connectors og tilføje butik / site legitimation.

Fra markedspladsen

Webflow, Wix og Squarespace installation fra Connectors → Marketplace, derefter tilslutte på samme måde.

Hvordan en session kører

1
Vælg rettelser

Åbn Auto- Implementér (raket) fra Site Intelligence sektionen. Det viser de problemer Site Efterretninger allerede fundet, at det kan fastsætte på dette domæne.

2
Vis forhåndsvisning af hver ændring

For hver fix agent viser en dry- køre diffs (præcis hvad det vil skrive) før noget rører den levende site.

3
Godkend trin for trin

Du godkender (eller springer over) hver ændring individuelt. Intet anvendes uden din udtrykkelige go- forward på det trin.

4
Det skriver, så snapshots

Ved godkendelse agenten gør live skifte over SSH eller den hostede API og gemmer et øjebliksbillede først, så enhver ændring kan rulles tilbage.

5
Bevis det, live

Som det gælder hver ændring agent straks gen- kontrollerer, at præcis side og viser en per- trin "fast levende" dom, så du ser hver fastsætte jord på den levende side, som det sker. Til sidst det om- kravler hele webstedet og bekræfter open- problem tæller faldet.

Sikkerheds- og faktureringsarbejde

Kun SEO

Agenten kan kun gøre, hvad Webstedet Intelligence anbefalede for dette domæne. Det kan ikke foretage vilkårlige ændringer på dit websted eller server.

Godkendelse af per- trin

Hver skrive er forudvist som en diffs og anvendes kun efter du godkender, at specifikke trin.

Snapshot & tilbagekaldelse

Et øjebliksbillede gemmes før hver skrivning, så enhver ændring kan vendes tilbage.

Levende per- step proof

Hver ændret side er re- kontrolleres det øjeblik, det er skrevet og får en "fast live" dom, så et fix bekræftes mod den levende side med det samme, ikke kun i lukning re-craw.

Indholdet er aldrig auto- publiceret

Interne links og thin-side indhold omskriver er højere-effekt, så de altid vises til dig for godkendelse og anvendes aldrig automatisk, uanset tilstand du kører.

Kun managed - AI

Auto- Implement kører på Administreret AI; det blokeres, når et arbejdsområde bruger sine egne (BYOK) nøgler.

Fakturering

AI tokens regningen normalt som du bruger dem, plus en flad per- use gebyr per Auto- Implementér session, begge trukket fra samme Managed- AI kredit.

Auto- Implementér er slukket som standard. Aktivér det på AI konfigurationssiden (Auto- implementeringskort) og sørg for at stikket til din platform er tilsluttet først.
Ændrer det noget uden at spørge?+

Nej. Hver ændring er fremvist som en dry- run diffs og anvendes kun efter du godkender det nøjagtige trin. Et øjebliksbillede gemmes før hver skrive, så du kan rulle tilbage.

Skal jeg bruge SSH adgang?+

Ikke på WordPress, Shopify eller Webflow De arbejder gennem deres officielle APIs uden adgang til skallen. SSH er kun en af de to stier, der bruges, når du vil have agenten til at redigere server config og filer direkte på din egen server.

Hvordan ved jeg, det virkede?+

Efter anvendelse af de godkendte rettelser agent re@-@ kravler webstedet og viser open- problem tæller før og efter, så du kan bekræfte rettelser reduceret problemerne.

Vil det omskrive eller offentliggøre side indhold på sin egen?+

Nej. AI indhold omskriver er slukket, indtil du tænder dem i kravl muligheder, de er begrænset til et par tynde sider per pass, og hvert udkast vises for dig for side- by- side godkendelse før noget publicerer. Det tidligere indhold holdes, så en omskrivning kan altid vendes tilbage.

Må jeg bruge den med mine egne AI nøgler?+

Nej. Auto- Implementering er Managed- AI kun og blokeres under BYOK. Det regninger AI tokens normalt plus en flad per-use gebyr pr. session, fra samme Managed-AI kredit.

Vækst og engagement

Undersøgelse Studio

Survey Studio er arbejdsstedet for at skabe redigerbare undersøgelser, der kan leveres som en rig standalone side, websidekontrol eller inline-integration. Det aktuelle produkt giver også hostede links, underskrevne udkast til previews, private invitationer, QR deling, respons browsing og survey- scoped analytics. Websitets widget er et leveringsvalg; det er ikke definitionen af en undersøgelse.

⚠️
Current- versus- målgrænse: premium skabelse og forhåndsvisning oplevelse, Connector Builder survey kapacitet, og Survey-ejede udbyder registreringsdatabasen / sundhed grænse er tilgængelige nu. Undersøgelse Studio stadig har brug for den uafhængige multi-implementering arkitektur, signed-token undersøgelse Identitet Gateway, målretning / variabel ledninger, CRM Outreach sende flow og indtastet surveys.* API.

Opret en undersøgelse

1
Vælg hvordan folk vil tage det

Den nuværende guide tilbyder Standalone side & link, Website widget og Inline inmarge. Den godkendte målstrøm begynder med undersøgelse type og senere tilføjer CRM e-mail, privat- link og QR implementeringer som førsteklasses valg.

2
Vælg formålet

Vælg NPS, CSAT, CES, produkt feedback, post-køb, afbestilling, onboarding, hjemmeside, begivenhed, webinar, støtte, bly / demo, retssag, vidnesbyrd, forskning, medarbejder, indtag eller generel feedback.

3
Brug en komplet skabelon eller start blank

Det nuværende katalog har klar redigerbare startere grupperet efter formål. Valg af skabelon skaber et kopieret udkast: ændring af din undersøgelse ændrer ikke startdatoen eller en anden undersøgelse.

4
Tilpas eller hurtig gennemgang

Tilpas åbner alle spørgsmål, design, adfærd og levering kontrol. Hurtig gennemgang åbner det samme udkast ved den endelige bruger- view check. Intet publicerer eller sender automatisk.

Levering valg og nuværende adfærd

Standalone side & link

En lydhør mærkevare side med sin egen URL. Brug private invitationer og udløb, når hver modtager har brug for et kontrolleret link. QR deling point på denne hostede oplevelse.

Webstedskontrol

Den migrerede arv kanal. Det kan bruge side, geografi, enhed, besøgende, dato, prøveudtagning, nedkøling, besøg og kvoteregler. Det er stadig bakkes op af arve- widget bro mens implementering arkitektur er bygget.

Inline inkl.

En lydhør undersøgelse placeret inde i en side, portal, produkt eller hjælp center. Det kræver ikke Promotion Studio.

E- mail

I dag kan Studio generere invitation HTML og private links. Ende- to- end sende fra CRM kontakter / segmenter, med samtykke, undertrykkelse, planlægning, forsøg og respons korrelation, er den godkendte CRM Outreach integration mål.

Virksomhedens design og forhåndsvisning

Undersøgelsessider har Survey- ejede temaer og sidelayout familier, lydhør kontrol, velkommen og færdiggørelse kopi, og en underskrevet udkast preview. Forhåndsvisning designer er fuld bredde under editoren, ikke en smal side skinne. Det bruger den virkelige hosted runtime i en sandboxed ramme og understøtter desktop, tablet og telefon bredder; preview trafik skriver ikke svar eller analytics.

💡
Undersøgelse Studio er uafhængig af Promotion Studio. Runtime målretning, identitet, aktiver, rendering og analytics skal Survey- own. Promotions indhold må kun genbruges via en eksplicit one-time kopi / import, der skaber løsrevet undersøgelse data; senere Promotionsedits må ikke have nogen effekt.

Det fulde formprodukt

Uafhængige deployeringer

Levende

En undersøgelse kan have separat versioneret side, widget, inkl, CRM e-mail, privat- link og QR installationer, hver med sin egen tilstand, design, publikum og analytics. Hver undersøgelse kan holdes på pause, deaktiveret eller slettet.

CRM-outreach og -kampagner

Levende

Byg et verificeret publikum fra CRM segmenter og Survey- stand stik, fastfryse det i en uforanderlig version, udstede en underskrevet invitation hver, og sende gennem den fastlåste udgående e-mail-forbindelse med per- invitation levering bevis.

Feltsæt og validering

Levende

Skydere, billede valg, fil upload, underskrift, adresse, telefon, overskrifter og rig tekst, med min / max længde, e-mail /URL/ antal forudindstillinger, brugerdefineret fejltekst og per- spørgsmål prefill URL parametre.

Logic, formler, resultater

Levende

OG / OR tilstand grupper, grenregler, en sikker formel motor over svar, og score bands, der bærer deres egen result side: en scoret quiz lander på sin dom.

Sprog, kiosk, præfill

Levende

En besøgende sprog dropdown liste kun sprog med rigtige oversættelser, kiosk tilstand for delte tabletter (større mål, auto- reset, ingen omdirigerer), en prefill link builder, og redigerbare secure- badge og sidefod tekst.

Version A / B-prøvning

Levende

Udgiv en udfordrer version på enhver implementering med en trafik split. Besøgende tildeles behændigt, svar stemples med den version faktisk serveret, og sammenligningstabellen viser svar, afslutning og middelværdi score per version. Forfremme vinderen i et enkelt klik.

Ugentlig fordøje

Levende

En ugentlig e-mail med de sidste 7 undersøgelsesdage KPI 'er, de travleste undersøgelser, Feedback pulsen og den seneste AI briefing, sendt gennem det fastlåste outbound stik. Indstil det i Levering Centre, Automation.

Styring

Levende

Per- survey adgang lister begrænse hvem kan redigere, offentliggøre eller slette en undersøgelse. Publicere godkendelse (four-eyes) kræver en anden admin til at frigive den nøjagtige udkast; redigering nulstiller godkendelsen. Udkast aktie links lade en anmelder se det rigtige udkast uden logning i.

Udvikler platform

Levende

Kontrakt om tilslutning 2.2, indtastede undersøgelser. * og feedback. * aktioner på api/ v1, kanonisk undersøgelse. * begivenheder, holdbare signerede webkroge med Slack og Google Sheets relæformater, og one- svar PDF eksport.

Vækst og engagement

Analytics og Feedback er forskellige produkter

Undersøgelse Analytics forklarer, hvordan en undersøgelse i sig selv er at nå folk og udføre. Feedback forklarer, hvad kunderne sagde på tværs af alle tilladte kilder, og hvad virksomheden bør gøre ved det. De to produkter linker til hinanden, men ikke dele eller overskrive analytisk sandhed.

Analytics

Det måler egnethed, eksponering, udløser adfærd, starter, afslutning, opgivelse, spørgsmål og grenfriktion, timing, implementering / kampagne / version resultater og runtime pålidelighed.

Feedback Overblik & indbakke

En permission- bevidst kronologisk feed for afsluttede Survey svar, arv widget feedback, chat og billet CSAT, billetsvar feedback, kunde AI- svar ratings, videnbase nyttige stemmer og godkendte eksterne / brugerdefinerede kilder.

Analyse af feedback

Analyserer kundebetydning: oprindelige måletrends, emner/temaer, følelser, intentioner, presserende behov, anmodninger, klager, ros, rejse-/produkt-/service-/teamsegmenter, kritikere og slutresultater.

Databesiddelse

Undersøgelse svar forbliver autoritative i Survey opbevaring. Feedback gemmer en genopbyggelig kilde reference og afledte signaler, derefter belastninger tilladt dokumentation på efterspørgslen. En afsluttet undersøgelse respons bliver højst et Feedbackelement.

⚠️
Den aktuelle Feedback side har stadig en Survey svar browser og en separat arv widget indbakke, og dens AI totaler endnu ikke bruge den fulde normaliserede kildemodel. Den samlede Oversigt / Indbakke / Analytics / Kilder & sundhed design er implementeringsmålet.

NPS, CSAT, CES, stjerner, tommelfingre og hjælpsomhed skal altid bevare deres oprindelige metode, skala, prøve, dato vindue og nævner. De må aldrig kombineres i et uforklarligt gennemsnit.

Vækst og SEO

Promotionsstudio

The Promotion Studio forvandler din hjemmeside til en konverteringsmotor. Design pop- ups, bannere, slideins, top / bund barer, fuldskærmsovertagelser, inline blokke og endda landbaserede omdirigeringer, derefter vise den rigtige besked til de rette besøgende på det rigtige tidspunkt. Alt leveres gennem OpsIQ widget allerede på dit websted, så der er intet ekstra at installere. Du designer og gemme kampagner når som helst; de viser kun, når du publicerer dem, og studiet er tændt for dit arbejdsrum.

Promotionsstudio
Forfremmelse Studio designerEn visuel kampagne designer med en blok palette, en popup på lærredet, og et målgruppe.Promotion Studio - Designer og produktionBLOKKERxVelkommen, {first_name}!Få 15% fra din første ordreSAVE15Påstand min kuponMÅLINGLandUSA, CAUdløsningsmiddelAfslut-hensigtA / B-opdeling50 / 50Udgiv1UDFORMNINGTræk blokke på lærred2MÅLLand, side, publikum3FORANSTALTNINGA / B vinder + AI indsigt
Den visuelle designer: en blok palette til venstre, din kampagne på lærred (her en personlig kupon pop- up ved hjælp af en {first_name} token), og målretning + udgive panel til højre.

Det store billede

Kampagne

Hvad

En forfremmelse: en pop- up, banner, bar, slide- in, full-screen, inline blok eller geo- omdiriger. Hver har et mål: salg, bly, sign-up, chat, undersøgelse, annoncering.

Design & versioner

Hvordan

Du bygger udseendet i den visuelle editor. Hver gemme skaber en ny version, så du altid kan rulle tilbage. Intet er nogensinde tabt.

Målsætning

Hvem

Hvem ser det: land, side, enhed, trafik kilde, returnering vs nye, tidsplan, og (med en forbindelse) din logged- i kunderne.

Triggere

Hvornår

Når det vises: straks, ved forsinkelse, på rulle, på exit- intention, når tomgang, på et klik, efter N-sider, eller fra chat / billet aktivitet.

Analyse

Resultater

Live indtryk, clicck- through, konverteringer, en drop- off tragt, land / side / enhed splits, A / B vindere og en AI indsigt.

Start din første forfremmelse i 5 trin

1
Start fra en skabelon eller blank

Åbn Promotion Studio og klik på New kampagne, eller vælg en ready- made design fra Templates galleriet.

2
Design det

Træk i blokke, overskrifter, tekst, knapper, billeder, badges, statistik, countdowns, formularer, kuponer, videoer, ratings, spinhjul. Style farver, gradienter og 3D effekter med skyderne. Eksempel Desktop / Tablet / Mobile, og brug Gratis flytte til at placere noget hvor som helst.

3
Personliggør det

Type tokens som {first_name}, {country} eller {company} til enhver tekst. Ved show- tid bliver de den besøgendes virkelige værdier.

4
Målsætning & udløser

Vælg hvem der ser det (land, side, enhed, publikum) og når det skyder (forsinkelse, rulle, exit- intention). Lad en regel blank for at betyde alle.

5
Tjek, og udgiv derefter

Klik på Check for en hurtig præ-lancering scanning, og derefter Publiser. Det går live inden for få sekunder og begynder at indsamle analytics.

Blokke du kan bygge

Indhold

Hovednet

Kurs, afsnit, liste, citat, billede, ikon, skilt, stat, divider og mellemrum, byggesten af enhver meddelelse.

Opkald til handling

Hovednet

Knapper med rigtige handlinger: åbne et link, starte en chat, oprette en billet, kopiere en kupon, eller hoppe til en side.

Nødhjælp & indfangning

Præmie

Nedtællingstider, formularer (e-mail / telefon / tekst), kupon afslører og video indlejringer.

Gamificeret & feedback

Præmie

Spin- to- win hjul, ridsekort, NPS / stjerne ratings og multitrins tragte.

Layout & effekter

Præmie

Kolonner, statuslinjer, social andel, sociale beviser tickers, ja / nej to-trin, quizzer og 3D effekter, tilt, glød, parallax, glassmorfisme.

Personaliseringstokens

Skriv en af disse i overskrifter, afsnit, knapper, skilte, statistik, lister eller citater. De erstattes med besøgendes live detaljer det øjeblik forfremmelsen vises (altid renset for sikkerhed):

Tilgængelige tokens
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)

Målretning

Land & placering

Vis kun i (eller skjul fra) udvalgte lande, byer eller tidszoner via GeoIP. Great for regionale-specifikke tilbud eller en geo- omdiriger.

Sider og URLs

Begræns til visse sider ved hjælp af ligemænd / start- med / indeholder / regex, og udelukke sider også.

Enhed

Desktop, tablet eller mobil, f. eks. en slank bar på mobil, en modal på skrivebordet.

Besøgstype

Ny, returnerer, kendt (i din CRM) eller anonym; CRM segmenter, livscyklus fase, bly score eller browser sprog.

Trafikkilde

By UTM (utm_source, utm_campaign) or referring site, e.g. only visitors from a specific ad.

Skema & hyppighed

Start / slut datoer, time- of- dag vinduer, og hvor ofte en person kan se det (per session, per dag, efter de lukker / klik / konvertere).

A / B-trafikopdeling

Vis en procentdel af besøgende og køre varianter head- to- head; den samme person altid ser den samme variant.

Publikum (logged- in)

Med en stikkontakt aktiveret, mål ved live account tilstand, f. eks. kunder med ubetalte fakturaer, eller aktive abonnenter.

Triggere

Vælg hvordan forfremmelsen vises: Umiddelbart efter en forsinkelse, på rulledybde, på exit- intention, når tomgang, på et klik på et element, efter en række sider ses, på form- opgive, eller fra chat / billet aktivitet. Udviklere kan fyre en fra deres egen kode med window.OpsIQPromo.fire('event').

Mållogged- i kunder (konnektorer)

Dette er, hvad der gør OpsIQ kampagner specielt: tilslutte en platform som WHMCS (eller enhver forbindelse, der understøtter publikum) og studiet kan målrette besøgende ved deres live account tilstand.

1
Aktivér en audiensconnector

Under Connectors, aktivere en, der udsætter publikum fakta (WHMCS gør ud af boksen). Kunderne er anerkendt sikkert, når de logges ind på platformen, OpsIQ Jeg stoler aldrig på en skrivemaskine i e-mail.

2
Tilføj en publikumsregel

I kampagnens målretning > Publikum, kræver logged- in og tilføje regler som ubetalte fakturaer > = 1, abonnement er past-due, eller konto kredit > 0.

3
Personliggør med deres data

Brug tokens såsom {first_name} eller {balance_due}. En "Du har en forfalden faktura" påmindelse skriver sig selv.

Publikum målretning er fejlsikret: hvis stikket ikke kan bekræfte en kendsgerning (eller den besøgende er ikke logget på), viser forfremmelsen simpelthen ikke, så et billing- målrettet tilbud aldrig når den forkerte person. Opbygning af din egen stik? Se "Promotion målgruppe" nedenfor.

Forbundet handel (studio superpower)

Produktkort fra din butik

Levende data

En Produkt blok trækker reelle elementer (navn, pris, salgspris, billede, link) direkte fra WHMCS, WooCommerce, Shopify er OpsIQ fakturering. Tik "Hold frisk" og kortet opdaterer sin pris fra platformen hver time, mens offentliggjort.

Overkurs ved emission

Kuponrente

En kupon blok kan skabe den reelle rabat kode i din butik, det øjeblik du offentliggør, så koden en besøgende afslører altid fungerer ved kassen.

Orderssandhedens indtægter

Tilskrivning

Real ordrer fra dine platforme er matchet tilbage til kampagner time (ved kupon kode anvendes eller af lead 's e-mail), så de indtægter, du ser er fra faktiske salg, ikke skøn.

Reelt socialt bevis

Tillid

Den social- bevis ticker kan føre med ægte nylige ordrer ("Ada bestilt Starter Plan · 2h siden"), fornavn og element kun, aldrig e-mails eller beløb.

Eksperimenter og rejser

A / B varianter & auto- vinder

Split trafik på tværs af design varianter; lad studiet fremme den statistiske vinder automatisk, eller hånd trafik til bandit optimering, som skifter besøgende mod hvad konverterer som dokumentation kommer i.

Opløftning af udholdenhedComment

Reserve et stykke af besøgende, der ikke ser noget, så du kan bevise kampagnen selv forårsager elevatoren.

Segmentvarianter

Forskellige indhold per publikum på SAME-kampagnen (mobile besøgende, store vogne, returnerende kunder), hvert segment får sin egen version.

Udløsningsforsøg

Varianter kan også teste, hvornår: øjeblikkelig vs forsinket versus exit- intented, målt hoved til hoved.

Rejse (lænke)

Mål efter hvad nogen gjorde med en anden kampagne ("så kampagne A, men ikke konvertere") til at bygge multi-step fremme sekvenser.

Teaser

En lille pille besøgende kan genåbne efter lukning af kampagnen, så en lukket popup er aldrig gået for evigt.

Vide hvad der skete

Klik på heatmap

Designer

I designeren, skifte heatmap til at male rigtige besøgende klik over hver blok af dit design.

Steptragt

Krydderier i form af blomstergrifler / støvfang

Multitrins kampagner viser præcis, hvor folk falder af, skærm for skærm.

Sammenlign kampagner

Studie

Sæt op til fire kampagner side om side (indtryk, klik, konverteringer), bedste værdi fremhævet.

Ugentlig historie & digest

AI

Hver mandag en fordøje lander i dine meddelelser; 📖 Weekly historie knappen skriver et slea- sprog resumé med næste trin, når du ønsker en.

Arbejde komfortabelt

AI copilot & ideer

Chat med design copilot til at redigere lærred ("gøre overskriften haster, tilføje en nedtælling"), få kampagne ideer fra dine egne trafikdata, oversætte en kampagne pr. land, eller auto- fix en lav designscore.

Import af mærkesæt

En kommando læser din hjemmeside og foreslår dine rigtige mærkefarver og skrifttyper; gemme og hver picker fører med dem.

Krydderier i form af blomstergrifler / støvfang

Skridt blokke få ægte per- screen redigering: faner for hver skærm, tilføje eller ombestille skærme, og forhåndsvisningen følger langs.

Navngivne versioner og tilstedeværelse

Navn vigtige versioner ("Start kandidat"), gendanne nogen af dem, og se en advarsel, når en holdkammerat redigerer den samme kampagne.

Enhedsstrip- linealer

Se skrivebord, tablet og mobil side om side i én visning; slå pixel linealer til for præcis placering.

Hosted side & kanaler

Hver kampagne kan også være en standalone hosted side for bios og QR-koder, en e-mail drop sekvens for fanget ledninger, eller et one- klik web- push udkast.

Virksomhedens sikkerhed

Udgiv fryservinduer (omdøbnings- frostperioder), en nødpause-alle switch, godkendelser, revisionsspor og version rollback.

Skal jeg tilføje kode til mit websted?+

Nej. Forfremmelser leveres af samme OpsIQ kontrol du allerede har installeret. Design, publicere, gjort.

Vil besøgende se den samme pop- op igen og igen?+

Nej. Sæt frekvenshætter (pr. session / per dag, eller stop efter nogen lukker, klikker eller konverterer).

Hvem kan udgive?+

Udgivelse, pause, arkivering og rulning tilbage er begrænset til arbejdsrumsejere og fulde administratorer. Ethvert team medlem kan oprette og designe udkast.

Vækst og SEO

Forfremmelsesdesigner

Promotion Designer er en lydhør blok redaktør for bygning, gennemgang, versioning og offentliggørelse af en kampagne oplevelse.

Produktskærm
ForfremmelsesdesignerDesignerens samlede lærred, udstyrspreviews, blokke, personaliseringsvariabler, kommentarer og versionshistorie.ForfremmelsesdesignerarbejdsområdeVIEWPORTSkrivebordUDGAVEv12STATEUdkastSYGDOM AF LIVE ARBEJDSPLADSERHelteblokOverskrift, medier og TCLRedigérTilbudsklodsRabat og fristRedigérPersonaliseringKontakt- og kampagnevariablerKlarStart kontrolBemærkninger og valideringRevision1BUILD BLOCKSRedigér live layout2INDLEDNINGDesktop, tablet, mobil3PUBLISHVersioneret udløsning
Designerens samlede lærred, udstyrspreviews, blokke, personaliseringsvariabler, kommentarer og versionshistorie.

Brug blokke til at komponere oplevelsen, få vist hver understøttet viewport og indsætte godkendte personalisationsvariabler. Anmeld kommentarer og AI- media provenance før lanceringen. Gemning skaber versioner, så et tidligere design kan inspiceres eller gendannes.

Vækst og SEO

Forfremmelsesskabeloner

Skabeloner giver et søgbart, kategoriseret startgalleri til Promotion Studio kampagner.

Produktskærm
ForfremmelsesskabelonerTemplate galleriet filtrerer premium layouts og anvender arbejdsrumsmærkefarver, når en skabelon bliver et udkast.ForfremmelsesskabelonerarbejdsområdeKATEGORIOmregningRESULTS24BRANDAnvendtSYGDOM AF LIVE ARBEJDSPLADSERUdtrædelsestilbudModal med hastesag og TCLForhåndsvisningny besøgsvelkomstBanner og fordelinglisteForhåndsvisningProduktlanceringHelte, bevis og nedtællingForhåndsvisningAnmodning om feedbackKompakt undersøgelseshastighedForhåndsvisning1FILTERKategori og søgning2INDLEDNINGKontroller det fulde design3USEOpret et mærkeudkast
Template galleriet filtrerer premium layouts og anvender arbejdsrumsmærkefarver, når en skabelon bliver et udkast.

Søg eller filter efter kategori, indlæse yderligere resultater, få vist den komplette oplevelse, og vælg derefter Brug skabelonDen nye kampagne er stadig et udkast og kan ændres i Promotion Designer før offentliggørelsen.

Vækst og SEO

Analyser af salgsfremmende foranstaltninger

Fremme analytics forbinder indtryk og klik til konverteringer, publikum kontekst, connect handling resultater og kampagne læring.

Produktskærm
Analyser af salgsfremmende foranstaltningerPromotion analytics viser overskrifter ydeevne, publikum og udløser opdelinger, fører eksport og connector handling resultater.Analyser af salgsfremmende foranstaltningerarbejdsområdeIMPRESSIONS42.8kKlikfrekvens6.4%CONVERSIONS814SYGDOM AF LIVE ARBEJDSPLADSERLandDet Forenede Kongerige · 31%OpdelingSide/pricing · 22%OpdelingUdløsningsmiddelUdgangsintentioner · 44%OpdelingForbindelseshandlingCoupon oprettet · 97% succesResultat1FORANSTALTNINGFortrængninger til konvertering2SLICESide, land, enhed3LEARNAnvend indsigter
Promotion analytics viser overskrifter ydeevne, publikum og udløser opdelinger, fører eksport og connector handling resultater.

Læs indtryk, klik-gennem hastighed og konverteringer sammen. Bryd resultaterne ned efter land, side, udløser og enhed; eksport fanget fører når det er nødvendigt. Connector handling resultater viser, om den lovede opfølgning faktisk kørte. AI indsigt og læring resuméer bør behandles som hypoteser for at validere, ikke automatisk bevis.

Vækst og SEO

Bekendtgørelser

Meddelelser udgive en meddelelse i widget notification område med valgfri målretning, tidsplan og kalde til handling.

Produktskærm
BekendtgørelserThe Nouncement editor indeholder indhold, TCL, publikum, segment, side regel, aktive datoer og visuel stil.BekendtgørelserarbejdsområdeAKTIVE3AUDIENCESegmentTILFØJELSEJul22–29SYGDOM AF LIVE ARBEJDSPLADSERTitelPlanlagt vedligeholdelseKlarIndholdMarkned- meddelelseKlarTCLLæs opdateringenValgfritArtikelPrisfastsættelsessider · aktive kunderMål1WRITETitel og markdown2MÅLPublikum, segment, side3TILFØJELSEAktivt vindue
The Nouncement editor indeholder indhold, TCL, publikum, segment, side regel, aktive datoer og visuel stil.

Vælg alle besøgende, signed-i besøgende eller nye besøgende; eventuelt indsnævre publikum med en kontakt segment og side regel. Sæt aktivitet-fra / aktivit-til datoer og et aktivt flag. Premium stil presets og farver ændre præsentation, men ikke erstatte klart indhold.

Vækst og SEO

Push-kampagner

Push kampagner sende browser meddelelser til abonnerede besøgende, efter at de har forladt webstedet.

Produktskærm
Push-kampagnerPush komponisten viser abonnementsmængde, indhold, medier, handlinger, målregler og tidsplan.Push-kampagnerarbejdsområdeSUBSCRIBERS8,214SENDT31.6kCLICK RATE5.8%SYGDOM AF LIVE ARBEJDSPLADSERTitelDin vogn venterKlarKropRetur i dag for gratis leveringKlarTCLÅben vognKlarSkemaSend nu eller skemalagtUdkast1PREPARE PUSHTitel, krop, ikon2MÅLPublikum, segment, side3SENDSkema eller udkast
Push komponisten viser abonnementsmængde, indhold, medier, handlinger, målregler og tidsplan.

Indstil Web Push-tasterne først under webPush indstillingerne. En kampagne kan omfatte titel, krop, ikon, heltbillede, skilt, TTA og op til to handlingsknapper; der er en vedvarende meddelelse tilbage indtil den besøgende interagerer.

Målgruppe efter publikum, valgfrit kontaktsegment og sideregel. Gem et udkast, skemalæg det eller send det straks. Brug abonnementet og klik på målinger for at vurdere nå frem til. HTTPS og en korrekt hostet servicetjeneste er påkrævet på indlejrede tredjeparts sites; se Web Push på tredjeparts websteder.

Vækst og SEO

Proaktive meddelelser

Proaktive meddelelser når automatisk ud i det øjeblik en besøgendes adfærd matcher en regel, før de spørger. Du bygger hver som regel med tre dele: hvad der skal ske, hvornår det skal brand, og hvor ofte. Alt leveres gennem OpsIQ widget allerede på dit websted.

Proaktiv
Proaktive meddelelserEn proactive-regel komponist i tre dele: vælge en handling (chat, banner, tour, push, e-mail), tilføje betingelser, og indstille en frekvens køle ned.Proaktive brevearbejdsområde1 · HandlingChat-meddelelseBannerTurSkubE- mail2 · Betingelserpage = /pricingtid på side > 20som at vende tilbage3 · FrekvensEn gang pr. sessionStatus1FORANSTALTNINGERSnak, banner, e-mail, skub...2CONDITIONSSide, tid, score, returnering3FEKENCYNedkøling pr. besøgende
Hver proaktiv regel er tre valg: hvad sker der (chat, banner, tour, push, e-mail, webhook), hvornår (betingelser), og hvor ofte (køle ned).

De tre dele af en regel

1
Hvad skal der ske (handling)

Vis en chat boble eller on- side banner, starte en Guided Tour, sende et web push eller e-mail, tildele til en afdeling, eller affyre en webhook. Tokens som {{visitor_name}} og {{page_title}} blive virkelige værdier.

2
Når det skal affyres (betingelser)

Smal hvem udløser det: side /URL, tid på siden, rulle dybde, bly score, vender tilbage vs nye, tomgang. Uden betingelser, reglen brande for hver besøgende. Tilføj mindst én til at målrette det. Betingelser kombinere med OG.

3
Hvor ofte (hyppighed)

Sæt en nedkøling så den samme person ikke bliver forpestet, f. eks. én gang pr. session eller én gang dagligt. Hver regel har en on / off status.

⚠️
Arbejdsområdet skifte "Kør tid / tomgang regler time" lader serverside handlinger (e-mail, tryk, webhook, tildele) brand på en tidsplan for kendte kontakter, der ikke i øjeblikket er på siden, så du kan "email inaktiv hot leads" automatisk. Det har brug for OpsIQ cron kører. Lad det være ud, hvis du kun ønsker live on- page nudges.
Vil den skyde for alle?+

Kun hvis du tilføjer ingen betingelser. Tilføj mindst én betingelse (side, lead score, returnering...) til at målrette de rigtige besøgende.

Hvordan forholder det sig med strømme og ture?+

De arbejder sammen: en proaktiv regel kan starte en Guided Tour, og en Chatbot Flow kan udløses af en proaktivt regel. Start med en enkelt chat- message regel, derefter lag de andre på.

Vækst og SEO

Chatbot-strømme

Chatbot Flows script forgrener samtaler inde i din chat- kontrol (hilsner, nøgleord svar, guidede stier) uden kode. Et flow er et sæt forbundne trin (noder): du stiller et spørgsmål, den besøgende vælger en mulighed, og strømmen sender dem ned matchende gren. Kun Aktive strømme kører på dit websted.

Sådan virker det
Chatbot-strømmeEt flowlærred: en hilsen node grene i tre optionsknapper, der hver fører til et næste skridt, slå op orden, eller hånd ud til et menneske.Hilsen- Hvordan kan jeg hjælpe?Spor min ordreBillingspørgsmålTal med et menneskeSlå op rækkefølge→ Menneskelig agentTriggers: hilsen · nøgleord · Manual · Efteroplysninger · On- chat- end
Chatbot-strømme

Strømmen mod AI 'et, når du skal bruge

Brug en gennemstrømning

Når stien er forudsigelig og du ønsker det identisk hver gang: booking trin, en returnerer guiden, en "hvilken plan?" vælger, indsamle en e-mail før aflevering. Flows aldrig improvisere.

Brug AI

Når spørgsmål er åbne-sluttede ", virker dette med min setup?". Kundechatten AI svarer fra din uddannede viden. En flow kan aflevering til AI (eller et menneske) på ethvert trin.

Triggere

Hilsen

Kører som åbningsmeddelelsen, når en besøgende først åbner chatten.

Nøgleord

Kører når den besøgende skriver et ord du har angivet (fx refundering, pris, annuller).

Efter detaljer / efter forsinkelse

Starter når kontaktoplysninger er delt, eller et sæt tid ind i samtalen.

På chatafslutning / proaktiv

Kører som chatten wraps op (fx en rating), eller startes af en Proactive Message regel.

Byg en i fire trin

1
Opret strømmen

Klik på Ny Flow, navn det, vælg en udløsertype (og søgeord hvis Nøgleord), gemme. Det starter slukket.

2
Åbn lærredet

Klik på Redigér Canvas. Den visuelle builder, hvor du tilføjer trin (beskeder, spørgsmål med knapper, grene) og tilslut dem.

3
Tilføj grene og en hånd- off

For hvert valg, tegne en gren til næste trin. Slutstier ved at løse, give til AI, eller overføre til et menneske.

4
Aktivér det

Klik på Aktivér. Flowet går live i din widget med det samme. Deaktivér når som helst uden at miste designet.

Erstatning af AI 'en?+

Nej. De kører side om side. Brug strømme til forudsigelige stier og AI for åbne-sluttede spørgsmål; en strøm kan altid give ud til enten.

Vækst og SEO

Vejlede ture

Guidede Tours er trin-by-step walkgennemwiths, der peger på dele af din side med talefboble og en spotlight, vejlede en besøgende gennem onboarding eller en ny funktion. De er fuldt tematiseret og bygget i en visuel designer med en live preview. En tur kører kun, når det er markeret Aktiv.

Sådan virker det
Vejlede tureEn dæmpet side med en spotlight ring omkring en Add- deal knap og en tema talefobbel læsning Step 1 af 4 med knappen Næste.+ Tilføj dealTRIN 1 AF 4Opret din første aftaleKlik her for at tilføje en aftale til din rørledning.Næste →
Vejlede ture

Hvordan en tur er bygget

Trin

Hvert trin er rettet mod et element og viser en boble med din tekst. Tilføj så mange stop som walkthrough behov og bestille dem.

Præsentation og tema

Start fra et forudindstillet eller designe din egen boble (farver, gradienter, spotlight) med en levende forhåndsvisning til højre.

Udløsningsmiddel

Muligvis linke en Proactive Regel, så turen auto- starter, når det regel brande (fx en tilbagevendende besøgende første dashboard besøg).

Aktiv skifte

En tur er berettiget til at køre kun mens Aktiv er afkrydset. Afkryds for at tage det ned uden at slette det.

Byg en i fire trin

1
Ny rundvisning

Klik på Ny Guidet Tour, navngiv det, og eventuelt linke en Proaktiv Regel, så den starter automatisk.

2
Tilføj trin

Tilføj hvert stop: Vælg det element, den peger på, og skriv bobleteksten. Ombestil indtil stien flyder.

3
Design det

Vælg en forudindstillet eller stil boblen selv. Live preview viser præcis, hvad besøgende ser.

4
Aktivér

Tik Aktiv og gem. Turen kan nu køre, på egen udløser, eller startede med en Proactive Message regel.

Hvordan starter ture?+

På egen udløser, eller via en Proactive Message regel "Guidet tour" handling, så du beslutter, hvilke besøgende se hvilken tur og hvornår.

Vækst og SEO

Omregningsmål

Konverteringsmål forvandler en aktivitet, du holder af (et indadgående webhook-arrangement, en chat-besked, en billetløsning) til en registreret konvertering med fuld tildeling. Når aktiviteten brænder, logger OpsIQ en konvertering mod kontakten og binder den tilbage til de kampagner, segmenter og kilder, der førte dertil.

Sådan virker det
OmregningsmålEt mål flow: en payment. happening begivenhed bliver et registreret "køb" konvertering værd $49, tilskrives sin kilde og kampagne, med quick-start forudindstillet chips ovenfor.Hurtig startStripe købDemo booketNewsletter signaturNamepayment.succeededindadgående webhookOmregning"køb" · $49AttributeretKildekampagne
Omregningsmål

Definer et mål i tre trin

1
Vælg udløseraktiviteten

Klik på Ny konvertering mål. Vælg den aktivitet type, der tæller som en konvertering, eller brug en Quick- start forudindstillet, Stripe køb, Demo booket, Nyhedsbrev signiup eller Abonnement startet.

2
Navn og sæt en værdi

Give the conversion a name (purchase, demo_booked, signup) and optionally a fixed value and an attribution window.

3
Gem

Gem og aktivér. Fra da af, når aktiviteten brænder, OpsIQ registrerer en konvertering mod kontakten med tildeling til de foregående rører.

Mål er allerede koblet ind i indadgående webkroge: ethvert mål, hvis udløser matcher en indgående begivenheds type brande automatisk det øjeblik begivenheden lander. Brug Indgående Webkrogs side til at tilslutte Stripe, Calendly eller ethvert system, der kan POST JSON.
Hvad kan være en konvertering?+

Enhver registreret aktivitet: en indgående webhook begivenhed (payment. happened), en chat e-mail capture, en billet opløsning, noget på kontakttidslinjen.

Analyse

Brugerdefinerede dashboards

Brugerdefinerede Dashboards lader dig bygge dit eget billede af de målinger, der betyder noget, i stedet for kun at stole på den standard Oversigt. Tilføj de widgets du ønsker, trække og ændre størrelse dem ind i layout, gemme det, og dele det med dit team.

Brugerdefinerede dashboards
Brugerdefinerede dashboardsEn instrumentbrætbygger med KPI og kort- widget fliser, en ødelagt drop zone, og en Add- widget- knap.Brugerdefinerede DashboardsarbejdsområdeMit instrumentbræt+ Tilføj kontrolBESØG2,481INDTÆGTER$8.2kTRAFIKKERTræk en kontrol herTopsider/pricing/docs/signup1ADD WIDGETSVælg målediagrammer2ARRANGETræk & omstørrelse3SHAREMed dit team
Byg dit eget bræt: Tilføj KPI, diagrammer og listekontroller, træk og ændr dem i det layout du ønsker, og del det med holdet.

Byg en i tre trin

1
Tilføj kontroller

Klik på Tilføj kontrol og vælg metrisk eller diagram du ønsker at spore. Gentag for alt hvad du vil på brættet.

2
Arranger layout

Træk kontroller for at ændre position og trække deres kanter til at ændre størrelse. KPI 'er på tværs af toppen, diagrammer nedenfor.

3
Gem & del

Gem instrumentbrættet og del det med dit team, så alle ser de samme numre.

Hold separate bestyrelser for særskilte job (en "daglige blik" bord med levende tæller, og en "månedlige gennemgang" bord, med trend diagrammer), så hver forbliver fokuseret.
Vækst og SEO

Outreach-kampagner

Outreach is OpsIQ's1:1og bulk e-mail motor: komponere en personlig besked eller køre en kampagne til et CRM segment, med svar detektering, send- time kontrol, åbne / klik sporing, en tracking pixel og one-klik afmeld. Det er godkendt og CAN- SPAM / CASL kompatibel.

Opsøgende arbejde
Outreach-kampagnerOutreach-skærmen med Compunder / Kampagner / Skabeloner / Replies faner og en kampagnetabel, der viser sendt, open- rate og returhastighed.Opsøgende arbejdearbejdsområdeKampagnerKomponistSkabelonerSvarKAMPAGNESENDTÅBNETSVARNyhedsblad for juni1,20048%7%Opfølgning af forsøg34062%14%Win- tilbage82039%5%Svar på detektion automatisk stopper opfølgning · one- klik afmeld på hver send11:1 & BULKSammensætning eller kampagne2TRACKEDÅbner, klikker, svar3COMPLIANTAfmeld indbygget
Outreach motoren: send1:1eller køre kampagner til et segment, spor åbner og svar, og holde sig kompatibel med build- in afmeld og svar detektion.

De fire faneblade

Komponist

Skriv en personlig1:1e-mail med {tokens} fra kontakten og CRM.

Kampagner

Send til et CRM-segment, planlagt eller nu, med hætter og sendtidskontrol.

Skabeloner

Genanvendelige meddelelsesskabeloner for gentagne outreach.

Svar

Svar på detektering registrerer svar og automatisk stopper opfølgning til alle, der svarede.

Hvordan en kampagne kører

1
Vælg et publikum

Vælg et CRM-segment (eller upload en liste). Undertryk og samtykke anvendes automatisk.

2
Sammensæt

Skriv beskeden med personlighedstegninger; forhåndsvisning mod en rigtig kontakt.

3
Skema & send

Send nu eller på det bedste tidspunkt. En sporing pixel optegnelser åbner; klik og svar er tildelt.

Outreach er consent- og suppression- gated, omfatter en one-klik afmeld på hver send, og følger CAN- SPAM / CASL. Svar automatisk stoppe yderligere opfølgning.
Analyse

Planlagte rapporter

Planlagte rapporter e-mail et valgt metrisk sæt til udvalgte modtagere på en tidsplan (dagligt, ugentligt eller månedligt) som en printbar, white- label PDF. Sæt det én gang og rapporten lander i indbakker automatisk gennem OpsIQ cron.

Planlagte rapporter
Planlagte rapporterSkærmen schedudled- reports: en tabel over rapporter med deres tidsplan, modtagere og sidste-sendt tid, plus en Save- rapport knap.Planlagte rapporterarbejdsområdePlanlagte rapporter+ Gem rapportRAPPORTTILFØJELSERECIPIENTERSENESTEUgentlig trafikMon9:00[email protected]2d sidenSEO-klientrapportMånedlig[email protected]Jun 1SalgsoversigtDaglig[email protected]todayLeveres som en white- label PDF via OpsIQ cron1AUTOMATEDMånedlig2WHIL- ETIKETPDF til klienter3RECIPIENTEREmailed på tidsplan
Sæt en rapport én gang (metrisk sæt, område, tidsplan, modtagere) og OpsIQ e-mails en white- label PDF automatisk på din kadence.

Opstil en rapport

1
Vælg hvad du skal sende

Vælg det metriske sæt (trafik, SEO, salg, support...) og et datointerval.

2
Sæt tidsplan og modtagere

Daglig, ugentlig eller månedlig, på et tidspunkt du vælger, til en eller flere e-mail-modtagere.

3
Gem

Gem og aktivér. Rapporten genererer og e-mails selv på tidsplanen, ingen manuelt trin.

💡
Planlagte rapporter kører gennem OpsIQ cron, hvis en rapport ikke ankommer, bekræfte cron kører (se Cron og automatisering).
Privatliv

Privatlivets fred og overholdelse

Den Privacy & Compliance side er det eneste sted at vise en revisor, du håndterer personlige data ansvarligt: samtykke-bogen, admin adgang log, dine data residency og opbevaring politik, og en ready- to- print DPA, i én tabbed visning.

Privatlivets fred og overholdelse
Privatlivets fred og overholdelseThe Privacy & Compliance screen: faner for Consent hovedbog, Access log, Residency og DPA, med et samtykke hovedgr tabel over tilskud og tilbagekøb via kanal.Privatliv og overholdelsearbejdsområdeSamtykke regnskabsbogAdgangslogBeboenhedDPAKONTAKTKANALFORANSTALTNINGERDATO[email protected]e- mailYdetJun 12[email protected]pushGenbehandletJun 10[email protected]marketingYdetJun 9Søgebevis for hver tilladelse tildeling og tilbagekaldelse, efter kanal1CONSENT LEDGERBevis for hvert tilskud2ACCESS LOGHvem rørte data3DPAUdskriftsskabelon
En auditor-ready screen: en søgbar samtykke hovedbog (tilskud / tilbagekøb af kanal), en adgang log over hvem rørte data, residence / retention indstillinger, og en printable DPA.

De fire faneblade

Samtykke regnskabsbog

En søgbar registrering af hver samtykke tilskud og tilbagekaldelse, ved kontakt, kanal (e-mail, push, SMS, in- widget), handling, kilde og dato. Din dokumentation en kontakt aftalt (eller trak).

Adgangslog

Hvem på dit team set, redigeret, eksporteret, slettet eller messaged en kontakts data, med admin, kontakt, handling, angivne årsag og IP. Præcis hvad en regulator beder om.

Beboelsesforhold & fastholdelse

Declare hvor dette arbejdsrums data lever, indstille hvor mange dage aktivitet rækker holdes (0 = forever), og registrere din dataansvarlig og DPO.

DPA skabelon

En printbar Databehandling Addendum, der udfylder din controller, adresse, DPO, residency og retention. Udskriv eller gem som PDF.

Privatliv og overholdelse par med Cookie samtykke studiet (som indsamler samtykke) og eksport side (som producerer datakopi til en DSAR). Se også Cron og automatisering for natlig opbevaring oprydning.
Connectorer

Forbind dine platforme

Forbindelsesforbindelse OpsIQ til eksterne platforme: e-handel butikker, faktureringssystemer, betalingsprocessorer, e-mail udbydere og brugerdefinerede APIs. Når forbundet, AI kan slå op ordrer, kundedata, abonnementer og meget mere, og tage handlinger med din godkendelse.

Sådan virker det
ForbindelseshubOpsIQ kerne forbundet til WHMCS, Shopify, Stripe, WooCommerce, SendGrid og Google Business Profile, der hver viser en tilsluttet status.WHMCSShopifyStripeWooCommerceSendGridGoogle BPOpsIQKERN1PLUG IN25+ præbyggede konnektorer2AI CONTEXTReelle platformdata3ACTIONSUdfærdiget i Bruxelles, den 12. december 2014.
Connectorer

Skibe med OpsIQ

Disse er til stede det øjeblik, du installerer og behøver kun deres legitimation.

WHMCS

Fakturering

Web hosting fakturering: kunder, tjenester, billetter, fakturaer, domæner, servere.

Shopify

E-handel

E-handel: ordrer, kunder, produkter, beholdning, betalinger, webkrogs.

WooCommerce

E-handel

WordPress e-handel: ordrer, kunder, produkter, kuponer, forsendelse.

WordPress

CMS

Indhold og brugere på et WordPress site.

Square

Forpligtelser

Betalinger og salgssteder: ordrer, kunder, katalog.

osCommerce

E-handel

Legacy e-handel: ordrer, kunder, produkter.

Botble Hotel

BroName

En Botble CMS hotel hjemmeside gennem den signeredeOpsIQbridge. Implementeringen af en platform udenAPI.

Zendesk

Støtte

Helpdesk: billetter, brugere, organisationer, kommentarer.

Google virksomhedsprofil

Markedsføring

Lokale virksomheder: anmeldelser, indlæg, Q & A, indsigt. Bruger OAuth.

Google Kalender

Produktivitet

Kalendere og begivenheder. Bruger OAuth.

GmailogIMAP

E- mail

Postkasser: indgående og udgående post, adressebogssynkronisering.

SendGrid

E- mail

Email levering: sende e-mails og administrere skabeloner.

Postgeværer

E- mail

E-mail levering: sende e-mails via Mailgun.

Slack, Telegram, LINE, X DM

Beskeder

Beskeder kanaler for indgående og udgående samtaler.

Metakanaler

Beskeder

Facebook Messenger, Instagram DM og WhatsApp.

Webstedet Intelligence (GA4, søgekonsol)

Analyse

Analytics og søgedata til SEO -suiten.

Website berigelse og CRM import

CRM

Selskabsberigelse og import af bulk-kunder.

Fås fra markedet

Disse er publicerede pakker, ikke en del af installationen. Installer en fra Connectors, Marketplace og det kopieres i mappen live connects, hvorefter den opfører sig præcis som dem ovenfor.

Stripe

Markedssted

Betalinger: gebyrer, kunder, fakturaer, abonnementer, udbetalinger, tvister.

Hvad er BigCommerce?

Markedssted

E-handel: ordrer, kunder, produkter, kategorier, mærker.

Magento 2

Markedssted

E-handel: ordrer, kunder, produkter, kategorier, beholdning.

PrestaShop

Markedssted

E-handel: ordrer, kunder, produkter, vognregler, transportører.

OpenCart

Markedssted

E-handel: ordrer, kunder, produkter, kategorier.

Amazon SES, Postmark, Resend

Markedssted

Transaktionel e-mail levering.

Jira, Linear

Markedssted

Udgave og projektsporing.

Zoom, Microsoft Kalender, Outlook Mail

Markedssted

Møder, kalendere og post.

Documentn, Apollo, Serppi, Google Analytics

Markedssted

Underskrift, prospektering, søgning og analytics data.

Webflow, Wix, Squarespace

Markedssted

Website platforme.

💡
Forbindelseslisten bevæger sig som pakker bliver offentliggjort. Den autoritative liste for DIR installation er siden for forbindelser: hvad der er angivet der er hvad runtime opdaget, og fanebladet Marketplace viser hvad du kan tilføje.

Installation af en stikforbindelse

1
Gå til forbindelseskanal

Naviger til forbindelser i admin sidebar.

2
Find stikket

Gennemse listen eller søgningen. Forbindelser grupperes efter kategori.

3
Aktivér det

Klik på stikket og slå til / fra Aktivér.

4
Indtast legitimation

Udfyld de krævede felter: API nøgle URL, tokens osv. Hvert stik har specifikke krav dokumenteret i sit indstillingspanel.

5
Prøvningsforbindelse

Klik på "Test Connection". Et grønt resultat betyder, at stikket kan nå den eksterne platform. Et rødt resultat viser fejlen.

6
Indstil funktioner

Vælg hvilke funktioner der skal aktivere: vidensynkronisering, webhook sync, AI-handlinger. Ikke alle stik understøtter alle funktioner.

Hvad konnektorer giver dig

AI-sammenhæng

AI kan slå kundedata, ordrer, abonnementer og meget mere gennem stikket. Når en kunde chatter, AI har reelle platform data til reference.

AI-sammenhæng (konnektor forfattere)

Din connections ContextProvider feeds ticket- AI en read- only konto oversigt over billetten ejer. customer_id når kendt; ellers, på billetten auto- svar, hvor ctx flag customer_trust_email er sandt, slå kontoen op ved customer_email (den verificerede billet afsender). Fjernplatforme afsløre en /context/customer-by-email endepunkt og stikket kalder det. Dette er, hvad der gør AI citere en reel balance / faktura i stedet for at sige "venligst logge ind". Ær operatørens dataklasse togles (customer_sections, customer_allow_credit) og holde sig strengt read- kun, aldrig udsende hemmeligheder.

Kundemappe (konnektor forfattere)

Dit konnektor IdentityProvider feeds tre universelle billet opslag: lookupCustomerById() (kundekort) lookupCustomerServices() (produkt- / serviceskema), og listCustomers($query,$limit): "Søg kunde eller skriv e-mail" picker på den indfødte Compose- New- Ticket formular. Returnér rækker af {id, external_id, name, email, company, phone, platform, platform_label}. Fjernregel: hvis dine kunder bor i en anden database eller service, hente dem over din platforms API inden for disse metoder, aldrig læse det andet systems tabeller direkte (i OpsIQ DB de er tomme pladsholdere, hvilket er grunden til en lokal læse returnerer en tom plukker). Gate den eksterne sti på din konfigurerede API URL; holde en lokal læst kun som en same-DB fallback.

Email- pipede billetter, detektion og routing (connector forfattere)

Når indkommende e-mail bliver en native billet, OpsIQ registrerer afsenderen ved at ringe lookupCustomerById(0, ['email'=>$sender]) på tværs af hver stik; den første match "ejer" kunden og dens platform Kuglen er stemplet på ticket.created begivenhed som _pipe_owner_platform Så en WHMCS-kunde e-mail åbner en billet i WHMCS (WHMCS nummerering, der er gengivet som én), mens en ukendt afsender forbliver en indfødt gæst. Hvis din konnektor spejler indfødte billetter på sin egen platform, Deres ticket.created - og det er vigtigt at få fat i: if (array_key_exists('_pipe_owner_platform',$payload) && $payload['_pipe_owner_platform'] !== '<your-slug>') return;. Nøglen er fraværende på ikke-pipede (chat / manuel / AI) billetter, så dem spejl som før. Per- afdeling kontrol bor under Team & Departments → Åbne billetter via e-mail (Alle / Kunderne kun / Off).

Handlinger

AI kan udføre handlinger gennem stikket: oprette billetter, opdatere ordrer, annullere abonnementer, alle med din godkendelse gennem Trust Layer.

Viden

Connectorer bidrager platform- specifikke videnartikler til AI. Shopify stik tilføjer e-handel fejlfinding; WHMCS connector tilføjer hosting viden.

Knowledge-base import (connector forfattere)

Hvis din platform er vært for en videnbase, skal du erklære en kb_capabilities bloker ind settings.json (type kb_source) og din forbindelse vises i Hjælp Center editor Importér KB → Import fra en tilsluttet app dropdown når det er aktiveret og konfigureret i arbejdsrummet. Det er deklarativ, ingen metode til at implementere: navngiv en build- in adapter (zendesk for exact- tree Help Center API, eller crawl for alle KB-steder) og en base_template som https://{subdomain}.zendesk.com, som OpsIQ udfylder fra din konnektor gemte indstillinger. Valgs aldrig forlade serveren; browseren sender kun connector slug. For at understøtte en ny platform, tilføje en opsiq_kb_<platform>_manifest() adapter og referencenavn. connectors/PLATFORM_CONNECTORS.md §5.

Webhooks

Nogle konnektorer registrerer webkroge med den eksterne platform for real- time begivenhed meddelelser (nye ordrer, billet opdateringer, osv.).

Salgssporing

E-handel stik fodre indtægter data i Sales dashboard for tildeling og analytics.

💡
Konnektorer er workspace- scoped. Hvert arbejdsrum kan have forskellige konnektorer aktiveret med forskellige legitimationsoplysninger.WHMCS workspace bruger WHMCS konnektor Shopify workspace bruger Shopify konnektor.
Kan jeg bruge flere stik på én gang?+

Ja. Du kan have Shopify for ordrer og Stripe for betalinger i samme arbejdsområde. AI sammenfletter data fra alle aktiverede konnektorer.

Hvad hvis min platform ikke er opført?+

Brug Connector Builder til at oprette en brugerdefineret stik for enhver platform med en REST API. Eller tjek markedspladsen for communitysbuild-konnektorer.

Virker stik med selvhostede OpsIQ?+

Ja. Forbindere arbejder identisk i både cloud-udgaver og selvhostede udgaver.

Connectorer

Salgs- og faktureringskonnektionskontrakt

Hver handelskonnektor bruger den samme platform- neutral event kontrakt. WHMCS er referencens implementering, men SaaS Bridge, butikker, betalingsudbydere, markedsplads-stik og Connector Builder pakker skal overholde de samme regler.

Hvad hver handel stik skal offentliggøre

En autoritativ regnskabsfører

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.

Stabil kildeidentitet

platform is the connector registry slug, such as whmcs, shopify or opsiq_saas. traffic_source contains verified acquisition attribution when supplied; otherwise use that same slug as the fallback. Store identifiers, not display labels. OpsIQ resolves the friendly connector name in the UI.

Idempotens

event_id must be deterministic. Map at least one immutable order_ref, invoice_ref or subscription_ref so webhook retries and backfills update the same event instead of creating duplicate sales. service_ref identifies the affected product or service instance when one exists.

Kildetidsstempel

occurred_at is the payment or economic-event time reported by the source platform. Never replace historical payment dates with the import time.

Penge og FX

Send kildebeløbet og en gyldig ISO-valuta på tre bogstaver. Hvis indstillingen af forbindelsesforbindelsen tillader OpsIQ FX konvertering, konverterer rapportering til den arbejdsrums rapporteringsvaluta; ellers rapporterer bevarer butikken eller faktureringsplatformen valuta. Forbindelseskoden må ikke være hardcode for en rapporterende valuta eller vekselkurs.

Erkendence- baseret livscyklus

Brug ny, fornyelse, opgradering, tilbagebetaling, kredit eller ukendt. Klassificere fra faktura grund, abonnement eller service forhold, line- element type, eller en anden autoritativ kilde felt. Et gentagne køb af den samme kunde er ikke automatisk en fornyelse.

Salgsgrænse

Kun positive betalte nye, fornyelse, opgradering eller lovligt ukendte handelsindtægter hører til i Sales & Conversions. Restitutioner indberettes af refundering og nettoindtægt analytics. Kontokredit, tegnebog top- ups, token top- up og Tilføj fonde forbliver billing- hovedbogholderi begivenheder og aldrig tælle som salg, konverteringer, ordrevolumen, eller salgsindtægter.

CRM forbliver adskilt

CRM-aftaler repræsenterer rørledninger og handel. De er ikke kommercielle-platform salg medmindre en tilsluttet fakturering eller butik platform udsender den realiserede betalte ordre eller faktura gennem denne kontrakt.

Afledte fremskrivninger

opsiq_conversions and dashboard summaries are compatibility projections rebuilt from the ledger. Connectors must not treat a projection as the financial source of truth. Contract revisions can re-evaluate derived rows without deleting the underlying billing history.

Grænse for fjernplatform

A remote connector reads its platform through the configured authenticated API. It must never depend on same-server database tables. The exact authenticated domain site_key is supplied by ConnectorRegistry and must be applied to every ledger write and backfill. Workspace or group scope is read-time aggregation only; it must never broaden stored event ownership.

Eksempel på kanonisk- paid- event

Normaliseret handel begivenhed
{
  "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"
}

Tilknytning af Connector Builder

When Sales and billing is enabled in Connector Builder, map amount, currency, source status and source date, plus at least one order, invoice or subscription reference. Map lifecycle_type when the API exposes authoritative lifecycle evidence. The generated SalesIngest passes every row through the same CommerceEventRegistry normalizer used by built-in and marketplace connectors.

⚠️
Kreditter og Add-fonde er bevidst bevaret til fakturering historie, kundebalance sammenhæng og regnskabsbog analyse. Udelukkelse dem fra Salg sletter dem ikke; det forhindrer dem kun i at oppuste handel ydeevne.

livscyklustype afgør, hvad der bliver en CRM-aftale

lifecycle_type er ikke et analytikermærke. OpsIQ læser det for at afgøre, om et salg kommer ind i CRM-rørledningen, så alle salgsforbindelser træffer en beslutning om, hvorvidt det har til hensigt eller ej.

ny

Åbner en lukket-vundet aftale (ny virksomhed).

fornyelse, opgradering

Optaget som tilbagevendende indtægter. Ingen new- business deal - fornyelser konvertere på en anden sandsynlighedskurve og blande dem korrumperer begge prognoser.

tilbagebetaling, kredit

Åbner aldrig en aftale, i enhver tilstand. Penge returneres til en kunde er ikke en sejr.

udeladt / ukendt

Kun indtægter. Salget er registreret, men aldrig når rørledningen.

Et salg, en hovedbog række: identitet er den SALE, ikke begivenheden

Matchende event_id og indsætte dig selv. event_id is platform:eventName:externalId, som svarer "har vi allerede behandlet denne levering" og kan ikke svare "har Vi allerede registreret dette salg". En platform, der annoncerer en betaling to gange - som invoice.paid og igen som payment.completed - Mints to id 'er og lander de samme penge to gange, med intet at kollidere og intet at advare.

💡
Found on the reference install: six invoices with three ledger rows each, from three code paths using three different event_id schemes. They all carried 0.00 so no total looked wrong, and any later process restoring real amounts would have counted one payment three times.

Ring til den delte skrive i stedet. Core beregner salget forretningsidentitet (sale_fingerprint), matcher en eksisterende række på det, bevarer den oprindelige event_id om opdatering og filtre til rigtige kolonner:

Den eneste understøttede måde at skrive salgshovedbogen på
\OpsIQ\Commerce\CommerceEventContract::upsertSaleRow('opsiq_sales_events', $row);
Samme salg, mange begivenheder

fakture. paid, payment. completed og sale. compleed for en faktura deler et fingeraftryk og opdaterer en række.

Restitutionsbeløb forbliver adskilte

Penge går ud er en anden kendsgerning end penge kommer ind. En tilbagebetaling af en faktura holder sin egen identitet, så det kan aldrig overskrive betalingen det vender tilbage.

Ingen reference, intet fingeraftryk

En række uden ordre, faktura, abonnement eller service reference får ingen fingeraftryk overhovedet, så to ikke-forbundne rækker aldrig kolliderer bare fordi begge mangler et id.

Referencegrænse

invoice_ref, then order_ref, then subscription_ref, then service_ref — strongest first, so one sale keeps a stable identity.

Bogføringen er vedhæftet: omskriv aldrig et salg

En tilbagebetaling, en annullering eller en rettelse er en ny dated entry. Aldrig mutere rækken det retter. Omskrivning af en betaling til en tilbagebetaling ser ryddeligt og bryder tre ting på én gang:

Det ødelægger bruttoindtægterne

Bruttosalg og refusionssats ophører med at være separable - og refusionssatsen er den metrisk, tilbageførslen findes at informere.

Det bogfører den omvendte i den forkerte periode

En tilbagebetaling i marts af et januar salg skal reducere marts. Omskrivning januar rækken lydløst genopretter en lukket periode.

Det bryder revisionssporet

En regnskabsbog registrerer, hvad der skete på et tidspunkt. Rettelser er kontra- poster, hvilket er hvordan dobbelt-post bogholderi har fungeret i fem århundreder.

Så en konnektor rapporterer om tilbageførsel i stedet for at anvende den: return refunded_at og refund_amount ved siden af salgsets egen livscyklus, og lad opkalderen skrive refunderingen som sin egen række dateret da refusionen skete. De to kan aldrig kollidere, fordi salget fingeraftryk adskiller en tilbagevenden fra et salg.

💡
Det samme princip gælder for beløb. Må ikke "reparation" en gemt beløb til platformens aktuelle værdi: en faktura afviklet fra konto kredit lovligt registreret 0 på betalingstidspunktet, og pengene blev allerede registreret, når kunden toppet op. Gendannelse af pålydende tæller det to gange.

Klassifikationskontrakten

OpsIQ bestemmer livscyklussen once, in \OpsIQ\Commerce\SaleLifecycleClassifier. En konnektor erklærer kun, hvilken af dens egen platform ord betyder hvad, ved at gennemføre \OpsIQ\Connectors\SalesLifecycleConnectorInterface::salesLifecycleVocabulary(), og derefter kalder den delte klassifikator. Må ikke gen- implementere ræsonnementet.

Afsløring af ordforråd, uddelegere afgørelsen
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,
]);
💡
Precedence is fixed and shared: explicit, then refunded/cancelled, then credit, then upgrade, then is_order, then recurring, then acquisition, then unknown. Upgrade sits above the order check because platforms raise an order for upgrades too; recurring sits below it because the first invoice of a new subscription carries a recurring line type. On an ambiguous non-order sale the classifier leans to revenue and away from the pipeline.

Afslør hele platformens ordforråd

Dette er den fiasko, der koster mest og ser mindst forkert. WHMCS -stik matchede ['hosting','addon','domain'] - en liste der lyder som komplet. WHMCS udsender ikke en bare Domain type for rigtige domænelinjer; det udsender DomainRegister, DomainRenew, DomainTransfer, PromoHosting, PromoDomain, DomainAddon* og UpgradeAlle faldt forbi listen til unknown: 1,288 fakturaer, tre år, ingen fejl og ingen loglinje.

Hver ny kunde importerer deres historie gennem en stik-backfill, så en klassificering bug påvirker ikke et arbejdsområde - det påvirker alle arbejdspladser, der nogensinde onboards gennem denne forbindelse, i det øjeblik de først ser på deres rørledning. Tag ordforråd fra platformens dokumentation eller en tælling af levende data, og matche voksende familier ved prefix så en søskende ingen har set endnu klassificerer med sine slægtninge i stedet for at forsvinde.

💡
En praktisk kontrol: tælle hvor mange af dine egne rækker lander på ukendt. Et sundt salgsstik klassificerer næsten alt. En stabil strøm af ukendte er næsten aldrig data, du ikke har - det er et ordforråd stikket aldrig lært at læse.

Udlejning importeret historie

Hver afsendt OpsIQ salgsforbindelse gennemfører dette — 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() ved hjælp af hvad per- record hente din stik allerede har. tools/crm_backfill_sales_lifecycle.php derefter reparerer din konnektor importerede historie uden per- connector kode: tør køre som standard, bakker sig op og kontrollerer rækken tæller før skrivning, reversibel gennem en fortryde hovedbog, og det skriver aldrig en mislykkedes læst som et svar.

💡
Hvis din forbindelse ikke kan gen- læse tidligere optegnelser - et webhook- only stik kan - må du ikke stube metoden. En stub, der vender tilbage ukendt, er værre end ingen implementering: en backfill ville omskrive gode rækker som uklassificeret og rapportere succes. Implementér kun ordforrådsgrænsefladen.
💡
Detailed package references remain available in connectors/CONNECTOR_EVENTS.md and connectors/PLATFORM_CONNECTORS.md in self-hosted source distributions.
Connectorer

Rejsebegivenhedskontrakt

Journey Intelligence accepterer en platform- neutral begivenhed kuvert fra browseren widget, build- in stik, SaaS Bridge, markedsplads pakker og Connector Builder output. Platform- specifikke navne er oversat i kanten; tragt, tildeling og site Intelligens kode forbruger kun kanoniske begivenheder.

Isolering og tillidsgrænse

Præcis peer- domæne nøgle

Every event is bound to the authenticated domain site_key. A connector must take that key from ConnectorRegistry or its authenticated endpoint, never from an untrusted request body. Domains keep separate records; a domain group is a read-time aggregate only.

Idempotent identitet

event_id is required for connectors and must be deterministic for the same native event. Retries, webhooks and backfills update one event rather than duplicate a journey or sale.

Indfødt plus kanonisk navn

Preserve source_event_name for evidence and troubleshooting, then map it to event_name_canonical. Core analytics must never branch on a connector slug.

Serverbeviser vinder

Browser observation kan starte eller infundere en rejse. Autentificerede konnektor begivenheder bekræfte signiup, login, betaling, køb, fornyelse, tilbagebetaling og andre terminalresultater. En gyldig site- bundet korrelationsmelodi er den stærkeste join; en ugyldig token afvises og dens indbyggede ID 'er ikke er betroet.

Privatliv

Send kun id 'er og felter, der er nødvendige for den angivne rejse. Respekt samtykke, maskering og opbevaring indstillinger. Aldrig placere legitimation, kortdata, autentificering hemmeligheder eller private message organer i egenskaber.

Kanonisk kuvert

Konvolut for rejsebegivenheder
{
  "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"}
}

Kanonisk taksonomi

Brug det smalste sandfærdige navn. Understøttede familier inkluderer engagement side / TTA begivenheder; konto signiup, login, MFA og adgangskode nulstillet; bly og form faser; produkt, vogn, checkout, betaling, køb, abonnement, fornyelse og tilbagebetaling; promotion indtryk og konverteringer; help- center, chat og billet begivenheder; sikkerhedshændelser; og navngivne brugerdefinerede begivenheder. Typiske terminalnavne er account.signup.succeeded, account.login.succeeded, lead.form.succeeded, commerce.payment.succeeded, commerce.purchase.completed, commerce.subscription.renewed og commerce.refund.completed.

Browserindkøring, bekræftelse og opgivelse

Kontrollen kan arbejde uden en konnektor ved at observere sidestruktur, formulere handlinger, DOM resultater og besøgende rejse log. Denne dokumentation forbliver eksplicit klassificeret som observeret eller udledes. En konnekse tilføjer autoritativ server bekræftelse og kan korrelere det til den samme browser forsøg. Abandinux er først gemt som kandidat; det bliver opgivet kun efter inactivity vindue i UI og kun når der ikke senere opsving eller succes eksisterer.

Tildeling og indtægter

Attribution foretrækker en gyldig underskrevet korrelationsværdi, derefter en nøjagtig rejse, forsøg, session eller handel reference, så den samtykkede identitet graf, og endelig en afgrænset adfærd match. Uovertruffen salg forbliver utilskrives. Multi- touch hovedgæringsvægte skal samlede 1. Website Intelligence tildelt indtægter læser denne bog; kreditter, tegnebog top- ups, token top- op og Tilføj fonde er aldrig købe konverteringer. Connector FX adfærd forbliver kontrolleret af denne konnektor indstilling.

⚠️
Attributionsmodel, lookback vinduer, direkte-trafik håndtering, minimal tillid, opsigelse timeout og tragt definitioner er UI politik. Forbindelseskode må ikke hardcode dem.

Forbindelsesmanifest og builder

Forkoblingsangivelse
{
  "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"
    }
  }]
}

Declare kun kapaciteter pakken virkelig leverer. Connector Builder validerer kortlægningen og genererer den samme platform- neutral adapter, der anvendes af first-party pakker. Journey indtagelse accepterer en begivenhed eller et afgrænset parti af 100 gennem det genererede autentificerede integration endpoint.

💡
Handelsregnskabsbogen er fortsat den finansielle kilde til sandhed. Handels- to- rejse broen udgiver serverbekræftede resultater og afstemmer tildeling efter den eksisterende idempotent hovedbogholderi upsert, så en betaling aldrig bliver to salg.
Connectorer

Hvordan AI-handlinger virker

Hver forbindelse erklærer et sæt af handlinger: ting AI kan gøre gennem den eksterne platform. Handlinger er broen mellem "AI siger" og "AI gør".

AI-aktioner
Hvordan AI-handlinger virkerEn kundeforespørgsel kortlagt til et actionkort af typen delete, derefter en tjekliste: tilladelse kontrolleret, du bekræfter, API ringede.Hvordan AI-handlinger virkerarbejdsområde"Annuller mit abonnement"kundeAIcancel_subscriptiondeletebekræfte påkrævetparams: subscription_id (from context)AKTIONSTYPERreadwritedeleteTilladelse & rolle kontrolleretDu bekræfter handlingenAPI kaldes · resultat rapporteret1DECLAREDHver forbindelse viser handlinger2GATEDTilladelse + bekræftelse3THEN RUNAPI opkald, resultat tilbage
En anmodning bliver en erklæret handling (skrevet læse / skrive / slette), der er permission- check-, bekræftet, derefter udført og rapporteret.

Handlingens livscyklus

1
Kunden beder om noget

"Cancel my subscription." The AI identifies this requires the "cancel_subscription" action.

2
AI kontrollerer tilladelser

Er denne handling tilladt? Er den aktiveret? Har den nuværende bruger den rigtige rolle?

3
AI samler parametre

Handlingen har brug for et abonnement ID. AI ser det op fra kunden kontekst eller spørger kunden.

4
Bekræftelse

For destruktive eller højeffekthandlinger, AI beder om bekræftelse før udførelse.

5
Gennemførelse

Handlingen kalder den eksterne platform API.

6
Resultat

AI rapporterer resultatet til kunden.

Aktionstyper

Læs handlinger

Look up data without changing anything. Examples: list_orders, get_customer. Safe, no confirmation needed.

Skriv handlinger

Create or modify data. Examples: create_ticket, update_order. May require confirmation.

Slet handlinger

Remove data. Examples: cancel_subscription. Always require confirmation.

HTTP- handlinger

Opdaget i handlinger.json, generisk API kalder defineret deklarativt.

Kapacitetsmærker

Optional per-action "capability" field in actions.json, a connector-neutral class tag (e.g. "tickets" for a ticket read/lookup, "ticket_create" for opening a ticket). OpsIQ gates the whole class uniformly across every connector: ticket reads drop out of the AI when the operator turns off AI Ticket Awareness, and ticket creation is reserved for OpsIQ's own composer (so a connector's create tool can't duplicate it). Declare it and your connector conforms. OpsIQ never needs to know your action names. The Connector Builder exposes it as a Capability dropdown per action.

Kodeaktioner

Gennemført i PHP i connector klassen. Fuld kontrol over logik.

Eksempel på handlingsdefinition
{
  "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" }
    }
  }
}
Connectorer

Byg en konnektor

Connector Builder kan du oprette en komplet stik til enhver platform med en REST API. Ingen kodning kræves for grundlæggende konnektorer.

Byg en konnektor
Connector BuilderEn no- code connector form: navn, authtype, base URL, en handling kortlægning, en forbipasserende test og en publications knap.Connector BuilderarbejdsområdeConnector BuilderNavnMin platformAutorisationOAuth 2.0(PKCE)Basis URLhttps://api.example.com/v2HandlingGET/customers → list_customersTest beståetPakketilslutning1NO-CODENavn, adresse, base URL2ANY APINøgle, Beerer, Basic, HMAC, OAuth3PUBLISHInto /connectors/<slug>/
Peg bygherren på enhver REST API. Sæt auth, base URL og handlinger, teste det, og udgive en arbejdsforbindelse.

Komplet udbyder API dækning

Hver genereret API connector kan afsløre separate Native API Læs og indfødt API Skriv handlinger. Kurerede handlinger er fortsat foretrukne; indfødte handlinger dækker udbyder endpoints tilføjet senere. Runtime understøtter REST, GraphQL, JSON, formular XML, rå og flerdelte kroppe, afgrænset paginering API-version headers og idempotens, mens du holder legitimation inde i workspace connector indstillinger.

⚠️
Markedets pakker er indkøbt fra /marketplace_connectors såvel som bundtet /connectors. Forøg pakkeversionen, regenerér kontrakten og dokumentationen, kør overensstemmelsesprøvninger, og skriv derefter på ny og udgiv den nye version af markedspladsen.

Comment

Guiden har seks trin, vist som faner over toppen. Du kan hoppe mellem dem frit, og Gem udkast i foden holder dit arbejde på ethvert tidspunkt.

1
Identitet og 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
Autorisation

Vælg autentificeringsmønstret som platformen bruger og udfyld sine felter. Indtast også rigtige testdata her: de bruges til forbindelsestesten på næste trin, og de gemmes ikke efter du har udgivet dem.

3
Test

Indtast API base URL og et verificér endpoint, derefter køre en live-tilslutning test ved hjælp af legitimation fra trin 2. Gør dette, før du definerer nogen handlinger, hvis aut eller base URL er forkert, hver handling du skriver bagefter ville mislykkes af samme grund, og du ville være debugging den forkerte ting.

4
Handlinger

Definer hver operation: navn, HTTP metode, endpoint sti, parametre, respons felt kortlægning, og de pålidelighed indstillinger beskrevet nedenfor. Du kan køre hver handling individuelt mod den levende API fra dette trin.

5
Triggere

Kortlæg webhook-events din platform sender på OpsIQ begivenheder, så ting, der sker på din platform kan begynde at arbejde i OpsIQ.

6
Gennemgang, virksomhedskontrakt og offentliggørelse

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>/.

⚠️
Publishing kører IKKE konformsuiten. Publisher kun validerer guiden form og udsender advarsler, der ikke blokerer. Den fulde suite - manifestere, kapacitetfiler, identitetstoken kontrakt og broch- snippet kontrol - kører, når du trykker på Dry- run, og igen på installationstidspunktet. Tryk på Dry-køre før du sender, hver gang.

Hvad udgivelse gør, at formularen ikke viser dig

Fem adfærd generatoren overraske folk. Ingen er en fejl; alle af dem vil koste dig en eftermiddag, hvis du møder dem ved et uheld.

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.

Forbindelsestesten er standard for at få /ping

Hvis du lader verifikationsstien være tom, skriver bygherren /ping ind i det genererede stik og ind i profilen.json's test blok. Næsten ingen rigtig platform tjener den rute, så Test Connection mislykkes med HTTP404på hver installation og læser som en kunde forkert konfiguration snarere end en pakke defekt. Sæt en verificering sti, at din platform faktisk svar. For en bro stik, pege det på din egen diagnostiske endpoint - det beviser hele kæden i et opkald: broen er indsat, de vigtigste kampe, og broen kan nå databasen.

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.

Genudgivelser sletter filer

Un- kryds en kapacitet og den næste udgivelse fjerner sin udbyder-fil. Hand- edits til enhver genereret fil - ContextProvider.php frem for alt - overskrives uden varsel. Kopiér tilpasninger ud først, eller tage ejerskab af pakken ved at slette.opsiq- Bygmester.json(hvorefter guiden ikke længere vil håndtere det).

release_status is always preview

The wizard has no control for it. A package meant to ship as production must have release_status changed by hand in settings.json — and that edit breaks the signature, so re-sign afterwards.

Underskriften beviser integritet, ikke oprindelse

Byggerpakker er signeret med denne installations egen symmetriske nøgle. Det registrerer manipulation. Det beviser ikke hvem der skrev pakken, og enhver installation som holder den samme nøgle kan producere den samme signatur. Behandl en lokalt underskrevet pakke som selvsigneret.

Slug kollisioner er kun kontrolleret i et træ

Udgivelse nægter en kugle, der allerede eksisterer under/connectors/.Det ser ikke på/marketplace_connectors/,så en håndskrevet førstepartipakke med den samme kugle kan ende i skyggen.

💡
Guiden har ikke et viden- authoring trin. En viden fil, der beskriver din platform er genereret for dig fra navnet, beskrivelsen, aut type og handlinger, du definerede, og det er indlæst i AI, når stikket er aktiveret.

Definition af en handling (trin 4)

Hver handling har følgende indstillinger. Kun de første fire er nødvendige; resten kontrol, der kan køre det, og hvor omhyggeligt.

Aktionsnøgle og etiket

The key is what the AI calls; the label is what a human reads. Keys are namespaced with your connector slug automatically, so two connectors can both have a "list_orders" without colliding.

HTTP-metode

- Get, POST, PUT, PATCH eller DELETE.

URL sti

Påsat basen URL. Brug {name} f.eks. for pladsholdere /opportunities/{id}/stage

Parametre

For hver parameter vælger du også, hvor den går: organ, path, query eller sidehoved. En sti parameter fylder en {placeholder}; en forespørgsel parameter er vedlagt til URL.

Responsmaping

Sig hvilket felt i JSON svar betyder hvad, som er kundens navn, som e-mail, som det er den samlede ordre. Dette er hvad lader AI læse din platforms data snarere end gætte på det.

Hvem kan bruge det?

Dit team (admin AI), signed-in kunder (kunde chat), både, eller skrive assistent. Kundehandlinger kører kun for signed - i kunden, og identitetsfelter er låst til dem automatisk, så en kunde ikke kan spørge om en anden.

Kræver bekræftelse

Et menneske skal godkende, før handlingen løber.

Destruktiv

Markerer handlingen som sletning eller ændring af tilstand. Bruges til at advare, før den kører.

Krævet tilladelse

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.

Beskrivelse / AI-antydning

Valgfrit, men værd at skrive. Det fortæller AI, når man skal nå til denne handling, for eksempel "Brug dette, når admin beder om at ændre en aftale fase". Et godt vink er forskellen mellem en handling AI bruger korrekt og én det ignorerer.

Kapacitet

Optional class tag, either tickets (a ticket read or lookup) or ticket_create (opens a ticket). Tagging lets OpsIQ gate the whole class at once, for example, hiding ticket reads when an operator turns AI ticket awareness off.

Listesti

Valgfrit. For endepunkter der returnerer en liste, den stiplede sti til array, for eksempel data eller data. items

Fejlsti

Valgfrit. Et kropsfelt, hvis tilstedeværelse betyder opkaldet mislykkedes, for eksempel errormessage, nyttigt for APIs at returnere HTTP 200 på fiasko.

Kør det

Hver handling kan køres mod den levende API fra dette trin, så du kan løse en forkert sti eller felt navn før nogen andre bruger det.

⚠️
Write actions are protected by default. Any action using POST, PUT, PATCH or DELETE starts out requiring the manage_integrations permission og human bekræftelse før det kører. Dette er bevidst. En ny skrive handling mislykkes lukket snarere end at lade AI ændre dine data uden opsyn. Du kan ændre både på handlingen, men ændre dem bevidst.
💡
For at kunne kaldes fra kundechat, skal en handling være read- only: Lad både Kræver bekræftelse og Destruktiv unticked. En handling en kunde kan udløse, der også ændrer tilstand er ikke noget guiden vil lade dig skib ved et uheld.

Modtager webkroge (trin 5)

Triggers trin giver dig en webhook URL til at registrere med din platform, og kontrollerer alle anmodninger, der ankommer på det.

Underskrifts-header

Hovedet din platform tegn med, for eksempel X- Hub-Signature-256.

Signalalgoritme

HMAC-SHA1, HMAC- SHA256 eller HMAC- SHA512.

Underskriftsprocedure

Simpel, en almindelig hex eller base64 digest. Eller Stripe- stil, t =..., v1 =... format brugt af Stripe og flere platforme, der kopierede det.

Underskriftspræfiks

Valgfrit. Nogle platforme præfix fordøjet, for eksempel sha256 =. Lad det tomt, hvis din ikke gør.

Begivenhedstilknytninger

Kort hver begivenhed din platform sender på OpsIQ begivenhed, det bør hæve.

Autoregistrering af webhook

Hvis din platform har en API til at styre sine egne webkroge, behøver du ikke at registrere URL med hånden. Åbn Autoregister denne webhook på aktivér og pege det på to af de handlinger, du definerede i trin 4:

Skaber- webhook handling

Kaldes når en admin aktiverer stikket. Du giver det parameternavn der bærer URL, eventuelt den som bærer begivenhedslisten, og stien i svaret der holder den nye webhooks id.

Delete- webhook handling

Kaldes når stikket er deaktiveret, ved hjælp af id fanget ovenfor, så deaktivering af stikket også stopper din platform sende til en død endpoint.

Kapacitet du kan tænde

Profiler og kapaciteter er defineret af Connector Contract 2.2. Genererede og deklarative kapaciteter udsendes direkte; virksomhedens kapaciteter generere en EnterpriseExtension.php stillads med runtime livscyklusledninger.

Handlinger

Operationer AI kan køre på din platform: liste ordrer, finde en kunde, udstede en refusion.

Triggere

Modtag webkroge fra din platform og gøre dem til OpsIQ begivenheder.

AI-billetter

AI Triage og svaret Copilot på billetter, der opholder sig på din platform. Vælg det endpoint, der returnerer en billet med sine svar og kort felter; OpsIQ læser tråden gennem det.

Postkasse og kontakter

Vis en kundes mail på deres tidslinje, send fra en aftale, og synkronisere din adressebog i OpsIQ CRM.

Kundeimport

Sideside din kundeliste og importere hver enkelt som en OpsIQ kontakt. Dette er, hvad Importknappen kører.

Sammenhæng

Push live data fra din platform ind i hver AI samtale.

Identitet

Find ud af, hvilken af dine kunder en besøgende er, og vis deres profil og køb på en billet.

Salg og fakturering

Feed indtægter begivenheder og MRR tal i OpsIQ dashboards.

Indgående billetter

Drej billetter og e-mails din platform leverer via webhook i OpsIQ supporttråde.

Udgående svar

Post OpsIQ personale svar tilbage til platformen tråden opstod på.

Synkronisér brugere

Importer dine personalekonti til OpsIQ admin brugere.

Synkronisér afdelinger

Importer dine supportafdelinger i OpsIQ.

Promomålretning og produktfoder

Lad Promotion Studio målrette på fakta, du kender om en person, og gøre dine rigtige produkter inde i en forfremmelse.

Studio-udbyder til undersøgelse

Udsend server- verificerede Survey fakta, undslap variabler og afgrænset CRM Outreach modtager sider gennem en dedikeret SurveyProvider. php. Dette ikke genbruge Promotion runtime.

Native IP blokerende

Hvornår OpsIQ blokerer en IP, ring til din platforms egen blok API Så blokken bliver også håndhævet der.

Sikkerhedsbegivenheder

Modtag blokeret-IP Trusselssignaler fra OpsIQ.

Platformviden til AI

Hver forbindelse du bygger skibe en kort reference beskriver, hvad din platform er, og hvad dens handlinger gør. OpsIQ admin AI læser det, når dit stik er aktiveret, så det forstår din platform snarere end bare at se en liste over handlingsnavne. Dette genereres for dig.

API gennemgang

Din konnektor altid får en generel formål opkald, så AI kan nå et endpoint du ikke definere en indtastet handling for. Brug indtastede handlinger hvor du kan; dette er flugtlugen.

Reference til Canonical Connector Contract 2.2

Contract version: 2.2 · 55 capabilities · 8 profiles.

Forbindelsesprofiler

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.

Kanoniske kapaciteter

aktioner

Universal actions. Capability version: 1.0. Mode: generated. Runtime methods: registerActions. Package files: actions.json.

udløsere

Inbound event triggers. Capability version: 1.0. Mode: generated. Runtime methods: handleWebhook. Package files: actions.json.

webhook

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.

identitet

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.

fakturering

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.

commerce

Sell through chat: canonical commerce role map. Capability version: 1.0. Mode: declarative. Package files: commerce_roles.json.

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.

dette

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.

⚠️
Byggerspecifikationer forbliver den autoritative kilde. Sæt platformspecifikke forretningsregler i de genererede forlængelsespunkter; pakken livscyklus, køer, arbejdstagere, migreringer og overensstemmelse tests forbliver Builder-forvaltes.

Pålidelighed indstillinger på hver handling

Genoplivning

Hvor mange gange at prøve et mislykket opkald, med en backoff, der fordobler hvert forsøg. 429s og 5xx fejl er genprøvet; en 4xx er din anmodning skyld og gentage det ville bare brænde din sats grænse.

Sats

Et per- minutloft for denne handling, så en travl udløser kan ikke hammer din platform. Lad det på 0 uden nogen grænse.

Tidsudløb

Hvor længe skal du vente på din platform, før du giver op?

Bekræftelse

Kræv et menneske til at godkende før handlingen kører. Brug det til noget destruktivt.

Typer af autentificering

Trin 2 tilbyder syv mønstre. Vælg den, der matcher din platforms API dokumentation, generatoren udsender den rigtige HTTP-klient til det.

API - tasten i header

En statisk nøgle sendt som en fast header, for eksempel X-API-Nøgle. Du giver header navn og etiketten admin form skal vise. Dette sender nøglen som en header; hvis din API forventer nøglen som en forespørgsel parameter i stedet, bruge Custom headers eller en full-code stik.

Beater-token

Token sent as Authorization: Bearer <token>. Common for modern APIs.

Basismauth

Brugernavn og adgangskode, base64- kodet ind i Autorisations-headeren. Du vælger etiketterne begge felter viser på admin-formularen.

HMAC-signeret

En offentlig nøgle plus en hemmelighed, med anmodning organ underskrevet. Du giver underskrift header, nøglen header og tidsstempel header din platform forventer.

OAuth 2.0 [klientlegitimation]

Server- to- server, uden brugerinteraktion og ingen omdirigering. Du giver token URL og et valgfrit omfang; admin leverer klientid og hemmelighed. Brug dette når din platform udsteder legitimationsoplysninger til en applikation snarere end til en person.

OAuth 2.0 (Forbind knappen)

Autorisationskodestrømmen med PKCE, for Stripe, Shopify, Slack og QuickBooks- stil apps. Du giver tilladelsen URL, token URL og omfanget. Efter udgivelse, admin klikker Connect på stikket, autoriserer på din platform, og OpsIQ gemmer den genopfriske token og mints adgang tokens på efterspørgslen. URI til at registrere sig i din OAuth app 'en vises på konnektorens indstillingsside.

Brugerdefinerede overskrifter

En fri- form JSON header map for alt de mønstre ovenfor ikke dækker, for eksempel {"X-API- Nøgle ":"{api_key}"X-Tenant": "{tenant_id}"}. Hver pladsholder bliver et felt på admin-formularen.

💡
PKCE gælder kun for forbindelses- knappen flow. Klient- legitimation flow har ingen omdirigering og intet brugertrin, så PKce ikke gælder for det.

Pagineringsstilarter

Forskydning

Bruger offset og begrænser parametre. Eksempel:? offset =100& grænse =50.

Side

Uses page number. Example: ?page=3&per_page=50.

Markør

Bruger en markør token fra den tidligere svar.

Link-overskrift

Bruger Link response header med rel = "next".

Avanceret: brugerdefineret PHP-kode

connector. php ReturNS en instans. Det erklærer ikke en navngivet klasse, at OpsIQ jagter for. Metoden navne nedenfor er dem ConnectorInterface kræver; få en forkert er en dødelig på belastning, ikke en advarsel.

connector. php - den rigtige kontrakt, minimal og kørbar
<?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.

Spejl billetter ind i den indfødte billet system

Når din platform ejer en billet, skal du filme den ind i OpsIQ fra dit stik ved hjælp af billetten inguest hjælper din konnektor arver (oprette for en ny billet, add-svar på follow- ups). Emit og abonnere på de universelle billetevents i din connector 's subscribers() metode ticket.created, ticket.replied, ticket.updated, ticket.deleted. Autosvar, eskalering, SLA og CSAT alle kroge de samme begivenheder, så du arver dem uden ekstra kode.

Sig hvem der skrev åbningsbeskeden

En billet er altid til kunden, men åbningsmeddelelsen kan være skrevet af staff: en agent, der åbner en billet på kundens vegne, eller når ud proaktivt. Hver helpdesk understøtter dette, så det er en del af den universelle ticket.created kontrakten snarere end noget hver stik løser privat.

author_type

klient (standard) eller admin. Udelad det og kunden antages.

author_id

The staff id when author_type=admin. Never the customer id.

author_name

Agent eller afdelingens udstillingsnavn.

author_email

Agentadressen. Aldrig kunden en. En personalemeddelelse under kundens e-mail er en rapportering og revision fejl.

Det er ikke kosmetisk. Forbrugere læser author_type at beslutte, hvis tur det er. En personale- skriftlig åbning rapporteret som client efterlader auto- svar berettiget til at besvare en besked din egen agent skrev, og gør din platforms ekko af denne åbning ligne en frisk kundemeddelelse, som derefter lander som en kopi og vender billetten til answered. Kortlæg din platforms signal på det i dit stik begivenhedsnormalisator, aldrig i forbrugerne.

Centralt blokerende

Når en agent blokerer en sender, gælder det på tværs af every kanal straks (e-mail, chat, portal, widget og hver konnektor tvilling) fordi blokken håndhæves centralt, før nogen konnekse ser beskeden. Din konnekt arver det ved at gøre ingenting. Der er ingen indgående arbejde for at gennemføre og ingen måde at få det forkert.

Den valgfrie halvdel er outbound: at fortælle din platform en kunde blev blokeret her. Implementere det kun, hvis din platform kan udtrykke noget tilsvarende.

kapacitet ()

Must include block_registry AND the class must implement BlockRegistryInterface. The flag is a claim; the interface is the guarantee. The registry requires both.

blockSender($b)

Receives kind (email|domain|ip), value, reason, admin_id, expires_at, site_key. Returns [result, detail?, remote_ref?].

unblockSender($b)

Den samme last skal være idempotent, men det er ikke en fejl at blokere noget.

isSenderBlocked($b)

For forsoning, så drift er rapporteret snarere end opdaget af en kunde. Returnerer [resultat, blokeret?].

Resultatværdier

OK

Applied on your platform. Include remote_ref when you have an id worth recording.

noop

Allerede i den anmodede stat.

unsupported

Din platform har ikke noget tilsvarende koncept. IKKE en fejl.

mislykkedes

Du kunne have gjort det, og det gik galt. Inkludér detaljer; det lander i revision spor.

At dechifrere er et rigtigt svar. Mange platforme har ingen "blokere denne afsender" koncept og tilbyder kun konto suspension, som stopper fakturering, logins og tjenester i stedet for bare support mail. Kortlægning "en agent blokeret en spam adresse" på "lukke klientens konto" ville lade en misklikket blok opsige en betalende kundes tjenester. Hvis det er den eneste håndtag du har, skal du returnere unsupported og lad det være.

Decidering omfatter også tilfælde, hvor platformen can gøre det, men vil ikke lade dig. API, ikke en funktion: en løftestang, der kun eksisterer i platformens admin UI er et håndtag din konnektor ikke har.

Arbejdede eksempel · Zendesk (referencefeltet implementeres)

Læs connectors/zendesk/connector.php alongside this. It is short, and every branch below is a decision you will face too.

Send e-mail → ok

PUT /api/v2/users/{id} with suspended=true. A suspended end user's new requests divert to Suspended Tickets instead of opening one, genuinely the same idea as blocking a sender, and it stops no billing because Zendesk end users have none. Returns the user id as remote_ref.

domæne → ikke understøttet

Zendesk kan suspendere et helt domæne, men kun gennem suspendering: søgeord i Admin Center blocklist textarea, og ingen API skriver dette felt. Funktionen eksisterer; håndtaget ikke.

ip → ikke understøttet

Der findes ingen IP -blok på ticket- niveau.

ukendt adresse → noop

Zendesk kan ikke forud- suspendere en adresse, det aldrig har set. Intet at gøre er ikke en fiasko, og den lokale blok stadig stopper billetten.

agent eller admin → ikke understøttet

NÆGTELSE. Mistænkte personale ville låse en kollega ud af helpdesk. En personaleadresse nå en bloklist er langt mere tilbøjelige til at være en fejl end en instruktion, kontrollere den rolle, før du handler på det.

Den sidste række er den værd at kopiere. Kontrakten kan ikke stoppe dig kortlægge en blok på noget destruktivt, så hver stik skal selv beslutte, hvad det vil nægte. Afslår højlydt, med en detail en operatør kan læse, slår adlying.

- Rapportér ærligt. Bemærk hvor få af disse rækker er okDet er det rigtige resultat, ikke et hul: en domæne blok virker stadig (den håndhæves i kernen, når den skrives); den kan simpelthen ikke blive afspejlet udad. ok for noget, du ikke gjorde ville fortælle en operatør blokken nåede din platform, når det aldrig forlod OpsIQ.

Regler

Den lokale blok vinder altid

Det er skrevet, før du bliver kaldt og står hvad du vender tilbage. Du kan ikke forhindre en operatør blokere nogen.

Kast aldrig

Et kast behandles som ikke understøttet og registreres. Returnering mislykkedes med en detalje i stedet, så årsagen overlever.

Vær idempotent

Den samme blok kan offentliggøres mere end én gang.

Returnér hurtigt

Fan- out er synkron med operatørens klik. Kø langsomt arbejde i stedet for at holde anmodningen åben.

Ring ikke tilbage

Aldrig re-block ind OpsIQ fra din kontaktperson. registreringsdatabasen springer den oprindelige stik, men en anden hop ville loop.

Hver meddelelse er skrevet til opsiq_block_registry_log (operation, art, værdi, årsag, admin, oprindelse, stik kugle, resultat, detaljer og tidsstempel) så en operatør kan se en blok ankom fra din platform snarere end fra en agent, og hvad hver forbindelse gjorde ved det.

Skub vedhæftede filer korrekt

Håndbog attachments array til at oprette ()/addReply(). Hvert element bærer filen i en af tre former:

content_b64

Base64 af RAW-fil bytes, brug for filer bag auth (de fleste indgående tilfælde). OpsIQ afkoder det og re-hosts filen for dig. Den mest bærbare form.

url / source_url

A public https URL (e.g. a Zendesk content_url). Must be https; passes an SSRF / allowlist check before it is stored.

stored_path

En gemt fil reference du allerede skrev (hvad den indfødte komponist uploader producerer).

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 kun filnavne (ikke bytes), så det pålidelige indadgående mønster er: læse byte hvor din kode allerede kører (inde i platformen, eller fra webshook nyttelast), base64 dem, og sende dem som content_b64 om begivenheden.

Outbound (OpsIQ → din platform). Når en agent vedlægger en fil, ticket.replied nyttelast giver dig svaret filer som stored_path post under OpsIQ fil butik. Læs dem og skubbe i din platforms eget format, og tjek platformen docs, kodning betyder: WHMCS ønsker base64_encode(json_encode([[name,data]])) (JSON, ikke serialize); Zendesk uploads rå bytes til /uploads.json til en token derefter sæt comment.uploads; Gmail sender en flerdelt / blandet RFC-822 besked base64url- kodet i raw; Amazon SES inbound attachments need the S3 receive action (the SNS path caps at 150 KB).

Fjernbetjening af platforme: API + webhook, aldrig en anden app 's borde

Hvis din platform er en separat app eller database (en hosted SaaS, en fjernbetjening WHMCS, et andet DB på samme server) Skriv aldrig dens tabeller direkte: en krydsdatabase skriver lander på uanset forbindelse er aktiv og lydløst går glip af de rigtige rækker. Altid: outbound = at ringe til platformens signerede REST API (replies, status, afdeling, sletter); inbound = platformen POST 'er en underskrevet webhook, din handleWebhook() kontrollerer det og affyrer matchningen ticket.* event. For at stoppe en spejlsløjfe, mærke hvad du skubber med en oprindelsesmarkør (fx mirror_origin:'opsiq'); platformen ekko det på webhook og din indgående håndværker springer sine egne ekkoer. OpsIQEvents::isMirroredEvent() på toppen af hver kontakt.

Spejlstatus, prioritets- afdeling

Et svar flytter automatisk status, en agent svar → answered, a kunde svar → customer_reply; spejl, at på samme måde. ticket.updated og læs payload['changes'] (f. eks. {status:'closed'}).

Status: OpsIQ's kanoniske sæt er open, customer_reply, answered, in_progress, pending, closed. Hold et lille tovejskort til din platforms ordforråd, og sørg for at din kolonne rent faktisk accepterer de værdier du skriver (en ENUM mangler en værdi bliver tavs kastet til tomme af nogle databaser). Afdeling: OpsIQ -id er meningsløst på din side, Send den aldrig. Send deskriptoren (name, email og slug) og løse det mod dine egne afdelinger ved e-mail → navn → slug, så "Billing Department" lander i er Afdelingen for fakturering i stedet for Generelt. Trigger på begge ticket.escalated og a department_id ændring i ticket.updated.

💡
Status / priority / subject / department / delete mirroring is gated by per-connector toggles (mirror_status_changes, mirror_priority_changes, mirror_subject_changes, mirror_department_changes, mirror_deletes) read through the shared OpsIQ\Connectors\MirrorOptions helper. Embed that block in your settings.json and every ticket-mirror connector reads the toggles identically.

Link en billet til et produkt / service

Hvis kunden valgte et bestemt produkt, når du åbner billetten, stemple en antydning, så agenten ser et fokuseret servicetort (med et enkelt klik "se andre produkter" modal for resten). Pass nogen af disse til at oprette ():

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

En platform service-kode, f.eks. WHMCS S396 (service396) / D11 (domæne11). OpsIQ dekomponerer det valgfrie type- letter + id og matcher din service liste, med en type vagt, så et domæne kode aldrig passer til et produkt af samme id. Udsend en matchende ref på hver tjeneste for en præcis match.

related_domain

Et domænenavn; matches som en understreng mod hver tjenestes detalje / domæne.

💡
Byg vedhæftningslisten én gang i form ovenfor, og OpsIQ håndterer resten: hostet URLs er gået igennem og base64 indhold gemmes og re- hosted for dig. Du behøver aldrig at skrive per- platform fil håndtering.
⚠️
Action tasterne er små bogstaver, tal og underværker. Builder accepterer3til80tegn og tillader også prikker; actionbutikken accepterer2til100tegn uden prikker, så hold dig til bogstaver, cifre og understregninger, og du opfylder begge. Tilføjelse af en handling skaber ingen AJAX rute, så der er intet at regenerere - re-gemme stikket, og det er synkroniseret.
Connectorer

Sell through chat: the commerce role map

A connector that can sell — a store platform, a booking system, a payment gateway — declares which of its OWN operations answer OpsIQ's canonical commerce roles. Declare it and the connector appears under Settings → Client Chat → Selling through chat automatically; stop declaring and it disappears. There is no list to register on.

The file: commerce_roles.json

The declaration lives in its own file at the package root — the presence of the file is the claim. It cannot live in connector_contract.json: that file is regenerated by the packaging tools and its schema rejects unknown keys, so a hand-added block would fail validation and then be overwritten.

commerce_roles.json
{
  "commerce": {
    "roles": {
      "catalog_search": { "operation": "acme_search_products", "transport": "http" },
      "order_get":      { "operation": "acme_get_order",       "transport": "http" },
      "order_create":   { "operation": "acme_create_order",    "transport": "http",
                          "recovery": "acme_get_order" }
    }
  }
}

The rules, and why each exists

Roles are a closed vocabulary

OpsIQ never infers a role from an action's name. A role that is not declared does not exist — declaring is the whole contract.

The operation must be one of your actions

Every mapped operation must exist in your actions.json. A typo declares a capability that cannot run, and it surfaces to a customer as "I can check that for you" followed by nothing.

A read role never points at a destructive operation

Read roles (catalog, availability, quote, order lookup) must map to operations that change nothing on your platform.

A write role never maps to a generic record operation

Mapping order_create to a raw table insert — record.create, db.insert, recordCreate, any spelling, any separator — is rejected structurally. A row written directly bypasses your platform's pricing, stock locking and confirmation mail, producing an order your own system does not fully believe in.

A write role declares a recovery operation

An idempotent lookup that answers "did my write land?". The most dangerous timeout is the one after your platform may already have created the order; without a recovery lookup the only options are to retry blind or to lose it.

Payment roles carry three extra obligations

A package declaring any payment role must also declare payment_profile (currencies, countries, methods and environment — an unstated environment is how a test integration takes a live payment), webhook_verify (your provider's real signature scheme; a generic secret-compare is refused) and event_map (your events onto canonical ones).

In the Connector Builder, tick the commerce capability and map the roles in the wizard — it validates all of the above as you type and writes commerce_roles.json into the package. Untick the capability and the file is removed on republish. Verify any package by hand with php tools/verify_commerce_contracts.php.
💡
Transport is http for a remote API or bridge for a named operation on a deployed bridge (see the NO-API pattern below). Roles are transport-agnostic; the runtime just needs the transport stated so it can version-pair a bridge.
Connectorer

Tilslut en platform, der har NO API (bromønsteret)

Masser af rigtige platforme skib ingen RESTAPIpå alle. Et hotel CMS, et gammelt faktureringssystem, en skræddersyet intern værktøj. Du kan stadig skrive en kompletOpsIQconnector for one: stikket sender en enkelt PHP-fil, som operatøren falder ind i deres egen offentlige webroot, og at filen ISAPIDenne side er hele mønsteret, med de regler, der gør det sikkert at køre og årsagen til hver regel.

Formen af det

En normal konnektor kalder en andens API. En bro connector bringer sin egen. Intet andet ændrer: de samme handlinger, den samme kontekst udbydere, den ene identitet kontrakt, den anden pakke layout.

1
Du skriver en PHP fil

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
Operatøren kopierer det til deres webroot

Ved siden af platformen egen index. php. Ingen platform kode er ændret, ingen plugin er installeret, intet at opretholde på tværs af platform opgraderinger.

3
Forbindelsespanelet giver dem filen

Your settings.json declares webhook_help.snippet_template. The connector page renders it as a copyable file with their live settings already substituted, so there is nothing to hand-edit.

4
OpsIQ kalder det server- to- server

Din klient.php sender GET anmodninger med den delte nøgle i en X-Opsiq- Bridge- Key header.URLindstilling er platformen site root.

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.

Sikkerhedsmodellen, og hvorfor hver regel er der

Denne fil sidder i en offentlig webroot bag en delt nøgle. At enkelt faktum driver hver regel nedenfor. Må ikke slappe nogen af dem for at gøre din bro enklere.

Den opkaldende aldrig leverer SQL

Ikke en Where klausul, ikke en ORDER BY fragment, ikke et "bare denne ene gang" rå forespørgsel parameter. Den opkaldende navngiver en tabel, en kolonne og en værdi; din fil bygger erklæringen. Det øjeblik en opkaldet kan bidrage SQL tekst, en delt nøgle bliver vilkårlig database udførelse.

Table and column names are validated against information_schema

Identifikatorer kan ikke være bundet som parametre, så de skal kontrolleres i stedet. Læs den rigtige tabel og søjleliste for DETTE database og afvis noget der ikke er på det. En identifikator, der ikke virkelig er et objekt i dette skema, kan da slet ikke nå frem til en forespørgsel - hvilket gør det sikkert at afsløre hver tabel.

Hver værdi er en bundet parameter

Uden undtagelse, herunder værdier i en søgning. Validerede identifikatorer plus bundne værdier er det par, der gør overfladen total og indsprøjtningsoverfladen nul.

Læger er universelle, skriver er allo- listet

Det er reglen, folk vil springe over.

Hemmelige kolonner redigeres på læse og afvises på skrive

Match on column NAME: password, remember_token, secret, api_key, private_key, salt, token. Replace the value with a placeholder on the way out. Refuse the write entirely on the way in — writing a raw password hash is not an operation, it is a footgun. Send the operator to the platform's own password flow.

Sletter er enkelt- række, ved primær nøgle

Aldrig en bulk slette, aldrig et slete ved filter. En bulk fjernelse er, hvordan en database dør. Hvis nogen virkelig har brug for en, kan de gøre det på platformen.

Læder er roe- soked

Klemme grænsen parameter med et hårdt loft. En runaway forespørgsel må ikke være i stand til at dumpe databasen gennem en chat-besked.

Fejl lukket indtil nøglen er sat

En ukonfigureret bro svarer 403 til alt. En bro, der er hjælpsom før den er konfigureret, er en bro, som var nyttig for en fremmed.

Konstant- time tastekomparation, nøgle i en header

hash_equals, never ==. The key goes in X-Opsiq-Bridge-Key, not the query string, so it stays out of access logs, proxy logs and Referer headers.

ET

En metode, en form, intet at smugle i et organ. Alt broen gør er udtryksfuldt som et GET med validerede parametre, og OpsIQ er den eneste opkaldskilde.

Læser universal, skriver loft- listet - og hvorfor

Dette er reglen der bliver argumenteret med, så her er begrundelsen i fuld udstrækning. Assistenten skal kunne se hele platformen: det er hvad der gør den nyttig, og en læsning kan ikke ødelægge noget. Skrifter er forskellige. Denne fil sidder i en offentlig webroot bag en delt nøgle. Hvis denne nøgle lækker, en ubegrænset skrive overflade gør lækage svarende til fuld databasekontrol - en ny admin bruger, en tom bookingtabel. En tillo- liste betyder en lækket nøgle stadig ikke kan nå et bord operatøren aldrig aktiveret.

⚠️
OpsIQ godkendelseskortet låser AI, ikke nøglen. Admin klikke Tillad på en destruktiv handling er en kontrol over assistenten. Det er ikke en kontrol af hvem der har broen nøgle. De er to forskellige trusler, og tillow- listen er svaret på den anden.
Operator- front knop, fra Botble bro
/* ── 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';

To detaljer i nedenstående kontrol er nemme at få forkert. Tabelnavnet ankommer allerede RESOLVED, der bærer installationens bordpræfiks, mens en operatør skriver loft- list upræfixed fordi det er hvad de naturligt ville skrive. Sammenlign begge måder eller en forudfastsat installation lydløst tillader intet og hver skrivning pauser. Og afvisningen skal forklare sig selv, fordi den person, der læser det er en admin i et chat- vindue, ikke en udvikler med en stak spor.

The allow-list check, verbatim from 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);
};

Porten, i fuld

Fire kontroller i denne rækkefølge, før noget rører data. Kopiér ordren samt checks.

De fire gate checks, i rækkefølge
<?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. */

Validating identifiers against information_schema

Dette er det stykke, der vender "assistenten kan nå enhver tabel" fra hensynsløs til sikker. Løs den opkalders bordnavn mod den virkelige skema, tolerere en manglende eller ekstra bord præfiks, og returnere null for noget andet. Alt nedstrøms derefter arbejder med et navn, der beviseligt eksisterer.

Identifikationsvalidering og redhandling, ordret fra Botble-broen
/** 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;
};

En læse op og en skrive op, komplet

Note what is bound and what is validated. The filter column is checked against the real column list and then interpolated as an identifier; its value is bound. The limit is clamped. Rows are redacted on the way out. The update refuses the primary key and any auth column, and stamps updated_at when the table has one.

Læs alle tabeller - validerede identifikatorer, bundne værdier, afdækkede rækker
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,
    ]]);
}
Skriv én række - allo- listet tabel, nægtet auth kolonner, enkelt række ved primær nøgle
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)),
    ]]);
}

Overlevelsesforskelle i skema

Platform versioner er forskellige. Kolonner flytte, få omdøbt, eller er fraværende. En bro, der antager et skema arbejder på en installation. Orientering og tilpasse i stedet: Vælg kun de kolonner, der findes her, tolerere tabellen præfiks, og prøv plausible stavelser af en reference.

Schema tolerance, fra Botble broen
/* 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));
💡
Giv din bro en op = diag, der kun rapporterer struktur - hvilke tabeller løst, som kolonner hovedtabellen har, og SHAPE af den nyeste reference med hvert ciffer maskeret. Det er tastet- gated ligesom alt andet, og det vender "opslag ikke finde noget" fra en støtte billet til et ten- sekund svar. Aldrig lade det vende tilbage reelle optegnelser.

Ensartede fejl og optællingsfælden

En form for alt

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.

Ikke-fundet og ikke-match skal være identiske

På en opslagsside skal en reference, der ikke findes, og en reference hvis bevis ikke matcher, give SAME-svaret. Forskellige svar gør din bro til et orakel, der bekræfter hvilke referencer der er reelle, hvilket er en gratis kundeliste eksport for enhver patient.

Læk aldrig årsagen til en besøgende

Broen kan være præcis medOpsIQ. Hvad når en besøgende er besluttet afOpsIQ, i et fast afslag.

Den kopierbare fil i konnektor panelet

Operatøren åbner aldrig dit lager.OpsIQog tryk på Kopi. Denne kopi kommer fra indstillinger.jsonog det skal være det samme program som bridge / * .php.

settings.json - panelindgang til en broforbindelse
{
  "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.

Andre pladsholdere er substitueret serverside

Uafhængigt af det...{webhook_url}, {webhook_path}, {webhook_secret}, {site_key}, {base_url}og{slug}er udfyldt, før panelet nogensinde ser den snuppet.

webhook_help may be one object or a list

En liste giver dig flere snuppets i et panel, f. eks. en bro fil og en separat relæ krog.

🚫
Hold ikke på snavs i hånden. Brofilen og panelkopierne er to kopier af et program, og de vil drive - en bro blev opgraderet og dens panel kopi var ikke, så alle, der geninstalleret og kopieret fra panelet installeret den gamle bro og lydløst mistet hver ny kapacitet. Intet opdaget det: overensstemmelse bestået, signaturer bestået, test bestået.
Hold de to kopier identiske
# 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.

Hvad broen skal afsløre

Formerede operationer og en universel dataoverflade, sammen. De formede returnerer ryddige, målrettet-byggede svar på de spørgsmål folk faktisk stille; de universelle dem dækker alt andet, så assistenten aldrig sidder fast.

Formerede udtryk

statistik, hovedobjektlisten med filtre, et objekt med tilhørende rækker, kataloget over det der sælges, kundesøgning med historie. Disse giver AI et godt svar i ét opkald i stedet for fem.

Formerede skriverName

De to eller tre tilstand ændringer, der betyder - sæt status, annullere. Hold de accepterede værdier tilload- listet.

Universal opdagelse

tabeller (med række tæller) og beskrive (kolonner, typer, primær nøgle, plus læsbare og skrivbare flag per kolonne).

Universal læse og skrive

forespørgsel, record. get, record. create, records. update, recog. delete. hver enkelt af dem valideret som vist ovenfor.

Identitet, før nøgleporten

Identitetssuber kaldes af ADMIN 'S BROWSER, same-oprindelse, så de ikke kan sende en brugerdefineret header. Deres godkendelse er selve platformen session. Sæt dem foran tastetaten, holde dem væk fra alle record data, og aldrig lade dem returnere en hemmelighed. Se konnektor identitet side.

Diagnostik

op=diag, structure only, masked.

💡
En read- only connector behøver ingen allow- liste overhovedet. Hvis din platform kun nogensinde besvarer spørgsmål, sende en bro uden skrive ops og hele klassen af skrive risiko forsvinder. Tilføj skriver, når nogen beder om dem.

Checklist før du sender en bro

Broen nægter alt uden nøglesæt

Test det. Omdøb konstant til tom og bekræfte hver op svar 403.

En forkert nøgle afvises i konstant tid

hash_equals, and the key read from the header only.

Et made- up tabelnavn afvises

Og et rigtigt bordnavn med forkert præfiks løser stadig.

En kodeordskolonne vises aldrig i en læse

Og en skrive, at navne et er nægtet med en forklaring.

En skrive til en tabel uden for tillodslisten er nægtet

Med beskeden, der fortæller operatøren, hvordan man udvider den.

Panelets snuppet matcher brofilen

php tools/sync_connector_bridge_snippets.php reports it in step.

Geninstallation af stikket er ikke nok

Hvis din pakke sender en brofil, skal en operatør, der opgraderer stikket, også genindsætte filen i deres webroot. Sig det i panelet og i din CHANGELOG, hver udgivelse.

Connectorer

Broen på andre sprog og andre databaser

Bromønsteret er ikke et PHP mønster.OpsIQopkald er en HTTP endpoint, så filen kan være Node, Python, Go, Ruby, .NET eller Java, og butikken bag det kan være enhverSQLmotor ellerMongoDB. Hvad er PHP-formet er emballage rørledning, og denne begrænsning afgør, hvordan din bro når operatøren. Læs den levering sektion først: det er den del, der overrasker folk.

Hvad stikket faktisk kræver

Det er hele kontrakten, intet i den nævner et sprog.

Transport

HTTPS. One GET request per opkald. Ingen krop, ingen anden metode.

Godkendelse

En fælles hemmelighed i X-Opsiq-Bridge-Key forespørgsel header, sammenlignet i konstant tid. Ikke en forespørgselsparameter, ikke en cookie, ikke Basic Auth.

Parametre

- Spørgestreng. op angiver overfladen do Angiver operationen, resten er operationens argumenter.

Respons

JSON. {"success":true,"data":{...}} eller {"success":false,"error":"snake_case_reason"}. CONTECT- Type ansøgning / json, og ingen caching.

Statuskoder

200om succes.403ukonfigureret eller forkert nøgle404er ikke fundet405forkert metode400dårligt argument501ikke understøttet på dette skema.

Det er alt

Ingen rammer, ingen runtime, intet OpsIQ bibliotek på din side. Hvis det kan tjene det, kan det være en bro.

Levering: hvad der kan leve i bro /, og hvad der ikke må

Den signerede pakke dækker en fast liste over filudvidelser, og en fil uden for denne liste er udeladt af ZIP. En bro på et sprog listen ikke dækker derfor kan ikke skib inde i pakken - men det kan ikke længere forsvinde på dig enten.26August2026en fil i bridge/ at pakkeren ville falde er en hård overensstemmelse fiasko, så pakken nægter at passere i stedet for at installere uden bro i det.

Hvordan en bro / mappe behandles ved byggetid
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 og JavaScript - fuldt understøttet

Filskibene i det underskrevne ZIP, og den snuppet verifikator holder din panel kopi byte- identisk med det, uanset af de to det er. Drivkontrollen læser hver fil i bro /, ikke kun PHP dem, så en opgraderet bro med en gammel panel kopi mislykkes bygningen på begge sprog.

Alt andet - kun gennem panelet

The panel snippet is plain text with no idea what language it holds, so it works for any stack. Put the whole program in webhook_help.snippet_template, name the file in snippet_filename, and do NOT leave a copy in bridge/ — conformance will refuse the package rather than ship it hollow. Say plainly in webhook_help.body that the operator copies this file rather than getting it from the package.

Hvis du virkelig har brug for et andet sprog i pakken

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.

💡
Angiv filen i webhook_help.snippet_filename når din pakke sender mere end én bro. Det er sådan, verifikatoren ved hvilken bro en panelkopi tilhører; uden det, en tvetydig parring rapporteres som en overensstemmelsesadvarsel og at snuppet er efterladt ukontrolleret.
⚠️
Pointen med drift kontrol er, at en bro fil og dens panel kopi er to kopier af et program og vil aflede. Regenerate snarere end hånd- redigere: php tools/sync_connector_bridge_snippets.php --apply, og så genunderskrive pakken.

Porten, på seks sprog

Samme fire kontroller i samme rækkefølge overalt: mislykkes lukket med ingen nøgle, én metode, constant- time tastekomparation fra header, derefter tilslutte. Den eneste rigtige fælde er sammenligningen, og det er en anden fælde i hvert sprog.

⚠️
Sammenlign share-256fordampning af de to nøgler i stedet for selve nøglerne. Det er korrekt på alle sprog, og det sidestiller det faktum, at flere konstant- tid sammenligningerne enten kaste eller lække på en længde mismatch - Nodes timingSafeEqual rejser en RangeError, når bufferne varierer i længden, hvilket gør en forkert nøgle til en500i stedet for en403.
Node. js - porten
// 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 - porten
# 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 og Java - den samme sammenligning
// 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)));
}

Validering af identifikatorer på hver databasemotor

Sikkerhedselementet ændres ikke: en tabel eller kolonne navn den kaldende skal kontrolleres mod det rigtige skema før det interpoleres, og hver værdi skal være en bundet parameter. Kun introspektion forespørgsel, citationstegn og personsøgningsklausul forskellige.

MySQLogMariaDB

Tabel: SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = ?. Kolonner: det samme mod information_schema.COLUMNS med AND TABLE_NAME = ?. Citat med bagticks, fordobling af enhver bagtik indeni. Side med LIMIT n OFFSET m.

PostgreSQL

Same information_schema views, lower-case names, WHERE table_schema = $1 (sædvanligvis) public). Citat med dobbelt citater, fordobling enhver dobbelt citat indeni. Side med LIMIT n OFFSET m. Se foldereglen: en ikke citeret identifikator er foldet til lavere tilfælde, så sammenlign case- insensitively når du løser et navn.

SQL Server

Same INFORMATION_SCHEMA views. Quote with square brackets, doubling any closing bracket inside. Paging needs an ORDER BY: ORDER BY [id] DESC OFFSET @o ROWS FETCH NEXT @n ROWS ONLY.

SQLite

Tabel: SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%'. Kolonner: SELECT name FROM pragma_table_info(?) - anvende den bordværdsat form, fordi PRAGMA table_info(x) statement kan ikke tage en bundet parameter og indbydende streng interpolation der er præcis det hul, du forsøger at lukke. Citat med dobbelte citater. Side med LIMIT n OFFSET m.

Oracle

Tabel: SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = :owner; kolonner fra ALL_TAB_COLUMNS. Citat med dobbelte citater, og husk en ikke citeret identifikator folder til UPER tilfælde, det modsatte af PostgreSQL. Side med OFFSET :o ROWS FETCH NEXT :n ROWS ONLY på 12c og senere.

MongoDB

Ingen SQL, så ingen identifikation interpolation og ingen bundne parametre - en anden disciplin for samme mål. Se nedenfor.

Forespørgslen om introspektion pr. 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øs, og brug derefter RESOLVED-navnet. Send aldrig den opkaldsdømmende stavning igennem til forespørgslen selv efter at have kontrolleret det - se det rigtige navn op i listen du læser fra skemaet og interpolere det. Det koster ingenting og lukker kløften mellem "dette navn matchede noget" og "dette er det navn jeg er ved at køre".

MongoDB: de samme regler, udenSQL

Der er ingen spørgerække at injicere i, så folk antager der ikke er noget at beskytte. Der er: filterdokumentet. Passing opkald-leveret JSON direkte ind find() lader en ringer sende {"$ne": null} eller {"$gt": ""} hvor du forventede en værdi, og stille vælge hvert dokument. Byg filteret selv.

MongoDB - indsamling load- list, skalar- tvunget filter, projektion som redaction
// 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();
Indsamlingsnavne kommer fra listCollections

That is your information_schema. Resolve the caller's spelling against it and use the resolved name.

Tving hver filterværdi til en skalar

Et strygepunkt () eller et tal () omkring det er hele forsvaret mod sprøjteapparat. Et dokument, hvor du forventede en værdi er NoSQL ækvivalent med et omstrejfende tilbud.

Projicering er reglen om, at der skal ske en ændring

Ekskl. sekreter-formede felter i projektion, så de aldrig forlade serveren, snarere end at slette dem fra resultatet bagefter.

Deletes stay single-document by _id

deleteOne with a resolved _id. Never deleteMany, and never a filter the caller influenced.

Skrifttyper ophold low- listed

Samme ræsonnement som SQL: Nævn de samlinger, en skrive kan røre ved, og afvise resten med en forklaring.

Identitetsendepunktet på andre sprog

Identitetssonden er den anden halvdel af en bro, og det er HTTP også. Underskriftsblokken er identisk på alle sprog: base64url nyttelasten, HMAC-SHA256 at strengen, slutte sig til en prik.

Du må ikke hånd- skrive dette fra bunden. Indstillinger, Support Portal allerede bærer en klar snuppet katalog til PHP, Laravel,WordPress, WHMCS, Node med og uden afhængigheder, Flask og FastAPI, Django, .NET, Ruby på Rails, Java Spring Boot og Go. Tag signer fra den smag, der matcher din stak.
Hvad skal du ændre, når du genbruger det

Those snippets mint a PORTAL handoff token, which is deliberately stricter: it carries jti and single_use:true and lives about 120 seconds because it travels in a URL. A bridge or widget identity token carries neither of those and uses a longer exp, minutes to hours.

Hvad der forbliver det samme

site_key, iat, exp and a top-level authenticated:true, plus an admin or customer subject with an id and a username or email. Same claims, same signature, same secret.

Begge symbolformer verificeres

En tre-del JWT underskrevet HS256 værker, og det samme gør to-del base64url nyttelast plus hexHMACat PHP-referencen udsender. Brug det sprog, bibliotekerne gør naturligt - et JWT bibliotek er normalt den kortere sti udenfor PHP.

Mynt den aldrig i browseren

Sandt på alle sprog. Sigtning klient- side betyder forsendelse af webstedet hemmelighed for enhver besøgende.

Valg, ærligt

Platformen er PHP

Skriv broen i PHP. Den leveres i pakken, den er køre- check- checket, og det kan starte platformens egne rammer til at læse en live session for identitetssonden. Intet andet giver dig alle tre.

Platformen er Node

A . js bro skibe, tegn og er drift- kontrolleres præcis som en PHP et. Intet er opgivet.

Platformen er Python, Ruby, Go, . NET eller Java

Levere gennem panelet snuppet og sige det i panelet krop; ikke efterlade filen i bro /, hvor overensstemmelse vil afvise pakken. Forbindelsen er ellers helt normal: handlinger, kontekstudbydere, identitet og gæst opslag alle arbejder det samme, fordi ingen af dem bekymrer sig om, hvad svar HTTP opkald.

Du kan ikke køre en proces på platformen vært

Så bromønsteret er ikke det rigtige værktøj. En bro eksisterer for at nå en platform indefra sin egen vært. Hvis du kun kan nå den udefra, skriver du en almindelig API stik mod hvilken overflade den gør afsløre.

⚠️
One more constraint worth planning around: an identity probe has to read the platform's login session, which usually means running inside the platform's own process or at least on its host with access to its session store. A bridge written in a different language from the platform can serve data comfortably and may still struggle to answer op=admin_identity. If that is your case, ship the data bridge in your language and the identity probe in the platform's.
Connectorer

Giv assistenten begge halvdele: aktioner OG kontekst

Dette er den mest almindelige ting mangler fra en forbindelse, der "virker, men er ubrugelig". Handlinger lader AI DO ting. Kontekstafsnit lade det vide ting. Et stik har brug for både, og de fleste spørgsmål en admin spørger bliver besvaret af kontekst, aldrig ved en handling. En forbindelse med perfekte handlinger og ingen sammenhæng udbyder vil sandfærdigt rapportere, at det ikke kan se noget.

De to halvdele

Handlinger - hvordan AI gør ting

Opdaget i handlinger.jsoneller returneres af registerActions (). Modellen vælger en, udfylder sine parametre, ogOpsIQudfører det. Handlinger er for verber: annullere denne reservation, åbne den billet, ændre denne status.

Kontekst afsnit - hvordan AI ved ting

"Hvor mange ordrer denne måned", "der er mine nyeste kunder",, "hvad sælger vi" alle løse gennem en kontekst opslag, og aldrig røre ved en handling overhovedet.

⚠️
Symtom for en manglende udbyder: Assistenten svarer "Ingen aktiveret stik leveret denne kontekst sektion", mens stikket er installeret, aktiveret og passerer sin forbindelse test. Intet er logget, intet fejl.

Ordforråd for det universelle afsnit

OpsIQ beder om sektioner med generisk navn. Dit job er at beslutte, hvad hver enkelt betyder på din platform og besvare det. En hotel booking IS hotellets ordre; et værelse IS, hvad hotellet sælger. Kort, ikke opfinde.

orders / pending_orders

Whatever a transaction is on your platform: orders, bookings, reservations, jobs, shipments. pending_orders is the same list filtered to the unfinished ones.

klienter

Kundelisten.

products

Hvad platformen sælger: produkter, værelser, planer, tjenester.

fakturering

Indtægter og penge-formet totaler, plus tal efter stat.

billetter, tjenester, domæner, servere, aktiviteter

Brug disse når din platform virkelig har dem. Tving ikke en kortlægning - et ubesvaret afsnit er bedre end en forkert.

Alt andet din platform har

Deklarer din egen. En udbyder, der erklærer afsnit (): ['licenser', 'forsendelser'] har dem sammenlagt i den universelle lookup s tillock- liste, så platform- specifikke opslag bliver tilgængelige uden nogen kernekoncerner ændringer.

Fejlen, der koster en dag

En kontekstudbyder SKAL implementere grænsefladen. Registreringssystemet type- checks det, så en klasse, der blot LOOKS højre er sprunget - uden fejl, hvor som helst.

ContextProvider. php - kontrakten, fra Bottble referencepakken
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 '';
    }
}
Registrer det fra stikket

Implementér ContextConnectorInterface og returnér dine udbydere fra contextProviders (). Forbindelsesklassen kan også implementere ContectProviderInterface direkte og blive registreret som sig selv.

Returnér almindelig tekst, ikke JSON

build () giver en tekstblok, der er sammenkoblet i prompten. Skriv den for en læser: en overskrift, derefter en linje per række.

Return "i stedet for at kaste

Fange dine egne undtagelser. En udbyder, der kaster er logget og sprunget, men vender tilbage "er kontrakten.

Bygherren kan ikke skrive afsnit () for dig

De genererede ContextProvider. php skibe sektioner (): array {return [];} og guiden har intet felt for det. Udfyld det i hånden - og husk, at genudgive fra guiden OVERWRITES filen. Kopiér dine redigeringer først.

⚠️
Angiv den sande TOTAL, ikke antallet af rækker du sendte. En side er ikke en total. En udbyder, der lister tyve rækker uden at sige så får assistenten trygt besvare "du har20bookinger "når platformen holder669. En billig COUNT og en eksplicit linje - "I ALT på fil:669(denne liste viser den nyeste20kun) "- er hele fix, og en selvsikker forkert optælling er værre end ingen optælling.
En sektionsblok, der ikke kan tælles forkert
$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);

Nævn dine handlinger, så OpsIQ kan fortælle læser fra skriver

OpsIQ classifies an action by the WORDS in its action_id, and it is deliberately conservative: anything it cannot recognise is treated as a write and demands an approval card. Get the verb right and a read just runs.

1
is_destructive or requires_confirmation wins

Hvis en af dem er indstillet, skal handlingen altid godkendes. Beslut dem ærligt - det er hvad der dækker admin 's godkendelseskort.

2
Et skrive ord hvor som helst i id gør det til en skrive

tilføje, oprette, åbne, opdatere, redigere, ændre, slette, fjerne, ødelægge, annullere, refundere, suspendere, opsige, aktivere, godkende, afvise, sende, markere, nulstille, fange, ugyldige, lukke, genåbne, tildele, tilbagekalde, yde, sæt, skifte, aktivere og deaktivere, udstede, generere, anvende, afgift, betale, levering, forny, opgradere, flette, flytte, overføre, eskalere, flag, registrere, sync, skubbe, importere, køre, udløse, starte, stoppe, genstarte og et par mere.

3
Så et læst ord gør det til en læse

get, list, search, find, view, show, header, count, lookup, beskrive, læse, preview, test, ping, status, resumé, detaljer, seneste, historie, check, log, statistik, målinger, oversigt, indtægter, opdeling, rapport, analytics, balance, brug, kvote, snapshot, indsigt, foder, udkast, triage, klassificere, foreslå.

4
Så HTTP-metoden beslutter

Der er læst "GET, HEAD og MULITTER".

5
Ellers er det en skrive

Uanerkendt betyder godkendelse påkrævet.

⚠️
Write words are checked BEFORE read words, so a mixed name like get_and_sync_orders is classified as a WRITE. Pick one verb, put it first, and keep it clean: list_orders, get_customer, search_bookings, cancel_booking, set_order_status.

Only declare native_api if the platform really has one

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.

Lær admin hjernen om din platform

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

Hvad denne platform IS, hvordan dens data er formet, hvad dets objekter kaldes, og de særheder, der ellers ville gøre assistenten gætte. Skriv det for en kompetent kollega, der aldrig har set platformen.

ai_api_reference.md

Den kallable overflade. For en bro stik dette er din op og gøre ordforråd med deres parametre, ikke en REST endpoint tabel.

Budget

Cirka6,000tegn, der opbevares pr. stik, og om24,000tegn for hele blokken på tværs af alle aktiverede stik. Over per- connector cap din fil er trunkeret; skal være koncise før truncator er.

Præcisionsbetaling

Disse filer er forskellen mellem den assistent, der bruger dine universelle bordværktøjer og besvare fra det forkerte afsnit, fordi intet nogensinde fortalte det disse værktøjer eksisterede.

💡
Begge filer skal være i pakken INSTALLED, ikke kun dit kildetræ. De er almindelige pakkefiler, så de er dækket af underskriften og sendes i ZIP - hvilket også betyder redigering en efter signeringen bryder seglet.
Connectorer

Identitet gennem en forbindelse: admin, kunde, portal

En underskriftskontrakt tjener tre overflader. Konnektorens opgave er at forvandle "der er logget ind på platformen" til en signeret tokenOpsIQkan kontrollere, og derefter at præsentere den verificerede emne iOpsIQstikket godkender aldrig nogen - platformen gør, og underskriften bærer på denne påstand.

De tre overflader, en signalerer

Admin - dit personale, inde i din bagende

En admin emne. Kontrolladningen belastninger inde i platformen admin panel og hver medarbejder er matchet til deres egen OpsIQ agent. Fuld walkough på admin widget side.

Kunde - en signed-in kunde, i klient chat

En kunde emne. Dette er hvad lader en logged- i kunden få deres HELE konto i stedet for en anonym opslag: hver ordre, fuld detalje, og enhver self-service handling du tillader.

Portal - et dybt link til støttekortet

The same claims plus jti and single_use, with a 120-second life, because the token travels in a URL and must be spendable once. Do not hand-roll this one: Settings, Support Portal carries a ready snippet per language, and the platform mints it for you when the account area runs on this server.

Lastkontrakten

Det er de påstande, verifikatorerne tjekker. Intet her er valgfrit, hvad et delvist eksempel ellers kunne antyde.

site_key

Top niveau. Skal svare til den lokalitetsnøgle for anmodningen, eller token er nægtet.

ex Kapitel 50

Top niveau, unix seconds. Exp skal være i fremtiden og efter iat. Et token mere end omkring et minut i fremtiden nægtes. Hold livet kort - minutter til timer.

bekræftet: true

Top niveau, ved siden af exp. Din platform påstand om, at et rigtigt menneske er logget ind.

platform

Top niveau. En kort snegl navngivning af oprindelsen. Anbefalet, og det lader en konnektor identitet udbyder fortælle sine egne tokens fra en anden platform s.

admin eller kunde

Et objekt navngivning emnet. Det skal bære en ikke-tom id, og et brugernavn eller en e-mail - per-admin adgang gate matcher dem. Inkluder både når du har begge.

Minting, ordret fra Botble broen
$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);

De to verifikatorer, og den fiasko de forårsager

OpsIQ har to token verifikatorer, og de var ikke identiske. At vide dette sparer dig en eftermiddag, fordi symptom ligner intet som årsagen.

Administratoren widget har sin egen verifikator

opsiq/embed/admin_ajax.php carries a local verifier that accepts the authenticated flag in either position. Conversation list, history and unread all go through it, so they authenticate fine.

Den delte verifikator er strengere

opsiq/includes/customer_identity_token_verify.php sits behind the chat stream and the core AJAX API. It historically required the flag at the TOP level.

Symptomet

Historie og samtaler virker. Hver chat tur svar "Admin login kræves". Det lyder præcis som en session fejl og er ikke: token mangler top-niveau flag.

Hvad nuværende kerne gør

Det accepterer nu flaget på øverste niveau ELLER inde i emnet, så kontrakten er ensartet. Ældre kerner læse kun det øverste niveau. Emit den kanoniske form og din pakke virker på hver udgivelse.

This is machine-checked now. Any file in your package that mints identity tokens is statically scanned against the contract, and a payload the platform would refuse fails conformance with the exact file and line. Run it yourself: php tools/verify_identity_contracts.php.

Signed- i kunder i klient chat

To ting skal være sandt. Core skal stemple den verificerede kunde, og din konnektor skal præsentere det.

1
Din bro eller endpoint mints en kunde token

Samme tegn som admin-en, med et kundeemne. Læs kunden fra platformens egen session. Hvis din platform signerer kunderne ind på en anden vagt end administratorer, så læs den vagt du ønsker og aldrig falde tilbage på tværs af emner - det er sådan en kunde ville blive udleveret en admin token.

2
Kernen kontrollerer og stempler det

På en gyldig token, kerne stempler den verificerede emne i sessionen. Din udbyder læser en dokumenteret identitet; det aldrig autentificerer.

3
Din IdentityProvider præsenterer det

detectCustomer () returnererOpsIQform. Det skal implementeresOpsIQ\ Platform\ IdentityProviderInterface, eller registreringsdatabasen lydløst springer det - den samme fælde som den kontekst udbyder.

4
Your customer-scoped actions accept a customer_id

Og OpsIQ låser det til den bekræftede identitet før udførelse. Modellen kan ikke levere det.

IdentityProvider. php - læs den dokumenterede identitet, præsentere det i OpsIQ 's 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;
    }
}

Brugerdefinerede handlinger: to låse, begge krævede

Modellen må aldrig vælge, hvis data den læser. OpsIQ håndhæver det på sin side, og din platform skal håndhæve det på den anden side også. En lås er en fejl væk fra en lækage; to låse er en kontrakt.

Lås1 — OpsIQoverskriver identitetsparametrene

Before a customer-chat action runs, OpsIQ replaces every identity-shaped parameter with the VERIFIED visitor identity: client_id, clientid, user_id, userid, customer_id, account_id take the verified numeric id; client_identifier, customer_identifier, account_identifier take it as a string; email, client_email, customer_email, user_email take the verified email. Whatever the model proposed is discarded.

Lås 2 - din platform re@-@ scope hver forespørgsel

Tag id du blev givet og tilføje det til den WHVOR klausul i hver læse og hver skrive på denne overflade. Aldrig stole på referencen i anmodningen på egen hånd. En signed-in kunde spørger om en andens ordre skal komme tilbage tom, ikke forbudt.

Nævn dine parametre, så lås 1 kan finde dem

Call it customer_id, not cust or ref. A parameter OpsIQ does not recognise is a parameter it cannot lock.

⚠️
Giv signed- i kundens overflade sin OWN operationer, adskilt fra admin dem, selv når SQL ligner. To overflader med forskellige regler forblive ærlige; en overflade med et flag bliver en lækage den dag nogen redigerer den forkerte gren.

Nulsidens ledningsføring: den sammenkoblingserklærede 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.

settings.json - sonden indstilling
{
  "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."
}
Sonden kaldes af browseren

Same-oprindelse, så det kan ikke bære en brugerdefineret header. Dens godkendelse er platformen session. Sæt den AHEAD af din bro-nøgle gate, holde det væk fra rekord data, og returnere intet overhovedet for en logged- out besøgende.

Det svarer på en fast form

{"success":true,"authenticated":true,"admin":{...},"identity_token":"..."} — and {"success":false,"authenticated":false,"error":"..."} when nobody is signed in.

Ingen længe levet hemmelighed i side kilde

Kun den signerede, der udløber.

Den fulde endpoint implementeringer for Laravel,WordPress, WHMCS, Symfoni og almindelig PHP, plus de hard- won Laravel specificis og fejlfinding ordre, er på admin widget side. De er den samme kode for en kunde emne: ændre vagt du læser og emnet nøgle du underskriver.

Connectorer

Udgivelse: redigering af mappen er ikke udgivelse

The most common way to lose an afternoon is to edit a connector under marketplace_connectors/, reinstall it, and find nothing changed. Installs do not read that folder. They pull a signed ZIP from the marketplace catalogue. Publishing is the sequence that puts your changes into that ZIP.

Hvorfor redigeringen ikke gjorde noget

marketplace_connectors/<slug>/ is the SOURCE

Der er intet, der kan indrettes.

Kataloget har et signeret ZIP

En installation downloads, at ZIP, kontrollerer signatur, og pakker det ud. Indtil du genopbygge ZIP 'en, hver installation holder få den gamle pakke.

Connector Builder udgiver et andet sted

It writes into /connectors/<slug>/ on this install. That is a local connector, not a marketplace release. The two paths do not overlap.

Udgivelsessekvensen

1
Bump versionen i TWO filer

settings.json and connector_contract.json. Conformance compares them and fails if the slug, the version or the capability set disagree. Add a CHANGELOG.md entry while you are there — it is a required file.

2
Gensynkroniser broen

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
Gensignér hver pakke

php tools/resign_all_connectors.php — the signature covers file hashes, so ANY edit invalidates it. Sign last, after every file is final.

4
Eksportér signeringsnøglen, derefter frø

Den søgende signerer hver pakke, da den bygger ZIP, og det kører i en sammenhæng, hvor nøglen ikke kan læses fra indstillinger - så det skal komme fra miljøet.

5
Omdeployér brofilen, hvis du sender en

Geninstallation af stikket opdaterer pakken. Det rører IKKE kopierne siddende i operatørens webroot. Fortæl dem, i panelet og i changelog.

Hele udgivelsen, i rækkefølge
# 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
⚠️
Why the export is not optional: the signer looks for the key in OPSIQ_CONNECTOR_SIGNING_KEY first and the connector_signing_key setting second. The seeder runs on the SaaS bootstrap and tools/sign_connector.php boots nothing at all, so in both the settings reader does not exist — with no environment variable there is no key, and you get "No signing key available" or every package reported as signing_failed. Only tools/resign_all_connectors.php boots OpsIQ and can find the key on its own.

Hvad der faktisk skibe

Kun filer signaturen dækker

ZIP er bygget fra signerens egen filliste, så en omstrejfende fil sidder i din pakkemappe ikke sendes. Det er bevidst: en usigneret fil bruges til at ride sammen med kunderne.

Overdækkede udvidelser

phpjson, js,css, md, txt,html, sh, svg, png, jpg, jpeg, gif, webp, ico, yml, yaml - rekursivt, herunder bro / og test /. signatur.jsonselv er udelukket fra hasherne og derefter tilføjet til ZIP, så installationer kan kontrollere.

Anything else is reported as not_packaged

Den søgende navngiver hver fil, den efterlod. Læs denne liste. En fil du forventede at sende vises der betyder en forkert udvidelse eller et forkert sted - ikke en stille succes.

Redigering af en overdækket fil bryder forseglingen

Inklusive en Markown- fil.

Krævede filer i en distribuerbar pakke

connector.php

Vi må returnere et tilfælde af ConnectorInterface.

settings.json

Manifest: slug, name, version, manifest_version, compatibility, capabilities, connector_contract_version, settings.

connector_contract.json

Maskinlæsbar kontrakt. Dens slug, version og kapacitet sæt skal være identiske med settings.json.

README. md, REDOPER. mD, CHANGELOG. mdConstellation name (optional)

Alle tre er kontrolleret for eksistens OG mindstestørrelse. ECOPER. md har brug for reelt indhold, ikke en stub.

En fil pr. erklæret kapacitet

Each capability names the file it expects — ContextProvider.php for context, IdentityProvider.php for identity, GuestLookupProvider.php for guest_lookup, and so on — unless the connector implements the capability inline.

Intet, der ligner en kreditværdighed

Overensstemmelse scanner de tre Markdown-filer for sekretariats- formede værdier og private nøgler, og mislykkes på et hit.

Tjek det, før du sender det

Den fulde overensstemmelse suite er den samme en installation kører. Det kontrollerer manifest mod kanoniske kontrakt, at runtime og manifestere kapaciteter enige, at hver erklæret kapacitet har sin fil og sine metoder, identitets- token kontrakt i hver minting fil, broch- snippet match, guest- lookup alloop allolist hygiejne, handling unikke og bekræftelse sikkerhed, og pakken signatur.

Kør alle fire før hver udgivelse
# 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
💡
En fejl forventes og er ikke et problem: pakkens signatur kontrol rapporterer en advarsel, mens du stadig redigerer. Det rydder det øjeblik, du re- sign. Hver anden fejl er en reel én.
Connectorer

Forbindelsespakke og referencekort for livscyklus

Dette er den kilde- niveau kontrakt for at opbygge en forbindelse, som OpsIQ kan opdage, konfigurere, validere, aktivere, udføre, teste, underskrive og distribuere.

Udvikler reference
ForbindelsespakkeEn konnektor pakke har en krævet connector implementering og manifest, med valgfri handlinger, opskrifter, viden, aktiver og underskrift metadata.ForbindelsespakkedeveloperMANIFESTv1LIFECYCLEHåndteretARBEJDSPLADSENScopetSYGDOM AF LIVE ARBEJDSPLADSERconnector.phpForbindelsesklasse / fabrikKrævetsettings.jsonManifest og indstillinger skemaKrævetactions.jsonAktionsdefinitionerValgfritsignature.jsonMetadata vedrørende pakkersignaturUdgivelse1DECLAREManifest og kapaciteter2IMPLEMENTLivscyklus og udbydere3VALIDATETest, skilt, pakke
En konnektor pakke har en krævet connector implementering og manifest, med valgfri handlinger, opskrifter, viden, aktiver og underskrift metadata.

Minimumspakke

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

Manifest kontrakt

settings.json bruger manifest version 1. The validator expects a slug, name, version, manifest_version, compatibility, description and capabilities. Compatibility declares opsiq_min og opsiq_max. Udgivelsesstatus er en af production, beta, forhåndsvisning eller template; kapacitet modenhed bruger niveau L1- L6. Legacy pakker kan normaliseres med advarsler, men en ny pakke bør passere uden advarsler.

Hovedstik-grænseflade

  • Identitet og opsætning: slug(), name(), description(), capabilities(), settingsSchema(), testConnection().
  • Livscyklus: onEnable() og onDisable(). Deaktiver skal være ikke-destruktiv; data udrensning er en separat bevidst operation.
  • Indgående / synkronisering: handleWebhook(), poll(), backfill(). Poll håndterer trinvis arbejde; backfill import historie og skal være sikker at gentage.
  • Støtte: pushReply() hvor platformen accepterer svar.
  • Handlinger: registerActions() kontrakter om udførelse af leverancer.
  • Sikkerhed: securityCapabilities(), syncBlockedIp(), removeBlockedIp(), testSecuritySync().

Den abstrakte base tilbyder også valgfri chunked backfill, kundeliste, email- konto opdagelse / skabelse, abonnenter, admin / kunde detektion, fakturering / kontekst / identitet udbydere, svar udvinding, genprøve HTTP-opkald, JSON-sti adgang, fuzzy ranking og pagination hjælpere.

Kapacitet og autentificering

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.

Registreringslifecycle

  1. Opdagelsen indlæser pakken og validerer dens manifest.
  2. Konfiguration gemmes pr. arbejdsområde; hemmeligheder krypteres.
  3. Forbindelsestest beviser legitimation uden at aktivere stikket.
  4. Aktivér opkald onEnable(), synkroniserer handlingsdefinitioner og kan starte den første efterfyldning.
  5. Udførelse af polling / webhook / abonnent medfører altid arbejdsrumskontekstforhold.
  6. Deaktivér opkald onDisable() og stopper aktiviteten uden at slette importerede data.
  7. Udrensning er en separat eksplicit operation.

Regler for korrekthed

  • Brug arbejdsområde / site-tasten i hver læse, skrive, cache nøgle, deduplikering nøgle og webhook opslag.
  • Lav backfill, web hook indtagelse og skrive handlinger idempotent. Optag en ekstern ID / begivenhed-id, hvor platformen giver én.
  • For fjernsystemer, bruge deres API; aldrig antage, at deres databasetabeller findes i OpsIQ forbindelse.
  • Returnér strukturerede, bruger- sikre fejl. Aldrig afsløre hemmeligheder, rå udbyder spor eller en anden arbejdsplads eksistens.
  • Declare kun kapaciteter pakken faktisk implementerer. actions.json kataloget gør ikke en handling brugbar, før stikket er installeret, aktiveret, konfigureret og dets forbindelse er gyldig.

Test og frigivelse

Kør PHP-flint, manifest validering, forbindelsestest, handlingsskema test, webhook signatur / replay tests, arbejdsrum- isolation test, backfill-gentest tests, desabled- connector tests og svigt / forsøg prøver. En markedsplads pakke skal derefter underskrives og verificeres, omfatte opsætning / tilladelser / webhook- dokumentation, og angive sin sande udgivelsesstatus. Forbindelsesflise og manifestere er det autoritative tilgængelighedssignal.

Connectorer

Koblingsopskrifter

Step-by-step opskrifter til fælles stik opsætninger.

Opskrifter
ForbindelsesopskriftEn Shopify opsætning opskrift som en checkliste: oprette app, give scope, indsætte token og test, aktivere webkroge, placere en testordre.ForbindelsesopskriftShopifyOpskrift · Shopify med netkrogeOpret en brugerdefineret app i Shopify adminGrant scopes: read_orders, read_customers…Indsæt butiksdomæne + token, klik på TestAktivér Webhook sync (bestillinger autoregister)Placer en testordre → vises i Salg i 30s1STEP BY STEPKopi- pastaopskrifter2REAL PLATFORMSShopify · WHMCS · Stripe· GBP3VERIFYTest ordre viser i 30s
Hver opskrift er en checkliste du følger top til bund, her Shopify med real- time orden webkrogs, verificeret ved en testordre.

Opskrift: Shopify med real- time webkroge

Scenarie:
Goal: Connect Shopify with automatic order sync and GDPR compliance.
Hvad skal man gøre:

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.

Opskrift: WHMCS integration

Scenarie:
Goal: Connect WHMCS so AI can look up clients, services, tickets, and invoices.
Hvad skal man gøre:

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.

Opskrift: Stripe betalinger

Scenarie:
Goal: Track Stripe payments and let AI look up transactions.
Hvad skal man gøre:

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.

Opskrift: Google Business Profile

Scenarie:
Goal: Connect GBP for review management, posts, and insights.
Hvad skal man gøre:

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.

Connectorer

Udvid CRM & Site Intelligence

OpsIQ undersystemer er åbne for udvidelse. En konnektor kan tilslutte en ny kapacitet til CRM eller Site Intelligence uden ændringer i OpsIQ kerne, via platformen kapacitet register (\OpsIQ\ Platform\ KapabilityRegistry). Declare kapaciteten, gennemføre sin lille metode sæt, sende stikket,OpsIQ opdager det og wire det ind i UI, Kunden 360 tidslinje og installationsvejledningen.

Udvid CRM & SI
Platformens kapaciteterEt stik på venstre fodringsbus (CRM, Site Intelligence, Analytics) opdaget af KapabilityRegistry.Platformens kapaciteterarbejdsområdeDin konnektorerklærer kapaciteterCRMKalender · berigelse · esignation · betalinger · postkasseEfterretningstjenestelocal_listing · rank_dataAnalyseweb_analytics · report & ingestKapacitetsregisteropdager det & ledninger UI + tidslinjen1DECLAREKapacitet, ikke kerneedits2PLUG INCRM · SI · Analytics busser3AUTO-WIREDUI, tidslinje, prompts
En konnektor erklærer kapaciteter (kalender, berigelse, rangsedata, analytics...) og OpsIQ automatisk ledninger dem ind CRM og site Intelligence, ingen kernekombinationer.

Declare kapaciteter

Erklæring.json

Tilføj en <domain>_capabilities array, bedst til no- code / marketingstik. Domæner: crm, site_intelligence.

I kode (connector. php)

Gennemførelse crmCapabilities() / siCapabilities() at sende de samme deskriptorer tilbage.

Erklæring af en CRM-kalenderudbyder (settings.json)

Scenarie:
Goal: make a calendar connector appear in the CRM Schedule-meeting panel.
Hvad skal man gøre:

"crm_capabilities": [ { "type": "calendar", "label": "Calendar (Acme)", "actions": ["createEvent","listEvents","freeBusy"], "requires_auth": true } ]

Erklæring af en udbyder af Site Intelligence (settings.json)

Scenarie:
Goal: feed local-listing data into Site Intelligence.
Hvad skal man gøre:

"site_intelligence_capabilities": [ { "type": "local_listing", "actions": ["listLocations","listReviews","getInsights"], "requires_auth": true } ]

Kapacitetsbusser og deres metodeflade

crm / kalender

createEvent($settings,$params) → {success,event_id,html_link,meet_link}; listEvents; freeBusy. Drevet af\OpsIQ\ CRM\ CalendarBridge.

crm / berigelse

enrich($settings,$params) → {succes, træk}. Drevet af\OpsIQ\ CRM\ EnrichmentBridge (kører også automatisk på virksomhedens oprettelse, når en udbyder er tilsluttet).

CRM / eSign

sendForSignature($settings,$params) → {success,envelope_id,sign_url}. Driven by \OpsIQ\CRM\EsignBridge.

site_intelligence / local_listing

listLocations, listReviews, getInsights. Skibe via Google Business Profile-stikket.

site_intelligence / rank_data

keywordRanks($settings,$params) → {succes, ranges}. Drevet af\OpsIQ\ SiteIntelligence\ RankDataBridge. Skibe: SerpApi stik.

analytics / web_analytics

report($settings,$params) (sync / export) + ingest($settings,$events) (import).OpsIQ\ Analytics\ WebAnalyticsBridge. Skibe: Google Analytics (GA4) stik. Data API for rapporter, Måleprotokol til import. Analytics er åben for stik som CRM + Site Intelligence (domæne) analytics / analytics_capabilities).

payments / payment_provider

listPayments, customerPayments, createPaymentLink. Drevet af\OpsIQ\ Betalinger\ PaymentsBridge. Vis en kundes betalinger på CRM tidslinjen + sende et betalingslink på en aftale. Skibe: Stripe Payments connector. Domæne payments / payments_capabilities.

mailbox / email_sync

listMessages + sendMessage. Drevet af\OpsIQ\ Mailbox\ MaileboxBridge. En kundes e-mails på Kunden 360 tidslinje + sende e-mail fra en aftale. Skibe: Gmail + Outlook / Microsoft 365 konnektorer. mailbox / mailbox_capabilities.

Delt OAuth app + ONE omdiriger

Alle Google-konnektorer deler en app via\OpsIQ\OAuth\ SharedGoogleApp. Sæt google_oauth_client_id/_secret når og Kalender, Analytics, Business Profile + Gmail alle arbejde (per- connector "(valgfri)" felter er override). De deler også en omdirigering URI, <site>/connectors.php?oauth=callback (ingen per- connector slug), fordi Google udsætter API at tilføje omdirigere URI 'er til en app OpsIQ genopretter stikket fra den signerede OAuth state nonce. Registrer at enkelt URI én gang og hver Google-stik (nuværende + fremtid) autoriserer uden yderligere konsolopsætning. SharedGoogleApp::resolve(...)'s redirect_uri fra din oauthParams(); aldrig hard- kode en per- slug omdirigere. Microsoft-konnektorer gøre det samme via\OpsIQ\OAuth\ SharedMicrosoftApp (microsoft_oauth_*).

Importknapper er kapabilitet- gated

Den Importér (historisk efterfyldning) og Importér kunder knapper viser KUN for stik, der faktisk implementere dem, detekteret ved refleksion, så der er ingen flag at erklære. backfill() eller backfillChunk() at tjene Import- knappen; tilsidesætter listCustomers() (returnerer {email, fornavn,...} sider) for at tjene Import kunder. AbstractConnector no- op og knappen forbliver skjult, så UI aldrig tilbyder en import en stik kan ikke udføre.

AI på tværs af busser

CRM agent foreslår og booker møder off deal signaler (\OpsIQ\ CRM\ MeetingProposer → CalendarBridge), og auto- beriger nye konti, "AI driver CRM" loop, udføres på tværs af stik busser.

Client- chat billet opslag (fetchTicket())

To-tier, ingen kernetegn

Når en besøgende henviser til et billetnummer i klientchatten ("hvad er status for T-000123?"), OpsIQ løser det i to lag. Niveau 1 læser den delte OpsIQ billet butik, hver stik med inbound_ticket Spejler sine billetter der, så synkroniseret billetter bare arbejde for ALL stik med nul-per- connector kode. Niveau 2 er en live fallback for OLD billetter, der aldrig blev afspejlet: kernen kalder en VALGTE fetchTicket() på hver aktiveret stik, der implementerer den. duck-typed (opdaget af method_exists()- som contextProviders()/audienceCatalog()), så den underskrevne ConnectorInterface er uberørt og stik, der ikke har brug for det (e-mail / chat kilder, der skaber billetter indbygget) simpelthen udelade det.

⚠️
Ejerskab er obligatorisk og din at håndhæve. fetchTicket() modtager den verificerede besøgendes identitet i $ctx (client_id + client_email, den samme verificerede identitet klienten chat AI bruger). Løs platform kunde fra denne identitet og forespørgsel KUN at kundens billetter, derefter re-kontrollere ejerskab på detaljer rekord. null på enhver miss, mismatch, eller fejl, aldrig en anden kundes data. null Det er en skam, at jeg ikke kunne finde den billet.
connector. php, the fetchTicket () contract (reference: connections /whmcs and connects / 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
    }
}

Hvordan platformen bruger det

Opdagelse

CapabilityRegistry::providers($domain,$type) lister udbydere med installeret / aktiveret / klar status (filsystem-baseret; DB kun for det aktiverede flag).

Valg

CapabilityRegistry::active($domain,$type) giver den første klar udbyder med sin indlæst stik og indstillinger. Bridges kalder dette i stedet for hardcoding snegle.

Notify- to- install

Hvor en funktion har brug for en evne, der ikke er forbundet endnu, UI viser et enkelt klik Connect / Installer prompt, aldrig en død kontrol.

Fuld guide

Se connectors/PLATFORM_CONNECTORS.md (CRM + Site Intelligence) og connectors/CRM_CONNECTORS.md i pakken.

Connectorer

Kundeservice opslag og refunderinger (bygge din forbindelse til kundechat)

Signed- i kunderne kan spørge kunden chat AI om deres OWN konto ("min balance", "mine ordrer", har support besvare min billet ") og hvis virksomheden gør det muligt, anmode om refusion. Alt af det er drevet af DIN-stik erklæringer: ingen OpsIQ kernekontroller, ingen platform hardcodning. AI kalder dine lookups som indfødte værktøjer (det kan ikke opfinde en), identitet er låst serverside til den verificerede kunde, og resultater automatisk trimmes for AI.

Declare en kunde opslag

I Deres actions.json, en read- only handling bliver customer- callable med ALL tre: "scope":"client", "requires_confirmation":false, "is_destructive":false. Brug "scope":"both" når den samme opslag bør også være kallig af dit team i Admin AI. Det fulde ordforråd er admin, client, both og system (system når hverken AI - API og kun webhook ruter). writing scope - Skrivende assistent er serveret den admin handling.

Identitetsreglen (obligatorisk)

Navn din identitet parameter fra standardsættet. Låst til den verificerede numeriske id: client_id, clientid, customer_id, user_id, userid, account_id. Låst fast til det id som en streng: client_identifier, customer_identifier, account_identifier. Låst til den verificerede e-mail: email, client_email, customer_email, user_email. OpsIQ låser og auto- fylder det fra platform- verificeret signed- i kunden; AI aldrig ser eller vælger identitet. Et ikke-standard navn mislykkes lukket (nægtet, aldrig lækket).

Hvad skal forblive admin- only

Alt, der ikke er opdaget af den identitet: Fokch-by-bare- id (order_id/ticket_id alene), storewide lister, free-text søgninger. "scope":"admin".

Resultatformning (svarnøgler)

Løkkeresultater er strukturelt trimmet, før de når AI: Secretary-formede nøgler er tabt, lange strenge og lister er begrænset, blanke felter er beskåret, og et fladt kort bredere end tasten holder sin Svar- bærende nøgler først, penge (credit, balance, amount, total, due, paid), identitet (email, *name, phone, company), stat (status, active, expir*, renew*), datoer, plan / produkt / domæne / service / abonnement / ordre / faktura / billet felter, valuta, tællinger og stats/summary/totals, før nogen resterende pladser gå til andre nøgler smallest- value-først. Praktisk vejledning: navngiv dine felter med det standard ordforråd og returnere de felter, der besvarer kundens spørgsmål i stedet for en rå 100 -key platform dump; et felt opkaldt uden for ordforrådet konkurrerer om venstre sæder og kan trimmes fra meget brede nyttelaster.

Refusion · hvad din konnektor giver

To råoperationer, politisk frie: (1) en betalings- verificering læst filtrerbar efter identitet OG en transaktion reference (din API skal OG filtre), f.eks. whmcs_get_transactions; (2) en refundering udføre handling (scope:"admin", requires_confirmation:true, is_destructive:true, aldrig customer-exposed), fx whmcs_refund_order. Virksomheden vælger begge nøgler i Indstillinger → Client Chat; OpsIQ re- verificerer betalingen server- side, anvender virksomhedens politik boks (beløb cap, alder vindue, månedlige grænse), spørgsmål inde i boksen, og filer en gennemgangstast for alt andet.

Ingen kodebygger

Connector Builder action editor har de samme kontroller: sæt "Hvem kan bruge det" til Signed- i kunder, lad både skrive afkrydsningsfelter fra, og brug en standard identitet parameter navn.

Referenceferencegennemførelser

Indgangene "Kundeself-service" i connectors/whmcs/actions.json, woocommerce/actions.json, oscommerce/actions.json; fuld kontrakt i connectors/README.md §8.1–8.2 og ConnectorInterface::registerActions().

Connectorer

Guest lookups — let visitors track a booking, shipment or order WITHOUT signing in (guest_lookup)

Hoteller, kurerer og mange handelsplatforme betjener kunder, der har en reference, men ingen login: en gæst med en booking bekræftelse, en modtager med et tracking nummer. guest_lookup kapacitet (Connector Contract, mode: genereret) lader DIN-stik tjene disse besøgende i klienten chat AI - nejOpsIQkernemodsætninger, ingen hardkodning af platformen. Din konnektor erklærer, hvad der beviser ret, og hvilke felter der er synlige;OpsIQhåndhæver kontakten, speederen og uniformen benægtelse.

Tilskudsmodellen

Reference + bevis, aldrig identitet

Besøgende leverer record reference (matches af regex du erklærer) plus det bevis, du vælger - normalt e-mail på pladen. Din hente handling henter rekord SERVER- SIDE ved henvisning; OpsIQ 's genererede udbyder sammenligner beviset mod FETCHED rekord. Den besøgendes input er aldrig tillid, og ingen verificeret identitet er skabt: match berettiger den besøgende til at en plade er tilladt felter, intet andet.

Ensartet benægtelse (ingen optælling orakel)

Not- fundne og bevis-mismatch producere en identisk svar. AI er udtrykkeligt instrueret om aldrig at bekræfte, om en reference findes og aldrig at opfinde record detaljer. Forsøg er rate- begrænset per samtale + IP af kernen før din forbindelse nogensinde bliver hørt.

Dobbelt opt- in, begge standard OFF

Intet servicerer gæster, før virksomheden giver mulighed for BOTH-kontakter: den arbejdsrum- brede kontrol i Indstillinger→Sikkerhed→"Guest record opslag i klient chat" (permission- gated AND always password- bekræftet, selv når valgfri step-up er slukket), og din konnektor egen guest_lookup_enabled indstillinger skifte. Installation eller aktivering af en stik alene åbner aldrig gæstens overflade.

Den dedikerede gæsteflade

Den genererede udbyder registrerer på guest kontekstoverflade - strukturelt adskilt fra admin og customer. Eksisterende kontekst udbydere bliver aldrig hørt for anonyme besøgende, og gæstelæreren bliver aldrig konsulteret for signed-in dem. Den ctx det modtager bærer chatbeskeden, tråd id og den besøgendes hævdede (uverificerbare) pre-chat e-mail som bevis kandidat - ingen identitetsområder.

Erklæringen i bygherren

1
Definér hentningshandlingen

På Handlinger trin, tilføje en read- only handling, der returnerer One record ved sin reference (fx GET /bookings/{booking_number}) and map its response fields with aliases: status, arrival, departure, room_type, customer_email…

2
Tik "Gæsteopslag"

På kapacitetstrin, aktivere guest_lookup. Et dedikeret panel vises: Vælg hentning handling, navngiv referenceparameteren, give referencemønsteret (en regex organ såsom \bBK-[0-9]{4,10}\b), navngiv record ("booking"), og vælg bevis - e-mail på record-( anbefales) eller ingen (reference alene, for status- kun kurer tracking).

3
Andel liste over synlige felter

Tik præcis de felter en gæst kan se. Alt andet er DROPPIED - aldrig redigeret. Byggeren nægter PII- formede felter (e-mail, telefon, adresse, betaling...) i allolist, og Release-gate overensstemmelse suite re- kontrollerer den samme regel før udgive, så en hånd- redigeret spec ikke snige en ind. Bemærk, at install- tid validering dækker manifestet og underskrift kun, så køre conformance suiten selv før du skibet. Bevisfeltet selv kan aldrig vises.

4
Udgiv og aktivér

Bygherren udsender GuestLookupProvider.php - den kanoniske hærdede implementering, identisk for hver genereret pakke - og tilføjer guest_lookup_enabled skifte til din konnektor indstillinger. Virksomheden arme de to kontakter og chat AI begynder at tilbyde opslag, når en besøgende spørger om din record type.

Kontraktregler

Kun statusformede felter

Tænk "hvad ville en kurer print på den offentlige tracking side": status, datoer, værelse eller service kategori, tæller. Navne, kontaktoplysninger, gadeadresser, betalingsdata og free-tekst noter har ingen plads i en anonym chat - Builder og overensstemmelse både afvise dem.

AI svarer KUN fra blokken

Den genererede udbyder afslutter sin produktion med en instruktion om kun at svare fra de anførte felter og tilbyde en billet til noget andet. Detaljer ikke i tillowlist er "ikke tilgængelig i chat" - af design.

Follow- ups holder arbejde

Leverandøren re- stammer fra den besøgendes seneste meddelelser i samme samtale, så "og hvornår er check-out?" virker uden at skrive igen. Den matchede reference og bevis e-mail huskes på chatten tråd som CANDIDATES, så følgedup ikke re- spørge. De er kun kandidater: hver tur stadig re-henter rekord serverside og re-sammenligner beviset før frigive et enkelt felt.

Håndforfattet emballage

En markedsplads pakke kan sende sine egne GuestLookupProvider.php implementing ContextProviderInterface med surfaces(): ['guest']. Følg den genererede skabelons kontrakt nøjagtigt - hent ved reference, bevis-match serverside, ensartet benægtelse, allolist- only output - og erklære guest_lookup in capabilities. Overensstemmelse kontrollerer gæstens overflade og scanner tillowlist for PII.

💡
Gæsteopslag er read- only kontekst for chat AI. De aldrig udføre handlinger, aldrig oprette identiteter, og aldrig låse kunden selvservicering handling sti over - at stien stadig kræver en platform- verificeret signed- i kunden.
Connectorer

Promotion audience targeting (promo_audience)

Lad Promotion Studio målkampagner ved LIVE klient og fakturering stat fra din platform: "har en ubetalt faktura", "ordre venter", abonnement annulleret. "Enhver forbindelse (pre- installeret, markedsplads, eller én du bygger dig selv) slutter sig til ved at gennemføre to små metoder. Ingen OpsIQ kerne ændringer, ingen platform hardcodning: din konnektor vises som en platform i studiet Målsætning fanen med sin egen dropdown af fakta, og flere stik kan aktiveres side om side.

Formater publikum
Fremme målretning af publikumEn bekræftet identitet blev videregivet til et auditFlags, der udleverer fakta, som driver en målretning med en fejllukket note.Fremme målretning af publikumarbejdsområdeLogged- inverificeret identitetaudienceFlags ()din konnektorSAGSFREMSTILLINGunpaid_invoices = 2REGLERunpaid_invoices ≥ 1KampagneshowsFejler lukket: ukendt klient eller nogen fejl → kampagnen forbliver skjult.1TWO METHODSaudiencesCatalog + flag2LIVE STATEUbetalte, verserende, status3FAIL-SAFEViser aldrig til forkert person
Din konnektor besvarer live fakturering fakta for logged- i besøgende; studiet mål på dem, og undlader at lukke, så en fakturering tilbud aldrig når den forkerte person.

Sådan virker det

1
Afslør dine fakta

Implementér audienceCatalog () på din konnektor klasse. Det returnerer en etiket og listen over nøgler din platform kan svare. Hver nøgle vises i studiet dropdown under dit platformnavn.

2
Svar for en klient

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
Færdig

Enable the connector. The Promotion Studio Targeting tab grows a "Client & billing" section listing your platform; admins build rules like "unpaid_invoices >= 1"; every fact also becomes a personalization variable such as {unpaid_invoices}.

connector.php, the complete promo_audience contract
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'],
    ];
}

Kontraktregler

Annoncer kapaciteten

Tilføj 'promo_audience' til din konnektor capabilities() array så platformen og markedsplads liste det som audience- able (opdagelse virker også fra metode tilstedeværelse, men erklærer det er den rene signal). connectors/whmcs connector er den fulde referencefejl.

Nøglenavngivning

Lowercase snake_case, 2-60 chars, matching ^[a-z0-9_]+$. Types: number, text, bool. Undeclared keys returned by audienceFlags() are still usable in rules, but declare everything you support so admins can see it.

Identitet verificeres

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.

Falske lukning af altid

På enhver fejl (API ned, klient ikke fundet, timeout) tilbagevenden []. En regel, hvis faktum mangler gør kampagnen IKKE vise. En billing- målrettet popup må aldrig nå den forkerte person; OpsIQ håndhæver dette også i reglen matcher.

Resultater

audienceFlags () kaldes højst én gang pr. stik per side visning, og KUN når en offentliggjort kampagne faktisk bruger din platforms regler. Anonyme besøgende koster dig nul opkald. Hold det til 1-2 API opkald OpsIQ Hukommelser i anmodningen.

Erhvervsdrivende, der er omfattet af gratis

Indgives kombinere dine nøgler med =,! =, >, > =, <, < =, indeholder, er indstillet, er tom, du kun leverer værdier.

Personaliseringstockens

Hver kendsgerning fordobler som en variabel i kampagne kopi: {unpaid_invoices}, {client_status}, plus bygget- ins {first_name} og {client_email}. Værdier er renset før rendering.

Ingen-kode markedsplads stik

Automatisk kendsgerning

Declarative (JSON-only) marketplace connectors get promo_audience for FREE: if your connector declares customers/users, invoices, orders or subscriptions resources, OpsIQ derives customer_status, unpaid_invoices, amount_due, pending_orders, active_subscriptions and subscription_status from your existing search actions. No code at all.

Brugerdefineret katalog (settings.json)

Add an audience_capabilities object · {"label": "My Platform", "keys": [{"key": "open_carts", "label": "Open carts", "type": "number"}]}, to control exactly which facts (and labels) appear in the studio dropdown.

Test din udbyder

1
Aktivér stikket

Forbindere > din konnektor > Aktivér. Åbn derefter enhver kampagne målings fane. Din platform skal vises under "Klient & fakturering (connects)".

2
Opbygge en regel

Tilføj: Din platform · en nøgle · > = · 1 og sæt "Logged- in klienter". Gem og udgiv.

3
Verificer begge retninger

Log ind på din platform som en klient, der matcher reglen (popup skal vise) og som en, der ikke (popop skal forblive skjult). Logged- out besøgende aldrig matche logged-i regler.

Affyr en kampagne fra din egen kode (brugerdefineret udløser)

Hvorfor?

Ud over build- in udløser (forsinkelse, rulning, exit- intention, tomgang, klik, side- set, chat / billet aktivitet), kan du affyre en kampagne fra hvor som helst i dit websted eller stik front- end, efter et vellykket checkout trin, når en vogn er opgivet, når din SPA skifter rute osv.

Hvordan

Sæt kampagnens udløser til Brugerdefineret med et begivenhedsnavn (f. eks. checkout_failed), og derefter ringe til den globale krog fra din side:

dit websted / 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');
💡
At starte en begivenhed aldrig forbigår målretning eller frekvens. Det kun frigiver "når". Kampagnen stadig nødt til at passere hver regel (geo, publikum, samtykke, hætter) før det viser.
Den fulde How- to- use guide (design, blokke, analytics, A / B, udgivelse) bor i in-app Hjælp Center under Angrib → Promotion Studio. The capability here is discovered automatically from any ENABLED connector in connectors/ or marketplace_connectors/. There is nothing to register. Ship the two methods, and the studio does the rest.
Connectorer

Survey connector cooperative (Contract 2.2)

Den survey kapacitet lader enhver platform levere verificerede kunde identitet adaptere, publikum fakta, sikre variabler og modtager kandidater til Survey Studio. Det er uafhængigt af promo_audience og giver ikke en forbindelse ejerskab af undersøgelser, svar, analytics eller e-mail levering.

💡
Implementeringsstatus. Authoring er komplet og brugbar i dag: Connector Contract 2.2, SurveyConnectorInterface, det dedikerede Builder panel, genereret SurveyProvider.php, pakke metadata og overensstemmelse isolation hele skibet. Forbruget er endnu ikke kappet: SurveyConnectorRegistry er implementeret og testet, men ingen Survey runtime kalder det endnu, så udbyder sundhed ikke er dukket op i admin UI og ingen offentliggjort konnektor pakke erklærer evnen. Signed- token Survey Identity Gateway udstedelse, målretning og variabel integration, CRM Outreach materialisering og den første afsendt leverandør tilknytninger forbliver separate faser. Byg mod denne kontrakt nu; forventer, at runtime til at begynde at forbruge det i en senere udgave.

Udbyderansvar

Publikumskatalog og fakta

Declare typed canonical facts and resolve values only for a server-verified, workspace-bound subject. Typical facts include order_count, last_order_status, cancelled_order_count, customer_created_at, active_subscription_count, past_due_invoice_count and open_ticket_count.

Variabel katalog og værdier

Deklarér kunde, konto, ordre, abonnement og support variabler med type, følsomhed og tilladt kontekst. Undersøgelse kopi kræver fallbacks og output- konteksteseabout.

Modtager personsøgning

Muligvis optælle kandidater til CRM Outreach med stabile eksterne id 'er, afgrænset sider, deterministiske markører og consenent- relaterede metadata. Undersøgelse fryser den valgte publikum før nogen send.

Identitet

Accepter identitet kun fra Survey Identity Gateway efter token signatur, udløb, formål, stik og arbejdsområde verifikation. Browser- leveret e-mail, ID, tags eller fakturering fakta er aldrig autoritative.

Løbetid sundhed

SurveyConnectorRegistry er designet til at rapportere kompatible, blokerede og utilgængelige udbydere uden at udsætte indstillinger, stier, rå identiteter eller undtagelsesmeddelelser, og en blokeret udbyder kan aldrig påberåbes. Rapporteringsoverfladen er endnu ikke udsat i admin UI: i dag en blokeret leverandør er simpelthen inert.

Ikke-afsluttede regler

Udeklarerede nøgler, forkerte typer, overdimensionerede værdier, emne mismatch, konnektor timeouts og ukendte identiteter afvises. En målretning regel, der har brug for en utilgængelig kendsgerning ikke matcher. Modtager sider er begrænset og revideret. Følsomme værdier aldrig vises i offentlig preview eller logs.

Builder frigivelse gate

Kontrakt 2.2 skibe kapacitet registreringsdatabasen indgang, interface, Survey kortlægning panel, genereret SurveyProvider.php, kapacitet version, README / udvikler reference og overensstemmelse inventar. Handel, helpdesk, SaaS bro og lokale PHP profiler omfatter det; Standard API -konnektorer opt i. Den statiske gate afviser en Survey udbyder, der kalder en Promotion navnerum, tabel eller evne.

💡
Kopi fra Promotion er import- kun: Builder kan oversætte kompatible Promotions tilknytninger én gang, gemme en komplet Survey-ejede kopi og optage herkomst. Sletning eller ændring af Promotionsmapping må ikke ændre Survey adfærd.
Connectorer

Respons feedback kapacitet (Kontrakt 2.2)

Den reply_feedback kapacitet afspejler en platforms egne per- svar ratings i OpsIQ. En stjerne en kunde giver et svar på personalet inde WHMCS's klient område lander på Same svar i OpsIQ admin tråd, med samme chip, agent kredit, Feedback side indgang og Team & Performance beregning som en rating givet på en OpsIQ portal billet. One storage, one chip, one pipeline; stikket kun oversætter.

Den ene skrivesti

Der er præcis to indgangsveje og en sandhed. OpsIQ portal billetter skrive nationally. Platform billetter flyder gennem stikket, og kernen lander hver begivenhed via ReplyFeedback::recordMirrored(): de samme kolonner, personale-kun regel, one-rating- per-svar latest-vinder semantik, arbejdsrums stempel og stemme af Kunden indeksering portalen skrive bruger. En stik aldrig skriver feedback rækker selv.

Konformering (fire filer, derefter gen- tegn)

1
connector_contract.json

Add the capabilities.reply_feedback entry: version 1.0, the ReplyFeedbackConnectorInterface, methods replyFeedbackCatalog and pullReplyFeedback, implies inbound_ticket.

2
settings.json

Add reply_feedback to the capabilities list. This is what connector discovery reads.

3
spec.json

Declare reply_feedback.modes (poll and/or webhook) and the platform's rating scale. This is what the conformance gate reads.

4
Løbetidsklasse

Implement the interface, list reply_feedback in capabilities(), then re-sign the package.

Udbyderansvar

Katalog

Declare modes, platformens egen rating skala (kerne normaliserer sig til den indfødte 1-5), og enhver reaktion tokens. Kataloget skal være enig med spec.json.

Træk oversættelse

pullReplyFeedback returns canonical events: platform ticket id, platform reply id, rating, optional reaction/comment, submitted time and a stable event_id. It reads and translates. It never writes.

Idempotens

event_id is stable per feedback STATE, so a replayed event is a no-op and a changed rating overwrites (latest wins, like the portal).

Markørdisciplin

Sider er afgrænset og deterministiske; en markør, der ikke forhånd slutter løbet. Historisk backfill afløb som et rullende vindue, aldrig én kæmpe træk.

Probe sikkerhed

Med ingen konfiguration, returnerer du en tom komplet side i stedet for at kaste. Overensstemmelsesrunner sonder med tomme argumenter.

Fejl - lukket opløsning

Core løser hver begivenhed til et lokalt svar ved spejlet markør billetten spejl allerede stempler (<slug>:<ticket>:reply:<reply>). En begivenhed, der ikke kan løses, er droppet, aldrig gættet; feedback kun tillægger personalet svar; og agent kredit altid kommer fra svaret 's eksisterende forfatter. Ratingskriften aldrig ændrer forfatterskab. inbound_ticket eller ticket_mirror.

Arbejdede eksempel: WHMCS

WHMCS gemmer klient- område per-svar stjerne bedømmelser i tblticketreplies.rating. WHMCS connector erklærer poll mode med en 1-5 skibe a ticket_reply_ratings relæ kommando i sin bro fil, og oversætter hver række til en begivenhed, hvis ids matcher whmcs:<ticket>:reply:<reply> markerer allerede sine billettegret stempler. Efter opgradering af stikket, genkopieres brofilen til WHMCS serveren, så den nye kommando eksisterer der.

💡
Fuld udviklerkontrakt med grænsefladen, begivenhedsformer, normaliseringsregler og kontrollisten for overensstemmelse: doc/contracts/TICKET_REPLY_FEEDBACK_CAPABILITY.md i OpsIQ pakke. Accept: sats et svar inde i platformen, vente på timeløn meningsmåling, og det samme svar i OpsIQ viser chippen, Feedback side lister det, og en genspillet begivenhed ændrer intet.
Connectorer

Forbindelsesmarked

Marketplace kan du opdage, installere og udgive konnektorer bygget af fællesskabet.

Markedssted
ForbindelsesmarkedEt søgbart gitter af community connector kort med kategorier, installere knapper og stjerne ratings.ForbindelsesmarkedarbejdsområdeSøg efter konnektorer...KalendlyCity in GermanySkemalægningInstaller★ 4.8HubSpotCRMInstaller★ 4.6mailchimpertorico. kgmE- mailInstaller★ 4.7QuickBooksRegnskabsføringInstaller★ 4.5TwilioCity in New York USASMSInstaller★ 4.9NoteringDokumenterInstaller★ 4.41DISCOVEREU-konnektorer2INSTALLEt klik3PUBLISHSignér og send dit
Gennemse community-konnektorer, installere i et klik, eller underskrive og offentliggøre dine egne, pre- installeret og markedsplads tiers både søgbar.

Finde og installere stik

1
Gennemse

Gå til Connectors > Marketplace. Søg efter navn, kategori eller platform.

2
Revision

Tjek beskrivelsen, støttede handlinger og vurderinger.

3
Installer

Click Install. The connector package downloads and installs to marketplace_connectors/.

4
Indstil

Aktivér det i Connectors, indtast API legitimationsoplysninger og test.

Udgivelse af en konnektor

1
Byg og test

Brug Connector Builder. Verificer alle handlinger arbejde.

2
Pakning

Generér profil.json, handlinger.json, viden.json og PHP-filer.

3
Signér

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
Indsend

Upload gennem markedet indsendelse flow til gennemgang.

To stikled

connects / - hvad der rent faktisk kører

Runtime opdagelse root. Alt her er live: de stik, der skib med OpsIQ, alt installeret fra markedspladsen, og alt det Connector Builder udgiver på denne installation.

marketplace_connectors/ — where packages are authored

Forlaget KILDE for first-party markedsplads pakker. Det er ikke en opdagelse rod: intet her er live, indtil det er pakket, underskrevet, indsået i kataloget og installeret, hvor en kopi lander i stik /.

💡
Look in both places. A package you authored under marketplace_connectors/ is not the copy that runs — installing copies it into connectors/, and only that copy is discovered at runtime. Stripe, BigCommerce, Magento 2, PrestaShop, OpenCart, Amazon SES, Postmark and Resend are all marketplace packages: install one before expecting to find it in Connectors.
Udvikler

API og webhook builder

EU API og Webhook Builder lader dig oprette brugerdefinerede API Endepunkter og webhook lyttere indeni OpsIQ uden at skrive rå PHP.

API -bygmester
API og webhook builderEn bygherre vælger en udløsertype (indadgående webhook, tidsplan, begivenhed, manuel) der føder til en konfigurerbar handling.API & webhook-byggerarbejdsområdeTRIGGERIndgående webhookSkema (cron)OpsIQ begivenhedManuelHandlingKort indgående felter →oprette billet / notificere / ringe APIGem endepunkt1HANDELWebhook · tidsplan · begivenhed · manuel2NO RAW PHPBygget i UI3FORANSTALTNINGERKortfelter, derefter køre
Opbygge endepunkter uden rå PHP: Vælg en udløser (indadgående webhook, tidsplan, begivenhed eller manual), og kort derefter felter til en handling.

Triggere

Begivenhed

Løb, når der sker noget. OpsIQ, eller når et eksternt system lægger en matchende begivenhed til din webhook URL. Skriv begivenhedens navn, for eksempel ticket.created.

Skema

Brug en af build- in interval begivenheder som begivenhedsnavnet: cron. minust, cron. time eller cron.-dail. The Actions and Triggers skærmen har knapper til disse, så du behøver ikke at huske dem.

Prase

Kør når en admin beder AI for det i almindeligt sprog. Tilføj den sætning, der skal matche, for eksempel finde kunden.

Indgående webhook

Et eksternt system sender en HTTP POST til din OpsIQ webhook URL med et begivenhedsnavn.

Kør det kun nogle gange: betingelser

En begivenhed udløser kan bære betingelser, så det kun kører, når de indgående data matcher. Uden betingelser det kører hver gang begivenheden brande.

Felt

En sti ind i begivenhedsdata. Brug en prik for indlejrede værdier, for eksempel customer. email.

Match alle eller nogen

Vælg om alle regler skal matche, eller bare en af dem.

Tekstprøver

er lig, ikke lig, indeholder, ikke indeholder, starter med, er en af, er ikke en af. Matching ignorerer hovedstæder.

Antal test

større end, i det mindste mindre end, højst. Tal skrevet som tekst stadig sammenligne korrekt.

Tilstedeværelse af prøver

er til stede, mangler, er tom, ikke er tom.

Kun side on-call ingeniør for presserende billetter

Scenarie:
Event ticket.created, with one rule: priority equals urgent.
Hvad skal man gøre:

Handlingen kører for presserende billetter og er sprunget over for alt andet. Ingen filtrering nødvendig i din ende.

💡
Hvis du lader reglerne være tomme, løber udløseren på hver matchende begivenhed, hvilket er den samme adfærd som før forholdene eksisterede.

Handlinger

Send webhook

Send HTTP POST til en ekstern URL med en brugerdefineret nyttelast.

Opret billet

Opret en supportbillet med angivet afdeling, emne og besked.

Send e- mail

Send en e-mail med en brugerdefineret skabelon.

Opdatér record

Opdatér en kunde, billet eller CRM rekord.

Kør forbindelseshandling

Udfør en registreret handling fra et aktiveret stik med sine forbindelsestilladelser og bekræftelsesregler.

Kør OpsIQ Generelt API handling

Søg i det komplette API katalog ved navn. Felter, skoper, tilladelser, bekræftelse, idempotens og dry- run support kommer fra live action-kontrakten; arbejdsstrømmen udfører inde i sin gemte arbejdsplads og administrator sammenhæng.

Send provider- native API anmodning

Brug en konnektor Native API Læs eller bekræftet Native API Skriv handling, når udbyderen endpoint har ingen kurateret handling. Valgt forblive inde i konnekset og kun relative udbyder stier accepteres.

Handlinger & Triggers builder, /api/v1.php, OpenAPI og Postman bruger den samme ActionContractRegistry, så en valgbar handling kan ikke drive fra runtime dokumentation.
Udvikler

Triggers kogebog

Ready- to- use trigger- action opskrifter til fælles automationer.

Sådan virker det
Triggers kogebogEn opskrift flow: en uptime. down webhook passerer et produktionsfilter, derefter fans ud for at skabe en presserende billet og underrette Slack.uptime.downovervåge webhookhvis prodfilterOpret en hasteseddelAdvisér Slack # ops
Triggers kogebog

Autoopret billet fra overvågning

Scenarie:
Monitoring system sends POST when server goes down.
Hvad skal man gøre:

Trigger: Inbound webhook Condition: payload.status = "down" Action: Create ticket · Dept: Technical, Subject: "Server {{payload.hostname}} down", Priority: Urgent

Slack notifikation på store ordrer

Scenarie:
Slack message every time a customer places an order over $100.
Hvad skal man gøre:

Trigger: Event (order.completed) Condition: order.amount > 100 Action: Send webhook to Slack incoming webhook URL with order details

Ugentlig fordøje e-mail

Scenarie:
Summary email to management every Monday at 9am.
Hvad skal man gøre:

Trigger: Schedule (Monday 09:00) Action: Send email with last week's stats pulled from the REST API

Eskalatbilletter til gamle

Scenarie:
If a ticket has no reply for 24 hours, assign to team lead.
Hvad skal man gøre:

Trigger: Schedule (every hour) Condition: ticket.status = "Open" AND ticket.last_reply_age > 86400 Action: Assign to team-lead, add internal note

Udvikler

Opbygning af din første handling

Denne walkthrough skaber en simpel forbindelseshandling fra bunden.

Opbygning af aktioner
Opbygning af en aktionAn action-definition form: name lookup_order, a GET request to /orders/{id}, a typed id parameter, and a passing 200 test.Ny aktionarbejdsområdeNy aktionNavnlookup_orderAnmodningGET/orders/{id}Parambolerid · streng200 · ordre fundet1DEFINENavn, metode og endepunkt2PARAMSIndgange med indtastede bogstaver3PRØVNINGLive 200 resultat
Byg en handling fra bunden. Navn det, sæt metoden og endpoint, erklære indtastede paramer, og teste det til en levende 200.

To slags aktioner

Før du starter, beslutte hvilken en du har brug for. Begge er konfigureret på samme skærm.

Ring til en ekstern API

Handlingen sender en HTTP anmodning til din platform. Vælg dette, når OpsIQ har brug for at nå ud og gøre noget på din side.

Kør en forbindelseshandling

Handlingen kører noget som en installeret forbindelse allerede giver. Vælg dette når arbejdet er allerede tilgængeligt og du bare vil udløse det. Du vælger forbindelseshandlingen fra en liste, så der er intet at wire op.

Den anden mulighed er, hvordan du genbruger alt dine stik kan allerede gøre uden at bygge noget af det igen: Læs en billet tråd, slå op en kunde, importere kontakter og så videre. Vælg den forbindelse handling fra dropdown, og du er færdig.
1
Planlæg aktionen

Example: "lookup_product". Look up a product by name, return price, stock, and description.

2
Definer i actions.json

Tilføj handlingsdefinitionen:

actions.json - den virkelige manifest 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" }
      ]
    }
  ]
}
⚠️
Three things that make an action fail to register at all. action_id is REQUIRED and must be 2 to 100 characters of lowercase letters, digits and underscores — an entry without one is rejected outright. The manifest is an object with an "actions" LIST, not a map keyed by action name. And response mapping is "returns" with DOTTED paths (data.id), not JSONPath ($.data.id) — there is no "response_mapping", "method", "endpoint" or "params" key anywhere in the registry.
3
Test med tørløb

I Connector Builder anmeldelse trin, tryk på Tør køre. Det kører den fulde overensstemmelse checkliste mod din pakke og, når du har leveret legitimation, gør en reel forbindelse test.

4
Verificér AI-brug

Spørg admin AI: "Kig op produkt Widget Pro". AI bør finde og udføre handlingen.

⚠️
Adding an action to actions.json does NOT create an AJAX route, so there is nothing to regenerate. Connector actions are synced into OpsIQ when the connector is enabled or its settings are saved: re-save the connector and the new action appears. tools/gen_route_registry.php covers the admin AJAX dispatch and has no bearing on connector actions.
Udvikler

Endepunkter for indgående begivenheder

Indgående endepunkter accepterer signeret JSON fra et andet system og gør det til en dobbeltsporet kontaktaktivitet, der kan fodre tidslinjer, scoring og arbejdsgange.

Produktskærm
Indgående endepunkterHver indkommende kilde har sin egen URL, hemmelig, kortlægning og seneste aktivitetsresultat.Indgående endepunkterarbejdsområdeKILDER5ACCEPTED12.4kREJECTED18SYGDOM AF LIVE ARBEJDSPLADSERBillingplatformabonnementsarrangementerSundProdukt apptilmeldings- og brugsbegivenhederSundBegivenhedsidentifikationprovider_event_idNedupUnderskriftX-OpsIQ- Inbound- SignatureHMAC1CREATE SOURCEURL og hemmelighed2MAP PAYLOADE-mail, begivenhed og ID3VERIFYHMAC så indtaget
Hver indkommende kilde har sin egen URL, hemmelig, kortlægning og seneste aktivitetsresultat.

Opret en kilde pr. afsendersystem. OpsIQ genererer en URL/ token og hemmelighed. Send JSON med Content-Type: application/json og underskrive den nøjagtige rå krop ved hjælp af HMAC- SHA256:

X-OpsIQ-Inbound-Signature: sha256=<hex hmac>

Kort JSON stier til kontakt e-mail, event navn og valgfri begivenhed ID. Begivenheds- id er den foretrukne deduplikeringsnøgle. Accepterede aktivitet indtaster kontakttidslinjen og kan påvirke bly scoring, segmenter, livscyklusregler og arbejdsgange.

Afvis ugyldige signaturer før fortolkning forretningsdata. Rotér en hemmelighed ved at opdatere begge sider i et kontrolleret vindue; ikke logge på hemmeligheden.

Udvikler

Operationer med udgående webshook

Udengående webhook administration skaber signerede abonnementer, tester endepunkter og overvåger asynkron levering og prøve igen sundhed.

Produktskærm
Udgående webkrogeDen udgående webhook side viser HTTPS slutpunkter, begivenhed abonnementer, levering sundhed og en one-click underskrevet test.Udgående webkrogearbejdsområdeENDPOINTS7SUCCESS99.2%AFTALER4SYGDOM AF LIVE ARBEJDSPLADSERCRM-spejlkontakt. * og deal. *SundUnderstøttelsesbusbillet. * og chat. *SundDatalager*GenopsætningAfprøvningsresultaterUnderskrevet nyttelast for prøveKlar1SUBSCRIBEHTTPS URL og begivenheder2AUTHENTICATEHMAC-signatur3OBSERVELevering af jernbane og relæer
Den udgående webhook side viser HTTPS slutpunkter, begivenhed abonnementer, levering sundhed og en one-click underskrevet test.

Fulde administratorer oprette en HTTPS endpoint, vælge specifikke begivenheder eller wildcard, gemme hemmeligheden sikkert og sende en test. OpsIQ underskriver den rå nyttelast med HMAC- SHA256:

X-OpsIQ-Signature: sha256=<hex hmac>

Verificer signaturen før deseronisering eller handling. Levering er asynkron og automatisk genprøvet efter ca. 1minut 5 minutter 30 minutter2time og 12 timer. Brug den seneste-levering jernbane til at inspicere status, svarkode og forsøg tælle.

Modtageren skal være idempotent, fordi ethvert asynkron system kan levere igen. Returnerer et 2xx svar kun efter varig accept.

Udvikler

Webhooks

Webkroge lader eksterne systemer underrette OpsIQ når noget sker (indadgående), og lad OpsIQ underrette eksterne systemer, når noget sker internt (udgående).

Webhooks
Udgående webkrogeSkærmen for udgående webkroge: en slutpointtabel med navn, indskrevne begivenheder, nylige leveringsstatusprikker og en Send- test-knap.Udgående webkrogearbejdsområdeSlutpunkter+ Gem endepunktNAVNBEGIVENHEDERAFTALERSlack # sales- alaringshttps://hooks.slack.com/…lead. created, saleTestCRM-spejlhttps://api.acme.com/hookkontakt. *, ticket. createdTestZapier Formandhttps://hooks.zapier.com/…chat.startedTest1ENDPOINTSNavn, begivenhed, URL2SIGNEDHMAC + auto- reproed3SEND TESTVerificér leverancer
Den virkelige outbound- webkrogs skærm: hvert endepunkt med sine begivenheder, seneste levering sundhed, og en one-klik Send test, underskrevet og prøvet igen.

Udgående webkroge

Abonnering

Gå til Indstillinger > Webkrogs. Tilføj et endpoint URL og vælg begivenheder der skal modtages.

Begivenheder

ticket.created, ticket.replied, chat.started, chat.message, order.completed, crm.deal.stage_changed, crm.contact.created, etc.

Prøv igen

Fejl i leverancerne igen med eksponentiel backoff. Efter 15 fortløbende svigt, er endepunktet automatisk deaktiveret.

Underskrift

Hver anmodning indeholder en HMAC signatur i X-OpsIQ-Signature. Kontrollér altid.

SSRF-beskyttelse

OpsIQ vil ikke sende til privat / intern IPs (127.x 10.x 172.16.x 192.168.x 169.254.169.254).

Async levering

Webkroge leveres via job kø, ikke blokere OpsIQ operationer.

Stabil begivenhed- ID

Each event has a unique event_id that stays the same across retries for deduplication.

Verificering af webhook signaturer

PHP · verificer webhook signatur
<?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, verificer 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 });
});
Hvordan tester jeg webkroge lokalt?+

Brug ngrok til at afsløre din lokale server. Sæt webhook endepunktet til din ngroks URL.

Hvad hvis mit endepunkt er midlertidigt nede?+

OpsIQ genforsøger med eksponentiel backoff. Hvis dit endepunkt genvinder inden for gentrievinduet, er ingen hændelser tabt.

Udvikler

API-nøgler

API nøgler autentificere anmodninger til OpsIQ REST API. Hver nøgle har opfanget tilladelser.

API-nøgler
API-nøglerAPI tasterne skærmen: et problem panel med adgang niveau og omfang chips, ved siden af en liste over eksisterende maskerede nøgler med tilbagekaldelse knapper.API-nøglerarbejdsområdeUdsted en nøgleAdgangKun læstBegrænsetAnvendelsesområdecontacts.readtickets.readevents.writeUdstedelsesnøgleDine nøglerIntegration af Zapieropq_••••4f2aTilbagekaldelseMobil appopq_••••91c7TilbagekaldelseAnalytisk eksportopq_••••2db0Tilbagekaldelse1SCOPEDKun til ud- eller begrænset2PER-ACTIONVælg eksakte scopes3REVOCABLERotér når som helst
Den virkelige API taster skærm: udstede en scoped, read- only eller begrænset nøgle ved at vælge eksakte skoper, og tilbagekalde enhver nøgle når som helst.

Oprettelse af en API nøgle

1
Gå til Indstillinger > API Nøgler

Naviger til API nøglehåndtering.

2
Klik på Opret nøgle

Giv det et beskrivende navn.

3
Vælg opslag

Giv nøglen kun hvad den har brug for. Scopes kommer ind læse og skrive par per område, så en rapportering integration kan gives læser og intet andet.

Disponible scopes

Vælg det smalle sæt, der gør jobbet. admin opfylder alle nedenstående rammer, så brug det kun, når du virkelig har brug for bred adgang.

crm. read / crm. write

Kontakter, virksomheder, tilbud, aktiviteter, segmenter, outreach, konverteringer, livscyklus og CRM webkroge.

tickets. read / tickets. write

Liste og læs billetter og deres beskeder; svar, opdatere, åbne og køre bulk kø operationer.

conversations. read / conversations. write

Læs live-chat samtaler og besked historie; sende beskeder, tildele og ændre status.

kb. read / kb. write

Kendskab base poster.

chat. read / chat. write

Gemte svarskabeloner.

connectors.read

Se hvilke stik der er installeret, hvad de kan gøre, og test deres legitimation.

automations.read

Se dine handlinger, udløsere og deres løbehistorie.

departments.read

Afdelinger til rådighed for routing.

notifications.read

Anmeldelser til en navngivet operatør.

analytics.read

Rapportafsnit, CSV eksport og planlagte rapportdefinitioner.

site_intelligence.read

Monitorerede steder og deres SEO rapporter.

files.read

Underskrevet download links til vedhæftede filer.

status.write

Status side komponenter og hændelser.

writing

AI skriver hjælpere: udkast, sammenfatte, oversætte, omskrive, komponere, analysere.

admin

Alt, herunder et lille antal følsomme handlinger, der bevidst ikke kan nås af nogen smal omfang: sletning af en kontakt, ændre indstillinger for personlige oplysninger, og læse adgang log.

💡
Ring meta. actions med din nøgle for at se præcis, hvilke handlinger det kan køre på din installation. Det er altid mere pålideligt end at arbejde fra en liste.

Adgangsniveauer

Alle

Nøglen kan kalde alt, hvad dens rækkevidde tillader.

Kun læst

Hver skrivning afvises, uanset hvad der står i opslagstavlen. Det sikreste valg for rapportering, dashboards og alt, der aldrig bør ændre data.

Begrænset

Du opregner de nøjagtige handlinger, nøglen kan kalde. Alt andet er afvist, selv inden for et tilladt anvendelsesområde.

4
Kopiér nøglen

Vist en gang. Starter med "opq _". Gem det sikkert.

🚫
Del aldrig API nøgler i offentlig kode, klient- side JavaScript, eller versionskontrol. Brug miljøvariabler.
Udvikler

Forbind din hjemmeside

EU OpsIQ widget er en JavaScript snuppet du tilføjer til din hjemmeside for sporing, AI chat, billet skabelse, og kundeidentifikation.

Sådan virker det
Forbind din hjemmesideEt one-line script tag til venstre og, til højre, en webside med OpsIQ chat boble vises i hjørnet.<!-- paste before </body> --><script src="https://cdn.opsiq.io/w.js" data-site="ws_8a2f" async></script>
Forbind din hjemmeside

Grundinstallation

Grundlæggende kontrolmærke
<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.

Indstillingsattributter

data-site-key

Nødvendig. Din site nøgle fra Connected Sites.

data-mode

Valgfrit. "chat" (standard), "billetter" eller "begge".

data-position

Valgfrit. "bottom-højre" (standard) eller "boftom-venstre".

data-color

Valgfrit. Primær farve hex kode.

data-greeting

Valgfrit. Indledende hilsen.

data-language

Valgfrit. UI sprog: "en", "es", fr ", de", pt ", ar" osv.

data-identity-token

Valgfrit. Servergenereret signeret identitet token.

SPA-støtte

Manuel SPA-rutesporing
// 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-regler

CSP- regler for kontrol
script-src 'self' https://your-opsiq-domain.com;
connect-src 'self' https://your-opsiq-domain.com;
frame-src https://your-opsiq-domain.com;
Sker der en langsom widget på min hjemmeside?+

No. Under 15 KB gzipped, indlæser async efter side indhold.

Kan jeg tilpasse udseendet?+

Brug data- farve til primær farve. Kontaktunderstøttelse for CSS override muligheder.

Udvikler

Widget installere opskrifter

Platform- specifikke installationsvejledninger.

Sådan virker det
Widget installere opskrifterPlatform installere kort til WordPress, Shopify og Google Tag Manager, hver sige hvor man skal tilføje widget.WPWordPressInstaller plugin, indtastGem din nøgle på siden.ButikShopifyIndsæt slangen itheme. liquid before /body.GTMMærkehåndteringBrugerdefineret HTML tag, alle sider.
Installere opskrifter

WordPress

Scenarie:
Add to all pages of a WordPress site.
Hvad skal man gøre:

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

Scenarie:
Add to your Shopify store.
Hvad skal man gøre:

Online Store > Themes > Edit Code > Layout > theme.liquid. Paste before </body>. Save.

React / Next. js

Scenarie:
Add to a React or Next.js app.
Hvad skal man gøre:

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

Scenarie:
Add to your WHMCS client area.
Hvad skal man gøre:

Opsætning > Generelle indstillinger > Andet > Global Footer Indhold. Indsæt slangen. Eller rediger din skabelon footer. tpl.

Google Tag Manager

Scenarie:
Add via GTM.
Hvad skal man gøre:

Opret brugerdefineret HTML tag, paste snavs. Trigger: Alle sider. Publicer.

Udvikler

Admin widget i din motor (en kontrakt, enhver platform)

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.

Trin 1 - den indlejrede linje

fra Fjernsider → dit websted → Koder, kopiere læsserens linje og tilføje det til din admin panelets sider (fod omfatter, layout skabelon, eller en admin- only custom-JS boks):

En- linjen er integreret
<script async src="https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=SITE_KEY&identity_token=TOKEN_FROM_STEP_2"></script>

Trin2- FortælOpsIQder er logget ind (server- signeret)

Kun din applikation ved, hvilken admin der er logget ind - det er ikke en mangel, det er sikkerhedsmodellen. Din server genererer en kortlivede signeret token fra din egen session, præcis som den besøgende identitet token, underskrevet med samme websted webhook hemmelighed:

PHP · sign admin identiteten fra din session
<?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 adgang, automatisk

Hver admin, der logger ind på din platform er matchet individuelt:OpsIQs per- admin adgang gate løser token brugernavn + e-mail mod énOpsIQAgent (Team side; bruge agentens "match e-mails" liste, når platformen e-mail er forskellig) og anvender, at agenten arbejdsområde, afdeling og indbakke tilladelser.OpsIQ; ingen ændringer.

Roller kører med

Uanset hvilken rollestreng din platform sender vises påOpsIQside for tildeling; godkendelse altid kommer fraOpsIQAgent Record, aldrig fra den erklærede rolle.

Hvorfor ikke læse vores login cookie?

Browsere sender aldrig din admin cookie til en anden oprindelse - ingen leverandør kan "bare opdage" dit login cross-domæne. Hvert alvorligt produkt løser dette på samme måde: din server kvitteringer, underskrevet. Det er hele kontrakten.

Enkel tilstand (enkelt- admin butikker)

Skip step 2 and use the static token from Remote Sites → Codes in the loader line (token=… instead of identity_token=…). The widget works with the workspace's shared identity; the per-admin gate can stay enforced later when the team grows.

Den authenticated flag - sæt det på TOP-niveau

Dette flag er din servers påstand om, at et menneske virkelig logges ind, og OpsIQ nægter nogen token uden det. "authenticated" => true beside site_key/iat/exp, IKKE kun inde i admin objekt. Nuværende OpsIQ accepterer det i begge positioner, men ældre udgivelser kun læse det øverste niveau - og fejlen er vildledende: samtaleliste, historie og ulæste alle autentificere fint, mens hver chat tur svar "Admin login kræves", som ligner en session bug og er ikke. Hvis du ser præcis denne split, skal du markere dette flag først.

Token hygiejne

Signér kun på serveren, aldrig i browserenJavaScript. Hold exp kort (minutter til timer);OpsIQafviser udløbet og fremtid- dated tokens, og signaturen binder token til dit websted nøgle.

Referenceferencegennemførelser

The WHMCS module does this automatically from the WHMCS admin session; the Botble Hotel connector's bridge file does it from the Laravel session (op=admin_identity). Both are just this contract in their platform's dialect — copy whichever reads closest to your stack.

Nulsiderledninger (forbindelsessonde)

Når din OpsIQ stik gemmer din identitet endpoint i sin admin_identity_probe_url indstilling, PLAIN loader linje er alle dine admin sider brug: widget opdager sonden fra stikket, kalder det med din hjemmeside nøgle + widget- token, og autentificerer hver admin automatisk. Siden kan stadig tilsidesætte med en data-identity-endpoint attribut eller window.OpsIQAdminIdentityEndpoint.

Gennemførelse af identitetsendpoint på Laravel (hardwon notes)

Hvis din platform er Laravel (Botble, Bagisto, brugerdefinerede apps) og dit endpoint er en standalone fil, der støvler rammen til at læse logged- i admin, tre specifikke vil spare dig timer - hver enkelt produceret en reel produktionsfejl, før det blev lært:

Bind anmodningen FØR bootstrap

Dine udbydere kan løse request fra beholderen under boot. Laravels egen livscyklus binder den opfangede anmodning om første ting inde Kernel::handle() - Spejl denne rækkefølge: $app->instance('request', Request::capture()) TIDLIGERE $kernel->bootstrap(), eller du får "Målklasse [anmodning] findes ikke".

Sessions- cookie præfikset er HMAC-keyed

Moderne Laravel præfikser cookie værdier med en HMAC beregnet med APP-NØY (CookieValuePrefix) - en almindelig sha1(name."v2") kan aldrig matche det. Strip med CookieValuePrefix::validate($name, $decrypted, $keys)med strukturel fallback (40 hex-tegn + | på plads40). Fortæl: en session id længere end40Krydderier (81= præfiks stadig fastgjort) og en session, der kun indlæses med _token i det.

Hvor login bor

Det er det, der er bedst. login_<guard>_<sha1(guard class)> - til standardwebvagten: 'login_web_' . sha1(Illuminate\Auth\SessionGuard::class). Scan enhver login_* Numerisk nøgle som en fallback for brugerdefinerede vagter.

Fejlfri som broen gør

Skib a debug=1 tilstand, der navngiver den svigtende STEP og undtagelse - en blind catch- alle gjort en live implementering udiagnosticerbar. Botble broen (fra v1.0.7) er referencen: trin markører på kernen / bind / bootstrap / decrypt / session / auth / db.

Laravel · komplet identitet endpoint (kopi, sæt de to konstanter, færdig)
<?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]);
}

Det samme endpoint på andre stakke

Kun "hvem er logget ind?" linje ændringer - signaturblokken er identisk overalt. Skriv på serveren, aldrig i JavaScript.

WordPress · WHMCS· Symfoni · plain PHP - bytte opslag, holde signer
<?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]);

Når det ikke virker - diagnosticere i denne rækkefølge

Widget aldrig vises, konsol siger "signeret admin identity token er påkrævet"

Dit endpoint returnerede ingen identity_token. Åbn endepunktet URL direkte i logge- i admin browser med &debug=1 - du vil se det svigtende trin. På Laravel er dette næsten altid den anmodning-bindende eller kogning-prefix punkt ovenfor.

Historie og samtaler virker, men hver chat tur siger "Admin login kræves"

Din token mangler TOP- NIVEAU authenticated flag - widgets eget endpoint accepterer token, den delte verifikator bag chatstrømmen nægter det. Tilføj "authenticated" => true beside exp.

"admin ikke afsat i 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.

Alt 403s fra browseren, men arbejder med krøller

En CORS-forudflyvning afviser en af dine forespørgsler. OPTIONS og ekko den anmodende oprindelse, eller simpelthen undgå brugerdefinerede overskrifter - widget kun brug for cookien.

Arbejdede i går, fejlede i dag

Tjek exp: tokens er kortlivede af design. Kontrolgensonder automatisk, så dette betyder normalt endepunktet stoppet med at se sessionen - en app nøgle rotation, en session- driver ændring, eller en cookie-domæne forandring.

💡
Admin widget gør skjult indtil identitet løser, og hver chat / indbakke / dataopkald er tvungen server- side mod matchedeOpsIQagent uanset noget side hævder. Tegnet åbner UI; tilladelser altid kommer fraOpsIQ.
Udvikler

Besøgsidentitet

Identitet forbinder anonyme besøgende til kendte kunder. Når identificeret, OpsIQ links browserhistorik, chats og billetter til kundens profil.

Sådan virker det
BesøgsidentitetEn strøm: en bruger logger ind på dit websted, du udsteder en underskrevet identitet token, og OpsIQ forener deres sessioner, chats og billetter i én profil.Brugerlogfilerpå dit webstedUnderskrevet symbolidentity_token (HMAC)En profilsessions+ chats+ billetter
Besøgsidentitet

To identitetsniveauer, og når hver er nok

Niveau 1 - en usigneret vink

Du fortæller widget hvem den besøgende er med en plainJavaScriptobjekt. Det fylder e-mail og kunde id på besøgende log, så dit dashboard viser signed-i trafik og sessioner deltage. Det er en HINT: enhver kan redigere det i deres browser, såOpsIQfrigiver aldrig kontodata på styrken af det.

Niveau 2 - en signeret identitetstesten

Din server signerer en kortlivede token med webhook-hemmeligheden på webstedet. OpsIQ kontrollerer signaturen og behandler først personen som en bevist kunde. Dette er det niveau, der låser kontosvar op i kundechat og konnektor opslag. Brug det til noget, en fremmed ikke må se.

⚠️
Niveau1er en display bekvemmelighed.2er autentificering. Hvis et spørgsmål kun kan besvares for den rigtige kontohaver, skal du bruge Niveau2.

Niveau 1 - det usignerede vink

Sæt objektet FØR kontrolscriptet, eller ring til identificer () senere når din app ved hvem der er logget på. Begge formularer læses; brug alt efter hvad der passer til din side.

JavaScript · de to understøttede former
<!-- 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.

Niveau 2 - den serversignerede identitet token

Præcis den samme token kontrakt som admin widget, med en customer emne i stedet for en admin en. Skriv under på din server og send den til kontrolprogrammet. To detaljer afgør om det verificerer, og begge er nemme at få forkert:

EUHMACdækker BASE64URL strengen, ikke denJSON

Signér $payload64, ikke $payload. Underskrivelse af den rå JSON producerer en token, der ser rigtigt og afvises hver gang med en underskrift mismatch.

base64url, upolstret

Oversæt +/ til -_ og strimler = polstring. Plain base64 sker for at overleve i dag; base64url er kontrakten og er, hvad hver OpsIQ verifikator og reference stik udsender.

godkendt går på TOP-niveau

ved siden af site_key, iat og expDet er din påstand, at et rigtigt menneske er logget ind, og OpsIQ afviser token uden det.

customer. id er obligatorisk

En token, der kun indeholder en e-mail, bekræfter som en underskrift og bliver derefter tappet stille. Send altid et id.

Hold exp kort

Minutter til timer.

PHP - sign en kundenidentitetsteat (denne nøjagtige kode verificerer)
<?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>';
🚫
Kun på serveren. En token præget i browser JavaScript betyder forsendelse af webstedet hemmelighed for hver besøgende, som giver alle mulighed for at udgive sig for enhver kunde.

Samme kontrakt, tre overflader

Kundechat på dit websted

customer subject, passed as identity_token to widget.php. Covered above.

Admin chat inde i din bagende

admin subject, passed to opsiq/embed/admin_widget.php. Same signer, different subject key. See "Admin widget in your backend".

Støtte portalen dybe links

A stricter variant: the same claims plus jti and single_use:true, and a 120-second life, because the token travels in a URL and must be spendable once. Do not hand-roll it. Settings, Support Portal has a ready snippet for your language, and the platform mints it for you when your account area runs on this server.

Hvad hvis en besøgende rydder op?+

De bliver anonyme, indtil de identificeres igen. OpsIQ forbinder den nye anonyme rekord til kundens profil i det øjeblik en antydning eller en token ankommer.

Hvorfor kontrollerer min token for besøgsloggen, men ikke for kontospørgsmål?+

Det er det niveau1/ Niveau2split. Et usigneret vink fylder besøgsloggen og intet andet. Kontosvar skal have en bekræftet underskrift.

Udvikler

Plugins og SDK 'er

OpsIQ giver SDK pakker og plugins til fælles platforme.

Sådan virker det
Plugins og SDK 'erFire pakker: PHP SDK, Node.js SDK, WordPress plugin og WHMCS modul, hver med sin installationskommando.PHPPHP SDKcomposter kræver opsiq/sdkJSNode. js SDKnpm i @opsiq/sdkWPWordPress pluginOn- klik på installer & connectWHWHMCS modulAddon til fakturering + billettelease
Plugins & SDK 'er
PHP SDK

Komponist pakke: identitet token generation, handling API hjælpere, webhook underskrift verifikation.

JavaScript SDK

Browser- side: tracking, identitet, brugerdefinerede begivenheder, chatkontrol.

WordPress plugin

Widget injektion, identitet fra WP-brugersessioner, WooCommerce sync.

WHMCS modul

Fuld integration: widget, billet relæ, identitet, admin AI.

Shopify temaforlængelse

App er integreret med automatisk kunde identitet.

PHP SDK hurtig start

PHP SDK eksempel
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);
Udvikler

Undersøgelse API, events og forbindelses- fri automatisering

Survey Studio er designet til at bruge den samme indtastede General API, intern eksekutor, event bus og webhook operationer som resten af OpsIQ. Dette lader udviklere integrere slutningen til enden uden at bygge en pakket stik.

⚠️
Implementeringsstatus: det levende katalog i øjeblikket kun udsætter platform.get.survey.config og platform.save.survey.config. The surveys.* og feedback.* familier nedenfor er den godkendte målkontrakt og skal vende tilbage unknown_action indtil registreret.

Målgrupper

Typer, skabeloner og hurtig lancering

surveys.types.*, surveys.templates.* og surveys.quick_launch.* liste, forhåndsvisning, instantiate og validere komplette startere.

Undersøgelser og versioner

surveys.create|get|list|update|archive|duplicate plus uforanderlig version, validering og offentliggørelse af handlinger.

Udstationering og målretning

surveys.deployments.*, surveys.links.*, surveys.audiences.*, surveys.triggers.* og surveys.variables.*.

Opsøgende arbejde og svar

surveys.invitations.*, surveys.campaigns.*, surveys.recipients.*, surveys.responses.*, eksport, redact og analytics.

Webkroge, import og feedback

surveys.webhooks.*, surveys.imports.*, feedback.items.*, feedback.analytics.*, feedback.sources.* og feedback.analysis.*.

Forbindelsesfri strøm

1
Opret og udgiv gennem Generelt API

Brug indtastede undersøgelser. * handlinger med en arbejdsrums-fastlåst nøgle. Skrifter erklærer tilladelse, risiko, bekræftelse, idempotens og tørløbsadfærd.

2
Modtag din forretningsbegivenhed

Send en underskrevet begivenhed til en indadgående webhook, for eksempel en ordre annullering eller afsluttet onboarding trin. Replay beskyttelse deduplikerer begivenhedens ID.

3
Kort det i Handlinger og Triggers

Vælg en OpsIQ Generelt API foranstaltninger såsom at udsende en Survey-invitation eller forberede en kampagne, og derefter kortlægge felter fra den verificerede udløser nyttelast.

4
Abonner på Survey events

Levere den dokumenterede business-safe undersøgelse. * livscyklusdelsæt til dit endepunkt med underskrift, filter, prøve igen, log og autoriseret spil igen.

Målsætning for den kanoniske begivenhed

Det delte katalog vil dække Survey / implementering offentliggøre tilstand, publikum og udløser beslutninger, invitationer, rende / start / partiel / genoptage / komplet / opgive, reaktion redaction, kampagne state og levering fejl. High- volumen fokus, rulle og spørgsmål timing ophold i Survey Analytics opbevaring medmindre eksplicit dokumenteret for fan- out.

En konnektor er valgfri. Den tilføjer genanvendelige platform opdagelse, verificeret identitet, fakta, variabler og modtager optælling. General API plus Handlinger & Triggers / webkroge forbliver den komplette integration sti for udviklere, der ikke har brug for en pakket connector.
Udvikler

REST API

EU OpsIQ REST API kan du programmæssigt få adgang til alle platform funktioner.

Sådan virker det
REST APIEn terminal viser en POST til OpsIQ API med en Beerer nøgle, liste åbne billetter, og den tilkaldte JSON svar.$ 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

Format for anmodning

Send nøglen som Authorization: Bearer opq_... eller X-OpsIQ-Key: opq_.... Brug en godkendelse header, ikke begge.

API forespørgselsformat
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"
}

Fælles aktioner

API er handlingsbaseret: send en action navn i kroppen. Hver registreret administrator JSON operation har en stabil navngivet handling. {"action":"meta.actions"} (ingen nøgle påkrævet) for den autoritative, per- install liste, anmodning kontrakt, risiko metadata og omfang. platform.routes.* Broen er kun tilbage for ældre integrationers vedkommende.

crm.contacts.list

Liste CRM-kontakter (scope crm. read). Params: q, status, kilde, mærke, blyscore, grænse.

crm.contacts.upsert

Resolve- eller- create a contact (scope crm. write). Params: email plus felter, tags, noter.

crm.deals.list

List CRM deals (scope crm.read). Params: status, stage_id, company_id, owner_admin_id, pipeline_id, limit.

crm.activities.record

Record a lifecycle/business activity for a contact (scope crm.write). Params: email or contact_id, event, value, currency.

crm.conversions.record

Record a conversion (scope crm.write). Params: contact_id or email, conversion_type, value, currency.

crm.events.list

Poll CRM begivenhed stream (scope crm. read). Params: grænse.

tickets.list

List tickets (scope tickets.read). Params: page, per_page, sort, order, status, priority, department_id, assigned_admin_id, client_email, search.

tickets.get

One ticket and its messages (scope tickets.read). Params: ticket_id or ticket_number, include_messages, messages_limit.

tickets.reply

Post a reply to a ticket (scope tickets.write). Params: ticket_id or ticket_number, body, author_type, author_name, internal.

tickets.update

Update a ticket (scope tickets.write). Params: ticket_id or ticket_number, status, priority, subject, department_id, assigned_admin_id.

tickets.open

Open a support ticket (scope tickets.write). Params: customer_email, customer_name, subject, body, priority.

tickets.bulk

Kør en bulk kø operation (scope tickets. write). Params: drift, ids.

conversations.list

List live-chat conversations (scope conversations.read). Params: page, per_page, status, assigned_admin_id, client_email, search.

conversations.get

One conversation and its messages (scope conversations.read). Params: conversation_id or thread_key, include_messages.

conversations.messages

Paged message history (scope conversations.read). Params: conversation_id, page, per_page, include_internal.

conversations.send

Send a message into a conversation (scope conversations.write). Params: conversation_id, message, sender_type, internal.

conversations.update

Assign, re-status or re-title a conversation (scope conversations.write). Params: conversation_id, status, assigned_admin_id, subject.

connectors. list /. get / . test

Se hvilke stik der er installeret, hvad hver enkelt kan gøre, og om dens legitimationsoplysninger virker (scope connectors. read).

automations.actions.list

De handlinger, din Handlinger builder vil køre (omfang automations. read).

automations.triggers.list

Hvad vil brand og hvilke betingelser (rækkevidde automations. read).

automations.runs.list

Execution history for debugging an integration (scope automations.read). Params: status, action_key.

departments.list

Afdelinger du kan rute en billet til (scope divisions. read).

notifications.list

Notifications for one operator (scope notifications.read). Params: admin_id (required), unread_only.

analytics.export

Et rapportafsnit som CSV (scope analytics. read). Params: sektion, forudindstillet, fra, til. Call analytits. sections. list for gyldige værdier.

site_intelligence.sites.list / .reports.list

Monitored sites and their SEO reports (scope site_intelligence.read).

files.get

Et kortlivede signeret download link til en vedhæftet fil (scope files. read). Params: reference, ttl.

security.check

Spørg, om en IP eller e-mail er blokeret eller mistænkelig her (rækkevidde security.read).IP firewall, billetten spam blokliste og cached Security AI dom. Params: ip e-mail.

security.report

Rapportér misbrug af dit system observeret (rækkevidde security. write). Optaget som en sikkerhedsbegivenhed, klassificeret af Security AI straks, og administratorer er alarmeret på høj risiko domestics. Params: ip, e-mail, art, årsag, kilde.

security. blocklist. add / . list

Manage the spam rules the ticket pipeline enforces (scope security.write / security.read). Same store as the Tickets page "Block sender" control. Params: kind (email, domain, ip), value, reason, expires_hours.

💡
meta. actions er altid autoritative. Det returnerer hver handling til rådighed på din installation med det omfang, hver enkelt har brug for, så du aldrig behøver at gætte eller hard- kode denne liste.

Sidebilleder, filtrerings- og sorteringsinstrumenter

Hver liste handling bruger de samme parametre, så du lærer dem en gang.

page / per_page

Sidenummer der starter på 1, og sidestørrelse. Standard 50, maksimum 200. grænse og offset er også accepteret, hvis du foretrækker dem.

Type / ordre

Feltet skal sortere efter, og asc eller desc (standard desc). Hver handling accepterer et fast sæt sorteringsfelter; alt andet ignoreres snarere end erroring.

filters

Send filtre som et objekt, eller send et filter som en top- niveau parameter. Ukendt filtre ignoreres.

Hvad kommer tilbage

items, page, per_page, count, total and has_more. Keep requesting pages until has_more is false.

Anmodning om en sideordnet, filtreret og sorteret liste
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
}

Fejl

Hver fejl returnerer den samme form, med en stabil code du kan aflede på. Må ikke matche på den human- læsbare error der kan omformuleres.

Fejlsvar
{
  "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

Ingen nøgle blev sendt, eller nøglen er forkert eller udløbet. HTTP 401.

missing_scope

Nøglen er gyldig, men mangler det omfang denne handling har brug for. HTTP 403.

read_only_key / action_restricted

Nøglen er read- only, eller denne handling er ikke i sin allow- liste. HTTP 403.

unknown_action

Ingen sådan handling. Ring meta. actions til den aktuelle liste. HTTP 400.

missing_parameter / invalid_parameter

En nødvendig parameter er fraværende, eller en værdi ikke accepteres. HTTP 400.

not_found

Optaget eksisterer ikke, eller er ikke i det arbejdsrum denne nøgle kan se. HTTP 404.

rate_limited

Timegrænsen for denne nøgle bruges op. HTTP 429.

server_error

Something failed on our side. The request_id identifies the attempt if you need to report it. HTTP 500.

Sikker genindførelse

Hvis en skrive gange ud, kan du ikke se, om det landede. Send en idempotency_key og en gentagelse af samme opkald giver det oprindelige resultat i stedet for at gøre arbejdet to gange.

Idempotent skrift
{
  "action": "tickets.reply",
  "ticket_id": 4192,
  "body": "Thanks, that is now fixed.",
  "idempotency_key": "your-unique-id-for-this-attempt"
}
Hvor længe det varer

En nøgle huskes for 24 timer mod samme virkning og API Nøglen.

Hvad du får tilbage

The original response, plus idempotent_replay: true so you can tell it was a replay.

Fejl ved ophold kan retryes

Kun succesfulde skriver huskes. Hvis et opkald mislykkedes, sender du det igen med den samme nøgle kører det igen, hvilket er hvad du ønsker.

Læser

- Det er harmløst at gentage en læsning.

Test uden at ændre noget

Tilføj dry_run: true til enhver skrive. Din nøgle, scope og parametre er alle kontrolleret præcis som normalt, så opkaldet stopper før noget er oprettet eller ændret.

Tør løb: kontrollere legitimation og nyttelast sikkert
{
  "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."
}
Use dry_run while you are building. It is the quickest way to confirm a key has the right scopes and your payload is shaped correctly, without creating test data you then have to clean up.

Satser

Per- nøglegrænse

En konfigurerbar timegrænse pr.API nøgle (standard) 1000 anmodninger pr. time). Sæt det per nøgle under Indstillinger,API Nøgler.

Ved overskridelse

HTTP 429 with code rate_limited, plus a Retry-After header telling you how many seconds to wait. The limit resets at the top of the next clock hour.

Vide hvor du står

Hvert svar bærer X- RateLimit- Limit, X- SateLimit - Resterende og X- rateLimut- Reset (en Unix tidsstempel). Se Revering og bremse før du løber ud snarere end venter på at blive afvist.

Fortæller 429 fra 401

A 429 betyder vente og prøve igen. A 401 betyder, at selve nøglen er forkert eller udløbet, så genforsøg vil ikke hjælpe, før du retter nøglen.

Pr- auth brute- force guard

Gentagne fejl- auth forsøg fra en IP er throttled separat. Gyldige nøgler aldrig trip dette.

Bedste praksis

Træk dig tilbage, når Resterende bliver lavt, og ære Retry-After efter en 429 i stedet for at prøve igen med det samme.

Versioner og stabilitet

Nuværende udgave

v1. Hvert svar bærer X -OpsIQ-API-Version og X-OpsIQ-API- Status, så du kan bekræfte det.

Hvordan du vil blive advaret

If a version is ever retired, responses gain standard Deprecation and Sunset headers, and meta.actions reports deprecated and sunset_at. Check those in your monitoring and you will never be surprised.

Hvad vil ikke ændre sig

Eksisterende handlingsnavne, deres parametre og fejlkoder. Nye handlinger og nye valgfrie felter kan tilføjes når som helst, så ignorer felter du ikke genkender snarere end at fejle på dem.

En komplet integration, start på slut

Dette er hele løkken: Find arbejde, læs det, handl på det og bekræft hvad du gjorde.

Fuld billetarbejdsgang over 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}
💡
Alt ovenfor virker på samme måde for samtaler: conversations. list, conversations. get, converse-cess. send og conversions. update følger det identiske mønster, parametre og responsform.

Hver handling, med det omfang den har brug for

Denne liste er genereret fra det løbende katalog, så den altid matcher den version, du er på. meta.actions giver samme information som JSON.

1754 named actions: 590 reads, 1164 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: 397; explicit: 92; route_inferred: 1149; 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.

kunder (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 (80)

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.og.image.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Og Image 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.subhero.dark.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Subhero Dark Upload

knowledge.center.subhero.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Subhero Upload

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.

meta (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

platform (351)

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.commerce.orders.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Commerce Orders List

platform.commerce.orders.transition

Write. Scope: platform.write, admin. Contract: route_inferred. Commerce Orders Transition

platform.commerce.products.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Commerce Products Delete

platform.commerce.products.image.upload

Write. Scope: platform.write, admin. Contract: route_inferred. Commerce Products Image Upload

platform.commerce.products.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Commerce Products List

platform.commerce.products.save

Write. Scope: platform.write, admin. Contract: declared_dynamic. Commerce Products Save

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 (148)

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.quality

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Quality

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

sikkerhed (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.

undersøgelser (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

billetter (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.

Er OpenAPI og Postman tilgængelige?+

Ja. Den genererede OpenAPI 3.0 dokumentet er på /api/v1/openapi.php, den genererede Postman samling er på /api/v1/postman.php, og den human- læsbare udvikler docs er på /api/docs/.

Hvordan arbejder jeg med mere end et arbejdsområde?+

Send site_key in the request body to choose a workspace. A key issued for one workspace stays pinned to it; a key with admin context can select any workspace it is permitted to see, and is refused for any it is not.

Hvilke handlinger kan en read- eneste nøgleopkald?+

Any action marked as a read. Set the permissions mode on the key to read_only and every write is refused with read_only_key, so a reporting integration cannot change anything even by mistake.

Hvorfor blev jeg ikke fundet for noget, jeg kan se i admin?+

The key is scoped to a workspace. Records in other workspaces return not_found rather than a permission error, so the API never confirms whether something exists elsewhere.

Udvikler

Sikkerheds API

En sikkerhedskontrakt for hvert stik og integration: spørg OpsIQ hvad den ved om en IP eller afsender, og fodre tilbage misbrug dit eget system ser.

OpsIQ der allerede forsvarer sig selv: IP firewall blokke angribere, billetten pipeline filtrere spam, og sikkerhed AI klassificerer gerningsmænd og foreslår blok regler. API åbner denne intelligens til dine andre systemer. En faktureringsplatform, en klient portal eller en brugerdefineret app kan tjekke en besøgende, før du stoler på det, og rapportere, hvad den observerede, så hele installationen lærer fra hver overflade.

Hvad du kan gøre

Tjek før du stoler på

security. check svar med firewall tilstand, enhver spam regel der matcher afsenderen, og cached AI dom for IP. Et opkald, en konsolideret udtalelse.

Rapportér hvad du så

security.report registrerer observationen som en sikkerhedsbegivenhed, har Security AI klassificere IP med det samme, og advarer de admins når dommen kommer tilbage høj risiko. Gentagne rapporter klynger sig til hændelser, præcis som angreb OpsIQ ser direkte.

Del spam-regler

security. blocklist. add og securiy. blocklist. list læse og skrive de samme spam regler, som siden Billetter bruger, så en afsender blokeret i et system er blokeret overalt.

Rapportering af misbrug fra en forbindelse
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"
}

Scopes og sikkerhed

security.read

Nødvendig for sikkerhed. check og security. blocklist. list. Sikker til at give en rapportering integration.

security.write

Nødvendig for security. report og securiy. bloklist. add. Giv det kun til systemer, du ønsker fodring regler og rapporter i.

Intet er stille ødelagt

En blokerende afsender lander stadig i Spam-visningen, hvor billetten kan læses og gendannes.

Platformen beskytter sig selv

Serverens egen IP adresser kan aldrig blokeres, blocklistes eller rapporteres gennem dette API, så en forkert konfigureret integration kan ikke tage platformen ned.

💡
Mint en nøgle under Integrationer, derefter API Keys, og give det kun de sikkerhedsskoper, det har brug for. Den fulde anmodning kontrakt for hver handling er i meta. actions og OpenAPI-dokumentet.
Bruger mine eksisterende stik automatisk dette?+

Udgående synkronisering er allerede automatisk: når du blokerer en IP, tilsluttede platforme er fortalt gennem connector security sync. API er den indgående halvdel. Peg din konnektor eller brugerdefinerede kode på disse fire handlinger med en nøgle bærer sikkerhedsskoperne.

Hvor lever spam-reglerne?+

One store. Billetter side Block afsender kontrol, spam AI i Indstillinger, og denne API alle arbejder mod den samme blokliste, så der er præcis et sted at kigge.

Udvikler

Begivenheder API

Send brugerdefinerede begivenheder fra din server eller hjemmeside til OpsIQ for analytics, eksperimenter, CRM-udløsere og webhook betingelser.

Sådan virker det
Begivenheder APIA track() call sending a custom demo_booked event into OpsIQ, which feeds conversion goals, segments and triggers.OpsIQ.track("demo_booked", {værdi: 0, plan: "pro"});OmregningsmålSegmenterTrigggers & webkrogeBrowser (OpsIQ.track) eller serverside POST /v1/events
Begivenheder API

Browser- side begivenheder

Browser- hændelsessporing
window.OpsIQ = window.OpsIQ || [];
window.OpsIQ.push(["track", "button_clicked", {
  button: "signup",
  page: "/pricing",
  variant: "green"
}]);

Serverside events

Serverside, record aktiviteter og konverteringer mod en kontakt gennem handlingen API. Brug crm.activities.record for livscyklus- / forretningsaktiviteter og crm.conversions.record der er ingen events.send handling; den indgående CRM-hændelse modtageren bor på /v1/inbound.php?t=<token> til tredjepartssystemer, der skubber begivenheder ind.

Server- side aktivitet (action 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"
}

Opmærksomhedskonvention

Punktnotation

"order. completed" not "ordereCompleted.

Fortid

"button. clicked" ikke "button. clicck".

Vær specifik

"pricing.plan_selected" not "user_action".

Udvikler

Hvordan data flyder gennem OpsIQ

Forståelse af datastrømmen hjælper dig debug integration og optimere ydeevne.

Sådan virker det
Hvordan data strømmerData strømmer fra kontrol og beacon til OpsIQ kerne (CDP, identitet graf, AI hjerne, analytics, CRM) derefter ud via webkroge og REST API.Kontrollér& BeaconOpsIQ kerneCDP · identitetsgrafAI-hjerneAnalytikere · CRMWebkroge udREST API
Datastrøm

Indgående datastrøm

1
Kontrolsignal

EU JavaScript widget sender sidevisninger, klik og chat-beskeder til /beacon.php.

2
Begivenhedsindtagelse

Events stored in opsiq_events with site_key, event type, customer, and properties.

3
Sessionssamling

Session Builder grupper side visninger i sessioner (via cron).

4
Identitetsopløsning

Når anonyme optegnelser identificeres, er de knyttet til kundens profil.

5
Forbindersynkronisering

Konnektorer trække data fra eksterne platforme og gemme i connector cache.

6
AI-sammenhæng

AI samler kontekst fra: besøgshistorik, kundeprofil, konnektor data, KB, og prompt.

Udgående datastrøm

1
Brandtilfælde

Interne begivenheder brande (ticket. created, chat. message, order. completed).

2
Jobkø

Begivenhed placeret i async job kø.

3
Webhook-afsendelse

Afsender tegn og sender til alle tilmeldte endpoints.

4
Forsøg igen på fejl

Forsinkede leverancer genforsøgt med eksponentiel tilbageførsel.

Indstillinger

Opsætning reference

Indstillinger er kontrolcentret for et arbejdsområde. Alt nedenfor er opfanget til det arbejdsrum, du befinder dig i, så en konto kan køre flere mærker med forskellige identiteter, chatadfærd og regler om fastholdelse.

Finde en indstilling

Der er omkring seks hundrede individuelle kontroller i Indstillinger, spredt på tværs af elleve faner grupperet under fire menuer. Du forventes ikke at søge efter dem.

Søgeindstillinger (Ctrl + K)

Tryk på Ctrl + K, eller Cmd + K på en Mac, hvor som helst på siden Indstillinger. Skriv i enkle ord og tryk på Enter for at hoppe direkte til kontrollen. Søg tolererer små typoer og forstår relaterede ord, så scheduler finder Cron og privatliv finder sporingskontrollerne. Det viser kun indstillinger din rolle kan åbne.

Arbejdsområde og plan

General og Licence.

AI og kundesupport

Admin AI Assistent, klient chat, OpsIQ Skrivning og support portal.

Data og styring

Sporing og privatliv, tilladelser og sikkerhed.

System

Cron- setup (kun selv-hostet) og Fare Zone.

Gemning

Hvert faneblad gemmer sig på egen hånd med sin egen knap Gem. Klientchat og OpsIQ Skrivertasten deres til skærmen. Gem før du skifter faner; ændringer bliver ikke båret over.

Dybdeled

Den aktive fane er skrevet ind på siden adresse, så en fane kan bogmærkes eller sendes til en kollega.

Generelt: Virksomhedsidentitet

Det vigtigste kort på siden. AI læser disse værdier på hvert svar, rapport og dagligt korte.

Virksomhedens navn

Bruges i AI rapporter, daglige briefinger og brugervenlig-vender formulering. Match din hjemmeside sidefod.

Erhvervslivet

Tailors AI analyse, bly scoring, briefinger og undersøgelse forudsæt. Vælg mellem web hosting, e-handel, SaaS, fast ejendom, agentur, rådgivning, sundhedspleje, uddannelse, finans eller generel forretning.

Systemsprog

Sproget, der vises til alle, som ikke har valgt deres eget.

Brug browsersprog

Viser signe- i siden på den besøgende eget sprog. Når nogen vælger et sprog der, deres valg vinder, og dette aldrig tilsidesætter det.

Systemtidszone

Den zone, hele systemet kører i: datoer, rapporter, tidsplaner og baggrunden cron. Brug dine operationer tidszone, ikke dine kunder.

Generelt: GeoIP og sporing

GeoIP2 databasestil

Fuld sti til GeoLite2- City. mmdb. Autodetekterer på første belastning på tværs af cPanel, Plesk, DirectAdmin, Cloudways, Docker og almindelig Linux eller Windows. Tilføj Geolite2-ASN. mmdb i samme mappe for besøgende internetudbyder.

Geo- kildetilstand

Kun GeoLite2, Geolite2 med en Cloudflare nedslag, eller Cloudflare Kun.Cloudflare modes kræver, at stedet skal være proxyed gennem Cloudflare, med besøgende placering headers aktiveret for by og region detaljer.

Sessionstidsudløb (er)

Inaktivitet før en besøgssession anses for afsluttet. Standard 14400, som er fire timer.

Live genopfriskningsinterval (r)

Hvor ofte live feed genopfriskninger. Standard 30 sekunder.

Aktivt tærskelniveau (min)

Hvor længe en besøgende tæller som levende efter deres sidste sidebelastning. Standard 2 minutter. Dette er Live Feed drop- off, ikke sessionslængden.

Datatilbageholdelse (dage)

Sletter indsamlede og genererede optegnelser forbi denne alder: analytics, chat, billetter, feedback, transaktioner, AI telemetri, integration logs og CRM-aktivitet. 0 holder alt for evigt. Indstillinger, forfattet indhold og samtykke kvitteringer er aldrig fjernet.

Når en chat slettes

Vælger hvor meget af en slettet samtale forbliver på rekord: den fulde record, posten uden samtalen, eller score kun. Sletning altid skjuler chatten fra indbakken og besøgshistorikken. Planlagt tilbageholdelse og Glem besøgende altid slette i fuld uanset dette.

Trafik af sporbot

Tæller kravler som besøgende. Lad være; det puster besøgstæller og spytter hver rapport.

Feedback undersøgelse popup aktiveret

Viser den site- wide feedback widget til besøgende. Separat fra chatundersøgelser under Client Chat, Support Flow.

Generelt: AI funktioner

Master skifter for hver AI-overflade. Alle standard til at on og gemme per arbejdsområde.

AI Triage på billetter

Klassificerer hver billet efter kategori, prioritet og følelser, og skriver en tråd resumé øverst på billetten.

AI Triage Hover-oversigt

Viser triage tags og resumé i et værktøjstip, når en agent svæver en række i billetlisten. Kræver AI Triage.

Indbakke Kopiot (komponist)

Tilføjelse af udkast AI svar, Varmer, Shorter, Mere formelle og Apologetic knapper under billetten svarboks. Intet sender uden agenten.

Ask- OpsIQ Copilot

Den side- bevidste flydende copilot på hver admin side. Ved hvilken kunde, faktura eller billet er åben.

Morgenkort

På første åbne hver dag copilot præsenterer presserende billetter, forsinkede svar og venter chats. Søndage producere en uge i gennemgang.

Generelt: penge, branding, backup

OpsIQ basisvaluta

Hvert penge i alt i admin er konverteret til denne valuta til visning. Connectorer gemme deres egen kilde valuta; indstille, at pr stik.

Auto-sync FX priser

Genopfrisker priser hver sjette time fra et gratis offentligt foder uden API -nøgle. Du kan tilføje manuelle satser, der tilsidesætter foderet. Med automatisk synkronisering slukkes valutaer uden en manuel sats, efterlades ukonverteret.

Aktivér handels- og faktureringsfunktioner

Skibe off. At tænde det afslører salg og konverteringer side, dashboard indtægtskort og Live Intelligence Feed. Med det slukket, er hver pris overflade skjult og salgssiden forlader menuen.

Handelslogan

Lær OpsIQ din formulering: om du gør fornyelser, ordet for fornyelse, hvad du sælger, og hvad købere kaldes.

Branding og logoer

To uploads, en til lys baggrunde (admin sidebar) og en til mørk (sign-in side). PNG, JPG, WebP eller SVG op til 3 MB.

Efterretningsagent, tillad private SSH -mål

Auto- Implementér SEO agent forbinder over SSH. Private, smutback og reserverede adresser blokeres som standard som en anti-SSRF foranstaltning. Kun aktivere på self-hostede installationer, der skal nå frem til en lokal server.

OpsIQ Backup / Gendannelse

Eksportér alle indstillinger og OpsIQ-Ejet bord plus uploadede filer. Gendan erstatter OpsIQ konfiguration og kun optegnelser; det rører aldrig kunder, fakturaer, billetter, tjenester, domæner, ordrer eller transaktioner.

⚠️
Tag en sikkerhedskopi, før du bruger noget i Fare Zone. Backup lever i almindelighed og slette handlinger live i Fan Zone, så det er nemt at nå Slet knappen uden at have eksporteret først.
Indstillinger

Indstillinger: Sikkerhed

Beskyttelse af admin sign-in, dine personalekonti og data OpsIQ indsamler. Kundesign- in for support portalen er konfigureret separat.

Signal-in beskyttelse

Brug af Google reCAPTCHA

Stopper bots og crediential fyld på admin signe- in. Vælg v3 (usynlige, scorede) eller v2 (afkrydsningsfelt), indstille v3 score tærskel, og levere webstedet og hemmelige nøgler. Disse samme nøgler genbruges af support portalen anmodning formular.

Mislykkedes - Login Auto- Lockout

Bloker en adresse efter et antal fejl i et vindue, i et antal timer. Du kan tilpasse den låste-side besked og vise en lille servitrice-skærm distraktion.

Login Hadeshing

Password politik med en minimal længde, afvisning af adgangskoder fundet i kendte overtrædelser, per- konto lockout mod kreditmæssig fyld, obligatorisk to-faktor for hver admin, password re- entry før farlige handlinger, og new- enhed sign-in advarsler.

Enkelt signal- tændt (OIDC)

Personale sign-in via din identitet udbyder. Har brug for udsteder URL, klient ID og klient hemmelighed. Auto-levering domæner, en per linje, oprette brugere automatisk på første sign- in.

Single sign-on (SAML 2.0)

For udbydere, der taler SAML. OpsIQ leverer ACS-svaret URL og SP enhed ID; du leverer den IdP enhed id, sign-in URL, valgfri signatur- out URL og X.509 signeringscertifikat. Felter med e- mail og navn er kun nødvendige for ikke-standard attributnavne.

SCIM Provisioning

Directory- drevet oprettelse, opdatering og deaktivering af OpsIQ Konti.OpsIQ leverer SCIM base URL; du genererer mærkede tokens her, så man kan blive tilbagekaldt uden at bryde resten.

Trusler, blokering og indsamling

Udgående kongres-kvoteliste

Begrænsninger, som eksterne værter denne workspace-stik kan kalde. Companion til SSH målstyring i almindelighed.

Trussel Scoring og Auto- Block

Bloker en besøgende når deres trusselsscore passerer din tærskel. 0 deaktiverer det. Se Security Oversigt side i en uge, før du vælger et nummer.

Blokér sidemeddelelse

Den besked en blokeret besøgende ser, som almindelig tekst eller din egen brugerdefinerede HTML blockskærm.

Hovednetvitaler fra rigtige besøgende

Måler LCP, INP og CLS fra rigtige sessioner.

Bundet, retry- safe event levering

Brugerdefinerede begivenheder kø i browseren og levere i partier med reles, reducere tab på dårlige mobile forbindelser.

Signerede sporingsbeacons

Reale widget-indlejringer bærer en roterende kryptografisk token, så smedede sporingsdata kan afvises. Off som standard; gør det muligt at ændre hvordan indlejringerne autentificere, så test først.

Sikkerhedsindberetninger

Off som standard. Detektering og blokering køre uanset. Dette kort kontrollerer, om du får besked, og hvor meget AI hjælper.

Aktivér sikkerhedsadvarsler

Master switch for dette kort.

Tærskel for fejl- login

Hvor mange fejlslagne signaler i en kort periode tæller som en bølge værd at advare om.

IP 's omdømme

Tilfører en trusselsscore for besøgende, der optræder i offentlige misbrugsfeeds.

Overvågning af webstedet

Timeløn og TLS -kontrol af udløb, alarmering før et certifikat bortfalder.

AI sikkerhedsanalytiker og AI hændelsesbriefinger

Tilfører en forklarlig dom til mistænkelig aktivitet, og grupper relaterede angreb i en enkelt læsbar hændelse snarere end en strøm af begivenheder.

Autopilot for politik

Handler på egen hånd, gør hvad det lærer fra en hændelse til en foreslået eller anvendt regel. Lad off indtil du har revideret sine forslag og er enig med dem.

Daglig sikkerhedsdigest og ugentlige kropsvejleder

En daglig gennemgang af siden med sikkerhedsoversigtog en ugentlig hærdning af tjeklisten, der viser hvad der er beskyttet og hvad der stadig er åbent.

Auto- udløber gamle forslag

En foreslået blokregel, du aldrig handlede på udløber af sig selv i stedet for at akkumulere.

DOM Sessionsreplay

Aktivér DOM session - spil igen

Optager besøgssessioner til afspilning. Når der ikke er indlæst fra genafspilningsbiblioteket, så det ikke koster noget at lade være med at spille. Optagelser udtages og privatmaskeres, og ses på Session Replay side under Analytics.

Prøvehastighed, maksimal indfangning, retention

Hvilken andel af sessioner at optage, hvor længe en enkelt optagelse kan køre, og hvor mange dage optagelser er holdt.

⚠️
Session replay registrerer reelle mennesker ved hjælp af dit websted. Hold prøve sats og tilbageholdelse så lav som vil stadig besvare dit spørgsmål, og afsløre det i din meddelelse om beskyttelse af personlige oplysninger.
Indstillinger

Indstillinger: Sporing og privatliv

Hvad OpsIQ kan indsamle, og hvor længe hver slags rekord overlever.

Udelukkelse

Ekskluderede IPs og CIDR-ranges

Adresser aldrig sporet, en per linje, præcise adresser eller CIDR intervaller. Den reneste måde at holde dit eget team ud af din analytics, fordi det dækker alle på denne adresse snarere end kun signeret-i admins.

Ekskluderede URL -stier

Sidemønstre aldrig sporet, en per linje, jokerkort med en stjerne. For eksempel /admin/* holder hele bagkontoret ud af besøgsloggen.

Datatilbageholdelsespolitik

Per- undersystem automatisk udrensning i dage. Separat fra den samlede datatilbageholdelsesindstilling generelt og fra Fare Zone udrensning.

AI interaktionslogfiler

Tiltrolighedstrametri med korte forhåndsvisninger af forespørgsel og svar. Standard 90 dage. Dette indeholder den mest kundetekst, så forkortet det først, når der er en stramning af privatlivets fred.

AI-brugsbegivenheder

Per- call token tæller for omkostningsrapportering. Standard 90 dage. Kun tal, intet brevindhold.

Aktionsrevisionsspor

Den Tamper- evident handling og sikkerhedsloggen. Standard 365 dage. Hold denne længste; det er dit bevisspor.

Diagnostik

Systemhelbredspapirer. Standard 30 dage.

Ubesvarede spørgsmål

Klynger af spørgsmål, som AI ikke kunne besvare. Standard 90 dage. Arbejde gennem dem på de spørgsmål, AI missede side, før de udløber.

Watchdogs og eksport

Metriske anomaly-rapporter

Daglig sammenligning af i går mod den seneste baseline, alarmering, når en metrisk bevæger sig mere end din tærskel. Standard 35 procent. Off som standard.

Lagereksport

Natlige dumps af sessioner, besøgende, sidevisninger og relaterede tabeller for din egen BI stak, i et format du vælger, holdes i en række dage. Off som standard.

Indstillinger

Indstillinger: Admin AI Assistant

Den flydende assistent dit personale bruger inde i admin, med live læse adgang til kunder, fakturaer, billetter, servere og cron logs. En anden assistent fra customer-står en under Client Chat.

Aktivér OpsIQ AI - widget

Viser den assisterende knap på hver admin side. Off skjule det for alle.

Layout og adfærd

Hjørneposition, panelbredde (320 til 600 px), maks. højde (400 til 900 px), hjørne radius (0til 24), skriftstørrelse, og en frosted glas slør bag panelet.

Vis hurtige Chips

One- klik genvejsknapper under overskriften. Den hurtigste vej ind for de fleste medarbejdere.

Vis model- info

Viser hvilken model der blev besvaret, og hvor lang tid det tog. Nyttig mens tuning omkostninger, støj til daglig brug.

Per- admin adgangsport

Viser kun assistenten til en signed- i admin hvis brugernavn og e-mail både matcher en OpsIQ agent, der er tildelt dette arbejdsområde. Ejere altid passere. Brug Check min adgang knap før du aktiverer eller du kan låse dit eget team ud.

Person

Vis navn, overskrift-tagline og en brugerdefineret velkomstbesked som vises når panelet åbnes.

Smart quick- action Chips

Redigér etiketten og den underliggende prompt for hver genvej, tilføj din egen eller nulstil til standardværdier. Etiketten er hvad personalet ser, prompten er hvad AI modtager.

Farver og former

Chip form (pille, afrundet, firkantet), chip farver, korttema og afsender form (rund, egern, firkant), med en levende preview.

Samtalememory

Assistenten husker hver person historie på tværs af browser sessioner, op til 120 beskeder, gemt i din egen database. Ryd det for at starte frisk.

Indstillinger

Indstillinger: Klientchat

chat widget dine kunder bruger, og det største område af Indstillinger. Seks under- faner, med master switch og Gem fastgjort til toppen af fanebladet.

Arbejd gennem underfanebladene i rækkefølge efter en ny installation: Identitet og Kopiér, Udseende, Opførsel, Support Flow, Viden-træning. Avanceret er infrastruktur og kan vente.

Identitet og kopi

Mærkets identitet

Kontrolnavn, tagline, AI-navn, navnet der bruges til system og inaktiv meddelelser, og hvordan agent navne vises. Agent Name Kilde bestemmer mellem rigtige navne, et brugerdefineret navn eller en team etiket.

In-Chat HilsenName

To hilsner, en for alle besøgende og en for identificerede besøgende. Et spørgsmål starter flere samtaler end en erklæring.

Popup- teaser

Den flydende besked før chatten åbnes, med sit eget navn, skriftstørrelse og farver. AI kan skrive teasers, med kontrol for hvor mange der skal generere, hvor mange at vise per besøg og kløften mellem dem.

Prompts og Handoff

Det fulde script: beder om et navn og e-mail, bekræftelser, anmoder om en menneskelig, ingen agenter til rådighed, billet oprettet eller annulleret, aflevering venter. Omkring to dusin individuelle linjer i et kollapsebart panel.

Status og tomgang meddelelser

Tre bruger- synlige beskeder: agent lukker chatten, besøgende er gået stille, og agent hænder tilbage til AI. Undgå intern formulering som løst eller triaged.

Komponist og forslag

Input pladsholder, talk-to-a-human knap etiket, og de foreslåede åbning spørgsmål. Tre gode forslag aflede flere billetter end en side af artikler.

Launcher, ikon og Avatarer

Launcher ikon, en valgfri anderledes ikon når åbne, lancerer størrelse, og billeder til den menneskelige agent og AI.

Udseende

Tema og glas

Tema mode, en premium farve forudindstillet, slør intensitet og ugennemsigtighed, plus toggles til animationer, separator linjer, skjule statuskortet, skjule besked boks kort og skjule den tætte knap. Start med et forudindstillet; det sætter snesevis af farver på én gang.

Vigtigste farver

Launcher, header, helppanel, links, knapper, systemopslag og komponist, hver med start og slutfarve for gradienter. En brug standard glas indstilling ignorerer disse og holder den gennemsigtige finish.

Panel, Bubbles og Chips

Omkring tredive plukkere dækker panelet, kant, tekst, input område og hver boble type (besøgende, AI, agent, skrive, system) plus forslag chips og deres svæver tilstand. Kun åbne dette for præcis mærke matching, og kontrollere kontrast på boble tekst.

Layout og form

Panelbredde og højde, hjørneradius, skriftstørrelse, skærmposition, affyringsform, boblestil og om avatarer viser sig. Test bredden på en telefon.

Opførsel

AI svarer automatisk

Master skifte for AI svar. Off betyder hver besked venter på et menneske.

Menneskelige opfølgning og naturlig dobbelt- tekstning

En blid opfølgning, når en besøgende går stille, og en valgfri kort anden besked den måde, en person ville sende en. Tuneret med max followups per stilhed, første forsinkelse, senere multiplikator, tilstedeværelse vindue og maksimal sekvens vindue. Kan begrænses til business timer, og undertrykkes efter en simpel tak.

Skrivemaskiners svar og svartempo

Uanset om svar skrive ord for ord, og hvor hurtigt assistenten svarer, ved forudindstillet eller din egen minimum og maksimal forsinkelse i millisekunder. En lille forsinkelse lyder som mere menneskelig end et øjeblikkeligt svar.

Live oversættelse

Hver agent læser og skriver på deres eget sprog, mens den besøgende læser deres.

Aflever til AI efter agent tomgang

Minutter over agent inaktivitet før AI genoptager samtalen.

Åbn chatten automatisk

Sekunder før widget åbner sig selv.0aldrig åbner. Intrusive på mobil; orlov på0med mindre de er testet.

Smartere svar

Planlægning forud for one- pass svar, tænkende dybde, en valgfri separat model for agent svar, der viser ræsonnement til besøgende, tolererende fejlspelling, lang-samtale hukommelse, begrænser assistent til din virksomhed kun, priser i den besøgende valuta, og hvordan links vises. Kun snak om din virksomhed bør være på for næsten alle.

Omkostningsbesparelser

Skips viden søgning efter hilsner såsom hi og tak, og hætter den længste svar i tokens. Trims koster uden at ændre svaret kvalitet på reelle spørgsmål.

Sprog

Hvilke sprog widget understøtter, og hvordan det vælger en for en besøgende.

Kundekontosvar

Svar fra en signed-i kundens egen konto, eventuelt kiggede op live, og eventuelt kun indlæses når det er nødvendigt. Læsning-kun i alle tilfælde; læsse-når - behov væsentligt reducerer omkostningerne.

Restitutionsbeløb

Assisteret refusion anmodninger, hvor assistenten samler detaljer og hænder til en person. Det aldrig fuldfører en tilbagebetaling selv.

Samtale og widget

Holde tidligere samtaler, fortsætte en chat på tværs af dine tilsluttede websteder, draggbare vindue, bede gæsterne om en e-mail, og lade dit team gøre en chat til en billet.

Kontrolfunktioner

Emoji picker, vedhæftede filer med en valgfri paste- only mode, AI-billede forståelse, inline ikoner, mikrofon, talktoagent knap, besøgende lyde, bilag preview, voice-call knappen og session isolation. AI-image forståelse er hvad lader en besøgende indsætte et fejlbillede og få et nyttigt svar.

Admin indbakke, meddelelser og velkomstpopup

Besøgende velkommen popup, plus dine agenter advarsler: indbakke lyde, desktop meddelelser, hvisker lyde, om private hvisken bip, og indbakke meningsintervallet.

Støtte Flow

Human Handoff

Hvordan anmodninger om en person er tildelt, de sekunder en agent har til at svare, om faldende returnerer chatten til AI, og om AI genoptager når tidsfristen udløber. Indstil dette før du går live eller en besøgende, der beder om et menneske blot venter.

Arbejdstimer

Åbningstider, tidszone og closed- timer meddelelse. Udenfor disse timer AI vil ikke tilbyde et menneske. En separat tidsplan fra billetten business timer under OpsIQ Skrivning.

Svar når AI 'en er slukket

Det første svar på et nyt budskab, svaret når nogen allerede er i kø, og hvor længe før man gentager.

Offline form

Viser en kontaktformular i stedet for chatten.

Billetopslag og meddelelser fra afdelingen

AI billet bevidsthed, så en besøgende citerer et billettal får sin reelle status, og hvilke afdelinger AI kan rute til. En bygning-i panel viser de virkelige modtagere for hver afdeling, løst på samme måde anmelderen løser dem, så du kan se før en kunde gør, at en afdeling advarer ingen.

Hjælp Center i chat- kontrol

Lader besøgende gennemse publicerede artikler uden at forlade chatten. Du vælger hvor indgangen vises, nederste bar etiket og ikon, og om du vil tilbyde et link til det fulde hjælpecenter. Off som standard.

Samtalerating

Stjernebedømmelse udløses, når en agent lukker chatten, når et ophør, eller efter en inaktivitet periode du har indstillet. Vælg en eller to udløsere, ikke alle af dem.

Post- chatundersøgelse

En kort undersøgelse, når den besøgende lukker chatten med dit spørgsmål, forsinkelse, timing regel og en cap per besøg. Besøgende kan også e-mail eller downloade udskriften. Et spørgsmål bliver besvaret; tre ikke.

Post- chat- e- mail- undersøgelse

En opfølgning undersøgelse via e-mail efter samtalen slutter, eventuelt på det sprog den besøgende chattede i, med kontrol over forsinkelse, emne, intro, spørgsmål, både knap etiketter og tak-du linje.

Svar på feedback

Tommelfingre op og tommelfingre ned på hver AI svar, fodring kvalitet dashboards.

Samtale- arkivComment

Auto- arkiv efter dage, automatisk-løse efter minutters stilhed, og slette arkiverede samtaler efter dage. En tredje plads retention er indstillet, sammen med General og Tracking.

Videnstræning

Det, assistenten ved, betyder ikke andet i Client Chat.

Viden om hjemmesiden

Kravler dit websted, så assistenten kan svare fra det. Op til ti startlinks, en side grænse, et link dybde, og udelukkede mapper. En enkelt URL kan testes før fuld kravl. Ekskl checkout, konto og admin stier.

Indlejringer

API -tasten og modellen, der gør sider til søgbare betydning snarere end søgeord matcher.

AI vidensorganizer

Et klik og AI læser hver FAQ og kravlede side og sortere dem i kategorier.

FAQ 'er, verificerede svar

Spørgsmål og svar par behandles som den højeste prioritet kilde, hver med en status, vægt og kategori. Searchable, kan overføres fra JSON, og AI kan skrive dem fra en beskrivelse af din virksomhed. Når assistenten får noget galt, skrive en FAQ: det harmløse sider, så fix er øjeblikkelig.

Avanceret

Præstation og grænser

Poleringsinterval, meddelelsesprocentgrænse og vindue, maksimal vedhæftningsstørrelse, bilag forsøg per vindue, og tilladte filudvidelser. Udvidelseslisten er en sikkerhedskontrol; holde det stramt.

Levering af realtid

Øjeblikkelig besked og status levering i stedet for at aflytte, gennem Pusher, Ably eller Firebase, med en fallback valginterval. Polling er fint for de fleste steder.

Trykmeddelelser

Enhedsalarmer til agenter gennem Pusher Beams eller OneSignal, med en enhed interesse.

Web push (VAPID)

Browser skubbe ved hjælp af dine egne genererede nøgler uden tredjeparts udbyder. Genereret her, ikke i Fare Zone.

Stemme, video og skærmdeling

TURN legitimation så opkald forbinde gennem restriktive netværk, ved hjælp af Cloudflare eller Twilio akkreditiver eller din egen TURN URL, brugernavn og kreditværdighed.

Arbejdsgang i indbakke

Agent workspace indstillinger i stedet for besøgende indstillinger: first-response SLA på få minutter, gemte kø visninger, tastatur genveje og kommandopalet, in- samtale søgning, og kundebilletter i inspektøren.

Meddelelseskanaler

WhatsApp, SMS, Facebook Messenger, Instagram, Telegram, X direkte beskeder og LINE, hver med sin egen AI auto- svar kontakt, plus en politisk skifte for AI handlinger på kanaler, et svar debounce og WhatsApp re- engagement skabelon. Hver kanal lander i samme indbakke som web chat.

En Live Widget Preview nederst i fanebladsopdateringer som du redigerer. Brug den i stedet for at genindlæse din hjemmeside for at kontrollere en ændring.
Indstillinger

Indstillinger: OpsIQ Skrivning

Billetter besvaret skriftligt: automatiske svar, den indfødte billet system, eskalering, business timer, routing og customer-vender e-mails.

Auto- svar

Vis OpsIQ skriveknapper

Tilfører skrivehjælpsknapperne til dine agenter i admin.

Aktivér billet- svar automatisk

Kører nye billetter og svar og svarer dem efter en forsinkelse. Start med det ud og gennemgå udkast til en uge. Refusioner, aflysninger og adgangsændringer bør altid nå frem til en person.

Autosvarafdelinger

Hvilke afdelinger auto-svar kan svare i. Alt ikke er opført er overladt til et menneske, som er den sikre standard.

Svartidsplan (minutter)

Hvor længe skal man vente, før det automatiske svar sender. Et øjeblikkeligt svar lyder som en robot; et par minutter læser som et hurtigt team.

Max AI svar pr. billet efter afdeling

En per- afdeling cap, for eksempel Billing 1 og støtte 3. Uden en hætte kan en forvirret tråd løkke.

Replik længde, status og identitet

Maksimale skrivende tokens, billetten status efter et svar og efter en eskalering, og som admin konto de automatiske svar tilskrives. Brug en klart navngivne konto, så personalet kan fortælle AI-svar fra menneskelige dem.

Indfødte billettransaktioner

Indfødt billettesystem

Billetten er indbygget i OpsIQ, til installationer uden ekstern helpdesk.

Pipe indadgående e-mail i indfødte billetter

Det vender indkommende e-mail ind i billetter. OpsIQ leverer endepunktet URL, Auth token, script sti og PHP binær. Alt, der kan sende til dette endpoint kan skabe billetter, så holde token hemmelighed.

Multi- vende svar og forsinkelse og debounce

Om AI holder svare som samtalen fortsætter, og om det venter et stille vindue så tre hurtige beskeder få en overvejet svar. Det rolige vindue er den bedste enkelt indstilling til at gøre automatiserede svar føler sig overvejet.

Offentlig støtteportal

En brugervenlig-vender side, hvor nogen kan hæve og spore en billet, med en valgfri velkomstlinje. Dens adresse og udseende er konfigureret i Support Portal fanen.

Billetnummerformat

Hvor mange tilfældige bogstaver vises i genererede billetnumre.

Email kunder på deres eget sprog

Billete- e-mails følger kundens sprog. Personale e-mail ændrer aldrig sprog: meddelelser, afdelings advarsler, briefinger og planlagte rapporter ophold i dit systemsprog.

Bekræftelse og bekræftelse

En fast bekræftelse på nye billetter, plus bekræftelsesmeddelelser når en billet åbnes, når feedback er tilbage og når en bøde er lukket, hver med en live preview. Der er også en global e-mail skabelon wrapper og linket bag visningen din billet knap.

Al spam screening

Screens billetter fra ukendte afsendere, og kan eventuelt flytte mistanke spam på egen hånd. Lad automatisk gå ud indtil du har set dens vurdering.

Auto- luk tomgangsbilletter

Lukker en billet efter en række stille dage. Fortæl kunden i den afsluttende besked, hvordan man åbner.

Forretningstider (SLA-kalender)

Tidszone, åbnings- og lukketider, arbejdsdage og helligdage for første- svar og afviklingstidspunkter. En separat tidsplan fra arbejdstiderne under klientchatten.

Auto- tildele nye billetter

Automatisk opgave, eventuelt kun til agenter, der er online, med agent færdigheder og en match følsomhed for skill- baseret routing.

Foreslår duplikerede billetter

Spotter når en kunde åbner en billet tæt på en, de allerede har, med en justerbar match følsomhed.

Tilfredshedsundersøgelse efter lukning

Email en undersøgelse om dagen efter lukning. Resultater vises på CSAT siden.

Underret afdelingen via e-mail

Email afdelingen når en ny billet ankommer. Modtagere er medlemmerne af denne afdeling, ikke afdelingen postkasse adresse, som er den indgående adresse billetter ankommer på.

Hvad AI kan læse

AI-klientdataadgang

En masterkontakt plus individuelle read- only tilladelser til klientprofilsammenfatning, fakturaer, transaktioner, kreditbalance, produkter og tjenester, domæner, linkede servere og en topniveaukontooversigt. Start med profilen resumé og tilføje kategorier som svar har brug for dem.

Eskalering og viden

Aktivér eskalering af AI-billetten

Flytter en billet til en bedre egnet afdeling, før du svarer. Du vælger de tilladte afdelinger, checkforsinkelsen og kan skrive dine egne instruktioner om eskalering. Tænd den interne eskaleringsnote, så dit team kan se hvorfor en billet flyttede.

KendskaberName

Om svar bruger kundens sprog, om de trækker på kravlede links og FAQ 'er, om AI læser billede og PDF bilag, vidensvartilstand, uanset om importeret JSON viden bruges, og om kildelinks kan forekomme. Brug gennemkravlede links og FAQ 'er bør være på, eller AI er gætte.

Stop automatisk svar efter menneskeligt svar

Når personalet svarer, AI stopper med at besvare denne billet. Uden det AI kan tale over din egen agent.

Billet- og e-mail-instruktioner

Free- tekst instruktioner forme tone og indhold for hvert svar, med et læseligt arbejdet eksempel. Vær specifik om, hvad AI må aldrig gøre.

Importér JSON viden

Upload eller indsæt en JSON videnfil til skriveassistenten.

Knap Studio

En komplet designer til brugervendsknappen: display stil, størrelse, etiket, ikon, form, mindste bredde, baggrundsstil med primære og sekundære farver, gradient vinkel, kant, hjørne radius, skygge, typografi, polstring, tomgang animation, svæver bevægelse og farver, og fokus ring, plus en brugerdefineret CSS boks for noget kontrollerne ikke dækker.

Indstillinger

Indstillinger: Support Portal

Den brugervenlige side, hvor folk rejser og sporer billetter og læse dine hjælp artikler. Dette fane styrer hvordan det er nået, og hvordan kunderne logger ind; dens visuelle design gøres i Support Portal Studio.

Portal Studio eller Indlejret Billetportal: hvilken en vil jeg have?

Det er to forskellige produkter, og folk blander dem konstant sammen. De løser forskellige problemer, og det er normalt at køre begge dele sammen.

Support Portal Studio: et sted, du sender kunder til

Studio designer en komplet support websted, OpsIQ værter for dig. Det har sin egen web-adresse, eller dit eget domæne, og det bærer hele selvservicering oplevelse: hjælp artikler med søgning, anmodningsformularen, billet historie, kunde sign-in og assistent. Vælg en skabelon, arbejde gennem Tema, Navigation, Layout, Viden, Footer, Brand, Billetter, Assistent, Form og CSS, preview på skrivebordet, tablet og telefon størrelser, derefter offentliggøre.

Brug den når du ønsker en mærkevarer destination kan du pege hver kunde på, og du vil helst ikke bygge eller vedligeholde et supportområde inde i din egen hjemmeside.

Indlejret billet Portal: billetter inde i dit eget websted

De indrammede putter kun billetten oplevelse på en side af din egen hjemmeside. Kunder åbne, spore og svare på support anmodninger uden nogensinde forlader dine sider, og din egen header, navigation og design forbliver præcis som de er. Sæt layout, udseende og adgang regler i widget byggeren, få vist resultatet, så kopiere den indlejrede snap ind på din side.

Brug den når du allerede har en hjemmeside eller program med sit eget design, og du ønsker støtte til at ske inde i det snarere end at give kunden ud til en anden adresse.

Den korte version

Studio bygger et sted, du sender kunder til. Den indhyllede medbringer billetter til hvor dine kunder allerede erMange virksomheder kører begge dele, indlejrer billetten i deres kontoområde for inkontekstanmodninger, mens de holder den hostede portal som det fulde selvbetjeningsmål med artikler og søgning.

Adresse og adgang

Adgangstilstand

Uanset om portalen er åben for nogen eller begrænset til signed- i kunderne. Åbne portaler får flere billetter og mere spam.

Valg af layout

Om portalen og hjælpecentret deler en helt eller bruger to, hvilken navigation og sidefod vises på begge overflader, og navigationssektionens etiket.

Portadresse

Den adresse, kunderne bruger. Vælg et navn og OpsIQ viser den resulterende portal og matchende hjælp center adresser. Ændring af det senere bryder links, du allerede har sendt.

Dit eget domæne

Serverer portalen fra et domæne du ejer, såsom support. yourdomain. com.

Indlejret billetteringsportal

Skifter på drop- i widget beskrevet ovenfor, og åbner indlejrede builder, hvor du vælger layout, udseende og adgang regler, få vist resultatet og kopiere snippet til din side. Dette er ikke Portal Studio: Studio designs den hostede portal, dette sætter billetter inde dit eget websted. Begge kan være på én gang.

Hvordan kunder logger ind

Disse er dine kunder sign-in muligheder. Personale sign - in er konfigureret under Indstillinger, Sikkerhed.

Signal- i metoder

Hvilke indstillinger vises på signe- in side. Forbinder og e-mail sign- i arbejde automatisk.

Socialt login

Forbrugerkontoudbydere, der hver har brug for et klient- og -hemmeligt id, med den omdirigerede adresse, som OpsIQ leverer til at registrere sig hos denne udbyder.

Enkelt signal- on (OIDC)

Kundesign- i gennem en identitet udbyder, med udsteder URL, klient-id, hemmelighed og en valgfri tilladt e-mail domæneliste.

Kunde SAML 2.0

EU SAML tilsvarende. OpsIQ leverer ACS-svaret URLog SP enhed ID; du leverer den IdP enhed id, sign-in og sign - ud URLs, X.509 certifikat og valgfri attributnavne. Drej SAML på i Sign-in metoder, eller det vil ikke forekomme.

Søgeløse signatur- i din app

En underskrevet dyb link, så en kunde allerede logget ind til din ansøgning lander i portalen uden at logge ind igen. OpsIQ leverer signeringshemmeligheden, portal URL og arbejdsrums nøgle, plus en generator til et signeret testlink. Brug generatoren før du skriver nogen kode.

Skriv under overalt

Underskrivelse ud af portalen også tegn kunden ud af din ansøgning.

Indtagelse og beskyttelse

Formularfelter

Hvilke strukturerede felter anmodningen formular indsamler. Hvert ekstra felt mister indlæg, så spørg kun om, hvad du har brug for at triage.

Beskyttelse af spam og misbrug

En honeypot og hastighedsbegrænsning beskytter altid den offentlige form. Øverst kan du blokere engangs e-mailadresser, tilføje dine egne blokerede domæner, og tilføje en CAPTCHA ved hjælp af GooglereCAPTCHAellerCloudflareTurnstile.reCAPTCHAgenbruger de nøgler, der allerede er sat under Indstillinger, Sikkerhed; Turnstile tasterne indtastes her.

Portalanalytics

En read- only summary of portal activity in the last thousand days.

Indstillinger

Indstillinger: Tilladelser, licenser, Cron- og fareregion

Systemgruppen, plus team- adgangskontroller der afgør hvem der kan se hvilke Indstillinger fanebladet.

Team Access og tilladelser

Per- admin tilladelser

Hver admin får et eksplicit sæt tilladelser, der dækker chat-indbakke adgang, som Indstillinger sektioner de kan redigere, og deres afdelinger. Enhver med Full Administrator rolle altid har enhver tilladelse. Opsætning tilladelser beslutte, hvilke faner en person ser, så giv den smalste sæt, der lader dem arbejde.

Licens

Viser dit nuværende kørekort, hvad det giver dig ret til og dets status.

Kron- opsætning

På OpsIQ cloud de planlagte opgaver kører for dig, og fanen er skjult. En linje af crontab drev hver skemalagte opgave: billet auto- svar, eskalering routing, udskiftning-rate opdaterings-, postkasse polling og konnektor synkronisering.

1
Kopiér linjen

Fanebladet viser den nøjagtige crontab linje for din server med den korrekte PHP binære allerede valgt.

2
Tilføj det til crontab

Kør crontab-e som brugeren, der kører PHP og indsætte den enkelte linje. På cPanel bruge Cron Jobs værktøj i stedet.

3
Verificér

Inden for et minut hjerterytmen fliser lyser op. Brug Kør nu til at teste med det samme i stedet for at vente.

Hjertepanelet viser sidste løb, varighed og hvad der blev behandlet for både auto- svar kø og e-mail og connector poll. Det advarer om, når den sidste kørsel kom fra den manuelle web-knap i stedet for en reel server cron, og når et hjerteslag er gået skævt.

Fare-zone

Slet alle sporingsdata

Kører alt OpsIQ indsamlet eller genereret. Du sætter kryds i, hvad der skal inkluderes og skrive bekræftelsessætningen præcist. Indstillinger og site konfiguration, blokerede adresser, alt dit team skrev (videnbase, FAQ 'er, oversættelser, portal design, handling definitioner) og samtykke kvitteringer er alle bevaret.

Udnytte data ældre than

Den samme sweep begrænset til rekorder ældre end 30, 60, 90 eller 180 dage, eller et år. Ved automatisk rulning retention bruge fastholdelse værdier i Generelt og Tracking i stedet og lade den planlagte opgave gøre det.

🚫
Eksportér en sikkerhedskopi fra Indstillinger, General før du bruger noget i Fare Zone. Disse handlinger kan ikke fortrydes.
Indstillinger

Håndtering af dit team

Inviter teammedlemmer og tildele roller til at kontrollere, hvem der kan få adgang til hvad.

Hold
Team & afdelingerHoldets skærm: en tabel over administratorer med kontakt, rolleskilt (Ejer, Full Admin, Agent) og de afdelinger hver kan få adgang.Team & afdelingerarbejdsområdeTeam & afdelinger+ Gem admin brugerKONTAKTROLDATAAO[email protected]Ada OwusuCity in ItalyEjerAlleKM[email protected]Kojo MensahCity in New ZealandFuld AdminAlleRT[email protected]Rita TettehAgentFaktureringBuffet[email protected]AgentStøtte1TEAMInviter & administrér administratorer2ROLESEjer · Fuld Admin · Agent3SCOPEDAdgang til per- afdeling
Den rigtige team skærm: hver admin med deres kontakt, rolle og de afdelinger, de kan nå, agenter scoped, ejere fuld.

Ruller

Ejer

Fuld adgang, herunder licens, fakturering og farezone.

Fuld Admin

Fuld adgang undtagen licens og fare zone. Kan administrere administratorer.

Agent

Kun til de udvalgte afdelinger.

Invitation til teammedlemmer

1
Gå til team

Naviger til holdet i sidepanelet.

2
Klik på Invitér

Indtast teammedlemmets e-mail.

3
Sæt rolle

Vælg ejer, fuld admin eller agent.

4
Tildel afdelinger

For agenter, vælg tilgængelige afdelinger.

5
Send invitationen

De modtager en e-mail med et setup link.

Indstillinger

Holdets ydeevne

Hvordan dit supporthold udfører. Adgang er med tilladelse, ikke af rolle: visningen tilladelse åbner siden, administrere tilladelse låse mål, QA og de alfanumeriske læser, og belønnings- finansielle tilladelse er hvad tilføjer Belønning fanen. Et team bly kan gives nogen af disse uden at blive en fuld administrator.

Holdets ydeevne
Holdets ydeevneTeam- performance-skærmen: agenter rangeret af en sammensat score bar, CSAT og en belønning balance med en Pay-knappen per række.Holdets ydeevnearbejdsområdeHoldets ydeevneUDDANNELSEHVORCSATBALANCERTRita Tetteh4.8$42BetalBuffetSam BoatengCity in New York USA4.5$28BetalKMKojo MensahCity in New Zealand4.2$15BetalAOAda OwusuCity in Italy4.9$51Betal1SCOREDKompositydelse2CSAT & LOADBedømmelser + volumen3REWARDSSaldi på betalingsbalancens løbende poster
Den virkelige team- performance skærm: hver agent scorede på volumen og CSAT, med en belønning balance kan du betale ud per række.

Hvordan siden er organiseret

Team Performance er fem faner. Hver svar et andet spørgsmål, og de bestilles af hvor hurtigt de normalt har brug for dig.

01 Kommandocenter

Live kø tilstand, kunderesultater mod dine mål, hvordan kapacitet blev brugt, situationer har brug for en beslutning, og bevis- justeret per-holdmats indeks.

02 Teammates

Leaderboardet, anerkendelse (mest forbedret og striber), quests, og opt- i kontrol for hvem kan se rangering.

03 Kvalitet

Scorekort, registrerede evalueringer, chance- korrigeret anmelder aftale, reviewer drift, og bevismateriale tvister.

04 Belønninger

Token værdi, udbetaling krav, og den regulerede periode tildeling: autorisere et finansieret loft, gennemgå forhåndsvisning, afslutte.

05 Historie

Hvordan arbejdsrummet har bevæget sig over tid: trendmålinger med et diagram, og en 28-dag dækning heatmap viser, hvornår holdet faktisk arbejdede. Hvert kort skjuler sig selv indtil der er nok historie til at tegne det.

Uscorede er ikke nul

En holdkammerat uden nok håndteret volumen - eller hvis dimensioner der er beviser for, der giver op til halvdelen af den indstillede vægt - vises som uscoret. Deres score, rang og band er tomme og deres nedbrydning er skjult. Dette er bevidst: at gøre en fraværende måling som nul sætter nogen i bunden af en rangering for at have en rolig uge. Bevistærskler kan indstilles per arbejdsområde i mål & scoring.

De to bevisgrænser gør forskellige job, og det er værd at holde dem adskilt. Minimum håndteret afgør, om nogen scores overhovedet. Minimumssatser påvirker ikke score: det beslutter tildeling og belønning berettigelse. Så en holdkammerat kan være fuldt scorer og rangeret og stadig ikke er berettiget til denne periode, fordi for få kunder bedømt dem.

💡
Hvert tal er opfanget til det arbejdsområde, du ser, og den tidshorisont, du vælger. En holdkammerat, der arbejder i to separate arbejdsrum har en uafhængig rekord i hver. To undtagelser værd at vide: et websted GROUP er ét arbejdssted, så dens medlem domæner måles sammen; og All- sites se bevidst måler alt på én gang.

Præstationsindekset

En sammensat af fem dimensioner, hver målt mod et mål du har sat snarere end mod kolleger, derefter trukket mod midten, når beviserne bag det er tynd. Bemærk retningen: justeringen flytter figuren mod 70, så en tynd fremragende score trækkes ned og en tynd dårlig score trækkes op. En dårlig første uge på fire samtaler er ikke en fast dom enten. Som dokumentation akkumuleres den tilpassede tal konvergerer på rå én.

Kvalitet

Kundetilfredshed fra verificerede feedback. Suppleret af QA scorecard resultater, hvor disse findes og er styret.

Responsivitet

Første svartid på P50 og P90 percentilerne, mod dine mål.

Opløsning

Opløsningstid og one-touch opløsnings hastighed.

SLA

Tilslutning mod den SLA, du konfigurerede, plus risiko og overtrådte tællinger.

Stewardship

Genopen og overførselsrater - det arbejde, der kommer tilbage.

💡
Vægtene er konfigurerbare og relative; de behøver ikke at total 100. Manglende beviser kan kun sænke indekset, aldrig hæve det - den fuldt konfigurerede vægt forbliver i nævneren.

Kapacitet og produktionstid

Occupationcy, produktiv tid, løst per produktive time og online andel af vinduet. Udnyttelse er bevidst ikke rapporteret: det har brug for planlagte timer som nævner, OpsIQ har ingen arbejdsskema eller skift kilde, og en substitueret nævner ville være et gæt iført en procentdel tegn. Det lyder som utilgængelig med den årsag knyttet.

⚠️
Kun rapportering. Occupancy siger, hvordan tiden blev brugt, aldrig hvor godt det blev brugt og det aldrig midler, porte eller størrelser en betaling. En holdkammerat uden hånd- tid beviser lyder som utilgængelig, aldrig som nul.

Kvalitetssikring

En scorecard er rubric reviewere score reelle samtaler mod. Kun en offentliggjort version kan modtage en evaluering, og udgivelse af en ny version aldrig omskriver hvad der allerede blev scoret. En gennemgang er bevis på én samtale, ikke en dom på en person.

Anmelderaftale

Anmeldt som en chance- korrigeret statistik (Cohen 's og Fleiss' kappa), ikke en rå aftale procent. To anmeldere, der passerer alt er enige 100% af tiden, mens de bærer ingen oplysninger.

Revisor drift

Om en anmelder scorer systematisk hårdere eller blødere end sine kolleger på samme samtale - en sammenligning med resten af panelet, ikke en tendens over tid. Det har brug for en interaktion gennemgået uafhængigt mere end én gang.

Tvister

En holdkammerat kan formelt bestride beviser, der er registreret om dem. En åben tvist blokerer belønnet-periode afslutning indtil det er løst.

Self- revision

En holdkammerat kan ikke selv vurdere det.

⚠️
AI- graderede evalueringer kan ikke påvirke løn, før en kalibrering er offentliggjort viser modellen er enig med menneskelige anmeldere tæt nok, målt ved kappa mod et minimum prøve. En åben gate betyder modellen er enige med folk tæt nok til at tælle - det betyder aldrig modellen er korrekt.

Anerkendelse

Ranking alene har dokumenteret fejl tilstande: metrisk gaming, udbrændthed, og offentlig skamp af hvem der er sidst. Tre alternativer sidde ved siden af det.

Mest forbedret

Målt mod en holdkammers egen tidligere rekord, aldrig imod kolleger, med krympning så en lille nævner ikke kan købe en sejr.

Streaks

Konsistente perioder, der møder en fast, erklæret bar - gennemsnitlig rating, håndteret volumen, vurderinger tæller og negative- feedback sats, alle absolutte tal. Alle kan holde en stribe samtidigt, så det skaber ingen rangering, og en kollega har en ekstraordinær måned ikke kan bryde din.

Opt- in ranking

En holdkammerat ser altid sit eget indeks; om de ser kolleger er en beslutning om arbejdsområde. Procentive bands kan offentliggøres i stedet for absolutte positioner.

💡
Anerkendelse aldrig rører penge. En streak kan ikke finansiere en udbetaling eller bryde en, og mest forbedret er ikke en tildeling kategori.

Søgearter

Et mål, som holdet arbejder hen imod, målt mod en fast angivet bar i stedet for mod hinanden - så alle kan klare den samme søgen i samme periode.

Anvendelsesområde og kadence

Individuelt eller team; one-off, repeterbar, eller sæsonbestemt med et eksplicit vindue.

Kriterier

Samtaler håndteret, ratings modtaget, aktive dage, gennemsnitlig bedømmelse eller negativ feedback rate. Alle absolutte - ingen metrisk hvis værdi afhænger af hvad kolleger gjorde.

Kvalitetsvagt

Krævet på enhver søgen med et volumen mål. At slå antallet mens kvalitet falder under gulvet tilbageholder søgningen snarere end at fuldføre den, og det vises som tilbageholdt, ikke ufærdig.

Gentagelsesgrænser

En per- periode cap, drevet af den hurtigste kriterium, plus en valgfri nedkøling før en gentagelse kan tælle.

Team quests

Fælles fremskridt med ingen per- holdmat tildeling offentliggjort, så en team søgen kan ikke blive et leaderboard.

Coaching sessioner

En coaching session er en rekord, ikke en chat. Det har en træner, en holdkammerat bliver trænet, en planlagt tid, aftalte talking punkter, og et resumé skrevet bagefter. Real chats, billetter og QA evalueringer er fastgjort til det som bevis, så samtalen er forankret i arbejde, der faktisk skete snarere end til en husket indtryk.

Talgpunkter

Vi er enige før mødet, så holdkammerat ikke går ind i en overraskelse.

Beviset

Chats, billetter og QA evalueringer knyttet til sessionen. En pin gemmer en reference - en type og et id - ikke en kopi, så det altid peger på den levende rekord. OpsIQ verificerer ikke id før du accepterer det.

Aktionsposter

Hver med en ejer og en forfaldsdato. Et element forbi sin dato er vist som forsinket - en afledt tilstand, ikke en status nogen behøver at huske at indstille.

Private notes

Trænerens egen note. Den holdkammerat, der trænes i, kan aldrig læse den - ikke som agent, ikke som manager, ikke en ejer. Denne check kører før alle andre tilladelser og kan ikke tilsidesættes.

Hvem kan se en session

Træneren, holdkammerat og alle med managementets tilladelse.

Revision

Hver oprette, opdatere, pin, unpin og afslutning er optaget med hvad der ændrede sig, af hvem.

💡
Coaching er bevidst adskilt fra scoring og penge. En session ændrer ikke nogens indeks, ikke porto en belønning, og vises ikke på leaderboard.

Belønninger og priser

Optaget aktivitet konverterer til tokens med en kontantværdi du har sat. Vejen til en betaling er bevidst langsom og hvert skridt registreres.

1
Sæt symbolværdien

Hvor mange tokens er lig med hvor mange penge, og hvad hver aktivitet er værd.

2
Godkend det finansierede loft

I en lukket kalenderperiode angiver en fuldstændig administrator de maksimale tokens, den kan betale. Gemning af indstillingerne formular tillader ikke et budget, og det kan ikke ændre et loft, der allerede er godkendt.

3
Gennemgå forhåndsvisningen

Modtagere, reservere og grunden til at ingen er ukvalificeret.

4
Færdiggør

Tildelingen registreres permanent med beviserne bag det. En periode, der er tildelt intet kan blive afvist og re- køre direkte. En, der udstedte tokens skal vendes først: OpsIQ skriver en kompenserende post mod hver tegnebog og aldrig sletter originalen, så hovedbogen stadig viser, hvad der skete, og hvorfor, og kun derefter er den periode, som frigives. Tilbagebetalingen nægter, hvis nogen allerede har indløst mere end det beløb, der bliver inddrevet, og navne hvem og hvor meget.

⚠️
Støtteberettigelse kræver verificeret kundefeedback. AI kvalitet scores kan supplere denne vurdering, men aldrig erstatte det, og en holdkammerat vist som Unscored er ikke berettiget. Hver bidragyder er begrænset til 25% over deres forventede andel af perioden, så en meget høj volumen måned kan ikke absorbere hele budgettet.
💡
Kontoejeren deltager ikke i prisbelønninger eller symbolpræmier uden at skifte. De godkender det finansierede loft og afslutter alle tildelinger, og der er ingen over dem, der kan godkende, hvad de selv betaler. Deres arbejde måles, scores og rangeres på brættet præcis som alle andre.

Alle andre deltager som standard, team fører og medejere inkluderet. For at udelade nogen, åbne dem i Team & Afdelinger og slukke for Tages del i priser og belønninger mulighed. Deres arbejde er stadig scoret og vist; de stopper med at være en kandidat fra det punkt på, og intet allerede afsluttet er rørt.

⚠️
Ingen godkender penge til sig selv. Fordi de mennesker, der kan deltage, er også dem, der kunne godkende udbetalinger, OpsIQ nægter en udbetaling eller kredit i din egen tegnebog, betaler din egen fordring, afslutter en periode, hvor du ville blive betalt, og afslutte en pris, du ville vinde. En anden fuld administrator eller ejeren skal gøre det. Betal alle krav springer din egen og rapporterer det som sprunget, ikke mislykkedes.

Hvem kan se og gøre hvad

Vis team ydeevne

Bestyrelsen, live tilstand, kapacitet og kvalitetsoversigt for arbejdsområdet.

Styre teamets ydeevne

Mål og scoring, eksport, QA scorecards og evalueringer, coaching, quests, og de læser, der bærer profit- identificere data såsom per- admin historie og prisuddeling historie.

View team belønning finansielle

Saldi, kontantværdier, tilgodehavende noter og betalingsreferencer - adskilt fra performance dokumentation, fordi det er payroll- tilstødende.

Kun fuld administrator

Hver pengemutation: at betale en belønning, betale eller afvise et krav, godkende et budget, færdiggøre, frakende eller vende en tildeling, og fastsætte den-to-kontante sats. Disse kan ikke uddelegeres ved at give en tilladelse.

Brug det retfærdigt

Præstationsindekset er ledelsesbevis, ikke en automatisk beslutning om beskæftigelse. Åbn kildesamtaler bag et nummer før du handler på det, og vejer sag kompleksitet, tidsplaner, orlov og tilgængelighed behov. En enkelt vanskelig uge ser intet som et vedvarende mønster.

Indstillinger

Dine sites (arbejdsrum)

Websteder (arbejdsrum) lader dig administrere flere hjemmesider fra en OpsIQ installation. Hver har sin egen tracking, AI, stik og team adgang.

Websites
Dine websitesSkærmen på webstederne: en liste over arbejdsområder, hver med sit domæne, type, stik, statuskort og en åben knap, plus Add- new- site.Dine websitesarbejdsområdeDine websites+ Tilføj nyt webstedSshop.acme.comeCommerce · Shopify -stikAktivÅbnHhost.acme.comHosting · WHMCS -stikAktivÅbnBblog.acme.comIndhold · ingen tilslutningOpsætningÅbn1MULTI-SITEEt arbejdsområde pr. websted2ISOLATEDData blander aldrig3PER-SITEEgen indstillinger og konnektorer
Den rigtige Sites skærm: hvert websted er sit eget isolerede arbejdsområde (eget domæne, stik og indstillinger), tilføjet og åbnet fra en liste.

Oprettelse af et websted

1
Gå til Forbundne steder

Naviger til Connected Sites.

2
Tilføj et nyt websted

Indtast navn, domæne og beskrivelse.

3
Kopiér lokalitetsnøglen

Each site gets a unique key (site_xxx) for the widget snippet.

4
Indstil uafhængigt

Hvert websted har sin egen AI, stik og indstillinger.

Hvor mange sider kan jeg have?+

Det afhænger af din licensaftale.

Indstillinger

Licens og plan

Din OpsIQ licens kontrol funktioner, site begrænsninger, og AI kreditbalance.

Licens
LicenscenterOpsIQ Licenscenter: plan, et aktivt statusskilt, den maskerede licensnøgle, en AI- kreditmåler og en Force- remote-check knap.LicenscenterarbejdsområdeOpsIQ Licenscenter for WindowsPlanlægningVirksomhedStatusAktivNøgleOPSIQ- • • • - • - - •AI-kreditter$68 venstreTving fjernkontrol1PLAN & STATUSAktiv, ved et blik2KEYHMAC- cached local3CREDITSAI balance & grænser
Det rigtige licenscenter: din plan og aktive status, maskerede nøgle, din AI- kredit balance, og en one-klik kraft re- verificér.
Licensnøgle

Indtast i Indstillinger > Licens. Valideret mod OpsIQ licensserver.

Licensprede- / valideringscertifikat

OpsIQ normalt læser sin underskrevne lokale licens cache og genopfrisker validering, når det er nødvendigt. Brug Force fjernkontrol, når du har brug for et øjeblikkeligt resultat; Diagnostics identificerer DNS, HTTPS eller servertid problemer.

Planlægning

Afgrænsninger af tilgængelighed og grænser for funktioner.

Grænse for lokalitet

Maksimalt antal arbejdsrum.

AI-kreditter

Hvis du bruger Managed AI, din kredit saldo er vist her.

Udløbsdato

Fornyet før udløb for at undgå afbrydelse af tjenesten.

Hvad sker der, når min licens udløber?+

Tracking, billetter og CRM fortsætter. AI har pause indtil fornyelse. Data er bevaret.

Indstillinger

Profil, adgangskode og tofaktorgodkendelse

Hver administrator kan opretholde sin egen identitet, arbejdspræferencer, adgangskode og tofaktorgodkendelse.

Produktskærm
Min profilProfilsiden adskiller personlige oplysninger, sprog / tidszone, avatar / underskrift, kodeord og tofaktorgodkendelse.Min profilarbejdsområdePROFILFuldstændigTIMEZONEEuropa / Athen2FAAktiveretSYGDOM AF LIVE ARBEJDSPLADSERNavn og e-mailPersonlig identitetRedigérSprog og tidszoneDatoer og grænsefladeRedigérAvatar og underskriftSvar og holds tilstedeværelseRedigérAdgangskode og 2FAKontobeskyttelseSikker1UPDATE PROFILEIdentitet og lokalitet2SECURE LOGINAdgangskode og 2FA3SAVEAnvend til denne admin
Profilsiden adskiller personlige oplysninger, sprog / tidszone, avatar / underskrift, kodeord og tofaktorgodkendelse.

Profilindstillingerne tilhører den signed- in administrator og ændrer ikke arbejdsrumsbranding. Brug en unik adgangskode og aktivér to-faktorgodkendelse. Ændring af en e- mail- eller autentificeringsindstilling kan kræve re- verificering eller et nyt sign- in.

Indstillinger

Underretningspræferencer

Underretningspræferencer kontrollerer, hvilke operationelle begivenheder der når frem til en administrator i produktet eller pr. e-mail.

Produktskærm
UnderretningspræferencerAnmeldelsessiden giver per- event in- app og e-mail valg plus en nylig notifikationsliste.UnderretningspræferencerarbejdsområdeIN-APPTilEMAILSelektivUNREAD4SYGDOM AF LIVE ARBEJDSPLADSERBillettildelingIn-app og e-mailTilKunden svaredeI appenTilSLA -risikoIn-app og e-mailTilAI-godkendelseIn-app og e-mailTil1CHOOSE EVENTSKun brugbare signaler2CHOOSE CHANNELIn-app eller e-mail3FORNYET UNDERSØGELSENylige meddelelser
Anmeldelsessiden giver per- event in- app og e-mail valg plus en nylig notifikationsliste.

Indstillinger dækker billet tildeling, kundesvar, SLA advarsler, chat aflevering og AI godkendelse begivenheder. Hold hastende operationelle signaler aktiveret et sted; slukke e-mail ikke nødvendigvis slukke for in-app meddelelse.

Indstillinger

Sikkerhedstilsyn

Sikkerhedsoversigten er den første skærm til vurdering af blokke, login angreb, trusselssessioner, sikkerhedstendenser og begivenhed integritet.

Produktskærm
SikkerhedstilsynSecurity Oversigt kombinerer aktuelle risikokort, en 14-dag trend, angriberliste, begivenhed feed og integritet status.SikkerhedstilsynarbejdsområdeACTIVE BLOCKS18FAILED LOGINS42HIGH THREAT3SYGDOM AF LIVE ARBEJDSPLADSERAutoblokeret7-dag i alt og kildeTendenserSeneste angribereIP, land og grundRevisionSikkerhedsbegivenhederRisiko og handlingsresultatFoderHashkædens integritetTamper- evidence eventkædeGyldig1READ HEADLINEAktuel eksponering2OPEN EVIDENCEAngreb og begivenheder3AKTBlok, efterforske, eksportere
Security Oversigt kombinerer aktuelle risikokort, en 14-dag trend, angriberliste, begivenhed feed og integritet status.

Brug overskrifterne til triage, og åbn derefter den relaterede revision, Mislykkede Loginer, Blokeret IPs eller JavaScript Fejl side for record-niveau arbejde. 14-dag trend er mere nyttigt end en enkelt spike. High- trussels sessioner bør undersøges mod besøgende, anmodning og godkendelse beviser før en permanent blok anvendes.

Indstillinger

Tamper- evident revisionslog

Revisionsloggen registrerer, hvem der gjorde hvad, hvornår, hvilket objekt, på hvilket risikoniveau og om det lykkedes.

Produktskærm
AktivitetsrevisionRevisionssiden giver søgbare, uhåndgribelige aktiviteter med handling, skuespiller, risiko, mål og resultat.AktivitetsrevisionarbejdsområdeBEGIVENHEDER18.2kHIGH RISK21INTEGRITYGyldigSYGDOM AF LIVE ARBEJDSPLADSERForbinder aktiveret[email protected] · ShopifySuccesAPI nøgle tilbagekaldt[email protected]· key 19SuccesIndstillinger ændret[email protected] · AISuccesTilladelse nægtet[email protected] · eksportBlokeret1FILTERHandling, risiko og aktør2INSPEKTMål og resultat3EXPORTCSV eller JSON
Revisionssiden giver søgbare, uhåndgribelige aktiviteter med handling, skuespiller, risiko, mål og resultat.

Filtrér ved handling, risiko og aktør; eksport CSV eller JSON for en undersøgelse. Hash kæden hjælper med at opdage manglende eller ændrede revisionsrækker, men det erstatter ikke beskyttede sikkerhedskopier og begrænset databaseadgang. Behandl revision eksport som følsom, fordi de kan identificere brugere, optegnelser og sikkerhedshandlinger.

Operationer

Diagnostik

Diagnostics forvandler undersystemkontrol til klar- engelske helbredsresultater og direkte næste handlinger.

Produktskærm
DiagnostikDiagnostiske grupper sundhedstjek for widget, AI, billetter, integrations, Website Intelligence, baggrundsopgaver, CRM automatisering, licenser og opbevaring.DiagnostikarbejdsområdeDEN HØJE KONTRAHERENDE PARTER13WARNING2SLAGTET1SYGDOM AF LIVE ARBEJDSPLADSERKontrollérLydpotte og chatendepunkterSundBaggrundsopgaverKronhjerteslag sentAdvarselE- mailUdgående test mislykkedesFejlQShortcutConnectorerIndtagelse af register og begivenhedSund1REFRESHKør nuværende kontroller2OPEN WARNINGLæs bevismateriale3FIX AND RETESTBekræft inddrivelse
Diagnostiske grupper sundhedstjek for widget, AI, billetter, integrations, Website Intelligence, baggrundsopgaver, CRM automatisering, licenser og opbevaring.

Sidekontrollen Site Speed, rank / søgeord / backlink / lokale data, AI og action gateway, billetter, crawler / audits, integration / begivenhed indtag, baggrundsopgaver, CRM-automatiseringer, licens, widget og relaterede produkttjenester. Det forsætligt rapporterer operatørlæsbare årsager snarere end at afsløre rå hemmeligheder.

Efter en ændring, Genopfrisk og bekræfte det berørte delsystem giver sund. En grøn diagnostik side er nødvendig, men ikke tilstrækkelig til lancering; fuldføre Pre-launch checkliste så godt.

Indstillinger

Sikkerhed og adgang

OpsIQ indeholder flere sikkerhedslag til at beskytte din admin, data, og API adgang.

Sådan virker det
Sikkerhed og adgangEt sikkerhedsskjold ved siden af aktiverede betjeningsorganer: to-faktor, OIDC SSO, SCIM 2.0, OAuth2 PKCE, CSRF / CSP IP Firewall, hastighedsgrænser og en hemmelig boks.Two- faktor (TOTP)OIDC SSOSCIM 2.0OAuth2 PKCECSRF + CSPIP firewallSatserHemmeligheder hvælving
Sikkerhed

Sikkerhedselementer

Admin- godkendelse

E-mail / adgangskode med valgfri 2FA.

Låsning af login

Midlertidig lås efter for mange mislykkede forsøg.

IP blokerende

Block IPs eller CIDR spænder fra adgang til sporede websteder.

Trussel scoring

De kan blive blokeret af politiet.

HHTTPS-håndhævelse

Krævet for alle forbindelser. HTTP omdirigerer til HTTPS.

HSTS-headere

Strengt-transport-sikkerhed forhindrer nedgradering angreb.

Beskyttelse af CSR

Alle admin formularer omfatter CSRF tokens.

XSS-beskyttelse

Alle brugerindgange er undsluppet. CSP-headers begrænser script- udførelse.

SSRF-beskyttelse

Udgående webkroge blokerer private / interne IP adresser.

Anbefalet opsætning

1
Aktivér 2FA

For alle admin konti.

2
Stærke adgangskoder

Minimum 12 tegn, blandet.

3
Revisionskonti

Fjern adgang for tidligere teammedlemmer.

4
Skærm mislykkedes login

Tjek hver uge for mistænkelige mønstre.

5
Hold dig opdateret

Anvende opdateringer straks for sikkerhedsplastre.

Indstillinger

Roller og tilladelser

Role- Based Access Control lader dig kontrollere, hvad hvert team medlem kan gøre.

Roller og tilladelser
Roller og tilladelserEn role- by- kapacitet matrix: Ejer har alt; Full Admin mangler fakturering og fare zone; Agent har kun opfanget billetter.Roller og tilladelserarbejdsområdeSETTINGERREFINANCIERINGFARERTIKKEREjerFuld AdminAgentscoped13 ROLESEjer · Fuld Admin · Agent2GRANULARPer- side + per- afdeling3DEFAULT-DENYForglemmede ruter blokeret
Rollematricen på et øjeblik: Ejer får alt, Full Admin alt undtagen fakturering og fare zone, Agent kun deres scoped billetter.

Standardroller

Ejer

Alt, herunder licens, farezone og installation management.

Fuld Admin

Alt undtagen licens og farezone.

Agent

Svar på assigned-afdeling billetter og chats, se analytics. Ingen indstillinger, team, eller sikkerhed adgang.

Kan jeg skabe brugerdefinerede roller?+

Tre opgaver plus afdelingens opgave giver en granulær kontrol.

Indstillinger

Blokeret IPs

Administrer IP adresser blokeret fra adgang til dine sporede websteder.

Blokeret IPs
Blokeret IPsDe blokerede...IPs skærm: en block- an -IP/ CIDR formular ved siden af en Blokeret Adresser tabel med hver indgang, dato, årsag og en Unblock knap.Blokeret IPsarbejdsområdeBloker en IP / CIDR203.0.113.0/24Årsag (fakultativ)BlokBlokerede adresser203.0.113.9Jun 12 · brute force - ingen indlægAfspærring45.12.0.0/16Jun 10 · spamAfspærring102.89.6.2Jun 9 · misbrugAfspærring1BLOKIP eller CIDR-område2LISTHvem & hvornår, med fornuft3UNBLOCKEt klik
Den rigtige BlockCity in New York USA IPs skærm: blok en enkelt IPeller et CIDR-område, og styre listen, hver med sin dato, årsag og one-klik unblock.

Hvordan man blokerer

1
Gå til sikkerhed > Blokeret IPs

2
Tilføj et IP - eller CIDR-område

Eksempel: 203.0.113.42 eller 203.0.113.0/24

3
Tilføj en årsag

Dokument hvorfor: spam, misbrug, skrabning, osv.

Vil blokering påvirke legitime brugere?+

Hvis kunderne deler en virksomhed IP eller VPN, der blokerer det IP Bloker alle på den. Brug smalle blokke.

Indstillinger

Mislykkede login

Alle mislykkede login forsøg på din OpsIQ admin.

Mislykkede login
Mislykkede loginSkærmen fejl- logins: en tabel over konti /IPs med fejltællinger, tidspunktet for sidste forsøg og en Block-knap pr. række.Mislykkede loginarbejdsområdeMislykkedes login forsøgREGNSKAB / IPSLAGTETLastNameFORANSTALTNINGER[email protected] · 41.62.10.472 m sidenBlok[email protected] · 102.89.6.2318m sidenBlokukendt · 45.12.9.71226 m sidenBlok[email protected] · 88.21.4.921h sidenBlok1WATCHMislykkedes login forsøg2COUNTSPr. konto / IP3AKTBlok fra rækken
Den virkelige mislykkedes logins skærm: hver konto /IP med sin fejltælling og sidste forsøg, blokere en brute- kraft kilde lige fra rækken.

Hvad hver indgang viser

Dato / tidspunkt

Da forsøget skete.

E- mail

E- mail- adresse brugt.

IP -adresse

- Det er en kilde til forsøget.

Land

Geografisk placering.

Årsag

Forkert adgangskode, låst eller ikke fundet.

Advarselsskilte

Mange forsøg, samme e-mail

Password gætte. Sikre 2FA er aktiveret.

Mange forsøg, forskellige e-mails

Automatiseret angreb. Bloker kilden IP.

Usædvanlige lande

Hvis dit team er lokalt, udenlandske forsøg er sandsynlige angreb.

Indstillinger

AI-sikkerhedsanalytiker

En opt- in analytiker lag over Security-sider: Dommerens, hændelse briefinger, en daglig fordøje, en ugentlig stilling check, Spørg Sikkerhed, og 0-token block politikker. Det aldrig kører i den besøgende anmodning sti.

Hver Security side registrerer, hvad der skete, men læsning det stadig tager dom. AI sikkerhed analytiker tilføjer denne dom på plads, og det er bygget til at bruge næsten ingenting: det aldrig sidder i fyrtårn eller login sti, deterministiske regler afgøre de indlysende tilfælde med ingen AI opkald, domme caches, og analytikerens bedste output er en deterministisk regel, der derefter håndhæver evigt på nul tokens. Tænd funktioner på Indstillinger → Sikkerhed; alle standard slukket.

Hvad det tilføjer

Veriktér chips + Forklar

Blokeret IPs og Failed Logins rækker viser en godartet / mistænkelig / fjendtlig chip med en tillidsscore. Forklar åbner ræsonnementet, de anvendte fakta og one- klik Block / Release handlinger. Cached 24h, så re- visning af en IPer gratis.

Hændelsesbriefinger

Relaterede begivenheder klynge sig ind i en hændelse (login bølge, URL scanning, auto-blok burst) med en plain-engelsk tidslinje og et anbefalet næste skridt. Løbende angreb fold ind i samme hændelse.

Daglig digteComment

En opsumning per dag: i går versus din baseline, blokke, hændelser, og den enkelte ting at gøre. Stille dage sende en deterministisk all- klar på nul tokens.

Ugentlig kontrol af kropsholdning

En mandag hærder checkliste (2FA huller, lockout tærskel versus reelle angreb volumen, advarsler off) med en sværhedsgrad, indsats og præcis fix per element.

Spørg om sikkerhed

Et spørgsmål felt på Security Oversigt, der svarer fra din live sikkerhed tilstand. Dybe serverspørgsmål gives til admin ingeniør chat snarere end gættet.

Politikforslag + autopilot

Analytikeren foreslår konkrete blokregler som Accept / Dismiss kort; godkendte regler håndhæves på nul tokens med en live hit counter. Valgfri autopilot godkender kun de sikreste regler automatisk.

Indstillinger

AI security analyst (security_ai_enabled)

Master switch. Aktiverer dom chips, Forklar og Spørg sikkerhed. Kun tvetydige IPs nå modellen, bøjet ind i et opkald.

Incident briefs (security_ai_incidents)

Klynger begivenheder ind i hændelser og skriver hver ny historie. Kører på den eksisterende time sikkerhed cron.

Daily digest (security_ai_digest)

En sikkerhed indsnævring per dag på klokken og Oversigt. Stille dage koster ingenting.

Weekly posture check (security_ai_posture)

Mandag hærder tjeklisten i oversigten. Tjeklisten er fuldt deterministisk.

Policy autopilot (security_ai_autopilot)

Lader analytikeren aktivere sine sikreste forslag uden opsyn: kun reversible tid- begrænsede blokke, enkelt IPs eller intervaller, der ikke er større end /24, aldrig delt / mobil / privat, begrænset 10 pr. time, altid revideret og uopnåelig.

💡
Every call is tagged security_ai with its own monthly cap in AI Config → Cost Guardrails (default 300k tokens). If the cap is hit, features degrade to deterministic reads. Blocking, lockouts and alerts never depend on this budget. The analyst can never delete data, change settings, touch the audit ledger, or make a permanent ban.
Operationer

Cron- og automatisering

OpsIQ bruger et produkt scheduler til at køre e-mail polling, billet automatisering, analytics rollups, retention, AI køer, CRM arbejde, rapporter og konnektor job.

Produktskærm
Cron- og automatiseringEt produkt cron entry leverer hjerteslag; OpsIQ beslutter, hvilke interne job der skal til.Cron- og automatiseringserverHØRINGHvert minutRUNNERcron/all.phpHEALTHIndstillingerSYGDOM AF LIVE ARBEJDSPLADSEREnsartet produktløberopsiq/cron/all.phpKrævetBillet- og e-mail-køerKort planlagt arbejdeAktivAnalyse og opbevaringIntern kadenceSkemalagtForbindelsesabonnenterKendt cron begivenhederScopet1INSTALL ONE LINEKør produktscheduler hvert minut2CHECK CRON SETUPBekræft hjerterytme3USE DIAGNOSTICSUndersøg sent eller mislykket arbejde
Et produkt cron entry leverer hjerteslag; OpsIQ beslutter, hvilke interne job der skal til.

Nødvendig produktcron entry

Tilføj denne ene linje til crontab for den samme server og PHP miljø, der kører OpsIQ:

OpsIQ produkt crontab indgang
* * * * * php /path/to/opsiq/opsiq/cron/all.php >> /tmp/opsiq-cron.log 2>&1

Erstat /path/to/opsiq med installationsroot. Brug den fulde PHP CLI sti, når værten kræver en, for eksempel /usr/bin/php8.4.

Brug ikke top- niveau /cron.php til produktarbejde. I dette arkiv tilhører runner en separat nonproduct service uden for denne håndbog. OpsIQ produktrunner er opsiq/cron/all.php.

Hvad den forenede scheduler kører

Billet- og AI-køer

Processer, der skyldes auto- svar, eskalationer, godkendelser og andet queued produkt arbejde.

Indgående e- mail

Polls konfigurerede postkasser hvor valtning er den valgte indsugningsmetode.

Analyser og sessioner

Samler sessioner og genopfriskninger planlagte aggregater, når de er forfaldne.

CRM og engagement

Kører scoring, livscyklus, workflow, kampagne og scheduled- rapport opgaver, der er aktiveret.

Tilbageholdelse og vedligeholdelse

Udfører forfaldne oprydning, arkiv, udløb og integritet arbejde.

Connectorer

Dispatches connector cron abonnenter og polling kun til installerede, aktiverede og konfigurerede stik.

Verificér cron

  1. Åbn Indstillinger - Kron opsætning og bekræfte, at produktet runner eksisterer.
  2. Anvendelse Løb nu en gang, så bekræfte admin og afstemning hjerteslag opdatering.
  3. Tjek Diagnostik for en sen hjerterytme, PHP CLI, database eller file- sti problem.
  4. Inspektionssted /tmp/opsiq-cron.log eller den logsti du valgte når en manuel kørsel mislykkes.

Hold stik håndtere kort, idempotent og workspace- scoped. Batch lange synkroniseringer og gemme en markør / checkpoint, så det næste løb kan fortsætte sikkert.

🚫
Når produktet cron stopper, tidsbaserede OpsIQ arbejde stopper eller bliver forsinket, selvom almindelige admin sider kan stadig indlæse.
Operationer

Indsatsaktiviteter i forbindelse med hostede deployeringer

En hostet OpsIQ implementering bruger de samme produktskærme og arbejdsgange, mens hosting-operatøren styrer server lag. Kommerciel signatur- up, planer, fakturering og konto-portal procedurer er uden for denne håndbog.

Produktskærm
Indsættelse af en værtHosted drift ændrer, der vedligeholder infrastrukturen; det ændrer ikke hvordan kunderne bruger OpsIQ.Indsættelse af en værtarbejdsområdePRODUCT UISamme OpsIQINFRASTRUCTUREOperatøren er styretWORKSPACE DATAIsoleretSYGDOM AF LIVE ARBEJDSPLADSERAnsøgningsdrifttidPHP, webserver og databaseHåndteretProdukt-cronPlanlagt af hosting-operatørVerificérBackup og opdateringerUdbyderpolitik og -dokumentationRevisionOpsIQ indstillingerWebsteder, AI, team og konnektorerDit hold1OPERATE OPSIQ NORMALLYBrug den samme produktnavigation2VERIFY SERVICE HEALTHBrug diagnostik og statusdokumentation3KNOW RESPONSIBILITYSeparat produktindstillinger fra hosting arbejde
Hosted drift ændrer, der vedligeholder infrastrukturen; det ændrer ikke hvordan kunderne bruger OpsIQ.

Hvad værtsvirksomheden normalt forvalter

  • Web server, PHP runtime, database service, TLS og opbevaring.
  • Den samlede produkt cron og dens serverniveau logs.
  • Programopdateringer, infrastrukturovervågning og sikkerhedskopieringsprocessen som defineret i værtsaftalen.

Hvad en OpsIQ administrator stadig håndterer

  • Websites og widget installation, AI indstillinger, viden, postkasser og customer-support arbejdsgange.
  • Team adgang, afdelinger, sikkerhedskontrol, API nøgler, stik, automatiseringer og data- retention indstillinger.
  • Produktverifikation gennem diagnostik, revisionslog, stikprøvekontrol og ægte ende- to- end kontrol.

Operationel kontrol

Antag ikke, at en styret service betyder, at enhver produktintegration er sund. Bekræft den seneste backup dokumentation og opbevaring politik med hosting operatør, og brug OpsIQ Diagnostik efter ændringer i DNS, e-mail, AI-udbydere, websteder eller konnektorer.

Dette afsnit omfatter kun produktoperationer. Kommercielle onboarding, abonnementer, fakturering og kundekonto administration forbliver uden for OpsIQ håndbogen.

Operationer

Selvstændig hosting OpsIQ

En selv-hosted OpsIQ installation kører på infrastruktur du styrer. Du er ansvarlig for runtime, database, TLS, produkt cron, sikkerhedskopier, opdateringer og overvågning.

Produktskærm
SelvhostingSelf-hosting giver infrastruktur kontrol og gør dit team ansvarlig for hver drift afhængighed.SelvhostingserverPHP8.4+DATABASEMySQL 5.7+SCHEDULERHvert minutSYGDOM AF LIVE ARBEJDSPLADSERKørtidsudvidelsercurl, pdo_mysql, mbstring, jsonKrævetYderligere udvidelserxml Nøgleord: OpenSSL, zip, intl, gdKrævetDatabasens alternativMariaDB 10.3+ med InnoDBUnderstøttedeTransportHTTPS og udgående adgang til udbyderVerificér1PREPARE THE SERVERKrav til matchningsdriftstid2INSTALL AND CONFIGUREBrug en dedikeret database og HTTPS3ADD PRODUCT CRONKør opsiq/ cron / all. php
Self-hosting giver infrastruktur kontrol og gør dit team ansvarlig for hver drift afhængighed.

Minimumskontrakt om software

PHP

PHP 8.4 or newer. Required extensions: curl, pdo_mysql, mbstring, json, xml, openssl, zip, intl and gd.

Database

MySQL 5.7+ eller MariaDB 10.3+ ved hjælp af InnoDB. Opret en dedikeret database og mindst privilegeret programbruger.

Webserver

Apache eller Nginx konfigureret til OpsIQ frontcontroller, statiske aktiver og nødvendige omskrivere.

HTTPS

Krævet for admin sessioner, widget trafik, API nøgler, webkroge og udbyder opkald.

Ugående adgang

Tillad DNS og HTTPS adgang til AI, e-mail, stik og licens endpoints du faktisk aktivere.

Filadgang

Web- og CLI-brugerne skal kunne læse programfiler og kun skrive til de dokumenterede driftstimer / lagersteder.

Kren

Kør OpsIQ produktscheduler hvert minut med samme applikationskonfiguration og databaseadgang som webprocessen.

Installationssekvens

  1. Upload udgivelsen til den planlagte dokumentroot og bevare den medfølgende mappestruktur.
  2. Opret databasen og applikationsbruger, og indtast derefter databasen, kanoniske URL og licensindstillinger.
  3. Kør installations- / opsætningsstrømmen og opret den første ejerkonto.
  4. Aktivér HTTPS og verificer omdirigeringer, cookies og den offentlige kontrol /API stier.
  5. Tilføj den samlede OpsIQ produkt cron:
Self-hosted produkt cron
* * * * * php /path/to/opsiq/opsiq/cron/all.php >> /tmp/opsiq-cron.log 2>&1
  1. Åbn indstillinger - Cronopsætning og diagnostik; kør scheduler én gang og løse hver mislykket afhængighed.
  2. Indstil backup, gendannelse af test, log retention og opdateringsprocedurer før du tilføjer produktionsdata.

Opdatering sikkert

  1. Læs udgivelsesbemærkningerne og tjek den nødvendige PHP / udvidelser, før du skifter filer.
  2. Sikkerhedskopiér databasen og program- / konfigurationsfiler, og vis så at sikkerhedskopien kan gendannes i en testplacering.
  3. Indled de nye filer uden at slette installeringsspecifikke konfigurations- eller runtime data.
  4. Kør den leverede migration / før flyvning proces og kontrollere login, widget tracking, billetter, e-mail, AI, stik og cron.
  5. Hold den tidligere udgivelse og database backup til rådighed for dokumenterede rollback vindue.
🚫
Deposittop- niveau /cron.php er ikke OpsIQ produkt scheduler. Point produkt automatisering kun på opsiq/ cron / all.php.
⚠️
Do not delete .schema_cache.json as routine maintenance. Remove it only when the product instructions explicitly require a schema-cache rebuild.
Operationer

Produktionsvejledning

Checkliste og bedste praksis for drift af OpsIQ i produktionen.

Produktionsvejledning
ProduktionsvejledningEn go- live tjekliste: brugerdefineret domæne og SSL, AI uddannet, konnektorer og cron, sikkerhedskopier og fastholdelse, og team roller.Go- live checklistearbejdsområdeFør du går liveBrugerdefineret domæne + SSL konfigureretAI uddannet på dit indholdKonnektorer testet · cron kørerOpsætning af sikkerhedskopierTeam roller tildelt og revideret1GO-LIVETjekliste før start2VERIFYDomæne · SSL · sikkerhedskopier3CONFIDENTSkib når det er grønt
En go- live tjekliste så intet er gået tabt: domæne + SSL, uddannet AI, testede stik og cron, sikkerhedskopier og fastholdelse, og team roller.

Før du går live

HTTPS konfigureret

SSL installeret, HTTP omdirigerer, HSTS aktiveret.

cron running

Verificér via diagnostisk side.

AI testet

Chat som kunde. Verificer nøjagtighed og tone.

Widget installeret

På alle websider. Verificér med Live Feed.

Sikkerhedskopieret

Automatisk daglig database og fil sikkerhedskopier.

Fejllogning

PHP fejllog aktiveret og overvåget.

Indbudt hold

Alle medlemmer har konti med rigtige roller.

Kendingsbogstaver, der er befolket

Mindst 5-10 artikel.

Daglig: Tjek instrumentbræt, klar billet kø, spot- check AI samtaler.

Ugentlig: Anmeldelse AI Insights, opdatere KB, tjek team ydeevne, anmeldelse sikkerhed.

Månedlig: Gennemgå analytics tendenser, revision konnektorer, opdatere AI uddannelse, kontrollere sikkerhedskopier.

Operationer

Tjekliste før start

Kør kildegates og komplet rigtige produkt kontrol før en udgivelse eller første produktion lancering. En kommando er tilgængelig er ikke bevis for, at det passerede i dit miljø.

Produktskærm
FrigivelseskontrolUdgivelsesvisningen viser, at portene skal køre; den præ- mærke dem ikke som bestået.FrigivelseskontrolserverRUMTIMEPHP 8.4SOURCE GATESKør lokaltOUTCOMEPåvisnings- baseretSYGDOM AF LIVE ARBEJDSPLADSERKrævede udvidelserTjek før suitenPortPHP syntaksfewAlle projekt PHP filerPortAI evaluering og PHPUnitKør når afhængigheder er til stedePortStatisk kontrol og browserkontrolKør når konfigureretPort1RUN THE CHECKSOptag den faktiske udgang2FIX EVERY REQUIRED FAILUREErstat ikke dokumentation med antagelser3TEST THE PRODUCTVerificer reelle brugerrejser
Udgivelsesvisningen viser, at portene skal køre; den præ- mærke dem ikke som bestået.

Kilde- og udløsningsporte

Kør lagerkontrol fra installationsroot og holde deres komplette output med udgivelsesrekorden.

Primær før flyvning gate
php tools/preflight.php
Udvidet udgivelse- port
php tools/release_gate.php

Førflyvningen kontrollerer PHP 8.4 runtime og krævede udvidelser, udfører en PHP syntaks feje, kører AI evaluering skib gate og fuld PHPUnit suite, og kører PHPStan / Node kontrol, når disse værktøjer er installeret. Den udvidede port omfatter også røg, clean-install / schema og browser end-to-end kontroller, når deres miljø er konfigureret.

En skippet check er ikke et pass. Optag, hvorfor det var utilgængelig, installere den manglende afhængighed eller køre det i den korrekte CI / iscenesættelse miljø før udgivelse.

Produktkontrol

1. Authentication og roller

Log ind som hver tilsigtet rolle; kontrollere tilladte og nægtet sider / handlinger.

2. Kontrol og sporing

Indlæs et rigtigt websted i en privat browser; verificer beacon trafik, Live Feed, besøgende og session optegnelser.

3. Chat og AI

Stil repræsentative spørgsmål; kontrollere viden jordforbindelse, sikkerhed, eskalering og AI historie.

4. Billetter

Opret, angiv, svar, eskalér, luk og genåben gennem hver aktiveret indsugningssti.

5. Email

Test udgående levering og hver konfigureret indadgående postkasse eller webhook sti.

6. CRM og analytics

Opret en kontrolleret kontakt / handel / konvertering og verificer dashboards, tragte, scoring og rapporter.

7. Connectors

Kør forbindelsestest, én læse, en sikker skrive / tør køre og webhook / polling stier for hver aktiveret stik.

8. API og netkroge

Verificer smalle scope, hastighedsgrænser, idempotente genteties, signaturer og duplikering.

9. Cron

Kør den samlede produkt scheduler og bekræfte alle nødvendige hjerteslag i Cron Setup / Diagnostics.

10. Security

Verificer 2FA, CSR / sessionskontrol, revisionsposter, nøgletilbagekaldelser og isolering af arbejdsområdet.

11. Backup og gendannelse

Gendanne en nuværende backup i et separat testmiljø og kontrollere data og konfiguration.

12. Observationer og rollback

Bekræft logfiler / indberetninger, behold anmodningsID 'er og bevis rollback-proceduren.

⚠️
Først efter hver nødvendig gate og forretningskritisk rejse har nuværende beviser for den nøjagtige frigivelse og miljø.
Udvikler

Web Push på tredjeparts-websteder

Browser push-meddelelser (herunder OpsIQ Push Campaigns) har brug for en servicetjeneste, der betjenes fra SAME OPRINDELSE som siden.OpsIQ widget belastninger fra din OpsIQ Opsætning, så en tredjeparts websted kan ikke registrere OpsIQ er arbejdstager direkte. Være vært en lille fil på webstedets eget domæne for at aktivere push der. Kampagner leverer gennem BOTH understøttede metoder.

Sådan virker det
Web pushEn OS- stil push notification over to leveringsmetode kort: Build-in VAPID og Pusher Beams.Din butikDin indkøbskurv venter · 10% off todayNuBygning-in (VAPID)Ingen tredjepartVærtsens én filPusher bjælkerBrug din kontoVært arbejderen
Web push

Hvorfor er det nødvendigt?

Browsere kun lade en side registrere en tjeneste arbejdstager fra sin egen oprindelse.OpsIQ implementering, så det ikke kan installere skubbearbejder på en kunde site, indtil du er vært for arbejderen på dette websted 's oprindelse, widget lydløst springer skubbe (ingen fejl, intet abonnement). Du har to muligheder nedenfor;OpsIQ Push Campaigns publicerer gennem begge dele.

Mulighed A · Self-hosted Web Push (VAPID, ingen tredjepart)

1. Download arbejderen fra din OpsIQ implementering: https://YOUR-OPSIQ/opsiq/opsiq-push-sw.js

2. Upload det til din webroot så det er muligt at nå på https://yoursite.com/opsiq-push-sw.js. Kontrollér auto- detekterer denne sti på sidens egen oprindelse og registrerer det, ingen snippet forandring nødvendig. (Det bruger et snævert omfang, så det aldrig erstatter en servicetjeneste du allerede kører.)

Valgfrit: hvis du skal være vært for den på en ikke-standard sti, så vis kontrollerne på den før det er kun accepteret, når sameoprindelse:

Valgfrit · kun hvis filen IKKE er på web root
<script>window.OpsIQ=window.OpsIQ||{};window.OpsIQ.pushSwUrl="/custom/opsiq-push-sw.js";</script>

3. I OpsIQ, generere VAPID nøgler (Opsætning → Klient Chat AI → Advanced → Web Push). Kontrollen derefter beder besøgende om tilladelse til anmeldelse og abonnerer dem.

Bag en CDN /Cloudflare? Sørg for /opsiq-push-sw.js giver HTTP 200 (rense cachen, hvis det var 404 før du uploadede; en cachet 404 vil blokere registrering).

Mulighed B · Pusher Beams (forvaltet udbyder)

1. I OpsIQ indstillinger indstille push-udbyder til Pusher bjælker og indtaste dine Beams EU-varemærkeansøgning og Hemmelig nøgle.

2. Vært Beams service arbejdstager på lokalitetens rod som /service-worker.js. Modtaget https://YOUR-OPSIQ/opsiq/pusher-beams-service-worker.js, eller flette denne linje i din eksisterende rodarbejder:

Beams arbejdstager, vært på https://yoursite.com/service-worker.js
importScripts("https://js.pusher.com/beams/service-worker.js");

3. Det er det. Kontrollen automatisk indlæser Beams SDK og abonnerer hver besøgende på per- site interesse opsiq-site-<your-site-key>. Ingen andre ledninger nødvendige.

Hvordan kampagner leverer

Push-kampagner publicerer gennem both metoder på én gang: besøgende på den selvhostede VAPID arbejdstager får krypteret Web Push, og besøgende abonneret via Pusher Beams få de Beams publicering. Hver besøgende er nået gennem hvad de har tegnet sig for, så du kan køre sameoprindelse VAPId på nogle steder og cross-herry Beams på andre.

HTTPS er påkrævet for servicearbejdere og Web Push (localhost er undtaget for test). Admin chat indbakke bruger allerede den samme Beams rentemekanisme til operatøradvarsler.

Operationer

Fejlfinding

Fælles problemer og hvordan man løser dem.

Generelt

Blank side+

Tjek PHP fejllogfiler. Årsager: gammel PHP (har brug for 8.4+), manglende udvidelse, DB-forbindelse mislykkedes, forkerte filtilladelser.

Dashboard viser nuller+

Markér: widget installeret? Cron- køring? Datoområde korrekt? IP ekskluderet?

AI

AI svarer ikke+

Check: provider konfigureret? API tasten gyldig (brug Test forbindelse)? Budget opbrugt? Workspace AI config korrekte?

AI giver forkerte svar+

Tjek: viden base up to date? Hurtig klar? Connector opslag returnerer korrekte data? Anmeld samtale i AI Historie.

AI er langsom+

Afhænger af: udbyder API hastighed, kontekststørrelse (stor KB = flere tokens = langsommere), netværk latency. Prøv en hurtigere model.

Sporing

Widget mangler+

Tjek: script i sidekilde? JS fejl i konsol? CSP blokering? Ad blocker?

Ukendt land+

GeoIP ikke konfigureret. Brug Cloudflare (automatisk) eller MaxMind GeoLite2 database.

Billetter

E- mails der ikke skaber billetter+

Markér: postkasse tilsluttet? Cron kører? App kodeord ændret? IMAP indstillinger korrekt?

Auto- svar virker ikke+

Check: aktiveret? Department tilladt? AI konfigureret? Cron kører? Human svarede først?

Connectorer

Forbindelse mislykkedes+

Er nøglen udløbet? API tilgængelig fra server? Base URL Korrekt?

Forbundet, men ingen data+

Check: API nøgleskoper? Webhook sync aktiveret? Cron kører?

Resultater

Langsom side+

Tjek: databaseydeevne (SHOW PROCLIST), PHP hukommelse (stigning til 1GB), aktivere opcache, reducere retentionsperiode.

Operationer

Kontroller ikke loggebesøg

Brug denne fokuserede kontrol når kontrollen indlæses forkert eller Live Feed forbliver tom.

Når widget er ikke logger besøg, kontrollere stedet nøgle, indlæse siden i en privat browser, tjekke browsernetværket / konsollen paneler for blokeret beacon eller widget anmodninger, gennemgå controt- Security- Policy og ad blokkere, bekræfte webstedet er aktiv i OpsIQ, og åbne Diagnostics. En synlig chat boble ikke i sig selv bevise, at analytics beacone blev accepteret.

Henvisning

Ordliste

Definitioner af udtryk, der anvendes i hele OpsIQ.

Handling

Noget AI kan gøre gennem en konnektor eller platformen.

Agent

Et team med begrænset adgang, eller en AI-agent.

BYOK

medbring din egen nøgle, du giver din egen AI API -nøgle.

Forbindelse

Et plugin der integrerer en ekstern platform med OpsIQ.

CSAT

Kundetilfredshedsscore.

Aftale

En indtægtsmulighed i CRM.

Afdeling

En billettekategori for rute- og adgangskontrol.

Eskalering

Flytter en billet til en anden afdeling eller fra AI til menneske.

GeoIP

Besøgslokalitetsdetektion fra IP -adresse.

Handoff

Overfører en samtale fra AI til menneske.

Identitetsangivelse

Underskrevet token til identifikation af besøgende på hjemmesiden.

Videnbase

Artikler AI bruger til at besvare spørgsmål.

Bly

En besøgende, der viser købshensigt.

Blyscore

0-100 antal, der angiver konverteringssandsynlighed.

Livscyklusfase

Hvor en kunde er: Lead, Prospect, Customer, In Risk, Churned.

Managed AI

AI leveres som en del af din OpsIQ plan.

Rørledning

Visuel tavle over dealing stadier.

RBAC

Role- Based Access Control.

session

En række sidevisninger inden for et tidsvindue.

Tast for lokalitet

Entydig identifikator for et sporet websted.

SLA

Tjenesteydelsesaftale, målsvartider.

Token

Enhed af AI-tekst. 4 tegn = 1 token.

Tillidslag

Sikkerhedssystemet styrer AI autonomi.

Webhook

HTTP tilbagekald for begivenhed meddelelser.

Kontrollér

JavaScript -kode indlejret på din hjemmeside.

Arbejdsområde

Et websted med sin egen sporing, AI, konnektorer og team. Samme som "site".

Henvisning

Få mere hjælp

Hvis denne dokumentation ikke besvarer dit spørgsmål:

AI- administrator

Klik på "Spørg OpsIQ" i admin. Har adgang til denne dokumentation og din platform data.

Understøttekst

Inkludér: hvad du prøvede, hvad der skete, hvad du forventede, og eventuelle fejlmeddelelser.

E- mail

E-mail support med din licensnøgle og beskrivelse af udstedelse.

Tips til effektive støtteanmodninger

Inkludér siden

Hvilken admin side (URL eller navn).

Inkludér indstillingen

Præcis indstillingsnavn og aktuel værdi.

Inkludér fejlen

Præcis fejlmeddelelse med koder.

Inkludér trinene

Det, du gjorde, skridt for skridt.

Inkluderer forventet vs faktisk

Hvad der skulle ske, vs hvad der skete.

💡
Jo mere specifik din anmodning, jo hurtigere svar. "Det virker ikke" kræver undersøgelse. "Klik på Gem på AI konfiguration giver fejlkode 502" får et direkte svar.