OpsIQ Dokumentasjon

Bygg, drift og utvide OpsIQ.

Dette er den komplette dokumentasjonen til OpsIQ. Konfigurere produktet, kjøre støtte, konfigurere AI, administrere CRM, installere widgeten, bygge konnektorer, ringe REST API, motta webhooks, pakke markedsplass apper og betjene selvvært distribusjon.

KundeveiledningAdministratorveiledningUtviklerguideCRM-referanseKoble til SDKRESTAPISelvvært
Område

Omfang av denne håndboken

Alt OpsIQ gjør på ett sted: hvordan hver skjerm fungerer, tilkobling av dine egne systemer og hvordan du bygger oppå det. Start hvor som helst, seksjonene følger den samme rekkefølgen som admin sidepanelet.

Område
DokumentasjonskartHåndboken er organisert rundt OpsIQ -produktet, etter samme rekkefølge som admin sidepanelet.DokumentasjonskartOpsIQ -produktAUDIENCEOperatørerBUILDUtviklereRUNAdministratorerLIV ARBETSPESSONEBruk OpsIQProduktskjermer og arbeidsflytInkludertUtvid OpsIQKobling, APIs og widgetInkludertOperatione OpsIQSikkerhet, krone og distribusjonInkludertReferansePakke, API og webhook-kontrakterInkludert1CHOOSE AUDIENCEOperatør eller utvikler2FOLLOW THE UISeksjoner speil OpsIQ3USE SOURCE TRUTHStatus kommer fra bygg
Håndboken er organisert rundt OpsIQ -produktet, etter samme rekkefølge som admin sidepanelet.
Portal Studio felt guide

Bruk den dedikerte administratoren og utviklerguiden for portalarkitektur, sider, komponenter, forhåndsvisning, hjelpesenter, identitet SCIM.

Åpne portalen Studio guide

Hva er her inne

Kjøre produktet

Hver skjerm i administratoren: analyse, livechatt, billetter, CRM, kunnskapsbase, nettstedets etterretninger og kundeportal. Hva hver side gjør, hva tallene betyr, og hvordan de skal gjøre når det ser galt ut.

Koble til systemene dine

Nettstedet widget, e-postbokser, inngående og utgående webhooks samt kontaktbiblioteket for plattformer somShopify, WooCommerce, WHMCS, Zendesk, Stripe, SlackogGmail.

Bygg din egen

Connector Builder for no-code kontakter, handlinger og triggere hvis du helst ikke vil bruke koblinger i det hele tatt, samt REST API med alle handlinger, omfang og feilkode.

Operere den

Roller og tillatelser, sikkerheten, krone, diagnostikk, backups og både vert for og selvværte distribusjon.

Hvor skal man begynne

1
Hvis du kjører OpsIQ dag til dag

Les skjermdelene i sidelinjens rekkefølge. Hver åpner med hva siden er for, så du kan stoppe når det trengs.

2
Hvis du administrerer det

Legg til innstillinger, sikkerhet, diagnostikk og produksjon. Dette er seksjonene som bestemmer om alt annet fungerer stadig.

3
Hvis du bygger en integrasjon

Start på kontakter, så kontaktbyggeren og deretter REST API Les dem i rekkefølge, og du vil ha sett alle måter OpsIQ Kan snakke med et annet system.

💡
To ting endrer det du ser. Tillater skjule sider din rolle kan ikke åpnes, så en del som er beskrevet her mangler fra sidepanelet ditt. Be administrator om å sjekke rollen din og kontakter har et modenhetsvarikett på produksjon, Beta- eller Forhåndsvis - eller Mal; den kjørere bygningen og kontaktbildet til dens konnektoruttrykk er autoriteten du har, ikke denne siden.
Start her

Hva OpsIQ gjør for din virksomhet

OpsIQ er en komplett AI-første forretningsoperativ plattform. Den erstatter din analyse, live chat, aiddesk, CRM, SEO verktøykit, integrasjon mellomvare og utviklende plattform med én enkelt enhetlig admin der alle verktøyet deler den samme kundekonteksten. I stedet for å sy sammen 8-12 separate SaaS-produkter, du installerer OpsIQ En gang og bruk alt fra én skjerm.

Plattformen
OpsIQ Unit plattformEn sentral AI-hjerne som er koblet til live chat, CRM, billetter, Site Intelligence, kampanjer og analyse.Live chatkampanjerAICRMNettsted IntelBiljettAnalyseOpsIQAI Brain1ONE WORKSPACEHvert verktøy i én administrator2SHARED BRAINEn kundesammenheng3ANYWHERESky eller selv-hostet
OpsIQ er én plattform med en delt kundekontekst, alle verktøyfôrer og drives av den samme AI-hjernen.

Alt OpsIQ gjør · i detalj

Nettsideanalyse og besøkendes intelligens

Real-tid besøkende sporing

Hver sidelast, klikk på, rull og navigasjonsarrangement blir tatt til fange i sanntid. Se hvem som er på nettstedet ditt akkurat nå, hvilke sider de ser, hvor lenge de tilbringer, og der de kom fra alle uten tredjeparts cookies.

Logg og økter

Full historie for alle besøkende med enhet, nettleser, operativsystemet, landet, byen, referanseren, UTM-parametere og innstilling av identitet. Sessionene gruppesidevisning i reiser slik at du kan se hele veien en gjest tar.

Øktgjentakelse

Tidslinje-stil avspilling av fanget besøkende økter. Se nøyaktig hva brukerne gjorde: musebevegelser, klikk på, ruller og sideovergange samt skjema interaksjoner. Bruk det til å diagnostisere UX problemer, forstå dråpepunktene og verifiser konverteringsflyten.

Direktestrøm

En sanntidsstrøm av besøkendes aktivitet som det skjer. Se sidevisninger, chat starter, skjemainnsendelser og intensjon signaler oppdatering hvert sekund. Filtrere etter land eller enhet til å fokusere på bestemte trafikksegmenter.

Toppsider

Sider rangert etter besøk, engasjementstid, studs rate og støtteaktivitet. Identifiser det høyeste performerende materialet ditt og sidene som trenger forbedring.

Geo-etterretning

Land, by og region deler seg med kart. Enhet og nettleserfordeling, trafikkkildeanalyse, søkemotor referansesporing samt markedsgjennomtrengning innsikt.

Forsettlig trakt

Spore besøkendes intensjonsignaler (prisbesøk på sider, gjentatt avkastning, dokumentasjon surfing mønster og støtteinteraksjoner) for å identifisere besøkere som er sannsynlige til å kjøpe eller trenger hjelp.

A/B-eksperimenter

Kjør splittede tester på nettstedet ditt direkte fra OpsIQ. Opprett varianter, sett trafikktildeling, definere konverteringsmål og måle statistisk betydning. Ingen eksterne testverktøy er nødvendig.

JavaScript feilsporing

Ta klientsiden JavaScript feil fra nettstedet ditt automatisk. Se Feilmeldinger, stabelspor, berørte nettlesere og hvilke sider utløser dem. Avluse frontend problemer uten separat feilsøkingsovervåking.

Hendelsers logg

Hver sport hendelse (sidevisninger, tilpassede arrangementer, chatinteraksjoner, skjemainnlegg og innkjøp) i en søkbar logg med fulle metadata.

Salg og konverteringer

Spor bestillinger, inntekter, refusjon, abonnementsfornyelser og attributtkonvertering til trafikkkilder, kampanje-og besøkende reiser. Inntekt dashboards med perioden sammenligning og trendanalyse.

Ledere

Høyt intent besøkende identifisert av atferdsmønstre. Score leads basert på sidebesøk, tid på nettstedet, returfrekvens, støtteinteraksjoner og tilpassede signaler. Feed fører direkte inn i CRM-rørledningen.

Nettsted Intelligence (SEO og innholdsanalyse)

Site kryper

Automatisert kryping av hele nettstedet for å oppdage sider, oppdage ødelagte lenker, finne manglende metatagger, sjekke bilde alt tekst, validert kanonisk URLs og kartlegg din nettside struktur. Planlegger krabber til å kjøre daglig, ukentlig eller etterspørselen.

Teknisk SEO-revisjon

Omfattende teknisk analyse: sidehastighetsscorer, mobil responsivitet, Core Web Vitals SSL sertifikatstatus, omdirigere kjeder, duplisert innholdsdeteksjon, krypdybdeanalyse og strukturert datavalidering.

Innholdsrevisjon

Evaluer alle sider for innholdskvalitet, ordtall, leselighetskarakter, søkeordtetthet, overskrift strukturen, interne / ekstern linkforhold og frisk. Identifiser tynn innhald, dupliserte sidene samt hull i innholdet.

AI-drevet søk

Semantisk søk på tvers av hele innholdet. Spør om naturlig språkspørsmål angående ditt innhald og få AI-syntesize svar med kildesiden referanser.

SERP rangering sporing

Overvåk søkemotorens rangeringer for målsøkeord på tvers av Google og andre motorer. Spor posisjonsendringene over tid, sammenlikn med konkurrenterne og se hvilke sider som rangeres etter hvilke vilkår.

Nøkkelordforskning

Oppdag søkeordsmuligheter basert på innhold, konkurrentanalyse og søkevolumdata. Få forslag til nye temaer for innhaldet, langhalevariasjonene samt mål om optimalisering av innhold.

Tilbakekoblingsanalyse

Overvåk din inngående lenkeprofil. Se hvilke nettsteder som link til deg, spor nye og tapte koblinger, analyser ankertekstdistribusjon samt identifiserer muligheter for å bygge sammen med linken.

Lokalt SEO-nett

For bedrifter med fysiske steder: visualisere din lokale søkesynlighet over et geografisk rutenett. Se hvordan rangeringen varierer etter plassering, avstand fra virksomheten og søksformålet ditt.

Google Business Profile synkronisering

Koble din Google Business Profil til OpsIQ. Synkroniser anmeldelser, innlegg, Q&A, bilder og forretningsinformasjon.OpsIQ Svar på anmeldelser, publiser innlegg og overvåke innsikt.

Planlagte rapporter

Automatiserte SEO og analyserapporter som genereres på planen din (daglig, ukentlige eller månedlige). Rapporter inkluderer rangering endringer i trafikktendenser, tekniske problemer funnet. Hvit-merke produksjon tilgjengelig for byråene.

AI-drevet støtte

Kunde AI chat

AI-svarer kundespørsmål på din hjemmeside 24/7 ved hjelp av kunnskapsbasen din, tilkoblede plattformdata (ordrer, kontoer og abonnement) og tilpasset opplæring. Støtter flere AI-leverandører: Claude Anthropic), GPT-4o (OpenAI), Gemini (Google) og Grok.

Admin AI-assistent

En AI-kompilot inne i adminpanelet som hjelper deg å skrive billettsvar, utkaste kundekommunikationen og analysere støttetrender, slå opp kunderdata på tvers av tilkoblede plattformer.

AI kunnskapsgrunnleggelse

AI er begrunnet i kunnskapsbase artikler, FAQ-oppføringer og produktdokumentasjon samt tilkoblede plattformdata. Det hallucinere ikke. Den svarer fra din faktiske forretningsinformasjon eller eskaleres når den er usikker.

Auto-handoff til mennesker

Når AI ikke kan løse et spørsmål, oppdager frustrasjon eller kunden ber om å få en menneskelig person, gir den automatisk av til teamet ditt med full konversasjon. Konfigurerbar nedgang/tid ut auto-omvend tilbake til AI.

AI-trening spør

Skriv separat instruksjon spør for kunde-vendt AI og adminsvert AI. Kontrolltone, grenser, eskaleringsregler, forbudt emner og forretningsspesifikk oppførsel. Per arbeidsrom konfigurasjon støttes.

AI historie og revisjon

Hver AI-samtale er logget med full forspørselsdetaljer/responsinformasjon, tokenbruk, kostnadssporing og leverandør som brukes. Gjennomgang samtaler til å identifisere treningsåpningene og forbedre AI nøyaktigheten.

AI-innsikter

Automatisk analyse av AI-samtalemønstre. Se vanlige spørsmål, oppløsningshastigheter, utlevering frekvensen, kundetilfredshet etter emne og områder der AI trenger bedre opplæring.

Per arbeidsrom AI-konfigurasjon

Hvert tilkoblet sted/arbeidsrom kan bruke sin egen AI-leverandør, modell, temperatur, tokenbudsjetter og opplæring. Et SaaS selskap kan benytte Claude for hovedproduktet samt GPT-4o i et sekundær merkevaremerke.

Administrert AI og BYOK

To AI-moduser: Managed AI (inkludert i planen din, no API Nøkkelen som trengs) eller ta med din egen nøkkel (bruk din egen OpenAI/Anthropic/Google/xAI API Nøkkelen for full kontroll over modellvalg og kostnader. Begge er førsteklasses, alle funksjoner fungerer med enten modus.

AI token budsjett og kostnadskontroll

Sett månedlige pollettbudsjetter, per konversasjon grenser og lavbalanse varsler. Spor utgifter pr leverandøren, per arbeidsområdet eller hver samtale. Forhindr kjøringskostnader med hardt tak.

Billetter og helpdesk

Nasjonalt billettsystem

Full helpdesk med avdelinger, prioriteringer (lav/medium / høy/urgent), statusser, SLA-sporing, interne notater, kundesvare og filvedlegg. Ingen eksterne hjelpemidler trenges.

AI triage og auto-reply

AI trigger automatisk innkommende billetter etter avdeling og prioritet. Aktiver auto-reply for trygge departementer. AIL utkastet, og sender et svar etter en konfigurerbar forsinkelse (standard: 2 minutt) så mennesker kan intervenere først.

E-post inntak

Koble til en postkasse (Gmail, IMAP, eller leverandørspesifikk) for automatisk å opprette billetter fra inngående e-post. Svar på kupongvarsling email oppdatere billetttråden.

Billettportalen er innpakket

Legg inn en kunde-vendt billettsportal på nettstedet ditt. Kunder kan sende ut billetter, se sin historie, svare til å åpne billetter og sjekke statusen din som alle merker i designen din.

Billettsammenslåing

Slå sammen dupliserte billetter til en enkelt tråd. Mergerte billettshow [Flettet] på emnelinjen. Alle samtalehistorier er bevart i den overlevende billetten.

Tilbake til AI

Når en menneskelig agent har overtatt et spørsmål, kan du bruke «Gå tilbake til AI» for å la kunstig intelligens fortsette med automatisk svar på det aktuelle spørsmålet.

Innboks copilot

AI-assistert billettsstyring fra innboksen visning. Copiloten foreslår svar, oppsummerer samtalehistorien, anbefaler prioritet/avdeling oppgaver og kan utføre handlinger på tilkoblede plattformer.

Chat og støtte i sanntid

Chat innboks

Real-time kundechatt som er drevet fra en enhetlig innboks. Se alle aktive samtaler, kundens identitet, samtalehistorie og AI forslag. Flere agenter kan samarbeide om en konversasjon.

Proactive chat regler

Trigger chatmeldinger basert på besøkendes atferd: tid på siden, bestemt URL besøkt, rull dybden, returbesøk telle, avslutte intensjon eller tilpassede hendelser. Eksempel: vis en hjelpemelding etter 60 sekunder på prissiden.

Chat-element

En tilpasset chat widget innebygd på nettstedet ditt. Støtter AI-prat, live agent chat, billetter innsendelse, kunnskapsbase søk og besøkende identitet. Responsive, tilgjengelig og brandable.

CSAT-undersøkelser

Samle kundetilfredshetsvurderinger etter chat- og billettinteraksjon. Designundersøkelser med dine egne spørsmål, vurderingsskalaer og oppfølgingsforespørsler. Resultatene kommer i lagytelse samt AI innsikt.

Postchat e-postundersøkelse

Etter at en chat er avsluttet, kan besøkende med en kjent e-post motta én merket post med et AI oppsummering av hva som ble håndtert og ett klikk "Var det lett?" Ja / Nei. En gang per tråd, signert engangskoblinger, hver sending logget, og resultatet lander på tilbakemeldingssiden som sitt eget signal ved siden av in-chat stjerner.

Tilbakemeldingsidentitetsløkke

Alle tilbakemeldinger som bærer en person viser dem: navn, e-post og klikk til full kundereise samt CRM kontakt.

Skriver AI

Separat AI-skriveassistent for komponering av epostutkast, billetter svar, kunngjøringer og kundekommunikasjon. Brukes sin egen kjap (ikke chat hjernen) til profesjonell forretningsskriving.

AI-Første CRM

CRM-kommandosenter

En enkelt skjerm som viser hele CRM-tilstanden din: pipeline verdi, deal hastighet, kommende oppgaver, risikotilbud, agentaktivitet og AI anbefalinger. Forsiden til CRm er ditt daglige utgangspunkt.

Kontakter og selskap

Administrer kundekontakter med full profil: navn, e-post, telefon, selskapet, tags, livscykelstadiet, samtalehistorien, billetthistorikken og spesialiserte felt. Link kontakter til bedriftene for B2B forhold management.

tilbud og rørledningsbrett

Visual Kanban-stil avtale bord med tilpassede stadier. Dra avtaler mellom trinn, sett verdier, tildel eiere, spor lukke datoene og se rørledningsverdi i hvert stadium. Flere kanaler støttet.

AI-avtale coaching

AI analyserer hver avtale og gir coaching: risikosignal (gone rolig, konkurrent nevnt, budsjett bekymring), neste-beste handling anbefalingene, vinne sannsynlighet og foreslått oppfølging timing.

Prognose og rapporter

Inntektsprognoser basert på rørledningsdata, historiske nærpriser og avtalehastighet. Rapporter inkluderer pipeline per etape av eieren etter kilden, konverteringskursen, gjennomsnittlig dealstørrelse og salgssykluslengden.

Uttalende agent (SDR)

AI-drevet prospektering som identifiserer potensielle kunder fra besøkende data, ledesignaler og tilkoblet plattformaktivitet. Foreslås utover målene, utkast initial meldinger samt scorer blykvaliteten.

Oppfølgingssekvenser

Automatisert multi-trinns oppfølgingssekvenser: epost, ventetid, email, sjekk svar og eskalere. Definer sekvensene for nye leads, oppholdne tilbud, inntjekningskampanje etter kjøperuttekten samt gjeninntak av kampanjer.

Livsyklus og oppbevaring

Spor kunde livssyklus stadier (leder, utsikter, kunder, churned) med automatiserte overgange. Reparasjonsmiddelet overvåker for krutsignal og antyder intervensjoner.

Dataadministrator

AI-agent som kontinuerlig renser og beriker dine CRM data: dedupliserer kontakter, fyller manglende feltene, validerer eposten, standardiserer firmanavnet ditt samt flaggs stole poster.

Bygg min CRM

Naturlig språk CRM konfigurasjon: fortell AI hvordan salgsprosessen ser ut, og det bygger pipeline-faser, tilpassede feltene, dealmaler og automatiseringsregler.

CRM helsekontroll

Automatisk revisjon av CRM-datakvaliteten din: dupliserte kontakter, tilbud uten neste trinn, trappeledninger og manglende kontaktinformasjon samt fullverdighetsscoring.

Tillitsoppringing

Tre nivå autonomi kontroll for hver CRM AI-agent: Autopilot (AI virker uavhengig), Copiper (AI antyder, human godkjenner) og manuelle (IA observeres kun). Velg dial per agent, pr handling type, og i hvert avtaleverdi terskel.

Fire AI-agenter

CRM driver fire spesialiserte AI-agenter: Steward (datakvalitet), SDR(prospektering) og Recenting (churnforebygging). Hver agent har sin egen Trust Dial innstilling.

Kobling og integrasjon

Forbygde kontakter

Ready-to-use connectors for Shopify, WooCommerce, BigCommerce, Magento 2, PrestaShop, OpenCart, osCommerce, WordPress, WHMCS, Zendesk, Stripe, Amazon SES, Postmark, Resend, SendGrid, Mailgun, Gmail, IMAP, Slack, and Google Business Profile. Each connector brings platform-specific AI actions, knowledge, and data sync.

Connector Builder

Bygg egendefinerte kontakter for enhver plattform, ingen kode eller AI-assistert. Builderen støtter REST og GraphQL APIs, OAuth autorisasjonskodestrøm, webhook-autoregistrering med Stripe og enkle signaturordninger (offset), liste/feiltransformeringer, flerhandlingskontekster og markedsemballasje.

AI-assistert kobling forfatter

ConnectorBuilderAI hjelper deg å bygge koblingskontakter: beskrive hva du vil, og det foreslår handlinger, skriver forespørselsbehandlinger samt kart API -respons. Håndterer autentisering, paginasjon og feilhåndtering automatisk.

OAuth strømning for hvilken som helst kontakt

Generisk i-app OAuth autorisasjonsstrøm som fungerer med hvilken som helst forbindelse. PKCE støtte, site-spekulert tilstand styring og automatisk token oppdatering. Kontakter definerer deres OAuth parametre og OpsIQ håndtere flyten.

Buser med kapacitet (plattformvidde)

Kontakter ikke bare legge til plattformhandlinger. De kan drive kjernefunksjonene gjennom funksjons-busser - En kontakt erklærer en evne (kalendar, berigelse, esign in CRM; lokal_listing, range_data i Site Intelligence; web_analytics i Analytics; payment_producer in Paysions; email_sync in Mailbox; video_meetings in Comms) og gjennomfører dets små metodesett; OpsIQ Oppdager det via CapabilityRegistry og ledninger den inn i UI, Kunden 360 timeline, og AI-handlingene. Flere kontakter kan tilby den samme kapasiteten uten låsing. Se konnektorer/PLATFORM_CONNEECTORS.md.

Forinstallert vs markedsnivå

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.

Kontakt markedsplass

Publiser kontaktene dine til OpsIQ markedsplass. Pakkekontakter med profil json Kunnskap.json, arbeidsflyt_recipes.json, og signerte arkiver. Marketplace støtter gratis og betalt connectors med multi-kilde fakturering

Koblingssignering

Alle kontakter er kryptografisk signert for verifisering av integritet. Signering blir kontrollert på installert tidspunkt. Bruk verktøyet «Reading_all_connectors» til å signere igjen etter oppdateringer.

Smartoppslag

Deklarativt fuzzy-matching system for koblingshandlinger. Definer oppslagsregler og OpsIQ Eksempel: find_country("germ") matcher Tyskland med, mens finn_land("bakterier") matches Norge med. 88.9% Selvtillit.

Handlingskontrakter

Generalen OpsIQ API utgivelser 1,312 navngitte handlinger, mens kontaktpakker erklære sine egne leverandørhandlinger med skrivne parametere, autentiseringskrav, pagineringsregler og respons forvandles gjennom den felles ActionExecutor.

Koblingsoppskrifter

Forhåndsbygde arbeidsflytoppskrifter som kombinerer flere koblingshandlinger i vanlige forretningsarbeidsflyter, f. eks. «Når en ny ordre kommer inn på Shopify, opprett et billett, oppdater CRM og send et Slack-varsel.»

Kunnskapssync

Koblinger erklærer kunnskapsemner som synkroniseres til AI-kunnskapsbasen. Plattformspesifikke hjelpeartikler, installasjonsveiledning og feilsøkingstrinn er automatisk tilgjengelige for AI uten manuell kunnskapsoppføring.

Utviklerplattform

RESTAPI

Et navn JSON API Dekker hver registrert administrator JSON drift, medAPI-nøkkelautentisering, arbeidsområdeisolasjon, omfangsgrenser, hastighetsbegrensninger og idempotente skrivere, OpenAPI eller en generert Postman-samling.

Webhooks

Utgående webhooks for alle store hendelser: bestillinger, fakturaer, abonnements- og billetter, chattespill, ledere, brukerregistreringer og vognavbestilling. Sync levering via jobbkøen, exponentiell tilbakebetaling reprøving, SSRF beskyttelse og autodeaktiverbar etter 15 påfølgende feil.

Webhook-signering

Alle utgående webhook er signert med HMAC-SHA256. Kontroller signaturer på mottaksslutten for å sikre Webhook autenticitet. Stabel event_id til idemppotensiell behandling.

WidgetSDK

JavaScript SDK for sporingswidget med identitetsoppløsning, tilpasset hendelsesporing, programmatisk chatkontroll og sidespesifikk konfigurasjon. Installer oppskrifter på React WordPress, Shopify, og statisk HTML.

Plugins og SDK

Server-side SDKs og plugins for felles rammeverk. WordPress plugin, WHMCS modul, og generiske PHP/Node.js integrasjonsbiblioteker

Begivenheter API

Skyv ut tilpassede hendelser til OpsIQ fra backend: kjøp, registreringer, funksjonsbruk, feil eller enhver forretningshending. Hendelser vises i besøkende tidslinje og feed in analytics and AI-konteksten.

Triggers kokebok

Bygg automatiserte arbeidsflyter utløst av hendelser: ny billett, chat startes, besøkende identifiserte, avtale scene endret eller tilpassede arrangement. Triggeres utfører kontakthandlinger, sende webhooks, oppdateringsoppføringer og varsle teamet ditt.

API byggmester

Visuell API og webhook-bygger inne i administratoren. Konfigurere endepunktene, testforespørsler, inspeksjonssvar og feilsøking integrasjon uten å forlate OpsIQ.

Team og administrasjon

Rollebasert tilgangskontroll

Tre roller: Eier (full adgang, fakturering, faresone), Full Admin (alle operasjonene bortsett fra fakturerings- og risikossonen) samt Agent (bare tildelt avdelingsavdeling. Alle sensitive sider er hardt plassert etter rolla.

Teamets ytelses dashboard

Eier og komplett Admin-bare dashboard som viser oppløsningstider, arbeidslastfordeling, håndtering dybden, kanalneddelingen, trendanalyse, SLA samsvar med agent CSAT av Agent, gjenåpningshastighetene, teamrullups og travleste timer. Oppdatert i sanntid

Admin tilstedeværelse og online sporing

Real-time som er online widget i admin navigasjonen. Heartbeat -basert tilstedeværelse deteksjon (60- Second ping, 300- sekunders forlengelse, autoprune etter 120 se hvilke administratorer som er aktive og på hvem sider.

Innstillinger for per arbeidsrom

Hvert tilkoblet nettsted (arbeidsplass) kan ha sin egen AI-konfigurasjon, konnektorinnstillinger, billettsavdelingene og driftsreglene. Globale standard caskade til arbeidsområder som ikke overstyr dem.

Flersetestyring

Administrer flere nettsteder fra én OpsIQ administrator. Hvert nettsted har sin egen sporingssnutt, besøksdata og konfigurasjon. Bytt mellom sider fra admin-navigasjonen.

E-postmalsystem

Registerdrevet e-postmaler for all automatisert kommunikasjon: billettevarsler, chattranskripsjoner, velkomstemails, passordoversettelser og system varsler. Rediger HTML maler med live forhåndsvisning, variabel chips ({{customer_name}}, {{ticket_id}}), og global layoutkontroll.

Import og eksport

Importere kontakter, billetter og kunnskapsartikler fra CSV/JSON. Eksportere besøkendes data, analyserapporter og CRM-registreringer; Dataportabilitet for migrant mellom systemer

Sikkerhet, overholdelse og drift

EnterpriseSSO

OIDC (OpenID Koble til) enkeltinnlogging med full kjøringstid: oppdagelse, autorisasjon og tilbakekallelse av signaturkontroll fra JWKS-kontoen. SAML konfigurasjonsstøtte.

GDPR og overholdelse av data

Innebygget DSAR (Datasubjekttilgangsforespurnelse) håndtering: eksport og slette kundedata på tvers av alle systemer. Kontaktnivå datautrydning dekker økter, billetter, chatte, CRM-registreringer samt epostlogger. Samsvarlig styring og oppbevaringsregler.

IP blokkering og brukskraftbeskyttelse

Blokker spesifikke IPs eller varierer fra å få tilgang til nettstedet ditt eller administratoren. Automatisk låsing etter konfigurerbare mislykkede innloggingsforsøk. Mislyktes logg med IP, tidsstemple og brukeragent.

HSTS og sikkerhetshoder

HTTP Strict Transport Security, Tillatelser-Politiske headers og sikker informasjonskapselkonfigurasjon. Selvstyrte distribusjoner kan legge til CSP overskriftene gjennom server konvertering.

Utgående webhook herding

SSRF vaktblokker webhooks til privat/metadata IP rekkevidde. Sync levering hindrer langsomme endepunkter fra å blokkere applikasjonen din. Auto-disable etter 15 Påfølgende feil hindrer ressursavfall på døde endepunkter.

Arbeidsområdeisolasjon

Streng dataisolasjon mellom arbeidsområdene. Besøkende, billetter, chatte- og CRM-registrerer og AI-samtaler er dekket til arbeidsområdet sitt. Tverrarbeidsdatalekkasjer hindres i spørringslaget.

Fakturering av syklusstyring

Støtte for månedlige, kvartalsvise og halvårelige betalings-Sykluser. Valutanormalisering av multivaluta gateways. FX konvertering på betaling kvittering til nøyaktig inntektsrapportering

Krone og planlagt automatisering

Innebygd cronsystem for planlagte oppgaver: rapportgenerasjon, dataopprydding, abonnementsfornyelser, AI-trening oppdateringer, kontaktsynk og webhook retries. Helsediagnostik med varsling indikatorer

Databevaringspolicyer

Konfigurer hvor lenge besøkende sesjoner, chatttranskripsjonene og AI-samtaleloggen holdes. Automatisk opprydding av aldrende data for å administrere lagringsplassering og etterlevelsesregler.

Diagnostiske og helsemessige

System helse dashboard som viser Cron status, databasetilkoblingsstatus, AI-leverandørstatus, kontakthelse, webhook leveringshastigheter og lagring bruk. Advarsel for konfigurasjonsproblemer og ytelse flaskehalsene.

Hvem OpsIQ er for

E-handel butikker

Butikker

Spor hver besøkende fra landing til kjøp. La AI svare "Hvor er min bestilling?" ved hjelp av live Shopify/WooCommerce/BigCommerce-data. Administrer støttesaker med automatisk AI-svar. Kjør en avtalepipeline for engros og B2B-leads. Tilordne inntekter til trafikkilder og kampanjer. Overvåk handlekurvforlatelse med gjenopprettingsarbeidsflyter.

SaaS og programvareselskaper

SaaS

Overvåk prøveopptak og funksjonsadopsjon med økt replay. Spor hvilke dokumentasjon sider konverterer. Automatiser støtte med AI-grunnlagt i din API docs. Hanter abonnementets inntekter og utvidelse tilbud i CRM. Koble faktureringsplattformen (Stripe, WHMCS) for sanntid MRR sporing. Bruk CRM livssyklus agent til å oppdage og hindre churn.

byråer og frilansere

byrå

Tilby hvitmerkede analyser og støtteportaler til klientene. Spor fører på tvers av flere kundesider fra en administrator. Bruke CRM-rørledningen for å administrere utsiktspunkter og prosjektledere. Bygg tilpasset kontaktelementer for klientplattformen ved hjelp av Connector Builderen. Genert merkevare SEO rapporter med Site Intelligence. Reselg markedsforbindelser som verditilføyelsestjenester.

Vært og infrastruktur

Vert

Deep WHMCS integrasjon med 80+ AI-tiltak for ordreoppslag, servicestyring DNS, og levering. Auto-reply til vanlige hosting spørsmål ved hjelp av kunnskapsbase artikler. Spor server status side engasjement. Håndtere tekniske støtte billetter med AI triage. Bruk fakturerings syklus stige for månedlig gjennom levetiden hosting planer.

Støtte-tunge virksomheter

Støtte

Deflect 40-70% av repetitive spørsmål med AI chat som er grunnlagt i kunnskapsbasen din. Rute billetter til rett departement med AI triage. Spor teamets ytelse med oppløsningstid, SLA samsvar og CSAT ved agent. Bruk skrivende AI for profesjonell svarutarbeiding. Overvåk støtte trender med AI innsikt.

Markedsføring og SEO-team

Markedsføring

Full Site Intelligence-pakke: kryper, tekniske SEO revisjoner, innholdsanalyse, serp rangering av søkeordforskning og backlink monitoring. Google Business Profile management. Planlagt hvitmerkerapporter for klientene. A/B test bygget inn i sporingswidgeten. Campaign tilknytning på tvers over alle kanaler.

Solo grunnleggere og små lag

Oppstart

Start med bare sporing og chat, gratis å legge til. Deretter legg billetter når du får støttevolumet. Slå på CRM mens du begynner å selge. Koble plattformer som du adoptere dem OpsIQ fra én person som gjør alt til en 50-persondriftsteam med RBAC, avdelinger og per-agent ytelse sporing.

Enterprise og multi-brand

Enterprise

Bedrift SSO med OIDC for sentralisert autentisering. Multi-arbeidsrom isolasjon til separate merker eller divisjoner. Per arbeidsområde AI konfigurasjonen med ulike leverandører og modeller. Custom connector utviklingen med markedsplass distribusjon GDPR samsvarsverktøy og retningslinjer for datalagring.

Hva OpsIQ erstatter

Google Analytics + Hotjar+ Plausbar

Fulle nettstedsanalyser med besøkende sporing, sesjon replay, siderangeringer, geo intelligens, intensttrakter, konvertering tilskrivning, hendelser, A/B-eksperiment og JS feilsporing, alle personvernvennlige alt i én plattform.

Intercom + Drift+ Tidio

AI-drevet kundechat med kunnskapsgrunning, multileverandør AI support, autohåndoff til mennesker, proaktive pratregler, samtalehistorie, CSAT undersøkelser og billett opprettelse fra chat.

Zendesk + Freshdesk+ Hjelp Scout

Native billettsystem med avdelinger, prioriteringer, SLA-triage, AI-triasje og automatisk reply med konfigurerbar forsinkelse.

HubSpot + Pipedrive+ Salesforce

AI-første CRM med fire spesialiserte AI agenter (Steward, SDR, Retention, Analyst), Trust Dial autonomikontroll, rørledningsbrettet, avtale coaching, forutsetning, rekkefølger, livsyklusstyring og naturlig språk CRm konfigurasjon.

Ahrefs + SEMrush+ Moz

Nettsteds Intelligence med automatiserte kryp, tekniske SEO-revisjoner, innhold analyse, AI søk, SERP rang sporing, søkeord forskning, backlink analyse, lokale SO rutenett og planlagte hvitmerke rapporter.

Zapier + Lage + tilpasset mellomvare

Koble SDK med 25+ forhåndsbyggede kontakter, kontaktbygger (ingen kode/AI-støttet / fullkode), OAuth flow, webhook auto-registrering, en stor katalog av handlingsdefinisjoner som blir kjørbare bare når den aktuelle kontakten er installert, aktivert og validert, SmartLookup, markedsplass og signerte pakker.

Google Business Profile Manager

Full GBP-kontakt: gjennomgangshåndtering, postpublisering, Q&A management, fotoopplastinger, forretningsinfosync, innsiktsporing og AI-drevet anmeldelsesvar alt fra inne OpsIQ.

Separate e-postmalverktøy

Registreringsdrevet e-postmaler med visuell redaktør, live forhåndsvisning, variabel chips, global layoutkontroll og per arrangement tilpasning for all automatisert kommunikasjon.

Teamstyrings dashboard

Innbygget lagytelse: oppløsningstider, arbeidslast, SLA-overholdelse av agenten CSAT ved å åpne opp igjen priser, travleste timer, sporing i sanntid og inndelinger per department.

GDPR samsvarsverktøy

Innfødte DSAR håndtering, datasletting på tvers av alle systemer og samtykkestyring, retensjonsregler og revisjonstier som er bygget inn i plattformen.

To utgaver

Vertslig utplassering

OpsIQ kjører på kontrollert infrastruktur. Produktdrift er den samme; infrastruktur, oppdateringer og backup håndteres av hostingoperatøren. Denne håndboken dokumentere OpsIQ løpstid i stedet for markedsføring eller kommersiell konto flyter.

Selvværende modul

Installer OpsIQ på din egen server for full kontroll over data, merkevarearbeid og oppdateringer. 8.4+, MySQL 5.7+ eller MariaDB 10.3+, HTTPS og OpsIQ Unite cron. Støtter WHMCS integrasjon som en addonmodul. Full data suverenitet

Anbefalt leseordre

1
Rask start

Følg 30-minutters oppsett guide for å få sporing, chat og grunnleggende AI som jobber på nettstedet ditt.

2
Dashboard og analyse

Lær å lese besøksdataene dine, konfigurere øktspilling og identifisere spor.

3
Nettsteds Intelligence

Kjør din første SEO kryp, sjekk den tekniske helsen og konfigurer SERP rang sporing for mål-nøkkelord.

4
Billetter og støtte

Sett opp avdelinger, konfigurer automatisk med AI-en, koble epost inntak og tren din AI til å håndtere vanlige spørsmål.

5
CRM

Organiser kontakter, bygg rørledningen din, konfigurer AI-agentene, set Trust Dial nivåer og la AI coach dine tilbud.

6
Kontakter og utviklerverktøy

Koble din e-handel/billeringsplattform, bygg egendefinerte kontakter og installer via REST API.

💡
Ny til OpsIQ? Start med Hurtigstart guiden nedenfor. Du kan ha sporing og grunnleggende AI-chat kjører i under 30 - Minutt.
Start her

Rask start inn 30 min.

Følg disse trinnene for å få OpsIQ -kjøring. Hvert steg bygger på forrige. Ved slutten vil du ha besøkende sporing, AI chat og grunnleggende billettstøtte.

Oppsett
Sjekkliste for hurtigstartEn guidet installasjonskontrollliste som viser widget-installering, plattformtilkobling til AI-trening og teaminvitasjon. 60 prosent av fremdriftslinjen.Kom i gangsetupInstaller OpsIQ -elementetFERTIGKoble til en plattform (WHMCS, Shopify...)FERTIGTren din AI på innholdet dittFERTIGInviter teamet dittSjekk og gå liveOppstillingsframgang3 av 5 · 60%1STEP 1Installer widget2STEP 2Koble til og tog AI3STEP 3Inviter & gå live
Den 30-minuttsti: installer widgeten, koble til en plattform, tren AI-en din, invitere laget og deretter gå live.

Den 30-minutt oppsett

1
Aktiver lisens

Skriv inn lisensnøkkelen i OpsIQ admin. Gå til Innstillinger, skriv inn lisens nøkkelen som følger med denne installasjonen, og klikk Aktiver. Du bør se en grønn "Aktiv" badge.

2
Sett din forretningsidentitet

Gå til innstillinger og fyll ut firmanavn, bransje- eller tidssonetid. Denne informasjonen brukes av AI når du svarer på kundespørsmålene dine samt ved analyse for tidslinjebeskyttede rapporter.

3
Velg en AI-leverandør

Gå til AI-konfigurasjon og velg leverandøren din. Alternativer: Claude (Anthropic), GPT- 4o (OpenAI), Gemini (Google), eller Grok (xAI). Skriv inn din API Hvis du bruker din egen nøkkel, kan du velge å bruke Managed AI hvis det er tilgjengelig i abonnementet ditt.

4
Installer sporingswidgeten

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
Koble plattformen din

Hvis du bruker Shopify, WooCommerce, WHMCS, eller en annen plattform som støttes, gå til Connectors, finn din plattform og klikk på Testtilkobling. Dette gir AI tilgang til bestillingsdata, kundeprofiler og support-kontekst.

6
Inviter teamet ditt

Gå til Team, klikk Inviter og skriv inn e-posten sin (Owner eller Full Admin eller Agent). agentene kan kun få tilgang til avdelinger du gir dem. Eiere og fulle administrator ser alt.

Den raskeste mulige veien (5 minutter)

Trinn 1: Installer widget

Kopier snutt fra tilkoblede nettsteder og lim det inn på nettsiden. Dette gir deg sporing umiddelbart.

Trinn 2: Aktiver AI

Gå til AI-konfigurasjon, velg en leverandør og skriv inn nøkkelen din.

Ferdig

Du har nå besøkende sporing og AI-chat. du kan legge til billetter, CRM og kontakter senere.

dag 2: Gjør det nyttig

Legg til kunnskap

Gå til kunnskapsbase og legg 5-10 artikler om dine mest vanlige spørsmål. AI bruker disse til å svare kunder nøyaktig.

Opprette avdelinger

Gå til Tickets og opprett minst 2 avdelinger (f. eks. "Salg" og "Support") Tilordne teammedlemmer til hver.

Skriv din AI-prompt

Gå til AI-trening og skriv en kundebillett som beskriver virksomheten din, toneene dine og eskaleringsregler.

Test en samtale

Åpne nettstedet i en privat nettleser og chatte med AI som kunde. Sjekk at svarene er nøyaktige, og toneen har rett.

Uke 1Bygg dine operasjoner

Koble til e-post

Sett opp en postkasse (Gmail, IMAP, eller en leverandørkontakt) så kundee e-poster automatisk opprette billetter.

Sett opp autoreply

Aktiver billett auto-reply for trygge avdelinger. Velg en 2-minutt forsinkelse slik at mennesker kan intervenere først.

Gjennomgå analyse

Sjekk Dashboard daglig. Se på besøkende teller, studs rate, toppsider og salg hvis sporing er tilkoblet.

Start din CRM

Åpne AI CRM og la OpsIQ importer kontakter fra de tilkoblede plattformene. Se gjennom rørledningsbrettet

Måned 1: Optimer

Anmeldelse av AI-historie

Sjekk AI History ukentlig. Se etter feil svar, savnede spørsmål og muligheter til å legge til kunnskap.

Legg til proaktive regler

Opprette en regel: Hvis besøkende er på prissiden for 60+ sekunder, vis en chat melding spør om de trenger hjelp.

Bygg en kobling

Hvis du bruker en plattform som ikke har innebygd kontakt, bruk Connector Builder til å opprette én.

Sett opp webhooks

Koble til OpsIQ til dine interne verktøy ved hjelp av utgående webhooks for billett, chat og salgsarrangementer.

Kan jeg hoppe over AI og bare bruke sporing?+

Ja. AI-leverandøren er valgfri. OpsIQ fungerer som en ren analyse og billettplattform uten AI. Du kan aktivere AI senere når du er klar.

Kan jeg hoppe over kontakter og legge dem til senere?+

Ja. Koblinger beriger AI med plattformspesifikke data, men OpsIQ fungerer uten dem. Start med sporing og chatte, deretter koble til plattformene når det trengs.

Hva om jeg ikke har en nettside ennå?+

Du kan fortsatt bruke OpsIQ til billetter, CRM og teamsamarbeid. Sporingswidgeten er valgfri. Legg den når nettstedet ditt er klart.

Hvordan vet jeg om widgeten er installert riktig?+

Besøk nettstedet ditt i en privat/inkognito-nettleser. Deretter sjekker du OpsIQ Du bør se besøket ditt vises innen 24 timer. 15 Hvis ikke, sjekk: (1) er utdraget limt inn riktig, (2) er nettstedsnøkkelen riktig, (3) er annonseblokkere eller CSP-overskrifter som blokkerer skriptet.

Start her

Komplett produktkart

OpsIQ er ikke én funksjon. Det er en operatør admin, et nettsted widget, AI støttelag, billett / hjelpesystem, full CRM med fire AI-agenter, en Site Intelligence suite, en kontaktplattform med markedsplass og utvikler overflaten. Her er hver komponent den inneholder.

Operatør admin

Dashboard, live feed, besøkende loggen, sesjon replay, toppsider, geo-etterretningsenhet, intenst trakt, hendelser log, A/B eksperimenter, JS feilsporing, salg og konverteringar, lederne AI CRM (kommandosentrum, kontakter, selskapene, tilbud, rørledningskort, avtale coaching, prognoser, prospektering, livsyklus, dataadministrasjon API), billetter, chat-innboks, proaktive regler, CSAT spørreundersøkelser, epostutkast, postkasseer, AI konfigurasjon, AI trening, AI historie, AI innsiktsbase, kunnskapsgrunnlag, kontaktbyggere. markedsplassen, tilkoblede steder, teamstyring, lagytelse, innstillingene, diagnostikk og lisens.

Kundevendende overflater

Nettstedssporing widget (analytics beacon + chat + billett embed + kunnskap base søk), klient AI-prat, billettsinnsendelse portalen, besøkende identitet tokens håndtering, filopplastinger, CSAT undersøkelse widge og kundevendte hjelpesenter.

AI-Første CRM

Kommandosenteret, kontakter, selskaper, tilbud, rørledningsbrett med dra-og -dråper, AI håndtere coaching (risikosignalene, nest beste handlingen, gevinstsannsynlighet), inntektsprognose, prospekteringsmiddel (SDR) automatiserte oppfølgingssekvenser og oppbevaringsstyring av livsykluser, dataadministrasjonsagent (dedup, berikelse, validert); Bygg min CRM (naturlig språkoppsett), VR konfigurasjon, helsekontroll i CRm, Trust Dial (Autopilot/Copipar / Manual per agent), fire spesialiserte midler (Stéward, SDR, Retintion, Analyst). API med webhooks.

Site Intelligence Suite

Automatisert nettsted kryper, teknisk SEO-revisjon (speed, mobile, Core Web Vitals), SSL, omdirigeringer, strukturerte data), revisjon av innhold (ordtelling, leselighet, nøkkelordtetthet, overskriftsstruktur) AI-drevet semantisk søk, SERP rangering sporing på tvers av motorer, søkeord forskning med mulighet scoring, backlink analyse og overvåkning, lokal seo rutenett visualisering, Google Business Profile sync (reviews. innlegg, Q&A bilder, insikt), planlagte rapporter (daglig/ukentlig / månedlig). PDF Utgang for byråer.

AI og automatisering

Kunde AI chat (fleirtallsleverandør: Claude, GPT-4o Gemini, Grok), admin AI-assistent, AI kunnskapsgrunning og autohåndtak med konfigurerbar returtid. BYOK moduser, token budsjett og kostnadskontroll, AI-historiske revisjonsti, AI innsikt analyse, billetten AI triage, billetter automatisk reply med forsinkelser, skriving av AI (separate quick) og admin inbox copilot.

Kobling og integrasjon

25+ forhåndsbygde kontakter (Shopify, WooCommerce, StorHandel2, PrestaShop, OpenCartWordPress, WHMCS, Zendesk, StripeAmazon SES, Postmark, Resend, SendGridGmail, IMAP, Slack, Google Business Profile), Connector Builder (ingen kode/AI-assistert / fullkode)OAuthflyte med PKCE, kontaktmarked med betalt distribusjon og konnektor signering og verifisering, SmartLookup uklar matching, en stor katalog av HTTP-aksjonsdefinisjoner hvis tilgjengelighet er avhengig av installasjon i forbindelseskontakten, aktivering, konfigurering og validering, kunnskap synkronisering og arbeidsflyt oppskrifter.

Utviklerplattform

RESTAPI(besøkere, hendelser, billetter, kontakter og innstillinger), OpenAPI-spesifikasjonenAPI nøkkelhåndtering, utgående webhooks (async, signerte og retried, SSRF-beskyttet), hendelserAPI for egendefinert inntak av hendelse, widget SDKmed identitetsoppløsning, utløser kokebok, handlingsavtaler og kontakt SDK, markedsemballasje, serversiden SDKs (PHS og Node.js), WordPress plugin, og WHMCS modul.

Innstillinger og operasjoner

Forretningsidentitet, AI-konfigurasjon per arbeidsområde, sporingsinnstillinger og sikkerhet (HSTS) IP blokkering, brute-force beskyttelse), RBAC (Owner/Full Admin / Agent) team management og invitasjoner, lagytelses dashboard, administrasjon tilstedeværelse sporing, epostmal system (registrert, visuel redaktør, variable chips), undersøkelse designere, domenet kunnskap, billetten embed konfiguration, merkevare, dataretensjon retningslinjer, fakturerings syklus ledelse (månedlig gjennom levetid); valuta normalisering, import/eksport, diagnostikum, Cron automatisering og faresone.

Sikkerhet og overholdelse

Bedrift SSO (OIDC med JWKS-verifisering, JIT tilveiebringelse), SAML konfigurasjon, GDPR/DSAR håndtering (eksport og sletting på tvers av alle systemer), dataslettelse per kontakt, samtykkehåndtering, arbeidsområdeisolasjon (begrenset spørringslaging), revisjonstier, feilaktig innloggingssporing. IP blokkere, utgående webhook SSRF-vakt og databevaringspolicyer.

Tilbyder bro

Administrert AI-utstyr OpsIQ leverandør URL, Site Intelligence-leverandøren kaller til seg lisensvalidering og helserapporter. PDF gjengivelse og dataeksport, alle rutet gjennom det konfigurerte leverandørendpointet, ikke direkte selgeren API Ring fra serveren din.

Hver admin-side

Instrumentpanel

Kjerne

Daglig kommandosenter: trafikkoversikt, live besøkende teller, salgssamandrag, støttekødybde, AI-aktivitetsvarsler og snarveistastar.

Direktestrøm

Analyse

Real-time besøkende stream: sidevisninger, chat starter, skjema innsendelser og intensjon signaler oppdatere hvert sekund med land, enhets-og referansefiltre.

Besøkslogg

Analyse

Fullstendig besøksposter: enhet, nettlesere, OS-system, land, by, referanser, UTM params, landingside, identitet og full sidevisningshistorikk.

Sessioner

Analyse

Reise-gruppert visning: sidestrøm, tid på sidene, rulledybde, konverteringssti og avslutting for hver besøkende sesjon.

Øktgjentakelse

Analyse

Tidslinjeavspilling av fanget hendelser: musebevegelse, klikk på ruller og sideoverganger.

Toppsider

Analyse

Sideytelsesrangering: besøk, engasjementstid, studsehastigheter og konverteringer.

Geo-etterretning

Analyse

Geografiske rapporter: land/by-inndeling med kart, enhetsfordeling, nettleserandel, trafikkkilder og markedsgjennomtrengning.

Forsettlig trakt

Analyse

Atferdsmessig intensjon sporing: prisbesøk, returfrekvens, doc surfing, støtte samhandlinger og tilpassede signaler med konvertering sannsynlighet.

Hendelsers logg

Analyse

Søkbar hendelse historie: sidevisninger, tilpassede arrangementer, chatter, kjøper, skjema innlegg med full metadata og filtrering.

A/B-eksperimenter

Analyse

Split testing: lage varianter, tildele trafikken, definere mål, måle betydningen og erklære vinnere alle fra innsiden OpsIQ.

JS-feil

Analyse

Frontend feilopptak: meldinger, stabelspor, berørte nettlesere, frekvens, påvirket sider og trend sporing.

Salg

Salg

Inntekts dashboard: bestillinger, fornyelser og refunderinger. Tilknytning etter kilden, kampanjeytelse, periodesammenligning samt trendanalyse

Ledere

Salg

Ledende ledelse: score, kilde tilskrivning, CRM status, kontaktinformasjon, atferdssignaler og rørledning rutine.

AICRM

CRM

Full CRM: kommandosenter, kontakter, selskaper, tilbud, rørledningsbrettet, coaching, prognoser, prospektering, rekkefølger, livscykel, datastyre og helse.

Biljett

Støtte

Støtte innboksen: avdelinger, prioriteringer, SLA sporing, AI triage, auto-reply, interne notater, filvedlegg, sammenslåings og statushåndtering.

Chat innboks

Støtte

Live-samtaler: AI og menneskelig chat, håndoff, samarbeid, samtalehistorie, kundeidentitet samt CSAT samling.

E-postutkast

Støtte

E-posthåndtering: inngående email til billetter, AI-assistert svarkomposisjonen og malvalget.

AI-oppsett

AI

Leverandøroppsett: Velg Claude/GPT-4o /Gemini/Grok, skriv inn API nøkkel eller aktivere administrert AI, satt modell, temperatur og token budsjett per arbeidsområde.

AI-trening

AI

Spør forfatterskap: kundevendende og admin-vendte spørringer, eskaleringsregler, toneretningslinjer, forbudt emner og grensekonfigurasjon.

AI historie

AI

Konversasjonsrevisjon: full forespørsels-/responslogger, tokenbruk, kostnader per samtale, leverandør, modellversjon og oppløsningsutfall.

AI-innsikter

AI

Mønsteranalyse: vanlige spørsmål, oppløsningshastigheter, avleveringsfrekvensen, tilfredshet etter emne og treningsgap identifikasjon.

Kunnskapsbase

AI

AI-trening innhold: artikler, FAQ oppføringer, produktdoks, kontakt kunnskap og egendefinerte poster. Semantisk og søkeord søk etter AI bakker.

Koblinger

Integrasjoner

Integrasjonshub: installerte kontakter, helsestatus, handlingsoversikter, kresentiell styring og markedslesere.

Tilkoblede nettsteder

Innstillinger

Nettstedshåndtering: sporing av snut, nettstedsnøkkel, widgetkonfigurasjon, domeneinnstillinger og arbeidsområdeisolering per-side.

Lag

Innstillinger

Brukeradministrasjon: invitere medlemmer, tildele roller (Owner/Full Admin / Agent), satt avdelingsadgang og administrere tillatelsene.

Teamets ytelse

Innstillinger

Ops metrics: oppløsningstid, arbeidslast, SLA compliance, CSAT av agenten, gjenåpningshastigheter, travleste timer og trendanalyse.

Innstillinger

Innstillinger

Konfigurasjon: forretningsidentitet, AI-oppsett, sporing, sikkerhet, merkevarebygging, retensjon, epostmalers, faktureringsarbeid, import/eksport av diagnostikk og faresone.

Lisens

Innstillinger

Planledelse: lisensstatus, planfunksjoner, bruksmatrise, fornyelsesdato og oppgradering/nedgraderingsalternativ.

Start her

Guidet onboarding

Om bordturen gjør en ny installasjon til et arbeid OpsIQ Arbeidsplass og kan bli igjen uten å miste utviklingen.

Produktskjerm
OmbordOmbord viser hvert oppsettsområde, dens nåværende tilstand og neste handling å fullføre.OmbordarbeidsflatePROGRESS60%COMPLETED6NESTEElementLIV ARBETSPESSONELisensValider produktlisensenFerdigAI-leverandørVelg leverandør og testnøkkelFerdigMerkeBedriftsidentitet og toneFerdigNettstedLegg til nettsted og installer widgetNeste1COMPLETE BASICSLisens, merkevare2CONNECT DATANettsted og kontakt3VERIFY LAUNCHTeam, e-post
Ombord viser hvert oppsettsområde, dens nåværende tilstand og neste handling å fullføre.

Anbefalt sekvens

  1. Lisens: Valider lisens og bekrefte at arbeidsområdet er aktivt.
  2. AI-leverandør: Velg leverandør/modell, skriv inn legitimasjoner og kjøre tilkoblingstesten. AI kan hoppes hvis arbeidsområdet i utgangspunktet vil bruke analyse-og billetter kun.
  3. Bedriftsidentitet: angi navn, bransjen, beskrivelsen og kundevendende tone-og merkedetaljer som brukes av widgeten.
  4. Koble til: muliggjør minst én ekstern plattform når OpsIQ trenger bestillinger, kunder, billetter eller annen plattform sammenheng.
  5. Nettsted og widget: opprette nettstedet/arbeidsrommet, kopiere nettsiden og verifisere et privat nettleserbesøk i Live Feed.
  6. Team og routing: invitere administratorer/agentene, opprette avdelinger, sette e-postruting og bekrefte varslingsinnstillinger.
  7. Go-live kontroller: testchatt, billett, kontaktsynkronisering, krone, utgående e-post, webhooks og sikkerhetshoder.

Reisen lagrer ferdigstillelse per arbeidsområde. Tilbake til onboarding bør vise fullførte trinn i stedet for å tvinge en omstart.

Start her

Administrasjons- og autorisasjonstillatelser

OpsIQ - sidepanelet er autorisasjonsbeskyttet. Dette kartet forklarer hvor hvert operativt område bor, og hvorfor en siden kan ikke være synlig for hver enkelt administrator.

Produktskjerm
OpsIQ navigasjonSidepanelets grupper OpsIQ etter arbeidsområde; individuelle lenker vises bare når den gjeldende rollen kan bruke dem.OpsIQ navigasjonarbeidsflateGROUPS8BIBELERTilgang basertSEARCHTilgjengeligLIV ARBETSPESSONEStøtteBilletter, e-post, CSATÅpneCRMKontakter, rørledning, tilbudÅpneAutomasjonArbeidsflyter, reglerÅpneSikkerhet og personvernOversikt, revisjons- og samtykkebekreftelseAdministrator1PICK A GROUPPasser til sidepanelet2CHECK ROLESkjulte midler begrenset3USE PAGE HELPÅpne den matchende delen
Sidepanelets grupper OpsIQ etter arbeidsområde; individuelle lenker vises bare når den gjeldende rollen kan bruke dem.
Støtte

Billetter, teamets e-postplattform, CSAT og Hjelpesenteret flyter.

CRM

De daglige salgsflatene: CRM Home, Kommandosenter, kontakter, rørlednings- og livscyklusprognose, prospektering, segmenter, lederbrettet, avtalegodkjenninger, datastyrende, vekstverktøy og aktivitetsstrømmen.

Automasjon

Eventdrevet arbeidsflyt, livssyklusregler og konverteringsmål.

Markedsføring

Utvendig, proaktive meldinger, kunngjøringer, kampanje Studio, Survey Studio, pressekampanjer og guidede turer.

Analyse

Report surfaces first — Analytics Hub, AI insights, sales, customers, leads, funnels, A/B tests, session replay, custom dashboards and scheduled reports — with the raw visitor, session, page, geography and event logs in a Raw Data sub-section.

Registrer deg på sider

Nettsted Intelligence, Team Performance og Feedback sitter utenfor gruppene som direkte oppføringer.

Integrasjoner

Koblinger, handlinger og utløsere, postkasser, utkast til e-postinnstillingene, inngående endepunkter, utgående webhooks og API nøkler.

Sikkerhet og personvern

Sikkerhetsoversikt, personvern og overholdelse av kravene til informasjonskapsler.IPsogJavaScriptfeil.

Innstillinger

Arbeidsplass grunnleggende (generelt, teamet, nettsteder, språk), deretter sammenleggbare underavsnitt: AI-brain (instrumentasjoner, konfigurasjonene, evalueringen, historien) CRM Oppsetning (bygger, tilpassede felt, blyskåring, helse), Data og Helse (diagnostiske, eksport) og Getting Started (onboarding, hjelp).

Sider som ikke kan åpnes, er skjult fra sidepanelet. Sidene den gjeldende planen inkluderer ikke å holde seg synlig med en Oppgradering tagge og åpne en i-app oppgraderingsskjerm.

Direkte ruter er fortsatt kontrollert serversiden. Å skjule en sidelinjelenke er ikke sikkerhetsgrensen: hver beskyttet handling må passere tillatelse og arbeidsområdekontroller.

Analyse

Analysesenter

Analytics-hubben gir støtte, chatt, AI og agent rapportering til ett datofiltrerte arbeidsområde med eksportbare resultater.

Produktskjerm
AnalysesenterAnalytics Hub viser et datoområde, metriske kort og faner for støtte-, Chat- eller AI-funksjonen.AnalysesenterarbeidsflateBILLETTER184AI RESOLVE63%CSAT4.7LIV ARBETSPESSONEStøtteOpprettet, lukket og venter på SLAFaneChatAI/menneskelige resultater og håndtere tidFaneAITroverdighet, tilbakemeldinger og tokenbrukFaneAgentVolum, hastighet og tilfredshetFane1CHOOSE DATESForhåndsinnstillinger eller tilpassede2CHANGE TABStøtte til agent3EXPORTLast ned CSV
Analytics Hub viser et datoområde, metriske kort og faner for støtte-, Chat- eller AI-funksjonen.

Filtre og kontroller

  • Bruk en forhåndsinnstilling eller et eget fra/til Velg, og oppfrisk for å gjenoppbygge hvert kort og diagram i samme periode.
  • Eksporter CSV eksportere aktiv analytisk visning i stedet for et skjermbilde.
  • Arbeidsområdescoping er automatisk; endrer nettsteder forandre det underliggende datasettet.

Hva hver fane måler

  • Støtte: billetter opprettet / lukket/avhengig, første svar, oppløsning, første kontaktoppløsning, SLA og prioritets-/department/status inndelinger.
  • Prate: økter startet, AI-oppløsningene, eskalering av oppsigelser, bortkasting og håndtering av tid, meldinger per sesjon samt AI/human/all CSAT.
  • AI: gjennomsnittlig tillit, lav-tillitsrate, triage nøyaktighet, tilbakemeldinger, kunnskap avbøyning, token/kakebruk og elementene som trenger gjennomgang.
  • Besøkende: trafikk og engasjement trender i den valgte perioden.
  • Agent: per-agent arbeidsbelastning, hastighetsinnsats og tilfredshet.

Bruk Analytics Hub for gjennomgang av tverrlaget; bruk dedikerte besøkende, billetter, CSAT-siderne AI History og Team Performance når du trenger rekordnivåundersøkelse.

Analyse

Dashboard

Dashboard er det daglige kommandosenteret. Det viser trafikk, salg, støttebelastning, AI aktivitet og konverteringsindikatorer i én visning. Åpne den hver morgen for å forstå hva som skjedde over natten og hva som trenger oppmerksomhet idag.

Instrumentpanel
Oversikts dashboardOversiktsskjermen ledet av et OpsIQ Intelligence AI-panel (med daglig korte, smart varsler, prognoser), KPI widget fliser og en syv dager lang trafikk widge plus en Tilbakestill layout kontroll.OversiktarbeidsflateOPSIQINTELLIGENCEVelg en analyse og OpsIQ skriver denDaglig kortSmarte varslerPrognoseTilbakestill layoutVisitorer i dag2,481+12%INNTEKTER$8.2k+5%Åpne billetter143SLATrafikk · siste 7 -dager1AI-FIRSTOpsIQ Service-panelet2WIDGETSKPI fliser du arrangerer3DineTilbakestill layout når som helst
Den virkelige oversiktsskjermen: OpsIQ Intelligence-panelet oppe (plukk en analyse og det skriver den) ovenfor KPI widgetene du arrangerer deg selv.

Dashboard-kort som forklares

Live besøkende

Antall personer som er på nettstedet ditt akkurat nå. Dette oppdateres hver 15 En besøkende er "aktiv" hvis de lastet en side innenfor den aktive terskelverdien (standard: 0). 90 sekunder).

Unike besøkende

Hvor mange forskjellige besøker nettstedet ditt i det valgte datoområdet. OpsIQ identifiserer besøkende ved en kombinasjon av nettleser fingeravtrykk, informasjonskapsler og (dersom det er tilgjengelig) autentisert identitet.

Ny vs retur

Nye besøkende ser nettstedet ditt for første gang. Returnerende besøkende har blitt sett før. Et høyt returforhold betyr at innholdets fører folk tilbake. En svært lav avkastningsforhold kan bety du ikke beholder interesse.

Sprettfrekvens

Andelen besøkende som dro etter å ha sett bare én side. En studsrate over 70% På landingssider betyr vanligvis at siden ikke oppfyller besøkendes forventninger, feil innhold, langsom belastning eller dårlig mobilopplevelse.

Gjennomsnittlig tid på siden

Hvor lange besøkende bruker på hver side i gjennomsnitt. Svært korte ganger (under 10 sekunder) på innholdssider tyder ikke at innhaldet er engasjerende. Veldig lang tid på uttjekningssiden kan indikere forvirring.

Trusler blokkert

IPadresser som OpsIQ identifisert som potensielt skadelig basert på trusselssporing, brutekraftforsøk eller manuell blokker. Klikk for å se den blokkerte IPs Liste.

Salg i dag / denne uken/i år

Inntekter fra tilknyttede salgskilder (Shopify, WooCommerce, Stripe osv.). Hvis salg viser null, sjekk at plattformkontakten er tilkoblet og synkroniserer.

Trenddiagram

En linje graf som viser besøkende teller over det valgte datoområdet. Se etter mønstre: trafikk pigg (kampanjer, trykknotasjon), dypper (ukeends, helligdag) og vedvarende trender.

Toppkilder

Hvor besøkende kommer fra: direkte, Google, sosiale medier, e-postkampanjer og henvisningsnettsteder. Bruk dette til å forstå hvilke markedsføringskanaler som fungerer.

Topp nettlesere

Chrome, Safari og Firefox. Hvis en nettleser har uvanlig høy studshastighet kan det hende du vil ha et CSS eller JavaScript Problem med kompatibilitet.

Hourly Heatmap

Et rutenett som viser besøkende aktivitet etter time på dag og uke. Bruk dette til å bestemme når du skal planlegge støtteskift, når de vil sende kunngjøringer, og når kampanjene skal kjøres.

Nylige besøkende

De siste få besøkende med land, side og kilde. Nyttig for raske spot-sjekker under kampanjene.

Bruke datoområdefilteret

Klikk på datovalgeren øverst til høyre for Dashboard. Forutsetninger: I dag, i går 7 dager, Siste 30 dager, I denne måneden i forrige måned. Tilpasset område. Alle dashboard-kort og diagrammer oppdateres når du endrer området. Datoområdet er på den konfigurerte tidssonen din (sett i Innstillinger).

Funnet eksempler

Bounce rate pigg undersøkelse

Scenario:
Your bounce rate jumped from 45% to 78% this week. What happened?
Hva skal jeg gjøre:

Sjekk: (1) Endret en bestemt landingsside? Gå til Toppsider og sorter etter studs. (2) Har en kampanje sendt trafikk til feil side? Sjekk Toppkilder for nye referansere. (3) Har nettstedet pause på mobil? Sjekk nettleserneddeling for mobil studs. (4) Er det bottrafikk? Sjekk trusselen mot og besøkende detaljer for mistenkelige mønstre.

Null besøkende på dashboard

Scenario:
The dashboard shows 0 live visitors even though your website is getting traffic.
Hva skal jeg gjøre:

Sjekk: (1) Er sporings widget installert? Vis nettstedets kildekode og søk etter den OpsIQ script. (2) Er nettstedsnøkkelen riktig? Sammenlign data-sidetasten i skriptet med nøkkelen på tilkoblede sider. (3) Er en CDN eller cache som betjener en staveside uten skriptet? Fjern din CDn-buffer. (4) Er en annonseblokker eller CSP-hode blokkering av skriptet? Sjekk nettleseren konsollen for blokkerte henvendelser.

Lese timevarmekartet

Scenario:
Your heatmap shows heavy activity between 10am-2pm on weekdays but nothing on weekends.
Hva skal jeg gjøre:

Dette er et B2B trafikkmønster. Dine besøkende jobber fagfolk som surfer i løpet av virketiden. Implications: (1) Planlegg støttepersonell for hverdagens virkedag. (2) Send e-postkampanjer tirsdag - torsdag morgen. (3) Weekend vedlikeholdsvinduer er trygge. (4) Vurder å tilby live chat kun i topp timer.

Trafikk spike fra ukjent kilde

Scenario:
You see a sudden spike of 500 visitors in one hour from an unknown referrer.
Hva skal jeg gjøre:

Gå til besøkende og filtrer etter tidsvinduet. Sjekk: (1) Er de ekte besøkende eller bots? Se på sesjon varighet, sider som vises og nettleser mangfold. (2Hvis det er sant, hvilken side lander de på?3) Sjekk referanser URL. Noen kan ha knyttet til deg fra Reddit, Hacker News eller en populær blogg. (4) Hvis det er bot trafikk, sjekk trussel og vurdere å blokkere IP Det er rekkevidde.

Hvorfor skiller besøkende seg fra Google Analytics?+

OpsIQ teller besøkende annerledes. Det bruker nettleser fingeravtrykk og informasjonskapsler, mens GA benytter en annen cookie-modell. Bot filtreringsfrekvensene for annonseblokkere kan også føre til forskjeller. A 10-20% Varians er normalt.

Kan jeg legge inn instrumentbordet i et annet verktøy?+

Dashboardet er designet for OpsIQ administrator. For ekstern rapportering, bruk REST API å trekke analysedata og vise dem i ditt eget instrumentpanel eller BI verktøy.

Hva betyr "trusler"-telleren?+

Det teller IP adresser som OpsIQ har flagget eller blokkert basert på trusselssporing, gjentatte feilmeldinger som mislyktes. Klikk på kontra for å se detaljer og administrere blokkene.

Analyse

Besøkslogg

Visitor-loggen viser hvert besøk på dine sporte nettsteder. Hver rad er én sidelast fra en gjest. Bruk den til å undersøke individuell besøkendes oppførsel, finne kampanjetrafikk og diagnostisere sporingsproblemer.

Besøkslogg
BesøksloggEn besøkende tabell med en filterlinje (dato, søk IP/email/city, kilde- og enhetskolonner)IP/ email, plasseringen, kilden, enheten og tiden med en flagget trussel rad.Besøksloggyoursite.com7 DagerSøk IP, e-post, by...Kildekode ▾Enhet ▾IP / EMENDLOKASJONSERVICEENHETERNår[email protected]USA · New YorkgoogleSkrivebord2m41.62.10.4StorbritanniadirectMobil6m[email protected]DE · Berlinutm: adsMobil14m203.0.113.9NG· LagosreferralSkrivebordthreat1–25 av 3,402Økt →1FILTERDato · søk · kilde · enhet2REAL COLUMNSIP/ email · plasseringen av enheten3DRILL INÅpne hele sesjonen
Den virkelige besøksloggen: filtrer etter dato, søk og enhet. Les deretter hvert besøk av IP/ email, plasseringen, kilden og tiden, trusler flagget i rødt.

Hva hver rad viser

IP Adresse

Den besøkendes IP adresse. anonymisert hvis IP anonymisering er aktivert i innstillinger. Klikk for å se alle besøk fra dette IP.

Land og by

Oppdaget fraIP Krever MaxMind GeoLite2-database eller. Cloudflare Viser « Ukjent » hvis GeoIP ikke er satt opp.

· Side URL

Siden den besøkende lastet inn. Klikk for å se hele URLLangt URLs er avkortet i tabellvisningen.

Referanse

Hvor den besøkende kom fra før han/hun landet på nettstedet ditt. «Direkte» betyr ingen henvisning (bokmerker, URLs-tekst, noen appkoblinger).

Enhet og nettleser

Besøkendes enhetstype (skrivebord, mobile, nettbrett) og browser (Chrome, Safari, Firefox osv.). Tolket fra bruker-agent header.

Dato og klokkeslett

Når siden ble lastet, i den konfigurerte tidssonen.

Kundesidentitet

Hvis besøkende er identifisert (via identitetssymbol eller innlogging), vises navnet eller e-posten. Ellers viser det seg anonymt.

Filtre

Datoområde

Filtrer besøk til en bestemt tidsperiode. Standard: siste 7 -dager

Søk

Søk etter IP adresse, side URL, referanser, land eller kunde e-post.

Kilde

Filtrer etter trafikkkilde: Direkte, Økologisk og sosialt.

Enhet

Filtrer etter skrivebord, mobil eller nettbrett.

Bare nytt

Vis kun førstegangsbesøkende som aldri har blitt sett før.

Funnet eksempler

Finn besøkende fra en bestemt kampanje

Scenario:
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?
Hva skal jeg gjøre:

I besøksloggen, bruk søkefeltet og skriv inn "sommer-salg". Søket sjekker referrer URLs og side URLs Du kan også filtrere etter Kilde = Betalt for å begrense søket enda mer.

Finn en kunde som rapporterte et problem

Scenario:
A customer emailed saying "your checkout page was broken yesterday around 3pm." How do you find their session?
Hva skal jeg gjøre:

Søk på e-postadressen i besøksloggen. Hvis de var logget inn, vil identiteten din vises. Sett datoområdet til i går. Se etter besøk for å sjekke ut sider rundt kl 3pm. Klikk sesjonen deres for å se full sidestrøm og alle JavaScript feilene.

Oppdag en loop hiter eller skrapemaskin

Scenario:
You notice an IP address has 500+ visits in one hour, all to the same page.
Hva skal jeg gjøre:

Dette er sannsynligvis en bot, skraper eller ødelagt skript. Gå til Visitor Logg og søk med det IP Sjekk: (1) Er alle besøk på samme side? (2Er brukeragenten en kjent bot? (3) Er sesjonens varighet alltid 0 Hvis bekreftet som en bots, gå til Sikkerhet og blokkere IP.

Visitor log vs Sesjoner vs Live feed

Besøkslogg

En rad per sidevisning. Best for: å undersøke bestemte sider, finne trafikk fra spesifikke kilder og diagnostisere sporingsproblemer.

Sessioner

Grupper sidevisninger i reiser. En rad per besøksøkt. Best for: å forstå brukerstrøm, måle sesjon varighet og identifisere konverteringsveiene.

Direktestrøm

Real-time aktivitet. Viser besøkende for tiden på nettstedet ditt. Beste: overvåking kampanjer i gang, spotting høy intente gjestene og se støttemuligheter.

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

OpsIQ sporer alle besøk som standard. For å utelukke din egen trafikk, legg til ditt IPAdresse til det utelukkede IPs liste i Innstillinger > Sporing.

Hvorfor viser en besøkende "Ukjent" land?+

GeoIP-oppslag krever heller Cloudflare geo-hoder (automatisk hvis du bruker Cloudflare) eller en MaxMind GeoLite2-databasefil. Sjekk Innstillinger > geoIP-sti for å sikre at databasefila eksisterer og er lesbar.

Hvor lang tid har besøksdata lagret?+

Besøksdata blir lagret for oppbevaringsperioden som er konfigurert i Innstillinger (standard: 90 -dager). Etter det rengjøres gamle poster automatisk av cron retention jobb.

Analyse

Sessioner

Sessionene grupperer flere sidevisningar fra samme person til en enkelt reise. Mens Visitor-loggen viser individuelle sider, vises sesjoner hvordan folk beveger seg gjennom nettstedet ditt fra landing til avslutning.

Sessioner
SessionerSession Log tabellen med IP, land- og enhetskolonner, kildeverdier, varighet og sider samt en flagget trusselrad.Sessioneryoursite.comLand (NG)SessionsloggIP(S)LANDRYENHETERSERVICEKJØPBIBELER41.62.10.4StorbritanniaSkrivebordgoogle3m12s6102.89.6.2NGMobildirect1m05s388.21.4.9NOSkrivebordutm: ads7m48s11203.0.113.9USAMobilreferral0m42s21SESSION LOGGruppereiser2COLUMNSLand · enhet · kilde · varighet3THREATRisikofylte sesjoner som flagges
Den virkelige Session Log: hver besøkende reise som en rad (IP, land og enhet med risikabele økter som er flagget i rødt.

Hvordan økter fungerer

En sesjon starter når en besøkende laster inn sin første side. Den fortsetter mens de navigere til flere sider. Et økt avsluttes når den som er inaktiv for tidsavbruddet i økta (standard: 30 minutter) eller stenger nettleseren. Den samme personen som kommer tilbake etter tidsavbruddet, skaper en ny økt.

Hva hver sesjon viser

Første side

Landing siden, hvor besøkende skrev inn nettstedet ditt. Dette forteller deg hvilket innhold tiltrekker folk.

Siste side

Utgangssiden, der besøkende forlot. Hvis utgangen siden ofte er prisside kan besøkere sammenligne deg med konkurrenterne.

Sidetall

Hvor mange sider den besøkende så på i denne sesjonen. Flere sidene betyr vanligvis mer engasjement, men det kan også bety at gjesten er tapt.

Varighet

Total tid fra første side belastning til siste aktivitet. Sessjoner med 0 sekunder er spretter (enkelt sidevisning, ingen ytterligere interaksjon).

Kilde

Trafikkkilden til denne sesjonen (Direkt, Google, sosialt jämt referanse etc.).

Land

Oppdaget land fra besøkendes IP -adresse.

Bunce

Om besøkende har forlatt etter å ha sett bare én side. Utstøtte økter kan være rødt.

Konvertering

Om besøkende fullførte en sport konverteringshending (kjøp, tilmelding og skjemainnsendelse) under denne sesjonen.

Filtre

Søk

Søk etter IP, e-post, siden URL, eller referere i sesjon.

Type

Filtrer etter nye besøkende (første økt noensinne) eller returnerende besøkere.

Kilde

Filtrer etter trafikkkilde.

Land

Filtrer etter land for å se økter fra en bestemt region.

Trusler/Bonunced

Filtrer for å vise bare studsede økter eller sesjoner flagget som trusler.

Funnet eksempler

Profil en høyverdikunde

Scenario:
A customer just made a large purchase. You want to understand their journey before buying.
Hva skal jeg gjøre:

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

Oppdag innlogging fra en ny plassering

Scenario:
A customer usually logs in from Nigeria but you see a session from Russia.
Hva skal jeg gjøre:

Søk etter kundens e-post i sesjoner. Sammenlign landet av nylige økter. Hvis en sersjon plutselig vises fra et uvanlig land, kan det være legitim reise eller en kompromittert konto. Sjekk: (1Var det et mislykket innloggingsforsøk før den vellykkede?2) gjorde det IP endre i samme økt? Merk det for gjennomgang hvis mistenkelig.

Hva er forskjellen mellom en sesjon og besøkende?+

En besøkende er en person (eller nettleser). Et møte er et besøk fra den personen. Den samme gjesten kan ha mange sesjoner over tid. Sessions utløpe etter tidsavbruddsperioden.

How does OpsIQ identify returning visitors?+

OpsIQ bruker en kombinasjon av informasjonskapsler, fingeravtrykk fra nettleseren og autentiserte identitetssymboler. Hvis besøkende tømmer sine cookies og ikke er logget på vil de vises som nybesøkende.

Analyse

Direktestrøm

Live Feed viser besøkende på nettstedet ditt i sanntid. Det oppdaterer automatisk hver 15 sekunder (konfigurerbar). Bruk det under kampanje, produktlansering og travle støtteperioder for å se hva som skjer akkurat nå.

Direktestrøm
DirektestrømEn aktivitetsstrøm som viser et live-intervju med internett og en fôring av nylige besøkende handlinger fra land.Direktestrømyoursite.com37besøkende på nettet nåLive aktivitetUSA · visning /pricing2sNorge · startet en prat5sDE · lagt i handlekurven9sCA · fullført registrering1RIGHT NOWSe hvem som er på stedet2AUTO-REFRESHOppdaterer hver 15s3HANDLINGHopp inn i en live chat
See who is on your site this second and what they are doing, refreshing automatically every 15 seconds.

Hvordan det fungerer

Live Feed-undersøkelsen viser serveren din på det konfigurerte oppdateringsintervallet. Hver rad vises en besøkende som er i bruk på nettstedet ditt: deres nåværende side, land, enhet, kilde, sesjonsvarighet og sidertelling. Grønne høydepunkter indikerer ny aktivitet siden den siste oppfriskningen. Klikk på enhver gjesterrekkja for å få vist hele øktdetaljene sine.

Innstillinger

Oppfrisk intervall

Hvor ofte de levende feed-oppdateringene. Standard: 15 sek. Lavere verdier (5-10s) gi raskere oppdateringer, men bruk mer serverressurs. Høyere verdi (30-60s) er enklere på serveren, men mindre sanntid.

Aktiv terskel

Hvor lenge en besøkende anses å være aktiv etter siste sidelast. Standard: 90 sekunder. Hvis en besøkende laster inn en side og deretter leser den for 2 minutter uten å klikke, forsvinner de fra levende fôr etter terskelen.

Pausa-knappen

Klikk på pause for å stoppe automatisk oppfriskende. Nyttig når du vil lese detaljer uten listeoppdateringen. Trykk På Fortsett og start om igjen.

Funnet eksempler

Finn et varmt resultat under en kampanje

Scenario:
You are running a product launch. A visitor just viewed your homepage, then features, then pricing, and is now on the checkout page.
Hva skal jeg gjøre:

Dette er høy-intent oppførsel. I Live Feed: (1) Klikk på besøkende for å se deres økt. (2Hvis de starter en chat, vil AI ha sin fulle reise sammenheng. (3Hvis de drar uten å kjøpe, blir de en leder i Leads-siden.4) Tenk å skape en proaktiv regel for å vise et chat-melding når besøkende kommer til utsjekking.

For mange besøkende fra det samme IP

Scenario:
You see 20 visitors from the same IP address, all on different pages.
Hva skal jeg gjøre:

Dette kan være: (1) Et kontor med delt Internett. Sjekk om besøkene ser ut som ekte mennesker (forskjellige sider, rimelige sesjon varighet).2) En bot eller skraper. Sjekk om sesjoner er svært korte (0-1sekunder) eller treffer sider systematisk. (3) En lasttest. Hvis du kjører automatiserte tester, ekskluder IP fra sporing.

Hvorfor showet live feed 0 Besøkende når nettstedet mitt har trafikk?+

Sjekk: (1) Er widget-skriptet installert på ditt nettsted? (2Er nettstedet riktig? (3Har den aktive terskelen gått? (4) Er besøkende bruker aggressive annonsblokkere som blokkerer sporingsskriptet?

Kan jeg filtrere live-matingen fra land eller enhet?+

Live-feed viser alle aktive besøkende. For filtrerte visninger, bruk sidene Visitor Log eller Session med sine filteralternativer. Levematen er bevisst enkel for sanntidsovervåkning.

Analyse

Toppsider

Toppsider viser hvilke sider på nettstedet ditt får mest trafikk. Det rangerer sidene etter besøk, engasjement og støtteaktivitet. Bruk det til å identifisere din beste innholdsfortegnelsen dine, finne underopplysningssidene samt oppdage sider som genererer supportspørsmål.

Toppsider
ToppsiderEn rangert liste over de mest besøkte sidene med horisontale besøksstanger og antall.Toppsideryoursite.comMest besøkte sider/pricing3,402/2,910/docs1,740/blog/seo-guide980/signup6401RANKEDMest besøkte sider2SIGNALSBesøk og konverteringer3FINDSider som kjører billetter
Sidene dine rangert etter trafikk og engasjement, slik at du kan oppdage topp innhold og sider som genererer støtte.

Hva hver side viser

· Side URL

Den fullstendige URL -stien. Lignende sider (feks produktvarianter) grupperes hvis gruppen er aktivert.

Visninger

Totalt antall ganger ble denne siden lastet i det valgte datoområdet.

Unike besøkende

Hvor mange forskjellige personer har sett på denne siden (en person som ser samme side teller to ganger som 1 unik).

Sprettfrekvens

Prosentvis av besøkende som forlot nettstedet etter å ha sett på denne siden. Høyt hoppe på landingssider = problem.

Gjennomsnittlig tid

Hvor lenge besøkende bruker på denne siden i gjennomsnitt. Veldig kort = ikke lesing. Svært lang på en skjemaside= forvirring.

Chat starter

Hvor mange chatsamtaler ble startet fra denne siden. Høy prat starter på en produktside betyr at produktet beskrivelsen kan være uklare.

Støttebilletter

Hvor mange støttebilletter ble opprettet av besøkende som var på denne siden. Høy billetten teller = potensiell UX eller innholdsproblem.

Funnet eksempler

Finn sider som kjører støttespørsmål

Scenario:
Your support team keeps getting questions about shipping. Which page is failing?
Hva skal jeg gjøre:

Sorter toppsidene etter «Kundestøttesaker» eller «Chat starter» i synkende rekkefølge. Se etter produkt- eller fraktsider med høyt antall. Siden med flest kundestøttespørsmål har sannsynligvis uklar informasjon. Rett opp sidens innhold og overvåk om antallet kundestøtte spørsmål reduseres.

Finn sider med høy utgangsrate

Scenario:
You want to know where people leave your site most often.
Hva skal jeg gjøre:

Sorter etter hoppefrekvens nedadgående. Ignorer sider som er naturlig utløpspunkter (takk for at du sidene, bekreftelsesidene). Fokuser på sider som bør holde besøkende engasjert: produktsider, priser, funksjoner. Disse trenger bedre oppringing til handling eller klarere innhold.

Hvorfor viser en side 0 Selv om jeg vet det får trafikk?+

Sjekk: (1) Er sporingswidget installert på den spesifikke siden? Enkeltside-apper kan ikke brann sidevisninger ved ruteendring. (2) Er siden utelukket i sporingsinnstillinger? (3) Er en CDN som betjener en cached versjon uten sporingsskriptet?

Analyse

Geo-etterretning

Geo Intelligence viser hvor besøkende kommer fra land, by og enhet. Bruk den til å forstå dine geografiske markeder, bestemme språkstøtten, planlegge regional markedsføring samt oppdage mistenkelige trafikkmønstre.

Geo
Geo-etterretningEt kart over besøkende steder ved siden av en per-land bar rangering.Geo-etterretningyoursite.comBesøkende etter beliggenhetUSAStorbritanniaNOCANG1MARKETSLand, by2PLANSpråk og regioner3WATCHSpot odd trafikk
Hvor besøkende kommer fra (etter land, by og enhet) til størrelsesmarkeder og spotte uvanlig trafikk.

Hva du ser

Top Countries bar diagram

De beste landene rangert av besøkende. Klikk på et land for å bore ned til bynivå data.

Landdeignut

Visuelt sammenbrudd av trafikk etter land. Hover for prosentdeler

Full landsbord

Hvert land med besøkende i den valgte perioden, som viser antall gjester, økttall og bouting-rate.

Byboring ned

Klikk på et land for å se hvilke byer i det landet har de mest besøkende.

Hvordan GeoIP-deteksjonen fungerer

OpsIQ Oppdager besøkendes plassering på to måter: (1) Cloudflare geo headers. Hvis nettstedet ditt er bak Cloudflare Landet deteksjon er automatisk og nøyaktig. (2) MaxMind GeoLite2-databasen. Last ned den gratis databasen og konfigurer banen i innstillinger. Bynivå deteksjon krever geolite2 by-database, ikke bare land databaser.

VPN og proxy trafikk

Besøkende som bruker VPN-er vil se ut til å komme fra VPN serverens plassering, ikke deres virkelige beliggenhet. Dette er ved design. OpsIQ kan og bør ikke prøve å omgå VPNs. Hvis du ser uvanlige land mønstre, vurdere det 10-20% av besøkende kan bruke VPN.

Funnet eksempler

Uventet landtrafikk

Scenario:
You run a US-only business but 30% of traffic is from India.
Hva skal jeg gjøre:

Sjekk: (1) Er disse ekte besøkende? Se på sesjonsvarigheten og sidene som vises. Veldig kort økter med høy studs = sannsynlig bots. (2Finner de deg gjennom Google? Sjekk referanser. (3) Kan de være potensielle kunder i et nytt marked? Hvis trafikken er ekte og engasjert, bør du vurdere å legge til India-spesifikke priser eller innhold.

Beslutning om språkstøtte

Scenario:
You want to know if you should translate your site into Spanish.
Hva skal jeg gjøre:

Se på siden Geo Intelligence. Hvis spansktalende land (Spania, Mexico, Colombia, Argentina etc) sammen representerer mer enn 10% av trafikken din med lave studspriser, oversettelse er verdt å vurdere. Sjekk også: konverterer besøkende fra disse landene til lignende priser som ditt primære marked?

Regional støtteskiftplanlegging

Scenario:
You need to decide support team hours for different time zones.
Hva skal jeg gjøre:

Use the hourly heatmap (on Dashboard) combined with Geo Intelligence. If 40% of your traffic is from Europe and 35% from the US, you need coverage for both time zones. The heatmap shows exactly when each region is most active.

Land med besøk, men ingen bestillinger

Scenario:
Germany shows 500 visitors this month but zero sales.
Hva skal jeg gjøre:

Undersøkelse: (1) Er de hoppende på prissiden? Kanskje prisene dine ikke er konkurransedyktig for det markedet. (2) Sender du til Tyskland? Sjekk om din forsendelsesside nevner Tyskland. (3) Er utsjekkingen din tilgjengelig i EUR? Valutamangel forårsaker forlatte checkouter. (4Er disse besøkende fra en enkelt kilde som kan være lav-intensiv trafikk?

Hvorfor viser en besøkende "Ukjent" land?+

GeoIP er ikke konfigurert. Enten satt opp Cloudflare (som legger til geo-overskrifter automatisk) eller last ned MaxMind GeoLite2-databasen og angir filstien i Innstillinger > GEOIP bane.

Kan jeg blokkere trafikk fra bestemte land?+

OpsIQ blokkerer ikke etter land. Bruk webserveren din eller Cloudflare brannmurregler for landbasert blokkering.OpsIQ Fokuser på synlighet, ikke adgangskontroll i nettverk.

Analyse

Forsettlig trakt

Foredraget Funnel klassifiserer besøksøktene etter hva de synes å prøve å gjøre: bla gjennom, forskning, sammenligner, kjøpe, få støtte eller forlate. Bruk det til å forstå balansen av intense på nettstedet ditt og identifisere hvor gjestene faller ut.

Forsettlig trakt
Forsettlig traktEn tratt fra Bla gjennom til forskning for å sammenligne med Kjøp med antall, pluss støtte og etterlate chips.Forsettlig traktyoursite.comBla gjennom · 8,200Forskning · 4,100Sammenligne · 1,650Kjøp · 520Støtte 6%Forlater 11%1CLASSIFYHva besøkende ønsker2STAGESBla gjennom å kjøpe3FIXFinn drop-off
Sessjoner klassifisert etter hensikt (brune, forskning, sammenligner og kjøpe) slik at du kan se nøyaktig hvor folk faller av.

Foredragskategorier

Nettleser

Korte økter, få sider og ingen bestemte mål oppdaget.

Forskning

Besøkende leser produkt/feature sider, docs eller blogginnhold. Lengre tid på sidene Flere contentsider

Sammenligning

Besøkende som ser på priser, plansammenligning eller funksjonstabeller. Ofte returnerer besøkere.

Kjøpe

Besøkende på utsjekking, handlevogn eller tilmelding sider. Høy intensjon. Dette er dine konvertering muligheter.

Støttesøk

Besøkende på hjelpesider, kontakt sider eller chat. De trenger hjelp.

Spretter

Besøkende som reiste etter en side.

Hvordan lese trakten

Tolke din trakt

Scenario:
1,000 visitors viewed Pricing. 270 opened chat. 92 started checkout. 64 paid. 18 opened support tickets.
Hva skal jeg gjøre:

Prising siden er sterk nok til å skape intensjon. Chat er viktig i kjøpestien: 27% av priser besøkende engasjerer seg med chat før kjøpe. Støttebilletter etter uttjekning kan indikere aktivering eller betaling forvirring. Handling: (1) Sørg for AI chat svar prissetting spørsmål godt. (2) Undersøker 18 post-utsjekking støttebilletter for felles problemer.

Tidsfiltre

Use the date range filter to compare intent patterns across periods. For example, compare Black Friday week to a normal week. You should see a spike in "Buying" intent and possibly "Support-seeking" if your promotions created confusion.

Hvordan klassifiserer OpsIQ -formål?+

OpsIQ Se på siden URLs, sesjon atferd og tidsmønstre. Prising sider signalere sammenligning intention. Sjekk ut sider signal kjøpe intent. Hjelp / kontakt sider signal støtte intensjonen. Klassifikasjonen er heuristisk-basert, ikke AI-drevet.

Kan jeg tilpasse intensjon kategorier?+

Ikke for tiden. Kategoriene er innebygd basert på vanlige webadferdsmønstre. Tilpasset intensjon klassifisering ligger i kørekartet.

Analyse

Funnler, retensjon og stier

Bygg egendefinerte reiser fra side- eller hendelsestrinn, mål kohorteretensjon og oppdag de besøkende oftest tar gjennom et nettsted.

Produktskjerm
TrakterEn egendefinert trakt viser hvert side/event-trinn, de resterende besøkende og konverteringsprosenten.TrakterarbeidsflateSTEPS4CONVERSION28.4%WINDOW72hLIV ARBETSPESSONEPriser sett på1,420 besøkende100%Planlegg valgt780 besøkende54.9%Utsjekking startet530 besøkende37.3%Bestilling fullført403 besøkende28.4%1DEFINEVelg 2–8 trinn2LEVERSett konverteringsvindue3IMPPROVEFinn den største dråpen
En egendefinert trakt viser hvert side/event-trinn, de resterende besøkende og konverteringsprosenten.

Trakter

Lag en navngitt trakt med 2 til 8 side- eller hendelsestrinn. Angi konverteringsvinduet i timer; en besøkende teller bare når de bestilte trinnet oppstår inne i vinduet. Bruk dråpe mellom steg for å velge hvor du skal inspisere replay, feil, sidehastighet og meldinger.

Oppbevaring

Hold grupper besøkende i ukentlige kohorter og viser hvor mange retur. Velg en 6, 8 eller 12 horisonten. Hold kohorte definisjon stabil når du sammenligner utgivelse eller kampanjer.

Stier

Baner viser de vanligste sidesekvensene. Velg banelengde fra 2 til 5 sider for å holde resultatet leselig. Bruk det til å finne uventede avturer, vanlige utganger og innhold som gjentatte ganger går foran konverteringen.

Egendefinerte trakter er analytiske definisjonar, ikke automatiseringer. For å reagere på et fullført trinn oppretter du en konverteringsmål, segment, utløse eller arbeidsflyt.

Analyse

Øktgjentakelse

Session Replay lar deg se en tidslinje på hva besøkende gjorde på nettstedet ditt: hvilke elementer de klikket, hvordan de rullede ned, hvor de sveve og det som skrev (med sensitive felt maskerte). Bruk den til å diagnosticere UX-problemer, bekrefte feilrapporter og forstå kundeforvirring.

Øktgjentakelse
ØktgjentakelseEn spiller som viser en sidevisning med markør, et øktinformasjonspanel og en tidslinje-skrubber.Øktgjentakelseyoursite.comKjøp nåØKTVarighet 3m 12s14 klikkUSA · SkrivebordChrome1241WATCHKlikk, rulle og type2MASKEDSensitive felt skjult3DIAGNOSEBekreft feilrapporter
Spille på nytt nøyaktig hva en besøkende gjorde: klikk, ruller og skriver (følsomme felt maskert), i et tidslinjeskrubb.

Finne riktig sesjon

Fra Session-siden, se etter økter med rapporterte problemer, høy side teller uten konvertering eller setninger fra kunder som har lagt inn støttebilletter. Klikk på replayikonet for å åpne tidslinjen visningen.

Hva gjenspill viser

Tidslinje

En horisontal linje som viser hendelser over tid. Klikk hvor som helst på tidslinjen for å hoppe til det øyeblikket.

Side navigering

Hver sidelast vises som et segment på tidslinjen. Du kan se nøyaktig stien besøkende tok.

Klikk

Klikk hendelser vises som prikker på tidslinjen og som høydepunkter i siden rekonstruksjon.

Rulle

Rulledybde er sporet slik at du kan se hvor langt ned besøkende leser.

Forminteraksjon

Feltfokus og skrivehendelser er registrert. Tekstinngang i passord, og sensitive felt blir maskerte som standard.

Personvern og maskering

Session replay masker sensitive skjema felt som standard. Passordfelt, kredittkortinnganger og felt merket med data-opsiq-mask blir aldri registrert. Du kan konfigurere flere maskeringsregler i Innstillinger > Sporing. Hvis overholdelsesreglene krever det, kan du slå av respillingen helt og holdent.

Diagnostisering av en ødelagt utsjekking

Scenario:
A customer says "I tried to buy but the button did nothing."
Hva skal jeg gjøre:

Finn økten på Økter-siden (søk etter e-post). Åpne gjenopptakelsen. Se segmentet for kassesiden.1) Klikket de på riktig knapp? (2) Gjorde en JavaScript (Sjekk JS-feilsiden for å finne ut når feilen oppstod.)3) Lastet siden på nytt eller viste en feilmelding? (4) Var et obligatorisk felt tomt? Replayen viser nøyaktig hva som skjedde.

Hvor mye lagringsplass bruker du?+

Replay data vokser med trafikkvolum. Bruk retensjonsinnstillinger til å automatisk rydde opp gamle respilldata. For høytrafikksider, vurdere en kortere gjenbruksretensingsperiode (feks 30 -dag) for å administrere lagring.

Kan besøkende velge å spille på nytt?+

Hvis "Respekter Ikke spor" er aktivert i Innstillinger, blir ikke besøkende med DNT-hoder registrert. Du kan også ekskludere bestemte sider fra gjenavspilling i sporingsinnstillingene.

Analyse

Hendelsers logg

Hendelsersloggen viser hver hendelse som OpsIQ har registrert: sidevisninger, klikk, chat starter, billettskapelser, salg og tilpassede arrangementer. Bruk det til å feilsøke integrasjoner, verifisere webhook-leveringene samt forstå handlingens rekkefølgen.

Hendelsers logg
Hendelsers loggEn kronologisk hendelseslogg med fargekodede typemerker: sidevisning, chatt, salg, webhook og tilpasset.Hendelsers loggyoursite.compageviewUSA · /pricing12:04:01chat.startNorge · widget åpnet12:04:09salg$49.00 · Bestill #104212:05:22webhookpayment.succeeded12:05:23customdemo_booked12:06:101EVERYTHINGHver registrerte hendelse2DEBUGBekreft webhook levering3ORDERSe den nøyaktige sekvensen
En tidslinje for alt OpsIQ poster (sidevisninger, chatter og salg, webhooks, tilpassede hendelser) for feilsøking og revisjon.

Innebyggede hendelser (automatisk)

pageview

Skyt hver gang en sporet side belastninger. Inkluderer URL Title, referanser og tidsstempel.

chat.started

Fyrt når en besøkende åpner chat widgeten og sender sin første melding.

chat.message

Fyrt for hver melding i en chatsamtale (både besøkende og AI/agent).

ticket.created

Fyrt når en ny støttebillett opprettes (fra chat, e-post eller widget).

ticket.replied

Skyt når et svar legges til en billet.

order.completed

Fyres når et kjøp er fullført gjennom en tilkoblet plattform.

form.submitted

Fyres når et sporet skjema sendes inn (hvis formsporing er aktivert).

identify

Fyres når en besøkende identifiseres via et identitetsteken.

sikkerhets. login_failed

Fyrt når et innloggingsforsøk mislykkes.

Egendefinerte hendelser

Du kan sende egendefinerte hendelser fra nettstedet ditt eller serveren til OpsIQ. Tilpassede arrangementer er nyttige for å spore handlinger som spesifikkes i din virksomhet: knappklikk, funksjonsbruk, videospill, nedlastinger etc.

JavaScript · tilpasset hendelse fra nettleseren
// Send a custom event from the browser
window.OpsIQ = window.OpsIQ || [];
window.OpsIQ.push(["track", "plan_selected", {
  plan: "pro",
  billing: "annual",
  value: 99
}]);
PHP · registrere en kontaktaktivitet fra serveren din
// 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);

Filtrer hendelsene

Hendelsestype

Filtrer etter bestemte hendelsesnavn: pageview, chat. started, billett. skapes etc.

Datoområde

Vis hendelser fra en bestemt tidsperiode.

Søk

Søk i hendelsesdata etter søkeord (URL, e-post eller verdier for hendelsesgjenstand).

Hvor lenge holdes hendelsene?+

Hendelser følger oppbevaringsreglene som er satt i Innstillinger. Standard: 90 - dager. Høyverdiarrangementer (kjøp, sikkerhetshenvisninger) kan konfigureres med lengre retensjon.

Kan jeg bruke hendelser i A/B-eksperimenter?+

Ja. Når du oppretter et eksperiment, velger du en konverteringshending. Enhver innebygd eller tilpasset hendelse kan brukes som konverteringsmål.

Analyse

A/B-eksperimenter

Eksperimenter lar deg teste to versjoner av en side eller funksjon og måle hvilken som fungerer bedre. OpsIQ spor inntrykk, konverteringer og statistisk betydning.

A/B-eksperimenter
A/B-eksperimenterTo variantkort sammenligner konverteringsratene, med et vinnende merke og betydning på den ledende varianten.A/B-eksperimenteryoursite.comVariant A4.2%konvertering · 1,020 visningerVariant BVINNEREN6.8%konvertering · 1,005 visninger+62% Heis · 96% Betydelig1TESTTo varianter hode til hodet2LEVERKonverteringer og betydning3DECIDEDeklarer en vinner
Kjør to varianter, se konvertering og statistisk betydning.

Hvordan eksperimenter fungerer

1
Lag et eksperiment

Gi det et navn, definere din primære metriske (omsetningshending) og angi variantene.

2
Kjør den

OpsIQ tildeler tilfeldig besøkende variantene og sporer oppførselen deres. Ikke endre eksperimentet mens det kjører.

3
Les resultatene

Når nok data er samlet inn, sjekk konfidensnivået.95% Selvtillit betyr at du kan være.95% Vær sikker på at forskjellen er ekte, ikke tilfeldig sjanse.

Eksperimentsstater

Utkast

Laget, men ikke startet ennå. Du kan fortsatt redigere varianter og metrikk.

Kjøring

Aktivt tilordne besøkende i varianter. Ikke rediger mens du kjører.

Ferdig

Nådd statistisk betydning eller ble manuelt stoppet. Resultatene er endelige.

Arkivert

Resultatene er blitt gjennomgått og eksperimentet ikke lenger nødvendig i den aktive listen.

Beste praksis

Definer metrikken før lansering

Bestem hva du måler før start. Velg en metrisk etter å ha sett resultater introdusere bias.

Utelukk intern trafikk

Legg til teamets IP -adresser i utestengningslisten, så personalebesøk ikke skjev resultater.

Kjør lenge nok

Ikke stopp et eksperiment etter 100 besøkende. Du trenger hundrevis eller tusenvis av besøkere per variant for pålitelige resultater.

Test en endring om gangen

Hvis du endrer overskriften og knappen farge, vil du ikke vite hvilken endring som forårsaket forbedring.

Ta opp din beslutning

Etter eksperimentet er slutt, legg merke til hvilken variant som vant og hvorfor du valgte å implementere det.

Hvor mange besøkende trenger jeg for et gyldig eksperiment?+

Det avhenger av konverteringsfrekvensen for grunnlinjen og effektstørrelsen du vil oppdage.Som en tommelfingerregel: minst 500 besøkende per variant for en 20% For mindre effekter, trenger du tusenvis.

Kan jeg gjennomføre flere eksperimenter samtidig?+

Ja, men vær forsiktig. Hvis to eksperimenter påvirker samme side kan resultatene samhandle. Det er tryggere å kjøre forsøk på ulike sider eller funksjoner samtidig.

Analyse

JavaScript -feil

JavaScript Feil samler inn klient-side feil fra besøkende på nettstedet. En ødelagt knapp, en mislykkes API ring, eller en manglende ressurs dukker opp her. Bruk den til å finne og fikse feil som påvirker ekte kunder.

JS-feil
JavaScript -feilEn liste over innfangede front-end feil med alvorlighetsgrad prikker, kildefilen, nettleseren og forekomststallet.JavaScript -feilyoursite.comNylige feilTypefeil: kan ikke lese x av udefinertcatchout.js:42 · Chrome×214404 Laster inn /assets/app.cssindeks · Safari×88Unchecked (i løfte) NetworkErrorapi.js:17· Firefox×51Avpresningsvarsel: lossebegivenhetselger. js×331CAPTUREKundesidefeil2IMPACTTeller og nettlesere3FIXSquash ekte feil
Ekte besøkende treffer ødelagt kodeoverflate her (melding, kilde, nettleser og hvor ofte) slik at du kan fikse det som betyr noe.

Hva hver feil viser

Feilmelding

Feilteksten JavaScript (f. eks. "TypeError: Kan ikke lese egenskapene til undefined").

· Side URL

Hvilken side feilen oppstod på.

Nettleser og enhet

Hvilken nettleser og enhetstype så feilen. Noen av de feilene er browserspesifikke.

Stack spor

Kodeplasseringen der feil oppstod. Klikk for å utvide stabelsporet i full stang.

Første sett

Når denne feilen først dukket opp.

Sist sett

Når denne feilen nylig skjedde.

Teller

Hvor mange ganger denne feilen er registrert.

Påvirket økter

Hvor mange ulike besøkende økter opplevde denne feilen.

Prioritere feil

Ikke alle JavaScript Feil som krever øyeblikkelig oppmerksomhet. Prioriter etter: (1) feil på kritiske sider (kassen, registrering, innlogging), (2) feil med høye økter, (3) feil som dukket opp nylig (mulig regresjon fra en kodeendring), (4) feil på din egen kode (ikke tredjepartsskript).

Fikser en ødelagt utsjekkingsknapp

Scenario:
The JS Errors page shows "TypeError: Cannot read properties of undefined (reading submit)" on /checkout, affecting 45 sessions this week.
Hva skal jeg gjøre:

Dette betyr 45 ekte kunder kunne ikke fullføre utsjekking. Trinn: (1) Åpne siden i samme nettleser / enhet kombinasjon. (2) Åpne nettleserkonsollen og reproduser feilen. (3) Sjekk stabelsporet for å finne den nøyaktige linjen av kode. (4) Løs feilen, utplassere og overvåke at problemet kommer til null.

Oppfanger OpsIQ feil fra tredjeparts skript?+

Ja, OpsIQ Fanger alle JavaScript feil på siden, inkludert feil fra analyseskripter, chat widgets og annonsescript. Filtrer etter URL i stabelsporet for å fokusere på din egen kode.

Hvordan utelukker jeg kjente ufarlige feil?+

Du kan ikke undertrykke bestemte feil i OpsIQ, men du kan filtrere listen etter side URL eller feilmelding. Løs eller overse feil fra nettleserutvidelser (de viser ofte som feil fra ukjente kilder).

Salg

Salg og konverteringer

Salgssporing forbinder butikken eller faktureringsplattformen til OpsIQ, slik at du kan se inntekter sammen med besøkendes oppførsel. Hvert kjøp er tildelt en reise for besøkere så du vet hvilke sider og kampanjer som driver inntektene på kanalene.

Salg
SalgSalgsskjermen: en inntekt totalt med et hele tiden kontroll, søk og en nylige kjøpe tabell (dato, kunde, plattform, beløpet.Salgyoursite.comINNTEKTER$42,180+18%Alle tider ▾Søk i e-post, IPNylige kjøpDATALKUNDERPLATFORMConstellation name (optional)BELOPPSERVICEJun3[email protected]Shopify$49googleJun3[email protected]WooCommerce$129directJun2[email protected]Stripe$480annonser1INNTEKTERBestillinger og fornyelser2RECENT PURCHASESDato · Kunde3ATTRIBUTEDTil trafikkkilden
Den virkelige salgsskjermen, inntektene oppe på toppen og deretter Nylige Kjøp (dato, kunde, plattform eller beløp), hver tilskrives trafikkkilden.

Salg dashboard

Dagens salg

Inntekter fra bestillinger som er fullført i dag. Oppdateres med hver ny ordrehending fra den tilkoblede plattformen din.

Denne uken / denne måneden/hele

Inntekter samlet over perioden. Refunderingene trekkes fra disse totale satserne.

Trenddiagram

Linje graf som viser daglige inntekter over det valgte datoområdet. Se etter pigg (promosjoner, kampanje) og dips (utgavene, sesongmessig).

Topp konverteringskilder

Hvilke trafikkilder fører til flest kjøp? "Direkte" kjøpere lagde ofte bokmerker på nettstedet ditt. "Google"-kjøpere fant deg via søk.

Nylige kjøp

De nyeste ordrene med kundeemail, beløp og varer kjøpt.

Plattformoppsettguider

Shopify

Gå til kontakter >Shopify. Opprette en egendefinert app i din Shopify administrator (Innstillinger > Apper og salgskanaler> Utvikle apps). Grant rekkevidde: read_ordre, lese_customere. API Tilgang token. I OpsIQ Skriv inn ditt lagerdomene (f.eks your-store.myshopify.com) og tilgangssymbolet. Klikk på Testtilkobling. Hvis det lykkes, aktiver webhook synkronisering for bestillingsvarsler i sanntid.

WooCommerce

Gå til kontakter >WooCommerce. I din WordPress administrator, gå til WooCommerce> Innstillinger > Avansert > REST API. Opprette en nøkkel med Les/Skriv tillatelse. Kopier forbrukernøkkelen og konsumenthemmeligheten OpsIQ Skriv inn nettstedet ditt URL Forbrukernøkkel og forbrukere hemmelighet. Klikk Test Tilkobling

BigCommerce

Gå til kontakter > BigCommerce. I din store handelsadmin, gå til avanserte innstillinger >API Kontoer. Opprett en V2/V3 API Konto med leseområde for bestillinger, kunder og produkter. Kopier tilgangssymbolet, klient-ID API Vei. Skriv dem inn OpsIQ og test.

Magento2

Gå til Connectors > Magento. I din magento-admin, gå til System > Integrasjoner. Opprett en ny integrering med API ressurstilgang til Salg, Kunder og Katalog. Aktiver integrasjonen og kopier tilgangssymbolet OpsIQ med din Magento base URL.

PrestaShop

Gå til Connectors > PrestaShop. I administratoren i Prestashop, gå til Avanserte parametre> Webservice. Aktiver webtjenesten og opprette en ny nøkkel. Tillat tilgang til bestillinger, kunder eller produkter. Kopier nøkkelen og skriv den inn OpsIQ med din butikk URL.

OpenCart

Gå til kontakter > OpenCart. Oppretter API identifikasjoner fra OpenCart admin-panelet. Skriv inn API URL, brukernavn og nøkkel i OpsIQ. Koblingen bruker OpenCarts REST API for bestilling og kundedata.

osCommerce

Gå til Connectors > osCommerce. Konfigurer databasetilgang eller API legitimasjoner som dokumentert i kontaktinnstillingene. osCommerce integrasjonen krever vanligvis direkte databasetilgang eller en egendefinert API modul.

Stripe

Gå til kontakter > Stripe. Kopier stripen din begrenset API Nøkkel fra Stripe Dashboard (Developers >API nøkler). Nøkkelen trenger lesetilgang til kunder, kostnader og fakturaer. Skriv den inn OpsIQ. Konfigurere webhook-endepunkt for hendelser i sanntid

Egendefinerte/andre plattformer

Bruk REST API eller webhooks å sende salgsarrangementer fra enhver plattform. Send bestillings-fullstendige hendelser med kundeemail, beløp, valuta og elementer API Seksjon for nyttelastformat.

Forstå salgstrakten din

Topp konverteringskilder

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

Refundering

Refinansierte bestillinger spores separat. De reduserer nettoinntekter summer. Hvis refusjonskursen er høy fra en bestemt kilde, kan trafikken være lav kvalitet.

Valutahåndtering

OpsIQ lagrer den opprinnelige transaksjonsvalutaen og beløpet. Multi-currency bedrifter ser inntekt i hver valuta. Normalisert rapportering bruker konfigurert valutakurs.

Funnet eksempler

100 besøkende, null salg

Scenario:
Your pricing page gets 100 visitors per day but zero conversions.
Hva skal jeg gjøre:

Undersøkelse: (1) Bruk Session Replay på prissiden besøkende. Sjekk hvordan de samhandler med prisene tabellen (2) Sjekk Toppsider for prissiden hoppe rate og tid-på-side. (3) Sjekk Chat samtaler fra prissiden besøkende. Hvilke spørsmål stiller de? (4) Sammenlign prissiden din til konkurrentene. (5) Prøv et A / B-eksperiment med ulike prisutforminger.

Tilknytning til markedsføringskampanje

Scenario:
You sent an email campaign with UTM tags. How do you measure its revenue impact?
Hva skal jeg gjøre:

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

Hvorfor viser salg null til tross for at butikken min har ordre?+

Sjekk: (1) Er plattformkontakten tilkoblet og sunt? Gå til kontaktere og sjekk status. (2) Er webhook synkronisering aktivert? Hvis du bruker polling, er cron jobb i gang? (3) Har kontakten den riktige API omfang? For Shopify Du trenger read_ordre.

Hvordan tilskriver OpsIQ et salg til en besøkende?+

Når en ordre kommer inn via kontakt, OpsIQ matcher kunden e-post til en kjent besøkende. Hvis den som ble sporet før kjøpet er salget tildelt deres reise, inkludert trafikkkilden og landingssiden samt sesjonshistorikken.

Kan jeg legge til salg manuelt?+

Du kan sende salgsarrangementer via REST API eller webhooks fra et hvilket som helst system. Hendelsesformatet er dokumentert i hendelsene API Seksjon.

Salg

Ledere

Leads er besøkende eller kunder som viser kjøp eller støtte intensjon. OpsIQ Detekter automatisk leads basert på atferd: prising sidebesøk, retur besøk, chatt interaksjoner, utcheckning starter og høy engasjement. Bruk Leads siden til å prioritere oppfølgingen og mate din CRM-rørledning.

Ledere
LedereLeads-skjermen: et søkbart bord med IP/ e-post, plassering, enhet, kilde og tid på nettstedet kolonner samt toppkilder og land.Ledereyoursite.comSøk IP, by, land...Topp kilde: google · Top land: USAIP / EMENDLOKASJONENHETERSERVICETID41.62.10.4StorbritanniaMobilgoogle4m12s[email protected]USA · New YorkSkriveborddirect7m02s[email protected]DE · BerlinMobilutm: ads5m40s203.0.113.9TorontoCity in Ontario CanadaSkrivebordgoogle3m28s1DETECTEDHøyt intente besøkende2TOPLeadkilder og land3ENRICHEDIP, beliggenhet og tid
Den virkelige Leads-skjermen, høyintensive besøkende som et søkbart bord (IP/email, plassering, enhet, kilde, tid på stedet) med toppkilder og land.

Hva som gjør en bly

Priser sidebesøk

Besøkende som ser pris eller planer siden vurderer aktivt et kjøp.

Tilbakebesøk

Besøkende som kommer tilbake flere ganger er engasjert, men ikke konvertert.

Chat interaksjoner

Besøkende som starter en chat, søker aktivt hjelp eller etterkjøp.

Utsjekking starter

Besøkende som når utsjekkingssiden, men ikke fullfører kjøpet.

Innsendinger i skjema

Besøkende som sender inn et kontaktskjema, demoforespørsel eller tilmeldingsskjema.

Høyside engasjement

Besøkende som ser på mange sider med lang sesjon varighet, er dypt forske.

Førende detaljpanel

Klikk på et hvilket som helst resultat for å se sin komplette profil:

Identifikasjon

Navn, e-post, selskap hvis kjent. Anonyme leads show IP og beliggenhet.

Sessioner

Alle økter fra dette bly med sidestrøm, varighet og kilde.

Sider vist

Hver side de besøkte, bestilt av rektangel.

Kilde

Hvordan de fant deg: organisk, betalte, sosialt, henvisninger direkte.

Lead score

A0-100 score basert på atferdsintensitet, resency og side intensjon.

CRM-status

Om dette føreren er lagt til CRM som kontakt eller avtale.

Salgstips

AI-generated suggestion on what to do next (e.g., "Visited pricing 3 times · consider proactive outreach").

Høy verdi blymerke

Lead med en poengsum over 80 får et "High Value"-merke. Dette er de mest attraktive prospektene dine, og du kan prioritere dem for oppsøkende arbeid, proaktiv chat eller CRM-pipelineoppføringer.

Funnet eksempler

Arbeide et varmt bly

Scenario:
A lead viewed your pricing page 3 times in 2 days, started a chat asking about enterprise plans, but has not purchased.
Hva skal jeg gjøre:

Dette er en høy-intent leder.1) Sjekk deres hoveddetaljer for selskaps- og rolleinformasjon. (2) Les chatttranskripsjonen for bestemte behov og innvendinger. (3) Opprette en avtale i CRM med informasjonen samlet inn. (4Tilordne en oppfølgingsoppgave for et salgsteammedlem. (5Hvis de vender tilbake til prissiden, kan den proaktive chat-regelen utløse en personlig melding.

Konvertering av anonyme fører til CRM-kontakter

Scenario:
You have 50 anonymous leads with high scores but no email addresses.
Hva skal jeg gjøre:

Alternativer: (1Opprett en proaktiv regel som tilbyr rabatt eller ressursnedlasting i bytte mot e-post på høyintente sider. (2) Bruk chat widgeten til å be om e-post når anonyme besøkende starter en samtale. (3) Legg til et identitetssymbol på dine innlogging/signatursider, slik at tilbakevendende besøkere automatisk identifiserer.

Hvordan beregnes resultatresultatet?+

Poenget vurderer: rektangel av besøk (resent = høyere), hyppigheten av besøkene (mer=høyere) på sidene som er sett (pris/utsjekking = høyere); sesjonsvarighet (lenger = høyere, chatinteraksjoner (enging = høyere).

Kan jeg tilpasse ledende poengregler?+

Ja. I CRM-konfigurasjon kan du legge til blykorrerende regler som forbedrer poenget basert på bestemte søkeord, hendelser, kilder eller sidemønstre.

CRM

CRM-en din starter her

OpsIQ sender en full AI-første CRM som fanger kundesannhet, rengjør data, resultat leads, coaches tilbud, prognoser inntekter og handler med nettstedets intelligens, støtte, billetter, produkter og betalinger som én live graf. Hver AI handling er kildet til, forklarelig, reversibel og godkjenning kontrollert.

AICRM
Oversikt over AI CRMEn Trust Dial satt til Copilot ved siden av fire AI agentkort: Steward, Prospector, Retention og Analyst.AICRMarbeidsflateTillitsoppringingManuellAndrepilotAutopilotHvor mye AI gjør på egen håndDSStewardFortvilelse, berigendeValider dataSDRProspektorFinn & poengNy virksomhetRTOppbevaringSpot churn,driv fornyelserANAnalysePrognose &forklare tall1AI-FIRSTFire spesialistagenter2YOU DECIDETrust Dial selvstyre3TRUSTEDKildet og reversibel
En AI-første CRM drevet av fire spesialist agenter, og en Trust Dial som bestemmer hvor mye de gjør på egen hånd.

CRM sider oversikt

AI CRM (kommandosenter)

Start her

Din daglige hjemmeskjerm: inntektspulse, hva AI fant, hva det gjorde, godkjenning køen, neste bevegelser, agent helse og ROI.

Kontakter

Kjerne

Folk og selskaper i CRM. Søk, filtrer, poeng og administrere profiler

Rørledning

Kjerne

Visual dealboard med dra-og -slepp stadier, vinne sannsynlighet og AI coaching.

Prognose og rapporter

Kjerne

Board-grad prognoser: begått, sannsynlige og best tilfelle med tillitsintervaller og nøyaktighet sporing.

Livsyklus

Kjerne

Når alle kunder står: aktiv, i fare for utvidelse klar til å bli fornyet eller renovert.

Bygg min CRM

Konfigurer

Beskriv CRM-oppsettet på vanlig engelsk. OpsIQ genererer en reversibel plan og anvender den på godkjenningen.

CRM helse

Ops

Selvkontroll side: skjema, agenter, ruter og live data counts.

Hvordan OpsIQ holder deg trygg

Spør før du spiller

AI-forslag går til godkjenningskøen. Du godkjenner, redigere eller avviser hver enkelt. Ingenting skjer uten din mening.

Overskriv aldri

Når AI foreslår en endring, viser den gjeldende verdien og foreslått verdi. Human-entered data har bevis på beskyttelsen.

Alt er reversibel

Hver AI-handling er registrert i dagboken. Du kan angre på alle endringer med ett klikk.

Forklarbar

Hver AI-anbefaling viser sin resonnement og datakilder den brukte. Ingen svart boks.

Nyt? Start her

1
Åpne AI CRM

Klikk AI CRM i venstre navigasjon. Kommandosenteret viser din nåværende tilstand.

2
Sjekk CRM helse

Åpne CRM helse for å verifisere skjemaet, agentene og rutene er klare.

3
Importer kontakter

Hvis en kontakt er aktiv (Shopify, WHMCS Kontakter importeres automatisk. Ellers importeres via CSV eller opprette manuelt.

4
Opprette en rørledning

Gå til Pipeline og lag din første rørledning med trinn (f. eks Lead, Kvalifisert, Forslagsforhandlinger, Wonn, Lost).

5
Legg til din første avtale

Opprett en avtale fra kontakt, angi beløp og fase, og la Deal Coach veilede deg.

Må jeg bruke CRM?+

Nei. CRM er valgfritt. OpsIQ fungerer perfekt som en sporing + støtte+ AI-plattformen uten VRm. Aktiver det når du er klar til å administrere salg og kundeforhold.

Kan CRM fungere uten kontakter?+

Ja. Du kan opprette kontakter og tilbud manuelt. Kontakter berike CRM med plattformdata (ordr, abonnementer eller billetter), men er ikke nødvendig.

Hva er det som er tillitslaget?+

Trust Layer er sikkerhetssystemet som kontrollerer hva AI kan gjøre. Copilot modus (standard): AI foreslår, menneskelig godkjenner. Auto pilotmodus (opt-in): AI virker automatisk på lav risiko og reversibel operasjoner.

CRM

AI CRM hjemmeskjermen

Kommandosenteret er din daglige orientering. Åpne det hver morgen for å se hva som skjedde, hva trenger oppmerksomhet og hva du skal gjøre neste gang.

Kommandosenter
CRM-kommandosenterCRM-hjemmet med Procord/Win-rate / Pipeline brytere, en vektet forutgående KPI og et AI forslag køen med Approve og utsett på hver rad.CRM-kommandosenterarbeidsflatePrognoseVinnerrateRørledningFOREKST · DETTE Q$74k87%AI-forslag · Godkjenn køLag avtale · Acme $24kfra en chat med kjøperenGodtaUtelukkendeFlytt Nimbus → Forslagpositive svar oppdagetGodtaUtelukkendeLogg oppgave · Følg opp Peakingen aktivitet i 7 dagerGodtaUtelukkende1TOGGLEPrognose · Vinnerrate2AI PROPOSESDeals, etapper og oppgaver3YOU DECIDEApprove eller utslett
Det virkelige kommandosenteret: bytte mellom Prognose, Win-rate og Pipeline. Arbeider AI forslag køen, godkjenne eller avvise tilbudene, fasebevegelser og oppgaver det antydes.

Hva kommandosenteret viser

Dagens tall

Pipeline-verdi, tilbud vant/tapt, nye leads, aktive avtaler og inntektstrender.

Hva OpsIQ har funnet

AI-oppdagede innsikter: oppholdskontrakt, risikokontoer, nye muligheter og datakvalitetsproblemer.

Hva OpsIQ gjorde

Handlinger AI har tatt (i autopilot) eller foreslått: faseframskridelser, scoreoppdateringer, kontaktberikelse og oppgaveoppretting.

Trenger godkjenning

Kylling av AI-forslag som venter på din beslutning. Hver viser foreslåtte handling, resonnement og bevis. Utfylle, redigere eller forkaste.

Neste trekk

AI-ranket liste over de 10 viktigste tingene å gjøre i dag: følg opp en varm avtale, sjekk på risikokontoen og forsker et nytt bly osv.

Hjelpestatus

Helse av AI-agenter: Fange, Data Steward, Deal Intelligence, department coach ; SDR. Grønn = løping, rav = trenger oppmerksomhet, rødt = feil.

Resultater

ROI sporing: tilbud påvirket av AI, tid lagret, nøyaktighet for spådommer og sammenligning med manuelle CRM-arbeid.

Morgenveiledning arbeidsflyt

1
Les dagens tall

Sjekk rørlednings helse og inntekt trend. Er du på sporet i denne måneden?

2
Tøm godkjenningskøen

Gjennomgang hvert AI-forslag. Utfyll trygge handlinger, rediger der det trengs og avvise dårlige forslag.

3
Sjekk hva OpsIQ funnet

Les AI-innsikter. Er det noen tilbud i fare? Finnes det nye muligheter?

4
Arbeid neste trekkliste

Begynn med topp prioritet. AI har rangert disse etter haster og potensiell effekt.

Fange opp etter fritid

Scenario:
You were away for a week. What happened while you were gone?
Hva skal jeg gjøre:

Åpne Command Center og sjekk: (1Hva er det?OpsIQ"Did" viser alle AI handlinger under ditt fravær. (2"Trenger godkjenning" viser forslag som venter på din gjennomgang. (3Hva er det?OpsIQ"Ikke funnet" fremhever hasteelementer. (4) Angi datointervallet på dashbordet til fraværsperioden din for å se trenden.

CRM

Kontakter, selskap og tilbud

CRM organiserer forretningsforholdene dine i fire objekter: Kontakt (folk), selskaper (organisasjoner) og tilbud(gjenforeningsmuligheter) samt oppgaver.

CRM-objekter
CRM-objekterEn kontaktpost som er knyttet til selskaps-, avtale- og oppgaveobjekter i en sammenkoblet graf.CRM-objekterarbeidsflateKontaktperson · e-postSelskapetsaccountsDel utInntektsmuligheterOppgaveOppfølgingshandling1OBJECTSKontakter, selskaper2LINKEDEn tilkoblet graf3TASKSFølger vedlagt
Fire kjerneobjekter (kontakt, selskaper og oppgaver) som er koblet til én sammenkoblede kundegraf.

Kontakter

Hva er en kontakt

En person i CRM. De kan være en kunde, et prospekt, partner eller bly. Kontakter har e-post, navn, selskapet, tags, livsyklus scene og varmeness poengsummer.

Finne kontakter

Bruk søkefeltet til å finne på navn, e-post eller merker. Bruk filtre: livssyklusscene, blyscore, kilde, land og siste aktivitetsdato, tildelt eier.

Kontaktprofil

Klikk på en kontakt for å se sin fulle profil: personlig informasjon, selskapet, tilbud, aktiviteter, billetter, chatte, besøk av nettsteder, resultatresultat og AI-innsikt.

Hotness Score

A0-100 score beregnet ut fra atferdssignaler: nettsted besøk, e-post engasjement, chat interaksjoner, kjøpe historie og resency.

Selskapet

... flere billetter...
Kontaktselskapskobling

Kontaktene er koblet til selskaper via e-post eller manuell oppgave. Ett firma kan ha mange kontakter.

Avtaler

Hva er en avtale

En inntektsmulighet. tilbud har tittel, beløp, rørledning, etape, vinne sannsynlighet, lukk dato, tildelt eier og tilknyttede kontakter / selskapet.

Vinn sannsynligheten

En prosent sjanse for å vinne avtalen. Velg manuelt eller beregnet av AI basert på dine historiske gevinsterdata. Driver den vektede prognosen.

Helse

Grønn (helse), ravber eller rødt. Basert på aktivitetsgjenstand, fase varighet og engasjementsignaler

Oppgaver

Hva er en oppgave

En oppfølgingshandling som tildeles en person. Oppgaver har tittel, forfallsdato, prioritet, type (samtale, e-post og møte) samt lenket kontakt/deal.

AI-genererte oppgaver

AI oppretter oppgavene automatisk når det oppdages noe trenger oppmerksomhet: å følge opp på en steppet avtale, svare på et risikofritt konto og undersøke nytt lederskap.

Finne varme leads

Scenario:
You want to see all high-score contacts in the UK who have not been contacted recently.
Hva skal jeg gjøre:

Gå til Kontakter. Filtrer etter: Lead score > 80, Country = Norge, Siste aktivitet > 7 for dager siden. Sorter etter bly score synker. Dette er de hotteste oversette leads, prioritere outreach.

Opprette en avtale fra kontakt

Scenario:
A contact just expressed interest in your enterprise plan during a chat.
Hva skal jeg gjøre:

Åpne kontaktprofilen. Klikk på « Opprett avtale ». Skriv inn avtalens tittel (f. eks. « Acme Corp - Enterprise Plan »), beløp, pipeline og stadium (f, eks. « Kvalifisert »). Angi sluttdatoen og tilordne den til deg selv. Deal Coach vil begynne å spore denne muligheten.

CRM

Rørledningen (dealboard)

Pipeline er et visuelt brett der tilbud beveger seg gjennom trinn fra venstre til høyre. Dra og slippe kort for å fremme avtaler. Hvertkort viser deal summen, vinne sannsynligheten og helsestatusen.

Rørledning
CRM-rørledningRørledningen skjerm med åpen dealer, åpne verdier, vektet-framdrift og attributtert-deale tall statistikken, en ny Deal knapp, en AI Approve kø samt Lead/Qualified / Won bord.RørledningarbeidsflateÅpne tilbud23Åpne verdier28 KAVektet værvarsel$74kTilknyttede tilbud12+ Ny avtaleApprove kø2 For å se gjennomBLYVolt Inc4KFlamme$ 6kKVALIFIDERTNimbusweather condition30 tusen dollar.Topp9KVINNEROmløpsbane48 tusen dollar.1LIVE STATSÅpen verdi og vektet værvarsel2AI QUEUEApprove foreslåtte avtaler3BOARDDra tilbud etter trinn
Den virkelige rørledningsskjermen: live statistikk (åpen verdi, vektvarsel), en AI Approve-kø for foreslåtte tilbud og dra -og dråpebrett.

Bruke rørledningsbrettet

1
Vis dine tilbud

Rørledningen viser alle aktive tilbud som kort arrangert i kolonner (trinner). Hver kolonneoversikt kan vise den totale verdien av dealer på det trinnet.

2
Dra til fremdrift

Dra et kort til neste stadium. Vinnersannsynligheten og teller oppdatering umiddelbart. Hvis trekket mislykkes (validasjonsfeil), snaps tilbake til den opprinnelige posisjonen sin.

3
Sjekk kortmerker

Grønn merke = sunn (resent aktivitet, på sporet). Amber= i fare (nedsettelse, trenger oppmerksomhet) rødt = stallert (ingen aktivitet for lang tid).

4
Klikk for detaljer

Klikk på et kort for å åpne deal detaljpanelet med kontakter, aktiviteter, Deael Coach-kort og raske handlinger.

Godkjenningskøen

AI-forslag vises i godkjenningskøen øverst på rørledningen siden. Hvert forslag viser hva AI vil gjøre, hvorfor og bevisene. Du kan:

Godta

Handlingen går gjennom Trust Layer og er registrert i tidsskriftet.

Rediger

Endre forslaget før godkjenning. For eksempel endre det foreslåtte trinnet eller justere beløpet.

Avvis

Avslå forslaget. AI lærer fra avvisninger å gi bedre forslag i fremtiden.

Vinne sannsynligheten forklarte

Sannsynligheten for å vinne kan stilles inn manuelt eller beregnes av AI. Når AI beregner det, bruker den en modell som er trent på dine egne lukkede avtaler (vunnet og tapt). Hvis du ikke har nok historiske data, bruker AI standard sannsynlighet. $10,000 deal at 30% sannsynlighet bidrar $3,000 til den "sannsynlige" prognosen.

Flytte en avtale til Won

Scenario:
A customer signed the contract and paid.
Hva skal jeg gjøre:

Dra utdelingskortet til "vunnet"-stadiet. OpsIQ vil: (1) Marker avtalen som avsluttet-vunnet. (2) Oppdater varselet. (3) Legg til en "vunnet" aktivitet på tidslinjen. (4) Hvis konfigurert, utløs en webhook-hendelse (crm.deal.won).5) Oppdater kontaktens livssyklusstadium til «Kunde».

Spotting fast tilbud

Scenario:
You want to find deals that have been in the same stage for too long.
Hva skal jeg gjøre:

Se etter røde (avsatt) merker på rørledningsbrettet. Disse tilbudene har ikke hatt aktivitet lenger enn konfigurert rotingsgrensen (sett i CRM-konfigurasjon > pipelines). Klikk hver oppholdsavtale for å se Deal Coach's anbefaling om reaktivering.

Kan jeg ha flere rørledninger?+

Ja. Gå til CRM Configuration > Rørledninger for å opprette ytterligere rørledningene. Vanlig brukssaker: separate pipetips for nye virksomhet vs fornyelser, eller ulike produkter/tjenester.

Hva skjer når jeg drar en avtale til "Tapt"?+

Avtalen er merket som lukket-tapt. Du vil bli bedt om en tap grunn. Dealet fjernes fra det aktive brettet, men kan finnes i den lukkede deal filter. Kontakten forblir i CRM.

CRM

Avtale coaching

Deal Coach analyserer hver avtale og gir deg en kort med helsestatus, risikosignaler, nøkkelpersoner, et kvalifiseringskontrollliste, møte prep. Alt er kildet til neste handlinger. Treneren viser hvilken billetter, chat eller aktivitet hvert krav kommer fra.

Deal coach
Deal coachEt dealkort som registrerer AI-detekterte risikosignaler med beviskilder, ved siden av en AI anbefaling og et utkast til email.Deal coacharbeidsflateAcme Corp ·$24,000Fase: Forslag · 60% VinnerRISK SIGNALERIngen svar i 10 dagarChampion gikk stilleKonkurranse nevnt i chatKilder: billett #482 · chat 6/12 · e-posttrådAI anbefalerBygg den økonomiske igjenKjøper med en ROI-innkjøpog en 7_-daglig avslutningsplan.Utkast til e-post1SIGNALSHvorfor en avtale kan bli kvitt2SOURCEDAlle krav citerer bevis3ActionEtt klikk neste steg
Treneren flagger hvorfor en avtale kan slippe (hver signal cites sin kilde) og hender deg neste trekk å ta.

Hva treneren forteller deg

Helseforklaring

Hvorfor avtalen er sunn, i risiko eller opphold. Spesifikke signaler: dager på trinn, siste kontaktdato, aktivitet frekvensen, konkurrent nevner, innvending mønstre.

Signaler

Kategori: Innvendinger hevet, konkurrent nevner, prisdiskussioner, støtterisikoindikatorer, fornyelse/utvidelse signaler. Hvert signal lenke til kilden (chatttranskripsjon, billetter, e-post og aktivitet).

Mester og blockere kart

Hvem hjelper avtalen (champion) og som er i stand til å motstå (blokker). Basert på samspillsanalyse og kontaktrollene.

Kvalifikasjonskontrollliste

MEDDICC eller BANT-sjekkliste (konfigurerbar) som viser hvilke kvalifikasjonskriterier som er oppfylt og som mangler. Grade: A,B, C, D eða F

Møteforhåndsbestilling

Før et planlagt møte genererer treneren en kort agenda, sentrale poeng til å dekke, spørsmål som skal stilles og risiko for å håndtere og materiale.

Svar og ring planer

Foreslått neste melding eller ring skript basert på gjeldende avtaletilstand og nylig interaksjoner.

Bevistid

Hvert krav som coachen gjør lenker til en kilde: et billettnummer, chat-transkripsjons ID, aktivitetsdato eller besøk på nettsiden.

Hvordan bruke treneren

1
Les kort

Åpne alle avtaler og bla til Deal Coach-delen. Les helsestatusen og nøkkelsignalene.

2
Lukke kvalifikasjonsåpninger

Sjekk sjekklisten for kvalifikasjoner. Hvis "økonomisk kjøper" mangler, planlegg å identifisere og engasjere budsjettholderen.

3
Lov om forslag

Treneren foreslår konkrete neste handlinger. Klikk for å opprette en oppgave, utkaste til e-post eller planlegge et møte som alle rutes gjennom godkjenning køen.

Forbered deg på et stort møte

Scenario:
You have a meeting with a prospect tomorrow about a $50,000 deal.
Hva skal jeg gjøre:

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

Forstå hvorfor en avtale er i fare

Scenario:
The pipeline shows a red badge on a deal you thought was going well.
Hva skal jeg gjøre:

Klikk på avtalen og les helseforklaringen fra Deal Coach, som kan si: "Denne avtalen har vært i forslagsfasen i 22 dager (terskel: ) 14 Siste kontakt var 1 time siden. 11 Den primære kontakten åpnet en kundestøttesak om problemer med dataoverføring. 5 for 2 dager siden (billet #T-892 Forslag: Ta opp problemet med overføringen og planlegg en oppfølgingssamtale." Nå vet du nøyaktig hva som må rettes.

CRM

Prognose og rapporter

Board-grad prognoser med et defensibelt område, avtalenivå endring forklaringer og nøyaktighet sporing slik at du kan bevise og forklare tallene dine.

Prognose
PrognoseEt kvartalsvis prognosenummer med innlegg, best-case og pipeline bands samt en nøyaktighetsnotat.PrognosearbeidsflateFOREKST · Denne kvarten312k87% Å målretteInndragBeste tilfelleRørledningAI-vektet av avtale helse og historie · nøyaktighet sporet over tid1KATEgorierInnføring i rørledning2AI-WEIGHTEDVed avtale helse3PROVABLENøyaktighet sporet
Legg til, best-case og rørledning på et øyeblikk, AI -vektet av avtale helse med nøyaktighet sporet slik at du kan forsvare det.

Prognose kategorier

Besvart

håndterer 80% eller høyere vinnersjanse. Dette er din mest sannsynlige gevinster. Det bør være dine minste forventede inntekter.

AI-vektet sannsynlig

Alle åpne tilbud vektet av deres AI-beregnet gevinst sannsynlighet. Dette er den mest realistiske forutsetningen om hva du vil lukke.

Beste tilfelle

Alle åpne tilbud til full verdi. Dette er maksimalt mulig inntekt hvis alt går perfekt (det sjelden gjør det).

Tillitsintervall

AnRegion/ state in France 80% Eksempel: "Det er sannsynlig at du vil lukke mellom 0,1 og 0.2". $45,000 og $72,000 Dette kvartalet."

Hva som endret seg og hvorfor

Prognosen inkluderer endringer i uken og uken. Når prognose faller med $15,000, rapporten forklarer nøyaktig hvilke avtaler som forårsaket endringen: -Del A gled til neste kvartal ($8,000), Deal B tapt ($5,000), Deal C redusert i verdi ($2,000)."

Nøyaktighetssporing

Forventning MAPE

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

Vinn sannsynlighetskalibrering

Brier score måle hvor godt vinne sannsynlighetene matcher faktiske resultater. Hvis tilbud på 70% Sannsynligheten vinner faktisk 70% Av tiden er kalibreringen god.

Ukebliksbilleder

OpsIQ fanger et øyeblikksbilde av prognosen hver uke (via cron). Over tid kan du se hvordan din prognoser nøyaktighet forbedrer.

Rulleopp og advarsler

Omregning per trinn

Hvor mange avtaler som flyttes fra hvert trinn til neste. Hvis 80% passere fra kvalifisert til forslag, men bare 20% Når du går fra forslag til forhandling, kan dine forslag trenge arbeid.

Per-kilde vinnerrate

Hvilke blykilder gir mest gevinster. Investere mer i høy-win-rate kilder.

Pere-owner ytelse

Hvordan hvert salgsteammedlem utfører: tilbud vunnet, pipeline verdi gjennomsnittlig deal størrelse og gevinst.

Advarsler

Sandbasje (uvirkelig lavt sannsynlighet), overkommitterende (orealistisk høy) og engasjerte-at -risiko (høyt sannsynlighetsavtaler som viser bodsignal).

Forstå et prognosefall

Scenario:
Your quarterly forecast dropped from $180,000 to $155,000 since last week.
Hva skal jeg gjøre:

Open the Forecast page and check "What changed." The report shows: "Acme Corp deal ($15,000) moved to Lost, competitor chosen. Beta Inc deal ($8,000) close date pushed to next quarter. New deal with Gamma LLC ($3,000) added this week." The net change is -$20,000 + $3,000 = -$17,000, explaining the drop from $180K to $163K (with the remaining $8K explained by probability adjustments on other deals).

CRM

Finne ny virksomhet

Prospecting Agent hjelper deg å finne og forske potensielle kunder. Beskriv den ideelle kunden din, legge til målselskaper, og la AI forskning, score og utkast første berøring utover.

Prospeksjon
ProspeksjonEn liste over AI-funnede prospektselskaper med passform notater, poeng og en utklippsknapp hver.ProspeksjonarbeidsflateUtsikter funnet av SDR-agentenUtvikler: Northwind LtdSaaS · 50 -ansatte88Utkast til uttakCobalt MfgManufacturing · 20074Utkast til uttakMesa RetraileCommerce · 3069Utkast til uttakVega HelseHelse · 8063Utkast til uttak1FINDAI-kilder målkontoer2POENGPasser & intensjon rangert3DRAFTFørste berøring skrevet for deg
SDR-agenten finner målselskaper, scorer dem på passform og trekker utdraget til første berøringsuttak for din gjennomgang.

Engangsoppsett

1
Beskriv din ideelle kunde

Gå til CRM-konfigurasjon > Prospektering. Beskriv din ideelle kundeprofil (ICP): målbransjer, bedriftsstørrelser, stillingstitler, geografisk fokus, produktmatchingsvilkår og minimum passpoeng. Eksempel: "B2B SaaS-selskaper med 50-500"Vi har 10 ansatte i USA/Storbritannia som selger utviklerverktøy, med en salgsdirektør eller vekstleder som primær kontakt."

2
Legg til målselskaper

Skriv inn selskapsdomener eller navn du vil forske. Du kan også la AI foreslå bedriftene basert på din ICP.

3
Gjennomgang av forskningsresultater

AI beriker hvert selskap med tilgjengelige data: størrelse, bransje, tech stabelen, nylige nyheter og passer til poenget.

4
Approve utslett

For godbitte selskaper, AI utkast til en personlig første-touch melding. Gjennomgang og godkjenne i køen.

Fit Scoring

Hver utsikt får en0-100 passform score basert på fem faktorer:

ICP-passasje

Hvor godt selskapet passer din ideelle kundeprofil (industri, størrelse og plassering).

Urenthetssignaler

Er det bevis som de trenger produktet ditt nå? Jobbinnlegg, tekniske endringer og klager på konkurrenter.

Budsjett proxy

Selskapsstørrelse, finansieringsfasen og inntektsmål tyder på budsjetter.

Produktmatch

Hvor relevant produktet ditt er for virksomheten din basert på industri og teknologi.

Støttepassing

Om du kan betjene denne kunden effektivt (tidssone, språk og kompleksitet).

Forskning av et målselskap

Scenario:
You want to evaluate whether acme.com is worth pursuing.
Hva skal jeg gjøre:

Legg til acme.com til prospektlisten. AI returnerer: Fit score 78/100 (god passform). Årsaker: B2B SaaS, 120 medarbeidere, USA-baserte og nylig ansatt en VP of Sales (urgency signal), bruker konkurrent X. Kjøp signaler: besøkte prissiden to ganger i måneden (fra nettstedssporing). Best kontakt [email protected] (VP of Sales). Utkastet opener refererer til deres nylige leie- og prissidebesøk.

CRM

Automatiske oppfølgingssekvenser

Sekvenser automatisere multi-trinn oppfølging: en blanding av epost, ventetid, oppgaver og anrop som kjører automatisk etter at du godkjenne den første sendingen.

Sekvenser
OppfølgingssekvenserEn horisontal sekvensstrøm: E-post, vente tre dager og email. Deretter en oppgave med svardetekteringOppfølgingssekvenserarbeidsflateNår du godkjenner den første sendingen→E-postIntroVent3 DagerE-postOppfølgingOppgaveRingTrinn kan være e-post, vente eller webhook. Et svar stopper automatisk sekvensen.1AUTOMATEMulti-trinn oppfølging2STEPSE-post · vente på oppgaven3YOU APPROVEFørste sending er portet
Automatisert multi-trinns oppfølging (email, vent på epost og oppgave) som du godkjenner først.

Hvordan sekvensene fungerer

1
Lag en sekvens

Definer trinnene: e-post, vent 3 dager, e-post 5 dager, oppgave (kall om ikke svar), e-post. Hvert email trinn har en mal du kan tilpasse.

2
Rulle inn kontakter

Legg til kontakter i sekvensen. AI kan også foreslå registrering fra prospektive resultater.

3
Automatisk utførelse

Trinn kjører automatisk på timeplan. Hvis kontaktsvarene når som helst, pauser sekvensen seg automatisk.

4
Sporresultater

Se åpne priser, svarssatser og avmeldelser per trinn. Bruk dette til å optimalisere sekvensen din.

Svar forståelse

Når en kontakt svarer klassifiserer AI svaret:

Positivt

Interessert, ønsker å snakke. Sekvens pauser og oppgave opprettet for oppfølging.

Retroaktivt

Har bekymringer, men ikke avviser. Sequence pauser og oppgave opprettet med innvendingsdetaljene.

Avslutt abonnement

Ønsker å slutte å motta meldinger. Kontakt undertrykkes permanent.

Ikke nå

Interessert, men timing er feil. Sekvens pauser og snooze oppgave opprettet.

Feil person

Ikke riktig kontakt. Sekvens stopper, ta kontakt flagget for anmeldelsen

Støtte

Et støttespørsmål, ikke et salgsrespons. Sekvens pauser og billett opprettes.

Anti-spam beskyttelse

Utstyrshåndtering

Slutte å be om setning blir respektert umiddelbart og kontakten undertrykkes fra alle fremtidige rekkefølger.

Daglig sende cap

Arbeidsplassnivå-daglig grense (standard: 1,000 epost). Forhindrer masse sender som utløser spamfilter.

Per kontaktgrense

Maksimum 1 -melding per kontakt/dag. Forhindrer overveldende individuelle mennesker.

Overtrekkshåndtering

Trinn som overstiger den daglige hette utsettes til neste dag. De blir aldri droppet eller hoppet over.

Hva skjer hvis en kontakt åpner støttebillett i løpet av sekvensen?+

Sekvensen pauser automatisk. Støtten prioriteres over utveier. sekvensen kan gjenopptas manuelt etter at støtteproblemet er løst.

Kan jeg teste trinn A/B?+

Ikke direkte i sekvenser, men du kan opprette to rekkefølger med ulike melding og sammenligne deres resultater.

CRM

Vekstverktøy

En side under CRM som holder vekstmotoren: løpende inntekter (MMR/ARL), produktkatalogen, bly-kapting skjemaene og bestillingslenker. Alt her skriver rett inn i CRm, så en forminnsendelse eller et bestilt anrop er kontakt med historie, ikke ei rad i regneark.

Hva som bor på siden

Resepterende inntekter

Inntekter

MRR og ARR projisert fra din reelle faktureringsleder. Prenumerasjonene er gruppert fra betalinger per plattform, fakturasyklusen blir avledet fra betalingsåpninger, mens et abonnement forfalle når en betaling som har gått forbi 1.5 ganger syklusen sin. Kundenes lenke til CRM-kontakter automatisk når lederen bærer epost.

Produktkatalog

Katalog

En kilde til sannhet for det du selger. Siter trekker navn og listepris fra katalogen, samt aksepterte sitat rulles opp i inntekt etter produkt. Produktarkivet sletter de aldri.

Lead-capture former

Opptak

Hvert skjema får en hostet side pluss et iframe innpakket kode for ditt eget nettsted. Innsendinger blir kontakter, eieren får melding og rutingreglene tilordner ledelsen.

Reservasjonslenker

Planlegging

Del en lenke, la utsikter velge et gratis slot. Slots respekterer arrangøren sin arbeidstid og tidssonen og eksisterende møter. En bestilling skaper møtet, e-post prospektet for å bekrefte og rapportere organisatoren.

Lederveiing

Ruting

Territoriets regler kjører først, deretter feltregler (match et område som land eller kilde), så rundt rotete over din rep-pool. Det ruter CONTACTS OG DEALS like, uansett avtalestatus: en vunnet deal fortsatt trenger eier for kommisjon tilskrivning, kontoansvar og oppfølgingsmodus, og i eieren eller team synlighet modus er usynlig for alle men manageren. Opptak opprettet av automatisering (ett kontaktsalg, chatter, import) bærer ingen interaktiv skaper, slik at dem rutes etter samme reglar på å skape snarere enn venstre ejerløse. Alt som allerede har eiere blir aldri omgjort.

Opprett din første skjema

1
Åpne vekstverktøy

Gå til CRM, deretter vekstverktøyene og deretter delen av bly-kapture skjemaer.

2
Navngjev det og velge felt

Skriv inn et navn og en kommadelt feltliste, for eksempel navn, e-post, telefon eller melding. Email er alltid nødvendig.

3
Del eller embed

Kopier den hosttede lenken for å dele det hvor som helst, eller kopiere innpakkede koden og lim dem på alle sider av nettstedet ditt.

4
Se på lederne kommer

Hver innsending er en CRM kontakt med et skjema. sendt aktivitet, eiervarsling og automatisk ruteføring.

💡
Offentlige fangesider bruker arbeidsområdets egen adresse. Skyarbeidsplasser benytter sitt tilordnede underdomene (selskapet).opsiq.help), så linken alltid løser riktige data.

Innbygget beskyttelse

Bots ser suksess, du kan ikke se noe

En skjult honningpottfelt kaster stille botten innlegg.

Begrenset rate

Ti innlegg i timen IP adresse på tvers av skjemaer og bookinger.

Samtykke forblir ærlig

Å sende inn et skjema gir ikke markedsføringssamtykke. Bare en eksplisitt samtykke-boksen gjør det.

Ingen dobbelt bestilling

En spilleautomat er omvalidert mot en fersk tilgjengelighetssjekk i øyeblikket av booking.

Hvor kommer de løpende inntektsdataene fra?+

Fra samme handelsleder bruker salgssiden din, matet av faktureringskontakter. Bruk re-sync fra fakturering etter å ha koblet til en ny plattform.

Kan jeg bruke skjemaene uten nettsted?+

Ja. Hvert skjema har en hostet side på din egen adresse som fungerer frittstående, med eller uten JavaScript.

CRM

Budskap Hub (SMS og WhatsApp)

En kontakt, opptil tjue gateways. Koble SMS- og WhatsApp-leverandørene du faktisk bruker, markerer en som standard, og velg noen av dem når teksting er kontakter. Samtykke kontrolleres av CRM før enhver inngangsport blir kontaktet.

Sett det opp

1
Aktiver koplingen

På siden Kontakter, åpne meldingshub (SMS og WhatsApp) og aktivere det.

2
Legg til en leverandør

I samme skuffe, eller i CRM-vekstverktøyene kan du velge en gateway fra rullegardinen (Twilio, Vonage, Termii, Meta WhatsApp Cloud og mer), lim inn dens API akkreditiv og koble til. Du kan legge flere, inkludert de samme portport to ganger med ulike kontoer.

3
Wire webhook

Hver leverandørpost viser sin egen webhook URL med en kopiknapp. Lim den inn i gatewayens leveringsrapporter og inbound-message innstillinger for å få status som levert tilbake til OpsIQ.

4
Send fra kontakt

Åpne en kontakt og bruk SMS- eller WhatsApp -knappen. Hvis mer enn én leverandør støtter kanalen, kan du velge et utvalg; Ellers brukes standarden.

Samtykke kommer først

Kun samtykke

Ukjent samtykke er ikke aksept. En sending nekter med mindre SMS-godkjenning uttrykkelig gis. WhatsApp kjører samme tillatelse.

Ikke kontakt vinner alltid

Et do-not contact flagg blokkerer hver kanal, uansett hva som er satt.

Forebyggingen er æret

Kontakter på undertrykkingslisten blir aldri sendt.

Refusals navngjevningen deres grunn

En blokkert sending forteller deg nøyaktig hvorfor, så du kan fikse dataene i stedet for å gjette.

For utviklere: webhook kontrakten

URL form

https://your-address/opsiq/cron/messaging_webhook.php?sk=SITE_KEY&e=ENTRY_ID&t=TOKEN. per entry token er mintet når tilbyeren blir koblet og aldri roterer på redigering.

Formater som forstår

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

Effekter

Leveringsrapporter stempler utreach ledger rad som bærer leverandørens meldings-ID som levert eller sprøyte. Inngående beskjeder samsvare kontakten med telefonnummer inne i arbeidsområdet, land som en melding. Mottatt aktivitet og markere samtalen svarte.

Feilmodus

Feil eller manglende token-svar 403 Ukjend nyttelast telles og ignoreres, aldri fatalt så en uforutsigbar gateway kan ikke bryte endepunktet.

Hvilke porter støttes?+

Twilio, Vonage, Plivo, MeldingsBird, Snimmer, Infobip, Telnyx, ClickSend, Termii, Afrika snakker, BulkSMER, Textlocalt, Meta WhatsApp Cloud, 360dialog, SMSAPI, Gupshup, Kaleyra, D7 Networks og en tilpassede HTTPS webhook for noe annet.

Er legitimasjonen sikker?+

Påloggingsopplysninger lagres kryptert i kontaktinnstillingene og blir aldri ekko tilbake til nettleseren. Å redigere en oppføring med tom hemmelighet holder den lagrade enheten.

Kan AI sende meldinger?+

Ja, gjennom registrerte handlinger som krever bekreftelse og kjører samme samtykke gate. AI kan også liste tilkoblede leverandører for å forklare hva som er tilgjengelig.

CRM

Holde og voksende kunder

Livsyklusstyring hjelper deg å beskytte eksisterende inntekter. Hver konto får en churn risikoscore, helse score, utvidelse og et anbefalt suksessspillebok.

Livsyklus
LivsyklusEn kunde livssyklus (påbord, aktiv, at-risiko og fornyelse) med helsebarer på hvert kontokort.LivsyklusarbeidsflateOmbordstigningAcmeCity in California USAhelse 40AKTIVTGlobexhelse 88Initechhelse 76AT- RISKSoylentCity in California USAhelse 28VEGLUmbraFornyelser i 12dutvidelse + $8k1STAGESOmbord til fornyelse2SCOREDHelse og utvidelse3PLAYBOOKAnbefalt neste trekk
Kundene beveger seg gjennom onboarding, aktiv, risikofri og fornyelse hver score for helsen og ekspansjonen med en spillebok.

Livsyklusen

Scenekart

Visual board som viser hvor hver konto står: Lead, Prospect, Opportunity, Kunde- og Utvidelsesbeløpet, Renéwal.

Risikokontoer

Kontoer flagget med høy churn risiko. Hver viser den øverste driveren (støtte pigge, inaktivitet, betalingsfeil) og en anbefalt sparespilling.

Utvidelsesmuligheter

Kontoer som viser signaler om beredskap til å kjøpe mer: høy bruk, funksjonsforespørsler og planlegg forespørsel.

Fornyelsesgrunnlaget

Kontoer med kommende fornyelsesdato. Sortert etter risikonivå og inntektsverdi

Hvordan OpsIQ registrerer churn-risiko

Churn-risikoen beregnes fra flere signaler sammen:

CRM-signaler

Deal helse, inaktivitet, nylige tap og nedgang i engasjement.

Støttesignaler

Åpne billetttelling, billettvolumspikes, negativ følelse og opptrapping.

Produktinnsats

Logg inn frekvens, funksjonsbruk, sidebesøk API samtaler.

Faktureringssignaler

Mislykkedes betalinger, forfallne fakturaer og nedgraderingsforespørsler.

Spillebøker

Lagre spill

For risikokontoer: når proaktivt ut, adresser bekymringen og tilby støtte.

Fornyelsesspill

For kommende fornyelser: bekrefte tilfredshet, gjennomgang bruk, nåverdi tilbyr incitament om nødvendig.

Utvidelsesspill

For klar til å grow-kontoer: presentere oppgraderingsalternativene, dele suksesshistorier og demonstrere ROI.

Adopsjonsspill

For å underutnytte kontoer: tilby opplæring, dele beste praksis og aktivere funksjoner de ikke bruker.

Spotting churn før det skjer

Scenario:
A customer who normally logs in daily has not logged in for 2 weeks, and they opened 3 support tickets this month.
Hva skal jeg gjøre:

Livssykluspanelet flagger denne kontoen som "I fare" med følgende drivere: inaktivitet (14 Dager siden siste innlogging) og støtte spike (3x Anbefalt spill: proaktiv oppsøkende samtale for å forstå hva som skjer. Er det et produktproblem? Evaluerer de konkurrenter? Tidlig inngrep kan redde kontoen.

CRM

Hold dataene dine rene

Data Steward-agenten finner og fikser automatisk datakvalitetsproblemer: dupliserer, manglende felter, uoverensstemmelser samt stangepost.

Dataadministrator
DataadministratorEn liste over problemstillinger i datakvalitet (dupliserer, mangler og utholdenhet), hver med en handling som kan fikses én klikk.DataadministratorarbeidsflateDataproblemer som Steward-agenten fantDuplisert[email protected] og [email protected]MerkMangler12 kontakter har ingen selskapBerikForeldet38 tilbud uberørt for 90+ dagerAnmeldelseFormatertelefonnummer i 4 formaterReparer alle1CATCHESDuper, hull2EXPLAINSHvorfor det flagget hver3FIXESPå din godkjenning
Steward-agenten holder CRM ren, finner dupliserer, huller og staveplater.

Hva det fanger

Dupliserte kontakter

Flere poster for samme person (f.eks [email protected] og [email protected]). Administratoren foreslår å slå dem sammen.

Mangler data

Kontakter uten e-post, tilbud uten beløp. Foreslår å fylle fra tilgjengelige kilder.

Utilknytte poster

Dealer uten tilknyttede kontakter, kontaktpersoner uten selskap. Foreslår å koble til basert på e-postdomene og konteksten.

Usikkerhet

En avtale i "Vonnet" stadium med 20% sannsynlighet, en kontakt merket "Kunde" uten avtaler, et selskap med mismatched bransje.

Feil faser

Deals som har vært i samme fase for lange eller kontakter hvis livsyklus-fase ikke samsvarer med aktiviteten.

Hvordan bruke

1
Åpne styrelisten

Gå til CRM og finn Data Steward-delen (eller åpne den fra CRm helse).

2
Approve trygge rettelser

Grønne elementer er trygge: klare dupliker, åpenbare manglende data. Approve disse i bulk !

3
Se resten

Amber elementer trenger din dømmekraft: mulige dupliserer med små forskjellene, foreslåtte trinn endringer, selskap linking.

Rengjøring av duplikatkontakter

Scenario:
The steward found "John Smith ([email protected])" and "J. Smith ([email protected])": same email, different display names.
Hva skal jeg gjøre:

Administratoren foreslår å slå sammen: holde registeret med mer aktivitet, slå sammen den andre rekordens tilbud og aktiviteter. Gjennomgå forslaget, justere det overlevende visningsnavn om nødvendig, og godkjenner. Begge poster historie er bevart i flettekontakten.

CRM

Bygg min CRM

Build My CRM lar deg beskrive din TM-oppsett på vanlig engelsk. OpsIQ genererer en validert, reversibel plan og bruker den på godkjenning. Ingen koding, ingen manuell konfigurasjon klikking.

Bygg min CRM
Bygg min CRMEn naturlig språkbeskrivelse til venstre som produserer en generert CRM-plan for stadier, felt og segmenter på høyre.Bygg min CRMarbeidsflateBeskriv din virksomhetVi er et webdesignbyråselger månedlige holdere ogEn-off prosjekter til små-Bergde.Bygg min CRMGenerert planEtapper: Lead → BeholdDeletyper: container, prosjektFelt: månedlig verdiSegmenter: SMB, byråSekvens: onboardingGodkjenn og bruk1DESCRIBEEngelsk i2AI PLANSStadier, felter og segment3APPROVEBrukt · Ingen kode
Beskriv virksomheten din på vanlig engelsk; OpsIQ Utkast til hele CRM (trinn, felt og segmenter) og gjelder det på godkjenning.

Hvordan det fungerer

1
Beskriv hva du vil ha

Skriv inn en beskrivelse av CRM-oppsettet ditt på vanlig engelsk. Eksempel: «Opprett en fornyelsestratt med stadier: Kommende, Kontaktet, Forhandler, Fornyet, Tapt. Poengsummen til potensielle kunder øker når de ser prisene to ganger.»

2
Se over planen

OpsIQ viser en forhåndsvisning av hva det vil skape: rørledning, stadier, fasesannsynligheter, score regler og livsyklusregler.

3
Bruk

Klikk på Bruk for å kjøre planen. Hver endring er registrert som en pakke du kan angre i ett klikk.

4
Rull tilbake om nødvendig

Hvis noe ikke er riktig, klikk Angre for å returnere hele pakken. CRM-en din går tilbake til den forrige tilstanden sin.

Hva du kan bygge

Rørledninger og -fase

Opprett navngitte rørledninger med egendefinerte stadier, standard sannsynligheter og rotterende terskelverdi.

Scoring regler

Øk kundeemnepoengene basert på atferd: "Score høyere når de ser prisene," "Scor lavere når de besøker karrieresiden."

Livsyklusregler

Automatisk fremover livssyklus stadier: "Gå til SQL når de ber om en demo," "Går til kunde når avtalen er vunnet."

Egnede felt

Legg til felt i kontakter, tilbud eller selskaper: tekst, nummer og dato. URL e-post.

Kvalifikasjonskontrollliste

Definer MEDDICC eller BANT sjekklisten til deal coach-rangeringene mot.

Opprette en fornyelsesrørledning

Scenario:
You manage SaaS subscriptions and need a pipeline for renewals.
Hva skal jeg gjøre:

Skriv: "Lag en fornyelsesrørledning. Faser: 90 Dager ut (10%), 60 Dager ut (25%), Kontaktt (40%), Forhandlinger (60%), Fornyet (100%), Churned (0%). Sett råtegrensen til. 14 dager."OpsIQ Når du har generert planen, går du gjennom den og klikker på Bruk.Trakten vises umiddelbart på Trakt-siden din.

Hva om jeg beskriver noe som ikke er mulig?+

Byggeren genererer bare handlinger den vet hvordan man validerer. Hvis du ber om noe utenfor dens evner (f. eks. "Integrere med min tilpassede API"), vil det avvise forespørselen og forklare hva den kan gjøre i stedet.

Kan jeg angre endringer?+

Ja. Hver Build My CRM-handling er fanget som en reversibel pakke. Gå til CRm Helse > Endre historie for å se alle bunter og angre noen av dem.

CRM

Konfigurer din CRM-vei

Manuell CRM-konfigurasjon for lag som foretrækker å klikke over skrive. Alle innstillinger som Build My CRm kan opprette er også tilgjengelige som tradisjonelle skjemafelt.

Rørledninger og -fase

Opprett, endre navn, omorganiser og slett rørledninger og stadier. Sett standard vinn sannsynlighet per stadium. Set den råtnende terskel (dager uten aktivitet før en avtale er merket "stalled").

Egnede felt

Legg til felt i tilbud, kontakter eller selskaper. Felttyper: tekst, nummer og dato (fall ned med forhåndsdefinerte alternativer), avkrydsningsboks, URL_-\", epost. Tilpassede felt vises på objektprofilen og i filtrene.

Kvalifikasjonskontrollliste

Definer sjekklisten Deal Coach bruker til å evaluere tilbud. Velg MEDDICC, BANT eller et egendefinert sett med kriterier. Hvert element kan merkes nødvendig eller valgfritt.

livssyklus-trinnsregler

Definere automatiske trinnoverganger: Når en kontakt oppfyller betingelsene (se priser, sende inn et skjema og kjøper), så vil livssyklusfasen deres bli forfremmet.

Ledende regler

Øk eller reduser poengsummen for potensielle kunder basert på atferd. Eksempler: "Visning av prisside = +15"Nedlastet hvitbok = +10"Besøkte karrieresider = -5Minimum antall poeng kan settes (f.eks. "må se prising minst 10 ganger"). 2 ganger").

Lagre visninger

Opprett navngitte filter+sort-kombinasjoner for kontakter, tilbud eller selskap. Del visningene med teamet ditt. Velg standardvisning per objekttype

Legge til en lead scoring regel

Scenario:
You want contacts who view your pricing page twice or more to get a higher score.
Hva skal jeg gjøre:

Gå til CRM-konfigurasjon > Regler for kundeemnevurdering. Klikk på Legg til regel. Sett: Hendelse = "sidevisning", URL inneholder = "/pricing", Minste antall =2, Poeng økning = +20 Neste gang scoreren kjører, vil kontakter som samsvarer med denne regelen få +20 til deres ledende poengsum.

CRM

CRM Helsekontroll

CRM Helse er en selvdiagnostisk side som verifiserer din VR-funksjon konfigureres riktig og kjører jevnt.

Helsekontroll
CRM HelsekontrollEn helsescorering på 92 ved siden av en sjekkliste over passerings- og varslingskonfigurasjonskontroller.CRM Helsekontrollarbeidsflate92HELSKEPipeline-faser konfigurertKobling koblet til & importAI-agenter aktivert!Ingen aktiv oppfølgingssekvens!12 -kontakter som mangler selskap1AUDITBekrefter oppsettet ditt2FLAGSHva som mangler3POENGEt samlet tall
En CRM-revisjon på én side: en generell helsescore pluss et sjekkliste over hva som er satt opp riktig og det som fortsatt trenger oppmerksomhet.

Hva den sjekker

Skjema

Databasetabeller eksisterer og har de riktige kolonnene. Hvis en migrasjon ble savnet, vil CRM Helse flagge den.

AI-midler

Alle CRM-agenter (Capture, Data Steward, Deal Intelligence osv.) er registrert og sunt. Grønn = kjører, rav = trenger oppmerksomhet, rød = feil.

Ruter

CRM API ruter og AJAX endepunkter er registrerte og kan ringes.

AI-handlinger

CRM-handlingskatalogen er registrert i Handlingsregisteret. Hvis det mangler handlinger, kan du selvhelbrede dem ved å registrere deg på nytt.

Live data teller

Totalt sett kontakter, selskaper, tilbud, oppgaver og arrangement. Nyttig for å verifisere import og pågående dataopptak.

Etter installasjonskontroll

Etter første gangs CRM-oppsett, åpner du VR Helse og verifiserer alle kontroller er grønne. Hvis noen er rav eller rødt klikker du på elementet for en diagnostisk forklaring og foreslått fikse.

Hvor ofte bør jeg sjekke CRM helse?+

Sjekk etter første oppsett, etter store oppdateringer og når som helstCRMAtferd virker feil.CRMHelse selvhelbreder mange problemer (som manglende handlingsregistrering) bare ved å åpne siden.

CRM

CRM-forbindelser for utviklere

CRM avslører en komplett offentlig REST API og utgående webhooks slik at det passer enhver stabel uten manuell eksport.

API Endepunkter

Autentisering

API nøkkel (Autorisasjon: Bearer opq_...) med omfang crm.read eller crm.write. POST til /api/v1.php med handling og site_key.

Kontakter

crm. contacts. list (søk + filter), crm. kontakter. detalje (etter ID) og crp. connects. upsport (opprett eller oppdater).

Avtaler

crm. deals. list, crm. Deals

Aktiviteter

crm. aktivities. list (tidline for kontakt/deal), crm. activitys. record (logg en ny aktivitet).

Hendelser

crm. events. list (duable change feed with page_id markør), crmm. events. catalog (liste tilgjengelige hendelse typer).

Lag en avtale 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-begivenheter

crm.contact.created

Skyt når en ny kontakt legges til i CRM.

crm. deal. stage_changed

Fyrt når en avtale beveger seg til et annet stadium.

crm.deal.won

Skyt når en avtale er stengt som vunnet.

crm.deal.lost

Skyt når en avtale er stengt som tapt.

crm.task.created

Fyrt når en ny oppgave opprettes (manual eller AI-generert).

crm.outreach.reply

Skyt når en prospekt svar på sekvens e-post.

crm. agent. proframe_created

Fyrt når et AI-agent oppretter forslag til godkjenningskøen.

Alle webhook-hendelser er HMAC-signert og retried på feil. Abonner en URL i innstillingene > Webhooks, eller meningsmåling crm. events. list med day/id for et holdbart byttefôre.

Synkronisere CRM-kontakter til Google Sheets

Scenario:
You want every new CRM contact to appear in a Google Sheet for your marketing team.
Hva skal jeg gjøre:

Sett opp en webhook-abonnent for crm. contact. created. Point is on a Google Apps Script web app or an Zapier webhook URL x/craft. Den nyttelasten inkluderer kontaktnavn, epost, selskapet, hovedscore og kilden din. Skriptet legger til ei rad på google Sheets for hver ny kontakt.

CRM

Segmenter

Segmenter lagrer gjenbrukbare kontaktfiltre for CRM-visning, utveisføring og andre publikumsbeskyttede verktøy.

Produktskjerm
SegmenterSegment-redigeringsprogrammet kombinerer betingelser, viser live matchtallet og lar operatøren velge et levende filter eller festet øyeblikksbilde.SegmenterarbeidsflateMODENivåLOGICAlleMATCHES1,248LIV ARBETSPESSONEKundefasenlik aktiv kundeRegleneSiste aktivitetinnen 30 dagerRegleneLandlik StorbritanniaRegleneHøy intensjonscorer i det minste 70Reglene1CHOOSE MODELive eller øyeblikksbilde2ADD RULESAlle eller noen3REUSEkampanjer og CRM
Segment-redigeringsprogrammet kombinerer betingelser, viser live matchtallet og lar operatøren velge et levende filter eller festet øyeblikksbilde.

A levende segment reberegner fra gjeldende data når den brukes. A festet øyeblikksbilde fryser den gjeldende medlemslisten, som er nyttig når et utvendig publikum ikke må endre seg etter godkjenning.

Velg Alle når alle betingelser må matche eller Alle når en tilstand er nok. Se gjennom livetellingen før du lagrer. Systemsegmenter kan være synlige, men beskyttet fra vanlig redigering.

CRM

Lead-scoring

Lead-scoring regler gjør atferd og profilsignaler til en konsekvent score som salg og automatisering kan bruke.

Produktskjerm
Lead-scoringLead-scoring viser aktive regler, rullevinduet og den positive eller negative scoreendringen hver regel gjelder.Lead-scoringarbeidsflateKJØP12SCORED8,412HOT LEADS286LIV ARBETSPESSONEPrising3+ besøk i 14 Dager+20Kjøp søkeordinneholder migrasjon eller virksomhet+15Støtterisikoklage hendelse i 30 dager-10Trodd kildepartner referanse+121DESCRIBE RULEBruk vanlig engelsk2REVIEW FIELDSSignal, vindu3RESCORESøk på arbeidsområdet
Lead-scoring viser aktive regler, rullevinduet og den positive eller negative scoreendringen hver regel gjelder.

AI-regelbyggeren kan gjøre en vanlig engelsk instruksjon til strukturert regel. Hver regel bør fortsatt gjennomgås før aktivering: bekrefte aktiviteten eller søkeordet, minstetalene, rullende vindu og scoreendringer

Positive og negative regler kan coexist. Bruk Rescore arbeidsområde Etter endringer i materialregelen, slik at eksisterende kontakter vurderes under den nye modellen. Poengene kan mate segmenter, ruten, prospektering og arbeidsflytforhold.

CRM

Salgslederboard

Leaderboard sammenligner representanter ved hjelp av kvoteutvinning, vunnet inntektsinntekt og åpen rørledning for den valgte måneden.

Produktskjerm
SalgslederboardDen månedlige ledertavlen ranger salgsrepresentanter mens du holder vunnet inntekt, provisjon og åpen rørledning synlig.SalgslederboardarbeidsflatePERIODJuliTEAM QUOTA82%VINNERkr118kLIV ARBETSPESSONEAmina104% kvote · £ 62k vant1st- Ja.88% kvote · £51k vant2ndTegn76% kvote · £43k vant3. @ item: inlistboxÅpne rørledning£ 312k på tvers av teamAnmeldelse1CHOOSE MONTHSammenlign en periode2CHECK QUOTAOpphold ved rep3COACHBruk rørledningskontekst
Den månedlige ledertavlen ranger salgsrepresentanter mens du holder vunnet inntekt, provisjon og åpen rørledning synlig.

Kvoteutvinning er meningsfull bare når hver representant har en gjeldende kvote og avtaler som har riktig eieren, beløpet, valutaen eller nær status. Bruk lederbrett for coaching and recognition, ikke som det eneste kvalitetsmål; par den med avtale helse-, aktivitets -og prognoser nøyaktighet.

CRM

Utdelingsgodkjenninger

Godkjenninger krever manager avmelding før høyverditilbud kan merkes vunnet.

Produktskjerm
UtdelingsgodkjenningerGodkjenningspolitikken definerer to verdigrenseverdier og køen viser avventende, godkjente eller forkastede beslutninger.UtdelingsgodkjenningerarbeidsflatePOLICYAktivertWAITING6OLDEST3hLIV ARBETSPESSONENivå 1Deals fra £10,000LederNivå 2Deals fra £50,000SeniorFornyelse av virksomhet£72,000 · etterspurt av BenVenterMigrasjonsprosjekt£18,500 · etterspurt av RitaGodkjent1SET THRESHOLDS0 Deaktiverer et nivå2REQUESTRep sender avtalen3DECIDELegg til eller avslå
Godkjenningspolitikken definerer to verdigrenseverdier og køen viser avventende, godkjente eller forkastede beslutninger.

Slå på policyen og sett nivå 1 og nivå 2 terskelverdier. En grense for 0 deaktiverer det nivået. Når en ikke-manager prøver å vinne et avtale på eller over terskelen, OpsIQ oppretter en godkjenningsforespørsel i stedet for stille å endre scenen.

Administratorer og fulle administratorer er ikke blokkert av retningslinjene. Hver beslutning bør beholde forespurneren, godkjenneren, tiden og grunn til revisjonsevnen.

CRM

Livsyklusregler

Livsyklusregler flytter automatisk kontakter mellom trinnene når de aktuelle dataene samsvarer med en lagret tilstand.

Produktskjerm
LivsyklusreglerLivsyklusregler vurderes etter prioritet; den første matchende regelen endrer kontaktstadiet.LivsyklusreglerarbeidsflateAKTIVT7RUNSNattligPRIORITYHøyeste førsteLIV ARBETSPESSONELeder → Kvalifisertscore ≥ 60 og nylig aktivitetPrioritet 100Kvalifisert → KundenKjøp hendelse eksistererPrioritet 90Kunden→I fareingen aktivitet i 60 -dagerPrioritet 70I fare →Ny kjøp eller svarPrioritet 601PICK STAGESFra og til2DEFINE FILTERSegment-stil JSON3ORDER RULESFørste kamp vinner
Livsyklusregler vurderes etter prioritet; den første matchende regelen endrer kontaktstadiet.

Hver regel har et kildetrinn, målstadium, aktivt flagg og filter i segmentstil. Den planlagte livssyklusen evaluerer høyere prioriteter først og stopper etter den første kampen for en kontakt.

Regler bør være gjensidig forståelige. Unngå to aktive regler som kan flytte samme kontakt i motsatt retning under det samme kjøret. Test filtrer mot et segment før du aktiverer den.

CRM

CRM-aktivitetsstrøm

Arbeidsplassaktiviteten kombinerer kunde- og driftsarrangementer slik at teamene kan undersøke hva som skjedde uten å åpne hver modul.

Produktskjerm
CRM-aktivitetAktivitetsstrømmen chatter, billett, e-post, webhook, konvertering og anomali hendelser med filtre og paginasjon.CRM-aktivitetarbeidsflateHendelser2,804CUSTOMERS1,126ANOMALIES14LIV ARBETSPESSONEChat løst[email protected] AIBillet svarteT-1048· Billing4mInnbundet hendelsesubscription.upgraded12mKonverteringBestill #7788 · £14919m1FILTEREvent og kunde2OPEN CONTEXTHopp til rekorden3PAGE RESULTSHolde undersøkelser avgrenset
Aktivitetsstrømmen chatter, billett, e-post, webhook, konvertering og anomali hendelser med filtre og paginasjon.

Filtrer etter hendelsestype, dato eller kontakt-eller kundetilstand (inkluderende betalende kunder). Feed er en lesemodell av registrert aktivitet; det erstatte ikke kildebilletten, samtalen, avtaleposten eller koblingslisten. Åpne den koblede rekord før du tar sensitiv handling.

CRM

Arbeidsflyter

Arbeidsflyter reagerer på en hendelse og kjører en bestilt rekke handlinger, inkludert forsinkede skritt som gjenopptas av kronen.

Produktskjerm
ArbeidsflyterEn arbeidsflytkjøring viser utløseren, fullførte handlinger og venteforsinkelse.ArbeidsflyterarbeidsflateAKTIVT9RUNNING42FALDET1LIV ARBETSPESSONEUtløsercontact.createdStartTrinn 1Send velkomst e-postFerdigForseinkingVent 2 -dagerVenterTrinn 2Lag salgsoppgaveNeste1CHOOSE TRIGGEREvent starter kjøringen2ORDER STEPSHandlinger og forsinkelser3MONITORFortsett gjennom kronen
En arbeidsflytkjøring viser utløseren, fullførte handlinger og venteforsinkelse.

Opprette en arbeidsflyt ved å velge utløseren, legge til trinn i rekkefølge og aktivere den. Forseninger lagres ikke av nettleserforespurningen; det enhetlige kronen gjenopptar duale arbeidsflyt kjører.

Innebyggede startmaler inkluderer velkomst etter registrering, postkjøp takk-du og demobekreftelse. Klone en mal, erstatte mottakere/innhold, deretter test med et kontrollert register før bred aktivering.

Designhandlinger som skal være idempown. En reprøv må ikke sende duplikat penger-bevegelser forespørsler eller opprette kopierte poster.

Støtte

Biljett

Billetter er din formelle støttekanal. De har avdelinger, prioriteringer, SLA-mål, vedleggsnotater og full samtaletråding. Tickets kan komme fra OpsIQ admin, billettskjema/embedsform, e-postinntak, chatteopptrapping eller API.

Biljett
BillettdetaljerEn billett med et meta sidepanel (prioritet, avdeling, SLA-status), samtaletråden og AI utkast til og refundere handlinger.BilletarbeidsflateT-12345PrioritetHøyAvdelingFaktureringSLA3h12m leftStatusÅpneJeg ble tiltalt to ganger for minabonnement på juni 3.AIBekreftet duplikatetgebyr, refusjonsbehandling.AI-utkast til svarRefunder1THREADEDFull samtale + notater2SLA & ROUTINGPrioritet, depte3AI DRAFTSvar skrevet for deg
Hver billett har sin prioritet, avdeling, SLA timer og full tråd. AI kan skrive svaret for deg.

Hvordan en billett flyter

1
Billetten kommer

En kunde sender en melding via e-post, chatteskalering, billettintegrering eller administratoren oppretter en. Biletten får en unik ID (f. eks. T-12345).

2
Sorter

AI leser emnet og kroppen, tildeler prioritet (Low/Normal / High/Urgent), foreslår en avdeling. Dette skjer automatisk hvis triage er aktivert.

3
Svar

En agent åpner billetten, leser konteksten (kundeprofiler, plattformdata fra kontakter og tidligere billetter) og skriver et svar. AI kan skrive svaret, samt Agentredigering før du sender det.

4
Lukk

Når problemet løses, stenger agenten billetten. Kunde varsles. Hvis kunden svarer etter å ha stengt, åpner billettene automatisk igjen.

Per-billetter

Endre avdeling

Flytt billetten til en annen avdeling (f. eks fra General to Billing). Nyttig når den første ruten var feil.

Tilordne agent

Tilordne billetten til et bestemt teammedlem Den tildelte agenten ser billetten i visningen «Mine billetter».

Legg til internt notat

Skriv en note som kun er synlig for ansatte. Bruk til: etterforskningsfunn, refusjon grunner, ingeniørkontekst, tidligere forpliktelser. Internnotasjon ser aldri ut til kundene.

Slå sammen billetter

Kombiner dupliserte billetter fra samme kunde. Det flettede billettemnet får en [MERGED] tag. Alle meldinger fra begge billetten er bevart i den overlevende billettet.

Canned respons

Sett inn en forhåndsskrevet svarmal. Variabler som {{customer_name}} og {{ticket_id}} blir automatisk erstattet.

omskriver

La AI forbedre utkastet ditt svar: justere tone, forkorte/lengte, fikse grammatikk eller oversette. Du anmelder resultatet før du sender det.

Endre prioritet

Sett til Lav, Normal, Høy eller Urgent. Prioritet påvirker SLA timere og sorteringsordre

Endre status

Sett til Å åpne, vente på og venter på Kunden eller er løst.

Arbeidt eksempel: håndtering av en ulykkelig kunde

E-post fra kunde: «Jeg ble belastet to ganger for abonnementet mitt»

Scenario:
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.
Hva skal jeg gjø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.

Avdelinger

Opprett avdelinger i innstillingene > Billetter> Avdelingskontor. Fellesavdeling: General, fakturering, Tekniske, Salg, Misbruk og Onboarding. Hver avdelingen kan ha ulike auto-reply regler, AI kunnskap og team oppdrag.

Innsjekket svar

Opprett gjenbrukbare svarmaler i innstillingene > Billetter> Canned-respons. Gode hermetiske reaksjonssvar inkluderer:

Eksempel hermetikkbelagt responsmal
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}}

Merger billetter

Når en kunde sender samme spørsmål flere ganger (via e-post og chat, eller to separate e-postadresser), kan du slå sammen kopiene. Gå til billetten, klikk Merge, velg den andre billett for å flette deg. Den overlevende billetten får alle meldingen fra begge billetter. Det fusjonerte emnet får et [MERGED] tag som indikerer at det ble kombinert.

Prioritet og SLA

Lav

Non-urgent questions, feature requests, general feedback. Target first response: 24 hours.

Normal

Standard support questions. Target first response: 8 hours.

Høy

Påvirkning av kundens virksomhet. Mål første respons: 4 _-timer

Haster

Tjeneste ned, sikkerhetshendelse, tap av data, faktureringsfeil. Mål første respons: 1 time

SLA-tidtakere starter når billetten opprettes, og stopper midlertidig når statusen er «Venter på kunde» Hvis SLA -målet ikke oppfylles, blir billetten uthevet og eventuelt eskalert.

Kan kunder se interne notater?+

Aldri. Interne notater er strengt ansatte-bare, de vises ikke i kundebilletten portalen eller epostvarslingene og noen kundevendte overflater.

Hva skjer når en lukket billett blir besvart?+

Billetten åpner automatisk og returneres til den aktive køen. Teamet er varsla om det nye svaret.

Kan jeg låse billett for å hindre ytterligere svar?+

Ja. Bruk alternativet Lås tråd for å hindre både kunde og AI fra å legge til nye svar. Nyttig i løste tvister eller stengt undersøkelser.

Støtte

Service Studio: SLA, statusstrøm og kvalitet

Kontrollrommet for hvordan din støtteoperasjon oppfører seg: SLA-policyer med eskaleringsstigere, kalendere fra virksomheten og driftstidene, en håndhevet statusstrømning, CSAT-innstillingene samt funksjonsbryterne. Åpne den fra billettsiden (knappen Service Studio i operasjonslinjen).

SLA-politikk

Hver ny billett får en første-reply og resolusjon tidsfrist fra den mest spesifikke aktive retningslinjen: avdeling + prioritet slår department, slå prioriteringen. Fristene pauser automatisk mens ein billett sitter i Venting eller På ventingen.

Escalation stiger

I stedet for en bruddhandling, kan det defineres opp til seks trinn: For eksempel advare utnevneren på 75% i vinduet, varsler på 100%, omsette til en navngitt agent på 150% Hvert trinn brann nøyaktig én gang per billett.

Forretningstimer og kalendere

Med arbeidstid på, SLA klokker bare brenne i løpet av arbejdstiden så en billett åpnes fredag kveld ikke brytes innen lørdag. Navngitt kalender (Tidssone, dager, timer og helligdager) kan være knyttet til individuelle retningslinjer for lag i ulike regioner.

Statusstrøm

En fra/til matrisebegrenser hvilken status endringsadministrasjoner kan gjøre, med en Zendesk-stil forhåndsinnstilling. Automasjonen, inngående epost og kundeorienterte billettsvar er alltid unntaket så en streng matrikse kan aldri jamne rørledningen. Valgfritt krever et godkjent avlogging før stenging.

Godkjenninger

Agenter ber om å logge av på billett (refundere over en terskel, policyunntak). En navngitt godkjenner eller enhver fulladministrator bestemmer med et notat; forespurnerne kan aldri godta sin egen anmodning. Ventar godkjenningsoverflaten som banner i innboksen.

Biljettforhold

Link billetter som relatert, duplisert eller foreldre/barnet eller blokkering; delt ut svar på en ny lenket billett (omvender fusjoneringen uten å e-poste kunden); følg billetter for i appvarsler og valgfritt CC følgere email adresser på outbound responder.

Levende innboks og kollisjoner

Med den sanntidsinnboksen aktivert, vil det vises nye billetter og svar for agenter innen få sekunder gjennom eksisterende varslingsstrøm. På en billett ser agentene hvem som ellers se på og får et advarselsbanner når lagkameraten allerede skriver ett spørsmål. En enkeltklikk-påstand tildeler billetten selv.

AI-medvitenskapelig rute

Ruteregler kan samsvare med AI triage signaler: prioritet, kategori, følelses- og eskalering risiko samt skrivne spesialfeltverdier fra portalen forespurn skjema. Regler ved bruk av disse betingelser holde sovende til funksjonen er aktivert.

💡
Alle selskapsbryterskip OFF. Slår på en i Service Studio → Kvalitet & Automation er opt-in; å la dem være av holder oppførselen identisk med før oppgraderinga.
Hvorfor kan en kunde fortsatt åpne opp til lukket billett når matrisen min forbyr stengt → åpen?+

Matrisen styrer kun ADMIN-handlinger. Kundeorienterte svar, epostsvar og automatisering er bevisst frigitt slik at en streng politikk aldri kan låse ut kunder eller bryte rørledningen.

Er det SLA-stiger som erstatter den gamle bruddhandlingen?+

Nei. Regler lagret med en enkelt bruddhandling fortsetter å fungere uendret. En stige erstatter bare den eneste handlingen på retningslinjer der du definerer trinnene.

Støtte

Billett autoreply og eskalering

Auto-reply lar AI reagere på nye billetter automatisk. Escalation flytter billetter til en annen avdeling når AI oppdager spesialiserte behov. Begge funksjonene fungerer over innfødte billett og epost opprettede billettar.

Autosvar
Automatisk svar på billetterEn flyt: ny billett, en to minutters forsinkelse, AI-svar fra kunnskap og kontekst. Deretter sendt eller lagret som et utkast.AutosvararbeidsflateNår en ny billett kommerNy billettenhver kildeForseinking2 minAI-svarKB + kontekstSendteller utkastHvis et menneske svarer under forsinkelsen, auto-reply kanselleres. Intenten kan eskalere til en annen avdeling først ;)1DELAYMennesker får første sjanse2AI REPLIESFra KB + sammenheng3OR ESCALATERute etter hensikt
Nye billetter får en kort forsinkelse (så mennesker kan hoppe inn), deretter et AI-svar fra kunnskapen din, sendt eller køet som utkast.

Hvordan auto-reply fungerer

1
Billet vises

En ny billett opprettes fra enhver kilde (email, chat, portal API).

2
Planlegg svar

OpsIQ Venter på den konfigurerte forsinkelsen (standard: 2 minutter). Dette gir menneskelige agenter en sjanse til å svare først.

3
Første svar vinner

Hvis en menneskelig agent svarer under forsinkelsen, automatisk-reply kanselleres. Dersom ikke genererer AI et svar.

4
Opprett og send

AI leser billetten, sjekker kunnskapsbase, kontaktkontekst og kundehistorikk. Deretter skriver vi et svar. Svaret sendes (eller blir køylagt som utkast til gjennomgang avhengig av innstillingene).

Hvordan eskalering virker

1
Konfigurere avdelinger

Sett hvilke avdelinger som kan motta eskalering (f. eks Billing kan eskaleres fra allmennheten, teknisk kan eskortes fra generell).

2
Klassifiser billetten

Før automatisk replying klassifiserer AI billetten til hensikt: fakturering, teknisk innholdsavgift og refusjon.

3
Flytt om nødvendig

Hvis billetten ikke samsvarer med en eskaleringsavdeling, flyttes billettene. En intern note forklarer hvorfor.

4
Opprett i ny stemme

Svaret genereres ved hjelp av destinasjonsavdelingens kunnskap og AI-trening.

Innstillinger referanse

Automatisk aktivert

Slå på for å aktivere AI automatisk reply til billetter.

Tillatte avdelinger

Hvilke avdelinger kan motta auto-replies. Start med lavrisikoavdeling (Generelt, Salg) før du aktiverer fakturering.

Forseinking

Hvor lang tid må man vente før AI-svarene (i sekunder). Standard: 120 sekunder (2minutter). Sett til0for øyeblikkelig svar.

Forsinkelsesplan

Velg forskjellig forsinkelser for arbeidstid vs. etter timer

Stopp på administratorsvar

Hvis en menneskelig agent svarer først, kansellere auto-reply. Standard: on

Escalation aktivert

Aktiver automatisk avdelingsruting basert på billett intensjon.

Escalation avdelinger

Hvilke billetter kan eskaleres til.

Eskaleringsstatus

Hvilken status skal angis når du eskalerer (f. eks, Åpne og venter).

Escalation Note

Om du skal legge til et internt notat som forklarer eskaleringsgrunnen.

E-postopprettede billetter

Billetter opprettet fra e-post (via postkassevalg eller MX piped levering) følger de samme automatiske og opptrappingsregler. AI svaret sendes som et svar på en email til kunden. E-postadresser går i kablene for gjennomgang hvis konfigureres.

Vil AI-en automatisk motta faktureringsspørsmål?+

Bare hvis du aktiverer automatisk for faktureringsavdelingen. Vi anbefaler at det starter med auto-reply off til fakturaering og gjør det mulig først etter å ha utdannet AI med omfattende fakturering kunnskap og testet grundig.

Hva om AI gir et feil svar?+

Hvis en kunde svarer at svaret var galt, bør et menneske intervenere. Gjennomgang AI-historien for å forstå hvorfor AI ga feil svar og deretter oppdatere kunnskapsbasen eller AI trening som hindrer det i å skje igjen.

Kan jeg se på autoreplies før de sendes?+

Ja. Angi leveringsmodusen til Kladd i stedet for Automatisk sending. Kladder med automatiske svar vises i kladdkøen, slik at de kan gjennomgås av en person før de sendes.

Støtte

Billettportalen er innpakket

Billettportalen embed lar deg legge til et billettstyringsgrensesnitt på alle nettsteder. Kundene kan se sine billetter, opprette nye og svare alt uten å gå inn OpsIQ administrator.

Hvordan det fungerer
Billettportalen er innpakketEn støtteportal som er innebygd på et nettsted og viser en kunde sine egne billetter, samt nybilletter.yoursite.com/supportStøttesenterNy billettDine TICKETS#1042 · Refundering spørsmålÅpne#1038 · KonfigurasjonshjelpLøst#1031 · FakturakopiVenter1EMBEDLegg til i ethvert nettsted2SELF-SERVEKundene ser billetter3NO LOGINIdentifikasjon håndtert sikkert
Billettportalen er innpakket

Tre embed smaker

Innvevd

Gjengivelse av billettportalen i en div på siden din. Portalen tar den fulle bredden til beholderen sin.

Flytende widget

Viser en flytende knapp som åpner billettportalen i et panel. Lignende til chat widget.

Autentisk

Krever en signert identitet token. Kundene ser bare sine egne billetter.

Installasjon

Billetten embed bunk
<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>

Generasjon av identitetssymbol

For authenticated mode, your server must generate a signed identity token. This token tells OpsIQ who the customer is so they see only their own tickets.

PHP · generere 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 krok · identitetstoken
// 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, generere 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;
}

Widget-funksjoner

Billettliste

Søkbar, statusfiltrert liste. En "Venter på deg"-markering markerer billetter teamet har besvart.

Trådet samtale

Full samtalevisning med rik tekst, vedlegg og tidsstempler.

Utkast til autobesparende

Kundeutkast er automatisk utlevert, slik at de ikke mister jobben hvis det navigerer bort.

Live- avstemning

Vector-målingene for nye svar hvert ~12 sekunder.

Løs / gjenåpne

Kundene kan løse eller åpne sine egne billetter med ett klikk.

Interne medarbeidere er aldri vist til kunder i billetten embed. Dette er en hard sikkerhetsgrense.
Støtte

Chat innboks

Chat Inbox er der teamet ditt administrerer live kundesamtaler. Det viser aktive chatter, tildelte samtaler, AI-håndledde prater og arkivert historie.

Chat innboks
Chat innboksEn tre-panne agent chat innboks: samtaleliste, live samtalen med en AI utkast chip og et besøkende /CRM kontekstpanel.Chat innboksarbeidsflateJDJane.Hvor er min ordreMOMensahCity in TunisiafaktureringsspørsmålRTTegnAI-håndteringHvor er ordren min?Sendt i dag · UPSAI-utkast klarSvar...VisitorJane DoeUSA · Chrome3 tidligere bestillingerLTV$480CRMSteg: Kunden1UNIFIEDHver live chat2CONTEXTBesøker + CRM-panel3AI ASSISTUtkast til omskriving
En innboks for hver live chat, samtaleliste, tråden med AI-utkast på trykk og full besøkende + CRM kontekst.

Håndtere samtaler

Aktive chatter

Samtaler som er i gang. Grønn prikk = kunde skriver eller nylig aktiv.

AI-håndtert

Samtaler der AI svarer. Du kan ta over når som helst ved å klikke på "Bli med."

Tildelt meg

Samtaler som er tildelt deg spesielt.

Venter

Samtaler hvor kunden venter på svar.

Arkiv

Ferdige samtaler. Søker etter søkeord, dato og kunde

Avgift fra AI til menneske

Når du tar over en samtale fra AI, følg disse tre reglene:

1
Velkomst personlig

Introduser deg selv ved navn. "Hei, dette er Sarah fra kundestøtteteamet."

2
Referansesammenheng

Vis at du har lest samtalen. «Jeg ser at du spurte om bestillingsstatusen din.»

3
Sett forventninger

Fortell kunden hva som skjer neste. - Jeg ser på dette nå og vil ha et svar for deg om noen minutter

Slår av/på AI per samtale

Bruk AI-bryteren øverst i hver samtale. Når AI er på, genereres svarene. Hvis av kan bare menneskelige agenter svare. AIL husker samtalekontekst selv når de slås av og tilbake på.

Bortmodus / ut av timer

Konfigurer åpningstider i Innstillinger. Utenfor åpningstiden kan AI: (1) Fortsett å svare på kunder, (2) Vis en "borte" -melding og opprett en billett for oppfølging, eller (3) Deaktiver chat helt og vis billettskjemaet.Velg oppførselen som passer din supportmodell.

Håndtere tøffe samtaler

1
Hold deg rolig

Ikke match kundens emosjonelle intensitet. Erkjenne frustrasjonen uten å være defensiv.

2
Samle fakta

Før du svarer, samle inn relevant informasjon: bestillingsdetaljer, kontostatus og tidligere billetter.

3
Escalate tidlig

Hvis situasjonen innebærer refusjon, juridiske trusler eller misbruk eskaler til et senior teammedlem i stedet for å prøve å håndtere det alene.

Kan jeg få lagchatt (agent til agent)?+

Ja. Bruk interne notater i en samtale for å kommunisere med andre agenter, og disse noter er aldri synlige for kunden.

Hva skjer når jeg lukker en chat?+

Samtalen beveger seg til Arkivet. Hvis kunden sender en ny melding senere, opprettes det nye samtalen.

Støtte

Meldingskanaler

Koble WhatsApp, Facebook Messenger, Instagram DM, Telegram og LINE slik at meldingene kunder allerede sender deg ankommer i samme innboks som din nettside chatten, svarte av den samme AI-assistenten.

Hver kanal oppfører seg identisk når den er koblet til: en kundemelding blir en samtale i Chatt-innboksen, svarer AI assistenten det ved hjelp av samme kunnskap og instruksjoner som din nettside chatten. Alle agentene kan ta over. Ingenting om ditt kunstige behov konfigurering per kanal.

Hvordan å koble til ser ut

Facebook Messenger & Instagram

Et klikk. Åpne kontaktpersoner → Facebook Messenger & Instagram DM, Klikk på Koble til og logg inn med den Facebook-kontoen som administrerer siden din, og velg Siden. Instagram kommer med det når siden har en Instagram profesjonell konto koblet sammen.

WhatsApp

Et klikk der leverandøren tilbyr det: åpne meldingshub-kontakt og bruk Connect WhatsApp, følg deretter Meta's guidede registrering for å plukke eller opprette WhatSapp Business nummer. Ellers lime inn legitimasjoner fra noen av 20 gateways.

Telegram

Two minutes. Message @BotFather in Telegram, send /newbot, choose a name and a username ending in "bot", and paste the token it gives you into the Telegram connector. OpsIQ registers the webhook for you.

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

Legg til en leverandør (Twilio, Vonage, Termi og andre) i meldingshub med sine legitimasjoner og avsendernummer.

Hver kontakt viser sine egne trinnvis instruksjoner inne i skuffen, inkludert nøyaktig hva du skal kopiere og hvor. Du trenger aldri utviklerinformasjon for one-click alternativene.

Slår på en kanal

Koble til en kanal starter den ikke. Gå til Settings → Client Chat → Advanced → Messaging Channels, slå på master-bryteren og deretter den enkelte kanalen. Hver kanal har sin egen AI autoreply bryter så du kan pilote på en før å åpne resten.

1
Koble kanalen

I konnektorer, ved hjelp av instruksjonene i den koblingens skuffe.

2
Test tilkoblingen

Klikk Test. Det gjør en ekte samtale til leverandøren og forteller deg hva som er galt hvis noe er det.

3
Aktiver meldingskanaler

Innstillinger→Kunde Chat→Avansert. Slå på masterbryteren, deretter kanalen.

4
Send deg en melding

Fra en annen konto, be om melding med siden din eller nummeret ditt. Den bør vises i Chat Inbox innen få sekunder og få et AI-svar.

Svar på vinduer

Meldingsplattformer begrenser hvor lenge en virksomhet kan svare etter at kunden skriver.OpsIQviser den gjenværende tiden på hver samtale og håndhever regelen for deg.

WhatsApp

24 hours from the customer's last message. After that you may only send an approved template, which you configure in the same Advanced tab.

Messenger & Instagram

24timer for normale svar; agenter kan svare opp til7Dager senere under Meta’s human-agent støtte.

Telegram, LINJE

Ingen plattform-imponert vindu.

⚠️
Hvis et svar mislykkes fordi vinduet stengt, viser samtalen hvorfor. Dette er en plattformregel ikke en OpsIQ -grense.

Vanlige spørsmål

Ser du at en AI-konto er svart?+

Bare hvis du forteller dem. Svaret kommer fra siden, nummer eller bot nøyaktig som et menneskelig svar ville. Din AI-instruksjoner kontrollerer tonen og om det identifiserer seg selv.

Kan en agent ta over midtkonversasjon?+

Ja. Åpne samtalen i Chat Inbox og klikk Bli med. AI stopper, skriver du inn, og kunden ser en kontinuerlig tråd på deres side.

Hva om jeg kobler fra en kanal?+

Bruk Koble til i kontakt. Meldingshistorikken holdes; nye meldinger slutter bare å ankomme, og plattformen blir fortalt at du skal slutte å sende dem.

Kan to arbeidsplasser bruke samme Facebook-side?+

Nei. En side tilhører ett arbeidsområde om gangen. Koble den til et annet sted flytter det, og det første arbeidsområdet slutter å motta meldinger, så koble av bevisst i stedet for gjenkobling andre steder.

Støtte

Ekte chat samtaler

Disse eksemplene viser hvordan en velutdannet kunde AI bør håndtere vanlige scenarier. Bruk dem til å teste din AI-trening og identifisere hull.

10 samtaleeksempler

1. Returnerer kunden spør om bestilling

Scenario:
Customer: Hi, I placed an order 3 days ago and haven't received any shipping notification yet. Order #ORD-5523.
Hva skal jeg gjøre:

AI bør: (1) Se opp bestilling #ORD-5523 gjennom koblingen.2) Rapporter gjeldende status og sporingsinformasjon om tilgjengelig. (3) Hvis ordren er forsinket, kan du bekrefte forsinkelse og gi en beregnet tidslinje. (4) Ikke oppfinn en fraktstatus dersom kontakten ikke har én.

2. Prospect spør om priser

Scenario:
Customer: How much does your Pro plan cost? Do you offer annual billing?
Hva skal jeg gjøre:

The AI should: (1) Answer from the knowledge base with current pricing. (2) Explain the difference between monthly and annual billing. (3) If the answer is not in the knowledge base, say so and offer to connect them with sales. (4) Do NOT invent pricing that is not in the knowledge base.

3. Angry kunder som krever refusjon

Scenario:
Customer: This is ridiculous! Your product does not work and I want my money back NOW.
Hva skal jeg gjøre:

AI bør: (1«Kjenner frustrasjonen rolig.»2) Be om bestillingsnummer eller konto e-post. (3Forklar tilbakebetalingsprosessen. (4) Opprette en støttebillett eller eskalere til et menneske. (5Ikke lov en refusjon, det krever menneskelig godkjenning.

4. Dobbelt fakturering kant saken

Scenario:
Customer: I was charged twice this month. My bank shows two charges of $29.99.
Hva skal jeg gjøre:

AI bør: (1) erkjenne bekymringen. (2) Samle de relevante detaljene (email, datoer for avgifter).3Forklar at faktureringsproblemer krever menneskelig gjennomgang. (4) Opprette en billett fra faktureringsavdelingen med detaljene. (5Sett prioritet til høy.

5. Flerspråklig kunde

Scenario:
Customer: Bonjour, je voudrais savoir si vous livrez en France?
Hva skal jeg gjøre:

The AI should: (1) Respond in the customer's language if that language is supported. (2) Answer the question about delivery to France from the knowledge base. (3) If the language is not supported, respond in the default language and mention which languages are available.

6. Etter timers samtale

Scenario:
Customer: Hello, is anyone there? I need help with my account.
Hva skal jeg gjøre:

AI bør: (1) Hvis konfigurert for etter-time AI, svare og hjelpe. (2) Hvis det opprettes billetter etter kontortid, sier du: "Vårt team er for øyeblikket frakoblet. Jeg har opprettet en støttebillett for deg og noen vil følge opp i arbeidstiden."3) Oppgi billettnummeret.

7. Forkjøpssammenligningsbutikk

Scenario:
Customer: How does your product compare to [Competitor X]?
Hva skal jeg gjøre:

The AI should: (1) Describe your product's strengths factually. (2) Do NOT badmouth the competitor. (3) If there is a comparison page in the knowledge base, link to it. (4) If the customer asks about features you do not have, be honest.

8. Kunden ønsker en anbefaling

Scenario:
Customer: I run a small online store with about 100 orders per month. Which plan is right for me?
Hva skal jeg gjøre:

The AI should: (1) Ask clarifying questions if needed (e.g., what features matter most). (2) Recommend a plan based on the knowledge base. (3) Explain why that plan fits their needs. (4) Mention that they can start with a smaller plan and upgrade later.

9Kunden prøver å få en uautorisert rabatt

Scenario:
Customer: I saw online that you give 50% discounts. Can I have one?
Hva skal jeg gjøre:

AI bør: (1) Forklare aktuelle kampanjer om noen eksisterer. (2Ikke lag eller lov rabatter som ikke er i kunnskapsgrunnlaget. (3) Hvis kunden vedvarer, tilby å koble dem med salgsteamet.

10. Kunden trenger hjelp med en funksjon

Scenario:
Customer: How do I export my data? I can't find the export button.
Hva skal jeg gjøre:

AI bør: (1) Gi trinnvis instruksjoner fra kunnskapsgrunnlaget. (2) Inkluder den nøyaktige sidestien og knappplassering. (3Hvis funksjonen krever en bestemt plan, nevne det. (4Hvis funksjonen ikke eksisterer, vær ærlig og foreslå alternativer.

Støtte

Chat routing og eskalering

Når en live chat trenger en ekte person, svarer AI to spørsmål: hvilket team eier denne samtalen og hvem som bør fortelles. Begge er konfigurert i Innstillinger, klient Chat, Support Flow under AI routing avdelingar.

Velg hvilke avdelinger AI kan bruke

De to boksene på panelet er en hvitliste. Avdelinger som flyttes til høyre, er de eneste AI kan rute inn eller åpne billetter i. Alt venstresiden av den er usynlig for det, selv om avdelingen eksisterer og bemannas. Start smalt og legg til departement når du ansatte dem.

💡
Hvis ingen avdeling er aktivert i det hele tatt, faller OpsIQ tilbake til arveruting over alle avdelingene den kan finne. Behandle at som et sikkerhetsnett ikke en konfigurasjonsvalg.

Hvem får eskaleringen

Dette er den delen de fleste forventer å konfigurere og ikke trenger. Når AI eskalerer en chat, OpsIQ -Emails folk knyttet til det avdelingen. Du administrerer listen én gang på siden Team and Departments, samt både billettopptrapping og chattut stigning følger etter det.

Departementets medlemmer

Hver aktiv administrator som er tilknyttet avdelingen får sin egen kopi. Suspendert og funksjonshemmede kontoer hoppes over.

Primær admin

Brukes når ingen lagmedlemmer er tilknyttet, så en eskalering nås fortsatt noen.

Ingen vedlagt

Levering er ikke mulig. Rutepanelet merker at avdeling i rødt og AI forteller besøkende et menneske ble varslet om det.

⚠️
En avdelings egen e-postadresse brukes ikke bevisst som mottakeren. Den adressen er avdelingens inngående billettpostkasse, den ene inngangen post matches mot å åpne billetter. Et oppgradering sendt det ville bli pipet tilbake i som ny billett snarere enn når et menneske.

Fangst-alle avdelingen

Akkurat én avdeling bærer catch-all mark. Det mottar chatter AI ikke trygt sted, og det er en siste feriested i stedet for normal stien.

1
Klare signaler vinner

Billing formulering går til en faktureringsavdeling, hosting og feilformulering til et teknisk nummer, kjøpe ordlyden på salg.

2
AI-klassifiseringslederen prøver neste

Hvis søkeord er ufullstendig, leser modellen samtalen og plukker fra de aktiverte avdelingene.

3
Så er det alle som tar

Bare når begge kommer opp tom får catch-all avdelingen samtalen.

4
Salgsvakten

Hvis catch-all er en salgsavdeling og besøkende ikke viste noen kjøpesignal, OpsIQ leter etter støtte eller teknisk avdeling i stedet så vanlige supportspørsmål samles ikke opp i Salg.

Hva besøkende får beskjed om

Hvis e-posten går ut, forteller AI den besøkende at laget har blitt varslet. Dersom det ikke kan gå ut, sier AI noe ærlig og inviterer dem til å forlate melding i chatten i stedet. Det vil ikke hevde et menneske ble varsling når ingen email er sendt.

Panelet sier "Ingen å varsle" for en avdeling+

Ingen er knyttet til det. Åpne team og avdelinger, vedføye minst én aktiv administrator, deretter laste innstillingssiden på nytt. Panelet leser live.

Kan chatteopptrappinger gå et annet sted enn teamet?+

Ja. En egendefinert adresse som tidligere har blitt lagret for et avdelingsland, overgår fremdeles laglistene. Nye oppsett bør legge folk til i avdelingen i stedet så det er ett sted å vedlikeholda.

Hvorfor ble alle mine grep hoppet?+

Sjekk om det er en salgsavdeling. Hvis den er, og besøkende ikke viste noe kjøpesignal, OpsIQ ruter til et støtte- eller teknisk avdeling med hensikt.

Støtte

E-postbokser og utkast

OpsIQ kan koble til e-postkasser for å automatisk opprette billetter fra innkommende email og sende svar som e-postadresse. Det gir også AI-utformede svar på menneskelig gjennomgang.

E-post
E-post til billettEn IMAP -postkasse til venstre som mater innkommende emails i en gjenget billett med et AI-utgitt svar på høyre.E-postarbeidsflate[email protected] · IMAPRefundering[email protected]Kan ikke logge inn[email protected]Fakturakopi[email protected]billett #1042fra e-post · BillingJeg vil ha en refusjon forDuplisert ladning...AI-utkastReview & Send svar1INGESTIMAP /videresending i2TO TICKETSTrådet automatisk3AI DRAFTSSvar på anmeldelse
Trekk e-post inn IMAP (eller videresending), gjøre hver til en gjenget billett, og la AI-en skrive svaret for gjennomgang.

Koble til en postboks

Protokoll

IMAP (de fleste leverandører), Gmail API (Google Workspace) eller Microsoft Graph 365).

Innstillinger som trengs

Vert, port og kryptering SSL/TLS), brukernavn, passord eller apppassord (vanligvis INBOX).

Avdelingskartlegging

Tilordne postboksen til en billettavdeling. E-poster til [email protected] oppretter billetter i "Support" -avdelingen.

Gmail-oppsett (stegvis)

1
Aktiver 2-Step Verifisering

Gå til Google-konto > Sikkerhet > 2_Step Verifisering og aktiver den.

2
Opprette et apppassord

Gå til Google-konto > Sikkerhet > Apppassord. Velg E-post og Annet (OpsIQ Kopier teksten 16-tegn passord.

3
Enter inOpsIQ

Gå til e-post > Postbøker> Legg til. Sett vert: imap.gmail.com, port: 993, kryptering: SSL, brukernavn: [email protected], passord: app-passordet.

4
Test

Klikk Testtilkobling. Hvis vellykket, OpsIQ vil begynne å polling for nye e-poster på det konfigurerte intervallet.

Outlook 365 -oppsett

1
Sjekk IMAP er aktivert

I Outlook-innstillinger > Epost> Synkroniser email, forsikre IMAP er aktivert.

2
Bruk apppassord eller moderne aut

Hvis MFA er aktivert, kan du opprette et apppassord. Ellers bruker du det vanlige passordet ditt.

3
Enter inOpsIQ

Vært: outlook.office365.com, port: 993, kryptering: SSL, brukernavn: [email protected].

cPanel -webmailoppsett

1
Finn IMAP innstillinger

I cPanel > E-postkontoer, klikk på epostadressen din for IMAP innstillinger.

2
Enter inOpsIQ

Vært: vanligvis mail.yourdomain.com eller din serverens vertsnavn, port: 993 (SSL) eller 143 (STARTLS), brukernavn: full e-postadresse.

AI e-postutkast

Når autosvar er satt til kladdemodus, genererer kunstig intelligens kladder som vises i kladdkøen.

Anmeldelse

Les utkastet og sjekk for nøyaktighet.

Rediger

Endre tekst, tone eller innhold før du sender.

Send

Legg til utkastet og send det som et e-postsvar.

Forkast

Slett utkastet hvis det ikke er passende.

Autosend

Hvis tilliten er høy nok og auto-send er aktivert, sendes utkast automatisk etter en konfigurerbar forsinkelse.

Hvorfor blir ikke e-poster konvertert til billetter?+

Sjekk: (1) Er postkassen tilkoblet og sunt? Se etter grønn status i e-postmeldinger. (2) Er kronejobben i gang? E-postvalg krever cron. (3) blir e-posten filtrert eller flyttet til en annen mappe enn INBOX?

Kan jeg bruke flere postkasser?+

Hver postkasse kan kartlegges til en annen avdeling. [email protected] Gå til støtte, [email protected] Går til Billing.

Støtte

Kundetilfredshet (CSAT)

CSAT måler billett og chattilfredshet, overflater ulykkelige svar og sammenligner AI-og menneskelige resultater.

Produktskjerm
KundetilfredshetCSAT siden kombinerer scorekort, detractor oppfølgingen, kommentarer, avdeling og agent innlegg samt Chat tilbakemeldinger.KundetilfredshetarbeidsflateRESPONSER386AVERAGE4.6POSITIVE91%LIV ARBETSPESSONEDetractor-oppfølging12 svar rangert1–2AnmeldelseBillettundersøkelserSendt 24h etter avslutningAutomatiskChat tilbakemeldingerAI 4.5 · Menneskelig 4.7SammenlignAgentvisningPoeng og responstallTrener1WATCH AVERAGEBruk trend, ikke én poeng2FOLLOW DETRACTORSLes kommentaren3COMPARE FAIRLYAI og menneske
CSAT siden kombinerer scorekort, detractor oppfølgingen, kommentarer, avdeling og agent innlegg samt Chat tilbakemeldinger.

Billettundersøkelser er planlagt etter avslutning (normalt 24 timer senere). En positiv respons er en score på4eller 5. Bruk detractor køen for poeng av 1 eller2Les billetten/konversasjonen før du kontakter kunden.

Chat tilbakemeldinger er rapportert separat for AI-oppløste og menneskehåndterte samtaler. Lav prøvestørrelser bør ikke brukes til å rangere agent eller modeller.

Støtte

Lag e-postsendinger

Siden e-postplattform lar en autorisert operatør sende éngangsmelding til alle aktive agenter, valgte agenter eller et avdelingskontor og gjennomgåelse sender historie.

Produktskjerm
E-postplattformTeamet e-postkomponist viser publikum, emne og meldinger.E-postplattformarbeidsflateREVELCAS12DELIVERED11FALDET1LIV ARBETSPESSONEPublikumAlle aktive midlerVelgEmneJuli støtte rotaKlarMeldingPlanlegg og eskaler notateneKlarHistorieTidligere sendinger og resultatVis1CHOOSE PEOPLEAlle, valgte eller lag2WRITE CLEARLYEmne og melding3REVIEW HISTORYBekreft utfall
Teamet e-postkomponist viser publikum, emne og meldinger.

Denne siden er for interne driftsmeldinger, ikke kundemarkedsføring. Velg det minste riktige publikumet som vises i forhåndsvisningen og adressene så send. Levering bruker konfigurert utgående e-poststi og registrerer resultatet.

Støtte

Postbokser, levering og inngående e-post

Konfigurer hvordan OpsIQ sender e-post, gjør inngående meldinger til billetter og beviser at sendedomenet er klart.

Produktskjerm
E-postinnstillingerE-postinnstillinger kombinerer utgående rute, Fra identiteten til postkasseinntaket og leveringskontrollene samt teste email.E-postinnstillingerarbeidsflateUteboundSMTPMAILBOXES3DOMENEPassLIV ARBETSPESSONEForetrukne kontaktSMTP / leverandørkontaktKonfigurertFra identitetSupport <[email protected]>KlarIMAP postkasse[email protected]· INBOXAvstemningLeverbarhetSPF · DKIMPass1CHOOSE OUTBOUNDKoble eller SMTP2CONNECT INBOXIMAP eller rør3TESTSend og verifiser
E-postinnstillinger kombinerer utgående rute, Fra identiteten til postkasseinntaket og leveringskontrollene samt teste email.

Utgående e-post

Fulle administratorer kan velge den foretrukne e-postkontakten; OpsIQ tilbake til konfigurert SMTP/mail levering når det er nødvendig. Velg gjenkjennelig Fra navn/adresse, send en test og sjekk den 24-timers suksess/feilmålinger.

Postbokser

En IMAP -postkasse trenger et navn, email adresse, målavdelingen, vertsland, sikkerhetsmodus, brukernavn, passord, mappen, valg av pollingtilstand og sertifikatvalidering. Bruk Poll nå å verifisere inntaket før du venter på kron.

Øyeblikkelig piping

På samme server kan et e-postrør passere den rå RFC822-meldingen direkte. En ekstern postserver kan POSTere det røynslesignalet til beskyttet inngående endepunkt ved hjelp av sin tokn. Begge stiene går i samme deduplikasjon, tråding og billettrutende rørledning.

Leverbarhet

SPF/DKIM / DMARC-kontrollen er rådgivningsbevis for det konfigurerte domenet. En grønn sjekk garanterer ikke plassering i innboksen, men en feil bør fikses før du sender produksjonsmeldinger.

Støtte

Støtteportal Studio

Støtte Portal Studio designer og publiserer kundestøtteopplevelsen uten å kreve eksterne bilderessurser.

Produktskjerm
Støtteportal StudioPortal Studio viser en responsiv forhåndsvisning sammen med tema, navigasjon og kunnskaper om billett, assistent, skjema. CSS kontroller.Støtteportal StudioarbeidsflateTEMPLATEModerneForespørselSkrivebordStatensUtkastLIV ARBETSPESSONETemaMerkefarger og typografiRedigerNavigasjonKunnskap, billetterRedigerBillettskjemaFelter, routing og kopiRedigerPubliserValider og lag liveAnmeldelse1CHOOSE TEMPLATEStart fra strukturen2PREVIEW SIZESSkrivebord til mobil3PUBLISH SAFELYReview deretter utgivelse
Portal Studio viser en responsiv forhåndsvisning sammen med tema, navigasjon og kunnskaper om billett, assistent, skjema. CSS kontroller.

Bruk malen som utgangspunkt, deretter konfigurere tema, layout, navigasjon, kunnskapssøk, billettskjema, assisterende, bunntekster, merkevare, billettsadferd CSS og generelle innstillinger. Forhåndsvisning av skrivebord, nettbrett og mobil før publisering.

Støtte

Kunnskapsgap

Kunnskaps-gap køen samler kundespørsmål som AI ikke kan svare trygt på, slik at teamet kan forbedre dekning.

Produktskjerm
KunnskapsgapGap kø ranger misset eller lav tillit spørsmål og spor om team har løst dem.KunnskapsgaparbeidsflateOPEN GAPS28REPEATED9RESOLVED116LIV ARBETSPESSONEMigrasjonsgrenseneSpør 14 gangerHøyStøtte i helgenSpør 8 gangerMiddelsRefunderingstidSpør 6 gangerMiddelsAPI regionenSpør 3 gangerLav1REVIEW QUESTIONSe konversasjon2CHOOSE FIXArtikkel eller rask3RESOLVEBekreft neste svar
Gap kø ranger misset eller lav tillit spørsmål og spor om team har løst dem.

Åpne et gap for å lese det opprinnelige spørsmålet og den nærliggende samtalen, deretter velge riktig fikse: oppdater en eksisterende artikkel opprett en ny kunnskapsartikkel . Legg til et forretningsfakt ; korrekt kontaktdata eller endre eskaleringsinstruksjoner ] Merk at dette bare løst etter vurdering eller reell test gir ett akseptert svar

Støtte

Statussideadministrasjon

Statusadministrasjonssiden kommuniserer tjenestehelse og hendelser ved hjelp av komponenter, aktuelle stater og oppdateringer.

Produktskjerm
StatusadministrasjonStatusadministrasjon lister komponenter og hendelser slik at operatører kan publisere klar, tidsforsterket serviceinformasjon.StatusadministrasjonarbeidsflateOVERALLOperasjonellKOMPONENTER7INCIDENTS1LIV ARBETSPESSONENettstedOperasjonellGrønnAPINedgradert ytelseSeE-post inntakOperasjonellGrønnNåværende hendelseAPI latensundersøkelseÅpne1UPDATE COMPONENTVelg klar tilstand2POST INCIDENTTidsstemplede oppdateringer3RESOLVENært med sammendrag
Statusadministrasjon lister komponenter og hendelser slik at operatører kan publisere klar, tidsforsterket serviceinformasjon.

Bruk komponenttilstander konsekvent. Når en hendelse påvirker kunder, publisere et første varsel, legg til tidsforsterkede oppdateringer som fakta endres og i nærheten av ett koncist oppløsning sammendrag. Ikke bruk statussiden som intern feilsøkingslogg; sensitiv diagnostikk tilhører i OpsIQ og serverlogger.

AI

Sett opp din AI

AI Configuration er der du velger din AI-leverandør, modell og kostnadskontroll. OpsIQ støtter flere leverandører: Claude (Anthropic), GPT-4o (OpenAI), Gemini (Google) og Grok (xAI). Du kan bruke din egen API nøkkel (BYOK) eller administrert AI hvis tilgjengelig på planen din.

Sett opp AI
AI-konfigurasjonEt AI innstillingspanel: en Managed-AI / BYOK leverandøren bytter, en modellvelger og et månedlig token-budsjettmåler.AI-konfigurasjonarbeidsflateAI-konfigurasjonLeverandørAdministrert AINøkkelen din (BYOK)Modellclaude · balansertMånedlig AI budsjett62%1TWO MODESAdministrert AI eller BYOK2PICK A MODELHastighet vs dybde3BUDGETSToken caps & kostnadskontroll
Velg Managed AI eller din egen nøkkel, velg en modell for hastighet vs dybde og cap månedlig bruk med et token budsjetter.

Velge leverandør

Claude (Anthropic)

Sterk resonnement, forsiktig med fakta, god til å følge komplekse instruksjoner. modeller: claude-sonnet -4-20250514, claude-3.5-sonnet. Best for: støtte samtaler, tekniske spørsmål og detaljert analyse

GPT-4o (OpenAI)

Rask, kreativ og god generell kunnskap. Modeller: gpt-4o ; gp- 4O - mini · Best for : raske svar, kreativ skriving

Gemini(Google)

God på faktaspørsmål, støtte for flerspråklige. Modeller:gemini-2.0-Flash,gemini-1.5-pro. Beste for: flerspråklig støtte, faktiske oppslag.

Gul (xAI)

Raske, konsistente svar. Modeller: grok-3-mini-fast. Best for: raske svar, casual tone

BYOK vs Administrert AI

BYOK (Bring din egen nøkkel)

Du gir din egen API -nøkkel fra leverandøren. Du betaler tilbyder direkte. Full kontroll over modellvalg og bruk.

Administrert AI

AI leveres som en del av din OpsIQ Plan. Nei API Nøkkel nødvendig. Bruken måles mot planen din AI kreditt saldo.

Trinn-for -stegoppsett

1
Gå til AI-konfigurasjon

I OpsIQ admin, naviger til Innstillinger > AI-konfigurasjon.

2
Velg leverandør

Velg din AI-leverandør fra nedtrekksboksen.

3
Skriv inn API nøkkel

Hvis du bruker BYOK Skriv inn din API Nøkkel. For Administrert AI, dette håndteres automatisk.

4
Velg modell

Velg den spesifikke modellen å bruke. Mindre modeller er raskere og billigere. Større modeller gir bedre kvalitet svar.

5
Testtilkobling

Trykk « Test tilkobling » for å bekrefte at API -nøkkelen og -modellen fungerer. En grønn hake betyr vellykket.

6
Lagre

Klikk på Lagre for å aktivere din AI-konfigurasjon.

Kostnadskontroll

Månedlig budsjett

Sett en maksimal månedlig bruk på AI-tokens. Når budsjettet er nådd, har AI graciøst nedgradering (kortere svar uten auto reply) i stedet for å stoppe helt.

Per konversasjon token grense

Maksimale polletter per enkelt samtale. Forhindrer løpende samtaler fra å konsumere overdreven kreditt.

Lav balansevarsel

Når din AI kredittsaldo synker under terskelen (standard: 50,000 en advarsel vises i administratoren. Velg dette under AI- konfigurasjon.

Konfigurasjon av per arbeidsrom

AI-konfigurasjonen er per arbeidsrom. Hvis du administrerer flere nettsteder, kan hver arbeidsområde bruke en annen leverandør og modell eller budsjett. Arbeidsområdet arver globale standard med mindre overstyrt. For å konfigurere hvert arbeidsområde: bytte til arbeidsområdet, gå så til AI konfigurasjon og lagre innstillingene der.

Hente API nøkler

Anthropic(Claude)

Gå til console.anthropic.com > API Taster > Opprett nøkkel. Kopier nøkkelen som begynner med "sk- an-".

OpenAI(GPT)

Gå til platform.openai.com > API Taster > Lag ny hemmelig nøkkel. Kopier nøkkelen som begynner med « sk- ».

Google (Gemini)

Gå til aistudio.google.com > Få API Nøkkel. Opprett en nøkkel for prosjektet ditt. Kopier nøkkelen.

xAI (Grekk)

Gå til console.x.ai > API Opprett og kopier nøkkelen din.

Testing av AI-oppsett

Scenario:
After entering your API key, click "Test connection." You should see a green checkmark and a sample response from the AI.
Hva skal jeg gjøre:

Hvis testen ikke lykkes: (1) Sjekk at API Nøkkelen er riktig (ingen ekstra plasser).2) Sjekk at kontoen din har fakturering satt opp med leverandøren. (3Kontroller at modellens navn er gyldig. (4), Hvis du bruker Managed AI, bekrefter lisens er aktiv.

Hvilken leverandør er best?+

Det er ingen enkelt beste leverandør. Claude er utmerket for støttesamtaler. GPT-4o er raskt og allsidig. Gemini håndterer flere språk godt. Prøv hver ene og se hvilke som gir de beste resultatene til din bestemte brukssak.

Kan jeg bytte leverandører senere?+

Ja. Endre leverandøren og API -nøkkelen når som helst. Eksisterende samtalehistorie er bevart. AI vil bruke den nye tilbyderen for alle fremtidige samtaler.

Hva skjer når jeg ikke har fått kreditter?+

AI-en nedgraderer graciøst: svarene blir kortere, automatiske pauser og administratoren viser en lavbalansert advarsel. Core tracking, billetter og CRM fortsetter å fungere uten AI.

AI

Smartere og billigre kundechat

Et sett av opt-in kontroller som gjør kundechatten din smartere (det grunner på tvers av en kundes konto som et menneske) eller billigere (den sender AI mindre, eller svar i færre trinn). Hver kontroll er slått ut som standard og uavhengige. Slår den på aldri endre andre atferd. De fleste lever under innstillingene > klient Chatt> Atferd; noen få er på å konfigurere ditt AI og trene AI'en din.

Smartere svar (agentmodus)

En normal chatbot svarer på ett spørsmål fra en oppslag. Med Agentmodus on, the assistant can make several read-only account checks in a single turn and cross-reference them, e.g. "do I have open tickets, and is my balance enough for my next renewal?" is answered in one reply with the maths done. It only engages for verified customers on account or refund questions; everything else runs the normal single-answer path.

Agentmodus

Opp til noen få lesebare oppslag per tur, kryssreferert før svar. Slå på når du har en koblet plattform (WHMCS, Shopify Stripe, Zendesk etc.). Av = dagens en-søkeadferd, uendret.

Tenker dybde for agent svar

Hvor hardt modellen grunner til komplekse sving (lav/medium / høy). Start på Low; de fleste støttespørsmål håndteres godt der.

Agentmodell

Pins en sterkere modell bare for kompleks agent svinger, så daglig chat holder seg på et lys, billig modeller og kun de harde vendene betaler for dybde. Blank = din normale kunde-chat modellen.

Planlegg fremover · One-pass svar (beta)

Et lite planleggingssteg bestemmer hvilke oppslag som skal trekkes og om kunnskapsgrunnlaget er nødvendig, så svarer i et hovedsamtale istället for flere trinn. En under-toggle under Agent modusen. Det kan ikke slås på med mindre agentmodus er aktivert. Samme svarkvalitet, færre samtaler på flerdelt spørsmål.

Samtale og forståelse

Langkonversasjonsminne (beta)

Beholder en kort løpende sammendrag av eldre meldinger (navn, billett/fakturatall og beløp) slik at assistenten forblir konsekvent over svært lange chatter uten å endre hele transkripsjonen. Beste støtte-tunge, lange trådene; par med Agentmodus.

Typotoleranse

Leser små skrivefeil ("mine åpne billetter", "ubetalte fakturaer") som de tiltenkte ordene, slik at riktig informasjon blir funnet i stedet for å gå glipp av. Fungerer med alle tilkoblede plattformer. Av som standard; nyttig for mobil-tung chat.

Lean konto sammenheng

Bare fest kundens kontobilde når spørsmålet faktisk handler om kontoen (balansen, fakturaene og billettene), hopper over det på generelle spørsmål. Skutt kostnader uten tap av kvalitet. Assistenten kan fortsatt hente kontoen live hvis en tur trenger den.

Kostnadsbesparende

Hopp over kunnskapssøk etter hilsener (beta)

"Hi", "thanks" and "ok" don't trigger a knowledge-base search, those replies never use it. Any message with real content still searches as normal.

Lengste svar tillatt (tokens)

Caps hvor lenge et enkelt svar kan være. Svarlengde er den dyreste delen av en samtale, så en fornuftig hette (rundt 500 for støtte) er det enkle mest effektive chat cost control. Bare senker din globale grense, aldri hever det.

På å sette opp din AI

Tenker dybde (customer & admin chat)

Hvor mye modellen tenker før du svarer (minimell til høy). Hold kundechatten på minimal/lav for hastighet; reserver høyere innstillinger for analyse og administrasjonspilot.

Per-AI modell (per jobb)

Hver AI-overflate (liveschat, billettutkast, summerer, analyse, admin copilots, kampanjer og mer) kan kjøre på sin egen modell. Lys der hastigheten betyr noe som er viktig, sterk hvor kvaliteten spiller roller. Blank på en overflate = leverandørstandard for den jobben.

Admin chat kostnadskontroll

Admin copilot kan holde et avgrenset arbeidsminne og laste bare verktøyene som du trenger (lean Tools) i stedet for hvert redskap hver tur.

På trene din AI

Kompressinstruksjoner

Instruksjonene dine sendes på hver tur, så lengden er en gjentakende kostnad. Compress-knappen skriver om et spor for å si det samme i færre ord. Det nekter reskriving hvis den vil slippe noen {variable} eller regel og rapporterer hva som beskyttes slik at det aldri stille endrer mening.

"Hva er allerede i hjernen" (ℹ️)

Shows what OpsIQ already knows about your business per slot, so you can delete anything you were repeating in your own instructions.

💡
Hvor går pengene? For kort støtte chat input (instruksjoner + kontodata + historie, sendt hver tur) koster vanligvis mer enn det korte svaret, cacheing og mager kontekst hjelper mest der. I lang generert innhold dominerer utgangen. Svar-lengden lua og en lavere tenkningsdybde betaler av seg der. Se Sett opp AI for å holde hurtig kasj på som gjør den store gjentatte delen av hvert slå billig.
Endrer dette hvordan chatten allerede svarer?+

Nei. Hver kontroll er slått av som standard og uavhengig. Slår du på bare legger til sin oppførsel; slå den fra returnere chatten for nøyaktig hvordan det fungerte før.

Hvilken ordre bør jeg slå på dem?+

Kjør daglig chat på en lysmodell og pin en sterkere agent modell. Deretter, hvis du har tilkoblet plattformen, aktiver Agent modus, planlegg deretter fremover, så lang-konversasjonsminne. Så mager kontekst, hoppe over KB for graderinger samt et svar cap. Endelig kompress instruksjonene dine. Se noen ekte samtaler etter hver endring.

Admin Agent-settet: websøk, runbooks, oppdrag

Admin AI chat er en fungerende tekniker, ikke bare et spørsmålsfelt. Det kan forskning fikser på nettet, holde bibliotek av dine operasjonsmetoder, patruljere serverne i planleggingen og flytte filer. Mesteparten av dette drives ved å be om det i prat; den eneste du konfigureres foran er hvilken websøk leverandør som bruker, på Set opp din AI-side.

Nettsøk

Bygget i

Agenten søker på nettet for docs, feilmeldinger og gjeldende informasjon mens det fungerer. Ut av boksen bruker dette DuckDuckGo som ikke trenger noen nøkkel eller ingen oppsett.

Runbooks

I chat

Et lagret bibliotek med prosedyrene dine («hvordan vi gjør X her») Agenten skriver ned en etter å ha løst en vanskelig jobb og følger den neste gang, slik at kunnskapen overlever slutten av chatten.

Oppdrag

Planlagt

Planlagte skrivebeskyttede patruljer. "Hver morgen, sjekk diskplass og feilloggene og fortell meg." Funnene kommer på administratorklokken din.

Filoverføring

I chat

Be om en loggfil og få en privat nedlastingslenke, eller ha én fil kopiert fra den tilkoblede serveren. Begge er dekket på 5 MB

Admin Agent-søk (på å sette opp din AI)

Søkeleverandør

Hva agenten web-søk bruker. Standard er DuckDuckGo: nøkkelløs, gratis fungerer på hver installasjon. Brave Search, Tavily og Serper.dev (Google-resultater) returnerer vanligvis bedre resultater, men hver trenger en API nøkkelen fra leverandøren. Hvis en nøkkelleverandør mislykkes av noen grunn (dårlig nøkkel, kvote som brukes opp, nettverksproblemer), faller det søket tilbake til DuckDuckGo automatisk, så søk aldri går mørk.

Søk API nøkkel

Nøkkelen for den valgte leverandøren, som bare er nødvendig for Brave eller Serper. Når du har lagret den blir maskert og aldri vist på siden igjen; lim inn en ny til å erstatte det. En nøkkelleverandør blir aktiv kun når både tilbyderen og nøkkelen gemmes.

Runbooks

Når agenten nettopp har jobbet gjennom en jobb du vil gjøre på samme måte igjen, si "Lagre det som en kjørebok kalt nightly- cleanup". Fra da av ser den kjøreboka ved navn i hver økt, og når du spør etter jobben ved navn (eller beskriver den) henter den frem trinnene og følger dem. Du kan be den om å liste opp, oppdatere eller slette kjørebøkene når som helst.

💡
En Runbook er veiledning, ikke et gratis pass. Når agenten følger ett, hvert steg som vil endre en server går fortsatt gjennom din nåværende tillatelsesmodus og viser de vanlige godkjenningskortene. Et løp kan aldri omgå godkjennelse.

Oppdrag

Et oppdrag er en gjentakende jobb som agenten kjører på egen hånd: hver time, daglig til et bestemt tidspunkt eller ukentlig på en fastsatt dag. Oppdrag er skrivebeskyttet av design. De kan lese servere, data og nettet, men de kan aldri endre noe; de undersøker og rapporterer. Når et oppdrag slutter, lander funnene som et varsel på administratorklokken din. Si « kjør morgenpatruljen nå » for å utløse en ved behov, eller be agenten om å liste, stoppe midlertidig eller fjerne oppdrag.

⚠️
Oppdrag kjører på OpsIQ cron, så den må settes opp (se Cron og automatisering). En engangs "kjør det nå" fra chatten fungerer selv mellom cron-kjøringer på de fleste servere.

Flytter filer

Spør etter en fil (« få meg dagens feillogg fra netttjeneren ») og agenten lagrer den og svarer med en privat nedlastingslenke. Lenken fungerer bare for innloggede administratorer og utløper etter omtrent en dag. Filene er begrenset til 5 MB; for noe større, spør agenten om å komprimere eller trimme det på tjeneren først.

Agenten kan også kopiere en enkelt fil mellom to tilkoblede servere, igjen opptil 5 MB. Skrivingen på destinasjonen behandles som enhver annen endring den gjør: i spør modus du får et godkjenningskort først er eksisterende filen sikkerhetskopiert og kopien reversibel. For sikkerhet leses innholdet fra kilden for øyeblikket kopien brukes ikke fra samtalen.

AI

Tren din AI

AI-trening er der du lærer OpsIQ hvordan å oppføre seg. Du skriver spørringer som definerer personlighet, grenser, kunnskapsfokus og eskaleringsregler. Tenk på det som en opplæring manual for et nytt støttebyrå.

Tog AI
Tren din AIEn AI-instruksjonsredaktør med kunde/admin faner og vanlig engelsk tone, alltid og aldri regler.Tren din AIarbeidsflateKunde AIAI- administratorToneVennlig, kortfattet og aldri pushy.AlltidTilby en menneskelig håndtak for faktureringskonflikter.AldriLov å refundere uten at du sjekker kontoen.1TWO MANUALSKunde & admin AI2PLAIN ENGLISHTone, alltid.3GROUNDEDPluss din kunnskap base
Tren AI som en ny leie, Kund og Admin manualer skrevet på vanlig engelsk (tone, alltid; aldri), jordet i din KB.

To treningsområder

Kunde AI-prompt

Kontrollerer hvordan AI snakker med kundene i chat widget. Dette er den viktigste instruksjonen for å komme seg riktig ut.

Admin AI-prompt

Kontrollerer hvordan AI hjelper admin-teamet i operatørens dashboard. Dette håndterer interne spørsmål og handlingsutførelse.

Skrive en god kunde AI-prompt

Kunde AI-prompten din bør dekke disse områdene:

1
Identifikasjon

Gi den et navn, en rolle og en personlighet. Eksempel: «Du er Luna, en vennlig og kunnskapsrik kundestøtteassistent for Acme Store.»

2
Tone og stil

Eksempel: "Vær profesjonell, men vennlig. Bruk enkelt språk. Unngå sjargong. Hold svarene korte (2-3 avsnitt maks)."

3
Kunnskapsgrenser

Hva bør den vite og ikke vite? Eksempel: "Du kjenner til våre produkter, priser, frakt- og returregler. Du vet IKKE om konkurrerende produkter eller interne beslutninger i selskapet."

4
Escalation regler

Når bør det overleveres til en menneskelig agent? Eksempel: «Eskalere til en human agent når kunden ber om refusjon, nevner rettslige skritt, rapporterer et sikkerhetsproblem eller stiller samme spørsmål tre ganger.»

5
Ting å aldri gjøre

Eksempel: «Aldri gi løfter om refusjon, aldri dele interne prisformler, aldri finne på produktfunksjoner som ikke eksisterer, aldri gi medisinske, juridiske eller økonomiske råd.»

Eksempel på spørsmål

Eksempel på kunde AI-prompt · nettbutikk
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 på kunde AI-prompt · hosting selskap
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

Refinere din kontakt over tid

1
Lansering med grunnleggende

Start med identitet, tone og nøkkelgrenser. Ikke prøv å dekke alt på dag ett.

2
Gjennomgang av AI-historien ukentlig

Les samtaler der AI ga feil eller suboptimale svar.

3
Oppdatere spørringen

Add specific rules for recurring issues. Example: if the AI keeps promising refunds, add "Never promise a refund. Say you will escalate to the billing team."

4
Legg til kunnskap

Hvis AI ikke kan svare på et spørsmål, legg svaret til kunnskapsbasen i stedet for å prøve å passe alt sammen.

⚠️
Hold din kontakt under 2,000 -ord. Overlengte spørsmål kan forvirre AI og øke tokenkostnader. Legg detaljert informasjon i kunnskapsbasen i stedet.
Hva er forskjellen mellom den raske og kunnskapsgrunnlaget?+

Plötsen definerer personlighet, grenser og regler. Kunnskapsgrunnlaget gir faktainformasjon (produktdetaljer, prissetting, retningslinjer). AI leser begge deler av seg selv men den raske formene atferd mens KB tilbyr svar.

Kan jeg få forskjellige spørsmål til ulike avdelinger?+

Besøket er per arbeidsrom. Hvis du trenger forskjellig AI-adferd for ulike avdelinger, bruk kunnskapsgrunnlaget til å gi avdelingen spesifik informasjon og nevne enhet kontekst i din raske.

AI

AI historie

AI History viser hver samtale som AI har hatt med kunder og administratorer. Bruk den til å revisjon av AI-ytelse, finne feil svar og identifisere treningshullene.

AI historie
AI historieEn logg av AI svinger med typemerker, spørsmålet og svaret, responstid og utfall.AI historiearbeidsflateHver AI-tur, registrertchatQ: Hvor er min ordre?A: fraktet i dag, UPS sporing...0.9sansweredticketUtkast til svar på T-12345refusjonsbevis utarbeidet1.4sdraftedadminOppsummer denne ukens billetter12-linje sammendrag returnert2.1sferdigchatQ: Avbryt min planDelt ut til et menneske0.7sescalated1EVERY TURNSpør, svar2SEARCHABLEFiltrer og eksporter3OWNER-ONLYFull revisjonsspor
Hver AI-sving (chatt, billettutkast og admin handling) logget med nøyaktige spørsmålsforløp.

Hva hver samtale viser

Dato og klokkeslett

Da samtalen skjedde.

Kundesidentitet

Navn og e-post hvis kjent, ellers IP og land.

Kanal

Chat widget, billetten auto-reply, epost utkast eller admin AI.

Meldinger

Full transkribering av samtalen: Kundemeldinger og AI-respons.

Token bruk

Hvor mange polletter samtalen ble brukt. Høy tokens bruk kan indikere at AI gir overordnet ekstraherende svar eller konversasjonen gikk i sirkler.

Handlinger som er truffet

Alle handlinger AI utført under samtalen (sett ordre, opprettet billetten etc.).

Vurdering

Hvis CSAT er aktivert, kan kundens tilfredshet vurdering for denne samtalen.

Finne problemer

Søk etter søkeord

Søk etter spesifikke emner for å se hvordan AI håndterer dem, eksempel: søk etter "refusjon" for å sjekke om AI følger din refusjonspolicy.

Filtrer etter vurdering

Vis kun lave vurderinger for å fokusere på utilfredse kunder.

Filtrer etter kanal

Vis kun billett automatiske replikasjoner til å kontrollere automatiserte svar separat fra chat.

Sorter etter token bruk

Høyt taktiske samtaler kan indikere problemer: AI-angrepet, går i sirkler eller unnlater å svare på spørsmålet.

Ukelig revisjonsrutine

1
Sjekk lave vurderinger

Les den fulle transkripsjonen. Hva gikk galt? Var det et kunnskapsgapet, en tone problem eller feil svar !

2
Sjekk høye peksamtaler

Disse kan indikere forvirring. Var AI gjentar seg selv? Forsto det ikke spørsmålet?

3
Oppdater trening

For kunnskapsmangler, legg til artikler i Knowledge Base. I atferd problemer oppdater AI-prompten. Hvis du vil gjenta feil svar kan du legge eksplisitt korrektionsregler.

Finn kunnskapsmangler

Scenario:
You search AI History for "installation" and find 15 conversations where the AI said "I do not have specific installation instructions for this product."
Hva skal jeg gjøre:

Dette betyr at kunnskapsgrunnlaget mangler installasjonsveiledninger. Lag kunnskapsbaseartikler for hvert produkts installasjonenstrinn. Etter å ha lagt til dem, test ved å stille AI-installeringsspørsmålene.

AI

AI-innsikter

AI Insight analyserer automatisk samtalemønstre og overflater som kan fungere: vanlige spørsmål, tilfredshetstrender, kunnskapsgapene samt eskaleringsmønster.

AI-innsikter
AI-innsikt (Intelligence Hub)Intelligence Hub: en AI Todays korte, smarte varsler og et Score-a - Lead / Analyticse-A-Page verktøy. 14- Daglig trafikkmønsterdiagram.AI-innsikterarbeidsflateI dag er BRIEFTrafikken opp 12%; 3 varme spor;2Tilbud trenger oppfølging.Smarte varslerUtsjekkingsfeil spikretBunce up on /pricingNytt varmt resultat fra USAInntekter i forkant av forrige ukeScore a Lead / Analyse en sideIP eller URL…Kjør14-Dags trafikkmønster1I dag er BRIEFAI skriver morgensummen2SMART ALERTSAnomalier som er overflatet3ON DEMANDScore a lead · analysere en side
Den virkelige etterretningshub: en AI-skrivet dagens korte, smart varslinger for abnormiteter, ledende poeng og sideanalyse. 14- Daglig trafikkmønster.

Hva innsikt viser

Topp spørsmål

De vanligste spørsmålene. Hvis "Hvordan tilbakestiller jeg passordet mitt?" er #1, trenger kunnskapsbasen din en fremtredende veiledning for tilbakestilling av passord.

Tilfredshetstrender

CSAT scorer over tid. Er AI tilfredshet forbedre eller senke? Tidlige dropper kan indikere en kunnskapsbase endring som brøt noe.

Oppløsningsrate

What percentage of conversations does the AI resolve without human intervention? A rate above 70% is good. Below 50% means the AI needs more training.

Escalation grunner

Hvorfor samtaler blir avlevert til mennesker. Vanlige grunner: kunde etterspurd menneskelig, AI ikke kunne svare på, sensitiv emne og faktureringsproblemet.

Kunnskapsgap

Emner der AI ofte sier "Jeg vet ikke" eller gir lav-tillits svar.

Gjennomsnittlig samtalelengde

Hvor mange meldinger per samtale. Veldig lange samtaler (10+ meldinger) kan indikere at AI ikke forstår spørsmålet.

Bruke innsikter for å forbedre

Scenario:
AI Insights shows that 23% of escalations are "Customer asked about warranty" and the AI could not answer.
Hva skal jeg gjøre:

Dette er en klar kunnskapsgap. Trinn: (1) Skriv en omfattende garantiartikkel i kunnskapsgrunnlaget som dekker alle garantier, kravprosess og utelukkelser. (2) Oppdatere AI-prompten til referansegarantiinformasjon. (3) Overvåk AI Insights neste uke for å se om garantien øker.

AI

Admin AI-spillebok

Admin AI (Ask)OpsIQ) Hjelper teamet ditt å håndtere OpsIQ fra i admin dashboard. Du kan be det om å slå opp data, forklare funksjoner, sammensummere billetter og utføre plattformhandlinger.

AI- administrator
Admin AI-spillebokKommandoboksen Ask-OpsIQ med et AI-foreslått plattformhandlingskort som viser parametre og bekrefter/cancel.Spør OpsIQarbeidsflateSpør OpsIQSuspender tjenesten til forfallen konto #4821AIForeslått handling: termin_servicekonto: #4821 (foreløpig $120)plattform: WHMCS · reversibelBekreftAvbryt1ASK ANYTHINGVanlige engelske kommandoer2PROPOSE FIRSTHandling som vises før den kjører3YOU CONFIRMOmfattet og revidert
Fortell admin AI hva du vil på vanlig engelsk; det foreslår nøyaktig handling (spekulert, reversibelt og revidert) samt venter på bekreftelsen.

Hva admin AI kan gjøre

Oppsøk data

Spør: "Vis meg alle billetter fra [email protected]" eller "Hva er statusen på bestillingen #ORD-5523?"

Oppsummerer

Spør: "Sammendrag de siste 10 billettene" eller "Hva er de viktigste kundestøtteproblemene denne uken?"

Forklar funksjoner

Spør: "Hvordan konfigurerer jeg autosvar?" eller "Hva betyr kortet med avvisningsfrekvensen?"

Utfører handlinger

Spør: « Opprett en billett for [email protected] Om fakturering" eller "Lukk billett T-12345"

Platform-forespørsler

Spør: "Hvor mange besøkende fikk vi i går?" eller "Hva er inntektene våre denne måneden?"

Eksempelsamtaler

Oppsøker en kunde

Scenario:
Admin asks: "Find customer [email protected] and show me their recent activity"
Hva skal jeg gjøre:

AI ser opp kunden på tvers av alle tilkoblede datakilder: besøkende sesjoner, billetter, chatsamtaler og CRM kontakter. Det returnerer en sammendrag over nylig aktivitet med lenker til hver element.

Få et daglig sammendrag

Scenario:
Admin asks: "What happened today?"
Hva skal jeg gjøre:

AI oppsummerer: "I dag hadde du 245 besøkende (opp ) 12%), 8Opprett nye billetter (3 løst av AI),2nye ordrer totalt $198, og1"Vi har mottatt en eskalering i chatten om en forsendelsesforsinkelse."

Utsettelse av en handling

Scenario:
Admin asks: "Change ticket T-5523 priority to Urgent"
Hva skal jeg gjøre:

Kunstig intelligens bekrefter: «Jeg vil endre billett T-5523 prioritet fra Normal til Haster. Dette vil påvirke SLA timer. Bekrefte?» Du bekrefter, og handlingen utføres.

💡
Admin AI bare utfører handlinger som er registrert i handlingsregisteret. Det kan ikke oppfinne tiltak eller tilgangssystemer utenfor OpsIQ.
AI

Kunde AI-scenarier

Denne delen dekker vanlige kundevendte AI-scenarier med forventet oppførsel og opplæringstips.

Kunde AI
Kunde AI-scenarierEt bibliotek med kundespørsmål parret med forventet AI-adferd og en utfallsmerke for hver.Kunde AI-scenarierarbeidsflateScenario bibliotek · forventet AI-adferd"Hvor er bestillingen min?"Se opp ordren via kontakt, gi sporingLøs"Jeg vil ha en refusjon"Bekjennelse, aldri lov · hånd til et menneskeHandoff"Er tjenesten nede?"Sjekk status, rapporter gjeldende tilstandStatus"Avbryt min konto"Bekreft intensjon, og deretter rute til et menneskeBekreft1SCENARIOSVanlige spørsmål2EXPECTEDHvordan AI skal svare3TESTFinn treningsgap
Et bibliotek med reelle kundespørsmål og nøyaktig hvordan AI skal håndtere hver, for å teste treningen din og finne hull.

Scenario bibliotek

Bestill statusundersøkelse

Scenario:
Customer: "Where is my order #12345?"
Hva skal jeg gjøre:

Forventet AI-adferd: (1) Se opp ordren gjennom plattformkontakten. (2Rapporter nåværende status (bearbeiding, fraktet og levert).3) Inkluder sporingsnummer dersom det er tilgjengelig. (4Hvis bestillingen er forsinket, bekrefte og gi estimerte tidslinje. (5) Oppfinn aldri sporingsinformasjon.

Forespørsel om tilbakestilling av passord

Scenario:
Customer: "I forgot my password and cannot log in"
Hva skal jeg gjøre:

Forventet AI-adferd: (1) Gi passordet tilbakestille trinn fra kunnskapsgrunnlaget. (2) Ta med tilbakestillingslenken eller sidestien. (3) Ment at tilbakestilling e-post kan ta noen minutter. (4) Foreslå å sjekke spam-mappen. (5Hvis kunden fortsatt ikke kan tilbakestille, eskalere til et menneske.

Funksjonsforespørsel

Scenario:
Customer: "Can you add dark mode to the mobile app?"
Hva skal jeg gjøre:

Expected AI behavior: (1) Thank them for the suggestion. (2) Explain how feature requests are handled (logged, reviewed, prioritized). (3) Do NOT promise the feature will be built. (4) If a similar feature exists, mention it.

Billingstrid

Scenario:
Customer: "I was charged but my service is not working"
Hva skal jeg gjøre:

Expected AI behavior: (1) Acknowledge the frustration. (2) Check the service status if possible. (3) Escalate to the billing department with all details. (4) Do NOT promise a refund. (5) Set ticket priority to High.

Off-topic spørsmål

Scenario:
Customer: "What is the weather like in London today?"
Hva skal jeg gjøre:

Forventet AI oppførsel: (1) Høflig omdirigere. "Jeg er din [Bedrift] støtteassistent og kan hjelpe med spørsmål om våre produkter og tjenester. For værinformasjon, prøv en værtjeneste." (2Spør om de har et produktspørsmål.

Hvordan tester jeg kundenes AI-adferd?+

Åpne nettstedet i en privat/inkognito-nettleser og chat med AI som kunde. Prøv vanlige spørsmål, kant tilfeller og adversarielle scenarier. Sjekk at AI følger dine raske regler og bruker kunnskapsbaseinnhold riktig.

AI

AI kunnskapsbase

Kunnskapsbasen er et bibliotek av artikler som AI bruker til å svare på spørsmål. Når en kunde spør noe, søker AI kunnskapsbase for relevante artikler og benytter dem til å generere nøyaktige, jordet respons.

Kunnskapsbase
KunnskapsbaseKilder som mates inn i en kunnskapsbutikk, og deretter et AI-generering av et jordet svar.KunnskapsbasearbeidsflateKilderNettsted krøllingHjelp artiklerVanlige spørsmålImporterte dokumenterKunnskapSemantisk + nøkkelordAIGrunnet svarmed en sitert kilde."Tilbakebetalinger tar 3–_51-3 virkedager."1INGESTCrawl, FAQ2RETRIEVESemantisk + nøkkelord3GROUNDEDSvar fra innholdet ditt
Crawl nettstedet og import docs til kunnskap basis; AI henter de riktige bitene, svarene, jorda og sitert.

Hvordan det fungerer

1
Kunden stiller et spørsmål

Hva er din returpolitikk?

2
AI søker kunnskapsgrunnlaget

OpsIQ finner "Returpolicy" artikkelen ved å matche søkeord og semantisk betydning.

3
AI genererer en respons

AI leser artikkelen og skriver et naturlig språk svar basert på artikkelinnhold.

4
Kunden får et nøyaktig svar

Svaret er basert på din faktiske politikk, ikke AIs generelle opplæringsdata.

Opprette gode artikler

Et emne per artikkel

Skriv en egen artikkel for hvert emne: returpolitikk, fraktpriser, kontooppsett og passordsett. Ikke kombiner urelaterte emner.

Skriv som et spørsmål

Begynn med spørsmålskundene spør, og gi svaret. Dette hjelper AI-kampspørsmål til artikler.

Vær spesifikk

«Returer må startes innen 30 dager etter levering» er bedre enn «Vi har en returpolicy.»

Inkluder kantsaker

Hva med internasjonale avkastning? Hva om digitale produkter? Hva er det som kjøpes på salget? Dekker unntakene.

Hold den oppdatert

Gjennomgang artikler kvartalsvis. Slett utdatert informasjon. Oppdater pris, retningslinjer og prosedyrer når de endres.

Startende artikler du bør skrive

Frakt og levering

Fraktkostnader, leveringstider og sporing av frakten.

Retur og refusjon

Return vindu, betingelser, prosess, refundering og unntak.

Kontoadministrasjon

Passord tilbakestilling, e-postendringer og kontoutvelgelse.

Pris og fakturering

Planbeskrivelser, faktureringssykluser og betalingsmetoder.

Produktguider

Hvordan bruke hvert produkt eller funksjon. Trinn-for-trinns instruksjoner med skjermbilde.

Feilsøking

Vanlige problemer og løsninger. Feilmeldinger og rettelser av dem

Kontaktinformasjon

Forretningstimer, støttekanaler, responstider og eskaleringssti.

Juridisk og overholdelse

Oppsummering av personvernerklæring, vilkår for tjenestesamandrag GDPR -dataforespørsler.

Kontaktinformasjon

Hver kontakt kan bidra til kunnskap om AI. Når en kobling er aktivert, blir dens innebygde kunnskapsartikler (produktkatalog, vanlige spørsmål og plattformspesifikk feilsøking) automatisk tilgjengelig for AI-en. Du kan slå av eller på kontaktens kunnskaper i forbindelseinnstillingene.

Token budsjett

Kunnskapsgrunnlaget har et konfigurerbart tokentak (standard: 32,000 polletter) som kontrollerer hvor mye kunnskapskonteksten sendes til AI per samtale. Hvis din kunnskapsbase er veldig stor, velger AI de mest relevante artiklene i dette budsjettet. Øk taket hvis AI ikke finner relevante artikler; redusere det dersom du ønsker å minske tokenskostnader.

Hvor mange artikler skal jeg ha?+

Begynn med5-10 artikler som dekker dine mest vanlige spørsmål. Legg til mer når du identifiserer hull gjennom AI History og AI Insights 20-50 artikler for omfattende dekning.

Kan jeg importere artikler fra et annet system?+

For tiden opprettes artikler manuelt i OpsIQ Du kan kopiere innhold fra eksisterende FAQs, hjelpesentre eller dokumenter.

Hvilket format bør artikler være i?+

Vanlig tekst fungerer best. AI forstår naturlig språk bedre enn strukturert HTML Skriv som du vil forklare til en kunde.

AI

AI-vurdering og VG

Evalueringssett gjør kritiske kundespørsmål til repeterbare tester for å få svar på kvalitet, sitering og utbyggings-og handlingssikkerhet.

Produktskjerm
AI-utredningAI-vurdering viser gullprøvesaker, nødvendig oppførsel og de siste resultatene.AI-utredningarbeidsflateSETS6CASES84PASS RATE96%LIV ARBETSPESSONEFraktpolitikkCitation krevesPassRefunderingMenneskelig bekreftelse krevesPassUstøttet kravForbudt handlingPassMigrasjonsspørsmålForventet kilde manglerFeil1CREATE CASESGolden input og regler2RUN SAFELYTørrkjøring eller levende eval3WATCHPlanlegg daglig eller ukentlig
AI-vurdering viser gullprøvesaker, nødvendig oppførsel og de siste resultatene.

Fulle administratorer kan opprette evalueringssett med en rask, forventet kildemerking, nødvendige siteringsregler, menneskelig bekreftelse regler, heving forventningene og forbudt handlinger. Kjør et sett direkte, tørkekjør det eller spille om valgt historie.

Vakten planlegger daglig eller ukentlig kontroller gjennom krone og driver et begrenset antall tilfeller (opp til åtte per planlagt pass). Gjennomgang feil sammen med leverandør/modell, rask versjon, kunnskapsversjonen, handlinger foreslått og kostnader før endring av produksjonadferd.

AI

Språk og oversettelse

Språk håndterer oversatt tekst fra kunder og den atferd som brukes når OpsIQ følger kundens språk.

Produktskjerm
SpråkSpråksiden viser kildespråket, oversatt språk, utkast/livstilstand og kunde-språkadferd.SpråkarbeidsflateSERVICEEngelskLANGUAGES4LIV3LIV ARBETSPESSONEfranskGrensesnitt og innholdNivåTyskGrensesnitt og innholdNivåSpanskUtkast til oversettelseUtkastFølg kundeSvar i detektert språk1SET SOURCEOpprinnelig operatørspråk2ADD LANGUAGEOversett i bakgrunn3PUBLISHUtkast eller live
Språksiden viser kildespråket, oversatt språk, utkast/livstilstand og kunde-språkadferd.

OpsIQ oversetter operator-entert kundevendende tekst. Angi kildespråket riktig før du oppretter oversettelser, legger til målspråk og deretter gjennomgå utkastene for publisering. «Følg kundens språk» styrer responsspråk; omsetjing av widgetgrensesnittet kontrollerer knappene sine, etiketterne og systemteksten.

Oversettelsesområde kan være utkast eller live. Ikke stole på maskinoversetting for lovlig, refusjon, sikkerhet og sikkerhetstekst uten menneskelig gjennomgang.

Hvert sted som holder din egen ordlyd er oppført med sin melding tell: klient chat beskjeder, kampanje, proaktivt budskap, chat flytende, guidede turer, kunngjøringer og teasere bobler Undersøkelser og skjemaer. Undersøkelsesoverflaten dekker hver publisert undersøkelse helt: tittel, hvert spørsmål, alle svaralternativer, knappene og takk-du kopi, sidekrom og utfall sider. Nøkler er bundet til spørsmålet ID og alternativverdien så omorganisering av spørsmål eller valg aldri mister en oversettelse, og reordner bare én melding som videreutsettes den meldinga. Published live spørreundersøkelser blir tilbudt standard; utkast slutte seg når du utvide omfanget.

Postchat-epostundersøkelsen følger språket som besøkende faktisk pratte inn, forutsatt at språk er et du tilbyr her; ellers bruker det systemet ditt. Dens seks redigerbare felt blir oversatt på denne siden også og oppførselen har sin egen bryter i klient Chatt innstillinger.

Billett- og portalmeldinger Dekker den faste tekstoperatøren type én gang og hver kunde mottar så på det ett språk: billettbekreftelsen, de åpnede, lukkede og tilbakemeldingsbekræftelserne, per-avdeling av loggeuttakene og portalens velkomstlinje. ( AI autoreply trenger ingenting av dette, svarer allerede i kundens sprog) E-postkunder på eget språk aktivert i OpsIQ Skriving, billett e-post løser mottakerens språk i denne rekkefølgen: språket de valgte på portalen eller Hjelpesenteret (på billetten), lokallaget på kontaktlisten sin og deretter det lokale språket som ble skrevet lokalt etter manusområde og markørord uten ekstern anrop. Bare språk valgt på Languages siden brukes noensinne så funksjonen er inert til sprogene blir lagt inn. Global HTML e-post wrapper er bevisst ikke oversatt: det er markering, ikke prosa. Personalevendende email (varsler om varsler fra avdelingen, analytiker briefs, planlagte rapporter, ukents fordøyelse) bruker alltid systemspråket.

Støtte

Hjelpesenter

Hjelpesenteret ditt er et selvbetjent hjelpenettsted bygget fra artiklene du publiserer. Kundene kan lese og søke det på sin egen offentlige side, samt rett inne i chat widgeten så de finner svar på seg selv før de noensinne åpner en samtale. Alt i den kommer av din kunnskapsbase, slik at samme innhold som grunnlegger AI også all offentlig hjelp.

Hvor kundene ser det

Dens egen offentlige side

Et rent og søkbart hjelpeområde på /help.php. Kunder surfer etter kategori, søk og åpne enhver artikkel. Du kan gi det ditt eget navn og stil.

Inne i chat widget

En hjelp kobling i chat widget slik at kunder kan søke artiklene dine uten å forlate praten. Hvis de fortsatt trenger en person, er det ett trykk unna fra starten av samtalen.

Slå på det

1
Åpne siden Hjelpesenter

Gå til Config, then Help Center i din admin og slå på Aktivere offentlig hjelpsenter.

2
Gi det et navn og en titt

Velg navnet på Hjelpesenteret som viser i overskriften og nettleserfanen, og velg en visuell stil. Du kan slå av toppnavigering for å få en ren side uten meny.

3
Publiser noen artikler

Ingenting viser før du publiserer artikler til det. Neste del dekker hvordan.

Publiser artikler til Hjelpesenteret

Artikler lever i din kunnskapsbase. En artikkel vises i Hjelpesenteret når den er publisert og merket offentlig. Det finnes noen måter å gjøre dette på:

Publiser én artikkel

Åpne artikkelen, merke den publisert og slå på alternativet for å vise det i Hjelpesenteret.

Publiser alt på en gang

Bruke Publiser alle Trykk hele publisert settet på Hjelpesenteret i ett klikk, i stedet for å gjøre det én om gangen.

Gjør FAQ til artikler

Har du allerede spørsmål? Bruk Publiser alle til hjelp å gjøre dem til hjelp artikler, så de sitter sammen med alt annet.

Importere eksisterende kunnskapsbase

Flytte fra et annet hjelpebord? Importer KB knappen på fanen Artikler gir deg en eksisterende kunnskapsbase. Du har tre måter å peke den på innholdet ditt:

Lim inn en URL

Gi det adressen til ditt nåværende hjelpesenter. Hvis den gjenkjenne plattformen (for eksempel Zendesk) leser den nøyaktig kategoritre fra denne plattformen. Ellers kryper det nettstedet og gjenoppbygger strukturen på sidene, importerer bare de ekte artiklene og hopper over innloggings-, prissettings- eller kontaktsider.

Velg en tilkoblet app

Hvis en plattform allerede er koblet til dette arbeidsområdet og den har kunnskapsbase, vises det i et nedtrekk under Importer fra en tilkoblet appVelg det og import, nei URL eller passord som trengs. Appen er bare oppført når den er tilkoblet og satt opp.

Last opp en CSV

Ingen live-side å peke på? Last opp et regneark med title, category, og body kolonne. Sett Parent / Child i kategorikolonnen for å bygge reir kategorier.

Uansett hvor du velger får man en Forhåndsvisning først: artikler det fant, gruppert etter kategori, hver med en avkrysningsboks slik at du kan slippe alt som ikke er ønsket. Ingenting lagres før du klikker på Importere. Etterpå kan Angre hele importen med ett klikk, eller Omsync a URL eller tilkoblet app import senere for å trekke inn nye og endret artikler.

💡
Utviklere: enhver kontakt kan annonsere sin kunnskapsbase til denne nedtrekk ved å erklære en kb_capabilities Blokker i sin settings.json (type) kb_sourceMed en adapter og a base_template). Se delen av forbindelsene og referansen til plattformen-tilkobling.

Organiser med AI

Et rent hjelpesenter er enkelt å bla gjennom og lettere å søke. Organiser med AI knappen gjør rengjøring for deg. I ett klikk leser den utgitte artiklene dine, sorterer dem i fornuftige kategorier og legger til tags. Det skaper en kategori når det trenger én, gjenbruker enkategori som allerede passer, og hopper over alt du har organisert, så kan du kjøre det igjen når som helst du legger til nye artikler. Slå på La AI organisere i underkategorier i Hjelp Center innstillinger og det kan også fil artikler under hekket Parent / Child kategorier, som er praktisk rett etter import av en kunnskapsbase som hadde underavsnitt.

💡
Kategorier gir kundene en måte å bla gjennom på, og taggene skjerpe søket både på den offentlige siden og i widget. Du kan omdøbe eller flytte ting etterpå. AI-en gir deg et sterkt utgangspunkt, ikke ett oppsett du er fast med.

Hjelpesenteret i chat widgeten

Du kan vise Hjelpesenteret rett inne i chat widgeten slik at folk søker svar før de meldinger deg. I innstillingene for chat-widget velger du hvor hjelpelenken vises:

I overskriften

Et lite hjelpeikon øverst på widget.

Nederst

En tekstlenke under meldingsboksen, for eksempel « Bla gjennom hjelpesenteret ». Du kan endre ordlyden.

Begge steder

Vis det i overskriften og nederst for mest synlighet.

Hjelp-koblingen har sin egen fargekontroll under innstillingene for widget utseende. Legg den på Ingen å matche din oppstarter farge, eller velge en Fast farge eller en Overgang. Hele hjelpopplevelsen følger widget-temaet ditt, så det ser alltid ut som en del av merkevaren din.

Legg ditt hjelpesenter på din egen webadresse

Ut av boksen har hjelpesenteret allerede en ren, delt adresse (for eksempel /help/your-help-center. Du kan gå et skritt videre og betjene det under din eget domene, så kunder og søkemotorer ser det som en del av ditt merkenavn for eksempel yourdomain.com/help eller help.yourdomain.com. Alt fortsetter å jobbe på domenet ditt: lenker, bilder og artikkelvurderinger

Under din hovedside

I Konfigurer, deretter Hjelp SenterÅpne Innebygget tab and find "Show your help center on your own web address". Pick your setup (Cloudflare, Nginx or Apache), copy the ready-made block, and paste it into your site. Each option has a Konfigurasjonsguide ved siden av den med de nøyaktige trinnene.

På en underdomene

Foretrekker help.yourdomain.comDet samme panelet har et underdomenealternativ. På Cloudflare en underdomene er den mest pålitelige ruten, og det gir deg en ren adresse med ingenting etter.

💡
Bruker Cloudflare? Den kjører bare sin arbeider på en adresse som er proxied gjennom Cloudflare(den oransje skyen). Hoveddomenet ditt peker ofte rett på nettsiden din, så en regel som plasseres i hoveddomene kan stille gjøre ingenting. Den pålitelige måten er et proxied subdomæne som help.yourdomain.com. Konfigurasjonsguiden går gjennom den ene DNS -posten og ruten.
Godt for SEO. Når hjelpesenteret ditt er på eget domene, indekser søkemotorene dine under merket. Hver side erklærer sin riktig adresse og nettstedskartet liste dem så den samme artikkelen blir aldriindeksert to ganger.
💡
I chat-widgetens "Åpne i brukerstøtte" -innstillinger, angir du at du vil bruke Hvor linken går til Dit eget hjelpesenter domene og angi den samme adressen. Deretter åpner disse artikkellenkene på domenet ditt også, ikke i OpsIQ -adressen.

Se hvordan hele hjelpesenteret ditt gjør

Utover enkeltpartikkelstemmer har hjelpesenteret eget analytics. Slå på det i Hjelp Center innstillinger og den registrerer stille hvordan folk bruker hjelpen din: de mest sedde artikler, hva de søker etter, og søk som kom tom igjen ( en klar to-write liste), arbeider ut besøkende land og enhet selv så trenger ikke chat widget installert for å rapportere. Hvert nummer vises til both plasser din hjelp vises, den offentlige siden og in-widget hjelpen samt kombinert så du kan se hvor mye hver enkelt er faktisk brukt.

💡
Analytics holder seg av til du slår den på, og du kan ha besøkende IP adresser anonymisert. Ingenting registreres før du velger å velge inn.

Velg hva som vises på hver side av siden

Hver del av Hjelpesenteret (kategoriene på hjemmesiden, de populære artiklene og artikkellisten på en kategoriside med mer) har sin egen enkle regel. For hver enkelt kan du vise eller skjule den, og vise all elementene, a sett nummer, den sisteEller bare de du feature Når en regel avslutter en liste, får kundene fortsatt en Vis alle-kobling, slik at ingenting er virkelig utenfor rekkevidde.

Du bestemmer også hvordan de nyttige stemmene ser ut: skjult, et vennlig forhold som "12 av 14 En innstilling for minimum antall stemmer stopper en helt ny artikkel fra å vise et "0ut av0".

Se hvilke artikler som fungerer

Hver artikkel viser en Var dette nyttig? spør. Hvert ja eller nei er talt per artikkel, så du kan se på et øyeblikk hvilke artikler som svarer spørsmål godt og hvem de trenger en omskriving. Gjentatte stemmer fra samme besøkende ignoreres, slik at tellingene forblir ærlige.

Tekst og etiketter

Du kan endre overskrifter og etiketter på Hjelpesenteret for å matche stemmen din. La feltet stå tomt, så det faller tilbake til en fornuftig standard slik at du bare redigerer ordlyden som faktisk vil forandre seg.

Hjelpesenteret deler ett bibliotek med AI-en. Hver artikkel du publiserer her er det samme innholdet som AI bruker til å svare på samtaler og billetter, så forbedrer den ene forbedres den andre.

Vanlige spørsmål

Må jeg skrive separat innhold til hjelpesenteret?+

Nei. Det er bygget fra de samme kunnskapsgrunnlagene som AI allerede bruker. Publiser en artikkel én gang og det kan tjene begge deler.

Kan jeg holde noen artikler internt?+

Ja. Bare artikler du publiserer og markerer offentlig vises i Hjelpesenteret. Alt upublisert holder seg utenfor det.

Kan kundene nå en person?+

Ja. Skjermvaren hjelper link sitter et trykk unna fra å starte en samtale, så selvservering aldri fanger noen.

Vekst & SEO

Nettsted Intelligence (SEO suite)

Nettsted Intelligence er OpsIQ s innebygd SEO og søkevisning suite. Det kryper nettstedet ditt som en søkemotor, spor der du rangere, forsker nøkkelord, klokker backlinks og konkurrenter, skanner din lokale kart tilstedeværelse, sjekk siden hastigheten og gjør det til kundeklarte rapporter med en AI-analytiker som forklarer hva man skal fikse og kan kladd rettelsen. Den er et premiumfunksjon; når aktiveres det vises som Site Intellect i sidepanelet. Hvert domenets data blir separat, krabler, rankinger og rapportering aldri bland mellom domene .

Nettsteds Intelligence
Nettsted Intelligence dashboardEn SEO dashboard som viser en steds-helse score, søkeord rangering sporing og trafikk trend.Nettsteds Intelligenceyoursite.com86SITE HELSKE3 kritiske problemerNøkkelord rangering sporingai helpdesk#3Live chat-tjeneste#7crm for byråer#12Økologiske klikk1KRYLLINGConstellation name (optional)Finner tekniske problemer2SporRanger, nøkkelord3AI ANALYSTForklaringer og utkast til rettelser
Oversikten over nettstedets etterretningsfunksjon: en sted-helse score fra den siste kryp, live keyword range sporing, en organisk klikk trend og tretrinns loop: krølle, spore, la AI utkast til rettelser.

Kjør et kryp · start her

En kryp er OpsIQ besøke sidene dine på den måten en søkemotor ville, for å finne tekniske problemer: ødelagt koblinger, manglende titler, tynt innhold, langsomme sider og indekseringsproblemer.

1
Start krypet

Klikk for å starte en kryp. OpsIQ kabler den og fungerer gjennom sidene i bakgrunnen; En statusindikator viser fremgang.

2
Les rapportene

Når det er ferdig, åpne problemene og sidelisten. Hvert spørsmål grupperes etter alvorlighetsgrad slik at du takler de største gevinstene først.

3
La AI hjelpe

AI-analytikeren produserer en vanlig språklig kortfattet av hva som er galt og hvorfor det spiller rolle, og kan generere foreslåtte rettelser du gjennomgå før påføring.

Hvilke spor av etterretningstjeneste

Crawls & nettsteds helse

Skanner sidene dine for tekniske SEO-problemer og lister hver side med problemene sine. Kjør på nytt når som helst, eller planlegg den.

Ranksporing

Legg til de nøkkelordene du bryr deg om; OpsIQ -kontrollerer hvor nettstedet rangere og spor bevegelse over tid.

Nøkkelordforskning

Oppdag nye nøkkelord ideer å målrette, med AI søkeord coach for å hjelpe prioritet.

Tilbakelenker

Se hvem som koblinger til deg, oppdatere listen og avvis linkene du ikke ønsker å knytte seg til nettstedet ditt.

Konkurranse

Legg til konkurrentdomene og sammenlign din synlighet mot deres, med en AI-konkurrentanalyse.

Lokalt (kart) rutenett

Skann lokallistesynlighet over et geografisk rutenett for å se hvor du vises på kartet, pluss Google Business Profile verktøy.

Sidehastighet

Kjør sidehastighetskontrollene slik at du kan fikse langsomme sider som skader rangeringer og konvertering.

AI-innhold

Opprett innholdsbriefer og utkast rettet mot nøkkelordene du målrett.

Rapporter

Bygg utskrivbare, kundeklare rapporter om alt ovenfor.

Koble til Google for nøyaktige data

To Google-kontakter gjør estimatene til virkelige tall:

Google Søk Konsollen

Søk

Dra de nøyaktige spørsmålene, klikk og inntrykk av Google-rapporter for nettstedet ditt, kartlegg over eiendommen din og muligheter til å rangere overflaten direkte fra Googles egne data.

Google Analytics 4

trafikk

Ta med trafikk- og engasjementsdata sammen med SEO dataene dine, så rapporter viser synlighet og oppførsel.

Planlagte oppdateringer og hvite merker rapporter

Du trenger ikke å kjøre alt for hånd. Planlagte oppdateringer re-run kryp, rangkontroll, nøkkelordskontroller, backlink oppfriskninger, lokale-grid skannere og rapporter generasjon på en kadens (daglig eller ukentlige avhengig av plan and volum). Disse kjører gjennom den OpsIQ cron, se Cron og automatisering delen. Generert rapporter eksport som utskriftsbare kundeklare dokumenter: byråene sender hver klient en vanlig SEO-oppdatering, og fordi alle domenets data er separat, ser hver klient bare sin egen.

Noen nettstedets intelligens-funksjoner kaller eksterne dataleverandører og AI gjennom OpsIQ Konfigurert leverandør. De fungerer ut av boksen når suiten er aktivert for planen din. Hvis en oppdatering ikke kjører, bekrefter du OpsIQ cron kjører (se Cron og automatisering).
Må jeg legge til noe på nettstedet mitt for SEO sporing?+

Crawls, rangering sporing, søkeord forskning og backlinks fungerer uten å røre nettstedet. For trafikk-og nøyaktig søksdata kan du koble Google Search Console og GA4 til.

Kan jeg spore mer enn ett domene?+

Ja. Legg til hvert domene separat; deres kryp, rangeringer og rapporter holder seg helt isolert fra hverandre.

Hvor ofte bør jeg krype?+

Ukelig er det mye for de fleste nettsteder; krølle etter behov etter et stort innhold eller strukturendring. Sett en tidsplan så du aldri glemmer.

Vekst & SEO

Automatisk implementering (SEO Agent)

Auto-Implement er den delen av Site Intelligence som faktisk bruker rettelser krøllen og AI analytiker anbefaler, i stedet for bare å rådføre deg. Agent fungerer strengt fra det nettstedets intelligens allerede funnet (det kan aldri oppfinne en endring) og går hver fikse gjennom samme sikre loop: et tørrkjørings forhåndsvisning, din per trinn godkjenning, live skriving, automatisk øyeblikksbilde samt en recrawl som beviser at åpen utgavetallet gikk ned. Det er en Managed -AI eneste funksjon; det vises som autoimplementet (Rocket) handling inne på siden etterretningsdelen, og det er slått av til du slår dem på.

Auto-implementering
Auto-implementere SEO agentEn flyt som viser anbefalte SEO-rettinger beveger seg gjennom forhåndsvisning, godkjenning og liveskriving med en reproof-it-recrawl.Auto-implementeringyoursite.comAnbefalte rettelserAdd missing <title>godkjentReparer robots. txtgodkjentSend inn nettsted.xmlreviewFORHANDLING AV DRYKKEKØRING (DIFF)+ <title>AI Helpdesk - OpsIQ</title>+ <meta name=description ...>- <title>Home</title>GodtaHoppRE-CRAWLÅpne problemer 124Snapshot lagret1ForespørselTørrkjørt diff på hver fix2GODKJENN OG BRENNSSH eller hostet API3RIKE & ROLLBACKRe-crawl + øyeblikksbilde
Hvordan en sesjon kjører: agenten lister opp rettelsene Site Intelligence allerede anbefalt, viser et tørtdrevet diff av hver og én, gjelder de du godkjenne over SSH eller hostet API, øyeblikksbilder før hver skriving og re-crawls for å bevise det åpne problemet antall falt.

Hva det kan endre seg

Agenten bruker bare noen gang rettelser som Site Intelligence (eller AI-analytiker) allerede anbefalt for det domenet. Over de støttede plattformene som dekker:

Serverkonfigurasjon

Nettsidekart.xml, roboter.txt og omdirigere, kanoniske regler og overskriftsregler i htaccess (Apache / LiteSped) eller nginx-konfigurasjonen.

Omdiriger kjeder

Slår sammen en multi-hop omdirigere kjede ned til et enkelt hopp rett på finalen URL, inne i den samme administrerte htaccess blokken så hastighet og link verdi slutte å lekke gjennom ekstra hopp.

Page <head>

Manglende eller svake sidetitler, metabeskrivelser og kanoniske tagger samt strukturerte (skema) blokker.

WordPressSEO

Yoast, Rank Math og SEOPress titler & meta samt bilde alt tekst som brukes gjennom Wp-CLI på SSH Vei eller REST API på den vertslige veien.

WordPress strukturerte data

Legger til JSON-LD (Schema) til sider som mangler det. På SSH sti en liten håndtert hjelper (en må-bruk plugin) skriver ut markering slik at det fungerer med eller uten SEO -plugin; på den vertssti som SO programtillegget bærer.

Interne lenker

Legger til en relevant intern lenke i eksisterende WordPress innhold for å redde foreldreløse sider og koble sammen tilknyttede innlegg. En link per side, aldri inne på overskriften, en eksisterende lenkje eller kortkode, og alltid godkjent av deg først.

Innhold på tynn side omskriver

Utkast til full erstatningsinnhold for tynne sider (drevet av et kryp alternativ, se nedenfor). Hvert utkast er gjennomgått og godkjent av deg før noe publiserer, og det gamle innhaldet holdes slik at den kan gjenopprettes.

Sidebuffer (WordPress)

Slår på W3 Total Cache-siden caching når krypet finner hastighetsproblemer og det plugin er installert, så sider betjene raskere.

ShopifySEO

Produkt og samling SEO titler, side-og blogartikkeler SO samt 301 omdirigerer, gjennom Shopify Admin API.

WebflowSEO

Per-side SEO tittel og meta beskrivelse gjennom Webflow Data API v2.

Forbered rettelsene automatisk (to krypalternativer)

Nettsted Intelligence Configure-panelet for et domene (dets krypinnstillinger) har to alternativ som bestemmer hvor mye agentlinjene står opp i førtid. Begge er av som standard og begge bruker AI kreditt, så du slår dem på bare når du vil det fungerer for deg.

Auto-preparere AI retter etter hver kryp

Hver kryp skriver også betongfiks innhold (titler, metabeskrivelser, alt tekst, skjemaer og omdirigeringer) for hva det fantes. Rettelsene er klare til å gjennomgå og bruke øyeblikket krøllen fullfører i stedet for senere på etterspørsel. Bruker AI-kreditt på hver kravle.

AI-innhold omskriver (tynne sider)

Agenten kan skrive ut fullt erstatningsinnhold for tynne sider. Ingenting er publisert på egen hånd: hvert utkast vises som en endring du gjennomgår side omside og godkjenne eller avviser, det forrige innhaldet holdes slik at den er reversibel, og det er begrenset til noen få sidene per pass. Bruker AI-kreditter pr kladd.

💡
Begge alternativene forbereder og trekker bare arbeid. Hver endring går fortsatt gjennom den samme per trinn godkjenning, øyeblikksbilde og rulle tilbake som enhver annen løsning så slå dem på aldri setter noe live for seg selv.

To måter den kobler sammen

SSH / SFTP bane

Selvstyrt

For nettsteder på din egen server, kobler agenten over SSH/SFTP ved hjelp av legitimasjoner du lagrer, redigerer serverkonfigurasjons- og sidefilene direkte. WordPress. Best når du har skalltilgang og ønsker full kontroll av filer.

Hosted-API sti (ingen SSH)

Ingen skall

For plattformer som ikke tillater SSH, agenten fungerer helt gjennom en offisiell API kontakt, WordPress (REST + Applikasjonspassord), Webflow (data)API v2) og Shopify (Admin)API Ingenting er installert på verten.

💡
Wix og Squarespace har ingen offentlig SEO-skrive API, så på disse plattformene Auto-Implement kjører i rådgivningsmodus: det viser deg nøyaktig endring for å gjøre (den presise tittelen eller meta eller innstilling) som du kan bruke ved hånden. Alt annet er skrivebeskyttet og trygt.

Slå på kontaktene

Agenten når hver plattform gjennom en kobling:

Bygget i

Shopify og WordPress konnektorer skip med OpsIQ, bare aktiver dem under Connectors og legge til lager / nettstedets legitimasjoner.

Fra markedet

Webflow, Wix og Squarespace installer fra Connectors → Markedssted, deretter koble til på samme måte.

Hvordan en økt kjører

1
Velg rettelser

Åpne automatisk implementering (rocket) fra Site Intelligence-delen. Den viser problemene som Nettsidens etterretning allerede har funnet ut at den kan fikse på dette domeneområdet.

2
Forhåndsvisning av hver endring

For hver fikse agenten viser en tørr-kjør diff (nøyaktig hva det vil skrive) før noe berører live site.

3
Approve trinn for steg

Du godkjenner (eller hopper over) hver endring individuelt. Ingenting brukes uten eksplisitt gå-over på det trinnet.

4
Det skriver, og deretter øyeblikksbilder

På godkjenning gjør agenten live endring over SSH eller hostet API og lagrer et øyeblikksbilde først, så enhver endring kan rulles tilbake.

5
Bevis det, lev

Når det gjelder hver endring, sjekker agenten umiddelbart om den nøyaktige siden og viser en per trinn “fiksert live” dom så du ser hvert fikse land på levende side som det skjer. Til slutt kraper hele nettstedet igjen og bekrefter at antall åpne utgavene falt.

Sikkerhet og fakturering

SEO-beskyttet

Agenten kan bare gjøre det Site Intelligence anbefalt for dette domenet. Det kan ikke foreta vilkårlige endringer på nettsted eller server.

Per trinn godkjenning

Hver skriving forhåndsvises som en diff og brukes først etter at du godkjenner det bestemte trinnet.

Ta øyeblikksbilde og tilbakestill

Et øyeblikksbilde lagres før hver skrive, slik at enhver endring kan returneres.

Live per-trinn bevis

Hver endret side er kontrollert om øyeblikket den skrives og får en \"fixed live\" dom, så et grep bekreftes mot Live-siden umiddelbart, ikke bare i lukkende recrawl.

Innhold blir aldri automatisk utgitt

Interne lenker og omskrivinger av tynt innhold er høyere impactive, slik at de alltid vises for godkjenningen.

Kun Administrert-AI

Auto-Implement kjører på Managed AI; det blokkeres når et arbeidsområde bruker sin egen (BYOK nøkler.

Fakturering

AI-tokens regning normalt som du bruker dem, pluss en flat per bruksavgift pr. AutoImplement sesjon, begge trukket fra den samme Managed -AI kreditten.

Automatisk implementering er av som standard. Aktiver den på AI-konfigurasjonssiden (AutoImplementkort) og sørg for at koblingen til plattformen din først kobles sammen.
Men endrer det noe uten å spørre?+

Nei. Hver endring blir forhåndsvist som en tørrkjørt diff og brukes først etter at du godkjenne det nøyaktige trinnet. Et øyeblikksbilde lagres før hver skrive, slik å rulle tilbake.

Trenger jeg SSH Access?+

Ikke på WordPress, Shopify eller Webflow Disse arbeider gjennom sin tjenestemann APIs uten tilgang til skall. SSH er bare en av de to stiene, som brukes når du vil at agenten skal redigere serverkonfigurasjon og filer direkte på din egen tjener.

Hvordan vet jeg at det fungerte?+

Etter å ha brukt den godkjente fikser agenten på nytt, og viser det åpne problemet før eller etter så kan du bekrefte at løsningene redusert problem.

Vil det omskrive eller publisere sideinnhold på egen hånd?+

Nei. AI-innholdsomskrivinger er av til du slår dem på i krypealternativene, de begrenser seg til noen tynne sider per pass og hvert utkast vises for side ved siden godkjenning før noe publiseres. Det forrige innhaldet holdes så en omskrivning kan alltid tilbakeføres.

Kan jeg bruke det med min egen AI-nøkkel?+

Nei. Auto-Implement er bare Managed -AI og blokkeres under BYOK_. Det regninger AI tokens normalt pluss én flat per bruk avgift for hver sesjon, fra den samme managede-AI kreditten.

Vekst og engasjement

Survey StudioGenericName

Survey Studio er arbeidsområdet for å opprette redigerbare undersøkelser som kan leveres som en rik frittstående side, nettside widget eller inline innebygd. Det aktuelle produktet gir også vertskoblinger, signert utkast til forhåndsvisningar, private invitasjoner, QR-deling, responsbrowsing og spørreundersøkelseskopt analyse. Nettstedet widewriteen er ett levering valg; det er ikke definisjonen av ei landmåling.

⚠️
Nåværende målgrense: førsteklasses opprettelse og forhåndsvisning, Connector Builder survey kapasitet, og Survey-eid leverandør register/helse grense er tilgjengelig nå. Undersøk Studio trenger fortsatt den uavhengige multideployment arkitekturen, signert-token undersøkelse identitet Gateway, målrettet / variable ledninger, CRM Outreach sende flyt og skrevet surveys.* API.

Opprett en undersøkelse

1
Velg hvordan folk tar det

Den gjeldende veiviseren tilbyr Standalone-siden og lenken, Nettsteds widget og Inline embed. Det godkjente målstrømmen begynner med undersøkelsestype og legger senere CRM epost, privat link og QR utdelinger som førsteklassesvalg.

2
Velg formålet

Velg NPS, CSAT, CES, produktfeedbacks, post-kjøpekassen, kansellering, onboarding, nettstedet, arrangementen, webinar, støtte, bly/demo, prøveperiode, vitnemål, forskning, ansatte, inntak eller generell tilbakemelding.

3
Bruk en komplett mal eller start tom

Den gjeldende katalogen har klare redigerbare startere gruppert etter formål. Å velge en mal oppretter et kopiert utkast: å endre undersøkelsen din ændrer ikke startmannen eller en annen spørreundersøkelse.

4
Tilpass eller rask gjennomgang

Tilpass åpner alle spørsmål, design og oppførselskontroll. Rask gjennomgang åbner det samme utkastet ved den endelige kundevisningen. Ingenting publiserer eller sender automatisk.

Levering valg og present atferd

Registrer deg på siden & link

En responsiv merkeside med sin egen URL. Bruk private invitasjoner og utløp når hver mottaker trenger en kontrollert lenke. QR delingspunkter på denne vertsopplevelsen.

Nettside widget

Den migrerte arvekanalen. Det kan bruke side, geografi, enhet, besøkende, dato, prøvetaking, nedkjøling og kvoteregler. Det støttes fortsatt av den gamle aktiv-widget bro mens distribusjon arkitekturen er bygget.

Innvevd

En responsiv undersøkelse plassert inne i en side, portalen eller hjelpesenteret. Den krever ikke kampanjestudioet.

E-post

I dag kan Studioet generere invitasjon HTML og private lenker. End-to-end sending fra CRM kontakter/segments, med samtykke, undertrykkelse, planlegging, reprøve og respons korrelation er godkjent VR OutReach integrasjonsmål.

Enterprise design og forhåndsvisning

Undersøkingssider har Survey-eide temaer og sideutleggsfamilier, responsive kontroller, velkommen til å fullføre kopien av programmet. Designeren er fullbredde under redaktøren, ikke en smal sideskinne. Den bruker den riktige vertens kjøretid i sandboksrammen og støtter skrivebordsoversikt, nettbrett eller telefon bredde; forhåndsvisning trafikk skriver ingen svar eller analyser.

💡
Survey Studio er uavhengig av kampanjestudio. Runtime målsetting, identitet, eiendeler og analyse må være undersøkelsesbasert. Innholdet kan kun gjenbrukes gjennom en eksplisitt engangskopi/import som oppretter fraskilte undersøkelsesdata; senere kampanjer har ingen effekt.

Fullformet produkt

Uavhengige distribusjoner

Nivå

En undersøkelse kan ha separat versjonsside, widget, embed CRM e-post, privat link og QR distribusjoner, hver med sin egen tilstand, design, publikum og analyse. Hver spørreundersøkelse kan settes i pauser eller slettet.

CRM Outreach og kampanjer

Nivå

Bygg et verifisert publikum fra CRM-segmenter og Survey Capable Connectors, frys det til en immutable versjon, utstede én signert invitasjon hver av dem. Send gjennom den festede utgående epostkontakten med per innvisjonsleveringsbeviset.

Feltsett og validering

Nivå

Slidere, bildevalget, filopplasting, signatur, adresse, telefon og rik tekst med min/maks lengde. e-post /URL/nummerinnstillinger, egendefinerte feiltekst og per spørringsprefill URL Parametre.

Logikk, formler, resultater

Nivå

OG/OR tilstandsgrupper, grenregler, en sikker formelmotor over svar og score band som bærer sin egen utfallside: et poengt Quiz lander på dommen.

Language, kiosk

Nivå

En besøkendes språk nedtrekk bare språket med ekte oversettelser, kiosk-modus for delte tabletter (biggermålene, auto reset, ingen omdirigeringer), en forhåndsutfylling lenkebygger og redigerbar sikker badge og bunntekst.

Versjon A/B-testing

Nivå

Publisere en utfordrerversjon på enhver distribusjon med trafikksplitt. Besøkende er tildelt klistremerke, svarene stemples sammen med versjonen faktisk serveret og sammenligningstabellen viser responsar, ferdigstillelse og gjennomsnittlig poeng per versjon. Fremme vinner i ett klikk.

Ukelig fordøyelse

Nivå

En ukentlig e-post med de siste 7 dager av undersøkelse KPIs, den travleste spørreundersøkelsen, Feedbackpulsen og den nyeste AI briefing som sendes gjennom det festede utgående kontakt. Konfigurer det i Leveringssenteret, Automasjon.

Styre

Nivå

Per-overvåkingslister begrenser hvem som kan redigere, publisere eller slette en undersøkelse. Publiser godkjenning (fire øye) krever at den andre adminen frigir det nøyaktige utkastet; redigering tilbakestiller godkjennelsen. Utkast til aksjelenker lar reviewer se det virkelige kladd uten å logge inn.

Utviklerplattform

Nivå

Konnektorkontrakt 2.2, skrivne undersøkelser* og tilbakemeldinger. * Handlingstiltak på api/v1, kanonisk undersøkelse.* hendelser, slitesterkt signerte webhooks med Slack og Google Sheets stafettformater samt ett-respons PDF eksport.

Vekst og engasjement

Survey Analytics og Feedback er ulike produkter

Survey Analytics forklarer hvordan en undersøkelse selv når folk og utfører. Feedback forteller hva kunder sa over alle tillatte kilder, og hva virksomheten bør gjøre med det. De to produktene knytter til hverandre men ikke deler eller skriver over analytisk sannhet.

Analyse av spørreundersøkelser

Oppgis fra den individuelle undersøkelsen i Survey Studio, ikke fra den globale sidenavigeringen. Den måler kvalifiserthet, eksponering, utløse atferd, starter, fullfører, avgir, spørsmål og gren friksjon, timing, distribusjon/kampanje / versjon resultater samt driftstid påliteligheten.

Tilbakemelding Oversikt & Innboks

En autorisasjon-aware kronologisk feed for fullført Survey svar, arv widget tilbakemeldinger chat og billett CSAT, kupongsvars feedback, kunde AI-svaring vurderinger, kunnskapbase nyttige stemmer og godkjent eksterne / spesialkilder.

Tilbakemeldingsanalyse

Analyserer kundebetydning: originale metriske trender, emner/temaer, følelser, intensjon, haster, klager, ros, reise / produkt / service / lag segmentene, nedsenkning og lukket loop utfall.

Dataeierskap

Undersøkelsessvar forblir autoritative i Survey-lagring. Feedback lagrer en gjenskapbar kildereferanse og avledede signaler, deretter laster tillatt bevis på etterspørselen. En fullført undersøkelserespons blir til det meste ett tilbakemelding element.

⚠️
Den nåværende Feedback-siden har fortsatt en Survey responsleser og et separat element innboks, og AIs totaler bruker ennå ikke den fullstendig normaliserte kildemodellen. Det forente Oversikt / Innbakke/ Analytics

NPS, CSAT, CES, stjerner, tommelfinger og hjelpeevne må alltid beholde sin opprinnelige metode, skala, prøven, datovinduet og nevneren. De kan aldri kombineres til et uforklarlig gjennomsnitt.

Vekst & SEO

Kampanjestudio

The Promotions Studio gjør nettstedet ditt til en konverteringsmotor. Design pop-ups, bannere, lysbilde innlegger, topp/bunn barrene, fullskjermovertakelser og inline blokker og selv landbasert omdirigeringer, deretter viser riktig melding til den rette besøkende i det rett øyeblikk. Alt leveres gjennom OpsIQ _widget allerede på nettsidene dine, så det er ingenting ekstra å installere. Du designer og lagre kampanjer når som helst; de bare vise dem etter at du publiserte og studiot slås på for arbeidsområdet din.

Kampanjestudio
Studio designerEn visuell kampanjedesigner med en blokk palett, pop-up på lerretet og et målgruppe.Studio - DesignerBLOKKERConstellation name (optional)xVelkommen, {first_name}!Få 15% av din første ordreSAVE15Krev kupongen minTARGERINGLandUSA, CAUtløserUtgangs-intentA/B-deling50 / 50Publiser1DESIGNDra blokker på lerret2MÅLLand, side3LEVERA/B vinner + AI innsikt
Den visuelle designeren: en blokker palett til venstre, kampanjen på lerretet (her er en personlig kupong pop-up ved hjelp av et {first_name} pollett) og målrettet + publiseringspanel til høyre.

Det store bildet

Kampanje

Hva

En kampanje: en pop-up, banner, bar, glide inn, fullskjermen eller inline blokk eller geo - redirect. Hver har et mål: salg, bly, tilmeldingsliste, chatt, undersøkelser og kunngjøring.

Design og versjoner

Hvordan

Du bygger utseendet i den visuelle redaktøren. Hver lagre skaper en ny versjon, slik at du alltid kan rulle tilbake. Ingenting er noensinne tapt.

Målrettet

Hvem

Hvem ser det: land, side, enhet, trafikkkilder og retur vs ny, timeplan eller (med en kontakt) dine innloggede kunder.

Utløsere

Når

Når det vises: umiddelbart, når du er forsinket, på ruller, ved utløpsinnsats, i inaktive tilfeller med et klikk etter N-sider eller fra chat/billetter.

Analyse

Resultater

Live-inntrykk, klikk gjennom, konverteringer, drop offtrakte, land / side/enhetsdelinger og en AI innsikt.

Start din første kampanje i 5 -trinn

1
Start fra en mal eller tom

Åpne kampanjestudio og klikk Ny kampanje, eller velg et ferdig design fra maler galleri. Et utkast åpnes i designeren.

2
Design den

Dra i blokker, overskrifter, tekst, knapper, bilder, merker, statistikk, nedtellinger, skjemaer, kuponger, videoer, vurderingar, spin-hjul. Stilfarger, gradienter og 3D effekter med glidebrytere. Forhåndsvisning Skrivebord / Tablett/mobil, og bruk Gratis flytting til å plassere noe som helst hvor som helst.

3
Personliggjør det

Type tokens som {first_name}, {country} eller {company} på hvilken som helst tekst. På show-tid blir de besøkendes virkelige verdier.

4
Mål og utløser

Velg hvem som ser det (land, side, enhet og publikum) når den brann (delay, rulle ut eller avslutte-inn). La en regel stå tom for å bety alle.

5
Sjekk og publiser deretter

Klikk Sjekk for en rask forhåndslansering-skanning, og deretter publiser. Det går live i løpet av sekunder og begynner å samle analyse.

Blokker du kan bygge

Innhold

Kjerne

Overskrift, avsnittet liste, sitat, bilde, ikon, merker, stat, delingsdeler og avstandsstykker, byggesteinene i enhver melding.

Ring til handling

Kjerne

Knapper med ekte handlinger: åpne en lenke, starte chatten, opprette billett, kopiere kupong eller hopp til siden.

Urgency & fangst

Premium

Nedtelling timers, skjemaer (email / telefon/tekst), kupong avslører og video embed.

Gamifisert og tilbakemelding

Premium

Spinn-til-vinne hjul, skrapekort, NPS / stjernerangeringer og flertrinnstrakt.

Layout & effekter

Premium

Kolonner, fremdriftsstanger, sosial deling, Social bevistikkere, ja/ingen to-trinn, quizzes og 3D effekter, tilting, gløde, parallax.

Personaliseringssymboler

Skriv inn noen av disse i overskrifter, avsnitts- knappene, merkete, statistikken eller sitatlisten. De erstattes med besøkendes live detaljer øyeblikket kampanjens visning (alltid rengjort for sikkerhet):

Tilgjengelige polletter
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ålrettsreferanse

Land og plassering

Vis kun i (eller skjul fra) utvalgte land, byer eller tidssoner via GeoIP. Flott for regionspesifikke tilbud eller en geo-omdirigert !

Sider og URLs

Begrens til visse sider ved å bruke lik / starter med/ inneholder // regulær, og ekskluder også sidene.

Enhet

Skrivebord, nettbrett eller mobile enheter som f. eks en slank bar på mobiltelefonen og et modal på skrivebordet.

Besøkstype

Ny, returnerende og kjent (i CRM) eller anonym; VR segmenter, livssyklus-stadiet, blypoeng eller nettleserespråk.

Trafikkkilde

Ved UTM (utm_source, utm/campaign) eller referansenettsted, for eksempel kun besøkende fra en bestemt annonse.

Planlegg & frekvens

Start / sluttdatoer, tids-på-dag vinduer og hvor ofte en person kan se det (per økt per dag etter at de lukkes/klikke på / konvertere).

A/B trafikk split

Vis til en prosentdel av besøkende og kjøre varianter hode-til -hode; den samme personen ser alltid det samme.

Publikum (lappet inn)

Med en kontakt aktivert, målrett ved live kontotilstanden, f. eks kunder med ubetalte fakturaer eller aktive abonnenter.

Utløsere

Velg hvordan kampanjen vises: umiddelbart, etter en forsinkelse på rulledybde, ved utløpsinnhold når den er inaktiv, med et klikk av ett element efter flere sider som ses i skjema-abandon eller fra chat/billettaktivitet. Utviklere kan brenne én fra sin egen kode sammen med window.OpsIQPromo.fire('event').

Målinnloggede kunder (tilkoblinger)

Dette er det som gjør OpsIQ kampanjer spesial: koble til en plattform som WHMCS (eller hvilken som helst kontakt som støtter publikum) og studioet kan målrette besøkende av deres live kontotilstand.

1
Aktiver en publikumskontakt

Under kontakter, aktiver en som avslører publikumsfakta (WHMCS gjør ut av boksen. Kunder er anerkjent sikkert når logget inn på den plattformen, OpsIQ Stoler aldri på en e-post.

2
Legg til en publikumsregel

I kampanjens målsetting > Audience, krever pålogging og legger til regler som ubetalte fakturaer >= 1, abonnement er forfallne eller kontokreditt > 0.

3
Personliggjøring med sine data

Bruk symboler som {first_name} eller {balance_due}. En "Du har en forfalt faktura" påminnelse skriver seg selv.

Audience targeting is fail-safe: if the connector cannot confirm a fact (or the visitor is not logged in), the promotion simply does not show, so a billing-targeted offer never reaches the wrong person. Building your own connector? See "Promotion audience targeting" below.

Konnektiv handel (studio supermakt)

Produktkort fra butikken din

Live- data

A Product block pulls real items (name, price, sale price, image, link) straight from WHMCS, WooCommerce, Shopify or your OpsIQ billing. Tick "Keep fresh" and the card updates its price from the platform every hour while published.

Butikk-provisionerte kuponger

Kuponger

En kupongblokk kan opprette den ekte rabattkoden i butikken din det øyeblikket du publiserer, så koden en besøkende avslører alltid fungerer ved utsjekking.

Ordre-sanne inntekter

Tilknytning

Ekte bestillinger fra plattformene dine er matchet tilbake til kampanjer timevis (etter kupongkode som brukes eller av ledelsens e-post) så inntekten du ser, kommer fra faktisk salg.

Ekte sosiale bevis

Stolt

The social-proof ticker can lead with genuine recent orders ("Ada ordered Starter Plan · 2h ago"), first name and item only, never emails or amounts.

Eksperimenter og reiser

A/B varianter & auto-vinner

Del trafikken på tvers av designvarianter; la studioet promotere den statistiske vinner automatisk, eller håndtrafikken til bandittoptimereren som skifter besøkende mot det som konverterer som bevis kommer inn.

Hold ut oppløfting

Reserver en bit av besøkende som ikke ser noe, så du kan bevise kampanjen selv forårsaker heisen.

Segmentvarianter

Forskjellig innhold per publikum på SAME-kampanjen (mobile besøkende, store kurver og returnerende kunder), får hvert segment sin egen versjon.

Trigger-eksperimenter

Varianter kan også teste NÅ å vises: umiddelbar vs forsinket mot utgangs-intent, målt hode til hodet.

Reise (kjede)

Target by what someone did with another campaign ("saw campaign A but didn't convert") to build multi-step promotion sequences.

Teasers

En liten pille besøkende kan åpne seg igjen etter å ha stengt kampanjen, så en lukket pop-up er aldri borte for godt.

Vet hva som skjedde

Klikk på varmekart

Designer

I designeren, slå på varmekartet for å male ekte besøkende klikker over hver blokk i designet ditt.

Steptrakt

Trakter

Flertrinnskampanjer viser nøyaktig hvor folk faller av, skjerm på skjermen.

Sammenlign kampanjer

Studio

Legg opp til fire kampanjer side omside (trykk, klikk og konvertering), uthevet best verdi.

Ukehistorie & fordøyelse

AI

Hver mandag lander en fordøyelse i varsler;📖Ukens historieknapp skriver en enkelspråklig sammendrag med neste trinn når du vil ha et.

Arbeider komfortabelt

AI copilot & ideer

Chat med design-copiloten for å redigere lerretet ("gjør overskriften presserende, legg til en nedtelling"), få kampanjeideer fra dine egne trafikkdata, oversett en kampanje per land eller automatisk fikse en lav designpoeng.

Import av merkesett

En kommando leser nettsiden din og foreslår dine virkelige merkefarger, lagrer alle velgere fører med seg.

Multi-skjerm trakter

Trinnblokker får ekte per skjermredigering: fanene for hver skjermen, legger til eller reorganisere skærmen og forhåndsvisning følger.

Navngitte versjoner og tilstedeværelse

Navngi viktige versjoner ("Launch candidate"), gjenopprett noen av dem, og se en advarsel når en teammedlem redigerer den samme kampanjen.

Enhetsstripe og linjaler

Se desktop, nettbrett og mobil side om siden i én visning; slå av piksel linjaler for nøyaktig plassering.

Hostet side & kanaler

Hver kampanje kan også være en frittstående vertsside for bioer og QR-koder, en epost drypp sekvens for fanget lead eller et ett klikk webpush utkast.

Bedriftssikkerhet

Publiser frysevinduer (forander-fryse perioder), en nødssituasjon pause alle bryter, godkjenninger, revisjonsti og versjon rulle tilbake.

Trenger jeg å legge til kode på nettstedet mitt?+

Nei. Kampanjer leveres av samme OpsIQ -widget som du allerede har installert. Design, publisere og gjort.

Vil besøkende se samme pop-up om og om igjen?+

Nei. Sett frekvens caps (per sesjon / per dag, eller stopp etter noen stenger, klikk eller konvertering). Følbare standardinnstillingene brukes.

Hvem kan publisere?+

Publishing, paussing, arkivering og rullende tilbake er begrenset til arbeidsflate eiere og full administratorer. Alle teammedlem kan opprette og design utkastene.

Vekst & SEO

Designer

Promotions Designer er en responsiv blokkredaktør for å bygge, gjennomlese og publisere kampanjen.

Produktskjerm
DesignerDesigneren kombinerer et live lerret, enhets forhåndsvisninger, blokker, variabler for personliggjøring, kommentarer og versjonshistorikk.DesignerarbeidsflateVIEWPORTSkrivebordVERSIONv12StatensUtkastLIV ARBETSPESSONEHelteblokkHoved, medier og CTARedigerTilbudsblokkRabatt og deadlineRedigerPersonaliseringKontakt- og kampanjevariablerKlarStartkontrollKommentarer og valideringAnmeldelse1BUILD BLOCKSRediger live-utforming2ForespørselDesktop, nettbrett3PUBLISHUtgitt utgivelse
Designeren kombinerer et live lerret, enhets forhåndsvisninger, blokker, variabler for personliggjøring, kommentarer og versjonshistorikk.

Bruk blokker til å komponere opplevelsen, forhåndsvise hver støttet visning og sette inn godkjente personaliseringsvariabler. Gjennomgang kommentarer og AI-media reprotestance før lansering. Sparing skaper versjoner slik at en tidligere design kan inspisere eller gjenopprettes.

Vekst & SEO

kampanjemaler

Maler tilbyr et søkbart, kategorisert startgalleri for kampanjekampanjer i promotionsstudio.

Produktskjerm
kampanjemalerMalgalleriet filtrerer premium layouts og anvender arbeidsområdemerkefarge når en mal blir et utkast.kampanjemalerarbeidsflateKATEGORYKonverteringRESULTS24BrandBruktLIV ARBETSPESSONEUtgangstilbudModal med haster og CTAForhåndsvisningNy besøkende velkommenBanner og fordellisteForhåndsvisningProdukt lanseringHelt, bevis og nedtellingForhåndsvisningTilbakemeldingsforespørselKompakt undersøkelsesbegrensningForhåndsvisning1FILTERKategori og søk2ForespørselSjekk det fulle designet3USEOpprett et merket utkast
Malgalleriet filtrerer premium layouts og anvender arbeidsområdemerkefarge når en mal blir et utkast.

Søk eller filtrer etter kategori, last inn ekstra resultater og forhåndsvisning av den komplette opplevelsen. Bruk mal. Den nye kampanjen forblir et utkast og kan endres i Promotions Designer før publisering.

Vekst & SEO

Forfremmelsesanalyse

kampanjeanalyse forbinder inntrykk og klikker til konvertering, publikumskontekst, kontakthandlingsutfall og kampanjelæring.

Produktskjerm
ForfremmelsesanalyseFremme analyse viser overskrift ytelse, publikum og utløse nedbrytninger, fører eksport-og kontakt actionresultatene.ForfremmelsesanalysearbeidsflateIMPRESSIONS42.8kCTR6.4%CONVERSIONS814LIV ARBETSPESSONELandStorbritannia 31%DelingSide/pricing · 22%DelingUtløserAvslutningsformål · 44%DelingKoble til handlingKupong opprettet · 97%Utfall1LEVERImponering til konvertering2SLICESide, land3LEARNBruk innsikten
Fremme analyse viser overskrift ytelse, publikum og utløse nedbrytninger, fører eksport-og kontakt actionresultatene.

Les inntrykk, klikk-gjennomgang og konverteringer sammen. Bryt ned resultatene fra land, side, utløser og enhet; eksport fanget fører når nødvendig. Kontakthandlingsresultatene viser om kampanjens lovede oppfølging faktisk kjørte. AI innsikt og læring summer bør behandles som hypoteser til validert, ikke automatisk bevis.

Vekst & SEO

Publiseringer

Kunngjøringer publisere en melding i widget-varslingsområdet med valgfri målretting, tidsplan og anrop til handling.

Produktskjerm
PubliseringerAnnonceringsredigeringsredaktøren inkluderer innhold, CTA, publikum, segmenter, sideregel og aktive datoer samt visuell stil.PubliseringerarbeidsflateAKTIVT3AUDIENCESegmentTidsplanJul22–29LIV ARBETSPESSONETittelPlanlagt vedlikeholdKlarInnholdMerk ned meldingKlarCTALes oppdateringenValgfrittReglenePriser sider · aktive kunderMål1WRITETittel og markdown2MÅLPublikum, segment3TidsplanAktivt vindu
Annonceringsredigeringsredaktøren inkluderer innhold, CTA, publikum, segmenter, sideregel og aktive datoer samt visuell stil.

Velg alle besøkende, logget inn eller nye besøkere; eventuelt smalner publikum med kontaktsegment og sideregel. Sett aktiv-fra/aktiv-til -datoer samt et aktivt flagg. Premium stilinnstillingsforutsetningene og farger endre presentasjon men ikke erstatte klart innhold.

Vekst & SEO

Push-kampanjer

Push kampanjer sender nettleserevarsler til abonnerte besøkende etter at de har forlatt nettstedet.

Produktskjerm
Push-kampanjerPush-komponisten viser abonnements rekkevidde, innhold, medier, handlinger og målregler.Push-kampanjerarbeidsflateSUBSCRIBERS8,214SEND31.6kCLICK RATE5.8%LIV ARBETSPESSONETittelDin handlevogn venterKlarKroppReturn i dag for gratis leveringKlarCTAÅpne handlevognKlarPlanleggerSend nå eller planlagtUtkast1PREPARE PUSHNavn, kropp2MÅLPublikum, segment3SENDPlanlegg eller utkast
Push-komponisten viser abonnements rekkevidde, innhold, medier, handlinger og målregler.

Konfigurer Web Push-tastene først under innstillingene for webpussj. En kampanje kan omfatte tittel, kropp, ikon, heltbilde, merket og opptil to handlingsknapper; en vedvarende varsling gjenstår til besøkende interaksjoneres.

Målrettet etter publikum, valgfri kontaktsegment og sideregel. Lagre et utkast eller sende umiddelbart. Bruk abonnementet og klikk metrikk for å dømme rekkevidde. HTTPS and a right hostet servicearbeider er nødvendig på innebygde tredjepartssider; se Web Push on third-party sites .

Vekst & SEO

Proaktive meldinger

Proaktive meldinger når ut automatisk øyeblikket en besøkendes oppførsel samsvarer med regelen, før de spør. Du bygger hver som regel i tre deler: Hva skal skje, når det bør brann og hvor ofte. Alt leveres gjennom OpsIQ _-widget allerede på nettstedet ditt.

Proaktiv
Proaktive meldingerEn proaktiv regelkomponist i tre deler: Velg en handling (chat, banner, tur, push og e-post), legg til betingelser og sett ned frekvensavkjøling.Proaktive meldingerarbeidsflate1 · HandlingChatmeldingBannerTurTrykkE-post2 · Betingelserpage = /pricingtid på siden > 20sTilbake3 · FrekvensEn gang per øktStatus1ActionChat, banner, e-post, push...2CONDITIONSSide, tid, score3FREKVENSKjøle ned per besøkende
Hver proaktiv regel er tre valg: hva som skjer (chat, banner, tur, push, e-post, webhook), når (betingelser) og hvor ofte (kjøle ned).

De tre delene av en regel

1
Hva som skal skje (handling)

Vis en chatboble eller på siden banner, start et guidet turne, send en nett push or e-post til en avdeling og brann en webhook. Tokens som {{visitor_name}} og {{page_title}} bli virkelige verdier.

2
Når det skal brenne (betingelser)

Narrow som utløser det: side/URL, tid på siden, rulledybde, blypoeng, retur vs ny, inaktiv. Med ingen betingelser brann regel for hver besøkende. Legg til minst én å målrette det. Betingelser kombinere med OG.

3
Hvor ofte (frekvens)

Sett ned en avkjøling slik at den samme personen ikke blir skadet, for eksempel én gang per sesjon eller én gong om dagen. Hver regel har på/av status.

⚠️
The workspace toggle "Run time/idle rules hourly" lets server-side actions (email, push, webhook, assign) fire on a schedule for known contacts who are not currently on the page, so you can "email idle hot leads" automatically. It needs the OpsIQ cron running. Leave it off if you only want live on-page nudges.
Vil det skyte for alle?+

Bare hvis du legger til ingen betingelser. Legg minst én betingelse (side, resultatresultat og retur...) for å målrette de riktige besøkende.

Hvordan relaterer disse til flyt og tur?+

De jobber sammen: en proaktiv regel kan starte et guidet tur, og Chatbot Flow kan utløses av en profylaktiskregel. Start med én chat-melding regler, deretter lag de andre på.

Vekst & SEO

Chatbot flyter

Chatbot Flows skriptgrening samtaler i chat widget (målinger, søkeord svar, veiledede stier) uten kode. En flyt er et sett av tilkoblete trinn (noder): du stiller spørsmål, besøkende velger en mulighet og strømningen sender dem ned matchende grenen. Bare aktive bekkene kjører på nettstedet ditt.

Hvordan det fungerer
Chatbot flyterEt flyt lerret: en hilsen node grener inn i tre alternativ knapper, hver fører til et neste skritt, se opp rekkefølge eller gi avkall på et menneske.HilsenHvordan kan jeg hjelpe?Følg ordren minBilling-spørsmålSnakk med et menneskeSe opp bestilling→Menneskelig agentUtløsere: Hilsen · Nøkkelord · Håndbok · Etter-detaljer · På chat-slutt
Chatbot flyter

Flow vs AI · når du skal bruke som

Bruk en flyt

When the path is predictable and you want it identical every time: booking steps, a returns wizard, a "which plan?" chooser, collecting an email before handoff. Flows never improvise.

Bruke AI

Når spørsmålene er åpne, - gjør dette arbeidet med min installasjon-. Kundechatt AI svar fra din utdannede kunnskap. En flyt kan gi av til AI (eller et menneske) i hvert steg.

Utløsere

Hilsen

Kjører som åpningsmeldingen når en besøkende først åpner samtale.

Nøkkelord

Kjører når besøkende skriver et ord du har oppført (f. eks refusjon, prissetting og kansellering).

Etter detaljer / etter forsinkelse

Starter når kontaktdetaljene deles, eller en bestemt tid i samtalen.

På chatten / Proactive

Kjører som chaten pakker opp (f. eks en vurdering), eller startes av et Proactive Meldingsregler.

Bygg en i fire trinn

1
Opprett flyten

Klikk på Ny flyt, navng det. Velg en utløsertype (og nøkkelord hvis Keyword), lagres. Det begynner å slå av.

2
Åpne lerretet

Klikk på Rediger lerret. Den visuelle byggmesteren der du legger til trinn (meldinger, spørsmål med knapper og grenar) og koble dem sammen.

3
Legg til grener og hånd-av

For hvert valg, trekk en gren til neste trinn. Avslutt stier ved å løse, gi til AI eller overføre til et menneske.

4
Aktiver det

Klikk på Aktiver. Strømmen går live i widgeten umiddelbart. Deaktiver når som helst uten å miste designet.

Er flyter erstattet av AI?+

Nei. De kjører side omside. Bruk flyter for å forstå stiene og AI til åpne spørsmål; en strøm kan alltid gi av til heller.

Vekst & SEO

Guidede turer

Guidede turer er trinn for steg gjennomgang som punkt på deler av siden din med talebobler og et spotlight, leder en besøkende via onboarding eller ny funksjon. De er fullt temaet og bygget i en visuell designere med live forhåndsvisning. En tur kjører bare når det markeret Aktive.

Hvordan det fungerer
Guidede turerEn dimmet side med en spotlight ring rundt et tillegg-deal knapp og en tema tale boble lesing trinn 1 av 4 med en neste knapp.+ Legg til avtaleSTEP 1 AV 4Opprett din første dealKlikk her for å legge til en avtale i rørledningen.Neste →
Guidede turer

Hvordan en tur er bygget

Trinn

Hvert trinn måler et element og viser en boble med teksten. Legg til så mange stopp som gjennomgang behovene, og bestill dem.

Forvalg og tema

Start fra en forhåndsinnstilling eller design din egen boble (farger, gradienter og spotlight) med live-forhåndsvisning til høyre.

Utløser

Alternativt knytter en Proactive-regel slik at turen starter automatisk når den regelen brann (f. eks. et tilbakevendende besøk av besøkendes første dashboardbesøk).

Aktivt bytte

En tur er kun kvalifisert til å kjøre mens Active er merket. Fjerne for å ta den ned uten at det slettes.

Bygg en i fire trinn

1
Ny tur

Klikk på Ny guidet tur, navngi den og koble en proaktiv regel slik at det starter automatisk.

2
Legg til trinn

Legg til hvert stopp: Velg det elementet den peker på og skriv bobleteksten. Reorganisere inntil banen strømmer.

3
Design den

Velg en forhåndsinnstilling eller stil boble selv. Live preview viser nøyaktig hva besøkende ser.

4
Aktiver

Tick Active og lagre. Turen kan nå kjøres på egen utløser, eller startet med en Proactive Melding regel.

Hvordan starter turene?+

On their own trigger, or via a Proactive Message rule's "Guided tour" action, so you decide which visitors see which tour and when.

Vekst & SEO

Konverteringsmål

Konverteringsmål gjør en aktivitet du bryr deg om (en inngående webhook-hending, chatmelding og billettoppløsning) til et registrert konverteringsskjema med full tildeling. Når aktiviteten brann logger OpsIQ ein konvertering mot kontakten og bind den tilbake til kampanjene, segmentene og kjeldene som førte der.

Hvordan det fungerer
KonverteringsmålEn målflyt: en payment. succeeded webhook-hendelse blir en registrert «kjøp»-konvertering verdt $49, som tilskrives kilden og kampanjen, med forhåndsinnstilte hurtigstartsmarkører ovenfor.Rask startStripe kjøpeDemo booketNyhetsbrevpayment.succeededinnkommende webhookKonvertering"kjøp" · $49TilpassetKilde · kampanje
Konverteringsmål

Definere et mål i tre trinn

1
Velg utløseraktiviteten

Klikk på nytt konverteringsmål. Velg aktivitetstypen som teller som en omdannelse, eller bruk et hurtigstartinnstillinger, Stripe kjøp, Demo-bestilt, Nyhetsbrevregistrering eller abonnement startet.

2
Navngjev det og sett en verdi

Gi konverteringen et navn (kjøp, demo_booked og tilmelding) samt eventuelt en fast verdi og ei tildelingsvindue.

3
Lagre

Spar og aktiver. Fra da av, når aktiviteten brann OpsIQ registrerer en omdannelse mot kontakten med å tilskrive seg de foregående berøringene.

Målene er allerede kablet til inngående webhooks: ethvert mål som utløser samsvarer med en inbound events type brann automatisk det øyeblikket hendelsen land. Bruk Innbunden Webhooks-siden for å koble Stripe, Calendly eller et system som kan POST JSON
Hva kan være en konvertering?+

Enhver registrert aktivitet: en inngående webhook hendelse (payment. succesed), chat e-post fangst, billettoppløsning og alt på kontakt tidslinjen.

Analyse

Tilpassede dashboards

Tilpassede Dashboards lar deg bygge din egen visning av metrikkene som betyr noe, i stedet for å stole på standardoversikten. Legg til widgeter du vil ha, dra og endre størrelsen dem inn i layoutet du liker, lagre det og dele den med teamet ditt.

Tilpassede dashboards
Tilpassede dashboardsEn dashboard-bygger med KPI og diagram widget fliser, en strekt drop sone samt et Add Widget knapp.Tilpassede DashboardsarbeidsflateMitt instrumentpanel+ Legg til widgetVisitorer2,481INNTEKTER$8.2kTRAFFIKKDra en widget herTOP BIBLESTER/pricing/docs/signup1ADD WIDGETSVelg metrikk og diagrammer2ARRANGEDra & størrelsesendring3SHAREMed ditt team
Bygg ditt eget brett: Legg til KPI, diagrammer og liste widgets, dra dem inn i layouten du vil ha.

Bygg en i tre trinn

1
Legg til widgets

Klikk Legg til Widget og velg metrikken eller diagrammet du vil spore. Gjenta for alt som er på brettet.

2
Arranger layouten

Dra widgets for å reposisjonere og dra kantene sine til størrelse. KPIer over toppen, diagrammer nedenfor. Uansett hva som leses best.

3
Lagre & delt

Lagre instrumentbordet og dele det med teamet ditt slik at alle ser på de samme tallene.

Keep separate boards for separate jobs (a "daily glance" board with live counts, and a "monthly review" board with trend charts) so each stays focused.
Vekst & SEO

Utreach-kampanjer

Utreach er OpsIQ's1:1og bulk e-postmotor: komponere en personlig melding eller kjøre en kampanje til et CRM segment, med svardetektering, sendetidkontroll, åpen/klikk sporing, en sporingspiksel og ett klikk abonnement. Det er samtykket og CAN-SPAm / CASL samsvarende.

Utreach
Utreach-kampanjerUtreach-skjermen med Komponist/kampanjer / Maller og Replies fanene, samt en kampanjetabell som viser sendt, åpent og svarrate.UtreacharbeidsflatekampanjerKomponistMalerSvarKAMPANJESENDÅPNEConstellation name (optional)SvarNyhetsbrev juni1,20048%7%Oppfølging av prøve34062%14%Vinnerback82039%5%Svar på deteksjon automatisk stopper oppfølging · ett-klikk abonnement på hver sending11:1 & BULKKomponere eller kampanje2TRACKEDÅpner, klikker og svarer3COMPLIANTSlutt å bygge i
Outreach-motoren: Send1:1eller kjører kampanjer til et segment, spor åpner og svarer på det, samt holder seg i samsvar med innebygd abonnements-og svaroppdaging.

De fire fanene

Komponist

Skriv en personlig1:1e-post med {tokens} fra kontakt og CRM.

kampanjer

Send til et CRM-segment, planlagt eller nå med hetter og sendetidkontroll.

Maler

Reusable meldingsmaler for gjentatt utvei.

Svar

Svar på deteksjon poster svar og auto-stopper oppfølging til alle som svarte.

Hvordan en kampanje kjører

1
Velg et publikum

Velg et CRM-segment (eller last opp en liste). Opptrykk og samtykke blir brukt automatisk.

2
Komponer

Skriv meldingen med personaliseringssymboler; forhåndsvisning mot en ekte kontakt.

3
Planlegg og send

Send nå eller til beste tid. En sporingspikselpost åpnes; klikk og svar er tildelt.

Outreach er samtykke- og undertrykkelsesportert, inkluderer et ett klikk abonnement på hver sending. Følg CAN-SPAM / CASL. Svar stopper automatisk ytterligere oppfølginger.
Analyse

Planlagte rapporter

Planlagte rapporter e-post et valgt metrisk sett til valgte mottakere på en tidsplan (daglig, ukentleg eller månedlig) som utskrivbar hvitmerking PDF. Sett det én gang og rapporten lander i innboksene automatisk gjennom OpsIQ krone.

Planlagte rapporter
Planlagte rapporterSkjermen som skal rapporteres: en tabell med rapporteringer, der de har planlagt seg og siste gang.Planlagte rapporterarbeidsflatePlanlagte rapporter+ Lagre rapportRapportTidsplanREVELCASSIST SENDTUketrafikkMon9:00[email protected]2d sidenSEO klientrapportMånedlig[email protected]Jun1SalgssammendragDaglig[email protected]todayLeveres som en hvit etikett PDF via OpsIQ cron1AUTOMATEDDaglig · ukentlig · månedlig2WHITE-LABELPDF til kunder3REVELCASSendt på skjema
Angi en rapport én gang (metrisk sett, område, tidsplan og mottakere) OpsIQ e-post en hvit etikett PDF Automatisk på kadensen din.

Oppgi en rapport

1
Velg hva du skal sende

Velg metrisk sett (trafikk, SEO, salg og støtte...) samt et datoområde.

2
Sett skjemabehandlere

Daglig, ukentleg eller månedlig til en gang du velger å velge én e-postmottaker.

3
Lagre

Spar og aktiver. Rapporten genererer, e-poster selv på timeplan, ingen manuelle skritt.

💡
Planlagte rapporter kjører gjennom OpsIQ cron, hvis en rapport ikke ankommer, bekrefter kronen kjører (se Cron og automatisering).
Personvern

Personvern og overholdelse

Personvern- og samsvarssiden er det eneste stedet å vise en revisor du håndterer personopplysninger ansvarlig: samtykket leder, admin tilgang loggen, dataoppholdsregler for oppbevaring av opplysninger samt et klar til trykk DPA i én fanevisning. Bare fulle administratorer kan åpne den.

Personvern og overholdelse
Personvern og overholdelseSkjermen Personvern og overholdelse av personvern: faner for samtykke, tilgangslogg, residency og DPA med en godkjennelsesblad over bidrag og tilbaketrekkinger via kanal.Personvern og overholdelsearbeidsflateSamtykkeslederTilgangsloggBostedDPAKontactKANALActionDATAL[email protected]e-postForutsetningJun12[email protected]pushTilbakekaltJun10[email protected]marketingForutsetningJun9Søkeverdig bevis på hvert samtykke og tilbaketrekking, via kanal1CONSENT LEDGERBevis på hvert bidrag2ACCESS LOGHvem rørte ved data3DPAUtskrivbar mal
En revisor-klar skjerm: en søkbar samtykkeleder (granter/gjenkaller via kanal), en tilgangslogg av hvem som rørte ved data, opphold / gjensidighet innstillingene og et utskriftsbart DPA.

De fire fanene

Samtykkesleder

En søkebar post av alle samtykkebidrag og tilbaketrekking, ved kontakt, kanal (e-post, push, SMS, inwidget), handling, kilde og dato. Din bevis en avtale om kontakt (eller trekt ut).

Tilgangslogg

Hvem som på teamet ditt så, redigerte og eksporterte eller sendte en kontaktdata med administratoren. Kontakte, handling, angitt grunn og IP

Residens & retensjon

Deklarer hvor arbeidsområdets datalevetid, angir hvor mange dager aktivitetsradene holdes (0 = for alltid) og registrere din dataansvarlige.

DPA mal

Et trykkbart databehandlingstillegg som fyller ut kontrolleren din, adressen til DPO-enheten og oppholdet. Skriv eller lagrer PDF

Personvern og overholdelse par med Cookie-godkjenningsstudioet (som samler inn samtykke) samt Eksportsiden ( som produserer datakopien for en DSAR). Se også Cron and automation for nattbevaring rengjøring.
Koblinger

Koble plattformene dine

Koblingslenke OpsIQ til eksterne plattformer: e-handel butikker, faktureringssystemer, betalingsbehandlere, epostleverandører og tilpassede APIs Når det er koblet til, kan AI slå opp bestillinger, kundedata, abonnementer og mer.

Hvordan det fungerer
Kobling hubbOpsIQ kjernen som er tilknyttet WHMCS, Shopify, Stripe WooCommerce, SendGrid og Google Business Profile som alle viser en tilkoblet status.WHMCSShopifyStripeWooCommerceSendGridGoogle BPOpsIQKERNConstellation name (optional)1PLUG IN25+ forhåndsbyggede kontakter2AI CONTEXTReal plattform data3ACTIONSFerdig med din godkjenning
Koblinger

Skip medOpsIQ

Disse er tilstede i det øyeblikket du installerer og trenger bare deres legitimasjon.

WHMCS

Fakturering

Netthotell fakturering: klienter, tjenester, billetter, fakturaer, domenenavn og server.

Shopify

E-handel

E-handel: bestillinger, kunder, produkter, beholdninger, betalinger.

WooCommerce

E-handel

WordPress e-handel: bestillinger, kunder, produkter, kuponger og frakt.

WordPress

CMS

innhold og brukere på enWordPressNettsted.

Square

Betalinger

Betalinger og salgssted: bestillinger, kunder.

osCommerce

E-handel

Legacy e-handel: bestillinger, kunder og produkter.

Botble Hotel

Bridge

Et hotell i Botble CMS gjennom det signerteOpsIQbro. Referansen implementering for en plattform utenAPI.

Zendesk

Støtte

Hjelpdesk: billetter, brukere og organisasjoner.

Google bedriftsprofil

Markedsføring

Lokal virksomhet: anmeldelser, innlegg og innsikt. Bruker OAuth

Google kalender

Produktivitet

Kalendere og hendelser. BrukerOAuth.

GmailogIMAP

E-post

Postbokser: inngående og utgående e-post, adresseboksynkronisering.

SendGrid

E-post

Send e-post: send emails og administrere maler.

Mailgun

E-post

Send e-post via Mailgun.

Slack, Telegram

Budskap

Meldingskanaler for inngående og utgående samtaler.

Metakanaler

Budskap

Facebook Messenger, Instagram DM og WhatsApp.

Nettsted etterretning (GA4, Søkekonsoll)

Analyse

Analytiske og søkedata for SEO -suiten.

Nettstedsberikelse ogCRMimport

CRM

Berikelse og bulk kundeimport.

Tilgjengelig fra markedet

Disse er publiserte pakker, ikke en del av installasjonen. Installere én fra Connectors og det blir kopiert i live connects-mappen som den oppfører seg nøyaktig slik de ovenfor.

Stripe

Markedsplass

Betalinger: gebyr, kunder, fakturaer, abonnementsinnbetalinger og tvist.

BigCommerce

Markedsplass

E-handel: bestillinger, kunder, produkter, kategorier og merker.

Magento2

Markedsplass

E-handel: bestillinger, kunder, produkter, kategorier.

PrestaShop

Markedsplass

E-handel: bestillinger, kunder, produkter og varebilregler.

OpenCart

Markedsplass

E-handel: bestillinger, kunder, produkter og kategorier.

Amazon SES, Postmerker

Markedsplass

Transaksjonell e-postlevering.

Jira, Lineær

Markedsplass

Problem og prosjektsporing.

Zoom, Microsoft kalender og Outlook e-post

Markedsplass

Møter, kalendere og e-post.

DocuSign, Apollo, SerpApiGoogle Analytics

Markedsplass

Signatur, prospektering og analysedata.

WebflowWix, Squarespace

Markedsplass

Nettstedsplattformer.

💡
Kontaktlisten beveger seg som pakkene er publisert. Autoritative listen for DIN installasjon er Connectors siden: det som står oppført, er hva kjøretiden oppdaget og fanen Marketplace viser hva du kan legge til.

Installere en kobling

1
Gå til kontakter

Naviger til kontakter i admin-panelet.

2
Finn kontakt

Bla gjennom listen eller søket. Kontakter grupperes etter kategori.

3
Aktiver det

Klikk på kontakten og slå av.

4
Skriv inn akkreditiv

Fyll ut de nødvendige feltene: API nøkkel, URL, polletter etc. Hver kontakt har bestemte krav dokumentert i innstillingspanelet.

5
Testtilkobling

Klikk på « Test tilkobling ». Et grønt resultat betyr at koblingen kan nå den eksterne plattformen, mens et rødt resultat viser feilen.

6
Konfigurer funksjonene

Velg hvilke funksjoner som skal aktiveres: kunnskap synkronisere, webhook synkronisering og AI-handling. Ikke alle kontakter støtter alle funksjonene.

Hvilke kontakter gir deg

AI-kontekst

AI kan slå opp kundedata, bestillinger og abonnementer med mer gjennom kontakten. Når en kunde chatter har AI reelle plattformsdata som refererer til det.

AI-kontekst (connector forfattere)

Kontaktens kontekstProvider gir billetten-AI en lesebeskyttet kontosummering av leieren. customer_id når det er kjent; ellers på billett auto-replies, der cTX flagg customer_trust_email er sant, se kontoen opp av customer_email (den verifiserte billettavsenderen). Fjernplattformer avslører en /context/customer-by-email sluttpunkt og kontakt kaller det. Dette er hva som gjør AI-en til en reell balanse/faktura i stedet for å si \"Vær så snill\" administratorens dataklasse bryter (customer_sections, customer_allow_credit), og forbli strengt skrivebare, aldri avgir hemmeligheter.

Kundemappen (connector forfatterne)

Kontaktens identitetsleverandør gir tre universelle billettoppslag: lookupCustomerById() (kundekort) lookupCustomerServices() (produkt/servicetabell) og listCustomers($query,$limit): the "Search customer or type email" picker on the native Compose-New-Ticket form. Return rows of {id, external_id, name, email, company, phone, platform, platform_label}. Fjernstyre: Hvis dine kunder bor i en annen database eller tjeneste, kan du hente dem over plattformens API inne i disse metodene, aldri lese det andre systemets tabeller direkte (i OpsIQ DB de er tomme plassholdere, og derfor returnerer en lokal lese en tom picker. Port fjernstien på konfigurert API URL Hold en lokal lese bare som samme-DB tilbakefall.

E-postbilletter, deteksjon og rute (connector forfattere)

Når inngående e-post blir til en innenlandsk billett, OpsIQ Oppdager avsenderen ved å ringe lookupCustomerById(0, ['email'=>$sender]) over hver kobling; den første kampen "eier" kunden og dens platform Slit er stemplet på ticket.created hendelse som _pipe_owner_platform (tom = gjest). Så a WHMCS Kunde e-post åpner billett i WHMCS (WHMCS nummerering, speilet som én), mens en ukjent avsender forblir hjemme. Hvis kontaktspeilene dine speglar innfødte billetter på egen plattform, din ticket.created Forvalteren må ha port på dette: if (array_key_exists('_pipe_owner_platform',$payload) && $payload['_pipe_owner_platform'] !== '<your-slug>') return;Nøkkelen er fraværende på ikke-pipe (chat/manual / AI) billetter, så de speil som tidligere. Per-department kontroll liv under Team & Departements → Åpne billett via epost (Enhver / Kunder bare / Av).

Handlinger

AI kan utføre handlinger gjennom kontakten: opprette billetter, oppdater bestillinger, avbryt abonnementer og alle med godkjenningen via Trust Layer.

Kunnskap

Kontakter bidrar med plattformspesifikke kunnskapsartikler til AI. Shopify kobling legger til e-handelsfeilsøking; WHMCS Koble til hosting kunnskap.

Import av kunnskapsbase (connector-forfattere)

Hvis plattformen din er vert for en kunnskapsbase, erklærer du et kb_capabilities blokk i settings.json (type) kb_source) og kontakten vises i Hjelp Center-redigeringens Importer KB → Import fra en tilkoblet app nedtrekk når det er aktivert og konfigurert på arbeidsområdet. Det er deklarativ, ingen metode å implementere: navn en innebygd adapter (zendesk for nøyaktig trehjelpesenter API, eller crawl for alle KB-nettsteder) og base_template som https://{subdomain}.zendesk.com, som OpsIQ fyller fra kontaktens lagrede innstillinger. Påbud aldri forlate serveren; nettleseren sender bare kontaktsvaken. For å støtte en ny plattform kan du legge til et opsiq_kb_<platform>_manifest() adapter og referanse den ved navn. Full referanse: connectors/PLATFORM_CONNECTORS.md §5.

Webhooks

Noen kontakter registrerer webhooks med den eksterne plattformen for hendelsesvarsler i sanntid (nye bestillinger, billettoppdateringer osv.).

Salgssporing

E-handelskontakter feeder inntektsdata inn i salgsdatorn for tildeling og analyse.

💡
Koblinger er arbeidsområdeskoplete. Hvert arbeidsområde kan ha forskjellige kontakter aktivert med ulike legitimasjon WHMCS Arbeidsplassen bruker WHMCS kobling; a Shopify Arbeidsplassen bruker Shopify Koble til.
Kan jeg bruke flere kontakter på en gang?+

Ja, du kan haShopifyfor bestillinger ogStripefor betalinger i samme arbeidsområde. AI fletter data fra alle aktiverte kontakter.

Hva om min plattform ikke er oppført?+

Bruk Connector Builder til å opprette en egendefinert kobling for hvilken som helst plattform med et REST API. Eller sjekk markedsplassen for fellesbygde kontakter

Gjør kontakt med selvvært OpsIQ?+

Ja. Koblinger fungerer identisk i både sky- og selvværte utgaver

Koblinger

Salg og faktureringskontaktkontrakt

Hver handelskontakt bruker den samme plattformneutrale hendelseskontrakten. WHMCS er referanse implementasjonen, men SaaS Bridge-butikker og betalingsleverandører må overholde de samme reglene.

Hva alle handelskontakter må publisere

En autoritativ leder

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 kilde identitet

plattformen er konnektorregisteret snegle, som whmcs, shopify eller opsiq_ssaas. traffic_source inneholder verifisert oppkjøp tilskrivelse når de leveres; Ellers bruke den samme snegle som tilbakefallet. Oppbevar identifikatorer, ikke vise etikettene. OpsIQ Løser det vennlige kontaktnavnet i UI.

Idempatiens

event_id må være deterministisk. Kart minst én immutable bestilling _ref, factor_rev eller abonnement_ref så webhook retries og backfills oppdatere samme hendelsen i stedet for å opprette dupliserte salg. service_ef identifiserer det berørte produktets eller tjenesteinstansen når en eksisterer.

Kildetidsmåler

arrangert_at er betaling eller økonomisk-event tid som rapporteres av kildeplattformen. Aldri erstatte historiske betalingsdatoer med importtiden.

Penger og FX

Send kildebeløpet og en gyldig ISO-valuta med tre bokstaver. Hvis koblingsinnstillingen aktiveres OpsIQ FX-konvertering, rapportering konverteres til arbeidsområderapporteringsvalutaen; på annen måte rapporterer å bevare butikken eller fakturering plattform valuta. Kontaktkode må ikke hardcode en rapportvalue eller vekslingskurse.

Bevisbasert livssyklus

Bruk ny, fornyelse, oppgradering, refusjon, kreditt eller ukjent. Klassifiser fra fakturagrunnen, abonnements- og tjenesteforholdet, linjeelementtypen eller et annet autoritativt kildefelt. Et gjentatt kjøp av samme kunde er ikke automatisk en fornyelse.

Salgsgrense

Kun positive betalte nye, fornyelses- eller oppgraderinger av kvitteringene for handel tilhører salg og konvertering. Refundering er rapportert ved refusjon og nettogjenvein analyse. Kontokreditt, lommebok toppopphold, toket topups og Add Funds blir faktureringsleder hendelser som aldri teller som salgs-, omsetninger, ordrevolum eller salgsinntekter.

CRM forblir separat

CRM-avtaler representerer rørlednings- og avtaleaktivitet. De er ikke handel plattform salg med mindre en tilkoblet faktureringsplattform avgir den realiserte betalte ordren eller fakturaen gjennom denne kontrakten.

Avledede projeksjoner

opsiq_konverteringer og dashboard-sammendrag er kompatibilitetsutstikk som gjenoppbygges fra ledgeren. Kontaktene må ikke behandle en utbygging som den finansielle kilden til sannhet. Kontraktrevisjon kan revurdere avledede rader uten å slette grunnregningshistoriken.

Fjernplattformgrense

En fjernkontakt leser plattformen gjennom den konfigurerte autentiserte API. Den må aldri avhenge av samme server databasetabeller. Det nøyaktig godkjente domenet site_ key leveres med ConnectorRegistr og skal brukes på alle magasinskriv-og backfill. Arbeidsplass eller gruppeområde er lesetid sammenlegging bare; det kan ikke utvide lagret eielse i hendelser.

Canonical betalt-event eksempel

Normalisert handelsarrangement
{
  "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"
}

Koble til byggemaskiner

Når salg og fakturering er aktivert i Connector Builder, kartbeløpet, valutaen, kildestatus-og kildedato samt minst én ordre eller abonnementsreferanse. API avslører autoritative livssyklusbevis. Den genererte SalesIngest passerer hver rad gjennom den samme CommerceEventRegistry normalizere som brukes av innebygde og markedskontaktene.

⚠️
Kreditter og add Funds er bevisst beholdt for faktureringshistorikk, kundebalanse sammenhengen og ledende analyse. Utvikle dem fra Sales sletter ikke; det hindret bare de i å oppblåse handelsytelse.

lifesyklus_type bestemmer hva som blir en CRM-avtale

lifecycle_type er ikke en analyse etikett. OpsIQ leser det å bestemme om et salg går inn i CRM-rørledningen, så hver salgskontakt tar ei rørledningsbeslutning om den har til hensikt eller ej.

Ny

Åpner en lukket-won avtale (ny virksomhet).

fornyelse, oppgradering

Opptegnet som løpende inntekter. Ingen ny-business avtale - fornyelser konvertere på en annen sannsynlighetskurve og bland dem ødelegger begge prognoserne.

refusjon, kreditt

Aldri åpner en avtale, i alle moduser. Pengene som returneres til kunden er ikke en seier.

utelatt / ukjent

Bare inntekter. Salget er registrert, men aldri når rørledningen !

En salgs-, en ledgers rad: identitet er salget og ikke arrangementen.

Ikke match på event_id Sett inn deg selv. event_id is platform:eventName:externalId, som svarer “har vi allerede behandlet denne leveringen” og kan ikke svare på \"har vi tidligere registrert dette salget\". En plattform som annonserer en betaling to ganger - som invoice.paid og igjen som payment.completed - minter to ids og lander de samme pengene to ganger, med ingenting å kollidere eller ikke noe å advare.

💡
Funnet på referanseinstallasjonen: seks fakturaer med tre ledger rader hver, fra tre kodestier ved hjelp av tre forskjellige event_id-ordninger. De alle båret0.00Så ingen totale sett feil, og en senere prosess gjenoppretting reelle beløp ville ha teller én betaling tre ganger.

Ring den delte skrive i stedet. Core beregner salgets forretningsidentitet (sale_fingerprint), matcher en eksisterende rad på den, bevarer originalen event_id om oppdatering, og filtrer til ekte kolonner:

Den eneste måten å skrive salgslederen på
\OpsIQ\Commerce\CommerceEventContract::upsertSaleRow('opsiq_sales_events', $row);
Same salg, mange arrangementer

faktura. betalt, payment. completed and sale. fullført for én fakturering deler en fingeravtrykk og oppdaterer ett rad.

Refunderinger forblir separate

Penger som går ut er et annet faktum enn penger kommer inn. En refusjon av en faktura holder sin egen identitet, så det kan aldri overskrive betalingen den reverserer.

Ingen referanse, ingen fingeravtrykk

En rad som ikke har noen ordre, faktura eller tjenestereferanse får ingen fingeravtrykk i det hele tatt. To uberørte rader kolliderer aldri bare fordi begge mangler et ID-nummer.

Referansepresentasjon

invoice_ref, then order_ref, then subscription_ref, then service_ref — strongest first, so one sale keeps a stable identity.

Lederen er bare vedlegg: aldri omskrive et salg

En refusjon, en kansellering eller rettelse er Ny datopost. Aldri muta raden det korrigerer. Skrive en betaling i refusjon ser ren og bryter tre ting på én gang:

Den ødelegger bruttoinntekter

Bruttosalgs- og tilbakebetalingskursen stopper å være separat — og refusjonsgraden er den estiske reverseringen eksisterer for å informere.

Den bøker reversen i feil periode

En mars refusjon av et januar salg må redusere March. Skrive Januar raden stille om en lukket periode.

Det bryter revisjonsstien

En ledende oppføring registrerer hva som skjedde på et tidspunkt i tiden. Rettelser er kontra-entres, noe som er hvordan dobbel entry bokføring har jobbet i fem århundrene.

Så en kobling rapporterer reversen i stedet for å påføre den: retur refunded_at og refund_amount sammen med salgets egen livssyklus, og la samtaleren skrive refusjonen som sin egen rekke datert når tilbakebetalingen skjedde. De to kan aldri kollidere fordi selge fingeravtrykk skiller en retur fra et salgssalg.

💡
Det samme prinsippet gjelder beløp. Ikke reparer - et lagret beløp til plattformens nåværende verdi: en faktura som er avgjort fra kontokreditten legitimt registrert 0 på betalingstid, og pengene var allerede tatt opp når kunden toppa seg. Gjenoppretting ansiktsverdien teller det to ganger.

Klassifiseringskontrakten

OpsIQ bestemmer livssyklusen once, in \OpsIQ\Commerce\SaleLifecycleClassifierEn kontakt kun erklærer hvilken av egen plattforms Ord betyr hva, ved å implementere \OpsIQ\Connectors\SalesLifecycleConnectorInterface::salesLifecycleVocabulary(), og så kaller den delte klassifier. Ikke gjenopprette resonnementet på nytt

Deklarer ordforråd, delegere avgjø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,
]);
💡
Forutsetningen er fast og delt: eksplisitt, deretter refundert / kancellert/sellert, så kreditt, da oppgradering, derefter is_ordre, deretter gjentar seg, etterpå oppkjøpet. Oppgradere sitter over ordrekontrollen fordi plattformer hev en bestilling for oppgradering også; gjentatt ligger under det fordi den første faktura av et nytt abonnement bærer en tilbakevendende linjetype. På ett tvetydig ikke-bestill salg klassifier len til inntektene og unna rørledningen.

Deklarer plattformens hele ordforråd

Dette er feilen som koster mest og ser minst galt ut.WHMCS kontakt matchet ['hosting','addon','domain'] — a list that reads as complete. WHMCS does not emit a bare Domain type for ekte domenelinjer; det avgir DomainRegister, DomainRenew, DomainTransfer, PromoHosting, PromoDomain, DomainAddon* og UpgradeAlle falt forbi listen til unknown: 1,288 fakturaer, tre år, ingen feil og ingen logglinje.

Alle nye kunder importerer sin historie gjennom en tilbakefylling av kontakten, så en klassifiseringsfeil påvirker ikke ett arbeidsområde - det påvirker alle arbeidsflater som noensinne om bord gjennom den kontakten i øyeblikket de først ser på rørledningen. Ta ordforråd fra plattformens dokumentasjon eller et folketal av levende data og matche voksende familier ved å prefix Så en søsken som ingen har sett ennå klassifiserer med sine slektninger i stedet for å forsvinne.

💡
En praktisk sjekk: telle hvor mange av dine egne rader lander på ukjent. Et sunt salgskontakt klassifiseres nesten alt. En jevn strøm av ukjent er nesten aldri data du ikke har - det er et ordforråd som koblingen aldri lært å lese.

Reparasjon av importert historie

Hver fraktet OpsIQ salgskontakt implementerer 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 å bruke det per-record hente kontakten allerede har. tools/crm_backfill_sales_lifecycle.php deretter reparerer kontaktens importerte historie uten per-connector kode: tørt kjøre som standard, backer seg opp og verifiserer raden teller før skriving, reversibel gjennom en angre ledningene, og det skriver aldri et feilaktig lese som svar.

💡
If your connector cannot re-read past records — a webhook-only connector cannot — do not stub the method. A stub returning unknown is worse than no implementation: a backfill would rewrite good rows as unclassified and report success. Implement the vocabulary interface only.
💡
Detaljerte pakkereferanser er tilgjengelige i konnektorer/CONNEECTOR_EVENTS. md og kontakter / PLATFORM _CONNEKTORERs. med i selv-hostede kildedistribusjoner.
Koblinger

Reisearrangement kontrakt

Journey Intelligence aksepterer en plattformnøytral hendelseskonvolutt fra nettleseren widget, innebygde kontakter, SaaS Bridge, markedspakker og kontrip control Buildere utgang. Plattformspesifikke navn er oversatt ved kanten; trakter, tilskrivning og Site Intellect kode bruker bare kanoniske begivenheter.

Isolasjon og tillitsgrense

Eksakt peer-domenenøkkel

Hver hendelse er bundet til den autentiserte domenesidens_ taste. En kontakt må ta denne nøkkelen fra ConnectorRegistry eller det godkjente endepunktet, aldri fra en upålitelig forespurt kropp. Domeneer beholder separat poster; ei domaingruppe består bare av et lesetid aggregat.

Ubehagelig identitet

event_id er nødvendig for kontakter og må være deterministisk i samme innfødte hendelse. Rettelser, webhooks og backfills oppdaterer én begivenhet fremfor å duplisere en reise eller salg.

Indisk pluss kanonisk navn

Bevar kilde_event-navn for bevis og feilsøking, så kartlegg den til event_name_canonical. Core analytics må aldri gren på en kontaktsvak.

Serverbevis vinner

Nettleserobservasjon kan starte eller referere til en reise. Autentiske kontakthendelser bekrefter registrering, innlogging, betaling, kjøp, fornyelse og andre terminalresultater. Et gyldig sidebundet korrelationssymbol er den sterkeste sammenslutning; et ugyldig polikum blir avvist og det innebygde ID-ene ikke stole på.

Personvern

Send kun identifikatorer og felt som er nødvendige for den deklarerte reisen. Respekt samtykke, maskering-og bevaringsinnstillingene. Legg aldri legitimasjoner, kortdata, autentiseringshemmeligheter eller private meldingsorgan i eiendommer.

Canonical konvolutt

Reise event konvolutt
{
  "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"}
}

Canonical taksonomi

Bruk det smaleste sanne navnet. Understøttede familier inkluderer engasjementside/CTA hendelser; kontoregistrering, innloggings- og passordoversettelse; bly-og skjemafaser; produkt, handlekurv, utbetaling, betaling, kjøp, abonnement, fornyelse og tilbakebetale; kampanjeinntrykk og konverteringar; hjelpesentre, chatt- og billettehendinger; sikkerhetshendelser samt navngitt tilpassede arrangementer. Typiske terminalnavn er account.signup.succeeded, account.login.succeeded, lead.form.succeeded, commerce.payment.succeeded, commerce.purchase.completed, commerce.subscription.renewed og commerce.refund.completed.

Nettleserinferanse, bekreftelse og avbestilling

Skjermprogrammet kan fungere uten en kontakt ved å observere sidestruktur, skjemahandlinger og besøksreiseloggen. Det beviset forblir eksplisitt rangert som observert eller belagt. En kobling legger til autoritativ serverbekreftelse og kan korrelere det med samme nettlesereforsøk. Overgivelse lagres først som kandidat; den blir forlatt bare etter inaktivitetsvinkel sett i brukergrensesnittet og kun når ingen senere gjenoppretting eller suksess eksisterer.

Tilknytning og inntekter

Tilknytning foretrekker et gyldig signert korrelasjonssymbol, deretter en nøyaktig reise, forsøk på å sesjon eller handelsreferansen og til slutt den samtykkede identitetsgrafen. En avgrenset atferdsmatch er uovertruffet salg som ikke er distribuert. Multi-Touch shipping vekt må totalt 1_. Site Intelligence tildelt inntekt leser denne leder; kreditter, lommebok toppups, tokens top ups and Add Funds kjøper aldri konverteringar. Kontakt FX oppførsel blir fortsatt kontrollert ved hjelp av kontaktinnstillingene.

⚠️
Tildelingsmodell, utkikksvinduer, direktetrafikkhåndtering, minimal tillit, bortvisning tidsavbrudd og traktdefinisjoner er UI-policy. Kontaktkode må ikke kode dem hardt.

Kontakt manifest og byggmester

Kontakt reiseerklæring
{
  "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"
    }
  }]
}

Deklarere kun funksjonene pakken virkelig leverer. Connector Builderen validerte kartleggingen og genererer den samme plattform-neutral adapter som brukes av førsteparts pakker. Reiseinntaket akseptert én hendelse eller en begrenset sats 100 gjennom det genererte, autentiserte integrasjonsendepunktet.

💡
Handelslederen forblir den økonomiske kilden til sannhet. Den handel-til-Jurney bro publiserer serverbekreftede utfall og konsistenter tildeling etter eksisterende idempotensielle ledger upsert, så en betaling aldri blir to salg.
Koblinger

Hvordan AI-handlinger fungerer

Hver kobling deklarerer et sett med handlinger: ting kunstig intelligens kan gjøre gjennom den eksterne plattformen. Handlinger er broen mellom "AI sier" og "AI gjør."

AI-handlinger
Hvordan AI-handlinger fungererEn kundeforespørsel som er kartlagt til et handlingskort av slette type, og deretter en sjekkliste: tillatelse kontrollert. API Ringer.Hvordan AI-handlinger fungererarbeidsflate"Avbryt abonnementet mitt"KundeAIcancel_subscriptiondeleteBekreft nødvendigparams: abonnement_id (fra kontekst)Action TYPESreadwritedeleteTillatelseskontrollDu bekrefter handlingenAPI kalt · resultat rapportert1DECLAREDHver kontaktliste lister handlinger2GATEDTilgang + Bekreft3THEN RUNAPI Ring, resultat tilbake
En forespørsel blir en deklarert handling (skrivet lese/skriving / slette) som er autorisert, bekreftet og deretter utført.

Handlingslivet

1
Kunden ber om noe

"Avbryt abonnementet mitt." AI identifiserer dette krever handlingen "cancel_subscription".

2
AI-kontrollbekreftelser

Er denne handlingen tillatt? Har den er aktivert? Har gjeldende bruker riktig rolle?

3
AI samler parametre

Handlingen trenger en abonnements-ID. AI ser det opp fra kundekontekst eller spør kunden.

4
Bekreftelse

For destruktive eller høy-impact handlinger, ber AI om bekreftelse før utføre.

5
Utførelse

Handlingen kaller ekstern plattform API.

6
Resultat

AI rapporterer resultatet til kunden.

Handlingstyper

Les handlinger

Slå opp data uten å endre noe. Eksempler: list_ordre, get_customer. Sikkert og ingen bekreftelse nødvendig.

Skriv handlinger

Opprett eller endre data. Eksempler på skap_ pikett, update_ordre. Kan kreve bekreftelse.

Slett handlinger

Fjern data. Eksempler: kanseller_subscription. Alltid krever bekreftelse

HTTP-handlinger

Deklarert i handling.json, generisk API Kalle definert deklarativt.

Funksjonsmerker

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.

Kodehandlinger

Utstyrt i PHP i kontaktklassen. Full kontroll over logikk

Eksempelhandlingsdefinisjon
{
  "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" }
    }
  }
}
Koblinger

Bygg en kobling

Connector Builder lar deg opprette en komplett kobling for enhver plattform med REST API Ingen kode som kreves for grunnleggende kontakter.

Bygg en kobling
Connector BuilderEn no-code koblingsform: navn, auth type URL En handlingskartlegging, en passerende test og et publiseringsknappen.Connector BuilderarbeidsflateConnector BuilderNavnMin plattformAutentiserOAuth 2.0(PKCE)BaseURLhttps://api.example.com/v2HandlingGET/customers → liste_kunderTest passertPakkekontakt1NO-CODENavn, aut URL2ANY APINøkkel, BearerHMAC, OAuth3PUBLISHInto /connectors/<slug>/
Peker byggmesteren på alle REST API. Sett auth, base URL og handlinger, test det og publisere en fungerende kontakt. Ingen kode nødvendig.

Fullstendig leverandør API dekning

Hver generert API kobling kan eksponere separate Native API Les og innfødte API Skrivehandlinger. Kuraterte handlinger forblir foretrukne; morsmålshandlingar dekker leverandørendpointene lagt til senere. Runtime støtter REST, GraphQL JSON, form XML, rå- og flerdelte legemer som er avgrenset paginasjon API-versjonshoder og idempatens mens du holder legitimasjoner inne på arbeidsområdekontaktinnstillingene.

⚠️
Markedsplasspakker kommer fra /marketplace_connectors samt pakket /connectors. Øk pakkens versjon, regenerere kontrakten og dokumentasjonen, kjøre konformansetester, deretter signerer du på nytt og publiserer den nye markedsplassversjonen.

Kontakt Byggeguide

Veiviseren har seks trinn, vist som faner over toppen. Du kan hoppe mellom dem fritt og Lagre utkast I bunnen holder arbeidet ditt når som helst.

1
Identifikasjon og profil

Navn, slump, beskrivelse og ikon. Velg deretter en kontraktprofil: Standard API;, Handelsplasser, Helpesk, Postkasser, Site Intelligence, SaaS Bridge eller Plattform utenAPI Når plattformen ikke tjener noe som kan ringes og OpsIQ har å installere en bro. Profilen velger et komplett utgangspunkt for evne; du kan fortsatt justere individuelle evner.

2
Autentiser

Velg autentiseringsmønster plattformen bruker og fyller ut sine felt. Skriv inn ekte testinformasjon her: de brukes til forbindelsestester på neste trinn, og ikke lagret etter at du publiserer.

3
Test

Skriv inn API base URL og et verifisert endepunkt, så kjøre en live-tilkoblingstest ved hjelp av legitimasjonene fra trinn 2Gjør dette før du definerer noen handlinger, hvis auth eller basen URL er galt, hver handling du skriver etterpå ville mislykkes av samme grunn og det vil være feil.

4
Handlinger

Definer hver operasjon: navn, HTTP-metode, endepunktstien, parameterne og innstillingene for responsfelt som er beskrevet nedenfor. Du kan kjøre alle handlinger individuelt mot live API fra dette trinnet.

5
Utløsere

Kartlegg webhook-arrangementene plattformen sender på OpsIQ hendelser, så ting som skjer på plattformen din kan begynne å fungere i OpsIQ.

6
Gjennomgang, kontrakt med bedrifter og publisering

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 does NOT run the conformance suite. Publish only validates the wizard form and emits warnings that do not block. The full suite — manifest, capability files, the identity-token contract and the bridge-snippet check — runs when you press Dry-run, and again at install time. Press Dry-run before you ship, every time.

Hvilken publisering viser at skjemaet ikke gir deg

Fem atferder av generatoren overraske folk. Ingen er en feil; alle vil koste deg ein ettermiddag hvis du møter dem ved et uhell.

Et spørsmål bestemmer gjennomgangen: tjener plattformen enAPI?

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 I stedet og STRIPS native_api Selv om en eldre spesifikasjon hadde den, så manifestet kan det genererte klassen og kompetansen ikke være uenige. ai_brain_aware Det legges til på alle måter.

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.

Tilkoblingstesten standard å få/ping

Hvis du la den bekreftede banen være tom, skriver byggmesteren /ping inn i den genererte kontakten og til profil.jsonTestblokk. Nesten ingen reell plattform tjener den rute, så testtilkobling mislykkes med HTTP404på hver installasjon og leser som en kunde feilkonfigurasjon i stedet for et pakkedefekt. Angi en bekreftet bane at plattformen faktisk svarer. For brokontakt, peke det ved ditt eget diagnostiske endepunkt - den beviser hele kjeden i ett anrop: brua er utplassert, nøkkelen matcher og bron kan nå databasen.

Ompublisering overskriver fortsatt håndredigeringene dine

Funksjoner følger nå svar på data-tilgang, så de ikke lenger driver. Alt annet generert fortsatt gjør: rediger KontekstProvider. php eller andre utsendte fil og den neste publisering erstatter det. Den ene beskyttet unntaket er brofilen - veiviseren overskrives bare en bru som bærer sin egen markør, slik at et håndskrevet nummer igjen alene blir gjengitt.

Publiserer sletter filer

Un-tick a capability and the next publish removes its provider file. Hand-edits to any generated file — ContextProvider.php above all — are overwritten without warning. Copy customisations out first, or take ownership of the package by deleting .opsiq-builder.json (after which the wizard will no longer manage it).

release_status er alltid forhåndsvisning

Veiviseren har ingen kontroll over det. En pakke som er ment å sende ettersom produksjon må ha endret release_status for hånd i innstillinger.json- og den redigeringen bryter signatur, så signer deretter.

Signaturen viser integritet, ikke opprinnelse

Byggepakker er signert med denne installasjonens egen symmetrisk nøkkel. Det oppdager manipulering. Den beviser ikke hvem som skrev pakken, og alle installerede samme nøkkelen kan produsere den samme signaturen. Behandle en lokalt signeret pakke som selv-signet.

Slug kollisjoner er bare sjekket i ett tre

Utgivelsen nekter en sløv som allerede eksisterer under/connectors/.Den ser ikke på/marketplace_connectors/,slik at en hånd-forfatter førsteparts pakke med samme sleep kan ende opp skyggelagt.

💡
Veiviseren har ikke et kunnskaps-authoring trinn. En kunnskapsfil som beskriver plattformen din genereres for deg fra navnet, beskrivelsen, auttypen og handlingene du definerte i AI når kopling er aktivert.

Defining a action (trinn 4)

Hver handling har følgende innstillinger. Bare de fire første er nødvendig; resten kontroll som kan kjøre det og hvor forsiktig.

Handlingsnøkkel og etikett

Nøkkelen er det AI kaller; etiketten er hva et menneske leser. Nøkler er namespaced med din connector slug automatisk, slik at to koblinger kan begge ha en "list_orders" uten å kollidere.

HTTP-metode

Få, pose, putt eller delikat.

URL bane

Leggt til basen URL. Bruk {name} for eksempel plasseholder /opportunities/{id}/stage

Parametre

For hver parameter velger du også hvor den går: kropp, path, query eller overskrift. En baneparameter fyller a {placeholder}; En spørringsparameter er lagt til i URL.

Svarkartlegging

Si hvilket felt i JSON -responsen betyr hva, som er kundenavnet, som ikke er epost. Dette er det som lar AI lese plattformens data heller enn gjett på den.

Hvem kan bruke den

Teamet ditt (admin AI), loggede kunder (kundechatt) både eller skriveassistent. Kunden handlinger kjører bare for den innloggede kunden, og identitetsfeltene er låst til dem automatisk slik at en kunde ikke kan spørre om noe annet.

Krever bekreftelse

Mennesket må godkjenne før handlingen går.

Destruktiv

Marker handlingen som slette eller endre tilstand. Brukes til å advare før den kjører.

Nødvendig tillatelse

Admin må ha denne tillatelsen til at AI skal kjøre handlingen på deres vegne; fulle administratorer alltid passer. Velg mellom manage_integrasjons, management_general, administrature_billling, construction_sales_bridge, administration_cnowledge _advisor_apprearance, manager_behaviator, remanging_permissions, manage/dangerzone, replief_to_chats, eskalere_too_ticket, send_agent_Email eller ingen som betyr noen autentisert administrative.

Beskrivelse / AI-hint

Valgfritt, men verdt å skrive. Det forteller kunstig intelligens når den skal bruke denne handlingen, for eksempel « Bruk dette når administrator ber om å endre en avtalefase ». Et godt hint er forskjellen mellom en handling som kunstig intelekt bruker riktig og en den ignorerer.

Kapabilitet

Valgfri klassetagge, enten billetter (billetter som leses eller oppslag) eller billett_skape (åpner en billette). OpsIQ Gate hele klassen på en gang, for eksempel skjule billett leser når et operatør slår AI-billett bevissthet av.

Listesti

Valgfritt. For endepunkt som returnerer en liste, den prikkede banen til tabellen for eksempel data eller data. items

Feilsti

Valgfritt. Et karosserifelt hvis tilstedeværelse betyr at samtalen mislyktes, for eksempel feilmelding som er nyttig APIs som returnerer HTTP 200 ved svikt.

Kjør den

Hver handling kan kjøres mot live API fra dette trinnet, slik at du kan fikse feil sti eller feltnavn før noen andre bruker det.

⚠️
Skrivehandlinger er som standard beskyttet. Enhver handling ved hjelp av POST, PUTH eller DELETE starter med å kreve autorisasjon til management_integrasjonen og menneskelig bekreftelse før den kjører. Dette er bevisst. En ny skrivehandling mislykkes i stedet for å la AI endre dataene dine uovervåket. Du kan forandre begge på handlingen, men endre dem med vilje.
💡
For å være ringe fra kundechatt, må en handling bare leses: la både Krever bekreftelse og destruktiv unclicked. En action som kunden kan utløse at også endringer tilstand er ikke noe veiviseren vil tillate deg skip ved et uhell.

Mottak av webhooks (trinn 5)

Triggers trinn gir deg en webhook URL å registrere deg hos plattformen din og verifisere alle forespørsler som kommer på den.

Signaturoverskrift

Hovedet plattformen tegner med, for eksempel X-Hub-Signature -256.

Signaturalgoritme

HMAC-SHA1, HMAC - SHA256 eller HMac-SHAB512.

Signaturordning

Enkel, en vanlig heks eller base64 fordøye. Eller Stripe-stilen, t=... uv1 = ... format som brukes av striper og flere plattformer som kopierte den.

Signaturprefiks

Valgfritt. Noen plattformer prefiks fordøyelsen, fx ha256=. La det være tomt hvis din ikke gjør det.

Event kartlegginger

Kartlegg hver hendelse plattformen sender på OpsIQ -hending den bør heve.

Autoregistrering av webhook

Hvis din plattform har en API for å administrere sine egne webhooks, trenger du ikke registrere URL for hånd. Åpne Autoregistrer denne webhook ved aktivering og peker det på to av handlingene du definerte i trinn 4:

Opprett-webhook handling

Oppringt når en administrator aktiverer forbindelsen. Du gir parameternavnet som bærer URL, eventuelt den som bærer hendelseslisten og banen i responsen som holder det nye webhoooks ID.

Slett-webhook action

Ringt når kontakten er deaktivert, ved hjelp av id-en som fanges opp ovenfor så å slå koplingen stopper også plattformen din med å sende til et blindpunkt.

Funksjoner du kan slå på

Profiler og funksjonalitet er definert av Connector-kontrakten 2.2. Generert og deklarativ evne sendes direkte; bedriftskapasitet genererer en EnterpriseExtension.php stillaser med løpstid livssykkel ledning.

Handlinger

Operasjoner som AI kan kjøre på plattformen din: liste bestillinger, finne en kunde og utstede refusjon.

Utløsere

Motta webhooks fra plattformen din og gjøre dem til OpsIQ events.

AI-billetter

AI Triage og svar Copilot på billetter som holder seg i plattformen din. Velg endepunktet som returnerer én billett med sine svar, kartlegg feltene; OpsIQ les tråd gjennom den.

Postboks og kontakter

Vis en kundes e-post på sin tidslinje, send fra et tilbud og synkroniser din adressebok til OpsIQ CRM.

Kundeimport

Siden via kundelisten din og importer hver som en OpsIQ -kontakt. Dette er hva Importer knappen kjører.

Kontekst

Skyv live data fra plattformen din inn i hver AI-samtale.

Identifikasjon

Finn ut hvilken av kundene dine som er besøkende, og vis deres profil og kjøp på billett.

Salg og fakturering

Feed inntektsbegivenheter og MRR-tall i OpsIQ dashboards.

Inngående billetter

Slå billetter og e-poster plattformen leveres av webhook til OpsIQ support trådene.

Utgående svar

Post OpsIQ -ansatte svarer tilbake til plattformen tråden har sitt opphav på.

Synkroniser brukere

Importer dine ansatte kontoer til OpsIQ admin-brukere.

Sync avdelinger

Importer dine støtteavdelinger til OpsIQ.

Promomålsetting og produktføde

La kampanje Studio mål om fakta du kjenner til en person, og gjøre dine ekte produkter inne i et promoter.

Survey Studio-leverandør

Expose server-verifisert undersøkelse fakta, rømt variabler og avgrenset CRM Outreach mottaker sider gjennom en dedikerte SurveyProvider. php Dette gjenbrukes ikke kampanjens løpstid.

Innfødte IP blokkering

Når OpsIQ blokkerer en IP Ring plattformens egen blokk API Så blokken er også håndhevet der.

Sikkerhetsbegivenheter

Motta blokkert-IP trusselsignaler fra OpsIQ.

Plattform kunnskap for AI

Hver kontakt du bygger skip en kort referanse som beskriver hva plattformen din er, og hvilke handlinger den gjør. OpsIQ admin AI leser det når kontakten er aktivert, så den forstår plattformen din i stedet for bare å se en liste med handlingsnavn. Dette genereres til deg.

API gjennomgang

Koblingen får alltid et generelt samtale så AI kan nå en endepunkt du ikke definerte en skrevet handling for. Bruk skrivne handlinger der du kan; dette er fluktluken.

Canonical Connector kontrakt 2.2 referanse

Contract version: 2.2 · 55 capabilities · 8 profiles.

Kontaktprofiler

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.

Canonical evner

Handlinger

Universal actions. Capability version: 1.0. Mode: generated. Runtime methods: registerActions. Package files: actions.json.

Utlø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.

⚠️
Byggerspesifikasjonene forblir autoritative kilder. Sett plattformspesifikke forretningsregler i genererte forlengelsespunkter; pakke livsyklusen, køer, arbeidere, migranter og konformancetester er fortsatt bygge-styrt.

Pålitelighetsinnstillinger på alle handlinger

Restene

Hvor mange ganger å prøve et mislykket anrop, med en backoff som dobler hvert forsøk. Bare tidsavbrudd 429s 5xX feil er retried; en 4 x X er din forespørsels skyld og gjentar det vil bare brenne rate grensen.

Prisgrense

Et tak på hvert minutt for denne handlingen, så en travel utløser kan ikke hamne plattformen. La den være ved 0 uten grense.

Tidsavbrudd

Hvor lenge venter du på plattformen din før den gir opp?

Bekreftelse

Kreve et menneske å godkjenne før handlingen kjører. Bruk det til noe destruktivt.

Autentiseringstyper

Trinn 2 tilbyr syv mønstre. Velg den som matcher plattformens API dokumentasjon, sender generatoren ut riktig HTTP-klient for det.

API nøkkel i hodet

En statisk nøkkel som sendes til et fast hode, for eksempel X-API-Key. Du angir overskriftens navn og etiketten administratorskjemaet skal vise. Dette sender nøkkelen som kun et hode; hvis din API forventer nøkkelen som en spørringsparameter i stedet, bruk Egendefinerte header eller et fullkode-kontakt.

Bearer-token

Token sent as Authorization: Bearer <token>. Common for modern APIs.

Grunnleggende autentisering

Brukernavn og passord, base64-kodet i autorisasjonshode. Du velger etikettene begge feltene som vises på admin skjemaet.

HMAC-signert

En offentlig nøkkel pluss en hemmelighet, med forespørselsorgan signert. Du gir signaturhodet og nøkkelen header samt tidsstempeloverskriften som plattformen forventer.

OAuth 2.0 (Klientinformasjon)

Server til server, uten brukerinteraksjon og ingen omdirigering. Du gir poliketten URL /og et valgfritt omfang; admin leverer en klient-ID og hemmelighet. Bruk dette når plattformen utsetter legitimasjon for ett program i stedet fyri en person.

OAuth 2.0 (Koble til-knappen)

Autorisasjonskodestrøm med PKCE, for Stripe Shopify, Slack og QuickBooks-stil apper. Du gir autorisasjonen URL, token URL og omfanget. Etter publisering klikker administratoren Koble til på kontakten, autoriserer på plattformen din, samt OpsIQ lagrer oppfriskende polen og mynter tilgang tokens på etterspørsel. Omdirigering URI å registrere seg i din OAuth appen vises på konnektorens innstillingsside.

Tilpassede headers

En fri form JSON Bruk header map for alt som mønstrene ovenfor ikke dekker, for eksempel {"X-API- Key":"{api_key}","X-Tenant":"{tenant_id}"}. Hver plassholder blir et felt på admin-skjemaet.

💡
PKCE gjelder kun for strømmen av forbindelsesknappen. Kunde-kredittstrømmen har ingen omdirigering og ikke brukersteg, så det gjelder ikke den.

Paginasjon stiler

Forskyvning

Bruker offset og grenseparametre. Eksempel: ?offsett=100& Begrens=50.

Side

Bruker sidenummer. Eksempel: ?page=3&per_page=50.

markør

Bruker et markørsymbol fra forrige svar.

Link-header

Bruker Link svarhodet med rel="neste".

Avansert: PHP-kode

connector.php RETURNS en instans. Det erklærer ikke et navngitt klasse somOpsIQjakt etter. Metodenavnene nedenfor er de ConnectorInterface krever; å få én feil, er et fatalt ved belastning og ikke en advarsel.

connect. php - den virkelige kontrakten, minimal og renoverbar
<?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.

Speilbilletter til det opprinnelige billettsystemet

Når plattformen eier en billett, speil den i OpsIQ fra kontakten din ved hjelp av billettinntakshjelpen (opprette for en ny billett, tilleggsvarig til oppfølging). Emit og abonner på universalbillettarrangementene i koblingens subscribers() metode, ticket.created, ticket.replied, ticket.updated, ticket.deleted. Auto-reply, eskalering, SLA og CSAT alle krok de samme hendelsene så du arver dem uten ekstra kode.

Hvem som skrev åpningsmeldingen

En billett er alltid for Kunden, men åpningsmelding kan skrives av staff: en agent som åpner billett på kundens vegne, eller når ut proaktiv. Hver helpdesk støtter dette så det er del av universal ticket.created Kontrakt i stedet for noe som hver kontakt løser privat.

author_type

klient (standard) eller admin. Utelat det og kunden antas å være den samme som kunden.

author_id

Personalet id når writer_type=admin. Aldri kunden ID.

author_name

Visningsnavn for agent eller avdeling. Går tilbake til « Staff ».

author_email

En personellmelding under kundeens e-post er en rapporteringsfeil.

Dette er ikke kosmetisk. Forbrukere leser author_type å bestemme hvem som er den. En personale-skrivet åpning rapportert client etterlater automatisk berettigede til å svare på en melding din egen agent skrev, og gjør plattformens ekko av den opningen ser ut som et nytt kundemeldinger, noe som deretter lander som dupliserer og vipper billetten til answered. Kartlegg plattformens signal på det i kontakten din hendelsesnormalisatorAldri i forbrukerne.

Sentralisert blokkering

Når en agent blokkerer avsender, gjelder det på tvers every kanal umiddelbart (e-post, chatt, portal, widget og hver kontakt tvilling) fordi blokken håndheves sentralt før noen forbindelse ser melding. Koblingen arver den ved å gjøre ingenting. Det er ingen inngående arbeid for å implementere det og ingen måte å få feil på.

Den valgfrie halvdelen er outbound: å fortelle plattformen din at en kunde ble blokkert her. Implementere det bare hvis plattformen kan uttrykke noe tilsvarende.

kapasiteter()

Må inkludere block_registrering og klassen må implementere BlockRegistryInterface. Flagget er et krav; grensesnittet er garantien. Register krever begge deler.

blockSender($b)

Mottar slag (emailądomain noget)ip), verdi, grunn, admin_id, utløper _at, site_key. Returnerer [resultat, detaljer?, remoté_ref?].

unblockSender($b)

Det er ikke noe som aldri blokkeres.

isSenderBlocked($b)

For forsoning, er det rapportert så drift i stedet for å oppdage av en kunde. Returnerer [resultatet blokkert?]

Resultatverdier

OK

Brukes på plattformen. Inkluder fjern_ref når du har en id verdt å ta opp.

noop

I den forespurte staten.

unsupported

Plattformen din har ikke noe tilsvarende konsept.

mislykkedes

Du kunne ha gjort det og den gikk galt. Inkluder detaljer; Det lander i revisjonsstien.

Å avklare er et riktig svar. Mange plattformer har ikke noe "blokkere denne avsenderen" konsept og tilbyr bare KONTO suspensjon, som stopper fakturering, innlogginger og tjenester i stedet for bare support e-post. Mapping "en agent blokkert en spam adresse" til "lukk denne klientens konto" ville la ett feilklikket blokkering avslutte en betalende kundes tjenester. Hvis det er den eneste spaken du har, return unsupported La det være alene.

Dekning dekker også tilfelle der plattformen can Gjør det, men vil ikke la deg. Sjekk etter en API, ikke en funksjon: En spak som bare finnes i plattformens admin-UI er et håndtak kontakten din har ikke.

Arbeidt eksempel · Zendesk (referansen implementering)

Les connectors/zendesk/connector.php alongside this. It is short, and every branch below is a decision you will face too.

e-post → ok

PUT /api/v2/users/{id} med suspendert=true. En avhengig sluttbrukeres nye forespurnninger omdirigerer til suspenderede billetter i stedet for å åpne en, virkelig den samme idé som blokkering på senderen, og det stopper ingen fakturering fordi Zendesk-sluttbrukerne ikke har noen. Returnerer brukerid som fjern_ref.

Domene → Ikke støttet

Zendesk kan suspendere et helt domene, men bare gjennom suspensjonen: søkeord i Admin Center blocklist-tekstområdet og ingen API skriver det feltet. Funksjonen eksisterer; spaken gjør ikke.

ip → Ikke støttet

Ingen billettnivå IP Det finnes blokk.

ukjent adresse → noop

Zendesk kan ikke forhåndsavløse en adresse den aldri har sett. Ingenting å gjøre er ingen feil, og lokalblokken stopper fortsatt billetten.

agent eller admin → ikke støttes

REFUSED. Suspending personalet ville låse en kollega ut av helpdesk. En ansatt adresse som når til et blokkliste er langt mer sannsynlig å være feil enn en instruksjon, sjekk rollen før du handler på det.

Den siste raden er den som verdt å kopiere. Kontraktet kan ikke stoppe deg med kartlegging av en blokk på noe destruktivt, så hver kontakt må bestemme seg selv hva det vil nekte. Avviser høyt, med et detail En operatør kan lese, slå lydighet.

Rapporter ærlig. Legg merke til hvor få av disse radene er ok. Det er det riktige utfallet, ikke et gap: en domenesblokk fungerer fortsatt (det håndhevs i kjernen når den skrives); Den kan bare ikke speileres utover. ok For noe du ikke gjorde ville fortelle en operatør blokken nådde plattformen din når den aldri forlot OpsIQ.

Regler

Den lokale blokken vinner alltid

Det er skrevet før du blir kalt og står hva som helst. Du kan ikke hindre en operatør blokkering noen.

Aldri kaste

Et kast behandles som ustøttet og registrert. Return mislyktes med en detalj i stedet så grunnen overlever.

Vær idempowen

Den samme blokken kan bli annonsert mer enn én gang.

Tilbake raskt

Fan-out er synkron med operatoren klikk. Køye sakte arbeid i stedet for å holde anmodningen åpent.

Ikke ring tilbake

Aldri blokkert inn igjen OpsIQ registeret hopper over den opprinnelige koblingen, men en andre humle ville loop.

Alle meldinger er skrevet til opsiq_block_registry_log (Operasjon, type, verdi, grunnen til at administrator, opprinnelse, kontaktslite, resultat, detalj og tidsstempling) slik en operatøren kan se et blokk ankom fra plattformen din i stedet for fra agent, og hva hver forbindelse gjorde om det.

Trykk vedlegg riktig

Hånd en attachments tabell som skal opprettes ()/addReply(). Hvert element bærer filen i en av tre figurer:

content_b64

Base64 av RAW-filbytene, bruk for filer bak auth (de fleste inngående tilfeller). OpsIQ avkoder den og omverter filen for deg. Den mest bærbare formen.

url/ source_url

En offentlig https URL (f. eks. et Zendesk content_url). Må være http; passerer en SSRF / tillateliste sjekk før den lagres.

stored_path

En lagret filreferanse du allerede har skrevet (det som den opprinnelige komponisten opplaster produserer).

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 bare filnavn (ikke byte), så det pålitelige inngående mønsteret er: Les bytene der koden allerede kjører (innenfor plattform, eller fra webhook nyttelast) og skip dem som content_b64 på arrangementet.

Utgående (OpsIQ → din plattform) Når en agent legger til fil, ticket.replied nyttelast gir deg svarene som stored_path elementene under OpsIQ filbutikk. Les dem og trykk i plattformens eget format, og sjekk plattformen docs, kodingsspørsmål: WHMCS Ønsker base64_encode(json_encode([[name,data]])) (JSON, ikke serier); Zendesk laster opp rå byte til /uploads.json For et tegn så sett comment.uploadsGmail sender en multipart/blandet RFC-822 melding base64url-encoded i raw; Amazon SES inbound attachments need the S3 receive action (the SNS path caps at 150 KB).

Eksterne plattformer: API + webhook, aldri en annen app tabeller

Hvis plattformen din er en separat app eller database (en vert SaaS, en fjerntelefon WHMCS; En annen DB på samme server), Skriv aldri tabellene direkte: en kryss-database skrive land på hvilken som helst forbindelse er aktiv og stille savner de virkelige radene. Alltid: outbound = Ring plattformens signerte REST API (svarer, status, avdeling og sletter); inbound = plattformen POST en signert webhook, din handleWebhook() verifisere det og brann matching ticket.* hendelse. For å stoppe en speilløkke, merke det du trykker med et opprinnelsesmerke (fx mirror_origin:'opsiq'); plattformen ekko det på webhook og din inngående manager hopper over sine egne echoes. OpsIQEvents::isMirroredEvent() På toppen av hver manager.

Speilstatus, prioritet og avdeling

En svarbevegelsesstatus automatisk, en agent Svar → answered, a Kunde Svar → customer_reply;-speil som på samme måte. For eksplisitte endringer abonnerer til ticket.updated Lese payload['changes'] (f. eks. {status:'closed'}).

Status: OpsIQ kanonisk sett er open, customer_reply, answered, in_progress, pending, closed. Hold et lite toveis kart til plattformens ordforråd, og sørg for at kolonnen din faktisk godtar verdiene du skriver (en ENUM manglende verdi blir stille og rolig falt til tom av noen databaser). Avdeling: OpsIQ -avdelings id er meningsløst på din side, Send den aldriSend deskriptoren (name, email og slug), og løse det mot dine egne avdelinger via e-post → navn → snegle, så \"Billing Department\" land i din Billing i stedet for generelt. Utløse på begge ticket.escalated og a department_id Endring i ticket.updated.

💡
Status / prioritet / emne / avdeling / slett speiling er gated ved per-kobling veksler (mirror_status_endringer, mirror_priority_changes, mirror _subject_change, mirror # department_endringene, mirror# deletes) lest gjennom den delte OpsIQ\Connectors\MirrorOptions hjelper. Bygg den blokken i innstillingene dine.json og hver billett-speil kobling leser vekslene identisk.

Koble billett til et produkt / tjeneste

Hvis kunden valgte et bestemt produkt når han åpnet billetten, kan du gi en antydning slik at agenten ser et fokusert servicekort (med ett-klikks "se andre produkter" modal for resten).

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 plattforms tjenestekode, f.eks WHMCS S396 (service396) / D11 (domene11). OpsIQ Demonterer den valgfrie type-bokstaven + id og passer til tjenestelisten din, med en Type Guard så et domenekode aldri matcher produktet av samme ID.

related_domain

Et domenenavn; matchet som en understreng mot hver tjenestes detalj / domene.

💡
Bygg vedleggslisten én gang i form over, og OpsIQ håndterer resten: hostet URLs er passert gjennom og base64-innhold lagres og hostes på nytt for deg. Du trenger aldri å skrive per plattform filhåndtering.
⚠️
Handlingstastene er små bokstaver, siffer og understrek. Byggeren godtar3til80tegn og også tillater prikker; handlingsbutikken akseptere2til100tegn uten prikker, så hold bokstavene og sifferet tilfreds med begge. Å legge til en handling skaper ingen AJAX-rute, slik at det ikke er noe å regenerere - lagre koblingen på nytt og den blir synkronisert.
Koblinger

Selg gjennom chat: handel rolle kart

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.

Filen: commerce_roles.json

Deklarasjonen bor i egen fil ved pakkeroten — Tilstedeværelsen av filen er kravet. Det kan ikke leve i connector_contract.json: den filen regenereres av emballasjeverktøyene og skjemaet forkaster ukjente nøkler, så en hånd-tilsatt blokk ville mislykkes valideringen og deretter bli overskrevet.

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

Reglene og hvorfor hver eksisterer

Roller er et lukket ordforråd

OpsIQ har aldri en rolle fra handlingens navn. En rolle som ikke erklært eksisterer ikke - å erklære seg hele kontrakten.

Operasjonen må være en av dine handlinger

Hver kartlagt operasjon må finnes i din 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.

En leserolle peker aldri på en destruktiv operasjon

Les roller (katalog, tilgjengelighet, sitat og ordreoppslag) må kartlegge til operasjoner som ikke endres på plattformen.

En skriverolle som aldri kartlegger til en generell rekordoperasjon

Kartlegging order_create til et råt bordinnlegg - record.create, db.insert, recordCreate, enhver staving eller en separator - blir avvist strukturelt. En rad skrevet direkte passerer plattformens prissetting, lagerlås og bekreftelsesposten din som produserer et eget system ikke tror fullt ut på det.

En skriverolle erklærer en gjenoppretting operasjon

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.

Betalingsroller har tre ekstra forpliktelser

En pakke som erklærer enhver betalingsrolle, må også deklarere payment_profile (valutor, land og metoder) environment — et uuttalt miljø er hvordan en test integrasjon tar live betaling), webhook_verify (leverandørens reelle signaturordning; en generell hemmelig-komparer blir nektet) og event_map (Dine hendelser på kanonisk).

I kontaktbyggeren, kryss av commerce evne og kartlegg rollene i veiviseren - det validerer alle de ovennevnte som du skriver og skriver commerce_roles.json i pakken. Fjern evnen og filen fjernes på nypublisitet. Kontroller hvilken pakke som helst for hånd med php tools/verify_commerce_contracts.php.
💡
Transport er http For en fjerntliggendeAPIeller bridge for en navngitt operasjon på en utplassert bro (se NO-APImønstret nedenfor). Roller er transport-agnostiske; kjøretiden trenger bare transporten angitt slik at det kan versjonspar en bro.
Koblinger

Koble til en plattform som ikke har noeAPI(bromønsteret)

Masser av ekte plattformer ikke RESTAPIi det hele tatt. Et hotell CMS, et gammelt faktureringssystem som er spionert internt verktøy. Du kan fortsatt skrive en komplettOpsIQkontakt for én: kontakten sender en enkelt PHP-fil som operatøren faller inn i sin egen offentlige webroot, og den filen erAPI. Denne siden er hele mønsteret, med reglene som gjør det trygt å kjøre og grunnen til hver regel.

Formen på den

En normal kontakt kaller noen andres API. Et brokontakt bringer sin egen. Ingenting annet endrer seg: de samme handlingene, den samme kontekstleverandøren og den samme identitetsavtale som pakken layouter.

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 den til sin webroot

Ved siden av plattformens egen indeks. php. Ingen plattformkode er endret, ingen plugin installeres, ingenting å opprettholde på tvers av oppgraderinger til plattformen.

3
Konnektorpanelet gir dem filen

Dine innstillinger.json erklærer webhook_help. snippet_template. Kontaktsiden gjengir den som en kopierbar fil med deres live-innstillingene allerede erstattet, så det er ingenting å håndredigering.

4
OpsIQ kallar den server-til-server

Client.php sender Få forespørsler med den delte nøkkelen i en X-Opsiq-Bridge-Key. BasenURLInnstilling er plattformens rot.

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.

Sikkerhetsmodellen, og hvorfor hver regel er der

Denne filen sitter i en offentlig webroot bak én delt nøkkel. Det eneste faktum driver hver regel nedenfor. Ikke slapp av noen av dem for å gjøre broen enklere.

Ringeren leverer aldriSQL

Not a WHERE clause, not an ORDER BY fragment, not a "just this once" raw query parameter. The caller names a table, a column and a value; your file builds the statement. The moment a caller can contribute SQL text, one shared key becomes arbitrary database execution.

Tabell- og kolonnenavn er validert mot info_schema

Identifikatorer kan ikke være bundet som parametere, så de må kontrolleres i stedet. Les den virkelige tabellen og kolonnelisten for denne databasen og nekte noe som er på det. En identifikator som ikke er et reelt objekt av dette skjemaet vil da ikke nå en spørring - hvilket gjør det trygt å eksponere hver tabell.

Hver verdi er en bundet parameter

Uten unntak, inkludert verdier i et søk. Validerte identifikatorer pluss bundete verdien er paret som gjør overflaten total og injeksjonsoverflata nil.

Lesninger er universelle, skriverne kan listes opp

Dette er den regelen som de fleste ønsker å hoppe over.

Hemmelige kolonner er omdelt på lesning og nektet å 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.

Sletting er enkelt rad, med primær nøkkel

Aldri en bulk slette, aldri et slett ved filter. En masse fjerning er hvordan ein database dør. Hvis noen virkelig trenger én kan de gjøre det i plattformen.

Less er raddekket

Klemme grenseparameteren med et hardt tak. En løpende spørring må ikke kunne dumpe databasen gjennom en chat- melding.

Feil lukket til nøkkelen er satt

En ukonfigurert bro svarer 403 til alt. en bru som er nyttig før den konfigureres, er en bridge som var hjelpsom for en fremmed.

Konstanttid-nøkkelsammenligning, nøkkel i et header

hash_equals, aldri ==. Nøkkelen går i X-Opsiq-Bridge-Key, ikke spørringsstrengen. Så det forblir utilgjengelig fra tilgangslogger og proxy loggfiler samt referanseoverskrifter.

Få kun

En metode, en form og ingenting å smugle i kroppen. Alt som broen gjør er uttrykkelig som et GET med validerte parametere, og OpsIQ är den eneste anroperen.

Leser universelle, skriver tillatt-listet - og hvorfor

Dette er regelen som blir argumentert med, så her er resonnementet i sin helhet. Assistenten bør være i stand til å se hele plattformen: det er hva som gjør den nyttig og en lese kan ikke ødelegge noe. Skrivere er forskjellige. Denne filen sitter på et offentlig webroot bak En delt nøkkel. Hvis denne nøkkelen lekkerer, vil en ubegrenset skriveoverflate gjøre lekkasen tilsvarende full databasekontroll - en ny administrator bruker, en tømm bestilling tabell. Et tillatt-liste betyr at en utlekket nøkkel fortsatt ikke når frem til ett bord operatøren aldri aktiveres.

⚠️
DenOpsIQgodkjenningskortporter AI, ikke nøkkelen. Admin klikk Tillat på en destruktiv handling er kontroll over assistenten. Det er ingen kontrol over hvem som har brunøkkelen. Dette er to forskjellige trusler og tillatelisten er svaret på den andre.
Den operatørvendte knotten fra Botble-broen
/* ── 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 sjekk nedenfor er enkle å gjøre feil. Tabellnavnet kommer allerede RESOLD, bærer installasjonens tabellprefiks mens en operatør skriver den tillatte listen udefinert fordi det vil naturlig skrive. Sammenlign begge måter eller et forutsatt installere stille tillater ingenting og alle skrivpause. Og avslaget må forklare seg selv, siden personen som leser det er admin i ett chattvindu, ikke utvikler med stabelspor.

Sjekken av tillatt liste, ordrett fra markedsplass_connectors / botble/bridgeopsiq-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 full

Fire kontroller i denne rekkefølgen, før noe berører data. Kopier bestillingen samt sjekkene.

Fire porter, i rekkefø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. */

Validere identifikatorer mot info_schema

This is the piece that turns "the assistant can reach any table" from reckless into safe. Resolve the caller's table name against the real schema, tolerate a missing or extra table prefix, and return null for anything else. Everything downstream then works with a name that provably exists.

Identifikasjonsvalidering og omsetning, ordrett 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;
};

Lese op og skrive opp, komplett

Merk hva som er bundet og det som valideres. Filterkolonnen blir kontrollert mot den virkelige kolonnelisten, og deretter interpolert som en identifikator; verdien er bunden. Grensene klemmer. Rader omaktiveres på veien ut. Oppdateringen nekter primærnøkkelen og alle auth-kolonner samt frimerker oppdaterte_ ved når tabellen har én.

Les alle tabeller - validerte identifikatorer, bundet verdier og overtrekkede rader
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,
    ]]);
}
Write one row — allow-listed table, refused auth columns, single row by primary key
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)),
    ]]);
}

Overlevende skjemaforskjell

Plattformversjoner er forskjellige. Kolonner bevege seg, få nytt navn eller fraværende. En bro som antar at ett skjema fungerer på én installasjon. Introspektere og tilpasse i stedet: velg bare kolonnene der det finnes her, toler tabellens forstavelse og prøv de potensielle stavingene til en referanse.

Skjematoleranse, 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));
💡
Give your bridge an op=diag that reports STRUCTURE only — which tables resolved, which columns the main table has, and the SHAPE of the newest reference with every digit masked. It is key-gated like everything else, and it turns "the lookup does not find anything" from a support ticket into a ten-second answer. Never let it return real records.

Uniforme feil, og opptellingsfellen

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 funnet og ingen kamp må være identiske

På en oppslagsoverflate, må det være et referanse som ikke eksisterer og en henvisning hvis bevis ikke samsvarer med samme respons. Forskjellige svar gjør broen til ett orakel som bekrefter hvilke referanser er ekte, noe som er gratis kundeliste eksport for alle pasienter.

Lekk aldri grunnen til en besøkende

Broen kan være nøyaktig medOpsIQ. Hva som når en besøkende bestemmes avOpsIQI ett fast avslag.

Den kopierbare filen i kontaktpanelet

Operatøren åpner aldri lageret ditt. De öppnar koblingspanelet iOpsIQog trykk på Kopier. Den kopien kommer fra innstillingerjson, og det må være samme program som bro/*.php

settings.json — the panel entry for a bridge connector
{
  "settings": [
    { "key": "base_url", "label": "API base URL", "type": "text", "required": true },
    { "key": "api_key",  "label": "Bridge key",   "type": "password", "required": true,
      "autogenerate": true,
      "help": "Auto-generated the moment you enable the connector. It must match OPSIQ_BRIDGE_KEY inside the bridge file; the copyable file below already carries this value once saved." }
  ],
  "webhook_help": {
    "title": "One file, three surfaces",
    "body": "This platform has no public REST API, so this ONE file IS the API. Copy it into the site PUBLIC webroot, keeping the filename.",
    "snippet_filename": "opsiq-yourplatform-bridge.php   (drop next to the site index.php)",
    "snippet_template": "<?php\n/* ... the whole bridge file ... */\nconst OPSIQ_BRIDGE_KEY = \u0027{{setting:api_key}}\u0027;\n..."
  }
}
{{setting:key}} carries live values

The connector panel substitutes {{setting:<key>}} in the snippet with that connector's saved value, so the copied file already contains the operator's generated bridge key and needs no hand-edit. An empty or unsaved setting leaves the token visible, so the operator can see exactly what is still missing.

Andre stedholdere er erstattet serverside

Uavhengig av det,{webhook_url}, {webhook_path}, {webhook_secret}, {site_key}, {base_url}og{slug}er fylt inn før panelet noensinne ser snutten.

webhook_help kan være ett objekt eller en liste

En liste gir deg flere snut i ett panel, f. eks en brofil og et separat relékrok.

🚫
Ikke oppretthold snutten for hånd. Brofil og panelkopi er to kopier av ett program, og de vil drive - en bro ble oppgradert og dens panelet kopi var ikke det så alle som reinstallerte og kopiere fra panelet installert den gamle brua og stille mistet hver ny evne. Ingenting oppdaget det: konformance passerer, signaturer sendt, testene gikk forbi.
Hold de to kopiene 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.

Hva broen bør avsløre

Formet operasjoner og en universell dataoverflate sammen. De formede de returnerer ryddelige, målbygd svar på spørsmålene folk faktisk spør; universal dekker alt annet så assistenten aldri er fast.

Formete lesninger

statistikk, hovedobjektlisten med filtrer, ett objekt som har sine tilhørende rader, katalog over det som selges. Kundesøk med historie. Disse gir AI et godt svar i én samtale i stedet for fem.

Formete skriver

De to eller tre tilstandsendringene som gjelder - sett status, kanseller. Behold de aksepterte verdiene tillatt-listet.

Universell oppdagelse

tabeller (med radtall) og beskrive (kolonner, typer, primærnøkkel samt leselige flagg per kolonne). Slik lærer assistenten en plattform du ikke forventet.

Universal lese og skrive

spørring, post. get, record. create, record. update, poster. slette. Alle av dem validert som vist ovenfor.

Identitet, før den viktigste porten

Identifikasjonsprober kalles av ADMIN'S BROWSER, samme åpningen så de kan ikke sende en egendefinert overskrift. Deres autentisering er selve plattformsesjonen. Sett dem foran nøkkelporten og hold dem borte fra alle data som registrerer deg, og la dem aldri returnere et hemmelig sted. Se siden for kontaktidentitet.

Diagnostikk

op=diag, structure only, masked.

💡
En skrivebeskyttet kontakt trenger ingen tillate-liste i det hele tatt. Hvis plattformen din bare noen gang svarer på spørsmål, sende en bro uten å skrive ops og alle klassene av skriving risiko forsvinner. Legg til skriver når noen ber om dem.

Sjekkliste før du sender bro

Broen nekter alt uten noe nøkkelsett

Test det. Endre om konstant til tom og bekrefte alle op svar403.

En feil nøkkel blir nektet i konstant tid

hash_equals, og nøkkelen leses fra overskriften.

Et oppsummert tabellnavn nektet

Og et ekte tabellnavn med feil prefiks løses fremdeles.

En passordkolonne vises aldri i en lese

En bok som heter en blir nektet med forklaring.

En skrive til et bord utenfor den tillatte listen blir nektet

Med meldingen som forteller operatøren hvordan du utvider den.

Panelet snutt passer til brofilen

php verktøy / sync_connector _bridge_snippet. phP rapporterer det i trinn.

Å installere koblingen på nytt er ikke nok

Hvis pakken din sender en brofil, må operatøren oppgradere kontakten ALSO omdeplete den filen i sin webroot. Si det så i panelets kropp og i endringsprogrammet ditt, hver utgivelse.

Koblinger

Broen på andre språk og andre databaser

The bridge pattern is not a PHP pattern. What OpsIQ calls is an HTTP endpoint, so the file can be Node, Python, Go, Ruby, .NET or Java, and the store behind it can be any SQL engine or MongoDB. What IS PHP-shaped is the packaging pipeline, and that constraint decides how your bridge reaches the operator. Read the delivery section first: it is the part that surprises people.

Hva kontakten faktisk krever

Det er ikke noe som heter et språk.

Transport

HTTPS. En får forespørsel per samtale, ingen kropp eller annen metode.

Autentisering

En felles hemmelighet i X-Opsiq-Bridge-Key forespørselsoverskrift, sammenlignet i konstant tid. Ikke en spørring parameter, ikke ein informasjonskapsel eller Basic auth.

Parametre

Spørringsstreng. op navn på overflaten, do Navn på operasjonen, resten er den operasjonens argumenter.

Svar

JSON. {"success":true,"data":{...}} eller {"success":false,"error":"snake_case_reason"}. Innholdstypeprogram/jsonOg ingen kake.

Statuskoder

200på suksess.403ukonfigurert eller feil nøkkel,404ikke funnet,405feil metode,400Dårlig argumentasjon,501Ikke støttet i dette skjemaet.

Det er alt

Ingen rammeverk, ingen kjøretid eller noe OpsIQ -bibliotek på din side. Hvis det kan tjene som den kan være en bro.

Levering: Hva kan bo i broen/, og hva må ikke

The signed package covers a fixed list of file extensions, and a file outside that list is left out of the ZIP. A bridge in a language the list does not cover therefore cannot ship inside the package — but it can no longer disappear on you either. Since 26 August 2026 a file in bridge/ at pakkeren ville slippe er en hard samsvarsfeil, så pakken nekter å passere i stedet for installere uten broen.

Hvordan en bro/mappe behandles på 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 and JavaScript — fully supported

Filen skip i det signerte ZIP, og snuttsignerten holder panelet ditt kopi byte- identitet til den, uansett hva av de to er. Drivkontrollen leser hver fil på bro/ ikke bare PHP en, så en oppgradert bru med et staveslot panel kopier mislykkes bygget på hvert språk.

Alt annet - bare lever gjennom panelet

Panelet snutt er vanlig tekst uten anelse om hvilket språk det har, så den fungerer for enhver stabel. Legg hele programmet i webhook_help. snippet_template, navng filen i bunt_filename og ikke la en kopi i broen/ - konformance vil nekte pakken heller enn å sende den hul. Si klart på Webhook _help. body at operatøren kopierer denne fila snarere enn få den fra pakke.

Hvis du virkelig trenger et annet språk 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.

💡
Navn på filen i webhook_help.snippet_filename når pakken din sender mer enn én bro. Det er slik verifiseringa vet hvilken bru en panelkopi tilhører; uten den, rapporteres det et tvetydig par som samsvarsvarsel og at snutten ikke blir vist.
⚠️
Poenget med drivsjekken er at en brofil og dens panelkopier er to kopier av ett program, og vil divergere. Genieres i stedet for hånd-rediger: php tools/sync_connector_bridge_snippets.php --applySå skriv du på pakken.

Porten på seks språk

Same fire kontroller i samme rekkefølge overalt: mislykkes lukket med ingen nøkkel, en metode og konstant tidsnøkkelsammenligning fra overskriften. Den eneste virkelige fellen er sammenligningen, og det er en annen felle på hvert språk.

⚠️
Sammenlign SHA-256fordøyelse av de to nøkler i stedet for tastene selv. Det er riktig på hvert språk, og det sidetrinner at flere konstant-tid komparatorer enten kaster eller lekkasje på en lengdematch - Node's timingSafeEqual øker et områdefeil når bufferene varierer i lengden, noe som gjør feil nøkkel til en500i stedet for403.
Node.js — the gate
// Node.js — no dependencies
const http = require("http"), crypto = require("crypto"), url = require("url");

const BRIDGE_KEY = process.env.OPSIQ_BRIDGE_KEY || "";   // empty = bridge OFF

const sameKey = (a, b) => {
  const ha = crypto.createHash("sha256").update(String(a)).digest();
  const hb = crypto.createHash("sha256").update(String(b)).digest();
  return crypto.timingSafeEqual(ha, hb);                 // equal lengths, always
};
const out = (res, payload, code = 200) => {
  res.writeHead(code, { "Content-Type": "application/json; charset=utf-8",
                        "Cache-Control": "no-store" });
  res.end(JSON.stringify(payload));
};

http.createServer(async (req, res) => {
  if (BRIDGE_KEY.length < 24)         return out(res, { success: false, error: "bridge_not_configured" }, 403);
  if (req.method !== "GET")           return out(res, { success: false, error: "method_not_allowed" }, 405);
  const given = req.headers["x-opsiq-bridge-key"] || "";
  if (!given || !sameKey(BRIDGE_KEY, given))
                                      return out(res, { success: false, error: "forbidden" }, 403);

  const q = url.parse(req.url, true).query;
  // ... dispatch on q.op / q.do exactly as the PHP bridge does
}).listen(process.env.PORT || 8787);
Python — 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)
Gå, Ruby . NET og Java - 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)));
}

Validere identifikatorer på hver databasemotor

Sikkerhetsegenskapen endres ikke: en tabell eller kolonnenavn den som leveres må kontrolleres mot det virkelige skjemaet før den er interpolert, og alle verdier skal være et bundet parameter. Bare introspektionsspørselen, siteringstegnene og pagingsklausulen varierer.

MySQLogMariaDB

Tabeller: SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = ?. Kolonner: det samme mot information_schema.COLUMNS med AND TABLE_NAME = ?. Sitert med backsticks, dobler enhver ryggstikk inne i. Page with LIMIT n OFFSET m.

PostgreSQL

Same info_schema visninger, små bokstavnavn WHERE table_schema = $1 (vanligvis public). Sitert med dobbelt sitats, dobbel noen todobbelte siteringer inne. Page with LIMIT n OFFSET m. Se folderegelen: en ikke-sitert identifikasjon brettes til små tilfeller, så sammenlign kaseufølsomt når du løser et navn.

SQLServer

Same INFORMASJON_SCHEMa visninger. Siter med firkantede parentes, dobler alle lukkebraketten inne i. Paging trenger en VAREERING AV: ORDER BY [id] DESC OFFSET @o ROWS FETCH NEXT @n ROWS ONLY.

SQLite

Tabeller: SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%'. Kolonner: SELECT name FROM pragma_table_info(?) - bruk den tabell-verdid form, fordi bare PRAGMA table_info(x) erklæring kan ikke ta en bundet parameter og inviterende streng interpolasjon er det nøyaktig hullet du prøver å lukke. Siter med doble sitater LIMIT n OFFSET m.

Oracle

Tabeller: SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = :owner; kolonner fra ALL_TAB_COLUMNS. Siter med dobbelt sitat, og husk en ikke-sitert identifikasjons folder til UpPER Case, det motsatte av PostgreSQL OFFSET :o ROWS FETCH NEXT :n ROWS ONLY 12c og senere.

MongoDB

NeiSQL, så ingen identifikasjon interpolasjon og ingen bundet parametere - en annen disiplin for samme mål. Se nedenfor

Introspektionsspørselen per 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;
💡
Resolve, then use the RESOLVED name. Never pass the caller's spelling through to the query even after checking it — look the real name up in the list you read from the schema and interpolate that. It costs nothing and it closes the gap between "this name matched something" and "this is the name I am about to run".

MongoDBDe samme reglene, utenSQL

Det er ingen spørringsstreng å injisere i, så folk antar at det ikke finnes noe som skal beskytte. Filteret dokumentet. Passing caller-SuppliedJSONRett inn i find() La en anroper sende {"$ne": null} eller {"$gt": ""} hvor du forventet en verdi, og velg stille hvert dokument. Bygg filteret selv.

MongoDB - samlings tillate-liste, skalarforsterket filter, projeksjon 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();
Samlingsnavn kommer fra listCollections

Det er din info_schema. Løs oppkallerens stavekontroll mot den og bruk det løste navnet.

Tving hver filterverdi til en skalar

En streng () eller et nummer() rundt er hele forsvaret mot operatørinjeksjon. Et dokument der du forventet en verdi, tilsvarer noSQL- ekvivalenten av et bortfallende sitatet.

Prosjektion er redaksjonsregelen

Utelukk hemmelig-formede felt i projeksjonen, slik at de aldri forlater serveren og ikke sletter dem fra resultatet etterpå.

Sletter opphold enkeltdokument av _id

SletteOne med et løst _id. Aldri sletteMange, og aldri en filtrering som har påvirket oppkalleren.

Skriver opphold tillatt-listet

Same resonnement som SQL: navngi samlingene en skrive kan røre, og nekte resten med en forklaring.

identitetsendpoint på andre språk

Identifikasjonsproben er den andre halvdelen av en bro, og det er også HTTP. Signeringsblokken er identisk på alle språk: base64url nyttelastene HMAC-SHA256 som strengen, bli med i et punktum.

Ikke håndskriv dette fra grunnen. Innstillinger, Support Portal har allerede en klar snuttkatalog for PHP i LaravelWordPress, WHMCSNode med og uten avhengigheter, Flask and FastAPI, Django .NET, Ruby on Rails, Java Spring Boot & Go. Ta signereren fra smaken som passer til stabelen din.
Hva skal endres når du gjenbruker det

Disse snuttene mint et PORTAL håndoff token, som er bevisst strengere: det bærer jti og single_use : sant og liv om120sekunder fordi det reiser i enURL. En bro eller widget identitet token bærer ingen av dem og bruker en lengre exp, minutter til timer.

Hva som forblir det samme

site_key, iat, exp og en toppnivå-godkjent: sant plus et administrator eller kundesubjekt med ID og brukernavn eller email. Same krav, samme signaturen, samme hemmelighet.

Begge poliksformene bekrefter

En tredelt JWT signert HS256 fungerer, og det samme gjør to-dels base64url nyttelast pluss heks HMAC som PHp referansen sender ut. Bruk uansett hvilket språk bibliotekene ditt er naturlig - et J W T biblioteket er vanligvis den kortere banen utenfor php .

Aldri mint det i nettleseren

Sann på alle språk. å signere klientsiden betyr forsendelse av nettstedets hemmelighet til hver besøkende.

Valg, ærlig

Plattformen er PHP

Skriv broen i PHP. Det skiper i pakken, det er driv-sjekket og kan starte plattformens egen rammeverk for å lese en live sesjon til identitetssonden. Ingenting annet gir deg alle tre.

Plattformen er node

En . js bro skip, tegn og er driv-sjekket nøyaktig som en PHP én. Ingenting gis opp.

Plattformen er Python, Ruby, Go . NET eller Java

Lever gjennom panelets snutt og si det i panelkroppen; ikke la filen være på bro/, hvor konformans vil nekte pakken. Koblingen er ellers helt normal: handlinger, kontekstleverandører, identitet-og gjesteoppslag alle fungerer den samme fordi ingen av dem bryr seg om hva som svarer HTTP-samtalen.

Du kan ikke kjøre en prosess på plattformens vert

Da er bromønsteret ikke det riktige verktøyet. En bru eksisterer for å nå en plattform fra sin egen vert. Hvis du bare kan komme frem utenfor, skriver du et vanlig API -kontakt mot hvilken overflate den eksponerer.

⚠️
En annen begrensende verdt å planlegge rundt: en identitetsprobe må lese plattformens innloggingssesjon, som vanligvis betyr løping inne i plattformen egen prosess eller minst på vertshuset med tilgang til sin øktbutikk. En bro skrevet av et annet språk fra plattformen kan tjene data komfortabelt og kan fortsatt slite for å svare op=admin_identitet. Hvis det er ditt tilfelle, skip databroen på språket ditt og identitetssonden i plattformens.
Koblinger

Gi assistenten begge halvdeler: handlinger og kontekst

This is the single most common thing missing from a connector that "works but is useless". Actions let the AI DO things. Context sections let it KNOW things. A connector needs both, and most questions an admin asks are answered by context, never by an action. A connector with perfect actions and no context provider will truthfully report that it cannot see anything.

De to halvdelene

Handlinger - hvordan AI gjør ting

Deklarert i handling.jsoneller returnert av registerActions(). Modellen velger en, fyller sine parametre ogOpsIQutføres det. Handlinger er for verb: avbryte denne bestillingen, åpne den billetten og endre status.

Kontekstseksjoner - hvordan AI vet ting

Assembled by a ContextProvider before the model runs. "How many orders this month", "who are my newest customers", "what do we sell" all resolve through a context lookup, and never touch an action at all.

⚠️
Symptom of a missing provider: the assistant answers "No enabled connector supplied this context section" while the connector is installed, enabled and passing its connection test. Nothing is logged, nothing errors. That message means no provider claimed the section.

Den universelle delen ordforråd

OpsIQbe om seksjoner med generisk navn. Din jobb er å bestemme hva hver enkelt betyr på plattformen din og svare det. En hotellbestilling IS hotellets ordre; et rom iS som hotellet selger. Kart, ikke oppfinne.

bestillinger / avventing_ordre

Uansett hva en transaksjon er på plattformen din: bestillinger, reservasjoner og jobber. Ventar_ordre er den samme listen filtrert til de uferdige.

Kunder

Kunden roster.

products

Plattformen selger: produkter, rom og planer.

Fakturering

Inntekter og pengeformede total, pluss teljing etter stat.

billetter, tjenester, domener, servere

Bruk disse når plattformen din virkelig har dem. Ikke tvinge en kartlegging - et ubesvart avsnitt er bedre enn feil ett.

Alt annet plattformen din har

Deklarer din egen. En leverandør som erklærer seksjoner (): ['licensier’, 'shippings`] har de slått seg sammen til den universelle oppslagstillatelsen sin liste, så plattformspesifikke utløsninger blir tilgjengelige uten noen kjerneendringer.

Feilen som koster en dag

En kontekstleverandør må implementere grensesnittet. Registertypen sjekker det, så en klasse som bare Looks rett er hoppet over - uten feil eller noe sted.

KontekstProvider. php - kontrakten, fra Botble referansepakken
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 kontakten

Implement ConnectorInterface og returnere leverandørene fra kontekstProviders(). Koblingsklassen kan også implementere KontextSamarbeidsområde direkte, og bli registrert som seg selv.

Returner vanlig tekst, ikkeJSON

build( 2) returnerer en tekstblokk som er konkatert i spørringa. Skriv den for leseren: ei overskrift, og deretter én linje per rad.

Gå tilbake i stedet for å kaste

Fang dine egne unntak. En leverandør som kaster er logget og hopper over, men å returnere '' er kontrakten.

Byggeren kan ikke skrive seksjoner() for deg

Den genererte KontekstProvider. php skips sections(): array { retur []; } og veiviseren har ikke noe felt for den. Fyll det i hånd - og husk at publisering fra guiden Overskrider filen. Kopier redigeringene dine ut først.

⚠️
State the true TOTAL, not the number of rows you sent. A page is not a total. A provider that lists twenty rows without saying so gets the assistant confidently answering "you have 20 bookings" when the platform holds 669. One cheap COUNT and one explicit line — "TOTAL on file: 669 (this list shows the newest 20 only)" — is the whole fix, and a confidently wrong count is worse than no count.
En seksjonsblokk som ikke kan feilbetales
$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);

Navngi dine handlinger slik at OpsIQ kan fortelle lesninger fra skrivere

OpsIQ klassifiserer en handling av WORDS i sin action_id, og det er bevisst konservativt: alt den ikke kan gjenkjenne blir behandlet som et skrivekort. Få verbet rett til høyre og ei lesning bare kjører.

1
is_destruktiv eller krever _bekreftelse gevinster

Hvis det enten er satt, trenger handlingen alltid godkjenning. Deklarer dem ærlig - dette er hva overflater administratorens godkjennelseskort.

2
Et skriveord hvor som helst i ID gjør det til en skriving

Legg til, åpne, oppdatere, redigere, endre, modifisere, fjerne, slette, ødelegge, avbryte, tilbakebetale, avslutte, si opp, aktivere, avvise, sende, markere, gjøre om, legge ned, ta bort, lukke, gjenåpne, overføre, gi, angige, slå på, slå av, deaktivere, opprette, bruke, belasta, betale, levere, fornye, forbedre, flytte, bevege seg, eskalere, flagget, registrere, synkronisere, trykke, installere, kjøre, starte, begynne og slutte å gjenoppta.

3
Et leseord gjør det til en læsning

få, liste, søk, finne, vise, seeing, vist, hente, telle, oppslag, beskrive, lese, eksportere, forhåndsvisning, test, ping, status, sammendrag, detaljer, nylig, historie, sjekk, loggen, statistikk, metriske, oversikt, inntekter, neddeling, rapport, analytiske, balanse, bruk, kvota, øyeblikkelig innsikt, matning, utkast til nyhetsbyrået.

4
Så bestemmer HTTP metoden

Få, hør og valg er lesninger.

5
Ellers er det en skriving

Ukjent betyr godkjenning som kreves. Denne standarden er intensjonell

⚠️
Skriveord er kontrollert før lese ord, så et blandet navn som get_and_sync-ordener klassifiseres som en WRITE. Velg ett verb, sett det først og hold det rent: list_ orders, get_customer search _bookings, cancelon_bestilling, set_ Ordre_status.

Bare erklære moro_api hvis plattformen virkelig har en

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.

Byggeren bestemmer det fra datatilgangsvaret ditt

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.

Håndgodkjente pakker må fortsatt få det riktig

Hvis du skriver manifestet selv, deklarer nøyaktig en av moro_api eller plattform _bridge. Konformanse behandler platform_broen som unnslippelekken er forventet å ha et brokontakt, og Builderen nekter en spec som hevder at plattform_ Bridge på enAPIKoble til.

Hold ai_api_reference. md ærlig uansett

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 administratoren hjernen om plattform

Declare ai_brain_aware and ship two Markdown files. They are read from the INSTALLED package directory (opsiq/connectors/<slug>/) for ENABLED connectors only, and injected into the admin agent's system prompt.

ai_expertise_admin. md

Hva denne plattformen er, hvordan dataene blir formet og hva dens objekter kalles. Og de quirks som ellers ville gjøre assistent gjettet. Skriv det til en kompetent kollega som aldri har sett plattformen.

ai_api_reference. md

Den oppkallbare overflaten. For en brokontakt er dette op og gjør ordforråd med sine parametere, ikke et REST endepunkttabellen.

Budsjett

Grovt6,000tegn som holdes per kontakt, og om24,000tegn for hele blokken på tvers av hver aktivert kontakt. Over per-connector cap filen er kutta; bli kortfattet før trancatoren er det.

presisjon betaler

Disse filene er forskjellen mellom assistent ved å bruke universelle tabellverktøy og svare fra feil seksjon fordi ingenting har fortalt det disse verktøyene eksisterte.

💡
Begge filene må være i INSTALLED-pakken, ikke bare kildetreet. De er vanlige pakkefiler så de dekkes av signaturen og sendes på ZIP - som også betyr å redigere et etter signering bryter segningen.
Koblinger

Identitet gjennom en kontakt: admin, kunde og portal

One signing contract serves three surfaces. The connector's job is to turn "who is logged in on the platform" into a signed token OpsIQ can verify, and then to present the verified subject in OpsIQ's shape. The connector never authenticates anyone — the platform does, and the signature carries that assertion.

De tre overflatene, en signer

Admin - din ansatte, inne i backend

Et administratoremne. Skjermprogrammet lastes inne i plattformens admin-panel og alle ansatte er matchet til sin egen OpsIQ agent. Full walkthrough på Administrasjonswidgetsiden.

Kunde - en kunde som er logget inn i klientchat

Dette er det som lar en kunde få sin HELE-konto i stedet for et anonymt oppslag: hver ordre, full detalj og alle selvbetjeningstiltak du tillater.

Portal — a deep link into the support portal

De samme kravene pluss jti og single_use, med en120- andre livet, fordi token reiser i enURLog må være brukervennlig én gang. Ikke håndrull denne: Innstillinger, Support Portal har en klar snut per språk, og plattformen minterer det for deg når kontoområdet kjører på serveren.

Lønnslastkontrakten

Dette er kravene som verneplikterne sjekker. Ingenting her kan være valgfritt, uansett et delvis eksempel andre steder vil foreslå det.

site_key

Toppnivå. Må være lik nettstedsnøkkelen til forespørselen, eller toket blir nektet.

iat og exp

Toppnivå, Unix sekunder. exp må være i fremtiden og etter Iat. Et tegn mer enn et minutt fremover blir nektet. Hold livet kort - minutter til timer.

autentisert: sant

Toppnivå, ved siden av exp. Plattformens påstand om at et ekte menneske er logget inn

plattform

En kort slanke som navngir opprinnelsen. Anbefalt, og det lar en kontakts identitet leverandør fortelle sine egne polletter fra andre plattformens.

administrator eller kunde

Et objekt som navngir emnet. Det må ha med seg en ikke-tom id, og et brukernavn eller email - per admin adgangsporten matcher på de. Inkluder begge når du har både.

Minting, ordbok 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 verifiserte og den svikt de forårsaker

OpsIQ har to symbol-profiler, og de var ikke identiske. Å vite dette sparer deg en ettermiddag fordi symptomet ser ingenting ut som årsaken.

Admin- widgeten har sin egen verifisering

opsiq/embed/admin_ajax.php bærer en lokal verifisering som aksepterer det autentiserte flagget i enten posisjon. Samtaleliste, historie og ulest alle går gjennom den, så de godkjenner botten.

Den delte verifikatoren er strengere

opsiq/includes/customer_identity_token_verify.php sitter bak chat-strømmen og kjernen AJAXAPIDet hadde historisk behov for flagget på TOP-nivå.

Symptomet

History and conversations work. Every chat turn answers "Admin login required". It reads exactly like a session bug and is not: the token is missing the top-level flag.

Hva dagens kjerne gjør

Det aksepterer nå flagget på øverste nivå ELLER inne i emnet, så kontrakten er ensartet. Eldre kjerner leser bare toppnivå. Utskriv den kanoniske form og pakken fungerer på hver utgivelse.

Dette er maskinsjekket nå. Enhver fil i pakken som mynter identitet tokens blir statisk skannt mot kontrakten, og en nyttelast plattform ville nekte å samsvare med den nøyaktige filen og linjen. Kjør det selv: php verktøy / verify_idendity_contracts. php.

Signert kunder i klientchat

To ting må være sant. Core skal stemple den verifiserte kunden, og kontakten din bør presentere det.

1
Broen din eller endepunktet minterer et kundetokens

Same signerer som admin en, med et kundeemne. Les kunden fra plattformens egen sesjon. Hvis din plattform registrerer kunder på en annen vakt enn administratorer, les den garden du vil ha og aldri faller tilbake over emner - det er slik en klient ville bli levert ett Admin token.

2
Core verifiserer og frimerker det

På et gyldig symbol, frimerker kjernen det verifiserte emnet i sesjonen. Leverandøren leser en bevist identitet; den bekreftes aldri.

3
Din identitetsleverandør presenter den

detectCustomer() returns the OpsIQ shape. It MUST implement OpsIQ\Platform\IdentityProviderInterface, or the registry silently skips it — the same trap as the context provider.

4
Dine kundeskoplede handlinger aksepterer en customert_id

Og OpsIQ låser den til verifisert identitet før utførelse. Modellen kan ikke levere det.

IdentityProvider. php - les den dokumenterte identiteten, presentere det i OpsIQs form
use OpsIQ\Platform\IdentityProviderInterface;

final class IdentityProvider implements IdentityProviderInterface
{
    public function slug(): string  { return 'yourplatform_identity'; }
    public function label(): string { return 'Your Platform identity (bridge-signed identity_token)'; }
    public function priority(): int { return 25; }   // ahead of the generic session provider

    public function isAvailable(): bool
    {
        try {
            $s = \OpsIQ\Connectors\ConnectorRegistry::getSettings('yourplatform') ?: [];
            return trim((string)($s['base_url'] ?? '')) !== '';
        } catch (\Throwable $e) { return false; }
    }

    public function detectAdmin(): ?array
    {
        $row = $this->sessionRowFor('_opsiq_admin_identity');
        if (!$row || !$this->isOurs($row)) return null;
        return [
            'id'       => (int)($row['id'] ?? 0),
            'name'     => $this->displayName($row, 'Admin'),
            'email'    => (string)($row['email'] ?? ''),
            'username' => (string)($row['username'] ?? ''),
            'role'     => (string)($row['role'] ?? ''),
            'platform' => 'yourplatform',
            'source'   => 'yourplatform_identity_token',
        ];
    }

    public function detectCustomer(): ?array
    {
        $row = $this->sessionRowFor('_opsiq_customer_identity');
        if (!$row || !$this->isOurs($row)) return null;
        return [
            'id'       => (int)($row['id'] ?? 0),
            'name'     => $this->displayName($row, 'Customer'),
            'email'    => (string)($row['email'] ?? ''),
            'phone'    => (string)($row['phone'] ?? ''),
            'platform' => 'yourplatform',
            'source'   => 'yourplatform_identity_token',
        ];
    }

    /* A session identity stamped by ANOTHER platform's token must not be
     * claimed here. An empty platform is accepted because older bridges did
     * not stamp one, and the site key already scoped the token. */
    private function isOurs(array $row): bool
    {
        $p = strtolower(trim((string)($row['platform'] ?? '')));
        return $p === '' || $p === 'yourplatform' || $p === 'remote';
    }

    private function sessionRowFor(string $key): ?array
    {
        if (session_status() !== PHP_SESSION_ACTIVE) return null;
        $row = $_SESSION[$key] ?? null;
        return (is_array($row) && (int)($row['id'] ?? 0) > 0) ? $row : null;
    }
}

Kundeskoplede handlinger: to låser, begge nødvendige

Modellen må aldri velge hvem data den leser. OpsIQ håndhever det på sin side, og plattformen din skal også håndheve dem på andre siden. En lås er en feil fra lekkasje; to låse er kontrakt.

Låse1 — OpsIQOverskriver identitetsparametrene

Før en kunde-chat handling kjører, erstatter OpsIQ /hver identitetsformet parameter med den VERIFIED besøkendesidentitet: klienten_id, kundend, bruker_ID, userride, kunder_identifier.

Låse2— plattformen din re-scopes hver spørring

Ta id-en du ble gitt og legg den til hvor klausulen for hver lese, og alle skrive på overflaten. Stol aldri referansen i anmodningen selv. En kunde som spør om en annens ordre må komme tilbake tom, ikke forbudt.

Navngjev parametrene dine så lås1Kan finne dem

Kall det kunde_id, ikke cust eller ref. En parameterOpsIQgjenkjenner ikke er en parameter den kan ikke låse.

⚠️
Gi den loggede kundeoverflaten sin egen drift, adskilt fra administratorens, selv når SQL ser lignende ut. To overflater med ulike regler holder seg ærlige; en flate med et flagg blir til lekkasje dagen noen redigerer feil gren.

Null side ledninger: den kontakt-deklarerte 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.

innstillinger.json— sondeinnstillingen
{
  "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 kalles av nettleseren

Same-origin, så det kan ikke bære en egendefinert overskrift. Dens autentisering er plattformøkten. Sett den AHEAD av brutastporten din, hold den unna platedata og returnere ingenting i det hele tatt for et logget ut besøkende.

Svar på en fast form

{"success":true,"authenticated":true,"admin":{...},"identity_token":"..."} — and {"success":false,"authenticated":false,"error":"..."} when nobody is signed in.

Ingen lengeslevende hemmelighet i sidekilden

Bare det underskrevne, utløpende token.

De komplette endepunkt implementeringene for Laravel,WordPress, WHMCSSymfony og vanlig PHP, pluss hardwon Laravel spesifikasjoner og feilsøkingsordre er på admin widget-siden. De er den samme koden for et kundesubjekt: endre vakten du leste og emnenøkkelen du signerer.

Koblinger

Publisering: Redigerer ikke mappen

Den vanligste måten å miste en ettermiddag på er å redigere et koblingselement under markedsforbindelser/, installere det og finne ingenting endret. Installeringer leser ikke den mappen. De trekker ut ett signert ZIP fra markedskatalogen. Publishing er rekkefølgen som setter endringene dine i dette posten.

Hvorfor redigeringen ikke gjorde noe

marketplace_connectors/<slug>/ is the SOURCE

Det er der du jobber.

Katalogen har et signert ZIP

En installasjon nedlastinger som ZIP, verifiserer signaturen og pakker ut den. Til du gjenoppbygget Zip fortsetter hver enkelt installere å få gamle pakken.

Connector Builder publiseres et annet sted

It writes into /connectors/<slug>/ on this install. That is a local connector, not a marketplace release. The two paths do not overlap.

Utgivelsessekvensen

1
Bump versjonen i TWO-filer

innstillinger.jsonog connect_contract.json. Konformanse sammenligner dem og mislykkes hvis slim, versjonen eller evnen settet er uenig. Legg til en endringLOG.md-inngang mens du befinner deg der - det er et nødvendig fil.

2
Sync broen om

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
Signer hver pakke på nytt

php verktøy/resign_all_connectors. php - signaturen dekker fil hashes, så alle redigeringer ugyldiggjør det. Signer sist etter hver fil er endelig.

4
Eksporter signaturnøkkelen, så frø

Seeder signerer hver pakke som den bygger ZIP, og det kjører i en sammenheng der nøkkelen ikke kan leses fra innstillingene - så det må komme fra miljøet.

5
Omdøp brofilen hvis du sender en

Installere kontakten på nytt. Den berører IKKE kopien som sitter i operatørens webroot. Fortell dem, i panelet og endringloggen.

Hele utgivelsen, i rekkefø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.

Hva faktisk skip

Bare fil signaturdeksler

ZIP er bygget fra signererens egen filliste, så en utilsiktet fil som sitter i pakkemappen din sendes ikke. Det vil være bevisst: En uvedkommende fil brukes til å ri sammen med kunderne.

Dekkerte utvidelser

php,json, jscssmd, txthtml, sh, svg. png; jpvjsonselv er utelukket fra hashes og deretter lagt til ZIP slik at installasjoner kan verifisere.

Alt annet er rapportert som ikke-pakket

Frønavnene navngir hver fil den etterlot. Les listen. En fil du forventet å sende som vises det betyr en feil forlengelse eller et galt sted - ikke en stille suksess.

Redigering av en fil som er dekket bryter forseglingen

Inkluderer en Markdown-fil. Skriv den pakken på nytt

Nødvendige filer i en distribusjonsbar pakke

connector.php

Må returnere en forekomst av ConnectorInterface.

settings.json

Manifest: slank, navn, versjon, manifest_version, kompatibiliteter, funksjonalitet, connector_contract_versjon.

connector_contract.json

Maskinlesbar kontrakt. Dens snegle, versjon og evne sett må være identisk med innstillinger.json.

LESME. md, DEVELOPER. med

Alle tre er kontrollert for eksistens og minste størrelse. DEVELOPER. md trenger ekte innhold, ikke en stub.

En fil per deklarert evne

Hver funksjon navn den forventer - KontekstProvider. php for kontekst, Identityprovider. phP for identitet, GuestLookupPROvider

Ingenting som ser ut til å være et kreativt

Konformans skanner de tre Markdown-filene for hemmelige verdier og private nøkler, og mislykkes på et hit.

Sjekk før du sender den

Den fulle konformans suiten er den samme som en installasjon kjører. Det kontrollerer manifestet mot kanonisk kontrakt, at løpstid og åpenbare evner samtykker i å alle deklarert evne har sin fil og sine metoder, identitets-token avtale i hver myntfil, broensnippets matching, gjestesupplevelse tillateliste hygiene, handling unikhet og bekreftelse sikkerhet samt pakkesignatur.

Kjør alle fire før hver utgivelse
# 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 feil er forventet og ikke et problem: pakkesignaturen sjekker en advarsel mens du fortsatt redigerer. Det fjernes det øyeblikket som du logger på nytt. Alle andre feilene er virkelige.
Koblinger

Kontaktpakke og referanse til livssyklus

Dette er kildenivåkontrakten for å bygge en kontakt som OpsIQ kan oppdage, konfigurere, validerer, aktivere, utføre, testa, signere og distribuere.

Utviklerreferanse
KontaktpakkeEn kontaktpakke har en nødvendig koblingsimplementasjon og manifester, med valgfrie handlinger, oppskrifter, kunnskap, eiendeler og signaturmetadata.KontaktpakkedeveloperMANIFESTv1LIFECYCLEAdministrertARBETSPESSOmfangetLIV ARBETSPESSONEconnector.phpKontakt klasse / fabrikkNødvendigsettings.jsonManifest og innstillingsskjemaNødvendigactions.jsonHandlingsdefinisjonerValgfrittsignature.jsonPakkesignaturmetadataUtgivelse1DECLAREManifest og evner2IMPLEMENTLivsyklus og leverandører3VALIDATETest, tegn og pakke
En kontaktpakke har en nødvendig koblingsimplementasjon og manifester, med valgfrie handlinger, oppskrifter, kunnskap, eiendeler og signaturmetadata.

Minimum pakke

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 bruker manifest versjon 1. Validereren forventer en sløv, navn, versjon, manifest_versjon, kompatibilitet, beskrivelse og evner. opsiq_min og opsiq_max. Utgivelsesstatus er en av production, beta, Forhåndsvisning eller templateEldre pakker kan normaliseres med advarsler, men en ny pakke bør passere uten advarsel.

Kjernekontaktgrensesnitt

  • Identitet og oppsett: slug(), name(), description(), capabilities(), settingsSchema(), testConnection().
  • Livsyklus: onEnable() og onDisable()Deaktivering må være ikke-destruktiv; datautrensning er en egen bevisst operasjon.
  • Inngående/sync: handleWebhook(), poll(), backfill()Poll håndterer gradvis arbeid; backfilp import historie og må være trygt å gjenta.
  • Støtte: pushReply() der plattformen tar imot svar.
  • Handlinger: registerActions() tilby kjørbare handlingskontrakter.
  • Sikkerhet: securityCapabilities(), syncBlockedIp(), removeBlockedIp(), testSecuritySync().

Den abstrakte basen tilbyr også valgfri buntet backfill, kundeliste, e-postkontooppdagelse/skaping, abonnenter, administrator / kunder deteksjon, fakturerings/context/identitetsleverandører, responsutvinning og forsøk på HTTP-samtaler JSON-banetilgang, uklar rangering og paginasjon hjelper.

Funksjoner og autentisering

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.

Register livssyklus

  1. Oppdaging laster pakken og validerer det manifest.
  2. Konfigurasjonen lagres per arbeidsområde; hemmelighetene krypteres.
  3. Tilkoblingstesten viser legitimasjoner uten å aktivere kopling.
  4. Aktiver samtaler onEnable(), synkroniserer handlingsdefinisjonene og kan starte den første tilbakefyllingen.
  5. Polling/webhook / subscriber-utførelsen alltid bærer arbeidsområde sammenheng.
  6. Slå av samtaler onDisable() og stopper aktivitet uten å slette importerte data.
  7. Purge er en separat eksplisitt operasjon.

Korrekthetsregler

  • Bruk arbeidsområde/site-nøkkelen i hver lese, skrive, cachenøkkel, deduplisering nøkkel og webhook oppslag.
  • Ta tilbake påfylling, webhook inntak og skrive handlinger idemppotent. Skriv opp en ekstern ID/event-ID hvor plattformen gir én.
  • For fjernsystemer, bruk deres API Aldri anta at deres databasetabeller eksisterer i OpsIQ Tilkobling.
  • Return strukturerte, kundesikre feil. Aldri avsløre hemmeligheter, rå leverandør spor eller et annet arbeidsområdes eksistens.
  • Kun kan erklære pakken faktisk implementere. En actions.json katalog gjør ikke en handling brukbar før koblingen er installert, aktivert og konfigureres.

Testing og frigjøring

Kjør PHP-lint, manifest valideringstester, tilkoblingsprøver, handlingsplante tester, webhook signatur/opptakstester, arbeidsområdeisolasjonsprøver, backfill-repeat-prøving, deaktiveringsforbindelsesøk og feil/gjenkjennelse prøver. En markedspakke bør deretter signeres og verifiseres inkludert installasjon / utslipp/webhook dokumentasjon samt oppgi sin sanne frigjøring status. Koblefliseretningen er det autoritative tilgjengelighetssignalet.

Koblinger

Koblingsoppskrifter

Trinn-for-trinns oppskrifter for vanlige kontaktoppsett.

Oppskrifter
KoblingsoppskriftEn Shopify installasjonsoppskrift som en sjekkliste: lag app, gi omfanger, lim inn token og teste, aktiver webhooks, plassere ein prøveordre.KoblingsoppskriftShopifyOppskrift · Shopify med webhooksOpprett en egendefinert app i Shopify adminGrant omfang: read_ordre, lese_customers...Lim inn lagerdomene + token, klikk TestAktiver Webhook-synkronisering (bestillinger automatisk register)Legg en prøveordre→Viser seg i salg30s1STEP BY STEPKopier-paste oppskrifter2REAL PLATFORMSShopify · WHMCS · Stripe3VERIFYTestordre viser i 30s
Hver oppskrift er en sjekkliste du følger øverst til bunn, her Shopify med real-time bestilling webhooks verifisert av testordre.

Oppskrift: Shopify med real-time webhooks

Scenario:
Goal: Connect Shopify with automatic order sync and GDPR compliance.
Hva skal jeg gjø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.

Oppskrift: WHMCS integrasjon

Scenario:
Goal: Connect WHMCS so AI can look up clients, services, tickets, and invoices.
Hva skal jeg gjø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.

Oppskrift: Stripe betalinger

Scenario:
Goal: Track Stripe payments and let AI look up transactions.
Hva skal jeg gjø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.

Oppskrift: Google Business Profile

Scenario:
Goal: Connect GBP for review management, posts, and insights.
Hva skal jeg gjø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.

Koblinger

Utvid CRM & Site Intelligence

OpsIQ subsystems are open for extension. A connector can plug a new capability into the CRM or Site Intelligence with no changes to OpsIQ core, via the platform capability registry (\OpsIQ\Platform\CapabilityRegistry). Declare the capability, implement its small method set, ship the connector, OpsIQ discovers it and wires it into the UI, the Customer 360 timeline and the install prompts.

Forleng CRM & SI
PlattformsfunksjonerEn kontakt på venstre matingskapasitetsbusser (CRM, Site Intelligence og Analytics) som ble oppdaget av CapabilityRegistry.PlattformsfunksjonerarbeidsflateKontakten dinerklærer evnerCRMkalender · berikelse · esign · betalinger · postkasseNettsteds IntelligenceLokal oppføring · rangeringsdataAnalyseweb_analytikere · rapporter & inntakCapabilityRegistrieOppdager det og ledningene UI + tidslinje1DECLAREFunksjoner, ikke kjerneredigering2PLUG INCRM · SI3AUTO-WIREDUI, tidslinje
En kontakt erklærer evner (kalendar, berigelse, rangdata, analyse...) og OpsIQ auto-wires dem inn i CRM and Site Intelligence, ingen kjerneendringer.

Deklarasjonsevner

Deklarativ (innstillinger.json)

Legg til en <domain>_capabilities array, best for no-code/marketplace connectors. Domeneer: crm, site_intelligence.

I kode (connector. php)

Implementer crmCapabilities() / siCapabilities() Tilbake til de samme beskrivelsene.

Deklarer en CRM kalenderleverandør (innstillings.json)

Scenario:
Goal: make a calendar connector appear in the CRM Schedule-meeting panel.
Hva skal jeg gjøre:

"crm_capabilities": [ { "type": "calendar", "label": "Calendar (Acme)", "actions": ["createEvent","listEvents","freeBusy"], "requires_auth": true } ]

Deklarer en Website Intelligence-leverandør (innstillingene.json)

Scenario:
Goal: feed local-listing data into Site Intelligence.
Hva skal jeg gjøre:

"site_intelligence_capabilities": [ { "type": "local_listing", "actions": ["listLocations","listReviews","getInsights"], "requires_auth": true } ]

Buser med evne og overflate av metoden

crm/kalender

createEvent($settings,$params) → {sukseptes,event_id;html_link. meet_Link} listEvents; freeBusy. Drevet av \OpsIQ\CRM\CalendarBridge.

crm / berigelse

enrich($settings,$params) → {success,traits}. Drevet av \OpsIQ\CRM\EnrichmentBridge (kjører også automatisk på selskapet opprette når en leverandør er koblet).

crm/esign

sendForSignature($settings,$params) → {success,envelope_id,sign_url}. Drevet av \OpsIQ\CRM\EsignBridge.

Nettsted_internasjonalitet/lokal_liste

listLocations, listReviews, getInsights. Skip via Google Business Profile-kontakten

nettsted_intelligens/ranke-data

keywordRanks($settings,$params) → {success,ranks}. Drevet av \OpsIQ\SiteIntelligence\RankDataBridge. Skip: SerpApi-tilkobling.

Analytikere/web_analyttikk

report($settings,$params) (synkroniser/eksporter) + ingest($settings,$events) (import). Driven by \OpsIQ\Analytics\WebAnalyticsBridge. Ships: Google Analytics (GA4) connector. Data API for reports, Measurement Protocol for import. Analytics is open for connectors like CRM + Site Intelligence (domain analytics / analytics_capabilities).

betaling / payment_leverandør

listPayments, customerPayments, createPaymentLink. Driven by \OpsIQ\Payments\PaymentsBridge. Show a customer's payments on the CRM timeline + send a payment link on a deal. Ships: Stripe Payments connector. Domain payments / payments_capabilities.

postkasse / e-post_sync

listMessages + sendMessage. Driven by \OpsIQ\Mailbox\MailboxBridge. A customer's emails on the Customer 360 timeline + send email from a deal. Ships: Gmail + Outlook/Microsoft 365 connectors. Domain mailbox / mailbox_capabilities.

Delt OAuth app + EN omdirigering

All Google connectors share ONE app via \OpsIQ\OAuth\SharedGoogleApp. Set google_oauth_client_id/_secret en gang og kalender, Analytics, Business Profile +Gmail alt arbeid (de per-connector -(valgfrie) feltene er tilsidesatt). De deler også en omdirigering URI, <site>/connectors.php?oauth=callback (ingen per-connector slim), fordi Google avslører ingen API å legge til omdirigere URI-er i en app; OpsIQ gjenoppretter koblingen fra det signerte OAuth state Registrer den enkelt URI en gang og hver Google-kontakt (nåværende + fremtid) godkjenner uten ytterligere konsolloppsett. Return SharedGoogleApp::resolve(...)« redirect_uri fra din oauthParams(); aldri hardkode en per-slug omdirigering. Microsoft koblinger gjør det samme via \OpsIQ\OAuth\ SharedMicrosoftApp (microsoft_oauth_*).

Importere knapper er utstyrt

Den Importer (historisk backfill) og Importer kunder knapper viser KUN for kontakter som faktisk implementere dem, detektert ved refleksjon så det er ikke noe flagg å erklære. Overstyr backfill() eller backfillChunk() å tjene importknappen; overstyre listCustomers() (retur {email, fornavn og ...} sider) til å tjene import kunder. Arve den AbstractConnector no-op og knappen forblir skjult, så UI aldri tilbyr en import et kontakt kan ikke utføre.

AI på tvers av busser

The CRM agent proposes and books meetings off deal signals (\OpsIQ\CRM\MeetingProposer → CalendarBridge), and auto-enriches new accounts, the “AI operates the CRM” loop, executed across connector buses.

Kundechatt billettoppslag (fetchTicket())

To-tier, ingen kjerneendring

When a visitor references a ticket number in the client chat ("what's the status of T-000123?"), OpsIQ resolves it in two tiers. Tier1 leser den delte OpsIQ billettbutikken, hver kontakt med inbound_ticket speiler billettene der, så synkroniserte billetter bare fungerer for alle kontakter med null per-tilkoblingskode. Tier2 er en live reserve for gamle billetter som aldri ble speilet: kjernen kaller et valgfritt fetchTicket() på hver aktivert kobling som implementerer den. Det er duck-typed (oppdaget av method_exists()som contextProviders()/audienceCatalog()), så det signerte ConnectorInterface er urørt og kontakter som ikke trenger det (email/chat kilder som skaper billetter i innlandet) bare utelate den.

⚠️
Eierskap er obligatorisk og din å håndheve. fetchTicket() mottar den overflødige besøkendes identitet i $ctx (client_id + client_email, den samme bekreftede identiteten klientchatten AI bruker. Løs plattformkunde fra denne identifikasjon og spør bare at kundens billetter, så sjekk eierskap på detaljlisten. Return null på eventuelle feil, mislykkes eller feil, aldri en annen kundes data. En retur av null nedgraderes grasiøst til "kunne ikke finne den billetten".
connector.php, henteTicket() kontrakten (referanse: kontakter/whmcs og kontakter/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 plattformen bruker den

Oppdagelse

CapabilityRegistry::providers($domain,$type) lister leverandører med installert/aktivert / ready-status (filsystembasert; DB bare for det aktiverte flagget).

Utvalg

CapabilityRegistry::active($domain,$type) returnerer den første klar leverandøren med sin lastede kobling og innstillinger. Broene kaller dette i stedet for hardcoding slims.

Varsle-til - installasjon

Når en funksjon trenger kapasitet som ikke er tilkoblet ennå, viser brukergrensesnittet et klikk på Connect/Install-prompten og aldri en dead control.

Full veiledning

Se connectors/PLATFORM_CONNECTORS.md (CRM + Site Intelligence) og connectors/CRM_CONNECTORS.md I pakken.

Koblinger

Kundens selvbetjeningsoppslag og refusjoner (bygge kontakten din for kundechat)

Signed-in customers can ask the customer chat AI about their OWN account ("my balance", "my orders", "did support answer my ticket") and, if the business enables it, request refunds. All of it is powered by YOUR connector's declarations: no OpsIQ core changes, no platform hardcoding. The AI calls your lookups as native tools (it cannot invent one), identity is locked server-side to the verified customer, and results are automatically trimmed for the AI.

Deklarer et kundeoppslag

I din actions.jsonEn kun lesebeskyttet handling blir kundesamtale med alt tre: "scope":"client", "requires_confirmation":false, "is_destructive":false. Bruk "scope":"both" Når det samme oppslaget også skal være mulig å ringe av teamet i Admin AI. Det fulle vokabular er admin, client, both og system (system Ingen av dem når AI —APIog bare webhook ruter. Alt annet blir avvist direkte: pakkevalidering mislykkes, og handlingen installerer ikke. Det er ingen writing scope — the Writing assistant is served the admin Handling satt.

Identifikasjonsreglene (obligatorisk)

Navngjev identitetsparameteren fra standardsettet. Låst til den verifiserte numerisk id: client_id, clientid, customer_id, user_id, userid, account_idLåst til ID som en streng: client_identifier, customer_identifier, account_identifierLåst til den verifiserte e-posten: email, client_email, customer_email, user_email. OpsIQ -låser og automatisk fylles det fra plattformen bekreftet logget inn kunde; AI aldri ser eller velger identitet. Et ikke standard navn mislykkes (dedikt, aldri lekket).

Hva må bare være administrator

Alt som ikke er tildekket av den identiteten: crypt-by-bare-id (order_id/ticket_id alene), store-wide lister, gratistekstsøk. De er krysskunde lekkasjer på hvilken som helst plattform. "scope":"admin".

Resultatforming (svarbærende nøkler)

Oppslagsresultatene trimmes strukturelt før de når AI: hemmelige-formede nøkler er droppet, lange strenger og lister blir overtrukket, tomme felt rennes ut, og et flatt kart bredere enn nøkkelen hette holder den svarbærende nøkler først, penger (credit, balance, amount, total, due, paid), identitet (email, *name, phone, company), stat (status, active, expir*, renew*), datoer, plan/produkt / domene- og tjenestenummer/subscription/ordre/faktura/billetter feltene, valutaen, tall og stats/summary/totalsFør noen gjenværende seter går til andre nøkler minste verdi-første. Praktisk veiledning: navngi feltene dine med det standard ordforrådet og returnere felt som svarer på kundens spørsmål i stedet for en rå 100 - nøkkel plattform dump; et felt kalt utenfor vokabular konkurrerer om venstresete, og kan trimmes fra svært bred nyttelast.

Refunds · det kontakten gir

To råoperasjoner, policyfri: (1) en betalingsverifisering som kan filtreres etter identitet og transaksjonsreferanse (din API må og filtre), f.eks whmcs_get_transactions; (2) en tilbakebetalingstiltak (scope:"admin", requires_confirmation:true, is_destructive:true, aldri kundeutnyttet), f. eks whmcs_refund_order. Forretningen velger begge tastene i innstillinger → Kundeschat; OpsIQ verifiserer betalingsserversiden, anvender virksomhetens retningslinjer boks (fjell cap, aldersvindu og månedlig grense), problemer inne i boksen, samt filles en gjennomgang billett for alt annet.

Ingen kodebygger

Handlingsredigeringsprogrammet i koblingsverktøyet har de samme kontrollene: Angi Hvem kan bruke det til Påloggede kunder, la begge skriveavmerkingsboksene være avmerket og bruk et standardnavn på identitetsparameteren.

Referansegjennomføring

Oppføringene "Kundeselvbetjening" i connectors/whmcs/actions.json, woocommerce/actions.json, oscommerce/actions.jsonFull kontrakt i connectors/README.md §8.1–8.2 og ConnectorInterface::registerActions().

Koblinger

Gjesteoppslag — la besøkende spore en bestilling, forsendelse eller ordre uten å logge på (guest_lookup)

Hoteller, kuratorer og mange handelsplattformer betjener kunder som har en referanse men ingen innlogging: gjest med bestillingsbekreftelse. En mottakere kan ha sporingsnummer guest_lookup kapasitet (Connector Contrakt, mode: generert) lar din kontakt betjene de besøkende i klientchatten AI - neiOpsIQkjerneendringer, ingen plattform hardcoding. Kontakten erklærer hva som viser rettighet og tilgjengelige felt er synlige;OpsIQhåndhever bryterne, throtle og uniformen nekte.

Stoltmodel

Referanse + bevis, aldri identitet

Den besøkende leverer rekordreferansen (sammenliknet med det regulære alternativet du erklærer) pluss beviset du velger - vanligvis e-posten på post. Din hente handling henter opptakstjenesten SERVICE ved referanse;OpsIQDen genererte leverandøren sammenligner beviset mot FETCHED-listen. Besøkets inngang er aldri betrodd, og ingen verifisert identitet opprettes: matchen gir besøkende rett til det ene rekordens tillatte felter, ingenting annet.

Uniform benekting (ingen opptelling orakel)

Ikke funnet og bevis-mismatch produserer et identisk svar. AI er eksplisitt instruert til å aldri bekrefte om en referanse eksisterer og ikke oppfinne platedetaljer. Forsøkene er satsbegrenset per samtale +IPKjernen før kontakten din blir hørt.

Dobbeltopt-in, begge standard OFF

Nothing serves guests until the business enables BOTH switches: the workspace-wide control in Settings → Security → "Guest record lookups in client chat" (permission-gated AND always password-confirmed, even when optional step-up is off), and your connector's own guest_lookup_enabled innstillinger slå av. Installere eller aktivere en kontakt alene åpner aldri gjestoverflaten.

Den dedikerte gjesteoverflaten

Den genererte leverandøren registrerer seg på guest kontekstoverflate — strukturelt adskilt fra admin og customer. Eksisterende kontextleverandører blir aldri konsultert for anonyme besøkende, og gjestgiveren er ikke rådgitt til logget inn dem. Den ctx den mottar bærer chat-meldingene, trådens id og besøkets hevdet (uverifisert) epost som en beviskandidat - ingen identitetsfelt.

Deklarer det i byggmesteren

1
Definere hentehandlingen

På handlingstrinnet legger du til en skrivebeskyttet aksjon som returnerer ONE-posten ved referansen (f. eks. GET /bookings/{booking_number}) og kartlegg sine svarfelter med alias: status, ankomst, avgang, rom_type, kunde_email...

2
Tick "Guest lookups"

På evnestrinnet, aktiver guest_lookup. Et dedikert panel vises: Velg uthentingshandlingen, navng referanseparameteren og gi referansemønsteret (ei regulært legeme som \bBK-[0-9]{4,10}\b), name the record ("booking"), and pick the proof — email on the record (recommended) or none (reference alone, for status-only courier tracking).

3
Tillat å vise de synlige feltene

Tick nøyaktig feltene en gjest kan se. Alt annet er DROPSPED - aldri omdøpt. Builderen nekter PII-formede felt (email, telefon, adresse og betaling...) i autorisasjonslisten, og utgivelsesgate samsvaret ser på nytt samme regel før du publiserer så et håndredigeringt spec ikke kan snike seg inn. Merk at installasjonstiden validering dekker manifestasjonen og signaturen bare, slik å kjøre konfidans suit selv før deg skip. Bevisfeltet i seg selv kan aldri vises.

4
Publiser og aktiver

Byggeren sender ut GuestLookupProvider.php — the canonical hardened implementation, identical for every generated package — and adds the guest_lookup_enabled slå av til konnektorens innstillinger. Bedriften arms de to bryterne og chatten AI begynner å gi oppslag når en besøkende spør om din platetype.

Kontraktregler

Bare statusformede felt

Think "what would a courier print on the public tracking page": status, dates, room or service category, counts. Names, contact details, street addresses, payment data and free-text notes have no place in an anonymous chat — the Builder and conformance both refuse them.

AA-svarene bare fra blokken

The generated provider ends its output with an instruction to answer only from the listed fields and to offer a ticket for anything else. Detail not in the allowlist is "not available in chat" — by design.

Følgeroppfølger fortsetter å fungere

Leverandøren re-deparer referanse fra besøkendes nylige melding i den samme samtalen, så - og når er uttjekning - fungerer uten å gjenstytte referansen. Den matchede referanse-og bevis epost blir husket på chattråd som CANDIDATES, slik at oppfølging ikke spør om igjen. De er kandidatene bare: hver tur fortsatt tilbake fetches rekordserversiden og sammenlikner beviser før frigjøring av et enkelt felt.

Håndgodkjente pakker

En markedspakke kan sende sin egen GuestLookupProvider.php implementing ContextProviderInterface med surfaces(): ['guest']. Follow the generated template's contract exactly — fetch by reference, proof-match server-side, uniform deny, allowlist-only output — and declare guest_lookup in capabilities. Konformansen verifiserer gjesteoverflata og skanner den tillaterne for PII

💡
Gjesteoppslag er lesebeskyttet sammenheng for chatten AI. De utfører aldri handlinger, oppretter aldrig identiteter og lås ikke opp kundenes selvbetjeningslinje ovenfor - den banen krever fortsatt en plattform-verifisert loggede kunder.
Koblinger

Fremme publikumsmålretting (promo_audience)

Let the Promotion Studio target campaigns by LIVE client and billing state from YOUR platform: "has an unpaid invoice", "order pending", "subscription cancelled". Any connector (pre-installed, marketplace, or one you build yourself) joins by implementing two small methods. No OpsIQ core changes, no platform hardcoding: your connector appears as a platform in the studio Targeting tab with its own dropdown of facts, and several connectors can be enabled side by side.

Promo publikum
Foredragssøkende rettet motEn verifisert identitet sendt til et kontaktpublikumFlags-samtale som produserer fakta som kjører en målrettingsregel, med feillukket notat.Foredragssøkende rettet motarbeidsflateLogget innverifisert identitetaudiensFlags()din kontaktFAKTERunpaid_invoices = 2REGLERUbetalte _fakturaer ≥ 1KampagnshowFeil lukket: ukjent klient eller feil → kampanjen forblir skjult.1TWO METHODSpublicerCatalog + flagg2LIVE STATEUbetalt, avventende3FAIL-SAFEViser aldri feil person
Koblingen din svarer live faktureringsfakta for den loggede besøkende; studioet mål på dem, og mislykkes lukket så et fakturatilbud aldri når feil person.

Hvordan det fungerer

1
Deklarer dine fakta

Implementer audiensCatalog () på kontaktklassen. Det returnerer et etikettnavn og listen over nøklar plattformen kan svare. Hver nøkkel dukker opp i studio- nedtrekksmenyen under dittplattformnamn.

2
Svar for én 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
Ferdig

Promotion Studio Targeting-fanen utvider en "Kunde og fakturering" -seksjon som viser plattformen din; administratorer lager regler som "unpaid_invoices >= 1"; hvert faktum blir også en personaliseringsvariabel som {unpaid_invoices}.

connector. php, den komplette promo_audience kontrakt
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

Annonser evnen

Legg til 'promo_audience' til kontakten din capabilities() array så plattformen og markedsplassen liste det som publikum-kapabel (oppdaging fungerer også fra metode tilstedeværelse, men erklærer at den er ren signal). Den forhåndsinstallerte connectors/whmcs Koblingen er den fulle referanse implementeringen.

Nøkkelnavn

Små bokstavar slange_case 2-60 tegn, som passer til ^[a-z0-9_]+$. Typer: tall, tekst og bool. Udeklarerte nøkler returnert av publikumFlags() er fortsatt brukbare i regler, men erklære alt du støtter slik at admins kan se det.

Identifikasjon er verifisert

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.

Forsinkelse · alltid

På noen feil (API ned, klient ikke funnet, tidsavbrudd) retur []. En regel hvis faktum mangler gjør kampanjen IKKE viser.En faktureringsmålrettet popup må aldri nå feil person; OpsIQ Dette håndheves også i regelen matcher.

Ytelse

publisherFlags() er kalt på det meste én gang per kontakt pr sidevisning, og bare når en publisert kampanje faktisk bruker plattformens regler. Anonym besøkende koster deg null samtaler. 1-2 API anrop; OpsIQ Minne i forespørselen.

Operatører som er gitt gratis

Admins kombinerer tastene dine med =, !=, >;}

Personalisering polletter

Hvert faktum dobler som variabel i kampanjekopi: {unpaid_invoices}, {client_status}, pluss de innebygde {first_name} og {client_email}. Verdier er sanisert før gjengivelse.

Ingen kode markedskontakter

Automatiske fakta

Deklarativ (JSON-kun) markedskontakter får promo_audience gratis: hvis kontakten erklærer kunder/brukere, fakturaer, bestillinger eller abonnementsressurser OpsIQ Henter kunde_status, ubetalte _invoices, summ_dued, avventing_ordrere, active_subscriptions og abonnement_status fra dine eksisterende søk. Ingen kode i det hele tatt.

Egendefinert katalog (innstillinger.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.

Teste leverandøren din

1
Aktiver koplingen

Connectors > your connector > Enable. Then open any campaign's Targeting tab. Your platform must appear under "Client & billing (connectors)".

2
Bygge en regel

Legg til: Din plattform · en nøkkel · >= · 1 og sett "Kun innloggede klienter". Lagre og publiser.

3
Bekreft begge retningene

Logg inn på plattformen som klient og samsvarer med regel (popup må vise) og som person som ikke gjør det.

Skyt en kampanje fra din egen kode (kundeutløser)

Hvorfor

Utover de innebygde utløsere (delay, rulling, avsluttende intent, inaktivt, klikk på sider-viset chat / billet aktivitet), kan du avfyre en kampanje fra hvor som helst i nettsted eller kontakt frontend etter et vellykket kassentrinn når ei kurv er forlatt, da SPA endrer ruten etc.

Hvordan

Sett kampanjen utløser til Tilpasset med et arrangementsnavn (f. eks checkout_failed), så ring den globale kroken fra din side:

din hjemmeside / kontakt 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');
💡
Å finne en hendelse omgås aldri målrettet eller frekvens. Det frigjør bare \"når\". kampanjen må fortsatt passere alle regler (geo, publikum, samtykke) før den viser seg.
Den fulle hvordan-å-bruk guide (designing, blokker, analyse, A/B publicering) lever i in app Hjelp Center under Engage → kampanje Studio. Funksjonen her er oppdaget automatisk fra en ENABLED-kontakt i kontakter/ eller markedsplass_connectors /. Det finnes ingenting å registrere seg. Send de to metodene, og studioet gjør resten.
Koblinger

Kontinuerlig kontakt (Kontrakt 2.2)

Den survey kapasitet lar alle plattformer levere verifiserte kundeidentifikasjonsadaptere, publikum fakta, trygge varier og mottakere kandidatene til Survey Studio. promo_audience og gir ikke kontakt eierskap av undersøkelser, svar, analyse eller e-postlevering.

💡
Implementasjonsstatus. Forfatterskap er fullstendig og brukbar i dag: Connector kontrakt 2.2, SurveyConnectorInterface, det dedikerte byggepanelet som genereres SurveyProvider.php, pakke metadata og konformanseisolasjon alle skip. Forbruket er ennå ikke kablet: SurveyConnectorRegistry er implementert og testet, men ingen Survey kjørtid kaller det ennå så leverandørens helse ikke overflater i admin-grensesnittet og ingen publisert kontaktpakke erklæres evnen. Signerte undersøkelse Identity Gateway utstedelse, målrettet og variabel integrasjon, CRM Outreach materialisering samt de første fraktede tjenestekartleggingene forbli separat fasene. Bygg mot denne kontrakten nå; forventer løpstiden til å begynne å konsumere den i en senere utgivelse.

Leverandøransvar

Katalog og fakta om publikum

Deklarer kanoniske fakta og løse verdier bare for et serververifisert, arbeidsområdebundet emne. Typiske fakta inkluderer ordre_count, last_ordre_status, avlyst_ order_count client_created_at, active _subscription_count; past_due_invoice_count and open_ticket_count

Variabel katalog og verdier

Deklarer kunde, konto, ordre og støttevariabler med type, følsomhet og tillatt kontekst. Survey kopi krever reserves og utgangs-context flyktning.

Mottaker paging

Valfritt opptjene kandidater til CRM Outreach med stabil ekstern ID, avgrensede sider, deterministiske markører og samtykkerelatert metadata. Undersøk fryser det valgte publikum før noen sendes.

Identifikasjon

Godta kun identitet fra Survey Identity Gateway etter token signatur, utløper, formål, kontakt og arbeidsområde verifisering. Nettleseren-supplied email, ID, tags eller faktureringsfakta er aldri autoritative.

Runtime helse

SurveyConnectorRegistrer er utformet for å rapportere kompatible, blokkerte og utilgjengelige leverandører uten eksponering innstillingene, stien eller rå identitets-eller unntaksmeldingane. En blokkert udbyder kan aldri påkalles. Rapporteringsoverflata blir ennå ikke eksponert i adminensgrensesnittet: I dag er en blokkleverandør ganske enkelt inerte.

Feillukkede regler

Udeklarerte nøkler, feil typer, overdimensjonelle verdier, emnefeil og ukjente identiteter avvises. En målrettingsregel som trenger et utilgjengelig faktum stemmer ikke med. Mottakeresider er nedlagte og revidert. Følsomme verdiar vises aldri i offentlig forhåndsvisning eller logger.

Byggerutgivelsesport

Kontrakten 2.2 skiper kapasitet registeroppføring, grensesnitt, kartleggingspanel for undersøkelser som genereres SurveyProvider.php, funksjonsversjonen, README/developer referanse og konformanse fikser. Handels-, aiddesk- eller SaaS broprofilene inkluderer det; Standard API connectors velger inn. Den statiske gate avviser en undersøkelse leverandør som kaller et kampanjenavnrom, tabell eller evne.

💡
Kopier fra kampanje er import-bare: Builder kan oversette kompatible kampanjekartlegging én gang, lagre en fullstendig undersøkelsesejet kopi og registrere bevis. Sletting eller endring av kampanjen kartlegging må ikke endre Survey oppførsel.
Koblinger

Svar tilbakemeldingskapasitet (Kontrakt 2.2)

Den reply_feedback evne speiler en plattforms egen per-reply vurdering i OpsIQ. En stjerne en kunde gir et personale svar inne WHMCS Kundeområdet lander på SAME-svar i OpsIQ admin tråd, med samme chip, agent kreditt, tilbakemelding side oppføring og lag & ytelse beregning som en rating gitt på et OpsIQ portalbillett. En lagring, en chip, én rørledning; koblingen oversetter bare.

Den som skriver vei

Det er nøyaktig to inngangsstier og én sannhet. OpsIQ portalbilletter skrive innfødte . Plattform billetter flyt gjennom kontakten, og kjerne lander hver hendelse via ReplyFeedback::recordMirrored(): de samme søylene, kun stav-beskytterregelen, en rating per reply nyeste wins semantics og stemme fra kundeindeksering av portalskriveren bruker. En kontakt skriver aldri tilbakemelding rader selv.

Forenlig (fire filer, deretter logg)

1
connector_contract.json

Legg til funksjonene.reply_feedback oppføringen: versjon 1.0, SvarFeedbackConnectorInterface-metoder svarerKatalog og trekker tilbakeReveller Feedbakke.

2
settings.json

Legg til svar_feedback i listen over evner. Dette er det koblingsfunnet leser på.

3
spec.json

Deklarer svar_feedback. modes (poll og/eller webhook) samt plattformens vurdering skala. Dette er hva konformance gate leser.

4
Runtime klasse

Implementer grensesnittet, list respond_feedback i kapasitet() og signer deretter pakken på nytt.

Leverandøransvar

Katalog

Deklarasjonsmoduser, plattformens egen ratingskala (core normalises til det innfødte 1-5), og alle reaksjonssymboler. Katalogen må være enig med spec.json.

Trekk oversettelse

trekkRevraFeedback returnerer kanonisk hendelse: plattformbillett id, plattformsvars-ID, vurderinger, valgfri reaksjon/komment, innsendt tid og en stabil event_id. Den leser og oversetter. Det skriver aldri.

Idempatiens

event_id er stabilt per tilbakemelding Staten, så en replayed hendelse er ikke-op og et endret rating overskriver (seneste gevinster som portal).

markør disiplin

Sider er avgrenset og deterministisk; en markør som ikke går videre avslutter kjøringen. Historisk tilbakefylling dreneres som et rullende vindu, aldri én gigantisk trekking.

Probe sikkerhet

Ingen konfigurasjon, returnere en tom fullstendig side i stedet for å kaste. Konformansekjører prober med tomme argumenter.

Feillukket oppløsning

Core løser hver hendelse til et lokalt svar fra speilmerket billettspeilet allerede frimerke (<slug>:<ticket>:reply:<reply>). En hendelse som ikke kan løses, er droppet og aldri gjett; tilbakemeldinger bare knytter til ansatte svar; Og agent kreditt alltid kommer fra svaret eksisterende forfatter. Vurderingen skriver aldri endrer forfatterskap. Dette er grunnen evnen krever inbound_ticket eller ticket_mirror.

Arbeidt eksempel: WHMCS

WHMCS lagrer klientområde per-reply stjernerangeringer i tblticketreplies.rating. Den WHMCS konnektor erklærer meningsmålingsmodus med en 1-5 skala, skip a ticket_reply_ratings relékommando i brofilen, og oversetter hver rad til en hendelse som passer med ID-ene whmcs:<ticket>:reply:<reply> markører billettspeilet allerede frimerker. Etter oppgradering av koblingen, kopier brofil til den WHMCS serveren så den nye kommandoen eksisterer der.

💡
Fullutviklerkontrakt med grensesnitt, arrangementsformer og normaliseringsregler samt samsvarskontrolllisten: doc/contracts/TICKET_REPLY_FEEDBACK_CAPABILITY.md i OpsIQ pakke. Aksept: ranger et svar inne i plattformen, vent på timemålingen og det samme svaret i OpsIQ viser chipen, Feedback-siden lister den og en gjenspilt hendelse endres ingenting.
Koblinger

Kontakt markedsplass

Marketplace lar deg oppdage, installere og publisere kontakter bygget av samfunn.

Markedsplass
Kontakt markedsplassEt søkbart rutenett av felles kontaktkort med kategorier, installer knapper og stjernerangering.Kontakt markedsplassarbeidsflateSøkekontakter...KalenderPlanleggingInstaller★ 4.8HubSpotCRMInstaller★ 4.6MailchimpE-postInstaller★ 4.7QuickBooksRegnskapInstaller★ 4.5TwilioSMSInstaller★ 4.9BegrepDokumenterInstaller★ 4.41DISCOVERSamfunnskontakter2INSTALLEtt klikk3PUBLISHLogg inn og send din
Bla gjennom fellesskapskontakter, installer i ett klikk eller signer og publiser dine egne, forhånd installerte og markedsplassnivåene både søkbare.

Finne og installere kontakter

1
Bla gjennom

Gå til Kontakter > Markedsplass. Søk etter navn, kategori eller plattform

2
Anmeldelse

Sjekk beskrivelsen, støttede handlinger og vurderinger.

3
Installer

Klikk Installer. Koblingspakken laster ned og installerer til markedsplass_connectors/ !

4
Konfigurer

Aktiver det i konnektorer, skriv inn API akkreditiv og test.

Publisering av en kontakt

1
Bygge og test

Bruk Connector Builder. Kontroller alle handlinger fungerer

2
Pakke

Opprett profil.json Handlinger.json Kunnskap.json, og PHP-filer.

3
Signere

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
Send

Last opp gjennom markedsinnsendelsesflyten for vurdering.

To kontaktnivåer

kontakter / - hva som faktisk kjører

Runtime funn rot. Alt her er live: kontaktene som leveres med OpsIQ, alt installert fra markedet og hva som helst Connector Builder publiseres på denne installasjonen.

marketplace_connectors/ — where packages are authored

Utgivelses- SERVICE for førsteparts markedspakker. Det er ikke en oppdagelse root: ingenting her er live før det pakket, signert og frød i katalogen og installert på hvilket punkt et kopiland i kontakter/.

💡
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.
Utvikler

API og webhook builder

Den API og Webhook Builder lar deg opprette egendefinerte API Endepunkter og webhook-lyttere inne OpsIQ Uten å skrive rå PHP.

API byggmester
API og webhook builderEn byggmester velger en utløsertype (innbundet webhook, tidsplan, hendelse og manuell) som mater til et konfigurerbart handling.API& webhook builderarbeidsflateTRIGGERConstellation name (optional)Innkommende webhookPlanlegger (kron)OpsIQ _hendingManuellHandlingKart innkommende felt →opprette billett / varsle/samtale APILagre endepunkt1UTLØSEREWebhook · Planleggingstabellen2NO RAW PHPBygget i UI3ActionKartfelt, og deretter kjøre
Bygg endepunkter uten rå PHP: Velg en utløser (innbundet webhook, tidsplan, hendelse eller manuell), og kartlegg felt til handling.

Utløsere

Hendelse

Kjør når noe skjer i OpsIQ, eller når et eksternt system legger inn en matchende hendelse til din webhook URL. Skriv inn hendelsesnavnet, for eksempel billett.skapes.

Planlegger

Bruk en av de innebygde intervall hendelsene som arrangementsnavn: cron. minutuously, kron. hourly eller Cron. daily. Handlingene og Triggers-skjermen har knapper for disse så du trenger ikke å huske dem.

Frase

Kjør når en administrator spør AI for det på vanlig språk. Legg til frasen som skal matche, fx finne kunden.

Innkommende webhook

Et eksternt system sender en HTTP POST til din OpsIQ webhook URL Alle utløsere som lytter til hendelsesbrannene.

Bare kjør det noen ganger: betingelser

En hendelsesutløser kan bære betingelser, så det kjører bare når de innkommende dataene matcher. Uten forhold den kjører hver gang hendelsen branns.

Felt

En sti til hendelsesdata. Bruk en prikk for hekkede verdier, f. eks. kunde-email.

Passer alle eller noen

Velg om alle regler må samsvare, eller bare én av dem.

Tekstprøver

lik, ikke like, inneholder og har ikke, starter med er en av, det er ikke én.

Antall tester

større enn i det minste mindre enn, på de fleste. Tal skrevet som tekst sammenlignes fortsatt riktig.

Forekomstprøver

Det er til stede, det mangler og tomt.

Bare side on-call ingeniør for haster billetter

Scenario:
Event ticket.created, with one rule: priority equals urgent.
Hva skal jeg gjøre:

Handlingen går for hastebilletter og er hoppet over til alt annet. Ingen filtrering nødvendig i slutten av din.

💡
Hvis du la reglene slette utløseren kjører på hver matchende hendelse, som er den samme oppførselen som før forholdene eksisterte.

Handlinger

Send webhook

Send HTTP POST til en ekstern URL med egendefinert nyttelast.

Lag billett

Opprette en støttebillett med spesifisert avdeling, emne og melding.

Send e-post

Send en e-post med egendefinert mal.

Oppdater rekord

Oppdatere en kunde, billett eller CRM-rekord.

Kjør kontakthandling

Kjøre en registrert handling fra et aktivert kontaktstykke med konnektorens tillatelses- og bekreftelsesregler.

Kjøre OpsIQ Generelt API handling

Søk i den komplette navngitt generelle API katalog. Felt, omfanger, tillatelser, bekreftelse, idempaens og støtte for tørrkjøring kommer fra livehandlingskontrakten; arbeidsflyt utføres inne på det lagrete arbeidsområdet og administratorkonteksten.

Send leverandør-native API forespørsel

Bruk en koblings-institusjon API Lese eller bekreftet Native API Skriv handling når leverandørens endepunkt ikke har noen kurert action. Kreditter forblir inne i kontakten, og bare relative tilbyderstier er aksepterte.

Handlinger og utløsere, /api/v1.php, OpenAPI and Postman bruker samme ActionContractRegistry slik at en valgbar handling ikke kan drive fra kjøretiddokumentasjon.
Utvikler

Triggers kokebok

Klar til bruk trigger-action oppskrifter for felles automatisering.

Hvordan det fungerer
Triggers kokebokEn oppskrift flyt: en oppetid. down webhook passerer et produksjonsfilter, og fansen ut for å skape en hasterlig billett samt varsle Slack.uptime.downskjerm webhookHvis prodfilterOpprette rask billettVarsle Slack #ops
Triggers kokebok

Auto-skape billett fra overvåking

Scenario:
Monitoring system sends POST when server goes down.
Hva skal jeg gjøre:

Trigger: Inbound webhook Condition: payload.status = "down" Action: Create ticket · Dept: Technical, Subject: "Server {{payload.hostname}} down", Priority: Urgent

Slack varsling om store bestillinger

Scenario:
Slack message every time a customer places an order over $100.
Hva skal jeg gjøre:

Trigger: Event (order.completed) Condition: order.amount > 100 Action: Send webhook to Slack incoming webhook URL with order details

Ukelig fordøyelsesmail

Scenario:
Summary email to management every Monday at 9am.
Hva skal jeg gjøre:

Trigger: Schedule (Monday 09:00) Action: Send email with last week's stats pulled from the REST API

Escalate stale billetter

Scenario:
If a ticket has no reply for 24 hours, assign to team lead.
Hva skal jeg gjøre:

Trigger: Schedule (every hour) Condition: ticket.status = "Open" AND ticket.last_reply_age > 86400 Action: Assign to team-lead, add internal note

Utvikler

Bygg din første handling

Denne gjennomgangen skaper en enkel kontakt action fra grunnen.

Byggetiltak
Bygge en handlingEt handlingsdefinisjonsskjema: navneoppslag_ordre, en GET-forspørsel til /orders/{id}, en skriven id-parameter og et passerende 200 Test.Ny handlingarbeidsflateNy handlingNavnlookup_orderForespørselGET/orders/{id}Parametereid · streng200 · rekkefølge funnet1DEFINENavn, metode og endepunkt2PARAMSTyper inndata3TESTLive 200 resultat
Bygg en handling fra grunnen. Navng det, angi metoden og endepunktet, erklære skrivne paramer, og test den til et live 200

To typer action

Før du starter, avgjør hvilken som er nødvendig. Begge konfigureres på samme skjerm.

Ring et eksternt API

Handlingen sender en HTTP-forespørsel til plattformen din. Velg dette når OpsIQ Må komme seg ut og gjøre noe på din side.

Kjør en kontakthandling

Handlingen kjører noe som en installert kontakt allerede gir. Velg dette når arbeidet er tilgjengelig, og du vil bare utløse det. Du velger koblingshandling fra ei liste så det ikke finnes noget å koble opp.

Det andre alternativet er hvordan du gjenbruker alt kontaktene dine kan allerede gjøre uten å bygge noe av det igjen: les en billetttråd, slå opp kunden, importere kontakter og så videre. Velg kontakthandlingen fra rullegardinet og gjør deg ferdig !
1
Planlegg handlingen

Example: "lookup_product". Look up a product by name, return price, stock, and description.

2
Definer i handlinger.json

Legg til handlingsdefinisjonen:

Handlinger.json— den virkelige manifeste formen
{
  "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ørrkjøring

I Connector Builders Review trinnet, trykk Dry-kjør. Den kjører den fulle samsvar sjekklisten mot pakken din og når du har levert legitimasjonene gjør en ekte tilkobling test. Det bruker ikke prøvedata.

4
Kontroller bruk av AI

Spør admin AI: "Slå opp produkt Widget Pro." Den kunstige intelligensen skal finne og utføre handlingen.

⚠️
Legg til en handling i handlinger.jsonoppretter IKKE en AJAX-rute, så det er ingenting å regenerere. Kontakthandlinger synkroniseres tilOpsIQnår koblingen er aktivert eller innstillingene lagres: Lagre kontakten på nytt og den nye handlingen vises. verktøy/gen_route_registrery.php dekker admin AJAX-sendinga, som ikke har noe å gjøre med kontakthandlinger.
Utvikler

Innbundne hendelsesendepunkter

Inngående endepunkter akseptere signert JSON fra et annet system og gjøre det til deduplisert kontaktaktivitet som kan mate tidslinjer, scorer og arbeidsflyt.

Produktskjerm
Inngående endepunkterHver inngående kilde har sin egen URL Hemmelig, kartlegging og nylige aktivitetsresultat.Inngående endepunkterarbeidsflateKJØP5ACCEPTED12.4kREJECTED18LIV ARBETSPESSONEFaktureringsplattformabonnenterSunnProdukt appRegistrer og bruksbegivenheterSunnHendelses- IDprovider_event_idDedupliserSignaturX-OpsIQ- Innkommende- signaturHMAC1CREATE SOURCEURL og hemmelig2MAP PAYLOADE-post, hendelse og ID3VERIFYHMAC inntas deretter
Hver inngående kilde har sin egen URL Hemmelig, kartlegging og nylige aktivitetsresultat.

Opprette én kilde per sendingssystem. OpsIQ genererer en URL/token og hemmelighet. Send JSON med Content-Type: application/json og signere den nøyaktige rå kroppen ved hjelp av HMAC-SHA256:

X-OpsIQ-Inbound-Signature: sha256=<hex hmac>

Kart JSON stiger for kontakt e-post, hendelsesnavn og valgfri hending ID. HendelsesID er den foretrukne deduplisering nøkkelen. Godkjent aktivitet går inn i kontakt tidslinjen og kan påvirke bly scorering, segmentene, livsyklusregler og arbeidsflyten.

Avvise ugyldige signaturer før du tolker forretningsdata. Roter en hemmelighet ved å oppdatere begge sider i et kontrollert vindu; logg ikke på hemmeligheten.

Utvikler

Utgående webhook-operasjoner

Utgående webhook-administrasjon skaper signerte abonnementer, testendepunkter og overvåker asynkron levering og forsøk på helse.

Produktskjerm
Utgående webhooksSiden utgående webhook viser HTTPS-endepunkter, hendelsesabonnementer og leveringshelse samt en ettklikk på signert test.Utgående webhooksarbeidsflateENDPOINTS7SUCCESS99.2%RETTRYING4LIV ARBETSPESSONECRM-speilkontakt.* og avtale ;)SunnStøttebusschat.*SunnDatalager*ForsøkTestleveringSignert prøvelastKlar1SUBSCRIBEHTTPS URL og hendelser2AUTHENTICATEHMAC-signatur3OBSERVELeveringsskinne og retries
Siden utgående webhook viser HTTPS-endepunkter, hendelsesabonnementer og leveringshelse samt en ettklikk på signert test.

Fulle administratorer oppretter et HTTPS endepunkt, velger bestemte hendelser eller jokertegnet, lagre den hemmelige trygt og sende en test. OpsIQ signer rå nyttelast med HMAC-SHA256:

X-OpsIQ-Signature: sha256=<hex hmac>

Kontroller signaturen før deserialisering eller handling. Levering er asynkron og automatisk tilbakeført etter ca. 1Minutt, 5 minutter, 30 minutter,2timer og 12 timer. Bruk den nylige leveringsskinnen til å inspisere status, responskode og prøvetall.

Mottakeren må være idempatent fordi et asynkront system kan omlevere. Returner en 2x x respons bare etter varig akseptering.

Utvikler

Webhooks

Webhooks lar eksterne systemer varsle OpsIQ Når det skjer noe (inbound), og la OpsIQ varsle eksterne systemer når noe skjer internt (utgående).

Webhooks
Utgående webhooksDen utgående webhooks-skjermen: en sluttpunktstabell med navn, abonnerte hendelser og nylige leveringsstatuspunkter.Utgående webhooksarbeidsflateEndepunkter+ Lagre endepunktNAMNHendelserDELIVERIERSlack #salgsvarslerhttps://hooks.slack.com/…result. created, salgTestCRM-speilhttps://api.acme.com/hookkontakt.*, billett. skapetTestZapierhttps://hooks.zapier.com/…chat.startedTest1ENDPOINTSNavn, hendelser URL2SIGNEDHMAC + auto- forsøk på nytt3SEND TESTBekreft leveringer
Den virkelige utgående webhooks-skjermen: hvert endepunkt med sine hendelser, nylig leveringshelse og en ettklikk Send test, signerte og retried.

Utgående webhooks

Underskrivelse

Gå til innstillinger > Webhooks. Legg til et endepunkt URL Velg hendelser å motta.

Hendelser

click. created, billett. replied, chat. started, chatt. message, bestilling. fullendt, crm. deal. stage_changed, clm. connect. comperated osv

Prøv på nytt

Feil ved leveranser igjen. Etter at 15 _-feil er fullført, blir endepunktet automatisk slått av.

Underskrift

Hver forespørsel inkluderer en HMAC-signatur i X -OpsIQ-Signatur.

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-leveranse

Webhooks leveres via jobbkøen, ikke blokkering OpsIQ -operasjoner.

Stabilt arrangement ID

Hver event har en unik hendelse_id som forblir den samme på tvers av returer til deduplikasjon.

Bekrefter webhook signatur

PHP · verifiser 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, verifiser 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 webhooks lokalt?+

Bruk ngrok til å eksponere den lokale serveren. Velg webhook- endepunktet for din ngrok URL.

Hva om enden min er midlertidig nede?+

OpsIQ returer med eksponentiell tilbaketrekking. Hvis endepunktet gjenopprettes i gjenprøve vinduet, går ingen hendelser tapt.

Utvikler

API-nøkler

API nøklers autentisering forespørsler til OpsIQ REST API. Hver nøkkel har omdekket tillatelser

API-nøkler
API-nøklerAPI -tastene: et problempanel med tilgangsnivå og omfangsbriller, ved siden av en liste over eksisterende maskerte nøkler.API-nøklerarbeidsflateSende en nøkkelTilgangLesebeskyttetBegrensetOmfangcontacts.readtickets.readevents.writeProblemnøkkelDine nøklerZapier integrasjonopq_•••·4f2aTrekk tilbakeMobil appopq_•••·91c7Trekk tilbakeAnalytics eksportopq_ ••••2db0Trekk tilbake1SCOPEDLesbare eller begrensede2PER-ACTIONVelg nøyaktige omfang3REVOCABLERoter når som helst
Den virkelige API -tastene skjerm: utstede en omfangsbasert, lesebeskyttet eller begrenset nøkkel ved å velge nøyaktig rekkevidde og trekke tilbake enhver nøkkelen når som helst.

Oppretter en API nøkkel

1
Gå til innstillinger > API Nøkkeler

Navigate to API key management.

2
Klikk på Opprett nøkkel

Gi det et beskrivende navn.

3
Velg omfang

Gi nøkkelen bare det den trenger. Områder kommer i lese og skrive par per område, så en rapportering integrasjon kan gis less og ingenting annet.

Tilgjengelige omfang

Velg det smaleste settet som gjør jobben. admin tilfredsstille alle omfangene nedenfor, så bruk det bare når du virkelig trenger bred tilgang.

crm. read / crmtwrite

Kontakter, selskaper, tilbud, aktiviteter, segmenter, utadvendte, konverteringsmuligheter og CRM-webhooks.

billetter. less / billettene. write

Liste og les billetter, samt meldinger; svar på dem. Oppdatere, åpne og kjøre store køoperasjonene.

conversations. lese/contacts

Les samtaler med livechat og meldingshistorie; send meldinger, tilordne og endre status.

kb. read / KB

Kunnskapsgrunnleggere.

chat. read / chatt. write

Lagret svarmaler.

connectors.read

Se hvilke kontakter som er installert, hva de kan gjøre og teste sine legitimasjoner.

automations.read

Se handlingene dine, utløser og deres historie.

departments.read

Departementer som er tilgjengelige for rute.

notifications.read

Varsler for en navngitt operatør.

analytics.read

Rapportere seksjoner, CSV -eksport og planlagte rapportdefinisjoner.

page_intelligence. read

Overvåkede nettsteder og deres SEO rapporter.

files.read

Signert nedlastingslenker for vedlegg.

status.write

Statussidekomponenter og hendelser.

writing

AI-skrivehjelpere: utkast, sammendrag, oversetter og omskriving.

admin

Alt, inkludert et lite antall sensitive handlinger som bevisst ikke kan nås av noe smalt omfang: sletter en kontakt, endrer personverninnstillinger og leser tilgangsloggen.

💡
Ring meta. aksjoner med nøkkelen din for å se nøyaktig hvilke handlinger det kan kjøre på installasjonen. Det er alltid mer pålitelig enn å jobbe fra en liste.

Tilgangsnivåer

Alle

Nøkkelen kan kalle alt det den tillater.

Lesebeskyttet

Hver skriving blir nektet, uansett omfanget sier. Det tryggeste valget for rapportering, dashboards og alt som aldri bør endre dataene.

Begrenset

Du finner de nøyaktige handlingene nøkkelen kan ringe. Alt annet blir nektet, selv innenfor et tillatt omfang.

4
Kopier nøkkelen

Vist én gang. Starter med "opq_". Oppbevar den trygt.

🚫
Del aldri API nøkler i offentlig kode, klientside JavaScript eller versjonskontroll. Bruk miljøvariabler
Utvikler

Koble til nettstedet ditt

Den OpsIQ widget er et JavaScript snutt du legger til på nettstedet ditt for sporing, AI-chatt, billettskapelse og kundeidentifikasjon.

Hvordan det fungerer
Koble til nettstedet dittEn one-line skript tag til venstre og, til høyre, en nettside 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>
Koble til nettstedet ditt

Grunnleggende installasjon

Grunnleggende widget small
<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.

Konfigurasjonsattributter

data-site-key

Nødvendig. Din nettsidenøkkel fra tilkoblede nettsteder

data-mode

Valgfritt. "chat" (standard), "billetter", eller "begge".

data-position

Valgfritt. "nederst til høyre" (standard) eller "nederste venstre".

data-color

Valgfri. Primær farge hex kode

data-greeting

Valgfritt. Første hilsen meldingen

data-language

Valgfritt. Språk for brukergrensesnitt: « en », « es »,« fr »,» de »," pt "," ar ", etc.

data-identity-token

Valgfritt. Servergenerert signert identitetssymbol

SPA-støtte

Manuell 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 widget
script-src 'self' https://your-opsiq-domain.com;
connect-src 'self' https://your-opsiq-domain.com;
frame-src https://your-opsiq-domain.com;
Må widgeten bremse nettsiden min?+

Nei. Under 15 KB gzipped, laster async etter sideinnholdet !

Kan jeg tilpasse utseendet?+

Bruk datafarge for primær farge. Kontaktstøtte til CSS overstyr alternativer.

Utvikler

Widget installere oppskrifter

Plattformspesifikke installasjonsguider.

Hvordan det fungerer
Widget installere oppskrifterPlattform installer kort for WordPress, Shopify og Google Tag Manager, hver sier hvor du skal legge til widget.WPWordPressInstaller plugin, skriv innNettstedets nøkkel, spar.BestillShopifyLim inn snutten i.flower før /body.GTMTaggbehandlerCustom HTML -tagg, alle sider.
Installer oppskrifter

WordPress

Scenario:
Add to all pages of a WordPress site.
Hva skal jeg gjø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

Scenario:
Add to your Shopify store.
Hva skal jeg gjøre:

Online Store > Themes > Edit Code > Layout > theme.liquid. Paste before </body>. Save.

React / Next. js

Scenario:
Add to a React or Next.js app.
Hva skal jeg gjø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

Scenario:
Add to your WHMCS client area.
Hva skal jeg gjøre:

Oppsett > Generelle innstillinger > Annet> Global Footero innhold. Lim inn snutten eller rediger malfoten din. tpl

Google Tag Manager

Scenario:
Add via GTM.
Hva skal jeg gjøre:

Opprett egendefinerte HTML -tagge, lim inn snutt. Trigger: Alle sider. Publisher

Utvikler

Admin-widget i bakstykket ditt (en kontrakt, en hvilken som helst plattform)

Embed the OpsIQ admin assistant — admin chat, ticket inbox and AI Writing — inside YOUR OWN platform's admin panel, so your team never leaves their tools. Like visitor identity and portal SSO, this is ONE generic contract implemented in ~15 lines of your platform's server code — the same pattern Zendesk, Intercom and Discourse use for SSO. There is no per-platform plugin to wait for: any stack that can compute an HMAC can do this today.

Step 1 — the embed line

Fra Eksterne nettsteder→nettstedet ditt→KoderKopier lastelinjen og legg den til i adminpanelets sider (fotholder inkluderer, layoutmal eller en administrator-kun tilpassede JS boks):

En linje innebygd
<script async src="https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=SITE_KEY&identity_token=TOKEN_FROM_STEP_2"></script>

Trinn2- fortellerOpsIQsom er logget inn (server-signert)

Bare programmet vet hvilken administrator som er logget på - det vil si ikke å bli mangelfullt, det er sikkerhetsmodellen. Serveren genererer et kortlevende signert polikum fra din egen sesjon, akkurat som besøkersidentitetstokinene, underskrevet med samme nettsted webhook-hemmelighet:

PHP · Signere admin-identiteten fra sesjonen din
<?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 tilgang, automatisk

Every admin who logs into your platform is matched individually: OpsIQ's per-admin access gate resolves the token's username + email against one OpsIQ agent (Team page; use the agent's "match emails" list when platform emails differ) and applies THAT agent's workspace, department and inbox permissions. New staff member = add the agent in OpsIQ; no embed changes.

Roller ride langs

Uansett hvilken rollestreng plattformen sender vises påOpsIQsiden for tilskrivning; autorisasjon kommer alltid fraOpsIQEn agent, aldri fra den hevdete rollen.

Hvorfor ikke lese vår påloggingsinformasjonskapsel?

Browsers never send your admin cookie to another origin — no vendor can "just detect" your login cross-domain. Every serious product solves this the same way: your server vouches, signed. That is the whole contract.

Enkel modus (enkelt-admin butikker)

Hoppe steg2og bruk den statiske token fra eksterne nettsteder→Koder i lastelinjen (token=... i stedet for identity_toke = ...). Skjermprogrammet fungerer med arbeidsområdets felles identitet; per-admin port kan bli håndhevet senere når laget vokser.

Den authenticated flagg - plasser det på TOP-nivå

Dette flagget er serverens påstand om at et menneske virkelig er logget inn, og OpsIQ avviser noe symbol uten det. "authenticated" => true beside site_key/iat/expIkke bare i admin objekt. Nåværende OpsIQ aksepterer det i enten posisjon, men eldre utgivelser bare lese toppnivå - og feilen er vildledende: samtaleliste, historie og ulest alle autentisitetsfin mens hver chat-sving svar "Admin login required", som ser ut til å være en økt bug og er ikke. Hvis du se nøyaktig den splittelsen, sjekk dette flagget først.

Token hygiene

Logg på serveren bare, aldri i nettleserJavaScript. Hold exp kort (minutter til timer);OpsIQavviser utløpte og fremtidsbestemte polletter, og signaturen bindes til symbolet på nettstedets nøkkel.

Referansegjennomføring

DenWHMCSmodulen gjør dette automatisk fraWHMCSadministrator sesjon; Botble Hotel-kontaktens brofil gjør det fra Laravel Session (op=admin_identity). Begge er bare denne kontrakten i deres plattform dialekt - kopiere som leser nærmest stabel.

Null side ledninger (tilkoblings-deklarert sonde)

Når din OpsIQ -kontakt lagrer identitetsendpoint i sin admin_identity_probe_url innstilling, PLAIN-lasterlinjen er alle dine admin sider trenger: widgeten oppdager proben fra koblingsenheten, kaller den med nettstedet ditt nøkkel + widney token og godkjenner hver administrasjon automatisk. Siden kan fortsatt overstyre en data-identity-endpoint attributt eller window.OpsIQAdminIdentityEndpoint.

Implementere identitetsendepunkt på Laravel (hardwon-noter)

Hvis plattformen din er Laravel (Botble, Bagisto og tilpassede apper) og endepunktet ditt er en frittstående fil som starter rammen for å lese den loggede administratoren vil tre detaljer spare deg timer - hver produserte en reell produksjonsfeil før det ble lært:

Bind forespørselen før bootstrap

Tjenesteleverandørene kan løse request Laravels egen livssykkel binder den fangete forespurnningen først inne. Kernel::handle() Speil som er den ordren: $app->instance('request', Request::capture()) FØR $kernel->bootstrap()Eller du får "Target class [request] does not exist".

Session-cookies prefiks erHMAC-keyed

Moderne Laravel prefikser informasjonskapselverdier med enHMACBeregnet med APP-tasten (CookieValuePrefix) — en slette sha1(name."v2") Kan aldri matche det. CookieValuePrefix::validate($name, $decrypted, $keys), med en strukturell tilbakefall (40Heksetegn + | i stilling40). Fortell: En økt-ID lengre enn40tegn (81= Prefiks fortsatt vedlagt) og en økt som bare laster med _token I den.

Hvor loggen bor

Authen-tempelet er login_<guard>_<sha1(guard class)> — for standardnettvakten: 'login_web_' . sha1(Illuminate\Auth\SessionGuard::class)Skann alle login_* numerisk nøkkel som en tilbakefall for tilpassede vakter.

Feilsøk som broen gjør

Send a debug=1 modus som navngir den sviktende STEP og unntak - en blind fangst-alle gjorde et levende distribusjon udiagnostisert. Botble broen (fra v1.0.7) er referanse: trinnmarkører ved kjerne/binde / bootstrap/decrypt/session/auth/db.

Laravel · komplett identitetsendepunkt (kopier, sett de to konstantene som er ferdig)
<?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 endepunktet på andre stabeler

Only the "who is logged in?" line changes — the signing block is identical everywhere. Sign on the server, never in JavaScript.

WordPress · WHMCSSymfony · vanlig PHP - bytte oppslag, hold signeren
<?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 fungerer - diagnose i denne rekkefølgen

Widget vises aldri, konsollen sier "signed admin identity token is required"

Sluttpunktet returnerte ikke identity_token. Åpne endepunktet URL direkte i den loggede admin-leseren med &debug=1 - du vil se det feilaktige trinnet. På Laravel er dette nesten alltid den forespurn-bindende eller informasjonskapsel-presentasjonselementet ovenfor.

Historie og samtaler fungerer, men hver chattur sier "Admin login required"

Den klassiske splitten. Token mangler TOP-LEVEL authenticated flagg - widgetens eget endepunkt aksepterer token, den delte verifisering bak chatstraum avviser det. Legg til "authenticated" => true beside exp.

"admin not provisioned in OpsIQ" (HTTP)401)

The token verified, but its username + email match no OpsIQ agent. Add the agent in OpsIQ → Team, or add the platform email to that agent's match-emails list when it differs from their OpsIQ email.

Alt403sfra nettleseren, men jobber med krølle

En CORS- forhåndsbelysning avviser et forespørselhode. Sluttpunktet må svare OPTIONS og ekko den anmodende opprinnelsen, eller bare unngå egendefinerte overskrifter - widgeten trenger kun informasjonskapsel.

Fungerte i går, mislykkes i dag

Sjekk exp: token er kortlevet av design. Skjermelementene re-probes automatisk, så dette betyr vanligvis sluttpunktet sluttet å se økt - en app nøkkel rotasjon, et session driverendring eller ei endring i informasjonskapseldomain.

💡
Admin-widgeten skjules til identitet løser seg, og hver chat/innboks / datasamtale håndheves serversiden mot den matchedeOpsIQagent uavhengig av noe siden hevder. Token låser opp UI; tillatelser kommer alltid fraOpsIQ.
Utvikler

Besøkendes identitet

Identifikasjon kobler anonyme besøkende til kjente kunder. Når identifisert, OpsIQ linker surfing historie, samtaler og billetter til kundeprofilen.

Hvordan det fungerer
Besøkendes identitetEn flyt: en bruker logger inn på nettstedet ditt, du utsteder et signert identitetssymbol og OpsIQ Forener sesjonene deres, chatten og billettene til én profil.Brukerlogger innPå nettstedet dittSignert polikumidentitet_ token (HMAC)En profilsessions+ samtaler+ billetter
Besøkendes identitet

To nivåer av identitet, og når hver er nok

Nivå1— et usignert hint

Du forteller widgeten som besøkende er med en sletteJavaScriptobjekt. Det fyller e-posten og kundens id på besøkende logg, så dashboardet viser sign in trafikk og økter bli med. Dette er en HINT: alle kan redigere det i nettleseren sin, slik atOpsIQAldri å gi ut kontodata om styrken til det.

Level 2 — a signed identity token

Serveren din signerer et kortlivet polikum med nettstedets webhook-hemmelighet.OpsIQverifiserer signaturen og behandler først personen som en bevist kunde. Dette er nivået som låser opp kontosvar i kunders chat-og kontaktoppslag. Bruk det til noe fremmed må ikke se.

⚠️
Nivå1er et skjermkomfort. Nivå2er autentisering. Hvis et spørsmål kun kan besvares for den virkelige kontoholderen, trenger du nivå2.

Nivå1— den uopplyste hinten

Velg objektet før widget- skriptet, eller ring identifisering() senere når appen din vet hvem som er logget på. Begge skjemaene leses; bruk det som passer sidene dine.

JavaScript · de to støttede skjemaene
<!-- 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.

Nivå2- det serversignerte identitetstoken

Akkurat den samme token kontrakt som admin widget, med en customer Tema i stedet for et admin 1. Signer det på serveren din og send den til widget. To detaljer bestemmer om det verifiserer, og begge er enkle å gjøre feil:

DenHMACdekker BASE64URL-strengen, ikkeJSON

Signere $payload64Ikke $payload. Signering av råJSONproduserer et symbol som ser riktig ut og avvises hver gang med en signaturfeil.

base64url, upolert

Oversett +/ til -_ og riv av = polstring. Plain base64 skjer for å overleve i dag; Base 64url er kontrakten og det som hverOpsIQKonverter og referansekontakt utsender.

Autentisk går på TOP-nivå

Beside site_key, iat og exp. Det er din påstand om at et ekte menneske logges på, og OpsIQ nekter token uten det.

customer. id er obligatorisk

Et token som bare bærer en e-post verifiserer som signatur og blir så lydløst droppet. Send alltid et id.

Hold exp kort

Minutt til time. Token er en sesjonspåstand, ikke et trosbekreftelse å lagre.

PHP - signerer et kundeidentitetstoken (denne nøyaktige koden verifiserer)
<?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>';
🚫
Logg på serveren bare. Et symbol som er mint i nettleser JavaScript, betyr å sende nettstedets hemmelighet til alle besøkende, noe som gir noen muligheten til å personisere enhver kunde.

Den samme kontrakten, tre overflater

Kundechat på nettstedet ditt

Kundeemne, passert som identity_token til widget. php. Dekker over.

Admin chat inne i bakstykket ditt

admin emne, passert tilopsiq/embed/admin_widget.php

Støtteportalen dype lenker

En strengere variant: samme krav pluss jti og single_use: True, and a120- andre livet, fordi token reiser i enURLog må være brukervennlig en gang. Ikke håndrull den. Innstillinger, Støtteportalen har et klart snutt for språket ditt; plattformen minterer det til deg når kontoområdet kjører på denne serveren.

Hva om en besøkende fjerner cookies?+

De blir anonyme til de er identifisert på nytt. OpsIQ koblinger den nye anonym rekorden til kundeprofilen øyeblikket et hint eller en token kommer.

Hvorfor bekrefter mitt pollett for besøksloggen, men ikke for kontospørsmål?+

Det er nivået1/ Nivå2delt. En usignert hint fyller besøksloggen og ingenting annet. Kontosvar trenger en verifisert signatur.

Utvikler

Plugins og SDK

OpsIQ tilbyr SDK Pakker og plugins for felles plattform.

Hvordan det fungerer
Plugins og SDKFire pakker: PHP SDK, Node.js SDK, WordPress plugin og WHMCS modul, hver med sin installasjonskommando.PHPPHPSDKKomponist krever opsiq/sdkJSNode.jsSDKnpm i @opsiq/sdkWPWordPress tilleggsmodulEtt klikk installer og koble tilWHWHMCS modulAddon for fakturering + billett relé
Plugins & SDK-er
PHPSDK

Komponistpakke: ID-tokengenerasjon, handling API hjelpere, webhook signaturbekreftelse.

JavaScript SDK

Nettleser-side: sporing, identitet, tilpassede hendelser.

WordPress tilleggsmodul

Widget-injeksjon, identitet fra WP brukerøkter WooCommerce Sync.

WHMCS modul

Full integrering: widget, billett relé, identitet.

Shopify temautvidelse

Appen er innebygd med automatisk kundeidentitet.

PHP SDK Rask 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);
Utvikler

Undersøkelser API, hendelser og kontaktfri automatisering

Survey Studio er designet for å bruke de samme skrivne generelt API, intern executor, eventbuss og webhook-operasjoner som resten av OpsIQ. Dette lar utviklere integrere slutten til slutt uten å bygge en pakket kontakt.

⚠️
Implementasjonsstatus: den levende katalogen avslører for tiden bare platform.get.survey.config og platform.save.survey.config. Den surveys.* og feedback.* Familier under er godkjent målkontrakt og må returnere unknown_action til registrert.

Målrettede handlingsfamilier

Typer, maler og hurtig lansering

surveys.types.*, surveys.templates.* og surveys.quick_launch.* liste, forhåndsvisning og bekrefte komplette starter.

Undersøkelser og versjoner

surveys.create|get|list|update|archive|duplicate pluss ugjennomtrengelig versjon, validering og publisering av handlinger.

Utdeling og målretting

surveys.deployments.*, surveys.links.*, surveys.audiences.*, surveys.triggers.* og surveys.variables.*.

Utendørs og svar

surveys.invitations.*, surveys.campaigns.*, surveys.recipients.*, surveys.responses.*, eksport, reaksjon og analyse.

Webhooks, import og tilbakemelding

surveys.webhooks.*, surveys.imports.*, feedback.items.*, feedback.analytics.*, feedback.sources.* og feedback.analysis.*.

Kontaktfri flyt

1
Opprett og publiser gjennom General API

Bruk skrivne undersøkelser.* Handlinger med en arbeidsområde-pinned nøkkel. Skrivere erklærer tillatelse, risiko, bekreftelse, idemppotens og tørt åferd.

2
Motta forretningsarrangementet

Send en signert hendelse til et inngående webhook, for eksempel ordreavbestilling eller fullført onboarding-trinn.

3
Kart den i Handlinger og Triggers

Velg en OpsIQ Generelt API handling som å utstede en undersøkelsesinvitasjon eller forberede kampanjen, kartlegg felt fra den verifiserte utløseren nyttelast.

4
Abonner på Survey events

Lever den dokumenterte forretningssikre undersøkelsen.* livssyklus undergruppe til endepunktet ditt med signatur, filter, reprøve og logge om igjen.

Canonical event mål

Den delte katalogen vil dekke Survey/Deployment publisere tilstand, publikum og utløse beslutninger, invitasjoner, render / start/partiell/resummering/fullstendig/abandon, respons redaksjon, kampanjetilstand og levering feil. Høy volum fokus, rulling og spørsmål timing opphold i Surveys Analytics lagring med mindre eksplicit dokumenteres for fan-out.

En kobling er valgfri. Den legger til gjenbrukbar plattform oppdagelse, verifisert identitet, fakta, variabler og mottaker enumering. API pluss Handlinger og Triggers/webhooks forblir den komplette integrasjonsstien til utviklere som ikke trenger en pakket kontakt.
Utvikler

RESTAPI

Den OpsIQ REST API gjør det mulig å programmere deg til alle plattformfunksjoner.

Hvordan det fungerer
RESTAPIEn terminal som viser en POST til OpsIQ API med en Bearer-nøkkel, oppføring av åpne billetter og siden JSON Svar.$ curl -X POST https://your-domain.com/api/v1.php \-H "Authorization: Bearer opq_..."200OK{ "data": [{ "id": 4192, "ticket_number": "T-4192","subject": "Card declined", "status": "open" },... more tickets ...], "page": 1, "per_page": 50, "has_more": true }
RESTAPI

Forespørselsformat

Send nøkkelen som Authorization: Bearer opq_... eller X-OpsIQ-Key: opq_.... Bruk én autentiseringshode, ikke begge deler

API forespørselsformat
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"
}

Felles tiltak

Den API er handlingsbasert: send en action navn i kroppen. Hver registrert administrator JSON -operasjon har en stabil, utpekt handling. {"action":"meta.actions"} (ingen nøkkel nødvendig) for autoritativ, per installasjonsliste, avtale om å be om risikometadata og omfang. platform.routes.* Broen er bare for eldre integrasjon.

crm.contacts.list

Liste CRM kontakter (scope crm. read). Paramer: Q, status, kilden, tag, leading-scoret, grense.

crm.contacts.upsert

Løs-eller -skape en kontakt (cope crm. write). Paramer: epost pluss felt, tagger og notater

crm.deals.list

Liste CRM-tilbud (scope crm. read). Paramer: status, scene_id, company _ID, eier_admin_ide, pipéline_id og grensen.

crm.activities.record

Opptak om livssyklus/virksomhet for en kontakt (Scope crm. write). Paramer: e-post eller contact_id, hendelsen, verdien og valutaen.

crm.conversions.record

Opptak av konvertering (scope crm. write). Paramer: contact_id eller e-post, converting_type, verdi og valuta.

crm.events.list

Poll CRM hendelsesstrøm (Scope crm. read). Paramer: grensen

tickets.list

Liste billetter (scopebilletter. read). Paramer: side, per_page, sortering, ordre, status, prioritet, avdeling _id, tildelt_admin_ID, klient_ email, søk.

tickets.get

En billett og dens meldinger (cope biljetter. lesed). Params: count_id eller cutle_number, inkluderer _meldinger, e-post_limit.

tickets.reply

Legg et svar til en billett (scope tickets. write). Params: biljett_id eller billett_nummer, kropp, forfatter _type, forfatter_navn, intern.

tickets.update

Oppdatere en billett (scopé-billetter. write). Params: biljett_id eller ticket_number, status, prioritet, emne _ide, administrert_admin_ID

tickets.open

Åpne en støttebillett (scope billetter. write). Params: kunde_ email, customer _name, emne, organ, prioritet.

tickets.bulk

Kjør en bulk kø operasjon (scope billetter. 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

En samtale og dens meldinger (cope conversations. read). Param: chat_id eller tråd_key, inkluderer _meldingene.

conversations.messages

Sidet meldingshistorie (cope conversations. read). Param: chat_id, side, per _side, inkluderer

conversations.send

Send en melding til en samtale (scope conversations. write). Params: chat_id, beskjed, avsendar_type, internt.

conversations.update

Tilordne, omstatus eller ny tittel på en samtale (scope conversations. write). Params: chat_id, status, administrert _admin_ID, emne.

koblinger. list / . get/

Se hvilke kontakter som er installert, hva hver enkelt kan gjøre og om dens legitimasjon fungerer (cope connectors. read).

automations.actions.list

Handlingene som din Actions-bygger vil kjøre (Scope Automatisering. les).

automations.triggers.list

Hva vil brann og på hvilke betingelser (scope automatisering. les).

automations.runs.list

Utføringshistorikk for feilsøking av en integrasjon (cope automatisering. read). Param: status, action_key

departments.list

Departements kan du rute billett til (cope devisions. read).

notifications.list

Varsler for én operatør (scope notification. read). Params: admin_id(krevet), ulesd_only

analytics.export

En rapport som CSV (scope analytics.read). Param: seksjon, forhåndsinnstillinger fra til. Ring analyse.se for gyldige verdier.

page_intelligence. sites. list / . reports. lista

Overvåkede nettsteder og deres SEO rapporter (scope site_intelligence. read).

files.get

En kortvarig signert nedlastingslink for et vedlegg (Scope Files. read). Params: referanse, ttl.

security.check

Spør om en IP eller e-post er blokkert eller mistenkelig her (scope security.read). Kombinerer IP brannmur, billett spam blocklist og den cached Security AI dommen. Paramer: ip e-post.

security.report

Rapporter misbruk av systemet ditt observert (scope security.write). Opptegnet som en sikkerhetshendelse, klassifisert av Security AI umiddelbart og adminer er varsla om høyrisikoavgjørelser. Paramer: ip e-post, type, grunn. kilde

. blokist. add / . list

Administrer spam- reglene billettrørledningen håndhever (omfang security. write / security. read). Samme lagrer som billettsiden "Blokker avsender" - kontroll. Parametere: type (email, domene, ip), verdi, grunn, utløper_timer.

💡
Meta. actions er alltid autoritativt. Det returnerer alle tiltak som finnes på installasjonen din med omfanget hver enkelt trenger, så du aldri behøver å gjette eller hard-kode denne listen .

Paging, filtrering og sortering

Hver liste action bruker de samme parametrene, så du lærer dem en gang.

siden / per_page

Sidenummer som starter på 1, og sidestørrelse. Standard 50, maksimalt 200. grense og forskyvning er også akseptert hvis du ønsker dem.

sort/bestilling

Felt å sortere etter, og ascens eller dec (standard DeSC). Hver handling aksepterer et fast sett av sortering felt; alt annet ignoreres i stedet for feil.

filters

Send filtre som et objekt, eller pass et filter som en parameter på toppnivå. Ukjente filtre ignoreres.

Hva kommer tilbake

element, side, per_page, telle og has_more. Fortsett å be om sider til has _mer er falskt

Sidet, filtrert og sortert listeforespørsel
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
}

Feil

Hver feil returnerer samme form, med en stabil code du kan grene på. Ikke match på den menneskelige-lesbare error Tekst som kan bli omordnet.

Feilrespons
{
  "success": false,
  "code": "missing_scope",
  "error": "API key missing required scope. Needed one of: tickets.read, admin",
  "request_id": "req_8f2c1a9d4b7e"
}
manglende_api_key / ugyldig_api_key

Ingen nøkkel ble sendt, eller nøkkelen er feil. HTTP 401.

missing_scope

Nøkkelen er gyldig, men mangler omfanget av denne handlingens behov. HTTP 403.

read_ only_ key / action_ restricted

Nøkkelen er skrivebeskyttet, eller denne handlingen ligger ikke i dens tillatte liste. HTTP 403

unknown_action

Ingen slik handling. Ring meta. aksjoner for gjeldende liste. HTTP 400

missing_parameter / invalid_parameter

En nødvendig parameter er fraværende, eller en verdi ikke aksepteres. HTTP 400

not_found

Opptegnelsen eksisterer ikke, eller er ikke på arbeidsområdet denne nøkkelen kan se. HTTP 404

rate_limited

Timegrensen for denne nøkkelen brukes opp. HTTP 429

server_error

Noe mislyktes på vår side. Forespørselen_id identifiserer forsøket hvis du trenger å melde det fra. HTTP 500.

Sikker retries

Hvis du skriver ut ganger kan det ikke se om den lander. Send en idempotency_key Og en gjentakelse av samme samtale returnerer det opprinnelige resultatet i stedet for å gjøre arbeidet to ganger.

Idempotensiell skriving
{
  "action": "tickets.reply",
  "ticket_id": 4192,
  "body": "Thanks, that is now fixed.",
  "idempotency_key": "your-unique-id-for-this-attempt"
}
Hvor lenge det varer

En nøkkel er husket for 24 timer mot samme handling og API Nøkkelen.

Hva du får tilbake

Den opprinnelige responsen, pluss idempownen_replay: sant slik at du kan fortelle det var en respill.

Feilene forblir gjenprøvbare

Kun vellykkede skrivere blir husket. Hvis et anrop mislyktes, kan du sende det igjen med samme nøkkel kjører den på nytt som er hva du vil ha.

Lese

Leser ignorerer nøkkelen. Å gjenta en lesing er ufarlig

Test uten å endre noe

Legg til dry_run: true til enhver skriving. Nøkkelen, omfanget og parametrene dine er alle kontrollert nøyaktig som normalt, så stopper samtalen før noe opprettes eller endres.

Tørrkjøring: verifisere legitimasjoner og nyttelast trygt
{
  "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."
}
Bruk dry_run mens du bygger. Det er den raskeste måten å bekrefte en nøkkel har riktig omfang og nyttelasten din formes korrekt, uten at det opprettes testdata som skal rydde opp i bilene dine.

Prisgrenser

Per nøkkelgrense

Konfigurerbar timegrense per API nøkkel (standard) 1000 forespørsler i timen). Sett den per nøkkel under Innstillinger,API Nøkkelene.

Når overskridelse

HTTP 429 med koderate-begrenset, pluss en prøvetopptekst som forteller deg hvor mange sekunder du skal vente. Grensen tilbakestilles øverst i neste klokketid.

Vet hvor du står

Hver respons bærer X-RateLimit-limit, X-RoteLimi og X-Reading (en Unix timestamp). Se på igjen og senk deg før du løper ut i stedet for å vente.

Telling 429 fra 401

A 429 Det betyr å vente og prøve igjen. 401 betyr at nøkkelen i seg selv er feil eller utløpt, så å forsøke på nytt vil ikke hjelpe før du fikser tasten.

Forutsetningsbrått-forsvar

Repeated failed-auth attempts from one IP are throttled separately. Valid keys never trip this.

Beste praksis

Gå tilbake når det blir lite, og ærer Retry-Etter 429 I stedet for å prøve igjen umiddelbart.

Versjoner og stabilitet

Nåværende versjon

v1. Hver respons bærer X-OpsIQ-API-Version og X-OpsIQ-API-Status slik at du kan bekrefte hva du snakker med.

Hvordan du vil bli advart

Hvis en versjon er noensinne pensjonert, får svar standard Deprecation og Sunset-overskrifter, samt meta. aksjoner rapporterer utdaterte og solnedgang_at. Sjekk dem i overvåkningen din og du vil aldri bli overrasket.

Hva vil ikke endre

Eksisterende handlingsnavn, parametere og feilkoder. Nye handlinger og nye valgfrie felt kan legges til når som helst, så oversett ikke felt du kjenner igjen i stedet for å mislykkes på dem.

En fullstendig integrasjon, begynne å avslutte

Dette er hele sløyfen: Finn arbeid, les det, handle på den og bekrefte hva du gjorde.

Full billett arbeidsflyt 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 fungerer på samme måte for samtaler: chatter. list, conversations. get, konversasjoner. send og contacts. update følger det identiske mønsteret, parametrene og responsformen.

Alle tiltak, med det omfanget den trenger

Denne listen genereres fra den løpende katalogen, så det alltid passer til versjonen du er på. meta.actions returnerer samme informasjon som JSON.

1758 named actions: 590 reads, 1168 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: 399; explicit: 92; route_inferred: 1151; 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

plattform (355)

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.commerce.storefront.domain.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Commerce Storefront Domain Remove

platform.commerce.storefront.domain.set

Write. Scope: platform.write, admin. Contract: route_inferred. Commerce Storefront Domain Set

platform.commerce.storefront.logo.upload

Write. Scope: platform.write, admin. Contract: declared_dynamic. Commerce Storefront Logo Upload

platform.commerce.storefront.slug.save

Write. Scope: platform.write, admin. Contract: declared_dynamic. Commerce Storefront Slug 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

sikkerhet (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økelser (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 tilgjengelig?+

Ja. Den genererte OpenAPI 3.0 dokumentet er på /api/v1/openapi.php, den genererte Postman-samlingen er på /api/v1/postman.php, og den menneskelige leselige utvikler docs er på /api/docs/.

Hvordan jobber jeg med mer enn ett arbeidsområde?+

Send site_ key i forespurt organ å velge et arbeidsområde. En nøkkel som er utstedt til én arbeidsflate, holder seg fastgjort på den; en nøkkelen med admin kontekst kan velge hvilket arbeidsområde det har lov til å se og blir nektet noe av det ikke er.

Hvilke handlinger kan kun leses?+

Enhver handling som er merket som lesemodus. Angi tillatelsestilstanden på nøkkelen til å skrive_ kun og hver skriving blir nektet med read_only_ key, så en rapportering integrasjon kan ikke endre noe selv ved feiltagelser.

Hvorfor ble jeg ikke funnet for noe som kan se i administratoren?+

Nøkkelen er omdøpt til et arbeidsområde. Opptegnelser i andre arbeidsplasser returnerer ikke_funnet snarere enn en tillatelsesfeil, så den API Aldri bekrefter om det finnes noe andre steder.

Utvikler

Sikkerhet API

En sikkerhetskontrakt for hver kontakt og integrasjon: spør OpsIQ Hva det vet om en IP eller avsender, og mate tilbake misbruk ditt eget system ser.

OpsIQ Forsvarer seg selv: IP brannmur blokker angripere, billett rørledning filtre spam og sikkerhets AI klassifiserer kriminelle og foreslår blokk regler. API Åpner den intelligensen til de andre systemene. En faktureringsplattform, en klientportal eller et tilpasset program kan sjekke besøkende før du stoler på det og rapportere hva som observertes slik at hele installasjonen lærer fra hver overflate.

Hva du kan gjøre

Sjekk før tillit

security. check svar med brannmurtilstanden, alle spamregel som passer til avsender og den cachede AI-dommen for IP_

Rapporter hva du så

security.report registrerer observasjonen som et sikkerhetshendelse, har Security AI klassifisering IP umiddelbart, og varsler administratorene når dommen kommer tilbake høy risiko. Gjentatt rapporterer klynge i hendelser, akkurat som angrep OpsIQ ser direkte.

Del spam-regler

security. blocklist. add og freedoms-flower. booklist lese and skrive de samme spam reglene som billetter siden bruker, så en avsender blokkert i ett system er spaltet overalt.

Rapportere misbruk fra en kontakt
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"
}

Omfang og sikkerhet

security.read

Behov for security. check og blocklist. list. Sikker å gi en rapportering integrasjon.

security.write

Behov for security. report og blocklist. add. Gi det bare til systemer du ønsker å mate regler og rapporter i.

Ingenting er stille ødelagt

En blokkert avsender lander fortsatt i spam-utsikten der billetten kan leses og restaureres.

Plattformen beskytter seg

Serverens egen IP adresser kan aldri blokkeres, blocklistes eller rapporteres gjennom dette API Derfor kan ikke en uforutsett integrasjon ta plattformen ned.

💡
Mint en nøkkel under integrasjoner, deretter API Keys og gi den bare sikkerhetsomfangene det trenger. Den fulle anmodningen kontrakt for hver handling er i meta. aksjoner og OpenAPI dokumentet.
Bruker du disse kontaktene automatisk?+

Utgående synkronisering er allerede automatisk: når du blokkerer en IP, tilkoblede plattformer blir fortalt gjennom kontakten sikkerhetssynkronisering. Sikkerhet API er den inngående halvdelen. Punkter kontakten eller tilpasset kode ved disse fire handlingene med en nøkkel som bærer sikkerhetsområderne.

Hvor bor spam-reglene?+

Ett lager. Billetter-siden Blokker avsenderkontroll, spam AI i innstillingene og dette API alle jobber mot samme blokkliste så det er akkurat ett sted å se ut.

Utvikler

Begivenheter API

Send egendefinerte hendelser fra serveren eller nettsiden til OpsIQ for analyse, eksperimenter og CRM utløsere.

Hvordan det fungerer
Begivenheter APIEt spor () kall som sender en egendefinert demo_ booked- hendelse til OpsIQ, som fôrer konverteringsmål og segmenter.OpsIQ. track("demo_booked", {verdi: 0, plan: "pro"});KonverteringsmålSegmenterUtløsere og webhooksNettleser (OpsIQ.track) eller serversiden POST /v1/events
Begivenheter API

Nettleserside-hendelser

Sporing av nettleserhendelse
window.OpsIQ = window.OpsIQ || [];
window.OpsIQ.push(["track", "button_clicked", {
  button: "signup",
  page: "/pricing",
  variant: "green"
}]);

Server-side hendelser

Serverside, registrere aktiviteter og konverteringer mot en kontakt gjennom handlingen API. Bruk crm.activities.record for livssyklus/virksomhet og crm.conversions.record for konverteringer. Det er ingen events.send handling; den inngående CRM hendelse mottaker bor på /v1/inbound.php?t=<token> For tredjeparter som presse hendelser i.

Aktivitet ved serversiden (handling 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"
}

Navngivningskonvensjonen

Ikke-notasjon

"order. completed" ikke "ordre fullført".

Fortid spent

"button. clicked" ikke "buttons. click".

Vær spesifikk

"pricing. plan_selected" ikke "brukerhandling".

Utvikler

Hvordan data flyter gjennom OpsIQ

Å forstå datastrømmen hjelper deg å feilsøke integrasjon og optimalisere ytelsen.

Hvordan det fungerer
Hvordan data flyterData flyter fra widget og beacon til OpsIQ kjernen (CDP, identitetsgrafen, AI-hjerne, analyse og CRM) deretter ut via webhooks og REST API.Element& BeaconOpsIQ kjernenCDP · identitetsgrafAI-hjernenAnalyser CRMWebhooks utRESTAPI
Datastrøm

Inngående datastrøm

1
Element- varsel

Den JavaScript widget sender sidevisninger, klikk og chat meldinger til /beacon.php.

2
Event-inntak

Hendelser lagret i opsiq_eventer med site_key, hendelsestype, kunde og eiendommer.

3
Session-samling

Sessionbuilder grupper sidevisning i øktene (via cron).

4
Identifikasjonsoppløsning

Når identifisert, er anonyme poster knyttet til kundeprofilen.

5
Kontaktsynkronisering

Koblinger trekk data fra eksterne plattformer og lagre i kontaktbufferen.

6
AI-kontekst

AI samler kontekst fra: besøkshistorikk, kundeprofil, kontaktdata og quick.

Utgående datastrøm

1
Eventbranner

Interne hendelsesbranner (ticket. created, chat. message, bestilling. fullended).

2
Jobbkø

Hendelsen er plassert i async-jobbkøen.

3
Webhook-avsendelse

Dispatcher tegn og sender til alle abonnerte endepunkt.

4
Prøv på nytt ved feil

Feilaktige leveranser tilbakevist med eksponentiell backoff.

Innstillinger

Innstillinger referanse

Innstillinger er kontrollsenteret for et arbeidsområde. Alt nedenfor kan brukes til arbeidsområdet du befinner deg i, slik at én konto kan kjøre flere merker med ulike identiteter, chatatferd og retensjonsregler.

Finne en innstilling

Det er rundt seks hundre individuelle kontroller i Innstillinger, fordelt på elleve faner gruppert under fire menyer. Du forventes ikke å bla etter dem.

Søkeinnstillinger (Ctrl + K)

Trykk Ctrl + K eller Cmd+K på en Mac, hvor som helst i innstillingssiden. Skriv inn enkle ord og trykk Enter for å hoppe rett til kontrollen. Søk tolerer små typarer og forstår relaterte tekster så finner schemaleggeren Cron and Privacy kontrollerne. Det viser bare innstillingene din rolle kan åpne.

Arbeidsplass og plan

General og lisens.

AI og kundestøtte

Admin AI Assistant, klientchatt OpsIQ Skrive- og støtteportal.

Data og styring

Sporing og personvern, tillatelser og sikkerhet.

System

Cron-oppsett (kun hostet) og faresone.

Sparing

Hver fane lagres på egen hånd med sin egen Save-knapp. Kundechatt og OpsIQ Skrivepinnen deres til skjermen. Lagre før du bytter faner; endringene blir ikke ført over.

Dype lenker

Den aktive fana er skrevet til sidens adresse, slik at en fane kan bli bokmerket eller sendt til en kollega.

Generelt: Bedriftsidentitet

Det viktigste kortet på siden. AI leser disse verdiene i hvert svar, rapport og daglig kort.

Forretningsnavn

Brukes i AI-rapporter, daglige briefs og kunderettet ordlyd. Match nettstedets fotnote !

Forretningsbransje

Tailors AI-analyse, blyscorer, briller og undersøkelse forhåndsinnstillinger. Velg mellom webhotell, e-handel, SaaS, eiendommer, byrået, rådgivning, helsetjenester, utdanning, økonomi eller generell virksomhet.

Systemspråk

Språket som er vist til alle som ikke har valgt seg selv. Hver agent kan overstyre det i sin profil.

Bruk nettleserspråk

Viser logg-in siden på besøkendes eget språk. Når noen velger et språket der, vinner deres valg og dette overstyrer det aldri.

Systemtidssone

Sonen hele systemet kjører i: datoer, rapporter og tidsplaner. Bruk driftstidssongen din, ikke kundene dine.

Generelt: GeoIP og sporing

GeoIP2 Databasesti

Full sti til GeoLite2-City.mmdb cPanel Plesk, DirectAdmin, Cloudways og Docker samt vanlig Linux eller Windows. Legg til GeoLite2-ASN.mmb i samme mappe for den besøkende internettleverandøren.

Geokildemodus

GeoLite2 kun, Geolite2, med en Cloudflare tilbakefall, eller Cloudflare Bare.Cloudflare modes krever at nettstedet blir proxied gjennom Cloudflare, med besøkendes plassering overskrifter aktivert for by og region detaljer.

Session Tidsavbrudd (er)

Inaktivitet før en besøkende sesjon anses som fullført. Standard 14400 Det er fire timer.

Live Oppfriskningsintervaller (s)

Hvor ofte oppdateringene av Live Feed. Standard 30 x-sekunder

Aktiv terskel (min)

Hvor lenge en besøkende teller som levende etter siste sidebelastning. Standard 2 Dette er avløpet for Live Feed, ikke sesjonslengden.

Dataoppbevaring (dager)

Sletter samlet og generert poster i denne alderen: analyse, chatt, billetter, tilbakemeldingar, transaksjoner, AI telemetri, integrasjonslogger og CRM-aktivitet. 0 holder alt for alltid. Innstillinger, forfatterinnhold og samtykkemottak blir aldri fjernet.

Når en chat slettes

Velger hvor mye av en slettet samtale som holder seg på rekorden: den fulle post, platen uten samtalen eller bare poenget. Sletting alltid skjuler chatten fra innboksen og besøkendes historie. Planlagt oppbevarings-og Glem besøkende aldri slette i det hele tatt uansett dette.

Spor bot trafikk

Teller krypere som besøkende. La være; det oppblåser gjestene telle og skjegger hver rapport.

Tilbakemeldingsundersøkelse aktivert

Viser den webside-vidde tilbakemelding widget til besøkende. Separat fra chatundersøkelser under klient Chatt, Support Flow.

Generelt: AI-funksjoner

Master bytter for hver AI-overflate. Alt standard å på og lagre per arbeidsområde.

AI Triage på billetter

Klassifiserer hver billett etter kategori, prioritet og følelser samt skriver en trådsammendrag øverst på billetten.

AI Triage sveve sammendrag

Viser triage-taggene og sammendraget i et verktøytips når en agent sveves på rad i billettlisten.

Innboks Copilot (komponer)

Legger til utkastet AI svar, Warmer, Shortere, Mer formelle og Apologetiske knappene under billettsvarboksen. Ingenting sender uten agenten.

Ask-OpsIQCopilot

Den side-bevisste flytende copilot på hver administratorside. Vet hvilken kunde, faktura eller billett er åpen.

Morgenkort

På første åpen hver dag presenterer copiloten haster billetter, forfallne svar og vente chat. søndagene produserer en uke i anmeldelsen.

Generelt: penger, merkevarearbeid

OpsIQ base valuta

Hver penge totalt i administratoren konverteres til denne valuta for skjerm. Kobling lagrer sin egen kildevaluta; angi det per kontakt.

Auto-sync FX priser

Oppdaterer priser hver sjette time fra et gratis offentlig fôr uten API nøkkel. Du kan legge til manuelle priser som overstyrer fôret. Med auto-sync av, er valutaene uten en manual rate igjen ukonvertert.

Aktivere handels- og faktureringsfunksjoner

Når det er slått på, avslører vi siden Salg og konverteringer, dashboards inntektskort og Live Intelligence Feed. Med den av, hver prisoverflate er skjult samt salgssiden forlater menyen.

Handelsforråd

Lærer OpsIQ din formulering: om du gjør fornyelser, ordet for å fornye, hva du selge og hvilke kjøpere som kalles.

Merke og logoer

To opplastinger, en for lys bakgrunn (admin sidepanel) og én til mørkt (innloggingsside). PNG, JPG eller SVG 3 MB.

Site Intelligence Agent, tillater privat SSH mål

Auto-Implement SEO agent kobler over SSH. Private, loopback og reserverte adresser blokkeres som standard som et antisSRF mål. Bare aktiver på selvværende installasjoner som må nå en lokal server.

OpsIQ Backup / Gjenopprett

Eksporterer alle innstillingene og OpsIQ-eide tabell pluss uploadede filer. Gjenopprett erstatter OpsIQ konfigurasjon og registre bare; den berører aldri kunder, fakturaer, billetter, tjenester, domene, bestillinger eller transaksjon.

⚠️
Ta en sikkerhetskopi før du bruker noe i faresonen. Sikkerhets backup bor generelt og slettehandlingene lever i farssone, så det er enkelt å nå Slett-knappen uten at den har eksportert først.
Innstillinger

Innstillinger: Sikkerhet

Beskyttelse for administratorens innlogging, dine ansattes kontoer og dataene OpsIQ samler inn. Kundeinnlogging for støtteportalen er konfigurert separat.

Innloggingsbeskyttelse

GooglereCAPTCHA

Stopper bots og kresentiell fylling på admin-innlogging. Velg v3 (usynlig, scoret) eller V2(krysseboksen), angir w3-poenggrensen for poengene til v3, samt leverer nettstedet og hemmelige tastene. Disse samme nøklene gjenbrukes av støtteportalens anmodningsskjema.

Feil ved innlogging Auto-Lockout

Blokkerer en adresse etter et antall feil i vinduet, for flere timer. Du kan tilpasse den låste siden melding og vise liten venteskjerm distraksjon.

Logg inn herding

Passordpolicy med minimum lengde, avvisning av passord som finnes i kjente brudd, per konto lås ut mot troverdige fylling, obligatorisk tofaktor for hver admin, passordet gjeninngang før farlige handlinger og nyhet-invarsler.

Enkelt pålogging (OIDC)

Personalet logger inn gjennom din identitetsleverandør. URL, klient-ID og kundehemmelighet. Autoprovision domener, én per linje oppretter brukere automatisk på første innloggingen

Enkelt pålogging (SAML 2.0)

For leverandører som snakker SAML. OpsIQ gir ACS svar URL og SP-enhets ID; du oppgir IdP enhetsID, logg inn URL, valgfri logg ut URL X.509 Signering av sertifikat. Felter for e-post og navn er bare nødvendig med ikke standard attributtnavn.

SCIM Provisioning

Katalogdrevet opprettelse, oppdatering og deaktivering av OpsIQ kontoer.OpsIQ Fordeler SCIM base URL Du genererer merket polletter her, slik at man kan trekkes tilbake uten å bryte resten.

Trusler, blokkering og samling

Utgående Egress Tillat-liste

Begrenser hvilke eksterne verter denne arbeidsområdekontakten kan ringe. Kompanjon til SSH målkontroll i allmennheten.

Trusler og auto-block

Blokkerer en besøkende når trussene deres passere terskelen din. 0 Deaktiverer den. Se siden Sikkerhetsoversikt i en uke før du velger et nummer.

Blokker sidemelding

Meldingen en blokkert besøkende ser, som vanlig tekst eller din egen tilpassede HTML blokk skjermen.

Core Web Vitals fra ekte besøkende

Mål LCP, INP og CLS fra virkelige økter.

Beslaglagt, reprøvsikker levering av arrangementer

Tilpassede hendelser kø i nettleseren og levere i partier med retries, redusere tap på dårlige mobilforbindelse.

Signert sporing Beacons

Ekte widget embeds bærer et roterende kryptografisk token så smidde sporingsdata kan avvises. Av som standard; muliggjør endringer hvordan innebygde autentisering, slik at test først.

Sikkerhetsvarsler

Av som standard. Oppdaging og blokkering kjører uansett. Dette kortet kontrollerer om du blir fortalt, og hvor mye AI hjelper til.

Aktiver sikkerhetsvarsler

Mesterbryteren for dette kortet.

Innloggingsbølgegrense

Hvor mange feilaktige logg-ins i en kort periode regne som en bølge verdt å varsle om.

IP omdømme intelligens

Legger til en trussel score for besøkende som vises i offentlige overgrepsmat.

Nettsideklokke

Oppholdstid og TLS -utløpskontroller, varsler før sertifikat forfaller.

AI sikkerhetsanalytiker og AI hendelsesbriller

Legger til en forklarende dom i mistenkelig aktivitet, og grupper relaterte angrep inn i én enkelt lesbar hendelse snarere enn en strøm av hendelser.

policy autopilot

Handlinger på egen hånd, og snu det den lærer fra en hendelse i et foreslått eller anvendt regel. La være til du har gjennomgått sine forslag og er enig med dem.

Daglig sikkerhetsfordøyelse og ukentlige holdningsrådgiver

En daglig recap på siden Sikkerhetsoversikt, og en ukentlig herding sjekkliste som viser hva som er beskyttet.

Auto-utforske stal forslag

En foreslått blokkregel du aldri handlet på utløper av seg selv i stedet for å akkumulere.

DOM- øktreplikk

Aktiver DOM-økten på nytt

Opptak besøkende økter for avspilling. Når du er ute på replay-biblioteket, blir det aldri lastet inn noe så det ikke koster å forlate den fra. Innspilinger tas i bruk og personvernmaskes, og sees på Sesjon RePlay siden under Analytics.

Prøvehastighet, max fangst

Hvilken del av sesjonene å spille inn, hvor lenge en enkelt opptak kan kjøres og hvor mange dager det er holdt.

⚠️
Session replay registrerer ekte mennesker som bruker nettstedet ditt. Hold prøvefrekvensen og oppbevaringen så lavt som vil fortsatt svare på spørsmålet, samt avsløre det i personvernerklæringen din.
Innstillinger

Innstillinger: Sporing og personvern

Hva OpsIQ kan samle, og hvor lenge hver type plate overlever.

Utelukkelser

Utelukket IPs og CIDR-område

Adresser aldri spores, en per linje, nøyaktige adresser eller CIDR-områder. Den reneste måten å holde ditt eget team ute av din analyse fordi det dekker alle på den adressen i stedet for bare logget inn administratorer.

Utelatte URL baner

Sidemønstre aldri sporet, én per linje og jokertegn med en asterisk. For eksempel /admin/* Hold hele bakkontoret ute av besøksloggen.

Dataoppbevaringspolicy

Per-subsystem auto rensing i dager. Separat fra den totale datalagring innstilling generelt og fra faresonen renser.

AI-interaksjonslogger

Troverdighets telemetri som holder korte forhåndsvisninger av spørring og respons. Standard 90 dager. Dette inneholder mest kundetekst, så forkort det først når du strammer på personvernet.

AI-brukshendelser

Per-kall token teller for kostnadsrapportering. Standard 90 dager. Tal bare, ingen meldingsinnhold.

Handlingsrevisjonsti

Handlings- og sikkerhetsloggen for manipulering. Standard 365 Hold dette lengst; det er din bevissti.

Diagnostikk

Systemhelseposter. Standard 30 Dager.

Usvarte spørsmål

Clusters av spørsmål som AI ikke kunne svare på. Standard 90 Arbeid gjennom dem på spørsmål som AI-en savnet siden før de utløper.

Voktere og eksport

Metrisk anomalivarsler

Daglig sammenligning av i går mot den nylige grunnlinjen, varsler når en metrisk beveger seg mer enn terskelen din. Standard 35 prosent. Av som standard

Lagereksport

Nattlige dumpinger av økter, besøkende, sidevisning og relaterte tabeller for din egen BI-stabel i et format som du velger, holdt i en rekke dager. Av som standard.

Innstillinger

Innstillinger: Admin AI Assistant

Den flytende assistenten din bruker inne i administrator, med live lesetilgang til klienter, fakturaer og billetter. En annen assisterende fra kundens side under kundechatt.

Aktiver OpsIQ AI-widget

Viser assistentknappen på hver admin-side. Av skjuler den for alle.

Layout og oppførsel

Hjørneposisjon, panelbredde (320 til 600 px), maks høyde (400 til 900 px), hjørne radius (0til 24), skriftstørrelse, og en frostet glass uklarhet bak panelet.

Vis hurtige chips

Ett-klikk snarveisknapper under overskriften. Den raskeste måten å for de fleste ansatte på.

Vis modellinformasjon

Viser hvilken modell som svarte og hvor lang tid det tok. Nyttig mens tuning koster, støy til daglig bruk.

Per-admin inngangsgate

Bare vis assistenten til en logget inn-administrator som brukernavn og email begge matcher et OpsIQ agent tildelt dette arbeidsområdet. Eiere alltid passere. Bruk Sjekk tilgangsknappen min før du aktiverer eller kan låse ditt eget lag ute.

AI Persona

Vis navn, overskriftsmerke og en egendefinert velkomstmelding vist når panelet åpner.

Smarte hurtighandlingschips

Rediger etiketten og den underliggende spør for hver snarvei, legg til din egen eller nullstill til standard. Merket er hva personalet ser, spørsmålene er det AI mottar.

Farger og form

Chip form (pill, rundete, firkantede), chip farger, korttema og oppstarterform (rundt, spirkle, kvadrat) med live forhåndsvisning.

Samtaleminne

Assistenten husker hver personhistorikk på tvers av nettleserøktene, opp til 120 -meldinger som er lagret i din egen database.

Innstillinger

Innstillinger: Klientchatt

Den chat widget kundene dine bruker, og det største området av Innstillinger. Seks underfaner med masterbryteren og Lagre festet til toppen av fanen.

Arbeid gjennom underfanene i rekkefølge på en ny installasjon: identitet og kopi, utseende, oppførsel, støtteflyt. Avansert er infrastruktur og kan vente

Identifikasjon og kopiering

Merkeidentifikasjon

Widget navn, taggline, AI-navnet og navnet som brukes til system eller inaktive varsler. Hvordan agentnavn vises. Agent Navnkilde bestemmer mellom ekte navn, et tilpasset namn eller en team etiketten.

Helligdag

To hilsener, en for alle besøkende og én for identifiserte gjester. Et spørsmål starter flere samtaler enn et utsagn.

Sprettopp- teaser

Den flytende meldingen før chatten åpnes med eget navn, skriftstørrelse og farger. AI kan skrive teaserene, som styrer hvor mange å generere, hvor mye du skal vise per besøk og gapet mellom dem.

Spurger og håndoff

Det fulle manuset: ber om navn og e-post, bekreftelser som krever et menneske, ingen agenter tilgjengelig, billett opprettes eller kanselleres. Rundt to dusin individuelle linjer i en sammenleggbar panel.

Status og idle-meldinger

Tre kundevisbare meldinger: Agent stenger chatten, besøkende har gått stille og agent hender tilbake til AI. Unngå intern ordlyd som løst eller trigert.

Komponist og forslag

Inngang stedholder, talk-til-a-human knappetiketten og foreslått åpningsspørsmål. Tre gode forslag avbøye flere billetter enn en side med artikler.

Launcher, Icon og Avatars

Launcher-ikon, et alternativt annet ikon når det er åpent og oppstartsstørrelser for menneskeagenten.

Utseende

Tema og glass

Temamodus, en premium fargeinnstillinger, uklarhetsintensitet og åpenhet. Pluss slår på animasjoner, skillelinjer, skjuler statusraden, gjemmer meldingsbokskortet og skjuler lukkeknappen. Start med et forhåndsvalgt antall farger samtidig.

Hovedfarger

Launcher, header, hjelpepanel, lenker, knapper og systemnotiser. Hver med start-og sluttfarge for fargeoverganger. Et standardglassalternativ ignorerer disse og holder den gjennomsiktige finishen i bruk.

Panel, bubler og chips

Rundt tretti velgere som dekker panelet, grensen, teksten, inngangsområdet og hver bobletype (visitor, AI-middel, skrivesystem) pluss forslagschips og deres svevningstilstand. Bare åpne dette for nøyaktig merke matching samt sjekke kontrasten på bubbletekst.

Form og utforming

Panelbredde og høyde, hjørneradius, skriftstørrelse, skjermposisjon, oppstarterform, boblestil samt om avatarene viser. Test bredde på en telefon.

Oppførsel

AI-svar automatisk

Master bryter for AI svar. Av betyr hver melding venter på et menneske.

Menneskelig oppfølging og naturlig dobbelteksting

En mild oppfølging når en besøkende går stille, og et valgfritt kort andre melding på måten som personen ville sende. Tunert med maksimal oppfølging per stillhet, første forsinkelse, senere multiplikator, tilstedeværelsesvindu og maksimale sekvens vindus. Kan begrenses til virketidene, og undertrykes etter enkel takk.

Skrivemaskin svar og svare tempo

Enten svar skriver ut ord etter Ord, og hvor raskt assistenten svarer på det ved å forhåndsinnstilling eller din egen minste-og maksimale forsinkelse i millisekunder.

Live oversettelse

Hver agent leser og skriver på sitt eget språk mens besøkende leser sine.

Hand tilbake til AI etter agent ledig

Minutter av agent inaktivitet før AI gjenopptar samtalen.

Åpne chatten automatisk

Sekunder før widgeten åpner seg.0aldri åpnes. Intrusiv på mobil; la være0Med mindre det er testet.

Smartere svar

Planlegger å komme for en-pass svar, tenkedybde, et valgfritt separat modell til agentsvar, viser resonnement til besøkende, tolerere feilstavinger, lang konversasjonsminnet, begrense assistenten til virksomheten din bare, priser i den besøks valuta og hvordan lenker vises. Bare snakk om bedriftene dine bør være på for nesten alle.

Kostnadsbesparende

Hopper over kunnskapssøk etter hilsener som hei og takk, og caps det lengste svaret i pollettene. Trims koster uten å endre svarkvalitet på reelle spørsmål.

Språk

Hvilke språk som widgeten støtter og hvordan den velger en for besøkende.

Kundekonto Svar

Svar fra en kundes egen konto, eventuelt oppsøkt live og valgfritt lastet kun når det er nødvendig. Lesbar i alle tilfeller; last-når-nødvendige reduserer kostnadene markant.

Refundering

Assistert refusjon forespørsler der assistenten samler detaljer og hender til en person. Det fullfører aldri selv refundering.

Samtale og widget

Fortsette tidligere samtaler, fortsette en chat på alle de tilkoblede nettstedene dine og dra det mulig vindu. Spør gjester om e-post, så gjør laget ditt et nytt prat i billett.

Widget-funksjoner

Emoji-velger, vedlegg med en valgfri pastebar modus, AI bildeforståelse, inline ikoner, mikrofonen, tale til agentknappen, besøkendes lydene, forhåndsbehandling ved siden av voice-call og sesjon isolasjon. AI bildet forstår er det som lar et gjest lime inn feilbilding og få nyttig svar.

Admin-innboks, varsler og velkomstoppsprett

Den besøkende velkommen popup, pluss agentene dine varsler: innboks lyder, desktop-varslinger, hviskelyder eller private whisker pipe og inbox meningsmålingintervall.

Støtteflyt

Menneskelig håndoff

Hvordan forespørsler til en person blir tildelt, sekunder som et agent må svare på, om det å redusere chatten tilbake til AI og om AI-en gjenopptar når tidsavbruddet utløper. Konfigurere dette før du går live eller besøkende som ber om at et menneske bare venter.

Arbeidstid

Åpningstider, tidssone og lukket timers melding. Utenfor disse timene tilbyr AI ikke et menneske. En separat tidsplan fra billettens virketid under OpsIQ Writing.

Svar når AI er ute

Det første svaret på en ny melding, svar når noen allerede er i kø og hvor lenge før du gjentar.

Frakoblet skjema

Viser et kontaktskjema i stedet for chatten.

Billettoppslag og avdelingsvarsler

AI billettbevissthet, så en besøkende siter et kupongnummer får sin reelle status og hvilke avdelinger som AI kan rute til. Et innebygd panel viser de ekte mottakerne for hver avdelingen, løst på samme måte som anmelderen løser dem, slik at du ser før kunden gjør det at ei enhet varsler ingen.

Hjelpesenter i chat widget

La besøkende bla gjennom publiserte artikler uten å forlate chatten. Du velger hvor oppføringspunktet vises, bunnlinjen etikett og ikon, og om du tilbyr en lenke til det fulle hjelpesenteret. Av som standard.

Konversasjonsvurdering

Stjernerangering utløst når en agent lukker chatten, når et avbrekk slutter eller etter en inaktivitetsperiode du angi. Velg én eller to triggere ikke alle dem.

Undersøkelse etter chat

En kort undersøkelse når besøkende avslutter chatten, med spørsmålet ditt, forsinkelsen din, timing regelen og en cap per besøk. Besøkere kan også e-post eller laste ned transkripsjonen. Ett spørsmål får svar; tre ikke gjøre det.

Post-Chat epostundersøkelse

En oppfølgingsundersøkelse via e-post etter samtalen avsluttet, valgfritt i språket som besøkende chatte på med kontroll over forsinkelser, emne, intro, spørsmål både knappetiketter og takkelinjen.

Svar på svar

Tommel opp og tommelfinger ned på hvert AI-svar, mate kvalitet dashboards.

Kontaktarkiv

Auto-arkiv etter dager, automatisk løses opp etter minutter med stillhet og slette arkiverte samtaler etter dag. En tredje plass retensjon er satt sammen General and Tracking !

Kunnskapstrening

Hva assistenten faktisk vet. Ingenting annet i klient Chat betyr så mye.

Nettsted Kunnskapsopplæring

Crawls nettstedet ditt slik at assistenten kan svare fra det. Opp til ti startkoblinger, en sidegrense, et linkdybde og ekskluderte mapper URL kan testes før full kryp. Utelukk utsjekking, konto og admin stier.

Innbyggere

Den API Nøkkel og modell som gjør sider til søkbare betydninger i stedet for søkeord.

AI kunnskapsorganisator

Ett klikk og AI leser alle FAQ-er, krøllet sidene og sortert dem i kategorier.

FAQs, Bekreftede svar

Spørsmål og svar par behandlet som den høyeste prioritetskilden, hver med en status, vekt og kategori. Søkbar importerbare fra JSON, og AI kan skrive dem fra en beskrivelse av din virksomhet. Når assistenten får noe galt, skriver du et FAQ: det utranker krypende sider så fikset er umiddelbart.

Avansert

Prestasjon og grenser

Polling av intervall, meldingsrategrense og vindu, maksimal vedleggsstørrelse, vedleggsforsøk per vindue og tillatte filtyper. Utvidelseslisten er en sikkerhetskontroll; hold den tett.

Realtime Levering

Umiddelbar melding og statuslevering i stedet for å velge, gjennom Pusher eller Firebase med et tilbakefallsmålingsintervall. Polling er bra for de fleste nettstedene.

Push-varsler

Enheten varsler for agenter gjennom Pusher Beams eller OneSignal, med en enhetsinteresse.

Nett- push (VAPID)

Nettleser push med dine egne genererte nøkler uten tredjepartsleverandør. Genert her, ikke i faresonen.

Stemme-, video- og skjermdeling

TURN-opplysninger så samtaler koble gjennom restriktive nettverk, ved hjelp av Cloudflare eller Twilio legitimasjoner eller din egen TURN URL, brukernavn og troverdighet.

Innboks arbeidsflyt

Agent arbeidsområdeinnstillinger i stedet for besøkende innstillingene: førsterespons SLA på minutter, lagret køvisningar, tastatursnarveier og kommandopaletten, in-conversation søk samt kundebilletter hos inspektøren.

Meldingskanaler

WhatsApp, SMS, Facebook Messenger, Instagram, Telegram, X direkte meldinger og LINE, hver med sin egen AI automatisk bytter, pluss en policybryter for AI-handlingene på kanaler, et svar fravik og What. App reengagement male. Hver kanal lander i samme innboks som webchatt.

En forhåndsvisning av Live Widget nederst i fanen når du redigerer. Bruk den istället for å laste nettsiden på nytt til å sjekke en endring.
Innstillinger

Innstillinger: OpsIQ Skriver

Billetter svarte skriftlig: automatiske svar, det innfødte billettsystemet, eskalering, arbeidstid, rute og kundevendte e-poster.

Autosvar

Vis OpsIQ Skriveknapper

Legger til knappene for skrivehjelpemidler i administratoren.

Aktiver billett auto-reply

Køyer nye billetter og svar, svarer dem etter en forsinkelse. Start med det av og gjennomgang utkast i én uke. Refunderingar, kanselleringer og tilgang endringer bør alltid nå et menneske.

Auto-reply avdelinger

Hvilke avdelinger automatisk kan svare på. Alt som ikke er oppført, blir igjen for et menneske, noe som er trygt standard.

Svar forsinkelsesskjema (minutter)

Hvor lenge vente før det automatiske svaret sender. Et øyeblikkelig svar leser som robot; noen minutter leses som et raskt team !

Max AI svar per billett etter avdeling

En per-department hette, for eksempel Billing 1 og støtte 3. Uten en lue kan en forvirret tråd sløyfe.

Svar lengde, status og identitet

Maksimal skrivetegn, billettstatus etter et svar og en eskalering, som administratorkontoen automatiske responser tilskrives. Bruk en tydelig navngitt konto slik at personale kan fortelle AI-svar fra mennesker.

Innfødte billettoperasjoner

Native billettsystem

Billettsystemet er bygget inn i OpsIQ, for installasjoner uten eksternt hjelpemiddel.

Send e-post til innfødte billetter

Gjør innkommende e-post til billetter. OpsIQ gir endepunktet URL, auth token, skriptsti og PHP binær. Alt som kan legge til det endepunktet kan opprette billetter så hold pollettene hemmelige.

Multi-turn svar og forsinkelser

Om AI fortsetter å svare mens samtalen fortsetter, og om det venter på et stille vindu så tre raske meldinger får en vurdert svar. Det rolige vinduet er den beste enkeltinnstilling for at automatiserte reaksjonene føler seg tatt i betraktning.

Offentlig støtteportal

En kundevendt side der alle kan heve og spore en billett, med et valgfritt velkomstlinje. Dens adresse er konfigurert i fanen Støtteportal.

Billettnummerformat

Hvor mange tilfeldige bokstaver vises i genererte billettnummer.

E-postkunder på eget språk

Billett e-poster følger kundespråket. Medarbeidere endrer aldri språk: varsler, avdelingsvarslinger og planlagte rapporter blir på systemspråket ditt.

Bekreftelser og bekreftelser

En fast bekreftelse på nye billetter, pluss bekreftelsesmeldinger når en billett åpnes. Når tilbakemeldingene er igjen og når det lukkes ut, vil hver med live forhåndsvisning være tilgjengelig. Det finnes også et globalt e-postmalomslag og lenken bak visningen av billetten din.

AI spam screening

Skjermbilletter fra ukjente avsendere, og kan eventuelt flytte mistenkelig spam på egen hånd. La den automatiske bevege seg til du har sett sin vurdering.

Lukk automatiske ledige billetter

Lukker billetten etter en rekke stille dager. Fortell kunden i avslutningsmeldingen hvordan du åpner opp igjen.

Forretningstimer (SLA-kalender)

Tidssone, åpnings- og stengingstider, arbeidsdager og ferier for førstegangstidsansatte og oppløsningsterker. En separat tidsplan fra Arbeidstiden under klientchatt.

Auto-asigner nye billetter

Automatisk tildeling, eventuelt bare for agenter som er på nettet med agentkompetanse og en matchfølsomhet for ferdighetsbasert rute.

Foreslå duplikatbilletter

Spekk når kunden åpner en billett nær den de allerede har, med justerbar matchfølsomhet.

Tilfredshet etter avslutning

Sender en undersøkelse om dagen etter avsluttelsen. Resultatene vises på CSAT-siden.

Meld avdelingen på e-post

E-post til avdeling når en ny billett ankommer. Mottakere er medlemmer i den avdelingen, ikke postkasseadressen fra enheten som er de inngående adressebilletter kommer på.

Hva AI kan lese

Adgang til AI-klientdata

En masterbryter pluss individuelle lesebeskyttede tillatelser for klientens profilsummer, fakturaer og transaksjoner, kredittbalanse, produkter og tjenester, domenene, lenkede servere samt en oversikt på høyt nivå. Start med profilen sammendraget og legg til kategorier som svar trenger dem.

Escalering og kunnskap

Aktiver AI-billetters eskalering

Flytte en billett til et bedre egnet avdeling før du svarer. Du velger de tillatte departementene, sjekk forsinkelsen og kan skrive dine egne eskaleringsvarsling instruksjoner. Slå på den interne opptrappingsnotatet slik at teamet ditt ser hvorfor ein billett flyttet seg.

Kunnskapsinnstillinger

Om svarene bruker kundespråket, om de trekker på krypende lenker og FAQ-innstillinger eller om AI leser bildet. PDF vedlegg, kunnskapssvarmodusen eller importert JSON kunnskap brukes, og om kildelenker kan vises. Bruk krabbede koblinger og FAQs bør være på eller AI er gjetting.

Stopp automatisk etter menneskelig svar

Når personalet svarer, slutter AI å svare på billetten. Uten det kan AI snakke over din egen agent.

Billett og e-postinstruksjoner

Gratistekst instruksjoner forme tone og innhold for hvert svar, med et lastbart fungeret eksempel. Vær spesifik om hva AI må aldri gjøre.

Import JSON knowledge

Last opp eller lim inn en JSON -kunnskapsfil for skriveassistenten.

Knap Studio

En full designer for kunde-vendt knapp: skjermstil, størrelse, etiketten, ikonet, form, minste bredde, bakgrunnsstil med primær og sekundær farger, gradientvinkel, kantlinje, hjørneradius, skygge, typografi, fylling, inaktiv animasjon, sveve bevegelsen og fargene samt fokusringen pluss en egendefinert CSS box til noe kontroller ikke dekker.

Innstillinger

Innstillinger: Støtteportal

Kundesiden hvor folk reiser og sporer billetter, leser hjelpen din. Denne fanen styrer hvordan den nås og hvordan kundene logger på; det visuelle designet gjøres i Support Portal Studio.

Portal Studio eller innebygd billettportal: hvilken vil jeg ha?

Dette er to forskjellige produkter og folk blander dem hele tiden. De løser ulike problemer, og å kjøre begge sammen er normalt.

Støtte Portal Studio: et sted du sender kunder til

Studioet designer en komplett støtteside som OpsIQ verter for deg. Den har sin egen webadresse, eller ditt eget domene og bærer hele selvbetjeningsopplevelsen: hjelp artikler med søk, forespurnningsskjemaet, billetthistorikken, kundeinnloggingen og assistenten. Velg en mal som fungerer gjennom Tema, navigasjon, layout, kunnskaper, bunntekst, merkevare, billetter, assisterende skjema og CSS_-visning på skrivebordet, nettbrett og telefonstørrelser, deretter publisering.

Bruk den når Du vil ha en merkede destinasjon du kan peke alle kunder på, og du helst ikke bygge eller vedlikeholde et støtteområde inne i din egen hjemmeside.

Embedded billettportal: billetter inne i ditt eget nettsted

Den innsnevrede setter Bare billettopplevelsen på en side av din egen hjemmeside. Kunder åpne, spore og svare på forespørsler uten å noensinne forlate sidene dine, og din egen overskrift, navigasjon og design holde nøyaktig som de er. Velg layouten, utseendet og tilgangsreglene i widgetbuilderen, forhåndsvise resultatet, kopier deretter innebygd snutt til siden din.

Bruk den når du allerede har en nettside eller applikasjon med egen design, og vil at støtte skal skje i det snarere enn å gi kunden av til et annet adresse.

Den korte versjonen

Studioet bygger Et sted du sender kunder til. Den embedet bringer billetter til hvor kundene allerede er. Mange bedrifter driver begge, innlemme billett widget i sitt kontoområde for in-context anmodningene mens du holder den vert portal som full selvbetjening destinasjon med artikler og søk. De er uavhengige brytere.

Adresse og tilgang

Tilgangsmodus

Enten portalen er åpen for alle eller begrenset til logget inn kunder. Åpne portaler får flere billetter og mer spam.

Layoutvalg

Om portalen og hjelpesenteret deler én helt eller bruker to, som navigasjon og bunntekst vises på begge overflater.

Portaladresse

Adressekundene bruker. Velg et navn og OpsIQ Viser den resulterende portalen og samsvarende hjelpesenteradresser. Endre det senere bryter koblingene du allerede har sendt.

Ditt eget domene

Serverer portalen fra et domene du eide, som support. yourdomain. com.

Innbygd billettportal

Slår på den dråpe-in widget som er beskrevet ovenfor, og åpner innbyggeren der du velger layouten, utseendet og tilgangsreglene, forhåndsvis resultatet for siden din. Dette er ikke Portal Studio: Studioet designer vert portalen, dette setter billetter inne i ditt eget nettsted. Begge kan være på én gang.

Hvordan kundene logger på

Dette er kundene dine logge inn alternativer. Personalet logg-in konfigureres under Innstillinger, sikkerhet.

Logg inn metoder

Hvilke alternativer vises på logg inn-siden. Koble til og epostlogge i arbeid automatisk.

Sosialt innlogging

Kundekontoleverandører, som hver trenger en klient-ID og hemmelighet med omdirigeringsadressen gitt av OpsIQ å registrere seg hos denne leverandøren.

Enkelt pålogging (OIDC)

Kundeinnlogging gjennom en identitetsleverandør, med utsteder URL; klient-ID'er og hemmelige epostdomenelister.

Kunden SAML 2.0

Den SAML Ekvivalent. OpsIQ gir ACS svar URLog SP enhet ID; du oppgir IdP-enhetens identifikasjon, logg inn og ut URLs X.509 sertifikat og valgfrie attributtnavn.SAML på i logg-in metoder eller det vil ikke vises.

Seamless logg inn fra appen din

En signert dyp kobling, så en kunde allerede logget på programmet lander i portalen uten å registrere seg igjen. OpsIQ tilbyr underskriftshemmelighet, portal URL og arbeidsområden nøkkel, pluss en generator for et signert testlink. Bruke produsenten før du skriver noen kode.

Logg ut overalt

Logger ut av portalen, skriver også kunden fra søknaden.

Inntak og beskyttelse

Forespørselsskjemafelt

Hvilke strukturerte felt forespørselsskjema samler inn. Hvert ekstrafelt mister meldinger, så spør bare om hva du trenger å triage.

Spam og beskyttelse av misbruk

En honningpott og ratebegrensning beskytter alltid det offentlige skjemaet. Oppå toppen kan du blokkere engangs e-postadresser, legge til dine egne sprukkede domenene og legger en CAPTHA ved hjelp av Google reCAPTCha eller Cloudflare Turnstile. reCAPTCHA gjenbruker nøklene som allerede er angitt under Innstillinger, Sikkerhet; Turntile-tastene angis her.

Portalanalyse

En lesebeskyttet sammendrag av portalaktivitet de siste tretti dagene.

Innstillinger

Innstillinger: Tillatelser, lisens, krone og faresone

Systemgruppen, i tillegg til teamets tilgangskontroller som bestemmer hvem som kan se hvilken innstillinger-fanen.

Lagtilgang og tillatelser

Per-admin tillatelser

Hver administrator får eksplisitte tillatelser som dekker tilgang til innboksen, hvilke innstillinger deler kan redigere og avdelingene. Alle med Full Administrator-rollen har alltid alle samtykkene. Innstillinger autorisasjon bestemmer hvilken fane en person ser så gi det smaleste settet som lar dem fungere.

Lisens

Viser din nåværende lisens, hva den gir deg rett til og status.

Cron-oppsett

Selv-verte installerer kun. På OpsIQ skyen de planlagte oppgavene kjører for deg og fanen er skjult. En linje med crontab driver hver planlagt oppgave: billett autoreply, eskalering routing, utvekslingsrate oppdateringer, postkassevalg og kontakt synkronisering.

1
Kopier linjen

Fanen viser den nøyaktige kronab-linjen for serveren din med riktig PHP binær allerede valgt.

2
Legg til det i crontab

Kjør crontab -e som brukeren som kjører PHP og lim inn enkelt linje. På cPanel Bruk i stedet Cren Jobs-verktøyet.

3
Bekreft

I løpet av et minutt lyser hjerteslagsfliser opp. Bruke Kjør nå til å teste umiddelbart i stedet for ventetid.

Hjerterytmepanelet viser siste kjøring, varighet og hva som ble behandlet for både auto-reply køen og email and connector meningsmålingen. Det advarer når den siste løp kom fra manuell webknappen i stedet for en ekte server krone, og når et hjerteslag har gått utholdenhet.

Faresonen

Slett alle sporingsdata

Tørker alt OpsIQ -innsamlet eller generert. Du krysser av hva du skal inkludere og skriver inn bekreftelsesfrasen nøyaktig. Innstillinger, konfigurasjon på sidene, blokkerte adresser (kunnskapsbase, FAQ'er, oversettelser, portaldesign, handlingsdefinisjon) og samtykkekvitteringene er alle bevart.

Å rense data eldre enn

Den samme fløy som er begrenset til registre eldre enn 30, 60, 90 eller 180 dager, eller et år. For automatisk rullende retensjon bruke tilbakeholdelsesverdier generelt og sporing i stedet for å la den planlagte oppgaven gjøre det.

🚫
Eksportere en sikkerhetskopi fra Innstillinger, Generelt før du bruker noe i faresonen. Disse handlingene kan ikke angres.
Innstillinger

Håndter teamet ditt

Inviter teammedlemmer og tilordne roller for å kontrollere hvem som kan få tilgang til hva.

Lag
Team & AvdelingerLagskjermen: et bord med administratorer, kontakt- og rollemerke (Owner, Full Admin, Agent) samt avdelingene hver kan få tilgang til.Team & AvdelingerarbeidsflateTeam & Avdelinger+ Lagre administrator brukerKontactROLLERDEGARTMENTERAO[email protected]Ada OhusuEierAlleKMunit description in lists[email protected]Kojo MensahFullstendig administratorAlleRT[email protected]Rita TettehAgentFaktureringSB[email protected]AgentStøtte1TEAMInviter & administrere administrator2ROLESEier · Full Admin3SCOPEDTilgang til per-department
Den virkelige lagskjermen: hver administrator med sin kontakt, rolle og avdelinger de kan nå, agentene omfangsfulle, eiere full.

Roller

Eier

Full adgang, inkludert lisens- og faktureringssone.

Fullstendig administrator

Full adgang unntatt lisens- og faresone. Kan administrere administratorer

Agent

Begrenset til tildelte avdelinger. Billetter, chatter og analyse bare.

Inviter teammedlemmer

1
Gå til team

Naviger til team i sidepanelet.

2
Klikk på Invitasjon

Skriv inn teammedlemmets e-post.

3
Sett rolle

Velg eier, full administrator eller agent.

4
Tildeling av departementer

For agenter, velg tilgjengelige avdeling.

5
Send innlegg

De mottar en e-post med installasjonslenke.

Innstillinger

Teamets ytelse

Hvordan supportteamet ditt utfører. Tilgang er ved tillatelse, ikke etter rolle: visningsgodkjennelsen åpner siden, styringstillatelsen låser opp målene QA og kollegaen identifiserende lesere, og belønning-finansielt samtykke til det som legger til Rewards fanen. Et team leder kan gis noe av disse uten å bli en full administrator.

Teamets ytelse
Teamets ytelseTeamets ytelsesskjerm: agenter rangert etter en komposittscorelinje, CSAT og et belønningsbalanse med Pay-knappen per rad.Teamets ytelsearbeidsflateTeamets ytelseAgentPOENGCSATBALANSERTRita Tetteh4.8$42BetalSBSam Boateng4.5$28BetalKMunit description in listsKojo Mensah4.2$15BetalAOAda Ohusu4.9$51Betal1SCOREDSamlaget ytelse2CSAT & LOADVurderinger + volum3REWARDSBetalende agentsaldoer
Den virkelige team-ytelsesskjermen: hver agent scoret på volum og CSAT, med en belønning saldo kan du betale ut per rad.

Hvordan siden er organisert

Team Performance er fem faner. Hver svarer på et annet spørsmål, og de bestilles av hvor raskt det vanligvis trenger deg.

01 Kommandosenter

Live kø state, kunderesultater mot dine mål, hvordan kapasiteten ble brukt til, situasjoner som trenger en beslutning og bevisjustert per lagmat indeks.

02 Lagkamerater

Lederbrettet, anerkjennelse (de fleste forbedret og streik), søkene og opts-in kontroll for hvem som kan se rangering.

03 Kvalitet

Scorecards, registrerte evalueringer og tilfeldig korrigeret gjennomgangsavtale, recensordrift samt bevisstrid.

04 Belønninger

Token verdi, utbetalingskrav og den regulerte periodens tildeling: godkjenne et finansiert tak, se gjennom forhåndsvisningen.

05 Historie

Hvordan arbeidsområdet har flyttet over tid: trendmålinger med et diagram, og en 28-dag dekning varmekart som viser når laget faktisk fungerte. Hvert kort skjuler seg til det er nok historie for å tegne den.

Uscored er ikke null

En lagkamerat uten nok håndtert volum - eller hvis dimensjoner som bærer bevis legger til opptil mindre enn halvparten av den konfigurerte vekten - er vist som Unscored. Deres score, rang og bandet er tomme og deres inndeling er skjult. Dette vil være med vilje: å gjøre en fraværende måling som et null setter noen nedst i ei rangering for å ha en stille uke. Bevisgrenser kan konfigureres per arbeidsområde på Mål & poeng.

De to bevisgrensene gjør forskjellige jobber og det er verdt å holde dem fra hverandre. Minimum håndtert bestemmer om noen blir scoret i det hele tatt. Minste vurderinger påvirker ikke poenget: den avgjør tildelings-og belønningskrav. Så en lagkamerate kan bli fullstendig rangert, rangert og fortsatt være uegnet for denne perioden fordi altfor få kunder vurderte dem.

💡
Hvert tall er tilstrekkelig det arbeidsområdet du ser, og tidsintervallet som velges. En lagkamerat som arbeider på to separate arbeidsplasser har en uavhengig rekord i hver enkelt. To unntak verdt å vite: et nettsted GROUP er ett arbeidsområde så medlemdomene måles sammen; samt alle-sites visningen måler bevisst alt samtidig.

Effektindeksen

En sammensetning av fem dimensjoner, hver målt mot et mål du setter i stedet for mot kolleger, deretter trakk seg til midten når bevisene bak den er tynne. Merk retningen: justeringa beveger figuren mot 70, så en tynn utmerket poengsum trekkes ned og et smalt dårlig poeng blir dratt opp. En dårlig første uke på fire samtaler er heller ikke en avgjort dom. Som bevis akkumulerer den justerte figuren konvergere på rå.

Kvalitet

Kundetilfredshet fra verifisert tilbakemelding. Tilskudd av QA scorecard-resultater der de eksisterer og styres.

Responsivitet

Første responstider på P50 og p90 percentilene, mot dine mål.

Oppløsning

Oppløsningstid og en berøringsoppløyst.

SLA

Innhold mot SLA konfigurert, pluss risiko og brudd på antall.

Stewardship

Åpne og overføre priser - det arbeidet som kommer tilbake.

💡
Vektene er konfigurerbare og relative; de trenger ikke totalt 100. Manglende bevis kan bare senke indeksen, aldri heve den - de full konfigurerte vektholdene i nevneren.

Kapasitet og produktiv tid

Utnyttelse er bevisst ikke rapportert: det trenger planlagte timer som nevner, OpsIQ har ingen roter eller skiftkilde. En erstattet referanse vil være et gjett på å ha en prosenttegn. Den leser så utilgjengelig med den grunnen vedlagt.

⚠️
Rapportering bare. Oppdrag sier hvordan tiden ble brukt, aldri hvor godt det var brukt og den penger ikke, porter eller størrelser en betaling. En lagkamerat uten håndtak-tid bevis leser som utilgjengelig, aldrig som null.

Kvalitetssikring

Et scorekort er rubriske anmeldere som rangerer ekte samtaler mot. Bare en publisert versjon kan få vurdering, og å gi ut ny version omskriver aldri det som allerede ble gjort. En gjennomgang viser at én samtale ikke blir dømt til personen.

Reviewer-avtale

Rapportert som en tilfeldig riktig statistikk (Cohens og Fleiss' kappa), ikke et råavtaleprosent. To anmeldere som passerer alt er enige 100% av tiden mens de har ingen informasjon.

Reviewer drive

Enten en anmelder scores systematisk hardere eller mykere enn sine kolleger på samme samtale - en sammenligning med resten av panelet, ikke trend over tid. Det trenger et samspill som vurderes uavhengig mer end én gang.

Tvister

En lagkamerat kan formelt bestride bevis registrert om dem. Et åpent tvistblokker belønningsperiode finalisering til det er løst.

Selvrevurdering

En teamkamerat kan ikke legge inn en evaluering av seg selv.

⚠️
AI-gradede evalueringer kan ikke påvirke lønnen før en kalibrering er publisert som viser at modellen godtar de menneskelige gjennomgangerne nøye nok, målt ved kappa mot et minimum prøve. En åpen port betyr at modellen samtykker i å mennesker tett nok til å telle - det betyder aldri at modellen har riktighet.

Anerkjennelse

Ranking alene har dokumentert feilmoduser: metriske spill, utbrenthet og offentlig sjamring av hvem som er sist. Tre alternative sitter ved siden av det.

Mest forbedret

Målt mot en lagkamerats egen tidligere rekord, aldri imot kolleger med krymping så en liten nevner kan ikke kjøpe seg en seier.

Streaks

Konsekutive perioder som møter en fast, deklarert linje - gjennomsnittlig vurdering, håndtert volum, rating teller og negativ tilbakeføringsrate. Alle kan holde et streik samtidig så det skaper ingen rangering, og en kollega med en eksepsjonell måned ikke kan bryte din.

Opt-in rangering

En lagkamerat ser alltid sin egen indeks; om de ser kolleger er en arbeidsflatebeslutning. Prosentile band kan publiseres i stedet for absolutte stillinger.

💡
En streike kan ikke finansiere en utbetaling eller bryte én, og mest forbedret er ingen priskategori.

Quests

Et mål laget arbeider mot, målt på en fast erklært bar i stedet for mot hverandre - så alle kan fjerne samme søken i den samme perioden.

Omfang og kadence

Individuell eller team; one-off, repeatable og sesongbeskrivelige med eksplisitt vindus.

Kriterier

Samtaler håndtert, mottatte vurderinger, aktive dager, gjennomsnittlig rangering eller negativ tilbakemeldingsrate. Alt absolutt - ingen metrisk verdi som avhenger av hva kolleger gjorde.

Kvalitetsvakt

Nødvendig på alle søk med et volummål. Hiting nummer mens kvalitet faller under gulvet holder søket i stedet for å fullføre det, og den er vist som tilbakeholdt ikke uferdig.

Gjenta grenser

En per periode-hette, drevet av det sakteste kriteriet pluss en valgfri nedkjøling før et gjentakelse kan telle.

Teamoppdrag

Delt fremgang uten å ha gitt ut tilskrivelse per lag, så et teamsøk kan ikke bli en ledertavle.

Coaching-økter

En coaching sesjon er en rekord, ikke et chat. Det har en trener, en lagkamerat som blir coctored, en planlagt tid, enige om å snakke poeng og ett sammendrag skrevet etterpå. Ekte samtaler, billetter og QA-vurderinger festes til det som bevis, så samtalen forankres på jobb som faktisk skjedde i stedet for at et huskelig inntrykk.

Snakke poeng

Enig før sesjonen, så lagkameraten ikke går inn i en overraskelse.

Pinnet bevis

Chats, tickets and QA evaluations attached to the session. A pin stores a reference — a type and an id — not a copy, so it always points at the live record. OpsIQ does not verify the id before accepting it.

Handlingselementer

Hver med eier og forfallsdato. En gjenstand forbi datoen er vist som overdriven - en avledet tilstand, ikke et status noen må huske å sette.

Private Noter

Trenerens egen notat. Lagkameraten som coaches kan aldri lese det - ikke som agent, ikke som manager, heller enn som eier. Denne sjekken går før alle andre tillatelser og kan ikke overstyres.

Hvem kan se en økt

Treneren, lagkameraten og alle med styrets utførelsestillatelse. Ingen andre, inkludert andre lagkamerater i samme avdeling.

Revisor

Hver opprette, oppdatere, pinne og ferdigstillelse er registrert med det som endrets.

💡
Coaching er bevisst adskilt fra score og penger. En sesjon endrer ikke noens indeks, porterer ingen belønningen, og vises ikke på lederbrettet.

Belønninger og priser

Innspilt aktivitet konverteres til polletter med en kontantverdi du angir. Veien til betaling er bevisst langsom og hvert trinn registreres.

1
Sett poliksverdien

Hvor mange polletter er det lik hvor mye penger, og hva hver aktivitet er verdt.

2
Godkjenn det finansierte taket

For en lukket kalenderperiode, angir full administrator de maksimale pollettene det kan betale. Å lagre innstillingsskjemaet ikke godkjenne et budsjett og den kan ikke endre taket som allerede er godkjent.

3
Se gjennom forhåndsvisningen

Mottakere, reserver og grunnen til at alle ikke er kvalifisert. Åpen bevisstrider blokkere dette trinnet.

4
Finalis

Tildelingen registreres permanent med bevisene bak den. En periode som tildelt ingenting kan ugyldiggjøres og kjøres på nytt direkte. Den som utstedte polletter må reverseres først:OpsIQ skriver en kompenserende oppføring mot hver lommebok og aldri sletter originalen, så ledger fortsatt viser hva som skjedde og hvorfor. Bare da er perioden frigitt. Omvendelsen nektet hvis noen allerede har utbetalt mer enn beløpet som blir gjenopprettes, samt navn på hvem eller hvor mye.

⚠️
Besvaring krever verifisert kundefeedback. AI kvalitet score kan supplere den dømmende men aldri erstatte det, og en lagkamerat vist som Unscored er ikke kvalifisert. Hver bidragsyter blir cappet på 25% over sin forventede andel av perioden, så én svært høy volum måned kan ikke absorbere hele budsjetten.
💡
Kontoeieren deltar ikke i priser eller tokensbonuser, uten bryter: de autoriserer det finansierte taket og finalisere alle tildelinger. Det er ingen over dem å godkjenne hva de ville betale seg selv. Deres arbeid måles, scorees og rangeres på styret nøyaktig som andre mennesker.

Alle andre deltar som standard, teamledere og med eiere inkludert. For å forlate noen ute, åpne dem i Team & Departments og slå av Ta del i priser- og belønninger alternativet. Deres arbeid er fortsatt scoret og vist; de slutter å være en kandidat fra det punktet, og ingenting allerede fullført blir berørt.

⚠️
Ingen godkjenner penger for seg selv. Fordi de som kan delta, er også folk som kan godkende utbetalinger,OpsIQ nekter en utbetaling eller kreditt i din egen lommebok, betaler ditt eget krav og avslutter et tidsrom der du vil bli betalt. En annen full administrator eller eieren må gjøre det. Betal alle kravene hopper over dine egne samt rapportere den som hoppa over, ikke mislykkes.

Hvem kan se og gjøre det

Vis teamets ytelse

Styret, live-tilstanden og kvalitetsoversikt for arbeidsområdet.

Administrer teamytelse

Mål og vurdering, eksport, QA scorekort og evalueringer, coaching, søksoppgavene og lesningene som bærer kollegaidentifiserbare data slik som per-admin historie og prishistorie.

Vis team belønninger

Balanser, kontantverdier, kravnotater og betalingsreferanser - skilt fra ytelsesbevis fordi det er lønnstilstøtende.

Kun full administrator

Hver pengemutasjon: å betale en belønning, betale eller avvise et krav som gir tillatelse til budsjettet, finalisere, annullere eller omsette en tildeling og angi polen-til-kasse rate. Disse kan ikke delegeres ved at du gi løyve.

Bruke det ganske

Ytelsesindeksen er ledelsesbevis, ikke en automatisk arbeidsbeslutning. Åpne kildesamtalene bak et tall før du handler på det og veier sakkompleksitet, tidsplaner, forlatelse og tilgjengelighet behov. En enkelt vanskelig uke ser ingenting ut som et vedvarende mønster.

Innstillinger

Nettsteder (arbeidsplasser)

Nettsteder (arbeidsplasser) lar deg administrere flere nettsteder fra en OpsIQ -installasjon. Hver har sin egen sporing, AI, kontakter og teamtilgang.

Nettsteder
NettstederSkjermbildet for nettsteder: en liste over arbeidsområder, hver med domene- og typenavn, kontakt/statusmerke eller åpne knapp samt tilleggsside.NettstederarbeidsflateNettsteder+ Legg til nytt nettstedSshop.acme.comeCommerce · Shopify koblingAktivÅpneHhost.acme.comHosting · WHMCS connectorAktivÅpneBblog.acme.comInnhold · ingen kontaktOppsettÅpne1MULTI-SITEEtt arbeidsområde per sted2ISOLATEDData blander aldri3PER-SITEEgne innstillinger og kontakter
Skjermen for ekte nettsteder: hvert sted er sitt eget isolerte arbeidsområde (eigdomene, kobling og innstilling), lagt til og åpnet fra én liste.

Opprette et nettsted

1
Gå til Internett-nettsteder

Naviger til sammenkoblede nettsteder.

2
Legg til et nytt nettsted

Skriv inn navn, domene og beskrivelse.

3
Kopiere nettstedsnøkkelen

Hvert nettsted får en unik nøkkel (Site_xx) for widgetbit.

4
Konfigurer uavhengig

Hvert nettsted har sin egen AI, kontakter og innstillinger.

Hvor mange nettsteder kan jeg ha?+

Avhengig av lisensplanen din. Sjekk lisensens detaljer

Innstillinger

Lisens og plan

Din OpsIQ -lisenskontroller funksjoner, nettstedsgrenser og AI kredittbalanse.

Lisens
LisenssenterOpsIQ Licenssenter: Planlegg, et aktivt statusmerke, den maskerte lisensnøkkelen og en AI-kredittmåler samt en Force remote - checkknapp.LisenssenterarbeidsflateOpsIQ LisenssenterPlanBedriftStatusAktivNøkkelOPSIQ-•••–••AI-kreditter$68 venstreTving fjernkontroll1PLAN & STATUSAktivt, på et øyeblikk2KEYHMAC-kasjet lokalt3CREDITSAI-balanse og grenser
Det ekte lisenssenteret: din plan og aktiv status, den maskerte nøkkelen, AI-kredittbalansen samt en ettklikks kraft ombekrefte.
Lisensnøkkel

Skriv inn Innstillinger > Lisens. Validert mot OpsIQ lisensserver.

Lisensrytme/validering

OpsIQ Normalt leser dens signerte lokale lisens cache og oppdaterer validering når det kreves. Bruk Force fjernkontroll når du trenger et umiddelbart resultat; Diagnostics identifiserer DNS, HTTPS eller servertidsproblemer.

Plan

Avgjør tilgjengelighet og grenser.

Nettstedsgrense

Maksimalt antall arbeidsplasser.

AI-kreditter

Hvis du bruker Managed AI, vises kredittsaldoen din her.

Utløp

Forny før utløpet for å unngå avbrudd på tjenesten.

Hva skjer når lisensen min utløper?+

Sporing, billetter og CRM fortsetter. AI har pause til fornyelsen. Data er bevart.

Innstillinger

Profil, passord og to-faktor autentisering

Hver administrator kan opprettholde sin egen identitet, arbeidspreferanser og passord-og tofaktorautentisering.

Produktskjerm
Min profilProfilsiden skiller personopplysninger, språk/tidssone, avatar / signatur, passord og to-faktor autentisering.Min profilarbeidsflatePROFILFullstendigTIMEZONEEuropa/Aten2FAAktivertLIV ARBETSPESSONENavn og e-postPersonlig identitetRedigerSpråk og tidssoneDatoer og grensesnittRedigerAvatar og signaturSvar og team tilstedeværelseRedigerPassord og 2FAKontobeskyttelseSikker1UPDATE PROFILEidentitet og lokalitet2SECURE LOGINPassord og 2FA3SAVEBruk på denne administratoren
Profilsiden skiller personopplysninger, språk/tidssone, avatar / signatur, passord og to-faktor autentisering.

Profilinnstillinger tilhører den loggede administratoren og endrer ikke arbeidsområdenavn. Bruk et unikt passord, og aktiver tofaktorautentisering. Å bytte e-post eller autentiseringsinnstilling kan kreve ombekreftelse eller en ny innlogging.

Innstillinger

Varselinnstillinger

Varselpreferanser kontroll som operative hendelser når en adminstrator i produktet eller via e-post.

Produktskjerm
VarselinnstillingerVarselsiden gir per arrangement i app og e-postvalg pluss en nylig varslingsliste.VarselinnstillingerarbeidsflateIN-APPEMENDSelektivUNREAD4LIV ARBETSPESSONEBilletten tilordnetI app og e-postKunden svarteI-appSLA-risikoI app og e-postAI-godkjenningI app og e-post1CHOOSE EVENTSBare nyttige signaler2CHOOSE CHANNELI app eller e-post3REVIEWNylige meldinger
Varselsiden gir per arrangement i app og e-postvalg pluss en nylig varslingsliste.

Innstillinger dekker billetttildeling, kundesvarslarm, SLA-varsler og AI -godkjenningsarrangementer. Holde akutt driftssignal aktivert et sted; slå av epost nødvendigvis ikke å skru på varselet i appen.

Innstillinger

Sikkerhetsoversikt

Sikkerhetsoversikten er den første skjermen for å vurdere blokker, påloggingsangreper og trusler som gjelder sesjoner i sikkerhetsstendensene.

Produktskjerm
SikkerhetsoversiktSikkerhetsoversikt kombinerer aktuelle risikokort, a 14-dag trend, angrepsliste, hendelse feed og integritet status.SikkerhetsoversiktarbeidsflateACTIVE BLOCKS18FAILED LOGINS42HIGH THREAT3LIV ARBETSPESSONEAuto-blokkert7-dag totalt og kildeTrendSiste angripereIP, land og grunnAnmeldelseSikkerhetsbegivenheterRisiko og handlingsresultatMateHash-chain integritetTamper-inklute eventkjedeGyldig1READ HEADLINENåværende eksponering2OPEN EVIDENCEAngrepere og hendelser3HANDLINGBlokker, etterforske og eksportere
Sikkerhetsoversikt kombinerer aktuelle risikokort, a 14-dag trend, angrepsliste, hendelse feed og integritet status.

Bruk overskriftskortene for triage, og åpne deretter den relaterte revisjonen, Mislykkede innlogginger IPs eller JavaScript Feilsiden for rekordnivåarbeid. 14-dagstrend er mer nyttig enn en enkelt pigg. Høy treningsøkter bør undersøkes mot besøkende, forespørsel og autentiseringsbevis før et permanent blokk blir anvendt.

Innstillinger

Tamper-inklut revisjonslogg

Revisjonsloggen registrerer hvem som gjorde hva, når og hvor motsette seg det på hvilket risikonivå eller om det lyktes.

Produktskjerm
AktivitetsrevisjonRevisorsiden gir søkbar manipulering-inklut aktivitet med handling, aktør, risiko og resultat.AktivitetsrevisjonarbeidsflateHendelser18.2kHIGH RISK21INTEGRITYGyldigLIV ARBETSPESSONEKoble til[email protected] · ShopifySuksessAPI nøkkelen tilbakekalt[email protected] · Nøkkel 19SuksessInnstillinger endret[email protected] AISuksessTilgang nektet[email protected] · eksportBlokkert1FILTERHandling, risiko og skuespiller2INSPECTMål og resultat3EXPORTCSV eller JSON
Revisorsiden gir søkbar manipulering-inklut aktivitet med handling, aktør, risiko og resultat.

Filtrer etter handling, risiko og skuespiller; eksport CSV eller JSON for en etterforskning. Hash-kjeden hjelper til å oppdage manglende eller endret revisjonsrader, men den erstatter ikke beskyttet sikkerhetskopi og begrenset databasetilgang. Behandle auditeksport som sensitiv fordi de kan identifisere brukere, poster og sikkerhetstiltak.

Operasjoner

Diagnostikk

Diagnostics gjør delsystemkontroll til vanlige-engelske helseresultater og direkte neste handlinger.

Produktskjerm
DiagnostikkDiagnosticere gruppers helsekontroll for widget, AI-kort, billetter, integrasjoner, nettstedets intelligens, bakgrunnsoppgaver, CRM automatisering og lisensiering.DiagnostikkarbeidsflateHELSKE13WARNING2FALDET1LIV ARBETSPESSONEElementBeacon og chat endepunkterSunnBakgrunnsoppgaverCron hjerteslag sentAdvarselE-postUtgående test mislyktesFeilaKoblingerRegistrering og inntak av hendelserSunn1REFRESHKjør gjeldende kontroller2OPEN WARNINGLes bevis3FIX AND RETESTBekreft gjenoppretting
Diagnosticere gruppers helsekontroll for widget, AI-kort, billetter, integrasjoner, nettstedets intelligens, bakgrunnsoppgaver, CRM automatisering og lisensiering.

Siden kontrollerer Site Speed, rang/keyword / backlink / lokale data, AI og handlingsgateway. billetter, crawler/audits, integrasjon- eller arrangementstilgang, bakgrunnsoppgaver, CRM automatiseringer, lisensiering, widget and relatert produkttjenester som kan leses på nettstedet i stedet for å utsette rå hemmeligheter.

Etter en endring, frisk opp og bekrefter det berørte delsystemet returneres sunt. En grønn diagnostikkside er nødvendig men ikke tilstrekkelig til lansering; fullføre checklisten før utgivelse også.

Innstillinger

Sikkerhet og tilgang

OpsIQ inneholder flere sikkerhetslag for å beskytte din administrator, data og API Tilgang.

Hvordan det fungerer
Sikkerhet og tilgangEt sikkerhetsskjold ved siden av aktiverte kontroller: to-faktor, OIDC SSO, SCIM 2.0, OAuth2 PKCE IP brannmur, hastighetsgrenser og en hemmelighet hvelv.To-faktor (TOTP)OIDC SSOSCIM 2.0OAuth2 PKCECSRF + CSPIP brannmurPrisgrenserHemmeligheter hvelv
Sikkerhet

Sikkerhetsfunksjoner

Admin-autentisering

E-post/passord med valgfritt 2FA.

Logg ut

Midlertidig lås etter for mange mislykkede forsøk.

IP blokkering

Blokker IPs eller CIDR varierer fra å få tilgang til sporede nettsteder.

Trusler

- Høyttalende besøkere kan bli blokkerte.

HTTPS håndheving

Nødvendig for alle tilkoblinger. HTTP omdirigeres til httpS

HSTS-hoder

Strict-Transport-sikkerhet hindrer nedgradering angrep.

CSRF beskyttelse

Alle administratorskjemaer inkluderer CSRF-tokens.

XSS beskyttelse

Alle brukerinndata er rømt. CSP- overskrifter begrenser skriptutføringen

SSRF beskyttelse

Utgående webhooks blokkere private/intern IP adresser.

Anbefalt installasjon

1
Aktiver 2FA

For alle admin-kontoer.

2
Sterke passord

Minimum 12 -tegn, blandet.

3
Review-kontoer

Fjern tilgang til tidligere teammedlemmer.

4
Overvåking mislyktes pålogginger

Sjekk ukentlig for mistenkelige mønstre.

5
Hold deg oppdatert

Bruk oppdateringer raskt for sikkerhetspatch.

Innstillinger

Roller og tillatelser

Rollebasert tilgangskontroll lar deg kontrollere hva hvert teammedlem kan gjøre.

Roller og tillatelser
Roller og tillatelserEn rolle-for-kapbarhet matrise: Eieren har alt; Full Admin mangler fakturering og faresonen, Agent har bare omfangsbestemt billetter.Roller og tillatelserarbeidsflateSTETTINGERREKNINGFARLIGBILLETTEREierFullstendig administratorAgentscoped13 ROLESEier · Full Admin2GRANULARPer-side + per department3DEFAULT-DENYGlemte ruter blokkert
Rollematrisen på et øyeblikk: Eieren får alt, Full Admin alt annet enn fakturering og faresoner, Agent bare deres omfang billetter.

Standard roller

Eier

Alt inkludert lisens, risikosone og installasjonsadministrasjon.

Fullstendig administrator

Alt unntatt lisens og faresone. Kan administrere teamet

Agent

Svar på billetter og chatt som er tildelt avdeling, vis analyse. Ingen innstillinger eller sikkerhetstilgang

Kan jeg lage egendefinerte roller?+

Tre innbyggede roller pluss oppdrag fra avdeling gir granulær kontroll.

Innstillinger

Blokkert IPs

Administrer IP adresser som er blokkert fra å få tilgang til dine sporte nettsteder.

Blokkert IPs
Blokkert IPsDen blokkerte-IPs skjerm: en block-an IP/CIDR skjema ved siden av en blokkert adressetabell med hver oppføring, dato og grunn.Blokkert IPsarbeidsflateBlokkere en IP / CIDR203.0.113.0/24Grunn (valgfritt)BlokkerBlokkerte adresser203.0.113.9Jun 12 · brute kraftAvblokker45.12.0.0/16Jun 10 · søppelpostAvblokker102.89.6.2Jun 9 · overgrepAvblokker1BLOKKConstellation name (optional)IP eller CIDR rekkevidde2LISTHvem og når, med grunn3UNBLOCKEtt klikk
Den virkelige blokkert IPs skjerm: blokkere en enkelt IPeller et CIDR-område og administrere listen, hver med sin dato, grunn og ett klikk unblock.

Hvordan blokkere

1
Gå til sikkerhet > blokkert IPs

2
Legg til en IP eller CIDR rekkevidde

Eksempel: 203.0.113.42 eller 203.0.113.0/24

3
Legg til en grunn

Dokument hvorfor: spam, misbruk og skraping.

Vil blokkering påvirke legitime brukere?+

Hvis kunder deler et selskap IP eller VPN, som blokkerer det IP blokkerer alle på den.

Innstillinger

Mislykkede innlogginger

Alle mislykkede påloggingsforsøk til dine OpsIQ Admin.

Mislykkede innlogginger
Mislykkede innloggingerSkjermen mislykkede innlogginger: en kontotabell/IPs med feiltall, siste forsøkstidspunkt og en blokkknapp per rad.Mislykkede innloggingerarbeidsflateMislykkede innloggingsforsøkKUNKSJON/ IPFALDETSISTAction[email protected] · 41.62.10.472m sidenBlokker[email protected] · 102.89.6.2318m sidenBlokkerukjent · 45.12.9.71226m sidenBlokker[email protected] · 88.21.4.921h sidenBlokker1WATCHMislykkede innloggingsforsøk2COUNTSPer konto / IP3HANDLINGBlokker fra raden
Den virkelige feilsøkte innloggingsskjermen: hver konto/IP med sin feiltelling og siste forsøk, blokkere en brute-force kilde rett fra raden.

Hva hver oppføring viser

Dato/tid

Når forsøket skjedde.

E-post

E-postadresse brukt.

IP Adresse

Opprinnelsen til forsøket.

Land

Geografisk plassering.

Grunn

Feil passord, låst eller ikke funnet.

Advarselstegn

Mange forsøk, samme e-post

Passordgjetting. Sikre at 2FA er aktivert

Mange forsøk, ulike e-poster

Automatisk angrep. Blokker kilden IP

Uvanlige land

Hvis teamet er lokalt, vil det være sannsynlig at fremmede forsøk blir angrep.

Innstillinger

AI-sikkerhetsanalytiker

Et opt-in analytiker lag over sikkerhetssidene: dommer, hendelsesbriller, en daglig fordøyelse, et ukentslig posisjonskontroll og 0-token blokkpolicyer. Det kjører aldri i besøkendeforespurnningsstien.

Hver sikkerhetsside registrerer hva som skjedde, men lesingen av den krever fortsatt en vurdering. AI-sikkerhetsanalytikeren legger til denne vurderingen på plass, og den er bygget for å bruke nesten ingenting: Den sitter aldri i beacon- eller innloggingsbanen, deterministiske regler løser de åpenbare tilfellene uten AI-kall, dommer blir bufret, og analytikeren beste utgang er en deterministisk regel som deretter håndheves for alltid med null tokens. Innstillinger → Sikkerhet; alle standard av.

Hva det legger til

Verdict chips + Forklar

Blokkert IPs og Mislykkede innloggingsrader viser en godartet/ mistenkelig / fiendtlige chip med tillitsscore. Forklar åpner resonnementet, fakta som brukes samt ett-klikk på Block / Release handlinger. Cached 24h, så se på en ny IPDet er gratis.

Foreløpige briefs

Relaterte hendelser klynges inn i én episode (loginbølge, URL skann, automatisk blokkering sprakk) med en vanlig engelsk tidslinje og ett anbefalt neste trinn.

Daglig fordøyelse

En recap per dag: i går mot grunnlinjen din, blokkerne dine og hendelser. Stille dager sender en deterministisk all-clear ved null polletter.

Ukeholdighetskontroll

En mandag herding sjekkliste (2FA hull, låse ut terskel versus ekte angrep volum, varsler av) med en alvorlighetsgrad og innsats og nøyaktig fikse per element.

Spør om sikkerhet

En spørsmålsboks på sikkerhetsoversikten som svar fra din live-sikkerhet. Deep serverspørsmål blir levert til administratoringeniørchatten i stedet for gjettet.

Politikkforslag + autopilot

Analytikeren foreslår betongblokkregler som Approve / Avslutte kort; godkjente regler håndhever ved null pollett med en live hit-teller. Valgfri autopilot godkjenner bare de sikreste reglene automatisk.

Innstillinger

AI sikkerhetsanalytiker (sikkerhet_ai-aktivert)

Master bryter. Aktiverer dom chips, Forklar og spør Sikkerhet. Bare tvetydig IPs nå modellen, satset i ett anrop.

Foreløpige briefs (sikkerhet_ai_incidents)

Klynger hendelser inn i hendelsene og skriver hver ny historie. Kjører på eksisterende timesikkerhetskrone.

Daglig fordøyelse (sikkerhet_ai_digest)

En sikkerhetsgjenopptak per dag på klokken og Oversikt. Stille dager koster ingenting.

Ukestillingskontroll (sikkerhet_ai_postur)

Mandag herding sjekkliste på Oversikten. Checklisten er fullt deterministisk.

Autopilot (security_ai_autopirator)

La analytikeren aktivere sine tryggeste forslag uovertruffet: reversible tidsbegrensede blokker bare, enkelt IPs eller er ikke bredere enn /24, aldri delt / mobil/privat, cappet 10 per time, alltid revidert og angrelig.

💡
Hvert anrop er tagget security_ai med sin egen månedlige cap i AI Config → Cost Guardrails (standard 300k polletter). Hvis lokket blir slått, funksjonene nedgradere til å determinisere lesninger. Blokkere, låse ut og varsler aldri avhengig av dette budsjettet. Analytikeren kan ikke slette data, endre innstillinger, rør ved revisjonen Ledger eller gjøre et permanent forbud.
Operasjoner

Krone og automatisering

OpsIQ bruker én produktplanlegger til å kjøre e-postvalg, billettautomatisering, analyserullups, oppbevaring av AI køene, CRM arbeid, rapporter og kontaktjobb.

Produktskjerm
Krone og automatiseringEtt produkt cron oppføring gir hjerterytme; OpsIQ avgjør hvilke interne jobber som skal.Krone og automatiseringtjenerHJERTESLYKKConstellation name (optional)Hvert minuttRUNNERcron/all.phpHEALTHInnstillingerLIV ARBETSPESSONEUnified produktløperopsiq/cron/all.phpNødvendigBillett og e-postkøerKort planlagt arbeidAktivAnalytiske og retensjonIntern kadensPlanlagtKontaktabonnenterDeklarerte kronbegivenheterOmfanget1INSTALL ONE LINEKjør produktplanleggeren hvert minutt2CHECK CRON SETUPBekreft CLI hjerterytme3USE DIAGNOSTICSUndersøk sent eller mislykket arbeid
Ett produkt cron oppføring gir hjerterytme; OpsIQ avgjør hvilke interne jobber som skal.

Nødvendig produktkrone

Legg til denne enkeltlinjen i crontab for samme server og PHP-miljø som kjører OpsIQ:

OpsIQ produkt crontab oppføring
* * * * * php /path/to/opsiq/opsiq/cron/all.php >> /tmp/opsiq-cron.log 2>&1

Bytt ut /path/to/opsiq med installasjonsroten. Bruk den fulle PHP CLI-stien når verten krever en, for eksempel /usr/bin/php8.4.

Ikke bruk toppnivå /cron.php For produktarbeid. I dette lageret som løper tilhører en separat ikke-produkt tjeneste utenfor denne håndboken. OpsIQ Produktløper er opsiq/cron/all.php.

Hva den felles skemaleggeren driver

Billet og AI køer

Prosesser som skyldes automatiske replikasjoner, eskaleringer og godkjenningsarbeid i køen.

Inngående e-post

Poller konfigurerte postkasser der polling er den valgte inntaksmetoden.

Analytics og sesjoner

Samler økter og oppdatere planlagte aggregat når de er pålagt.

CRM og engasjement

Kjører score, livssyklus, arbeidsflyt, kampanje og planlagte rapporter som er aktivert.

Oppbevaring og vedlikehold

Utfører due cleanup, arkiver og utløpsarbeid.

Koblinger

Dispatches koblingskronabonnenter og polling bare for installert, aktivert og konfigurerte kontakter.

Bekreft krone

  1. Åpne Innstillinger - Cron-oppsett og bekrefte at produktløperen eksisterer.
  2. Bruk Kjør nå én gang, så bekrefte admin og polling hjerterytme oppdatering.
  3. Sjekk Diagnostikk for et sen hjerterytme, PHP CLI eller fil-sti problem.
  4. Inspeksjon /tmp/opsiq-cron.log eller loggstien du valgte når en manuell kjørefeil.

Hold kontaktens håndterere korte, idempowent og arbeidsområde-skarpe. Batch lange synkroniseringer og lagre en markør/kontrollpunkt slik at neste løp kan fortsette trygt.

🚫
Når produktet Cron stopper, tidsbaserte OpsIQ -arbeidsstopper eller blir sent selv om vanlige admin sider fortsatt kan laste.
Operasjoner

· Vertslige distribusjonsaktiviteter

En hostet OpsIQ -utføring bruker de samme produktskjermene og arbeidsflyten mens vertsoperatør administrerer serverlaget. Kommerciell registrering, planer, fakturering og kontoportal prosedyrene er utenfor denne håndboken.

Produktskjerm
Vertslig utplasseringVært driftsendringer som opprettholder infrastrukturen; det endres ikke hvordan kunder bruker OpsIQ.Vertslig utplasseringarbeidsflatePRODUCT UISameOpsIQINFRASTRUCTUREOperatørstyrtWORKSPACE DATAIsolertLIV ARBETSPESSONESøknadskjøringstidPHP, webserver og databaseAdministrertProduktkronePlanlagt av hosting operatørBekreftSikkerhetskopier og oppdateringLeverandørpolitikk og bevisAnmeldelseOpsIQ innstillingerNettsteder, AI-er og kontaktpunkterDitt team1OPERATE OPSIQ NORMALLYBruk samme produktnavigering2VERIFY SERVICE HEALTHBruk diagnostikk og statusbevis3KNOW RESPONSIBILITYSeparate produktinnstillinger fra hostingarbeid
Vært driftsendringer som opprettholder infrastrukturen; det endres ikke hvordan kunder bruker OpsIQ.

Hva hostingoperatøren vanligvis administrerer

  • Nettserver, PHP-kjøringstid og databasetjeneste TLS og lagring.
  • Den felles produktkronen og dens servernivå logger.
  • Programoppdateringer, infrastrukturovervåking og sikkerhetskopieringsprosessen definert i hostingavtalen.

For noe OpsIQ administratoren administrerer fortsatt

  • Nettsteder og widget-installasjon, AI innstillinger, kunnskapsområder, postkasser og arbeidsflyt til kundestøtte.
  • Tilgang til team, avdelinger og sikkerhetskontroller. API -nøkler, koblingselementer, automatiseringer samt innstillingene for dataoppbevaring
  • Produktverifisering gjennom diagnostikk, revisjonsloggen og kontakttestene samt reelle slutt-til-slutt kontroller.

Operasjonskontroll

Ikke anta at en kontrollert tjeneste betyr hver produktintegrasjon er sunn. Bekreft den nyeste sikkerhetskopierings- og oppbevaringspolitikken med hostingoperatøren, og bruk OpsIQ Diagnosticer etter endringer i DNS, e-post, AI leverandører, nettsider eller kontakter.

Denne delen dekker kun produktdrift. Kommersiell onboarding, abonnementer og fakturerings-og kundekontoadministrasjon forblir utenfor OpsIQ Håndbok.

Operasjoner

Selvværende OpsIQ

En selvvært OpsIQ installasjon kjører på infrastruktur du kontrollerer. Du er ansvarlig for kjøretiden, databasen TLS, produktkrone, sikkerhetskopier, oppdatering og overvåking.

Produktskjerm
SelvværtSelvværende gir infrastrukturkontroll og gjør teamet ditt ansvarlig for alle driftsavhengigheter.SelvværttjenerPHP8.4+DATABASEMySQL 5.7+SCHEDULERHvert minuttLIV ARBETSPESSONEKjøretid-utvidelserkrølle, pdo_mysql jsonNødvendigYtterligere utvidelserxml, Opensl, glidelåsNødvendigDatabase alternativMariaDB 10.3+ med InnoDBStøttetTransportHTTPS og utgående leverandør tilgangBekreft1PREPARE THE SERVERMatch løpstid krav2INSTALL AND CONFIGUREBruke en dedikert database og HTTPS3ADD PRODUCT CRONKjøre opsiq/cron/all.php
Selvværende gir infrastrukturkontroll og gjør teamet ditt ansvarlig for alle driftsavhengigheter.

Minimum programvarekontrakt

PHP

PHP 8.4 eller nyere. Nødvendige utvidelser: krøll, pdo_mysql json, xml, openssl, glidelås og gd.

Database

MySQL 5.7+ eller MariaDB 10.3+ ved hjelp av InnoDB. Opprett en dedikert database og minst priviligert applikasjonsbruker.

Nettserver

Apache eller Nginx konfigurert for OpsIQ frontkontrollør, statiske eiendeler og nødvendige omskrivinger.

HTTPS

Nødvendig for administratorøkter, widget trafikken API -nøkler, webhooks og leverandørsamtaler.

Utgående tilgang

Tillat DNS og HTTPS tilgang til AI, e-posten, kontakten og lisensendepunkter du faktisk aktiverer.

Filtilgang

Nett- og CLI-brukere må kunne lese programfiler, skrive kun til dokumenterte driftstider/lagringssteder.

Cron

Kjør OpsIQ produktplanleggeren hvert minutt med samme programkonfigurasjon og databasetilgang som webprosessen.

installasjonssekvens

  1. Last opp utgivelsen til den planlagte dokumentroten og bevare den medfølgende katalogstruktur.
  2. Opprett database- og applikasjonsbrukeren, skriv deretter inn databasen eller kanonisk URL og lisensinnstillinger.
  3. Kjør installasjons-/settstrøm og lag den første eierkontoen.
  4. Aktiver HTTPS og verifiser omdirigeringer, informasjonskapsler samt den offentlige widgeten/API stier.
  5. Legg til den felles OpsIQ produkt cron:
Selvvært produkt krone
* * * * * php /path/to/opsiq/opsiq/cron/all.php >> /tmp/opsiq-cron.log 2>&1
  1. Åpne innstillinger - Cron-oppsett og diagnostikk; kjør planleggeren én gang, og løse alle feilaktig avhengighet.
  2. Konfigurere sikkerhetskopiering, gjenoppretting av tester og loggbevaringsprosedyrer før du legger til produksjonsdata.

Oppdaterer trygt

  1. Les utgivelsesnotatene og sjekk de nødvendige PHP/utvidelser før du endrer filer.
  2. Sikkerhetskopier database- og program/oppsettfiler, så bevise backup kan gjenopprettes på en testplassering.
  3. Deponer de nye filene uten å slette installasjonsspesifikke konfigurasjon eller kjøretidsdata.
  4. Kjør den medfølgende migrasjonsprosessen og verifiser innlogging, widgetsporing, billetter, e-poster, AI, kontakter og krone.
  5. Hold den forrige utgivelsen og database backup tilgjengelig for det dokumenterte tilbakerullevinduet.
🚫
Lageret på toppnivå /cron.php Det er ikke OpsIQ produktplanlegger. Punktproduktautomatisering bare på opsiq/cron/all.php
⚠️
Ikke slett .schema_cache json som rutinemessig vedlikehold. Fjern det bare når produktet instruksjoner eksplisitt krever en skjema-kake gjenoppbygging.
Operasjoner

Produksjonsguide

Sjekkliste og beste praksis for drift OpsIQ i produksjon.

Produksjonsguide
ProduksjonsguideEn go-live checkliste: tilpasset domenet og SSL, AI trente, kontakter og krone, backups og retention samt teamroller.Sjekkliste for live-startarbeidsflateFør du går liveEgendefinert domene + SSLAI trener på innholdet dittKontakter testet · kronekjøringSikkerhetskopier planlagt · oppbevaring sattTeamroller tildelt og revurdert1GO-LIVESjekkliste før lansering2VERIFYDomene · SSL3CONFIDENTSkip når det er grønt
En go-live checklist så ingenting er savnet: domenet + SSL, utdannet AI, testet kontakter og krone, sikkerhetskopier og retensjon samt teamrollene.

Før du går live

HTTPS- konfigurert

SSL installert, HTTP omdirigerer og HSTS aktivert.

Cron løper

Sjekk via diagnostikksiden.

AI-testet

Chat som kunde. Kontroller nøyaktighet og tone

Skjermelement installert

På alle nettsider. Bekreft med Live Feed

Sikkerhetskopiering konfigurert

Automatisert daglig database og fil backups.

Feil ved logging

PHP-feilloggen er aktivert og overvåkes.

Teamet invitert

Alle medlemmer har kontoer med riktige roller.

Kunnskapsbase befolket

I det minste 5-10 artikler.

Daglig: Sjekk dashboard, klar billettkøen og spot-check AI samtaler.

Weekly: Review AI Insights, oppdater KB, sjekk teamets ytelser og gjennomgang sikkerhet.

Månedlig: Gjennomgang analyse trender, revisjonskontakter, oppdatering AI-trening og bekrefte backup.

Operasjoner

Sjekkliste før lansering

Kjør kildeportene og fullføre ekte produktkontroll før en utgivelse eller første produksjon lansering. En kommando som er tilgjengelig, viser ikke at den passerte i miljøet ditt.

Produktskjerm
UtgivelsesverifiseringUtgivelsesvisningen viser at portene må kjøre; den ikke pre-merking dem som passert.UtgivelsesverifiseringtjenerRUNTIMEPHP8.4SOURCE GATESKjør lokaltOUTCOMEBevisbasertLIV ARBETSPESSONENødvendige utvidelserSjekk før suitenPortPHP-syntaks feieAlle PHP-filerPortAI-utvikling og PHPUnitKjør når avhengigheter er tilstedePortStatisk og nettleserkontrollKjør når konfigurertPort1RUN THE CHECKSOpptak den faktiske utgangen2FIX EVERY REQUIRED FAILUREIkke erstatte bevis med antakelser3TEST THE PRODUCTSjekk ekte brukerreiser
Utgivelsesvisningen viser at portene må kjøre; den ikke pre-merking dem som passert.

Kilde og frigivelsesporter

Kjør arkivkontrollene fra installasjonsroten og hold deres komplett utdata med utgivelsespost.

Primær før-fly gate
php tools/preflight.php
Utvidet utgivelsesport
php tools/release_gate.php

Preflight sjekker PHP 8.4 løpstid og nødvendige utvidelser, utfører en PHP-syntakse feie, kjører AI evalueringsskip porten og full phpUnit suite. Kjører Phpstan / Node kontroller når disse verktøyene er installert. Den forlengete gaten inkluderer også røyk, reninstallering/schema samt nettleseren ende til slutt sjekker når miljøet deres konfigureres.

En hoppet sjekk er ikke et pass. Ta opp hvorfor det var utilgjengelig, installer manglende avhengighet eller kjøre den i riktig CI / stoging miljø før utgivelsen.

Produktkontroll

1. Autentisk og roller

Logg inn som hver tiltenkt rolle; verifisere tillatte og avslåtte sider/handlinger.

2Widget og sporing

Last inn et ekte nettsted i en privat nettleser; verifiser beacon trafikk, Live Feed-mating, besøkende og sesjon poster.

3. Chat og AI

Still representative spørsmål; verifiser kunnskapsgrunnlaging, sikkerhet og opptrappingshistorie.

4. Billetter

Opprett, tilordne, svare på, eskalere og steng gjennom alle aktiverte inntaksstier.

5. E-post

Test utgående levering og hver konfigurert innbunden postkasse eller webhook sti.

6CRM og analyse

Opprett en kontrollert kontakt/deal / konvertering og verifisere dashboards, tratter, scorer og rapporter.

7. Kontakter

Kjør tilkoblingstester, en lese- og én sikker skrive/tørrkjøring samt webhook / polling bane for hver aktivert kontakt.

8. API og webhooks

Kontroller smale omfang, rentegrenser og idempotensielle retries.

9. cron

Kjør den felles produktplanleggeren og bekreft alle nødvendige hjerterytmer i Cron Setup/Diagnostics.

10. Sikkerhet

Kontroller 2FA, CSRF/sessionskontroller, revisjonsoppføringer og nøkkelangrep.

11. Sikkerhetskopiere og gjenopprette

Gjenopprette en gjeldende sikkerhetskopi til et separat testmiljø og verifisere data og konfigurasjon.

12. Observasjon og tilbakeføring

Bekreft logger/alerts, bevar forespørsel ID-nummer og bevis tilbakerulling prosedyren.

⚠️
Deploy først etter hver nødvendig gate og forretningskritisk reise har aktuelle bevis for nøyaktig frigjøringen.
Utvikler

Web Push på tredjeparts nettsteder

Nettleser push-varsling (inkludert OpsIQ Push Campaigns) trenger en tjenestearbeider som betjenes fra SAME ORIGINA til siden.OpsIQ widget laster fra din OpsIQ utplassering, slik at et tredjeparts nettsted ikke kan registrere OpsIQ's arbeidsgiver direkte. Vert en liten fil på nettstedets eget domene for å aktivere push der. kampanjer levere gjennom WORK-støttede metoder.

Hvordan det fungerer
Web pushEn OS-stil push varsling over to leveringsmetode kort: Innebygd VAPID og Pusker Beams.Din butikDin handlevogn venter · 10% Av i dagInnebygget (VAPID)Ingen tredjepartVert én filPusher- bjelkerBruk kontoen dinVær vert for arbeideren
Web push

Hvorfor dette trengs

Browsere bare la en side registrere et tjenestearbeider fra sin egen opprinnelse. Widgeten laster kryss-origin fra din OpsIQ distribusjon, så det kan ikke installere pusharbeideren på en kundeside til du er vert for arbeideren på nettstedets opprinnelse, widget stillt hopper skyve (ingen feil eller abonnement). Du har to valg nedenfor;OpsIQ Push Campaigns publiserer gjennom begge deler.

Alternativ A · Selvvært Web Push (VAPID, ingen tredjepart)

1. Last ned arbeidstakeren fra din OpsIQ utplassering: https://YOUR-OPSIQ/opsiq/opsiq-push-sw.js

2. Last den opp til din web rot så det er tilgjengelig på https://yoursite.com/opsiq-push-sw.js. Skjermelementet Auto-detekter denne banen på sidens eget opprinnelse og registrerer det, ingen snutt endring nødvendig. (Det bruker et smalt omfang så den erstatter aldri en tjenestearbeider du allerede kjører ;)

Valgfritt: Hvis du må være vert for den på en ikke-standard sti, pek widgeten ved det Før Den er bare akseptert når den samme prosessen:

Valgfritt · Bare hvis filen ikke er på webroten
<script>window.OpsIQ=window.OpsIQ||{};window.OpsIQ.pushSwUrl="/custom/opsiq-push-sw.js";</script>

3. In OpsIQ, generate VAPID keys (Settings → Client Chat AI → Advanced → Web Push). The widget then asks visitors for notification permission and subscribes them.

Bak CDN/Cloudflare Pass på at /opsiq-push-sw.js returnerer HTTP 200 (purge cache hvis det var 404 før du lastet opp; en cache 404 vil blokkere registrering).

Alternativ B · Pusher Beams (styrt leverandør)

1. I OpsIQ innstillingene setter push-leverandøren til Pusher- bjelker og inn i dine Beams Instans-ID og Hemmelig nøkkel.

2. Vær vert for beams tjenestearbeider på nettstedets rot som /service-worker.js. Kopier https://YOUR-OPSIQ/opsiq/pusher-beams-service-worker.js, eller slå sammen denne linjen i din eksisterende rotarbeider:

Beamsarbeider, vert på https://yoursite.com/service-worker.js
importScripts("https://js.pusher.com/beams/service-worker.js");

3. Skjermelementet laster automatisk beamene. SDK og abonnerer hver besøkende til per-site interesse opsiq-site-<your-site-key>Ingen andre ledninger trengs.

Hvordan kampanjer leveres

Push Campaigns publiserer gjennom both metoder på én gang: besøkende i den selv-verte VAPID arbeider får kryptert Web Push, og gjester abonnert via pusher Beams få beamene publisering. Hver reisende er nådd gjennom det de tilmeldte seg, så du kan kjøre samme origin vapid på noen nettsteder og kryssorigin Beam på andre.

HTTPS er nødvendig for tjenestearbeidere og Web Push (lokal host er unntaket fra testing). Admin chat innboksen allerede bruker den samme Beams interessemekanisme til operatøren varsler.

Operasjoner

Feilsøking

Vanlige problemer og hvordan å fikse dem.

Generelt

Tom side+

Sjekk PHP-feillogger. Årsaker: gammelt php (nødvendig 8.4+), manglende utvidelse, DB-tilkobling mislyktes.

Dashboard viser nuller+

Sjekk: widget installert? Cron kjører? Datoområde korrekt? IP Utelukket?

AI

AI svarer ikke+

Sjekk: leverandøren konfigurert? API nøkkel gyldig (bruk Test-tilkobling)? Budsjettet utdatert? Arbeidsområde AI oppsett riktig .

AI gir feil svar+

Sjekk: kunnskapsbase oppdatert? Spør klart? Kontakt oppslag returnerer riktige data? Gjennomgang samtalen i AI-historie.

AI er langsom+

Avhengig av: leverandør API hastighet, kontekststørrelse (stor KB = mer polletter = langsommere), nettverks latens. Prøv en rasker modell.

Sporing

Widget mangler+

Sjekk: skript i sidekilde? JS feil på konsollen? CSP blokkerer? Adblocker?

Ukjent land+

GeoIP er ikke konfigurert. Bruk Cloudflare (automatisk) eller MaxMind GeoLite2-database.

Biljett

E-poster som ikke lager billetter+

Sjekk: postkasse tilkoblet? Cron kjører du? App passord endret? IMAP -innstillingene er riktige?

Auto-reply fungerer ikke+

Sjekk: aktivert? Avdeling tillatt? AI konfigurert? Cron kjører? Menneskelig svarte først?

Koblinger

Tilkobling mislyktes+

Sjekk: legitimasjon riktig? Nøkkelen utløpt. API Tilgjengelig fra serveren? Base URL Ikke sant?

Tilkoblet, men ingen data+

Sjekk: API nøkkelområde? Webhook synkronisering aktivert? Cron kjører?

Ytelse

Langsomme sider+

Sjekk: databaseytelse (SHOW PROCESSLIST), PHP-minnet (økning til 1GB), muliggjør opcache, redusere oppbevaringsperioden.

Operasjoner

Widget logger ikke besøk

Bruk denne fokuserte sjekken når widgetet lastes feil, eller Live Feed forblir tom.

Når widget logger ikke besøk, verifisere nettstedsnøkkelen, laste siden i en privat nettleser, sjekk nettleseren Network/Console-panelene for blokkerte beacon eller widgetforespurnelser, gjennomgang Innhold - Sikkerhet og annonseringsblokkere OpsIQ, og åpen diagnostikk. En synlig chat boble ikke i seg selv viser at analytics beacon ble akseptert.

Referanse

Ordliste

Definisjoner for termene som brukes i hele OpsIQ.

Handling

Noe som AI kan gjøre gjennom en kontakt eller plattform.

Agent

Et teammedlem med begrenset tilgang eller AI-agent.

BYOK

Ta med din egen nøkkel, du gir deg selv AI API -nøkkelen.

Koble til

Et plugin integrere en ekstern plattform med OpsIQ.

CSAT

Kundetilfredshet score.

Del ut

En inntektsmulighet i CRM.

Avdeling

En billettkategori for rute- og tilgangskontroll.

Eskalering

Flytte billett til en annen avdeling eller fra AI til menneske.

GeoIP

Besøkendes plassering deteksjon fra IP adresse.

Handoff

Overfører en samtale fra AI til menneske.

Identifikasjonssymbol

Signert poliks identifisere en besøkende på nettstedet.

Kunnskapsbase

Artikler som AI bruker til å svare på spørsmål.

Bly

En besøkende som viser kjøpsformål.

Lead score

0-100 tall som indikerer konverteringssannsynlighet.

Livsyklus-fasen

Hvor en kunde er: Lead, Prospect . Kunde i risikozonen Curned

Administrert AI

AI som er en del av din OpsIQ -plan.

Rørledning

Visual styret i deal-faser.

RBAC

Rollebasert tilgangskontroll.

Økt

En rekke sidevisninger innenfor et tidsgrensevindu.

Nettstedsnøkkel

Unik identifikator for en sport nettsted.

SLA

Servicenivåavtale, målrettede responstider.

Token

Enheten av AI-tekst. Grovt 4 tegn = 1 -Teen.

Stol på lag

Sikkerhetssystem som regulerer AI-autonomisitet.

Nettkroke

HTTP-tilbakekalling for hendelsesvarsling.

Element

JavaScript kode innebygd på nettstedet ditt.

Arbeidsplass

Et nettsted med egen sporing, AI, koblinger og team. Samme som "nettsted".

Referanse

Få mer hjelp

Hvis denne dokumentasjonen ikke svarer på spørsmålet ditt:

AI- administrator

Klikk "Spør OpsIQ" i admin. Har tilgang til denne dokumentasjonen og plattformdataene dine.

Støttebilletter

Inkluder: det du prøvde, hva som skjedde, hva du forventet og eventuelle feilmeldinger.

E-post

E-poststøtte med lisensnøkkelen og problembeskrivelse.

Tips for effektive støtteforespørsler

Inkluder siden

Hvilken admin-side (URL eller navn)

Ta med innstillingen

Nøyaktig å sette navn og gjeldende verdi.

Ta med feilen

Eksakt feilmelding med koder.

Ta med trinnene

Hva du gjorde, steg for skritt.

Inkluder forventet vs faktiske

Hva som skal skje mot det som skjedde.

💡
Jo mer spesifikk forespørselen din er, desto raskere blir svaret. "Det fungerer ikke" krever undersøkelse. "Klikker du på Lagre i AI-konfigurasjon gir feilkode 502" får et direkte svar.