Documentação OpsIQ

Construir, operar e extender OpsIQ.

Esta é a documentação completa para OpsIQ. Configure o produto, execute suporte, configure IA, gerencie CRM, instale o widget, construa conectores, chame o REST API, receber webhooks, pacotes de aplicativos de mercado e operar implementações auto-hospedadas.

Guia do clienteGuia de administraçãoGuia de desenvolvimentoReferência do CRMConector SDKRESTAPIAuto-alojado
Âmbito de aplicação

Âmbito deste manual

Everything OpsIQ does, in one place: how each screen works, how to connect your own systems, and how to build on top of it. Start anywhere, the sections follow the same order as the admin sidebar.

Âmbito de aplicação
Mapa da documentaçãoO manual é organizado em torno do produto OpsIQ, seguindo a mesma ordem que a barra lateral de administrador.Mapa da documentaçãoOpsIQ productAUDIENCEOperadoresCONSTRUÇÃODesenvolvedoresRUNAdministradoresCONCEITO AO LIVRO DA ESPAÇO DE TRABALHOUsar OpsIQTelas de produto e fluxos de trabalhoIncluídoExtender OpsIQConectores, APIs e widgetIncluídoOperar OpsIQSegurança, cron e implantaçãoIncluídoReferênciaPacote, contratos API e webhookIncluído1CHOOSE AUDIENCEOperador ou desenvolvedor2FOLLOW THE UIEspelho das secções OpsIQ3USE SOURCE TRUTHO estado vem da compilação
O manual é organizado em torno do produto OpsIQ, seguindo a mesma ordem que a barra lateral de administrador.
Guia de campo do Portal Studio

Use o guia de administrador e desenvolvedor dedicado para arquitetura do Portal, páginas, componentes, visualização, Central de Ajuda, identidade, SCIM, releases governados, extensões, migrações e certificação.

Abra o guia do Portal Studio

O que está aqui dentro?

Execute o produto

Cada tela do administrador: análise, chat ao vivo, tickets, CRM, base de conhecimento, Inteligência do Site, promoções e o portal do cliente. O que cada página faz, o que os números significam e o que fazer quando eles parecem errados.

Conecte seus sistemas

O widget do site, correios de e-mail, entrada e saída webhooks, e a biblioteca de conectores para plataformas como Shopify, WooCommerce, WHMCS, Zendesk, Stripe, Slack e Gmail.

Construir o seu próprio

The Connector Builder for no-code connectors, Actions & Triggers if you would rather not use connectors at all, and the REST API with every action, scope and error code.

Operar

Funções e permissões, segurança, cron, diagnósticos, backups e implantação hospedada e auto-hospedada.

Por onde começar

1
Se você executar OpsIQ dia a dia

Leia as seções da tela em ordem de barra lateral. Cada abre com o que a página é para, assim você pode parar assim que você tiver o que você precisa.

2
Se o administrar

Adicionar configurações, segurança, diagnósticos, Cron e produção. Estas são as seções que decidem se tudo o mais continua funcionando.

3
Se você está construindo uma integração

Start at Connectors, then the Connector Builder, then the REST API and webhooks. Read those in order and you will have seen every way OpsIQ can talk to another system.

💡
Duas coisas mudam o que você vê. As permissões ocultam páginas que seu papel não pode abrir, então uma seção descrita aqui pode estar faltando na sua barra lateral. Peça a um administrador para verificar seu papel. E os conectores carregam uma etiqueta de maturidade de Produção, Beta, Visualização ou Modelo; a compilação em execução e seu manifesto de conector são a autoridade sobre qual delas você tem, não esta página.
Começar aqui

What OpsIQ does for your business

OpsIQ é uma plataforma operacional completa de primeira IA-negócio. Ele substitui suas análises, chat ao vivo, helpdesk, CRM, SEO toolkit, integração middleware e plataforma desenvolvedor com um único administrador unificado onde cada ferramenta compartilha o mesmo contexto do cliente. 8-12 produtos SaaS separados, você instala OpsIQ uma vez e operar tudo a partir de um ecrã.

A plataforma
OpsIQ unified platformUm cérebro central de IA conectado ao chat ao vivo, CRM, tickets, Inteligência do Site, promoções e análises.Conversa ao vivoPromoçõesIACRMIntel do SiteBilhetesAnáliseOpsIQAI Cérebro1ONE WORKSPACECada ferramenta em um administrador2SHARED BRAINUm contexto de cliente3ANYWHERENuvem ou auto-hospedado
OpsIQ is one platform with one shared customer context, every tool feeds, and is powered by, the same AI brain.

Everything OpsIQ does · in detail

Análise de sites e inteligência do visitante

Monitoramento de visitantes em tempo real

Cada carregamento de página, clique, rolagem e evento de navegação é capturado em tempo real. Veja quem está no seu site agora mesmo, quais páginas eles estão vendo, quanto tempo eles gastam, e de onde vieram, tudo sem cookies de terceiros.

Registo e sessões de visitantes

Histórico completo de cada visitante com dispositivo, navegador, sistema operacional, país, cidade, referência, parâmetros UTM, landing page e resolução de identidade. Sessões agrupam as visualizações da página em jornadas para que você possa ver todo o caminho que um visitante toma.

Reprodução de sessão

Reprodução de linhas do tempo das sessões capturadas de visitantes. Veja exatamente o que os usuários fizeram: movimentos do mouse, cliques, rolagems, transições de páginas e interações de formulário. Use-o para diagnosticar problemas de UX, entender pontos de entrega e verificar fluxos de conversão.

Alimentos vivos para animais

Um fluxo em tempo real de atividade do visitante como acontece. Veja as visualizações da página, inícios de bate-papo, submissões de formulários e sinais de intenção atualizando a cada poucos segundos. Filtre por país, dispositivo ou referência para focar em segmentos de tráfego específicos.

Páginas superiores

Páginas classificadas por visitas, tempo de engajamento, taxa de rejeição, conversões e atividade de suporte. Identifique seu conteúdo e páginas com maior desempenho que precisam ser melhoradas.

Inteligência geográfica

Distribuição de dispositivos e navegadores, análise de origem de tráfego, rastreamento de referenciadores do motor de busca e insights de penetração no mercado.

Funil de intenção

Acompanhe sinais de intenção do visitante (privilegiando visitas de página, retornos repetidos, padrões de navegação de documentação e interações de suporte) para identificar visitantes que são propensos a comprar, churn, ou precisar de ajuda.

Experimentos A/B

Execute testes divididos em seu site diretamente de OpsIQ. Crie variantes, defina alocação de tráfego, define objetivos de conversão e meça significância estatística.

JavaScript error tracking

Capture erros do lado do cliente JavaScript do seu site automaticamente. Veja mensagens de erro, traços de pilha, navegadores afetados, contagens de frequência e quais páginas os ativam.

Registo de eventos

Cada evento rastreado (vistas de página, eventos personalizados, interações de chat, submissões de formulários, compras) em um registro pesquisável e filtrado com metadados completos.

Vendas e conversões

Acompanhe ordens, receitas, reembolsos, renovações de assinaturas e atribua conversões a fontes de tráfego, campanhas e viagens de visitantes. Painel de receita com comparação de período e análise de tendência.

Chumbo

Visitantes de alta intenção identificados por padrões de comportamento. A pontuação leva com base em visitas de página, tempo no local, frequência de retorno, interações de suporte e sinais personalizados.CRMOleoduto.

Inteligência do Site (SEO e análise de conteúdo)

Rastreios de locais

Rastreamento automatizado de todo o seu site para descobrir páginas, detectar links quebrados, encontrar meta tags ausentes, verificar texto alt imagem, validar canônico URLs, e mapear sua estrutura do site. Agendar rastreios para executar diariamente, semanalmente, ou sob demanda.

Auditoria técnica de SEO

Análise técnica abrangente: pontuação de velocidade da página, responsividade móvel, Vitais da Web Core, status do certificado SSL, cadeias de redirecionamento, detecção duplicada de conteúdo, análise de profundidade de rastreamento e validação estruturada de dados.

Auditoria de conteúdo

Avaliar cada página para a qualidade do conteúdo, contagem de palavras, pontuação de legibilidade, densidade de palavras-chave, estrutura de cabeçalhos, relação de ligação interna/externa e frescura. Identificar conteúdo fino, páginas duplicadas e lacunas de conteúdo.

Pesquisa com a tecnologia de IA

Procure semântica em todo o conteúdo do seu site. Faça perguntas de idioma natural sobre seu conteúdo e obtenha respostas sintetizadas por IA com referências de página de origem.

Monitoramento de classificação SERP

Monitore seus rankings de busca para palavras-chave alvo em todo o Google e outros motores. Acompanhe as mudanças de posição ao longo do tempo, compare com os concorrentes, e veja que páginas classificam para quais termos.

Pesquisa de palavras-chave

Descubra oportunidades de palavras-chave com base em seus dados de conteúdo, análise de concorrentes e volume de busca. Obtenha sugestões para novos tópicos de conteúdo e variações de cauda longa e metas de otimização de conteúdo.

Análise de backlink

Monitore seu perfil de link inbound. Veja quais sites se ligam a você, rastreie links novos e perdidos, analise a distribuição de texto âncora e identifique oportunidades de construção de links.

Grade de SEO local

Para empresas com locais físicos: visualize sua visibilidade de busca local em uma grade geográfica. Veja como seus rankings variam por localização, distância do seu negócio e intenção de pesquisa.

Sincronização do Perfil de Negócio do Google

Conecte seu perfil de negócios do Google para OpsIQ. Sincronize comentários, posts, perguntas e respostas, fotos e informações de negócios.OpsIQ. Responder a comentários, publicar posts e monitorar insights.

Relatórios agendados

Relatórios automatizados de SEO e análise gerados em sua agenda (diária, semanal, mensal). Os relatórios incluem mudanças de ranking, tendências de tráfego, problemas técnicos encontrados e desempenho do conteúdo.

Suporte com I. A.

Conversa de IA do cliente

IA responde perguntas de clientes em seu site 24/7 usando sua base de conhecimento, dados de plataforma conectados (ordens, contas, assinaturas) e avisos de treinamento personalizados. Suporta vários fornecedores de IA: Claude (Anthropic), GPT-4o (OpenAI), Gemini (Google) e Grok (xAI).

Assistente de IA do administrador

Um copiloto de IA dentro do seu painel de administração que ajuda você a escrever as respostas de ticket, redigir comunicações ao cliente, analisar tendências de suporte, pesquisar dados do cliente em plataformas conectadas e executar ações através do sistema de conectores.

Conhecimentos sobre IA

A IA está fundamentada em seus artigos de base de conhecimento, entradas FAQ, documentação do produto e dados da plataforma conectados. Ela não alucina. Ela responde a partir de suas informações reais de negócios ou aumenta quando incerto.

Auto- transferência para os seres humanos

Quando a IA não consegue resolver uma pergunta, detecta frustração ou o cliente pede um humano, ela automaticamente entrega à sua equipe com contexto de conversação completo. Reversão automática configurável do declínio/tempo-out para IA.

AI — Sistemas de formação

Escreva instruções separadas para IA voltada para o cliente e AI voltada para administrador. Tonal de controle, limites, regras de escalada, tópicos proibidos e comportamento específico do negócio.

História e auditoria da IA

Cada conversação com IA é registrada com detalhes completos de solicitação/resposta, uso de token, rastreamento de custos, provedor usado e versão do modelo.

Insights sobre IA

Análise automatizada dos padrões de conversação com IA. Veja perguntas comuns, taxas de resolução, frequência de transferência, satisfação do cliente por tópico e áreas onde a IA precisa de um melhor treinamento.

Configuração por IA de espaço de trabalho

Cada site/espaço de trabalho conectado pode usar seu próprio fornecedor de IA, modelo, temperatura, orçamento token e prompts de treinamento. Uma empresa SaaS pode usar Claude para o principal produto e GPT-4o para uma marca secundária.

IA gerenciada e BYOK

Dois modos de IA: IA gerenciada (incluída no seu plano, não API chave necessária) ou trazer sua própria chave (use a sua própria OpenAI/Anthropic/Google/xAI API chave para o controle total sobre a seleção e os custos do modelo). Ambos são de primeira classe, cada recurso funciona com qualquer um dos modos.

Orçamento de I. A. e controlo dos custos

Defina orçamentos mensais de fichas, limites por conversação e alertas de baixo equilíbrio. Acompanhe os gastos por provedor, por espaço de trabalho e por conversa. Evite custos em fuga com tetos rígidos.

Bilhetes e helpdesk

Sistema de tickets nativos

Suporte completo com departamentos, prioridades (low/medium/ high/urgent), status, rastreamento SLA, notas internas, respostas ao cliente, anexos de arquivos e conversas threaded. Nenhum helpdesk externo necessário.

Triagem de IA e resposta automática

A IA triage automaticamente os tickets de entrada por departamento e prioridade. Habilite a resposta automática para departamentos seguros. A IA rascunha e envia uma resposta após um atraso configurável (padrão: 2 minutes) para que os humanos possam intervir primeiro.

Ingestão por e- mail

Conecte uma caixa de correio (Gmail, IMAP ou provedor-específico) para criar automaticamente tickets a partir de e-mails de entrada. Respostas aos e-mail de notificação de ticket atualizam o tópico do ticket.

Portal de ticket incorporado

Incorpore um portal de tickets voltado para o cliente em seu site. Os clientes podem enviar tickets, visualizar seu histórico, responder a tickets abertos e verificar o status, todos marcados com seu design.

Conexão de tickets

Mesclar tickets duplicados em um único tópico. Mergulhe tickets mostrar [Mercado] na linha de assunto. Todo o histórico de conversa está preservado no ticket sobrevivente.

Voltar para IA

Depois que um agente humano assumir um ticket, use "Retorne à IA" para deixar a IA retomar a resposta automática nesse ticket. Útil quando a porção requerida pelo ser humano for resolvida, mas o cliente tiver perguntas de acompanhamento que a IA possa lidar.

Co-piloto da caixa de entrada

Gerenciamento de tickets assistido por IA na área de entrada. O copilot sugere respostas, resume histórico de conversas, recomenda atribuições de prioridade/departamento e pode executar ações em plataformas conectadas.

Chat e suporte em tempo real

Caixa de entrada do bate- papo

O chat do cliente em tempo real foi gerenciado a partir de uma caixa de entrada unificada. Veja todas as conversas ativas, identidade do cliente, histórico de conversação e sugestões de IA. Vários agentes podem colaborar em uma conversa.

Regras de chat proativas

Trigger chat messages based on visitor behavior: time on page, specific URL visited, scroll depth, return visit count, exit intent, or custom events. Example: show a help message after 60 seconds on the pricing page.

Elemento de bate- papo

Um widget de chat personalizável incorporado em seu site. Suporta bate-papo IA, chat ao vivo agente, submissão de tickets, pesquisa base de conhecimento e identidade do visitante. Responsivo, acessível e brandable.

Inquéritos da CSAT

Colete avaliações de satisfação dos clientes após interações de chat e ticket. Desenhe pesquisas com suas próprias perguntas, escalas de classificação e avisos de acompanhamento.

Pesquisa de e-mail pós-conferência

Após o término de um chat, os visitantes com um email conhecido podem receber um e-mail marcado com um resumo da IA do que foi tratado e um clique em "Foi fácil?" Sim/Não. Uma vez por thread, links assinados para uso único, cada envio registrado, e o resultado chega na página de Feedback como seu próprio sinal ao lado das estrelas no chat.

Ciclo de identificação do feedback

Cada item de feedback que carrega uma pessoa mostra-os: nome, e-mail, um clique para a sua jornada completa do cliente e contato CRM, e um clique Email ou respostas de AI-draft fundamentadas em seu histórico real.

A escrever o IA

Assistente de escrita de IA separado para compor rascunhos de email, respostas de tickets, anúncios e comunicações do cliente. Usa seu próprio prompt (não o cérebro de bate-papo) para escrever negócios profissionais.

Primeiro CRM da IA

Centro de Comando CRM

Uma única tela mostrando todo o seu estado de CRM: valor do pipeline, velocidade de negociação, próximas tarefas, negócios em risco, atividade do agente e recomendações de IA. A página inicial do CRM é o seu ponto de partida diário.

Contactos e empresas

Gerencie contatos com clientes com perfis completos: nome, e-mail, telefone, empresa, tags, fase do ciclo de vida, histórico de conversas, histórico do ticket, histórico da compra e campos personalizados.

Ofertas e placa de oleodutos

Visual Kanban-estilo placa de negócio com etapas personalizáveis. Arraste as ofertas entre estágios, definir valores, atribuir proprietários, rastrear datas de encerramento e ver o valor do pipeline em cada estágio. Vários pipeoleamentos suportados.

AI treining negócio

A IA analisa cada negócio e fornece o coaching: sinais de risco (se foi silencioso, competidor mencionado, preocupações orçamentárias), recomendações de próxima melhor ação, probabilidade de vitória e sugestão de tempo de seguimento.

Previsão e relatórios

Previsão de receitas com base em dados do gasoduto, taxas de fechamento histórico e velocidade de negociação. Os relatórios incluem pipeline por fase, por proprietário, por fonte, taxas da conversão, tamanho médio do negócio, e duração do ciclo de vendas.

Agente de análise (SDR)

Prospecção com tecnologia de IA que identifica potenciais clientes a partir de seus dados de visitantes, sinais de liderança e atividade da plataforma conectada. Sugere metas de alcance, rascunhos de mensagens iniciais e qualidade de líder de pontuação.

Sequências de seguimento

Sequências de acompanhamento automatizadas em várias etapas: email, espera, e-mail, verificação da resposta, escalonamento. Defina sequências para novos leads, ofertas paradas, check-ins pós-compra e campanhas de reinício.

Ciclo de vida e retenção

Acompanhe as etapas do ciclo de vida do cliente (líder, perspectiva, cliente, churned) com transições automatizadas. O agente de retenção monitora sinais de churn e sugere intervenções.

Agente responsável pela gestão dos dados

Agente de IA que limpa e enriquece continuamente seus dados de CRM: deduplica contatos, preenche campos em falta, valida e-mails, padroniza nomes de empresas e sinaliza registros obsoletos.

Construir o meu CRM

Configuração de CRM em linguagem natural: diga à IA como é o seu processo de vendas e ele constrói suas etapas de pipeline, campos personalizados, modelos de negociação e regras de automação.

Controlo de saúde do CRM

Auditoria automatizada da qualidade dos dados de CRM: contatos duplicados, ofertas sem próximos passos, pipelines obsoletos, informações de contato ausentes e pontuação na completude dos dados.

Mostrador de Confiança

Controle de autonomia em três níveis para cada agente de IA CRM: Piloto automático (AI atua independentemente), Copilot (AI sugere, humano aprova) e Manual (AI observa apenas). Defina o mostrador por agente, por tipo de ação e por limiar de valor do negócio.

Quatro agentes de IA

O CRM executa quatro agentes especializados de IA: Steward (qualidade dos dados), SDR (prospecção), Retenção (prevenção do churn) e Analista (relatório e insights).

Conectores e integrações

Conectores pré-conectados

Conectores prontos para utilização Shopify, WooCommerce, BigCommerce, Magento 2, PrestaShop, OpenCart, osCommerce, WordPress, WHMCS, Zendesk, Stripe, Amazon SES, Postmark, Reenviar, SendGrid, Mailgun, Gmail, IMAP, Slack e Google Business Profile. Cada conector traz ações de IA específicas da plataforma, conhecimento e sincronização de dados.

Construtor de Conectores

Conectar conectores personalizados para qualquer plataforma, sem código, com IA ou código completo. O construtor suporta REST e GraphQL APIs, OAuth fluxo de código de autorização, registro automático do webhook com Stripe e esquemas de assinatura simples, paginação (offset, página, cursor e link-header), transformação de lista/erro, contexto multi-action e embalagem de mercado.

Autorização de conectores assistidos por IA

O ConnectorBuilderAI ajuda você a construir conectores: descrever o que você quer e sugere ações, escrever manipuladores de requisição e mapas API. Lida com autenticação, paginação e manipulação de erros automaticamente.

OAuth flow for any connector

In- app genérico OAuth fluxo de autorização que funciona com qualquer conector. Suporte PKCE, gerenciamento de estado do site-escoberto, atualização automática do token.OAuth parâmetros e OpsIQ lida com o fluxo.

Autocarros de capacidade (extensão em plataforma)

Os conectores não apenas adicionam ações de plataforma. Eles podem alimentar recursos do núcleo através da capacidade "buses". Um conector declara uma capacidade (calendar, enriquecimento, esign em CRM; local_listing, rank_data em Site Intelligence; web_analytics em Analytics; payment_provider em Payments; email_sync em Mailbox; video_meeting em Comms) e implementa seu pequeno conjunto de métodos; OpsIQ descobre-o através de CapabilityRegistry e enfiá-lo na UI, o Cliente 360 linha do tempo, e as ações de IA. Vários conectores podem oferecer a mesma capacidade sem bloqueio. Veja conectores/PLATFORM_CONNECTORS.md.

Nível pré-instalado vs marketplace

Os conectores pré-instalados (conectores/) são ativos no registro fora da caixa, mantidos inclinados para apenas a referência sem chave e o provedor mais usado por capacidade (por exemplo, Google Calendar,Gmail, Google Business Profile). Conectores de mercado (marketplace_connectors/) são detectáveis mas inertes até serem instalados, por exemplo, Microsoft365Calendário, Outlook, DocuSign,Stripe, GA4, SerpApi, Zoom. Cada ponte tem uma lista de mercado para que a UI e a IA possam alertar "instalar do mercado" (notificar-para-instalar) quando uma capacidade não tem provedor pronto, nunca um botão quebrado.

Mercado de ligação

Publique seus conectores para o OpsIQ Mercado. Conectores de pacotes com perfil.json, conhecimento.json, workflow_recipes.json, e arquivos assinados. Marketplace suporta conectores gratuitos e pagos com faturamento multi-fonte.

Assinatura do conector

Todos os conectores são criptograficamente assinados para verificação da integridade. A assinatura é verificada no momento de instalação. Use a ferramenta resign_all_connectors para re-assinar após as atualizações.

SmartLookup

Sistema declarativo de fuzzy-matching para ações do conector. OpsIQ Exemplo: find_country("germ") corresponde a Alemanha com o valor de, enquanto que find_locality("location") coincide com. 88.9% Confiança.

Contratos de acção

A Generalidade OpsIQ API publica 1,312 ações nomeadas, enquanto os pacotes de conectores declaram suas próprias ações de fornecedores com parâmetros digitados, requisitos de autenticação, regras de paginação e respostas transformam através do ActionExecutor unificado.

Receitas do conector

Receitas de fluxo de trabalho pré-construídas que combinam várias ações de conectores em fluxos de trabalho de negócios comuns. Exemplo: "Quando uma nova ordem vem em Shopify, crie um ticket, atualize o CRM e envie uma notificação Slack."

Sincronização do Conhecimento

Os conectores declaram tópicos de conhecimento que sincronizam com a base de conhecimentos da IA. Artigos de ajuda específicos para plataformas, guias de configuração e etapas de solução de problemas estão automaticamente disponíveis para a IA sem entrada de conhecimento manual.

Plataforma de desenvolvimento

RESTAPI

Um nome JSON API abrange cada administrador registado JSON operação, comAPI- autenticação chave, isolamento de espaço de trabalho, escopos, limitação de taxa, idempotent escreve, OpenAPI, e uma coleção gerada Postman.

Webhooks

Webhooks de saída para todos os eventos principais: pedidos, faturas, assinaturas, tickets, bate-papo, leads, registros de usuário e abandono do carrinho. Entrega assincronizada via fila de trabalho, reteste exponencial backoff, proteção SSRF e auto-desativa após falhas consecutivas 15.

Assinatura do Webhook

Cada webhook de saída é assinado com HMAC-SHA256. Verifique assinaturas em sua extremidade receptora para garantir a autenticidade do webhooc. Event_id estável para processamento idempotent.

Widget SDK_

JavaScript SDK para o widget de rastreamento com resolução de identidade, acompanhamento personalizado de eventos, controle de chat programático e configuração específica da página. Instale receitas para React, Vue, Next.js, WordPress, Shopify, e estático HTML.

Plug-ins e SDKs

SDKs e plugins do lado do servidor para frameworks comuns. WordPress plugin, WHMCS módulo e bibliotecas de integração genéricas PHP/Node.js.

Eventos API

Push custom events into OpsIQ from your backend: purchases, signups, feature usage, errors, or any business event. Events appear in the visitor timeline and feed into analytics and AI context.

Livro de receitas dos gatilhos

Crie fluxos de trabalho automatizados desencadeados por eventos: novo ticket, início do chat, identificação do visitante, alteração da fase do acordo ou evento personalizado. Ativações executam ações de conectores, enviam webhooks, atualizam registros ou notificam sua equipe.

API builder

Visual API e webhook builder dentro do administrador. Configure endpoints, solicitações de teste, inspecione respostas e integrações de depuração sem sair OpsIQ.

Equipa e administração

Controlo de acesso baseado em funções

Três funções: Proprietário (acesso completo, faturamento, zona de perigo), Administrador completo (todas as operações exceto faturamento e zona de risco) e Agente (apenas departamentos atribuídos, sem acesso a configurações). Todas as páginas sensíveis são difíceis de definir por função.

Painel de desempenho da equipe

Painel proprietário e completo só para administração mostrando tempo de resolução, distribuição de carga de trabalho, profundidade do manuseio, quebra de canal, análise de tendência, conformidade com SLA, CSAT por agente, taxas de reabertura, rolagem de equipe e horas mais ocupadas. Atualizado em tempo real.

Presença de administrador e rastreamento online

Widget em tempo real who-is-online na navegação de administrador. Detecção de presença baseada no batimento cardíaco (60- segundo ping, 300- segunda extensão, auto- prune após 120 dias). Veja quais administradores estão atualmente ativos e em quais páginas.

Configuração por espaço de trabalho

Cada site conectado (espaço de trabalho) pode ter sua própria configuração de IA, configurações de conectores, departamentos de tickets, branding e regras operacionais.

Gestão multi-site

Gerencie vários sites de um administrador OpsIQ. Cada site tem seu próprio trecho de rastreamento, dados do visitante e configuração. Alterne entre sites da navegação do administrador.

Sistema de modelos de e- mail

Modelos de e-mail dirigidos por registro para todas as comunicações automatizadas: notificações de tickets, transcrições de chat, emails de boas vindas, resets de senhas e alertas do sistema. HTML modelos com visualização ao vivo, chips variáveis ({{customer_name}}, {{ticket_id}}), e controle global de layout.

Importação e exportação

Importar contatos, tickets e artigos de conhecimento de CSV/JSON. Exportar dados de visitantes, relatórios analíticos e registros de CRM. Portabilidade de dados para migração entre sistemas.

Segurança, conformidade e operações

Empresa SSO

OIDC (OpenID Connect) single sign-on com tempo de execução integral: descoberta, autorização, retorno de chamada, verificação de assinatura JWKS, usuárioinfo, lista de domínios, provisionamento de JIT e guardas de status. SAML suporte à configuração.

GDPR e conformidade de dados

Built-in DSAR (Data Subject Access Request) manipulação: exportar e excluir dados do cliente em todos os sistemas. Apagamento de dados de nível de contato cobrindo sessões, tickets, chats, registros de CRM e registros de e-mail. Políticas de gerenciamento e retenção de consentimento.

IP blocking and brute-force protection

Específico do bloco IPs ou varia de acessar seu site ou administrador. Bloqueio automático após as tentativas de login configuráveis falhou.IP, timestamp e agente de usuário.

HSTS e cabeçalhos de segurança

Segurança de Transporte Estrita HTTP, cabeçalhos Permissões-Política e configuração segura de cookies. Implementações auto- hospedadas podem adicionar cabeçalhos CSP através da configuração do servidor.

Endurecimento do gancho de rede para saída

SSRF guard bloqueia webhooks para dados privados/metadados IP intervalos. A entrega do Async impede que os terminais lentos bloqueiem a sua aplicação. 15 falhas consecutivas impedem o desperdício de recursos em terminais mortos.

Isolamento do espaço de trabalho

O isolamento restrito de dados entre espaços de trabalho. Visitantes, tickets, chats, registros de CRM e conversas de IA são abordados em seu espaço de trabalho e os vazamentos de dados no espaço de trabalhos são evitados na camada de consulta.

Gestão do ciclo de facturação

Suporte para ciclos de faturamento mensal, trimestral, semestral, anual, bienal e vitalício. Normalização da moeda para gateways multimoedas. Conversão FX sobre recibo de pagamento para relatórios precisos de receita.

Automação Cron e agendada

Sistema de cronização integrado para tarefas programadas: geração de relatórios, limpeza de dados, renovações de assinatura, atualizações de treinamento de IA, sincronia de conectores e retries webhook. Diagnósticos de saúde com indicadores de alerta.

Políticas de conservação de dados

Configure o tempo que as sessões de visitantes, transcrições de chat, histórico de conversas com IA e registros de eventos são mantidos. Limpeza automática de dados envelhecidos para gerenciar o armazenamento e cumprir com as políticas de retenção.

Diagnósticos e saúde

Painel de saúde do sistema mostrando o status cron, conectividade de banco de dados, estado do provedor de IA, saúde do conector, taxas de entrega webhook e uso de armazenamento. Avisos para problemas de configuração e gargalos de desempenho.

Who OpsIQ is for

Lojas de comércio electrónico

Armazenagens

Acompanhe todos os visitantes desde a aterragem até à compra. Deixe que a IA responda "Onde está o meu pedido?" usando live Shopify/WooCommerce Dados /BigCommerce. Gerencie tickets de suporte com resposta automática IA. Execute um pipeline de negócio para o atacado e B2B leads. Atribua receita a fontes de tráfego e campanhas. Monitore o abandono do carrinho com fluxos de trabalho de recuperação.

SaaS e empresas de software

Software como serviço

Monitore as inscrições de teste e a adoção de recursos com replay de sessão. Acompanhe quais páginas de documentação converter. Automatize o suporte com IA fundamentada em seu API docs. Gerencie negócios de receita e expansão de assinatura no CRM. Conecte sua plataforma de faturamento (Stripe, WHMCS) para rastreamento MRR em tempo real. Use o agente de ciclo de vida CRM para detectar e prevenir churn.

Agências e freelancers

Agência

Ofereça análises de branco e portais de suporte aos clientes. Acompanhe os leads através de vários sites de clientes de um administrador. Use o pipeline CRM para gerenciar prospects e lead de projeto. Crie conectores personalizados para plataformas de clientes usando o Connector Builder. Gere relatórios de SEO com a inteligência do site. Revenda conectores de mercado como serviços de valor agregado.

Hospedagem e infraestrutura

Hospedagem

Profundidade WHMCS integração com 80+ AI ações para pesquisa de pedidos, gestão de serviços, DNS, e provisionamento. Resposta automática para perguntas comuns de hospedagem usando artigos de base de conhecimento. Acompanhe o engajamento da página do servidor. Gerencie tickets de suporte técnico com triagem IA. Use a escada de ciclo de faturamento para planos de hospedagem mensais ao longo da vida útil.

Empresas de apoio pesado

Suporte

Deflexão 40-70% Reduza o número de perguntas repetitivas com bate-papo baseado em IA na sua base de conhecimento. Roteie tickets para o departamento certo com triagem por IA. Acompanhe o desempenho da equipe com tempos de resolução, conformidade com SLA e CSAT por agente.

Equipes de marketing e SEO

Comercialização

Suíte de Inteligência do Site completo: rastreamentos, auditorias técnicas de SEO, análise de conteúdo, rastreamento de classificação SERP, pesquisa de palavras-chave, monitoramento de backlinks e grade local de SEO. Gerenciamento de perfil de negócios Google. Relatórios agendados para clientes em branco. Teste A/B incorporado no widget de rastreamento. Atribuição de campanha em todos os canais.

Fundadores Solo e equipes pequenas

Iniciações

Comece com apenas o acompanhamento e chat, grátis para adicionar. Depois adicione tickets quando você receber o volume de suporte. Ligue o CRM quando começar a vender. Conecte plataformas enquanto as adota. OpsIQ escalas de uma pessoa fazendo tudo para um 50-person operations team with RBAC, departamentos e acompanhamento de desempenho por agente.

Empresa e multi-marca

Empresarial

Empresa SSO com OIDC para autenticação centralizada. Isolamento multi-espaço de trabalho para marcas ou divisões separadas. Configuração de IA por espaço de trabalho com diferentes fornecedores e modelos. Desenvolvimento de conectores personalizados com distribuição de mercado. GDPR ferramentas de conformidade e políticas de retenção de dados.

O que OpsIQ substitui

Google Analytics + Hotjar + Plausível

Análise completa do site com monitoramento de visitantes, repetição de sessões, rankings de páginas, inteligência geográfica, funis de intenção, atribuição de conversão, eventos, experimentos A/B e rastreamento de erros JS, tudo em uma plataforma.

Intercomunicador + Drift + Tidio

Conversa de clientes com tecnologia de IA com base em conhecimento, suporte a IA multifornecedor, transferência automática para humanos, regras de chat proativas, histórico de conversas, pesquisas CSAT e criação de tickets do chat.

Zendesk + Freshdesk + Scout de ajuda

Sistema de tickets nativos com departamentos, prioridades, triagem SLA, IA, resposta automática com atraso configurável, ingestão de e-mail, incorporação de ticket, mesclagem de ticket e copilot na caixa de entrada e Retorno à capacidade de IA.

HubSpot + Pipedrive + Salesforce

AI-primeiro CRM com quatro agentes especializados de IA (Steward, SDR, Retention, Analyst), Controle de autonomia do Trust Dial, placa de oleoduto, treinamento de negócios, previsão, sequências, gerenciamento de ciclo de vida e configuração de CRM linguagem natural.

Ahrefs + SEMrush + Moz

Inteligência do site com rastreamentos automatizados, auditorias técnicas de SEO, análise de conteúdo, pesquisa de IA, rastreamento de classificação SERP, pesquisa por palavras-chave, análise backlink, grade local de SEO e relatórios de white-label agendados.

Zapier + Make + middleware personalizado

Conector SDK com 25+ conectores pré-construídos, Conector Builder (sem código/AI assistido/código completo), OAuth fluxo, auto-registro webhook, um grande catálogo de definições de ação de conectores que se tornam executáveis apenas quando o conector relevante é instalado, habilitado, configurado e validado, SmartLookup, marketplace e pacotes assinados.

Gestor de Perfis de Empresas do Google

Conector GBP completo: gestão de revisão, publicação de posts, gerenciamento de Q&A, uploads de fotos, sincronização de informações de negócios, rastreamento de insights e respostas de avaliação com IA, tudo a partir de dentro OpsIQ.

Ferramentas de modelo de e- mail separadas

Modelos de email guiados por registro com editor visual, visualização ao vivo, chips variáveis, controle global de layout e personalização por evento para todas as comunicações automatizadas.

Painéis de gestão de equipas

Desempenho incorporado da equipe: tempo de resolução, carga de trabalho, conformidade com SLA, CSAT por agente, taxas de reabertura, horas mais ocupadas, rastreamento em tempo real e avarias por departamento.

GDPR compliance tools

Manipulação nativa DSAR, apagamento de dados em todos os sistemas, gerenciamento de consentimentos, políticas de retenção e trilhas de auditoria, incorporadas na plataforma, não travadas.

Duas edições

Implementação hospedada

OpsIQ é executado em infraestrutura gerenciada. A operação do produto é a mesma; infraestrutura, atualizações e backups são manipulados pelo operador de hospedagem.OpsIQ tempo de execução em vez de fluxos de marketing ou contas comerciais.

Módulo auto- hospedado

Instalar OpsIQ em seu próprio servidor para controle total de dados, marcas, atualizações e integrações. 8.4+, MySQL 5.7+ ou MariaDB 10.3+, HTTPS e o OpsIQ cron unificado. Suporta WHMCS integração como um módulo addon. Soberania de dados completa.

Ordem de leitura recomendada

1
Início rápido

Siga o guia de configuração 30-minute para obter rastreamento, bate-papo e IA básica trabalhando em seu site.

2
Painel e análise

Saiba como ler os dados do visitante, configurar a repetição da sessão, identificar leads e entender padrões de tráfego.

3
Inteligência do Site

Execute seu primeiro SEO crawl, verifique sua saúde técnica e configure o rastreamento de classificação SERP para suas palavras-chave alvo.

4
Bilhetes e suporte

Configure departamentos, configure resposta automática com IA, conecte a ingestão de email e treine sua IA para lidar com perguntas comuns.

5
CRM

Organize contatos, construa seu pipeline, configure os agentes de IA, defina níveis de discagem confiável e deixe que a IA treine seus negócios.

6
Conectores e ferramentas de desenvolvimento

Conecte sua plataforma de e-commerce/billing, crie conectores personalizados, configure webhooks e integre através do REST API.

💡
Novo para OpsIQ? Comece com o guia de Início Rápido abaixo. Você pode ter rastreamento e bate-papo de IA básico rodando em baixo 30 minutos.
Começar aqui

Início rápido em 30 minutos

Siga estes passos para obter OpsIQ correr. Cada passo é construído no anterior. No final, você terá o acompanhamento de visitantes, o chat com IA e suporte básico ao ticket.

Configuração
Lista de verificação do início rápidoUma lista de verificação de configuração guiada mostrando widget instalar, conexão de plataforma, treinamento de IA, convite da equipe e go-live, com uma barra de progresso 60.ComeçarsetupInstalar o elemento OpsIQFeitoConectar uma plataforma (WHMCS, Shopify...)FeitoTreine sua IA sobre seu conteúdoFeitoConvide a sua equipaVerifique e vá em directo.Configurar o progresso3 de 5 · 60%1STEP 1Instalar o elemento2STEP 2Ligar a IA do & comboio3STEP 3Convidar & ir ao vivo
O caminho 30-minute: instalar o widget, conectar uma plataforma, treinar sua IA, convidar a equipe e então ir ao vivo.

A configuração 30-minute

1
Activar a sua licença

Digite sua chave de licença no administrador OpsIQ. Vá para Configurações, insira a chave de licenciamento fornecida para esta instalação e clique em Ativar. Você deve ver um emblema "Ativo" verde.

2
Definir a sua identidade de negócio

Acesse Configurações e preencha seu nome de empresa, indústria, fuso horário, moeda padrão e horas de suporte. Essas informações são usadas pela IA ao responder às perguntas dos clientes e por análises para relatórios com tempo-consciente.

3
Escolha um fornecedor de IA

Vá para a configuração da IA e selecione seu provedor. Opções: Claude (Anthropic), GPT-4o (OpenAI), Gemini (Google) ou Grok (xAI). API chave se usando sua própria chave, ou usar AI gerenciada se disponível em seu plano. Clique em "Teste conexão" para verificar.

4
Instalar o elemento de acompanhamento

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
Conecte sua plataforma

Se utilizar Shopify, WooCommerce, WHMCS, ou outra plataforma suportada, vá até Conectores, encontre sua plataforma, insira credenciais e clique em Test Connection. Isso dá acesso de IA aos dados de pedidos, perfis de clientes e contexto de suporte.

6
Convide a sua equipa

Vá para a Equipe, clique em Convidar, digite seu e-mail e função (Proprietário, Administrador Pleno ou Agente). Os agentes só podem acessar departamentos que você atribui. Proprietários e administradores completos ver tudo.

O caminho mais rápido possível (5 minutos)

Passo 1: Instalar widget

Copie o trecho de Sites conectados e cole-o em seu site. Isso lhe dá rastreamento imediatamente.

Passo 2: Habilitar IA

Vá para a configuração de IA, escolha um provedor, digite sua chave e salve. O chat de IA está ativo agora em seu site.

Feito

Agora você tem o rastreamento de visitantes e o chat de IA. Você pode adicionar tickets, CRM e conectores mais tarde.

Dia 2: Torne-o útil

Adicionar conhecimento

Ir para a base de conhecimento e adicionar 5-10 artigos sobre suas perguntas mais comuns. A IA usa estes para responder aos clientes com precisão.

Criar departamentos

Vá para Tickets e crie pelo menos 2 departamentos (por exemplo, "Vendas" e "Suporte"). Atribua membros da equipe a cada um.

Escreva o seu alerta de IA

Vá para o treinamento de IA e escreva um prompt de IA do cliente que descreve suas regras de negócio, tom e escalada.

Testa uma conversa

Abra o seu site em um navegador privado e converse com a IA como cliente. Verifique se as respostas são precisas e tom está certo.

Semana 1: Compilar as suas operações

Ligar o e- mail

Configure uma caixa de correio (Gmail, IMAP ou um conector do provedor) para que os e-mails do cliente criem automaticamente tickets.

Configurar a resposta automática

Habilite a resposta automática do ticket para departamentos seguros. Defina um atraso de 2-minute para que os humanos possam intervir primeiro.

Análise de revisão

Verifique o Dashboard diariamente. Veja a contagem de visitantes, taxa de rejeição, páginas de topo e vendas se o rastreamento estiver conectado.

Iniciar o seu CRM

Abra o CRM de IA e deixe OpsIQ importar contatos de suas plataformas conectadas. Revise o tabuleiro de tubulação.

Mês 1: Otimizar

Rever o histórico de IA

Verifique o histórico de IA semanalmente. Procure respostas erradas, perguntas perdidas e oportunidades para adicionar conhecimento.

Adicionar regras proativas

Crie uma regra: se um visitante estiver na página de preços para 60+ segundos, mostre uma mensagem de chat perguntando se ele precisa de ajuda.

Construir um conector

Se você usar uma plataforma que não tenha um conector embutido, use o Connector Builder para criar uma.

Configurar os Webhooks

Connect OpsIQ to your internal tools using outbound webhooks for ticket, chat, and sales events.

Posso saltar a IA e usar o rastreamento?+

Sim. O provedor de IA é opcional. OpsIQ funciona como uma plataforma de análise e ticketing pura sem IA. Você pode ativar IA mais tarde quando estiver pronto.

Posso pular conectores e adicioná-los mais tarde?+

Sim. Os conectores enriquecem a IA com dados específicos da plataforma, mas OpsIQ funciona sem eles. Comece com o rastreamento e chat, e depois conecte plataformas quando necessário.

E se eu ainda não tiver um site?+

You can still use OpsIQ for tickets, CRM, and team collaboration. The tracking widget is optional. Add it when your website is ready.

Como saber se o widget está instalado corretamente?+

Visite seu site em um navegador privado/incógnito. OpsIQ Feed ao vivo. Você deve ver sua visita aparecer dentro 15 Se não, verifique: (1) é o trecho colado corretamente, (2) é a chave do site correta, (3) são bloqueadores de anúncios ou cabeçalhos CSP que bloqueiam o script.

Começar aqui

Mapa completo do produto

OpsIQ não é uma característica. É um administrador operador, um widget de site, uma camada de suporte IA, um sistema ticket/helpdesk, um CRM completo com quatro agentes de IA, uma suíte de Inteligência do Site, uma plataforma de conectores com marketplace e uma superfície desenvolvedora. Aqui está cada componente que contém.

Administrador do operador

Painel, alimentação ao vivo, registro de visitantes, sessões, replay de sessão, páginas superiores, geo inteligência, funil intenção, log de eventos, experimentos A/B, rastreamento de erros JS, vendas e conversões, leads, CRM AI (centro de comando, contatos, empresas, ofertas, placa de pipeline, coaching de negócio, previsão, prospecção, sequências, ciclo de vida, administrador de dados, Construir meu CRM, CRM config, CRM saúde, CRM API), tickets, chat inbox, regras proativas, pesquisas CSAT, rascunhos de email, caixas de correio, configuração de IA, treinamento de IA , histórico de IA. Insights de IA e conhecimento, conectores, Connector Builder, marketplace, sites conectados, gerenciamento de equipe, desempenho da equipe, configurações, diagnósticos e licença.

Superfícies voltadas para o cliente

Widget de rastreamento do site (analytics beacon + chat + ticket embed + pesquisa base de conhecimento), chat cliente IA, portal de submissão de tickets, manipulação de token de identidade de visitante, uploads de arquivos, widget de pesquisa CSAT e centro de ajuda voltado para o cliente.

Primeiro CRM da IA

Centro de comando, contatos, empresas, acordos, placa de pipeline com arrastar-e-descarte, coaching negócio IA (sinais de risco, próxima melhor ação, probabilidade de vitória), previsão de receita, agente prospecção (SDR), sequências de acompanhamento automatizadas, ciclo de vida e gerenciamento de retenção, agente responsável por dados (dedup, enriquecer, validar), Construir meu CRM (setup da linguagem natural), configuração CRM, verificação de saúde CRM, Dial de confiança (Autopilot/Copilot /Manual por agente), quatro agentes especializados (Steward, SDR, Retention, Analyst) e CRM API com webhooks.

Conjunto de Inteligência do Site

Rastreio automático do site, auditoria técnica SEO (velocidade, celular, Vitais Web Core, SSL, redirecionamentos, dados estruturados), auditoria de conteúdo (contagem de palavras, legibilidade, densidade de palavra-chave, estrutura de cabeçalho), pesquisa semântica com IA, rastreamento de classificação SERP entre motores, pesquisa de palavras-chave com pontuação de oportunidade, análise e monitoramento de backlinks, visualização local da rede SEO, sincronização do perfil de negócios do Google (reviews, posts, Q&A, fotos, insights), relatórios agendados (diário/semanal/mensal) e white-label PDF produção para as agências.

IA e automação

Conversa de IA do cliente (multi-fornecedor: Claude, GPT-4o, Gemini, Grok), administrador AI assistente, conhecimento de IA aterramento, auto-handoff com configurável reverte, por espaço de trabalho configuração de IA, gestão de IA e BYOK modos, orçamentos de token e controles de custos, histórico de IA trilha de auditoria, análise de insights de IA, triagem de ticket AI, resposta automática do ticket com atraso, escrita de IA (prompt separado), e co-piloto da caixa de entrada administrador.

Conectores e integrações

25+ conectores pré-construídos (Shopify, WooCommerce, BigCommerce, Magento2, PrestaShop, OpenCart, osCommerce, WordPress, WHMCS, Zendesk, Stripe, Amazon SES, Postmark, Reenviar, SendGrid, Mailgun, Gmail, IMAP, Slack, Google Business Profile), Connector Builder (sem código/AI-assisted/full-code), genérico OAuth fluxo com PKCE, mercado de conectores com distribuição paga, assinatura e verificação do conector, correspondência fuzzy SmartLookup, um grande catálogo de definições de ação HTTP cuja disponibilidade depende da instalação de conector, habilitação, configuração e validação, sincronização de conhecimento e receitas de fluxo de trabalho.

Plataforma de desenvolvimento

RESTAPI(visitantes, eventos, tickets, contatos, configurações, conectores), OpenAPI spec,API gerenciamento de chaves, webhooks outbound (assincronização, assinatura, reteste, SSRF-guardado, desativação automática), EventosAPI para ingestão personalizada de eventos, widget SDKcom resolução identitária, desencadeia livro de receitas, contratos de ação, conector SDK, embalagem de mercado, SDKs do lado do servidor (PHP, Node.js), WordPress plugin, e WHMCS módulo.

Configurações e operações

Business identity, AI configuration per workspace, tracking settings, security (HSTS, Permissions-Policy, IP blocking, brute-force protection), RBAC (Owner/Full Admin/Agent), team management and invitations, team performance dashboard, admin presence tracking, email template system (registry-driven, visual editor, variable chips), survey designer, domain knowledge, ticket embed configuration, branding, data retention policies, billing cycle management (monthly through lifetime), currency normalization, import/export, diagnostics, cron automation, and danger zone.

Segurança e conformidade

Empresa SSO (OIDC com verificação JWKS, provisionamento JIT), SAML configuração, GDPR/DSAR tratamento (exportação e eliminação em todos os sistemas), apagamento dos dados por contacto, gestão do consentimento, isolamento do espaço de trabalho (escopeamento restrito da camada de consulta), trilhas de auditoria, rastreamento falhado do login, IP blocking, webhook de saída SSRF guard e políticas de retenção de dados.

Ponte do fornecedor

IA gerenciada proxiada através OpsIQ provedor URL, Chamadas de provedor de Inteligência do Site, validação de licença, relatórios de saúde, PDF renderização, e exportações de dados, todos encaminhados através do endpoint do provedor configurado, não fornecedor direto API chamadas do seu servidor.

Cada página de administração

Painel

Principal

Centro de comando diário: visão geral do tráfego, contagem de visitantes ao vivo, resumo de vendas, profundidade da fila de suporte, alertas de atividade de IA e atalhos de ação rápida.

Alimentos vivos para animais

Análise

Fluxo de visitantes em tempo real: visualizações de página, inícios de bate-papo, submissões de formulários e sinais de intenção atualizando a cada poucos segundos com filtros de país, dispositivo e referência.

Registo de visitantes

Análise

Registros completos de visitas: dispositivo, navegador, SO, país, cidade, referência, parâmetros UTM, landing page, identidade e histórico completo de visualização de páginas.

Sessões

Análise

Visão agrupada em jornada: fluxo de página, tempo na página, profundidade de rolagem, caminho de conversão e página de saída para cada sessão de visitante.

Reprodução de sessão

Análise

Reprodução da linha do tempo de eventos capturados: movimento do mouse, cliques, pergaminhos, transições de página e interações de formulário para o diagnóstico de UX.

Páginas superiores

Análise

Ranking de desempenho da página: visitas, tempo de engajamento, taxa de rejeição, conversões, interações de suporte e direção de tendência.

Inteligência geográfica

Análise

Relatórios geográficos: discriminação país/cidade com mapas, distribuição de dispositivos, compartilhamento de navegadores, fontes de tráfego e penetração no mercado.

Funil de intenção

Análise

Rastreamento de intenção comportamental: preços, frequência de retorno, navegação por documentos, interações de suporte e sinais personalizados com probabilidade de conversão.

Registo de eventos

Análise

Histórico de eventos pesquisáveis: visualizações de página, eventos personalizados, chats, compras, submissões de formulários com metadados completos e filtragem.

Experimentos A/B

Análise

Testes divididos: criar variantes, alocar tráfego, definir objetivos, medir significado e declarar vencedores, todos de dentro OpsIQ.

Erros JS

Análise

Captura de erro Frontend: mensagens, traços de pilha, navegadores afetados, frequência, páginas afetadas e rastreamento de tendência.

Vendas

Vendas

Painel de receitas: pedidos, renovações, reembolsos, atribuição por fonte, desempenho da campanha, comparação do período e análise de tendência.

Chumbo

Vendas

Gestão de chumbo: pontuação, atribuição da fonte, status de CRM, detalhes de contato, sinais comportamentais e roteamento de tubulação.

IACRM

CRM

CRM completo: centro de comando, contatos, empresas, ofertas, conselho de oleoduto, coaching, previsão, prospecção, sequências, ciclo de vida, administrador de dados e saúde.

Bilhetes

Suporte

Suporte caixa de entrada: departamentos, prioridades, rastreamento SLA, triagem de IA, resposta automática, notas internas, anexos de arquivos, mesclagem e gerenciamento de status.

Caixa de entrada do bate- papo

Suporte

Conversas ao vivo: IA e chat humano, entrega, colaboração, histórico de conversação, identidade do cliente e coleção CSAT.

Rascunhos de e-mail

Suporte

Gestão de email: e-mail para tickets, composição de resposta assistida por IA, seleção de modelo e configuração da caixa de correio.

Configuração da IA

IA

Configuração do provedor: selecione Claude/GPT-4o/Gemini/Grok, digite API chave ou habilitar IA gerenciada, modelo de conjunto, temperatura e orçamentos de token por espaço de trabalho.

Formação em IA

IA

Autorização imediata: prompts voltados para o cliente e voltados ao administrador, regras de escalada, diretrizes de tom, tópicos proibidos e configuração de contorno.

História da IA

IA

Auditoria de conversação: registros completos de solicitação/resposta, uso de tokens, custo por conversação, provedor, versão do modelo e resultado da resolução.

Insights sobre IA

IA

Análise de padrões: questões comuns, taxas de resolução, frequência de handoff, satisfação por tópico e identificação de gap de treinamento.

Base de conhecimentos

IA

Conteúdo de treinamento de IA: artigos, entradas FAQ, documentos de produto, conhecimento de conectores e entradas personalizadas. Busca semântica e palavra-chave para aterramento de IA.

Conectores

Integrações

hub de integração: conectores instalados, estado de saúde, inventário de ação, gerenciamento de credenciais, navegador de mercado e Connector Builder.

Sites conectados

Configurações

Gerenciamento do site: rastreamento de trechos, chave do site, configuração de widget, configurações de domínio e isolamento por local de trabalho.

Equipa

Configurações

Gerenciamento de usuários: convidar membros, atribuir funções (Proprietário/Admin./Agente completo), definir o acesso ao departamento e gerenciar permissões.

Desempenho em equipa

Configurações

métricas de Ops: tempo de resolução, carga de trabalho, conformidade com SLA, CSAT por agente, taxas de reabertura, horas mais ocupadas e análise de tendência.

Configurações

Configurações

Configuração: identidade de negócio, configuração de IA, rastreamento, segurança, marca, retenção, modelos de email, faturamento, importação/exportação, diagnósticos e zona de perigo.

Licença

Configurações

Gerenciamento de planos: status da licença, recursos do plano, métricas de uso, data de renovação e opções de atualização/downgrade.

Começar aqui

Guiado a bordo

A jornada de onboarding transforma uma nova instalação em um espaço de trabalho OpsIQ e pode ser deixada e retomada sem perder o progresso.

Tela do produto
AbordagemA integração mostra cada área de configuração, seu estado atual e a próxima ação a ser concluída.Abordagemespaço de trabalhoPROGRESS60%COMPLETED6PróximaWidgetCONCEITO AO LIVRO DA ESPAÇO DE TRABALHOLicençaValidar a licença de produtoFeitoPrestador de IASelecione provedor e chave de testeFeitoMarcaIdentidade e tom de negócioFeitoSítio WebAdicionar site e instalar widgetPróxima1COMPLETE BASICSLicença, marca, IA2CONNECT DATALocal e conector3VERIFY LAUNCHEquipa, e-mail, cheques
A integração mostra cada área de configuração, seu estado atual e a próxima ação a ser concluída.

Sequência recomendada

  1. Licença: Validar a licença e confirmar que o espaço de trabalho está activo.
  2. Prestador de IA: escolha o provedor/modelo, digite credenciais e execute o teste de conexão. A IA pode ser ignorada se a área de trabalho usar inicialmente somente análises e tickets.
  3. Identidade comercial: definir o nome, indústria, descrição, tom de cliente e detalhes da marca utilizados pelo widget e IA.
  4. Conector: habilitar pelo menos uma plataforma externa quando OpsIQ precisa de pedidos, clientes, tickets, email ou outro contexto da plataforma.
  5. Site e widget: criar o site/espaço de trabalho, copiar a chave do site e verificar uma visita privada-browser em Live Feed.
  6. Equipa e encaminhamento: convidar administradores/agentes, criar departamentos, definir o roteamento de email e confirmar as preferências de notificação.
  7. Controlos de ida e volta: test chat, um ticket, sincronia de conectores, cron, email de saída, webhooks e cabeçalhos de segurança.

A jornada armazena a conclusão por espaço de trabalho. Retornando à Onboarding, deverá mostrar os passos completos em vez de forçar uma reinicialização.

Começar aqui

Navegação de administração e permissões

The OpsIQ sidebar is permission-aware. This map explains where each operational area lives and why a page may not be visible to every administrator.

Tela do produto
OpsIQ navegaçãoThe sidebar groups OpsIQ by work area; individual links appear only when the current role can use them.OpsIQ navegaçãoespaço de trabalhoGROUPS8PÁGINASPermissão baseadaSEARCHDisponívelCONCEITO AO LIVRO DA ESPAÇO DE TRABALHOSuporteBilhetes, e-mail, CSAT, conhecimentoAbrirCRMContactos, gasodutos, ofertas, prospecçãoAbrirAutomaçãoFluxos de trabalho, regras, objectivosAbrirSegurança e PrivacidadeVisão geral, auditoria, consentimento, blocosAdministrador1PICK A GROUPCoincidir com a barra lateral2CHECK ROLEOcultos significa restritos3USE PAGE HELPAbrir a seção correspondente
The sidebar groups OpsIQ by work area; individual links appear only when the current role can use them.
Suporte

Bilhetes, a plataforma de email da equipe, CSAT, a Central de Ajuda e fluxos de chatbot.

CRM

As superfícies de vendas diárias: CRM Home, Command Center, contatos, pipeline, previsão, ciclo de vida, prospecção, segmentos, leaderboard, aprovações de acordo, gerenciador de dados, ferramentas de crescimento e fluxo de atividade.

Automação

Fluxos de trabalho orientados para eventos, regras do ciclo de vida e metas de conversão.

Comercialização

Outreach, mensagens proativas, anúncios, Promotion Studio, Survey Studio, campanhas de push e visitas guiadas.

Análise

Reporte superfícies primeiro — Analytics Hub, insights de IA, vendas, clientes, leads, funils, testes A/B, replay de sessão, painéis personalizados e relatórios agendados — com os registros brutos de visitantes, sessões, páginas, geografia e eventos em uma subseção de dados RAW.

Páginas independentes

Inteligência do Site, Desempenho da Equipe e Feedback ficam fora dos grupos como entradas diretas.

Integrações

Conectores, ações e gatilhos, caixas de correio, rascunhos, configurações de email, terminais de entrada, webhooks de saída e chaves API.

Segurança e Privacidade

Visão geral de segurança, privacidade e conformidade, consentimento de cookies, atividade de auditoria, logins falhados, bloqueadosIPseJavaScripterros.

Configurações

Noções básicas do espaço de trabalho (geral, equipe, sites, idiomas), então sub-seções colapsáveis: IA Brain (instruções, configuração, avaliação, histórico), CRM Setup (builder, campos personalizados, pontuação de chumbo, saúde), Data & Health (diagnóstico, exportação) e Getting Begined (onboarding, help).

Páginas que um papel não pode abrir estão escondidas na barra lateral. Páginas as quais o plano atual não inclui permanecem visíveis com uma Actualização Tag e abrir uma tela de atualização no aplicativo.

As rotas diretas ainda estão verificadas no servidor. Esconder um link da barra lateral não é o limite de segurança: cada ação protegida deve passar por sua permissão e verificação do espaço de trabalho.

Análise

Hub de análise

O hub do Analytics traz suporte, chat, IA, visitante e agente que relata em um espaço de trabalho filtrado com resultados exportáveis.

Tela do produto
Hub de análiseO Analytics Hub mostra um intervalo de datas, cartões métricos e guias para o desempenho do Suporte, Chat, IA, Visitante e Agente.Hub de análiseespaço de trabalhoCITKETS184AI RESOLVE63%CSAT4.7CONCEITO AO LIVRO DA ESPAÇO DE TRABALHOSuporteCriado, fechado, pendente, SLAPáginaConversarAI/resultados humanos e tempo de manipulaçãoPáginaIAConfiança, feedback, uso de tokenPáginaAgenteVolume, velocidade e satisfaçãoPágina1CHOOSE DATESPré- definido ou personalizado2CHANGE TABApoio ao Agente3EXPORTObter CSV
O Analytics Hub mostra um intervalo de datas, cartões métricos e guias para o desempenho do Suporte, Chat, IA, Visitante e Agente.

Filtros e comandos

  • Usar uma predefinição ou um costume de/para intervalo, em seguida, atualizar para reconstruir cada carta e gráfico para o mesmo período.
  • Exportação CSV exporta a visão analítica ativa em vez de uma captura de tela.
  • O escopo do espaço de trabalho é automático; mudar os sites muda o conjunto de dados subjacente.

O que cada tabulação mede

  • Suporte: tickets criados/fechados/pendentes, primeira resposta, resolução, resoluções de primeiro contato, SLA e detalhamentos de prioridade/departamento/status.
  • Conversar: sessões iniciadas, resoluções de IA, escaladas, abandono, tempo de manuseio, mensagens por sessão e IA/humano/todos CSAT.
  • AI: confiança média, baixa taxa de confiança, precisão da triagem, feedback, desvio do conhecimento, uso de token/cache e os itens que precisam ser revisados.
  • Visitante: Tendências de tráfego e de engajamento para o período selecionado.
  • Agente: medidas de carga, velocidade, encerramento e satisfação por agente.

Use o Analytics Hub para revisão em equipe cruzada; use as páginas de Visitantes, Ingressos, CSAT, História da IA e Desempenho em Equipes dedicadas quando você precisar de investigação em nível de registro.

Análise

O Painel

O Dashboard é o seu centro de comando diário. Ele mostra tráfego, vendas, carga de suporte, atividade de IA e indicadores de conversão em uma visão. Abra-o todas as manhãs para entender o que aconteceu durante a noite e o que precisa de atenção hoje.

Painel
Painel de visão geralA tela Visão geral liderada por um painel de IA de inteligência OpsIQ (com resumo diário, alertas inteligentes, previsão), peças de widget KPI e um widget de tráfego de sete dias, além de um controle de layout Reset.Visão geralespaço de trabalhoOPSIQ INTELIGÊNCIAEscolha uma análise e OpsIQ escreve-aResumo diárioAlertas inteligentesPrevisãoReiniciar a disposiçãoVISITORES HOJE2,481+12%RECEITAS$8.2k+5%ENTRADAS ABERTAS143 SLATráfego · nos últimos dias 71AI-FIRSTPainel de inteligência OpsIQ2WIDGETSAs peças do KPI que você organiza3SEUSReiniciar a disposição a qualquer momento
A tela Visão geral real: o painel de inteligência OpsIQ acima (escolha uma análise e ela escreve) acima dos widgets KPI você organiza a si mesmo.

Cartões de painel explicados

Visitantes vivos

O número de pessoas em seu site agora. 15 segundos (configurável). Um visitante é "activo" se carregar uma página dentro do limiar activo (por omissão: 90 segundos).

Visitantes únicos

Quantas pessoas diferentes visitaram seu site na faixa de datas selecionada. OpsIQ identifica visitantes por uma combinação de impressão digital do navegador, cookies e (se disponível) identidade autenticada.

Novo vs retorno

Novos visitantes estão vendo seu site pela primeira vez. Visitantes retornando já foram vistos antes. Uma alta taxa de retorno significa que seu conteúdo traz as pessoas de volta. Uma proporção de retorno muito baixa pode significar que você não está mantendo o interesse.

Taxa de descarga

A porcentagem de visitantes que saíram após ver apenas uma página. Uma taxa de rejeição acima de 70% nas landing pages geralmente significa que a página não está atendendo as expectativas do visitante, conteúdo errado, carga lenta ou má experiência móvel.

Tempo médio na página

Quanto tempo os visitantes gastam em cada página em média. Tempos muito curtos (em 10 segundos) nas páginas de conteúdo sugerem que o conteúdo não está sendo engajado. Tempo muito longos nas páginas do checkout podem indicar confusão.

Ameaças bloqueadas

IPendereços que OpsIQ identificado como potencialmente malicioso com base na pontuação de ameaça, tentativas brutas de força ou blocos manuais. Clique para ver o bloqueado IPs lista.

Vendas hoje / esta semana / este mês

Receitas provenientes de fontes de vendas ligadas (Shopify, WooCommerce, StripeSe as vendas mostrarem zero, verifique se o conector da plataforma está conectado e sincronizado.

Gráfico de tendências

Um gráfico de linha que mostra a contagem do visitante ao longo da gama de datas seleccionada. Procure padrões: picos de tráfego (campanhas, menções à imprensa), dips (fim de semana, feriados) e tendências sustentadas.

Fontes de topo

De onde vêm os seus visitantes: directo, Google, redes sociais, campanhas de email, sites de referência. Use isto para entender quais canais de marketing estão a funcionar.

Navegadores superiores

Chrome, Safari, Firefox, Edge, e outros. Se um navegador tem taxa de rejeição anormalmente alta, você pode ter um CSS ou JavaScript questão de compatibilidade.

Mapa de calor por hora

Uma grade mostrando a atividade do visitante por hora do dia e dia da semana. Use isso para decidir quando agendar os turnos de suporte, quando enviar anúncios e quando executar promoções.

Visitantes recentes

Os últimos visitantes com país, página, dispositivo e fonte. Útil para verificações rápidas durante as campanhas.

Usando o filtro de intervalo de datas

Clique no seletor de data na parte superior direita do Painel. Predefinições: Hoje, Ontem, Último 7 dias, Últimos 30 Todos os cartões e gráficos do painel são atualizados quando você altera o intervalo. O intervalo de datas está no seu fuso horário configurado (definido em Configurações).

Exemplos trabalhados

Investigação de picos de taxa de descarga

Cenário:
Your bounce rate jumped from 45% to 78% this week. What happened?
O que fazer:

Controlo: (1) Será que uma landing page específica mudou? Vá para as Páginas Principais e classificar por taxa de rejeição. (2) Uma campanha enviou tráfego para a página errada? Verifique Top Sources para novos referenciadores. (3) O site quebrou no celular? Verifique a falha do navegador para taxa de rejeição móvel. (4) É o tráfego de bots? Verifique o contador de ameaças e detalhes do visitante para padrões suspeitos.

Zero visitantes no painel de bordo

Cenário:
The dashboard shows 0 live visitors even though your website is getting traffic.
O que fazer:

Controlo: (1) O widget de rastreamento está instalado? Veja o código fonte do seu site e procure OpsIQ guião. (2) A chave do site está correta? Compare a chave de data-site no script com a chave em Sites Conectados. (3) É um CDN ou cache servindo uma página velha sem o script? Limpar seu cache CDN. (4) É um bloqueador de anúncios ou cabeçalho CSP bloqueando o script? Verifique o console do navegador para pedidos bloqueados.

Ler o mapa de calor horário

Cenário:
Your heatmap shows heavy activity between 10am-2pm on weekdays but nothing on weekends.
O que fazer:

Este é um padrão de tráfego B2B. Seus visitantes estão trabalhando profissionais de navegação durante o horário comercial. Implicações: (1) Agendar pessoal de apoio para o horário de trabalho durante a semana (2) Enviar campanhas de e-mail terça-feira de manhã. (3) As janelas de manutenção do fim-de-semana são seguras. (4) Considere oferecer chat ao vivo apenas durante as horas de pico.

Espigão de tráfego a partir de fonte desconhecida

Cenário:
You see a sudden spike of 500 visitors in one hour from an unknown referrer.
O que fazer:

Ir para os Visitantes e filtrar pela janela de tempo. Verificar: (1) Eles são visitantes reais ou bots? Veja a duração da sessão, páginas visualizadas e diversidade do navegador. (2) Se real, em que página eles estão pousando? (3) Verificar o referenter URL Alguém pode ter ligado a você de Reddit, Hacker News, ou um blog popular. (4) Se é o tráfego de bots, verifique ameaças e considere bloquear o IP alcance.

Por que meu visitante conta diferente de Google Analytics?+

OpsIQ Conta os visitantes de forma diferente. Ele usa impressão digital do navegador e cookies, enquanto GA usa um modelo de cookie diferente. A filtragem de bots, as taxas de bloqueio de anúncios e a ordem de carregamento de script também podem causar diferenças. A 10-20% A variância é normal.

Posso incorporar o painel em outra ferramenta?+

O painel é projetado para o OpsIQ administrador. Para relatórios externos, use o REST API para extrair dados de análise e exibi-los em seu próprio painel ou ferramenta BI.

O que significa o contador de ameaças?+

Conta. IP endereços que OpsIQ marcou ou bloqueou com base na pontuação de ameaça, logins repetidos falhou, ou blocos manuais. Clique no contador para ver detalhes e gerenciar blocos.

Análise

Registo de visitantes

O Registro de Visitantes mostra cada visita aos seus sites rastreados. Cada linha é uma carga de página de um visitante. Use-a para investigar o comportamento individual do visitante, encontrar tráfego de campanha e diagnosticar problemas de rastreamento.

Registo de visitantes
Registo de visitantesUma tabela de visitantes com uma barra de filtro (data, pesquisa IP/email/cidade, fonte, dispositivo) e colunas para IP/email, localização, fonte, dispositivo e tempo, com uma linha de ameaça sinalizada.Registo de visitantesyoursite.com7 diasPesquisar IP, e-mail, cidade...Fonte ▾Dispositivo ▾IP / EMAILLOCALIZAÇÃOFONTEDISPOSITIVOQUANDO[email protected]EUA · Nova IorquegoogleÁrea de trabalho2m41.62.10.4Reino Unido · LondresdirectMóvel6m[email protected]DE · Berlimutm: adsMóvel14m203.0.113.9NG · Rio de JaneiroreferralÁrea de trabalhothreat1–25 de 3,402Sessão →1FILTERData · pesquisa · fonte · dispositivo2REAL COLUMNSIP/email · local · dispositivo · ameaça3DRILL INAbrir a sessão completa
O verdadeiro Registro de Visitantes: filtrar por data, pesquisa e dispositivo, então ler todas as visitas por IP/email, localização, fonte, dispositivo e hora, ameaças marcadas em vermelho.

O que cada linha mostra

IP address

O visitante.IP endereço. Anonymized se IP anonimização está habilitada em Configurações. Clique para ver todas as visitas a partir disto IP.

País e cidade

Detectado a partir do endereço IP_ usando dados GeoIP. Requer banco de dados MaxMind GeoLite2 ou cabeçalhos geo Cloudflare. Mostra "Desconhecido" se o GeoIP não estiver configurado.

Página URL

A página carregada pelo visitante. Carregue para ver a totalidade URL. Long URLs são truncados na vista da mesa.

Referência

De onde o visitante veio antes de pousar em seu site. "Direto" significa nenhum referenciador (marcas, digitados URLs, alguns links de aplicativo).

Dispositivo e navegador

O tipo de dispositivo do visitante (desktop, celular, tablet) e navegador (Chrome, Safari, Firefox, etc.).

Data e hora

Quando a página foi carregada, no seu fuso horário configurado.

Identidade do cliente

Se o visitante for identificado (via token de identidade ou login), seu nome ou e- mail aparecerá. Caso contrário, será exibido como anônimo.

Filtros

Período

Filtrar as visitas a um período de tempo específico. Por omissão: durar 7 dias.

Pesquisar

Pesquisar por IP endereço, página URL, referência, país ou e-mail do cliente.

Origem

Filtro por fonte de tráfego: Directo, Orgânico, Social, Referente, Pago, Email.

Dispositivo

Filtrar por Desktop, Mobile ou Tablet.

Somente novo

Mostre apenas visitantes da primeira vez que nunca foram vistos antes.

Exemplos trabalhados

Encontre visitantes de uma campanha específica

Cenário:
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?
O que fazer:

No log do visitante, use o campo de pesquisa e digite "verão-venda".URLs e página URLs, assim que os parâmetros UTM combinarão. Você também pode filtrar por Source = Pago para reduzir ainda mais.

Encontre um cliente que relatou um problema

Cenário:
A customer emailed saying "your checkout page was broken yesterday around 3pm." How do you find their session?
O que fazer:

Procure pelo endereço de e- mail no Registo do Visitante. Se eles estiverem logados, a sua identidade irá aparecer. Defina o intervalo de datas para ontem. Procure visitas para verificar as páginas por volta das 15h00. Clique na sessão para ver o fluxo da página completa e quaisquer erros JavaScript.

Detecta um batedor de loop ou raspador

Cenário:
You notice an IP address has 500+ visits in one hour, all to the same page.
O que fazer:

Este é provavelmente um bot, raspador ou script quebrado. Vá para o Registro de Visitantes e pesquise por isso IP. Verificação: (1) Todas as visitas são à mesma página? (2) O agente de usuário é um bot conhecido? (3) A duração da sessão é sempre 0 segundos? Se confirmado como um bot, ir para a segurança e bloquear o IP.

Registo de Visitantes vs Sessões vs Alimentação ao Vivo

Registo de visitantes

Cargas de página brutas. Uma linha por página. Melhor para: investigar páginas específicas, encontrar tráfego de fontes específicas, diagnosticar problemas de rastreamento.

Sessões

Agrupa as visualizações da página em jornadas. Uma linha por sessão de visita. Melhor para: entender o fluxo do usuário, medir a duração da sessão, identificar os caminhos de conversão.

Alimentos vivos para animais

Atividade em tempo real. Mostra visitantes atualmente em seu site. Melhor para: monitorar campanhas em andamento, detectar visitantes de alta intensidade, assistir oportunidades de apoio.

Porque é que vejo as minhas próprias visitas no registo?+

OpsIQ rastreia todas as visitas por padrão. Para excluir o seu próprio tráfego, adicione IPEndereço dos excluídos IPs lista em Configurações > Rastreamento.

Porque é que um visitante mostra o país desconhecido?+

A pesquisa GeoIP requer tanto Cloudflare_ headers geo (automático se usar Cloudflare) ou um arquivo de banco de dados MaxMind GeoLite2. Verifique Configurações > Caminho GeoIP para garantir que o arquivo de base de dados exista e seja legível.

Quanto tempo os dados do visitante são mantidos?+

Os dados dos visitantes são mantidos para o período de retenção configurado em Configurações (por omissão: 90 dias). Depois disso, os registros antigos são automaticamente limpos pela tarefa de retenção do cron.

Análise

Sessões

Sessões agrupam várias visualizações de página da mesma pessoa em uma única jornada. Enquanto o Registro do Visitante mostra cargas individuais de páginas, as Sessions mostram como as pessoas passam pelo seu site de pouso para saída.

Sessões
SessõesA tabela de Registro de Sessão com IP, país, dispositivo, fonte, duração e colunas de páginas, e uma linha de ameaça sinalizada.Sessõesyoursite.comPaís (NG)Registo de SessãoIP(S)PAÍSDISPOSITIVOFONTEDURAÇÃOPÁGINAS41.62.10.4Reino UnidoÁrea de trabalhogoogle3m12s6102.89.6.2NGMóveldirect1m05s388.21.4.9DEÁrea de trabalhoutm: ads7m48s11203.0.113.9EUAMóvelreferral0m42s21SESSION LOGViagens agrupadas2COLUMNSPaís · dispositivo · fonte · duração3THREATSessões arriscadas marcadas
O verdadeiro Registro de Sessão: cada jornada do visitante como uma linha (IP, país, dispositivo, fonte, duração e páginas) com sessões arriscadas marcadas em vermelho.

Como as sessões funcionam

Uma sessão começa quando um visitante carrega a sua primeira página. Ela continua à medida que navega para mais páginas. Uma sessão termina quando o visitante está inativo para o período de tempo- limite da sessão (por omissão: 30 minutos) ou fecha o seu navegador. A mesma pessoa que retorna após o tempo limite cria uma nova sessão.

O que cada sessão mostra

Primeira página

A landing page, onde o visitante entrou em seu site. Isso diz-lhe que conteúdo está atraindo as pessoas.

Última página

A página de saída, onde o visitante deixou. Se a página de saida é frequentemente a página dos preços, os visitantes podem estar comparando você com os concorrentes.

Contagem de páginas

Quantas páginas o visitante viu nesta sessão. Mais páginas geralmente significa mais engajamento, mas também pode significar que o visitante está perdido.

Duração

Tempo total desde a primeira página de carga até à última atividade. Sessões com 0 segundos são saltos (visão única da página, sem mais interação).

Origem

A fonte de tráfego para esta sessão (direta, Google, social, referência, etc.).

País

País detectado a partir do endereço IP do visitante.

Salto

Se o visitante saiu após visualizar apenas uma página. As sessões de divulgação têm um indicador vermelho.

Conversão

Se o visitante completou um evento de conversão (compra, inscrição, submissão de formulário) durante esta sessão.

Filtros

Pesquisar

Procurar por IP, e-mail, página URL, ou referência dentro de sessões.

Tipo

Filtrar por Novos visitantes (primeira sessão de sempre) ou Retornando visitantes.

Origem

Filtrar por fonte de tráfego.

País

Filtrar por país para ver sessões de uma região específica.

Ameaças/Abaladas

Filtrar para mostrar apenas sessões ou sessões com rejeição marcadas como ameaças.

Exemplos trabalhados

Perfil de um cliente de alto valor

Cenário:
A customer just made a large purchase. You want to understand their journey before buying.
O que fazer:

Procure o seu e- mail nas Sessões. Veja todas as suas sessões: (1) Quantas vezes eles visitaram antes de comprar? (2) Que páginas eles viram? (3) Eles usaram chat ou abrir um ticket? (4) Qual foi o tempo total desde a primeira visita à compra? Isto diz-lhe a viagem de compra típica para clientes de alto valor.

Detecta o login de um novo local

Cenário:
A customer usually logs in from Nigeria but you see a session from Russia.
O que fazer:

Procure o e- mail do cliente nas Sessões. Compare o país das sessões recentes. Se uma sessão aparecer subitamente de um país invulgar, poderá ser uma viagem legítima ou uma conta comprometida. Verifique: (1) Houve uma tentativa de login falhada antes do sucesso? (2) A IP mudar dentro da mesma sessão? Marque-o para revisão se suspeito.

Qual é a diferença entre uma sessão e um visitante?+

Um visitante é uma pessoa (ou navegador). Uma sessão é uma visita dessa pessoa. O mesmo visitante pode ter muitas sessões ao longo do tempo. As sessões expiram após o período de tempo limite.

Como OpsIQ identifica os visitantes que retornam?+

OpsIQ uses a combination of cookies, browser fingerprinting, and authenticated identity tokens. If a visitor clears their cookies and is not logged in, they will appear as a new visitor.

Análise

Alimentos vivos para animais

O Live Feed mostra os visitantes atualmente em seu site em tempo real. Ele atualiza automaticamente a cada 15 segundos (configurado). Use-o durante campanhas, lançamentos de produtos e períodos de suporte ocupados para ver o que está acontecendo agora.

Alimentos vivos para animais
Alimentos vivos para animaisUm fluxo de atividade em tempo real mostrando uma contagem ao vivo de visitantes online e um feed de ações recentes de visitantes por país.Alimentos vivos para animaisyoursite.com37visitantes online agoraActividade vivaAgoraNós · visualização /pricing2sReino Unido · iniciou um chat5sDE · adicionado ao carrinho9sCA · inscrição completa1RIGHT NOWVeja quem está no local2AUTO-REFRESHAtualiza cada 15s3ACTOSaltar para uma conversa ao vivo
Veja quem está em seu site neste segundo e o que eles estão fazendo, refrescante automaticamente a cada 15 segundos.

Como funciona

O Live Feed pesquisa o seu servidor no intervalo de atualização configurado. Cada linha mostra um visitante atualmente em seu site: sua página atual, país, dispositivo, fonte, duração da sessão e contagem de páginas. Destaques verdes indicam nova atividade desde a última atualização. Clique em qualquer linha do visitante para ver seus detalhes completos da sessão.

Configurações

Intervalo de atualização

Com que frequência as actualizações ao vivo. Por omissão: 15 valores mais baixos (5-10s) dar atualizações mais rápidas, mas usar mais recursos do servidor. Valores mais elevados (30-60s) são mais fáceis no servidor, mas menos em tempo real.

Limiar activo

Quanto tempo um visitante é considerado "ativo" após sua última carga de página. Por padrão: 90 segundos. Se um visitante carrega uma página e então lê-la para 2 minutos sem clicar, eles desaparecem da alimentação ao vivo após o limiar.

Botão de pausa

Clique em Pausa para parar a atualização automática. Útil quando você deseja ler detalhes sem a lista atualizar. Clique em Continuar para reiniciar.

Exemplos trabalhados

Localize uma liderança quente durante uma campanha

Cenário:
You are running a product launch. A visitor just viewed your homepage, then features, then pricing, and is now on the checkout page.
O que fazer:

Este é um comportamento de alta-intenção.1) Clique no visitante para ver sua sessão. (2) Se eles iniciarem um chat, a IA terá o seu contexto de viagem completo. (3) Se eles saem sem comprar, eles se tornam uma pista na página de chumbos. (4) Considere criar uma regra proativa para mostrar uma mensagem de chat quando os visitantes chegarem ao checkout.

Muitos visitantes do mesmo IP

Cenário:
You see 20 visitors from the same IP address, all on different pages.
O que fazer:

Isto poderia ser: (1) Um escritório com internet compartilhada. Verifique se as visitas parecem reais humanos (páginas diferentes, duração razoável da sessão). (2) Um bot ou raspador. Verifique se as sessões são muito curtas (0-1segundos) ou bater sistematicamente em páginas. (3) Um teste de carga. Se você estiver executando testes automatizados, exclua o IP de rastreamento.

Por que o feed ao vivo mostra 0 visitantes quando meu site tem tráfego?+

Controlo: (1) O script de widget está instalado em seu site? (2) A chave do site está correta? (3) Passou o limiar ativo? (4) Os visitantes estão usando bloqueadores de anúncios agressivos que bloqueiam o script de rastreamento?

Posso filtrar o feed ao vivo por país ou dispositivo?+

A fonte ao vivo mostra todos os visitantes ativos. Para ver as imagens filtradas, use as páginas de Registro ou Sessões do Visitante com suas opções de filtro. A fonte em tempo real é intencionalmente simples para monitoramento em tempo- real.

Análise

Páginas superiores

Páginas de Topo mostra quais páginas em seu site recebem mais tráfego. Ele classifica as páginas por visitas, engajamento, conversões e atividade de suporte. Use-o para identificar o melhor conteúdo, encontrar páginas com desempenho inferior e descobrir páginas que geram perguntas de suporte .

Páginas superiores
Páginas superioresUma lista classificada das páginas mais visitadas com barras de visita horizontal e conta.Páginas superioresyoursite.comPáginas mais visitadas/pricing3,402/2,910/docs1,740/blog/seo-guide980/signup6401RANKEDPáginas mais visitadas2SIGNALSVisitas e conversões3FINDPáginas que conduzem os bilhetes
Suas páginas classificadas por tráfego e engajamento, para que você possa detectar conteúdo superior e páginas que geram suporte.

O que cada página mostra

Página URL

O caminho URL completo. Páginas semelhantes (por exemplo, variantes de produto) são agrupadas se o agrupamento estiver habilitado.

Vistas

Número total de vezes que esta página foi carregada no intervalo de datas selecionado.

Visitantes únicos

Quantas pessoas diferentes viram esta página (uma pessoa que vê a mesma página duas vezes conta como 1 original).

Taxa de descarga

Percentagem de visitantes que saíram do seu site após ver apenas esta página. Salto alto nas páginas de destino = problema. Saldo elevado em "obrigado" páginas = normal.

Tempo médio

Quanto tempo os visitantes gastam nesta página em média. Muito curto = não ler. Muito longo em uma página de formulário = confusão.

Início do chat

Quantas conversas de chat foram iniciadas a partir desta página. O chat alto começa numa página do produto, significa que a descrição do produto pode não ser clara.

Comissões de suporte

Quantos tickets de suporte foram criados por visitantes que estavam nesta página. Alta contagem de tickets = potencial problema de UX ou conteúdo.

Exemplos trabalhados

Encontrar páginas que impulsionam perguntas de suporte

Cenário:
Your support team keeps getting questions about shipping. Which page is failing?
O que fazer:

Ordenar Páginas Topo por "Tíquetes de suporte" ou "Começa o Chat". Procure por páginas de produto ou envio com altas contagens. A página com mais perguntas de suporte provavelmente tem informações pouco claras. Corrija o conteúdo da página e monitore se as questões de suporte diminuem.

Encontrar páginas com alta taxa de saída

Cenário:
You want to know where people leave your site most often.
O que fazer:

Ordenar por taxa de rejeição decrescente. Ignorar páginas que são pontos de saída naturais (páginas de agradecimento, páginas de confirmação). Foco em páginas que devem manter os visitantes envolvidos: páginas de produto, preços, funcionalidades. Estes precisam de melhor calls-to-action ou conteúdo mais claro.

Why does a page show 0 views even though I know it gets traffic?+

Controlo: (1) O widget de rastreamento está instalado nessa página específica? Os aplicativos de uma única página podem não disparar as visualizações da página sobre mudanças de rota. (2) A página está excluída nas configurações de rastreamento? (3) Um CDN está servindo uma versão em cache sem o script de rastreamento?

Análise

Inteligência geográfica

Geo Intelligence mostra de onde seus visitantes vêm por país, cidade, dispositivo e fonte. Use-o para entender seus mercados geográficos, decidir sobre suporte linguístico, planejar marketing regional e detectar padrões de tráfego suspeitos.

Geo
Inteligência geográficaUm mapa de locais de visitantes ao lado de um ranking por bar.Inteligência geográficayoursite.comVisitantes por localizaçãoEUAReino UnidoDECANG1MARKETSPaís, cidade, dispositivo2PLAN& Regiões de línguas3WATCHEsquema de tráfego
De onde seus visitantes vêm (por país, cidade e dispositivo) para os mercados de tamanho e detectar tráfego incomum.

O que vês

Gráfico de barras dos países de topo

Os países de topo classificados por número de visitantes. Clique em um país para perfurar para baixo para dados de nível da cidade.

Donuts de campo

Discriminação visual do tráfego por país. Percentagem de hover.

Quadro completo do país

Cada país com visitantes no período selecionado, mostrando contagem de visitantes, contagem de sessões, taxa de rejeição e taxa de conversão.

Perfuração da cidade

Clique em um país para ver quais cidades dentro desse país têm mais visitantes.

Como funciona a detecção GeoIP

OpsIQ detecta a localização do visitante de duas maneiras: (1) Cloudflare cabeçalhos geo. Se o seu site está atrás Cloudflare, a detecção do país é automática e precisa (2) Base de dados MaxMind GeoLite2. Baixe o banco de dados gratuito e configure o caminho em Configurações. A detecção do nível da cidade requer a base de dados GeoLite2-City, não apenas a base do País.

Tráfego VPN e proxy

Visitors using VPNs will appear to come from the VPN server's location, not their real location. This is by design. OpsIQ cannot and should not try to bypass VPNs. If you see unusual country patterns, consider that 10-20% of visitors may be using VPNs.

Exemplos trabalhados

Tráfego por país inesperado

Cenário:
You run a US-only business but 30% of traffic is from India.
O que fazer:

Controlo: (1) São estes visitantes reais? Veja a duração da sessão e as páginas visualizadas. Sessões muito curtas com alto salto = bots prováveis. (2) Eles estão encontrando você através do Google? Verifique o referente. (3) Poderiam ser clientes potenciais em um novo mercado? Se o tráfego é genuíno e engajado, considerar a adição de preços ou conteúdo específicos da Índia.

Decidir sobre o apoio linguístico

Cenário:
You want to know if you should translate your site into Spanish.
O que fazer:

Look at the Geo Intelligence page. If Spanish-speaking countries (Spain, Mexico, Colombia, Argentina, etc.) together represent more than 10% of your traffic with low bounce rates, translation is worth considering. Also check: do visitors from these countries convert at similar rates to your primary market?

Planeamento das deslocações de apoio regional

Cenário:
You need to decide support team hours for different time zones.
O que fazer:

Use o mapa de calor horário (no Painel) combinado com a Inteligência Geográfica. 40% do seu tráfego é da Europa e 35% O mapa de calor mostra exatamente quando cada região está mais ativa, e você pode ver o que aconteceu naquele momento.

País com visitas, mas sem ordens

Cenário:
Germany shows 500 visitors this month but zero sales.
O que fazer:

Investigar: (1) Eles estão saltando na página de preços? Talvez o seu preço não é competitivo para esse mercado. (2) Você envia para a Alemanha? Verifique se sua página de envio menciona a Alemanha. (3) O seu check-out está disponível em EUR? A incompatibilidade de moeda causa saídas abandonadas. (4) Estes visitantes de uma única fonte que pode ser tráfego de baixa intensidade?

Porque é que um visitante mostra o país desconhecido?+

GeoIP não está configurado. Ou configura Cloudflare (que adiciona cabeçalhos geo automaticamente) ou baixa o banco de dados do MaxMind GeoLite2 e define o caminho do arquivo em Configurações > Caminho GeoIP.

Posso bloquear o tráfego de países específicos?+

OpsIQ não bloqueia por país. Use o seu servidor web ou Cloudflare Regras de firewall para o bloqueio baseado no país.OpsIQ concentra-se na visibilidade, não no controlo de acesso a nível da rede.

Análise

Funil de intenção

O Funil de Intenção classifica as sessões de visitantes pelo que parecem estar tentando fazer: navegar, pesquisar, comparar, comprar, obter suporte ou sair. Use-o para entender o equilíbrio de intenções em seu site e identificar onde os visitantes saem.

Funil de intenção
Funil de intençãoUm funil de Navegar para Pesquisa para Comparar para Comprar com contagens, além de suporte e deixar chips.Funil de intençãoyoursite.comNavegar · 8,200Investigação · 4,100Comparar · 1,650Comprar · 520Suporte 6%Deixando 11%1CLASSIFYO que os visitantes querem2STAGESNavegar para comprar3FIXEncontrar a entrega
Sessões classificadas por intenção (navegar, pesquisar, comparar, comprar) para que você possa ver exatamente onde as pessoas deixam.

Categorias de intenção

Navegação

Visitantes olhando casualmente ao redor. Sessões curtas, poucas páginas, nenhum objetivo específico detectado.

Investigação

Visitantes lendo páginas de produto/feature, documentos ou conteúdo do blog. Mais tempo na página, várias páginas de conteúdo.

Comparando

Visitantes que visualizam preços, comparação de planos ou tabelas de recursos. Muitas vezes retornando visitantes.

Compra

Visitantes em checkout, carrinho ou páginas de inscrição. Alta intenção. Estas são suas oportunidades de conversão.

Busca de suporte

Visitantes em páginas de ajuda, páginas de contato ou chat inicial. Eles precisam de assistência.

Saltitante

Visitantes que saíram depois de uma página.

Como ler o funil

Interpretando o seu funil

Cenário:
1,000 visitors viewed Pricing. 270 opened chat. 92 started checkout. 64 paid. 18 opened support tickets.
O que fazer:

Pricing page is strong enough to create intent. Chat is important in the buying path: 27% of pricing visitors engage with chat before buying. Support tickets after checkout may indicate activation or payment confusion. Action: (1) Ensure AI chat answers pricing questions well. (2) Investigate the 18 post-checkout support tickets for common issues.

Filtros de tempo

Use o filtro de intervalo de datas para comparar os padrões de intenção entre períodos. Por exemplo, compare a semana de sexta-feira negra com uma semana normal. Você deverá ver um pico na intenção "Comprar" e possivelmente em "Procurar suporte" se as suas promoções criarem confusão.

Como OpsIQ classifica a intenção?+

OpsIQ looks at page URLs, session behavior, and time patterns. Pricing pages signal comparison intent. Checkout pages signal buying intent. Help/contact pages signal support intent. The classification is heuristic-based, not AI-driven.

Posso personalizar as categorias de intenção?+

Não atualmente. As categorias são incorporadas com base em padrões de comportamento comuns da web. A classificação personalizada das intenções está no roteiro.

Análise

Funis, retenção e caminhos

Crie viagens personalizadas a partir de etapas de página ou evento, meça retenção de coorte e descubra os caminhos que os visitantes mais frequentemente tomam através de um site.

Tela do produto
FunilUm funil personalizado exibe cada página / evento passo, os visitantes restantes e a porcentagem de conversão.Funilespaço de trabalhoSTEPS4CONVERSION28.4%WINDOW72hCONCEITO AO LIVRO DA ESPAÇO DE TRABALHOPreços vistos1,420 visitors100%Plano seleccionado780 visitors54.9%Obtenção iniciada530 visitors37.3%Ordem concluída403 visitors28.4%1DEFINEEscolher 2–8 passos2MEDIDADefinir a janela de conversão3MELHORAREncontrar a maior gota
Um funil personalizado exibe cada página / evento passo, os visitantes restantes e a porcentagem de conversão.

Funil

Criar um funil com o nome 2 para 8 Página ou etapas do evento. Defina a janela de conversão em horas; um visitante conta apenas quando os passos ordenados ocorrem dentro dessa janela. Use a gota entre os passos para escolher onde inspecionar replay, erros, velocidade da página ou mensagens.

Retenção

Retenção agrupa visitantes em coortes semanais e mostra quantos retornam. 6, 8 ou 12 horizonte da semana. Mantenha a definição de coorte estável ao comparar lançamentos ou campanhas.

Caminhos

Os caminhos listam as sequências de páginas mais comuns. Escolha um caminho de 2 para 5 páginas para manter o resultado legível. Use-o para encontrar desvios inesperados, saídas comuns e conteúdo que repetidamente precede a conversão.

Funis personalizados são definições analíticas, não automações. Para reagir a um passo completo, crie uma meta de conversão, segmento, gatilho ou fluxo de trabalho.

Análise

Reprodução de sessão

A repetição da sessão permite- lhe ver uma linha do tempo do que um visitante fez no seu site: quais os elementos que clicaram, como eles se deslocaram, onde pairaram e o que escreveram (com campos sensíveis mascarados). Use- o para diagnosticar problemas de UX, verificar relatórios de erros e compreender a confusão do cliente.

Reprodução de sessão
Reprodução de sessãoUm replay player mostrando uma janela de página com um cursor, um painel de informações de sessão e um limpador de linha do tempo.Reprodução de sessãoyoursite.comCompre agoraSESSÃODuração 3m 12s14 clicksEUA · Área de trabalhoChrome 1241WATCHClicks, rolagem, tipo2MASKEDCampos sensíveis escondidos3DIAGNOSEVerificar relatórios de erros
Reproduza exatamente o que um visitante fez: cliques, pergaminhos, digitação (campos sensíveis mascarados), em um limpador de linha do tempo.

Encontrar a sessão certa

Na página Sessões, procure por sessões com problemas relatados, contagens de páginas altas sem conversão ou sessões de clientes que arquivaram tickets de suporte. Clique no ícone de repetição para abrir a visão da linha do tempo.

Que repetição mostra

Linha do Tempo

Uma barra horizontal que mostra os eventos ao longo do tempo. Carregue em qualquer lugar na linha do tempo para saltar para esse momento.

Navegação de páginas

Cada carga de página aparece como um segmento na linha do tempo. Você pode ver o caminho exato que o visitante tomou.

Cliques

Os eventos de clique são mostrados como pontos na linha do tempo e como destaques na reconstrução da página.

Rolagem

Profundidade de rolagem é rastreada para que você possa ver o quão longe o visitante lê.

Interacção com o Forma

Os eventos de focagem e digitação do campo são gravados. A entrada de texto em senha e campos sensíveis é mascarada por padrão.

Privacidade e mascaramento

Replay de sessão mascara campos de formulário sensíveis por padrão. Campos de senha, entradas de cartão de crédito e campos marcados com dados-opsiq- Máscara nunca são gravadas. Você pode configurar regras adicionais de mascaramento em Configurações > Rastreamento. Se sua política de conformidade requer isso, você pode desabilitar replay inteiramente.

Diagnosticando uma saída quebrada

Cenário:
A customer says "I tried to buy but the button did nothing."
O que fazer:

Encontre a sua sessão na página Sessões (pesquisa por e- mail). Abra o replay. Assista ao segmento de checkout da página. Procure: (1) Eles clicaram no botão direito? (2) Fez um JavaScript ocorrer um erro? (Verifique a página de Erros do JS para esse tempo.) (3) A página voltou a carregar ou mostrou uma mensagem de erro? (4O replay mostra exatamente o que aconteceu.

Quanto armazenamento a sessão replay usa?+

Os dados de repetição crescem com o volume do tráfego. Use as configurações de retenção para limpar automaticamente os dados de reprodução antigos. Para sites de alto tráfego, considere um período de retenção mais curto (por exemplo, 30 dias) para gerir o armazenamento.

Os visitantes podem optar por não repetir?+

Se "Respeitar Não Rastrear" estiver activado nas Definições, os visitantes com cabeçalhos DNT não serão gravados. Você também poderá excluir páginas específicas da repetição das definições de seguimento.

Análise

Registo de eventos

The Events Log shows every event that OpsIQ has recorded: page views, clicks, chat starts, ticket creations, sales, and custom events. Use it to debug integrations, verify webhook delivery, and understand the sequence of actions.

Registo de eventos
Registo de eventosUm log de eventos cronológicos com crachás tipo colorido: pageview, chat, venda, webhook e personalizado.Registo de eventosyoursite.compageviewEUA · /pricing12:04:01chat.startUK · widget aberto12:04:09venda$49.00 · ordem #104212:05:22webhookpayment.succeeded12:05:23customdemo_booked12:06:101EVERYTHINGCada evento gravado2DEBUGVerificar a entrega do webhook3ORDERVeja a sequência exata
Uma linha do tempo de tudo OpsIQ registros (pagões, chats, vendas, webhooks, eventos personalizados) para depuração e auditoria.

Eventos integrados (automático)

pageview

Disparado toda vez que uma página rastreada carrega. Inclui URL, título, referência e data-limite.

chat.started

Disparado quando um visitante abre o widget de chat e envia sua primeira mensagem.

chat.message

Disparado para cada mensagem em uma conversa de chat (tanto visitante quanto IA/agente).

ticket.created

Disparado quando um novo ticket de suporte é criado (de chat, e-mail, widget ou administrador).

ticket.replied

Disparado quando uma resposta é adicionada a um ticket.

order.completed

Disparado quando uma compra é concluída através de uma plataforma conectada.

form.submitted

Disparado quando um formulário rastreado é enviado (se o rastreamento de formulários estiver ativado).

identify

Despedido quando um visitante é identificado através de um símbolo de identidade.

security. login_ failed

Disparado quando uma tentativa de autenticação falhar.

Eventos personalizados

Você pode enviar eventos personalizados do seu site ou servidor para OpsIQ. Eventos personalizados são úteis para o rastreamento de ações específicas para o seu negócio: cliques de botão, uso de recursos, reprodução de vídeo, downloads, etc.

JavaScript · custom event from browser
// Send a custom event from the browser
window.OpsIQ = window.OpsIQ || [];
window.OpsIQ.push(["track", "plan_selected", {
  plan: "pro",
  billing: "annual",
  value: 99
}]);
PHP · gravar uma atividade de contato do seu servidor
// 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);

Filtrar eventos

Tipo de evento

Filtrar por nomes de eventos específicos: pageview, chat. started, ticket. created, etc.

Período

Mostrar os eventos de um período de tempo específico.

Pesquisar

Pesquisa dados de eventos por palavra- chave (URL, e-mail, valores de propriedade do evento).

Quanto tempo duram os acontecimentos?+

Os eventos seguem a política de retenção definida nas Configurações. Por omissão: 90 dias. Eventos de alto valor (compras, eventos de segurança) podem ser configurados com retenção mais longa.

Posso usar eventos em experiências A/B?+

Sim. Ao criar um experimento, você escolhe um evento de conversão. Qualquer evento embutido ou personalizado pode ser usado como objetivo de conversão

Análise

Experimentos A/B

Experiments permite testar duas versões de uma página ou recurso e medir qual delas se apresenta melhor. OpsIQ rastreia impressões, conversões e significância estatística.

Experimentos A/B
Experimentos A/BDuas cartas variantes comparando taxas de conversão, com um emblema vencedor e significado na variante principal.Experimentos A/Byoursite.comVariante A4.2%conversion · 1,020 viewsVariante BVencedor6.8%conversion · 1,005 views+62% elevador · 96% significativo1ENSAIODuas variantes frente a frente2MEDIDAConversões e significância3DECIDIDODeclarar um vencedor
Executar duas variantes, ver conversões e significância estatística, e declarar o vencedor.

Como funcionam as experiências

1
Criar uma experiência

Dê-lhe um nome, defina sua métrica primária (evento de conversão) e defina as variantes (controle e teste).

2
Executa-o.

OpsIQ randomly assigns visitors to variants and tracks their behavior. Do not change the experiment while it is running.

3
Leia os resultados

Depois que dados suficientes forem coletados, verifique o nível de confiança. 95% Confiança significa que você pode ser. 95% certifique-se de que a diferença é real, não chance aleatória.

Estações experimentais

Rascunho

Criado mas ainda não iniciado. Você ainda pode editar variantes e métricas.

Em execução

Atribuindo os visitantes ativamente às variantes. Não edite enquanto estiver em execução.

Concluído

Atingiu significância estatística ou foi parado manualmente. Os resultados são finais.

Arquivado

Os resultados foram revistos e o experimento já não é necessário na lista ativa.

Boas práticas

Defina sua métrica antes do lançamento

Decida o que você está medindo antes de começar. Escolher uma métrica depois de ver os resultados introduz viés.

Excluir o tráfego interno

Add your team's IP addresses to the exclusion list so staff visits do not skew results.

Correr o suficiente

Não pare uma experiência após 100 visitantes. Você precisa de centenas ou milhares de visitantes por variante para obter resultados confiáveis.

Teste uma mudança de cada vez

Se você alterar o título E a cor do botão, você não saberá qual mudança causou a melhoria.

Gravar a tua decisão

Depois que o experimento terminar, note qual variante ganhou e por que você escolheu implementá-lo.

Quantos visitantes preciso para uma experiência válida?+

Depende da taxa de conversão basal e do tamanho do efeito que deseja detectar. Como regra geral: pelo menos 500 visitantes por variante para uma 20% para efeitos menores, você precisa de milhares.

Posso fazer várias experiências ao mesmo tempo?+

Sim, mas tenha cuidado. Se duas experiências afetarem a mesma página, seus resultados podem interagir. É mais seguro executar experimentos em páginas ou recursos diferentes simultaneamente.

Análise

JavaScript erros

JavaScript Erros coleta erros do lado do cliente de seus visitantes do site. Um botão quebrado, um erro API chamada, ou um recurso faltando aparece aqui. Use-o para encontrar e corrigir bugs que afetam clientes reais.

Erros JS
JavaScript errosUma lista de erros de front-end capturados com pontos de gravidade, arquivo fonte, navegador e contagens de ocorrência.JavaScript errosyoursite.comErros recentesErro do Tipo: não é possível ler x de indefinidocheckout. js:42 · Chrome×214404 loading /assets/app.cssíndice · Safari×88Erro de Rede sem Captura (prometido)api.Js:17 · Firefox×51Aviso de privação: evento de descargafornecedor. js · Borda×331CAPTUREErros no lado do cliente2IMPACTConta & navegadores3FIXEsquema erros reais
Visitantes reais atingindo a superfície de código quebrado aqui (mensagem, fonte, navegador e quantas vezes) para que você possa corrigir o que importa.

O que cada erro mostra

Mensagem de erro

O texto de erro JavaScript (por exemplo, "TypeError: Cannot read properties of undefined").

Página URL

Em que página ocorreu o erro.

Navegador e dispositivo

Qual navegador e tipo de dispositivo viu o erro. Alguns erros são específicos do navegador.

Rastreamento da pilha

A localização do código onde ocorreu o erro. Carregue para expandir a lista completa.

Primeiramente visto

Quando este erro apareceu pela primeira vez.

Última vez vista

Quando este erro ocorreu mais recentemente.

Contagem

Quantas vezes este erro foi registado.

Sessões afetadas

Quantas sessões de visitantes diferentes experimentaram este erro.

Priorizando erros

Nem todos. JavaScript Os erros precisam de atenção imediata. Priorize por: (1) erros nas páginas críticas (checkout, inscrição, login), (2) erros com altas contagens de sessões, (3) erros que apareceram recentemente (possível regressão de uma mudança de código), (4) erros no seu próprio código (não scripts de terceiros).

Corrigir um botão de saída quebrado

Cenário:
The JS Errors page shows "TypeError: Cannot read properties of undefined (reading submit)" on /checkout, affecting 45 sessions this week.
O que fazer:

Isto significa 45 Os clientes reais não puderam completar o checkout. Passos: (1) Abra a página na mesma combinação navegador/dispositivo. (2) Abra o console do navegador e reproduza o erro. (3) Verifique o traço da pilha para encontrar a linha exata do código. (4) Corrigir o erro, implantar e monitorar a contagem de erros indo para zero.

Será que OpsIQ captura erros de scripts de terceiros?+

Sim. OpsIQ captura tudo JavaScript erros na página, incluindo erros de scripts analíticos, widgets de chat e scripts de anúncios. Filtre por URL no stack trace para focar em seu próprio código.

Como excluo os erros inofensivos conhecidos?+

Você não pode suprimir erros específicos em OpsIQ, mas você pode filtrar a lista por página URL ou mensagem de erro. Corrigir ou ignorar erros das extensões do navegador (eles frequentemente aparecem como erros de fontes desconhecidas).

Vendas

Vendas e conversões

O rastreamento de vendas conecta sua loja ou plataforma de faturamento a OpsIQ para que você possa ver o rendimento ao lado do comportamento do visitante. Toda compra é atribuída a uma jornada de visitantes para que saiba quais páginas, campanhas e canais direcionam a receita.

Vendas
VendasA tela de vendas: um total de receitas com controle de período de tempo integral, uma pesquisa e uma tabela de compras recentes (data, cliente, plataforma, quantidade, fonte).Vendasyoursite.comRECEITAS$42,180+18%Todo o tempo▾Procurar e- mail, IP, ID de Ordem...Compras RecentesDATACLIENTEPLATAFORMAMONTANTEFONTEJun 3[email protected]Shopify$49googleJun 3[email protected]WooCommerce$129directJun 2[email protected]Stripe$480anúncios1RECEITAS& Renovações de ordens2RECENT PURCHASESData · cliente · quantidade3ATTRIBUTEDPara a fonte de tráfego
A tela de vendas real, receita até o topo, então Compras recentes (data, cliente, plataforma, quantidade), cada um atribuído à sua fonte de tráfego.

Painel de vendas

As vendas de hoje

Receitas de encomendas concluídas hoje. Atualiza com cada novo evento de pedido da sua plataforma conectada.

Esta semana / este mês / total

Receitas agregadas ao longo do período. Reembolsos são subtraídos desses totais.

Gráfico de tendências

Gráfico de linha mostrando receita diária sobre o intervalo de datas selecionado. Procure por picos (promoções, campanhas) e dips (questões, sazonal).

Fontes de conversão superiores

Quais fontes de tráfego levam à maioria das compras. "Direto" compradores muitas vezes marcou seu site. "Google" compradores encontrou-lo através da pesquisa.

Compras recentes

Os pedidos mais recentes com email, quantidade, moeda e itens comprados.

Guias de configuração da plataforma

Shopify

Ir para os conectores >Shopify. Criar um aplicativo personalizado em seu Shopify administrador (Configurações > Aplicativos e canais de vendas > Desenvolver aplicativos). Abrange: read_orders, read_customers, leg_products. Copie o Administrador API acesso token. In OpsIQ, insira o seu domínio de armazenamento (por exemplo, your-store.myshopify.com) e o token de acesso. Clique em Test Connection. Se tiver sucesso, habilite a sincronização webhook para notificações de pedidos em tempo real.

WooCommerce

Ir para os conectores >WooCommerce. Na sua WordPress administrador, vá para WooCommerce> Configurações > Avançado > REST API. Criar uma chave com permissão de leitura / escrita. Copie a chave do consumidor e o segredo do consumidor. OpsIQ, insira o seu site URL, chave de consumo e segredo do consumidor. Clique em Test Connection.

Grande Comercio

Vá para Conectores > BigCommerce. Em seu administrador BigCommerce, vá para Configurações Avançadas >API Contas. Criar um V2/V3 API Conta com espaço de leitura para pedidos, clientes e produtos. Copie o token de acesso, ID do cliente, e API caminho. Introduza-os OpsIQ e testar.

Magento 2

Acesse Conectores > Magento. No seu administrador Magento, vá para System > Integrations. Crie uma nova integração com API acesso aos recursos de Vendas, Clientes e Catálogo. Ative a integração e copie o token de acesso. OpsIQ com sua base Magento URL.

PrestaShop

Vá para Conectores > PrestaShop. Em seu administrador PrestaShop, vá para Parâmetros Avançados > Webservice. Habilite o serviço web e crie uma nova chave. Conceda acesso a pedidos, clientes e produtos. Copie a chave e digite-a em OpsIQ com a sua loja URL.

OpenCart

Ir para os conectores > OpenCart. Gerar API credenciais do seu painel de administração OpenCart.API URL, nome de usuário e chave em OpsIQ. O conector usa o REST do OpenCart API para pedidos e dados do cliente.

OsCommerce

Ir para os conectores > osCommerce. Configurar o acesso ao banco de dados ou API credenciais como documentadas nas configurações do conector. A integração com osCommerce normalmente requer acesso direto ao banco de dados ou um costume API módulo.

Stripe

Ir para os conectores > Stripe. Copie a sua Strike restrita API chave do Painel de Listras (Desenvolvedores >API chaves). A chave precisa de acesso lido aos Clientes, Custos, Faturas e Assinaturas. OpsIQ. Configure o endpoint do webhook para eventos em tempo real.

Personalizado / outras plataformas

Usar o REST API ou webhooks para enviar eventos de vendas de qualquer plataforma. Envie order.completed eventos com email, quantidade, moeda e itens do cliente.API secção para o formato de carga útil.

Compreender o seu funil de vendas

Fontes de conversão superiores

Mostra quais canais trazem clientes pagantes. Se o Google traz 1000 visitantes e 50 vendas, que é um5% taxa de conversão. Se o email traz 200 visitantes e 30 vendas, isto é 15%. O e-mail é mais eficaz por visitante.

Montante das restituições

As encomendas refinanciadas são monitoradas separadamente. Reduzem os totais de receitas líquidas. Se as taxas de reembolso forem elevadas a partir de uma fonte específica, o tráfego pode ser de baixa qualidade.

Tratamento das moedas

OpsIQ stores the original transaction currency and amount. Multi-currency businesses see revenue in each currency. Normalized reporting uses the configured exchange rate.

Exemplos trabalhados

100 visitors, zero sales

Cenário:
Your pricing page gets 100 visitors per day but zero conversions.
O que fazer:

Investigar: (1) Use Session Replay em preços visitantes da página. Veja como eles interagem com a tabela de preços. (2) Verifique Top Pages para a taxa de rejeição da página de preços e tempo na página. (3) Verifique conversas de chat dos visitantes da página de preços. Que perguntas eles fazem? (4) Compare sua página de preços com os concorrentes. (5) Tente uma experiência A/B com diferentes layouts de preços.

Atribuição para uma campanha de marketing

Cenário:
You sent an email campaign with UTM tags. How do you measure its revenue impact?
O que fazer:

Ir para Vendas e filtrar por fonte. Procure o parâmetro UTM da campanha. Você verá: (1) Quantos visitantes vieram do email. (2) Quantos convertidos em vendas. (3) Total das receitas atribuídas à campanha. (4) Compare com o mesmo período antes da campanha.

Porque é que as vendas mostram zero, apesar de a minha loja ter encomendas?+

Controlo: (1) O conector da plataforma está conectado e saudável? Vá para Conectores e verifique o status. (2) A sincronização do webhook está ativada? Se estiver usando pesquisas, o trabalho do cron está sendo executado? (3) O conector tem o direito API Polegadas? Shopify, você precisa de leitura_ordens.

How does OpsIQ attribute a sale to a visitor?+

Quando uma ordem vem através do conector, OpsIQ corresponde ao e-mail do cliente para um visitante conhecido. Se o visitante foi rastreado antes da compra, a venda é atribuída à sua jornada de visitantes, incluindo a fonte de tráfego, landing page e histórico de sessão.

Posso adicionar vendas manualmente?+

Você pode enviar eventos de vendas através do REST API ou webhooks de qualquer sistema. O formato do evento está documentado na seção Eventos API_.

Vendas

Chumbo

Os leads são visitantes ou clientes que mostram intenção de compra ou suporte. OpsIQ detecta automaticamente lead com base no comportamento: visitas de página de preços, revisitas, interações de chat, checkout e alto engajamento. Use a página Leads para priorizar o acompanhamento e alimentar seu pipeline CRM.

Chumbo
ChumboA tela Leads: uma tabela pesquisável com IP/email, localização, dispositivo, fonte e colunas de tempo-no-site, e origem superior e país.Chumboyoursite.comPesquisar IP, cidade, país...Fonte principal: Google · Top country: EUAIP / EMAILLOCALIZAÇÃODISPOSITIVOFONTETEMPO41.62.10.4Reino Unido · LondresMóvelgoogle4m12s[email protected]EUA · Nova IorqueÁrea de trabalhodirect7m02s[email protected]DE · BerlimMóvelutm: ads5m40s203.0.113.9CA · São FranciscoÁrea de trabalhogoogle3m28s1DETECTEDVisitantes de alta-intenção2TOPFontes e países líderes3ENRICHEDIP, localização, dispositivo, tempo
A tela Leads real, visitantes de alta intensidade como uma tabela pesquisável (IP/email, localização, dispositivo, fonte, tempo no local) com fontes e países superiores.

O que faz uma pista

Visitas de página de preços

Visitantes que veem seus preços ou página de planos estão ativamente considerando uma compra.

Visitas de retorno

Visitantes que voltam várias vezes estão envolvidos, mas ainda não convertidos.

Interacções de chat

Os visitantes que iniciam um chat estão procurando ajuda ativamente, seja pré-compra ou pós-compre.

Iniciar a saída

Visitantes que chegam à página de checkout, mas não completam a compra.

Apresentação de formulários

Visitantes que enviam um formulário de contato, pedido de demonstração ou formulário de inscrição.

Engajamento de páginas altas

Visitantes que veem muitas páginas com longa duração de sessão estão pesquisando profundamente.

Painel de detalhe do chumbo

Clique em qualquer lead para ver o seu perfil completo:

Identidade

Nome, e-mail, empresa se conhecida. Leads anônimos mostram IP e localização.

Sessões

Todas as sessões deste lead com fluxo de página, duração e fonte.

Páginas visualizadas

Todas as páginas que visitaram, encomendadas por regência.

Origem

Como eles encontraram você: orgânico, pago, social, encaminhamento, direto.

Pontuação do chumbo

A0-100 pontuação baseada na intensidade do comportamento, reciência e intenção da página.

Estado da CRM

Se este lead foi adicionado ao CRM como um contato ou negócio.

Dica de vendas

AI-gerado sugestão sobre o que fazer em seguida (por exemplo, "Precificação visitada 3 vezes · considerar proativo outreach").

Emblema de chumbo de alto valor

Lidera com uma pontuação acima 80 obter um crachá de "Alto Valor". Estes são os seus prospectos mais quentes. Priorize-os para divulgação, chat proativo ou entrada em tubulação CRM.

Exemplos trabalhados

A trabalhar numa pista quente

Cenário:
A lead viewed your pricing page 3 times in 2 days, started a chat asking about enterprise plans, but has not purchased.
O que fazer:

Este é um chumbo de alta intensidade. Passos: (1) Verifique os seus dados de chumbo para obter informações sobre a empresa e as funções (2) Reveja a transcrição do chat para necessidades e objeções específicas. (3) Criar um acordo no CRM com as informações recolhidas. (4) Atribuir uma tarefa de acompanhamento para um membro da equipa de vendas. (5) Se eles retornarem à página de preços, a regra proativa do chat pode desencadear uma mensagem personalizada.

A conversão de contactos anónimos leva a contactos CRM

Cenário:
You have 50 anonymous leads with high scores but no email addresses.
O que fazer:

Opções: (1) Criar uma regra proativa que oferece um desconto ou download de recursos em troca de e-mail em páginas de alta intenção. (2) Use o widget de chat para pedir e-mail quando os visitantes anônimos iniciar uma conversa. (3) Adicione um token de identidade às suas páginas de login/inscrição para que os visitantes que retornam sejam automaticamente identificados.

Como é calculado o resultado principal?+

O escore considera: recensão de visitas (recença = maior), frequência de visitas(mais = maior) e páginas visualizadas (privilégio/checkout = maior); duração da sessão (mais tempo = maior). Interações de chat (enganado = maior): e retornos (multiplicadas sessões = maior.

Posso personalizar as regras de pontuação do lead?+

Sim. Na Configuração CRM, você pode adicionar regras de pontuação de lead que aumentam a pontuação com base em palavras-chave específicas, eventos, fontes ou padrões de página.

CRM

Seu CRM · comece aqui

OpsIQ ships a full AI-first CRM that captures customer truth, cleans data, scores leads, coaches deals, forecasts revenue, and acts, with website intelligence, support, tickets, products and payments as one live graph. Every AI action is sourced, explainable, reversible and approval-controlled.

IACRM
Visão geral do CRM de I. A.Um mostrador de confiança definido para co-piloto ao lado de quatro placas de agente de IA: Steward, Prospector, Retenção e Analista.IACRMespaço de trabalhoMostrador de ConfiançaManualCo-pilotoPiloto automáticoQuanto a IA faz sozinha?DSAeromoçaDedupe, enriquece,valida dadosDSEProspectorProcurar a & pontuaçãonovos negóciosRT Não-conformidadeRetençãoChurn de ponto,renovações de impulsosANAnalisadorPrevisão &explicar números1AI-FIRSTQuatro agentes especializados2YOU DECIDEAutonomia do mostrador de confiança3TRUSTEDFonte & reversível
Um CRM de IA-primeiro executado por quatro agentes especializados, e um Dial de Confiança que decide quanto eles fazem por conta própria.

Visão geral das páginas do CRM

AI CRM (Centro de Comando)

Começar aqui

Seu homescreen diário: pulso de receita, o que a IA encontrou, o quê fez, fila de aprovação, próximos movimentos, saúde do agente e ROI.

Contactos

Principal

Pessoas e empresas em seu CRM. Pesquise, filtre, marque e gerencie perfis.

Pipeline

Principal

Placa de negócio visual com etapas de arrastar e soltar, probabilidade de vitória, e treinamento IA.

Previsão e Relatórios

Principal

Previsão de qualidade da placa: comprometida, provável, melhor caso, com intervalos de confiança e rastreamento de precisão.

Ciclo de vida

Principal

Onde cada cliente está: ativo, em risco, pronto para expansão, renovação devido ou churning.

Construir o meu CRM

Configuração

Descreva sua configuração de CRM em inglês simples. OpsIQ gera um plano reversível e aplica-o na aprovação.

CRM Saúde

Operações

Página de auto-check: esquema, agentes, rotas, ações de IA e contagens de dados ao vivo.

How OpsIQ keeps you safe

Perguntar antes de agir

As propostas de IA vão para a fila de aprovação. Você aprova, edita ou rejeita cada uma delas. Nada acontece sem sua palavra.

Nunca sobrescrever

Quando a IA sugere uma mudança, ela mostra o valor atual e o valor proposto. Dados inseridos no ser humano têm proteção de proveniência.

Tudo é reversível

Cada ação de IA é gravada no diário. Você pode desfazer qualquer alteração com um clique.

Explicado

Cada recomendação de IA mostra o seu raciocínio e as fontes de dados que usou.

Novinho em folha?

1
Abrir o CRM de IA

Clique em CRM de IA na navegação à esquerda. O Centro de Comando mostra o seu estado atual.

2
Verificar a Saúde do CRM

Abra o CRM Health para verificar o esquema, agentes e rotas estão prontos.

3
Importar contatos

Se um conector estiver ativo (Shopify, WHMCS, etc.), os contactos são importados automaticamente. Caso contrário, a importação via CSV ou criar manualmente.

4
Criar um gasoduto

Vá para Pipeline e crie seu primeiro pipeline com etapas (por exemplo, Lider, Qualificado, Proposta, Negociação, Venceu, Perdido).

5
Adicionar o seu primeiro negócio

Crie um acordo a partir de um contato, definir a quantidade e o palco, e deixe o treinador do negócio guiá-lo.

Preciso de usar o CRM?+

Não. O CRM é opcional. OpsIQ funciona perfeitamente como uma plataforma de rastreamento + suporte + IA sem o CRM. Habilite-o quando você estiver pronto para gerenciar vendas e relacionamentos com clientes.

O CRM pode funcionar sem conectores?+

Sim. Você pode criar contatos e ofertas manualmente. Os conectores enriquecem o CRM com dados de plataforma (ordens, assinaturas, tickets), mas não são necessários.

O que é a Camada de Confiança?+

A Camada de Confiança é o sistema de segurança que controla o que a IA pode fazer. Modo co-piloto (padrão): AI propõe, aprova humana. Modo piloto automático (opt-in): A IA atua automaticamente em operações reversíveis de baixo risco.

CRM

A tela inicial do CRM de IA

O Centro de Comando é o vosso briefing diário. Abri-o todas as manhãs para ver o que aconteceu, o que precisa de atenção e o que fazer a seguir.

Centro de Comandos
Centro de Comando CRMO CRM home com a opção Previsão/Ganho/Pipeline, um KPI pré-determinado e uma fila de propostas de IA com Aprovar e Descartar em cada linha.Centro de Comando CRMespaço de trabalhoPrevisãoTaxa de vitóriaPipelinePREVISÃO · NESTE Q$74k87%Propostas de IA · aprovar filaCriar negócio · Acme $24kde uma conversa com o compradorAprovarDemitirMova Nimbus → Propostaresposta positiva detectadaAprovarDemitirTarefa de registo · acompanhamento Piconenhuma atividade em 7 diasAprovarDemitir1TOGGLEPrevisão · Taxa de vitória · Pipeline2AI PROPOSESOfertas, etapas, tarefas3YOU DECIDEAprovar ou demitir
O verdadeiro Centro de Comando: alternar entre Previsão, Taxa de Vitória e Pipeline, e trabalhar na fila proposta IA, aprovar ou descartar as ofertas, movimentos de palco e tarefas que sugere.

O que o Centro de Comandos mostra

Os números de hoje

Valor do pipeline, ofertas ganhas/perdidas, novos leads, negócios ativos e tendência de receita, um instantâneo do seu estado atual.

What OpsIQ found

Insights descobertos por IA: ofertas paradas, contas de risco, novas oportunidades, problemas de qualidade de dados e sinais de mercado.

What OpsIQ did

Ações que a IA tomou (em piloto automático) ou propôs (em co-piloto): avanços de fase, atualizações de pontuação, enriquecimento de contato e criação de tarefas.

Necessita de aprovação

Fila de propostas de IA esperando por sua decisão. Cada uma mostra a ação proposta, raciocínio e evidência. Aprovar, editar ou rejeitar.

Próximos movimentos

Lista de IA das 10 coisas mais importantes para fazer hoje: acompanhar um negócio quente, verificar uma conta em risco, pesquisar um novo lead, etc.

Estado do ajudante

Saúde dos agentes de IA: Captura, Data Steward, Deal Intelligence, Dealing Coach, SDR, Retention. Green = correndo, âmbar = precisa de atenção, vermelho = erro.

Resultados

ROI tracking: acordos influenciados por IA, tempo economizado, precisão de previsões e comparação com trabalho manual CRM.

Relatórios de manhã

1
Ler os números de hoje

Verifique a tendência de saúde e receita do gasoduto.

2
Limpar a fila de aprovação

Reveja cada proposta de IA. Aprovar ações seguras, editar onde necessário, rejeitar sugestões ruins.

3
Check what OpsIQ found

Leia insights de IA. Há algum negócio em risco? Existem novas oportunidades?

4
Funcionar na lista de movimentos seguintes

Comece com a prioridade máxima. A IA classificou estes por urgência e potencial impacto.

A recuperar depois de uma folga

Cenário:
You were away for a week. What happened while you were gone?
O que fazer:

Abra o Centro de Comando e verifique: (1) "O quê?OpsIQ mostra todas as ações de IA durante sua ausência. (2) "Precisa de aprovação" mostra propostas aguardando sua revisão. (3) "O quê?OpsIQ encontrado" destaca itens urgentes. (4) Defina o intervalo de data do painel para seu período de ausência para ver a tendência.

CRM

Contactos, empresas e acordos

O CRM organiza suas relações de negócios em quatro objetos: Contatos (pessoas), Empresas (organizações), Deals (oportunidades de lucro) e Tarefas (ações de seguimento).

Objetos CRM
Objetos CRMUm registro de contato ligado a objetos Empresa, Deal e Task em um gráfico conectado.Objetos CRMespaço de trabalhoContactopessoa · e-mail · telefoneEmpresaaccountsDarOportunidade de receitaTarefaAções de acompanhamento1OBJECTSContactos, empresas, acordos2LINKEDUm gráfico conectado3TASKSSeguimentos anexados
Quatro objetos centrais (contatos, empresas, ofertas e tarefas) ligados a um gráfico de cliente conectado.

Contactos

O que é um contacto

Uma pessoa em seu CRM. Eles podem ser um cliente, um prospect, um parceiro ou uma liderança. Contatos têm um email, nome, empresa, tags, estágio de ciclo de vida e pontuação quente.

Encontrar contactos

Use a barra de pesquisa para encontrar pelo nome, e-mail, empresa ou tags. Use filtros: fase do ciclo de vida, pontuação de lead, fonte, país, última data de atividade, proprietário atribuído.

Perfil de contacto

Clique em um contato para ver seu perfil completo: informações pessoais, empresa, ofertas, atividades, ingressos, chats, visitas ao site, pontuação principal e insights de IA.

Pontuação de calor

A0-100 pontuação calculada a partir de sinais de comportamento: visitas ao site, engajamento por e-mail, interações de chat, histórico de compra e regência.

Empresas

... mais bilhetes...
Ligação entre empresas de contacto

Os contatos estão ligados às empresas por domínio de email ou atribuição manual. Uma empresa pode ter muitos contatos.

Ofertas

O que é um acordo

Uma oportunidade de receita. Os acordos têm um título, quantidade, pipeline, fase, probabilidade de vitória, data próxima, proprietário atribuído, e contatos associados / empresa.

Probabilidade de vitória

Uma chance percentual de ganhar o negócio. Defina manualmente ou calculado por IA com base em seus dados históricos da vitória. Conduz a previsão ponderada.

Saúde dos negócios

Verde (saudável), âmbar (em risco) ou vermelho (atrasado). Baseado na atividade de regência, duração do estágio e sinais de engajamento.

Tarefas

O que é uma tarefa

Uma ação de acompanhamento atribuída a uma pessoa. As tarefas têm um título, data de vencimento, prioridade, tipo (chamada, e-mail, reunião, outro) e contato/acordo vinculado.

Tarefas geradas por IA

A IA cria tarefas automaticamente quando detecta algo que precisa de atenção: seguir um negócio parado, responder a uma conta em risco, pesquisar uma nova pista.

Encontrar pistas quentes

Cenário:
You want to see all high-score contacts in the UK who have not been contacted recently.
O que fazer:

Ir para Contatos. Filtrar por: Pontuação principal > 80, País = Reino Unido, Última actividade > 7 Estes são os seus melhores leads negligenciados, priorizam o alcance.

Criar um acordo a partir de um contacto

Cenário:
A contact just expressed interest in your enterprise plan during a chat.
O que fazer:

Abra o perfil de contato. Clique em "Criar negócio". Digite o título do acordo (por exemplo, "Acme Corp - Enterprise Plan"), quantidade, pipeline e estágio (por ex., "Qualificado"). Defina a data próxima e atribua-a a si mesmo. O treinador de promoções começará a rastrear esta oportunidade.

CRM

O gasoduto (o seu conselho de negócios)

O Pipeline é um quadro visual onde as ofertas se movem através de estágios da esquerda para a direita. Arraste e solte cartas para promoções antecipadas. Cada carta mostra o valor do negócio, probabilidade de vitória e estado de saúde.

Pipeline
Oleoduto CRMA tela de pipeline com dados Open-deals, Open-value, Weighted-precast e Attributed-dealls stats, um botão New-deAL, uma fila AI Approve, e o Lead/Qualified/Won board.Pipelineespaço de trabalhoOfertas abertas23Valor aberto$128kPrevisão ponderada$74kOfertas atribuídas12+ Novo acordoAprovar fila2 to reviewCHUMBOVolt Inc$4kLuz$6kQUALIFICADONimbus$30kPico$9kVENCIDOÓrbita$48k1LIVE STATSValor aberto & previsão ponderada2AI QUEUEAprovar as propostas de acordos3BOARDArrastar as ofertas por fase
A tela real do pipeline: estatísticas ao vivo (valor aberto, previsão ponderada), uma fila de AI Aprovar para ofertas propostas e o tabuleiro arrastar-e-deixar.

Utilização do tabuleiro de gasodutos

1
Veja suas ofertas

O gasoduto mostra todas as ofertas activas como cartas organizadas em colunas (estágios). Cada cabeçalho de coluna mostra o valor total das ofertas nessa fase.

2
Arrastar para avançar

Arraste uma carta para a fase seguinte. A probabilidade de vitória e conte a atualização instantaneamente. Se a jogada falhar (erro de validação), a carta volta à sua posição original.

3
Verificar os crachás dos cartões

Emblema verde = saudável (actividade recente, na pista). Amber = em risco (redução lenta, precisa de atenção). Vermelho = parado (sem actividade por muito tempo).

4
Clique para mais detalhes

Clique em um cartão para abrir o painel de detalhes do acordo com contatos, atividades, Deal Coach breve e ações rápidas.

A fila de aprovação

As propostas de IA aparecem na fila de aprovação no topo da página do gasoduto. Cada proposta mostra o que a IA quer fazer, porquê e as provas.

Aprovar

Aceite a proposta como está. A ação é realizada através da Camada de Confiança e está registrada na revista.

Editar

Modifique a proposta antes de aprovar. Por exemplo, altere o estágio sugerido ou ajuste o montante.

Rejeitar

A IA aprende com as rejeições para fazer melhores sugestões no futuro.

Probabilidade de vitória explicada

A probabilidade de ganho pode ser definida manualmente ou calculada por IA. Quando a IA calcula- a, ela usa um modelo treinado em suas próprias ofertas fechadas (ganhadas e perdidas). Se você não tiver dados históricos suficientes, a IA usa a probabilidade padrão do estágio. A probabilidade impulsiona a previsão ponderada: a $10,000 negócio em 30% probabilidade contribui $3,000 à previsão "provável".

Movendo um acordo para Won

Cenário:
A customer signed the contract and paid.
O que fazer:

Arraste a carta para o palco "Won". OpsIQ will: (1) Marcar o acordo como fechado-won. (2) Actualizar a previsão. (3) Adicione uma atividade "Won" à linha do tempo. (4) Se configurado, acionar um evento webhook (crm.deal.won). (5Atualize o ciclo de vida do contato para "Cliente".

Avistar negócios emperrados

Cenário:
You want to find deals that have been in the same stage for too long.
O que fazer:

Procure por crachás vermelhos (parados) na placa de oleoduto. Estas ofertas não tiveram atividade durante mais tempo do que o limiar configurado para a rotting (configurado em CRM Configuração > Pipelines). Clique em cada acordo para ver a recomendação do Treinador de Ofertas para reativação.

Posso ter vários oleodutos?+

Sim. Vá para a Configuração CRM > Pipelines para criar pipelines adicionais. Casos de uso comum: pipenes separados para novos negócios vs. renovações, ou para diferentes produtos/serviços.

O que acontece quando eu arrastar um acordo para "Perdido"?+

O negócio está marcado como fechado- perdido. Será pedido por uma razão de perda. O acordo é removido do tabuleiro activo, mas pode ser encontrado no filtro de ofertas fechadas. O contacto permanece no CRM.

CRM

Treino de ofertas

O treinador de negócio analisa cada acordo e dá-lhe um breve com estado de saúde, sinais de risco, pessoas-chave, uma lista de verificação de qualificação, preparação reunião, e sugeriu as próximas ações. Tudo é fonte. O treinador mostra de que bilhete, chat, ou atividade cada reivindicação vem.

Treinador de negócios
Treinador de negóciosUm cartão de acordo listando sinais de risco detectados por IA com fontes de evidência, ao lado de uma recomendação de IA e um botão de rascunho de e-mail.Treinador de negóciosespaço de trabalhoAcme Corp ·$24,000Fase: Proposta · 60% vitóriaSINAIS DE RISCONenhuma resposta em 10 diasO campeão ficou quieto.Concorrente mencionado no chatFontes: ticket #482 · chat 6/12 · tópico de e- mailRecomendações de IAReacoplar o sector económicocomprador com uma recapitulação ROIe a 7- Plano de encerramento do dia.Rascunho do e- mail1SIGNALSPor que um acordo pode escorregar2SOURCEDCada alegação cita provas3ACÇÃOUm clique no passo seguinte
O treinador sinaliza por que um acordo pode escorregar (cada sinal cita sua fonte) e dá-lhe o próximo movimento a fazer.

O que o treinador lhe diz

Explicação para a saúde

Por que o negócio é saudável, em risco, ou parado. Sinais específicos: dias em fase, última data de contato, frequência de atividade, menções concorrente, padrões de objeção.

Sinais

Categorizado em: objeções levantadas, menções do concorrente, discussões de preços, indicadores de risco de apoio, sinais de renovação/expansão. Cada sinal links para sua fonte (transcrição de bate-papo, ticket, email, atividade).

Mapa do campeão e bloqueador

Quem está ajudando o negócio (campeão) e quem está resistindo (bloqueador). Com base na análise de interação e papéis de contato.

Lista de verificação das qualificações

Lista de verificação MEDDICC ou BANT (configurada) que mostra quais os critérios de qualificação são cumpridos e que estão ausentes. Grau: A, B, C, D, ou F.

Preparação da reunião

Antes de uma reunião agendada, o treinador gera um breve: agenda, pontos-chave a serem abordados, perguntas a fazer, riscos para resolver e materiais para preparar.

Resposta e planos de chamadas

Sugeriu mensagem seguinte ou script de chamada com base no estado atual do negócio e interações recentes.

Tempo das provas

Cada reclamação que o treinador faz links para uma fonte: um número de ticket, identificação de transcrição de chat, data da atividade ou visita ao site.

Como usar o ônibus

1
Leia o resumo

Abra qualquer negócio e role para a seção de treinador de oferta. Leia o estado de saúde e os sinais-chave.

2
Fechar lacunas de qualificação

Verifique a lista de verificação de qualificação. Se "Comprador econômico" estiver faltando, planeie identificar e envolver o titular do orçamento.

3
Agir sobre sugestões

O treinador sugere ações próximas concretas. Clique para criar uma tarefa, redigir um e-mail ou agendar uma reunião, todas encaminhadas através da fila de aprovação.

Preparando-se para uma grande reunião

Cenário:
You have a meeting with a prospect tomorrow about a $50,000 deal.
O que fazer:

Abra o negócio e leia a seção Preparação da Reunião. Mostra: (1) Principais pontos de discussão baseados em interações recentes. (2) Objecções que levantaram na conversa da semana passada. (3) Concorrente que eles mencionaram em um ticket de suporte. (4) Perguntas a fazer sobre sua linha do tempo. (5) Fatores de risco para abordar proativamente. Use este resumo para preparar uma agenda focada, baseada em evidências.

Entender por que um acordo está em risco

Cenário:
The pipeline shows a red badge on a deal you thought was going well.
O que fazer:

Clique no acordo e leia a explicação de saúde do treinador de negócio. Pode dizer: "Este acordo foi em fase Proposta para 22 dias (limiar: 14). O último contacto foi 11 dias atrás. O contato primário abriu um ticket de suporte sobre questões de migração de dados 5 dias atrás (bilhete #T-892). Sugestão: endereçar a preocupação de migração e agendar uma chamada de acompanhamento." Agora você sabe exatamente o que corrigir.

CRM

Previsão e relatórios

Previsão de qualidade do tabuleiro com uma gama defensável, explicações de mudança de nível de acordo e rastreamento de precisão para que você possa provar e explicar seus números.

Previsão
PrevisãoUm número de previsão trimestral com bandas Commit, Best-case e Pipeline e uma nota de precisão.Previsãoespaço de trabalhoPREVISÃO · NESTE QUARTO312k87% to goalPersistirMelhor casoPipelineAI-ponderado pela saúde do negócio e história · precisão rastreada ao longo do tempo1CATEGORIASComprometer-se a canalizar2AI-WEIGHTEDPor acordo de saúde3PROVABLESeguimento da precisão
Compromete-te, no melhor dos casos e oleoduto de uma vista de olhos, ponderado por IA pela saúde do negócio, com precisão rastreada para que possas defendê-lo.

Categorias de previsão

Comprometido

Lida com 80% ou probabilidade de vitória maior. Estas são as suas mais prováveis vitórias. Esta deve ser a sua receita mínima esperada.

Provavelmente, com ponderação de IA

Todas as ofertas abertas ponderadas pela probabilidade de vitória calculada por IA. Esta é a previsão mais realista do que você vai fechar.

Melhor caso

Todos os negócios abertos com valor total. Esta é a receita máxima possível se tudo correr perfeitamente (que raramente acontece).

Intervalo de confiança

An 80% Exemplo: "Você provavelmente fechará entre 0 e 100, dependendo da sua estratégia de negociação." $45,000 e $72,000 neste trimestre."

O que mudou e porquê

A previsão inclui atribuição de mudança semanal. $15,000, o relatório explica exactamente quais os acordos que provocaram a alteração: "O acordo A passou para o próximo trimestre ($8,000), Deal B perdido ($5,000), a oferta C reduzida em valor ($2,000)."

Seguimento preciso

Previsões 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.

Calibração de probabilidade Win

Brier score measuring how well win probabilities match actual outcomes. If deals at 70% probability actually win 70% of the time, calibration is good.

Fotografias semanais

OpsIQ captures a snapshot of your forecast each week (via cron). Over time, you can see how your forecast accuracy improves.

Rolos e avisos

Conversão por fase

Quantas ofertas passam de cada fase para a seguinte. Se 80% passar de Qualificado para Proposta, mas apenas 20% Passe de Proposta para Negociação, suas propostas podem precisar de trabalho.

Taxa de vitória por fonte

As fontes líderes produzem mais vitórias, investem mais em fontes de alto nível.

Desempenho por proprietário

Como cada membro da equipe de vendas está realizando: ofertas ganhas, valor do pipeline, tamanho médio do negócio, taxa de vitória.

Avisos

A identificação de areia (probabilidades pouco realistas), o excesso de comprometimento (realisticamente alto) e a relação com o risco (provabilidade elevada mostrando sinais de baiagem).

Compreender uma queda de previsão

Cenário:
Your quarterly forecast dropped from $180,000 to $155,000 since last week.
O que fazer:

Abra a página Previsão e verifique "O que mudou". O relatório mostra: "Acme Corp deal ($15,000) mudou-se para Lost, concorrente escolhido. Beta Inc negócio ($8,000) data de encerramento adiada para o próximo trimestre. Novo acordo com Gamma LLC ($3,000 A mudança líquida é -$20,000 + $3,000 = -$17,000, explicando a queda de $180K para $163K (com os restantes $8K explicados por ajustes de probabilidade em outros negócios).

CRM

Encontrar novos negócios

O Agente de Prospecção ajuda você a encontrar e pesquisar potenciais clientes. Descreva seu cliente ideal, adicione empresas-alvo e deixe que a pesquisa, pontuação e rascunho de IA alcancem primeiro toque.

Prospecção
ProspecçãoUma lista de empresas com prospecto encontrados em IA com notas, pontuações e um botão de rascunho cada.Prospecçãoespaço de trabalhoPerspectivas encontradas pelo agente SDRNorthwind Ltd.SaaS · 50 staff · hiring support88Projeto de divulgaçãoCobalto MfgManufacturing · 200 staff74Projeto de divulgaçãoMesa Retail em São PauloeCommerce · 30 staff69Projeto de divulgaçãoVega Health em PortugalHealthcare · 80 staff63Projeto de divulgação1FINDAs fontes de IA visam contas2ÂMBITO DE APLICAÇÃOAjustar a & intenção classificada3DRAFTPrimeiro toque escrito para você
O agente da SDR encontra empresas-alvo, as pontua em forma e redige o primeiro contato para sua revisão.

Configuração única

1
Descreva o seu cliente ideal

Vá para a Configuração CRM > Prospecção. Descreva seu perfil ideal de cliente (ICP): indústrias-alvo, tamanhos de empresa, títulos de emprego, foco geográfico, termos de combinação de produtos e pontuação mínima de ajuste. Exemplo: "B2B SaaS empresas com 50-500 funcionários dos EUA/Reino Unido, vendendo ferramentas de desenvolvimento, com um Vice-Presidente de Vendas ou Chefe de Crescimento como o contato principal."

2
Adicionar empresas-alvo

Digite domínios da empresa ou nomes que você deseja pesquisar. Você também pode deixar a IA sugerir empresas com base em seu PIC.

3
Resultados da pesquisa de revisão

A IA enriquece cada empresa com dados disponíveis: tamanho, indústria, pilha de tecnologia, notícias recentes e ajuste pontuação com explicação.

4
Aprovar a divulgação

Para empresas de boa qualidade, a IA redige uma mensagem personalizada de primeiro toque. Revise e aprove na fila.

Ajustar pontuação

Cada perspectiva recebe um0-100 pontuação de ajuste baseada em cinco fatores:

ICP ajuste

Como a empresa corresponde ao seu perfil de cliente ideal (indústria, tamanho, localização).

Sinais de urgência

Há evidências de que eles precisam do seu produto agora? Postagens de emprego, mudanças de tecnologia, reclamações sobre concorrentes.

Proxy orçamental

O tamanho da empresa, a fase de financiamento e os indicadores de receita sugerem disponibilidade orçamentária.

Coincidência do produto

Como o seu produto é relevante para o negócio deles com base na indústria e tecnologia.

Suporte de ajuste

Se você pode efetivamente servir este cliente (timezone, idioma, complexidade).

Pesquisando uma empresa-alvo

Cenário:
You want to evaluate whether acme.com is worth pursuing.
O que fazer:

Adicionar acme.com para a lista de prospecção. A IA retorna: Fit score 78/100 Razões: B2B SaaS, 120 funcionários, com sede nos EUA, recentemente contrataram um vice-presidente de vendas (sinal de urgência), usa concorrente X (companheiro produto). Sinais de compra: visitou sua página de preços duas vezes no mês passado (a partir do rastreamento do site). [email protected] (VP de Vendas). O abridor redigido faz referência às suas recentes visitas à página de contratação e preços.

CRM

Sequências de seguimento automáticas

Sequências automatizam o acompanhamento multi-step: uma mistura de passos de email, espera, tarefa, chamada e webhook que são executados automaticamente após você aprovar o envio inicial.

Sequências
Sequências de seguimentoUm fluxo de sequência horizontal: E-mail, aguarde três dias, E-mails, em seguida, uma tarefa, com detecção de resposta.Sequências de seguimentoespaço de trabalhoDepois de aprovar o primeiro envio →E- mailIntroduçãoEspera.3 diasE- mailSeguimentoTarefaChamadaPassos podem ser e-mail, espera, tarefa ou webhook. Uma resposta automaticamente para a sequência.1AUTOMATEAcompanhamento multi-passo2STEPSE-mail · espera · tarefa · webhook3YOU APPROVEO primeiro envio está fechado.
Acompanhamento automático multi-step (email, espera, email, tarefa) que você aprova primeiro e uma resposta para automaticamente.

Como funcionam as sequências

1
Criar uma sequência

Defina os passos: e- mail, aguarde 3 dias, e-mail, espera 5 dias, tarefa (chamar se não houver resposta), e- mail. Cada etapa de email tem um modelo que você pode personalizar.

2
Registar contactos

Adicione contatos à sequência. A IA também pode propor inscrição a partir de resultados de prospecção.

3
Execução automática

Os passos são executados automaticamente no horário. Se um contato responder em qualquer ponto, a sequência pausa automaticamente.

4
Resultados da trilha

Veja taxas abertas, taxas de resposta, taxas e cancelamentos por etapa. Use isso para otimizar sua sequência.

Responder compreensão

Quando um contato responde, a IA classifica a resposta:

Positivo

Interessado, quer falar. Pausas de sequência, tarefa criada para acompanhamento.

Objeção

Tem preocupações, mas não rejeita. Sequência pausas, tarefa criada com detalhes de objeção.

Cancelar a inscrição

Quer parar de receber mensagens. O contacto é suprimido permanentemente.

Agora não.

Interessado, mas o momento está errado. Pausas de sequência, tarefa de soneca criada.

Pessoa errada

Não é o contacto certo. Sequência pára, contato marcado para revisão.

Suporte

Uma pergunta de apoio, não uma resposta de vendas. Sequência pausas, ticket criado.

Proteções anti-spam

Tratamento de opt-out

Os pedidos de cancelamento são honrados imediatamente e o contato é suprimido de todas as sequências futuras.

Limite diário de envio

Limite diário de nível de espaço de trabalho (por omissão: 1,000 e- mails). Previne que o massa envia filtros de spam.

Limite por contacto

Maximum 1 message per contact per day. Prevents overwhelming individual people.

Manuseamento por excesso de capacidade

Os passos que excedem a tampa diária são adiados para o dia seguinte. Eles nunca são deixados cair ou ignorados.

O que acontece se um contato abrir um ticket de suporte durante uma sequência?+

A sequência pausa automaticamente. O suporte assume prioridade sobre o alcance. A sequência pode ser retomada manualmente após a resolução do problema de suporte.

Posso testar passos de sequência A/B?+

Não diretamente dentro de sequências, mas você pode criar duas sequências com mensagens diferentes e comparar seus resultados.

CRM

Ferramentas de Crescimento

Uma página sob CRM que detém o motor de crescimento: receita recorrente (MRR/ARR), o catálogo do produto, formulários de captura de chumbo, links de reserva e roteamento de lead. Tudo aqui escreve diretamente no CRM, então uma submissão de formulário ou uma chamada reservada é um contato com o histórico, não uma linha em uma planilha.

O que vive na página

Receitas recorrentes

Receitas

MRR e ARR projetados a partir de seu registro real de faturamento. As assinaturas são agrupadas a partir dos pagamentos por plataforma, o ciclo de faturação é inferido a partir das lacunas de pagamento, e uma assinatura caduca quando um pagamento está atrasado passado 1.5 vezes seu ciclo. Os clientes se ligam aos contatos CRM automaticamente quando o livro carrega seu email.

Catálogo de produtos

Catálogo

Uma fonte de verdade para o que você vende. As citações puxar o nome e preço de lista do catálogo, e as citações aceitas rolar em receita por produto. Arquivo de produtos, eles nunca excluir.

Formas de captura de chumbo

Capturar

Cada formulário recebe uma página hospedada mais um código de incorporação iframe para o seu próprio site. Submissões se tornam contatos, o proprietário recebe uma notificação e suas regras de roteamento atribuem o lead.

Ligações de reserva

Agendamento

Compartilhar um link, deixe prospects escolher uma fenda livre. Fendas respeitam o horário de trabalho do organizador, fuso horário e reuniões existentes. Uma reserva cria a reunião, e-mails a perspectiva uma confirmação e notifica o organizador.

Roteamento de chumbo

Roteamento

As regras do território são executadas primeiro, depois as regras de campo (companham um campo como país ou fonte), e depois o rotineiro em todo o seu grupo de representantes. Ele encaminha CONTATOS E DEALS da mesma forma, qualquer que seja o status do acordo: um negócio ganho ainda precisa de um proprietário para atribuição de comissão, responsabilidade de conta e acompanhamento, e no modo de visibilidade do proprietário ou equipe um registro não propriedade é invisível a todos, exceto a um gerente. Os registros criados por automação (uma venda de conectores, chat, importação) não carregam nenhum criador interativo, então eles são redirecionados pelas mesmas regras sobre criar ao invés de deixar sem dono. Tudo o que já tem um proprietário nunca é transferido.

Criar o seu primeiro formulário

1
Ferramentas de Crescimento Aberto

Vá para CRM, depois Ferramentas de Crescimento e então a seção Formas de Captura de Chumbo.

2
Nomeie-o e escolha campos

Digite um nome e uma lista de campos separada por vírgulas, por exemplo, nome, e-mail, telefone, mensagem. O e- mail é sempre necessário.

3
Partilhar ou incorporar

Copie o link hospedado para compartilhá-lo em qualquer lugar, ou copie o código de incorporação e cole-o em qualquer página do seu site.

4
Assista os leads chegarem

Cada submissão é um contato CRM com uma atividade de formulário. submetida, uma notificação do proprietário e roteamento automático.

💡
Páginas de captura públicas usam o próprio endereço da sua área de trabalho. Áreas de trabalho em nuvem usam seu subdomínio atribuído (companhia.opsiq. help), então o link sempre resolve os dados certos.

Proteções incorporadas

Os robôs vêem sucesso, não vês nada.

Um campo escondido de honeypot silenciosamente descarta submissões bot.

Taxa limitada

Dez submissões por hora por IP endereço entre formulários e reservas.

O consentimento permanece honesto

A submissão de um formulário não concede o consentimento do marketing. Apenas uma caixa de verificação do consentimento explícito o faz.

Sem reserva dupla

Um slot é revalidado contra uma nova verificação de disponibilidade no momento da reserva.

De onde vêm os dados de receitas recorrentes?+

A partir do mesmo livro de vendas que a sua página usa, alimentado por conectores de faturamento. Use o Re-sync de faturamentos após conectar uma nova plataforma.

Posso usar os formulários sem um site?+

Sim. Cada formulário tem uma página hospedada em seu próprio endereço que funciona independente, com ou sem JavaScript.

CRM

Centro de Mensagens (SMS e WhatsApp)

Um conector, até vinte gateways. Conecte os provedores SMS e WhatsApp que você realmente usa, marque um como padrão e escolha qualquer um deles ao enviar um contato por mensagem. O consentimento é verificado pelo CRM antes de qualquer gategate ser contatado.

Prepara-o.

1
Activar o conector

Na página Conectores, abra o Messaging Hub (SMS e WhatsApp) e ative-o.

2
Adicionar um provedor

Na mesma gaveta, ou em Ferramentas de Crescimento CRM, escolha um gateway da lista (Twilio, Vonage, Termii, Meta WhatsApp Cloud, Infobip e muito mais), cole suas credenciais API e conecte-se. Você pode adicionar várias, incluindo o mesmo gategate duas vezes com contas diferentes.

3
Fio do webhook

Cada entrada do provedor mostra seu próprio webhook URL com um botão de cópia. Cola-o no relatório de entrega do gateway e nas configurações de mensagem de entrada para obter o status de entrega e respostas de volta para OpsIQ.

4
Enviar de um contacto

Abra um contato e use o botão SMS ou WhatsApp. Se mais de um provedor suportar o canal, um seletor permite que você escolha; caso contrário, o padrão é usado.

O consentimento vem primeiro

Apenas consentimento concedido

Não é consentimento desconhecido. Um envio recusa a menos que o consentimento SMS seja explicitamente concedido. WhatsApp segue o mesmo consentimento.

Não- contato sempre ganha

Uma bandeira não-contactante bloqueia todos os canais, independentemente do que esteja definido.

Supressão honrada

Os contactos na lista de supressão nunca são enviados.

Recusas nomeiam a sua razão

Um envio bloqueado diz exatamente o porquê, para que você possa corrigir os dados em vez de adivinhar.

Para desenvolvedores: o contrato webhook

URL shape

https://your-address/opsiq/cron/messaging_webhook.php?sk=SITE_KEY&e=ENTRY_ID&t=TOKEN. O token por entrada é cunhado quando o provedor está conectado e nunca gira na edição.

Formatos compreendidos

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

Efeitos

Relatórios de entrega carimbam a linha do livro de registro que carrega o ID da mensagem do provedor como entregue ou rebounded. Mensagens de entrada correspondem ao contato pelo número de telefone dentro da área de trabalho, terra como uma atividade message. received, e marcar a conversa respondeu.

Modo de falha

Respostas incorretas ou ausentes 403_. As cargas desconhecidas são contadas e ignoradas, nunca fatais, então um gateway mal configurado não pode quebrar o endpoint.

Quais gateways são suportados?+

Twilio, Vonage, Plivo, MessageBird, Sinch, Infobip, Telnyx, ClickSend, Termii, Africa's Talking, BulkSMS, Textlocal, Meta WhatsApp Cloud, 360dialog, SMSAPI, Gupshup, Kaleyra, D7 Networks, Hubtel e um webhook HTTPS personalizado para qualquer outra coisa.

As credenciais estão seguras?+

As credenciais são armazenadas criptografadas nas configurações do conector e nunca são ressoadas de volta ao navegador. Editar uma entrada com um segredo em branco mantém a armazenada.

A IA pode enviar mensagens?+

Sim, através de ações registradas que exigem confirmação e executar o mesmo portão de consentimento. A IA também pode listar provedores conectados para explicar o que está disponível.

CRM

Manutenção e crescimento dos clientes

A gestão do ciclo de vida ajuda a proteger as receitas existentes. Cada conta recebe uma pontuação de risco, uma pontuação em saúde, uma nota de expansão e um livro de jogadas de sucesso recomendado.

Ciclo de vida
Placa de ciclo de vidaUma placa de ciclo de vida do cliente (A bordo, Activo, em risco, Renovação) com barras de saúde em cada cartão de conta.Ciclo de vidaespaço de trabalhoAbordagemAcmesaúde 40AtivosGlobexsaúde 88Iniciaçãosaúde 76AT-RISKSoylentsaúde 28RENOVAÇÃOUmbrarenova em 12dexpansão +$8k1STAGESAlinhamento à renovação2SCOREDSaúde & expansão3PLAYBOOKRecomendado o próximo movimento
Os clientes passam por onboarding, ativos, em risco e renovação, cada um pontuado para a saúde e expansão com um playbook.

O quadro de ciclo de vida

Mapa de etapas

Placa visual mostrando onde cada conta está: Lider, Prospecto, Oportunidade, Cliente, Expansão, Renovação, Risco, Churned.

Contas de risco

Contas marcadas com alto risco de churn. Cada uma mostra o driver superior (spin de suporte, inatividade, falha de pagamento) e um jogo de salvamento recomendado.

Oportunidades de expansão

Contas que mostram sinais de prontidão para comprar mais: alta utilização, solicitações de recursos, perguntas de plano.

Renovações devidas

Contas com as próximas datas de renovação. Ordenado pelo nível de risco e valor da receita.

Como OpsIQ detecta risco de churn

O risco de churn é calculado a partir de múltiplos sinais fundidos:

Sinais de CRM

Deal saúde, inatividade, perdas recentes, declínio do engajamento.

Sinais de suporte

Contagem de ticket aberta, picos de volume de ticket, sentimentos negativos, escaladas.

Compromisso com o produto

Frequência de login, uso de recursos, visitas de página, API chamadas.

Sinais de facturação

Pagamentos falhados, faturas atrasadas, pedidos de downgrade, visitas de página de cancelamento.

Livro de reprodução

Gravar a jogada

Para contas de risco: alcançar proativamente, abordar a preocupação, oferecer apoio, aumentar se necessário.

Jogo de renovação

Para as próximas renovações: confirmar satisfação, uso de revisão, valor presente, oferecer incentivo se apropriado.

Jogo de expansão

Para contas prontas para crescer: apresentar opções de atualização, compartilhar histórias de sucesso, demonstrar ROI.

Jogo de adopção

Para subutilizar contas: oferecer treinamento, compartilhar melhores práticas, habilitar recursos que não estão usando.

A ver o que acontece antes de acontecer.

Cenário:
A customer who normally logs in daily has not logged in for 2 weeks, and they opened 3 support tickets this month.
O que fazer:

A placa do ciclo de vida sinaliza esta conta como "A risco" com motoristas: inatividade (14 dias desde o último login) e pico de suporte (3x Jogo recomendado: chamada proativa para entender o que está acontecendo. Há algum problema com o produto? Eles estão avaliando os concorrentes? Intervenção precoce pode salvar a conta.

CRM

Mantendo seus dados limpos

O agente Data Steward encontra e corrige automaticamente problemas de qualidade dos dados: duplicatas, campos em falta, inconsistências e registros obsoletos.

Autoridade responsável pelos dados
Autoridade responsável pelos dadosUma lista de problemas de qualidade de dados (duplicar, faltar, ficar velho, formato), cada um com uma ação de correção de um clique.Autoridade responsável pelos dadosespaço de trabalhoDados que o agente de bordo encontrouDuplicar[email protected] e [email protected]JuntarFaltando12 contacts have no companyEnriquecimentoVazio38 acordos intocados para 90+ diasRevisãoFormatonúmeros de telefone em 4 formatosCorrigir tudo1CATCHESDupes, lacunas, estagnação2EXPLAINSPor que marcou cada3FIXESAprovado
O agente de bordo mantém o seu CRM limpo, encontrando duplicatas, lacunas, registros obsoletos e formatos ruins, fixando-se na aprovação.

O que é que ele apanha?

Duplicar contactos

Registos múltiplos da mesma pessoa (por exemplo, [email protected] e [email protected]). O administrador propõe fundi-los.

Dados em falta

Contatos sem email, ofertas sem quantias, empresas sem domínios. Sugere preenchimento de fontes disponíveis.

Registos não ligados

Deals without associated contacts, contactes without companies. Propõe linking baseado no domínio e contexto de email.

Inconsistências

Um acordo em estágio "Won" com probabilidade 20%, um contato marcado "Cliente" sem acordos, uma empresa com indústria descombinada.

Fases erradas

Negociações que estiveram na mesma fase por muito tempo ou contactos cuja fase do ciclo de vida não corresponde à sua actividade.

Como utilizar

1
Abrir a lista de administradores

Vá para CRM e encontre a seção Data Steward (ou abra-a da CRM Health).

2
Aprovar correções seguras

Os itens verdes são seguros: duplicatas claras, dados obviamente faltando. Aprovar estes em massa.

3
Reveja o resto

Os itens Amber precisam do seu julgamento: possíveis duplicatas com pequenas diferenças, alterações de estágio propostas, ligação da empresa.

Limpar contatos duplicados

Cenário:
The steward found "John Smith ([email protected])" and "J. Smith ([email protected])": same email, different display names.
O que fazer:

O administrador propõe a fusão: manter o registo com mais actividade, mesclar as actividades e os negócios do outro registo. Reveja a proposta, ajuste o nome da exibição sobrevivente se necessário e aprove. O histórico dos dois registos está preservado no contacto combinado.

CRM

Construir o meu CRM

Compilar o meu CRM permite-lhe descrever a sua configuração de CRM em inglês simples. OpsIQ gera um plano validado e reversível e aplica-o na aprovação. Sem codificação, sem carregar em configuração manual.

Construir o meu CRM
Construir o meu CRMUma descrição de linguagem natural à esquerda produzindo um plano gerado de CRM de estágios, campos e segmentos à direita.Construir o meu CRMespaço de trabalhoDescreva o seu negócioSomos uma agência de web designvenda de retentores mensais eprojectos pontuais para pequenosAs empresas.Construir o meu CRMPlano geradoEtapas: Líder → RetentorTipos de oferta: retentor, projetoCampo: valor mensalSegmentos: SMB, agênciaSequência: a bordoAprovar & aplicar1DESCRIBEInglês simples em2AI PLANSEtapas, campos, segmentos3APPROVEAplicado · sem codificação
Descreva o seu negócio em inglês simples;OpsIQesboça o conjuntoCRM(estágios, campos, segmentos) e aplica-o na aprovação.

Como funciona

1
Descreva o que você quer

Digite uma descrição simples em inglês da sua configuração de CRM. Exemplo: "Criar um pipeline de renovação com etapas: Próximos, Contatos, Negociação, Renovado, Perdido. Pontuação leva mais alto quando eles veem preços duas vezes."

2
Rever o plano

OpsIQ mostra uma antevisão do que irá criar: pipeline, fases, probabilidades de palco, regras de pontuação, regras do ciclo de vida.

3
Aplicar

Clique em Aplicar para executar o plano. Cada mudança é gravada como um pacote que você pode desfazer com um clique.

4
Retroceder se necessário

Se algo não estiver certo, clique em Desfazer para reverter todo o pacote. Seu CRM retorna ao seu estado anterior.

O que você pode construir

Tubos e suas fases

Crie pipelines com estágios personalizados, probabilidades padrão e limiares de rotting.

Regras de pontuação

Aumentar as pontuações de liderança com base no comportamento: "Crescer mais alto quando eles vêem preços," "Crear mais baixo quando visitam a página de carreiras."

Regras do ciclo de vida

Avance automaticamente as etapas do ciclo de vida: "Mova-se para SQL quando eles pedem uma demonstração," "Move-se ao cliente quando o negócio é ganho."

Campos personalizados

Adicione campos aos contatos, ofertas ou empresas: texto, número, data, seleção, caixa de seleção, URL, e-mail.

Lista de verificação das qualificações

Defina a lista de verificação MEDDICC ou BANT as notas do treinador de negócio contra.

Criação de um gasoduto de renovação

Cenário:
You manage SaaS subscriptions and need a pipeline for renewals.
O que fazer:

Tipo: "Criar um oleoduto de renovação. Etapas: 90 Dias Fora (10%), 60 Dias Fora (25%), Contacted (40%), Negociação (60%), Renovado (100%), Churned (0%). Defina o limiar de apodrecimento para 14 dias."OpsIQ gera o plano, você revê-lo e clique em Aplicar. O pipeline aparece na sua página Pipeline imediatamente.

E se eu descrever algo que não é possível?+

O construtor só gera ações que sabe validar. Se você pedir algo fora de suas capacidades (por exemplo, "Integrar-se com meu personalizado API"), ele rejeitará o pedido e explicará o que pode fazer em vez disso.

Posso desfazer as mudanças?+

Sim. Cada ação de Construir Meu CRM é capturada como um pacote reversível. Vá para CRM Health > Change History para ver todos os pacotes e desfazer qualquer um deles.

CRM

Configurar o seu CRM à sua maneira

Configuração manual de CRM para equipes que preferem clicar sobre digitar. Todas as configurações que o Compilar meu CRM pode criar também estão disponíveis como campos de formulário tradicionais.

Tubos e suas fases

Criar, renomear, reordenar e excluir pipelines e estágios. Defina a probabilidade de vitória padrão por estágio. Define o limiar de rotting (dias sem atividade antes de um acordo ser marcado como "atrasado").

Campos personalizados

Adicionar campos a ofertas, contatos ou empresas. Tipos de campo: texto, número, data, selecione (descarte com opções predefinidas), caixa de seleção, URL, e-mail. Campos personalizados aparecem no perfil do objeto e em filtros.

Lista de verificação das qualificações

Defina a lista de verificação que o Treinador de Venda usa para avaliar ofertas. Escolha MEDDICC, BANT ou um conjunto personalizado de critérios. Cada item pode ser marcado como necessário ou opcional.

Regras relativas à fase do ciclo de vida

Defina transições automáticas de estágio: quando um contato encontra uma condição (visita preços, envia um formulário, faz uma compra), seu ciclo de vida avança automaticamente.

Regras de marcação do chumbo

Aumente ou reduza as pontuações de lead com base no comportamento. Exemplos: "Página de preços visualizada = +15 pontos," "Papel Branco Transferido = +10 pontos," página de carreiras visitadas = -5pontos." Contagem mínima pode ser definida (por exemplo, "deve ver preços pelo menos 2 vezes").

Visões salvas

Crie combinações filter+sort nomeadas para contatos, promoções ou empresas. Compartilhe visualizações com sua equipe. Defina uma visão padrão por tipo de objeto.

Adicionando uma regra de pontuação do lead

Cenário:
You want contacts who view your pricing page twice or more to get a higher score.
O que fazer:

Vá para a configuração CRM > Regras de pontuação principal. Clique em Adicionar regra. Definir: Evento = "pageview", URL contém = "/pricing", Contagem mínima =2, Aumento da pontuação = +20. Salvar. Na próxima vez que o marcador correr, os contactos correspondentes a esta regra obterão +20 Para a sua pontuação principal.

CRM

CRM Exame de saúde

CRM Health é uma página de auto-diagnóstico que verifica seu CRM está configurado corretamente e funcionando suavemente.

Controlo sanitário
Controlo de saúde do CRMUm anel de pontuação de saúde em 92 ao lado de uma lista de verificação da configuração de passagem e aviso.Controlo de saúde do CRMespaço de trabalho92SAÚDEEtapas de tubulação configuradas& Importação de ligaçãoAgentes de IA habilitados!Sem sequência de acompanhamento ativa!12 contacts missing company1AUDITORIAVerifica a sua configuração2FLAGSO que está faltando3ÂMBITO DE APLICAÇÃOUm número global
Uma auditoria de CRM de uma página: um escore global de saúde mais uma lista de verificação do que é configurado corretamente e o que ainda precisa de atenção.

O que ele verifica

Esquema

As tabelas de banco de dados existem e têm as colunas corretas. Se uma migração foi perdida, CRM Health irá marcar isso.

Agentes de IA

Todos os agentes de CRM (Capture, Data Steward, Deal Intelligence, etc.) estão registrados e saudáveis. Green = running, âmbar = needs attention, red = erro.

Rotas

CRM API routes and AJAX endpoints are registered and callable.

Acções de IA

O catálogo de ações CRM está registrado no Registro de Ação. Se as ações estiverem ausentes, CRM Health se cura re-registrando-as.

Contagem de dados ao vivo

Total de contatos, empresas, negócios, tarefas, atividades e eventos. Útil para verificar as importações e captura de dados em curso.

Após verificação de configuração

Após a primeira instalação CRM, aberto CRM Saúde e verificar todos os controlos são verdes. Se algum são âmbar ou vermelho, clique no item para uma explicação diagnóstica e correção sugerida.

Com que frequência devo verificar a CRM Health?+

Verifique após a configuração inicial, após grandes atualizações e sempre que o comportamento de CRM parecer errado. CRM Health self-cure muitos problemas (como registros de ação ausentes) apenas abrindo a página.

CRM

Conexões CRM para desenvolvedores

O CRM expõe um REST público completo API e webhooks de saída para que ele se encaixa em qualquer pilha sem exportações manuais.

API endpoints

Autenticação

APIchave (Autorização: Carregador opq_...) com escopocrm. ler oucrm.escrever. POST para/api/v1.phpcom ação e site_key.

Contactos

crm. contacts. list (search + filter), cr m. contacts. detail (por ID), crcm. contacts/upsert (criar ou atualizar), cm. Contacts-contact. save.

Ofertas

crm. deals. list, crn. dealls. detail, crc. deALs. create, crn. deais. update, crp. deales. advance (todas através da Camada de Confiança).

Actividades

crm. activities. list (linha de tempo para um contato/acordo), crn. actives. register (log uma nova atividade).

Eventos

crm. events. list (alimentação de mudança durável com cursor since_id), crn. eventos. catalog (lista tipos de eventos disponíveis).

Criar um acordo através de 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
}

Eventos Webhook

crm.contact.created

Disparado quando um novo contato é adicionado ao CRM.

crm. deal. stage_alterado

Despedido quando um negócio se move para uma fase diferente.

crm.deal.won

Despedido quando um negócio é fechado como ganho.

crm.deal.lost

Despedido quando um negócio é fechado como perdido.

crm.task.created

Disparado quando uma nova tarefa é criada (manual ou gerado por IA).

crm.outreach.reply

Disparado quando um prospect responde a uma sequência de e- mail.

crm. agent. propouse_created

Despedido quando um agente de IA cria uma proposta para a fila de aprovação.

Todos os eventos webhook sãoHMAC-assinado e repetido em falha.URLem Configurações > Webhooks, ou pesquisacrm.events.list com since_id para uma alimentação de mudança durável.

Sincronizar contatos CRM para Planilhas Google

Cenário:
You want every new CRM contact to appear in a Google Sheet for your marketing team.
O que fazer:

Configure um assinante webhook para crm. contact. created. Aponte-o para uma aplicação Web do Google Apps Script ou para um webhooc Zapier URL. A carga útil inclui o nome de contato, email, empresa, pontuação principal e fonte.

CRM

Segmentos

Segmentos salvam filtros de contato reutilizáveis para visualizações CRM, divulgação, promoções e outras ferramentas conscientes do público.

Tela do produto
SegmentosO editor Segment combina as condições, mostra a contagem de correspondência ao vivo e permite ao operador escolher um filtro ao vivo ou instantâneo fixo.Segmentosespaço de trabalhoMODELOVivoLOGICTODOSMATCHES1,248CONCEITO AO LIVRO DA ESPAÇO DE TRABALHOFase do clienteigual ao cliente ativoRegraÚltima atividadedentro de 30 diasRegraPaísigual a Reino UnidoRegraAlta intençãopontuação pelo menos 70Regra1CHOOSE MODELive ou instantâneo2ADD RULESTODOS OU ALGUNS3REUSECampanhas e CRM
O editor Segment combina as condições, mostra a contagem de correspondência ao vivo e permite ao operador escolher um filtro ao vivo ou instantâneo fixo.

A segmento vivo recalcula a partir dos dados atuais sempre que for usado. A instantâneo prefixado congela a lista de membros atual, que é útil quando um público-alvo não deve mudar após aprovação.

Escolher TODOS quando cada condição deve corresponder ou Any quando uma condição é suficiente. Reveja a contagem ao vivo antes de salvar. Segmentos do sistema podem ser visíveis, mas protegidos da edição normal.

CRM

Pontuação de chumbo

Regras de pontuação de chumbo transformam os sinais de comportamento e perfil em uma pontuação consistente que as vendas e automação podem usar.

Tela do produto
Pontuação de chumboA pontuação do chumbo mostra regras ativas, a janela de rolamento e a mudança positiva ou negativa da pontuação cada regra se aplica.Pontuação de chumboespaço de trabalhoREGRAS12SCORED8,412HOT LEADS286CONCEITO AO LIVRO DA ESPAÇO DE TRABALHOActividade de preços3+ visitas em 14 dias+20Comprar palavra- chavecontém migração ou empresa+15Risco de apoioevento de reclamação em 30 dias-10Fonte confiávelreferência de parceiro+121DESCRIBE RULEUsar o inglês simples2REVIEW FIELDSSinal, janela, pontos3RESCOREAplicar no espaço de trabalho
A pontuação do chumbo mostra regras ativas, a janela de rolamento e a mudança positiva ou negativa da pontuação cada regra se aplica.

O construtor de regras de IA pode transformar uma instrução em Inglês simples em uma regra estruturada. Cada regra ainda deve ser revisada antes da ativação: confirmar a atividade ou palavra-chave, contagem mínima, janela de rolagem e mudança de pontuação.

Regras positivas e negativas podem coexistir. Remarcar espaço de trabalho após mudanças de regras materiais, os contatos existentes são avaliados sob o novo modelo.

CRM

Painel de vendas

A tabela de classificação compara representantes usando a obtenção de quotas, ganhos receita, comissão e open pipeline para o mês selecionado.

Tela do produto
Painel de vendasA tabela de classificação mensal classifica os representantes de vendas, mantendo a receita ganha, comissão e o open pipeline visível.Painel de vendasespaço de trabalhoPERIODJulhoTEAM QUOTA82%VENCIDO£184kCONCEITO AO LIVRO DA ESPAÇO DE TRABALHOAmina.104% quota · £62k won1o- Bem.88% quota · £51k won2aRita.76% quota · £43k wonAbrir o gasoduto£312k em toda a equipaRevisão1CHOOSE MONTHComparar um período2CHECK QUOTAAtingência por representação3COACHUsar o contexto do gasoduto
A tabela de classificação mensal classifica os representantes de vendas, mantendo a receita ganha, comissão e o open pipeline visível.

A obtenção de quotas só é significativa quando cada representante tem uma quota atual e as negociações têm o proprietário, a quantidade, a moeda e o status próximo correto. Use o leaderboard para treinar e reconhecer, não como a única medida de qualidade; emparelhe-o com saúde de negócio, atividade e precisão de previsão.

CRM

Aprovações de ofertas

As aprovações de acordo exigem que o gerente assine antes que as ofertas de alto valor possam ser marcadas como ganhadas.

Tela do produto
Aprovações de ofertasA política de aprovação define dois limiares de valor e a fila mostra decisões pendentes, aprovadas e rejeitadas.Aprovações de ofertasespaço de trabalhoPOLICYActivadoWAITING6OLDEST3hCONCEITO AO LIVRO DA ESPAÇO DE TRABALHONível 1Ofertas de £10,000GestorNível 2Ofertas de £50,000SéniorRenovação da empresa£72,000 · solicitado por BenPendenteProjecto de migração£18,500 · requested by RitaAprovado1SET THRESHOLDS0 desactiva uma camada2REQUESTRep apresenta o acordo3DECIDIDOAprovar ou rejeitar
A política de aprovação define dois limiares de valor e a fila mostra decisões pendentes, aprovadas e rejeitadas.

Activar a política e definir o nível 1 e Nível 2 limiares. Um limiar de 0 desativa essa camada. Quando um não- gerenciador tenta ganhar um acordo em ou acima do limiar, OpsIQ cria uma solicitação de aprovação em vez de mudar silenciosamente o estágio.

Os gestores e administradores completos não são bloqueados pela política. Cada decisão deve manter o solicitante, o aprovador, o tempo e a razão para a auditoriabilidade.

CRM

Regras do ciclo de vida

As regras do ciclo de vida movem automaticamente os contactos entre as fases quando os seus dados actuais correspondem a uma condição gravada.

Tela do produto
Regras do ciclo de vidaAs regras do ciclo de vida são avaliadas por prioridade; a primeira regra correspondente altera o estágio de contato.Regras do ciclo de vidaespaço de trabalhoAtivos7RUNSNoitePRIORITYO primeiro mais altoCONCEITO AO LIVRO DA ESPAÇO DE TRABALHOChumbo → Qualificadopontuação ≥ 60 e atividade recentePrioridade 100Qualificado → Clienteevento de compra existePrioridade 90Cliente → Em risconenhuma atividade para 60 diasPrioridade 70Em risco → Clientenova compra ou respostaPrioridade 601PICK STAGESDe e para2DEFINE FILTEREstilo de segmento JSON3ORDER RULESPrimeira partida ganha
As regras do ciclo de vida são avaliadas por prioridade; a primeira regra correspondente altera o estágio de contato.

Cada regra tem uma fase de origem, etapa de destino, bandeira ativa, prioridade e filtro de estilo de segmento. A tarefa do ciclo de vida programado avalia prioridades mais elevadas primeiro e pára após a primeira partida para um contato.

As regras devem ser mutuamente compreensíveis. Evite duas regras activas que possam mover o mesmo contacto em direcções opostas durante a mesma execução. Teste o filtro contra um segmento antes de o activar.

CRM

Fluxo de actividade do CRM

O fluxo de atividade no espaço de trabalho combina eventos operacionais e clientes para que as equipes possam investigar o que aconteceu sem abrir cada módulo.

Tela do produto
Actividade de CRMO fluxo de atividade interleaves chat, ticket, email, webhook, eventos de conversão e anomalia com filtros e paginação.Actividade de CRMespaço de trabalhoEVENTOS2,804CUSTOMERS1,126ANOMALIES14CONCEITO AO LIVRO DA ESPAÇO DE TRABALHOConversa resolvida[email protected] · AIAgora.O ticket respondeuT...1048 · Faturação4mEvento de entradasubscription.upgraded12mConversãoOrdem #7788 · £14919m1FILTEREvento e cliente2OPEN CONTEXTIr para o disco3PAGE RESULTSManter as investigações limitadas
O fluxo de atividade interleaves chat, ticket, email, webhook, eventos de conversão e anomalia com filtros e paginação.

Filtrar por tipo de evento, data, contato ou estado do cliente (incluindo clientes pagantes). O feed é um modelo lido de atividade gravada; não substitui o ticket fonte, conversação, acordo ou registro de conector. Abra o registro vinculado antes de tomar uma ação sensível.

CRM

Fluxos de trabalho

Os fluxos de trabalho respondem a um evento e executam uma série ordenada de ações, incluindo passos atrasados retomados por cron.

Tela do produto
Fluxos de trabalhoUma execução de fluxo de trabalho mostra seu gatilho, ações completadas, espera atraso e próximo passo.Fluxos de trabalhoespaço de trabalhoAtivos9RUNNING42FALHO1CONCEITO AO LIVRO DA ESPAÇO DE TRABALHOAtivadorcontact.createdIniciarPasso 1Enviar e- mail de boas- vindasFeitoAtrasoEsperar dias 2EsperandoPasso 2Criar tarefa de vendasPróxima1CHOOSE TRIGGEREvento inicia a execução2ORDER STEPSAcções e atrasos3MONITORContinuar através do cron
Uma execução de fluxo de trabalho mostra seu gatilho, ações completadas, espera atraso e próximo passo.

Crie um fluxo de trabalho escolhendo o gatilho, adicionando passos em ordem e habilitando-o. Os atrasos são armazenados, não mantidos por uma solicitação do navegador; o cron unificado retoma as suas sequências de fluxo de trabalhos.

Os modelos de partida incorporados incluem boas-vindas após a inscrição, pós-compra agradece e confirmação demo. Clone um modelo, substitua seus destinatários/conteúdo, então teste com um registro controlado antes da ativação ampla.

As ações de projeto para serem idempotentes. Um retry não deve enviar pedidos duplicados que se movem em dinheiro ou criar registros duplicados.

Suporte

Bilhetes

Os tickets são o seu canal de suporte formal. Eles têm departamentos, prioridades, metas SLA, anexos, notas internas e threading de conversação completa. OpsIQ administrador, formulário de ticket/embed, ingestão de email, escalada do chat, conector, ou API.

Bilhetes
Detalhes do ticketUm ticket com uma meta sidebar (prioridade, departamento, SLA, status), o tópico de conversação e ações de reembolso de IA.Bilheteespaço de trabalhoT...12345PrioridadeAltaDepartamentoFaturaçãoSLA3h 12m esquerdaEstadoAbrirFui acusado duas vezes pelo meusubscrição em Junho 3.IAConfirmado o duplicadocobrança, processamento de reembolso.AI projecto de respostaMontante das restituições1THREADEDConversa completa + notas2SLA & ROUTINGPrioridade, dept, temporizadores3AI DRAFTResposta escrita para si
Cada ticket tem sua prioridade, departamento, temporizador SLA e linha completa, e a IA pode redigir a resposta para você.

Como um ticket flui

1
O bilhete chega

Um cliente envia uma mensagem via e-mail, escalonamento do chat, incorporação de tickets ou o administrador cria um. O ticket recebe um ID único (por exemplo, T-12345).

2
Triagem

A IA lê o assunto e o corpo, atribui prioridade (Baixo/Normal/Alto/Urgente), sugere um departamento e detecta sentimentos. Isso acontece automaticamente se a triagem estiver ativada.

3
Responder

Um agente abre o ticket, lê o contexto (perfil do cliente, dados da plataforma de conectores, tickets anteriores) e escreve uma resposta. AI pode redigir a resposta, e o agente edita antes de enviar.

4
Fechar

Quando o problema é resolvido, o agente fecha o ticket. O cliente é notificado. Se o cliente responder após o fechamento, o ticket reabre automaticamente.

Acções por bilhete

Mudar departamento

Mova o ticket para um departamento diferente (por exemplo, de Geral para Billing). Útil quando o roteamento inicial estava errado.

Atribuir ao agente

Atribua o ticket a um membro específico da equipe. O agente designado vê o ticket na sua visão "Meus tickets".

Adicionar nota interna

Escreva uma nota visível apenas para a equipe. Use para: conclusões de investigação, razões de reembolso, contexto de engenharia, compromissos anteriores. Notas internas nunca aparecem aos clientes.

Mesclar tickets

Combine tickets duplicados do mesmo cliente. O assunto de ticket mesclado recebe uma tag [MERGED]. Todas as mensagens dos dois tickets estão preservadas no ticket sobrevivente.

Resposta em lata

Inserir um modelo de resposta pré- escrito. Variáveis como {{customer_name}} e {{ticket_id}} são automaticamente substituídos.

AI reescrever

Deixe que o IA melhore sua resposta de rascunho: ajuste o tom, encurtar/comprimento, corrigir a gramática ou traduzir. Você revê o resultado antes de enviar.

Mudar prioridade

A prioridade afecta os cronómetros SLA e a ordem de ordenação.

Mudar o estado

Definir para Abrir, Pender, Esperar no Cliente, Resolvedo ou Fechado.

Exemplo trabalhado: lidar com um cliente infeliz

E-mail do cliente: "Eu fui cobrado duas vezes para minha assinatura"

Cenário:
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.
O que fazer:

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.

Departamentos

Crie departamentos em Configurações > Bilhetes > Departamentos. Departamentos comuns: Geral, Faturamento, Técnico, Vendas, Abuso, Onboarding. Cada departamento pode ter regras de resposta automática diferentes, conhecimento de IA e atribuições de equipe.

Respostas em lata

Crie modelos de resposta reutilizáveis em Configurações > Tickets > Respostas em lata. As boas respostas em lata incluem:

Modelo de resposta em lata de exemplo
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}}

Ingressos de fusão

Quando um cliente envia a mesma pergunta várias vezes (por e- mail e chat, ou dois e-mails separados), você pode mesclar as duplicatas. Vá para o ticket, clique em Mesclar, selecione o outro ticket para mesclar. O ticket sobrevivente recebe todas as mensagens de ambos os tickets. O assunto do ticket fundido recebe uma tag [MERGED] para indicar que foi combinada.

Prioridade e SLA

Baixo

Perguntas não urgentes, solicitações de recursos, feedback geral. Meta primeira resposta: 24 horas.

Normal

Perguntas de suporte padrão. Alvo primeira resposta: 8 horas.

Alta

Impacto no negócio do cliente. Meta primeira resposta: 4 horas.

Urgente

Serviço para baixo, incidente de segurança, perda de dados, erro de faturamento. Alvo primeira resposta: 1 hora.

Os timers SLA começam quando o ticket é criado e pausam quando o status é "Esperando no Cliente". Se o alvo SLA for perdido, o ticket será destacado e opcionalmente aumentado.

Os clientes podem ver notas internas?+

Nunca. As notas internas são estritamente apenas de funcionários. Elas não aparecem no portal de tickets do cliente, notificações por e-mail ou qualquer superfície voltada para o cliente.

O que acontece quando um ticket fechado é respondido?+

O ticket reabre automaticamente e retorna para a fila ativa. A equipe é notificada da nova resposta.

Posso bloquear um ticket para evitar mais respostas?+

Sim. Use a opção Lock Thread para impedir que tanto o cliente quanto a IA adicionem novas respostas. Útil para disputas resolvidas ou investigações fechadas.

Suporte

Service Studio: SLA, fluxo de status e qualidade

A sala de controle para como sua operação de suporte se comporta: políticas SLA com escadas de escalada, calendários de horário de negócios, um fluxo de status forçado, configurações CSAT e os interruptores de recursos empresariais. Abra-o a partir da página Tickets (o botão Service Studio na barra de operações).

SLA políticas

Cada novo ticket recebe uma primeira resposta e um prazo de resolução da política ativa mais específica: departamento + prioridade bate o departamento, supera a prioridade, vence o padrão. Prazos pausam automaticamente enquanto um ticket fica em Pendente ou Em Espera.

Escadas de escadagem

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

Horários e calendários

Com o horário de trabalho, os relógios SLA só queimam durante o tempo de trabalho. Assim, um bilhete aberto sexta-feira à noite não é violado até sábado. Calendários nomeados (timezone, dias, horas, feriados) podem ser anexados a políticas individuais para equipes em diferentes regiões.

Fluxo de status

Uma matriz de/para restrições que os administradores podem fazer para alterar o status, com um predefinido do Zendesk. Automação, email inbound e respostas de tickets originadas pelo cliente estão sempre isentas, então uma matriz rígida nunca pode bloquear o pipeline. Opcionalmente, requer um cancelamento aprovado antes de fechar.

Homologação

Os agentes solicitam a assinatura de um ticket (reembolsos acima de um limite, exceções políticas). Um aprovador nomeado ou qualquer administrador completo decide com uma nota; os solicitantes nunca podem aprovar seu próprio pedido.

Relações de ticket

Link tickets como relacionados, duplicados, pais/filhos ou bloqueio; respostas divididas para um novo ticket vinculado (o inverso da mesclagem, sem enviar e-mail ao cliente); siga tickets para notificações no aplicativo e opcionalmente endereços de e-mails CC seguidores em respostas enviadas.

Caixa de entrada e colisões ao vivo

Com a caixa de entrada em tempo real ativada, novos tickets e respostas aparecem para os agentes dentro de segundos através do fluxo de notificação existente. Em um ticket, os agentes veem quem mais está vendo e recebem um banner de aviso quando um companheiro de equipe já está escrevendo uma resposta. Um botão de um clique Reivindicar atribui o ticket a si mesmo.

Roteamento consciente de AL

As regras de roteamento podem corresponder aos sinais de triagem de IA: prioridade, categoria, risco de sentimento e escalada, além de valores de campo personalizados digitados do formulário de solicitação do portal. Regras usando estas condições permanecem inativas até que o recurso esteja habilitado.

💡
Cada empresa muda de nave. Ligar um no Service Studio → Qualidade & Automação é o opt-in; deixando-os desligados mantém o comportamento idêntico ao antes da atualização.
Por que um cliente ainda pode reabrir um ticket fechado quando minha matriz proíbe o fechamento → abrir?+

Respostas originadas pelo cliente, respostas por e-mail e automação são deliberadamente isentas para que uma política rigorosa nunca possa bloquear os clientes ou interromper o pipeline.

As escadas SLA substituem a ação de violação antiga?+

Não. Políticas salvas com uma única ação de violação continuam funcionando inalteradas. Uma escada substitui a ação única apenas em políticas onde você define etapas.

Suporte

Auto-replicação e escalada de bilhetes

A resposta automática permite que a IA responda automaticamente aos novos tickets. A Escalação move os tickets para um departamento diferente quando a IA detecta necessidades especializadas. Ambos os recursos funcionam entre tickets nativos e tickets criados por e-mail.

Resposta automática
Resposta automática de ticketUm fluxo: novo ticket, um atraso de dois minutos, resposta IA do conhecimento e contexto, então enviado ou salvo como um rascunho.Resposta automáticaespaço de trabalhoQuando chega um novo bilheteNovo ticketqualquer fonteAtraso2 minRespostas de IAKB + contextoEnviadoou rascunhoSe um ser humano responder durante o atraso, a resposta automática é cancelada. A intenção pode aumentar para outro departamento primeiro.1DELAYOs humanos têm a primeira oportunidade.2AI REPLIESA partir do contexto KB +3OR ESCALATERota por intenção
Novos tickets recebem um pequeno atraso (para que os humanos possam pular), então uma resposta de IA do seu conhecimento, enviada ou em fila como um rascunho.

Como funciona a resposta automática

1
O ticket aparece

Um novo ticket é criado a partir de qualquer fonte (email, chat, portal, API).

2
Resposta de agendamento

OpsIQ espera pelo atraso configurado (por omissão: 2 Isto dá aos agentes humanos a oportunidade de responderem primeiro.

3
Primeira resposta ganha

Se um agente humano responder durante o atraso, a resposta automática é cancelada. Caso contrário, a IA gera uma resposta.

4
Gerar e enviar

A IA lê o ticket, verifica a base de conhecimento, contexto do conector e histórico do cliente, então escreve uma resposta. A resposta é enviada (ou em fila como um rascunho para revisão, dependendo das configurações).

Como funciona a escalada

1
Configurar departamentos

Definir quais departamentos podem receber escaladas (por exemplo, Billing pode ser aumentado de General, Technical pode ser escalonado de General).

2
Classificar o ticket

Antes de responder automaticamente, a IA classifica a intenção do ticket: faturamento, técnica, reembolso, abuso, etc.

3
Mover se necessário

Se a intenção do ticket corresponder a um departamento de escalada, o ticket é movido. Uma nota interna explica por quê.

4
Gerar em nova voz

A resposta é gerada utilizando o conhecimento do departamento de destino e treinamento em IA.

Referência de configurações

Ativada a resposta automática

Chave mestre. Ligue para ativar a resposta automática da IA para os bilhetes.

Serviços autorizados

Quais departamentos podem receber auto-respostas. Comece com departamentos de baixo risco (General, Vendas) antes de permitir faturamento.

Atraso

Quanto tempo para esperar até que a IA responda (em segundos). Por omissão: 120 segundos (2minutos).0para respostas instantâneas.

Atraso no cronograma

Opcionalmente, definir diferentes atrasos para o horário de trabalho vs. horas após.

Parar na resposta do administrador

Se um agente humano responder primeiro, cancele a resposta automática. Por omissão: ligada.

Escadagem habilitada

Activar o roteamento automático do departamento com base na intenção do ticket.

Serviços de escalação

Para que departamentos os bilhetes podem ser aumentados.

Estado da escalada

Que status definir ao aumentar (por exemplo, Abrir, Pendente).

Nota de escalada

Se deve adicionar uma nota interna explicando a razão da escalada.

Bilhetes criados por e- mail

Os tickets criados a partir de e- mail (via sondagem de correio ou entrega com tubo MX) seguem as mesmas regras de resposta automática e escalada. A resposta do IA é enviada como uma resposta de email ao cliente. Os rascunhos de e - mail vão para a fila de rascunho para revisão, se configurados.

A IA responderá automaticamente às perguntas de cobrança?+

Só se você habilitar a resposta automática para o departamento de Billing. Recomendamos começar com auto-resposta fora para faturamento e habilitá-lo apenas depois de ter treinado a IA com conhecimento abrangente de cobrança e testado completamente.

E se a IA der uma resposta errada?+

Se um cliente responder dizendo que a resposta estava errada, um agente humano deve intervir. Reveja o histórico da IA para entender por que a IA deu a resposta errada, então atualize a base de conhecimento ou treinamento de IA para evitar que ele aconteça novamente.

Posso rever as respostas automáticas antes de serem enviadas?+

Sim. Defina o modo de entrega como "Draft" em vez de "Enviar Auto-enviar." Os rascunhos de resposta automática aparecerão na fila de Rascunhos para revisão humana antes de enviar.

Suporte

Portal de ticket incorporado

O portal de tickets embed permite adicionar uma interface de gerenciamento de ticket a qualquer site. Os clientes podem visualizar seus tickets, criar novos e responder, tudo sem entrar no administrador OpsIQ.

Como funciona
Portal de ticket incorporadoUm portal de suporte incorporado em um site mostrando a um cliente seus próprios ingressos e um botão de novo bilhete.yoursite.com/supportCentro de suporteNovo ticketOS SEUS VINHOS#1042 · Refund questionAbrir#1038 · Setup helpResolvido#1031 · Invoice copyPendente1EMBEDAdicionar a qualquer site2SELF-SERVEClientes vêem seus tickets3NO LOGINIdentidade manuseada com segurança
Portal de ticket incorporado

Três sabores de incorporação

Incorporação em linha

O portal de bilhetes é remetido para um div na sua página. O portal tem a largura total do seu contentor.

Elemento flutuante

Mostra um botão flutuante que abre o portal de tickets num painel. Semelhante a um elemento de conversação.

Autenticado

Requer um token de identidade assinado. Os clientes só veem os seus próprios tickets.

Instalação

Excerto de incorporação de tickets
<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>

Geração de símbolos de identidade

Para o modo autenticado, seu servidor deve gerar um token de identidade assinado. Este token diz a OpsIQ quem é o cliente para que ele veja apenas seus próprios tickets.

PHP · gerar token de identidade
<?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 gancho · símbolo de identidade
// 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, gerar token identidade
// 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;
}

Características do elemento

Lista de tickets

Lista de pesquisa, filtrada por status. Um ticket de destaque "Aguardando você" que a equipe respondeu.

Conversa com tópicos

Visão de conversação completa com texto rico, anexos e timestamps.

Rascunho de economia automática

As respostas de rascunho do cliente são salvas automaticamente para que eles não percam o trabalho se navegarem.

Polículas ao vivo

As pesquisas de widget para novas respostas a cada ~12 segundos.

Resolver/ reabrir

Os clientes podem resolver ou reabrir seus próprios tickets com um clique.

Notas internas de pessoal nunca são mostradas aos clientes na incorporação do ticket. Este é um limite de segurança difícil.
Suporte

Caixa de entrada do bate- papo

A caixa de entrada do Chat é onde sua equipe gerencia conversas ao vivo com clientes. Ele mostra chats ativos, conversas atribuídas, bate-papos manipulados por IA e histórico arquivado.

Caixa de entrada do bate- papo
Caixa de entrada do bate- papoUma caixa de entrada para chat de três painéis: lista de conversas, conversa ao vivo com um chip de rascunho de IA e um painel de contexto visitante/CRM.Caixa de entrada do bate- papoespaço de trabalhoJDJane.onde está a minha ordemMOMensah.questão de cobrançaRT Não-conformidadeRita.I. A. LideradosOnde está o meu pedido?Enviado hoje · UPSAI rascunho prontoResponder...VISITANTESDesconhecidoEUA · Chrome3 past ordersLTV $480CRMEtapa: Cliente1UNIFIEDCada bate-papo ao vivo2CONTEXTVisitante + painel CRM3AI ASSISTRascunho e reescrever
Uma caixa de entrada para cada chat ao vivo, lista de conversas, o tópico com rascunho de IA no toque e contexto completo visitante + CRM.

Gerenciando conversas

Conversas activas

Conversas em andamento. Ponto verde = cliente está digitando ou recentemente ativo.

Manuseado por I. A.

Conversas onde a IA está respondendo. Você pode assumir a qualquer momento clicando em "Junte-se".

Atribuído a mim

Conversas especificamente atribuídas a ti.

Esperando

Conversas onde o cliente está esperando por uma resposta.

Arquivo

Conversas concluídas. Pesquisada por palavra-chave, data e cliente.

Transferência de IA para humano

Quando você assumir uma conversa da IA, siga estas três regras:

1
Cumprimentem-se pessoalmente

Apresenta-te pelo nome. "Olá, esta é a Sarah da equipa de apoio."

2
Contexto de referência

Mostrar-lhe ler a conversa. "Posso ver que perguntou sobre o seu estado de encomenda."

3
Definir as expectativas

Diga ao cliente o que acontece a seguir. "Estou olhando para isso agora e terei uma resposta para você em alguns minutos."

Ligar/desligar IA por conversação

Use o IA alterne no topo de cada conversa. Quando a IA está ligada, a IA gera respostas. Quando desligada, apenas os agentes humanos podem responder. A IA lembra- se do contexto da conversa mesmo quando desligada e de volta.

Modo de afastamento / horas fora

Configure o horário de trabalho em Configurações. Fora do horário comercial, a IA pode: (1) Continuar a responder aos clientes, (2) Mostrar uma mensagem "away" e criar um ticket para follow-up, ou (3) Desabilitar chat completamente e mostrar o formulário de ticket. Escolha o comportamento que se encaixa no seu modelo de suporte.

Manusear conversas difíceis

1
Fica calmo.

Não corresponde à intensidade emocional do cliente. Reconheça sua frustração sem ser defensiva.

2
Recolha de factos

Antes de responder, reúna as informações relevantes: detalhes do pedido, status da conta, tickets anteriores.

3
Escada cedo

Se a situação envolver reembolsos, ameaças legais, abuso ou segurança, se tornar um membro sênior da equipe em vez de tentar lidar com isso sozinho.

Posso ter conversa em equipa (agente para agente)?+

Sim. Use notas internas dentro de uma conversa para se comunicar com outros agentes. Essas notas nunca são visíveis para o cliente.

O que acontece quando eu fechar uma conversa?+

A conversa se move para o Arquivo. Se o cliente enviar uma nova mensagem mais tarde, uma nova conversa será criada.

Suporte

Canais de mensagens

Conecte WhatsApp, Facebook Messenger, Instagram DM, Telegram e LINE para que as mensagens que os clientes já enviam você cheguem na mesma caixa de entrada do seu chat no site, respondido pelo mesmo assistente de IA.

Cada canal comporta-se de forma idêntica uma vez conectado: uma mensagem do cliente torna-se uma conversa na caixa de entrada do Chat, seu assistente de IA atende usando o mesmo conhecimento e instruções que seu bate-papo do site, e qualquer agente pode assumir. Nada sobre sua IA precisa configurar por canal.

O que é a ligação

Facebook Messenger & Instagram

Um clique. Abra os conectores → Facebook Messenger & Instagram DM, clique em Conectar, entre com a conta do Facebook que gerencia sua Página e escolha a Página. O Instagram vem com ela quando sua Página tem uma conta profissional do Instagram vinculada.

WhatsApp

Um clique onde o seu provedor oferece: abra o conector Messaging Hub e use o Connect WhatsApp, siga a inscrição guiada da Meta para pegar ou criar o número de negócios do WhatSApp. Caso contrário, cole credenciais de qualquer um dos gateways 20.

Telegrama

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.

LINHA

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

Adicione um provedor (Twilio, Vonage, Termii e outros) no Centro de Mensagens com suas credenciais e número do remetente.

Cada conector mostra suas próprias instruções passo a passo dentro da gaveta, incluindo exatamente o que copiar e onde. Você nunca precisa de credenciais de desenvolvedor para as opções de um clique.

Ligar um canal

A ligação de um canal não o inicia. Ir para Settings → Client Chat → Advanced → Messaging Channels, ligue o botão mestre e depois o canal individual. Cada canal tem seu próprio interruptor de resposta automática IA, para que você possa pilotar em um antes de abrir o resto.

1
Ligar o canal

Nos conectores, usando as instruções na gaveta do conector.

2
Testar a ligação

Clique em Test. Ele faz uma chamada real para o provedor e diz-lhe o que está errado se alguma coisa estiver.

3
Activar os canais de mensagens

Configurações → Conversa com o cliente → Avançado. Ligue o interruptor mestre e, em seguida, o canal.

4
Enviar uma mensagem a si próprio

De outra conta, envie mensagem para sua Página, número ou bot. Deve aparecer na caixa de entrada do Chat em segundos e obter uma resposta de IA.

Janelas de resposta

Plataformas de mensagens limitam quanto tempo um negócio pode responder após um cliente escrever. OpsIQ mostra o tempo restante em cada conversação e aplica a regra para você.

WhatsApp

24 horas da última mensagem do cliente. Depois disso, você só pode enviar um modelo aprovado, que você configura na mesma aba Avançado.

Mensageiro e Instagram

24horas para respostas normais; os agentes podem responder até7dias depois, sob a mesada de agente humano da Meta.

Telegram, LINHA, SMS

Não há janela de plataforma.

⚠️
Se uma resposta falhar porque a janela fechou, a conversa mostra o porquê. Esta é uma regra de plataforma, não um limite OpsIQ.

Questões comuns

Os clientes vêem que uma IA respondeu?+

Apenas se você lhes disser. A resposta vem da sua Página, número ou bot exatamente como uma resposta humana faria. Suas instruções de IA controlam o tom e se ele se identifica.

Um agente pode assumir a conversa no meio?+

Sim. Abra a conversa na caixa de entrada do Chat e clique em Entrar. A IA para, você digita, e o cliente vê um thread contínuo no lado deles.

E se eu desligar um canal?+

Usar a desconexão no conector. O histórico da mensagem é mantido; as novas mensagens simplesmente param de chegar, e a plataforma é avisada para parar de enviá- las.

Duas áreas de trabalho podem usar a mesma Página do Facebook?+

Não. Uma página pertence a uma área de trabalho de cada vez. Conectando-a em outro lugar, ela é movida e a primeira área de obra para de receber mensagens, então desconecte deliberadamente ao invés de reconectar em outro local.

Suporte

Conversas de chat reais

Estes exemplos mostram como uma IA cliente bem treinada deve lidar com cenários comuns. Use-os para testar o seu treinamento de IA e identificar lacunas.

Exemplos de conversação 10

1. Retornando o cliente perguntando sobre a ordem

Cenário:
Customer: Hi, I placed an order 3 days ago and haven't received any shipping notification yet. Order #ORD-5523.
O que fazer:

A IA deve: (1Procura ordem #ORD-5523 através do conector. (2) Relate o estado atual e informações de rastreamento, se disponíveis. (3) Se a ordem for adiada, reconheça o atraso e forneça uma linha do tempo estimada. (4) NÃO invente um status de transporte se o conector não tiver um.

2. Perspectiva perguntando sobre preços

Cenário:
Customer: How much does your Pro plan cost? Do you offer annual billing?
O que fazer:

A IA deve: (1) Resposta da base de conhecimentos com preços correntes. (2) Explicar a diferença entre faturamento mensal e anual. (3) Se a resposta não estiver na base de conhecimento, diga-o e ofereça-se para conectá-los com vendas. (4) NÃO invente preços que não estejam na base de conhecimento.

3. Cliente irritado exigindo reembolso

Cenário:
Customer: This is ridiculous! Your product does not work and I want my money back NOW.
O que fazer:

A IA deve: (1) Reconheça a frustração com calma. (2) Pedir o número de ordem ou e-mail da conta. (3) Explicar o processo de reembolso. (4) Criar um ticket de suporte ou aumentar para um agente humano. (5) NÃO prometa um reembolso, que requer aprovação humana.

4. Caixa de billing edge dupla

Cenário:
Customer: I was charged twice this month. My bank shows two charges of $29.99.
O que fazer:

A IA deve: (1) Reconhecer a preocupação. (2) Recolha os dados relevantes (e-mail, datas de cobrança). (3) Explique que questões de faturamento requerem revisão humana. (4) Criar um ticket de departamento de faturamento com os detalhes. (5) Definir prioridade para Alto.

5. Cliente multi-linguagem

Cenário:
Customer: Bonjour, je voudrais savoir si vous livrez en France?
O que fazer:

A IA deve: (1) Responder na língua do cliente se essa língua é suportada. (2) Responder à pergunta sobre a entrega à França da base de conhecimentos. (3) Se o idioma não for suportado, responda no idioma padrão e mencione quais idiomas estão disponíveis.

6. Conversa pós-hora

Cenário:
Customer: Hello, is anyone there? I need help with my account.
O que fazer:

A IA deve: (1) Se configurado para IA pós-hora, responder e ajudar. (2) Se após-horas cria tickets, diga: "Nossa equipe está atualmente offline. Eu criei um ticket de suporte para você e alguém irá acompanhar durante o horário comercial." (3) Forneça o número do bilhete.

7. Comprador de comparação pré-compra

Cenário:
Customer: How does your product compare to [Competitor X]?
O que fazer:

A IA deve: (1) Descreva os pontos fortes do seu produto factualmente. (2) NÃO fale mal do concorrente. (3) Se houver uma página de comparação na base do conhecimento, link para ele. (4) Se o cliente perguntar sobre os recursos que você não tem, seja honesto.

8. Cliente quer uma recomendação

Cenário:
Customer: I run a small online store with about 100 orders per month. Which plan is right for me?
O que fazer:

A IA deve: (1) Faça perguntas esclarecedoras se necessário (por exemplo, o que mais importa). (2) Recomendar um plano baseado na base de conhecimentos. (3) Explique por que esse plano se adapta às suas necessidades. (4) Mencione que eles podem começar com um plano menor e atualizar mais tarde.

9. Cliente tentando obter um desconto não autorizado

Cenário:
Customer: I saw online that you give 50% discounts. Can I have one?
O que fazer:

A IA deve: (1) Explicar educadamente as promoções atuais se existirem. (2) NÃO crie ou prometa descontos que não estão na base de conhecimento. (3) Se o cliente persistir, ofereça-se para conectá-los com a equipe de vendas.

10. O cliente precisa de ajuda com um recurso

Cenário:
Customer: How do I export my data? I can't find the export button.
O que fazer:

A IA deve: (1) Fornecer instruções passo a passo da base de conhecimentos. (2) Inclua o caminho exato da página e a localização do botão. (3) Se o recurso requer um plano específico, mencionar isso. (4) Se o recurso não existe, seja honesto e sugira alternativas.

Suporte

Roteamento de bate-papo e escalada

Quando um chat ao vivo precisa de uma pessoa real, a IA responde a duas perguntas: qual equipe é dona desta conversa e quem deve ser informado. Ambos estão configurados em Configurações, Conversa com o Cliente, Fluxo de Suporte, sob departamentos de roteamento de IA.

Escolha dos serviços que a IA pode utilizar

As duas caixas nesse painel são uma lista branca. Os departamentos movidos para a direita são os únicos que o IA pode encaminhar ou abrir tickets. Qualquer coisa à esquerda é invisível para ele, mesmo se o departamento existe e está com pessoal. Comece estreita e adicione departamentos como você os funcionários.

💡
If no department is enabled at all, OpsIQ falls back to legacy routing across every department it can find. Treat that as a safety net, not a configuration choice.

Quem recebe a escalada

This is the part most people expect to configure and do not need to. When the AI escalates a chat, OpsIQ emails the people attached to that department. You manage that list once, on the Team and Departments page, and both ticket escalation and chat escalation follow it.

Membros da equipa de departamento

Cada administrador ativo ligado ao departamento recebe sua própria cópia. Contas suspensas e desativadas são ignoradas.

Administrador primário

Usado quando nenhum membro da equipe está ligado, então uma escalada ainda atinge alguém.

Ninguém está ligado

O painel de encaminhamento marca que o departamento em vermelho e a IA não diz ao visitante que um humano foi notificado.

⚠️
O endereço de email do próprio departamento não é usado como destinatário. Esse endereço é a caixa de correio de entrada do departamento, o e- mail que entra é compatível com o acesso aos tickets. Uma escalada enviada lá seria novamente usada como um novo ticket em vez de alcançar uma pessoa.

O departamento de captura-tudo

Exatamente um departamento carrega a marca catch-all. Ele recebe bate-papos que o IA não poderia confiantemente lugar, e é um último recurso em vez do caminho normal.

1
Ganhar sinais claros

A redação da faturação vai para um departamento de cobrança, hospedagem e formulação do erro para um técnico, comprando a redação para vendas.

2
O classificador de IA tenta a seguir

Se as palavras-chave são inconclusivas, o modelo lê a conversa e escolhe dos departamentos habilitados.

3
Depois o "pegar tudo"

Só quando ambos não aparecem, é que o departamento de apanha-todos recebe a conversa.

4
O guarda de vendas

Se o catch-all é um departamento de vendas e o visitante não mostrou sinal de compra, OpsIQ procura por um departamento técnico ou suporte em vez disso, para que as perguntas comuns de suporte não se acumulam nas vendas.

O que o visitante é dito

Se o e-mail de escalada for enviado, a IA informa ao visitante que a equipe foi notificada. Se não puder sair, a inteligência artificial diz algo honesto e convida-os a deixar a mensagem no chat em vez disso. Ela não vai alegar que um humano foi alertado quando nenhum e- mail foi enviado.

O painel diz "Ninguém para notificar" de um departamento+

Ninguém está ligado a ele. Abra a equipe e departamentos, anexe pelo menos um administrador ativo e então reload a página de configurações. O painel lê ao vivo.

As escaladas de conversa podem ir para outro lugar que não a equipa?+

Sim. Um endereço personalizado anteriormente salvo para um departamento ainda substitui a lista de equipes. Novas configurações devem anexar pessoas ao departamento em vez disso, então há um único lugar para manter.

Porque é que a minha captura foi ignorada?+

Check whether it is a sales department. If it is, and the visitor showed no buying signal, OpsIQ routes to a support or technical department on purpose.

Suporte

Caixas de correio e rascunhos por email

OpsIQ can connect to email mailboxes to automatically create tickets from incoming email and send replies as email. It also provides AI-drafted replies for human review.

E- mail
E- mail para o ticketUma caixa de correio IMAP à esquerda alimentando e-mails recebidos em um ticket com uma resposta com tela de IA à direita.E- mailespaço de trabalho[email protected] · IMAPPedido de restituição[email protected]Não foi possível entrar[email protected]Cópia da factura[email protected]Bilhete #1042do email · FaturaçãoGostaria de obter um reembolso para oCarga duplicada...Rascunho de IARever & enviar resposta1INGESTIMAP & encaminhamento para2TO TICKETSRotulado automaticamente3AI DRAFTSRespostas a reexame
Puxe o email sobre IMAP (ou encaminhamento), transforme cada um em um ticket threaded, e deixe que a IA redigir a resposta para revisão.

Conectando uma caixa de correio

Protocolo

IMAP (a maioria dos fornecedores), Gmail API (Google Workspace), ou Microsoft Graph (Outlook 365).

Configuração necessária

Máquina, porta, criptografia (SSL/TLS), nome de usuário, senha ou senha do aplicativo, pasta (geralmente INBOX).

Mapeamento do Departamento

Mapeie a caixa de correio para um departamento de tickets. E-mails para [email protected] criar tickets no departamento "Suporte".

Configuração do Gmail (passo a passo)

1
Habilitar verificação 2-Step

Acesse a Conta Google > Segurança > 2-Passo de Verificação e habilite-a.

2
Criar uma Senha de Aplicativo

Vá para a Conta do Google > Segurança > Senhas de aplicação. Selecione "E-mail" e "Outros (OpsIQ)". Copiar o 16- Senha de carácter.

3
Digite em OpsIQ

Ir para o E- mail > Caixas de Correio > Adicionar. Definir a máquina: imap.gmail.com, porto: 993, encriptação: SSL, nome de utilizador: [email protected], senha: a senha do aplicativo.

4
Ensaio

Click Test Connection. If successful, OpsIQ will start polling for new emails at the configured interval.

Outlook 365 setup

1
Verificar se IMAP está activa

Em configurações do Outlook > Mail > Sincronizar e-mail, garantir IMAP está ativado.

2
Usar senha de aplicação ou autenticação moderna

Se o MFA estiver habilitado, crie uma senha de aplicativo. Caso contrário, use sua senha regular.

3
Digite em OpsIQ

Máquina: outlook.office365.com, porto: 993, encriptação: SSL, nome de utilizador: [email protected].

cPanel webmail setup

1
Procurar as configurações IMAP

In cPanel > Contas de Email, clique em sua conta de email para IMAP configurações.

2
Digite em OpsIQ

Máquina: normalmente mail.yourdomain.com ou o seu nome de máquina do servidor, porto: 993 (SSL) ou 143 (STARTTLS), nome de utilizador: endereço de e-mail completo.

Rascunhos de e- mail de IA

Quando a resposta automática é definida como "Draft", o IA gera rascunhos de respostas que aparecem na fila de Rascunhos. Você pode:

Revisão

Leia o rascunho e verifique se há precisão.

Editar

Modifique o texto, tom ou conteúdo antes de enviar.

Enviar

Aprovar o rascunho e enviá-lo como uma resposta de email.

Descartar

Apagar o projecto se não for adequado.

Enviar automaticamente

Se a confiança for alta o suficiente e o envio automático estiver habilitado, os rascunhos são enviados automaticamente após um atraso configurável.

Por que os e-mails não estão sendo convertidos para tickets?+

Controlo: (1) A caixa de correio está conectada e saudável? Procure por status verde em Email > Caixas de Correio. (2A votação por e-mail requer cron. (3) O email está sendo filtrado ou movido para uma pasta diferente do INBOX?

Posso usar várias caixas de correio?+

Cada caixa de correio pode ser mapeada para um departamento diferente. [email protected] vai para o Apoio, [email protected] vai para Billing.

Suporte

Satisfação do cliente (CSAT)

A CSAT mede a satisfação de tickets e bate-papo, supera respostas infelizes e compara IA e resultados humanos.

Tela do produto
Satisfação do clienteA página CSAT combina cartões de pontuação, acompanhamento do detractor, comentários, avarias de departamento e agente e feedback de chat.Satisfação do clienteespaço de trabalhoRESPOSTAS386AVERAGE4.6POSITIVE91%CONCEITO AO LIVRO DA ESPAÇO DE TRABALHOAcompanhamento do detractor12 respostas classificadas1–2RevisãoInquéritos de bilhetesEnviado 24h após fecharAutomáticoReaplicação de conversaçãoIA 4.5 · Humano 4.7CompararVista do agentePontuação e contagem de respostasTreinador1WATCH AVERAGEUsar tendência, não uma pontuação2FOLLOW DETRACTORSLeia o comentário3COMPARE FAIRLYIA e humanos
A página CSAT combina cartões de pontuação, acompanhamento do detractor, comentários, avarias de departamento e agente e feedback de chat.

Os inquéritos de bilhetes são programados após o encerramento (normalmente 24 Uma resposta positiva é uma pontuação de4ou 5. Use a fila de detratores para pontuações de 1 ou2e leia o ticket/conversa antes de entrar em contato com o cliente.

O feedback do chat é relatado separadamente para conversas resolvidas por IA e manipuladas por humanos. Tamanhos de amostra baixos não devem ser usados para classificar agentes ou modelos.

Suporte

Transmissões de e- mail para a equipa

A página da Plataforma de Email permite que um operador autorizado envie uma mensagem única a todos os agentes ativos, agentes selecionados ou um departamento e reveja o histórico do envio.

Tela do produto
Plataforma de E- mailO compositor de emails da equipe mostra o público, assunto, mensagem e histórico de entrega passado.Plataforma de E- mailespaço de trabalhoRECIPIENTES12DELIVERED11FALHO1CONCEITO AO LIVRO DA ESPAÇO DE TRABALHOPúblicoTodos os agentes activosSeleccionadoAssuntoRota de apoio julhoProntoMensagemNotas de programação e escaladaProntoHistóricoTransmissões anteriores e resultadoVer1CHOOSE PEOPLETodos, selecionados ou equipe2WRITE CLEARLYAssunto e mensagem3REVIEW HISTORYConfirmar resultado
O compositor de emails da equipe mostra o público, assunto, mensagem e histórico de entrega passado.

Esta página é para mensagens operacionais internas, não marketing de clientes. Escolha o menor público correto, nomes de visualização e endereços, em seguida, envie. A entrega usa o caminho de email configurado e registra o resultado.

Suporte

Caixas de correio, entrega e email de entrada

Configure how OpsIQ sends email, turns inbound messages into tickets and proves the sending domain is ready.

Tela do produto
Configuração do E- mailAs configurações de email combinam roteamento outbound, De identidade, ingestão da caixa de correio, verificações de entregabilidade e e-mail teste.Configuração do E- mailespaço de trabalhoCONCESSÃOSMTPMAILBOXES3DOMÍNIOPassarCONCEITO AO LIVRO DA ESPAÇO DE TRABALHOConector preferidoConector SMTP / fornecedorConfiguradoDa identidadeSupport <[email protected]>ProntoIMAP mailbox[email protected] · INBOXPolaçãoEntregabilidadeServiços de SPF · DKIMPassar1CHOOSE OUTBOUNDConector ou SMTP2CONNECT INBOXIMAP ou tubo3ENSAIOEnviar e verificar
As configurações de email combinam roteamento outbound, De identidade, ingestão da caixa de correio, verificações de entregabilidade e e-mail teste.

E- mail de saída

Administradores completos podem escolher o conector de e-mail preferido; OpsIQ cai de volta para configurado SMTP/mail entrega quando apropriado. Defina um reconhecível Do nome/endereço, envie um teste e verifique o 24-metricas de sucesso/fracasso horas.

Caixas de correio

Uma caixa de correio IMAP precisa de um nome, endereço de e-mail, departamento de destino, host, porto, modo de segurança, nome de usuário, senha, pasta, estado de votação e escolha certificado-validação. Pesquisa agora verificar a ingestão antes de esperar pelo cron.

Tubulação instantânea

No mesmo servidor, um tubo de e- mail pode passar a mensagem RFC822 em bruto diretamente. Um servidor de e - mail remoto pode POSTar a mensagem bruta para o terminal de entrada protegido usando seu token. Ambos os caminhos entram no mesmo pipeline de desduplicação, threading e roteamento de tickets.

Entregabilidade

A verificação SPF/DKIM/DMARC é uma evidência consultiva para o domínio configurado From. Uma verificação verde não garante a colocação da caixa de entrada, mas uma falha deve ser corrigida antes de enviar mensagens de produção.

Suporte

Suporte Portal Studio

Suporte Portal Studio projeta e publica a experiência de suporte voltado para o cliente sem exigir ativos de imagem externa.

Tela do produto
Suporte Portal StudioO Portal Studio mostra uma visualização responsiva ao lado de temas, navegação, conhecimento, ticket, assistente, formulário, rodapé e controles CSS.Suporte Portal Studioespaço de trabalhoTEMPLATEModernoANTERIORMENTEÁrea de trabalhoESTADORascunhoCONCEITO AO LIVRO DA ESPAÇO DE TRABALHOTemaCores e tipografia de marcasEditarNavegaçãoConhecimento, bilhetes, assistenteEditarFormulário de ticketCampos, encaminhamentos e cópiaEditarPublicarValidar e fazer viverRevisão1CHOOSE TEMPLATEIniciar da estrutura2PREVIEW SIZESEcrã para móvel3PUBLISH SAFELYReveja e depois solte
O Portal Studio mostra uma visualização responsiva ao lado de temas, navegação, conhecimento, ticket, assistente, formulário, rodapé e controles CSS.

Use o modelo como ponto de partida, depois configure o tema, layout, navegação, pesquisa de conhecimento, formulário de ticket, assistente, rodapé, marca, comportamento do ticket, configurações personalizadas CSS e geral. Visualize desktop, tablet e móvel antes de publicar.

Suporte

Ganhos de conhecimento

A fila de conhecimento coleta perguntas do cliente que a IA não poderia responder com confiança para que a equipe pudesse melhorar a cobertura.

Tela do produto
Ganhos de conhecimentoA fila de espera está em falta ou com baixa confiança e rastreia se a equipe as resolveu.Ganhos de conhecimentoespaço de trabalhoOPEN GAPS28REPEATED9RESOLVED116CONCEITO AO LIVRO DA ESPAÇO DE TRABALHOLimites migratóriosAsked 14 timesAltaSuporte ao fim de semanaAsked 8 timesMédioCalendário das restituiçõesAsked 6 timesMédioAPI regiãoAsked 3 timesBaixo1REVIEW QUESTIONVer contexto de conversação2CHOOSE FIXArtigo ou aviso3RESOLVEVerificar a próxima resposta
A fila de espera está em falta ou com baixa confiança e rastreia se a equipe as resolveu.

Abra uma lacuna para ler a pergunta original e conversa próxima, então escolha a correção certa: atualizar um artigo existente, criar um novo artigo de conhecimento, adicionar um fato de negócio, dados corretos do conector ou mudar instruções de escalada. Marque-o resolvido apenas após uma avaliação ou teste real retorna uma resposta aceitável.

Suporte

Administração de página de status

A página de administração do status comunica a saúde do serviço e incidentes usando componentes, estados atuais e atualizações.

Tela do produto
Administração do estatutoA administração de status lista componentes e incidentes para que os operadores possam publicar informações claras e com o tempo.Administração do estatutoespaço de trabalhoOVERALLOperacionalCOMPONENTES7INCIDENTS1CONCEITO AO LIVRO DA ESPAÇO DE TRABALHOSítio WebOperacionalVerdeAPIDesempenho degradadoObservarIngestão por e- mailOperacionalVerdeIncidente atualAPI latency investigationAbrir1UPDATE COMPONENTEscolher o estado de limpeza2POST INCIDENTActualizações com o tempo3RESOLVEFechar com resumo
A administração de status lista componentes e incidentes para que os operadores possam publicar informações claras e com o tempo.

Use estados de componentes consistentemente. Quando um incidente afeta os clientes, publique um aviso inicial, adicione atualizações com data-marcadas como mudança de fatos e feche com um resumo conciso da resolução. Não use a página de status como um registro interno de depuração; diagnósticos sensíveis pertencem a OpsIQ e logs de servidor.

IA

Configurar o seu IA

AI Configuration é onde você escolhe seu provedor de IA, modelo e controles de custos. OpsIQ suporta vários fornecedores: Claude (Anthropic), GPT-4o (OpenAI), Gemini (Google) e Grok (xAI). Você pode usar o seu próprio API chave (BYOK) ou AI gerenciada se disponível em seu plano.

Configurar IA
Configuração da IAUm painel de configurações de IA: um provedor gerenciado-AI / BYOK _, um seletor de modelos e um medidor mensal de orçamento.Configuração da IAespaço de trabalhoConfiguração da IAFornecedorIA GerenciadaA sua chave (BYOK)Modeloclaude · balanceadoOrçamento mensal da IA62%1TWO MODESIA gerenciada ou BYOK2PICK A MODELVelocidade vs profundidade3BUDGETSToken tampas e controle de custos
Escolha IA gerenciada ou sua própria chave, escolha um modelo para velocidade vs profundidade e cap de gastar mensalmente com um orçamento token.

Escolher um fornecedor

Claude (Anthropic)

Forte raciocínio, cuidado com os fatos, bom em seguir instruções complexas. Modelos: claude-sonnet4-20250514, claude...3.5- Sonnet. Melhor para: conversas de apoio, perguntas técnicas, análise detalhada.

GPT-4o (OpenAI)

Rápido, criativo, bom conhecimento geral. Modelos: gpt-4o, gpt4o-mini. Melhor para: respostas rápidas, escrita criativa, questões de amplo conhecimento.

Gemini (Google)

Bom em questões factuais, suporte multi-linguagem. Modelos:gemini-2.0- Flash,gemini-1.5 Melhor para: suporte multi-linguagem, pesquisas factuais.

Azul escuro (xAI)

Respostas rápidas e concisas.3O melhor para: respostas rápidas, tom casual.

BYOK vs IA gerenciada

BYOK (Traga a sua própria chave)

Você fornece sua própria chave API do provedor. Você paga o provedor diretamente. Controle total sobre a seleção e uso de modelos.

IA Gerenciada

A IA é fornecida como parte do seu OpsIQ Plano. API A utilização é medida com base no saldo de crédito da IA do seu plano.

Configuração passo a passo

1
Ir para a configuração da IA

No administrador OpsIQ, navegue até Configurações > Configuração de IA.

2
Selecionar provedor

Escolha o seu fornecedor de IA a partir da lista.

3
Enter API key

Se utilizar BYOK, insira o seu API chave. Para AI Gerenciado, isto é tratado automaticamente.

4
Escolher modelo

Selecione o modelo específico a usar. Os modelos menores são mais rápidos e mais baratos. Modelos maiores dão respostas de melhor qualidade.

5
Ligação de ensaio

Clique em "Teste conexão" para verificar se a chave e o modelo API estão funcionando. Um checkmark verde significa sucesso.

6
Gravar

Clique em Salvar para ativar sua configuração de IA.

Controlos de custos

Orçamento mensal

Defina um gasto mensal máximo em tokens de IA. Quando o orçamento é alcançado, as IA apresentam graciosamente degradar (respostas mais curtas, nenhuma resposta automática) ao invés de parar completamente.

Limite do símbolo por conversação

Máximo de fichas por conversação. Impedi conversas em fuga de consumir créditos excessivos.

Alerta de equilíbrio baixo

Quando o seu saldo de crédito da IA cai abaixo do limiar (padrão: 50,000 tokens), um aviso aparece no administrador. Defina isso na Configuração da IA.

Configuração por espaço de trabalho

A configuração de IA é por espaço de trabalho. Se você gerenciar vários sites, cada espaço de trabalhos pode usar um provedor, modelo e orçamento diferentes. O espaço de obra herda padrões globais a menos que sobreponham. Para configurar por espaço do trabalho: mude para o espaço de serviço, então vá para a Configuração de IA e salve as configurações lá.

Getting API keys

Anthropic (Claude)

Ir para console.anthropic.com > API Chaves > Criar chave. Copie a chave começando com "sk-ant-".

OpenAI (GPT)

Ir para platform.openai.com > API Chaves > Criar nova chave secreta. Copie a chave começando com "sk-".

Google (Gemini)

Ir para aistudio.google.com > Obter API Chave. Crie uma chave para o seu projeto. Copie a chave.

xAI (Grego)

Vá para console.x.ai > API Chaves. Crie e copie sua chave.

Testando sua configuração de IA

Cenário:
After entering your API key, click "Test connection." You should see a green checkmark and a sample response from the AI.
O que fazer:

Se o ensaio falhar: (1) Verificar que o API a chave está correta (sem espaços extras). (2) Verifique se a sua conta tem faturamento configurado com o provedor. (3) Verifique se o nome do modelo é válido. (4) Se usar IA gerenciada, verifique se sua licença está ativa.

Qual é o melhor provedor?+

Não existe um único melhor provedor. Claude é excelente para conversas de suporte. GPT-4o é rápido e versátil. Gemini lida bem com vários idiomas. Tente cada um e veja qual produz os melhores resultados para o seu caso de uso específico.

Posso trocar de fornecedor mais tarde?+

Sim. Mude o provedor e a chave API a qualquer momento. O histórico de conversação existente é preservado. A IA usará o novo provedor para todas as conversas futuras.

O que acontece quando eu ficar sem créditos?+

A IA se degrada graciosamente: as respostas tornam-se mais curtas, pausas de resposta automática e o administrador mostra um aviso de baixo equilíbrio. O rastreamento principal, tickets e CRM continuam trabalhando sem IA.

IA

Conversa de clientes mais inteligente e mais barato

Um conjunto de controles opt-in que tornam seu chat do cliente mais inteligente (razão para a conta de um cliente como um agente humano) ou mais barato (ele envia menos IA ou responde em menos etapas). Cada controle é desligado por padrão e independente, ligar nunca muda qualquer outro comportamento. A maioria vive sob Configurações > Conversa com o cliente > Comportamento; alguns estão em Configurar sua IA e Treinar sua IA.

Respostas mais inteligentes (modo agente)

Um chatbot normal responde a uma pergunta de um olhar. Modo agente em, o assistente pode fazer várias verificações de conta somente leitura em uma única vez e cruzá-los, por exemplo: "eu tenho tickets abertos, e é meu saldo suficiente para minha próxima renovação?" é respondido em uma resposta com a matemática feita. Ele só se envolve para clientes verificados em contas ou questões de reembolso; tudo mais corre o caminho normal de respostas individuais.

Modo agente

Até algumas pesquisas somente de leitura por turno, com referências cruzadas antes de responder. Ligue quando você tiver uma plataforma conectada (WHMCS, Shopify, Stripe, Zendesk, etc.). Off = comportamento de busca única de hoje, inalterado.

Profundidade de pensamento para respostas do agente

Como o modelo explica as curvas complexas (baixa/média/alta). Comece em Baixo; a maioria das perguntas de suporte são bem tratadas lá.

Modelo de agente

Pins um modelo mais forte apenas para turnos de agente complexos, então o chat diário fica em um modelo leve, barato e só as curvas duras pagam por profundidade.

Planeje com antecedência · respostas de um passo (beta)

Um pequeno passo de planeamento decide quais as pesquisas a puxar e se a base de conhecimentos é necessária, então responde numa chamada principal em vez de várias etapas. Uma sub- opção no modo Agent. Não pode ser activada sem o modo Agenciar estar ligado. A mesma qualidade da resposta, menos chamadas em questões multi- partes.

Conversação e compreensão

Memória de longa conversação (beta)

Mantém um resumo curto das mensagens mais antigas (nomes, números de ticket/fatura, quantidades, decisões) para que o assistente permaneça consistente em chats muito longos sem reenviar a transcrição inteira. Melhor para threads pesados e longos de suporte; pares com o modo Agente.

Tolerância ao tipo

Lê pequenos erros ("meu ticketts abertos", "invocações não pagas") como as palavras pretendidas para que a informação certa seja encontrada em vez de ser perdida. Funciona com todas as plataformas conectadas. Desligado por padrão; útil para chat pesado para celular.

Contexto da conta em relevo

Apenas atribui o instantâneo da conta do cliente quando a pergunta é realmente sobre sua conta (equilíbrio, faturas, tickets, serviços), ignorando-a em questões gerais. Reduz o custo sem perda de qualidade. O assistente ainda pode obter a conta ao vivo quando uma virada precisa dela.

Poupança de custos

Ignorar a busca de conhecimento para saudações (beta)

"Oi", "obrigado" e "ok" não desencadeiam uma pesquisa de base de conhecimento, essas respostas nunca a usam. Qualquer mensagem com conteúdo real ainda busca como normal.

Resposta mais longa permitida (pormenores)

Caps quanto tempo uma única resposta pode ser. Comprimento de resposta é a parte mais cara de uma chamada, então um cap sensível (em torno de 500 para suporte) é o controle de custo de chat mais eficaz. Só diminui seu limite global, nunca aumenta-lo.

Em Configurar seu IA

Profundidade de pensamento (conversa de cliente e administrador)

Quanto o modelo pensa antes de responder (mínimo a alto). Mantenha o chat do cliente em mínimo/baixo para velocidade; reserve configurações mais altas para análise e o copiloto administrador.

Modelo por IA (por posto de trabalho)

Cada superfície de IA (conversa ao vivo, rascunhos de tickets, resumos, análise, copiloto administrativo, promoções, Inteligência do Site e muito mais) pode ser executada em seu próprio modelo. Luz onde a velocidade importa, forte onde a qualidade importa. Em branco sobre uma superfície = predefinição do provedor para esse trabalho.

Controlos de custos de chat do administrador

O copilot do administrador pode manter uma memória de trabalho limitada e carregar apenas as ferramentas que uma pergunta precisa (ferramentas leves) em vez de cada ferramenta a cada turno.

No Treinar o seu IA

Instruções de compressão

Suas instruções são enviadas em cada turno, de modo que seu comprimento é um custo recorrente. O botão Comprimir reescreve uma fenda para dizer a mesma coisa com menos palavras. Ele recusa a reescrita se ela cair qualquer {variable} ou regra, e relata o que protegeu, para que nunca muda silenciosamente de significado.

"O que já está no cérebro" (i)

Mostra o que OpsIQ já sabe sobre o seu negócio por slot, para que você possa excluir tudo o que estava repetindo em suas próprias instruções.

💡
Para o chat de suporte curto, a entrada (instruções + dados da conta + histórico, enviados por turno) normalmente custa mais do que a resposta curta, cache e contexto magro ajudam mais lá. Para conteúdo gerado longamente, a saída domina. A tampa de duração da resposta e uma profundidade de pensamento inferior compensam lá. Veja Configurar sua IA para manter o cache rápido, o que torna a grande parte repetida de cada vez barata.
Será que isso muda como o chat já responde?+

Não. Cada controle está desligado por padrão e independente. Ligar um só adiciona seu comportamento; desligando-o retorna o chat exatamente como ele funcionou antes.

Que ordem devo ligá-los?+

Execute uma conversa diária num modelo de luz e ative um modelo Agent mais forte. Então, se você tiver uma plataforma conectada, habilite o modo Agent, então Planeje com antecedência, depois a memória de longa conversação. Depois, diminua o contexto, salte- KB- para- cumprimentos e uma tampa de resposta. Finalmente, comprima suas instruções. Assista algumas conversas reais após cada mudança.

O kit de administração: pesquisa na web, livros de execução, missões, transferência de arquivos

O chat de IA do administrador é um engenheiro que trabalha, não apenas uma caixa de perguntas. Ele pode pesquisar correções na web, manter uma biblioteca dos seus procedimentos operacionais, patrulhar os seus servidores em uma agenda e mover arquivos. A maioria disso é impulsionada por pedir para ele em bate- papo; a única coisa que você configura na frente é qual provedor de pesquisa da web que ele usa, na configuração da sua página de IA.

Pesquisa na Web

Construído em

O agente procura na web por documentos, mensagens de erro e informações atuais enquanto funciona. Fora da caixa, isto usa o Google, que não precisa de chave e nenhuma configuração.

Runbooks

Em bate-papo

Uma biblioteca salva de seus procedimentos ("como fazemos X aqui"). O agente escreve um após pregar um trabalho complicado e segue-o da próxima vez, para que o know-how sobreviva ao final do chat.

Missões

Agendado

Patrulhas agendadas só de leitura. "Todas as manhãs, verifique o espaço em disco e os registos de erros e diga-me."

Transferência de arquivos

Em bate-papo

Peça um arquivo de log e obtenha um link de download privado, ou tenha um arquivo copiado de um servidor conectado para outro. Ambos são tratados em 5 MB.

Pesquisa na Web do Admin Agent (na configuração da sua IA)

Fornecedor de pesquisa

O que a pesquisa web agente usa. O padrão é o Google: sem chave, livre, funciona em cada instalação. Serper.dev (Resultados do Google) geralmente retornam melhores resultados, mas cada um precisa de um API Se um provedor com chave falha por alguma razão (chave ruim, cota usada para cima, problema de rede), essa busca cai automaticamente para o ESO, então a pesquisa nunca vai escurecer.

Procurar API chave

A chave para o seu provedor escolhido, só é necessária para Brave, Tavily ou Serper. Uma vez salvo, ele está mascarado e nunca mais aparece na página; cole um novo para substituí-lo. Um provedor com chaves fica ativo apenas quando tanto o provedor quanto sua chave são salvos.

Runbooks

Quando o agente tiver acabado de trabalhar num trabalho que irá querer fazer da mesma forma outra vez, diga "salvar isso como um livro de execução chamado limpeza noturna". A partir daí, ele vê o livro de instruções por nome em cada sessão, e quando você pedir o trabalho pelo nome (ou descrevê- lo) ele puxa os passos e segue- os. Você pode pedir- lhe para listar, atualizar ou excluir livros de execução a qualquer momento.

💡
Um livro de execução é orientação, não um passe livre. Quando o agente segue um, cada passo que muda um servidor ainda passa pelo seu modo de permissão atual e mostra os cartões de aprovação habituais. Um livro nunca pode ignorar uma aprovação.

Missões

Uma missão é uma tarefa recorrente que o agente executa por conta própria: hora, diariamente em uma hora definida ou semanalmente em um dia definido. As missões são somente leitura-por projeto. Eles podem ler servidores, dados e a web, mas eles nunca podem mudar nada; eles investigam e reportam. Quando uma missão termina, os resultados chegam como uma notificação no seu sino de administrador. Diga "corrir a patrulha da manhã agora" para disparar um sob demanda, ou pedir ao agente para listar, pausar ou remover as missões.

⚠️
Missões executar o OpsIQ cron, então ele precisa ser configurado (veja Cron e automação). Um "run it now" único do chat funciona mesmo entre os cron roda na maioria dos servidores.

Mover arquivos

Peça um arquivo ("me consiga o registro de erro do servidor web hoje") e o agente o execute e responda com um link de download privado. O link só funciona para administradores assinados e expira após cerca de um dia. Os arquivos são fechados em 5 MB; para qualquer coisa maior, peça ao agente para comprimí- lo ou aparar no servidor primeiro.

O agente também pode copiar um único arquivo entre dois servidores conectados, novamente até 5 MB. A gravação no destino é tratada como qualquer outra alteração que ele faz: no modo de pedido você recebe um cartão de aprovação primeiro, o arquivo existente é feito com backup e a cópia é reversível. Para segurança, o conteúdo do arquivo é re- lido da fonte no momento em que a cópia for aplicada, não retirado do chat.

IA

Treine o seu IA

AI Training é onde você ensina OpsIQ como se comportar. Você escreve prompts que definem personalidade, limites, foco de conhecimento e regras de escalada. Pense nisso como escrever um manual de treinamento para um novo agente de suporte.

IA do comboio
Treine o seu IAUm editor de instruções de IA com guias Cliente/Admin e tom simples-inglês, sempre e nunca regras.Treine o seu IAespaço de trabalhoIA do clienteAdministração IATomAmigável, conciso, nunca insistente.SempreOferecer uma entrega humana para disputas de cobrança.NuncaPrometa um reembolso sem verificar a conta.1TWO MANUALSCliente e administrador IA2PLAIN ENGLISHTone, sempre, nunca3GROUNDEDAlém de sua base de conhecimento
Treine a IA como um novo contrato, Customer and Admin manuals escritos em inglês simples (tone, sempre, nunca), fundamentado em seu KB.

Dois domínios de formação

Prompt de IA do cliente

Controla como a IA fala com seus clientes no widget de chat. Este é o prompt mais importante para acertar.

Prompt de IA do administrador

Controla como o IA auxilia sua equipe de administrador no painel do operador. Isto lida com consultas internas e execução de ações.

Escrevendo um grande prompt de IA cliente

Seu cliente AI prompt deve cobrir estas áreas:

1
Identidade

Quem é a IA? Dê-lhe um nome, papel e personalidade. Exemplo: "Você é Luna, uma assistente de suporte ao cliente amigável e experiente para a Acme Store."

2
Tom e estilo

Como deve comunicar-se? Exemplo: "Seja profissional, mas quente. Use linguagem simples. Evite jargão. Mantenha as respostas concisas (2-3 parágrafos max)."

3
Limites do conhecimento

O que ele deve saber e não saber? Exemplo: "Você sabe sobre nossos produtos, preços, transporte e política de retorno. Você não sabe sobre produtos concorrentes ou decisões internas da empresa."

4
Regras de escalação

Quando deve ser entregue a um humano? Exemplo: "Escalar para um agente humano quando: o cliente pede reembolso, menciona ação legal, relata uma questão de segurança ou faz a mesma pergunta três vezes."

5
Coisas para nunca fazer

Limites duros. Exemplo: "Nunca prometa reembolsos. Nunca compartilhe fórmulas internas de preços. Nunca componha características do produto que não existem. Nunca dê aconselhamento médico, legal ou financeiro."

Exemplo de instruções

Exemplo cliente prompt IA · loja online
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
Exemplo cliente AI prompt · empresa de hospedagem
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

Refinando seu prompt ao longo do tempo

1
Lançar com o básico

Comece com identidade, tom e limites chave. Não tente cobrir tudo no primeiro dia.

2
Revisão AI História semanal

Leia conversas onde a IA deu respostas erradas ou subótimas.

3
Atualizar o prompt

Adicione regras específicas para questões recorrentes. Exemplo: se a IA continuar prometendo reembolsos, adicione "Nunca prometa um reembolso. Diga que você vai aumentar para a equipe de faturamento."

4
Adicionar conhecimento

Se a IA não puder responder a uma pergunta, adicione a resposta à Base de Conhecimento em vez de tentar encaixar tudo no prompt.

⚠️
Mantenha o seu prompt sob 2,000 palavras. Prompts excessivamente longos podem confundir a IA e aumentar os custos do token. Coloque informações detalhadas na Base de Conhecimento em vez disso.
Qual é a diferença entre o prompt e a base de conhecimento?+

A linha de comando define personalidade, limites e regras. A base de conhecimento fornece informações factuais (detalhes do produto, preços, políticas). A IA lê ambas, mas o comportamento das formas imediatas enquanto o KB fornece respostas.

Posso ter diferentes prompts para diferentes departamentos?+

Se você precisa de comportamento diferente de IA para diferentes departamentos, use a base de conhecimento para fornecer informações específicas de departamento e mencionar o contexto do departamento em seu prompt.

IA

História da IA

A IA History mostra todas as conversas que a IA teve com clientes e administradores. Use-a para auditar o desempenho da IA, encontrar respostas erradas e identificar lacunas de treinamento.

História da IA
História da IAUm log de IA gira com crachás tipo, a pergunta e resposta, tempo de resposta e resultado.História da IAespaço de trabalhoCada vez que a IA se vira, gravadobate-papoQ: onde está o meu pedido?A: enviado hoje, UPS rastreamento...0.9sansweredticketProjecto de resposta 12345reconhecimento de reembolso redigida1.4sdraftedadministradorResumir os bilhetes desta semana12-line resumo retornado2.1sfeitobate-papoQ: cancelar o meu planoentregue a um humano0.7sescalated1EVERY TURNPerguntar, responder, agir2SEARCHABLEFiltro & exportação3OWNER-ONLYTrilha de auditoria completa
Cada turno de IA (chat, ticket rascunho, ação administrativa) logado com o prompt exato, resposta, duração e resultado.

O que cada conversa mostra

Data e hora

Quando a conversa aconteceu.

Identidade do cliente

Nome e email, se conhecido, caso contrário IP e país.

Canal

widget de chat, resposta automática do ticket, rascunho de e-mail ou IA administradora.

Mensagens

Transcrição completa da conversa: mensagens do cliente e respostas de IA.

Utilização do 'Token'

Quantos símbolos a conversa consumiu. O uso elevado de símbolos pode indicar que a IA está dando respostas excessivamente verbais ou que a conversa foi em círculos.

Acções tomadas

Quaisquer ações que a IA executou durante a conversação (procuraram ordem, ticket criado, etc.).

Classificação

Se o CSAT estiver habilitado, a avaliação de satisfação do cliente para esta conversa.

Encontrar problemas

Procurar por palavra- chave

Procure por tópicos específicos para ver como a IA lida com eles. Exemplo: procure por "reembolso" para verificar se a IA está seguindo sua política de reembolso.

Filtrar por classificação

Mostre apenas conversas de baixa classificação para focar em clientes insatisfeitos.

Filtro por canal

Mostrar apenas as respostas automáticas do ticket para auditar respostas automatizadas separadamente do chat.

Ordenar por uso do token

Conversas de alto nível podem indicar problemas: o IA divagando, andando em círculos ou não respondendo à pergunta.

Rotina de auditoria semanal

1
Verificar conversas de baixa classificação

Foi uma lacuna de conhecimento, um problema de tom ou uma resposta errada?

2
Verificar conversas de alto nível

Isto pode indicar confusão. A IA estava se repetindo? Será que não entendeu a pergunta?

3
Actualizar a formação

Para lacunas de conhecimento, adicione artigos à Base de Conhecimento. Para problemas de comportamento, atualize o prompt de IA. Para respostas erradas recorrentes, adicione regras de correção explícitas.

Encontrar lacunas de conhecimento

Cenário:
You search AI History for "installation" and find 15 conversations where the AI said "I do not have specific installation instructions for this product."
O que fazer:

Isso significa que sua Base de Conhecimento está faltando guias de instalação. Crie artigos base de conhecimento para as etapas de instalação de cada produto. Depois de adicioná-los, teste fazendo perguntas sobre a instalação de IA.

IA

Insights sobre IA

A IA Insights analisa automaticamente padrões de conversação e superfícies descobertas acionáveis: perguntas comuns, tendências de satisfação, lacunas de conhecimento e padrões de escalada.

Insights sobre IA
Insights de IA (Intelligence Hub)O Hub de Inteligência: um resumo da IA Today, Alertas Inteligentes, uma ferramenta Score-a-Lead / Analyse-a/Page e um gráfico de padrão de tráfego 14_-Day.Insights sobre IAespaço de trabalhoO BREVE DE HOJETráfego em alta 12%; 3 Chumbos quentes;2Os negócios precisam de ser seguidos.Alertas InteligentesErros de verificaçãoSaltem para cima em /pricingNova quente chumbo dos EUAReceitas antes da semana passadaMarcar uma Lideração / Analisar uma PáginaIP ou URL…ExecutarPadrão de tráfego 14_-dia1O BREVE DE HOJEA IA escreve o resumo da manhã2SMART ALERTSAnomalias emergidas3ON DEMANDMarque um lead · analisar uma página
O verdadeiro Intelligence Hub: um resumo de hoje escrito por IA, Alertas Inteligentes para anomalias, pontuação sob demanda e análise de página, e o padrão de tráfego 14_-dia.

O que as insights mostram

Perguntas de topo

As perguntas mais frequentes. Se "Como faço para redefinir minha senha?" é #1, sua base de conhecimento precisa de um guia proeminente para repor senhas.

Tendências de satisfação

CSAT pontuações ao longo do tempo. A satisfação com a IA está melhorando ou diminuindo? Quedas súbitas podem indicar uma mudança de base de conhecimento que quebrou algo.

Taxa de resolução

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.

Razões da escalada

Por que conversas são transmitidas aos humanos. Razões comuns: o cliente solicitou humano, AI não poderia responder, assunto sensível, problema de faturamento.

Ganhos de conhecimento

Tópicos onde a IA frequentemente diz "Eu não sei" ou dá respostas de baixa confiança.

Comprimento médio da conversação

Quantas mensagens por conversação. Conversas muito longas (10+ mensagens) pode indicar que a IA não está entendendo a pergunta.

Usar insights para melhorar

Cenário:
AI Insights shows that 23% of escalations are "Customer asked about warranty" and the AI could not answer.
O que fazer:

Esta é uma clara lacuna de conhecimento. Passos: (1) Escreva um artigo de garantia abrangente na Base de Conhecimento cobrindo todos os termos de garantia, processo de reivindicação e exclusões. (2Atualize o prompt de IA para referenciar as informações da garantia. (3) Monitorar AI Insights na próxima semana para ver se as escaladas de garantia diminuem.

IA

Manual de instruções do administrador de IA

A IA de administração (Pergunte OpsIQ) ajuda sua equipe a gerenciar OpsIQ a partir do painel de administração. Você pode pedir-lhe para procurar dados, explicar recursos, resumir tickets e executar ações da plataforma.

Administração IA
Manual de instruções do administrador de IAO Pedido...OpsIQ caixa de comando com uma placa de ação de plataforma proposta por IA que mostra parâmetros e confirma/cancela.Perguntar OpsIQespaço de trabalhoPerguntar OpsIQSuspender o serviço para a conta atrasada #4821IAAcção proposta: suspense_ serviceconta: #4821 (excedente $120)plataforma: WHMCS · reversível · auditadoConfirmarCancelar1ASK ANYTHINGComandos em inglês simples2PROPOSE FIRSTAção mostrada antes de ser executada3YOU CONFIRMÂmbito de aplicação e auditoria
Diga ao administrador IA o que você quer em inglês simples; ele propõe a ação exata (escoberto, reversível, auditado) e espera por sua confirmação.

O que o administrador IA pode fazer

Procurar dados

Perguntar: "Mostra-me todos os bilhetes de [email protected]" ou "Qual é o estado da ordem #ORD-5523?"

Resumir

Pergunte: "Resumir os últimos tickets 10" ou "Quais são os principais problemas de suporte nesta semana?"

Explicar as funcionalidades

Pergunte: "Como faço para configurar a resposta automática?" ou "O que significa a taxa de rejeição?"

Executar ações

Perguntar: "Criar um bilhete para [email protected] sobre faturamento" ou "Close ticket T-12345"

Consultas na plataforma

Pergunte: "Quantos visitantes recebemos ontem?" ou "Qual é a nossa receita este mês?"

Conversas de exemplo

Procura de um cliente

Cenário:
Admin asks: "Find customer [email protected] and show me their recent activity"
O que fazer:

A IA procura o cliente em todas as fontes de dados conectadas: sessões de visitantes, tickets, conversas de chat, pedidos e contatos CRM. Retorna um resumo da atividade recente com links para cada item.

Obtendo um resumo diário

Cenário:
Admin asks: "What happened today?"
O que fazer:

A IA resume: "Hoje você teve 245 visitantes (para cima 12%), 8novos bilhetes (3 resolvido por AI),2novas encomendas totalizando $198, e1bate-papo escalada sobre um atraso de envio."

Executando uma ação

Cenário:
Admin asks: "Change ticket T-5523 priority to Urgent"
O que fazer:

A IA confirma: "Vou mudar o bilhete T-5523 prioridade de Normal para Urgente. Isso afetará o temporizador SLA. Confirme?" Você confirma, e a ação é executada.

💡
A IA do administrador executa somente ações que estão registradas no Registro de Ação. Ela não pode inventar ações ou acessar sistemas fora de OpsIQ.
IA

Cenários de IA do cliente

Esta seção abrange cenários comuns de IA voltados para o cliente com as dicas de comportamento e treinamento esperadas.

IA do cliente
Cenários de IA do clienteUma biblioteca de perguntas do cliente emparelhada com o comportamento esperado de IA e uma tag de resultado para cada um.Cenários de IA do clienteespaço de trabalhoBiblioteca de cenários · comportamento esperado de IA"Onde está o meu pedido?"Procure a ordem através do conector, dê rastreamentoResolver"Quero um reembolso"Reconheça, nunca prometa a mão de um humanoDesvio"O serviço está em baixo?"Verificar o estado, comunicar o estado actualEstado"Cancelar a minha conta"Confirmar intenção, em seguida, caminho para um humanoConfirmar1SCENARIOSQuestões comuns2EXPECTEDComo a IA deve responder3ENSAIOEncontrar lacunas de formação
Uma biblioteca de perguntas reais sobre clientes e exatamente como a IA deve lidar com cada um, para testar seu treinamento e encontrar lacunas.

Biblioteca de cenários

Inquérito sobre o estatuto da ordem

Cenário:
Customer: "Where is my order #12345?"
O que fazer:

Comportamento esperado de IA: (1) Procure a ordem através do conector da plataforma. (2) Relatório do estado actual (processamento, expedido, entregue). (3) Incluir o número de seguimento, se disponível. (4) Se a ordem é adiada, reconhecer e fornecer linha do tempo estimado. (5) Nunca invente informações de rastreamento.

Pedido de redefinição de senha

Cenário:
Customer: "I forgot my password and cannot log in"
O que fazer:

Comportamento esperado de IA: (1) Forneça a senha reset passos da base de conhecimento. (2) Incluir o link de reset ou caminho da página. (3) Mencione que o email reset pode demorar alguns minutos. (4) Sugerir verificar pasta de spam. (5) Se o cliente ainda não puder reiniciar, aumente para um humano.

Pedido de recurso

Cenário:
Customer: "Can you add dark mode to the mobile app?"
O que fazer:

Comportamento esperado de IA: (1) Agradeço-lhes a sugestão. (2) Explique como as requisições de recursos são tratadas (logged, revised, priorized). (3) NÃO prometa que o recurso será construído. (4) Se existe uma característica semelhante, mencione-a.

Litígio de cobrança

Cenário:
Customer: "I was charged but my service is not working"
O que fazer:

Comportamento esperado de IA: (1) Reconhecer a frustração. (2) Verifique o estado do serviço, se possível. (3) Escalar para o departamento de cobrança com todos os detalhes. (4) Não prometa um reembolso. (5) Definir a prioridade do ticket para Alto.

Pergunta fora do tópico

Cenário:
Customer: "What is the weather like in London today?"
O que fazer:

Comportamento esperado de IA: (1) Educativamente redirecionar. "Eu sou seu assistente de suporte [Empresa] e pode ajudar com perguntas sobre nossos produtos e serviços. Para informações meteorológicas, tente um serviço meteorológico." (2) Pergunte se eles têm uma pergunta de produto.

Como faço para testar o comportamento da IA do cliente?+

Abra seu site em um navegador privado/incógnito e converse com a IA como cliente. Tente perguntas comuns, casos de borda e cenários contraditórios. Verifique se a IA segue suas regras de prompt e usa o conteúdo base de conhecimento corretamente.

IA

Base de conhecimentos sobre IA

A Base de Conhecimento é uma biblioteca de artigos que a IA utiliza para responder às perguntas. Quando um cliente faz alguma pergunta, a IA pesquisa a base de conhecimento dos artigos relevantes e os usa para gerar uma resposta precisa e fundamentada.

Base de conhecimentos
Base de conhecimentosFontes que se alimentam de uma loja de conhecimento, e daí uma IA gerando uma resposta fundamentada e citada.Base de conhecimentosespaço de trabalhoFontesRastreio na página WebArtigos de ajudaPerguntas FrequentesDocumentos importadosConhecimentosemântico + palavra-chaveIAResposta fundamentadacom uma fonte citada."Reembolsos levam 3–5Dias úteis."1INGESTCrawl, FAQ, importação2RETRIEVESemântico + palavra-chave3GROUNDEDRespostas do seu conteúdo
Rasteje seu site e importe documentos para a base de conhecimento; a IA recupera as peças e respostas certas, fundamentadas e citadas.

Como funciona

1
O cliente faz uma pergunta

"Qual é a sua política de regresso?"

2
AI pesquisa a base de conhecimento

OpsIQ finds the "Return Policy" article by matching keywords and semantic meaning.

3
A IA gera uma resposta

A IA lê o artigo e escreve uma resposta em linguagem natural baseada no conteúdo do artigo.

4
O cliente obtém uma resposta precisa

A resposta está fundamentada na sua política real, não nos dados gerais de formação da IA.

Criar bons artigos

Um tópico por artigo

Escreva um artigo separado para cada tópico: política de retorno, taxas de envio, configuração da conta, redefinição de senhas. Não combine tópicos não relacionados.

Escrever como uma FAQ

Comece com a pergunta que os clientes fazem, e então forneça a resposta. Isso ajuda o IA a combinar as perguntas com artigos.

Seja específico

"As devoluções devem ser iniciadas dentro de 30 dias de entrega" é melhor do que "Temos uma política de retorno."

Incluir os casos de borda

E os retornos internacionais? E os produtos digitais? E sobre os itens comprados à venda? Cobrir as exceções.

Mantenha-o atual

Reveja artigos trimestralmente. Excluir informações desatualizadas. Atualizar preços, políticas e procedimentos quando eles mudam.

Artigos iniciais que você deve escrever

Entrega e envio

Custos de envio, prazos de entrega, rastreamento, transporte internacional e atrasos de manuseio.

Reembolsos e reembolsos

Retorne janela, condições, processo, timeline de reembolso e exceções.

Gestão de contas

Reiniciar senha, alterar e-mail, excluir conta e exportar dados.

Preços e facturação

Planeje descrições, ciclo de faturamento, métodos de pagamento, faturas e moeda.

Guias de produtos

Como usar cada produto ou recurso. Instruções passo a passo com capturas de tela.

Resolução de Problemas

Problemas e soluções comuns. Mensagens de erro e suas correções.

Informações de contacto

Horário de negócios, canais de suporte, tempos de resposta e caminhos de escalada.

Jurídica e cumprimento

Resumo da política de privacidade, termos do resumo do serviço, GDPR solicitações de dados.

Conhecimentos do conector

Cada conector pode contribuir com o conhecimento para a IA. Quando um conector está habilitado, seus artigos de conhecimento incorporados (catálogo de produtos, perguntas comuns, solução de problemas específicos da plataforma) estão automaticamente disponíveis para a IA. Você pode ativar ou desativar o conhecimento do conector por conector nas configurações do Conector.

Orçamento dos direitos de importação

A base de conhecimento tem um teto configurável (padrão: 32,000 tokens) que controla o contexto do conhecimento enviado para a IA por conversação. Se sua base de conhecimentos for muito grande, a IA seleciona os artigos mais relevantes dentro deste orçamento. Aumente o teto se a IA não estiver encontrando artigos relevantes; diminua-o se você quiser reduzir os custos do token.

Quantos artigos devo ter?+

Iniciar com5-10 artigos cobrindo suas perguntas mais comuns. Adicione mais como você identificar lacunas através de IA História e AI Insights. 20-50 artigos para uma cobertura abrangente.

Posso importar artigos de outro sistema?+

Atualmente, os artigos são criados manualmente em OpsIQ. Você pode copiar-colar conteúdo de FAQs existentes, centros de ajuda ou documentos.

Em que formato devem estar os artigos?+

Texto simples funciona melhor. A IA entende linguagem natural melhor do que HTML ou marcação para baixo. Escreva como você explicaria a um cliente.

IA

Avaliação de IA e Torre de Vigia

Os conjuntos de avaliação transformam as perguntas críticas do cliente em testes repetitivos para qualidade de resposta, citações, escalada e segurança da ação.

Tela do produto
Avaliação da IAA Avaliação de IA lista casos de teste dourados, comportamentos exigidos, resultados mais recentes e corridas programadas da Torre de Vigia.Avaliação da IAespaço de trabalhoSETS6CASES84PASS RATE96%CONCEITO AO LIVRO DA ESPAÇO DE TRABALHOPolítica de navegaçãoCitação necessáriaPassarPedido de restituiçãoConfirmação humana necessáriaPassarPedido não suportadoAcção proibidaPassarPergunta sobre a migraçãoFalta a fonte esperadaFalha1CREATE CASESEntrada e regras douradas2RUN SAFELYCorrer ou evadir ao vivo3WATCHAgendar diariamente ou semanalmente
A Avaliação de IA lista casos de teste dourados, comportamentos exigidos, resultados mais recentes e corridas programadas da Torre de Vigia.

Os administradores completos podem criar conjuntos de avaliação com uma etiqueta de fonte pronta e esperada, citações necessárias, regras de confirmação humana, expectativas de escalada e ações proibidas. Execute um conjunto diretamente, execute-o a seco ou reproduza o histórico selecionado.

Torre de Vigia programa diariamente ou semanalmente verifica através de cron e executa um número limitado de casos (até oito por passe agendado). Reveja falhas ao lado provedor/modelo, versão rápida, versão do conhecimento, ações propostas e custo antes de mudar o comportamento da produção.

IA

Línguas e tradução

As línguas gerenciam o texto traduzido voltado para o cliente e o comportamento usado quando OpsIQ segue a língua de um cliente.

Tela do produto
LínguasA página Linguagens mostra a língua de origem, as línguas traduzidas, o estado de projecto/vivo e o comportamento do cliente-linguagem.Línguasespaço de trabalhoFONTEInglêsLANGUAGES4VIVOS3CONCEITO AO LIVRO DA ESPAÇO DE TRABALHOFrancêsInterface e conteúdoVivoAlemãoInterface e conteúdoVivoEspanholRascunho de traduçãoRascunhoSeguir o clienteResponder na linguagem detectadaLigado1SET SOURCELíngua original do operador2ADD LANGUAGETraduzir em segundo plano3PUBLISHRascunho ou vivo
A página Linguagens mostra a língua de origem, as línguas traduzidas, o estado de projecto/vivo e o comportamento do cliente-linguagem.

OpsIQ traduz texto voltado para o cliente com entrada no operador. Defina a língua de origem corretamente antes de criar traduções, adicione idiomas-alvo e reveja rascunhos antes de publicar. “Siga a linguagem do cliente” controla a linguagem de resposta; traduzir a interface widget controla seus botões, rótulos e texto do sistema.

O escopo da tradução pode ser apenas rascunho ou ao vivo. Não confie na tradução automática para o texto legal, de reembolso, segurança ou segurança sem revisão humana.

Cada lugar que contém sua própria redação é listado com a contagem de mensagens: mensagem de bate-papo do cliente, promoções, mensagen proativa, fluxos de bate papo, visitas guiadas, anúncios, bolhas e teasers. Inquéritos e formulários. A superfície da pesquisa cobre cada pesquisa publicada completamente: título, cada pergunta, cada opção de resposta, botões, bem-vindo e obrigado copiar, página cromo e páginas de resultados. Chaves estão ligadas ao ID da questão e o valor da opção, assim reordenar perguntas ou opções nunca perde uma tradução, e reformular uma mensagem traduz apenas essa mensagem. Levantamentos ao vivo publicados são oferecidos por padrão; rascunhos juntam-se quando você amplia o escopo.

A pesquisa de e- mail pós- conversa segue o idioma em que o visitante realmente conversou, desde que o idioma seja um dos que você oferece aqui; caso contrário ele usa o seu idioma do sistema. Seus seis campos editáveis também são traduzidos nesta página, e o comportamento tem seu próprio interruptor nas configurações de bate- papo com cliente.

Mensagens de ticket e portal cobre os operadores de texto fixo digitar uma vez e cada cliente então recebe nesse idioma: o reconhecimento do ticket, as confirmações abertas, fechadas e feedback, por-departamento sinais e a linha de boas vindas portal. (A IA auto-resposta não precisa de nada disso, já responde na língua do cliente.) Com E-mail clientes em sua própria língua activado em OpsIQ A escrita, o e- mail do ticket resolve a língua do destinatário nesta ordem: a língua que ele escolheu no portal ou na Central de Ajuda (tratada para o ticket), a localização no seu registo de contacto, depois a língua em que escreveu, detectada localmente por intervalo de scripts e palavras marcadas, sem chamada externa. Só são usados os idiomas seleccionados na página Idiomas, pelo que a funcionalidade fica inerte até que as línguas sejam adicionadas. HTML o e-mail wrapper é deliberadamente não traduzido: é marcação, não prosa. O email voltado para a equipe (notificações, alertas de departamento, resumos de analistas, relatórios agendados, o digest semanal) sempre usa a linguagem do sistema.

Suporte

Centro de ajuda

A sua Central de Ajuda é um site de ajuda que se auto-serve construído a partir dos artigos que você publica. Os clientes podem lê-lo e pesquisá-lo em sua própria página pública, e dentro do widget de chat, para que eles possam encontrar respostas por conta própria antes de abrir uma conversa. Tudo nele vem da sua base de conhecimento, então o mesmo conteúdo que fundamenta a sua IA também pode dar a sua ajuda pública.

Onde seus clientes o vêem

A sua própria página pública

Um local de ajuda limpo e pesquisável em /help.php. Os clientes navegam por categoria, pesquisa e abre qualquer artigo. Você pode dar-lhe o seu próprio nome e estilo.

Dentro do elemento de conversação

Um link de ajuda no widget de chat para que os clientes possam pesquisar seus artigos sem sair do chat. Se eles ainda precisarem de uma pessoa, eles estão a um toque de iniciar uma conversa.

Liga-o.

1
Abra a página Central de Ajuda

Ir para Config, then Help Center no seu administrador e ligue Habilitar a Central de Ajuda Pública.

2
Dá-lhe um nome e uma olhada.

Defina o nome da Central de Ajuda, que aparece no cabeçalho e na aba do navegador, e escolha um estilo visual. Você pode desligar a navegação superior para uma página limpa sem menu.

3
Publicar alguns artigos

Nada aparece até que você publique artigos para ele. A próxima parte cobre como.

Publicar artigos na Central de Ajuda

Os artigos vivem em sua base de conhecimento. Um artigo aparece na Central de Ajuda uma vez que é publicado e marcado público. Existem algumas maneiras de fazer isso:

Publicar um artigo

Abra o artigo, marque-o publicado e ative a opção para mostrá-lo na Central de Ajuda.

Publicar tudo de uma vez

Utilizar o Publicar Tudo botão para pressionar todo o seu conjunto publicado na Central de Ajuda em um clique, em vez de fazê-los um de cada vez.

Transforme FAQs em artigos

Já tem FAQs? Use Publicar tudo para Ajuda para transformá-los em artigos de ajuda para que eles se sentam ao lado de tudo o mais.

Importar uma base de conhecimentos existente

- A mudar de outro gabinete? Importar KB Você tem três maneiras de apontar para o seu conteúdo, e você pode fazer isso com um botão na guia Artigos.

Colar uma URL

Dê-lhe o endereço da sua central de ajuda atual. Se ela reconhecer a plataforma (por exemplo, Zendesk) ele lê a árvore de categorias exata daquela plataforma. Caso contrário, ela rasteja o site e reconstrui a estrutura das páginas, importando apenas os artigos reais e pulando login, preços e páginas de contato.

Escolha uma aplicação conectada

Se uma plataforma já está conectada a este espaço de trabalho e possui uma base de conhecimento, ela aparece em um dropdown sob Importar de uma aplicação ligada. Selecione-o e importe-o, sem URL ou senha necessária. O aplicativo só é listado uma vez que ele está conectado e configurado.

Enviar uma CSV

Nenhum site ao vivo para apontar? Envie uma planilha com title, category, e body colunas. Parent / Child na coluna de categoria para construir categorias aninhadas.

Seja qual for a maneira que escolheres, tens um primeiro a visualização: os artigos que encontrou, agrupados por categoria, cada um com uma caixa de seleção para que você possa soltar tudo o que não quiser. Nada é salvo até que você clique em Importar. Desfazer a importação total num clique, ou Reiniciar uma importação URL ou app conectada mais tarde para puxar novos e alterados artigos.

💡
Desenvolvedores: qualquer conector pode anunciar sua base de conhecimento para esta gota abaixo declarando um kb_capabilities bloco na sua settings.json (tipo kb_source, com adapter e a base_template). Veja a seção Conectores e a referência plataforma-conector.

Organizar com IA

Um centro de ajuda arrumado é fácil de navegar e mais fácil de pesquisar. Organizar com IA O botão faz a limpeza para si. Num clique, ele lê os seus artigos publicados, classifica- os em categorias sensatas e adiciona etiquetas. Cria uma categoria quando necessita de um, reutiliza uma categoria que já se encaixa e salta tudo o que já tenha organizado, para que possa executá- la novamente sempre que adicionar novos artigos. Active Deixe que a IA organize em subcategorias nas configurações da Central de Ajuda e também pode arquivar artigos sob aninhado Parent / Child categorias, que é útil logo após a importação de uma base de conhecimento que tinha sub-seções.

💡
As categorias dão aos clientes uma forma de navegar e as marcas afiam a pesquisa tanto na página pública como no elemento. Poderá mudar o nome ou mover as coisas depois. A IA dá- lhe um ponto de partida forte, não uma configuração com a qual esteja preso.

A Central de Ajuda dentro do seu widget de chat

Você pode mostrar a Central de Ajuda dentro do widget de chat para que as pessoas pesquisem respostas antes de enviar uma mensagem. Em suas configurações de widget de bate-papo, escolha onde o link de ajuda aparece:

No cabeçalho

Um pequeno ícone de ajuda no topo do elemento.

No fundo

Um link de texto sob a caixa de mensagem, por exemplo "Procurar centro de ajuda". Você pode alterar o texto.

Ambos os lugares

Mostra- o no cabeçalho e na parte inferior para maior visibilidade.

O link de ajuda tem seu próprio controle de cores sob as configurações de aparência do widget. Nenhuma para combinar com a cor do seu lançador, ou escolher um Sólido cor ou a GradienteToda a experiência de ajuda segue o seu tema widget, então sempre parece parte da sua marca.

Coloque seu centro de ajuda em seu próprio endereço web

Fora da caixa, seu centro de ajuda já tem um endereço limpo e compartilhável (por exemplo /help/your-help-center). Você pode ir um passo mais longe e servi-lo sob o seu domínio próprio, assim que os clientes e motores de busca vê-lo como parte de sua marca, por exemplo yourdomain.com/help ou help.yourdomain.com. Tudo continua trabalhando em seu domínio: links, imagens, busca e as classificações de artigos.

Sob o seu site principal

E Config, depois Central de Ajuda, abrir o Incorporar aba e encontrar "Mostrar o seu centro de ajuda no seu próprio endereço web". Escolha a sua configuração (Cloudflare, Nginx ou Apache), copiar o bloco pronto-feito, e colá-lo em seu site. Guia de configuração botão ao lado com os passos exatos.

Em um subdomínio

Preferir help.yourdomain.com? O mesmo painel tem uma opção de subdomínio. Em Cloudflare um subdomínio é a rota mais confiável, e ele lhe dá um endereço limpo sem nada depois dele.

💡
Utilização Cloudflare? Ele só executa o seu trabalhador em um endereço que é aproximado através Cloudflare(a nuvem laranja). O seu domínio principal muitas vezes aponta diretamente para o seu site, de modo que uma regra colocada no domínio principal não pode fazer nada silenciosamente. A maneira confiável é um subdomínio aproximado como help.yourdomain.com. O guia de configuração te acompanha através do registro DNS e da rota.
Bom para SEO. Uma vez que o seu centro de ajuda está no seu próprio domínio, os motores de busca indexam seus artigos sob sua marca. Cada página declara seu endereço correto e o mapa do site lista-os, então o mesmo artigo nunca é indexado duas vezes.
💡
Usando o link de ajuda no widget também? Na configuração do widget de chat "Abrir no centro de ajuda", definido Para onde vai o link para Seu próprio domínio de centro de ajuda e insira o mesmo endereço. Então, esses links de artigos abrem no seu domínio também, não no endereço OpsIQ _.

Veja como todo o seu centro de ajuda está indo

Além dos votos de um único artigo, a Central de Ajuda tem sua própria analytics. Ligue- o nas configurações da Central de Ajuda e ele registra silenciosamente como as pessoas usam sua ajuda: os artigos mais vistos, o que eles procuram, e pesquisas que voltaram vazias (uma lista pronta para escrever), trabalhando no país do visitante e dispositivo por conta própria, então não precisa do widget de chat instalado para relatar. both coloca sua ajuda aparece, a página pública e a ajuda in-widget, bem como combinada, para que você possa ver o quanto cada um é realmente usado.

💡
O Analytics fica desligado até que você o ligue e você pode ter os endereços IP anonymized do visitante. Nada é gravado antes de você optar por entrar.

Escolha o que aparece em cada parte da página

Cada seção da Central de Ajuda (as categorias na página inicial, os artigos populares, a lista de artigos em uma página de categoria e muito mais) tem sua própria regra simples. Para cada uma delas você pode mostrar ou esconder, e mostrar all itens, a número de série, o últimaOu apenas aqueles que você feature Quando uma regra fecha uma lista, os clientes ainda recebem um link "Mostrar tudo", então nada está realmente fora de alcance.

Você também decide como os votos úteis olhar: oculto, uma relação amigável como "12 de 14 uma configuração de mínimo-votos pára um artigo novinho em folha mostrando um estranho "0fora de0".

Ver que artigos estão a funcionar

Cada artigo mostra uma Isto foi útil? cada sim ou não é contado por artigo, assim você pode ver de relance quais artigos respondem bem às perguntas e quais precisam de uma reescrita. Votos repetidos do mesmo visitante são ignorados, então as contas permanecem honestas.

Texto e rótulos

Você pode alterar os cabeçalhos e rótulos da Central de Ajuda para corresponder à sua voz. Deixe qualquer campo em branco e ele cai de volta para um padrão sensível, então você só editará o texto que realmente deseja mudar.

A Central de Ajuda compartilha uma biblioteca com sua IA. Cada artigo que você publica aqui é o mesmo conteúdo que a IA usa para responder chats e tickets, então melhorar um melhora o outro.

Questões comuns

Preciso escrever conteúdo separado para a Central de Ajuda?+

Não. É construído a partir dos mesmos artigos base de conhecimento que a IA já usa. Publicar um artigo uma vez e pode servir ambos.

Posso manter alguns artigos internos?+

Sim. Apenas artigos que você publica e marca o público aparecem na Central de Ajuda. Tudo o que não foi publicado fica fora disso.

Os clientes ainda serão capazes de alcançar uma pessoa?+

Sim. O widget ajuda link fica a um toque de iniciar uma conversa, assim auto-servir nunca prende ninguém.

Crescimento e SEO

Inteligência do Site (suíte SEO)

O Site Intelligence é o SEO integrado de OpsIQ_. Ele rastreia seu site como um motor de busca, rastrea onde você classifica, pesquisa palavras-chave, observa backlinks e concorrentes, verifica sua presença no mapa local, verifica a velocidade da página e transforma tudo em relatórios prontos para o cliente, com um analista de IA que explica o que corrigir e pode redigir as correções. É uma característica premium; quando habilitado aparece como Inteligência do Site na barra lateral. Cada domínio permanece separado, rasteja, rankings e relatórios nunca se misturam entre domínios.

Inteligência do Site
Painel de Inteligência do SiteUm painel SEO mostrando uma pontuação site-saúde, keyword rank tracking e uma tendência de tráfego.Inteligência do Siteyoursite.com86SAÚDE DO SITE3 critical issuesRastreamento de ranks de palavras-chaveServiço de ajuda#3chat ao vivo saas#7crm para agências#12Estalidos orgânicos1CRAWLEncontra questões técnicas2TRACKRanks, palavras-chave, backlinks3ANÁLISE DE AIExplica e corrige os rascunhos
A visão geral do Site Intelligence: uma pontuação site-saúde do último rastreamento, rank keyword rank ao vivo, uma tendência de cliques orgânicos e o loop de três passos: rastreie, rastreiem, deixem a IA redigir as correções.

Executar um rastejo · começar aqui

Um crawl é OpsIQ visitando suas páginas da forma que um motor de busca faria, para encontrar problemas técnicos: links quebrados, títulos faltando, conteúdo fino, páginas lentas, problemas de indexação.

1
Começa o rastejo.

Na Visão Geral, clique para iniciar um rastreamento. OpsIQ filas e funciona através de suas páginas em segundo plano; um indicador de status mostra progresso.

2
Leia os relatórios

Quando terminar, abra os problemas e a lista de páginas. Cada questão é agrupada por gravidade para que você resolva as maiores vitórias primeiro.

3
Deixe o IA ajudar

O analista de IA produz um resumo simples do que está errado e por que isso importa, e pode gerar correções sugeridas que você reveja antes de se candidatar.

O que a Inteligência do Site rastreia

Rasteje & saúde local

Analisa suas páginas para problemas técnicos de SEO e lista todas as páginas com seus problemas. Repita a qualquer momento, ou agenda-lo.

Rastreamento de ranking

Adicione as palavras-chave que você se importa; OpsIQ verifica onde seu site classifica e rastreia o movimento ao longo do tempo.

Pesquisa de palavras-chave

Descubra novas ideias de palavras-chave para segmentar, com o treinador de palavras chave IA para ajudar a priorizar.

Ligações de fundo

Veja quem links para você, atualizar a lista e recusar links que você não quer associados com seu site.

Concorrentes

Adicione domínios de concorrentes e compare sua visibilidade com a deles, com uma análise de concorrentes de IA.

Grade local (mapa)

Analise a visibilidade de listas locais em uma grade geográfica para ver onde você aparece no mapa, além das ferramentas do Google Business Profile.

Velocidade da página

Execute verificações de velocidade de página para que você possa corrigir páginas lentas que machucam rankings e conversões.

Teor de IA

Gere resumos de conteúdo e rascunhos voltados para as palavras-chave que você está segmentando.

Relatórios

Crie relatórios imprimíveis, prontos para o cliente de tudo acima.

Conecte o Google para obter dados precisos

Dois conectores do Google transformam estimativas em números reais:

Console de Pesquisa do Google

Pesquisar

Puxe as consultas exatas, cliques e impressões Relatórios do Google para o seu site, mapeie sua propriedade e as oportunidades de classificação da superfície diretamente dos dados do próprio Google.

Google Analytics 4

Tráfego

Traga seus dados de tráfego e engajamento junto com seus dados do SEO, então os relatórios mostram visibilidade e comportamento juntos.

Actualiza & os relatórios de etiqueta branca agendados

Você não precisa executar tudo à mão. Atualizações agendadas são re-run crawls, verificações de classificação, verificação de palavras-chave, atualização de backlinks, varreduras locais e geração de relatórios em uma cadência (diária ou semanal dependendo do plano e volume). Estas rodam através do OpsIQ cron, veja a seção Cron e automação. Relatórios gerados exportam como documentos imprimíveis, prontos para o cliente: agências enviam a cada cliente uma atualização de SEO regular, e porque todos os dados de domínio estão separados, cada cliente só vê seus próprios.

Alguns recursos de Inteligência do Site chamam provedores de dados externos e IA através OpsIQ O provedor configurado. Funcionam fora da caixa quando o pacote está habilitado para seu plano. Se uma atualização não for executada, confirme a OpsIQ cron está em execução (ver Cron e automação).
Preciso adicionar algo ao meu site para o rastreamento de SEO?+

Rasteja, rank tracking, pesquisa de palavras-chave e backlinks funcionam sem tocar em seu site. Para tráfego e dados exatos de busca, conecte o Google Search Console e GA4.

Posso rastrear mais de um domínio?+

Sim. Adicione cada domínio separadamente; seus rastreios, rankings e relatórios permanecem totalmente isolados um do outro.

Quantas vezes devo rastejar?+

Semanal é suficiente para a maioria dos sites; rasteje sob demanda após uma grande mudança de conteúdo ou estrutura. Defina um cronograma para que você nunca se esqueça.

Crescimento e SEO

Auto- Implementação (Agente SEO)

O Auto- Implementation é a parte da Inteligência do Site que aplica as correções que o crawl e analista de IA recomendam, em vez de apenas aconselhar você. O agente trabalha estritamente com o que a Inteligência do site já encontrou (que nunca pode inventar uma mudança) e caminha cada correção através do mesmo loop seguro: uma pré-visualização de execução seca, sua aprovação por passo, a escrita ao vivo, um instantâneo automático e um re-crawl que prova que a contagem de questões abertas caiu. É uma funcionalidade Managed-AI; aparece como a ação Auto- Implemento (rocket) dentro da seção de Inteligência do Local, e fica desligada até que você ligue.

Auto- Implementação
Auto- Implementar o agente SEOUm fluxo que mostra correções recomendadas de SEO movendo-se através da visualização, aprovação e uma escrita ao vivo, com um comprovativo re-crawl.Auto- Implementaçãoyoursite.comCorrecções recomendadasAdd missing <title>aprovadoCorrigir robots. txtaprovadoEnviar mapa do site.xmlreviewAntevisão da corrida DRY (DIFF)+ <title>AI Helpdesk - OpsIQ</title>+ <meta name=description ...>- <title>Home</title>AprovarSaltarProve - RE-CRAWLAbrir problemas 124Imagem gravada1ANTERIORMENTEDiff de cada correção em funcionamento seco2APROVAR & ESCREVERSSH ou hospedado API3PROVA & ROLLBACKRe-crawl + instantâneo
Como uma sessão é executada: o agente lista as correções do Site Intelligence já recomendadas, mostra um diff de execução seca de cada uma, aplica as que você aprova SSH ou um hospedado API, instantâneos antes de cada escrita, e recriar para provar a contagem de questões abertas caiu.

O que pode mudar

O agente só aplica correções que o Site Intelligence (ou o analista de IA) já recomendou para esse domínio. Em todas as plataformas suportadas que cobrem:

Configuração do servidor

sitemap.xml, robots. txt, e redirecionar, regras canônicas e cabeçalho em . htaccess (Apache / LiteSpeed) ou na configuração nginx.

Redirecionar as cadeias

Recolher uma cadeia de redirecionamento multi-hop para um único salto direto para o final URL, dentro do mesmo bloco gerenciado . htaccess, então velocidade e valor de link param de vazar através dos saltos extras.

Page <head>

Títulos de página ausentes ou fracos, meta-descrições, etiquetas canônicas e blocos estruturados-dados (squema).

WordPress SEO

Yoast, Rank Math and SEOPress titles & meta, and image alt text, applied through WP-CLI on the SSH path or the REST API on the hosted path.

WordPress structured data

Adds JSON-LD (schema) to pages that are missing it. On the SSH path a small managed helper (a must-use plugin) prints the markup so it works with or without an SEO plugin; on the hosted path your SEO plugin carries it.

Ligações internas

Adiciona um link interno relevante dentro do conteúdo existente WordPress para resgatar páginas órfãs e conectar mensagens relacionadas. Um link por página, nunca dentro de um cabeçalho, um link existente ou um shortcode, e sempre aprovado por você primeiro.

Conteúdo de páginas finas reescritas

Rascunhos conteúdo de substituição completo para páginas finas (ligado por uma opção de rastreamento, veja abaixo). Cada rascunho é revisto e aprovado por você antes de qualquer coisa publica, e o conteúdo antigo é mantido para que possa ser restaurado.

Cache de página (WordPress)

Liga o cache de página W3 Total Cache quando o crawl encontra problemas de velocidade e que plugin é instalado, então as páginas servem mais rápido.

Shopify SEO

Produto e coleção SEO títulos & descrições, página e blog-artigo SEO, mais 301 redirecionamentos, através da Shopify Administrador API.

Webflow SEO

Por página SEO título e meta descrição através do Webflow Dados API v2.

Preparar as correções automaticamente (duas opções de rastreamento)

O painel de Configuração da Inteligência do Site para um domínio (seus ajustes de rastreamento) tem duas opções que decidem quanto o agente se alinha para você antes do tempo. Ambos estão desligados por padrão e ambos usam crédito de IA, então você os liga apenas quando quiser que o trabalho seja feito para você.

Auto-preparar correções de IA após cada rastreamento

Cada crawl também escreve o conteúdo de correção de concreto (títulos, meta descrições, texto alt, esquema, redirecionamentos) para o que encontrou, então as correções estão prontas para revisar e aplicar o momento em que o crawling termina em vez de ser gerado mais tarde sob demanda. Usa crédito IA em cada rawling.

Conteúdo de IA reescrita (páginas finas)

O agente pode redigir conteúdo de substituição completo para páginas finas. Nada é publicado por si só: cada rascunho aparece como uma alteração que você revê lado a lado e aprova ou rejeita, o conteúdo anterior é mantido para que seja reversível, e está limitado a algumas páginas por passe. Usa crédito IA por rascunhos.

💡
Ambas as opções só preparam e rascunho de trabalho. Cada mudança ainda passa pela mesma aprovação por passo, instantâneo e rollback como qualquer outro correção, então ligá-los nunca coloca nada ao vivo por si só.

Duas formas de ligação

SSH / SFTP caminho

Autogestão

Para sites no seu próprio servidor, o agente conecta- se SSH/SFTP usando credenciais que você armazena, edita a configuração do servidor e arquivos de página diretamente, e executa WP-CLI para WordPress. Melhor quando você tem acesso shell e quer o controle total de arquivos.

Hospedado...API Localização (não SSH)

Sem shell

Para plataformas que não permitem SSH, o agente trabalha inteiramente através de um funcionário API conector, WordPress (REST + Senhas da Aplicação), Webflow (Dados API v2) e Shopify (Admin API). Nada está instalado no host.

💡
Wix e Squarespace não têm SEO-write público API, então nessas plataformas o Auto-Implemento é executado em modo consultivo: ele mostra a mudança exata para fazer (o título preciso, meta ou configuração) para que você se aplique à mão. Tudo o resto é somente leitura e seguro.

Ligar os conectores

O agente chega a cada plataforma através de um conector:

Construído em

Shopify e WordPress conectores navio com OpsIQ, basta ativá-los em Conectores e adicionar as credenciais de loja / site.

Do Mercado

Webflow, Wix e Squarespace instalar a partir de conectores → Marketplace, em seguida, conectar da mesma forma.

Como uma sessão é executada

1
Escolha as correções

Abra o Auto-Implemento (rocket) da seção Inteligência do Site. Ele lista os problemas de Inteligência do site já descobriram que ele pode corrigir neste domínio.

2
Antever cada alteração

Para cada correção, o agente mostra um diff de corrida seca (exatamente o que ele vai escrever) antes de qualquer coisa tocar no site ao vivo.

3
Aprovar passo a passo

Você aprova (ou ignora) cada alteração individualmente. Nada é aplicado sem o seu consentimento explícito nesse passo.

4
Escreve, depois instantâneos

Na aprovação o agente faz a mudança ao vivo sobre SSH ou o hospedado API e salva um instantâneo primeiro, para que qualquer mudança possa ser removida.

5
Prove-o, viva

Como ele aplica cada mudança o agente imediatamente verifica essa página exata e mostra um veredito “consertado ao vivo” por passo, então você observa cada correção terra na página ao vivo como acontece. No final ele re-enraiza todo o site e confirma a contagem de questões abertas caiu.

Segurança e faturamento

Apenas SEO

O agente só pode fazer o que a Inteligência do Site recomendou para esse domínio. Não pode fazer alterações arbitrárias no seu site ou servidor.

Aprovação por fase

Cada escrita é visualizada como um diff e aplicada apenas depois de aprovar esse passo específico.

& Retroceder a imagem

Um instantâneo é salvo antes de cada gravação, então qualquer alteração pode ser revertida.

Prova viva por etapa

Cada página alterada é re-verificada no momento em que for escrita e recebe um veredicto “configurado ao vivo”, então uma correção é confirmada contra a página ao vivo imediatamente, não só no fechamento re-crawl.

O conteúdo nunca é publicado automaticamente

Links internos e reescritas de conteúdo de páginas finas são de maior impacto, então eles são sempre mostrados para você aprovação e nunca são aplicados automaticamente, seja qual for o modo que você executar.

Apenas para a gestão de IA

O Auto-Implemento é executado em IA Gerenciada; ele é bloqueado quando uma área de trabalho está usando suas próprias chaves (BYOK).

Faturação

AI tokens Bill normalmente como você usá-los, além de uma taxa por uso plana por sessão Auto-Implemento, ambos extraídos do mesmo crédito Gerenciado-AI.

O Auto- Implement está desligado por padrão. Habilite-o na página de configuração da IA (Cartão de Auto-Implemento) e certifique-se que o conector para sua plataforma esteja conectado primeiro.
Isso muda alguma coisa sem perguntar?+

Não. Cada alteração é visualizada como um diff de corrida seca e aplicada apenas depois de aprovar esse passo exato. Um instantâneo é salvo antes de cada gravação para que você possa voltar atrás.

Preciso de acesso SSH?+

Não está bem. WordPress, Shopify ou Webflow Eles trabalham através de seu oficial APIs sem acesso à cápsula. SSH é apenas um dos dois caminhos, usados quando você quer que o agente edite a configuração do servidor e arquivos diretamente em seu próprio servidor.

Como é que sei que funcionou?+

Após aplicar as correções aprovadas, o agente re-entrascar o site e mostrar a contagem de questões abertas antes e depois, para que você possa confirmar que as correções reduziram os problemas.

Será que ele vai reescrever ou publicar conteúdo de página por conta própria?+

Não. As reescritas de conteúdo de IA estão desligadas até que você as ligue nas opções de rastreamento, elas são limitadas a algumas páginas finas por passo, e cada rascunho é mostrado para aprovação lado a lado antes de qualquer coisa ser publicada. O conteúdo anterior é mantido, então uma reescrever pode sempre ser revertida.

Posso usá-lo com as minhas chaves de IA?+

Não. Auto-Implemento é Managed-AI somente e está bloqueado sob BYOK. Ele fatura fichas de IA normalmente mais uma taxa fixa por uso por sessão, a partir do mesmo crédito Gerenciado-AI.

Crescimento e engajamento

Estúdio de pesquisa

Survey Studio é o espaço de trabalho para criar pesquisas editáveis que podem ser entregues como uma página independente rica, widget do site ou inline embed. O produto atual também fornece links hospedados, prévias assinadas, convites privados, compartilhamento de QR, navegação por resposta e análise de pesquisa-escopada. O widget do website é uma escolha de entrega; não é a definição de uma pesquisa.

⚠️
Limite actual- versus- alvo: a experiência premium de criação e visualização, Connector Builder survey capacidade, e registro de provedores de pesquisa-proprietário / fronteira saúde estão disponíveis agora. Survey Studio ainda precisa da arquitetura multi-implantação independente, porta de identidade do inquérito assinado, fiação segmentação/variável, CRM Outreach enviar fluxo e digitado surveys.* API.

Criar uma pesquisa

1
Escolha como as pessoas vão tomá-lo

O assistente atual oferece página & link Standalone, widget de site e incorporação em linha. O fluxo de destino aprovado começa com o tipo de pesquisa e adiciona posteriormente o email CRM, o link privado e as implantações QR como escolhas de primeira classe.

2
Escolha o propósito

Escolha NPS, CSAT, CES, feedback do produto, pós-compra, cancelamento, onboarding, site, evento, webinar, suporte, chumbo / demonstração, julgamento, testemunho, pesquisa, funcionário, ingestão ou feedback geral.

3
Usar um modelo completo ou Iniciar em branco

O catálogo atual tem iniciados editáveis prontos agrupados por propósito. Escolher um modelo cria um rascunho copiado: mudar sua pesquisa não muda o iniciante ou outra pesquisa.

4
Personalizar ou revisão rápida

Personalizar abre todas as questões, design, comportamento e controle de entrega. Revisão rápida abre o mesmo rascunho na verificação final da visualização do cliente. Nada publica ou envia automaticamente.

Escolhas de entrega e comportamento presente

& Ligação de página independente

Uma página com a sua própria marca responsiva URL. Use convites privados e expirar quando cada destinatário precisar de um link controlado. Pontos de compartilhamento QR nesta experiência hospedada.

Elemento da página Web

O canal legado migrado. Ele pode usar página, geografia, dispositivo, visitante, data, amostragem, arrefecimento, visita e regras de cota. Ainda é suportado pela ponte legada com o ativo-widget enquanto a arquitetura de implantação é construída.

Incorporação em linha

Uma pesquisa responsiva colocada dentro de uma página, portal, produto ou centro de ajuda. Não requer Estúdio de Promoção.

E- mail

Hoje o Studio pode gerar convite HTML e links privados. Envio de ponta a ponta de contatos/segmentos CRM, com consentimento, supressão, agendamento, retentação e correlação de resposta, é o alvo aprovado de integração CRM Outreach.

Design e visualização empresarial

As páginas de pesquisa têm temas e famílias de layout de página, controles responsivos, cópia de boas- vindas e completações assinadas e uma antevisão do rascunho. A pré- visualização do designer é full- width abaixo do editor, não um trilho lateral estreito. Ele usa o tempo real hospedado em uma moldura com caixa de areia e suporta larguras de área de trabalho, tablet e telefone; tráfego de visualização não escreve respostas ou análises.

💡
O Survey Studio é independente do Promotion Studio. A segmentação, identidade, ativos, renderização e análise de execução devem ser propriedade da Pesquisa. O conteúdo da promoção pode ser reutilizado apenas através de uma cópia/importação explícita que crie dados separados da pesquisa; as edições posteriores da Promoção não devem ter efeito.

O produto de forma completa

Implementos independentes

Vivo

Uma pesquisa pode ter páginas, widgets, incorporação, e-mails de CRM, implantações de links privados e QR com seu próprio estado, design, público e análise. Cada pesquisa pode ser pausada, desabilitada ou excluída.

Promoção de CRM e campanhas

Vivo

Crie um público verificado a partir de segmentos CRM e conectores com capacidade para pesquisa, congele-o em uma versão imutável, faça um convite assinado cada um, e envie através do conector de email fixo outbound com a prova de entrega por convite.

Kit de campo e validação

Vivo

Sliders, escolha de imagem, upload de arquivo, assinatura, endereço, telefone, cabeçalhos e texto rico, com min/max comprimento, e-mail /URL/ number predefinições, texto de erro personalizado e prefill por pergunta URL parâmetros.

Lógica, fórmulas, resultados

Vivo

E/ou grupos de condição, regras de ramo, um motor de fórmula segura sobre as respostas, e bandas de pontuação que carregam sua própria página de resultado: um questionário pontuado cai em seu veredicto.

Idioma, quiosque, prefil

Vivo

Um visitante listando apenas idiomas com traduções reais, modo quiosque para tablets compartilhados (alvos maiores, auto-redefinição, sem redirecionamentos), um construtor de links prefill e texto de rodapé editável.

Testes da versão A/B

Vivo

Publicar uma versão de desafio em qualquer implantação com uma divisão de tráfego. Os visitantes são atribuídos rigorosamente, as respostas são carimbadas com a versão realmente servida, e a tabela de comparação mostra respostas, conclusão e pontuação média por versão. Promova o vencedor em um clique.

Digerir semanalmente

Vivo

Um email semanal com os últimos dias 7 de pesquisa KPIs, as pesquisas mais movimentadas, o pulso de Feedback e a última instrução de IA, enviado através do conector de saída fixado. Configure-o no Centro de Entrega, Automação.

Governação

Vivo

As listas de acesso por pesquisa restringem quem pode editar, publicar ou excluir uma pesquisa. A aprovação da publicação (quatro olhos) requer um segundo administrador para liberar o rascunho exato; a edição redefiniu a aprovação. Os links do rascunhos permitem que um revisor veja o raft real sem fazer login.

Plataforma de desenvolvimento

Vivo

Contrato de ligação 2.2, inquéritos dactilografados.* e acções de feedback.* api/v1, levantamento canônico.* eventos, webhooks assinados duráveis com formatos de relé Slack e Google Sheets, e uma resposta PDF Exportar.

Crescimento e engajamento

Análise e Feedback de Inquérito são produtos diferentes

Survey Analytics explica como uma pesquisa em si está atingindo pessoas e realizando. O feedback explica o que os clientes disseram em todas as fontes permitidas e o que o negócio deve fazer sobre isso. Os dois produtos se ligam uns aos outros, mas não compartilham ou sobrepõem a verdade analítica.

Análise de Inquéritos

Ingresso da pesquisa individual no Survey Studio, não da navegação global lateral. Mede a elegibilidade, exposição, comportamento de gatilho, starts, complection, abandono, atrito de perguntas e ramificações, timing, resultados de implantação/campanha/versão e confiabilidade em tempo de execução.

Visão geral do feedback & Caixa de entrada

Uma fonte cronológica de permissão para respostas completas do Inquérito, feedback legado widget, chat e ticket CSAT, feedback de resposta de ticket, avaliações de respostas de IA-cliente, votos úteis base de conhecimento e fontes externas/custom aprovadas.

Análise de Feedback

Analisa o significado do cliente: tendências métricas originais, tópicos/temas, sentimento, emoção, intenção, urgência, pedidos, reclamações, elogios, segmentos de viagem/produto/serviço/equipe, detratores e resultados em circuito fechado.

Propriedade dos dados

As respostas do inquérito permanecem autoritárias no armazenamento do Inquérito. O feedback armazena uma referência de fonte reconstruível e sinais derivados, então carrega evidências permitidas sob demanda. Uma resposta completa do Levantamento torna-se no máximo um item de Feedback.

⚠️
A página de Feedback atual ainda tem um navegador de resposta Survey e uma caixa de entrada separada do widget legado, e seus totais de IA ainda não usam o modelo fonte normalizado completo. A visão geral unificada / Caixa de entrada / Analytics / Fontes & design de saúde é o alvo da implementação.

NPS, CSAT, CES, estrelas, polegares e ajuda devem sempre manter o seu método original, escala, amostra, janela de data e denominador. Eles nunca devem ser combinados em uma média inexplicável.

Crescimento e SEO

Estúdio de Promoções

O Promotion Studio transforma o seu site em um motor de conversão. Pop-ups de design, banners, slide-ins, barras de topo/de fundo, tomadas de tela cheia, blocos em linha e até redirecionamentos baseados no país, então mostre a mensagem certa para o visitante certo no momento certo. Tudo é entregue através do widget OpsIQ já em seu site, por isso não há nada extra para instalar. Você projeta e salva campanhas a qualquer momento; eles só mostram uma vez que você Publique-os e o estúdio está ligado para o seu espaço de trabalho.

Estúdio de Promoções
Promotion Designer de estúdioUm designer de campanha visual com uma paleta de blocos, um pop-up na tela e um painel de alvo.Estúdio de Promoção - DesignerBLOQUEAÇÕESxBem-vindo, {first_name}!Obter 15% fora de seu primeiro pedidoSAVE15Reivindicar o meu cupãoOBJECTIVOPaísEstados Unidos, CAAtivadorIntenção de saídaA/B divisão50 / 50Publicar1CONCESSÃOArrastar blocos para a tela2ALVOPaís, página, público3MEDIDAA/B vencedor + Insight IA
O designer visual: uma paleta de blocos à esquerda, sua campanha na tela (aqui um pop-up de cupom personalizado usando um token {first_name}), e o painel segmentação + publicar à direita.

O quadro geral

Campanha

O que foi?

Uma promoção: um pop-up, banner, bar, slide-in, tela cheia, bloco inline ou geo-redirect. Cada um tem um objetivo: vendas, chumbo, inscrição, chat, pesquisa, anúncio.

Desenho e versões

Como

Você constrói a aparência no editor visual. Cada gravação cria uma nova versão, para que você possa sempre voltar atrás. Nada nunca é perdido.

Alvo

Quem?

Quem vê: país, página, dispositivo, fonte de tráfego, retorno vs novo, agenda e (com um conector) seus clientes logados.

Gatilhos

Quando

Quando aparece: instantaneamente, no atraso, na rolagem, na entrada de saída, quando inativo, em um clique, após páginas N, ou da atividade chat / ticket.

Análise

Resultados

Impressões ao vivo, cliques, conversões, um funil de drop-off, divisão país / página / dispositivo, vencedores A/B e uma visão IA.

Lançar a sua primeira promoção em 5 passos

1
Iniciar a partir de um modelo ou em branco

Abra o Estúdio de Promoção e clique em Nova campanha, ou escolha um design pronto-feito na galeria de modelos. Um rascunho abre no designer.

2
Desenhe-o

Arraste em blocos, cabeçalhos, texto, botões, imagens, crachás, estatísticas, contagem regressiva, formulários, cupons, vídeos, avaliações, rodas de giro. Cor do estilo, gradientes e efeitos 3D com os controles deslizantes. Visualize Desktop / Tablet / Mobile, e use Livre movimento para colocar qualquer coisa em qualquer lugar.

3
Personalizar

Digite tokens como {first_name}, {country} ou {company} em qualquer texto. No show-time eles se tornam os valores reais do visitante.

4
& Ativar alvo

Escolha quem vê (país, página, dispositivo, público) e quando dispara (atraso, rolagem, entrada). Deixe uma regra em branco para significar todos.

5
Verificar e, em seguida, publicar

Clique em Verificar para uma rápida pré-lançamento da varredura, depois Publicar. Ele vai ao vivo em segundos e começa a coletar análises.

Blocos que você pode construir

Conteúdo

Principal

Cabeçalho, parágrafo, lista, citação, imagem, ícone, crachá, stat, divisor e espaçador, os blocos de construção de qualquer mensagem.

Chamada à ação

Principal

Botões com ações reais: abra um link, inicie uma conversa, crie um ticket, copie um cupom ou pule para uma página.

& Captação de urgência

Prémio

Contagem regressiva, formulários (e-mail / telefone / texto), revela cupom e incorpora vídeo.

& feedback gamificado

Prémio

Rodas de rotação para ganhar, raspadinhas, classificações NPS / estrelas e funis multi-passo.

& Efeitos de disposição

Prémio

Colunas, barras de progresso, partilha social, marcadores de prova social, sim/não dois passos, quizzes e efeitos 3D, inclinação, brilho, paralaxe, vidramorfismo.

Tokens de personalização

Digite qualquer um destes em cabeçalhos, parágrafos, botões, crachás, estatísticas, listas ou citações. Eles são substituídos com os detalhes ao vivo do visitante no momento que a promoção mostra (sempre limpa para segurança):

Tokens disponíveis
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)

Referência-alvo

País & localização

Mostrar apenas em (ou esconder de) países escolhidos, cidades ou fusos horários via GeoIP. Ótimo para ofertas específicas de região ou um geo-redirect.

Páginas e URLs

Limitar a certas páginas usando igual / starts-com / contém / regex, e excluir páginas também.

Dispositivo

Ambiente de trabalho, tablet ou móvel, por exemplo, uma barra fina no telemóvel, um modal na área de trabalho.

Tipo de visitante

Novo, retornando, conhecido (no seu CRM) ou anônimo; segmentos de CRM, estágio do ciclo de vida, pontuação principal ou idioma do navegador.

Fonte de tráfego

Por UTM (utm_source, utm/campaign) ou site de referência, por exemplo, apenas visitantes de um anúncio específico.

Agendar & frequência

Início / datas de fim, janelas de hora-do-dia, e com que frequência uma pessoa pode vê-lo (por sessão, por dia, depois que eles fecham / clique / converter).

A/B repartição do tráfego

Mostrar para uma percentagem de visitantes e executar variantes cara-a-cabeça; a mesma pessoa sempre vê a mesma variante.

Audiências (logged-in)

Com um conector ativado, alvo por estado de conta ao vivo, por exemplo, clientes com faturas não pagas ou assinantes ativos.

Gatilhos

Escolha como a promoção aparece: Imediatamente, após um atraso, na profundidade de rolagem, na entrada de saída, quando inativo, em um clique de um elemento, depois de uma série de páginas vistas, no formulário-abandono, ou da atividade chat / ticket. Os desenvolvedores podem disparar uma do seu próprio código com window.OpsIQPromo.fire('event').

Clientes logados (conectores)

Isto é o que faz OpsIQ promoções especiais: conecte uma plataforma como WHMCS (ou qualquer conector que suporte o público) e o estúdio pode direcionar visitantes pelo seu estado de conta ao vivo.

1
Habilitar um conector de audiência

Sob os conectores, habilitar um que expõe fatos do público (WHMCS Os clientes são reconhecidos de forma segura quando estão registados nessa plataforma, OpsIQ nunca confia num e-mail digitado.

2
Adicionar uma regra de audiência

Na Targeting > Audiência da campanha, requeira login e adicione regras como faturas não remuneradas >= 1, a assinatura é passado ou crédito de conta > 0.

3
Personalizar com os seus dados

Usar tokens como {first_name} ou {balance_due} Um lembrete "Você tem uma fatura atrasada" escreve-se.

Segmentação do público é seguro: se o conector não pode confirmar um fato (ou o visitante não está logado), a promoção simplesmente não mostra, então uma oferta direcionada para faturamento nunca atinge a pessoa errada. Construindo seu próprio conector? Veja abaixo "Segmentação de audiência promocional".

Comércio conectado (a superpotência do estúdio)

Cartões de produto da sua loja

Dados vivos

Um bloco de produto puxa itens reais (nome, preço, preço de venda, imagem, link) diretamente de WHMCS, WooCommerce, Shopify ou a sua OpsIQ faturamento. Marque "Mantenha-se fresco" e o cartão atualiza seu preço da plataforma a cada hora enquanto é publicado.

Cupões providos de lojas

Cupões

Um bloco de cupons pode criar o código de desconto real em sua loja no momento em que você publicar, então o código que um visitante revela sempre funciona na saída.

Receitas da verdade de ordem

Atribuição

As ordens reais das suas plataformas são correspondentes às campanhas de hora em hora (por código de cupom usado ou pelo e-mail do líder) para que a receita que você vê seja de vendas reais, não estimativas.

Prova social real

Confiança

O ticker à prova de social pode levar com pedidos recentes genuínos ("Ada ordered Starter Plan · 2h há"), nome e item apenas, nunca e-mails ou valores.

Experiências e viagens

Variantes A/ B & auto- vencedor

Dividir o tráfego entre variantes de design; deixe que o estúdio promova automaticamente o vencedor estatístico, ou o tráfego manual para o bandido otimizador que desloca os visitantes para o que converte como evidência vem em.

Adiar a elevação

Reserve uma fatia de visitantes que não vêem nada, para que você possa provar que a campanha em si causa o elevador.

Variantes de segmentos

Conteúdo diferente por audiência na campanha SAME (visitantes móveis, carrinhos grandes, clientes retornando), cada segmento recebe sua própria versão.

Experimentos de gatilho

As variantes também podem testar QUANDO aparecer: imediata vs retardada vs de entrada de saída, medida cabeça-a-cabeça.

Viagens (correntes)

Meta pelo que alguém fez com outra campanha ("viu a campanha A mas não converteu") para construir sequências de promoção multi-step.

Teasers

Uma pequena pílula visitantes podem reabrir após fechar a campanha, para que um pop-up fechado nunca se foi para o bem.

Sabe o que aconteceu

Clique em mapa de calor

Designer

No designer, alternar o mapa de calor para pintar cliques reais visitante sobre cada bloco do seu design.

Funil de passo

Funil

Campanhas multi-passo mostram exatamente onde as pessoas saem, tela por tela.

Comparar campanhas

Estúdio

Coloque até quatro campanhas lado a lado (impressões, cliques, conversões), melhor valor destacado.

História semanal e digest

IA

Toda segunda-feira, um digest pousa em suas notificações; o botão 📖 Semanal story escreve um resumo de linguagem simples com os próximos passos sempre que você quiser.

Trabalhando confortavelmente

Co-piloto e ideias de IA

Converse com o copiloto de design para editar a tela ("faça o título urgente, adicione uma contagem regressiva"), obtenha ideias de campanha a partir de seus próprios dados de tráfego, traduza uma campanha por país ou corrija automaticamente uma pontuação baixa no design.

Importação do kit de marca

Um comando lê o seu site e propõe cores e fontes reais da sua marca; salve e cada colhedor leva com eles.

Funis multi-tela

Os blocos de passos ficam verdadeiros por edição da tela: guias para cada tela, adicionar ou reordenar telas, e a visualização segue em frente.

Versão e presença nomeadas

Nomeie versões importantes ("candidato à Lançamento"), restaure qualquer uma delas, e veja um aviso quando um companheiro de equipe está editando a mesma campanha.

& Regras de tira de dispositivo

Veja desktop, tablet e móvel lado a lado em uma visão; alternar as réguas de pixel para uma colocação precisa.

Canais de página hospedados

Cada campanha também pode ser uma página hospedada independente para bios e códigos QR, uma sequência de gotejamento de email para leads capturados, ou um rascunho de um clique na web.

Segurança empresarial

Publique janelas de congelamento (períodos de troca-congelamento), um interruptor de pausa de emergência, aprovações, trilha de auditoria e versão rollback.

Preciso adicionar código ao meu site?+

Não. Promoções são entregues pelo mesmo widget OpsIQ que você já instalou. Design, publicar, feito.

Os visitantes vão ver o mesmo pop-up vezes sem conta?+

Não. Defina as tampas de frequência (por sessão / por dia, ou pare depois que alguém fecha, clica ou converte).

Quem pode publicar?+

Publicar, pausar, arquivar e retroceder são limitados aos proprietários de espaço de trabalho e administradores completos. Qualquer membro da equipe pode criar e projetar rascunhos.

Crescimento e SEO

Promoção Designer de Produto

Promotion Designer é um editor de bloco responsivo para construir, revisar, versionar e publicar uma experiência de campanha.

Tela do produto
Promoção Designer de ProdutoO designer combina uma tela ao vivo, pré-visualizações de dispositivos, blocos, variáveis de personalização, comentários e histórico de versões.Promoção Designer de Produtoespaço de trabalhoVIEWPORTÁrea de trabalhoVERSÃOv12ESTADORascunhoCONCEITO AO LIVRO DA ESPAÇO DE TRABALHOBloqueio de heróiHeadline, meios de comunicação social e CTAEditarBloco de ofertaDesconto e prazoEditarPersonalizaçãoVariáveis de contacto e campanhaProntoVerificação de lançamentoComentários e validaçãoRevisão1BUILD BLOCKSEditar a disposição ao vivo2ANTERIORMENTEDesktop, tablet, celular3PUBLISHVersão da versão
O designer combina uma tela ao vivo, pré-visualizações de dispositivos, blocos, variáveis de personalização, comentários e histórico de versões.

Use blocos para compor a experiência, visualize cada viewport suportado e insira variáveis de personalização aprovadas. Reveja comentários e procedência de mídia-AI antes do lançamento. Salvar cria versões para que um projeto anterior possa ser inspecionado ou restaurado.

Crescimento e SEO

Modelos de promoção

Os modelos fornecem uma galeria inicial pesquisável e categorizada para campanhas Promotion Studio.

Tela do produto
Modelos de promoçãoA galeria de modelos filtra layouts premium e aplica cores de marca no espaço de trabalho quando um modelo se torna um rascunho.Modelos de promoçãoespaço de trabalhoCATEGORIAConversãoRESULTS24BRANDAplicadoCONCEITO AO LIVRO DA ESPAÇO DE TRABALHOOferta de saídaModal com urgência e CTAAntevisãoNova recepção de visitantesLista de banners e benefíciosAntevisãoLançamento do produtoHerói, prova e contagem regressivaAntevisãoPedido de respostaPromessa de pesquisa compactaAntevisão1FILTERCategoria e pesquisa2ANTERIORMENTEInspecionar o design completo3USECriar um rascunho com a marca
A galeria de modelos filtra layouts premium e aplica cores de marca no espaço de trabalho quando um modelo se torna um rascunho.

Pesquisa ou filtro por categoria, carregar resultados adicionais, visualizar a experiência completa, em seguida, escolher Usar modeloA nova campanha continua sendo um rascunho e pode ser alterada no Promotion Designer antes da publicação.

Crescimento e SEO

Análise de promoção

Análises de promoção conectam impressões e cliques a conversões, contexto do público, resultados de ação de conectores e aprendizagem de campanha.

Tela do produto
Análise de promoçãoAnálises de promoção mostram desempenho, audiência e falhas de gatilho, leva exportação e resultados de ação de conector.Análise de promoçãoespaço de trabalhoIMPRESSIONS42.8kCTR6.4%CONVERSIONS814CONCEITO AO LIVRO DA ESPAÇO DE TRABALHOPaísReino Unido · 31%RepartiçãoPágina/pricing · 22%RepartiçãoAtivadorIntenção de sair · 44%RepartiçãoAcção do conectorCoupon created · 97% successResultado1MEDIDAImpressões à conversão2SLICEPágina, país, dispositivo3LEARNAplicar o insight
Análises de promoção mostram desempenho, audiência e falhas de gatilho, leva exportação e resultados de ação de conector.

As impressões lidas, a taxa de cliques e as conversões juntas. Quebre os resultados por país, página, gatilho e dispositivo; exporte leads capturados quando necessário. Os resultados da ação do conector mostram se o acompanhamento prometido da promoção realmente foi executado. A insight e resumos de aprendizagem de IA devem ser tratados como hipóteses para validar, não como prova automática.

Crescimento e SEO

Anúncios

Anúncios publicar uma mensagem na área de notificação widget com segmentação opcional, agenda e chamada para ação.

Tela do produto
AnúnciosO editor de anúncios inclui conteúdo, CTA, audiência, segmento, regra de página, datas ativas e estilo visual.Anúnciosespaço de trabalhoAtivos3AUDIENCESegmentoREGIMEJul22–29CONCEITO AO LIVRO DA ESPAÇO DE TRABALHOTítuloManutenção planeadaProntoConteúdoMensagem de marcaçãoProntoCTALeia a atualizaçãoOpcionalRegraPáginas de preços · clientes ativosAlvo1WRITETítulo e Marcação2ALVOAudiência, segmento, página3REGIMEJanela ativa
O editor de anúncios inclui conteúdo, CTA, audiência, segmento, regra de página, datas ativas e estilo visual.

Escolha todos os visitantes, visitantes ou novos visitantes; opcionalmente, reduza o público com um segmento de contato e regra da página. Defina datas ativa/ativa e uma bandeira ativa. Predefinições e cores do estilo Premium mudam a apresentação mas não substitui conteúdo claro.

Crescimento e SEO

Push campanhas

Push campanhas enviar notificações do navegador para visitantes subscritos depois que eles deixaram o site.

Tela do produto
Push campanhasO compositor push mostra alcance, conteúdo, mídia, ações, regras de destino e estado de agendamento.Push campanhasespaço de trabalhoSUBSCRIBERS8,214ENVIADO31.6kCLICK RATE5.8%CONCEITO AO LIVRO DA ESPAÇO DE TRABALHOTítuloSeu carrinho está esperandoProntoCorpoVoltar hoje para entrega gratuitaProntoCTAAbrir carrinhoProntoAgendarEnviar agora ou agendadoRascunho1PREPARE PUSHTítulo, corpo, ícone2ALVOAudiência, segmento, página3SENDAgora, agendar ou rascunho
O compositor push mostra alcance, conteúdo, mídia, ações, regras de destino e estado de agendamento.

Configurar as teclas de empurrar da Web primeiro sob as configurações de empurrar na Web. Uma campanha pode incluir título, corpo, ícone, imagem do herói, crachá, CTA e até dois botões de ação; uma notificação persistente permanece até que o visitante interaja.

Alvo por audiência, segmento de contato opcional e regra de página. Salve um rascunho, programe-o ou envie imediatamente. Use as métricas de assinatura e clique para julgar o alcance. HTTPS e um trabalhador de serviço hospedado corretamente são necessários em sites incorporados de terceiros; veja Web Push em sites de terceiros.

Crescimento e SEO

Mensagens proativas

Mensagens Proativas alcançam automaticamente no momento em que o comportamento de um visitante corresponde a uma regra, antes que eles perguntem. Você constrói cada uma como uma regra com três partes: o que deve acontecer, quando ele deve disparar, e quantas vezes. OpsIQ widget já em seu site.

Proactivo
Mensagens proativasUm compositor de regras proativas em três partes: escolha uma ação (chat, banner, tour, push, email), adicione condições e configure um resfriamento de frequência.Mensagens Proativasespaço de trabalho1 · AcçãoMensagem de bate- papoBandeiraTourEmpurreE- mail2 · Condiçõespage = /pricinghora na página > 20sretornando3 · FrequênciaUma vez por sessãoEstado1ACÇÃOConversa, banner, e-mail, push...2CONDITIONSPágina, tempo, pontuação, retorno3FREQUENCIARefrigeração por visitante
Cada regra proativa é três opções: o que acontece (chat, banner, tour, push, email, webhook), quando (condições), e com que frequência (refrigeração).

As três partes de uma regra

1
O que deve acontecer (ação)

Mostrar uma bolha de chat ou banner na página, iniciar um Tour Guiado, enviar um push web ou e-mail, atribuir a um departamento, ou disparar um Webhook. {{visitor_name}} e {{page_title}} tornar-se valores reais.

2
Quando deve disparar (condições)

Estreita quem o desencadeia: página/URL, tempo na página, profundidade de rolagem, pontuação do lead, retornando vs novo, ocioso. Sem condições, a regra dispara para cada visitante. Adicione pelo menos um para segmentá-lo. As condições combinam com E.

3
Com que frequência (frequência)

Defina uma refrigeração para que a mesma pessoa não seja incomodada, por exemplo uma vez por sessão ou uma vez ao dia. Cada regra tem um estado de ligação/desligação.

⚠️
O espaço de trabalho comuta as regras "Executar o tempo/idle por hora" permite que as ações do lado do servidor (email, push, webhook, atribua) disparem numa agenda para contatos conhecidos que não estejam atualmente na página, para que você possa "enviar leads quentes inativos" automaticamente. Ele precisa do OpsIQ cron rodando. Deixe-o desligado se você só quiser tocar em live on- page.
Vai disparar para todos?+

Só se não adicionar condições. Adicione pelo menos uma condição (página, pontuação de liderança, retorno...) para atingir os visitantes certos.

Como se relacionam com fluxos e passeios?+

Eles trabalham juntos: uma regra proativa pode iniciar um Tour guiado, e um Fluxo de Chatbot pode ser acionado por uma regra pró-ativa. Comece com uma única regra de mensagem de chat, em seguida, coloque as outras na camada.

Crescimento e SEO

Fluxos de Chatbot

Chatbot Fluxos de conversação de script dentro do seu widget de chat (saudações, respostas de palavras-chave, caminhos guiados) sem código. Um fluxo é um conjunto de passos conectados (nós): você faz uma pergunta, o visitante escolhe uma opção e o fluxo envia- os para baixo da ramificação correspondente. Apenas fluxos ativos são executados em seu site.

Como funciona
Fluxos de ChatbotUma tela de fluxo: um nó de saudação ramifica em três botões de opção, cada um levando a um próximo passo, procurar ordem ou entregar para um humano.SaudaçãoComo posso ajudar?Acompanhe a minha ordemPergunta de cobrançaFale com um humanoProcurar ordem→ Agente humanoGatilhos: Saudação · Palavra-chave · Manual · Detalhes · No fim do bate-papo
Fluxos de Chatbot

Fluxo vs. IA · quando usar o que

Usar um fluxo

Quando o caminho é previsível e você quer que seja idêntico sempre: passos de reserva, um assistente retorna, um "que plano?" selector, coletando um email antes da entrega. Fluxos nunca improvisam.

Usar a IA

Quando as perguntas são abertas, "isso funciona com a minha configuração?". O Chat do Cliente IA responde de seu conhecimento treinado. Um fluxo pode passar para o IA (ou um humano) em qualquer etapa.

Gatilhos

Saudação

Executa como a mensagem de abertura quando um visitante abre o chat pela primeira vez.

Palavra- chave

Executa quando o visitante digita uma palavra que você listou (por exemplo, reembolso, preços, cancelamento).

Após os detalhes / Após o atraso

Começa uma vez que os detalhes de contato são compartilhados, ou um tempo definido na conversa.

No final do chat / Proactive

Funciona à medida que o chat termina (por exemplo, uma classificação), ou é iniciado por uma regra de Mensagem Proativa.

Construir um em quatro passos

1
Criar o fluxo

Clique em Novo Fluxo, nomeie-o, escolha um tipo de gatilho (e palavras-chave se a palavra- chave), salve. Ele começa desligado.

2
Abrir a tela

Clique em Editar Tela. O construtor visual onde você adiciona passos (mensagens, perguntas com botões, ramificações) e conectá-los.

3
Adicionar ramos e uma transferência

Para cada escolha, desenhe um ramo para o próximo passo. End caminhos resolvendo, entregando ao IA, ou transferindo para um humano.

4
Activar

Clique em Activar. O fluxo vai ao vivo no seu widget imediatamente. Desactivar a qualquer momento sem perder o design.

Os fluxos substituem a IA?+

Não. Eles correm lado a lado. Use fluxos para caminhos previsíveis e IA para perguntas abertas; um fluxo pode sempre passar para qualquer um deles.

Crescimento e SEO

Visitas guiadas

As visitas guiadas são passeatas passo a passo que apontam para partes da sua página com bolhas de fala e um holofote, guiando um visitante através de onboarding ou uma nova funcionalidade. Eles são totalmente temáticos e construídos em um designer visual com uma visualização ao vivo. Uma turnê é executada apenas quando está marcado Activo.

Como funciona
Visitas guiadasA dimmed page with a spotlight ring around an Add-deal button and a themed speech bubble reading Step 1 of 4 with a Next button.+ Adicionar acordoPASSO 1 DE 4Criar o seu primeiro negócioClique aqui para adicionar um acordo ao seu gasoduto.Próxima →
Visitas guiadas

Como é construída uma excursão

Passos

Cada passo visa um elemento e mostra uma bolha com o seu texto. Adicione tantas paradas quanto as necessidades de caminhada e encomendá-los.

Predefinir & tema

Comece a partir de uma pré-definição ou design sua própria bolha (cor, gradientes, holofotes) com uma visualização ao vivo à direita.

Ativador

Opcionalmente, ligue uma regra Proactive para que a excursão comece automaticamente quando essa regra for queimada (por exemplo, a primeira visita do visitante retornando).

Alternar ativa

Uma excursão é elegível para ser executada apenas enquanto o Active estiver marcado. Desmarque-a sem apagá-la.

Construir um em quatro passos

1
Nova visita guiada

Clique em Nova Visita Guiada, nomeie-a e ligue opcionalmente uma Regra Proativa para que ela comece automaticamente.

2
Adicionar passos

Adicionar cada paragem: escolha o elemento para o qual aponta e escreva o texto de bolha. Reordene até que o caminho flua.

3
Desenhe-o

Escolha uma predefinição ou faça o estilo da bolha. A antevisão ao vivo mostra exatamente o que os visitantes vêem.

4
Activar

Assinale Activo e salve. A excursão pode agora ser executada, no seu próprio gatilho ou iniciada por uma regra de Mensagem Proativa.

Como começam as excursões?+

No próprio gatilho, ou através de uma regra da Mensagem Proativa "Viagem Guiada" ação, então você decide quais visitantes ver que turnê e quando.

Crescimento e SEO

Objectivos de conversão

Os Objetivos de Conversão transformam uma atividade que você se importa (um evento webhook inbound, uma mensagem de chat, uma resolução de ticket) em uma conversão gravada com atribuição completa. Quando a atividade dispara, OpsIQ registra uma conversão contra o contato e a liga às campanhas, segmentos e fontes que lá levaram.

Como funciona
Objectivos de conversãoUm fluxo de meta: um evento webhook com sucesso torna-se uma conversão gravada "compra" no valor $49, atribuída à sua fonte e campanha, com chips predefinidos de início rápido acima.Início rápidoStripe purchaseDemo reservadoAssinatura da Newsletterpayment.succeededacionamento do hookConversão"Compra" · $49Atribuídofonte · campanha
Objectivos de conversão

Defina um objetivo em três etapas

1
Escolha a atividade do gatilho

Click New conversion goal. Choose the activity type that counts as a conversion, or use a Quick-start preset, Stripe purchase, Demo booked, Newsletter signup or Subscription started.

2
Nomeie-o e defina um valor

Dê à conversão um nome (compra, demo_booked, inscreva-se) e opcionalmente um valor fixo e uma janela de atribuição.

3
Gravar

Salve e habilite. A partir de então, sempre que a atividade dispara, OpsIQ registra uma conversão contra o contato com atribuição aos toques anteriores.

Os objetivos já estão conectados em webhooks de entrada: qualquer objetivo cujo gatilho corresponde a um tipo de evento inbound dispara automaticamente no momento em que o evento chegar. Use a página Inbound Webhooks para conectar Stripe, Calendly ou qualquer sistema que possa POST JSON.
O que pode ser uma conversão?+

Qualquer atividade gravada: um evento de webhook (payment. succeed), uma captura de e-mail de chat, uma resolução de tickets, qualquer coisa na linha do tempo de contato.

Análise

Painéis personalizados

Os painéis personalizados permitem- lhe criar a sua própria visão das métricas que importam, em vez de confiar apenas na Visão Geral padrão. Adicione os widgets que deseja, arraste e redimensione- os no layout que gosta, salve- o e compartilhe- o com sua equipe.

Painéis personalizados
Painéis personalizadosUm construtor de painéis com peças de KPI e gráfico, uma zona de queda arrojada e um botão Adicionar-widget.Painel Personalizadoespaço de trabalhoO meu painel+ Adicionar widgetVISITORES2,481RECEITAS$8.2kTRÁFICOArraste aqui um elementoPÁGINAS TOP/pricing/docs/signup1ADD WIDGETSEscolha métricas e gráficos2ARRANGEArrastar & redimensionar3SHARECom a tua equipa
Construa o seu próprio tabuleiro: adicione elementos KPI, gráfico e lista, arraste- os e redimensione- os para a disposição que deseja e partilhe- o com a equipa.

Construir um em cada três passos

1
Adicionar elementos

Clique em Adicionar Widget e escolha a métrica ou gráfico que deseja rastrear. Repita para tudo o que quiser no quadro.

2
Organizar a disposição

Arraste os elementos para reposicionar e arraste as suas bordas para redimensionar. KPIs através do topo, gráficos abaixo. O que quer que leia melhor.

3
Gravar & partilha

Salve o painel e compartilhe-o com sua equipe para que todos vejam os mesmos números.

Mantenha quadros separados para trabalhos separados (um conselho "visita diária" com contagens ao vivo, e um conselho "revisão mensal" com gráficos de tendência) para que cada permanece focado.
Crescimento e SEO

Campanhas de sensibilização

A divulgação é OpsIQ's1:1e motor de e-mail em massa: compor uma mensagem personalizada ou executar uma campanha para um segmento CRM, com detecção de resposta, controle de tempo de envio, rastreamento aberto/clique, um pixel de rastreamento e cancelamento de um clique. É compatível com o consentimento-gated e CAN-SPAM / CASL.

Divulgação
Campanhas de sensibilizaçãoA tela de Outreach com guias Compositor/Campanhas/Templates/Replies e uma tabela de campanha mostrando envio, taxa aberta e taxa de resposta.Divulgaçãoespaço de trabalhoCampanhasCompositorModelosRespostasCAMPANHAENVIADOABERTORESPOSTASBoletim de Junho1,20048%7%Acompanhamento do ensaio34062%14%Recuperação82039%5%Responder detecção auto-para os acompanhamentos · um clique de cancelamento da subscrição em cada envio11:1 & BULKCompor ou fazer campanha2TRACKEDAbre, clica, responde3COMPLIANTCancelar a subscrição incorporada
O motor Outreach: enviar1:1ou executar campanhas para um segmento, rastrear aberturas e respostas, e manter-se em conformidade com a detecção de cancelamento de subscrição incorporada e resposta.

As quatro páginas

Compositor

Escrever um personalizado1:1e- mail com {tokens} do contacto e da CRM.

Campanhas

Envie para um segmento CRM, agendado ou agora, com caps e controle de tempo de envio.

Modelos

Modelos de mensagens reutilizáveis para divulgação repetida.

Respostas

Responder detecção registra respostas e auto-para os acompanhamentos para qualquer um que respondeu.

Como uma campanha funciona

1
Escolha uma audiência

Escolha um segmento CRM (ou envie uma lista). A supressão e o consentimento são aplicados automaticamente.

2
Compor

Escreva a mensagem com tokens de personalização; antevisão contra um contacto real.

3
Agendar & enviar

Envie agora ou na melhor altura. Um registo de pixels de seguimento abre; os cliques e as respostas são atribuídos.

O outreach é o consentimento- e supressão-aberto, inclui um único clique de cancelamento em cada envio, e segue CAN-SPAM / CASL. Respostas automaticamente parar mais acompanhamentos.
Análise

Relatórios agendados

Relatórios agendados e-mail uma métrica escolhida para os destinatários escolhidos em um cronograma (diário, semanal ou mensal) como um rótulo branco imprimível PDF. Defina-o uma vez e o relatório pousa em caixas de entrada automaticamente através do OpsIQ Cron.

Relatórios agendados
Relatórios agendadosA tela de relatórios agendados: uma tabela de relatórios com sua programação, destinatários e última hora enviada, além de um botão Salvar-relato.Relatórios Agendadosespaço de trabalhoRelatórios agendados+ Salvar relatórioRELATÓRIOREGIMERECIPIENTESÚLTIMA ENVIADATráfego semanalMon9:00[email protected]2d atrásRelatório do cliente SEOMensal[email protected]Jun 1Resumo das vendasDiariamente[email protected]todayAdministrado como rótulo branco PDF através da OpsIQ cron1AUTOMATEDDiariamente · semanal · mensal2LÁBULO BRANCOPDF to clients3RECIPIENTESEnviado por e- mail no horário
Define um relatório uma vez (set, range, schedule, receivers) e OpsIQ e- mails de um rótulo branco PDF automaticamente na sua cadência.

Criar um relatório

1
Escolha o que enviar

Escolha o conjunto métrico (tráfico, SEO, vendas, suporte...) e um intervalo de datas.

2
Definir & destinatários de agenda

Diariamente, semanal ou mensal, em um momento que você escolher, para um ou mais destinatários de e-mail.

3
Gravar

Gravar e activar. O relatório gera e envia e- mails em si, sem passo manual.

💡
Relatórios agendados são executados através do cron OpsIQ, se um relatório não chegar, confirme que o cron está em execução (ver Cron e automação).
Privacidade

Privacidade e conformidade

A página Privacidade e Conformidade é o único lugar para mostrar um auditor que você lida com dados pessoais de forma responsável: o livro de registros de consentimento, o registro de acesso do administrador, sua política de residência e retenção de dados e uma DPA pronta para impressão em uma visualização tabulada.

Privacidade e conformidade
Privacidade e conformidadeA tela Privacidade e Compliance: abas para o livro de consentimento, log de acesso, Residência e DPA, com uma tabela de consentimento do registro de subvenções e revoga por canal.Privacidade e conformidadeespaço de trabalhoRegisto de consentimentoRegisto de acessoResidênciaDPACONTATOCANALACÇÃODATA[email protected]e- mailConcedidoJun 12[email protected]pushRevogadoJun 10[email protected]marketingConcedidoJun 9Provas pesquisáveis de cada concessão de consentimento e revogação, por canal1CONSENT LEDGERProva de cada subvenção2ACCESS LOGQuem tocou nos dados3DPAModelo para impressão
Uma tela pronta para auditor: um livro de registros de consentimentos (grants/revokes by canal), um registro de acesso de quem tocou dados, configurações de residência/retenção e uma impressão DPA.

As quatro páginas

Registo de consentimento

Um registro pesquisável de cada concessão de consentimento e revogar, por contato, canal (email, push, SMS, in-widget), ação, fonte e data. Sua prova um contato acordado (ou retirado).

Registo de acesso

Quem na sua equipe viu, editou, exportou, apagou ou enviou mensagens aos dados de um contato, com o administrador, contato, ação, razão declarada e IP. Exatamente o que um regulador pede.

Residência e retenção

Declare onde os dados deste espaço de trabalho vivem, defina quantos dias as linhas de atividade são mantidas (0 = para sempre), e grave seu controlador de dados e DPO.

DPA modelo

Uma Adenda de Processamento de Dados para impressão que preenche o seu controlador, endereço, DPO, residência e retenção. Imprima ou salve como PDF.

Privacidade e conformidade em pares com o estúdio de consentimento Cookie (que coleta o consentimento) e a página Exportar (que produz a cópia de dados para uma DSAR). Veja também Cron e automação para a limpeza da retenção noturna.
Conectores

Conecte suas plataformas

Ligação aos conectores OpsIQ para plataformas externas: lojas de e-commerce, sistemas de faturamento, processadores de pagamento, provedores de email e personalizados APIs. Uma vez conectado, o IA pode pesquisar pedidos, dados do cliente, assinaturas e muito mais, e tomar ações com sua aprovação.

Como funciona
hub de conexõesOpsIQ núcleo ligado a WHMCS, Shopify, Stripe, WooCommerce, SendGrid e Google Business Profile, cada um mostrando um status conectado.WHMCSShopifyStripeWooCommerceSendGridGoogle BPOpsIQCORE1PLUG IN25+ conectores pré-construídos2AI CONTEXTDados reais da plataforma3ACTIONSFeito com a sua aprovação
Conectores

Navios comOpsIQ

Estes estão presentes no momento em que você instalar e precisa apenas de suas credenciais.

WHMCS

Faturação

Web hosting faturamento: clientes, serviços, bilhetes, faturas, domínios, servidores.

Shopify

Comércio electrónico

E-commerce: pedidos, clientes, produtos, inventário, pagamentos, webhooks.

WooCommerce

Comércio electrónico

WordPress e-commerce: orders, customers, products, coupons, shipping.

WordPress

CMS

Conteúdo e usuários em um site WordPress.

Quadrado

Pagamentos

Pagamentos e ponto de venda: encomendas, clientes, catálogo.

OsCommerce

Comércio electrónico

Legacy e-commerce: pedidos, clientes, produtos.

Botble Hotel

Ponte

Um hotel Botble CMS através da assinaturaOpsIQponte. A implementação de referência para uma plataforma comAPI.

Zendesk

Suporte

Helpdesk: tickets, usuários, organizações, comentários.

Perfil de Negócios do Google

Comercialização

Negócios locais: comentários, posts, perguntas e respostas, insights. Uses OAuth.

Calendário Google

Produtividade

Calendários e eventos. Usa OAuth.

GmaileIMAP

E- mail

Caixas de correio: entrada e saída do correio, sincronização do livro de endereços.

SendGrid

E- mail

Entrega de email: envie e-mails e gerencie modelos.

Arma de correio

E- mail

Entrega de e-mail: enviar e-mails via Mailgun.

Slack, Telegram, LINHA, X DM

Mensagens

Mensagens de canais para conversas de entrada e saída.

Meta- canais

Mensagens

Facebook Messenger, Instagram DM e WhatsApp.

Informações sobre os sítios (GA4, Consola de Pesquisa)

Análise

Análise e dados de pesquisa para o conjunto SEO.

Enriquecimento do sítio Web e importação CRM

CRM

Enriquecimento da empresa e importação de clientes a granel.

Disponível no mercado

Estes são pacotes publicados, não parte da instalação. Instale um dos Conectores, Marketplace e é copiado para a pasta de conectores ao vivo, após o que se comporta exatamente como os acima.

Stripe

Mercado

Pagamentos: encargos, clientes, faturas, assinaturas, pagamentos, disputas.

Grande Comercio

Mercado

E-commerce: pedidos, clientes, produtos, categorias, marcas.

Magento 2

Mercado

E-commerce: pedidos, clientes, produtos, categorias, inventário.

PrestaShop

Mercado

Comércio eletrônico: pedidos, clientes, produtos, regras de carrinho, transportadores.

OpenCart

Mercado

E-commerce: pedidos, clientes, produtos, categorias.

Amazon SES, Postmark, Reenviar

Mercado

Entrega de e-mail transacional.

Jira, Linear

Mercado

Emissão e seguimento do projecto.

Zoom, Microsoft Calendar, Outlook Mail

Mercado

Reuniões, calendários e correio.

DocuSign, Apollo, SerpApi,Google Analytics

Mercado

Dados de assinatura, prospecção, pesquisa e análise.

Webflow, Wix, Squarespace

Mercado

Plataformas de sites.

💡
A lista de conectores se move à medida que os pacotes são publicados. A lista autorizada para sua instalação é a página Conectores: o que está listado lá é o que o runtime descobriu, e a aba Marketplace mostra o que você pode adicionar.

Instalar um conector

1
Ir para os conectores

Navegue para Conectores na barra lateral do administrador.

2
Encontrar o conector

Procurar na lista ou pesquisa. Os conectores são agrupados por categoria.

3
Activar

Clique no conector e alternar Habilitar.

4
Digite credenciais

Preencha os campos obrigatórios: API chave, URL, tokens, etc Cada conector tem requisitos específicos documentados em seu painel de configurações.

5
Ligação de ensaio

Clique em "Conexão de Teste". Um resultado verde significa que o conector pode chegar à plataforma externa. Um resultado vermelho mostra o erro.

6
Configurar as funcionalidades

Escolha quais recursos para ativar: sincronização de conhecimento, sincronização webhook, ações de IA. Nem todos os conectores suportam todas as características.

O que conectores lhe dão

Contexto das IA

A IA pode procurar dados do cliente, pedidos, assinaturas e muito mais através do conector. Quando um cliente conversa, a IA tem dados reais da plataforma para referência.

Contexto de IA (autores do conector)

Contexto do seu conectorO Provider alimenta o ticket-AI um resumo de conta somente leitura do proprietário do ticket. customer_id quando conhecido; caso contrário, no ticket responde automaticamente, onde a bandeira ctx customer_trust_email é verdade, procure a conta por customer_email (o remetente verificado). Plataformas remotas expõem uma /context/customer-by-email Endpoint e o conector chama-o. Isto é o que faz com que a IA cite um equilíbrio real/fatura em vez de dizer “por favor, faça login.” Honrar as alternações da classe de dados do operador (customer_sections, customer_allow_credit) e permanecer estritamente somente leitura, nunca emite segredos.

Diretório do cliente (autores da conexão)

A Identidade do seu conectorProvider alimenta três buscas universais de ticket: lookupCustomerById() (cartão de cliente), lookupCustomerServices() (quadro produto/serviço), e listCustomers($query,$limit): o "Pesquisar cliente ou tipo de email" escolhe no formulário nativo Compose-New-Ticket. {id, external_id, name, email, company, phone, platform, platform_label}. Regra remota: se seus clientes vivem em outro banco de dados ou serviço,API dentro destes métodos, nunca leia as tabelas do outro sistema diretamente (no OpsIQ DB eles são espaços vazios, e é por isso que uma leitura local retorna um selecionador vazio). Gate the remote path on your configured API URL; manter uma leitura local apenas como um recurso do mesmo-DB.

Bilhetes com e-mail, detecção e roteamento (autores do conector)

Quando o e-mail de entrada se torna um ticket nativo, OpsIQ detecta o remetente chamando lookupCustomerById(0, ['email'=>$sender]) em cada conector; o primeiro jogo "de posse" do cliente e sua platform a bala está estampada na ticket.created evento como _pipe_owner_platform (vazio = convidado).WHMCS- e-mail do cliente abre um ticket dentro WHMCS (WHMCS Numeração, espelhada como uma), enquanto um remetente desconhecido permanece um convidado nativo. Se o seu conector espelha os bilhetes nativos em sua própria plataforma, o seu ticket.created O responsável deve fazer uma ligação com isto: if (array_key_exists('_pipe_owner_platform',$payload) && $payload['_pipe_owner_platform'] !== '<your-slug>') return;. A chave está ausente em tickets não piped (chat/manual/AI), de modo que aqueles espelho como antes. Controle por departamento vive sob Equipe & Departamentos → Abrir tickets via e-mail (Qualquer um / Clientes apenas / Desligado).

Acções

A IA pode realizar ações através do conector: criar tickets, atualizar pedidos, cancelar assinaturas, tudo com sua aprovação através da Camada de Confiança.

Conhecimento

Os conectores contribuem com artigos de conhecimento específicos da plataforma para a IA. Shopify o conector adiciona solução de problemas de comércio eletrônico; WHMCS Conector adiciona conhecimento de hospedagem.

Importação de base de conhecimento (autores da ligação)

Se a sua plataforma hospeda uma base de conhecimento, declare kb_capabilities bloco settings.json (tipo kb_source) e seu conector aparece no editor da Central de Ajuda Importar KB → Importar de um aplicativo conectado dropdown sempre que estiver habilitado e configurado na área de trabalho. É declarativo, sem método para implementar: nome a built- in adapter (zendesk para a Central de Ajuda da Árvore exata API, ou crawl para qualquer site KB) e um base_template tais como https://{subdomain}.zendesk.com, which OpsIQ fills from your connector's stored settings. Credentials never leave the server; the browser only sends the connector slug. To support a new platform, add an opsiq_kb_<platform>_manifest() adaptador e referência por nome. Referência completa: connectors/PLATFORM_CONNECTORS.md §5.

Webhooks

Alguns conectores registram webhooks com a plataforma externa para notificações de eventos em tempo real (novos pedidos, atualizações de tickets, etc.).

Acompanhamento de vendas

Conectores de comércio eletrônico alimentam dados de receita no painel de vendas para atribuição e análise.

💡
Os conectores são workspace-scoped. Cada espaço de trabalho pode ter conectores diferentes habilitados com credenciais diferentes. A WHMCS espaço de trabalho usa o WHMCS conector; a Shopify espaço de trabalho usa o Shopify conector.
Posso usar vários conectores de uma vez?+

Sim. Você pode ter Shopify para pedidos e Stripe para pagamentos na mesma área de trabalho. A IA mescla dados de todos os conectores habilitados.

E se a minha plataforma não estiver listada?+

Use o Connector Builder para criar um conector personalizado para qualquer plataforma com um REST API. Ou verifique no Marketplace se há conectores construídos pela comunidade.

Os conectores funcionam com OpsIQ auto-hosted?+

Sim. Os conectores funcionam de forma idêntica em edições de nuvem e auto-hospedagem.

Conectores

Contrato de conectores de vendas e faturamento

Every commerce connector uses the same platform-neutral event contract. WHMCS is the reference implementation, but SaaS Bridge, stores, payment providers, marketplace connectors and Connector Builder packages must obey the same rules.

O que cada conector comercial deve publicar

Um livro de registos autoritários

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.

Identidade de origem estável

plataforma é a lesma de registro do conector, tais como whmcs, shopify ou opsiq_saas. traffic_source contém atribuição de aquisição verificada quando fornecida; caso contrário, use a mesma lesma que o fallback. Armazenar identificadores, não exibir rótulos. OpsIQ resolve o nome do conector amigável na UI.

Idempotência

event_id deve ser determinístico. Mapear pelo menos um order_ref imutável, fatura_ref ou subscription_ref para que as retificações e retroescavamentos webhook atualizem o mesmo evento em vez de criar vendas duplicadas. service_ref identifica a instância afetada do produto ou serviço quando existe.

Hora de origem

overnight_at é o tempo de pagamento ou evento econômico relatado pela plataforma fonte. Nunca substitua as datas históricas de pagamento pelo tempo de importação.

Dinheiro e FX

Se a configuração do conector habilitar OpsIQ conversão FX, o relatório converte para a moeda de reporte da área de trabalho; caso contrário, os relatórios preservam a moeda da plataforma de armazenamento ou faturamento. O código do conector não deve codificar uma moeda de relato ou taxa de câmbio.

Ciclo de vida baseado em provas

Use novo, renovação, atualização, reembolso, crédito ou desconhecido. Classifique a partir de razão da fatura, assinatura ou relação de serviço, tipo de linha-item, ou outro campo fonte autoritário. Uma compra repetida pelo mesmo cliente não é automaticamente uma renovação.

Limite das vendas

Apenas os recibos de comércio pagos positivos, renovação, atualização ou legitimamente desconhecidos pertencem às vendas e conversões. Os reembolsos são reportados por reembolso e análise de receitas líquidas. Crédito da conta, backups de carteira, top-ups de fichas e Add Funds permanecem eventos de faturamento e nunca contam como vendas, converções, volume de pedidos ou receita de vendas.

O CRM mantém-se separado

As operações de CRM representam a actividade do gasoduto e da operação, não sendo as vendas efectuadas através de plataformas comerciais, salvo se uma plataforma de facturação ou armazenagem ligada emitir o pedido pago realizado ou a factura através deste contrato.

Projecções derivadas

Opsiq_conversões e resumos de painel são projeções de compatibilidade reconstruídas do livro de registros. Os conectores não devem tratar uma projeção como a fonte financeira da verdade. As revisões de contrato podem reavaliar linhas derivadas sem excluir o histórico de faturamento subjacente.

Limite remoto da plataforma

Um conector remoto lê sua plataforma através do API configurado. Ele nunca deve depender de tabelas de banco de dados do mesmo servidor. O domínio autenticado exato site_key é fornecido pelo ConnectorRegistry e deve ser aplicado a cada registro escrito e backfill. Área de trabalho ou escopo do grupo é apenas agregação de tempo-leitura; ele nunca deve ampliar a propriedade de eventos armazenados.

Exemplo de evento pago canônico

Evento comercial normalizado
{
  "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"
}

Mapeamento do Construtor de Conectores

Quando as vendas e faturamento estão habilitados no Connector Builder, a quantidade do mapa, moeda, estado de origem e data de origem, além de pelo menos uma ordem, fatura ou referência de assinatura. Map lifecycle_type quando o API expõe evidência autoritária do ciclo de vida. O SalesIngest gerado passa cada linha através do mesmo normalizador ComércioEventoRegistry usado por conectores embutidos e marketplace.

⚠️
Créditos e Add Funds são intencionalmente retidos para o histórico de faturamento, contexto de equilíbrio do cliente e análise de registro. Excluindo-os das vendas não excluí-los; isso só impede que eles inflacionem desempenho comercial.

lifecycle_type decide o que se torna um negócio CRM

lifecycle_type não é uma etiqueta analítica.OpsIQlê-lo para decidir se uma venda entra noCRMpipeline, então cada conector de vendas está tomando uma decisão do pipele se pretende ou não.

novo

Abre um negócio fechado (novo negócio).

renovação, atualização

Nenhum negócio novo - renovações converter em uma curva de probabilidade diferente e misturá-los corrompe ambas as previsões.

reembolso, crédito

Nunca abre um negócio, em qualquer modo. O dinheiro devolvido a um cliente não é uma vitória.

omitido / desconhecido

A venda é registada mas nunca chega ao gasoduto.

Uma venda, uma linha de registo: identidade é a SALE, não o evento

Não corresponder event_id e insira-se. event_id is platform:eventName:externalId, que responde “já processamos esta entrega” e não podemos responder “já gravamos esta venda”. Uma plataforma que anuncia um pagamento duas vezes – como invoice.paid e novamente como payment.completed — menta dois ids e pousa o mesmo dinheiro duas vezes, sem nada para colidir e nada para avisar.

💡
Encontrado na instalação de referência: seis faturas com três linhas de registro cada, a partir de três caminhos de código usando três esquemas event_id diferentes. Todos eles carregavam 0.00 para que nenhum total parecesse errado, e qualquer processo posterior restaurando valores reais teria contado um pagamento três vezes.

Chame a escrita compartilhada em vez. O núcleo calcula a identidade de negócio da venda (sale_fingerprint), corresponde a uma linha existente nela, preserva o original event_id na atualização e filtros para colunas reais:

A única forma suportada de escrever o livro de vendas
\OpsIQ\Commerce\CommerceEventContract::upsertSaleRow('opsiq_sales_events', $row);
Mesma venda, muitos eventos

fatura. pay, payment. completed e sale. complied para uma fatura compartilhar uma impressão digital e atualizar uma linha.

As restituições ficam separadas

Dinheiro saindo é um fato diferente do dinheiro entrando. Um reembolso de uma fatura mantém sua própria identidade, para que nunca pode substituir o pagamento que reverte.

Sem referência, sem impressão digital

Uma linha que não carrega nenhuma ordem, fatura, assinatura ou referência de serviço não recebe nenhuma impressão digital, então duas linhas não relacionadas nunca colidem só porque ambas estão faltando um id.

Precedência de referência

Factory_ref, então order_ref e depois subscription_ref., em seguida service_ref — mais forte primeiro, para que uma venda mantenha uma identidade estável.

O livro de registos é apenas para apêndices: nunca reescreva uma venda

Um reembolso, um cancelamento ou uma correcção é um nova entrada datada. Nunca mute a linha que corrige. Reescrever um pagamento em um reembolso parece arrumado e quebra três coisas ao mesmo tempo:

Destrui receitas brutas

As vendas brutas e a taxa de restituição deixam de ser separáveis — e a percentagem de restituição é a métrica que existe para informar.

Ele registra a inversão no período errado

Um reembolso de março de uma venda de janeiro deve reduzir Março. Reescrever a linha de janeiro silenciosamente reafirma um período fechado.

Quebra a pista de auditoria

Um registro de registro registra o que aconteceu em um momento no tempo. Correções são contra-entries, que é como a contabilidade de dupla entrada tem funcionado por cinco séculos.

Então um conector relata a reversão em vez de aplicá-la: retorno refunded_at e refund_amount ao lado do ciclo de vida da própria venda, e deixe que o chamador escrever o reembolso como sua própria linha datada quando o reembolso aconteceu. Os dois nunca podem colidir, porque a impressão digital da venda separa um retorno de uma venda.

💡
O mesmo princípio se aplica aos montantes. Não "reparar" um valor armazenado ao valor atual da plataforma: uma fatura liquidada a partir do crédito de conta registrado legitimamente 0 no momento do pagamento, e o dinheiro já foi gravado quando o cliente completou. Restaurando o valor facial conta-o duas vezes.

O contrato de classificação

OpsIQ decides the lifecycle once, in \OpsIQ\Commerce\SaleLifecycleClassifier. Um conector declara apenas qual de a sua própria plataforma palavras significam o que, implementando \OpsIQ\Connectors\SalesLifecycleConnectorInterface::salesLifecycleVocabulary(), e depois chama o classificador compartilhado. Não reimplemente o raciocínio.

Declarar vocabulário, delegar a decisão
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,
]);
💡
A precedência é fixa e compartilhada: explícita, então reembolsada/cancelada, depois a crédito, depois o upgrade, então is_order, então recorrente, em seguida, aquisição, então desconhecida. O upgrade fica acima da verificação de ordem porque plataformas levantam uma ordem para atualizações também; o recorrente fica abaixo dela porque a primeira fatura de uma nova assinatura carrega um tipo de linha recorrente. Em uma venda não-ordem ambígua, o classificador se inclina para receita e longe do gasoduto.

Declare todo o vocabulário da plataforma

Esta é a falha que mais custa e parece menos errada. O conector WHMCS correspondeu ['hosting','addon','domain'] — uma lista que leia como completa. WHMCS não emite um nu Domain tipo para linhas de domínio reais; emite DomainRegister, DomainRenew, DomainTransfer, PromoHosting, PromoDomain, DomainAddon* e UpgradeTodos eles passaram da lista para unknown: 1,288 invoices, three years, no error and no log line.

Cada novo cliente importa seu histórico através de um backfill de conectores, então um bug de classificação não afeta uma área de trabalho — afeta cada espaço de trabalho que sempre embarca através desse conector, no momento em que eles olham pela primeira vez para o seu pipeline. Pegue o vocabulário da documentação da plataforma ou um censo de dados ao vivo, e combinar famílias em crescimento por prefix assim, um irmão que ninguém viu ainda classifica com seus parentes em vez de desaparecer.

💡
Uma verificação prática: conte quantas das suas próprias linhas aterrissam no desconhecido. Um conector de vendas saudável classifica quase tudo. Um fluxo constante de dados desconhecidos quase nunca é dado que você não tem — é um vocabulário que o conector nunca aprendeu a ler.

Reparando histórico importado

Cada conector de vendas OpsIQ enviado implementa este — 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() usando o que o registro per buscar seu conector já tem. tools/crm_backfill_sales_lifecycle.php em seguida, repara o histórico importado do seu conector sem código por conexão: sec run by default, faz backup e verifica a contagem da linha antes de escrever, reversível através de um livro de registros de desfazer, e nunca escreve uma leitura falhada como resposta.

💡
Se o seu conector não conseguir reler os registros passados — um conector somente para webhook não pode — não rotule o método. Um stub retornando desconhecido é pior do que nenhuma implementação: um backfill reescreveria boas linhas como não classificadas e relataria sucesso. Implemente apenas a interface de vocabulário.
💡
Referências detalhadas de pacotes permanecem disponíveis em conectores/CONNECTOR_EVENTS. md e conectores /PLATFORM_CONNECTORS. md em distribuições de fonte auto-hospedadas.
Conectores

Contrato de evento de viagem

Journey Intelligence aceita um envelope de eventos neutros para plataformas do widget do navegador, conectores embutidos, SaaS Bridge, pacotes de mercado e saída do Connector Builder. Nomes específicos para plataformas são traduzidos na borda; funil, atribuição e código Site Intelligencia consome apenas eventos canônicos.

Limite de isolamento e confiança

Chave de domínio exato

Cada evento está ligado à chave_ site. Um conector deve pegar essa chave do ConnectorRegistry ou seu endpoint autenticado, nunca de um corpo de requisição não confiável. Os domínios mantêm registros separados; um grupo de domínio é apenas um agregado em tempo de leitura.

Identidade indemponente

event_id é necessário para conectores e deve ser determinístico para o mesmo evento nativo. As tentativas, webhooks e backfills atualizam um evento em vez de duplicar uma jornada ou venda.

Nome canónico nativo mais

Preservar source_event_name para evidência e solução de problemas, em seguida, mapeá-lo para event_nome_canonical. Análises do núcleo nunca devem ramificar em uma lesma de conector.

A evidência do servidor ganha

A observação do navegador pode iniciar ou inferir uma viagem. Os eventos de conectores autenticados confirmam o registro, login, pagamento, compra, renovação, reembolso e outros resultados de terminal. Um token válido de correlação ligado ao site é a mais forte associação; um token inválido é rejeitado e seus IDs incorporados não são confiáveis.

Privacidade

Envie apenas identificadores e campos necessários para a viagem declarada. Respeite as configurações de consentimento, mascaramento e retenção. Nunca coloque credenciais, dados de cartão, segredos de autenticação ou órgãos de mensagens privados em propriedades.

Envelope canônico

Envelope de eventos da viagem
{
  "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"}
}

Taxonomia canônica

Use o nome mais restrito e verdadeiro. As famílias suportadas incluem eventos de página de engajamento/CTA; registro de conta, login, MFA e reset de senha; etapas de lead e form; produto, carrinho, checkout, pagamento, compra, assinatura, renovação e reembolso; impressões e conversões de promoções; eventos de help-centrar, chat e ticket; eventos em segurança; e eventos personalizados com espaço de nomes. account.signup.succeeded, account.login.succeeded, lead.form.succeeded, commerce.payment.succeeded, commerce.purchase.completed, commerce.subscription.renewed e commerce.refund.completed.

Inferência, confirmação e abandono do navegador

O widget pode funcionar sem um conector observando a estrutura da página, as ações de forma, os resultados do DOM e o registro de viagem do visitante. Essa evidência permanece explicitamente classificada como observada ou inferida. Um conector adiciona confirmação autoritária do servidor e pode correlacioná- la com a mesma tentativa do navegador. O abandono é armazenado pela primeira vez como candidato; ele fica abandonado somente após a janela de inatividade definida na UI e só quando não existir recuperação ou sucesso posterior.

Atribuição e receitas

A atribuição prefere um token de correlação assinado válido, então uma viagem exata, tentativa, sessão ou referência comercial, em seguida, o gráfico de identidade consentido, e finalmente uma correspondência comportamental limitada. As vendas não correspondentes permanecem sem atributos. Pesos do livro de registros multi-toque devem totalizar 1_. O site Inteligência do Site atribuiu receita lê este registro; créditos, backups de carteira, top-ups de fichas e Add Funds nunca são conversões de compra. O comportamento do FX do conector permanece controlado por essa configuração de conector.

⚠️
Modelo de atribuição, janelas de retrovisor, manipulação do tráfego direto, confiança mínima, tempo limite de abandono e definições de funil são política de UI. O código do conector não deve codificá-los.

Manifesto do conector e Construtor

Declaração de viagem do conector
{
  "capabilities": ["sales", "journey_events"],
  "journey_capabilities": {
    "journey_events": true,
    "payments": true,
    "subscriptions": false,
    "correlation_token": false,
    "backfill": true
  },
  "journey_event_mappings": [{
    "source_event_name": "order.paid",
    "event_name_canonical": "commerce.purchase.completed",
    "field_map": {
      "order_ref": "order.id",
      "customer_ref": "order.customer_id",
      "amount": "order.total",
      "currency": "order.currency",
      "occurred_at": "order.paid_at"
    }
  }]
}

Declare apenas os recursos que o pacote realmente oferece. O Connector Builder valida o mapeamento e gera o mesmo adaptador neutro de plataforma usado pelos pacotes de primeira parte. 100 através do endpoint de integração autenticado gerado.

💡
O livro de comércio continua a ser a fonte financeira da verdade. A ponte comércio-a-journey publica resultados confirmados pelo servidor e reconcilia atribuição após o registro idempotent existente upsert, para que um pagamento nunca se torna duas vendas.
Conectores

Como funcionam as ações da IA

Cada conector declara um conjunto de ações: coisas que o IA pode fazer através da plataforma externa. Ações são a ponte entre "o IA diz" e "o AL faz".

Acções de IA
Como funcionam as ações da IAUma solicitação do cliente mapeada para um cartão de ação tipo delete, em seguida, uma lista de verificação: permissão verificada, você confirma, API chamado.Como funcionam as ações da IAespaço de trabalho"Cancelar a minha subscrição"clienteIAcancel_subscriptiondeleteconfirmar a necessidadeparams: subscription_id (do contexto)TIPOS DE ACÇÃOreadwritedelete& Função de permissão verificadaVocê confirma a açãoAPI called · result reported1DECLAREDCada conector lista ações2GATEDPermissão + confirmar3THEN RUNAPI call, result back
Uma solicitação torna-se uma ação declarada (datilografada leitura/escrita/delete) que é verificada por permissão, confirmada, então executada e reportada.

O ciclo de vida da acção

1
Cliente pede algo

"Cancelar minha assinatura." A IA identifica isso requer a ação "cancel_assistry".

2
AI verifica permissões

Esta acção é permitida? Está activada? O utilizador actual tem o papel certo?

3
AI reúne parâmetros

A ação precisa de um ID de assinatura. A IA o pesquisa do contexto do cliente ou pergunta ao cliente.

4
Confirmação

Para ações destrutivas ou de alto impacto, a IA pede confirmação antes da execução.

5
Execução

A ação chama a plataforma externa API.

6
Resultado

A IA reporta o resultado ao cliente.

Tipos de ação

Ações de leitura

Procure dados sem alterar nada. Exemplos: list_orders, get_customer. Seguro, nenhuma confirmação necessária.

Gravar acções

Criar ou modificar dados. Exemplos: create_ ticket, update_ order. Pode requerer confirmação.

Apagar as acções

Remover dados. Exemplos: cancelamento_ subscrição. Necessita sempre de confirmação.

Acções HTTP

Declarado em acções.json, genérico API as chamadas definidas declarativamente.

Marcas de capacidade

Campo opcional de "capacidade" por ação em ações.json, uma etiqueta de classe neutra para conectores (por exemplo, "bilhetes" para leitura/pesquisa de tickets, "ticket_create" para abrir um ticket).OpsIQ porta toda a classe uniformemente em cada conector: o ticket lê cair fora da IA quando o operador desliga AI Ticket Awareness, ea criação de ticket é reservada para OpsIQ O próprio compositor (assim a ferramenta de criação de um conector não pode duplicar). Declare-o e seu conector se conforma.OpsIQ O Connector Builder expõe-o como um dropdown de capacidade por ação.

Acções de código

Implementado no PHP na classe de conectores. Controle total sobre a lógica.

Definição de ação do exemplo
{
  "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" }
    }
  }
}
Conectores

Construir um conector

O Conector Builder permite criar um conector completo para qualquer plataforma com um REST API. Sem codificação necessária para conectores básicos.

Construir um conector
Construtor de ConectoresUm formulário de conector sem código: nome, tipo de autenticação, base URL, um mapeamento de ação, um teste de passagem e um botão de publicação.Construtor de Conectoresespaço de trabalhoConstrutor de ConectoresNomeMinha PlataformaAuthOAuth 2.0(PKCE)Base URLhttps://api.example.com/v2AcçãoGET/customers → list_clientesPassado o testeConector de embalagem1NO-CODENome, autenticação, base URL2ANY APIChave, Carregador, Básico, HMAC, OAuth3PUBLISHInto /connectors/<slug>/
Aponte o construtor para qualquer REST API. Definir autenticação, base URL e ações, testá-lo, e publicar um conector de trabalho. Nenhum código necessário.

Complete provider API coverage

Cada um gerado API o conector pode expor nativo separado API Ler e Nativo API Gravar as acções. As acções com curadoria continuam a ser preferidas; as acções nativas cobrem os objectivos do provedor adicionados mais tarde. O tempo de execução suporta o REST, GraphQL, JSON, formulário, XML, corpos em bruto e múltiplos, paginação delimitada,API- cabeçalhos de versão e idempotência, mantendo credenciais dentro das configurações do conector de espaço de trabalho.

⚠️
Os pacotes do Marketplace são originados de /marketplace_connectors bem como empacotados /connectors. Aumente a versão do pacote, regenere o contrato e a documentação, execute testes de conformidade, então re-assine e publique a nova versão do Marketplace.

Assistente do Construtor de Conectores

O assistente tem seis passos, mostrados como abas no topo. Você pode saltar entre eles livremente, e Gravar o rascunho No rodapé, mantém o seu trabalho em qualquer altura.

1
Identidade e perfil

Nome, slug, descrição e ícone, em seguida, escolha um perfil de contrato: Standard API, Comércio, Helpdesk, Mailbox, Site Intelligence, SaaS Bridge, Plataforma PHP Local, ou Plataforma sem API quando a plataforma não serve nada callável e OpsIQ tem que instalar uma ponte. O perfil seleciona um ponto de partida completo da capacidade; você ainda pode ajustar capacidades individuais.

2
Auth

Escolha o padrão de autenticação que a plataforma usa e preencha os seus campos. Indique aqui também as credenciais reais de teste: são usadas para o teste de ligação na próxima etapa, e não são armazenadas depois de publicar.

3
Ensaio

Introduzir a API base URL e um ponto final de verificação, em seguida, execute um teste de conexão ao vivo usando as credenciais da etapa 2. Faça isto antes de definir quaisquer acções, se a autenticação ou a base URL está errado, cada ação que você escreve depois falharia pela mesma razão e você estaria depurando a coisa errada.

4
Acções

Defina cada operação: nome, método HTTP, caminho do endpoint, parâmetros, mapeamento de campo de resposta e as configurações de confiabilidade descritas abaixo. Você pode executar cada ação individualmente contra o live API a partir desta etapa.

5
Gatilhos

Mapear os eventos webhook em que sua plataforma envia OpsIQ eventos, para que as coisas que acontecem em sua plataforma pode começar a trabalhar em OpsIQ.

6
Revisão, contrato de empresa e publicação

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>/.

⚠️
A publicação NÃO executa o conjunto de conformação. Publique somente valida o formulário do assistente e emite avisos que não bloqueiam. O pacote completo — manifesto, arquivos de capacidade, o contrato de identidade-token e a verificação ponte-snippet — é executado quando você pressiona Dry-run, e novamente no tempo de instalação. Pressione Dry -run antes de enviar, toda vez.

O que publicar faz que o formulário não mostra

Cinco comportamentos do gerador surpreendem as pessoas. Nenhum é um bug; todos eles vão custar-lhe uma tarde se você encontrá-los por acidente.

Uma pergunta decide o passe: a plataforma serve um API?

Atende-o de forma rápida1escolhendo o modo de acesso aos dados (ou a "Plataforma semAPI" perfil).APImodo declara native_api and emits the <slug>_api_call passthrough. Bridge mode declares platform_bridge Em vez disso, e STRIPS native_api mesmo que um espec mais antigo o carregasse, assim o manifesto, a classe gerada e os docs de perícia não podem discordar. ai_brain_aware é adicionado de qualquer forma.

SILÊNCIO significa "tem um API"

O Construtor segue sua resposta; não funciona a verdade para si mesmo, e o padrão quando nada é dito éAPIEntão, não...APIplataforma deve ACTIVEMENTE dizer isso — escolha a "Plataforma com nãoAPI" perfil, definir o acesso de dados para ponte, ou tique 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.

O teste de conexão é padrão para GET /ping

Se deixar a localização da verificação vazia, o Construtor escreve /ping no conector gerado e no perfil.jsonO bloco de teste. Quase nenhuma plataforma real serve essa rota, por isso a Ligação ao Teste falha com o HTTP404em cada instalação e lê- se como uma configuração incorreta do cliente, em vez de um defeito de pacote. Defina um caminho para verificar se a sua plataforma realmente responde. Para um conector de ponte, aponte- o para o seu próprio ponto final de diagnóstico — prova toda a cadeia numa chamada: a ponte é implantada, a chave corresponde e a ponte pode chegar ao banco de dados.

A republicação ainda substitui os seus editores de mãos

As capacidades agora seguem a resposta de acesso aos dados, então aqueles não mais se desviam. Tudo o resto gerado ainda faz: edite ContextProvider. php ou qualquer outro arquivo emitido e a próxima publicação substitui-o. A exceção protegida é o arquivo bridge — o assistente só sobrepõe uma ponte carregando seu próprio marcador, então um escrito à mão fica sozinho.

A republicação dos ficheiros apaga

Desmarque uma capacidade e a próxima publicação remove seu arquivo provedor. Edita manualmente para qualquer arquivo gerado — ContextProvider.php acima de tudo — são substituídos sem aviso prévio. Copie personalizações primeiro, ou tome posse do pacote apagando .opsiq- Construtor.json(depois do qual o assistente não irá mais gerenciá-lo).

release_status é sempre a antevisão

O assistente não tem controle para ele. Um pacote destinado a enviar como produção deve ter release_status alterado manualmente em configurações.json — e essa edição quebra a assinatura, então re-assina depois.

A assinatura prova integridade, não origem

Os pacotes do Construtor são assinados com a própria chave simétrica desta instalação. Isso detecta adulteração. Ele não prova quem escreveu o pacote, e qualquer instalação que tenha a mesma chave pode produzir a mesma assinatura. Trate um pacote assinado localmente como autoassinado.

As colisões de slug só são verificadas numa árvore

Publicação recusa uma lesma que já existe sob/connectors/.Não olha para/marketplace_connectors/,Então, um pacote de primeira-parte com a mesma lesma pode acabar na sombra.

💡
O assistente não tem uma etapa de autoria do conhecimento. Um arquivo de conhecimento que descreve sua plataforma é gerado para você a partir do nome, descrição, tipo de autenticação e ações que você definiu, e ele é carregado na IA quando o conector está habilitado.

Definir uma ação (passo 4)

Cada ação tem as seguintes configurações. Somente os quatro primeiros são necessários; o controle de resto que pode executá- lo e quão cuidadosamente.

Chave de ação e etiqueta

A chave é o que a IA chama; a etiqueta é o quê um humano lê. Chaves são espaçadas automaticamente com seu conector slug, para que dois conectores possam ter uma "list_orders" sem colidir.

Método HTTP

Vai, põe, bate ou deleta.

URL path

Anexado à base URL. Utilização {name} para os placeholders, por exemplo /opportunities/{id}/stage

Parâmetros

Para cada parâmetro você também escolhe onde ele vai: corpo, path, query ou cabeçalho. Um parâmetro de caminho preenche um {placeholder}; um parâmetro de consulta é anexado ao URL.

Mapeamento de resposta

Diga qual campo na resposta JSON significa o que, que é o nome do cliente, que o email, que representa o total de pedidos. Isto é o que permite que a IA leia os dados da sua plataforma em vez de adivinhar.

Quem pode usá-lo

Sua equipe (admin AI), clientes com login (chamada de cliente), tanto, quanto o assistente de escrita. As ações do cliente são executadas apenas para o cliente com login e os campos de identidade estão bloqueados automaticamente para que um cliente não possa perguntar sobre outro.

Requer confirmação

Um humano deve aprovar antes que a ação corra.

Destrutivo

Marca a acção como a remoção ou alteração do estado. Usado para avisar antes de ser executado.

Autorização necessária

O administrador deve manter esta permissão para que a IA execute a ação em seu nome; administradores completos sempre passam. Escolha entre gerencia_integrações, gerencia_geral, gerencial_billing, gerencia/venda_bridge, gerencia- conhecimento, gerenciando_aparência, gerenciador_behavior, gerenciadora_permissões, gerencia _dangerzone, responde_to_chats, escalona_to _ticket, send_agent_email, ou nenhum, significando qualquer administrador autenticado.

Descrição / dica de IA

Opcional, mas vale a pena escrever. Diz ao IA quando deve alcançar esta ação, por exemplo "Use isso quando o administrador pede para mudar uma etapa de negócio". Uma boa dica é a diferença entre uma ação que o IA usa corretamente e uma que ignora.

Capacidade

A tag opcional de classe, seja tickets (uma leitura ou pesquisa do ticket) ou ticket_create (abre um ticket). A marcação permite OpsIQ gate a classe inteira ao mesmo tempo, por exemplo, ocultar tickets lê quando um operador desliga o conhecimento do ticket IA.

Localização da lista

Opcional. Para os endpoints que retornam uma lista, o caminho pontilhado para o array, por exemplo dados ou itens de dados.

Caminho do erro

Opcional. Um campo de corpo cuja presença significa que a chamada falhou, por exemplo error. message, útil para APIs que retorna HTTP 200 em falha.

Executa-o.

Cada ação pode ser executada contra o live API a partir deste passo, para que você possa corrigir um caminho errado ou nome do campo antes de qualquer outra pessoa usá-lo.

⚠️
As ações de escrita são protegidas por padrão. Qualquer ação usando POST, PUT, PATCH ou DELETE começa exigindo a permissão gerencia_integrações e confirmação humana antes de ser executada. Isto é deliberado. Uma nova ação de escrita falha ao invés de deixar a IA mudar seus dados sem supervisão. Você pode alterar ambos na ação, mas alterá- los conscientemente.
💡
Para ser callable do chat do cliente, uma ação deve ser somente leitura: deixe ambos Requer confirmação e Destrutivo unticked. Uma ação que um cliente pode desencadear que também muda de estado não é algo que o assistente vai deixar você enviar por acidente.

A receber os Webhooks (passo 5)

O passo Triggers lhe dá um webhook URL para se registrar com sua plataforma, e verifica cada solicitação que chega nele.

Cabeçalho da assinatura

O cabeçalho com que a sua plataforma assina, por exemplo X-Hub-Signnature-256.

Algoritmo de assinatura

HMAC-SHA1, HMAc-SHAD256 ou HMA C-SHAF12.

Regime de assinatura

Simples, um feitiço simples ou base64 digerir. Ou estilo Stripe, o formato t=...,v1=... usado por Strike e várias plataformas que copiaram.

Prefixo de assinatura

Opcional. Algumas plataformas prefixam o digest, por exemplo sha256=. Deixe-o vazio se o seu não o fizer.

Mapeamentos de eventos

Mapear cada evento que sua plataforma envia para o evento OpsIQ que deve levantar.

Registrando automaticamente o webhook

Se a sua plataforma tem um API para gerenciar seus próprios webhooks, você não tem que registrar o URL à mão. Abra Registra automaticamente este webhook ao activar e aponte para duas das ações que definiu no passo 4:

Ação Criar- Webhook

Chamado quando um administrador habilita o conector. Você dá o nome do parâmetro que carrega o URL, opcionalmente aquele que carrega a lista de eventos, e o caminho na resposta que detém o ID do novo webhook.

Action do Delete-webhook

Chamado quando o conector está desativado, usando o ID capturado acima, então desabilitar o conector também impede que sua plataforma envie para um ponto final morto.

Capacidades que você pode ligar

Os perfis e capacidades são definidos pelo Contrato de Conector 2.2. As capacidades geradas e declarativas são emitidas diretamente; as capacidades empresariais geram uma EnterpriseExtension.php andaimes com fiação em ciclo de vida.

Acções

Operações que a IA pode executar em sua plataforma: listar pedidos, encontrar um cliente, emitir um reembolso.

Gatilhos

Receive webhooks from your platform and turn them into OpsIQ events.

Bilhetes para IA

AI Triage e a resposta Copilot em tickets que permanecem na sua plataforma. Escolha o ponto final que retorna um ticket com suas respostas e mapeie os campos; OpsIQ lê o tópico através dele.

Caixa de correio e contactos

Mostre o e-mail de um cliente em sua linha do tempo, envie de um acordo e sincronize seu livro de endereços no OpsIQ CRM.

Importação do cliente

Página através da sua lista de clientes e importar cada um como um contato OpsIQ. Isto é o que o botão Importar executa.

Contexto

Empurre dados ao vivo da sua plataforma para cada conversa de IA.

Identidade

Descubra qual dos seus clientes é um visitante e mostre o perfil e as compras em um ticket.

Vendas e faturamento

Feed resource events e MRR figures into the OpsIQ dogs.

Bilhetes de entrada

Transforme tickets e emails que sua plataforma oferece por webhook em threads de suporte OpsIQ.

Respostas de saída

Post OpsIQ staff replies back to the platform the thread originated on.

Sincronizar usuários

Importar suas contas de pessoal para usuários de administração OpsIQ.

Sincronizar departamentos

Importar seus departamentos de suporte para OpsIQ.

Segmentação e alimentação do produto

Deixe o Promotion Studio se concentrar em fatos que você conhece sobre uma pessoa, e torne seus produtos reais dentro de uma promoção.

Provedor de estúdio de pesquisa

Expor dados de pesquisa verificados pelo servidor, variáveis escapadas e páginas de destinatários do CRM delimitadas através de um SurveyProvider. php dedicado. Isso não reutiliza o tempo de execução da Promoção.

Bloqueamento nativo IP

Quando OpsIQ bloqueia a IP, ligue para o bloco da sua plataforma API Então o bloco é forçado lá também.

Eventos de segurança

Receber bloqueado...IP sinais de ameaça de OpsIQ.

Conhecimentos da plataforma para a IA

Cada conector que você constrói envia uma breve referência descrevendo o que sua plataforma é e o que suas ações fazem. O administrador OpsIQ AI lê-lo sempre que seu conector está habilitado, para que ele entenda sua plataforma em vez de apenas ver uma lista de nomes de ação. Isso é gerado para você.

API passagem

Seu conector sempre recebe uma chamada de propósito geral para que a IA possa atingir um ponto final para o qual você não definiu uma ação digitada. Use ações digitadas onde você pode; esta é a escotilha de escape.

Contrato de conexão canônica 2.2 referência

Contract version: 2.2 · 55 capabilities · 8 profiles.

Perfis de ligação

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.

Capacidades canônicas

ações

Universal actions. Capability version: 1.0. Mode: generated. Runtime methods: registerActions. Package files: actions.json.

gatilhos

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.

identidade

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.

faturamento

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.

local

Local search/location data. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

isto

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.

⚠️
As especificações do construtor continuam a ser a fonte autorizada. Coloque regras de negócio específicas da plataforma nos pontos de extensão gerados; o ciclo de vida do pacote, filas, trabalhadores, migrações e testes de conformidade permanecem gerenciados pelo Construtor.

Configurações de confiabilidade em cada ação

Repetições

Quantas vezes para tentar uma chamada falhada, com um backoff que duplica cada tentativa. Apenas os tempo- limite, 429s e 5xx erros são repetidos; um 4xx é a culpa de sua solicitação e repetindo-o seria apenas queimar o seu limite de taxa.

Limite de taxa

Um teto por minuto para esta ação, então um gatilho ocupado não pode martelar sua plataforma. Deixe-o em 0 sem limite.

Tempo- limite

Quanto tempo esperar pela sua plataforma antes de desistir.

Confirmação

Requer que um humano aprove antes de a acção correr.

Tipos de autenticação

Passo 2 oferece sete padrões. Escolha o que corresponde à sua plataforma API documentação, o gerador emite o cliente HTTP certo para ele.

API key in header

Uma chave estática enviada como um cabeçalho fixo, por exemplo X-API- Chave. Você dá o nome do cabeçalho e a etiqueta que o formulário de administração deve mostrar. Isto envia a chave como um cabeçalho apenas; se o seu API espera que a chave como parâmetro de consulta em vez disso, use cabeçalhos personalizados ou um conector de código completo.

Token do portador

Token sent as Authorization: Bearer <token>. Common for modern APIs.

Autorização básica

Nome de usuário e senha, base64-codificado no cabeçalho Autorização. Você escolhe os dois campos de etiquetas mostrar no formulário de administração.

Assinado pelo HMAC

Uma chave pública mais um segredo, com o corpo de pedido assinado. Você dá o cabeçalho da assinatura, o cabeçalho de chave e o cabeçalho do timestamp que a sua plataforma espera.

OAuth 2.0 (Créditos do cliente)

Servidor-para-server, sem interação do usuário e sem redirecionamento. Você dá o token URL e um escopo opcional; o administrador fornece um ID de cliente e segredo. Use isso quando sua plataforma emite credenciais para uma aplicação ao invés de para uma pessoa.

OAuth 2.0 (Botão de ligação)

O fluxo de autorização-código com PKCE, para Stripe, Shopify, aplicativos estilo Slack e QuickBooks. Você dá a autorização URL, o símbolo URL e o escopo. Após a publicação, o administrador clica em Conectar no conector, autoriza em sua plataforma, e OpsIQ armazena o token de atualização e os tokens de acesso do hortelã sob demanda. URI para se inscrever no seu OAuth app é mostrado na página de configurações do conector.

Cabeçalhos personalizados

Uma forma livre JSON mapa do cabeçalho para qualquer coisa que os padrões acima não cobrem, por exemplo {"X-API-Chave:"{api_key}"," X-Tenant":"{tenant_id}"}. Cada placeholder torna-se um campo no formulário de administração.

💡
O PKCE aplica- se apenas ao fluxo do botão Conectar. O fluxo cliente- credenciais não tem nenhum redirecionamento e nenhum passo de usuário, então o PKEC não se aplica a ele.

Estilos de paginação

Deslocamento

Usa parâmetros de deslocamento e limite. Exemplo: ?offset=100&limit=50.

Página

Usa o número da página. Exemplo: ?page=3&per_page=50.

Cursor

Usa um símbolo de cursor da resposta anterior.

Cabeçalho da ligação

Usa o cabeçalho de resposta Link com rel="next".

Avançado: código PHP personalizado

connector.php RETURNS an instance. It does not declare a named class that OpsIQ hunts for. The method names below are the ones ConnectorInterface requires; getting one wrong is a fatal at load, not a warning.

connector. php — o contrato real, mínimo e executável
<?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.

Espelho de tickets para o sistema de ticket nativo

Quando sua plataforma possui um ticket, espelhe-o em OpsIQ do conector usando o helper de ingesta de ticket que seu conector herda (crie para um novo ticket, adicione-resposta para acompanhamentos). Emite e subscreva os eventos universais de ticket no conector subscribers() método, ticket.created, ticket.replied, ticket.updated, ticket.deleted. Resposta automática, escalada, SLA e CSAT todos gancho os mesmos eventos, então você herdá-los sem código extra.

Diga quem escreveu a mensagem de abertura

Um bilhete é sempre em vez de o cliente, mas a mensagem de abertura pode ser escrita por staff: um agente que abre um ticket em nome do cliente, ou que contacta proativamente. Cada helpdesk apoia isso, então faz parte do ticket.created contrato em vez de algo que cada conector resolve em particular.

author_type

cliente (padrão) ou administrador. Omita-o e o cliente é assumido.

author_id

O ID da equipa quando autor_ type=admin. Nunca o ID do cliente.

author_name

Agente ou departamento, nome do monitor.

author_email

O endereço do agente. NUNCA o cliente. Uma mensagem de equipe sob o e-mail do cliente é um erro de relatório e auditoria.

Isto não é cosméticos. Consumidores lidos author_type para decidir de quem é a vez. Uma abertura escrita pela equipe como client deixa auto-replicação elegível para responder a uma mensagem que seu próprio agente escreveu, e faz o eco de sua plataforma dessa abertura parecer uma nova mensagem do cliente, que então chega como um duplicado e vira o ticket para answered. Mapear o sinal da sua plataforma para ele em seu conector normalizador de eventos, nunca nos consumidores.

Bloqueio centralizado

Quando um agente bloqueia um remetente, isso aplica-se através de every canal imediatamente (e-mail, chat, portal, widget e cada conector duplo) porque o bloco é forçado centralmente, antes que qualquer conector veja a mensagem. Seu conector herda-a sem fazer nada. Não há nenhum trabalho de entrada para implementar e nenhuma maneira de obtê-la errada.

A metade opcional é outbound: dizendo à sua plataforma que um cliente foi bloqueado aqui. Implemente-o apenas se a sua plataforma pode expressar algo equivalente.

recursos ()

Deve incluir block_ registry E a classe deve implementar BlockRegistryInterface. A bandeira é uma reivindicação; a interface é a garantia. O registro requer ambas.

blockSender($b)

Recebe o t ip o (e-mail, domínio,ip), valor, razão, admin_id, expira_ em, site_key. Retorna [resultado, detalhe?, remoto_ref?].

unblockSender($b)

A mesma carga, revertida. Deve ser indempotente. Desbloquear algo nunca bloqueado é um erro, não um erro.

isSenderBlocked($b)

Para reconciliação, então a deriva é relatada em vez de descoberta por um cliente. Retorna [resultado, bloqueado?].

Valores dos resultados

Está bem.

Aplicado na sua plataforma. Incluir remote_ref quando tiver um ID que valha a pena gravar.

noop

Já no estado solicitado.

unsupported

A sua plataforma não tem um conceito equivalente. NÃO é um erro.

falhou

Você poderia ter feito isso e deu errado. Incluir detalhes; ele pousa na trilha de auditoria.

A diminuição é uma resposta correcta. Muitas plataformas não têm o conceito de "bloquear este remetente" e oferecer apenas suspensão de CONTA, que pára de faturar, logins e serviços em vez de apenas suportar o correio. Mapear "um agente bloqueou um endereço de spam" para "fechar a conta deste cliente" deixaria um bloco com um clique errado terminar os serviços de um cliente pagante. Se essa for a única alavanca que você tem, retorne unsupported e deixa-o em paz.

O declínio abrange também o caso em que a plataforma can faça-o mas não o permitirá. Verifique se existe uma API, não uma característica: uma alavanca que existe apenas na interface de administração da plataforma é uma alavanca do seu conector não tem.

Exemplo trabalhado · Zendesk (a implementação de referência)

Ler connectors/zendesk/connector.php alongside this. It is short, and every branch below is a decision you will face too.

e-mail → ok

PUTA /api/v2/users/{id} com suspense=verdadeira. As novas solicitações de um usuário final suspenso desviam para tickets suspensos em vez de abrir uma, genuinamente a mesma ideia que bloquear um remetente, e ele pára de faturar porque os usuários finais do Zendesk não têm nenhuma. Retorna o ID do usuário como remoto_ref.

domínio → não suportado

Zendesk CAN suspend a whole domain, but only through the suspend: keyword in the Admin Center blocklist textarea, and no API writes that field. The feature exists; the lever does not.

ip → não suportado

Não existe nenhum bloco de nível de ticket IP _.

endereço desconhecido → noop

O Zendesk não pode pré-suspender um endereço que nunca tenha visto. Nada a fazer não é uma falha, e o bloco local ainda para o ticket.

agente ou administrador → não suportado

RECUSA. A equipa de suspensão iria bloquear um colega do serviço de assistência. Um endereço de pessoal que chega a uma lista de bloqueios é muito mais provável que seja um erro do que uma instrução, verifique o papel antes de agir sobre ele.

Essa última linha é a que vale a pena copiar. O contrato não pode impedir- lhe de mapear um bloco para algo destrutivo, por isso cada conector tem de decidir por si mesmo o que irá recusar. Recusando em voz alta, com uma detail um operador pode ler, bate obedecendo.

Reporte honestamente. Observe como poucas dessas linhas são ok. Esse é o resultado correto, não uma lacuna: um bloco de domínio ainda funciona (é forçado no núcleo no momento em que é escrito); simplesmente não pode ser espelhado para fora. ok para algo que você não fez, diria a um operador que o bloco chegou à sua plataforma quando ele nunca saiu OpsIQ.

Regras

O bloco local sempre ganha

Está escrito ANTES de você ser chamado e ficar em qualquer coisa que você retornar. Você não pode impedir um operador bloqueando alguém.

Nunca atires.

Um lançamento é tratado como não suportado e gravado. O retorno falhou com um detalhe, então a razão sobrevive.

Seja idempotente

O mesmo bloco pode ser anunciado mais de uma vez.

Retorne rapidamente

O Fan-out é síncrono com o clique do operador. Fila trabalho lento em vez de manter a solicitação aberta.

Não ligues de volta.

Never re-block into OpsIQ from your handler. The registry skips the originating connector, but a second hop would loop.

Cada anúncio está escrito para opsiq_block_registry_log (operação, tipo, valor, razão, administrador, origem, slug de conector, resultado, detalhe e timestamp) para que um operador possa ver um bloco chegar da sua plataforma em vez de de um agente, e o que cada conector fez sobre ele.

Empurre os anexos corretamente

Mão e attachments array para create()/addReply(). Cada item carrega o arquivo em uma de três formas:

content_b64

Base64 dos bytes de arquivo RAW, use para arquivos por trás do auth (a maioria dos casos de entrada). OpsIQ decodifica-o e re-hosts o arquivo para você. A forma mais portátil.

url / fonte_url

Um https públicoURL(p. ex.Zendeskcontent_ url). Deve ser https; passa uma verificação SSRF / allowlist antes de ser armazenada.

stored_path

Uma referência de arquivo armazenado que você já escreveu (o que o compositor nativo do uploader produz).

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 apenas nomes de arquivos (não bytes), então o padrão de entrada confiável é: leia os bytes onde seu código já funciona (dentro da plataforma, ou a partir da carga útil webhook), base64-los, e enviá-los como content_b64 no evento.

Saída (OpsIQ → sua plataforma). Quando um agente acopla um ficheiro, o ticket.replied a carga útil dá- lhe os ficheiros da resposta como stored_path os itens sob a OpsIQ Loja de arquivos. Leia-os e push no formato da sua plataforma, e verifique os documentos da plataforma, a codificação importa: WHMCS quer base64_encode(json_encode([[name,data]])) (JSON, não serialize); Zendesk envia bytes brutos para /uploads.json para um token então define comment.uploads; Gmail envia um RFC multiparte/misto 822 base de mensagens64url- codificado em raw; Amazon SES inbound attachments need the S3 receive action (the SNS path caps at 150 KB).

Plataformas remotas: API + webhook, nunca mais outras tabelas de aplicativos

Se a sua plataforma é um app ou base de dados separada (um SaaS hospedado, um remoto WHMCS, um DB diferente no mesmo servidor), nunca escreva suas tabelas diretamente: uma base de dados cruzadas pousa em qualquer conexão ativa e silenciosamente perde as linhas reais. Sempre: outbound = chamar REST assinado da plataforma API (respostas, status, departamento, deletes); inbound = a plataforma POSTs um webhook assinado, seu handleWebhook() verifica-o e dispara o correspondente ticket.* evento. Para parar um loop de espelho, marque o que você empurrar com um marcador de origem (por exemplo. mirror_origin:'opsiq'); a plataforma ecoa-a no webhook e o seu manipulador de entrada ignora os seus próprios ecos. OpsIQEvents::isMirroredEvent() no topo de cada encarregado.

Estado do espelho, prioridade e departamento

Uma resposta move automaticamente o estado, e agent resposta → answered, a cliente resposta → customer_reply; espelhar da mesma forma. Para mudanças explícitas subscrever ticket.updated e leia payload['changes'] (por exemplo, {status:'closed'}).

Estado: OpsIQ_ o conjunto canónico é open, customer_reply, answered, in_progress, pending, closed. Mantenha um pequeno mapa bidirecional para o vocabulário da sua plataforma e certifique-se de que a sua coluna aceita os valores que você escreve (um ENUM faltando um valor é silenciosamente deixado para vazio por alguns bancos de dados). Departamento: O ID de departamento OpsIQ não tem sentido do seu lado, nunca enviá-lo. Enviar o descritor (name, email e slug) e resolvê-lo contra seus próprios departamentos por e-mail → nome → slug, assim “Departamento de Billing” pousa em a sua Departamento de cobrança em vez de geral. Ativar em ambos ticket.escalated e a department_id alteração na ticket.updated.

💡
Status / prioridade / assunto / departamento / delete espelhamento é fechado por interconector comuta (mirror_status_changes, mirror/priority_chages, mirrilor_subject_charges, beiler_department_chakes, milip_deletes) lido através do compartilhado OpsIQ\Connectors\MirrorOptions helper. Incorpore esse bloco em suas configurações.json e todos os conectores de bilhete-espelho lêem as alternâncias idênticas.

Link um bilhete para um produto / serviço

Se o cliente escolheu um produto específico ao abrir o ticket, carimbe uma dica para que o agente veja uma placa de serviço focada (com um clique em "ver outros produtos" modal para o resto). Passe qualquer um destes para criar():

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

Um código de serviço da plataforma, por exemplo. WHMCS S396 (serviço396) / D11 (domínio11). OpsIQ decompõe a letra-tipo + ID opcional e corresponde à sua lista de serviços, com uma guarda de tipo para que um código de domínio nunca corresponda a um produto do mesmo id. Expor um ref correspondente em cada serviço para uma correspondência exata.

related_domain

Um nome de domínio; correspondeu como uma sub- sequência ao detalhe / domínio de cada serviço.

💡
Construa a lista de anexos uma vez, na forma acima, e OpsIQ lida com o resto: hosted URLs Você nunca precisa escrever o gerenciamento de arquivos por plataforma, pois os dados são passados e o conteúdo base64 é armazenado e re-hospedado para você.
⚠️
As teclas de ação são letras minúsculas, dígitos e sublinhados. O Construtor aceita3para80caracteres e também permite pontos; a loja de ações aceita2para100Caracteres sem pontos, então mantenha em letras, dígitos e sublinhas e você satisfaz ambos. Adicionando uma ação não cria nenhuma rota AJAX, de modo que não há nada para regenerar — salve novamente o conector e ele está sincronizado.
Conectores

Venda através do chat: o mapa de papéis comerciais

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.

O ficheiro: commerce_roles.json

A declaração está no seu próprio ficheiro na raiz da embalagem — A presença do processo é a alegação. Não pode viver em connector_contract.json: esse arquivo é regenerado pelas ferramentas de embalagem e seu esquema rejeita chaves desconhecidas, então um bloco acolchoado à mão falharia na validação e depois seria substituído.

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

As regras, e por que cada uma delas existe

Funções são um vocabulário fechado

OpsIQ never infers a role from an action's name. A role that is not declared does not exist — declaring is the whole contract.

A operação deve ser uma das suas acções.

Cada operação mapeada deve existir em seu actions.json. Um erro de digitação declara uma capacidade que não pode ser executada, e ela aparece para um cliente como "eu posso verificar isso para você" seguido por nada.

Um papel lido nunca aponta para uma operação destrutiva

Leia as funções (catalog, disponibilidade, orçamento, busca de pedidos) devem mapear para operações que não mudam nada em sua plataforma.

Um papel de escrita nunca mapeia uma operação genérica de gravação

Mapeamento order_create a um inserto em bruto de mesa — record.create, db.insert, recordCreate, qualquer ortografia, qualquer separador — é rejeitado estruturalmente. Uma linha escrita diretamente ignora os preços de sua plataforma, bloqueio de estoque e confirmação de correio, produzindo uma ordem em que seu próprio sistema não acredita totalmente.

Um papel de escrita declara uma operação de recuperação

Uma pesquisa idempotente que responde "seu terreno de escrita?". O tempo limite mais perigoso é o depois que sua plataforma já pode ter criado a ordem; sem uma busca de recuperação as únicas opções são tentar novamente cego ou perdê-lo.

As funções de pagamento têm três obrigações suplementares

Um pacote que declare qualquer papel de pagamento deve igualmente declarar payment_profile (moedas, países, métodos e environment — um ambiente não declarado é a forma como uma integração de testes requer um pagamento vivo), webhook_verify (o esquema de assinatura real do seu fornecedor; uma combinação secreta genérica é recusada) e event_map (os teus eventos em canónicos).

No Conector Builder, marque o commerce capacidade e mapear os papéis no assistente — ele valida todos os acima conforme você digita e escreve commerce_roles.json no pacote. Desmarque a capacidade e o arquivo é removido na republicação. Verifique qualquer pacote à mão com php tools/verify_commerce_contracts.php.
💡
Transportes http para um API remoto ou bridge para uma operação nomeada numa ponte implantada (ver o NO-APIOs papéis são diagnósticos de transporte; o tempo de execução só precisa do transporte indicado para que possa versionar uma ponte.
Conectores

Conecte uma plataforma que não tem NO API (o padrão de ponte)

Muitas plataformas reais não enviam nenhum RESTAPIem tudo. Um hotel CMS, um sistema de faturamento velho, uma ferramenta interna sob medida. Você ainda pode escrever um completoOpsIQconector para um: o conector envia um único arquivo PHP que o operador deixa em seu próprio webroot público, e esse arquivo éAPI. Esta página é o padrão inteiro, com as regras que tornam seguro para correr e a razão por trás de cada regra.

A forma dela

Um conector normal chama o API de outra pessoa. Um conector bridge traz o seu próprio. Nada mais muda: as mesmas ações, os mesmos provedores de contexto, o mesmo contrato de identidade, o mesma disposição do pacote.

1
Você escreve um arquivo PHP

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
O operador copia- o para a sua raiz Web

Próximo ao index. php da própria plataforma. Nenhum código de plataforma é modificado, nenhum plugin é instalado, nada para manter através de atualizações de plataforma.

3
O painel de conectores entrega-lhes o ficheiro

Suas configurações.json declara webhook_help. snippet_template. A página de conectores o torna um arquivo copiável com suas configurações ao vivo já substituídas, então não há nada para editar manualmente.

4
OpsIQ calls it server-to-server

Seu Client.php envia solicitações GET com a chave compartilhada em um X-Opsiq- Cabeçalho da Chave da Ponte.URLa configuração é a raiz do site da plataforma.

O Conector Builder pode gerar isso para você agora. Escolha a "Plataforma semAPI" perfil (ou definir o acesso de dados à ponte) e emite o arquivo bridge, o trecho do painel correspondente e as ações digitadas que lêem e escrevem através dele — para uma aplicação Laravel lendo seu .env,WordPresslendo wp-config.php, ou com credenciais que você cola para qualquer outra coisa. Autor-mão apenas quando sua plataforma não é nenhuma dessas, ou quando você precisa de comportamento a ponte gerada não cobre. Uma ponte escrita à mão está segura do assistente: ela só substitui um arquivo bridge carregando seu próprio marcador.
💡
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.

O modelo de segurança, e por que cada regra está lá

Este arquivo fica em uma raiz web pública atrás de uma chave compartilhada. Esse único fato dirige cada regra abaixo. Não relaxe nenhum deles para tornar sua ponte mais simples.

O chamador nunca fornece SQL

Não é uma cláusula WHERE, não é um fragmento ORDER BY, nem um parâmetro de consulta bruto "apenas desta vez". O chamador nomeia uma tabela, uma coluna e um valor; o seu ficheiro constrói a instrução. No momento em que um chamador pode contribuir SQL texto, uma chave partilhada torna-se execução arbitrária do banco de dados.

Os nomes das tabelas e colunas são validados contra infor_ schema

Os identificadores não podem ser ligados como parâmetros, então eles têm que ser verificados em vez disso. Leia a lista de tabelas e colunas reais para este banco de dados e recuse qualquer coisa que não esteja nele. Um identificador que não seja um objeto real deste esquema, então não pode alcançar uma consulta – o que torna seguro expor todas as tabelas.

Cada valor é um parâmetro ligado

Sem exceção, incluindo valores dentro de uma pesquisa. Identificadores validados mais valores limite é o par que faz a superfície total ea superfície da injeção nil.

As leituras são universais, as escritas estão listadas

Veja o próximo bloco. Esta é a regra que as pessoas mais querem ignorar.

Colunas secretas são redigidas em leitura e recusadas em escrita

Corresponda na coluna NAME: password, remember_token, secret, api_key, private_key , salt, token. Substitua o valor por um placeholder ao sair. Recuse a gravação inteiramente no caminho - escrevendo uma senha cru hash não é uma operação, é uma arma de apoio. Envie o operador para o fluxo de senha da própria plataforma.

Os excluídos são uma linha única, pela chave primária

Nunca um a granel apagar, nunca um a apagar por filtro. Uma remoção a granel é como um banco de dados morre. Se alguém realmente precisa de um, ele pode fazê- lo na plataforma.

As leituras são feitas em linha

Aperta o parâmetro limite com um teto rígido. Uma consulta em fuga não poderá desactivar a base de dados através de uma mensagem de chat.

Falha ao fechar até que a tecla esteja definida

An unconfigured bridge answers 403 to everything. A bridge that is helpful before it is configured is a bridge that was helpful to a stranger.

Comparação de teclas em tempo constante, chave num cabeçalho

hash_iguals, nunca == A chave vai em X-Opsiq-Bridge-Key, não a string de consulta, então ele fica fora de logs de acesso, logs proxy e cabeçalhos Referer.

SÓ COMEÇA

Um método, uma forma, nada para contrabandear em um corpo. Tudo que a ponte faz é expressível como um GET com parâmetros validados, e OpsIQ é o único chamador.

Lê universal, escreve permit-list — e por quê

Esta é a regra com que se argumenta, por isso aqui está o raciocínio na íntegra. O assistente deverá ser capaz de VER toda a plataforma: é isso que torna útil e uma leitura não pode destruir nada. As gravações são diferentes. Este ficheiro fica numa raiz Web pública atrás de UMA chave partilhada. Se essa tecla vazar, uma superfície de escrita irrestrita faz com que o vazamento seja equivalente ao controlo completo do banco de dados — um novo utilizador administrador, uma tabela de reservas vazia. Uma lista de permissões significa que uma chave de fuga ainda não consegue alcançar uma tabela que o operador nunca tenha activado.

⚠️
O cartão de aprovação OpsIQ porta a IA, não a chave. O botão do administrador Permitir em uma ação destrutiva é um controle sobre o assistente. Não é um controlo sobre quem detém a chave da ponte. Essas são duas ameaças diferentes, e a lista de permissão é a resposta para a segunda.
O botão voltado para o operador, da ponte Botble
/* ── 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';

Dois detalhes na verificação abaixo são fáceis de errar. O nome da tabela já chega RESOLVED, carregando o prefixo da tabela da instalação, enquanto um operador escreve a lista de permissões sem prefixos porque é isso que eles naturalmente digitariam. Compare ambas as formas ou uma instalação com prefixão silenciosamente não permite nada e cada quebra de escrita. E a recusa deve se explicar, pois a pessoa que lê- la é administrador numa janela de conversação, não um desenvolvedor com um traço de pilha.

A verificação da lista de permissões, verbatim a partir de marketplace_connectors/botble/bridge/opsiq-botble-bridge.php
/** Tables a WRITE may touch. Empty = the built-in defaults. */
$writeAllowed = static function (string $table) use ($prefix): bool {
    $raw = trim((string)(defined('OPSIQ_WRITE_TABLES') ? OPSIQ_WRITE_TABLES : ''));
    if ($raw === '') $raw = 'ht_bookings,ht_booking_rooms,ht_rooms,ht_customers,customers';
    if (trim($raw) === '*') return true;                     // explicit opt-in to everything
    $bare = ($prefix !== '' && stripos($table, $prefix) === 0) ? substr($table, strlen($prefix)) : $table;
    foreach (explode(',', $raw) as $t) {
        $t = trim($t);
        if ($t === '') continue;
        if (strcasecmp($t, $table) === 0) return true;
        if (strcasecmp($t, $bare)  === 0) return true;
        if ($prefix !== '' && strcasecmp($prefix . $t, $table) === 0) return true;
    }
    return false;
};

/** One refusal, one explanation — used by every write op. */
$requireWritable = static function (string $table) use ($writeAllowed): void {
    if ($writeAllowed($table)) return;
    opsiq_bridge_out(['success' => false, 'error' =>
        'write_not_allowed: "' . $table . '" is not in this bridge\'s write allow-list. '
        . 'Reads are unrestricted. To permit writes here, add the table to OPSIQ_WRITE_TABLES '
        . 'in opsiq-botble-bridge.php (or set it to "*" to allow every table).'], 403);
};

O portão, na íntegra

Quatro verificações, nesta ordem, antes que qualquer coisa toque em dados. Copie o pedido assim como os cheques.

Os quatro portais estão em ordem.
<?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. */

Validando identificadores contra o info_ schema

Esta é a peça que transforma "o assistente pode alcançar qualquer tabela" de imprudente em seguro. Resolva o nome da tabela do chamador contra o esquema real, tolera um prefixo de tabela ausente ou extra e retorna nulo para qualquer outra coisa. Tudo a jusante então funciona com um nome que existe comprovadamente.

Validação do identificador e redigir, verbatim da ponte de Botble
/** 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;
};

Uma operação de leitura e uma operação de escrita, completa

Observe o que está ligado e o que é validado. A coluna do filtro é marcada com a lista de colunas real e então interpolada como um identificador; seu valor está vinculado. O limite é apertado. As linhas são redigitadas na saída. A atualização recusa a chave primária e qualquer coluna de autenticação, e selos atualizados_ em quando a tabela tem uma.

Ler qualquer quadro — identificadores validados, valores limite, linhas com cobertura
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,
    ]]);
}
Escreva uma linha — tabela listada, colunas de autenticação recusadas, única linha por chave primária
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)),
    ]]);
}

Diferenças de esquema sobreviventes

As versões da plataforma diferem. As colunas movem- se, são renomeadas ou estão ausentes. Uma ponte que assume um esquema funciona numa instalação. Introspecte e adapte- se em vez disso: selecione apenas as colunas que existem aqui, tolere o prefixo da tabela e tente as grafias plausíveis de uma referência.

Tolerância ao esquema, da ponte Botble
/* 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));
💡
Dê à sua ponte um op=diag que relate apenas a ESTRUTURA — quais tabelas resolveram, quais as colunas que a tabela principal tem, e a forma da referência mais recente com cada dígito mascarado. É fechada como tudo o mais, e transforma "a pesquisa não encontra nada" de um ticket de suporte em uma resposta de dez segundos. Nunca deixe retornar registros reais.

Erros uniformes e armadilha de enumeração

Uma forma para tudo

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.

Não-encontrado e sem correspondência deve ser idêntico

Numa superfície de pesquisa, uma referência que não existe e uma referência cuja prova não corresponde deve produzir a mesma resposta. Respostas diferentes transformar sua ponte em um oráculo que confirma quais referências são reais, que é uma exportação livre de cliente-lista para qualquer paciente.

Nunca vaze a razão para um visitante

A ponte pode ser precisa comOpsIQ. O que atinge um visitante é decidido porOpsIQ, numa recusa fixa.

O arquivo copiável no painel de conectores

O operador nunca abre o seu repositório. Abre o painel do conectorOpsIQe pressione Copiar. Essa cópia vem das configurações.json, e deve ser o mesmo programa que bridge/*.php.

settings.json — a entrada do painel para um conector de ponte
{
  "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.

Outros espaços são substituídos pelo lado do servidor

Independentemente disso,{webhook_url}, {webhook_path}, {webhook_secret}, {site_key}, {base_url}e{slug}são preenchidos antes que o painel veja o trecho.

webhook_help pode ser um objeto ou uma lista

Uma lista dá-lhe vários trechos em um painel, por exemplo, um arquivo de ponte e um gancho relé separado.

🚫
Não mantenha o trecho à mão. O arquivo bridge e a cópia do painel são duas cópias de um programa, e eles irão derivar — uma ponte foi atualizada e sua cópia do Painel não foi, então qualquer um que reinstalou e copiou do painel instalou a antiga ponte e silenciosamente perdeu cada nova capacidade. Nada detectou: conformidade passada, assinaturas passadas, testes passados.
Manter as duas cópias idênticas
# 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.

O que a ponte deve expor

Operações moldadas e uma superfície de dados universal, juntas. As formas retornam respostas arrumadas e construídas para as perguntas que as pessoas realmente fazem; as universais cobrem tudo o mais para que o assistente nunca fique preso.

Leituras em forma

stats, a lista de objetos principais com filtros, um objeto com suas linhas relacionadas, o catálogo do que é vendido, busca do cliente com histórico. Estes dão ao IA uma boa resposta em uma chamada em vez de cinco.

Gravações em forma

As duas ou três alterações de estado que importam — definir o estado, cancelar. Mantenha os valores aceites na lista.

Descoberta universal

tabelas (com contagem de linhas) e descrever (colunas, tipos, chave primária, mais bandeiras legíveis e graváveis por coluna). É assim que o assistente aprende uma plataforma que você não antecipou.

Leitura e escrita universal

consulta, record. get, retrist. create, regress. update, reserv. delete. Cada um deles validado como mostrado acima.

Identidade, antes do portão da chave

As sondas de identidade são chamadas pelo BROWSER do ADMIN, mesmo origem, para que não possam enviar um cabeçalho personalizado. A autenticação é a sessão da plataforma em si. Coloque- as à frente do portão de chaves, mantenha- as afastadas de todos os dados de registo e nunca deixe que retornem um segredo. Veja a página de identidade do conector.

Diagnósticos

op=diag, structure only, masked.

💡
Um conector somente leitura não precisa de lista de permissão. Se sua plataforma apenas responder a perguntas, envie uma ponte sem escrever ops e toda a classe de risco de escrita desaparece. Adicione os registros quando alguém perguntar por eles.

Lista de verificação antes de enviar uma ponte

A ponte recusa tudo sem chave

Teste-o. Renomeie a constante para esvaziar e confirme todas as respostas de op 403.

Uma chave errada é recusada em tempo constante

hash_equals, e a chave lida somente do cabeçalho.

Um nome de tabela inventado é recusado

E um nome de tabela real com um prefixo errado ainda resolve.

Uma coluna de senha nunca aparece em uma leitura

E uma escrita que diz que um nome é recusado com uma explicação.

Uma gravação para uma tabela fora da lista de permissões é recusada

Com a mensagem que diz ao operador como ampliá-la.

O trecho do painel corresponde ao arquivo bridge

php tools/sync_connector_bridge_snippets. php relata isso em passo.

Reinstalar o conector não é suficiente

Se o seu pacote envia um arquivo bridge, um operador que atualiza o conector também deve reposicionar esse arquivo em sua webroot. Diga isso no corpo do painel e em seu MUDANÇALOG, cada versão.

Conectores

A ponte em outras línguas e outras bases de dados

O padrão de ponte não é um padrão PHP.OpsIQchamadas é um endpoint HTTP, então o arquivo pode ser Node, Python, Go, Ruby, .NET ou Java, e a loja por trás dele pode ser qualquerSQLmotor ouMongoDB. O que é em forma de PHP é o pipeline de embalagem, e essa restrição decide como sua ponte chega ao operador. Leia a seção de entrega primeiro: é a parte que surpreende as pessoas.

O que o conector realmente requer

É o contrato todo, nada diz uma língua.

Transportes

HTTPS. Um pedido GET por chamada. Nenhum corpo, nenhum outro método.

Autenticação

Um segredo partilhado no X-Opsiq-Bridge-Key o cabeçalho da requisição, comparado em tempo constante. Não é um parâmetro de consulta, nem um cookie, nem a autenticação básica.

Parâmetros

Uma sequência de perguntas. op nomeia a superfície, do Nomeia a operação, o resto são os argumentos dessa operação.

Resposta

JSON. {"success":true,"data":{...}} ou {"success":false,"error":"snake_case_reason"}. Aplicação tipo conteúdo/json, e nenhum cache.

Códigos de estatuto

200sobre o sucesso.403chave não configurada ou errada,404não encontrado,405método errado,400má argumentação,501sem suporte neste esquema.

É tudo.

Sem framework, sem runtime, sem OpsIQ biblioteca do seu lado. Se ele pode servir isso, pode ser uma ponte.

Entrega: o que pode viver em ponte /, eo que não deve

O pacote assinado cobre uma lista fixa de extensões de arquivo, e um arquivo fora dessa lista é deixado fora do ZIP. Uma ponte em uma língua que a lista não cobre, portanto, não pode enviar dentro do pacote — mas também não pode desaparecer em você. Desde 26 Agosto 2026 um arquivo no bridge/ que o empacotador cairia é uma falha de conformação difícil, então o pacote se recusa a passar em vez de instalar sem ponte nele.

Como uma pasta/ ponte é tratada na hora de compilação
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 e JavaScript — totalmente suportados

O arquivo envia no ZIP assinado, e o verificador de trechos mantém seu painel com um byte- idêntico a ele, seja qual for dos dois. A verificação de deriva lê todos os arquivos em bridge/, não apenas os do PHP, então uma ponte atualizada com uma cópia de painel é falha na compilação em qualquer idioma.

Tudo o resto — entregue apenas através do painel

O trecho do painel é texto simples sem nenhuma ideia da linguagem que ele possui, então funciona para qualquer pilha. Coloque o programa inteiro em webhook_help. snippet_template, nomeie o arquivo em snippett_filename, e NÃO deixe uma cópia em bridge/ — a conformidade irá recusar o pacote ao invés de enviá- lo oco. Diga claramente em webhook_helps. body que o operador copia este arquivo em vez de obtê- lo do pacote.

Se precisar de outra língua no pacote

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.

💡
Nomeia o arquivo em webhook_help.snippet_filename sempre que o seu pacote envia mais de uma ponte. É assim que o verificador sabe a qual ponte pertence uma cópia do painel; sem ela, um emparelhamento ambíguo é relatado como um aviso de conformidade e que o trecho fica desligado.
⚠️
O ponto da verificação de deriva é que um arquivo bridge e sua cópia do painel são duas cópias de um programa e irá divergir. Regenerar em vez de edição manual: php tools/sync_connector_bridge_snippets.php --apply, então re-assinalar o pacote.

O portão, em seis línguas

As mesmas quatro verificações na mesma ordem em todos os lugares: falha fechada sem chave, um método, comparação de teclas constante-tempo do cabeçalho e depois conectar. A única armadilha real é a comparação, e é uma armadilha diferente em cada idioma.

⚠️
Compare o SHA-256digere as duas teclas em vez das próprias chaves. Está correto em cada idioma, e isso evita o fato de que vários comparadores de tempo constante jogam ou vazam em um descompasso de comprimento — o timing de NodeSeguraEqual eleva um RangeError quando os buffers diferem em comprimento, o que transforma uma chave errada em500em vez de um403.
Node. js — o portão
// 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 — o portão
# 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)
Vá, Ruby, . NET e Java — a mesma comparação
// 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)));
}

Validação dos identificadores em cada motor de base de dados

A propriedade de segurança não muda: uma tabela ou nome da coluna que o chamador fornecido deve ser verificado com o esquema real antes de ser interpolado, e cada valor deve ser um parâmetro vinculado. Apenas a consulta de introspecção, o caractere de citação e a cláusula de paging diferem.

MySQLeMariaDB

Tabelas: SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = ?. Colunas: o mesmo contra information_schema.COLUMNS com AND TABLE_NAME = ?. Citação com backticks, dobrando qualquer backtick dentro. Página com LIMIT n OFFSET m.

PostgreSQL

As mesmas visualizações information_schema, nomes minúsculas, WHERE table_schema = $1 (geralmente public). Citação com aspas duplas, dobrando qualquer citação dupla dentro. Página com LIMIT n OFFSET m. Assista à regra de dobragem: um identificador não citado é dobrado para minúsculas, então compare case-insensível quando você resolver um nome.

SQL Server

As mesmas visualizações INFORMATION_SCHEMA. Citação com parênteses quadrados, dobrando qualquer suporte de fechamento dentro. Paginação precisa de uma ordem BY: ORDER BY [id] DESC OFFSET @o ROWS FETCH NEXT @n ROWS ONLY.

SQLite

Tabelas: SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%'. Colunas: SELECT name FROM pragma_table_info(?) — utilizar esse formulário de valor tabelado, porque o nu PRAGMA table_info(x) a instrução não pode tomar um parâmetro ligado e convidando a interpolação de texto, existe exatamente o buraco que você está tentando fechar. Citação com aspas duplas. Page with LIMIT n OFFSET m.

Oracle

Tabelas: SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = :owner; colunas de ALL_TAB_COLUMNS. Citação com aspas duplas, e lembre-se de um identificador não citado dobra para UPPER case, o oposto de PostgreSQL. Página com OFFSET :o ROWS FETCH NEXT :n ROWS ONLY 12c e depois.

MongoDB

Não SQL, então não há interpolação identificadora e nenhum parâmetro ligado — uma disciplina diferente para o mesmo objetivo. Veja abaixo.

A consulta de introspecção por 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;
💡
Resolva, então use o nome RESOLVED. Nunca passe a grafia do chamador para a consulta mesmo após verificar - procure o nome real na lista que você leu do esquema e interpole isso. Não custa nada e fecha a lacuna entre "este nome correspondeu a algo" e "este é o nome que estou prestes a executar".

MongoDB: as mesmas regras, semSQL

Não existe nenhum texto de pesquisa para ser injetado, por isso as pessoas assumem que não há nada a guardar. Existe: o documento do filtro. Passando pelo chamador fornecidoJSONem linha reta para find() permite que um chamador envie {"$ne": null} ou {"$gt": ""} onde você esperava um valor, e selecione silenciosamente cada documento. Compile o filtro sozinho.

MongoDB — collection allow-list, scalar-forced filter, projection as 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();
Os nomes das colecções vêm da listaColeções

Essa é a sua informação_ esquema. Resolva a ortografia do chamador contra ela e use o nome resolvido.

Forçar cada valor de filtro a um escalar

Uma String () ou um Number () em torno dela é toda a defesa contra a injeção do operador. Um documento onde você esperava um valor é o equivalente NoSQL de uma citação perdida.

Projecção é a regra da redacção

Excluir campos em forma de secreto na projeção para que eles nunca deixem o servidor, ao invés de excluí-los do resultado depois.

Exclui ficar em um único documento por _id

deleteOne com um _id resolvido. Nunca deleteMuitos, e nunca um filtro que o chamador influenciou.

Escreve a permanência na lista de permissões

O mesmo raciocínio que SQL: nomeie as coleções que uma escrita pode tocar, e recuse o resto com uma explicação.

O ponto final de identidade noutras línguas

A sonda de identidade é a outra metade de uma ponte, e também é HTTP. O bloco de assinatura é idêntico em todas as línguas: base64url a carga útil,HMAC- SHA256 essa corda, junta-te a um ponto.

Não escreva isto à mão do zero. Configurações, o Portal de Suporte já carrega um catálogo pronto para o PHP, Laravel,WordPress, WHMCS, Node com e sem dependências, Flask e FastAPI, Django, .NET, Ruby on Rails, Java Spring Boot and Go. Pegue o singer do sabor que combina com sua pilha.
O que mudar quando você reutilizá-lo

Esses trechos mentam um token de entrega PORTAL, que é deliberadamente mais rigoroso: carrega jti e single_use:true e vive sobre 120 segundos porque viaja em um URL. Um token identidade ponte ou widget não carrega nenhum desses e usa uma exp mais longa, minutos a horas.

O que continua o mesmo

site_key, iat, exp e um nível superior autenticado: verdadeiro, além de um administrador ou cliente sujeito com um ID e um nome de usuário ou email. As mesmas reivindicações, mesma assinatura, mesmo segredo.

Verifica as duas formas do token

A three-part JWT signed HS256 works, and so does the two-part base64url payload plus hex HMAC that the PHP reference emits. Use whichever your language's libraries make natural — a JWT library is usually the shorter path outside PHP.

Nunca cunhar no navegador

Verdadeiro em cada idioma. Assinar o lado do cliente significa enviar o segredo do site para cada visitante.

Escolhendo, honestamente

A plataforma é PHP

Escreva a ponte no PHP. Ele envia no pacote, é verificado por deriva, e pode iniciar o framework da plataforma para ler uma sessão ao vivo para a sonda de identidade. Nada mais lhe dá todos os três.

A plataforma é o Nó

Um . js bridge ships, assina e é verificado exatamente como um PHP. Nada é dado para cima.

A plataforma é Python, Ruby, Go, . NET ou Java

Entregue através do recorte do painel e diga- o no corpo do painel; não deixe o ficheiro em bridge/, onde a conformidade irá recusar o pacote. O conector é completamente normal: ações, provedores de contexto, identidade e procura de hóspedes funcionam da mesma forma, porque nenhum deles se importa com o que responde à chamada HTTP.

Não é possível executar um processo na máquina da plataforma

Então o padrão de ponte não é a ferramenta certa. Uma ponte existe para alcançar uma plataforma de dentro de sua própria máquina. Se você só pode alcançá-la do lado de fora, você está escrevendo um conector API comum contra qualquer superfície que ela expose.

⚠️
Mais uma restrição que vale a pena planejar: uma sonda de identidade tem que ler a sessão de login da plataforma, o que geralmente significa correr dentro do próprio processo da plataforma ou pelo menos em seu host com acesso à sua loja de sessões. Uma ponte escrita em um idioma diferente da plataforma pode servir dados confortavelmente e ainda pode ter dificuldade para responder op=admin_identity. Se esse for o seu caso, envie a ponte de dados em seu idioma e a sonda de identificação na plataforma.
Conectores

Dê ao assistente ambas as metades: ações e contexto

Esta é a única coisa mais comum faltando de um conector que "funciona, mas é inútil". Ações deixar as coisas AI DO. Seções de contexto deixá-lo SABER as coisas. Um conector precisa tanto, e a maioria das perguntas de um administrador são respondidas por contexto, nunca por uma ação. Um conexão com ações perfeitas e nenhum provedor de contexto irá verdadeiramente relatar que ele não pode ver nada.

As duas metades

Acções — como a IA faz as coisas

Declarado em acções.jsonou retornado pelo registerActions (). O modelo escolhe um, preenche seus parâmetros eOpsIQexecuta- o. As acções são para verbos: cancelar esta reserva, abrir esse ticket, alterar este estado.

Seções de contexto — como a IA sabe das coisas

Reunido por um ContextProvider antes de o modelo correr. "Quantas encomendas este mês", "quem são os meus clientes mais novos", "o que vendemos" tudo resolve através de uma pesquisa de contexto, e nunca toca em uma ação em tudo.

⚠️
Sintoma de um provedor ausente: o assistente responde "Nenhum conector habilitado forneceu esta seção de contexto" enquanto o conector está instalado, ativado e passando seu teste de conexão. Nada é registrado, nada erros. Essa mensagem significa que nenhum provedor reivindicou a seção.

O vocabulário universal da secção

OpsIQ asks for sections by generic name. Your job is to decide what each one means on your platform and answer it. A hotel booking IS the hotel's order; a room IS what the hotel sells. Map, do not invent.

ordens / pendentes_ encomendas

Qualquer que seja a transação na sua plataforma: ordens, reservas, reservas e tarefas. pendentes_ordens é a mesma lista filtrada para as inacabadas.

clientes

A lista de clientes.

products

O que a plataforma vende: produtos, quartos, planos, serviços.

faturamento

Receita e somas em forma de dinheiro, além de contas por estado.

tickets, serviços, domínios, servidores, atividade

Use estes quando sua plataforma os tiver de fato. Não force um mapeamento — uma seção sem resposta é melhor do que uma errada.

Qualquer outra coisa que a sua plataforma tenha

Um provedor que declara seções(): ['licenças','envios'] tem aqueles mesclados na lista de permissões do universal lookup, então as buscas específicas da plataforma ficam disponíveis sem alterações no núcleo.

O erro que custa um dia

Um provedor de contexto DEVE implementar a interface. O tipo de registro verifica-lo, assim uma classe que simplesmente LookS direito é ignorada — sem nenhum erro, em qualquer lugar.

ContextProvider. php — o contrato, do pacote de referência Botble
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 '';
    }
}
Registre-o a partir do conector

Implementar ContextoConectorInterface e retornar seus provedores do contextProviders(). A classe de conector também pode implementar ContextProdiderInterface diretamente e ser registrada como ela mesma.

Devolver texto simples, não JSON

build () retorna um bloco de texto que está concatenado na prompt. Escreva- o para um leitor: um cabeçalho, então uma linha por linha.

Devolver '' em vez de atirar

Pegue suas próprias exceções. Um provedor que joga é registrado e ignorado, mas retornar '' é o contrato.

O Construtor não pode escrever seções () para você

O ContextProvider. php gerado envia seções(): array { return []; } e o assistente não tem campo para isso. Preencha-o à mão — e lembre-se que republicando do assistente OVERWRITES o arquivo. Copie suas edições primeiro.

⚠️
Indicar a TOTAL verdadeira, não o número de linhas que enviou. Uma página não é um total. Um provedor que lista vinte linhas sem dizer isso fica com o assistente respondendo confiantemente "você tem20reserva" quando a plataforma detém669. Uma conta barata e uma linha explícita — "TOTAL no arquivo:669(esta lista mostra o mais novo20somente)" — é toda a correção, e uma contagem confiantemente errada é pior do que nenhuma contagem.
Um bloco de seção que não pode ser contado incorretamente
$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);

Name your actions so OpsIQ can tell reads from writes

OpsIQ classifies an action by the WORDS in its action_id, and it is deliberately conservative: anything it cannot recognise is treated as a write and demands an approval card. Get the verb right and a read just runs.

1
is_destruction ou requires_confirmation ganha

Se um dos dois estiver definido, a ação sempre precisa de aprovação. Declare-os honestamente — é isso que revela o cartão de aprovação do administrador.

2
Uma palavra escrita em qualquer lugar no ID faz dele um texto escrito

adicionar, criar, abrir, atualizar, editar, modificar, modificar , excluir, destruir, cancelar, reembolsar, suspender, terminar, ativar, aprovar, rejeitar, enviar, marcar, repor, capturar, anular, fechar, reabrir, atribuir, revogar, conceder, definir, alternar, habilitar, desativar, emitir, gerar, aplicar, cobrar, pagar, provisão, renovar, atualizar e mesclar, mover, transferir, aumentar, bandeira, registrar, sincronizar, empurrar, importar, executar, disparar, iniciar, parar, reiniciar e mais alguns.

3
Então uma palavra lida faz com que seja uma leitura

get, list, search, find, view, show, fetch, count, lookup, descreva, leia, exporte, preview, teste, ping, status, resumo, detalhe, recente, histórico, verificação, log, estatísticas, métricas, visão geral, receita, discriminação, relatório, análise, equilíbrio, uso, quota, instantâneo, insights, alimentação, rascunho, triagem, classificação, sugestão.

4
Em seguida, o método HTTP decide

OBTE, CABEÇA E OPÇÕES são lidos.

5
Caso contrário, é uma escrita

Não reconhecido significa que é necessária a aprovação.

⚠️
Escreva palavras são marcadas ANTES de ler palavras, então um nome misto como get_and_sync_orders é classificado como um WRITE. Escolha um verbo, coloque-o em primeiro lugar e mantenha-o limpo: list_ordens, get/cliente, search_bookings, cancell_book, set_orde_status.

Apenas declare native_api se a plataforma realmente tiver uma

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.

O Construtor decide isso a partir de sua resposta de acesso aos dados

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.

Os pacotes escritos à mão ainda devem acertar

Se você está escrevendo o manifesto, declare exatamente um de native_api ou platform_bridge. Conformance trata platform/bridge como a saída que se espera que um conector de ponte tenha, e o Construtor recusa uma especificação que reivindica plataforma_bridge em um conector API.

Mantenha ai_api_reference. md honesto de qualquer forma

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.

Ensine o cérebro de administrador sobre sua plataforma

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

O que esta plataforma é, como seus dados são moldados, o que seus objetos são chamados, e as peculiaridades que de outra forma fariam o assistente adivinhar. Escreva-o para um colega competente que nunca viu a plataforma.

ai_api_reference. md

A superfície callável. Para um conector de ponte, este é o seu vocabulário e faz com os parâmetros deles, não uma tabela de finalização REST.

Orçamento

Aproximadamente6,000caracteres mantidos por conector, e sobre24,000caracteres para todo o bloco em todos os conectores habilitados. Por cima da tampa por conexão, seu arquivo é truncado; seja conciso antes que o truncador esteja.

Precisão paga

Estes arquivos são a diferença entre o assistente usando suas ferramentas de mesa universal e respondendo da seção errada, porque nada nunca lhe disse que essas ferramentas existiam.

💡
Ambos os arquivos devem estar no pacote INSTALled, não apenas na sua árvore de origem. Eles são arquivos comuns de pacotes, então eles estão cobertos pela assinatura e enviados no ZIP - o que também significa editar um após assinar quebra o selo.
Conectores

Identidade através de um conector: administrador, cliente, portal

Um contrato de assinatura serve três superfícies. O trabalho do conector é transformar "quem está logado na plataforma" em um token assinadoOpsIQpode verificar, e depois apresentar o sujeito verificado emOpsIQA forma do conector nunca autentica ninguém — a plataforma o faz, e a assinatura carrega essa afirmação.

As três superfícies, um sinalizador

Admin — sua equipe, dentro de sua infraestrutura

Um assunto de administrador. O widget carrega dentro do painel de administração da plataforma e cada membro da equipe é igualado ao seu próprio agente OpsIQ. Passo a passo completo na página de widget de administrador

Cliente – cliente assinado, em bate-papo de cliente

Um assunto de cliente. Isto é o que permite que um cliente logado obtenha sua conta inteira em vez de uma pesquisa anônima: cada pedido, detalhe completo e qualquer ação de autoatendimento que você permitir.

Portal — uma ligação profunda ao portal de apoio

As mesmas reivindicações mais jti e single_use, com um120-segunda vida, porque o símbolo viaja em umURLe deve ser gastável uma vez. Não role manualmente esta: Configurações, o Portal de Suporte carrega um trecho pronto por idioma, e a plataforma menta-o para você quando a área da conta é executada neste servidor.

O contrato de carga útil

Estas são as reivindicações que os verificadores verificam. Nada aqui é opcional, qualquer que seja um exemplo parcial em outro lugar pode sugerir.

site_key

Nível superior. Deve igualar a chave do site da solicitação, ou o token é recusado.

iat e exp

Nível superior, os segundos unix. exp devem ser no futuro e depois do iat. Um token mais de cerca de um minuto no futuro é recusado. Mantenha a vida curta – minutos a horas.

autenticado: true

Nível superior, ao lado da exp. A afirmação da sua plataforma de que um humano real está ligado.

plataforma

Nível de topo. Uma lesma curta que nomeia a origem. Recomendada, e permite que um fornecedor de identidade de um conector diga os seus próprios tokens de outra plataforma.

administrador ou cliente

Um objeto que nomeie o assunto. Ele deve carregar um id não vazio, e um nome de usuário ou um e-mail — a porta de acesso por administrador corresponde a eles. Inclua ambos quando você tiver ambos.

Minta, verbatim da ponte Botble
$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);

Os dois verificadores, e o fracasso que eles causam

OpsIQ tem dois verificadores de token, e eles não eram idênticos. Saber isso salva uma tarde, porque o sintoma não se parece nada com a causa.

O widget de administração tem seu próprio verificador

opsiq/embed/admin_ajax. php carrega um verificador local que aceita a bandeira autenticada em qualquer posição. Lista de conversação, histórico e não lidos todos passam por ela, então eles autenticam multa.

O verificador partilhado é mais rigoroso

opsiq/includes/cliente_identity_token_verify.php fica atrás do fluxo de chat e do núcleo AJAXAPI. Historicamente exigiu a bandeira no nível TOP.

O sintoma

O histórico e as conversas funcionam. Cada conversação gira as respostas "necessário o login do administrador". Ele lê exatamente como um erro de sessão e não é: o token está faltando a bandeira de nível superior.

O que o núcleo atual faz

Agora aceita a bandeira no nível superior OR dentro do assunto, por isso o contrato é uniforme. Núcleos mais antigos lêem apenas o nível superior. Emite a forma canônica e seu pacote funciona em cada lançamento.

Este é verificado agora. Qualquer arquivo em seu pacote que menta fichas de identidade é estaticamente digitalizado contra o contrato, e uma carga útil a plataforma recusaria a conformidade com o arquivo exato e linha. Execute-o você mesmo: php tools/verify_identity_contracts. php.

Clientes assinados no chat do cliente

Duas coisas têm que ser verdade. O núcleo deve carimbar o cliente verificado, e seu conector deve apresentá-lo.

1
Sua ponte ou endpoint menta um token de cliente

O mesmo assinante do administrador, com um assunto de cliente. Leia o cliente da sessão própria da plataforma. Se sua plataforma assinar clientes em um guarda diferente dos administradores, leia o guarda que você deseja e nunca se retraia aos assuntos – é assim que um cliente receberia um token de administrador.

2
O núcleo verifica e carimba o

Num token válido, o core carimba o assunto verificado na sessão. O seu fornecedor lê uma identidade comprovada; nunca autentica.

3
Sua IdentidadeProvider apresenta-lo

detectCustomer () retorna oOpsIQforma. Deve implementarOpsIQ\Platform\IdentityProviderInterface, ou o registro ignora silenciosamente - a mesma armadilha que o provedor de contexto.

4
Suas ações com foco no cliente aceitam um customer_id

And OpsIQ locks it to the verified identity before execution. The model cannot supply it.

IdentityProvider. php — leia a identidade comprovada, apresente-a na forma de OpsIQ_
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;
    }
}

Ações com foco no cliente: duas fechaduras, ambas necessárias

O modelo nunca deve escolher quais dados lê. OpsIQ impõe isso do seu lado, e sua plataforma deve executá-lo do outro lado também. Um bloqueio é um bug longe de um vazamento; dois bloqueios são um contrato.

Bloquear 1 — OpsIQ sobrepõe os parâmetros de identidade

Antes de uma ação cliente-chat correr, OpsIQ substitui cada parâmetro em forma de identidade com a identidade do visitante VERIFIED: client_id, clientid, user_id , userrid, customer_id. id, account_id toma o ID numérico verificado; cliente_identifier, cliente_ID, anyth_identifier, anet_identifier leve-o como string; email, cliente/email, custom_email email, use_eMail leve o email verificado.

Bloquear 2 — sua plataforma re-escopa cada consulta

Pegue o id que lhe foi dado e adicione-o à cláusula WHERE de cada leitura e cada escrita nessa superfície. Nunca confie na referência no pedido por si só. Um cliente assinado perguntando sobre a ordem de outra pessoa deve voltar vazio, não proibido.

Name your parameters so lock 1 can find them

Chame-o de customer_id, não de custom ou ref. Um parâmetro OpsIQ não reconhece é um parâmetro que ele não pode bloquear.

⚠️
Give the signed-in customer surface its OWN operations, separate from the admin ones, even when the SQL looks similar. Two surfaces with different rules stay honest; one surface with a flag becomes a leak the day someone edits the wrong branch.

Fiação de página zero: a sonda declarada pelo conector

You can spare the operator all page wiring. Add an admin_identity_probe_url setting (https only) pointing at your identity endpoint. The plain admin-widget loader from Remote Sites, Codes then works with no page attributes at all: the widget discovers the endpoint through the connector, calls it with the site key and widget token, and authenticates each admin individually. A page can still override with a data-identity-endpoint attribute or window.OpsIQAdminIdentityEndpoint.

settings.json — a configuração da sonda
{
  "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."
}
A sonda é chamada pelo navegador

A mesma origem, por isso não pode carregar um cabeçalho personalizado. A autenticação é a sessão da plataforma. Coloque- o AHEAD do seu portão de teclas de ponte, mantenha- o afastado dos dados de registo e não devolva nada para um visitante logado.

Responde a uma forma fixa

{"success":true,"authenticated":true,"admin":{...},"identity_token":"..."} — and {"success":false,"authenticated":false,"error":"..."} when nobody is signed in.

Nenhum segredo de longa duração na fonte da página

Só o sinal assinado, que expira.

As implementações completas do endpoint para Laravel,WordPress, WHMCS, Symfony e PHP simples, além dos específicos de Laravel hard-won e da ordem de solução de problemas, estão na página widget admin. Eles são o mesmo código para um assunto do cliente: alterar o guarda que você leu ea chave de assunto que você assinar.

Conectores

Publicação: editar a pasta não é publicar

A maneira mais comum de perder uma tarde é editar um conector sob marketplace_connectors/, reinstalá-lo e não encontrar nada alterado. Instala não ler essa pasta. Eles puxam um ZIP assinado do catálogo do marketplace. Publicar é a sequência que coloca suas alterações nesse ZIP.

Por que a edição não fez nada

marketplace_connectors/<slug>/ is the SOURCE

É onde trabalhas, nada se instala.

O catálogo possui um ZIP assinado

Uma instalação baixa que ZIP, verifica a assinatura e desfaz. Até reconstruir o ZIP cada instalação continua recebendo o pacote antigo.

O Connector Builder publica em outro lugar

It writes into /connectors/<slug>/ on this install. That is a local connector, not a marketplace release. The two paths do not overlap.

A sequência de lançamento

1
Bump a versão em dois arquivos

configurações.jsone connection_contract.json. Conformidade compara-os e falha se a lesma, a versão ou o conjunto de capacidades discordarem. Adicione uma entrada CHANGELOG.md enquanto você estiver lá — é um arquivo obrigatório.

2
Resincronizar o trecho da ponte

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
Re- assina cada pacote

php tools/resign_all_connectors. php — o arquivo de capas de assinatura hashes, então qualquer edição invalida-o. Assine por último, depois que cada arquivo for final.

4
Exportar a chave de assinatura, em seguida, semear

A semeadora assina cada pacote ao construir o ZIP, e ele é executado em um contexto onde a chave não pode ser lida a partir de configurações — então ela deve vir do ambiente.

5
Reaplicar o ficheiro da ponte, se enviares um

A reinstalação do conector atualiza o pacote. NÃO toca na cópia que está no webroot do operador. Diga-lhes, no painel e no changelog.

Toda a libertação, em ordem
# 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.

O que realmente navios

Apenas ficheiros que a assinatura cobre

O ZIP é construído a partir da própria lista de arquivos do assinante, então um arquivo perdido sentado na sua pasta de pacotes não é enviado. Isso é deliberado: um arquivo sem assinatura usado para cavalgar junto com os clientes.

Extensões cobertas

php,json, js,css, md, txt,html, sh, svg, png, jpg, jpeg, gif, webp, ico, yml, yaml — recursivamente, incluindo ponte/ e testes/. assinatura.jsonem si é excluído dos hashes e, em seguida, adicionado ao ZIP para que as instalações possam verificar.

Qualquer outra coisa é reportada como não_packaged

O semeador nomeia todos os arquivos que deixou para trás. Leia essa lista. Um arquivo que você esperava enviar para lá significa uma extensão errada ou um local errado — não um sucesso silencioso.

A edição de qualquer ficheiro coberto quebra o selo

Incluindo um ficheiro Markdown.

Arquivos necessários em um pacote distribuível

connector.php

Deve retornar uma instância do ConnectorInterface.

settings.json

Manifesto: slug, nome, versão, manifest_version, compatibilidade, capacidades, connection_contract_verson, configurações.

connector_contract.json

Contrato legível por máquina. Seu slug, versão e conjunto de capacidade devem ser idênticos às configurações.json.

README. md, Developer. m d, MUDANÇALÓGICA

Todos os três são verificados para a existência E tamanho mínimo. DEVELOPER. md precisa de conteúdo real, não um stub.

Um ficheiro por capacidade declarada

Cada capacidade nomeia o arquivo que espera — ContextProvider. php para contexto, IdentityProvideer. phP para identidade, GuestLookupProvidere. phpa para guest_lookup, e assim por diante — a menos que o conector implemente a capacidade inline.

Nada que pareça uma credencial

A conformidade verifica os três arquivos Markdown para valores em forma de segredo e chaves privadas, e falha em um hit.

Verifique antes de enviar.

O conjunto completo de conformidade é o mesmo que uma instalação roda. Ele verifica o manifesto contra o contrato canônico, que runtime e manifesta capacidades concordam, que cada capacidade declarada tem seu arquivo e seus métodos, o contrato de identidade-token em cada arquivo cunhando, a combinação ponte-snippet, hospede-lookup allowlist higiene, ação única e segurança de confirmação, ea assinatura do pacote.

Executar todos os quatro antes de cada lançamento
# 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
💡
Espera- se uma falha e não é um problema: a verificação da assinatura do pacote reporta um aviso enquanto você ainda está a editar. Ele limpa o momento em que você re- assina. Cada outra falha é real.
Conectores

Pacote de ligação e referência do ciclo de vida

This is the source-level contract for building a connector that OpsIQ can discover, configure, validate, enable, execute, test, sign and distribute.

Referência do programador
Pacote de ligaçãoUm pacote de conectores tem uma implementação e manifestos conectores necessários, com ações opcionais, receitas, conhecimento, ativos e metadados de assinatura.Pacote de ligaçãodeveloperMANIFESTv1LIFECYCLEGerenciadoESPAÇO DE TRABALHOÂmbito de aplicaçãoCONCEITO AO LIVRO DA ESPAÇO DE TRABALHOconnector.phpClasse de conexão / fábricaNecessáriosettings.jsonManifeste e esquema de configuraçõesNecessárioactions.jsonDefinições de acçãoOpcionalsignature.jsonMetadados da assinatura do pacoteLançar1DECLAREManifestação e capacidades2IMPLEMENTCiclo de vida e prestadores3VALIDATETeste, sinal, embalagem
Um pacote de conectores tem uma implementação e manifestos conectores necessários, com ações opcionais, receitas, conhecimento, ativos e metadados de assinatura.

Embalagem mínima

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

Contrato manifesto

settings.json usa versão manifesta 1. O validador espera uma slug, nome, versão, manifest_version, compatibilidade, descrição e capacidades. opsiq_min e opsiq_max. O status de liberação é um dos production, beta, antevisão ou template; maturidade de capacidade usa níveis L1–L6. Pacotes legados podem ser normalizados com avisos, mas um novo pacote deve passar sem avisos.

Interface de conectores do núcleo

  • Identidade e configuração: slug(), name(), description(), capabilities(), settingsSchema(), testConnection().
  • Ciclo de vida: onEnable() e onDisable(). A desactivação deve ser não destrutiva; a purga dos dados é uma operação deliberada separada.
  • Entrada / sincronização: handleWebhook(), poll(), backfill(). A pesquisa lida com trabalho incremental; backfill importa o histórico e deve ser seguro para repetir.
  • Suporte: pushReply() Quando a plataforma aceitar respostas.
  • Acções: registerActions() Fornece contratos de ação executáveis.
  • Segurança: securityCapabilities(), syncBlockedIp(), removeBlockedIp(), testSecuritySync().

A base abstrata também oferece backfill opcional, listagem de clientes, descoberta/criação de conta por email, assinantes, detecção de administrador/cliente, provedores de faturamento/contexto/identidade, extração de resposta, retentando chamadas HTTP, acesso JSON-path, classificação fuzzy e ajudantes de paginação.

Capacidades e autenticação

Nomes de capacidade suportados incluem ações, gatilhos, contexto, identidade, vendas, faturamento, inbound_ticket, outbound/reply, sync_users, sync_departments, security_events, customer_importation, securety_native_block, promo_audience, promo_feed, email_mailbox, native_api, ai_brain_aware e ai _tickets. API chave, portador, básico, HMAC,OAuth 2credenciais do cliente,OAuth 2Código de autorização e modelos de autenticação personalizados.

Ciclo de vida do registo

  1. Discovery carrega o pacote e valida seu manifesto.
  2. A configuração é armazenada por espaço de trabalho; os segredos são criptografados.
  3. O teste de conexão prova credenciais sem habilitar o conector.
  4. Activar chamadas onEnable(), sincroniza as definições de ação e pode iniciar o preenchimento inicial.
  5. A execução do polling/webhook/subscriber sempre carrega o contexto de espaço de trabalho.
  6. Desactivar chamadas onDisable() e pára a atividade sem excluir dados importados.
  7. A Purga é uma operação explícita separada.

Regras de correcção

  • Use a chave de espaço de trabalho/site em cada leitura, gravação, chave cache, chave de desduplicação e busca webhook.
  • Faça backfill, ingestão webhook e ações de gravação idempotent. Grave um ID externo / evento ID onde quer que a plataforma fornece uma.
  • Para sistemas remotos, utilizar API; nunca assuma que suas tabelas de banco de dados existem no OpsIQ ligação.
  • Devolva erros estruturados, seguros para o cliente. Nunca expose segredos, vestígios de provedores brutos ou a existência de outro espaço de trabalho.
  • Declare apenas as capacidades que o pacote implementa. actions.json o catálogo não torna uma ação utilizável até que o conector seja instalado, habilitado, configurado e sua conexão seja válida.

Teste e libertação

Execute o lint PHP, a validação manifesta, testes de conexão, testes do esquema de ação, testes da assinatura/replay do webhook, testes no espaço de trabalho, testes na retrorrepetição, testes nos conectores desativados e testes de falha/retenta. Um pacote de mercado deve ser então assinado e verificado, incluir a configuração/permissões/documentação do webhook e indicar seu verdadeiro status de liberação. O azulejo e manifesto do conector são o sinal de disponibilidade autorizado.

Conectores

Receitas do conector

Receitas passo a passo para configurações de conectores comuns.

Receitas
Receita do conectorUma receita de configuração Shopify como uma lista de verificação: criar aplicativo, conceder escopos, colar token e teste, ativar webhooks, colocar uma ordem de teste.Receita do conectorShopifyReceita · Shopify com webhooksCrie um aplicativo personalizado em Shopify adminÂmbitos de concessão: read_orders, read_clientes...Pastar domínio de armazenamento + token, clique em TestarActivar a sincronização do Webhook (registro automático das encomendas)Faça um pedido de teste → aparece em Vendas em 30s1STEP BY STEPCopiar as receitas de pasta2REAL PLATFORMSShopify · WHMCS · Stripe· GBP3VERIFYA ordem de teste mostra em 30s
Cada receita é uma lista de verificação que você segue de cima para baixo, aqui, Shopify com webhooks em tempo real ordem, verificada por uma ordem de teste.

Receita: Shopify com webhooks em tempo real

Cenário:
Goal: Connect Shopify with automatic order sync and GDPR compliance.
O que fazer:

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.

Receita: WHMCS integração

Cenário:
Goal: Connect WHMCS so AI can look up clients, services, tickets, and invoices.
O que fazer:

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.

Recipe: Stripe payments

Cenário:
Goal: Track Stripe payments and let AI look up transactions.
O que fazer:

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.

Receita: Google Business Profile

Cenário:
Goal: Connect GBP for review management, posts, and insights.
O que fazer:

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.

Conectores

Estender a Inteligência de CRM e Site

OpsIQ subsistemas estão abertos para extensão. Um conector pode conectar uma nova capacidade no CRM ou Site Intelligence sem alterações OpsIQ núcleo, através do registro de capacidade da plataforma (\OpsIQ\Platform\CapabilityRegistry). Declare a capacidade, implemente o seu pequeno conjunto de métodos, envie o conector,OpsIQ descobre-o e liga-o à UI, ao Cliente 360 linha do tempo e os prompts de instalação.

Extender o & SI de CRM
Capacidades da plataformaUm conector nos ônibus de capacidade de alimentação esquerda (CRM, Site Intelligence, Analytics) descoberto pelo CapabilityRegistry.Capacidades da plataformaespaço de trabalhoSeu conectordeclara capacidadesCRMcalendário · enriquecimento · esign · pagamentos · caixa de correioInteligência do SiteLocalização: local_listing · rank_dataAnáliseweb_analytics · relatório & ingestãoCapacidadeRegistodescobre & fios da linha do tempo UI +1DECLARECapacidades, não edições de núcleo2PLUG INCRM · SI · ônibus de análise3AUTO-WIREDUI, linha do tempo, prompts
Um conector declara capacidades (calendário, enriquecimento, dados de classificação, análise...) eOpsIQAuto- liga- os aCRMe Inteligência do Site, sem mudanças fundamentais.

Declare capacidades

Declarativo (configurações.json)

Adicionar um <domain>_capabilities array, o melhor para conectores sem código/mercado. Domínios: crm, site_intelligence.

Em código (connector. php)

Implementação crmCapabilities() / siCapabilities() Retomando os mesmos descritores.

Declare um provedor de calendários CRM (settings.json)

Cenário:
Goal: make a calendar connector appear in the CRM Schedule-meeting panel.
O que fazer:

"crm_capabilities": [ { "type": "calendar", "label": "Calendar (Acme)", "actions": ["createEvent","listEvents","freeBusy"], "requires_auth": true } ]

Declare um provedor de Inteligência do Site (settings.json)

Cenário:
Goal: feed local-listing data into Site Intelligence.
O que fazer:

"site_intelligence_capabilities": [ { "type": "local_listing", "actions": ["listLocations","listReviews","getInsights"], "requires_auth": true } ]

Autocarros de capacidade e sua superfície de método

crm / calendário

createEvent($settings,$params) → {sucesso, evento_id, html_link, meet_link}; listEvents; freeBusyDirigido por \OpsIQ\CRM\CalendarBridge.

crm / enriquecimento

enrich($settings,$params) → {sucesso, traits}. Dirigido por \OpsIQ\CRM\EnriquecimentoBridge (também é executado automaticamente na criação da empresa quando um provedor está conectado).

CRM / esign

sendForSignature($settings,$params) → {sucesso, envelope_id, sign_url}. Dirigido por \OpsIQ\CRM\EsignBridge.

site_ intelligence / local_ listing

listLocations, listReviews, getInsights. Naves através do conector Google Business Profile.

site_intelligence / dados de classificação

keywordRanks($settings,$params) → {sucesso, ranks}. Dirigido por \OpsIQ\SiteIntelligence\RankDataBridge. Naves: Conector SerpApi.

análises / web_analytics

report($settings,$params) (sincronização/exportação) + ingest($settings,$events) (importação). Dirigido por \OpsIQ\ Analytics\Web AnalyticalsBridge. Navios: Google Analytics Conector (GA4). Dados API para relatórios, protocolo de medição para importação. O Analytics está aberto para conectores como CRM + Site Intelligence (domínio analytics / analytics_capabilities).

pagamentos / pagamento_fornecedor

listPayments, customerPayments, createPaymentLink. Dirigido por \OpsIQ\Pagamentos\PagamentosBridge. Mostre os pagamentos de um cliente na linha do tempo CRM + envie um link de pagamento em um acordo.StripeConector de pagamentos. payments / payments_capabilities.

caixa de correio / e- mail_ sincronia

listMessages + sendMessage. Dirigido por \OpsIQ\Mailbox\MailboxBridge. E-mails de um cliente no Cliente360timeline + enviar e-mail de um acordo.Gmail+ Outlook/Microsoft365conectores. Domain mailbox / mailbox_capabilities.

Shared OAuth app + ONE redirect

Todos os conectores do Google compartilham uma aplicação via \OpsIQ\OAuth\SharedGoogleApp. Set google_oauth_client_id/_secret uma vez e calendário, análise, perfil de negócios + Gmail todos os trabalhos (os campos "(opcional)" por conexão são substituídos). Eles também compartilham um redirecionamento URI, <site>/connectors.php?oauth=callback (nenhuma lesma por ligação), porque o Google expõe não API para adicionar redirecionamento de URIs a um aplicativo; OpsIQ recupera o conector do sinal OAuth state Nonce. Registre que o único URI uma vez e cada conector do Google (presente + futuro) autoriza sem nenhuma configuração adicional da Console. SharedGoogleApp::resolve(...)De redirect_uri da sua oauthParams(); nunca codifice um redirecionamento por deslizamento. Os conectores Microsoft fazem o mesmo via \OpsIQ\OAuth\SharedMicrosoftApp (microsoft_oauth_*).

Os botões de importação são ativados

A Importar (reforço histórico) e Importar clientes botões mostram SOMENTE para conectores que realmente os implementam, detectados por reflexão, então não há nenhuma bandeira a declarar. Sobrescrever backfill() ou backfillChunk() para ganhar o botão Importar; sobrescrever listCustomers() (retorno {email, first_name, ...} pages) para ganhar clientes Importação. Herdar o AbstractConnector No-op e o botão permanece oculto, de modo que a UI nunca oferece uma importação um conector não pode executar.

IA através de autocarros

O agente de CRM propõe e marca reuniões fora de sinais de negócio (\OpsIQ\CRM\MeetingProposer → CalendarBridge), e auto-enriquece novas contas, o “AI opera o loop CRM”, executado em ônibus conectores.

Procura de tickets para o cliente-chat (fetchTicket())

Duas camadas, sem alterações no núcleo

Quando um visitante faz referência a um número de ticket no chat do cliente ("qual é o estado do T-000123?"), OpsIQ resolve-o em dois níveis. Nível 1 lê a loja de bilhetes partilhada OpsIQ, cada conector com inbound_ticket espelhos seus tickets lá, então os tickets sincronizados apenas funcionam para TODOS os conectores com zero por código de conexão. Nível 2 é um retorno ao vivo para bilhetes antigos que nunca foram espelhados: core chama um OPTIONAL fetchTicket() em cada conector habilitado que o implementa. duck-typed (descoberto por method_exists(), como contextProviders()/audienceCatalog()), por isso o ConnectorInterface é intocado e conectores que não precisam (fontes de email/chat que criam tickets nativamente) simplesmente omitem-no.

⚠️
A propriedade é obrigatória e a sua é obrigatória. fetchTicket() recebe a identidade de visitante VERIFIED em $ctx (client_id + client_email, a mesma identidade verificada que o chat do cliente AI usa). Resolva o cliente da plataforma a partir dessa identidade e consulta SOMENTE os tickets do cliente, em seguida, verifique novamente a propriedade no registro de detalhes. null em qualquer erro, falha ou erro, nunca os dados de outro cliente. null Degrada-se graciosamente para "não consegui encontrar o bilhete".
connector.php, o contrato fetchTicket() (referência: conectores/whmcs e conectores/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
    }
}

Como a plataforma a utiliza

Descoberta

CapabilityRegistry::providers($domain,$type) lista os fornecedores com o estado instalado/ habilitado/pronto (com base no sistema de ficheiros; DB apenas para a bandeira activada).

Seleção

CapabilityRegistry::active($domain,$type) retorna o primeiro provedor pronto com seu conector carregado e configurações. Pontes chamam isso em vez de lesmas de codificação dura.

Notificar- para- instalar

Onde um recurso precisa de uma capacidade que ainda não está conectada, a UI mostra um prompt Connect/Install com um clique, nunca um controle morto.

Guia completo

Veja connectors/PLATFORM_CONNECTORS.md (CRM + Inteligência do sítio) e connectors/CRM_CONNECTORS.md no pacote.

Conectores

Procuras e reembolsos de auto-serviço do cliente (construa o seu conector para chat do cliente)

Os clientes com sessão iniciada podem perguntar ao cliente sobre a sua própria conta ("meu saldo", "meus pedidos", "apoiou responder ao meu ticket") e, se o negócio permitir, solicitar reembolsos. Tudo é alimentado pelas declarações do seu conector: sem OpsIQ alterações de núcleo, nenhuma codificação da plataforma. A IA chama seus olhares como ferramentas nativas (não pode inventar uma), identidade está bloqueada lado servidor para o cliente verificado, e os resultados são automaticamente cortados para a IA.

Declare uma procura de clientes

Na sua actions.json, uma ação somente leitura torna-se cliente-chamável com TODOS os três: "scope":"client", "requires_confirmation":false, "is_destructive":false. Utilização "scope":"both" quando o mesmo olhar também deve ser chamado por sua equipe na IA Admin. admin, client, both e system (system não atinge nenhuma IA —APIe apenas rotas webhook). Qualquer outra coisa é rejeitada de imediato: a validação do pacote falha e a ação não instala. writing âmbito — o assistente de escrita é servido admin Acção definida.

Regra de identidade (obrigatório)

Nomeie o parâmetro de identidade do conjunto padrão. Bloqueado para o ID numérico verificado: client_id, clientid, customer_id, user_id, userid, account_id. Travado nesse ID como uma string: client_identifier, customer_identifier, account_identifier. Travado no e-mail verificado: email, client_email, customer_email, user_email. OpsIQ locks and auto-fills it from the platform-verified signed-in customer; the AI never sees or chooses identity. A non-standard name fails closed (denied, never leaked).

O que deve permanecer apenas para administração

Qualquer coisa não abrangida por essa identidade: fetch-by-bare-id (order_id/ticket_id sozinho), listas de lojas, buscas de texto livre. São vazamentos entre clientes em qualquer plataforma. "scope":"admin".

Formação de resultados (chaves para responder)

Os resultados da pesquisa são estruturalmente aparados antes de atingirem a IA: chaves em forma de segredo são largadas, cordas longas e listas são tapadas, campos em branco são podados, e um mapa plano mais amplo do que o boné mantém sua chaves de resposta primeiro, dinheiro (credit, balance, amount, total, due, paid), identidade (email, *name, phone, company), estado (status, active, expir*, renew*), datas, plano/produto/domínio/serviço/assinatura/ordem/factura/títulos, moeda, conta e stats/summary/totals, antes de qualquer assento restante ir para outras chaves menor valor-primeiro. Orientação prática: nomeie seus campos com esse vocabulário padrão e retorne os campos que respondem à pergunta do cliente em vez de um lixo 100-chave bruto plataforma; um campo nomeado fora do vocabulário compete para os bancos restantes e pode ser aparado de cargas muito largas.

Reembolsos · o que seu conector fornece

Duas operações brutas, sem políticas: (1) uma verificação de pagamento filtrada por identidade E uma referência à transacção (a sua API Os filtros devem ser ensaiados, por exemplo. whmcs_get_transactions; (2) uma acção de execução da restituição (scope:"admin", requires_confirmation:true, is_destructive:true, nunca exposto ao cliente), por exemplo. whmcs_refund_order. O negócio escolhe ambas as chaves em Configurações → Conversa com o cliente; OpsIQ re-verifica o servidor de pagamento, aplica a caixa política do negócio (capa de montagem, janela de idade, limite mensal), problemas dentro da caixa, e arquivos de um ticket de revisão para tudo mais.

Construtor sem código

O editor de ação do Connector Builder tem os mesmos controles: definir "Quem pode usá-lo" para clientes com sessão iniciada, deixar ambas as caixas de seleção de escrita desligadas e usar um nome padrão de parâmetro de identidade.

Implementação de referência

As entradas de "Auto-Serviço ao Cliente" connectors/whmcs/actions.json, woocommerce/actions.json, oscommerce/actions.json; contrato completo em connectors/README.md §8.1–8.2 e ConnectorInterface::registerActions().

Conectores

Consultas de hóspedes — deixe os visitantes rastrear uma reserva, envio ou ordem SEM se inscrever (convidados_lookup)

Hotéis, correios e muitas plataformas comerciais servem aos clientes que possuem uma referência mas sem login: um hóspede com confirmação de reserva, um destinatário com número de rastreamento. guest_lookup capability (Connector Contract, mode: generated) lets YOUR connector serve those visitors in the client chat AI — no OpsIQ core changes, no platform hardcoding. Your connector declares WHAT proves entitlement and WHICH fields are visible; OpsIQ enforces the switches, the throttle and the uniform deny.

O modelo de confiança

Referência + prova, nunca identidade

O visitante fornece a referência de registro (conforme o regex que você declara) mais a prova que você escolhe — normalmente o e-mail no registro. Sua ação de busca recupera o registro SERVER-SIDE por referência; OpsIQ's generated provider compara a prova com o registro FETCHED. A entrada do visitante nunca é confiável, e nenhuma identidade verificada é criada: o par dá ao visitante o direito aos campos permitidos desse registro, nada mais.

Negação uniforme (sem oráculo de enumeração)

Não-encontrado e prova-mismas produz UMA resposta idêntica. A IA é explicitamente instruída a nunca confirmar se existe uma referência e nunca inventar detalhes de registro. As tentativas são limitadas por conversação + IP pelo núcleo antes que o seu conector seja consultado.

Opt-in duplo, ambos default OFF

Nada serve os hóspedes até que o negócio permita ambos os interruptores: o controle de espaço de trabalho em Configurações→Segurança→"Pesquisas de registro de clientes no chat do cliente" (permissão-aberta E sempre confirmada por senha, mesmo quando o step-up opcional está desligado), e seu próprio conector guest_lookup_enabled configurações alternar. Instalar ou habilitar um conector sozinho nunca abre a superfície do hóspede.

A superfície dedicada do hóspede

Os registos gerados pelo prestador no guest superfície de contexto — estruturalmente separada da admin e customer. Os provedores de contexto existentes nunca são consultados para visitantes anônimos, e o provedor convidado nunca é consultado para os que se inscreveram. O ctx que recebe carrega a mensagem de chat, o ID do tópico e o email pré-chat (inverificado) do visitante como um candidato à prova — sem campos de identidade.

Declarando - o no Construtor

1
Definir a ação de obtenção

Na etapa Actions, adicione uma ação somente leitura que retorna ONE registro por sua referência (por exemplo. GET /bookings/{booking_number}) e mapeie seus campos de resposta com aliases: status, chegada, partida, tipo_sala, customer_email...

2
Assinale "Procura de Convidados"

Na etapa de capacidade, habilitar guest_lookup. Aparece um painel dedicado: escolha a acção de recolha, nomeie o parâmetro de referência, dê o padrão de referência (um corpo regex como \bBK-[0-9]{4,10}\b), nomeie o registro ("booking"), e escolha a prova — email no registro (recomendado) ou nenhum (referência somente para rastreamento de correio apenas com status).

3
Permitir listar os campos visíveis

Assinale exactamente os campos que um hóspede poderá ver. Tudo o resto é DROPPED — nunca editado. O Construtor recusa campos em forma de PII (e- mail, telefone, endereço, pagamento...) na lista de permissões e a suite de conformação da porta de lançamento verifica novamente a mesma regra antes de publicar, pelo que uma especificação escrita à mão não pode entrar escondida. Lembre- se que a validação do tempo de instalação cobre apenas o manifesto e a assinatura, por isso execute a suite da conformidade sozinho antes de enviar. O campo de prova em si nunca poderá ser mostrado.

4
Publicar e activar

O Construtor emite GuestLookupProvider.php — a aplicação canónica endurecida, idêntica para cada pacote gerado; guest_lookup_enabled alterne para as configurações do conector. O negócio arma os dois interruptores e o chat IA começa a oferecer a pesquisa quando um visitante pergunta sobre seu tipo de registro.

Regras contratuais

Apenas campos em forma de estado

Pense "o que um mensageiro imprimiria na página de rastreamento público": status, datas, categoria de quarto ou serviço, conta. Nomes, detalhes de contato, endereços de rua, dados de pagamento e notas de texto livre não têm lugar em um bate-papo anônimo — o Construtor e conformidade ambos recusam.

A IA responde SOMENTE do bloco

O provedor gerado termina sua saída com uma instrução para responder apenas a partir dos campos listados e para oferecer um ticket para qualquer outra coisa. Detalhe não na lista de permissões está "não disponível no chat" — por design.

Seguimentos continuar trabalhando

O provedor re-deriva a referência das mensagens recentes do visitante na mesma conversa, então "e quando é o check-out?" funciona sem digitar novamente a referência. A referência e o email de prova correspondentes são lembrados no tópico de bate- papo como CANDIDATOS, assim os acompanhamentos não reavaliam. Eles são candidatos apenas: cada turno ainda re-fetiza o servidor de registro e re-compara a prova antes de lançar um único campo.

Pacotes de autoria manual

Um pacote de mercado pode enviar o seu próprio GuestLookupProvider.php implementing ContextProviderInterface com surfaces(): ['guest']. Siga o contrato do modelo gerado exatamente — buscar por referência, prova-match server-side, uniforme negar, allowlist-only saída — e declarar guest_lookup in capabilities. A conformidade verifica a superfície do hóspede e examina a lista de permissão para PII.

💡
As pesquisas de hóspedes são apenas contexto para leitura do chat IA. Eles nunca executam ações, nunca criam identidades e nunca desbloqueiam o caminho de ação do autoatendimento do cliente acima — esse caminho ainda requer um cliente com sessão verificada em plataforma.
Conectores

Segmentação do público de promoção (promo_audience)

Deixe o Promotion Studio direcionar campanhas por cliente e estado de faturamento LIVE da sua plataforma: "tem uma fatura não remunerada", "ordem pendente", "assinatura cancelada". Qualquer conector (pré-instalado, mercado ou um que você mesmo constrói) se junta implementando dois pequenos métodos. OpsIQ alterações centrais, nenhuma codificação de plataforma: seu conector aparece como uma plataforma na aba Segmentação do estúdio com sua própria gota de fatos, e vários conectores podem ser ativados lado a lado.

Público promocional
Segmentação do público de promoçãoUma identidade verificada passou para um público conectorFlags chamar produzindo fatos que conduzem uma regra de segmentação, com uma nota fechada por falha.Segmentação do público de promoçãoespaço de trabalhoLog-inidentidade verificadaaudienceFlags ()seu conectorFACTOSunpaid_invoices = 2REGULAMENTAÇÃOFacturas não pagas ≥ 1Mostrações de campanhaFalhas fechadas: cliente desconhecido ou qualquer erro → a campanha permanece escondida.1TWO METHODSPúblicoCatálogo + Bandeiras2LIVE STATENão pago, pendente, estatuto3FAIL-SAFENunca aparece a pessoa errada
Seu conector responde aos fatos de faturamento ao vivo para o visitante logado; o estúdio se concentra neles, e falha em fechar para que uma oferta de faturação nunca chegue à pessoa errada.

Como funciona

1
Declare os seus factos

Implemente o públicoCatalog () na sua classe de conectores. Ele retorna uma etiqueta e a lista de chaves que sua plataforma pode responder. Cada tecla aparece no dropdown do estúdio sob seu nome de plataforma.

2
Resposta para um cliente

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
Feito

Activar o conector. A página de Meta do Estúdio de Promoção aumenta uma secção "Cliente & facturação" que lista as suas regras de compilação da plataforma; os administradores constroem regras como "faturas_ não- pagas >= 1"; cada fato também se torna uma variável de personalização como {unpaid_invoices}.

connector. php, o contrato de promoção completa
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'],
    ];
}

Regras contratuais

Anunciar a capacidade

Adicionar 'promo_audience' para o seu conector capabilities() array para que a plataforma e marketplace listá-lo como capaz de audiência (descobrir também funciona a partir da presença do método, mas declarando que é o sinal limpo). connectors/whmcs conector é a implementação completa de referência.

Nome da chave

Caso de serpente minúscula, 2-60 Tipos: número, texto, bool. Chaves não declaradas devolvidas pelo públicoFlags() ainda são utilizáveis em regras, mas declaram tudo o que você suporta para que os administradores possam vê-lo.

A identidade é verificada

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.

Falha fechada · sempre

Em QUALQUER erro (API para baixo, cliente não encontrado, timeout) retorno []. Uma regra cujo fato está faltando faz a campanha NÃO mostrar. Um popup faturamento-alvo nunca deve chegar à pessoa errada; OpsIQ faz isso também no jogo de regras.

Desempenho

AudiênciaFlags () é chamado no máximo uma vez por conector por visualização de página, e SOMENTE quando uma campanha publicada realmente usa as regras de sua plataforma. 1-2 API Chamadas; OpsIQ Memoiza dentro do pedido.

Operadores isentos

Os administradores combinam suas chaves com =, !=, >, >=, <, <=, contém, está definido, está vazio, você só fornece valores.

Tokens de personalização

Cada fato duplica como uma variável na cópia da campanha: {unpaid_invoices}, {client_status}, mais os built-ins {first_name} e {client_email}. Os valores são higienizados antes de renderizar.

Conectores de mercado sem código

Factos automáticos

Declarativo (JSON-somente) conectores de mercado obter promo_audience gratuitamente: se seu conector declara clientes/usuários, faturas, pedidos ou recursos de assinaturas, OpsIQ deriva customer_status, unhaned_invoices, amount_due, pendentes_orders, ativos_assinations e subscription_stacus de suas ações de pesquisa existentes. Nenhum código em tudo.

Catálogo personalizado (settings.json)

Adicionar um objeto de capacidade_audiente · {"label": "Minha Plataforma", "chaves": [{"chave":"open_carts", "label", "Abre carrinhos", "tipo": 'número'}}}, para controlar exatamente quais fatos (e rótulos) aparecem no dropdown do estúdio.

Testando o seu provedor

1
Activar o conector

Conectores > o seu conector > Activar. Depois abra a página de Metas da campanha. A sua plataforma deverá aparecer em "Cliente & facturação (conectores)".

2
Construir uma regra

Adicionar: Sua plataforma · uma chave · >= · 1 e definir "clientes logados somente". Salve e publique.

3
Verificar ambas as direções

Faça login na sua plataforma como um cliente que corresponde à regra (o popup deve mostrar) e como alguém que não (o Popup tem de ficar oculto). Os visitantes logados nunca correspondem às regras de login.

Dispare uma campanha a partir do seu próprio código (acionador personalizado)

Porquê?

Além dos gatilhos incorporados (atraso, rolagem, entrada de saída, inatividade, clique, páginas-visadas, chat / atividade do ticket), você pode disparar uma campanha de qualquer lugar em seu site ou conector front-end, após um passo de checkout bem sucedido, quando um carrinho é abandonado, quando o seu SPA muda rota, etc.

Como

Definir o gatilho da campanha para Personalizado com um nome de evento (por exemplo, checkout_failed), então chame o gancho global de sua página:

seu site / conector 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');
💡
Disparar um evento nunca ignora o alvo ou a frequência. Ele só libera o “quando”. A campanha ainda tem que passar todas as regras (geo, audiência, consentimento, bonés) antes de mostrar.
O guia completo de como usar (designing, blocos, análise, A/B, publicação) vive na Central de Ajuda no aplicativo sob Engajar → Estúdio de Promoção. A capacidade aqui é descoberta automaticamente a partir de qualquer conector ENABLED em conectores/ ou marketplace_connectors/. Não há nada para registrar. Envie os dois métodos, e o estúdio faz o resto.
Conectores

Capacidade do conector de pesquisa (Contrato 2.2)

A survey capacidade permite qualquer plataforma fornecer adaptadores de identidade verificada cliente, fatos do público, variáveis seguras e candidatos ao Survey Studio. É independente de promo_audience e não dá uma propriedade de conectores de pesquisas, respostas, análise ou entrega por email.

💡
Estado de implementação. A criação está completa e utilizável hoje: Contrato Conector 2.2, SurveyConnectorInterface, o painel dedicado do Construtor, gerado SurveyProvider.php, metadados de pacote e isolamento da conformidade de todas as naves. Consumo ainda não está ligado: SurveyConnectorRegistry é implementado e testado, mas nenhum Survey runtime chama ainda, então a saúde do provedor não é revelada na interface de administração e nenhum pacote de conector publicado declara a capacidade. A emissão de Gateway de Identidade de Inquérito assinado, segmentação e integração variável, materialização de CRM outreach e os primeiros mapeamentos de provedores enviados permanecem fases separadas. Construa contra este contrato agora; espere que o tempo de execução comece a consumi-lo em uma versão posterior.

Responsabilidades do prestador

Catálogo de audiências e fatos

Declare fatos canônicos digitados e resolva valores apenas para um assunto de área de trabalho verificado pelo servidor. Fatos típicos incluem order_count, last_order_status, cancelou_order/count; customer_created_at; ativo_ subscription_counte; past_due_invoice_cound; e open_ticket_conde.

Catálogo e valores variáveis

Declare as variáveis cliente, conta, ordem, assinatura e suporte com tipo, sensibilidade e contexto permitido. Cópia de pesquisa requer fallbacks e saída-contexto escapando.

paging de beneficiários

Opcionalmente, enumere candidatos para CRM Outreach com IDs externos estáveis, páginas delimitadas, cursores determinísticos e metadados relacionados ao consentimento. A pesquisa congela o público escolhido antes de qualquer envio.

Identidade

Aceite a identidade apenas do Gateway de Identidade da Pesquisa após assinatura, expiração, finalidade, conexão e verificação de espaço de trabalho. Email, ID, tags ou fatos de faturamento fornecidos pelo navegador nunca são autoritários.

Saúde em tempo de execução

O SurveyConnectorRegistry foi desenhado para relatar provedores compatíveis, bloqueados e indisponíveis sem expor configurações, caminhos, identidades brutas ou mensagens de exceção, e um provedor bloqueado nunca pode ser invocado. A superfície de relatórios ainda não está exposta na interface de administração: hoje um provedor obstruído é simplesmente inerte.

Regras de encerramento por falhas

Chaves não declaradas, tipos errados, valores sobredimensionados, descompassos de assunto, tempo- limite de conectores e identidades desconhecidas são rejeitadas. Uma regra de segmentação que necessita de um fato indisponível não corresponde. As páginas do destinatário são capotadas e auditadas. Valores sensíveis nunca aparecem na antevisão ou logs públicos.

Porta de libertação do construtor

Contract 2.2 ships the capability registry entry, interface, Survey mapping panel, generated SurveyProvider.php, capability version, README/developer reference and conformance fixtures. Commerce, helpdesk, SaaS bridge and local PHP profiles include it; Standard API connectors opt in. The static gate rejects a Survey provider that calls a Promotion namespace, table or capability.

💡
Cópia da Promoção é apenas importação: o Construtor pode traduzir mapeamentos de promoção compatíveis uma vez, salvar uma cópia completa do Survey e registrar a procedência. Excluir ou alterar o mapeamento de Promoção não deve mudar o comportamento da Pesquisa.
Conectores

Resposta capacidade de feedback (Contrato 2.2)

A reply_feedback capacidade espelha as classificações de uma plataforma por resposta própria em OpsIQ Uma estrela que um cliente dá uma resposta pessoal dentro WHMCS's área do cliente aterra sobre a mesma resposta na OpsIQ thread admin, com o mesmo chip, crédito agente, entrada página de feedback e computação de equipe e desempenho como uma classificação dada em um OpsIQ Bilhete portal. Um armazenamento, um chip, um oleoduto; o conector só se traduz.

O caminho de escrita único

Existem exatamente dois caminhos de entrada e uma verdade. OpsIQ tickets do portal escrevem nativamente. Os tickets da plataforma fluem através do conector, e o núcleo pousa cada evento via ReplyFeedback::recordMirrored(): as mesmas colunas, regra apenas de funcionários, uma classificação por resposta semântica últimos ganhos, selo de espaço de trabalho e Voz do cliente indexando o portal write usa. Um conector nunca escreve linhas de feedback em si.

Conformidade (quatro arquivos, em seguida, re-assinar)

1
connector_contract.json

Adicione a entrada capacitys. reply_feedback: version 1.0, the ReplyFeedbackConnectorInterface, methods replyFeadbackCatalog and pullReplyFeEDback, implica inbound_ticket.

2
settings.json

Adicionar resposta_ feedback à lista de capacidades. Isto é o que a descoberta do conector lê.

3
spec.json

Declare resply_feedback. modes (poll e/ou webhook) e escala de classificação da plataforma. Isto é o que a porta de conformidade lê.

4
Classe de tempo de execução

Implemente a interface, list reply_feedback in capacity() e então re-assine o pacote.

Responsabilidades do prestador

Catálogo

Declare modos, escala de classificação própria da plataforma (core normaliza para o nativo 1-5), e quaisquer fichas de reação. O catálogo deve concordar com especificações.json.

Puxar a tradução

pullReplyFeedback retorna eventos canônicos: id de ticket da plataforma, id resposta da plataforma; classificação; reação/comentário opcional; tempo de envio e um event_id estável. Ele lê e traduz. Nunca escreve.

Idempotência

event_id é estável por feedback SATE, então um evento repetido é um no-op e uma classificação alterada substitui (últimos ganhos, como o portal).

Disciplina do cursor

As páginas são delimitadas e determinísticas; um cursor que não avança termina a execução. O histórico de enchimento drena como uma janela rolando, nunca uma tração gigante.

Segurança da sonda

Sem configuração, devolva uma página vazia completa em vez de ser lançada. O corredor de conformidade sonda com argumentos vazios.

Resolução encerrada por falha

O núcleo resolve cada evento para uma resposta local pelo marcador espelho o espelho do ticket já carimba (<slug>:<ticket>:reply:<reply>). Um evento que não pode ser resolvido é abandonado, nunca adivinhado; o feedback só se apega às respostas da equipa; e o crédito do agente vem sempre do autor existente da resposta. A notação escreve nunca muda a autoria. É por isso que a capacidade requer inbound_ticket ou ticket_mirror.

Exemplo trabalhado: WHMCS

WHMCS stores client-area per-reply star ratings in tblticketreplies.rating. A WHMCS conector declara modo de sondagem com um 1-5 escala, navios a ticket_reply_ratings relé comando em seu arquivo bridge, e traduz cada linha em um evento cujos IDs correspondem ao whmcs:<ticket>:reply:<reply> Marca o seu espelho de ticket já carimba. Após atualizar o conector, copie novamente o arquivo bridge para o servidor WHMCS para que o novo comando exista lá.

💡
Contrato de desenvolvedor completo com a interface, formas de eventos, regras de normalização e a lista de verificação de conformidade: doc/contracts/TICKET_REPLY_FEEDBACK_CAPABILITY.md na OpsIQ pacote. Aceitação: taxar uma resposta dentro da plataforma, esperar pela votação por hora, ea mesma resposta em OpsIQ mostra o chip, a página de Feedback lista-o, e um evento repetido não muda nada.
Conectores

Mercado de ligação

O Marketplace permite descobrir, instalar e publicar conectores construídos pela comunidade.

Mercado
Mercado de ligaçãoUma grade pesquisável de cartões de conexão comunitária com categorias, botões de instalação e classificações de estrelas.Mercado de ligaçãoespaço de trabalhoPesquisar conectores...CalendárioAgendamentoInstalar★ 4.8HubSpotCRMInstalar★ 4.6MailchimpE- mailInstalar★ 4.7Livros RápidosContabilidadeInstalar★ 4.5TwilioSMSInstalar★ 4.9NoçãoDocumentosInstalar★ 4.41DISCOVERConectores comunitários2INSTALAÇÃOUm clique3PUBLISHAssinar & enviar o teu
Navegue em conectores comunitários, instale em um clique ou assine e publique seus próprios níveis de mercado, pré-instalados e pesquisáveis.

Encontrar e instalar conectores

1
Navegar

Acesse Conectores > Mercado. Procure por nome, categoria ou plataforma.

2
Revisão

Verifique a descrição, ações suportadas e avaliações.

3
Instalar

Clique em Instalar. O pacote de conectores baixa e instala para marketplace_connectors/.

4
Configurar

Habilite-o em Conectores, digite API credenciais e teste.

Publicar um conector

1
Compilar e testar

Use o Construtor de Conexões. Verifique todas as ações.

2
Pacote

Gerar perfil.json, acções.json, conhecimento.json, e arquivos PHP.

3
Assinar

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
Enviar

Envie através do fluxo de submissão de mercado para revisão.

Dois níveis de conectores

conectores/ — o que realmente funciona

A raiz de descoberta em tempo de execução. Tudo aqui está ao vivo: os conectores que enviam com OpsIQ, qualquer coisa instalada do mercado e tudo o que o Connector Builder publica nesta instalação.

marketplace_connectors/ — onde os pacotes são de autoria

A FONTE de publicação para pacotes de mercado de primeira parte. Não é uma raiz de descoberta: nada aqui está ao vivo até que seja embalado, assinado, semeado no catálogo e instalado, no ponto em que uma cópia pousa em conectores/.

💡
Olhe em ambos os lugares. Um pacote que você criou sob marketplace_ connectors/ não é a cópia que executa — instalando cópias em conectores/, e somente essa cópia é descoberta em tempo de execução.Stripe, BigCommerce, Magento2, PrestaShop, OpenCart, Amazon SES, Postmark e Reenviar são todos pacotes de mercado: instalar um antes de esperar encontrá-lo em Conectores.
Desenvolvimento

API e construtor webhook

A API e Webhook Builder permite que você crie personalizado API endpoints e ouvintes webhook dentro OpsIQ sem escrever PHP em bruto.

API builder
API e construtor webhookUm construtor escolhe um tipo de gatilho (inbound webhook, agenda, evento, manual) que se alimenta em uma ação configurável.Construtor API & webhookespaço de trabalhoGASTOSAparelho de acesso à InternetAgenda (cron)OpsIQ eventoManualAcçãoMapear campos de entrada →criar ticket / notificar / chamar APIGravar o ponto final1TRIGROSWebhook · agenda · evento · manual2NO RAW PHPConstruído na UI3ACÇÃOMapear campos e, em seguida, executar
Construir endpoints sem PHP bruto: escolha um gatilho (inbound webhook, schear, evento ou manual), em seguida, mapeie campos para uma ação.

Gatilhos

Evento

Correr quando algo acontecer OpsIQ, ou quando um sistema externo posta um evento correspondente ao seu webhook URL. Digite o nome do evento, por exemplo ticket.created.

Agendar

Use um dos eventos de intervalo incorporados como o nome do evento: cron. minutely, cron-hourly ou cron, daily. A tela Actions and Triggers tem botões para estes, então você não precisa se lembrar deles.

Frase

Executar quando um administrador pedir a IA para ele em linguagem simples. Adicione a frase que deve corresponder, por exemplo, encontrar o cliente.

Aparelho de acesso à Internet

Um sistema externo envia um HTTP POST para o seu OpsIQ webhook URL Qualquer gatilho que esteja a ouvir os incêndios.

Apenas executá-lo às vezes: condições

Um gatilho de evento pode carregar condições, então ele só é executado quando os dados recebidos coincidem. Sem condições que ele roda toda vez que o evento dispara.

Campo

Um caminho para os dados do evento. Use um ponto para valores aninhados, por exemplo customer. email.

Coincidir com tudo ou com qualquer outro

Escolha se cada regra deve corresponder, ou apenas uma delas.

Testes de texto

igual, não igual, contém, não contém, começa com, é um de, não é um dos. Combinar ignora capitais.

Ensaios numéricos

maior que, pelo menos, menor do que, no máximo. Os números escritos como texto ainda se comparam corretamente.

Testes de presença

está presente, está ausente, está vazio, não está vazio.

Página apenas o engenheiro de plantão para bilhetes urgentes

Cenário:
Event ticket.created, with one rule: priority equals urgent.
O que fazer:

A ação corre para tickets urgentes e é ignorada por tudo o mais. Não precisa de filtragem no seu final.

💡
Se deixar as regras em branco, o gatilho é executado em todos os eventos correspondentes, que são o mesmo comportamento que antes das condições existentes.

Acções

Enviar o Webhook

Envie HTTP POST para uma URL externa com uma carga útil personalizada.

Criar ticket

Crie um ticket de suporte com departamento, assunto e mensagem especificados.

Enviar e- mail

Enviar um e- mail com um modelo personalizado.

Actualizar o registo

Atualizar um cliente, ticket ou registro CRM.

Executar a acção do conector

Execute uma ação registrada de um conector habilitado com suas regras de permissão e confirmação do conector.

Executar OpsIQ Geral API ação

Procure o catálogo Geral API _. Campos, escopos, permissões, confirmação, idempotência e suporte de execução seca vêm do contrato de ação ao vivo; o fluxo de trabalho executa dentro de seu espaço de trabalho salvo e contexto administrador.

Send provider-native API request

Usar um conector Nativo API Ler ou confirmar Nativo API Escreva a ação quando o endpoint do provedor não tem nenhuma ação curadora. As credenciais permanecem dentro do conector e apenas os caminhos relativos do provedor são aceitos.

O construtor Actions & Triggers, /api/v1.php, OpenAPI e Postman usam o mesmo ActionContractRegistry, então uma ação selecionável não pode derivar da documentação em tempo de execução.
Desenvolvimento

Livro de receitas dos gatilhos

Preparado para usar receitas de ação gatilho para automações comuns.

Como funciona
Livro de receitas dos gatilhosUm fluxo de receita: um webhook uptime. down passa por um filtro de produção, depois torce para criar um ticket urgente e notificar Slack.uptime.downMonitorar o webhookse prodfilterCriar um ticket urgenteNotificar o Slack # ops
Livro de receitas dos gatilhos

Criar automaticamente o ticket a partir da monitorização

Cenário:
Monitoring system sends POST when server goes down.
O que fazer:

Trigger: Inbound webhook Condition: payload.status = "down" Action: Create ticket · Dept: Technical, Subject: "Server {{payload.hostname}} down", Priority: Urgent

Slack notification on big orders

Cenário:
Slack message every time a customer places an order over $100.
O que fazer:

Trigger: Event (order.completed) Condition: order.amount > 100 Action: Send webhook to Slack incoming webhook URL with order details

E-mail de digest semanal

Cenário:
Summary email to management every Monday at 9am.
O que fazer:

Trigger: Schedule (Monday 09:00) Action: Send email with last week's stats pulled from the REST API

Ingressos em escala

Cenário:
If a ticket has no reply for 24 hours, assign to team lead.
O que fazer:

Trigger: Schedule (every hour) Condition: ticket.status = "Open" AND ticket.last_reply_age > 86400 Action: Assign to team-lead, add internal note

Desenvolvimento

Construindo sua primeira ação

Este passe cria uma ação simples de conector do zero.

Constrói acções
Construir uma acçãoUm formulário de definição de ação: nome lookup_order, uma solicitação GET para /orders/{id}, um parâmetro de ID digitado e uma passagem 200 teste.Nova açãoespaço de trabalhoNova açãoNomelookup_orderPedidoGET/orders/{id}Parâmetrosid · cadeia de caracteres200 · order found1DEFINENome, método e ponto de avaliação2PARAMSEntradas tipográficas3ENSAIOVivo 200 resultado
Compila uma ação do zero. Nomeie- a, defina o método e o ponto final, declare os parâmetros digitados e teste- a em tempo real 200.

Dois tipos de acção

Antes de começar, decida qual deles você precisa. Ambos estão configurados na mesma tela.

Chamar uma API externa

A ação envia uma solicitação HTTP para sua plataforma. Escolha isto quando OpsIQ precisa alcançar e fazer algo do seu lado.

Executar uma acção de conector

A ação executa algo que um conector instalado já oferece. Escolha isto quando o trabalho já estiver disponível e você só deseja atirá- lo. Você escolhe a ação do conector de uma lista, então não há nada para ligar.

A segunda opção é como você reutiliza tudo que seus conectores já podem fazer sem construir nada disso novamente: leia um tópico de ticket, procure um cliente, importe contatos e assim por diante. Escolha a ação do conector da lista suspensa e você está pronto.
1
Planeje a ação

Exemplo: "product lookup_production". Procure um produto pelo nome, preço de retorno, estoque e descrição.

2
Defina em ações.json

Adicionar a definição da ação:

actions.json — a forma real manifesta
{
  "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" }
      ]
    }
  ]
}
⚠️
Três coisas que fazem uma ação não conseguem registrar- se. action_id é REQUIRED e deve ser 2 para 100 caracteres de letras minúsculas, dígitos e sublinha — uma entrada sem uma é rejeitada em definitivo. O manifesto é um objeto com uma LISTA "ações", não um mapa chaveado pelo nome da ação. E o mapeamento de resposta é "retorno" com caminhos DOTTED (data. id), não JSONPath ($. data,id) — não existe "resposta_mapping", "método", "endpoint" ou "params" em qualquer lugar no registro.
3
Ensaio com ensaio de corrida a seco

Na etapa de revisão do Conector Builder, pressione Dry run. Ele executa a lista completa de verificação de conformidade com seu pacote e, quando você forneceu credenciais, faz um teste real de conexão. Ele não usa dados de amostra.

4
Verificar a utilização de IA

Pergunte ao administrador AI: "Procurar produto Widget Pro." O IA deve encontrar e executar a ação.

⚠️
Adicionando uma ação às ações.jsonNÃO cria uma rota AJAX, então não há nada para regenerar. As ações do conector são sincronizadas emOpsIQquando o conector estiver ativado ou suas configurações estiverem salvas: re-salve o conector e a nova ação aparecer. tools/gen_route_registry.php cobre o despacho AJAX do administrador e não tem nenhum rolamento sobre as ações do conector.
Desenvolvimento

Endpoints de eventos de entrada

Endpoints de entrada aceitam sinal JSON de outro sistema e transformam-no em atividade de contato desduplicada que pode alimentar timelines, pontuação e fluxos de trabalho.

Tela do produto
Endpoints de entradaCada fonte de entrada tem seu próprio URL, secreto, mapeamento e resultado recente da atividade.Endpoints de entradaespaço de trabalhoFONTES5ACCEPTED12.4kREJECTED18CONCEITO AO LIVRO DA ESPAÇO DE TRABALHOPlataforma de facturaçãoeventos de assinaturaSaudávelAplicação do produtoeventos de inscrição e usoSaudávelID do eventoprovider_event_idDesduplicarAssinaturaX...OpsIQ-Assinatura de entradaHMAC1CREATE SOURCEURL and secret2MAP PAYLOADE-mail, evento e ID3VERIFYHMAC então ingerir
Cada fonte de entrada tem seu próprio URL, secreto, mapeamento e resultado recente da atividade.

Criar uma fonte por sistema de envio. OpsIQ gera a URL/token e secreto. Enviar JSON com Content-Type: application/json e assinar o corpo bruto exacto usando HMAC-SHA256:

X-OpsIQ-Inbound-Signature: sha256=<hex hmac>

Map JSON paths for the contact email, event name and optional event ID. The event ID is the preferred deduplication key. Accepted activity enters the contact timeline and can affect lead scoring, segments, lifecycle rules and workflows.

Rejeitar assinaturas inválidas antes de processar os dados de negócios. Rodar um segredo, atualizando ambos os lados dentro de uma janela controlada; não registrar o segredo.

Desenvolvimento

Operações de webhook para saída

A administração de webhook Outbound cria assinaturas assinadas, testes de endpoints e monitora a entrega assíncrona e saúde retentar.

Tela do produto
Anzóis de ligaçãoA página webhook de saída lista os endpoints HTTPS, as assinaturas de eventos, a saúde da entrega e um teste assinado com um clique.Anzóis de ligaçãoespaço de trabalhoENDPOINTS7SUCCESS99.2%RETIRAGEM4CONCEITO AO LIVRO DA ESPAÇO DE TRABALHOEspelho de CRMcontacto.* e acordo.*SaudávelBarramento de suporteticket.* e chat.*SaudávelArmazenagem de dados*Repetir a tentativaEntrega de ensaiosCarga útil da amostra assinadaPronto1SUBSCRIBEHTTPS URL e eventos2AUTHENTICATEAssinatura HMAC3OBSERVEFerrovias de entrega e recargas
A página webhook de saída lista os endpoints HTTPS, as assinaturas de eventos, a saúde da entrega e um teste assinado com um clique.

Administradores completos criam um endpoint HTTPS, escolhem eventos específicos ou o wildcard, armazenam o segredo com segurança e enviam um teste.OpsIQassina a carga útil bruta comHMAC- SHA256:

X-OpsIQ-Signature: sha256=<hex hmac>

Verifique a assinatura antes de serialização ou atuação. A entrega é assíncrona e automaticamente reteste após aproximadamente 1minuto, 5 minutos, 30 minutos,2horas e 12 horas. Use o trilho de entrega recente para inspecionar status, código de resposta e contagem de tentativas.

Seu receptor deve ser idempotente porque qualquer sistema assíncrono pode rediver. Devolva uma resposta 2xx somente após aceitação durável.

Desenvolvimento

Webhooks

Webhooks deixar sistemas externos notificar OpsIQ quando algo acontecer (inbound), e deixar OpsIQ Notificar sistemas externos quando algo acontece internamente (outbound).

Webhooks
Anzóis de ligaçãoA tela de webhooks: uma tabela de endpoints com nome, eventos assinados, pontos de status de entrega recentes e um botão Enviar teste.Anzóis de ligaçãoespaço de trabalhoPontos finais+ Salvar o ponto de avaliaçãoNOMEEVENTOSENTREGASSlack #vendas-alertashttps://hooks.slack.com/…lead. created, vendaEnsaioEspelho de CRMhttps://api.acme.com/hookcontato.*, ticket. createdEnsaioZapierhttps://hooks.zapier.com/…chat.startedEnsaio1ENDPOINTSNome, eventos, URL2SIGNEDHMAC + auto-retirada3SEND TESTVerificar as entregas
A tela real de saída: cada endpoint com seus eventos, saúde recente da entrega, e um clique em Enviar teste, assinado e repetido.

Anzóis de ligação

Subscrição

Vá para Configurações > Webhooks. Adicione um endpoint URL e selecione eventos a receber.

Eventos

ticket. created, ticket. replied, chat. started, chat, message, order. completed, crm. deal. stage_changed,crm. contact. created, etc.

Repetir

Falha nas entregas, tente novamente com o backoff exponencial. Depois 15 falhas consecutivas, o endpoint é desativado automaticamente.

Assinatura

Cada pedido inclui uma assinatura HMAC em X-OpsIQ- Assinatura, verifique sempre.

Proteção contra FRSS

OpsIQ não será enviado para privado/interno IPs (127.x, 10.x, 172.16.x, 192.168.x, 169.254.169.254).

Entrega do Assync

Os Webhooks são entregues através da fila de tarefas, não bloqueando as operações OpsIQ _.

ID de evento estável

Cada evento tem um event_id único que permanece o mesmo em todas as tentativas de desduplicação.

Verificando assinaturas do webhook

PHP · verificar assinatura webhook
<?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, verifique a assinatura do webhook
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 });
});
Como faço para testar webhooks localmente?+

Use o ngrok para expor o seu servidor local. Defina o ponto final do webhook para o seu ngrock URL.

E se o meu ponto final estiver temporariamente para baixo?+

OpsIQ Se o seu endpoint se recuperar dentro da janela de repetição, nenhum evento será perdido.

Desenvolvimento

Chaves de API

API chaves autenticar pedidos para o OpsIQ REST API. Cada chave tem permissões de escopo.

Chaves de API
Chaves de APIA tela de teclas API: um painel de problemas com chips de nível e escopo de acesso, ao lado de uma lista de chaves mascaradas existentes com botões de revogação.Chaves de APIespaço de trabalhoEmitir uma chaveAcessoApenas leituraRestritoÂmbito de aplicaçãocontacts.readtickets.readevents.writeChave de emissãoAs tuas chavesIntegração com o Zapieropq_•••4f2aRevogarAplicativo móvelopq_•••91c7RevogarExportação de análiseopq_•••2db0Revogar1SCOPEDApenas leitura ou restrição2PER-ACTIONEscolha os escopos exatos3REVOCABLERodar a qualquer momento
The real API keys screen: issue a scoped, read-only or restricted key by picking exact scopes, and revoke any key anytime.

Criando uma chave API

1
Go to Settings > API Keys

Navegue para API gerenciamento de chaves.

2
Clique em Criar chave

Dê-lhe um nome descritivo.

3
Seleccionar os escopos

Dê a chave apenas o que precisa. Escopos vêm em ler e escrever pares por área, para que uma integração de relatórios pode ser concedido leituras e nada mais.

Âmbitos disponíveis

Escolha o conjunto mais estreito que faz o trabalho. admin satisfaz todos os escopos abaixo, então use-o apenas quando você realmente precisa de amplo acesso.

crm. read / cr m. write

Contatos, empresas, negócios, atividades, segmentos, divulgação, conversões, ciclo de vida e webhooks CRM.

tickets. read / tickets, write

Listar e ler tickets e suas mensagens; responder, atualizar, abrir e executar operações de fila em massa.

conversations. read / conversations, write

Leia conversas ao vivo e histórico de mensagens; envie mensagens, atribua e altere o status.

kb. read / kb, write

Entradas da base de conhecimentos.

chat. read / chat. write

Modelos de resposta salvos.

connectors.read

Veja quais conectores são instalados, o que eles podem fazer e teste suas credenciais.

automations.read

Veja suas ações, gatilhos e seu histórico de execução.

departments.read

Departamentos disponíveis para encaminhamento.

notifications.read

Notificações para um operador nomeado.

analytics.read

Seções de relatório, CSV exportações e definições de relatório agendado.

site_intelligence. read

Sites monitorados e seus relatórios de SEO.

files.read

Links de download assinados para anexos.

status.write

Componentes da página de status e incidentes.

writing

AI escrevendo ajudantes: rascunho, resumo, tradução, reescrever, compor, analisar.

administrador

Tudo, incluindo um pequeno número de ações sensíveis que não são deliberadamente alcançáveis por qualquer escopo restrito: apagar um contato, alterar configurações de privacidade e ler o log de acesso.

💡
Chamar meta. actions com sua chave para ver exatamente quais ações ele pode executar em sua instalação. Isso é sempre mais confiável do que trabalhar de uma lista.

Níveis de acesso

Tudo

A chave pode chamar qualquer coisa que seus escopos permitem.

Apenas leitura

Cada escrita é recusada, seja qual for o escopo. A escolha mais segura para reportar, painéis e qualquer coisa que nunca deve mudar dados.

Restrito

Você lista as ações exatas que a chave pode chamar. Qualquer outra coisa é recusada, mesmo dentro de um escopo permitido.

4
Copiar a chave

Mostrado uma vez. Inicia com "opq_". Armazene- o de forma segura.

🚫
Nunca partilhar API chaves em código público, lado cliente JavaScript, ou controle de versão. Use variáveis de ambiente.
Desenvolvimento

Conecte seu site

A OpsIQ widget é um JavaScript snippet que você adicionar ao seu site para rastreamento, bate-papo IA, criação de tickets e identificação do cliente.

Como funciona
Conecte seu siteA one-line script tag on the left and, on the right, a web page with the OpsIQ chat bubble appearing in the corner.<!-- paste before </body> --><script src="https://cdn.opsiq.io/w.js" data-site="ws_8a2f" async></script>
Conecte seu site

Instalação básica

Excerto básico de elementos
<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.

Atributos de configuração

data-site-key

Sua chave do site de Sites Conectados.

data-mode

Opcional. "chat" (padrão), "tickets", ou "ambos".

data-position

Opcional. "inferior-direita" (padrão) ou "interior-esquerda".

data-color

Opcional. Código hexadecimal de cor primária.

data-greeting

Opcional. Mensagem de saudação inicial.

data-language

Opcional. Língua UI: "en", "es", "fr", "de", "pt", "ar", etc.

data-identity-token

Opcional. Token de identidade assinada gerado pelo servidor.

Apoio SPA

Monitoramento manual de rota SPA
// 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,
}]);

Regras do PSC

Regras de CSP para o elemento
script-src 'self' https://your-opsiq-domain.com;
connect-src 'self' https://your-opsiq-domain.com;
frame-src https://your-opsiq-domain.com;
O widget retarda meu site?+

Não. Sob 15 KB gzipped, carrega assync após conteúdo de página.

Posso personalizar a aparência?+

Use a cor dos dados para a cor primária. Suporte de contato para opções de substituição CSS.

Desenvolvimento

Widget instalar receitas

Guias de instalação específicos da plataforma.

Como funciona
Widget instalar receitasPlataforma de instalação de cartões para WordPress, Shopify e Google Tag Manager, cada dizendo onde adicionar o widget.WPWordPressInstalar o plugin, digitechave do seu site, salvar.LojaShopifyColar o trecho emtheme. liquid antes de /body.GTMGerenciador de etiquetasMarca personalizada HTML _, todas as páginas.
Instalar receitas

WordPress

Cenário:
Add to all pages of a WordPress site.
O que fazer:

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

Cenário:
Add to your Shopify store.
O que fazer:

Online Store > Themes > Edit Code > Layout > theme.liquid. Paste before </body>. Save.

Reagir / Next. js

Cenário:
Add to a React or Next.js app.
O que fazer:

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

Cenário:
Add to your WHMCS client area.
O que fazer:

Configuração > Configurações gerais > Outros > Conteúdo global do rodapé. Colar o trecho. Ou editar seu modelo de rodapé. tpl.

Google Tag Manager

Cenário:
Add via GTM.
O que fazer:

Criar etiqueta personalizada HTML, colar trecho. Trigger: Todas as páginas. Publique.

Desenvolvimento

Admin widget em sua infraestrutura (um contrato, qualquer plataforma)

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.

Passo 1 — a linha de incorporação

De Remote Sites → your site → Codes, copie a linha do carregador e adicione-a às páginas do seu painel de administração (footer include, layout template, ou uma caixa de administrador personalizado apenas para o JS):

A incorporação de uma linha
<script async src="https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=SITE_KEY&identity_token=TOKEN_FROM_STEP_2"></script>

Passo2— indicarOpsIQque está logado (assinado pelo servidor)

Apenas a sua aplicação sabe qual administrador está conectado — isso não é uma falha, é o modelo de segurança. Seu servidor gera um token assinado de curta duração da sua própria sessão, exatamente como o token identidade do visitante, assinado com o mesmo site webhook segredo:

PHP · assina a identidade de administrador da sua sessão
<?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.
Acesso por administração, automaticamente

Cada administrador que faz login na sua plataforma é compatível individualmente:OpsIQo portão de acesso por administração resolve o nome de utilizador do token + e- mail contra umOpsIQagente (página de equipe; use a lista "e-mails de correspondência" do agente quando os e-mails da plataforma diferem) e aplique as permissões de espaço de trabalho, departamento e caixa de entrada do agente.OpsIQ; sem alterações de incorporação.

Os papéis andam junto

Qualquer string de papel que sua plataforma enviar é mostrada noOpsIQlado para atribuição; autorização sempre vem doOpsIQregistro de agente, nunca do papel afirmado.

Por que não ler o nosso cookie de login?

Os navegadores nunca enviam seu cookie de administrador para outra origem — nenhum fornecedor pode "apenas detectar" seu domínio cruzado de login. Cada produto sério resolve da mesma forma: seu servidor garante, assinado. Esse é o contrato completo.

Modo simples (lojas de administração única)

Pular passo 2 e usar o token estático de Sites Remotos → Códigos na linha do carregador (token=... em vez de identity_token =...). O widget funciona com a identidade compartilhada da área de trabalho; o portão por administração pode permanecer forçado mais tarde quando a equipe crescer.

A authenticated bandeira — colocá-la ao nível TOP

Esta bandeira é a afirmação do seu servidor de que um humano está realmente logado, e OpsIQ recusa qualquer token sem ele. "authenticated" => true beside site_key/iat/exp, NÃO só dentro da admin object. Current OpsIQ accepts it in either position, but older releases only read the top level — and the failure is deceptive: conversation list, history and unread all authenticate fine while every chat turn answers "O login do administrador é necessário", que parece um erro de sessão e não é. Se você ver exatamente essa divisão, verifique esta bandeira primeiro.

Higiene dos dispositivos

Assinar apenas no servidor, nunca no navegadorJavaScript. Mantenha exp curto (minutos a horas);OpsIQRejeita tokens expirados e futuros, e a assinatura liga o token à chave do seu site.

Implementação de referência

AWHMCSo módulo faz isso automaticamente a partir doWHMCSsessão de administração; o arquivo de ponte do Botble Hotel faz isso a partir da sessão Laravel (op=admin_identity). Ambos são apenas este contrato no dialeto de sua plataforma — cópia que lê mais perto de sua pilha.

Fiação de página zero (probe declarada pelo conector)

Quando o conector OpsIQ armazena seu endpoint de identidade em sua admin_identity_probe_url configuração, a linha de carregador PLAIN é tudo o que suas páginas de administração precisam: o widget descobre a sonda do conector, chama-o com sua chave do site + token widget, e autentica cada administrador automaticamente. data-identity-endpoint atributo ou window.OpsIQAdminIdentityEndpoint.

Implementação do objetivo de identidade em Laravel (notas duras)

Se sua plataforma for Laravel (Botble, Bagisto, aplicativos personalizados) e seu endpoint for um arquivo independente que inicia o framework para ler o administrador logado, três específicos pouparão horas – cada um produziu uma falha de produção real antes de ser aprendido:

Amarre o pedido ANTES do bootstrap

Os seus prestadores de serviços podem resolver request do recipiente durante a inicialização. O próprio ciclo de vida de Laravel liga o pedido capturado primeira coisa dentro Kernel::handle() — espelhar essa ordem: $app->instance('request', Request::capture()) ANTES $kernel->bootstrap()Ou vais ter "A classe de alvo [pedido] não existe".

O prefixo do cookie de sessão é HMAC-keyed

Valores modernos de cookies Laravel com um HMAC calculado COM A KEY APP (CookieValuePrefix) — uma planície sha1(name."v2") Nunca pode combiná-lo. CookieValuePrefix::validate($name, $decrypted, $keys), com um recuo estrutural (40 hex chars + | na posição40). Tell: um ID de sessão maior que40caracteres (81= prefixo ainda anexado) e uma sessão que carrega apenas com _token - Não.

Onde o login vive

O carimbo de autorização é login_<guard>_<sha1(guard class)> — para o protector Web por omissão: 'login_web_' . sha1(Illuminate\Auth\SessionGuard::class)Analisar qualquer login_* chave numérica como um retrocesso para guardas personalizados.

Depurar como a ponte faz

Navio a debug=1 modo que nomeia o STEP e a exceção falhando — um catch-all cego tornou uma implantação ao vivo indiagnosable. A ponte Botble (de v1.0.7) é a referência: marcadores de passo no kernel/bind/bootstrap/decrypt/session/auth/db.

Laravel · endpoint de identidade completo (copiar, definir as duas constantes, feito)
<?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]);
}

O mesmo ponto de avaliação em outras pilhas

Apenas as mudanças de linha "quem está logado?" — o bloco de assinatura é idêntico em toda parte. Assine no servidor, nunca em JavaScript.

WordPress · WHMCS· Symfony · PHP simples — troque a pesquisa, mantenha o signater
<?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]);

Quando não funciona — diagnosticar nesta ordem

O elemento nunca aparece, diz a consola "é necessário um token de identidade do administrador assinado"

O seu ponto final voltou nã identity_token. Abra o endpoint URL diretamente no navegador de administração logado com &debug=1 — verá o passo em falha. Em Laravel, este é quase sempre o item de ligação a pedidos ou prefixos de cookies acima.

História e conversas funcionam, mas cada turno de conversa diz "O login do administrador é necessário"

A divisão clássica. Falta-lhe o símbolo TOP- LEVEL authenticated flag — o endpoint do próprio widget aceita o token, o verificador compartilhado por trás do fluxo de chat o recusa. Adicionar "authenticated" => true beside exp.

"administrativo não fornecido em 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.

Tudo 403s do navegador, mas funciona com o curl

Um pré- voo do CORS está a rejeitar um dos cabeçalhos da sua solicitação. O seu ponto final deve responder OPTIONS e ecoar a origem solicitante, ou simplesmente evitar cabeçalhos personalizados — o widget só precisa do cookie.

Trabalhou ontem, falhou hoje

Verificar exp: tokens são de curta duração pelo design. O widget re-sondas automaticamente, então isso geralmente significa que o endpoint parou de ver a sessão — uma rotação da tecla do aplicativo, uma mudança no driver de sessão ou uma mudança de domínio de cookies.

💡
O widget de administração renderiza oculto até que a identidade se resolva, e cada chamada de chat/inbox/data é forçada ao lado do servidor contra o correspondenteOpsIQagente, independentemente de qualquer coisa que a página assevere. O token desbloqueia a UI; permissões sempre vêm deOpsIQ.
Desenvolvimento

Identidade do visitante

Identity connects anonymous visitors to known customers. When identified, OpsIQ links browsing history, chats, and tickets to the customer profile.

Como funciona
Identidade do visitanteUm fluxo: um usuário faz login em seu site, você emite um token de identidade assinado e OpsIQ unifica suas sessões, chats e tickets em um perfil.O usuário faz loginno seu siteInscrição assinadaidentidade_token (HMAC)Um perfilsessions+ chats de vídeo+ bilhetes
Identidade do visitante

Dois níveis de identidade, e quando cada um é suficiente

Nível 1 — uma dica sem assinatura

Você diz ao widget quem o visitante é com um objeto JavaScript. Ele preenche o e-mail e o ID do cliente no registro de visitantes, então seu painel mostra tráfego e sessões cadastradas se juntam. É um HINT: qualquer pessoa pode editá-lo em seu navegador, então OpsIQ nunca libera dados da conta sobre a força dele.

Nível 2 — um símbolo de identidade assinado

O seu servidor assina um token de curta duração com o Webhook secret do site. OpsIQ verifica a assinatura e só então trata a pessoa como um cliente comprovado. Este é o nível que desbloqueia as respostas da conta no chat do cliente e nas pesquisas de conectores. Use-o para qualquer coisa que um estranho não possa ver.

⚠️
Nível1é uma conveniência de exibição.2é autenticação. Se uma pergunta só pode ser respondida para o titular da conta real, você precisa de Nível2.

Nível 1 — a dica sem assinatura

Defina o objeto ANTES do script widget, ou ligue para identifier() mais tarde, uma vez que seu aplicativo saiba quem está conectado. Ambos os formulários são lidos; use o que se adequa à sua página.

JavaScript · the two supported forms
<!-- 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.

Nível 2 — o símbolo de identidade assinado pelo servidor

Exatamente o mesmo contrato que o widget de administração, com um customer assunto em vez de um admin um. Assine-o no seu servidor e passe-o para o widget. Dois detalhes decidem se verifica, e ambos são fáceis de obter errado:

AHMACcobre a cadeia BASE64URL, não aJSON

Assinar $payload64, não $payload. Assinar o JSON bruto produz um token que parece certo e é rejeitado sempre com uma assinatura descompasso.

base64url, desadomado

Traduzir +/ para -_ e desfiar o = padding. Plain base64 happens to survive today; base64url is the contract and is what every OpsIQ verifier and reference connector emits.

autenticado vai no nível TOP

Ao lado site_key, iat e exp. É sua afirmação de que um humano real está logado, e OpsIQ recusa o token sem ele.

customer. id é obrigatório

Um token que carrega apenas um e- mail verifica como uma assinatura e é então silenciosamente deixado cair. Envie sempre um ID.

Manter a exp curta

Minutos a horas. O símbolo é uma afirmação de sessão, não uma credencial para armazenar.

PHP - assine um token de identidade do cliente (este código exato verifica)
<?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>';
🚫
Assinar apenas no servidor. Um token cunhado no navegador JavaScript significa enviar o segredo do site para cada visitante, que dá a qualquer pessoa a capacidade de se passar por qualquer cliente.

O mesmo contrato, três superfícies

Conversa de cliente em seu site

assunto do cliente, passado como identity_token para widget. php. Coberto acima.

Administre o chat dentro da sua infra- estrutura

assunto de administrador, passado para opsiq/embed/admin_widget. php. Mesmo singer, chave de assunto diferente. Veja " Widget de administração em sua infra-estrutura".

Suporte aos links profundos do portal

Uma variante mais rigorosa: as mesmas reivindicações mais jti e single_use: true, and a120-segunda vida, porque o símbolo viaja em umURLe deve ser gastável uma vez. Não role manualmente. Configurações, o Portal de Suporte tem um trecho pronto para seu idioma, e a plataforma menta-o para você quando sua área de conta é executada neste servidor.

E se um visitante limpar os cookies?+

Eles se tornam anônimos até serem identificados novamente. OpsIQ liga o novo registro anônimo ao perfil do cliente no momento em que uma dica ou um token chega.

Por que meu token verifica para o registro de visitantes, mas não para perguntas de conta?+

Esse é o Nível1/ Nível2split. Uma dica não assinada preenche o log do visitante e nada mais. As respostas da conta precisam de uma assinatura verificada.

Desenvolvimento

Plug-ins e SDKs

OpsIQ fornece SDK pacotes e plugins para plataformas comuns.

Como funciona
Plug-ins e SDKsQuatro pacotes: PHP SDK, Node.js SDK, WordPress'plugins' e WHMCS módulo, cada um com seu comando de instalação.PHPPHP SDK_o compositor necessita opsiq/sdkJSNode.jsSDKnpm i @opsiq/sdkWPPlug- in WordPressInstalar e conectar com um cliqueWHWHMCS moduleAddon para cobrança + relé de bilhetes
Plugins e SDKs
PHP SDK_

Pacote de composição: geração de token identidade, ação API helpers, verificação da assinatura webhook.

JavaScript SDK

Lado do navegador: rastreamento, identidade, eventos personalizados, controle de chat.

Plug- in WordPress

Injeção de widget, identidade das sessões de usuário WP, WooCommerce sincronia.

WHMCS module

Integração completa: widget, relé de ticket, identidade, IA administrador.

Shopify theme extension

App embed com identidade automática do cliente.

Início rápido SDK PHP

Exemplo SDK PHP
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);
Desenvolvimento

Pesquisa API, eventos e automação sem conectores

Survey Studio é projetado para usar o mesmo tipo Geral API, executor interno, barramento de eventos e operações webhook como o resto de OpsIQ. Isto permite que os desenvolvedores integrem fim a fim sem construir um conector empacotado.

⚠️
Estado de implementação: o catálogo ao vivo atualmente expõe apenas platform.get.survey.config e platform.save.survey.config. A surveys.* e feedback.* as famílias abaixo são o contrato-alvo aprovado e devem retornar unknown_action até ao registo.

Famílias de acção-alvo

Tipos, modelos e lançamento rápido

surveys.types.*, surveys.templates.* e surveys.quick_launch.* listar, visualizar, instanciar e validar os arranques completos.

Inquéritos e versões

surveys.create|get|list|update|archive|duplicate mais versão imutável, validação e publicar ações.

Implantações e objectivos

surveys.deployments.*, surveys.links.*, surveys.audiences.*, surveys.triggers.* e surveys.variables.*.

Divulgação e respostas

surveys.invitations.*, surveys.campaigns.*, surveys.recipients.*, surveys.responses.*, exportações, redação e análise.

Webhooks, importação e feedback

surveys.webhooks.*, surveys.imports.*, feedback.items.*, feedback.analytics.*, feedback.sources.* e feedback.analysis.*.

Fluxo livre de conectores

1
Criar e publicar através de Geral API

Use pesquisas digitadas.* ações com uma chave de espaço de trabalho-pined. Escreve declara permissão, risco, confirmação, indemnidade e comportamento de corrida seca.

2
Receba o seu evento de negócios

Envie um evento assinado para um webhook inbound, por exemplo, cancelamento de pedido ou completada etapa de integração. Replay protection deduplica o ID do evento.

3
Mapeá- lo em Ações e Ativadores

Choose an OpsIQ General API action such as issuing a Survey invitation or preparing a campaign, then map fields from the verified trigger payload.

4
Subscrever os eventos da pesquisa

Entregue o subconjunto de ciclo de vida documentado para o seu endpoint com assinatura, filtro, repetição, log e replay autorizado.

Alvo de evento canônico

O catálogo compartilhado irá cobrir Pesquisa/deployment publicar estado, audiência e desencadear decisões, convites, render/start/partial/resume/complete/abandon, resposta redaction, estado de campanha e falhas de entrega. Foco em alto volume, rolagem e tempo de perguntas permanecem no armazenamento do Survey Analytics a menos que explicitamente documentado para fan-out.

Um conector é opcional. Ele adiciona descoberta de plataforma reutilizável, identidade verificada, fatos, variáveis e enumeração do destinatário. Geral API plus Actions & Triggers/webhooks continua sendo o caminho completo para desenvolvedores que não precisam de um conector empacotado.
Desenvolvimento

RESTAPI

A OpsIQ REST API permite- lhe aceder programáticamente a todas as funcionalidades da plataforma.

Como funciona
RESTAPIUm terminal mostrando um POST para o OpsIQ API com uma chave Bearer, listando tickets abertos e o paged JSON resposta.$ curl -X POST https://your-domain.com/api/v1.php \-H "Authorization: Bearer opq_..."200 OK{ "data": [{ "id": 4192, "ticket_number": "T-4192","subject": "Card declined", "status": "open" },... more tickets ...], "page": 1, "per_page": 50, "has_more": true }
RESTAPI

Formato de pedido

Enviar a chave como Authorization: Bearer opq_... ou X-OpsIQ-Key: opq_.... Use um cabeçalho de autenticação, não ambos.

Formato API pedido
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"
}

Acções comuns

The API is action-based: send an action name in the body. Every registered administrator JSON operation has a stable named action. POST {"action":"meta.actions"} (sem chave necessária) para a lista autoritária, por instalação, contrato de solicitação, metadados de risco e escopo. platform.routes.* A ponte permanece apenas para as integrações mais antigas.

crm.contacts.list

Listar os contactos CRM (scope crm. read). Parâmetros: q, estado, origem, etiqueta, pontuação do lead, limite.

crm.contacts.upsert

Resolver ou criar um contacto (scope crm. write). Parâmetros: e- mail mais campos, etiquetas, notas.

crm.deals.list

Listar as ofertas de CRM (scope crm. read). Params: status, stage_id, company_id e o proprietário_ admin_id.

crm.activities.record

Gravar um ciclo de vida/atividade comercial para um contato (scope crm. write). Params: email ou contact_id, evento, valor, moeda.

crm.conversions.record

Gravar uma conversão (scope crm. write). Parâmetros: contact_id ou email, conversion_type, value, money.

crm.events.list

Pesquisa o fluxo de eventos CRM (scope crm. read). Parâmetros: limite.

tickets.list

Listar os tickets (cope tickets. read). Params: page, per_ page, sort, order, status, priority, department_id, assigned_admin_id. client_email, search.

tickets.get

Um ticket e suas mensagens (cope tickets. read). Params: ticket_id ou ticket_number, include_mensages, messages_limit.

tickets.reply

Publicar uma resposta a um ticket (bilhetes. write). Params: ticket_id ou ticket_number, body, autor_type, autor/nome, interna.

tickets.update

Atualizar um ticket (cope tickets. write). Params: ticket_id ou ticket_number, status, prioridade, assunto, department_id, atributed_admin_id.

tickets.open

Abra um ticket de suporte (cope tickets. write). Params: customer_email, customer/nome, assunto, corpo, prioridade.

tickets.bulk

Executar uma operação de fila em massa (cope tickets. write). Params: operation, ids.

conversations.list

Listar conversas ao vivo (conversas de escopo. leia). Params: page, per_page, status, atributed_admin_id, client_email, search.

conversations.get

Uma conversa e suas mensagens (conversas de escopo. leia). Params: conversation_id ou thread_key, include_messages.

conversations.messages

Histórico de mensagens paged (conversas do escopo. read). Params: conversation_id, page, per_page, include_internal.

conversations.send

Enviar uma mensagem para uma conversação (conversas. escritas). Params: conversation_id, message, remeter_type, internal.

conversations.update

Atribuir, re-status ou re-titular uma conversação (conversas de escopo. write). Params: conversation_id, status, atributed_admin_id.

conectores. list / . get / , test

Veja quais conectores são instalados, o que cada um pode fazer e se suas credenciais funcionam (conectores de escopo. leia).

automations.actions.list

As ações que seu construtor de Ações executará (scope automations. read).

automations.triggers.list

O que vai disparar e em quais condições (scope automations. read).

automations.runs.list

Histórico de execução para depuração de uma integração (scope automations. read). Params: status, action_key.

departments.list

Departamentos que você pode encaminhar um bilhete para (departamentos de telescópio. leia).

notifications.list

Notificações para um operador (notificações de escopo. read). Params: admin_id (obrigatório), unread_ only.

analytics.export

Uma seção de relatório como CSV (cope analytics. read). Params: section, preset, from, to. Call analyticals. sections. list for valid values.

site_intelligence. sites. list / . reports. list

Sites monitorados e seus relatórios de SEO (scope site_intelligence. read).

files.get

Um link de download assinado para um anexo (arquivos do escopo. leia). Params: referencia, ttl.

security.check

Perguntar se um IP ou o e- mail está bloqueado ou suspeito aqui (scope security.read).IP firewall, o bloco de spam do ticket e o veredicto da IA de segurança em cache. ip, e-mail.

security.report

Relate abuso do seu sistema observado (scope security. write). Gravado como um evento de segurança, classificado pela IA de Segurança imediatamente, e os administradores são alertados sobre veredictos de alto risco. Params: ip, email, t ip o, razão, fonte.

security. blocklist. add / . list

Gerencie as regras de spam que o pipeline do ticket impõe (security.write / security, leia). O mesmo armazenamento da página Tickets "Block senderer" controle.ip), valor, razão, expira_horas.

💡
meta. actions é sempre autoritária. Retorna todas as ações disponíveis em sua instalação com o escopo que cada uma precisa, então você nunca tem que adivinhar ou codificar esta lista.

Chamar, filtrar e ordenar

Cada ação de lista usa os mesmos parâmetros, então você aprende uma vez.

página / por_page

Número da página a começar em 1, e tamanho da página. 50, máximo 200. limite e offset também são aceitos se você preferir.

ordenar / encomendar

Campo para ordenar, e asc ou desc (descop padrão). Cada ação aceita um conjunto fixo de campos de ordenação; qualquer outra coisa é ignorada em vez de erro.

filters

Enviar filtros como um objeto, ou passar um filtro como um parâmetro de nível superior. Os filtros desconhecidos são ignorados.

O que volta

itens, página, per_page, contagem, total e has_more. Continue solicitando páginas até has _more é false.

Pedido de lista Paged, filtrado, ordenado
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
}

Erros

Cada falha retorna a mesma forma, com um estável code você pode ramificar-se. Não corresponde ao legível para humanos error texto, que pode ser reformulado.

Resposta de erro
{
  "success": false,
  "code": "missing_scope",
  "error": "API key missing required scope. Needed one of: tickets.read, admin",
  "request_id": "req_8f2c1a9d4b7e"
}
falta_ api_ key / inválido_ apí_ ke

Nenhuma chave foi enviada, ou a chave está errada ou expirada. HTTP 401_.

missing_scope

A chave é válida mas não tem o escopo que esta ação precisa. HTTP 403_.

ler_only_key / action_restrited

A chave é somente leitura, ou esta ação não está em sua lista de permissões. HTTP 403_.

unknown_action

Não existe tal ação. Chamar meta. actions para a lista atual. HTTP 400.

Falta_parâmetro / parâmetro inválido

Um parâmetro requerido está ausente, ou um valor não é aceito. HTTP 400_.

not_found

O registro não existe, ou não está na área de trabalho que esta chave pode ver. HTTP 404.

rate_limited

O limite de hora para esta chave é usado. HTTP 429_.

server_error

Algo falhou do nosso lado. O request_id identifica a tentativa se você precisar denunciá-lo. HTTP 500.

Retiradas seguras

Se um tempo de escrita para fora você não pode dizer se ele pousou. idempotency_key e uma repetição da mesma chamada retorna o resultado original em vez de fazer o trabalho duas vezes.

Escrita indemponente
{
  "action": "tickets.reply",
  "ticket_id": 4192,
  "body": "Thanks, that is now fixed.",
  "idempotency_key": "your-unique-id-for-this-attempt"
}
Quanto tempo dura?

Uma chave é lembrada para 24 horas contra a mesma acção e API Chave.

O que você tem de volta

A resposta original, mais idempotent_replay: true para que você possa dizer que foi uma repetição.

Falhas permanecem retrítulas

Só as gravações bem- sucedidas são lembradas. Se uma chamada falhar, envia- a de novo com a mesma tecla roda- a novamente, que é o que você deseja.

Leituras

As leituras ignoram a chave. Repetir uma leitura é inofensivo.

Teste sem mudar nada

Adicionar dry_run: true para qualquer escrita. Suas chaves, escopos e parâmetros são verificados exatamente como normal, então a chamada pára antes de tudo ser criado ou alterado.

Execução a seco: verificar credenciais e carga útil com segurança
{
  "action": "tickets.update",
  "ticket_id": 4192,
  "status": "closed",
  "dry_run": true
}

{
  "success": true,
  "dry_run": true,
  "would_execute": true,
  "message": "Authorised and validated. No write was performed because dry_run was set."
}
Use o dry_run enquanto estiver a construir. É a forma mais rápida de confirmar que uma chave tem os escopos certos e a sua carga útil é moldada corretamente, sem criar dados de teste que você terá de limpar.

Limites de taxa

Limite por chave

Um limite horário configurável por API chave (por omissão 1000 requisições por hora). Defina- a por chave em Definições,API Chaves.

Quando ultrapassado

HTTP 429 with code rate_limited, plus a Retry-After header telling you how many seconds to wait. The limit resets at the top of the next clock hour.

Sabendo onde você está

Cada resposta carrega o X- RateLimit-Limit, X-RateLimite-Remaning e X-RateLimit -Reset (um timestamp Unix). Assista Restando e desacelerar antes de você sair em vez de esperar para ser recusado.

Contando 429 de 401

A 429 significa esperar e tentar novamente. A 401 significa que a chave em si está errada ou expirou, então tentar novamente não ajudará até você corrigir a chave.

Guarda de força bruta pré-auth

Repeated failed-auth attempts from one IP are throttled separately. Valid keys never trip this.

Boas práticas

Recuar quando o restante fica baixo, e honrar Retry-After após um 429 em vez de tentar imediatamente.

Versões e estabilidade

Versão actual

v1. Cada resposta carrega X-OpsIQ-API-Versão e X...OpsIQ-API- Status para confirmares o que estás a falar.

Como você será avisado

Se uma versão for aposentada, as respostas ganham cabeçalhos padrão de Deprecação e Sunset, e relatórios de meta. actions desactualizados e sunset_at. Verifique aqueles em seu monitoramento e você nunca ficará surpreso.

O que não vai mudar

Nomes de ação existentes, seus parâmetros e seus códigos de erro. Novas ações e novos campos opcionais podem ser adicionados a qualquer momento, então ignore os campos que você não reconhece ao invés de falhar neles.

Uma integração completa, do início ao fim

Este é o ciclo inteiro: encontrar trabalho, lê-lo, agir sobre ele, e confirmar o que você fez.

Fluxo de trabalho completo do ticket sobre o 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}
💡
Tudo acima funciona da mesma forma para conversas: conversations. list, conversations,get, conversation. send e conversations/update seguem o padrão idêntico, parâmetros e forma de resposta.

Cada acção, com o âmbito de que necessita

Esta lista é gerada a partir do catálogo em execução, de modo que sempre corresponde à versão em que você está. meta.actions retorna a mesma informação que 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

bate-papo (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.

clientes (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

plataforma (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

segurança (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.

inquéritos (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

bilhetes (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.

OpenAPI e o Carteiro estão disponíveis?+

Sim. O OpenAPI gerado 3.0 O documento está em /api/v1/openapi.php, a coleção gerada do Postman está em /api/v1/postman.php, e os docs de desenvolvedor legíveis por humanos estão em /api/docs/.

Como posso trabalhar com mais de um espaço de trabalho?+

Envie a chave do site_ key no corpo de solicitação para escolher uma área de trabalho. Uma chave emitida para uma área fica presa a ela; uma chave com contexto de administrador pode selecionar qualquer espaço de trabalho que seja permitido ver, e é recusada para qualquer um que não seja.

Quais ações podem uma chave de chamada somente leitura?+

Qualquer ação marcada como uma leitura. Defina o modo de permissões na chave para ler_ somente e cada gravação é recusada com read_ only_key, então uma integração de relatórios não pode mudar nada mesmo por engano.

Por que eu não fui encontrado por algo que eu possa ver no administrador?+

A chave é dimensionada para um espaço de trabalho. Os registros em outros espaços de trabalho retornam não_encontrados ao invés de um erro de permissão, então o API nunca confirma se algo existe em outro lugar.

Desenvolvimento

Segurança API

Um contrato de segurança para cada conector e integração: perguntar OpsIQ o que sabe sobre uma IP ou remetente, e alimentar de volta o abuso que seu próprio sistema vê.

OpsIQ já se defende: o IP firewall bloqueia atacantes, o pipeline de ticket filtra spam e a IA de Segurança classifica infratores e propõe regras de bloqueio. API abre essa inteligência para seus outros sistemas. Uma plataforma de faturamento, um portal cliente ou um aplicativo personalizado pode verificar um visitante antes de confiar nele, e relatar o que ele observou para que toda a instalação aprenda de cada superfície.

O que você pode fazer

Verificar antes de confiar

security. check respostas com o estado do firewall, qualquer regra de spam correspondente ao remetente e o veredicto de IA em cache para o IP_. Uma chamada, uma opinião consolidada.

Reporte o que viu.

security.report registra a observação como um evento de segurança, tem o AI de Segurança classificar o IP e alerta os administradores quando o veredicto voltar de alto risco. OpsIQ vê directamente.

Compartilhar regras de spam

security. blocklist. add e securities. bblocklist. list. lista ler e escrever as mesmas regras de spam que a página Tickets usa, então um remetente bloqueado em um sistema é bloqueado em todos os lugares.

Comunicar abuso de um conector
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"
}

Âmbitos de aplicação e segurança

security.read

Necessário para segurança. check e security. blocklist. list. Seguro para dar uma integração de relatórios.

security.write

Necessário para security. report e securities. blocklist. add. Dê-o apenas aos sistemas que você deseja regras de alimentação e relatórios.

Nada é silenciosamente destruído.

Um remetente blocklist ainda pousa na vista Spam onde o ticket pode ser lido e restaurado.

A plataforma protege-se

O próprio servidor IP endereços nunca podem ser bloqueados, blocklisted ou reportados através deste API, então uma integração mal configurada não pode derrubar a plataforma.

💡
Minta uma chave em Integrações, então API Chaves, e dê-lhe apenas os escopos de segurança que precisa. O contrato de solicitação completo para cada ação está em meta. actions e no documento OpenAPI.
Os meus conectores existentes usam isso automaticamente?+

A sincronização de saída já é automática: quando você bloqueia um IP, plataformas conectadas são informadas através da sincronização de segurança do conector. API Aponte o seu conector ou código personalizado para estas quatro ações com uma chave carregando os escopos de segurança.

Onde vivem as regras de spam?+

Uma loja. A página Tickets Bloqueie o controle do remetente, a IA de spam em Configurações e este API todos funcionam contra a mesma lista de bloqueios, então há exatamente um lugar para procurar.

Desenvolvimento

Eventos API

Envie eventos personalizados do seu servidor ou site para OpsIQ para análise, experimentos, gatilhos CRM e condições webhook.

Como funciona
Eventos APIUma chamada track() enviando um evento personalizado demo_booked para OpsIQ, que alimenta metas de conversão, segmentos e gatilhos.OpsIQ.track ("demo_booked", {valor: 0, plano: "pro"});Objectivos de conversãoSegmentosAtivar & anzóisNavegador (OpsIQ.track) ou POST do lado do servidor /v1/events
Eventos API

Eventos do lado do navegador

Monitoramento de eventos do navegador
window.OpsIQ = window.OpsIQ || [];
window.OpsIQ.push(["track", "button_clicked", {
  button: "signup",
  page: "/pricing",
  variant: "green"
}]);

Eventos do lado do servidor

Servidor-side, gravar atividades e conversões contra um contato através da ação API. Use crm.activities.record para o ciclo de vida/actividade empresarial e crm.conversions.record para conversões. Não existe events.send ação; o receptor de evento CRM inbound vive em /v1/inbound.php?t=<token> para sistemas de terceiros que empurram eventos.

Atividade do lado do servidor (ação 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"
}

Convenção de nomeação

Notação do ponto

"ordem. completada" não "ordes concluídas".

Passado

"botton. clicked" não "boton. clock".

Seja específico

"pricing. plan_seleted" não "user_action".

Desenvolvimento

Como os dados fluim através de OpsIQ

Compreender o fluxo de dados ajuda você a depurar integrações e otimizar o desempenho.

Como funciona
Como os dados fluemOs dados fluim do widget e do farol para o núcleo OpsIQ (CDP, grafo de identidade, cérebro de IA, análise, CRM) em seguida, através de webhooks e o REST API.Widget& farolOpsIQ coreCDP · gráfico de identidadeCérebro de IAAnálise · CRMWebhooks para foraRESTAPI
Fluxo de dados

Fluxo de dados de entrada

1
Farol de elementos

A JavaScript widget envia visualizações de página, cliques e mensagens de bate- papo para /beacon.php.

2
Ingestão de acontecimentos

Eventos armazenados em eventos opsiq_ com site_key, tipo de evento, cliente e propriedades.

3
Montagem da sessão

Construtor de sessão agrupa visualizações de página em sessões (via cron).

4
Resolução de identidade

Quando identificados, os registros anônimos estão ligados ao perfil do cliente.

5
Sincronização do conector

Os conectores extraem dados de plataformas externas e armazenam no cache do conector.

6
Contexto das IA

A IA reúne contexto de: histórico do visitante, perfil do cliente, dados de conectores, KB e prompt.

Fluxo de dados de saída

1
Incêndios de eventos

Eventos internos incêndios (ticket. created, chat. message, order. completed).

2
Fila de trabalho

Evento colocado na fila de tarefas assync.

3
Envio Webhook

O expedidor assina e envia para todos os objetivos subscritos.

4
Repetir ao falhar

As entregas falharam com o recuo exponencial.

Configurações

Referência de configurações

As configurações são o centro de controle para uma área de trabalho. Tudo abaixo é escopo para a área de serviço em que você está, então uma conta pode executar várias marcas com diferentes identidades, comportamento de bate-papo e regras de retenção.

Encontrar uma configuração

Existem cerca de seiscentos controles individuais em Configurações, espalhados por onze páginas agrupadas sob quatro menus. Você não deve procurar por eles.

Configurações de pesquisa (Ctrl + K)

Pressione Ctrl + K, ou Cmd + K em um Mac, em qualquer lugar da página Configurações. Digite palavras simples e pressione Enter para saltar direto para o controle. Pesquisa tolera pequenos erros de digitação e entende palavras relacionadas, assim o agendador encontra Cron e privacidade encontra os controles de rastreamento. Ele só mostra configurações que seu papel pode abrir.

Espaço de trabalho e plano

Geral e Licença.

IA e Suporte ao Cliente

Assistente de IA do administrador, bate-papo do cliente, OpsIQ Portal de Escrita e Suporte.

Dados e Governação

Rastreamento e Privacidade, Permissões e Segurança.

Sistema

Configuração do Cron (somente hospedado) e Zona de Perigo.

Salvando

Cada aba salva por si só com seu próprio botão Salvar. Conversa com o cliente e OpsIQ Gravando pino deles para a tela. Salve antes de mudar as abas; as alterações não são realizadas através.

Ligações profundas

A página ativa é escrita no endereço da página, para que uma página possa ser marcada ou enviada a um colega.

Geral: Identidade de negócios

O cartão mais importante da página. A IA lê estes valores em cada resposta, relatório e resumo diário.

Nome da empresa

Usado em relatórios de IA, resumos diários e redação voltada para o cliente. Combine o rodapé do seu site.

Indústria das Empresas

Análise de AI alfaiates, pontuação líder, resumos e predefinições de pesquisa. Escolha entre web hosting, e-commerce, SaaS, imobiliário, agência, consultoria, saúde, educação, finanças ou negócios em geral.

Língua do Sistema

A linguagem mostrada a quem não escolheu a sua. Cada agente pode sobrepor- se ao seu perfil.

Usar o idioma do navegador

Mostra a página de entrada no próprio idioma do visitante. Uma vez que alguém escolhe um idioma lá, sua escolha ganha e isso nunca o substitui.

Fuso- horário do sistema

A zona em que todo o sistema é executado: datas, relatórios, horários e o cron de fundo. Use o fuso horário das operações, não os seus clientes.

Geral: GeoIP e Rastreamento

Localização da Base de Dados GeoIP2

Caminho completo para GeoLite2-City. mmdb. Auto-detecta na primeira carga em cPanel, Plesk, DirectAdmin, Cloudways, Docker e Linux simples ou Windows. Adicione GeoLito2-ASN. mmddb na mesma pasta para o provedor de internet visitante.

Modo de Fonte Geográfica

Apenas GeoLite2, Geo Lite2 com uma Cloudflare retrocesso, ou Cloudflare Apenas.Cloudflare os modos exigem que o site seja aproximado através de Cloudflare, com cabeçalhos de localização do visitante habilitado para detalhes da cidade e região.

Tempo- limite da sessão (s)

A inatividade antes de uma sessão de visitante é considerada terminada. Por omissão 14400, que é de quatro horas.

Intervalo (s) de atualização ao vivo

Com que frequência o Live Feed atualiza. Por omissão 30 segundos.

Limiar Activo (min)

Quanto tempo um visitante conta como vivo após sua última carga de página. Por omissão 2 minutos. Este é o envio do Live Feed, não o comprimento da sessão.

Retenção de dados (dias)

Exclui registros coletados e gerados após esta idade: análise, chat, tickets, feedback, transações, telemetria de IA, logs de integração e atividade CRM. 0 mantém tudo para sempre. Configurações, conteúdo de autoria e recibos de consentimento nunca são removidos.

Quando uma conversa é apagada

Escolhe quanto de uma conversa apagada permanece no registro: o registro completo, o registro sem a conversa ou apenas a pontuação. Excluindo sempre o chat da caixa de entrada e do histórico do visitante. Retenção agendada e Esqueça o visitante sempre apagar na íntegra, independentemente disso.

Tráfego de bots de trilha

Conta rastejantes como visitantes. Deixe de fora; infla a conta do visitante e desvia todos os relatórios.

O menu de contexto da pesquisa de feedback está ativado

Mostra o widget de feedback para os visitantes. Separe-se das pesquisas de chat no Chat do Cliente, Support Flow.

Geral: Características de IA

Comutadores mestre para cada superfície de IA. Todos os padrões são ligados e salvos por espaço de trabalho.

AI Triagem em bilhetes

Classifica cada ticket por categoria, prioridade e sentimento, e escreve um resumo de thread no topo do ticket.

Resumo de cursor de triagem de IA

Mostra as etiquetas de triagem e o resumo numa dica quando um agente passa uma linha na lista de tickets. Requer Triagem de IA.

Co- piloto de caixa de entrada (compositor)

Adiciona a resposta de IA do rascunho, mais quente, mais curto, botões mais formais e arrependidos sob a caixa de resposta do ticket. Nada envia sem o agente.

Perguntar ao Co- piloto OpsIQ

O co-piloto flutuante de página em cada página de administração. Sabe qual cliente, fatura ou ticket está aberto.

Resumo da manhã

Na primeira abertura todos os dias o co-piloto apresenta bilhetes urgentes, respostas atrasadas e bate-papo. Domingos produzir uma semana em revisão.

Geral: dinheiro, marca, backup

OpsIQ base currency

Cada total de dinheiro no administrador é convertido nesta moeda para exibição. Os conectores armazenam sua própria moeda fonte; configure isso por conector.

Taxas FX de sincronização automática

Atualiza as taxas a cada seis horas de uma fonte pública gratuita sem chave API. Você pode adicionar taxas manuais que sobrepõem a fonte. Com o auto-sincronização desligada, moedas sem taxa manual são deixadas não convertidas.

Habilitar recursos de Comércio e Faturação

Desligar os navios. Ligar revela a página de Vendas e Conversões, os cartões de receita do painel e o Live Intelligence Feed. Com ele desligado, cada superfície de preço está escondida e a página do Sales deixa o menu.

Vocabulário de comércio

Teaches OpsIQ your wording: whether you do renewals, the word for renewing, what you sell, and what buyers are called.

Marcas e Logotipos

Dois envios, um para os fundos claros (barra lateral de administração) e outro para o escuro (página de entrada). PNG, JPG, WebP ou SVG até 3 MB.

Agente de Inteligência do Site, permite alvos privados SSH

O agente de SEO Auto-Implemento conecta sobre SSH. Os endereços privados, loopback e reservados são bloqueados por padrão como uma medida anti-SSRF. Somente habilite em instalações auto-hospedadas que devem chegar a um servidor local.

OpsIQ Backup / Restauração

Exporta todas as configurações e OpsIQ'tabela' mais ficheiros enviados. Restaurar substitui OpsIQ configuração e registros somente; nunca toca clientes, faturas, tickets, serviços, domínios, ordens ou transações.

⚠️
Faça um backup antes de usar qualquer coisa na Zona de Perigo. O backup vive em geral e as ações de exclusão vivem na Zona do Perigo, então é fácil alcançar o botão excluir sem ter exportado primeiro.
Configurações

Configurações: Segurança

Proteção para o login do administrador, suas contas de pessoal e os dados OpsIQ coletas. O login do cliente para o portal de suporte é configurado separadamente.

Protecção de entrada automática

GooglereCAPTCHA

Para os bots e o recheio de credencial no login do administrador. Escolha v3 (invisível, marcado) ou v2 (checkbox), defina o limite de pontuação v3, e forneça as chaves do site e secreto. Estas mesmas chaves são reutilizadas pelo formulário de solicitação do portal de suporte.

Auto- encerramento da sessão falhou

Bloqueia um endereço após várias falhas dentro de uma janela, durante várias horas. Você poderá personalizar a mensagem da página bloqueada e mostrar uma pequena distração no ecrã de espera.

Endurecimento do Login

Política de senha com um comprimento mínimo, rejeição de senhas encontradas em violações conhecidas, bloqueio por conta contra o recheio credencial, dois fatores obrigatórios para cada administrador, reentrada de senha antes de ações perigosas e alertas de entrada de novo dispositivo.

Sinal único (OIDC)

O pessoal assina através do seu provedor de identidade. Precisa do emissor URL, ID do cliente e segredo do cliente. Domínios de auto-fornecimento, um por linha, criar os usuários automaticamente no primeiro login.

Sinal Único (SAML 2.0)

Para fornecedores que falam SAML. OpsIQ fornece a resposta do ACS URL e ID de entidade SP; você fornece o ID de entidades IdP, login URL, assinatura opcional URL e X.509 certificado de assinatura. Os campos de atributos de e- mail e nome só são necessários para os nomes de atributos não padrão.

Provisionamento SCIM

Criação, atualização e desativação orientadas para diretórios OpsIQ contas.OpsIQ fornece a SCIM base URL; você gera tokens rotulados aqui para que alguém possa ser revogado sem quebrar o resto.

Ameaças, bloqueio e recolha

Lista de permissão de saída

Restricts which external hosts this workspace connectors may call. Companion to the SSH target control in General.

Pontuação de ameaça e bloqueio automático

Bloqueia um visitante uma vez que sua pontuação de ameaça passe seu limiar. 0 desativa-o. Assista à página Visão geral da segurança por uma semana antes de escolher um número.

Bloquear a Mensagem da Página

A mensagem que um visitante bloqueado vê, como texto simples ou sua tela personalizada HTML.

Vitais Web Core de visitantes reais

Mede LCP, INP e CLS de sessões reais.

Entrega de eventos retrígidos e seguros

Fila de eventos personalizada no navegador e entregar em lotes com repetições, reduzindo a perda em conexões móveis pobres.

Beacons de Rastreamento Assinados

As incorporações reais de elementos carregam um token criptográfico rotativo para que os dados de rastreamento falsificados possam ser rejeitados. Desligado por padrão; habilitando as alterações de como incorpora autenticar, então teste primeiro.

Alertas de segurança

Desligado por padrão. A detecção e o bloqueio são executados independentemente. Esta placa controla se você é informado, e quanto a IA auxilia.

Activar as indicações de segurança

Troca mestre para este cartão.

Limiar de onda login falhou

Quantos sinais falhados num curto período contam como uma onda que vale a pena alertar.

IP reputation intelligence

Adiciona uma pontuação de ameaça para visitantes que aparecem em feeds de abuso público.

Observação do site

Horário de funcionamento por hora e verificações de expiração TLS, alertando antes do termo do certificado.

Analista de segurança das IA e relatórios de incidentes de IA

Adiciona um veredicto explicativo à atividade suspeita, e grupos relacionados ataques em um único incidente legível ao invés de uma corrente de eventos.

Piloto automático da política

Atua por conta própria, transformando o que aprende de um incidente em uma regra proposta ou aplicada. Deixe até que você tenha revisto suas propostas e concorde com elas.

Digerir diariamente segurança e conselheiro postura semanal

Uma recapitulação diária na página Visão geral da segurança, e uma lista de verificação semanal mostrando o que está protegido e o que ainda está aberto.

Expirar automaticamente propostas antigas

Uma regra de bloqueio proposta em que nunca agiu expira por si só em vez de acumular.

Repetição da Sessão DOM

Activar a repetição da sessão DOM

Grava sessões de visitantes para reprodução. Quando fora da biblioteca de replay nunca é carregado, então não há custo para deixá-lo desligado. As gravações são amostradas e mascaradas com privacidade, e são observadas na página de Replay de Sessão em Analytics.

Taxa de amostragem, captura máxima, retenção

Que parte das sessões para gravar, quanto tempo uma única gravação pode ser executada e quantos dias as gravações são mantidas.

⚠️
Replay de sessão registra pessoas reais usando seu site. Mantenha a taxa de amostragem e retenção tão baixa quanto ainda responderá sua pergunta, e divulgá-lo em seu aviso de privacidade.
Configurações

Configurações: Rastreamento e Privacidade

What OpsIQ may collect, and how long each kind of record survives.

Exclusões

Intervalos IPs e CIDR excluídos

Os endereços nunca foram rastreados, um por linha, endereços exatos ou intervalos CIDR. A maneira mais limpa de manter sua própria equipe fora de suas análises, porque ela cobre todos nesse endereço ao invés de apenas administradores assinados.

Caminhos URL excluídos

Page patterns never tracked, one per line, wildcards with an asterisk. For example /admin/* keeps the whole back office out of the visitor log.

Política de retenção de dados

Por-subsistema auto-expurgar em dias. Separar da configuração de retenção de dados geral em Geral e da limpeza da Zona de Perigo.

Registos de interacção com IA

Telemetria de confiança segurando pré-visualizações curtas de consulta e resposta. Por omissão 90 dias. Isto detém o texto mais cliente, assim encurta-o primeiro quando apertar a privacidade.

Eventos de utilização de IA

O token por chamada conta para o relatório de custos. Por omissão 90 dias. Apenas números, nenhum conteúdo de mensagem.

Trilha de auditoria da acção

O registo de acção e segurança evidentes. Por omissão 365 dias. Mantenha isto por mais tempo; é o seu rasto de provas.

Diagnósticos

Registros de saúde do sistema. Dias padrão 30.

Perguntas sem resposta

Agrupamentos de perguntas que a IA não pôde responder. Por omissão 90 dias. Trabalhe através delas nas Perguntas que a IA perdeu página antes de expirar.

Cães de guarda e exportações

Alertas de Anomalias Métricas

Comparação diária de ontem com a linha de base recente, alertando quando uma métrica move mais do que seu limiar. Por omissão 35 por cento. Off by default.

Exportação de Armazém

Dispensas noturnas de sessões, visitantes, pageviews e tabelas relacionadas para sua própria pilha BI, em um formato que você escolher, mantido por um número de dias. Desligado por padrão.

Configurações

Configurações: Admin AI Assistant

O assistente flutuante que sua equipe usa dentro do administrador, com acesso ao vivo a clientes, faturas, tickets, servidores e registros de cron. Um assistente diferente do cliente-face a um no chat do cliente.

Activar o elemento OpsIQ IA

Mostra o botão assistente em cada página de administração. Desliga- o para todos.

Disposição e comportamento

Posição do canto, largura do painel (320 para 600 px), altura máxima (400 para 900 px), raio de canto (0para 24), tamanho da fonte, e um borrão de vidro fosco atrás do painel.

Mostrar as Fichas Rápidas

Os botões de atalho com um clique sob o cabeçalho. A forma mais rápida para a maioria dos funcionários.

Mostrar informações do modelo

Exibe qual modelo respondeu e quanto tempo levou. Útil durante o ajuste de custo, ruído para uso diário.

Porta de acesso por administração

Apenas mostra o assistente de um administrador assinado cujo nome de usuário e email correspondem a um agente OpsIQ atribuído a esta área de trabalho. Os proprietários sempre passam. Use o botão Verificar meu acesso antes de habilitar ou você pode bloquear sua própria equipe para fora.

AI Persona

Mostrar o nome, a linha de cabeçalho e uma mensagem personalizada de boas- vindas mostrada quando o painel abrir.

Chips de ação rápida inteligente

Edite a legenda e o prompt subjacente para cada atalho, adicione o seu próprio ou reset aos padrões. A etiqueta é o que a pauta vê, a prommit é o quê a IA recebe.

Cores e formas

Forma de chip (pílula, arredondado, quadrado), cores de chip, tema de cartão e forma do lançador (round, squircle, quadrado) com uma prévia ao vivo.

Memória de Conversação

The assistant remembers each person history across browser sessions, up to 120 messages, stored in your own database. Clear it to start fresh.

Configurações

Configurações: Conversa com o Cliente

O widget de chat que os seus clientes usam e a maior área de Configurações. Seis sub-tabs, com o interruptor mestre e Salvar preso no topo da aba.

Trabalhe através dos sub-tabs em ordem em uma nova instalação: Identidade e cópia, aparência, comportamento, fluxo de suporte, treinamento de conhecimento. Avançado é infraestrutura e pode esperar.

Identidade e cópia

Identidade da marca

Nome do elemento, tagline, nome de IA, o nome usado para avisos de sistema e inativos, e como os nomes dos agentes aparecem. Agent Name Source decide entre nomes reais, um nome personalizado ou uma etiqueta de equipe.

Saudação em bate-papo

Duas saudações, uma para todos os visitantes e outra para visitantes identificados. Uma pergunta começa mais conversas do que uma declaração.

Popup Teaser de 2016

A mensagem flutuante antes da conversa é aberta, com o seu próprio nome, tamanho da fonte e cores. O IA pode escrever os teasers, com controles para quantos gerar, quantos mostrar por visita e a diferença entre eles.

Perguntas e Entrega

O script completo: pedindo um nome e email, confirmações, solicitando um humano, nenhum agente disponível, ticket criado ou cancelado, entrega pendente. Cerca de duas dúzias de linhas individuais em um painel quebrável.

Avisos de Estado e Inativo

Três mensagens visíveis para o cliente: agente fecha o chat, visitante fica quieto e agente devolve a IA. Evite palavras internas como resolvidas ou triadas.

Compositor e Sugestões

Substituidor de entrada, o rótulo do botão falar-para-um-humano, e as perguntas de abertura sugeridas. Três boas sugestões desviam mais tickets do que uma página de artigos.

Lançador, Ícone e Avatares

Ícone do lançador, um ícone opcional diferente quando aberto, tamanho do lançadora e imagens para o agente humano e a IA.

Aparência

Tema e Vidro

Modo de tema, uma predefinição de cor premium, intensidade e opacidade em borrão, além de alternar para animações, linhas de separadores, escondendo a linha de status, ocultando o cartão da caixa de mensagens e escondendo o botão fechar. Comece com uma predefinida; ele define dezenas de cores ao mesmo tempo.

Cores Principais

Lançador, cabeçalho, painel de ajuda, links, botões, avisos do sistema e compositor, cada um com uma cor inicial e final para gradientes. Uma opção de vidro padrão de uso ignora estes e mantém o acabamento transparente.

Painel, Bolhas e Batatas

Cerca de trinta catadores cobrindo o painel, borda, texto, área de entrada e todos os tipos de bolha (visitante, IA, agente, digitação, sistema) mais chips de sugestão e seu estado de hover. Apenas abra isso para correspondência exata da marca, e verifique contraste no texto de bolhas.

Disposição e Forma

Largura e altura do painel, raio de canto, tamanho da fonte, posição do ecrã, formato do lançador, estilo bolha e se os avatares mostram. Teste a largura num telefone.

Comportamento

Respostas automáticas de IA

O interruptor mestre para as respostas de IA. Desligado significa que cada mensagem espera por um humano.

Acompanhamentos humanos e dupla mensagem natural

Um acompanhamento suave quando um visitante fica quieto, e uma mensagem opcional de segundos curtos da forma como uma pessoa enviaria uma. Afinado com seguimento máximo por silêncio, primeiro atraso, mais tarde multiplicador, janela de presença e janela de sequência máxima. Pode ser limitado ao horário de trabalho, e suprimido após um simples agradecimento.

Respostas e ritmo de resposta da máquina de escrever

Se as respostas digitam palavra por palavra e a rapidez com que as respostas do assistente são feitas, se predefinidos ou se o seu próprio atraso mínimo e máximo em milissegundos. Um pequeno atraso é mais humano do que uma resposta instantânea.

Tradução ao vivo

Cada agente lê e escreve em sua própria língua enquanto o visitante lê a deles.

Devolver para IA após o agente inactivo

Minutos de inatividade do agente antes da IA retomar a conversa.

Abrir automaticamente a conversa

Segundos antes do widget se abrir.0nunca abre. Intrusivo no móvel; deixe em0a menos que seja testado.

Respostas Mais Inteligentes

Planejando com antecedência para respostas de um passo, pensando profundidade, um modelo opcional separado para respostas do agente, mostrando raciocínio aos visitantes, tolerando erros ortográficos, memória de longa conversação, restringindo o assistente apenas para o seu negócio, preços na moeda do visitante, e como os links aparecem. Apenas falar sobre o seu negócios deve ser em para quase todos.

Poupança de Custos

Salta a busca de conhecimento para saudações como oi e obrigado, e caps a resposta mais longa em fichas. Aparar custos sem mudar a qualidade da resposta em perguntas reais.

Línguas

Quais idiomas o widget suporta e como ele escolhe um para um visitante.

Respostas da Conta do Cliente

Respostas de uma conta própria do cliente, opcionalmente olhou para cima ao vivo e carregado opcionalmente apenas quando necessário. Leia-apenas em todos os casos; carga-quando-necessário reduz visivelmente o custo.

Montante das restituições

Pedidos de reembolso assistido onde o assistente reúne detalhes e mãos para uma pessoa. Ele nunca completa um reembolso em si.

Conversa e Widget

Mantendo conversas passadas, continuando uma conversa em seus sites conectados, janela arrastável, pedindo um e-mail aos convidados e deixando sua equipe transformar uma conversa num ticket.

Características do Widget

Selector de Emoji, anexos com um modo opcional só para colar, compreensão de imagem IA, ícones em linha, microfone, botão de conversação-a-agente, sons do visitante, visualização do anexo, botão para chamada de voz e isolamento da sessão. A compreensão de imagens IA é o que permite ao visitante colar uma captura de tela de erro e obter uma resposta útil.

Caixa de entrada do administrador, notificações e popup de boas-vindas

O visitante recebe o popup, além de alertas de seus agentes: sons de caixa de entrada, notificações de desktop, sons sussurros, se os sussurres privados bip e o intervalo de pesquisa da caixa de acesso.

Fluxo de suporte

Handoff Humano

Como são atribuídos pedidos para uma pessoa, os segundos que um agente tem de responder, se o declínio retorna a conversa para a IA, e se a IA retoma quando expira o tempo limite. Configure isto antes de ir ao vivo ou um visitante que pede por um humano simplesmente espera.

Horas de trabalho

Horários de abertura, fuso horário e a mensagem de horas fechadas. Fora destas horas, o IA não oferecerá um humano. Um cronograma separado do horário comercial do ticket sob OpsIQ Escrever.

Respostas quando a IA está desligada

A primeira resposta a uma nova mensagem, a resposta quando alguém já está em fila e quanto tempo antes de repetir.

Forma Desligada

Mostra um formulário de contacto em vez da conversa.

Busca de tickets e notificações do departamento

AI ticket consciousness, assim que um visitante citando um número de ticket recebe seu status real, e para qual departamentos o IA pode encaminhar. Um painel embutido mostra os reais destinatários para cada departamento, resolvido da mesma forma que o notificador resolve-los, então você pode ver antes que um cliente faça que um departamento não alerta ninguém.

Central de Ajuda no widget de conversação

Permite aos visitantes navegarem por artigos publicados sem sair da conversa. Você escolhe onde aparece o ponto de entrada, a etiqueta e ícone da barra inferior, e se deve oferecer uma ligação para a central de ajuda completa. Desligado por omissão.

Classificação da conversação

A classificação das estrelas foi accionada quando um agente fecha o chat, quando termina uma transferência ou após um período de inactividade que você definir. Escolha um ou dois gatilhos, não todos eles.

Pesquisa Pós- Conversa

Uma pesquisa curta quando o visitante fecha o chat, com sua pergunta, atraso, regra de tempo e um boné por visita. Os visitantes também podem enviar e-mail ou baixar a transcrição. Uma pergunta é respondida; três não.

Pesquisa de E- mail pós- bate- papo

Uma pesquisa de seguimento por e-mail após o término da conversa, opcionalmente no idioma em que o visitante conversou, com controle sobre atraso, assunto, introdução, pergunta, tanto etiquetas de botão e a linha obrigado.

Responder Feedback

Polegares para cima e polegares para baixo em cada resposta IA, alimentando os painéis de qualidade.

Arquivo de conversação

Auto-arquivo após dias, auto-resolver após minutos de silêncio e excluir conversas arquivadas após dias. Uma retenção de terceiro lugar é definida, ao lado Geral e Rastreamento.

Treinamento de Conhecimento

O que o assistente sabe, nada mais no chat do cliente importa.

Formação de Conhecimento no Sítio Web

Crawls your site so the assistant can answer from it. Up to ten starting links, a page limit, a link depth, and excluded folders. A single URL can be tested before the full crawl. Exclude checkout, account and admin paths.

Embutidas

The API key and model that turn pages into searchable meaning rather than keyword matches.

Organizador de Conhecimentos AI

Um clique e a IA lê todas as FAQ e páginas rastreadas e classifica-as em categorias.

Perguntas frequentes, Respostas Verificadas

Os pares de perguntas e respostas tratados como a fonte mais alta prioridade, cada um com um status, peso e categoria. Pesquisable, importable de JSON, e o IA pode escrever-los a partir de uma descrição do seu negócio. Quando o assistente obter algo errado, escreva uma FAQ: ele supera as páginas rastreadas, então a correção é imediata.

Avançado

Desempenho e Limites

Intervalo de pesquisa, limite de taxa de mensagens e janela, tamanho máximo do anexo, tentativas de anexação por janela e extensões de arquivo permitidas. A lista de extensão é um controle de segurança; mantenha- a apertada.

Entrega em tempo real

Mensagem instantânea e entrega de status em vez de fazer pesquisas, através do Pusher, Ably ou Firebase, com um intervalo de votação.

Fazer o Push de Notificações

Alertas de dispositivos para agentes através de feixes de pressão ou OneSignal, com interesse em dispositivos.

Empurre na Web (VAPID)

Navegador push usando suas próprias chaves geradas sem provedor de terceiros. Gerado aqui, não na Zona de Perigo.

Partilha de Voz, Vídeo e Tela

Credenciais TURN assim chamadas conectar através de redes restritivas, usando Cloudflare ou Credenciais Twilio ou sua própria TURN URL, nome de usuário e credencial.

Fluxo de trabalho da caixa de entrada

Configurações de espaço de trabalho do agente em vez de configurações de visitante: SLA primeira resposta em minutos, visualização salva da fila, atalhos de teclado e paleta de comando, busca in-conversation e tickets de cliente no inspetor.

Mensagens de Canais

WhatsApp, SMS, Facebook Messenger, Instagram, Telegram, X mensagens diretas e LINE, cada um com seu próprio AI auto-reply switch, além de um interruptor de política para ações de IA em canais, uma resposta debounce e o modelo de reacoplamento WhatSApp. Cada canal pousa na mesma caixa de entrada que o chat web.

Uma Visualização de Widget ao Vivo na parte inferior da aba atualiza à medida que você edita. Use-a em vez de recarregar seu site para verificar uma mudança.
Configurações

Configurações: OpsIQ

Os bilhetes responderam por escrito: respostas automáticas, sistema de bilhetes nativos, escalada, horário comercial, roteamento e os emails voltados para o cliente.

Resposta automática

Mostrar botões OpsIQ

Adiciona os botões helper de escrita para seus agentes no administrador.

Activar a resposta automática do ticket

Coloca novos tickets e respostas e responde-os após um atraso. Comece com ele fora e reveja rascunhos por uma semana. Reembolsos, cancelamentos e alterações de acesso devem sempre chegar a uma pessoa.

Serviços de resposta automática

Quais departamentos podem responder automaticamente. Tudo o que não está listado é deixado para um humano, que é o padrão seguro.

Resposta programa de atraso (minutos)

Quanto tempo esperar até que a resposta automática envie. Uma resposta instantânea lê-se como um robô; alguns minutos lê- se como uma equipa rápida.

Respostas máximas de IA por ticket por departamento

Uma tampa por departamento, por exemplo Billing 1 e Suporte 3. Sem uma tampa um fio confuso pode loop.

Comprimento, estado e identidade da resposta

Máxima gravação de fichas, o status do ticket após uma resposta e após um aumento, e a qual conta administrador as respostas automáticas são atribuídas. Use uma conta com nome claro para que a equipe possa dizer respostas de IA das respostas humanas.

Operações de ticket nativas

Sistema de Ingressos Nativos

O sistema de tickets foi incorporado em OpsIQ, para instalações sem um helpdesk externo.

Conectar e- mail de entrada para os tickets nativos

Transforma e-mail de entrada em tickets. OpsIQ fornece o ponto final URL, auth token, caminho do script e binário PHP. Qualquer coisa que possa postar nesse ponto final pode criar tickets, então mantenha o segredo do token.

Respostas e atraso e desvio em várias voltas

Se a IA continua respondendo à medida que a conversa continua, e se espera por uma janela silenciosa, de modo que três mensagens rápidas recebem uma resposta considerada. A janela silenciosa é a melhor opção para fazer respostas automáticas sentir-se considerado.

Portal de apoio público

Uma página voltada para o cliente onde qualquer pessoa pode levantar e rastrear um ticket, com uma linha de boas-vindas opcional. Seu endereço e olhar são configurados na guia Portal de Suporte.

Formato do número de ticket

Quantas letras aleatórias aparecem em números de ticket gerados.

E-mail clientes em sua própria língua

Os e-mails de ticket seguem o idioma do cliente. Os e - mails de funcionários nunca mudam de idioma: notificações, alertas de departamento, briefings e relatórios agendados permanecem em seu idioma do sistema.

Agradecimentos e confirmações

Um reconhecimento fixo em novos tickets, além de mensagens de confirmação quando um ticket é aberto, quando o feedback é deixado e quando um ingresso é fechado, cada um com uma visualização ao vivo. Há também um wrapper global do modelo de email e o link por trás do botão de visualização do seu ticket.

Rastreamento de spam AI

Ecrãs de tickets de remetentes desconhecidos, e pode opcionalmente mover o spam suspeito por conta própria. Deixe o movimento automático até que você tenha assistido ao seu julgamento.

Fechar automaticamente os bilhetes inactivos

Fecha um ticket após vários dias de silêncio. Diga ao cliente na mensagem de encerramento como reabrir.

Horário de expediente (calendário SLA)

Fuso horário, horários de abertura e fechamento, dias úteis e feriados para temporizadores de primeira resposta e resolução. Uma programação separada do Horário de trabalho em Chat com o cliente.

Atribuir automaticamente novos tickets

Atribuição automática, opcionalmente apenas para agentes que estão online, com habilidades de agente e uma sensibilidade de correspondência para roteamento baseado em habilidades.

Sugerir tickets duplicados

Pontos quando um cliente abre um ticket próximo de um que já tem, com uma sensibilidade ajustável para combinar.

Inquérito de satisfação após encerramento

E- mails de uma pesquisa um dia após o encerramento. Os resultados aparecem na página CSAT.

Notificar o departamento por e-mail

Envia emails ao departamento quando chega um novo bilhete. Os destinatários são os membros desse departamento, não o endereço de correio do departamento, que é o endereço para entrada de bilhetes chegam.

O que pode ler a I. A.

Acesso aos dados do cliente de IA

Um interruptor mestre mais permissões individuais somente leitura para o resumo do perfil do cliente, faturas, transações, saldo de crédito, produtos e serviços, domínios, servidores vinculados e uma visão geral da conta de alto nível. Comece com o sumário do perfil e adicione categorias como as respostas precisam deles.

Escalação e conhecimento

Activar a escalada de tickets de IA

Move um ticket para um departamento mais adequado antes de responder. Você escolhe os departamentos permitidos, o atraso da verificação e pode escrever suas próprias instruções de aviso de escalada. Ligue a nota interna de escalada para que sua equipe possa ver por que um ticket foi movido.

Configuração do conhecimento

Se as respostas usam o idioma do cliente, se elas desenham em links rastreados e FAQs, se a IA lê imagem e PDF anexos, o modo de resposta do conhecimento, importado JSON o conhecimento é usado, e se links de origem podem aparecer. Use links rastreados e FAQs devem estar ligados, ou a IA está supondo.

Parar a resposta automática após a resposta humana

Quando a equipa responder, a IA deixa de responder ao bilhete.

Instruções de ticket e email

Instruções de texto livre moldando o tom e o conteúdo para cada resposta, com um exemplo loucável. Seja específico sobre o que a IA nunca deve fazer.

Importar o conhecimento JSON

Envie ou cole um arquivo de conhecimento JSON para o assistente de escrita.

Estúdio de botões

Um designer completo para o botão voltado ao cliente: estilo de exibição, tamanho, etiqueta, ícone, forma, largura mínima, estilo de fundo com cores primárias e secundárias, ângulo de gradiente, borda, raio de canto, sombra, tipografia, enchimento, animação ociosa, movimento pair e cores, e o anel de foco, além de uma caixa personalizada CSS para qualquer coisa que os controles não cobrem.

Configurações

Configurações: Portal de Suporte

O site voltado para o cliente onde as pessoas levantam e rastreiam tickets e lêem seus artigos de ajuda. Esta aba controla como é alcançado e como os clientes entram; seu design visual é feito no Portal de Suporte Studio.

Portal Studio ou Portal de Bilhetes Incorporados: qual deles eu quero?

Estes são dois produtos diferentes e as pessoas misturam-nos constantemente. Eles resolvem problemas diferentes, e correr ambos juntos é normal.

Suporte Portal Studio: um lugar para onde você envia clientes

O estúdio projeta uma site de suporte completo que OpsIQ hosts para você. Tem seu próprio endereço web, ou seu próprio domínio, e carrega toda a experiência de autoatendimento: ajuda artigos com pesquisa, o formulário de solicitação, histórico de tickets, cliente login e assistente. Escolha um modelo, trabalhe através do tema, Navegação, Layout, Conhecimento, Rodapé, Marca, Tickets, Assistente, Formulário e CSS, visualização em desktop, tablet e tamanhos de telefone, em seguida, publicar.

Use- o quando você quer um destino marcado que você pode apontar cada cliente para, e você prefere não construir ou manter uma área de suporte dentro de seu próprio site.

Portal de Bilhetes Incorporado: bilhetes dentro do seu próprio site

A incorporação coloca apenas a experiência de ticket em uma página do seu próprio site. Os clientes abrem, rastreiam e respondem aos pedidos de suporte sem nunca deixar suas páginas, e seu próprio cabeçalho, navegação e design permanecem exatamente como eles são. Defina o layout, aparência e regras de acesso no construtor widget, visualize o resultado, em seguida, copie o trecho incorporado em sua página.

Use- o quando você já tem um site ou aplicativo com seu próprio design, e você quer suporte para acontecer dentro dele em vez de entregar o cliente para um endereço diferente.

A versão curta

O estúdio constrói um lugar para onde você envia clientes. A incorporação traz tickets para onde seus clientes já estão. Muitas empresas executam ambos, incorporando o widget de ticket em sua área de conta para pedidos no contexto, mantendo o portal hospedado como destino completo de auto-serviço com artigos e pesquisa. Eles são interruptores independentes.

Endereço e acesso

Modo de acesso

Se o portal está aberto a qualquer pessoa ou restrito aos clientes com sessão iniciada. Portais abertos recebem mais ingressos e mais spam.

Opções de disposição

Se o portal e centro de ajuda compartilham um herói ou usam dois, que navegação e rodapé aparecem em ambas as superfícies, eo rótulo da seção de navegação.

Endereço do portal

O endereço usado pelos clientes. Escolha um nome e OpsIQ mostra o portal resultante e os endereços correspondentes do centro de ajuda. Mudando-o mais tarde quebra links que você já enviou.

Seu próprio domínio

Serve o portal de um domínio que você possui, como support. yourdomain. com.

Portal de Bilhetes Incorporado

Muda o item suspenso descrito acima e abre o construtor de incorporação onde escolhe as regras de disposição, aparência e acesso, antevê o resultado e copia o trecho para a sua página. Este não é o Portal Studio: o Estúdio projeta o portal hospedado, isto coloca os tickets dentro do seu próprio site. Ambos podem estar ligados de uma vez.

Como os clientes entram

Estas são as opções de login dos seus clientes. O login da equipe está configurado em Configurações, Segurança.

Métodos de entrada

Quais opções aparecem na página de entrada. O conector e o e-mail funcionam automaticamente.

Assinatura social

Os provedores de contas de consumo, cada um precisando de um ID do cliente e secreto, com o endereço de redirecionamento fornecido por OpsIQ para se registrar com esse provedor.

Sinal único (OIDC)

O cliente se inscreve através de um provedor de identidade, com emissor URL, ID do cliente, segredo e uma lista opcional permitida de domínios de email.

Cliente SAML 2.0

A SAML Equivalente. OpsIQ fornece a resposta do ACS URLe ID de entidade SP; você fornece o ID de entidades IdP, login e assinatura URLs X.509 certificados e nomes de atributos opcionais. Turn SAML nos métodos de entrada ou não aparecerá.

Inscrição sem costura do seu aplicativo

Um link profundo assinado para que um cliente já tenha entrado em suas terras de aplicação no portal sem entrar novamente. OpsIQ fornece o segredo de assinatura, portal URL e chave de espaço de trabalho, além de um gerador para um link de teste assinado. Use o gerador antes de escrever qualquer código.

Assinar em todo o lado

A assinatura do portal também assina o cliente fora da sua aplicação.

Ingestão e protecção

Solicitar campos de formulários

Que campos estruturados o formulário de solicitação coleta. Cada campo extra perde submissões, então peça apenas para o que você precisa para triagem.

Protecção contra spam e abusos

Um honeypot e limitação de taxa sempre protegem o formulário público. No topo, você pode bloquear endereços de email descartáveis, adicionar seus próprios domínios bloqueados e adicionar um CAPTCHA usando o Google reCAPTCHA ou Cloudflare Turntile. reCAPDCHA reutiliza as chaves já definidas em Configurações, Segurança; Teclas Turntiles são inseridas aqui.

Análise de Portals

Um resumo da atividade do portal nos últimos trinta dias.

Configurações

Configurações: Permissões, Licença, Cron e Zona de Perigo

O grupo do Sistema, além do controle de acesso da equipe que decide quem pode ver qual guia Configurações.

Acesso e Permissões da Equipe

Permissões por administração

Cada administrador obtém um conjunto explícito de permissões que cobrem o acesso à caixa de entrada do chat, as quais as secções Configurações que podem editar e os seus departamentos. Qualquer pessoa com a função Administrador completo tem sempre todas as permissões. As permissões de configuração decidem qual tabulação uma pessoa vê, por isso conceda o conjunto mais estreito que lhes permita trabalhar.

Licença

Mostra a sua licença atual, o que lhe dá direito e o seu estado.

Configuração do Cron

Apenas as instalações auto- hospedadas. Na nuvem OpsIQ, as tarefas agendadas são executadas para você e a aba está escondida. Uma linha de crontab dirige cada tarefa programada: resposta automática do ticket, roteamento da escalada, atualização da taxa de câmbio, votação por correio e sincronização de conectores.

1
Copiar a linha

A aba mostra a linha crontab exata para o seu servidor com o binário PHP correto já escolhido.

2
Adicionar ao crontab

Execute o crontab -e como o usuário que executa PHP e cole a linha única. Em cPanel use a ferramenta Cron Jobs em vez disso.

3
Verificar

Dentro de um minuto, as peças do coração acendem. Use Executar agora para testar imediatamente em vez de esperar.

O painel de batimentos cardíacos mostra a última execução, duração e o que foi processado tanto para a fila de resposta automática como para a pesquisa por e- mail e conector. Ele avisa quando a última corrida veio do botão web manual em vez de um cron real servidor, e quando uma batida cardíaca ficou fraca.

Zona de Perigo

Apagar todos os dados de seguimento

Limpa tudo OpsIQ coletado ou gerado. Você marca o que incluir e digita a frase de confirmação exatamente. Configurações e configuração do site, endereços bloqueados, tudo que sua equipe escreveu (base de conhecimento, FAQs, traduções, desenhos de portal, definições de ação) e recibos de consentimento são preservados.

Expurgar Dados Mais Velhos do Que

A mesma varredura limitada a registros mais antigos do que 30, 60, 90 ou 180 dias, ou um ano. Para a retenção automática de rolamento usar os valores de retenção em geral e Rastreamento em vez disso e deixar a tarefa agendada fazê-lo.

🚫
Exportar uma cópia de segurança das Configurações, Geral antes de usar qualquer coisa na Zona de Perigo. Estas ações não podem ser desfeitas.
Configurações

Gerenciar sua equipe

Convide membros da equipe e atribua papéis para controlar quem pode acessar o quê.

Equipa
Equipa & departamentosA tela da equipe: uma tabela de administradores com contato, crachá de função (Propriedade, Administração Completa, Agente) e os departamentos que cada um pode acessar.Equipa & departamentosespaço de trabalhoEquipa & departamentos+ Salvar usuário de administradorCONTATOPAPELDEPARTAMENTOSAO[email protected]Ada OwusuProprietárioTudoKM[email protected]Kojo MensahAdministrador CompletoTudoRT Não-conformidade[email protected]Rita TettehAgenteFaturaçãoSB[email protected]AgenteSuporte1TEAMConvidar e gerenciar administradores2ROLESProprietário · Admin. completo · Agente3SCOPEDAcesso por serviço
A verdadeira tela da equipe: cada administrador com seu contato, papel e os departamentos que eles podem alcançar, agentes examinados, proprietários cheios.

Funções

Proprietário

Acesso total, incluindo licença, faturamento e zona de perigo.

Administrador Completo

Acesso completo, exceto licença e zona de perigo. Pode gerenciar administradores.

Agente

Limitado a departamentos atribuídos. Bilhetes, chats e análises apenas.

Convite para membros da equipa

1
Ir para a Equipe

Navegue para a equipa na barra lateral.

2
Clique em Convidar

Digite o e-mail do membro da equipe.

3
Definir a função

Escolha Proprietário, Administrador Pleno ou Agente.

4
Atribuir serviços

Para agentes, selecione departamentos acessíveis.

5
Enviar convite

Eles recebem um e-mail com um link de configuração.

Configurações

Desempenho em equipa

Como sua equipe de suporte está se apresentando. O acesso é por permissão, não por função: a permissão de visualização abre a página, a permissão gerencial desbloqueia alvos, leituras de QA e identificação de colegas, e a permissão financeira-recompensa é o que adiciona a guia Rewards. Um líder de equipe pode ser dado a qualquer um deles sem se tornar um administrador completo.

Desempenho em equipa
Desempenho em equipaA tela de desempenho da equipe: agentes classificados por uma barra composta, CSAT e um saldo recompensa com um botão Pay por linha.Desempenho em equipaespaço de trabalhoDesempenho em equipaAGENTEÂMBITO DE APLICAÇÃOCSATEQUILÍBRIORT Não-conformidadeRita Tetteh4.8$42PagaSBSam Boateng - 19 anos4.5$28PagaKMKojo Mensah4.2$15PagaAOAda Owusu4.9$51Paga1SCOREDDesempenho composto2CSAT & LOADNotações + volume3REWARDSSaldos dos agentes pagadores
A verdadeira tela de desempenho em equipe: cada agente marcou no volume e CSAT, com um saldo de recompensa que você pode pagar por linha.

Como a página é organizada

Desempenho da equipe é cinco abas. Cada um responde uma pergunta diferente, e eles são ordenados por quão urgentemente eles geralmente precisam de você.

01 Command centre

Estado de fila ao vivo, resultados do cliente contra seus alvos, como a capacidade foi gasta, situações que precisam de uma decisão e o índice por equipe ajustado por evidência.

02 Teammates

A tabela de classificação, reconhecimento (mais melhorado e raias), missões, e o controle opt-in para quem pode ver o ranking.

03 Qualidade

Cartões de pontuação, avaliações gravadas, acordo de revisor corrigido por acaso, desvio do revisor e disputas de evidências.

04 Recompensas

Valor do item, reivindicações de pagamento e a atribuição de período governado: autorizar um teto financiado, rever a pré-visualização, finalizar.

05 Histórico

Como o espaço de trabalho se moveu ao longo do tempo: métricas de tendência com um gráfico, e uma mapa de cobertura 28-dia mostrando quando a equipe estava realmente trabalhando. Cada carta se esconde até que haja histórico suficiente para desenhá-la.

Sem pontuação não é zero

Um companheiro de equipa sem volume suficiente tratado — ou cujas dimensões que carregam provas somam menos da metade do peso configurado — é mostrado como Unscored. A sua pontuação, classificação e banda estão vazias e a sua quebra está oculta. Isto é deliberado: a representação de uma medição ausente como um zero coloca alguém no fundo de uma classificação para ter uma semana tranquila. Os limiares de evidência são configuráveis por espaço de trabalho em Targets & score.

Os dois limiares de evidência fazem trabalhos diferentes e vale a pena mantê-los separados. Mínimo manipulado decide se alguém é pontuado em tudo. Classificação mínima não afeta a pontuação: ele decide atribuição e elegibilidade recompensa. Então, um companheiro de equipe pode ser totalmente marcado e classificado e ainda ser inelegível para esse período, porque poucos clientes os avaliaram.

💡
Cada figura é dimensionada para o espaço de trabalho que você está visualizando e o intervalo de tempo que você escolhe. Um colega de equipe trabalhando em dois espaços de trabalho separados tem um registro independente em cada um. Duas exceções vale a pena saber: um GRUPO de site é um espaço de trabalhos, então seus domínios de membros são medidos juntos; e a visão All-sites mede deliberadamente tudo ao mesmo tempo.

O índice de desempenho

Um composto de cinco dimensões, cada uma medida contra um alvo que você definir em vez de contra colegas, então puxou para o meio quando a evidência por trás dele é fina. Observe a direção: o ajuste move a figura para 70, assim uma pontuação excelente fina é puxada para baixo e uma pontuação pobre fina é puxar para cima. Uma primeira semana ruim em quatro conversas também não é um veredicto resolvido. Como a evidência acumula a figura ajustada converge no bruto.

Qualidade

Satisfação do cliente com o feedback verificado. Suplementado por resultados de QA scorecard onde existem e são governados.

Responsividade

Primeiros tempos de resposta nos percentis P50 e P90, contra os vossos alvos.

Resolução

Tempo de resolução e taxa de resolução com um toque.

SLA

Atintura contra o SLA que configurou, além de contagens em risco e violadas.

Adestramento

Reabra e transfira as taxas — o trabalho que volta.

💡
Os pesos são configuráveis e relativos; eles não precisam totalizar 100. Evidência ausente só pode diminuir o índice, nunca elevá-lo — o peso completo configurado permanece no denominador.

Capacidade e tempo de produção

Ocupação, tempo produtivo, resolvido por hora produtiva e partilha online da janela. A utilização não é deliberadamente relatada: ela precisa de horas programadas como denominador, OpsIQ não tem roster ou fonte de mudança, e um denominador substituído seria uma suposição usando um sinal percentual. Ele lê-se como indisponível com essa razão anexada.

⚠️
A ocupação diz como o tempo foi gasto, nunca como bem gasto, e nunca financia, portões ou tamanhos um pagamento. Um companheiro de equipe sem provas do tempo de manipulação lê como indisponível, nunca zero.

Garantia de qualidade

Um scorecard é o resultado de conversas reais dos revisores rubric contra. Somente uma versão publicada pode receber uma avaliação, e publicar uma nova versão nunca reescreve o que já foi marcado. Uma revisão é evidência sobre uma conversa, não um veredicto sobre uma pessoa.

Acordo de revisão

Relatado como uma estatística corrigida por acaso (Kappa de Cohen e Fleiss), não um percentual bruto de concordância. Dois revisores que passam tudo concordam 100% do tempo enquanto não carregam informações.

Deriva do revisor

Se um revisor pontua sistematicamente mais difícil ou suave do que seus colegas na mesma conversação — uma comparação com o resto do painel, não uma tendência ao longo do tempo. Precisa de uma interação revisada independentemente mais de uma vez.

Litígios

Um companheiro de equipa pode formalmente disputar provas registadas sobre eles. Uma disputa aberta bloqueia a finalização do período de recompensa até que seja resolvida.

Auto-revisão

Um colega de equipa não pode submeter-se a uma avaliação.

⚠️
As avaliações de grau AI não podem influenciar o pagamento até que uma calibração seja publicada mostrando que o modelo concorda com os revisores humanos o suficiente, medidos por kappa contra uma amostra mínima. Um portal aberto significa que o Modelo concorda com as pessoas próximas o suficiente para contar — isso nunca significa que ele está correto.

Reconhecimento

O ranking sozinho tem documentado modos de falha: jogos métricos, burnout e vergonha pública de quem quer que seja o último. Três alternativas se sentam ao lado dele.

Mais melhorado

Medido contra o recorde anterior de um colega, nunca contra colegas, com encolhimento para que um denominador minúsculo não possa comprar uma vitória.

Rastreios

Períodos consecutivos que cumprem uma barra fixa e declarada — classificação média, volume tratado, contagem de classificações e taxa de retorno negativo, todos os números absolutos. Todos podem manter uma faixa simultaneamente, para que não crie ranking, e um colega com um mês excepcional não pode quebrar a sua.

Classificação de Opt-in

Desligado por padrão. Um companheiro de equipe sempre vê seu próprio índice; se eles veem colegas é uma decisão do espaço de trabalho. Bandas percentuais podem ser publicadas em vez de posições absolutas.

💡
Reconhecimento nunca toca em dinheiro. Uma raia não pode financiar um pagamento ou quebrar um, e a maioria melhorada não é uma categoria de prêmio.

Buscas

Um alvo que a equipe trabalha para, medido contra uma barra declarada fixa em vez de um contra o outro — para que todos possam limpar a mesma busca no mesmo período.

Âmbito de aplicação e cadência

Individual ou equipe; único, repetitivo ou sazonal com uma janela explícita.

Critérios

Conversas tratadas, avaliações recebidas, dias ativos, classificação média ou taxa de feedback negativa. Tudo absoluto — nenhuma métrica cujo valor depende do que colegas fizeram.

Guarda de qualidade

É necessário em qualquer busca com um alvo de volume. Bater no número enquanto a qualidade cai abaixo do chão retém a busca ao invés de completá- la, e é mostrado como retido, não inacabado.

Limites de repetição

Uma tampa por período, guiada pelo critério mais lento, além de uma refrigeração opcional antes de uma repetição pode contar.

Buscas em equipa

Progresso compartilhado sem atribuição por equipe publicada, então uma busca por equipe não pode se tornar um leaderboard.

Sessões de treino

Uma sessão de treino é um disco, não uma conversa. Tem um treinador, um colega a ser treinado, uma hora marcada, pontos de conversa acordados e um resumo escrito depois. Conversas reais, bilhetes e avaliações de QA são-lhe fixadas como evidência, por isso a conversa está ancorada ao trabalho que realmente aconteceu em vez de uma impressão lembrada.

Pontos de discussão

Concordo antes da sessão, então o companheiro de equipa não está a entrar numa surpresa.

Provas afixadas

Chats, tickets e avaliações de QA anexados à sessão. Um pino armazena uma referência — um tipo e um id — não uma cópia, então ele sempre aponta para o registro ao vivo. OpsIQ não verifica o ID antes de aceitá-lo.

Itens de acção

Cada um com um proprietário e uma data de vencimento. Um item passado da sua data é mostrado como atrasado — um estado derivado, não um status que alguém tem que lembrar de definir.

Nota privada

O treinador, que é treinado, nunca poderá lê-lo — não como agente, nem como gerente, nem enquanto proprietário. Essa verificação é feita antes de qualquer outra permissão e não pode ser anulada.

Quem pode ver uma sessão

O treinador, o companheiro de equipa e qualquer pessoa com a permissão para gerir a equipa.

Auditoria

Cada criação, atualização, pino, unpin e conclusão é gravado com o que mudou, por quem.

💡
O coaching é deliberadamente separado da pontuação e do dinheiro. Uma sessão não muda o índice de ninguém, não abre uma recompensa, e não aparece na tabela de classificação.

Recompensas e prémios

A atividade gravada converte em tokens com um valor de dinheiro que você definiu. O caminho para um pagamento é deliberadamente lento e cada passo é gravado.

1
Definir o valor do símbolo

Quantos tokens equivalem a quanto dinheiro, e o que cada atividade vale.

2
Autorizar o limite máximo financiado

Para um período de calendário fechado, um administrador completo indica o máximo de fichas que pode pagar. Salvar o formulário de configurações não autoriza um orçamento, e não pode alterar um teto que já foi autorizado.

3
Rever a antevisão

Os destinatários, reserva e a razão pela qual qualquer pessoa é inelegível. As disputas abertas de provas bloqueiam esta etapa.

4
Finalizar

A alocação é gravada permanentemente com a evidência por trás dela. Um período que alocou nada pode ser anulado e re- executado de imediato. Um que emitiu tokens deve ser invertido primeiro: OpsIQ escreve uma entrada compensatória contra cada carteira e nunca apaga o original, então o livro de registros ainda mostra o que aconteceu e por quê, e somente então é o período liberado. A inversão recusa se alguém já tiver descontado mais do que o montante recuperado, e nomes quem e por quanto.

⚠️
A qualidade da IA pode complementar esse julgamento, mas nunca substituí-lo, e um companheiro de equipe mostrado como Unscored não é elegível. Cada contribuidor está limitado a 25% acima da sua quota esperada do período, então um mês muito alto de volume não pode absorver todo o orçamento.
💡
O proprietário da conta não participa em prémios ou recompensas de fichas, sem qualquer mudança: autorizam o teto financiado e finalizam todas as alocações, e não há ninguém acima delas para aprovar o que estariam a pagar a si próprios.

Todos os outros participam por padrão, incluindo líderes de equipe e co-proprietários. Para deixar alguém de fora, abra- os em Equipe & Departamentos e desligue a opção Toma parte em prêmios e recompensas. Seu trabalho ainda é marcado e mostrado; eles deixam de ser candidatos a partir desse ponto, e nada já finalizado é tocado.

⚠️
Ninguém aprova o dinheiro para si mesmo. Porque as pessoas que podem participar também são as pessoas capazes de aprovar pagamentos, OpsIQ recusa um pagamento ou crédito na sua própria carteira, pagando a sua própria reivindicação, finalizando um período em que você seria pago, e finalizando uma premiação que você ganharia. Outro administrador completo ou o proprietário deve fazê-lo. Pague todas as reivindicações salta a sua e relata como ignorado, não falhou.

Quem pode ver e fazer o quê?

Ver o desempenho da equipa

O conselho, estado ao vivo, capacidade e visão geral de qualidade para o espaço de trabalho.

Gerenciar o desempenho da equipe

Alvos e pontuação, exportações, avaliações e scorecards de QA, treinamento, missões e as leituras que carregam dados de identificação de colegas como histórico per-admin e histórico de prêmios.

Ver as finanças da recompensa da equipe

Saldos, valores em dinheiro, notas de crédito e referências de pagamento — separados das provas de desempenho por serem adjacentes à folha de pagamentos.

Apenas administrador completo

Cada mutação monetária: pagar uma recompensa, pagar ou rejeitar um crédito, autorizar um orçamento, finalizar, anular ou reverter uma atribuição, e definir a taxa token-to-cash. Estes não podem ser delegados através da concessão de uma autorização.

Usando-a de forma justa

O índice de desempenho é a evidência da gestão, não uma decisão automática de emprego. Abra as conversas de origem por trás de um número antes de agir sobre ele, e pesar complexidade do caso, horários, deixar e necessidades de acessibilidade. Uma única semana difícil não parece nada com um padrão sustentado.

Configurações

Seus sites (espaços de trabalho)

Sites (espaços de trabalho) permitem gerenciar vários sites a partir de uma instalação OpsIQ. Cada um tem seu próprio rastreamento, IA, conectores e acesso à equipe.

Sítios
Os seus sitesA tela dos sites: uma lista de espaços de trabalho, cada um com seu domínio, tipo, conector, crachá de status e um botão Abrir, além de Adicionar novo site.Os seus sitesespaço de trabalhoOs seus sites+ Adicionar novo siteSshop.acme.comeCommerce · Shopify connectorActivoAbrirHhost.acme.comHosting · WHMCS connectorActivoAbrirBblog.acme.comConteúdo · sem conectorConfiguraçãoAbrir1MULTI-SITEUm espaço de trabalho por local2ISOLATEDOs dados nunca se misturam3PER-SITEConfigurações próprias & conectores
A tela de Sites real: cada site é sua própria área de trabalho isolada (domínio próprio, conector e configurações), adicionada e aberta a partir de uma lista.

Criar um site

1
Ir para os Sites Conectados

Navegar para Sites Conectados.

2
Adicionar um novo site

Digite nome, domínio e descrição.

3
Copiar a chave do site

Cada site recebe uma chave única (site_xxx) para o trecho widget.

4
Configurar independentemente

Cada site tem sua própria IA, conectores e configurações.

Quantos sites posso ter?+

Depende do plano de licença. Verifique os detalhes da sua licença.

Configurações

Licença e plano

Sua licença OpsIQ controla recursos, limites do site e saldo de crédito IA.

Licença
Centro de LicençaO Centro de Licença OpsIQ _: plano, um crachá de status ativo, a chave de licença mascarada, um medidor de crédito IA e um botão de verificação forçada.Centro de Licençaespaço de trabalhoCentro de Licença OpsIQPlanoNegóciosEstadoActivoChaveOPSIQ-••• •-• •••-2F9CCréditos de IA$68 leftForçar a verificação remota1PLAN & STATUSAtivo, de relance2KEYHMAC- cached localmente3CREDITSSaldo e limites de IA
O verdadeiro Centro de Licenças: seu plano e status ativo, a chave mascarada, seu saldo de crédito de IA e uma força de um clique reverificar.
Chave de licença

Digite em Configurações > Licença. Validado contra o servidor de licença OpsIQ.

Batimento cardíaco da licença / validação

OpsIQ normalmente lê o cache da licença local assinado e atualiza a validação quando necessário. Use Forçar verificação remota quando você precisar de um resultado imediato; Diagnostics identifica DNS, HTTPS ou problemas de tempo do servidor.

Plano

Determina a disponibilidade e os limites das características.

Limite do site

Número máximo de espaços de trabalho.

Créditos de IA

Se usar IA gerenciada, seu saldo de crédito é mostrado aqui.

Termo

Renove antes do expirar para evitar a interrupção do serviço.

O que acontece quando a minha licença expirar?+

Seguimento, tickets e CRM continuam. As características de IA param até a renovação. Os dados são preservados.

Configurações

Perfil, senha e autenticação de dois fatores

Cada administrador pode manter sua própria identidade, preferências de trabalho, senha e autenticação de dois fatores.

Tela do produto
Meu perfilA página de perfil separa detalhes pessoais, idioma/tempo, avatar/assinatura, senha e autenticação de dois fatores.Meu perfilespaço de trabalhoPERFILCompletarTIMEZONEEuropa/Atenas2FAActivadoCONCEITO AO LIVRO DA ESPAÇO DE TRABALHONome e e- mailIdentidade pessoalEditarLíngua e fuso horárioDatas e interfaceEditarAvatar e assinaturaRespostas e presença da equipaEditarSenha e 2FAProtecção da contaSeguro1UPDATE PROFILEIdentidade e localização2SECURE LOGINSenha e 2FA3SAVEAplicar a este administrador
A página de perfil separa detalhes pessoais, idioma/tempo, avatar/assinatura, senha e autenticação de dois fatores.

As configurações do perfil pertencem ao administrador assinado e não alteram a marca de espaço de trabalho. Use uma senha única e habilite a autenticação de dois fatores. Alterar uma configuração de email ou autenticação pode requerer re- verificação ou um novo login.

Configurações

Preferências de notificação

As preferências de notificação controlam quais eventos operacionais chegam a um administrador no produto ou por e-mail.

Tela do produto
Preferências de notificaçãoA página de notificação fornece opções por evento no aplicativo e email, além de uma lista de notificações recente.Preferências de notificaçãoespaço de trabalhoIN-APPLigadoEMAILSeletivoUNREAD4CONCEITO AO LIVRO DA ESPAÇO DE TRABALHOBilhete atribuídoIn-app e emailLigadoO cliente respondeu:In-aplicativoLigadoRisco de SLAIn-app e emailLigadoAprovação da IAIn-app e emailLigado1CHOOSE EVENTSApenas sinais úteis2CHOOSE CHANNELIn-app ou email3REVISÃONotificações recentes
A página de notificação fornece opções por evento no aplicativo e email, além de uma lista de notificações recente.

Preferências cobrem atribuição de ticket, respostas ao cliente, avisos SLA, transferência de chat e eventos de aprovação de IA. Mantenha os sinais operacionais urgentes ativados em algum lugar; desligando o email não necessariamente desliga a notificação no aplicativo.

Configurações

Visão geral da segurança

A Visão Geral de Segurança é a primeira tela para avaliar blocos, ataques de login, sessões de ameaças, tendências de segurança e integridade do evento.

Tela do produto
Visão geral da segurançaVisão geral de segurança combina as cartas de risco atuais, uma tendência 14-dia, lista de atacantes, feed de eventos e status de integridade.Visão geral da segurançaespaço de trabalhoACTIVE BLOCKS18FAILED LOGINS42HIGH THREAT3CONCEITO AO LIVRO DA ESPAÇO DE TRABALHOBloqueado automaticamente7_-dia total e fonteTendênciaÚltimos atacantesIP, país e razãoRevisãoEventos de segurançaRisco e resultado da acçãoAlimentaçãoIntegridade da cadeia de HashCadeia de eventos evidentesVálido1READ HEADLINEExposição atual2OPEN EVIDENCEAtacantes e eventos3ACTOBloquear, investigar, exportar
Visão geral de segurança combina as cartas de risco atuais, uma tendência 14-dia, lista de atacantes, feed de eventos e status de integridade.

Use os cartões de título para triagem, então abra a auditoria relacionada, Logins Falhados, Bloqueado IPs ou JavaScript Página de erros para o trabalho em nível de registro. The 14- a tendência do dia é mais útil do que um único pico. Sessões de alta ameaça devem ser investigadas contra o visitante, solicitação e evidência de autenticação antes que um bloco permanente seja aplicado.

Configurações

Registo de auditorias «tamper-evident»

O registro de auditoria registra quem fez o que, quando, para qual objeto, em que nível de risco e se conseguiu.

Tela do produto
Auditoria das actividadesA página de auditoria fornece atividade evidente e inviolável com ação, ator, risco, alvo e resultado.Auditoria das actividadesespaço de trabalhoEVENTOS18.2kHIGH RISK21INTEGRITYVálidoCONCEITO AO LIVRO DA ESPAÇO DE TRABALHOConector ativado[email protected] · ShopifySucessoAPI key revoked[email protected] · chave 19SucessoConfigurações alteradas[email protected] · AISucessoPermissão negada[email protected] · exportBloqueado1FILTERAcção, risco e actor2INSPECTOAlvo e resultado3EXPORTCSV ou JSON
A página de auditoria fornece atividade evidente e inviolável com ação, ator, risco, alvo e resultado.

Filtrar por ação, risco e ator; exportar CSV ou JSON A cadeia de hash ajuda a detectar linhas de auditoria em falta ou alteradas, mas não substitui backups protegidos e acesso restrito ao banco de dados. Tratar as exportações de auditoria como sensíveis porque podem identificar usuários, registros e ações de segurança.

Operações

Diagnósticos

O diagnóstico transforma os controlos de subsistemas em resultados de saúde simples e ingleses e direciona as próximas ações.

Tela do produto
DiagnósticosDiagnósticos agrupam verificações de saúde para o widget, IA, tickets, integrações, Inteligência do Site, tarefas de fundo, automação CRM, licenciamento e armazenamento.Diagnósticosespaço de trabalhoSAÚDE13WARNING2FALHO1CONCEITO AO LIVRO DA ESPAÇO DE TRABALHOWidgetEndpoints de Beacon e chatSaudávelTarefas de baseBatimentos cardíacos de Cron tardiosAtençãoE- mailFalha no teste de saídaFalhaConectoresIngestão de registo e de eventosSaudável1REFRESHExecutar verificações atuais2OPEN WARNINGLer as provas3FIX AND RETESTConfirmar a recuperação
Diagnósticos agrupam verificações de saúde para o widget, IA, tickets, integrações, Inteligência do Site, tarefas de fundo, automação CRM, licenciamento e armazenamento.

A página verifica a velocidade do site, rank/keyword/backlink/dados locais, IA e gateway de ação, tickets, rastreador/auditorias, integração/atenção de eventos, tarefas de fundo, automação CRM, licença, widget e serviços de produto relacionados. Ele intencionalmente relata causas legíveis pelo operador em vez de expor segredos brutos.

Após uma mudança, atualizar e confirmar o subsistema afetado retorna saudável. Uma página de diagnóstico verde é necessária, mas não suficiente para o lançamento; completar a lista de verificação Pré-lançamento também.

Configurações

Segurança e acesso

OpsIQ inclui várias camadas de segurança para proteger seu administrador, dados e API acesso.

Como funciona
Segurança e acessoUm escudo de segurança ao lado dos controles habilitados: dois fatores, OIDC SSO, SCIM 2.0, OAuth2 PKCE, CSRF/CSP, IP firewall, limites de taxa e um cofre secreto.Dois fatores (TOTP)SSO OIDCSCIM 2.0OAuth2 PKCECSRF + CSPIP firewallLimites de taxaCofre dos segredos
Segurança

Elementos de segurança

Autenticação de administração

E-mail/senha com 2FA opcional.

Bloqueio de login

Trava temporária após muitas tentativas falhadas.

IP blocking

Bloquear IPs ou CIDR varia de acessar sites rastreados.

Pontuação de ameaça

Os visitantes de alta ameaça podem ser bloqueados automaticamente.

Aplicação do HTTPS

Necessário para todas as conexões. HTTP redireciona para HTTPS.

Cabeçalhos HSTS

A segurança de transporte rigoroso evita ataques degradados.

Proteção contra FRSC

Todos os formulários de administração incluem tokens CSRF.

Proteção XSS

Todos os dados do usuário escapam. Os cabeçalhos CSP restringem a execução de script.

Proteção contra FRSS

Os webhooks de saída bloqueiam endereços privados/internos IP _.

Configuração recomendada

1
Activar 2FA

Para todas as contas de administração.

2
Senhas fortes

Minimum 12 characters, mixed.

3
Contas de revisão

Remover o acesso para antigos membros da equipa.

4
Monitorar logins falhou

Verifique semanalmente padrões suspeitos.

5
Manter actualizado

Aplicar atualizações prontamente para patches de segurança.

Configurações

Funções e permissões

O Controle de Acesso Baseado em Role permite controlar o que cada membro da equipe pode fazer.

Funções & permissões
Funções e permissõesUma matriz de função por capacidade: O proprietário tem tudo; o administrador completo não possui faturamento e zona de perigo; o agente só tem tickets.Funções & permissõesespaço de trabalhoCONSTITUIÇÕESFATURAÇÃOPERIGOCITKETSProprietárioAdministrador CompletoAgentescoped13 ROLESProprietário · Admin. completo · Agente2GRANULARPor página + por departamento3DEFAULT-DENYRotas esquecidas bloqueadas
A matriz de papel em um relance: Proprietário recebe tudo, Administre tudo, exceto faturamento e zona de perigo, Agente apenas seus tickets escopo.

Funções por omissão

Proprietário

Tudo, incluindo licença, zona de perigo e gerenciamento de instalação.

Administrador Completo

Tudo, excepto a licença e a zona de perigo.

Agente

Responda a tickets e chats de departamento atribuído, veja análises. Sem configurações, equipe ou acesso à segurança.

Posso criar papéis personalizados?+

Três papéis incorporados e mais tarefas de departamento dão controlo granular.

Configurações

Bloqueado IPs

Gerencie endereços IP bloqueados de acessar seus sites rastreados.

Bloqueado IPs
Bloqueado IPsOs bloqueados...IPs ecrã: um bloco- a-IP/CIDR form ao lado de uma tabela Endereços Bloqueados com cada entrada, data, razão e um botão Unblock.Bloqueado IPsespaço de trabalhoBloquear uma IP / CIDR203.0.113.0/24Razão (facultativo)BlocoEndereços bloqueados203.0.113.9Jun 12 · força brutaDesbloquear45.12.0.0/16Jun 10 · spamDesbloquear102.89.6.2Jun 9 · abusoDesbloquear1BLOQUEIOIP ou intervalo CIDR2LISTQuem & quando, com razão3UNBLOCKUm clique
O verdadeiro Bloqueado IPs ecrã: bloquear um único IPou um intervalo CIDR, e gerenciar a lista, cada um com sua data, razão e um-clique desbloquear.

Como bloquear

1
Vá para Segurança > Bloqueado IPs

2
Adicionar um intervalo IP ou CIDR

Exemplo: 203.0.113.42 ou 203.0.113.0/24

3
Adicionar uma razão

Documento por que: spam, abuso, raspagem, etc.

O bloqueio afetará os usuários legítimos?+

Se os clientes partilham uma empresa IP ou VPN, bloqueando isso IP Bloqueia toda a gente.

Configurações

Falha ao iniciar sessão

Todas as tentativas de login mal sucedidas para o seu administrador OpsIQ.

Falha ao iniciar sessão
Falha ao iniciar sessãoA tela de logins falhou: uma tabela de contas/IPs com contagens de falhas, tempo da última tentativa, e um botão Block por linha.Falha ao iniciar sessãoespaço de trabalhoErro ao tentar a autenticaçãoCONTA / IPFALHOÚLTIMAACÇÃO[email protected] · 41.62.10.472m atrásBloco[email protected] · 102.89.6.2318m atrásBlocodesconhecido · 45.12.9.71226m atrásBloco[email protected] · 88.21.4.921h háBloco1WATCHErro ao tentar a autenticação2COUNTSPor conta / IP3ACTOBloquear da linha
A tela de logins falhando real: cada conta/IP com sua contagem de falhas e última tentativa, bloqueie uma fonte bruta-força diretamente da linha.

O que cada item mostra

Data/hora

Quando a tentativa aconteceu.

E- mail

Endereço de e- mail utilizado.

IP address

Fonte da tentativa.

País

Localização geográfica.

Justificação

Senha errada, bloqueada ou não encontrada.

Sinais de aviso

Muitas tentativas, mesmo email

Adivinhar senha. Certifique-se de que 2FA está habilitado.

Muitas tentativas, diferentes e-mails

Ataque automatizado. Bloqueie a fonte IP.

Países não comuns

Se a sua equipa é local, tentativas estrangeiras são provavelmente ataques.

Configurações

Analista de segurança de IA

Uma camada de analista opt-in sobre as páginas de segurança: vereditos, resumos de incidentes, um digest diário, uma verificação semanal da postura, Ask Security e políticas de bloco 0-token. Ele nunca é executado no caminho de solicitação do visitante.

Cada página de segurança registra o que aconteceu, mas ler ainda é preciso julgamento. O analista de segurança da IA adiciona esse julgamento no lugar, e ele é construído para gastar quase nada: nunca fica na rota do sinal ou login, regras determinísticas resolvem os casos óbvios sem chamada de IA, veredictos são guardados em cache, e a melhor saída do analista é uma regra determinística que então impõe para sempre em zero tokens. Configurações → Segurança; todos os valores padrão desligados.

O que ele adiciona

Chips de veredito + Explicar

Bloqueado IPs e as linhas de Logins Falhados mostram um chip benigno / suspeito / hostil com uma pontuação de confiança. Explique abre o raciocínio, os fatos usados, e ações de Bloco / Lançamento de um clique. 24h, por isso re-viewing um IPé livre.

Sucursais de incidentes

Related events cluster into one incident (login wave, URL scan, auto-block burst) with a plain-English timeline and one recommended next step. Ongoing attacks fold into the same incident.

Digerir diariamente

Um recapitulador por dia: ontem contra a linha de base, blocos, incidentes e a única coisa a fazer. Dias silenciosos enviam um determinístico tudo claro em zero fichas.

Verificação semanal da postura

Uma lista de verificação de endurecimento segunda-feira (2 lacunas FA, limite lockout versus volume real de ataque, alertas off) com uma gravidade, esforço e correção exata por item.

Perguntar Segurança

Uma caixa de perguntas sobre a Visão Geral da Segurança que responde do seu estado de segurança ao vivo. Perguntas profundas do servidor são entregues ao chat do engenheiro administrativo em vez de adivinhadas.

Propostas políticas + piloto automático

O analista propõe regras de blocos concretos como Aprovar / Demitir cartões; regras aprovadas aplicam em zero tokens com um contador de hit ao vivo. Piloto automático opcional aprova apenas as regras mais seguras automaticamente.

Configurações

Analista de segurança IA (security_ai_enabled)

Master switch. Enables verdict chips, Explain, and Ask Security. Only ambiguous IPs reach the model, batched into one call.

Sucursais de incidentes (security_ai_incidents)

Agrupa os eventos em incidentes e escreve cada nova história. Funciona no cron de segurança existente por hora.

Digest diário (security_ai_digest)

Uma recapitulação de segurança por dia no sino e na visão geral. Dias tranquilos não custam nada.

Verificação semanal da postura (segurança_ai_posture)

Lista de verificação de endurecimento na segunda-feira sobre a Visão Geral. A lista é totalmente determinística.

Piloto automático da política (security_ai_autopilot)

Permite que o analista ative suas propostas mais seguras sem atenção: blocos reversíveis limitados em tempo, únicos IPs ou gamas não maiores do que /24, nunca partilhado/móvel/privado, com tampa 10 por hora, sempre auditado e inutilizável.

💡
Cada chamada é marcada security_ai com seu próprio boné mensal em AI Config → Cost Guardrails (padrão 300k tokens). Se o cap for atingido, as características degradam-se para leituras determinísticas. Bloqueamento, bloqueios e alertas nunca dependem deste orçamento. O analista nunca pode excluir dados, alterar configurações, tocar no livro de auditoria ou fazer uma proibição permanente.
Operações

Cron e automação

OpsIQusa um programador de produtos para executar pesquisas por e-mail, automação de tickets, rolagem de análises, retenção, filas de IA,CRMtrabalho, relatórios e trabalhos de ligação.

Tela do produto
Cron e automaçãoUm produto cron intry fornece o batimento cardíaco; OpsIQ decide quais trabalhos internos são devidos.Cron e automaçãoservidorCARNE DE CORAÇÃOA cada minutoRUNNERcron/all.phpHEALTHConfiguraçõesCONCEITO AO LIVRO DA ESPAÇO DE TRABALHOCorredor de produtos unificadosopsiq/cron/all.phpNecessárioFilas de ticket e emailTrabalho curto programadoActivoAnálise e retençãoCadência internaAgendadoAssinantes de ligaçãoEventos cron declaradosÂmbito de aplicação1INSTALL ONE LINEExecute o agendador de produtos a cada minuto2CHECK CRON SETUPConfirmar batimentos cardíacos de CLI3USE DIAGNOSTICSInvestigar trabalho tardio ou falhado
Um produto cron intry fornece o batimento cardíaco; OpsIQ decide quais trabalhos internos são devidos.

Entrada de cron de produto necessária

Adicione esta linha única ao crontab para o mesmo servidor e ambiente PHP que executa OpsIQ:

Entrada OpsIQ do produto crontab
* * * * * php /path/to/opsiq/opsiq/cron/all.php >> /tmp/opsiq-cron.log 2>&1

Substituir /path/to/opsiq com a raiz de instalação. Use o caminho CLI PHP completo quando a máquina necessitar de uma, por exemplo /usr/bin/php8.4.

Não usar o nível superior /cron.php para o trabalho de produto. In this repository that runner belongs to a separate non-product service outside this handbook. The OpsIQ product runner is opsiq/cron/all.php.

O que o agendador unificado dirige

Filas de ticket e IA

Processos devidos auto-respostas, escalações, aprovações e outros trabalhos de produto em fila.

E- mail de entrada

As urnas configuradas são as caixas de correio onde a sondagem é o método de admissão seleccionado.

Análise e sessões

Monta sessões e atualiza agregados agendados quando eles são devidos.

CRM e compromisso

Executa as tarefas de pontuação, ciclo de vida, fluxo de trabalho, campanha e relatório programado que estão habilitados.

Retenção e manutenção

Realiza limpeza, arquivo, expiração e integridade de trabalho.

Conectores

Envia assinantes de cron conectores e votação apenas para conectores instalados, habilitados e configurados.

Verificar o cron

  1. Abrir Configurações - Configuração do Cron e confirmar a existência do corredor de produtos.
  2. Utilização Corre agora. uma vez, então confirme a atualização do administrador e batimento cardíaco das pesquisas.
  3. Verificar Diagnósticos para um batimento cardíaco tardio, PHP CLI, banco de dados ou problema de caminho-a-ficheiro.
  4. Inspecionar /tmp/opsiq-cron.log ou o caminho de log que você selecionou quando uma execução manual falhou.

Mantenha os manipuladores de conectores curtos, idempotentes e com espaço de trabalho. Sincronização longa em lote e guarde um cursor/ponto de verificação para que a próxima execução possa continuar com segurança.

🚫
When the product cron stops, time-based OpsIQ work stops or becomes late even though ordinary admin pages may still load.
Operações

Operações de implantação hospedadas

A hosted OpsIQ deployment uses the same product screens and workflows while the hosting operator manages the server layer. Commercial sign-up, plans, billing and account-portal procedures are outside this handbook.

Tela do produto
Implementação hospedadaA operação hospedada muda quem mantém a infraestrutura; ela não altera como os clientes usam OpsIQ.Implementação hospedadaespaço de trabalhoPRODUCT UIMesmo OpsIQINFRASTRUCTUREOperador-geridoWORKSPACE DATAIsoladoCONCEITO AO LIVRO DA ESPAÇO DE TRABALHOTempo de execução da aplicaçãoPHP, servidor web e banco de dadosGerenciadoCron de produtoProgramado pelo operador de hospedagemVerificarCópias de segurança e atualizaçõesPolítica e provas do prestadorRevisãoOpsIQ settingsSites, IA, equipe e conectoresA tua equipa.1OPERATE OPSIQ NORMALLYUtilizar a mesma navegação de produtos2VERIFY SERVICE HEALTHUtilizar diagnósticos e provas de estado3KNOW RESPONSIBILITYSeparar configurações de produto do trabalho de hospedagem
A operação hospedada muda quem mantém a infraestrutura; ela não altera como os clientes usam OpsIQ.

O que o operador de hospedagem normalmente gerencia

  • Servidor Web, PHP runtime, serviço de banco de dados, TLS e armazenamento.
  • O cron de produto unificado e seus logs de nível de servidor.
  • Atualizações de aplicativos, monitoramento de infraestrutura e o processo de backup definido pelo contrato de hospedagem.

O que um administrador OpsIQ ainda gerencia

  • Sites e instalação de widgets, configurações de IA, conhecimento, caixas de correio e fluxos de trabalho de suporte ao cliente.
  • Acesso à equipe, departamentos, controles de segurança, chaves API, conectores, automações e configurações de retenção de dados.
  • Verificação do produto através de diagnósticos, o log de auditoria, testes de conectores e verificações reais de ponta a ponta.

Controlos operacionais

Não assuma que um serviço gerenciado significa que cada integração de produtos é saudável. Confirme as últimas evidências de backup e política de retenção com o operador de hospedagem, e use OpsIQ Diagnóstico após alterações ao DNS, e-mail, provedores de IA, sites ou conectores.

Esta seção abrange apenas operações de produtos. A integração comercial, assinaturas, faturamento e administração cliente-conta permanecem fora do manual OpsIQ _.

Operações

Auto-apresentação OpsIQ

Uma auto-anfitriã OpsIQ a instalação é executada na infraestrutura que você controla. Você é responsável pela execução, banco de dados, TLS, cron de produto, backups, atualizações e monitoramento.

Tela do produto
Auto-anfitriõesA auto-alojamento dá controle de infraestrutura e torna sua equipe responsável por cada dependência operacional.Auto-anfitriõesservidorPHP8.4+DATABASEMySQL 5.7+SCHEDULERA cada minutoCONCEITO AO LIVRO DA ESPAÇO DE TRABALHOExtensões de tempo de execuçãocurl, pdo_mysql, mbstring, jsonNecessárioExtensões adicionaisxml, openssl, zip, intl, gdNecessárioAlternativa de banco de dadosMariaDB 10.3+ com InnoDBSuportadoTransportesHTTPS e acesso ao provedor de saídaVerificar1PREPARE THE SERVERCorresponder aos requisitos de execução2INSTALL AND CONFIGUREUsar um banco de dados dedicado e HTTPS3ADD PRODUCT CRONExecutar opsiq/cron/all. php
A auto-alojamento dá controle de infraestrutura e torna sua equipe responsável por cada dependência operacional.

Contrato de software mínimo

PHP

PHP 8.4 ou mais recente. Extensões necessárias: curl, pdo_mysql, mbstring, json, xml, opensl, zip, intl e gd.

Base de dados

MySQL 5.7+ ou MariaDB 10.3+ usando o InnoDB. Crie um banco de dados dedicado e usuário menos privilegiado da aplicação.

Servidor Web

Apache ou Nginx configurado para o controlador frontal OpsIQ, ativos estáticos e reescritas necessárias.

HTTPS

Necessário para sessões de administração, tráfego de widgets, chaves API, webhooks e chamadas de provedor.

Acesso de saída

Permitir acesso DNS e HTTPS aos terminais de IA, email, conector e licença que você realmente habilita.

Acesso ao arquivo

Os usuários da Web e CLI devem ser capazes de ler arquivos de aplicativos e escrever apenas para os locais documentados de execução/armazenamento.

Cron

Execute o agendador de produtos OpsIQ a cada minuto com a mesma configuração da aplicação e acesso ao banco de dados como o processo web.

Sequência de instalação

  1. Envie a versão para o root do documento pretendido e preserve a estrutura de diretório fornecida.
  2. Crie o banco de dados e usuário do aplicativo, então insira o banco, configurações canônicas URL e de licença.
  3. Execute o fluxo de instalação/setup e crie a primeira conta do proprietário.
  4. Habilitar HTTPS e verificar redirecionamentos, cookies e o widget público/API caminhos.
  5. Adicionar o cron de produto OpsIQ unificado:
Cron de produto auto-hospedado
* * * * * php /path/to/opsiq/opsiq/cron/all.php >> /tmp/opsiq-cron.log 2>&1
  1. Abrir Configurações - Configuração e Diagnósticos do Cron; execute o agendador uma vez e resolva cada dependência falhada.
  2. Configure procedimentos de backup, restaure testes, retenção de logs e atualização antes de adicionar dados de produção.

Actualização segura

  1. Leia as notas de versão e verifique o PHP/extensions necessário antes de mudar arquivos.
  2. Faça backup do banco de dados e arquivos de configuração/aplicação, então prove que o backup pode ser restaurado em um local de teste.
  3. Implantar os novos arquivos sem excluir a configuração específica da instalação ou dados de execução.
  4. Execute o processo de migração/pré-voo fornecido e verifique login, rastreamento de widgets, tickets, email, IA, conectores e cron.
  5. Mantenha o backup de versão e banco de dados anterior disponível para a janela de rollback documentada.
🚫
O nível superior do repositório /cron.php não é o OpsIQ agendador de produtos. Automatização do produto ponto apenas em opsiq/cron/all.php.
⚠️
Não exclua . schema_cache.json como manutenção de rotina. Remova-o apenas quando as instruções do produto explicitamente exigirem uma reconstrução esquema-cache .
Operações

Guia de produção

Lista de verificação e melhores práticas para execução OpsIQ na produção.

Guia de produção
Guia de produçãoUma lista de verificação go- live: domínio personalizado e SSL, AI treinados, conectores e cron, backups e retenção, e papéis de equipe.Lista de verificação Go-liveespaço de trabalhoAntes de ires ao vivoDomínio personalizado + SSL configuradoIA treinou sobre o seu conteúdoConectores testados · cron runningBackups agendados · conjunto de retençãoFunções da equipe atribuídas e revisadas1GO-LIVELista de verificação pré-lançamento2VERIFYDomain · SSL · backups3CONFIDENTNave quando estiver verde
Uma lista de verificação go-live para que nada seja perdido: domínio + SSL, IA treinada, conectores testados e cron, backups e retenção, e papéis de equipe.

Antes de ir ao vivo

HTTPS configurado

SSL installed, HTTP redirects, HSTS enabled.

Cron em execução

Verifique através da página de diagnósticos.

IA testada

Converse como cliente. Verifique a precisão e o tom.

Widget instalado

Em todas as páginas do site. Verifique com Live Feed.

Cópia de segurança configurada

Banco de dados diário automatizado e backups de arquivos.

Erro ao registrar

Registro de erro PHP ativado e monitorado.

Equipa convidada

Todos os membros têm contas com papéis corretos.

Base de conhecimentos povoada

Pelo menos. 5-10 artigos.

Diário: Verifique o painel de controle, limpe a fila de tickets, verifique conversas com IA.

Semanalmente: Review IA Insights, atualize KB, verifique o desempenho da equipe, reveja a segurança.

Mensal: Analise tendências de análise, conectores de auditoria, atualize o treinamento de IA, verifique backups.

Operações

Lista de verificação pré-lançamento

Execute as portas de origem e complete verificações reais do produto antes de um lançamento ou primeiro lançamento da produção. Um comando estar disponível não é evidência de que ele passou em seu ambiente.

Tela do produto
Verificação da libertaçãoA visão de liberação mostra portas necessárias para serem executadas; ela não as pré-marca como passadas.Verificação da libertaçãoservidorFUGAPHP 8.4_SOURCE GATESExecutar localmenteOUTCOMEBaseada em provasCONCEITO AO LIVRO DA ESPAÇO DE TRABALHOExtensões necessáriasVerificar antes da suitePortãoVarredura de sintaxe do PHPTodos os arquivos PHP do projetoPortãoAvaliação de IA e PHPUnitExecutar quando as dependências estiverem presentesPortãoVerificação estática e do navegadorExecutar quando configuradoPortão1RUN THE CHECKSCapturar a saída real2FIX EVERY REQUIRED FAILURENão substitua os elementos de prova por suposições3TEST THE PRODUCTVerificar as viagens reais do utilizador
A visão de liberação mostra portas necessárias para serem executadas; ela não as pré-marca como passadas.

Portões de origem e de libertação

Execute as verificações do repositório a partir da raiz de instalação e mantenha sua saída completa com o registro de lançamento.

Porta primária de pré-voo
php tools/preflight.php
Porta de libertação alargada
php tools/release_gate.php

O pré-voo verifica o PHP 8.4 runtime e extensões necessárias, executa uma varredura de sintaxe do PHP, executa a porta de avaliação de IA e suíte PHPUnit completo, e executa as verificações PHPStan/Node quando essas ferramentas são instaladas. O gate estendido também inclui fumaça, instalação limpa/esquema e verificação final do navegador quando seu ambiente está configurado.

Uma verificação ignorada não é um passe. Grave por que não estava disponível, instale a dependência em falta ou execute-a no ambiente correto de CI/estacionamento antes da liberação.

Controlos dos produtos

1. Autenticação e funções

Entrar como cada função pretendida; verificar páginas/ações permitidas e negadas.

2. Widget e rastreamento

Carregar um site real em um navegador privado; verificar o tráfego de beacon, Live Feed, visitante e registros de sessão.

3. Conversa e IA

Faça perguntas representativas; verifique o conhecimento aterramento, segurança, escalada e história de IA.

4. Bilhetes

Criar, atribuir, responder, escalar, fechar e reabrir através de cada caminho habilitado para a entrada.

5. E-mail

Testar a entrega de saída e cada caixa de correio ou caminho webhook configurados.

6. CRM e análise

Crie um contato/deal/conversão controlado e verifique painéis, funis, pontuação e relatórios.

7. Conectores

Execute testes de conexão, uma leitura, uma execução segura e um caminho seguro para cada conector habilitado.

8. API e anzóis de rede

Verifique escopos estreitos, limites de taxa, repetições idempotentes, assinaturas e manipulação duplicada.

9. Cron

Execute o agendador de produtos unificado e confirme todos os batimentos cardíacos necessários em Cron Setup/Diagnostics.

10. Segurança

Verificar 2FA, CSRF/controlos de sessão, entradas de auditoria, revogação chave e isolamento do espaço de trabalho.

11. Backup e restauração

Restaurar um backup atual em um ambiente de teste separado e verificar dados e configuração.

12. Observabilidade e retrocesso

Confirme logs/alertas, preservar IDs de solicitação e provar o procedimento de retrocesso.

⚠️
Implantar apenas depois de cada portão necessário e jornada comercial-crítica tem evidências atuais para a liberação exata e ambiente.
Desenvolvimento

Web Push em sites de terceiros

Notificações de push do navegador (incluindo OpsIQ Push Campaigns) precisa de um trabalhador de serviço servido a partir da mesma ORIGEM como a página.OpsIQ o widget carrega a partir do seu OpsIQ implantação, então um site de terceiros não pode registrar OpsIQ O trabalhador diretamente. Hospede um pequeno arquivo no próprio domínio do site para habilitar o push lá. As campanhas entregam através de ambos os métodos suportados.

Como funciona
Push na WebUma notificação de push do OS acima de duas cartas de método de entrega: VAPID embutido e Pusher Beams.A sua lojaSeu carrinho está esperando · 10% desligo hojeAgoraIncorporado (VAPID)Nenhum terceiroMáquina um arquivoVigas de empurradorUse sua contaHospede o trabalhador
Push na Web

Por que isso é necessário

Os navegadores só permitem que uma página registre um trabalhador de serviço a partir da sua própria origem. O elemento carrega a origem cruzada da sua OpsIQ implantação, então ele não pode instalar o push worker em um site do cliente, até que você hospede o trabalhador na origem desse site, o widget silenciosamente ignora push (sem erro, sem assinatura). Você tem duas opções abaixo;OpsIQ Push Campanhas publicar através de ambos.

Opção A · Auto-hospedagem da Web Push (VAPID, nenhum terceiro)

1. Baixe o trabalhador de sua implantação OpsIQ: https://YOUR-OPSIQ/opsiq/opsiq-push-sw.js

2. Envie-o para o seu raiz da web Por isso é possível alcançar https://yoursite.com/opsiq-push-sw.js. O widget detecta automaticamente este caminho na própria origem da página e registra-a, nenhuma alteração de trecho necessária. (Ele usa um escopo estreito, para que nunca substitui um trabalhador de serviço que você já executa.)

Opcional: se você deve hospedá- lo em um caminho não padrão, aponte o widget para ele antes o trecho. Só é aceito quando a mesma origem:

Opcional · somente se o arquivo não estiver na raiz da web
<script>window.OpsIQ=window.OpsIQ||{};window.OpsIQ.pushSwUrl="/custom/opsiq-push-sw.js";</script>

3. Em OpsIQ, gerar chaves VAPID (Configurações → Chat do cliente IA → Avançado → Web Push). O widget então pede permissão de notificação aos visitantes e assina-os.

Atrás de um CDN/Cloudflare Certifica-te /opsiq-push-sw.js retorna HTTP 200 (expurgar o tesouro se foi 404 antes de você enviar; um cache 404 bloqueará o registo).

Opção B · Vigas de empurrador (fornecedor gerido)

1. In OpsIQ settings set the push provider to Vigas de empurrador E entra no teu feixe ID da instância e Chave secreta.

2. Hospede o trabalhador de serviço dos feixes na raiz do site como /service-worker.js. Entendido https://YOUR-OPSIQ/opsiq/pusher-beams-service-worker.js, ou mesclar esta linha no seu root worker existente:

Trabalhador de feixes, host em https://yoursite.com/service-worker.js
importScripts("https://js.pusher.com/beams/service-worker.js");

3. O widget carrega automaticamente os feixes SDK e assina cada visitante para o interesse por site opsiq-site-<your-site-key>Não é necessário mais fios.

Como as campanhas são realizadas

Push Campanhas publicar através both métodos de uma vez: os visitantes no trabalhador VAPID auto- hospedado obter o Web Push criptografado, e os visitantes subscritos via Pusher Beams obter o Beam's publicar. Cada visitante é alcançado através de qualquer que eles assinaram, para que você possa executar VAPid mesma origem em alguns sites e beams cross-origin em outros.

HTTPS é necessário para os trabalhadores de serviço e Web Push (localhost está isento para testes). A caixa de entrada do chat do administrador já usa o mesmo mecanismo de interesse Beams para alertas de operador.

Operações

Resolução de Problemas

Problemas comuns e como corrigi-los.

Geral

Página em branco+

Verifique os registros de erro do PHP. Causas: PHP antigo (necessidade 8.4+), extensão em falta, conexão DB falhou, permissões de arquivo erradas.

Painel mostra zeros+

Check: widget installed? Cron running? Date range correct? IP excluded?

IA

A IA não responde+

Check: provider configured? API key valid (use Test connection)? Budget exhausted? Workspace AI config correct?

AI dá respostas erradas+

Verifique: base de conhecimento atualizada? Promova claro? Procuras por conectores retornando dados corretos? Reveja a conversa em AI History.

A IA é lenta+

Depende de: provedor API velocidade, tamanho do contexto (grande KB = mais tokens = mais lento), latência da rede. Tente um modelo mais rápido.

Rastreamento

Falta o elemento+

Verificar: script na página fonte? Erros JS no console? Bloqueamento CSP? Blocker de anúncios?

País desconhecido+

GeoIP não configurado. Use Cloudflare (automático) ou banco de dados MaxMind GeoLite2.

Bilhetes

E- mails não criam tickets+

Check: mailbox connected? Cron running? App password changed? IMAP settings correct?

Resposta automática não funciona+

Verificar: habilitado? O departamento permitido? AI configurado? Cron em execução? O humano respondeu primeiro?

Conectores

A ligação falhou+

Verificar: credenciais corretas? Chave expirada? API acessível do servidor? Base URL Correcto?

Ligado, mas sem dados+

Check: API key scopes? Webhook sync enabled? Cron running?

Desempenho

Páginas lentas+

Verificar: desempenho do banco de dados (SHOW PROCESSSLIST), memória PHP (aumento para 1GB), habilitar opcache, reduzir período de retenção.

Operações

O elemento não regista as visitas

Use esta verificação focada quando o widget carrega incorretamente ou Live Feed permanece vazio.

Quando widget não está registrando visitas, verificar a chave do site, carregar a página em um navegador privado, verificar o navegador Rede / Console painéis para pedidos bloqueados beacon ou widget, rever Conteúdo-Segurança-Política e bloqueadores de anúncios, confirmar que o site está ativo em OpsIQ Uma bolha de bate-papo visível não prova por si só que o farol analítico foi aceito.

Referência

Glossário

Definições para termos usados ao longo de OpsIQ.

Acção

Algo que a IA pode fazer através de um conector ou da plataforma.

Agente

Um membro da equipa com acesso limitado, ou um agente de IA.

BYOK

Traga sua própria chave, você fornece sua própria tecla IA API.

Conector

Um plugin integrando uma plataforma externa com OpsIQ.

CSAT

Pontuação de satisfação do cliente.

Dar

Uma oportunidade de receita no CRM.

Departamento

Uma categoria de ticket para roteamento e controle de acesso.

Escalação

Mudar um bilhete para outro departamento ou de IA para humano.

GeoIP

Detecção de localização do visitante IP Endereço.

Desvio

A transferir uma conversa de IA para humana.

Inscrição de identidade

Inscrição assinada identificando um visitante do site.

Base de conhecimentos

Artigos que a IA usa para responder às perguntas.

Chumbo

Uma visita que mostra intenção de compra.

Pontuação do chumbo

0-100 número que indica a probabilidade de conversão.

Fase do ciclo de vida

Onde um cliente está: Churned, Prospect, Cliente, em risco.

IA Gerenciada

AI fornecido como parte de seu plano OpsIQ.

Pipeline

Conselho visual de fases do acordo.

RBAC

Controle de acesso baseado em funções.

Sessão

Uma série de visualizações de página dentro de uma janela de tempo limite.

Chave do site

Identificador único para um site rastreado.

SLA

Acordo de Nível de Serviço, tempo de resposta do alvo.

Token

Unidade de texto da IA. 4 caracteres = 1 token.

Camada de Confiança

Sistema de segurança que controla a autonomia da IA.

Webhook

Chamada HTTP para notificações de eventos.

Widget

JavaScript code embedded on your website.

Espaço de trabalho

Um site com o seu próprio rastreamento, IA, conectores e equipe.

Referência

- Arranja mais ajuda.

Se esta documentação não responder à sua pergunta:

Administração IA

Clique em "Pergunte OpsIQ" no administrador. Tem acesso a esta documentação e aos dados da sua plataforma.

ticket de suporte

Incluir: o que você tentou, o que aconteceu, o quê você esperava, e quaisquer mensagens de erro.

E- mail

Suporte de e-mail com a chave de licença e descrição do problema.

Dicas para pedidos de suporte eficazes

Incluir a página

Qual página de administração (URL ou nome).

Incluir a configuração

Nome de configuração e valor atual exatos.

Incluir o erro

Mensagem de erro exata com códigos.

Incluir os passos

O que fizeste, passo a passo.

Incluir o esperado vs o real

O que deve acontecer contra o que aconteceu.

💡
Quanto mais específica sua solicitação, mais rápida a resposta. "Não funciona" requer investigação. "Clicar em Salvar na configuração de IA dá código de erro 502" recebe uma resposta direta.