Documentación de OpsIQ

Construir, operar y extender OpsIQ.

Esta es la documentación completa OpsIQ. Configurar el producto, ejecutar soporte, configurar AI, gestionar CRM, instalar el widget, construir conectores, llamar al REST API, recibir webhooks, aplicaciones de mercado de paquetes y operar implementaciones auto-anfitrionas.

Guía del clienteGuía de administradorGuía para desarrolladoresReferencia CRMSDK de ConectorAPI RESTAutoalojado
Alcance

Alcance de este manual

Todo OpsIQ lo hace, en un lugar: cómo funciona cada pantalla, cómo conectar sus propios sistemas y cómo construir sobre él. Comience a cualquier lado, las secciones siguen el mismo orden que la barra lateral de administración.

Alcance
Mapa de documentaciónEl manual está organizado en torno al producto OpsIQ, siguiendo el mismo orden que la barra lateral de administración.Mapa de documentaciónproducto OpsIQAUDIENCEOperadoresBUILDDesarrolladoresRUNAdministradoresVISTA DE ESPACIO DE TRABAJO EN DIRECTOUsar OpsIQPantallas de producto y flujos de trabajoIncluidoExtender OpsIQConectores, APIs y widgetIncluidoOperar OpsIQSeguridad, cron y despliegueIncluidoReferenciaPaquete, API y contratos webhookIncluido1CHOOSE AUDIENCEOperador o desarrollador2FOLLOW THE UIEspejo de secciones OpsIQ3USE SOURCE TRUTHEl estado viene de la compilación
El manual está organizado en torno al producto OpsIQ, siguiendo el mismo orden que la barra lateral de administración.
Guía de campo de Portal Studio

Utilice la guía de administrador y desarrollador dedicada para arquitectura del portal, páginas, componentes, vista previa, Centro de ayuda, identidad, SCIM, versiones reguladas, extensiones, migraciones y certificación.

Abrir la guía de Portal Studio

Qué hay aquí

Ejecutar el producto

Cada pantalla en el panel de administración: análisis, chat en vivo, tickets, CRM, base de conocimientos, inteligencia del sitio, promociones y el portal del cliente. Qué hace cada página, qué significan los números y qué hacer cuando se ven mal.

Conecte sus sistemas

El widget web, buzones de correo electrónico, juegos web entrantes y outbound, y la biblioteca del conector para plataformas comoShopify, WooCommerce, WHMCS, Zendesk, Stripe, SlackyGmail.

Construye tu propio

El Constructor de conectores para conetores sin código, Acciones y disparadores si prefiere no usar conecteurs en absoluto, y el REST API con cada acción, alcance y código de error.

Cómo operarlo

Roles y permisos, seguridad, cron, diagnóstico, copias de seguridad e implementación hospedada y autohospedada.

Por dónde empezar

1
Si corres OpsIQ día a día

Lee las secciones de la pantalla en orden de barra lateral, cada una abre con lo que es la página para que puedas detener tan pronto como tengas lo que necesitas.

2
Si usted lo administra

Añade Configuración, Seguridad, Diagnóstico, Cron y Producción: son las secciones que deciden si todo lo demás sigue funcionando.

3
Si estás creando una integración

Comience en Connectors, luego el Constructor de conectores, después el RESTAPIy webhooks. Lee esos en orden y habrás visto todos los caminosOpsIQpuede hablar con otro sistema.

💡
Dos cosas cambian lo que ves. Permisos ocultan páginas que tu papel no puede abrir, por lo que una sección descrita aquí puede faltar en la barra lateral. Pida a un administrador que revise su rol. Y los conectores llevan una etiqueta de madurez de Producción, Beta, Vista previa o Plantilla; el edificio de ejecución y su manifiesto de conexión son la autoridad en la cual uno tiene, no esta página.
Comience aquí

Lo que OpsIQ hace por su negocio

OpsIQ Reemplaza sus análisis, chat en vivo, servicio de asistencia técnica, CRM, kit de herramientas SEO, middleware de integración y plataforma para desarrolladores con un único administrador unificado donde cada herramienta comparte el mismo contexto del cliente. En lugar de juntarlos todos juntos. 8-12 Productos SaaS separados, usted instala OpsIQ Una sola vez y operar todo desde una pantalla.

La plataforma de
OpsIQ plataforma unificadaUn cerebro central de IA conectado a chat en vivo, CRM, tickets, inteligencia del sitio, promociones y análisis.Chat en vivoPromocionesCRM de IASitio de IntelBoletosAnálisisOpsIQCEREBRO DE IA1ONE WORKSPACETodas las herramientas en un solo administrador2SHARED BRAINUn contexto de cliente3ANYWHERENube o autoalojado
OpsIQ es una plataforma con un contexto de cliente compartido, cada herramienta alimenta y está alimentado por el mismo cerebro AI.

Todo OpsIQ hace · en detalle

Análisis de sitios web e inteligencia de visitantes

Seguimiento de visitantes en tiempo real

Cada página carga, clic, desplazamiento y evento de navegación se captura en tiempo real. Vea quién está en su sitio ahora mismo, qué páginas están viendo, cuánto tiempo pasan, y de dónde vienen, todo sin cookies de terceros.

Registro de visitantes y sesiones

Historial completo de cada visitante con dispositivo, navegador, sistema operativo, país, ciudad, referenciador, parámetros UTM, página de destino y resolución de identidad. Las sesiones agrupan las vistas de páginas en trayectos para que pueda ver la ruta completa que toma un visitante.

Repetición de sesión

Reproducción de estilo timeline de sesiones de visitantes capturadas. Vea exactamente lo que hicieron los usuarios: movimientos del ratón, clics, desplazamientos, transiciones de página y interacciones de formularios. Úselo para diagnosticar problemas UX, entender puntos de desembarque y verificar flujos de conversión.

Transmisión en vivo

Obtenga un flujo en tiempo real de la actividad del visitante a medida que ocurre. Vea las vistas de página, los inicios de chat, los envíos de formularios y las señales de intención actualizadas cada pocos segundos. Filtre por país, dispositivo o referencia para centrarse en segmentos específicos de tráfico.

Páginas principales

Páginas clasificadas por visitas, tiempo de interacción, tasa de rebote, conversiones y actividad de soporte. Identifica tu contenido con mejor rendimiento y las páginas que necesitan mejoras.

Inteligencia geográfica

Desglose por país, ciudad y región con mapas; distribución de dispositivos y navegadores, análisis de fuentes de tráfico, seguimiento de referencias de motores de búsqueda e información sobre penetración en el mercado.

Embudo de intención

Seguimiento de señales de intención del visitante (visitas de página, repetidas declaraciones, patrones de navegación de documentación y interacciones de apoyo) para identificar a los visitantes que son propensos a comprar, churn o necesitan ayuda.

Experimentos A/B

Ejecute pruebas divididas en su sitio web directamente desde OpsIQ. Cree variantes, establezca la asignación de tráfico, defina objetivos de conversión y mida la significancia estadística.

JavaScript Seguimiento de errores

Capture automáticamente los errores JavaScript del lado cliente de su sitio web. Vea mensajes de error, trazas de pila, navegadores afectados, conteos de frecuencia y qué páginas los desencadenan. Depurar problemas de interfaz sin monitoreo de errores separado.

Registro de eventos

Cada evento rastreado (visitas de página, eventos personalizados, interacciones de chat, presentaciones de formularios, compras) en un registro filtrable y búsquedable con metadatos completos.

Ventas y conversiones

Realice un seguimiento de los pedidos, ingresos, reembolsos, renovaciones de suscripciones y atribuya las conversiones a fuentes de tráfico, campañas y trayectos de visitantes. Paneles de control de ingresos con comparación de períodos y análisis de tendencias.

Clientes potenciales

Visitas de alta intensidad identificadas por patrones de comportamiento. Los resultados se basan en visitas de página, tiempo en el sitio, frecuencia de retorno, interacciones de apoyo y señales personalizadas.CRMoleoducto.

Inteligencia del sitio (SEO y análisis de contenido)

Rastreos de sitios

Rastreo automatizado de todo su sitio web para descubrir páginas, detectar enlaces rotos, encontrar metaetiquetas que faltan, comprobar el texto alternativo de la imagen, validar URLs canónico y mapear la estructura de su sitio. Programe rastreos para ejecutarlos diariamente, semanalmente o bajo demanda.

Auditoría SEO técnica

Análisis técnico completo: puntuaciones de velocidad de página, capacidad de respuesta móvil, Core Web Vitals, estado del certificado SSL, cadenas de redireccionamiento, detección de contenido duplicado, análisis de profundidad de rastreo y validación de datos estructurados.

Auditoría de contenido

Evalúa cada página para la calidad del contenido, el recuento de palabras, la puntuación de legibilidad, la densidad de las palabras clave, la estructura de los encabezados, la proporción de enlaces internos/externos y la frescura.

Búsqueda impulsada por IA

Haz preguntas en lenguaje natural sobre tu contenido y obtén respuestas sintetizadas por IA con referencias a las páginas de origen.

Seguimiento de rango SERP

Monitorea tus posiciones en los motores de búsqueda para las palabras clave objetivo en Google y otros motores, realiza un seguimiento de los cambios de posición a lo largo del tiempo, compara con la competencia y ve qué páginas se clasifican para qué términos.

Investigación de palabras clave

Descubre oportunidades de palabras clave en función de tu contenido, análisis de la competencia y datos del volumen de búsquedas. Obtén sugerencias para nuevos temas de contenido, variaciones de cola larga y objetivos de optimización de contenido.

Análisis de backlinks

Monitorea tu perfil de enlaces entrantes: mira qué sitios enlazan a ti, realiza un seguimiento de los enlaces nuevos y perdidos, analiza la distribución del texto de anclaje e identifica oportunidades para crear enlaces.

SEO local

Para empresas con ubicaciones físicas: visualiza tu visibilidad en la búsqueda local a través de una cuadrícula geográfica y observa cómo varían tus posiciones según la ubicación, la distancia desde tu empresa y la intención de búsquedas.

Sincronización del perfil de Google Business

Conecta tu perfil de Google Business a.OpsIQ. Sincroniza opiniones, publicaciones, preguntas y respuestas, fotos e información de la empresa.OpsIQ. Responda a las reseñas, publique publicaciones y supervise los datos.

visualHtml

Informes automatizados de SEO y análisis generados según su programación (diaria, semanal, mensual). Los informes incluyen cambios en el ranking, tendencias del tráfico, problemas técnicos encontrados y rendimiento del contenido.

Soporte impulsado por IA

Chat de IA del cliente

La IA responde a las preguntas de los clientes en su sitio web. 24/7 Crea y gestiona tu propia formación personalizada utilizando tu base de conocimientos, los datos de la plataforma conectada (pedidos, cuentas, suscripciones) e instrucciones de formación personalizadas.Anthropic), GPT-4o (OpenAI), Gemini (Google), y Grok (xAI).

Asistente de IA

Un copiloto de IA dentro del panel de administración que te ayuda a escribir respuestas a tickets, redactar comunicaciones con los clientes, analizar tendencias de soporte, buscar datos de clientes en plataformas conectadas y ejecutar acciones a través del sistema de conectores.

Base de conocimiento de IA

La AI está basada en sus artículos de base de conocimientos, entradas FAQ, documentación de productos y datos de plataforma conectados. No alucina. Responde a su información real del negocio o escala cuando es incierto.

Auto-entrega a los seres humanos

Cuando la IA no puede resolver una pregunta, detecta frustración o el cliente pide un humano, automáticamente se pasa a su equipo con todo el contexto de la conversación. Rechazo configurable/tiempo límite-revertir automáticamente de nuevo a la IA.

Indicaciones de entrenamiento de IA

Escriba mensajes de instrucciones separados para la IA dirigida al cliente y la IA orientada al administrador. Controle el tono, los límites, las reglas de escalamiento, los temas prohibidos y el comportamiento específico del negocio.

Historial y auditoría de IA

Cada conversación de IA se registra con todos los detalles de solicitud/respuesta, uso de tokens, seguimiento de costos, proveedor utilizado y versión del modelo. Revise las conversaciones para identificar lagunas en el entrenamiento y mejorar la precisión de la IA.

Perspectivas de IA

Análisis automatizado de los patrones de conversación de IA: vea las preguntas más comunes, las tasas de resolución, la frecuencia de entrega, la satisfacción del cliente por tema y las áreas en las que la IA necesita un mejor entrenamiento.

Configuración de AI por espacio de trabajo

Cada sitio/espacio de trabajo conectado puede usar su propio proveedor, modelo, temperatura, presupuesto de tokens y instrucciones de entrenamiento de IA. Una empresa SaaS puede utilizar Claude para el producto principal y GPT-4o para una marca secundaria.

IA gestionada y BYOK

Dos modos AI: Managed AI (incluido en su plan, no API llave necesaria) o traer su propia clave (utiliza tu propio OpenAI/Anthropic/Google/xAI API clave para el control completo sobre la selección de modelos y los costos). Ambos son de primera clase, cada característica funciona con cualquier modo.

Presupuestos de tokens de IA y controles de costos

Establezca presupuestos mensuales de token, límites por conversación y alertas de saldo bajo. Realice un seguimiento del gasto por proveedor, por espacio de trabajo y por conversaciones.

Tickets y helpdesk

Sistema de tickets nativo

Centro de asistencia completo con departamentos, prioridades (baja/media/alta/urgente), estados, seguimiento del SLA, notas internas, respuestas de los clientes, archivos adjuntos y conversaciones en hilo.

Triage de IA y respuesta automática

AI recorta automáticamente los boletos entrantes por departamento y prioridad. Habilitar auto-replicación para departamentos seguros. La IA redacta y envía una respuesta después de un retraso configurable (por defecto: 2 minutos) para que los humanos puedan intervenir primero.

Ingestión de correo electrónico

Conecte un buzón (Gmail, IMAP o específico del proveedor) para crear tickets automáticamente a partir de los correos electrónicos entrantes. Las respuestas a los correo-e de notificación de tickets actualizan el hilo del ticket.

Insertar portal de entradas

Inserte un portal de tickets orientado al cliente en su sitio web. Los clientes pueden enviar entradas, ver su historia, responder a los boletos abiertos y comprobar el estado de la marca a su diseño.

Fusión de tickets

Combine los tickets duplicados en un único hilo. Los tickets combinados muestran [Merged] (Fusionado) en la línea de asunto y todo el historial de conversaciones se conserva en el ticket restante.

Volver a AI

Después de que un agente humano se haga cargo de un ticket, utilice "Volver a la IA" para permitir que la IA reanude la respuesta automática en ese ticket. Útil cuando se resuelve la parte requerida por el ser humano pero el cliente tiene preguntas de seguimiento que la AI puede manejar.

Bandeja de entrada copiloto

El copiloto sugiere respuestas, resume el historial de conversaciones, recomienda asignaciones por prioridad o departamento y puede ejecutar acciones en plataformas conectadas.

Chat y soporte en tiempo real

Bandeja de entrada del chat

Chat con el cliente en tiempo real gestionado desde una bandeja de entrada unificada. Vea todas las conversaciones activas, la identidad del cliente, el historial de conversaciones y las sugerencias de IA.

Reglas de chat proactivas

Disparar mensajes de chat basados en el comportamiento del visitante: tiempo en la página, URL Ejemplo: mostrar un mensaje de ayuda después de que el usuario haya visitado la página, profundidad de desplazamiento, recuento de visitas de retorno, intento de salida o eventos personalizados. 60 segundos en la página de precios.

Widget de chat

Un widget de chat personalizable incrustado en su sitio web. Admite chat con IA, chat con agentes en vivo, envío de tickets, búsqueda en la base de conocimientos e identidad del visitante.

Encuestas CSAT

Recopila calificaciones de satisfacción del cliente después de las interacciones con el chat y los tickets. Diseña encuestas con tus propias preguntas, escalas de calificación e indicaciones de seguimiento; los resultados se incorporan al rendimiento del equipo y a la inteligencia artificial.

Encuesta por correo electrónico post-chat

Después de que un chat termina, los visitantes con un correo electrónico conocido pueden recibir un mensaje de marca con un resumen de IA de lo que se manejó y un clic "¿Fue fácil?" Sí / No Una vez por hilo, enlaces firmados de uso único, cada envío registrado y el resultado aterriza en la página de comentarios como su propia señal junto a las estrellas del chat.

Bucle de identidad de retroalimentación

Cada elemento de retroalimentación que lleva una persona les muestra: nombre, correo electrónico, un clic a través de su viaje completo del cliente y contacto CRM, y un solo clic en el correo electrónico o respuestas de borrador de IA basadas en su historia real.

Escribir AI

Asistente de escritura con IA independiente para redactar borradores de correo electrónico, respuestas a tickets, anuncios y comunicaciones con los clientes. Usa su propio prompt (no el cerebro del chat) para la escritura profesional de negocios.

CRM centrado en IA

Centro de Comando CRM

Una sola pantalla que muestra todo el estado de su CRM: valor del embudo, velocidad de los tratos, próximas tareas, tratos en riesgo, actividad del agente y recomendaciones de IA. La página principal de CRM es su punto de partida diario.

Contactos y empresas

Gestiona los contactos de tus clientes con perfiles completos: nombre, correo electrónico, teléfono, empresa, etiquetas, fase del ciclo de vida, historial de conversaciones, historiales de tickets, historials de compras y campos personalizados.

Tratos y tablero de la tubería

Tablero de negocios visual estilo Kanban con etapas personalizables. Arrastre los acuerdos entre las etapas, establezca valores, asigne propietarios, realice un seguimiento de las fechas de cierre y vea el valor del canal en cada etapa.

Coaching de trato con IA

La IA analiza cada trato y proporciona entrenamiento: señales de riesgo (se ha quedado callado, se mencionó a un competidor, preocupaciones presupuestarias), recomendaciones de la mejor acción siguiente, probabilidad de ganar y tiempo sugerido para el seguimiento.

Previsión e informes

Los informes incluyen el embudo por etapa, por propietario, por fuente, tasas de conversión, tamaño promedio del trato y duración del ciclo de ventas.

Agente de prospección (SDR)

Prospectación con tecnología de IA que identifica clientes potenciales a partir de los datos de sus visitantes, señales de leads y actividad en plataformas conectadas; sugiere objetivos de alcance, redacta mensajes iniciales y califica la calidad del lead.

Secuencias de seguimiento

Secuencias de seguimiento automatizadas en varios pasos: correo electrónico, espera, correo electrónico y respuesta de verificación Definir secuencias para nuevos clientes potenciales, negocios estancados, comprobaciones posteriores a la compra y campañas de reengagement.

Ciclo de vida y retención

Realice un seguimiento de las etapas del ciclo de vida del cliente (lead, prospecto, cliente, churned) con transiciones automatizadas. El agente de retención monitorea las señales de churn y sugiere intervenciones.

Agente de administrador de datos

Agente de IA que limpia y enriquece continuamente sus datos CRM: elimina contactos duplicados, rellena campos faltantes, valida correos electrónicos, estandariza nombres de compañías e indica registros obsoletos.

Crear mi CRM

Configuración de CRM en lenguaje natural: dígale a la IA cómo se ve su proceso de ventas y construirá sus etapas del canal, campos personalizados, plantillas de tratos y reglas de automatización.

Comprobación de salud CRM

Auditoría automatizada de la calidad de los datos de CRM: contactos duplicados, negocios sin pasos siguientes, canales obsoletos, información de contacto faltante y puntuación de integridad de datos.

Dial de confianza

Control de autonomía en tres niveles para cada agente de IA de CRM: piloto automático (la IA actúa de forma independiente), copiloto (la AI sugiere, el ser humano aprueba) y manual (solo la IA observa).

Cuatro agentes de IA

El CRM ejecuta cuatro agentes de IA especializados: Steward (calidad de los datos), SDR (prospección), Retention (prevención del abandono) y Analyst (informes e información). Cada agente tiene su propia configuración de marcación de confianza.

Conectores e integraciones

Conectores pre-construidos

Conectores listos para usarShopify, WooCommerce, BigCommerce, Magento2, PrestaShop, OpenCart, osCommerce,WordPress, WHMCS, Zendesk, Stripe, Amazon SES, Postmark, Resend, SendGrid, Mailgun,Gmail, IMAP, Slack, y Google Business Profile. Cada conector aporta acciones de IA específicas para plataformas, conocimientos y sincronización de datos.

Constructor de Conectores

Construir conectores personalizados para cualquier plataforma, sin código, con ayuda de AI o código completo. El constructor admite REST y GraphQL APIs, OAuth flujo de código de autorización, registro automático webhook con esquemas Stripe y simple firma, paginación (offset, página, cursor, y link-header), lista/error transformados, contexto multiacción y embalaje del mercado.

Creación de conectores asistida por IA

El ConnectorBuilderAI te ayuda a crear conectores: describe lo que quieres y sugiere acciones, escribe controladores de solicitudes y asigna respuestas API. Maneja la autenticación, paginación y manejo de errores automáticamente.

OAuth flujo para cualquier conector

In-app genérico OAuth Soporte para PKCE, administración de estado con alcance de sitio y actualización automática de tokens. Los conectores definen su flujo de autorización OAuth parámetros y OpsIQ Maneja el flujo.

Buses de capacidad (extensión a toda la plataforma)

Los conectores no solo añaden acciones de plataforma. Pueden potenciar funciones centrales a través de la capacidad "buses". Un conector declara una capacidad (calendario, enriquecimiento, esign en CRM; local_listing, rank_data in Site Intelligence; web_analytics in Analytics; payment_provider in Payments; email_sync in Mailbox; video_meeting in Comms) e implementa su pequeño método set; OpsIQ lo descubre a través de CapabilityRegistry y lo conecta en la UI, el cliente 360 timeline, y las acciones de AI. Varios conectores pueden ofrecer la misma capacidad sin bloqueo. Ver conectores/PLATFORM_CONNECTORS.md.

Preinstalado vs. nivel de mercado

Los conectores pre-instalados (conexores/) están fuera de la caja, se mantienen inclinados a sólo la referencia sin llave y el proveedor más utilizado por capacidad (por ejemplo Google Calendar, Gmail, Google Business Profile). Los conectors del mercado (marketplace_connectors/) son descubiertas pero inertes hasta que estén instalados, por ejemplo Microsoft 365 Calendario, Outlook, DocuSign, Stripe, GA4, SerpApi, Zoom. Cada puente supera una lista de mercado para que la UI y la AI puedan "instalar desde el mercado" (notificar a instalar) cuando una capacidad no tiene proveedor listo, nunca un botón roto.

Mercado de conectores

Publica tus conectores en el. OpsIQ Paquete de conectores con perfil.json, knowledge.json, workflow_recipes.json Marketplace admite conectores gratuitos y de pago con facturación por múltiples orígenes.

Firma de conector

Todos los conectores están firmados criptográficamente para verificar la integridad y se comprueba su firma en el momento de la instalación. Utilice la herramienta resign_all_connectors para volver a firmar después de las actualizaciones.

SmartLookup

Sistema declarativo de coincidencia difusa para acciones del conector. OpsIQ Ejemplo: find_country("germ") hace coincidir Alemania con, y España con. 88.9% Confianza.

Contratos de acción

El general OpsIQ API Publicaciones 1,312 Los paquetes de conectores declaran sus propias acciones del proveedor con parámetros tipográficos, requisitos de autenticación, reglas de paginación y transformaciones de respuesta a través del ActionExecutor unificado.

Recetas de conector

Las recetas de flujos de trabajo predefinidas combinan varias acciones del conector en flujos comunes de negocio, por ejemplo: "Cuando llegue un nuevo pedido a Shopify, crea un ticket, actualiza el CRM y envía una notificación de Slack".

Sincronización de conocimiento

Los conectores declaran temas de conocimiento que se sincronizan con la base de coñecementos da IA. Artículos de ayuda específicos para plataforma, guías de configuración y pasos de solución de problemas están disponibles automáticamente para la IA sin necesidad de entrada manual de coneixements.

Plataforma de desarrollador

API REST

A named JSON API Cubre cada administrador registrado.JSON Operación, conAPI-autenticación de clave, aislamiento del espacio de trabajo, ámbitos, limitación de velocidad, escrituras idempotentes, OpenAPI y una colección Postman generada.

Webhooks

Webhooks salientes para todos los eventos principales: pedidos, facturas, suscripciones, tickets, chats, clientes potenciales, registros de usuarios y abandono del carrito.Entrega asíncrona a través de la cola de trabajos, reintento exponencial de retroceso, protección SSRF y desactivación automática después de. 15 Fallos consecutivos.

Firma de webhook

Cada webhook saliente está firmado con HMAC-SHA256. Verifica las firmas en el extremo receptor para asegurar la autenticidad del webhookud estable para un procesamiento idempotente.

WidgetSDK

JavaScript SDK Instalar recetas para React, Vue, Next.js, Visual Composer y otros lenguajes de programación para el widget de seguimiento con resolución de identidades, seguimiento personalizado de eventos, control programático del chat y configuración específica de la página. WordPress, Shopify, y estática HTML.

Plugins y SDK

SDKs lado del servidor y plugins para marcos comunes.WordPressplugin,WHMCSmódulo y bibliotecas de integración PHP/Node.js genéricas.

Eventos API

Envía eventos personalizados a OpsIQ desde tu backend: compras, registros, uso de funciones, errores o cualquier evento comercial. Los eventos aparecen en la línea de tiempo del visitante y se alimentan al contexto analítico y de IA.

Libro de cocina Triggers

Cree flujos de trabajo automatizados activados por eventos: nuevo ticket, inicio del chat, identificación de visitante, cambio en la etapa de negocio o evento personalizado Los desencadenadores ejecutan acciones de conector, envían webhooks, actualizan registros o notifican a su equipo.

API constructor

VisualAPIy constructor webhook dentro del administrador. Configurar puntos finales, solicitudes de prueba, respuestas de inspección, e integraciones de depuración sin dejarOpsIQ.

Equipo y administración

Control de acceso basado en roles

Tres roles: Propietario (acceso completo, facturación, zona de peligro), Administrador completo (todas las operaciones excepto la facturación y la zona de riesgo) y Agente (solo los departamentos asignados, sin acceso a la configuración).

Panel de rendimiento del equipo

Panel de control solo para propietarios y administradores completos que muestra los tiempos de resolución, la distribución de carga de trabajo, la profundidad del manejo, el desglose de canales, el análisis de tendencias, el cumplimiento de SLA, CSAT por agente, las tasas de reapertura, los agregados de equipos y las horas más ocupadas.

Presencia administrativa y seguimiento en línea

Widget de quién está en línea en tiempo real en la navegación del administrador.60-segundo ping, 300-segunda extensión, auto-poda después de 120 Vea qué administradores están activos en este momento y en qué páginas.

Configuración por espacio de trabajo

Cada sitio conectado (espacio de trabajo) puede tener su propia configuración de IA, ajustes del conector, departamentos de tickets, marca y reglas operativas. Los valores predeterminados globales se aplican en cascada a los espacios de trabajo que no los anulan.

Gestión de múltiples sitios

Administra varios sitios web desde un único administrador de OpsIQ. Cada sitio tiene su propio fragmento de seguimiento, datos de visitantes y configuración. Cambia entre los sitios desde la navegación del administrador.

Sistema de plantillas de correo electrónico

Plantillas de correo electrónico basadas en el registro para todas las comunicaciones automatizadas: notificaciones de tickets, transcripciones de chat, correos electrónicos de bienvenida, restablecimiento de contraseñas y alertas del sistema. HTML Plantillas con vista previa en vivo, chips variables ({{customer_name}}, {{ticket_id}}), y el control de diseño global.

Importación y exportación

Importe contactos, tickets y artículos de conocimiento desde CSV/JSON. Exporte datos de visitantes, informes analíticos y registros CRM. Portabilidad de datos para migración entre sistemas.

Seguridad, cumplimiento y operaciones

Empresa SSO

OIDC (OpenID Conectar) inicio de sesión único con tiempo de ejecución completo: descubrimiento, autorización, devolución de llamadas, verificación de firma JWKS, información del usuario, listado de permisos de dominio, aprovisionamiento JIT y guardias de estado. SAML Soporte de configuración.

GDPR y cumplimiento de datos

Gestión integrada de solicitudes de acceso del sujeto de datos (DSAR): exporte y elimine los datos de clientes en todos los sistemas. Borrar datos a nivel de contacto que cubren sesiones, tickets, chats, registros de CRM y registros por correo electrónico.

IP bloqueo y protección contra fuerza bruta

Bloque específico IPs Bloqueo automático después de intentos fallidos de inicio de sesión configurables. Registro de inicios de sesión fallidos con IP, marca de tiempo y agente de usuario.

HSTS y encabezados de seguridad

HTTP Strict Transport Security, encabezados de directiva de permisos y configuración segura de cookies Las implementaciones autohospedadas pueden agregar encabezas CSP a través de la configuración del servidor.

Fortalecimiento de webhook saliente

SSRF guard bloquea webhooks a privado/metadatos IP La entrega asíncrona evita que los puntos finales lentos bloqueen su aplicación. Desactivar automáticamente después de 15 Los fallos consecutivos evitan el desperdicio de recursos en puntos finales muertos.

Aislamiento del espacio de trabajo

Aislamiento estricto de datos entre espacios de trabajo. Los visitantes, los tickets, los chats, los registros de CRM y las conversaciones de IA se incluyen en su espacio de trabajo, lo que evita fugas de datos en el nivel de consulta.

Gestión del ciclo de facturación

Soporte para ciclos de facturación mensuales, trimestrales, semestrales, anuales, bienales y de por vida. Normalización de divisas para pasarelas multidivisa. Conversión de divisa al recibir el pago para obtener informes precisos sobre los ingresos.

Cron y automatización programada

Sistema cron integrado para tareas programadas: generación de informes, limpieza de datos, renovaciones de suscripciones, actualizaciones de entrenamiento de IA, sincronizaciones de conectores y reintentos de webhook.

Políticas de retención de datos

Configure el tiempo que se conservan las sesiones de visitantes, transcripciones de chats, historial de conversaciones con IA y registros de eventos. Limpieza automática de datos obsoletos para administrar el almacenamiento y cumplir con las políticas de retención.

Diagnóstico y salud

Panel de control del estado del sistema que muestra el estado de cron, la conectividad de base de datos, el estado del proveedor de IA, el funcionamiento del conector, las tasas de entrega de webhook y el uso del almacenamiento.

Para quién es OpsIQ

Tiendas de comercio electrónico

Tiendas

Realice un seguimiento de cada visitante desde el momento en que llega hasta la compra. Deje que la IA responda "¿Dónde está mi pedido?" utilizando datos Shopify/WooCommerce/BigCommerce en tiempo real. Administre tickets de soporte con respuesta automática de AI. Ejecute una canalización de negocios para clientes potenciales al por mayor y B2B. Atribuya ingresos a fuentes de tráfico y campañas.

Empresas de SaaS y software

Software como servicio

Supervise los registros de prueba y la adopción de funciones con la reproducción de sesiones. Realice un seguimiento de qué páginas de documentación se convierten. API Administre los ingresos por suscripciones y las ofertas de expansión en el CRM. Conecte su plataforma de facturación (Stripe, WHMCS Utilice el agente del ciclo de vida de CRM para detectar y prevenir la pérdida de clientes.

Agencias y autónomos

Agencia

Ofrezca análisis de marca blanca y portales de soporte a los clientes. Haga un seguimiento de las oportunidades en varios sitios de clientes desde un administrador. Utilice el canal CRM para gestionar prospectos y oportunidades de proyectos. Cree conectores personalizados para plataformas de clientes mediante Connector Builder. Genere informes SEO de marca con Site Intelligence.

Hosting e infraestructura

Alojamiento

Deep WHMCS Integración con. 80+ Acciones de IA para búsqueda de pedidos, gestión de servicios, DNS Respuesta automática a preguntas comunes de hosting mediante artículos de la base de conocimiento. Realice un seguimiento del compromiso de la página de estado del servidor. Administre tickets de soporte técnico con clasificación por inteligencia artificial.

Empresas con mucho apoyo

Soporte

Deflect 40-70% Elimine las preguntas repetitivas con el chat de IA basado en su base de conocimientos. Enrute los tickets al departamento correcto con la clasificación de AI. Realice un seguimiento del rendimiento del equipo con tiempos de resolución, cumplimiento de SLA y CSAT por agente.

Equipos de marketing y SEO

Comercialización

Suite completa de inteligencia del sitio: rastreos, auditorías técnicas de SEO, análisis de contenido, seguimiento de posicionamiento en SERP, investigación de palabras clave, monitoreo de enlaces de retorno y cuadrícula local de SEO. Gestión de perfiles de Google Business. Informes programados de marca blanca para clientes. Prueba A / B integrada en el widget de seguimiento.

Fundadores individuales y equipos pequeños

Inicios

Comience con el seguimiento y chat, libre de añadir. A continuación, agregue entradas cuando obtenga volumen de soporte. Encienda la CRM cuando empiece a vender. Conecte plataformas mientras las adopta. OpsIQ escalas de una persona haciendo todo a una 50- Equipo de operaciones de persona con RBAC, departamentos y seguimiento del desempeño por agente.

Empresa y multimarca

Empresa

Acerca de Enterprise SSO Con OIDC para autenticación centralizada. Aislamiento de múltiples espacios de trabajo para marcas o divisiones separadas. Configuración de IA por espacio de trabajo con diferentes proveedores y modelos. Desarrollo de conectores personalizados con distribución en el mercado. GDPR Herramientas de cumplimiento y políticas de retención de datos.

Lo que OpsIQ reemplaza

Google Analytics + Hotjar y Plausible

Análisis completo del sitio web con seguimiento de visitantes, reproducción de sesión, rankings de páginas, geo inteligencia, embudos de intención, atribución de conversión, eventos, experimentos A/B y seguimiento de errores JS, todo lo que sea amigable con la privacidad, todo en una plataforma.

Intercomunicador + deriva + Tidio

Chat de clientes con IA y base de conocimientos, soporte de IA para múltiples proveedores, entrega automática a personas, reglas proactivas de chat, historial de conversaciones, encuestas CSAT y creación de tickets desde el chat.

Zendesk + Freshdesk y Help Scout

Sistema de tickets nativo con departamentos, prioridades, SLA, clasificación por IA, respuesta automática con retraso configurable, ingestión de correo electrónico, incrustación de ticket, combinación de tickets, copiloto de bandeja de entrada y capacidad de retorno a AI.

HubSpot + Pipedrive + Salesforce

CRM basado en IA con cuatro agentes de IA especializados (Steward, SDR, Retention, Analyst), control de autonomía Trust Dial, tablero de pipeline, coaching de tratos, pronóstico, secuencias, gestión del ciclo de vida y configuración de lenguaje natural de CRM.

Ahrefs + SEMrush + Moz

Inteligencia del sitio con rastreos automatizados, auditorías técnicas de SEO, análisis de contenido, búsqueda de IA, seguimiento de posicionamiento en SERP, investigación de palabras clave, análisis del enlace de retorno, cuadrícula local de SEO e informes programados de marca blanca.

Zapier + Make + middleware personalizado

Conector SDK with 25+ conectores pre-construidos, Constructor de Conectores (sin código/AI asistido/código completo), OAuth Flujo, registro automático de webhook, un gran catálogo de definiciones de acciones del conector que se vuelven ejecutables solo cuando el conector relevante está instalado, habilitado, configurado y validado, SmartLookup, marketplace y paquetes firmados.

Administrador de perfiles de Google Business

Conector completo de GBP: gestión de revisiones, publicación post, administración Q plaga, cargas de fotos, sincronización de información empresarial, seguimiento de las ideas y respuestas de revisión impulsadas por AI, todo desde dentro OpsIQ.

Herramientas de plantilla de correo electrónico separadas

Plantillas de correo electrónico basadas en registros con editor visual, vista previa en vivo, chips variables, control global del diseño y personalización por evento para todas las comunicaciones automatizadas.

Paneles de gestión del equipo

Rendimiento del equipo integrado: tiempos de resolución, carga de trabajo, cumplimiento de SLA, CSAT por agente, tasas de reapertura, horas más ocupadas, seguimiento de presencia en tiempo real y desgloses por departamento.

GDPR Herramientas de cumplimiento

Native DSAR handling, data erasure across all systems, consent management, retention policies, and audit trails, built into the platform, not bolted on.

Dos ediciones

Despliegue alojado

OpsIQ se ejecuta en una infraestructura gestionada. El funcionamiento del producto es el mismo; la infraestruktura, las actualizaciones y los backups son manejados por el operador de alojamiento. Este manual documenta el tiempo de ejecución de _OpsIQ más que los flujos de marketing o cuenta comercial.

Módulo auto-hospedado

Instalar OpsIQ Alojamiento en su propio servidor para tener un control total sobre los datos, la marca, las actualizaciones y las integraciones. 8.4+, MySQL 5.7+ o MariaDB 10.3+, HTTPS y el OpsIQ Soporta cron. unificado WHMCS Integración como módulo adicional. Soberanía total de los datos.

Orden de lectura recomendado

1
Inicio rápido

Sigue la guía de configuración de 30 minutos para que el seguimiento, el chat y la IA básica funcionen en tu sitio web.

2
Panel de control y análisis

Aprende a leer los datos de tus visitantes, configurar la reproducción de sesiones, identificar clientes potenciales y comprender los patrones de tráfico.

3
Inteligencia del Sitio

Ejecuta tu primer rastreo de SEO, comprueba tu salud técnica y configura el seguimiento del ranking SERP para tus palabras clave objetivo.

4
Tickets y soporte

Configura departamentos, configura respuesta automática con IA, conecta la ingestión de correo electrónico y entrena a tu IA para que maneje preguntas comunes.

5
CRM

Organice contactos, cree su pipeline, configure agentes de IA, establezca niveles de marcación de confianza y deje que la IA acompañe sus negocios.

6
Conectores y herramientas de desarrollo

Conecte su plataforma de comercio electrónico/facturación, cree conectores personalizados, configure webhooks e incorpore a través del REST API.

💡
New to OpsIQ? Comience con la guía de inicio rápido a continuación. Puede tener el seguimiento y el chat básico de IA en ejecución bajo 30 15 minutos.
Comience aquí

Inicio rápido en 30 minutos

Sigue estos pasos para poner en marcha OpsIQ. Cada paso se basa en el anterior, y al final tendrás seguimiento de visitantes, chat con IA y soporte básico de tickets.

Pasos
Lista de comprobación de inicio rápidoUna lista de verificación guiada que muestra la instalación del widget, la conexión a la plataforma, el entrenamiento en IA, la invitación al equipo y la puesta en marcha, con una barra de progreso del 60 por ciento.Comience a usarsetupInstalar el widget OpsIQHECHOSConectar una plataforma (WHMCS, Shopify...)HECHOSEntrena tu IA en tu contenidoHECHOSInvita a tu equipoCompruebe y vaya en vivoProgreso de configuración3 of of 5 · 60%1STEP 1Instalar el widget2STEP 2Conecte y entrene a la IA3STEP 3Invitar y poner en vivo
El camino de 30-minutos: instalar el widget, conectar una plataforma, entrenar a tu IA, invitar al equipo y luego ponerlo en vivo.

La configuración de 30-minuto

1
Activa tu licencia

Introduzca su clave de licencia en el administrador OpsIQ. Vaya a Configuración, introduzca la clave de licenza suministrada para esta instalación y haga clic en Activar. Debería ver una insignia verde "Activo".

2
Establezca su identidad de negocio

Ve a Configuración y completa el nombre de tu empresa, la industria, la zona horaria, la moneda predeterminada y los horarios de soporte. Esta información es utilizada por la IA cuando responde preguntas de clientes y por análisis para informes con conocimiento de zonas horarias.

3
Elija un proveedor de IA

Vaya a Configuración de IA y seleccione su proveedor. Opciones: Claude (Anthropic), GPT-4o (OpenAI), Gemini (Google), o Grok (xAI). Ingrese su API Haga clic en "Probar conexión" para verificar si está usando su propia clave o utilice la IA administrada, si está disponible en su plan.

4
Instalar el widget de seguimiento

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
Conecta tu plataforma

Si usted utiliza Shopify, WooCommerce, WHMCS, u otra plataforma compatible, vaya a Conectores, busque su plataforma, introduzca las credenciales y haga clic en Probar conexión.Esto le da acceso a la IA a los datos de pedidos, perfiles de clientes y contexto de soporte.

6
Invita a tu equipo

Ve a Equipo, haz clic en Invitar e introduce el correo electrónico y la función del agente (Propietario, Administrador completo o Agente). Los agentes solo pueden acceder a los departamentos a los que tú les asignes.

La ruta más rápida posible (5 minutos)

Paso 1: Instalar el widget

Copia el fragmento de código de los sitios conectados y pégalo en tu sitio web, lo que te dará un seguimiento inmediato.

Paso 2: Habilitar la IA

Vaya a Configuración de AI, elija un proveedor, ingrese su clave y guarde. El chat de IA ahora está activo en su sitio web.

Hecho

Ahora tienes seguimiento de visitantes y chat con IA, pero puedes agregar tickets, CRM y conectores más adelante.

Día 2: Hazlo útil

Agregar conocimientos

Vaya a la base de conocimientos y añada 5-10 Artículos sobre sus preguntas más comunes, que la IA utiliza para responder a los clientes con precisión.

Crear departamentos

Vaya a Tickets y cree al menos 2 departamentos (por ejemplo, "Ventas" y "Soporte") Asigne miembros del equipo a cada uno.

Escribe tu mensaje de IA

Ve a Formación en IA y escribe un mensaje de IA para clientes que describa tu negocio, tono y reglas de escalada.

Probar una conversación

Abre tu sitio web en un navegador privado y chatea con la IA como cliente, comprueba que las respuestas sean precisas y el tono correcto.

Semana 1: Construye tus operaciones

Conectar correo electrónico

Configure un buzón (Gmail, IMAP o un conector de proveedor) para que los correos electrónicos del cliente creen tickets automáticamente.

Configurar respuesta automática

Establece un retraso de 2minutos para que los humanos puedan intervenir primero, y luego activa la respuesta automática.

Revisar las analíticas

Revisa el recuento de visitantes, la tasa de rebote, las páginas principales y las ventas si está conectado el seguimiento.

Inicie su CRM

Abra AI CRM y deje que OpsIQ importe contactos de sus plataformas conectadas. Revise el tablero del embudo.

Mes 1: Optimizar

Revisar el historial de IA

Revisa semanalmente el historial de IA y busca respuestas incorrectas, preguntas perdidas y oportunidades para agregar conocimiento.

Añadir reglas proactivas

Crea una regla: si un visitante está en la página de precios durante 60+ segundos, muestra un mensaje de chat preguntándole si necesita ayuda.

Construir un conector

Si utilizas una plataforma que no tiene un conector integrado, usa el generador de conectores para crear uno.

Configurar webhooks

Conecta OpsIQ a tus herramientas internas usando webhooks salientes para tickets, chat y eventos de ventas.

¿Puedo omitir la IA y solo usar seguimiento?+

Sí. El proveedor de IA es opcional. OpsIQ funciona como una plataforma de análisis y ticketing pura sin IA. Puedes habilitar IA más tarde cuando estés listo.

¿Puedo omitir conectores y agregarlos más tarde?+

Los conectores enriquecen la IA con datos específicos de plataforma, pero OpsIQ funciona sin ellos. Comience con el seguimiento y el chat, luego conecte las plataformas cuando sea necesario.

¿Qué pasa si todavía no tengo un sitio web?+

Aún puedes usar OpsIQ para tickets, CRM y colaboración de equipo. El widget de seguimiento es opcional; agrégalo cuando tu sitio web esté listo.

¿Cómo sé si el widget está instalado correctamente?+

Visita tu sitio web en un navegador privado/de incógnito. Luego, marca OpsIQ Deberías ver tu visita aparecer dentro de 24 horas. 15 Si no, comprueba: (1) es el fragmento pegado correctamente, (2) si la clave del sitio es correcta, (3) son bloqueadores de anuncios o encabezados CSP que bloquean el script.

Comience aquí

Mapa de producto completo

OpsIQ no es una sola función, sino que incluye un administrador de operadores, un widget para el sitio web, una capa de soporte de IA, un sistema de tickets/helpdesk, un CRM completo con cuatro agentes de IA (inteligencia artificial), una suite de inteligencia del sitio, una plataforma de conectores con mercado y una superficie de desarrollador. Aquí están todos los componentes que contiene.

Operador admin

Panel de control, feed en vivo, registro de visitantes, sesiones, reproducción de la sesión, páginas principales, inteligencia geográfica, embudo de intención, log de eventos, experimentos A / B, seguimiento de errores JS, ventas y conversiones, clientes potenciales, AI CRM (centro de comandos, contactos, empresas, ofertas, tablero de canalizaciones, entrenamiento de tratos, pronóstico, prospección, secuencias, ciclo de vida, administrador de datos, Build my CRM, configuración de CRM, salud de CRM API), tickets, bandeja de entrada del chat, reglas proactivas, encuestas CSAT, borradores de correo electrónico, buzones de correo, configuración de IA, capacitación en IA, historial de AI, información sobre IA, base de conocimientos, conectores, Connector Builder, marketplace, sitios conectados, administración de equipos, rendimiento de los equipos, configuraciones, diagnóstico y licencia.

Superficies orientadas al cliente

Widget de seguimiento del sitio web (baliza analítica + chat + inserción de tickets + búsqueda en la base de conocimiento), chat con IA para clientes, portal de envío de tickets, manejo de tokens de identidad de visitantes, cargas de archivos, widget de encuesta CSAT y centro de ayuda orientado al cliente.

CRM centrado en IA

Centro de comando, contactos, empresas, ofertas, tablero de canales con arrastrar y soltar, entrenamiento de acuerdos de IA (señales de riesgo, próxima mejor acción, probabilidad de ganar), pronóstico de ingresos, agente de prospección (SDR), secuencias de seguimiento automatizadas, gestión del ciclo de vida y retención, agentes administradores de datos (dedup, enriquecer, validar), Construir mi CRM (configuración de lenguaje natural), configuración de CRM, comprobación de salud de CRM. Trust Dial (piloto automático / copiloto / manual por agente), cuatro agentes especializados (Steward, SDR, Retention, Analyst) y CRM API con webhooks.

Suite de inteligencia del sitio

Rastreos automatizados del sitio, auditoría técnica de SEO (velocidad, móviles, Core Web Vitals, ) SSL, redirecciones, datos estructurados), auditoría de contenido (conteo de palabras, legibilidad, densidad de palabras clave, estructura de encabezados), búsqueda semántica con IA, seguimiento del ranking SERP a través de motores, investigación de palabra clave con puntuación de oportunidades, análisis y monitoreo de backlinks, visualización local de la cuadrícula SEO, sincronización del perfil de Google Business (comentarios, publicaciones, preguntas y respuestas, fotos, información), informes programados (diario / semanal / mensual) y etiqueta blanca. PDF output for agencies.

IA y automatización

chat de IA cliente (multi-provider: Claude, GPT-4o,Gemini, Grok), asistente de administración AI, puesta en marcha del conocimiento de IA, auto-mano con revertencia configurable, configuración de inteligencia artificial por espacio de trabajo, IA gestionada yBYOKModos, presupuestos de ficha y controles de costes, pista de auditoría de historia de AI, análisis de información de inteligencia AI, ticket AI triage, billete auto-reply con retraso, escritura de IA (inmediación separada), y copiloto de entrada de administración.

Conectores e integraciones

25+ conectores pre-construidos (Shopify, WooCommerce, BigCommerce, Magento2, PrestaShop, OpenCart, osCommerce WordPress, WHMCS, Zendesk, Stripe, Amazon SES, Postmark, Reenviar, SendGrid, Mailgun, Gmail, IMAP, Slack, Google Business Profile), Constructor de conectores (sin código/con ayuda de IA/código completo), genérico OAuth Flujo de trabajo con PKCE, mercado de conectores con distribución pagada, firma y verificación del conector, coincidencia difusa SmartLookup, un amplio catálogo de definiciones de acciones HTTP cuya disponibilidad depende de la instalación, habilitación, configuración y validación del conector, sincronización de conocimientos y recetas de flujo de trabajo.

Plataforma de desarrollador

RESTAPI(visitantes, eventos, tickets, contactos, configuraciones, conectores), especificación de OpenAPI,API Gestión de claves, webhooks salientes (asincronizados, firmados, reintentados, protegidos por SSRF, desactivación automática), EventosAPI para la ingestión de eventos personalizados, widget SDKcon resolución de identidad, libro de recetas de disparadores, contratos de acción, conector SDK, empaquetado de mercados, SDK del lado del servidor (PHP, Node.js), WordPress plugin, y WHMCS módulo.

Ajustes y operaciones

Identidad de empresa, configuración de IA por espacio de trabajo, ajustes de seguimiento, seguridad (HSTS, política de permisos, bloqueo IP, protección contra fuerza bruta), RBAC (propietario / administrador completo / agente), administración e invitaciones del equipo, panel de control del rendimiento del equipo. Seguimiento de la presencia del administrador, sistema de plantillas de correo electrónico (impulsado por el registro, editor visual, chips variables), diseñador de encuestas, conocimiento del dominio, configuración para incrustar tickets, marca, políticas de retención de datos, gestión del ciclo de facturación (mensual durante toda la vida), normalización de monedas, importación / exportación, diagnóstico, automatización de cron y zona de peligro.

Seguridad y cumplimiento

Acerca de Enterprise SSO (OIDC con verificación JWKS, aprovisionamiento JIT), SAML Configuración, GDPR/DSAR manejo (exportación y eliminación en todos los sistemas), borrado de datos por contacto, gestión del consentimiento, aislamiento del espacio de trabajo (alcance estricto de la capa de consulta), pistas de auditoría, seguimiento de inicios de sesión fallidos, IP Bloqueo, webhook de salida SSRF guard y políticas de retención de datos.

Puente de proveedor

Adminiscencia de la IA OpsIQ proveedor URL, llamadas del proveedor de información, validación de licencias, informes de salud, PDF renderizado y exportación de datos, todo enrutado a través del endpoint configurado del proveedor, no directamente el vendedor API llamadas desde su servidor.

Cada página de administración

Tablero

Núcleo

Centro de comandos diario: visión general del tráfico, recuento de visitantes en vivo, resumen de ventas, profundidad de la cola de soporte, alertas de actividad de IA y accesos directos de acción rápida.

Transmisión en vivo

Análisis

Flujo de visitantes en tiempo real: vistas de página, inicios de chat, envíos de formularios y señales de intención que se actualizan cada pocos segundos con filtros de país, dispositivo y referencia.

Registro de visitantes

Análisis

Registros completos de visita: dispositivo, navegador, sistema operativo, país, ciudad, referenciador, parámetros UTM, página de destino, identidad e historial completo de vistas de páginas.

Sesiones

Análisis

Vista agrupada por trayecto: flujo de página, tiempo en la página, profundidad de desplazamiento, ruta de conversión y página de salida para cada sesión del visitante.

Repetición de sesión

Análisis

Reproducción en línea de tiempo de los eventos capturados: movimientos del ratón, clics, desplazamientos, transiciones de página e interacciones de formulario para el diagnóstico UX.

Páginas principales

Análisis

Ranking de rendimiento de la página: visitas, tiempo de interacción, tasa de rebote, conversiones, interacciones de soporte y dirección de tendencia.

Inteligencia geográfica

Análisis

Informes geográficos: desglose por país/ciudad con mapas, distribución de dispositivos, participación del navegador, fuentes de tráfico y penetración en el mercado.

Embudo de intención

Análisis

Seguimiento de intención conductual: visitas de precios, frecuencia de retorno, navegación por documentos, interacciones con el soporte y señales personalizadas con probabilidad de conversión.

Registro de eventos

Análisis

Historial de eventos con búsqueda: visitas a páginas, eventos personalizados, chats, compras, envíos de formularios con metadatos completos y filtrado.

Experimentos A/B

Análisis

Pruebas divididas: crear variantes, asignar tráfico, definir objetivos, medir significado y declarar ganadores, todo desde dentro OpsIQ.

Errores de JS

Análisis

Captura de errores del front-end: mensajes, trazas de pila, navegadores afectados, frecuencia, páginas afectadas y seguimiento de tendencias.

Ventas

Ventas

Panel de ingresos: pedidos, renovaciones, reembolsos, atribución por fuente, rendimiento de campañas, comparación de períodos y análisis de tendencias.

Clientes potenciales

Ventas

Gestión de clientes potenciales: puntuación, atribución de fuentes, estado del CRM, detalles de contacto, señales de comportamiento y enrutamiento de canales.

CRM de IA

CRM

CRM completo: centro de comando, contactos, empresas, ofertas, tablero de pipeline, coaching, pronóstico, prospección, secuencias, ciclo de vida, administrador de datos y salud.

Boletos

Soporte

Bandeja de entrada de soporte: departamentos, prioridades, seguimiento de SLA, clasificación por IA, respuesta automática, notas internas, archivos adjuntos, combinación y gestión de estado.

Bandeja de entrada del chat

Soporte

Conversaciones en vivo: chat humano e IA, entrega, colaboración, historial de conversaciones, identidad del cliente y recopilación CSAT.

Borradores de correo electrónico

Soporte

Administración de correo electrónico: correo entrante a tickets, composición de respuestas asistida por IA, selección de plantillas y configuración del buzón.

Configuración de AI

IA

Configuración del proveedor: seleccione Claude/GPT-4o/Gemini/Grok, introduzca la clave API o habilite la IA gestionada, establezca el modelo, la temperatura y los presupuestos de token por espacio de trabajo.

Formación en IA

IA

Creación de mensajes: mensajes dirigidos al cliente y al administrador, reglas de escalado, pautas de tono, temas prohibidos y configuración de límites.

Historia de la IA

IA

Auditoría de conversaciones: registros completos de solicitudes/respuestas, uso de tokens, costo por conversación, proveedor, versión del modelo y resultado de la resolución.

Perspectivas de IA

IA

Análisis de patrones: preguntas comunes, tasas de resolución, frecuencia de entrega, satisfacción por tema e identificación de brechas en la capacitación.

Base de conocimientos

IA

Contenido de formación en IA: artículos, preguntas frecuentes, documentación del producto, conocimiento sobre conectores y entradas personalizadas Búsqueda semántica y por palabras clave para la conexión a tierra de AI.

Conectores

Integraciones

Hub de integración: conectores instalados, estado de funcionamiento, inventario de acciones, administración de credenciales, explorador del mercado y generador de conecteurs.

Sitios conectados

Configuración

Administración del sitio: fragmento de seguimiento, clave del sitio, configuración del widget, ajustes de dominio y aislamiento por espacio de trabajo del sitio.

Equipo

Configuración

Administración de usuarios: invite a miembros, asigne roles (propietario/administrador completo/agente), establezca el acceso del departamento y administre los permisos.

Rendimiento del equipo

Configuración

Métricas de operaciones: tiempos de resolución, carga de trabajo, cumplimiento del SLA, CSAT por agente, tasas de reapertura, horas más ocupadas y análisis de tendencias.

Configuración

Configuración

Configuración: identidad de empresa, configuración de IA, seguimiento, seguridad, marca, retención, plantillas de correo electrónico, facturación, importación/exportación, diagnóstico y zona de peligro.

Licencia

Configuración

Administración de planes: estado de la licencia, características del plan, métricas de uso, fecha de renovación y opciones de actualización/reducción.

Comience aquí

Incorporación guiada

El proceso de incorporación convierte una nueva instalación en un espacio de trabajo OpsIQ que funciona y se puede abandonar y reanudar sin perder el progreso.

Pantalla de producto
IntegraciónOnboarding muestra cada área de configuración, su estado actual y la siguiente acción a completar.Integraciónespacio de trabajoPROGRESS60%COMPLETED6SIGUIENTEWidgetVISTA DE ESPACIO DE TRABAJO EN DIRECTOLicenciaValidar la licencia del productoHechoProveedor de IASeleccione el proveedor y la clave de pruebaHechoMarcaIdentidad y tono de la empresaHechoSitio webAñadir sitio e instalar widgetSiguiente1COMPLETE BASICSLicencia, marca, IA2CONNECT DATASitio y conector3VERIFY LAUNCHEquipo, correo electrónico, cheques
Onboarding muestra cada área de configuración, su estado actual y la siguiente acción a completar.

Secuencia recomendada

  1. Licencia: Validar la licencia y confirmar que el espacio de trabajo está activo.
  2. Proveedor de IA: Si el espacio de trabajo inicialmente solo usará análisis y tickets, puede omitir la IA si desea que se ejecute una prueba de conexión.
  3. Identidad de marca: Establezca el nombre, la industria, la descripción, el tono orientado al cliente y los detalles de marca utilizados por el widget e IA.
  4. Conector: 1 x USB Habilitar al menos una plataforma externa cuando OpsIQ necesite pedidos, clientes, tickets, correo electrónico u otro contexto de la plataforma.
  5. Sitio y widget: Cree el sitio/espacio de trabajo, copie la clave del sitio y verifique una visita privada en Live Feed.
  6. Equipo y ruta: Invitar administradores/agentes, crear departamentos, establecer el enrutamiento de correo electrónico y confirmar las preferencias de notificación.
  7. Verificaciones de Go-live: Chat de prueba, un ticket, sincronización del conector, cron, correo electrónico saliente, webhooks y encabezados de seguridad.

Al volver a Onboarding, deberías ver los pasos completados en lugar de forzar un reinicio.

Comience aquí

Navegación y permisos de administrador

The OpsIQ Este mapa explica dónde se encuentra cada área operativa y por qué una página puede no ser visible para todos los administradores.

Pantalla de producto
OpsIQ navegaciónLa barra lateral agrupa los OpsIQ por área de trabajo; los enlaces individuales aparecen solo cuando el rol actual puede usarlos.OpsIQ navegaciónespacio de trabajoGROUPS8PÁGINASBasado en permisosSEARCHDisponibleVISTA DE ESPACIO DE TRABAJO EN DIRECTOSoporteTickets, correo electrónico, CSAT, conocimientoAbrirCRMContactos, tuberías, ofertas, prospecciónAbrirAutomatizaciónCorrientes de trabajo, reglas, metasAbrirSeguridad &quot; PrivacidadSinopsis, auditoría, consentimiento, bloquesAdministrador1PICK A GROUPCoincidir con la barra lateral2CHECK ROLEOculto significa restringido3USE PAGE HELPAbrir la sección de coincidencias
La barra lateral agrupa los OpsIQ por área de trabajo; los enlaces individuales aparecen solo cuando el rol actual puede usarlos.
Soporte

Billetes, la plataforma de correo electrónico del equipo, CSAT, el Centro de Ayuda y los flujos de chatbot.

CRM

Las superficies de ventas diarias: CRM Home, Command Center, contactos, tubería, pronóstico, ciclo de vida, prospección, segmentos, clasificación, aprobación de acuerdos, administrador de datos, herramientas de crecimiento y la corriente de actividad.

Automatización

Flujos de trabajo impulsados por eventos, reglas del ciclo de vida y objetivos de conversión.

Comercialización

Extensión, mensajes proactivos, anuncios, Promoción Studio, Survey Studio, campañas de empuje y visitas guiadas.

Análisis

Report surfaces first — Analytics Hub, AI insights, sales, clientes, leads, embudos, pruebas A/B, repetición de sesión, tableros de datos personalizados e informes programados con el visitante bruto, sesión, página, geografía y registros de eventos en una subsección de Datos Raw.

Páginas independientes

Site Intelligence, Team Performance and Feedback se sientan fuera de los grupos como entradas directas.

Integraciones

Conectores, acciones y disparadores, buzones de correo, borradores, ajustes de email, puntos finales en línea, teclados web outbound y API _.

Seguridad &quot; Privacidad

Vista general de seguridad, privacidad y cumplimiento, consentimiento de las cookies, actividad de auditoría, accesos fallidos, bloqueadosIPsyJavaScripterrores.

Configuración

Bases del espacio de trabajo (general, equipo, sitios, idiomas), luego sub-secciónes plegables: AI Brain (instrumentos, configuración, evaluación, historia), CRM Configuración (constructor, campos personalizados, puntuación de plomo, salud), Data &amp; Health (diagnostics, export) y Cómo empezar (onboarding, help).

Páginas un papel no puede abrirse están ocultos de la barra lateral. Pages el plan actual no incluye permanecer visible con una Actualización etiqueta y abre una pantalla de actualización en la aplicación.

Ocultar un enlace de barra lateral no es el límite de seguridad: cada acción protegida debe pasar sus controles de permisos y espacio de trabajo.

Análisis

Hub de Analytics

El centro de análisis reúne soporte, chat, IA, visitantes e informes de agentes en un espacio de trabajo con filtro de fecha y resultados exportables.

Pantalla de producto
Hub de AnalyticsEl Hub de análisis muestra un intervalo de fechas, tarjetas de métricas y pestañas para el rendimiento del soporte técnico, chat, IA, visitantes y agentes.Hub de Analyticsespacio de trabajoTICKET184AI RESOLVE63%CSAT4.7VISTA DE ESPACIO DE TRABAJO EN DIRECTOSoporteCreado, cerrado, pendiente, SLAPestañaChatResultados de IA/humanos y tiempo de manejoPestañaIAConfianza, retroalimentación, uso de tokensPestañaAgenteVolumen, velocidad y satisfacciónPestaña1CHOOSE DATESPreestablecido o personalizado2CHANGE TABSoporte al Agente3EXPORTDescargar CSV
El Hub de análisis muestra un intervalo de fechas, tarjetas de métricas y pestañas para el rendimiento del soporte técnico, chat, IA, visitantes y agentes.

Filtros y controles

  • Usar un valor preestablecido o personalizado de/a Seleccione el intervalo, luego Actualizar para reconstruir cada tarjeta y gráfico del mismo período.
  • Exportar CSV Exporta la vista analítica activa en lugar de una captura de pantalla.
  • El ámbito del espacio de trabajo es automático; al cambiar los sitios, cambia el conjunto de datos subyacente.

Qué mide cada pestaña

  • Soporte: tickets creados/cerrados/pendientes, primera respuesta, resolución, resolución de primer contacto, SLA y desgloses por prioridad/departamento/estado.
  • Chat: sesiones iniciadas, resoluciones de IA, escalamientos, abandonos, tiempo de manejo, mensajes por sesión y CSAT de IA/humano/todos.
  • AI: Confianza media, tasa de confianza baja, precisión del triage, retroalimentación, desviación del conocimiento, uso de token/caché y los elementos que necesitan revisión.
  • Visitante: Tendencias de tráfico y participación para el período seleccionado.
  • Agente: Medidas de carga de trabajo, velocidad, cierre y satisfacción por agente.

Utilice Analytics Hub para la revisión entre equipos; utilice las páginas dedicadas Visitantes, Tickets, CSAT, Historial de IA y Rendimiento del equipo cuando necesite una investigación a nivel de registro.

Análisis

El tablero de instrumentos

El panel de control es su centro de comandos diario, que muestra el tráfico, las ventas, la carga del soporte, la actividad de IA y los indicadores de conversión en una sola vista. Ábralo cada mañana para comprender lo que sucedió durante la noche y qué necesita atención hoy.

Tablero
Panel de vista generalLa pantalla de Resumen está dirigida por un. OpsIQ Panel de inteligencia AI (con resumen diario, alertas inteligentes, pronóstico), mosaicos de widget KPI y un widget de tráfico de siete días, además de un control de diseño Reset.Descripción generalespacio de trabajoOPSIQ INTELIGENCIAElige un análisis y OpsIQ lo escribeResumen diarioAlertas inteligentesPronósticoRestablecer el diseñoVISITADOS HOY EN EL SITIO2,481+12%Ingresos$8.2k+5%TICKET ABERTOS143SLATraffic · last 7 days1AI-FIRSTOpsIQ Panel de inteligencia2WIDGETSLos mosaicos de KPI que organizas3TURestablecer el diseño en cualquier momento
The real Overview screen: the OpsIQ Intelligence panel up top (pick an analysis and it writes it) above the KPI widgets you arrange yourself.

Explicación de las tarjetas del panel

Visitantes en vivo

El número de personas en tu sitio web en este momento. Se actualiza cada 15 Un visitante es "activo" si ha cargado una página dentro del umbral de actividad (por defecto: 10 segundos). 90 10 segundos).

Visitantes únicos

OpsIQ identifica a los visitantes mediante una combinación de huella digital del navegador, cookies e identidad autenticada (si está disponible).

Nuevo vs regresando

Los nuevos visitantes están viendo tu sitio por primera vez. Los visitantes que regresan se han visto antes. Una tasa de retorno alta significa que tu contenido atrae a las personas a volver.

Tasa de rebote

El porcentaje de visitantes que se fueron después de ver una sola página. Una tasa de rebote por encima 70% en las páginas de aterrizaje generalmente significa que la página no cumple con las expectativas del visitante, el contenido incorrecto, la carga lenta o la mala experiencia móvil.

Tiempo promedio en la página

El tiempo medio que los visitantes pasan en cada página. Los tiempos muy cortos (menos de 10 segundos) en las páginas de contenido sugieren que el contenido no es atractivo, mientras que los tiempos demasiado largos en las de pago pueden indicar confusión.

Amenazas bloqueadas

IPdirecciones que OpsIQ Los sitios que se han identificado como potencialmente maliciosos en función de la puntuación de amenazas, los intentos de fuerza bruta o los bloqueos manuales. IPs lista.

Ventas hoy / esta semana / este mes

Ingresos de fuentes de ventas conectadas (Shopify, WooCommerce, Stripe, etc.). Si las ventas muestran cero, compruebe que su conector de plataforma está conectado y sincronizado.

Gráfico de tendencias

Un gráfico de líneas que muestra el recuento de visitantes en el intervalo de fechas seleccionado. Busca patrones: picos de tráfico (campañas, menciones en la prensa), caídas (fines de semana, días festivos) y tendencias sostenidas.

Las fuentes principales

De dónde vienen tus visitantes: directo, Google, redes sociales, campañas de correo electrónico, sitios de referencia. Usa esto para entender qué canales de marketing están funcionando.

Los mejores navegadores

Si un navegador tiene una tasa de rebote inusualmente alta, es posible que tengas un problema con la seguridad. CSS o JavaScript Problema de compatibilidad.

Mapa de calor por hora

Una cuadrícula que muestra la actividad de los visitantes por hora del día y día de la semana, para decidir cuándo programar turnos de soporte, cuádo enviar anuncios y cuánda ejecutar promociones.

Visitantes recientes de 1

Los últimos visitantes con país, página, dispositivo y fuente. Útil para chequeos rápidos durante las campañas.

Uso del filtro de intervalo de fechas

Haga clic en el selector de fechas en la parte superior derecha del panel. Presets: Hoy, Ayer, Último 7 días, Último 30 Todas las tarjetas y gráficos del panel de control se actualizan cuando cambia el intervalo. El rango de fechas está en la zona horaria configurada (establecida en Configuración).

Ejemplos de trabajo

Investigación de picos en la tasa de rebote

Escenario:
Your bounce rate jumped from 45% to 78% this week. What happened?
Qué hacer:

Cheque: (1) ¿Ha cambiado una página de destino específica? Ve a Páginas principales y ordena por tasa de rebote. (2) ¿Una campaña envió el tráfico a la página equivocada? Compruebe las principales fuentes de nuevos remitente. (3) ¿Se rompió el sitio en dispositivos móviles? Comprueba la tasa de rebote del navegador. (4Compruebe el contador de amenazas y los detalles del visitante para ver si hay patrones sospechosos.

Cero visitantes en el panel de control

Escenario:
The dashboard shows 0 live visitors even though your website is getting traffic.
Qué hacer:

Cheque: (1) ¿Está instalado el widget de seguimiento? Vea el código fuente de su sitio web y busque el OpsIQ script. (2) ¿Es correcta la clave del sitio? Compare la clave de datos-sitio en el script con la clave en Sitios conectados. (3) ¿Una CDN o caché está sirviendo una página obsoleta sin la secuencia de comandos?4) ¿Un bloqueador de anuncios o un encabezado CSP está bloqueando el script?Compruebe la consola del navegador para ver si hay solicitudes bloqueadas.

Lectura del mapa de calor por hora

Escenario:
Your heatmap shows heavy activity between 10am-2pm on weekdays but nothing on weekends.
Qué hacer:

Este es un patrón de tráfico B2B. Sus visitantes son profesionales que trabajan y navegan durante el horario comercial.1) Programe el personal de soporte para las horas de trabajo entre semana. (2) Enviar campañas de correo electrónico martes-jueves por la mañana. (3) Las ventanas de mantenimiento del fin de semana son seguras. (4) Considera ofrecer chat en vivo solo durante las horas punta.

Pico de tráfico desde fuente desconocida

Escenario:
You see a sudden spike of 500 visitors in one hour from an unknown referrer.
Qué hacer:

Ir a los visitantes y filtrar por la ventana del tiempo. Verificar: (1) ¿Son visitantes reales o bots? Mira la duración de la sesión, páginas vistas y diversidad del navegador. (2Si es real, ¿en qué página están aterrizando?3) Compruebe el árbitro URL. Alguien podría haber vinculado a usted de Reddit, Hacker News, o un blog popular. (4) Si es tráfico de bot, comprobar amenazas y considerar bloquear el IP rango.

¿Por qué mi cuenta de visitantes difiere de Google Analytics?+

OpsIQ Google Analytics cuenta los visitantes de manera diferente. Utiliza la huella digital del navegador y las cookies, mientras que GA utiliza un modelo de cookie diferente. El filtrado de bots, las tasas de bloqueo de anuncios y el orden de carga de scripts también pueden causar diferencias. 10-20% La varianza es normal.

¿Puedo incrustar el panel en otra herramienta?+

El tablero está diseñado para el. OpsIQ Para la generación de informes externos, utilice el REST. API para extraer datos analíticos y mostrarlos en su propio panel de control o herramienta BI.

¿Qué significa el contador de "amenaza"?+

Cuenta.IPdirecciones queOpsIQha marcado o bloqueado basado en la puntuación de amenazas, reincidentes accesos fallidos, o bloques manuales. Haga clic en el contador para ver detalles y gestionar bloques.

Análisis

Registro de visitantes

El registro de visitantes muestra cada visita a los sitios web que has rastreado, y cada fila representa una carga de página por parte de un visitante. Úsalo para investigar el comportamiento individual del visitante, encontrar tráfico de campañas y diagnosticar problemas de seguimiento.

Registro de visitantes
Registro de visitantesUna tabla de visitantes con una barra de filtros (fecha, búsqueda IP/email/ciudad, origen, dispositivo) y columnas para _IP/e-mail, ubicación, fuente, dispositivo y hora, con una fila de amenazas marcadas.Registro de visitantesyoursite.com7 díasBuscar IP, correo electrónico, ciudad…Fuente ▾Dispositivo ▾IP / CORREO ELECTRÓNICOUbicaciónFUENTEDISPOSITIVOCUÁNDO[email protected]EE. UU · Nueva YorkgoogleEscritorio2m41.62.10.4Reino Unido · LondresdirectMóvil6 m[email protected]DE · BerlínUtm:adsMóvil14m203.0.113.9NG · Ciudad de MéxicoreferralEscritoriothreat1–25 de 2013 3,402Sesión de trabajo →1FILTERFecha · búsqueda · fuente · dispositivo2REAL COLUMNSIP/email · ubicación · dispositivo · amenaza3DRILL INAbrir la sesión completa
El verdadero Registro de Visitantes: filtrar por fecha, búsqueda y dispositivo, luego leer cada visita por IP/email, ubicación, fuente, dispositivo y tiempo, amenazas insignias en rojo.

Lo que muestra cada fila

Dirección de IP

El visitante IP Anonimizado si IP Haz clic para ver todas las visitas desde este sitio web.IP.

País y ciudad

Detectado desde elIP Requiere la base de datos MaxMind GeoLite2 o. Cloudflare Muestra "Desconocido" si GeoIP no está configurado.

Página URL

La página que el visitante cargó. Haga clic para ver la ficha completa URL. Long URLs Se truncan en la vista de tabla.

Referrer

De dónde vino el visitante antes de llegar a tu sitio: "Directo" significa que no hay ningún remitente (marcadores, URLs escritos, algunos enlaces de aplicaciones).

Dispositivo y navegador

El tipo de dispositivo del visitante (de escritorio, móvil, tableta) y el navegador (Chrome, Safari, Firefox, etc.). Analizado desde la cabecera User-Agent.

Fecha y hora

Cuando se cargó la página, en su zona horaria configurada.

Identidad del cliente

Si el visitante está identificado (a través de un token de identidad o login), aparece su nombre o correo electrónico, en caso contrario se muestra como anónimo.

Filtros

Rango de fechas

Filtra las visitas a un período de tiempo específico. Por defecto: últimos 7 días.

Buscar

Buscar por. IP dirección, página URL, remitente, país o correo electrónico del cliente.

Fuente

Filtrar por fuente de tráfico: Directo, Orgánico, Social, Referido, Pagado, Email.

Dispositivo

Filtrar por Escritorio, Móvil o Tablet.

Solo nuevo

Muestre solo a los visitantes que lo hacen por primera vez y nunca antes se han visto.

Ejemplos de trabajo

Encontrar visitantes de una campaña específica

Escenario:
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?
Qué hacer:

En el Registro de visitantes, utilice el campo Buscar y escriba "summer-sale".La búsqueda comprueba la referencia URLs y página URLs También puedes filtrar por Origen = Pago para reducir aún más la lista de resultados.

Buscar a un cliente que ha reportado un problema

Escenario:
A customer emailed saying "your checkout page was broken yesterday around 3pm." How do you find their session?
Qué hacer:

Si iniciaron sesión, aparecerá su identidad. Establezca el intervalo de fechas en ayer. Busque visitas a las páginas de pago alrededor de las 15:00 h. Haga clic en la sesión para ver el flujo completo de la página y cualquier error JavaScript.

Detectar un golpeador o raspador de bucle

Escenario:
You notice an IP address has 500+ visits in one hour, all to the same page.
Qué hacer:

Esto es probablemente un bot, scraper o script roto.Vaya al registro de visitantes y busque por ese nombre.IP. Cheque: (1) ¿Son todas las visitas a la misma página? (2) ¿Es el agente de usuario un bot conocido? (3) Es la duración de la sesión siempre. 0 Si se confirma que eres un bot, ve a Seguridad y bloquea el.IP.

Registro de visitantes vs Sesiones vs Feed en vivo

Registro de visitantes

Una fila por vista de página. Mejor para: investigar páginas específicas, encontrar tráfico de fuentes específicas y diagnosticar problemas de seguimiento.

Sesiones

Agrupa las visitas a páginas en trayectos. Una fila por sesión de visita. Mejor para: entender el flujo del usuario, medir la duración de la sesión e identificar rutas de conversión.

Transmisión en vivo

Actividad en tiempo real. Muestra a los visitantes que están actualmente en tu sitio web. Mejor para: monitorizar campañas en curso, detectar visitantes con intenciones altas y ver oportunidades de soporte.

¿Por qué veo mis propias visitas en el registro?+

OpsIQ Para excluir tu propio tráfico, añade tus visitas a Google Analytics.IPDirección a los excluidos IPs Lista en Configuración > Seguimiento.

¿Por qué un visitante muestra el país "Desconocido"?+

La búsqueda de GeoIP requiere Cloudflare Encabezados geográficos (automático si se utiliza )Cloudflare) o un archivo de base de datos MaxMind GeoLite2.Compruebe Configuración > Ruta GeoIP para asegurarse de que el archivo de la base existe y es legible.

¿Durante cuánto tiempo se conservan los datos de visitantes?+

Los datos de los visitantes se conservan durante el período de retención configurado en Configuración (por defecto: 90 días), después del cual, los registros antiguos se limpian automáticamente por el trabajo de retenciones cron.

Análisis

Sesiones

Las sesiones agrupan varias visitas de página por parte de la misma persona en un único trayecto, mientras que el registro de visitantes muestra las cargas individuales de páginas.

Sesiones
SesionesLa tabla de registro de sesiones con IP, país, dispositivo, origen, duración y columnas de páginas, y una fila de amenazas marcadas.Sesionesyoursite.comPaís (NG)Registro de SesiónIP(S)PaísDISPOSITIVOFUENTEDURACIÓNPÁGINAS41.62.10.4Reino UnidoEscritoriogoogle3m 12s6102.89.6.2NGMóvildirect05s388.21.4.9ESEscritorioUtm:ads7m 48s11203.0.113.9EE. UU.Móvilreferral0m42s21SESSION LOGViajes agrupados2COLUMNSPaís · dispositivo · fuente · duración3THREATSesiones de riesgo marcadas
El registro real de sesión: cada viaje de visitante como una fila (IP, país, dispositivo, fuente, duración y páginas) con sesiones arriesgadas insignias en rojo.

Cómo funcionan las sesiones

Una sesión comienza cuando un visitante carga su primera página. Continúa a medida que navega por más páginas. Una sesión termina cuando el visitante permanece inactivo durante el período de tiempo límite de la sesión (por defecto: 30 minutos) o cierra su navegador. La misma persona que regresa después del tiempo límite crea una nueva sesión.

Lo que muestra cada sesión

Primera página

La página de aterrizaje, donde el visitante entró en su sitio web. Esto le dice qué contenido está atrayendo gente.

Última página

La página de salida, donde se fue el visitante. Si la página de entrada es a menudo la página del precio, los visitantes podrían estar comparando con los competidores.

Número de páginas

Cuántas páginas ha visto el visitante en esta sesión: más páginas suelen significar más interacción, pero también puede significar que el visitantes se pierde.

Duración

Tiempo total de carga de primera página a última actividad. Sesiones con 0 segundos son rebotes (single page view, no hay más interacción).

Fuente

La fuente de tráfico para esta sesión (Directo, Google, social, referencia, etc.).

País

País detectado desde la dirección IP del visitante.

Rebote

Si el visitante abandonó la página después de ver solo una página. Las sesiones rebotadas tienen un indicador rojo.

Conversión

Si el visitante completó un evento de conversión rastreado (compra, registro, envío de formulario) durante esta sesión.

Filtros

Buscar

Buscar por. IP, email, page URL, o referente dentro de las sesiones.

Tipo

Filtrar por visitantes nuevos (primera sesión) o visitantes que regresan.

Fuente

Filtrar por fuente de tráfico.

País

Filtre por país para ver las sesiones de una región específica.

Amenazas/Rebotados

Filtrar para mostrar solo las sesiones rebotadas o las secciones marcadas como amenazas.

Ejemplos de trabajo

Crear un perfil de cliente de alto valor

Escenario:
A customer just made a large purchase. You want to understand their journey before buying.
Qué hacer:

Busca su correo electrónico en Sesiones. Mira todas sus sesiones: (1) ¿Cuántas veces visitaron antes de comprar? (2) ¿Qué páginas vieron? (3) ¿Utilizaron el chat o abrieron un ticket? (4) ¿Cuál fue el tiempo total desde la primera visita hasta la compra?Esto le indica el recorrido de compra típico para los clientes de alto valor.

Detectar inicio de sesión desde una nueva ubicación

Escenario:
A customer usually logs in from Nigeria but you see a session from Russia.
Qué hacer:

Busque el correo electrónico del cliente en Sesiones. Compare el país de las sesiones recientes. Si una sesión aparece repentinamente desde un país inusual, podría tratarse de un viaje legítimo o de una cuenta comprometida.1) ¿Hubo un intento de inicio de sesión fallido antes del exitoso? (2) ¿Había IP ¿Cómo puedo hacer un cambio dentro de la misma sesión?

¿Cuál es la diferencia entre una sesión y un visitante?+

Un visitante es una persona (o navegador). Una sesión es una visita de esa persona. El mismo visitante puede tener muchas sesiones a lo largo del tiempo. Las sesiones expiran después del período de tiempo límite.

¿Cómo identifica OpsIQ a los visitantes que regresan?+

OpsIQ utiliza una combinación de cookies, huellas dactilares del navegador y tokens de identidad autenticados. Si un visitante borra sus cookies y no está conectado, aparecerá como un nuevo visitante.

Análisis

Transmisión en vivo

El Live Feed muestra los visitantes que están actualmente en tu sitio web en tiempo real, se actualiza automáticamente cada 15 segundos (configurable) y puedes usarlo durante campañas, lanzamientos de productos y períodos de soporte ocupados para ver lo que está sucediendo ahora mismo.

Transmisión en vivo
Transmisión en vivoUn flujo de actividad en tiempo real que muestra un recuento en vivo de visitantes online y una fuente de acciones recientes de los visitantes por país.Transmisión en vivoyoursite.com3710,259 visitantes en línea ahoraActividad en vivoahoraUS · viendo /pricing2sEspaña · comenzó un chat5sDE · añadido al carrito9sCA · inscripción completada1RIGHT NOWVer quién está en el sitio2AUTO-REFRESHActualiza cada 15s3ACTOSaltar a un chat en vivo
Vea quién está en su sitio este segundo y qué están haciendo, refrescando automáticamente cada 15 segundos.

Cómo funciona

El Live Feed consulta tu servidor en el intervalo de actualización configurado. Cada fila muestra un visitante que se encuentra actualmente en tu sitio: su página actual, país, dispositivo, origen, duración de la sesión y recuento de páginas. Los resaltados verdes indican nueva actividad desde la última actualización. Haz clic en cualquier fila del visitante para ver los detalles completos de su sesión.

Configuración

Intervalo de actualización

Con qué frecuencia se actualiza la fuente en directo. Por defecto: 15 Los valores más bajos (5-10s) proporcionan actualizaciones más rápidas, pero utilizan más recursos del servidor.30-60s) son más fáciles en el servidor pero menos en tiempo real.

Umbral activo

Cuánto tiempo se considera que un visitante está "activo" después de su última carga de página. 90 Si un visitante carga una página y luego la lee durante 10 segundos, 2 Si no haces clic en ellos durante 15 minutos, desaparecen de la transmisión en directo después del umbral.

Botón de pausa

Haga clic en Pausa para detener la actualización automática. Útil cuando desea leer los detalles sin que se actualice la lista, haga clic en Reanudar para reiniciar.

Ejemplos de trabajo

Detectar un lead caliente durante una campaña

Escenario:
You are running a product launch. A visitor just viewed your homepage, then features, then pricing, and is now on the checkout page.
Qué hacer:

Este es un comportamiento de alta intención. En el Live Feed: (1Haga clic en el visitante para ver su sesión. (2) Si inician un chat, la IA tendrá el contexto completo de su viaje. (3) Si se van sin comprar, se convierten en un lead en la página de Leads. (4Considera la posibilidad de crear una regla proactiva para mostrar un mensaje de chat cuando los visitantes lleguen al proceso de pago.

Demasiados visitantes del mismo IP

Escenario:
You see 20 visitors from the same IP address, all on different pages.
Qué hacer:

Esto podría ser:1) Una oficina con Internet compartido. Compruebe si las visitas parecen seres humanos reales (páginas diferentes, duración razonable de sesión). (2Un bot o raspador. Compruebe si las sesiones son muy cortas (0-1segundos) o golpear páginas sistemáticamente. (3) Una prueba de carga. Si usted está ejecutando pruebas automatizadas, excluya el IP de rastreo.

¿Por qué el feed en vivo muestra 0 visitantes cuando mi sitio tiene tráfico?+

Cheque: (1) ¿Está instalado el script del widget en su sitio? (2) ¿Es correcta la clave del sitio? (3) ¿Ha pasado el umbral activo? (4) ¿Están los visitantes usando bloqueadores de anuncios agresivos que bloquean el script de seguimiento?

¿Puedo filtrar la transmisión en directo por país o dispositivo?+

El feed en vivo muestra todos los visitantes activos. Para las vistas filtradas, utilice el registro de visitantes o sesiones páginas con sus opciones de filtro.

Análisis

Páginas principales

Las páginas principales muestran qué páginas de tu sitio web reciben más tráfico, y las clasifica por visitas, interacción, conversiones y actividad de soporte. Úsala para identificar el mejor contenido, encontrar páginas con un rendimiento deficiente y descubrir páginas que generan preguntas de soportes técnicos.

Páginas principales
Páginas principalesUna lista clasificada de las páginas más visitadas con barras horizontales y cuentas.Páginas principalesyoursite.comPáginas más visitadas/pricing3,402/2,910/docs1,740/blog/seo-guide980/signup6401RANKEDPáginas más visitadas2SIGNALSVisitas & conversiones3FINDPáginas que generan tickets
Tus páginas clasificadas por tráfico y participación, para que puedas detectar el contenido principal y las páginas que generan apoyo.

Lo que muestra cada página

Página URL

La ruta completa URL. Las páginas similares (por ejemplo, variantes de productos) se agrupan si la agrupación está habilitada.

Vistas

Número total de veces que se cargó esta página en el intervalo de fechas seleccionado.

Visitantes únicos

Cuántas personas diferentes vieron esta página (una persona que ve la misma página dos veces cuenta como 1 única).

Tasa de rebote

Porcentaje de visitantes que abandonaron tu sitio después de ver solo esta página. Alto rebote en las páginas de destino = problema, alto rebote de las páginas "gracias" = normal

Tiempo medio

El tiempo que los visitantes pasan en esta página de media. Muy corto = no leer, muy largo en una página de formularios = confusión.

Comienza el chat

Si el chat comienza con un número elevado de visitas en una página del producto, es posible que la descripción no esté clara.

Tickets de soporte

Cuántos tickets de soporte fueron creados por los visitantes que estuvieron en esta página. Contador alto de tickets = problema potencial de experiencia del usuario o contenido.

Ejemplos de trabajo

Encontrar páginas que generan preguntas de soporte

Escenario:
Your support team keeps getting questions about shipping. Which page is failing?
Qué hacer:

Ordena las páginas principales por "Tickets de soporte" o "Inicios del chat" en orden descendente. Busca páginas de productos o de envío con un número elevado. La página con la mayoría de preguntas sobre soporte probablemente tenga información poco clara.

Encuentra páginas con una tasa de salida alta

Escenario:
You want to know where people leave your site most often.
Qué hacer:

Ignora las páginas que son puntos de salida naturales (páginas de agradecimiento, páginas de confirmación). Concéntrate en las páginas de productos, precios y características que deberían mantener a los visitantes comprometidos. Estas necesitan mejores llamadas a la acción o un contenido más claro.

¿Por qué una página muestra 0 visitas a pesar de que sé que recibe tráfico?+

Cheque: (1) ¿Está instalado el widget de seguimiento en esa página específica? Es posible que las aplicaciones de una sola página no generen visitas a la página cuando se cambie la ruta.2) ¿Está excluida la página en los ajustes de seguimiento? (3) ¿Una CDN sirve una versión en caché sin el script de seguimiento?

Análisis

Inteligencia geográfica

Geo Intelligence muestra de dónde provienen tus visitantes por país, ciudad, dispositivo y fuente. Úsala para comprender tus mercados geográficos, decidir sobre el soporte del idioma, planificar el marketing regional y detectar patrones de tráfico sospechosos.

Geo
Inteligencia geográficaUn mapa de las ubicaciones de los visitantes junto a un ranking por país.Inteligencia geográficayoursite.comVisitantes por ubicaciónEE. UU.Reino UnidoESCANG1MARKETSPaís, ciudad, dispositivo2PLANIdioma & regiones3WATCHDetección de tráfico extraño
Donde tus visitantes vienen de (por país, ciudad y dispositivo) a mercados de tamaño y detectar tráfico inusual.

Lo que ves

Gráfico de barras de países principales

Haga clic en un país para ver los datos a nivel de ciudad y luego haga clic en el botón "Ver más".

Donut del país

Desglose visual del tráfico por país. Pase el cursor para ver los porcentajes.

Tabla completa de países

Cada país con visitantes en el período seleccionado, mostrando el recuento de visitantes, el recuente de sesiones, la tasa de rebote y la tasa d conversión.

Desglose por ciudad

Haz clic en un país para ver qué ciudades de ese país tienen más visitantes.

Cómo funciona la detección de GeoIP

OpsIQ detecta la ubicación del visitante de dos maneras: (1) Cloudflare si su sitio está detrás Cloudflare, la detección del país es automática y precisa. (2) Base de datos MaxMind GeoLite2. Descargue la base de datos gratuita y configure el camino en Ajustes. La detección a nivel urbano requiere la Base de Datos GeoLites2-City, no sólo la base.

Tráfico VPN y 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.

Ejemplos de trabajo

Tráfico de país inesperado

Escenario:
You run a US-only business but 30% of traffic is from India.
Qué hacer:

Cheque: (1) ¿Son estos visitantes reales? Mira la duración de las sesiones y las páginas vistas. Sesiones muy cortas con alto rebote = probablemente bots. (2) ¿Te encuentran a través de Google? Comprueba el remitente. (3Si el tráfico es genuino y está comprometido, considera la posibilidad de agregar precios o contenido específicos para India.

Decidir sobre el soporte de idiomas

Escenario:
You want to know if you should translate your site into Spanish.
Qué hacer:

Si los países de habla hispana (España, México, Colombia, Argentina, etc.) representan más del 10% de tu tráfico con tasas de rebote bajas, vale la pena considerar la traducción. También revisa: ¿los visitantes de estos países se convierten a tasas similares a las de tu mercado principal?

Planificación de turnos de apoyo regional

Escenario:
You need to decide support team hours for different time zones.
Qué hacer:

Utilice el mapa de calor por hora (en Dashboard) combinado con Geo Intelligence. Si 40% La mayoría de su tráfico es de Europa y 35% El mapa de calor muestra exactamente cuándo cada región es más activa, lo que le permite ver la actividad en el momento adecuado.

País con visitas pero sin pedidos

Escenario:
Germany shows 500 visitors this month but zero sales.
Qué hacer:

Investigar: (1) ¿Están rebotando en la página de precios? Tal vez tu precio no sea competitivo para ese mercado.2) ¿Hacen envíos a Alemania? Compruebe si su página de envío menciona Alemania. (3) ¿Está disponible su pago en EUR? La incompatibilidad de divisas causa pagos abandonados. (4) ¿Son estos visitantes de una sola fuente que podría ser tráfico de baja intención?

¿Por qué un visitante muestra el país "Desconocido"?+

Para ello, puede configurar Cloudflare (que añade los encabezados geográficos automáticamente) o descargar la base de datos MaxMind GeoLite2 y establecer la ruta del archivo en Configuración > Ruta GeoIP.

¿Puedo bloquear el tráfico de países específicos?+

OpsIQ Utilice su servidor web o el navegador de Internet para acceder a la página. Cloudflare Reglas de cortafuegos para el bloqueo basado en países.OpsIQ Se centra en la visibilidad, no el control de acceso a nivel de red.

Análisis

Embudo de intención

El embudo de intención clasifica las sesiones de los visitantes según lo que parecen estar intentando hacer: navegar, investigar, comparar, comprar, obtener asistencia o abandonar. Úselo para comprender el balance de la intención en su sitio e identificar dónde abandonan los visitante.

Embudo de intención
Embudo de intenciónUn embudo de exploración a investigación para comparar y comprar con conteos, además de soporte y fichas de salida.Embudo de intenciónyoursite.comNavegando 8,200Investigación · 4,100Comparación · 1,650Comprar 520Soporte técnico 6%Saliendo de 11%1CLASSIFYLo que los visitantes quieren2STAGESBuscar para comprar3FIXEncuentra el punto de entrega
Sesiones clasificadas por intención (creación, investigación, comparación, compra) para que pueda ver exactamente dónde la gente se cae.

Categorías de intención

Navegación

Sesiones cortas, pocas páginas, sin detectar ningún objetivo específico.

Investigación

Visitantes que leen páginas de productos/funciones, documentos o contenido del blog. Tiempo más prolongado en la página, varias páginas de contenido.

Comparación

Visitantes que ven precios, comparaciones de planes o tablas de características.

Compra

Visitantes en las páginas de registro, carrito o registro. Alta intención. Estas son tus oportunidades de conversión.

Buscar apoyo

Visitantes en páginas de ayuda, páginas de contacto o que inician el chat.

Rebote

Visitantes que abandonaron después de una página. Baja participación.

Cómo leer el embudo

Interpretando tu embudo

Escenario:
1,000 visitors viewed Pricing. 270 opened chat. 92 started checkout. 64 paid. 18 opened support tickets.
Qué hacer:

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 tiempo

Use el filtro de rango de fechas para comparar patrones de intención a través de períodos. Por ejemplo, compare la semana del viernes negro a una semana normal. Usted debe ver un pico en "Comprar" intento y posiblemente "Buscar apoyo" si sus promociones crearon confusión.

¿Cómo clasifica OpsIQ la intención?+

OpsIQ Vistas a la página URLs, comportamiento de sesión y patrones de tiempo. Las páginas de precios indican la intención de comparación. La página de pago indica la intensión de compra.

¿Puedo personalizar las categorías de intención?+

Las categorías están integradas en función de los patrones comunes de comportamiento web. La clasificación personalizada de intenciones está incluida en la hoja de ruta.

Análisis

Embudos, retención y rutas

Cree recorridos personalizados a partir de pasos de página o eventos, mida la retención de cohortes y descubra las rutas que los visitantes toman con más frecuencia en un sitio.

Pantalla de producto
EmbudosUn embudo personalizado muestra cada paso de página/evento, los visitantes restantes y el porcentaje de conversión.Embudosespacio de trabajoSTEPS4CONVERSION28.4%WINDOW72hVISTA DE ESPACIO DE TRABAJO EN DIRECTOPrecios vistos1,420 visitantes100%Plan seleccionado780 visitantes54.9%Checkout comenzado530 visitantes37.3%Orden completada403 visitantes28.4%1DEFINEChoose 2–8 Pasos2MEDIDAEstablecer ventana de conversión3IMPROVEEncuentra la caída más grande
Un embudo personalizado muestra cada paso de página/evento, los visitantes restantes y el porcentaje de conversión.

Embudos

Crear un embudo con nombre 2 a 8 Establece la ventana de conversión en horas; un visitante solo se cuenta cuando los pasos ordenados ocurren dentro de esa ventana. Usa el drop entre las etapas para elegir dónde inspeccionar la reproducción, errores, velocidad de página o mensajes.

Retención

La retención agrupa a los visitantes en cohortes semanales y muestra cuántos regresan. 6, 8 o 12 Mantenga estable la definición de cohorte al comparar lanzamientos o campañas.

Caminos

Rutas muestra las secuencias de páginas más comunes. Elija una longitud de ruta entre 2 to 5 Úsala para encontrar desvíos inesperados, salidas comunes y contenido que precede repetidamente a la conversión, así como para identificar las páginas de interés.

Para reaccionar ante un paso completado, crea un objetivo de conversión, segmento, desencadenante o flujo de trabajo y luego haz clic en el botón "Continuar".

Análisis

Repetición de sesión

Session Replay te permite ver una línea de tiempo de lo que un visitante hizo en tu sitio: qué elementos hicieron clic, cómo se desplazaron, dónde pasaron el cursor y qué escribieron (con campos confidenciales ocultos) Úsala para diagnosticar problemas de experiencia del usuario, verificar informes de errores y comprender la confusión del cliente.

Repetición de sesión
Repetición de sesiónUn reproductor de repetición que muestra una ventana de página con un cursor, un panel de información de sesión y un deslizador de línea de tiempo.Repetición de sesiónyoursite.comComprar ahora »PERÍODO DE SESIONESDuración 3m 12s14 clicsUS · EscritorioChrome1241WATCHClics, desplazamiento, escritura2MASKEDCampos sensibles ocultos3DIAGNOSEVerificar informes de errores
Replay exactamente lo que hizo un visitante: clics, pergaminos, tipeado (campos sensibles enmascarados), en un escrubador de línea temporal.

Encontrar la sesión adecuada

En la página Sesiones, busca sesiones con problemas reportados, un alto recuento de páginas sin conversión o sesiones de clientes que han abierto tickets de soporte. Haz clic en el icono de repetición para abrir la vista de línea de tiempo.

Lo que muestra la repetición

Cronología

Una barra horizontal que muestra los eventos a lo largo del tiempo. Haga clic en cualquier lugar de la línea de tiempo para saltar a ese momento.

Navegación de la página

Cada carga de página aparece como un segmento en la línea del tiempo, donde puedes ver el camino exacto que tomó el visitante.

Clics

Los eventos de clic se muestran como puntos en la línea de tiempo y como resaltados en la reconstrucción de página.

Desplazamiento

La profundidad de desplazamiento se rastrea para que puedas ver hasta dónde ha llegado el visitante.

Interacción de formularios

La entrada de texto en campos sensibles y con contraseña está oculta por defecto, pero se puede modificar para que no aparezca.

Privacidad y enmascaramiento

La reproducción de la sesión enmascara los campos confidenciales del formulario de forma predeterminada. Los campos de contraseña, las entradas de tarjeta de crédito y los campos marcados con data-opsiq-mask nunca se registran. Puede configurar reglas de enmascaramiento adicionales en Configuración > Seguimiento. Si su política de cumplimiento lo requiere, puede inhabilitar por completo la reproducción.

Diagnosticar un checkout roto

Escenario:
A customer says "I tried to buy but the button did nothing."
Qué hacer:

Encuentra su sesión en la página Sesiones (búscala por correo electrónico). Abre la repetición. Mira el segmento de la página de pago.1) ¿Hicieron clic en el botón correcto? (2) Did a JavaScript ¿Se produce un error? (Compruebe la página de errores JS para ese momento.)3) ¿La página se recargó o mostró un mensaje de error? (4) ¿Estaba un campo obligatorio en blanco? La repetición muestra exactamente lo que sucedió.

¿Cuánto almacenamiento utiliza la reproducción de sesión?+

Los datos de reproducción crecen con el volumen de tráfico. Utiliza la configuración de retención para limpiar automáticamente los datos de reproducciones antiguos. Para sitios web con mucho tráfico, considera un período de retenção de reproducción más corto (por ejemplo, 30 días) para administrar el almacenamiento.

¿Pueden los visitantes optar por no reproducir?+

Si "Respetar No Rastrear" está habilitado en Configuración, los visitantes con encabezados DNT no se registran. También puede excluir páginas específicas de la reproducción en la configuración de seguimiento.

Análisis

Registro de eventos

El registro de eventos muestra todos los eventos que OpsIQ ha registrado: vistas de página, clics, inicios de chat, creaciones de tickets, ventas y eventos personalizados. Úselo para depurar integraciones, verificar la entrega de webhook y comprender la secuencia de acciones.

Registro de eventos
Registro de eventosUn registro cronológico de eventos con insignias de tipo codificadas por colores: vista de página, chat, venta, webhook y personalizado.Registro de eventosyoursite.compageviewES · /pricing12:04:01chat.startEspaña · widget abierto12:04:09venta$49.00 · Orden #104212:05:22webhookpayment.succeeded12:05:23customdemo_booked12:06:101EVERYTHINGCada evento grabado2DEBUGVerificar la entrega de webhook3ORDERVea la secuencia exacta
A timeline of everything OpsIQ records (pageviews, chats, sales, webhooks, custom events) for debugging and audit.

Eventos incorporados (automáticos)

pageview

Se activa cada vez que se carga una página rastreada. Incluye URL, título, referencia y marca de tiempo.

chat.started

Se activa cuando un visitante abre el widget de chat y envía su primer mensaje.

chat.message

Se dispara por cada mensaje en una conversación de chat (tanto visitante como IA/agente).

ticket.created

Se dispara cuando se crea un nuevo ticket de soporte (desde chat, correo electrónico, widget o administrador).

ticket.replied

Se activa cuando se agrega una respuesta a un ticket.

order.completed

Se activa cuando se completa una compra a través de una plataforma conectada.

form.submitted

Se activa cuando se envía un formulario con seguimiento (si el seguimiento de formularios está habilitado).

identify

Se activa cuando un visitante se identifica a través de un token de identidad.

Error de seguridad.

Se dispara cuando un intento de inicio de sesión falla.

Eventos personalizados

Puedes enviar eventos personalizados desde tu sitio web o servidor a OpsIQ Los eventos personalizadoes son útiles para rastrear las acciones específicas de tu negocio: clics en botones, uso de funciones, reproducciones de videos, descargas, etc.

JavaScript · evento personalizado desde el navegador
// Send a custom event from the browser
window.OpsIQ = window.OpsIQ || [];
window.OpsIQ.push(["track", "plan_selected", {
  plan: "pro",
  billing: "annual",
  value: 99
}]);
PHP · registrar una actividad de contacto desde su 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);

Filtrando eventos

Tipo de evento

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

Rango de fechas

Mostrar eventos de un período específico.

Buscar

Busque datos de eventos por palabra clave (URL, correo electrónico, valores de propiedad de evento).

¿Cuánto tiempo se guardan los eventos?+

Los eventos siguen la política de retención establecida en Configuración. Por defecto: 90 días. Los eventos de alto valor (compras, eventos de seguridad) se pueden configurar con una retención más larga.

¿Puedo usar eventos en experimentos A/B?+

Al crear un experimento, elija un evento de conversión. Puede usar cualquier evento integrado o personalizado como objetivo de conversión, pero no debe ser una conversión en sí misma.

Análisis

Experimentos A/B

Los experimentos te permiten probar dos versiones de una página o función y medir cuál tiene mejor rendimiento. OpsIQ realiza un seguimiento de las impresiones, conversiones y significación estadística.

Experimentos A/B
Experimentos A/BDos tarjetas de variante que comparan las tasas de conversión, con una insignia ganadora y significación en la variante líder.Experimentos A/Byoursite.comVariante A4.2%Conversiones · 1,020 vistasVariante BWINNER6.8%Conversiones · 1,005 vistas+62% ascensor · 96% significativo1TESTDos variantes cabeza a cabeza2MEDIDAConversiones & significación3DECIDEDeclarar un ganador
Ejecuta dos variantes, observa las conversiones y la significación estadística, y declara al ganador.

Cómo funcionan los experimentos

1
Crear un experimento

Dale un nombre, define tu métrica principal (evento de conversión) y establece las variantes (control y prueba).

2
Ejecútalo

OpsIQ asigna de forma aleatoria a los visitantes a las variantes y realiza un seguimiento de su comportamiento. No cambies el experimento mientras se está ejecutando.

3
Lea los resultados

Después de recopilar suficientes datos, comprueba el nivel de confianza. 95% confianza significa que puedes estar _95% seguro de que la diferencia es real y no una coincidencia aleatoria.

Estados del experimento

Borrador

Se ha creado pero aún no se ha iniciado. Aún puede editar variantes y métricas.

Ejecución

Asignar activamente visitantes a variantes. No editar mientras se ejecuta.

Completado

Alcanzó significación estadística o se detuvo manualmente. Los resultados son definitivos.

Archivado

Los resultados se han revisado y el experimento ya no es necesario en la lista activa.

Las mejores prácticas

Defina su métrica antes del lanzamiento

Decide qué vas a medir antes de empezar, elegir una métrica después de ver los resultados introduce sesgo.

Excluir el tráfico interno

Añade las direcciones IP de tu equipo a la lista de exclusión para que las visitas del personal no sesguen los resultados.

Corre lo suficiente

No detenga un experimento después de 100 visitantes, necesitará cientos o miles de visitantes por variante para obtener resultados fiables.

Prueba un cambio a la vez

Si cambias el título Y el color del botón, no sabrás qué cambio causó la mejora.

Registra tu decisión

Una vez que el experimento haya terminado, anota qué variante ganó y por qué elegiste implementarla.

¿Cuántos visitantes necesito para un experimento válido?+

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

¿Puedo ejecutar varios experimentos al mismo tiempo?+

Sí, pero ten cuidado: si dos experimentos afectan a la misma página, sus resultados pueden interactuar. Es más seguro ejecutar los experimentos en diferentes páginas o funciones al mismo tiempo.

Análisis

Errores de JavaScript

JavaScript Errores recopila los errores del lado del cliente de los visitantes de su sitio web. API Utilice esta herramienta para encontrar y corregir errores que afectan a los clientes reales, como problemas con el servicio de atención al cliente.

Errores de JS
Errores de JavaScriptUna lista de errores del front-end capturados con puntos de gravedad, archivo fuente, navegador y conteo de ocurrencias.Errores de JavaScriptyoursite.comErrores recientesTypeError: no se puede leer x de undefined¿Qué es checkout.js?42 · Cromo×214404 Cargando /assets/app.cssÍndice · Safari×88No atrapado (en promesa) NetworkErrorapi. js:_17×51Advertencia de obsolescencia: evento unload¿Qué es vendor. js?×331CAPTUREErrores del lado cliente2IMPACTContadores & navegadores3FIXSquash verdaderos errores
Visitas reales que golpean la superficie de código roto aquí (mensaje, fuente, navegador y con qué frecuencia) para poder arreglar lo que importa.

Lo que muestra cada error

Mensaje de error

El texto de error JavaScript (por ejemplo, "TypeError: No se pueden leer las propiedades de undefined").

Página URL

En qué página se produjo el error.

Navegador y dispositivo

El navegador y el tipo de dispositivo que vio el error. Algunos errores son específicos del navegador.

Traza de pila

La ubicación del código donde se produjo el error. Haga clic para expandir la traza de pila completa.

Primero visto

Cuando este error apareció por primera vez.

Visto por última vez

Cuándo se produjo este error por última vez.

Cuenta

Cuántas veces se ha registrado este error.

Sesiones afectadas

Cuántas sesiones de visitantes diferentes experimentaron este error.

Priorizar los errores

No todos JavaScript Estos errores requieren atención inmediata. Priorizar por: (1) errores en páginas críticas (checkout, registro, login), (2) errores con altos recuentos de sesiones, (3) errores que aparecieron recientemente (posible regresión de un cambio de código), (4) errores en su propio código (no scripts de terceros).

Cómo arreglar un botón de pago roto

Escenario:
The JS Errors page shows "TypeError: Cannot read properties of undefined (reading submit)" on /checkout, affecting 45 sessions this week.
Qué hacer:

Esto significa : 45 Los clientes reales no pudieron completar el pago. Pasos: (1) Abre la página en el mismo navegador/dispositivo. (2) Abra la consola del navegador y reproduzca el error. (3) Compruebe el seguimiento de la pila para encontrar la línea exacta de código. (4) Corrige el error, implementa y monitorea que la cuenta de errores sea nula.

¿ OpsIQ captura errores de scripts de terceros?+

Sí, OpsIQ Captura todo JavaScript Errores en la página, incluidos los errores de scripts de análisis, widgets de chat y scripts publicitarios. URL En el rastreo de la pila para centrarse en su propio código.

¿Cómo puedo excluir errores conocidos inofensivos?+

No se pueden suprimir errores específicos en. OpsIQ, pero puedes filtrar la lista por página. URL Corregir o ignorar los errores de las extensiones del navegador (a menudo se muestran como errores procedentes de fuentes desconocidas).

Ventas

Ventas y conversiones

El seguimiento de ventas conecta tu tienda o plataforma de facturación a OpsIQ para que puedas ver los ingresos junto con el comportamiento del visitante. Cada compra se atribuye a un recorrido del visitant, por lo que sabes qué páginas, campañas y canales generan ingresos.

Ventas
VentasLa pantalla Ventas: un total de ingresos con un control de período histórico, una búsqueda y una tabla Compras recientes (fecha, cliente, plataforma, cantidad, fuente).Ventasyoursite.comIngresos$42,180+18%Todo el tiempo ▾Buscar correo electrónico, IP, ID de pedido…Compras recientesFECHACLIENTEPLATAFORMACANTIDADFUENTEJun 3[email protected]Shopify$49googleJun 3[email protected]WooCommerce$129directJun 2[email protected]Stripe$480anuncios1IngresosPedidos & renovaciones2RECENT PURCHASESFecha · cliente · cantidad3ATTRIBUTEDA la fuente de tráfico
La pantalla de ventas real, los ingresos arriba, luego las compras recientes (fecha, cliente, plataforma, cantidad), cada uno atribuido a su fuente de tráfico.

Panel de ventas

Las ventas de hoy

Ingresos de pedidos completados hoy. Se actualiza con cada nuevo evento de pedido desde su plataforma conectada.

Esta semana / este mes / total

Ingresos agregados durante el período. Los reembolsos se restan de estos totales.

Gráfico de tendencias

Gráfico de líneas que muestra los ingresos diarios en el intervalo de fechas seleccionado, con picos (promociones, campañas) y descensos (problemas, estacionalidad).

Principales fuentes de conversión

¿Qué fuentes de tráfico conducen a la mayoría de las compras? Los compradores "directos" suelen marcar tu sitio como favorito.

Compras recientes

Los últimos pedidos con el correo electrónico del cliente, la cantidad, la moneda y los artículos comprados.

Guías de configuración de plataforma

Shopify

Ir a Conectores >Shopify. Crear una aplicación personalizada en su.Shopify admin (Configuración > Aplicaciones y canales de ventas > Desarrollar aplicaciones). Los ámbitos de concesión son: read_orders, read_customers, read _products. API Token de acceso. En OpsIQ, ingrese el dominio de su tienda (p. ej. your-store.myshopify.com) y el token de acceso. Haga clic en Probar conexión. Si tiene éxito, habilite la sincronización webhook para las notificaciones de pedidos en tiempo real.

WooCommerce

Ir a Conectores >WooCommerce. En su. WordPress admin, ir a WooCommerce> Configuración > Avanzado > REST API. Crear una clave con permiso de lectura/escritura. Copie la clave del consumidor y el secreto del consumidor. OpsIQ, ingrese su sitio URL, clave del consumidor y secreto del consumidor. Haga clic en Probar conexión.

BigCommerce

Vaya a Conectores > BigCommerce. En su administrador de BigCommerce, vaya a Configuración avanzada >API Cuentas. Crear una cuenta V2/V3 API Cuenta con ámbito de lectura para pedidos, clientes y productos Copie el token de acceso, el ID del cliente y.API Introducirlos en el campo. OpsIQ y prueba.

Magento 2

Vaya a Conectores > Magento. En su panel de control de Magento, vaya a Sistema > Integraciones. API Active la integración y copie el token de acceso. Introduzca el código en, haga clic en Aceptar e inicie sesión con su cuenta de administrador. OpsIQ Con tu base de Magento URL.

PrestaShop

Vaya a Conectores > PrestaShop. En su administrador de Prestashop, vaya a Parámetros avanzados > Servicio web. Habilite el servicio web y cree una nueva clave. Conceda acceso a pedidos, clientes y productos. Copie la clave e introdúzcala en. OpsIQ Con tu tienda URL.

OpenCart

Vaya a Conectores > OpenCart. Generar API Ingrese sus credenciales desde su panel de administración de OpenCart.API URL, nombre de usuario y clave en OpsIQ. El conector utiliza el REST de OpenCart API Para datos de pedidos y clientes.

osCommerce

Vaya a Conectores > osCommerce. Configure el acceso a la base de datos o API La integración de osCommerce normalmente requiere acceso directo a la base de datos o un SQL Server personalizado.API módulo.

Stripe

Ve a Conectores > Stripe. Copia tu cuenta de Stripe restringida API Agregar una clave desde el Panel de control de Stripe (Desarrolladores > )API La clave necesita acceso de lectura a Clientes, Cargos, Facturas y Suscripciones. Introduzca la clave en. OpsIQ. Configurar el punto final de webhook para eventos en tiempo real.

Personalizado / otras plataformas

Usar el REST API Envía eventos order.completed con el correo electrónico del cliente, la cantidad, la divisa y los artículos. Ver los Eventos API Sección para el formato de la carga útil.

Comprender tu embudo de ventas

Principales fuentes de conversión

Muestra los canales que traen clientes pagadores. Si Google trae 1000 visitantes y 50 ventas, eso es una5% tasa de conversión. Si el email trae consigo 200 visitantes y 30 ventas, eso es 15%. El correo electrónico es más efectivo por visitante.

Reembolsos

Los pedidos reembolsados se registran por separado y reducen los totales de ingresos netos. Si las tasas de reembolso son altas en una fuente específica, es posible que el tráfico tenga baja calidad.

Manejo de divisas

OpsIQ Almacena la moneda y el importe de la transacción original. Los negocios con varias divisas ven los ingresos en cada divisa, mientras que los informes normalizados utilizan el tipo de cambio configurado.

Ejemplos de trabajo

100 visitantes, cero ventas

Escenario:
Your pricing page gets 100 visitors per day but zero conversions.
Qué hacer:

Investigar:1) Use Session Replay en los visitantes de la página de precios. Vea cómo interactúan con la tabla de precios . (2) Compruebe las páginas superiores para la página de precios del rebote velocidad y hora en página. (3) Chequee conversaciones de chat desde visitantes de página de precios. ¿Qué preguntas hacen? (4) Compare su página de precios a los competidores. (5) Prueba un experimento A/B con diferentes diseños de precios.

Atribución para una campaña de marketing

Escenario:
You sent an email campaign with UTM tags. How do you measure its revenue impact?
Qué hacer:

Vaya a Ventas y filtre por origen. Busque el parámetro UTM de la campaña, verá: (1) Cuántos visitantes vinieron del correo electrónico. (2) Cuántos se convirtieron en ventas. (3) Ingresos totales atribuidos a la campaña. (4) Comparar con el mismo período antes de la campaña.

¿Por qué las ventas muestran cero a pesar de que mi tienda tiene pedidos?+

Cheque: (1) ¿Está el conector de plataforma conectado y en buen estado? Vaya a Conectores y compruebe el estado. (2) ¿Está habilitada la sincronización de webhook? Si se utiliza polling, ¿se está ejecutando el trabajo cron?3) ¿El conector tiene el derecho API ¿Para qué? Shopify, necesitas read_orders.

¿Cómo atribuye OpsIQ una venta a un visitante?+

Cuando un pedido llega a través del conector, OpsIQ hace coincidir el correo electrónico del cliente con un visitante conocido. Si se hizo seguimiento al visitante antes de la compra, la venta se atribuye a su trayecto de visitante, incluida la fuente de tráfico, la página de destino y el historial de sesiones.

¿Puedo añadir ventas manualmente?+

Puede enviar eventos de ventas a través del REST API El formato del evento está documentado en la página de eventos.API sección.

Ventas

Clientes potenciales

Los plomos son visitantes o clientes que muestran la intención de compra o soporte.OpsIQdetecta automáticamente los leads basados en el comportamiento: visitas de página, visitas de retorno, interacciones de chat, salidas y un alto compromiso. Utilice la página Leads para priorizar el seguimiento y alimentar suCRMoleoducto.

Clientes potenciales
Clientes potencialesLa pantalla de clientes potenciales: una tabla con búsquedas que contiene las columnas IP/email, ubicación, dispositivo, fuente y tiempo en el sitio, así como la principal fuente y país.Clientes potencialesyoursite.comBuscar IP, ciudad, país…Fuente principal: google · País principal: USIP / CORREO ELECTRÓNICOUbicaciónDISPOSITIVOFUENTETIEMPO41.62.10.4Reino Unido · LondresMóvilgoogle4m 12s[email protected]EE. UU · Nueva YorkEscritoriodirect7m 02s[email protected]DE · BerlínMóvilUtm:ads5m 40s203.0.113.9CA · Nueva YorkEscritoriogoogle3m 28s1DETECTEDVisitantes de alta intención2TOPFuentes de leads y países3ENRICHEDIP, ubicación, dispositivo, tiempo
La pantalla real de Leads, visitantes de alto nivel como una tabla de búsqueda (IP/email, ubicación, dispositivo, fuente, tiempo en el sitio) con fuentes y países principales.

Lo que hace un lead

Precios de las visitas a la página

Los visitantes que ven tu página de precios o planes están considerando activamente una compra.

Visitas de retorno

Los visitantes que regresan varias veces están comprometidos pero aún no se han convertido.

Interacciones de chat

Los visitantes que comienzan una charla están buscando activamente ayuda, ya sea pre-purchase o post-purcase.

El checkout comienza

Visitantes que llegan a la página de pago pero no completan la compra.

Presentaciones de formularios

Visitantes que envían un formulario de contacto, solicitud de demostración o formulario de registro.

Alta participación de la página

Los visitantes que ven muchas páginas con una larga duración de sesión están investigando profundamente.

Panel de detalle del plomo

Haga clic en cualquier lead para ver su perfil completo:

Identidad

Nombre, correo electrónico y compañía si se conocen. Los leads anónimos muestran IP y ubicación.

Sesiones

Todas las sesiones de este lead con flujo de página, duración y origen.

Páginas vistas

Cada página que visitaron, ordenada por reciente.

Fuente

Cómo te encontraron: orgánico, pagado, social, referencial, directo.

Puntuación de lead

A0-100 Puntuación basada en la intensidad del comportamiento, reciente e intención de página.

Estado de CRM

Si este cliente potencial se ha añadido al CRM como contacto o negocio.

Consejo de ventas

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

Insignia de lead de alto valor

Los clientes potenciales con una puntuación superior a 80 reciben la insignia "Valor alto". Estos son tus clientes potenciale más interesantes, por lo que debes darles prioridad para el alcance, el chat proactivo o la entrada en tu canal de CRM.

Ejemplos de trabajo

Trabajar con un lead caliente

Escenario:
A lead viewed your pricing page 3 times in 2 days, started a chat asking about enterprise plans, but has not purchased.
Qué hacer:

Este es un lead de alta intención. Pasos: (1) Compruebe los detalles de su lead para obtener información sobre la compañía y el rol. (2) Revise la transcripción del chat para necesidades y objeciones específicas. (3) Crear un trato en el CRM con la información recopilada. (4) Asignar una tarea de seguimiento para un miembro del equipo de ventas. (5Si vuelven a la página de precios, la regla proactiva del chat puede activar un mensaje personalizado.

Convertir leads anónimos en contactos de CRM

Escenario:
You have 50 anonymous leads with high scores but no email addresses.
Qué hacer:

Opciones: (1) Crea una regla proactiva que ofrezca un descuento o la descarga de recursos a cambio del envío de correos electrónicos en páginas con alta intención.2) Usa el widget de chat para pedir un correo electrónico cuando los visitantes anónimos inicien una conversación.3) Añade un token de identidad a tus páginas de inicio de sesión/registro para que los visitantes recurrentes sean identificados automáticamente.

¿Cómo se calcula el puntaje de leads?+

La puntuación considera: reciente de las visitas (reciente = más alto), frecuencia de las visites (más = mayor), páginas vistas (precio/checkout = superior), duración de la sesión (más largo = máximo), interacciones en el chat (engaged = máxima) y visitas repetidas (sesiones múltiples = maximo).

¿Puedo personalizar las reglas de puntuación de leads?+

En la configuración de CRM, puede agregar reglas de puntuación de clientes potenciales que mejoren la puntuación en función de palabras clave, eventos, fuentes o patrones de página específicos.

CRM

Su CRM · empezar aquí

OpsIQ envía un CRM completo que captura la verdad del cliente, limpia datos, puntua guías, ofertas de entrenadores, pronósticos ingresos y actos, con inteligencia del sitio web, soporte, tickets, productos y pagos como uno gráfico en vivo. Cada acción AI es fuente, explicable, reversible y controlado por aprobación.

CRM de IA
Descripción general de AI CRMUn Dial de confianza configurado para Copiloto junto a cuatro cartas de agente de IA: Administrador, Prospector, Retención y Analista.CRM de IAespacio de trabajoDial de confianzaManualCopilotoPiloto automáticoCuánto hace la IA por sí solaDS¡Stégite!Deduplicar, enriquecer,Validar los datosDEGProspectorEncuentra & anotaNuevos negociosRTRetenciónChurn de spot,Renovaciones de unidadANTESAnalistaPronóstico &Explicar los números1AI-FIRSTCuatro agentes especialistas2YOU DECIDEAutonomía de Trust Dial3TRUSTEDSuministrado y reversible
Un CRM IA dirigido por cuatro agentes especializados, y un sello de confianza que decide cuánto hacen ellos mismos.

Resumen de páginas CRM

AI CRM (Centro de Comando)

Comience aquí

Su pantalla de inicio diaria: pulso de ingresos, lo que encontró la IA, qué hizo, cola de aprobación, próximos movimientos, estado del agente y ROI.

Contactos

Núcleo

Personas y empresas en tu CRM. Busca, filtra, puntualiza y gestiona perfiles.

Pipeline

Núcleo

Tablero de trato visual con etapas de arrastrar y soltar, probabilidad de ganar y entrenamiento de IA.

Previsión e Informes

Núcleo

Previsión de nivel de junta: comprometida, probable, mejor caso, con intervalos de confianza y seguimiento de precisión.

Ciclo de vida

Núcleo

Dónde se encuentra cada cliente: activo, en riesgo, listo para la expansión, con fecha de renovación o en proceso de abandono.

Crear mi CRM

Configuración

Describe tu configuración de CRM en inglés sencillo. OpsIQ genera un plan reversible y lo aplica al aprobarlo.

CRM de Salud

Opciones

Página de autocomprobación: esquema, agentes, rutas, acciones de IA y recuentos de datos en vivo.

Cómo OpsIQ te mantiene seguro

Pregunta antes de actuar

Las propuestas de IA van a la cola de aprobación, donde puedes aprobarlas, editarlas o rechazarlas. Nada pasa sin tu opinión.

Nunca sobrescribir

Cuando la IA sugiere un cambio, muestra el valor actual y el propuesto. Los datos introducidos por humanos tienen protección de procedencia.

Todo es reversible

Cada acción de IA se registra en el diario y puede deshacer cualquier cambio con un solo clic.

Explicable

Cada recomendación de IA muestra su razonamiento y las fuentes de datos que utilizó.

¿Nuevo? Empieza aquí

1
Abrir AI CRM

Haga clic en AI CRM en la barra de navegación izquierda. El Centro de comandos muestra su estado actual.

2
Compruebe el estado de CRM

Abra CRM Health para verificar que el esquema, los agentes y las rutas estén listos.

3
Importar contactos

Si un conector está activo (Shopify, WHMCS, etc.), los contactos se importan automáticamente. De lo contrario, CSV o crear manualmente.

4
Crear un embudo

Ve a Pipeline y crea tu primer embudo con etapas (por ejemplo, Lead, Calificado, Propuesta, Negociación, Ganado, Perdido).

5
Añade tu primer trato

Cree un trato a partir de un contacto, establezca el importe y la etapa y deje que el Coach del trato lo guíe.

¿Necesito usar el CRM?+

No, el CRM es opcional. OpsIQ funciona perfectamente como una plataforma de seguimiento + soporte + IA sin el CRM, habilite cuando esté listo para administrar las ventas y las relaciones con los clientes.

¿Puede el CRM funcionar sin conectores?+

Los conectores enriquecen el CRM con datos de la plataforma (pedidos, suscripciones, tickets), pero no son obligatorios.

¿Qué es la capa de confianza?+

La capa de confianza es el sistema de seguridad que controla lo que la IA puede hacer. Modo copiloto (predeterminado): AI propone, humano apruebaModo piloto automático (opt-in): IA actúa automáticamente en operaciones reversibles y de bajo riesgo.

CRM

La pantalla de inicio de AI CRM

El Centro de Comando es tu informe diario, ábrelo cada mañana para ver qué ha pasado, qué necesita atención y qué hacer a continuación.

Centro de Comando
Centro de Comando CRMLa página de inicio del CRM con los botones Forecast/Win-rate/Pipeline, un KPI de pronóstico ponderado y una cola de propuestas de IA con Aprobar y Desestimar en cada fila.Centro de Comando CRMespacio de trabajoPronósticoTasa de victoriaPipelinePRONÓSTICO · ESTA Q74.000 dólares87%Propuestas de IA · aprobar colaCrear oferta · Acme $24kDe una charla con el compradorAprobarDescartarMover Nimbus → Propuesta de cambioRespuesta positiva detectadaAprobarDescartarRegistrar tarea · hacer seguimiento PicoNo hay actividad en 7 díasAprobarDescartar1TOGGLEPronóstico · Tasa de victorias · Pipeline2AI PROPOSESOfertas, etapas, tareas3YOU DECIDEAprobar o rechazar
El centro de mando real: cambiar entre el pronóstico, la tasa de ganancia y Pipeline, y trabajar la cola propuesta AI, aprobar o descartar los acuerdos, movimientos de escenario y tareas que sugiere.

Lo que muestra el Centro de comandos

Los números de hoy

Valor de tubería, ofertas ganadas / perdidas, nuevas pistas, ofertas activas y tendencia de ingresos, una instantánea de su estado actual.

Lo que OpsIQ encontró

Información descubierta por la IA: negocios estancados, cuentas en riesgo, nuevas oportunidades, problemas de calidad de datos y señales del mercado.

Lo que hizo OpsIQ

Acciones que la IA ha realizado (en Piloto automático) o propuesto (en Copiloto): avances de etapa, actualizaciones de puntuación, enriquecimiento de contactos y creación de tareas.

Necesita aprobación

Una cola de propuestas de IA esperando su decisión. Cada una muestra la acción, el razonamiento y las pruebas propuesta.

Los próximos movimientos

Anexo:Edificios y estructuras del Reino Unido 10 Las cosas más importantes que hacer hoy: dar seguimiento a un negocio caliente, revisar una cuenta en riesgo, investigar un nuevo cliente potencial, etc.

Estado de ayudante

Salud de los agentes de IA: Captura, Administrador de datos, Inteligencia de tratos, Entrenador de trato, SDR, Retención. Verde = en ejecución, ámbar = necesita atención, rojo = error.

Resultados

Seguimiento del ROI: negocios influenciados por la IA, tiempo ahorrado, precisión de las predicciones y comparación con el trabajo manual de CRM.

Flujo de trabajo de la reunión informativa matutina

1
Lea los números de hoy

Comprueba el estado de tu pipeline y la tendencia de tus ingresos.

2
Borrar la cola de aprobación

Revise cada propuesta de IA, apruebe acciones seguras, edite cuando sea necesario y rechace las malas sugerencias.

3
Compruebe lo que OpsIQ encontró

Lea los insights de IA. ¿Hay algún trato en riesgo? ¿Existen nuevas oportunidades?

4
Trabajar la lista de próximos movimientos

Comience con la prioridad más alta, que el IA ha clasificado por urgencia e impacto potencial.

Ponerse al día después del tiempo libre

Escenario:
You were away for a week. What happened while you were gone?
Qué hacer:

Abre el Centro de Comando y comprueba: (1) "¿Qué OpsIQ did" muestra todas las acciones de IA durante su ausencia. (2) "Necesita aprobación" muestra propuestas esperando su revisión. (3) "¿Qué OpsIQ"No se encontró" resalta elementos urgentes. (4) Establezca el intervalo de fechas del panel en su período de ausencia para ver la tendencia.

CRM

Contactos, empresas y ofertas

El CRM organiza sus relaciones comerciales en cuatro objetos: Contactos (personas), Empresas (organizaciones), Negocios (oportunidades de ingresos) y Tareas (acciones de seguimiento).

Objetos de CRM
Objetos de CRMUn registro de contacto vinculado a los objetos Empresa, Negocio y Tarea en un gráfico conectado.Objetos de CRMespacio de trabajoContactoPersona · correo electrónico · teléfonoCompañíaaccountsAcuerdoOportunidad de ingresosTareamedidas de seguimiento1OBJECTSContactos, empresas, ofertas2LINKEDUn gráfico conectado3TASKSSeguimiento adjunto
Cuatro objetos básicos (contactos, empresas, ofertas y tareas) vinculados a un gráfico de clientes conectado.

Contactos

¿Qué es un contacto?

Una persona en tu CRM, que puede ser un cliente, un prospecto, un socio o un lead. Los contactos tienen un correo electrónico, nombre, empresa, etiquetas, etapa del ciclo de vida y calificación de atractividad.

Buscar contactos

Usa la barra de búsqueda para buscar por nombre, correo electrónico, empresa o etiquetas. Usa filtros: etapa del ciclo de vida, puntuación de lead, fuente, país, fecha de última actividad, propietario asignado.

Perfil de contacto

Haga clic en un contacto para ver su perfil completo: información personal, empresa, ofertas, actividades, tickets, chats, visitas al sitio web, puntuación de clientes potenciales e información sobre IA.

Puntuación de calidez

A0-100 Puntuación calculada a partir de señales de comportamiento: visitas al sitio web, participación por correo electrónico, interacciones en el chat, historial de compras y reciente.

Empresas

... más entradas...
Enlace de contacto-empresa

Los contactos están vinculados a las empresas por dominio de correo electrónico o asignación manual, una empresa puede tener muchos contactos.

Ofertas

Qué es un trato

Los acuerdos tienen un título, una cantidad, un proceso, una etapa, probabilidad de ganar, fecha de cierre, propietario asignado y contactos/empresa asociados.

Probabilidad de ganar

Un porcentaje de probabilidad de ganar el trato. Se establece manualmente o se calcula mediante IA en función de los datos históricos de ganancias.

Tratar la salud

Verde (saludable), ámbar (en riesgo) o rojo (detenido): según la reciente actividad, duración de la etapa y señales de interacción.

Tareas

Qué es una tarea

Las tareas tienen un título, fecha de vencimiento, prioridad, tipo (llamada, correo electrónico, reunión u otro) y contacto/negocio vinculado.

Tareas generadas por IA

La IA crea tareas automáticamente cuando detecta algo que necesita atención: hacer un seguimiento de una transacción estancada, responder a una cuenta en riesgo o investigar un nuevo cliente potencial.

Encontrar leads calientes

Escenario:
You want to see all high-score contacts in the UK who have not been contacted recently.
Qué hacer:

Ir a Contactos. Filtrar por: Puntaje de plomo 80, País = Reino Unido, Última actividad 7 hace días. Clasificar por puntaje de plomo descendiendo. Estos son sus mejores pistas descuidadas, priorizar el alcance.

Crear un trato a partir de un contacto

Escenario:
A contact just expressed interest in your enterprise plan during a chat.
Qué hacer:

Abre el perfil del contacto. Haz clic en "Crear trato". Ingresa el título del trato (por ejemplo, "Acme Corp - Enterprise Plan"), la cantidad, el canal y la etapa (por ej., "Calificado").

CRM

El pipeline (tu tablero de tratos)

El Pipeline es un tablero visual donde los tratos se mueven a través de las etapas de izquierda a derecha. Arrastra y suelta cartas para avanzar en el trato, cada tarjeta muestra la cantidad del trato, probabilidad de ganar y estado de salud.

Pipeline
Canal de CRMLa pantalla de canal con las estadísticas de Negocios abiertos, Valor abierto, Pronóstico ponderado y Negocios atribuidos, un botón Nuevo trato, una cola Aprobar IA y el tablero Cliente potencial/Calificado/Ganado.Pipelineespacio de trabajoAbrir ofertas23Valor abierto128.000 dólaresPronóstico ponderado74.000 dólaresNegocios atribuidos12+ Nuevo tratoAprobar cola2 para revisarLIDERARVolt Inc$4kLume$6kCALIFICADONimbus$30kPico9.000 dólaresGANADOÓrbita$48k1LIVE STATSValor abierto y pronóstico ponderado2AI QUEUEAprobar los acuerdos propuestos3BOARDArrastrar ofertas por etapa
La pantalla real del embudo: estadísticas en vivo (valor abierto, pronóstico ponderado), una cola de aprobación de IA para los tratos propuestos y el tablero de arrastrar y soltar.

Usando la placa de tubería

1
Ver tus ofertas

El canal muestra todas las ofertas activas como cartas dispuestas en columnas (etapas) y cada cabecera de columna muestra el valor total de las ofertas en esa etapa.

2
Arrastra para avanzar

Si el movimiento falla (error de validación), la carta se ajusta de nuevo a su posición original, y si no lo hace, la tarjeta se vuelve a colocar en su lugar.

3
Insignias de tarjetas de cheque

Insignia verde = saludable (actividad reciente, en el camino correcto). Ámbar = en riesgo (se está desacelerando, necesita atención). Rojo = estancado (sin actividad durante demasiado tiempo).

4
Haga clic para más detalles

Haga clic en una tarjeta para abrir el panel de detalles del trato con contactos, actividades, resumen del asesor de tratos y acciones rápidas.

La cola de aprobación

Las propuestas de IA aparecen en la cola de aprobación, en la parte superior de la página del embudo. Cada propuesta muestra lo que quiere hacer la IA, por qué y las pruebas.

Aprobar

La acción se ejecuta a través de la capa de confianza y se registra en el diario.

Editar

Modificar la propuesta antes de aprobarla, por ejemplo, cambiar el nivel sugerido o ajustar la cantidad.

Rechazar

Rechazar la propuesta: La IA aprende de los rechazos para hacer mejores sugerencias en el futuro.

Probabilidad de ganar explicada

La probabilidad de ganar se puede establecer manualmente o calcularla la IA. Cuando la IA lo calcula, utiliza un modelo entrenado en sus propios acuerdos cerrados (ganados y perdidos). Si no tiene suficientes datos históricos, la IA usa la probabilidad predeterminada del escenario. $10,000 deal at 30% La probabilidad contribuye $3,000 al pronóstico "probable".

Mover un trato a Won

Escenario:
A customer signed the contract and paid.
Qué hacer:

Arrastra la carta repartida a la etapa "Ganado". OpsIQ will: (1) Marca el trato como cerrado-ganado. (2) Actualizar el pronóstico. (3) Añadir una actividad "Ganado" a la línea de tiempo. (4) Si está configurado, desencadena un evento de webhook (crm.deal.won).5) Actualiza la etapa del ciclo de vida del contacto a "Cliente".

Detección de ofertas atascadas

Escenario:
You want to find deals that have been in the same stage for too long.
Qué hacer:

Busca insignias rojas (detenido) en el tablero de canales. Estos negocios no han tenido actividad durante más tiempo que el umbral de putrefacción configurado (establecido en Configuración de CRM > Canales). Haz clic en cada negocio bloqueado para ver la recomendación del Coach de Negocios para reactivarlo.

¿Puedo tener múltiples canalizaciones?+

Vaya a Configuración de CRM > Canalizaciones para crear canalizaciones adicionales. Casos de uso comunes: separar las canalizacione para nuevos negocios y renovaciones, o para diferentes productos/servicios.

¿Qué sucede cuando arrastro un trato a "Perdido"?+

El acuerdo está marcado como cerrado-perdido. Se le pedirá una razón de pérdida. El trato se retira del tablero activo pero se puede encontrar en el filtro de ofertas cerradas. El contacto permanece en el CRM.

CRM

Coaching de tratos

El entrenador de Deal analiza cada acuerdo y le da un resumen con estado de salud, señales de riesgo, personas claves, una lista de verificación de calificaciones, preparación para reuniones y las siguientes acciones sugeridas. Todo es fuente. El autobús muestra qué ticket, chat o actividad cada reclamación viene de.

Tranquila.
Tranquila.Una tarjeta de trato que enumera las señales de riesgo detectadas por la IA con fuentes de evidencia, junto a una recomendación de IA y un botón de borrador de correo electrónico.Tranquila.espacio de trabajoAcme Corp ·$24,000Etapa: Propuesta · 60% de gananciaSEÑALES DE RIESGOSin respuesta en 10 díasEl campeón se quedó calladoCompetidor mencionado en el chatFuentes: ticket #482· chat6/12· hilo de correo electrónicoAI recomiendaReinvolucrar lo económicocomprador con un resumen de ROIy un plan de cierre de 7días.Redacta el correo electrónico1SIGNALSPor qué un trato puede fallar2SOURCEDCada afirmación cita evidencia3ACCIÓNSiguiente paso con un solo clic
El entrenador marca por qué un acuerdo puede deslizarse (cada señal cita su fuente) y le da el siguiente movimiento para tomar.

Lo que el entrenador te dice

Explicación de salud

Señales específicas: días en la etapa, fecha del último contacto, frecuencia de actividad, menciones de competidores, patrones de objeción.

Señales

Categorizado en: objeciones planteadas, menciones de competidores, discusiones sobre precios, indicadores de riesgo de soporte, señales de renovación/expansión Cada señal se vincula a su fuente (transcripción del chat, ticket, correo electrónico, actividad).

Mapa de campeones y bloqueadores

Quién está ayudando al trato (campeón) y quién se resiste (bloqueador), basado en el análisis de interacción y los roles de contacto.

Lista de verificación de calificación

Lista de verificación MEDDICC o BANT (configurable) que muestra qué criterios de calificación se cumplen y cuáles faltan. Grado: A, B, C, D o F.

Preparación de reuniones

Antes de una reunión programada, el coach genera un resumen: agenda, puntos clave a cubrir, preguntas a hacer, riesgos a abordar y materiales para preparar.

Planes de contestación y llamadas

Sugerencia del siguiente mensaje o guion de llamada basado en el estado actual del trato e interacciones recientes.

Cronología de las pruebas

Cada reclamación que el coach hace enlaza a una fuente: un número de ticket, ID de transcripción del chat, fecha de actividad o visita al sitio web.

Cómo usar el entrenador

1
Lea el informe

Abra cualquier trato y desplácese hasta la sección de Negocios, lea el estado del trato y las señales clave.

2
Cerrar brechas de cualificación

Si falta el "Comprador Económico", planifique identificar y comprometerse con el titular del presupuesto.

3
Actuar sobre las sugerencias

El entrenador sugiere acciones concretas. Haga clic para crear una tarea, redactar un correo electrónico o programar una reunión, todo enrutado a través de la cola de aprobación.

Preparación para una reunión importante

Escenario:
You have a meeting with a prospect tomorrow about a $50,000 deal.
Qué hacer:

Abre el trato y lee la sección de Preparación para la reunión.1) Puntos clave de conversación basados en interacciones recientes. (2) Objeciones que plantearon en el chat la semana pasada.3) Competidor que mencionaron en un ticket de soporte. (4) Preguntas para hacer sobre su línea de tiempo. (5) Factores de riesgo a abordar proactivamente.Utilice este resumen para preparar una agenda enfocada y basada en la evidencia.

Entender por qué un acuerdo está en riesgo

Escenario:
The pipeline shows a red badge on a deal you thought was going well.
Qué hacer:

Haga clic en el trato y lea la explicación de salud del Coach de tratos, que podría decir: "Este trato ha estado en fase de propuesta durante. 22 días (umbral: ) 14 Último contacto fue a las 12:05 11 El contacto principal abrió un ticket de soporte sobre problemas con la migración de datos.5Hace 2 días (ticket #T-892 Sugerencia: aborde la preocupación de migración y programe una llamada de seguimiento". Ahora ya sabe exactamente qué debe arreglar.

CRM

Previsión e informes

Pronósticos de calidad con un rango defendible, explicaciones de cambios a nivel de acuerdo y seguimiento de precisión para que pueda probar y explicar sus números.

Pronóstico
PronósticoUn número de pronóstico trimestral con bandas de compromiso, mejor caso y canalización y una nota de precisión.Pronósticoespacio de trabajoPRONÓSTICO · ESTE TRIMESTRE312.000 dólares87% a la metaCommitEl mejor casoPipelinePonderado por IA según el estado e historial de la transacción · precisión rastreada a lo largo del tiempo1CATEGORÍASComprométete a la canalización2AI-WEIGHTEDPor trato de salud3PROVABLEPrecisión de seguimiento
Comprobar, el mejor caso y la tubería de un vistazo, AI ponderado por salud del trato, con precisión rastreada para que puedas defenderlo.

Categorías de pronóstico

Comprometido

Ofertas con 80% o más probabilidad de ganar. Estas son las ganancias más probables, y deberían ser los ingresos mínimos esperados.

Probabilidad ponderada por IA

Todas las operaciones abiertas ponderadas por su probabilidad de ganar calculada por la IA, es la predicción más realista de lo que cerrará.

El mejor caso

Todos los negocios abiertos a su valor total, es decir, el máximo de ingresos posible si todo va perfectamente (lo cual rara vez sucede).

Intervalo de confianza

An 80% Ejemplo: "Es probable que cierre entre 1.200 y 3.000 puntos". $45,000 and $72,000 En este trimestre."

Qué cambió y por qué

El pronóstico incluye la atribución del cambio semana a semana. Cuando el pronóstica disminuye en $15,000, el informe explica exactamente qué acuerdos causaron el cambio: "El acuerdo A se deslizó al próximo trimestre ($8,000), Trato B perdido ($5,000), Oferta C reducida en valor ($2,000)."

Seguimiento de precisión

Pronóstico del tiempo 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.

Calibración de probabilidad de ganar

Puntuación de Brier que mide qué tan bien las probabilidades de ganar coinciden con los resultados reales.70% Probabilidad de ganar realmente 70% La mayoría de las veces, la calibración es buena.

Instantáneas semanales

OpsIQ captura una instantánea de tu pronóstico cada semana (a través del cron) y con el tiempo puedes ver cómo mejora la precisión de tus previsiones.

Conjuntos y advertencias

Conversión por etapa

How many deals move from each stage to the next. If 80% pass from Qualified to Proposal but only 20% go from Proposal to Negotiation, your proposals might need work.

Tasa de victoria por fuente

Invierte más en las fuentes de leads que tengan una alta tasa de ganancia.

Rendimiento por propietario

Cómo se desempeña cada miembro del equipo de ventas: negocios ganados, valor del embudo, tamaño promedio del trato, tasa de victoria.

Advertencias

Sandbagging (probabilidades poco realistas), overcommitting (probabilidad muy alta) y committed-at-risk (tratamientos de alta probabilidad que muestran señales de estancamiento).

Entender una caída de pronóstico

Escenario:
Your quarterly forecast dropped from $180,000 to $155,000 since last week.
Qué hacer:

Abra la página de predicción y compruebe "Qué cambió". El informe muestra: "Acme Corp deal (Acmé Corp)$15,000) se movió a Lost, competidor elegido. Beta Inc acuerdo ($8,000) fecha de cierre empujado al próximo trimestre. Nuevo acuerdo con Gamma LLC ($3,000) añadió esta semana." El cambio neto es -$20,000 + $3,000 = -$17,000, explicando la caída de $180K a $163K (con el $8K restante explicado por ajustes de probabilidad en otras ofertas).

CRM

Encontrar nuevos negocios

El agente de prospección le ayuda a encontrar e investigar clientes potenciales: describa su cliente ideal, añada empresas objetivo y deje que la IA investigue, puntue y redacte el alcance del primer contacto.

Prospección
ProspecciónUna lista de empresas potenciales encontradas por IA con notas de ajuste, puntuaciones y un botón de alcance de borrador cada una.Prospecciónespacio de trabajoProspectos encontrados por el agente de DEGNorthwind LtdSaaS · 50 personal · soporte de contratación88Proyecto de divulgaciónCobalt MfgFabricación · 200 personal74Proyecto de divulgaciónRetail de MesaComercio electrónico · 30 personal69Proyecto de divulgaciónSalud VegaAtención sanitaria · Personal de 8063Proyecto de divulgación1FINDLas fuentes de IA apuntan a las cuentas2PUNTUACIÓNAjuste e intención clasificados3DRAFTPrimer toque escrito para usted
El agente de SDR encuentra las compañías objetivo, las califica en su idoneidad y redacta el primer contacto para su revisión.

Configuración de una sola vez

1
Describe a tu cliente ideal

Vaya a Configuración de CRM > Prospección. Describa su perfil de cliente ideal (ICP): industrias objetivo, tamaños de la empresa, cargos laborales, enfoque geográfico, términos de coincidencia del producto y puntuación mínima de ajuste.50-500"Tenemos más de 100 empleados en EE.UU./Reino Unido, que venden herramientas para desarrolladores, con un vicepresidente de ventas o jefe de crecimiento como contacto principal."

2
Añadir empresas objetivo

Ingrese los dominios o nombres de las empresas que desea investigar, y deje que la IA le sugiera compañías basadas en su ICP.

3
Revisar los resultados de la investigación

La IA enriquece cada empresa con los datos disponibles: tamaño, industria, pila de tecnología, noticias recientes y puntuación de ajuste con explicación.

4
Aprobar la divulgación

Para las empresas que se ajustan bien, la IA redacta un mensaje personalizado de primer contacto y lo revisa y aprueba en la cola.

Puntuación de ajuste

Cada prospecto recibe un0-100 Puntuación de ajuste basada en cinco factores:

Ajuste de ICP

Qué tan bien la empresa se adapta a su perfil de cliente ideal (industria, tamaño, ubicación).

Señales de urgencia

¿Hay evidencia de que necesitan tu producto ahora?, anuncios de trabajo, cambios tecnológicos, quejas sobre la competencia.

Proxy de presupuesto

El tamaño de la empresa, el estado de financiación y los indicadores de ingresos sugieren disponibilidad presupuestaria.

Coincidencia de producto

Qué tan relevante es tu producto para su negocio en función de la industria y la tecnología.

Ajuste de soporte

Si puedes atender de manera efectiva a este cliente (zona horaria, idioma, complejidad).

Investigar una empresa objetivo

Escenario:
You want to evaluate whether acme.com is worth pursuing.
Qué hacer:

Añadir acme.com La IA devuelve: Puntuación de ajuste 78/100 Razones: B2B SaaS, 120 10 empleados, con sede en Estados Unidos, contrató recientemente a un vicepresidente de ventas (señal de urgencia), utiliza al competidor X (concordancia del producto). Señales de compra: visitó su página de precios dos veces el mes pasado (por seguimiento del sitio web). [email protected] (VP de Ventas) El borrador del apertura hace referencia a sus visitas recientes a la página de contratación y precios.

CRM

Secuencias de seguimiento automáticas

Las secuencias automatizan el seguimiento de varios pasos: una combinación de pasos de correo electrónico, espera, tarea, llamada y webhook que se ejecutan automáticamente después de aprobar el envío inicial.

Secuencias
Secuencias de seguimientoUn flujo de secuencia horizontal: Correo electrónico, esperar tres días, correo electrónico, luego una tarea, con detección de respuesta.Secuencias de seguimientoespacio de trabajoDespués de aprobar el primer envío →Correo electrónicoIntroducciónEsperar3 díasCorreo electrónicoSeguimientoTareaLlamadaLos pasos pueden ser correo electrónico, espera, tarea o webhook. Una respuesta auto-para la secuencia.1AUTOMATESeguimiento en múltiples etapas2STEPSCorreo electrónico · espera · tarea · webhook3YOU APPROVEEl primer envío es cerrado
Seguimiento automatizado multi-paso (email, espera, correo electrónico, tarea) que aprueba primero y una respuesta se detiene automáticamente.

Cómo funcionan las secuencias

1
Crear una secuencia

Definir los pasos: correo electrónico, esperar 3 días, correo electrónico, esperar 5 Días, tarea (llamar si no hay respuesta), correo electrónico.Cada paso de correo electrónico tiene una plantilla que puede personalizar.

2
Inscribir contactos

Añadir contactos a la secuencia. La IA también puede proponer inscripciones de los resultados de prospección.

3
Ejecución automática de órdenes

Si un contacto responde en cualquier momento, la secuencia se detiene automáticamente y el mensaje no se muestra más.

4
Seguimiento de resultados

Vea las tasas de apertura, respuestas y conversión por paso para optimizar su secuencia.

Responder a understanding

Cuando un contacto responde, la IA clasifica la respuesta:

Positivo

Interesado, quiere hablar. Pausas de secuencia, tarea creada para seguimiento.

Objeción

La secuencia hace pausas, la tarea se crea con los detalles de la objeción.

Darse de baja

Quiere dejar de recibir mensajes. El contacto se suprime permanentemente.

No ahora

Interesado pero el tiempo es incorrecto. Secuencia de pausas, tarea de snooze creada.

La persona equivocada

No es el contacto correcto. La secuencia se detiene, el contacto se marca para revisión.

Soporte

Una pregunta de soporte, no una respuesta de ventas. Secuencia pausas, ticket creado.

Protecciones anti-spam

Manejo de opt-out

Las solicitudes de cancelación se cumplen inmediatamente y el contacto se suprime de todas las secuencias futuras.

Límite de envío diario

Límite diario a nivel de espacio de trabajo (predeterminado: correos electrónicos 1,000). Evita los envíos masivos que activan filtros de spam.

Límite por contacto

Máximo de 1 mensajes por contacto al día. Evita sobrecargar a las personas individuales.

Manejo de sobre-tapa

Los pasos que superen el límite diario se aplazan hasta el día siguiente y nunca se omiten ni se pierden.

¿Qué sucede si un contacto abre un ticket de soporte durante una secuencia?+

La secuencia se detiene automáticamente, ya que el soporte tiene prioridad sobre la divulgación. La secuencia puede reanudarse manualmente una vez resuelto el problema del soporte.

¿Puedo realizar pruebas A/B de los pasos de secuencia?+

No directamente dentro de secuencias, pero puedes crear dos secuencia con diferentes mensajes y comparar sus resultados.

CRM

Herramientas de crecimiento

Una página debajo de CRM que contiene el motor de crecimiento: ingresos recurrentes (MRR / ARR), el catálogo de productos, formularios de captura de clientes potenciales, enlaces de reserva y enrutamiento de clientes Todo aquí se escribe directamente en el CRM, por lo que un envío de formulario o una llamada reservada es un contacto con historial, no una fila en una hoja de cálculo.

Lo que vive en la página

Ingresos recurrentes

Ingresos

Las suscripciones se agrupan a partir de los pagos por plataforma, el ciclo de facturación se infiere de las brechas de pago y una suscripción caduca cuando un pago está atrasado más allá de 1.5 veces su ciclo. Los clientes se vinculan automáticamente con los contactos de CRM cuando el libro mayor lleva su correo electrónico.

Catálogo de productos

Catálogo

Una única fuente de información sobre lo que vende. Las cotizaciones extraen el nombre y el precio del catálogo, y las cotización aceptadas se acumulan en los ingresos por producto.

Formularios de captura de leads

Capturar

Cada formulario tiene una página alojada y un código de inserción iframe para tu propio sitio, los envíos se convierten en contactos, el propietario recibe una notificación y tus reglas de enrutamiento asignan al lead.

Enlaces de reserva

Programación

Comparte un enlace, deja que los clientes potenciales elijan una plaza libre. Las plazas respetan las horas de trabajo del organizador, la zona horaria y las reuniones existentes. Una reserva crea la reunión, envía por correo electrónico al cliente potencial una confirmación y notifica al organizador.

Enrutamiento de leads

Enrutamiento

Las reglas del territorio funcionan primero, luego las reglas de campo (para conseguir un campo como país o fuente), y después la robina redonda a través de su piscina de rep. It route CONTACTS AND DEALS por igual, cualquiera que sea el estado del acuerdo: un trato ganado todavía necesita un propietario para la atribución de comisiones, responsabilidad de cuenta y seguimiento, y en modo de visibilidad del dueño o equipo un registro no propiedad es invisible para todos pero un administrador.

Crear tu primer formulario

1
Herramientas de crecimiento abierto

Ve a CRM, luego Herramientas de crecimiento y luego la sección Formularios de captura de clientes potenciales.

2
Nombrarlo y elegir campos

Escriba un nombre y una lista de campos separados por comas, por ejemplo: nombre, correo electrónico, teléfono, mensaje.

3
Compartir o incrustar

Copia el enlace alojado para compartirlo en cualquier lugar, o copia el código de inserción y pégalo en cualquier página de tu sitio web.

4
Observe cómo llegan los clientes potenciales

Cada envío es un contacto de CRM con una actividad form. submitted, una notificación al propietario y un enrutamiento automático.

💡
Las páginas de captura públicas usan la dirección propia del espacio de trabajo, mientras que los espacios de trabajo en la nube utilizan su subdominio asignado (company.opsiq. help), por lo que el enlace siempre resuelve los datos correctos.

Protecciones incorporadas

Los bots ven el éxito, tú no ves nada

Un campo de honeypot oculto descarta silenciosamente los envíos del bot.

Tasa limitada

Diez envíos por hora por dirección IP a través de formularios y reservas.

El consentimiento se mantiene honesto

El envío de un formulario no otorga consentimiento para el marketing, solo una casilla de verificación de consentimiento explícito lo hace.

No hay reserva doble

Una plaza se vuelve a validar contra una nueva verificación de disponibilidad en el momento de la reserva.

¿De dónde provienen los datos de ingresos recurrentes?+

Desde el mismo libro mayor de comercio que usa tu página de ventas, alimentado por conectores de facturación. Utilice Re-sync from billing después de conectar una nueva plataforma.

¿Puedo utilizar los formularios sin un sitio web?+

Cada formulario tiene una página alojada en su propia dirección que funciona de forma independiente, con o sin JavaScript.

CRM

Centro de mensajes (SMS y WhatsApp)

Un conector, hasta veinte gateways. Conecte los proveedores de SMS y WhatsApp que realmente utiliza, marque uno como predeterminado y elija cualquiera de ellos al enviar mensajes de texto a un contacto. El consentimiento es verificado por el CRM antes de contactar con cualquier gateway.

Configurarlo

1
Habilitar el conector

En la página Conectores, abre el Centro de mensajes (SMS y WhatsApp) y habilitelo.

2
Añadir un proveedor

En el mismo cajón, o en CRM Growth Tools, elige una pasarela del menú desplegable (Twilio, Vonage, Termii, Meta WhatsApp Cloud, Infobip y más), pega sus credenciales API y conéctate. Puedes agregar varias, incluyendo la misma pasarela dos veces con diferentes cuentas.

3
Conecta el webhook

Cada entrada de proveedor muestra su propio webhookURLcon un botón de copia. Pruébalo en la entrada-deporte y ajustes del mensaje entrante para obtener el estado de entrega y las respuestas aOpsIQ.

4
Enviar desde un contacto

Abra un contacto y utilice el botón SMS o WhatsApp Si más de un proveedor admite el canal, un selector le permite elegir; en caso contrario, se utiliza el valor predeterminado.

El consentimiento es lo primero

Solo consentimiento otorgado

Un consentimiento desconocido no es un consentimiento, ya que el envío se rechaza a menos que se otorgue explícitamente. WhatsApp también tiene ese mismo consentimiento.

No-contacto siempre gana

Una bandera de no contacto bloquea todos los canales, sin importar qué más se haya establecido.

Supresión respetada

Los contactos de la lista de supresión nunca reciben mensajes.

Los rechazos nombran su razón

Un envío bloqueado te indica exactamente por qué, para que puedas corregir los datos en lugar de adivinar.

Para desarrolladores: el contrato webhook

URL forma

https://your-address/opsiq/cron/messaging_webhook.php?sk=SITE_KEY&e=ENTRY_ID&t=TOKEN. El token por entrada se acuña cuando el proveedor está conectado y nunca rota al editar.

Formatos comprendidos

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

Efectos

Los informes de entrega sellan la fila del libro mayor de divulgación que lleva el id. de mensaje del proveedor como Entregado o Rebotado, los mensajes entrantes coinciden con el contacto por número telefónico dentro del espacio de trabajo, llegan como una actividad message. received y marcan la conversación como respondida.

Modo de falla

Respuestas de token incorrectas o faltantes 403 Las cargas útiles desconocidas se cuentan e ignoran, nunca son fatales, por lo que una puerta de enlace mal configurada no puede romper el punto final.

¿Qué gateways son compatibles?+

Twilio, Vonage, Plivo, MessageBird, Sinch, Infobip, Telnyx, ClickSend, Termii, África hablando, BulkSMS, Textlocal, Meta WhatsApp Cloud, 360dialog, SMSAPI, Gupshup, Kaleyra, D7 Networks, Hubtel y un webhook HTTPS personalizado para cualquier otra cosa.

¿Son seguras las credenciales?+

Las credenciales se almacenan encriptadas en la configuración del conector y nunca se transmiten al navegador. Editar una entrada con un secreto en blanco conserva el guardado.

¿Puede la IA enviar mensajes?+

Sí, a través de acciones registradas que requieren confirmación y ejecutan la misma puerta de consentimiento. La IA también puede listar proveedores conectados para explicar lo que está disponible.

CRM

Mantener y hacer crecer a los clientes

La gestión del ciclo de vida te ayuda a proteger los ingresos existentes: cada cuenta obtiene una puntuación de riesgo de abandono, una puntuacion de salud, una puntacion de expansión y un manual recomendado para el éxito.

Ciclo de vida
Tablero de ciclo de vidaUna tabla de ciclos de vida del cliente (A bordo, activo, en riesgo, renovación) con barras de salud en cada tarjeta de cuenta.Ciclo de vidaespacio de trabajoEmbarqueAcmeSalud 40ActivoGlobexSalud 88InitechSalud 76AT-RISKSoylentSalud 28RENOVALUmbraSe renueva en 12dExpansión + $8k1STAGESDe la incorporación a la renovación2SCOREDSalud & expansión3PLAYBOOKPróximo movimiento recomendado
Los clientes pasan por el a bordo, activo, en riesgo y renovación, cada uno de ellos marcado para la salud y expansión con un libro de juegos.

El tablero del ciclo de vida

Mapa de la etapa

Tablero visual que muestra dónde se encuentra cada cuenta: Lead, Prospecto, Oportunidad, Cliente, Expansión, Renovación, En riesgo, Churned.

Cuentas en riesgo

Cada una muestra el principal factor de riesgo (pico de asistencia, inactividad, falla en el pago) y un juego guardado recomendado.

Oportunidades de expansión

Cuentas que muestran señales de disposición para comprar más: alto uso, solicitudes de funciones, consultas sobre planes.

Renovaciones pendientes

Cuentas con fecha de renovación próxima. Ordenadas por nivel de riesgo y valor de ingresos.

Cómo OpsIQ detecta el riesgo de abandono

El riesgo de abandono se calcula a partir de múltiples señales fusionadas:

Señales de CRM

Salud del trato, inactividad, pérdidas recientes, disminución de la participación.

Señales de soporte

Recuento de tickets abiertos, picos en el volumen de tickets, sentimiento negativo, escaladas.

Compromiso con el producto

Frecuencia de inicio de sesión, uso de funciones, visitas a páginas, llamadas API.

Señales de facturación

Pagos fallidos, facturas vencidas, solicitudes de bajada de categoría, visitas a la página de cancelación.

Libros de juegos

Guardar el juego

Para cuentas en riesgo: contacte de forma proactiva, aborde la preocupación, ofrezca apoyo y escale si es necesario.

Juego de renovación

Para las próximas renovaciones: confirmar la satisfacción, revisar el uso, presentar valor, ofrecer incentivos si es apropiado.

Juego de expansión

Para cuentas listas para crecer: presenta opciones de actualización, comparte historias de éxito y demuestra el ROI.

Juego de adopción

Para cuentas que no utilizan lo suficiente: ofrezca capacitación, comparta las mejores prácticas y habilite funciones que no están utilizando.

Detección de la rotación antes de que suceda

Escenario:
A customer who normally logs in daily has not logged in for 2 weeks, and they opened 3 support tickets this month.
Qué hacer:

El tablero del ciclo de vida marca esta cuenta como "En riesgo" con los controladores: inactividad (14 Días desde el último inicio de sesión) y pico de soporte (3x Juego recomendado: llamada de alcance proactivo para entender lo que está sucediendo. ¿Hay un problema con el producto? ¿Están evaluando a los competidores? Una intervención temprana puede salvar la cuenta.

CRM

Mantener sus datos limpios

El agente Data Steward encuentra y corrige automáticamente los problemas de calidad de datos: duplicados, campos faltantes, inconsistencias y registros obsoletos.

Administrador de datos
Administrador de datosUna lista de cuestiones de calidad de datos (duplicar, faltar, estallar, formato), cada uno con una acción de fijación de un clic.Administrador de datosespacio de trabajoProblemas de datos que encontró el agente StewardDuplicar[email protected] and [email protected]FusionarDesaparecidos12 contactos no tienen compañíaEnriquecerEstale38 Ofertas sin tocar para 90+ díasExamenFormatoNúmeros de teléfono en formatos 4Corregir todo1CATCHESDupes, brechas, obsoletos2EXPLAINSPor qué se marcó cada3FIXESCon su aprobación
El agente Steward mantiene su CRM limpio, encontrando duplicados, vacíos, registros de establo y formatos malos, fijando la aprobación.

Lo que atrapa

Contactos duplicados

Múltiples registros para la misma persona (por ejemplo, [email protected] and [email protected] El steward propone fusionarlos.

Datos que faltan

Contactos sin correo electrónico, ofertas sin importes, empresas sin dominios. Sugiere rellenar a partir de fuentes disponibles.

Registros no vinculados

Ofrece enlaces basados en el dominio del correo electrónico y el contexto, sin asociar contactos ni empresas.

Incoherencias

Un trato en la etapa "Ganado" con probabilidad 20%, un contacto marcado como "Cliente" sin ningún trato, una empresa con industria no coincidente.

Las etapas equivocadas

Negocios que han estado en la misma etapa durante demasiado tiempo o contactos cuya etapa del ciclo de vida no coincide con su actividad.

Cómo usar

1
Abrir la lista de stewards

Vaya a CRM y busque la sección Data Steward (o ábrala desde el estado de CRM).

2
Aprobar correcciones seguras

Los elementos verdes son seguros: elimina los duplicados, los datos que faltan de forma obvia y aprueba estos en bloque.

3
Revisa el resto

Los elementos de color ámbar necesitan su juicio: posibles duplicados con ligeras diferencias, cambios propuestos en la etapa, enlaces a empresas.

Limpieza de contactos duplicados

Escenario:
The steward found "John Smith ([email protected])" and "J. Smith ([email protected])": same email, different display names.
Qué hacer:

El steward propone fusionar: mantener el registro con más actividad, combinar los tratos y actividades del otro registro. Revise la propuesta, ajuste el nombre de visualización superviviente si es necesario y apruebe.

CRM

Crear mi CRM

Build My CRM le permite describir su configuración de CRM en inglés sencillo. OpsIQ genera un plan validado y reversible y lo aplica al aprobarlo, sin codificación ni clics de configuración manuales.

Crear mi CRM
Crear mi CRMUna descripción en lenguaje natural a la izquierda que produce un plan CRM generado de etapas, campos y segmentos a la derecha.Crear mi CRMespacio de trabajoDescribe tu negocioSomos una agencia de diseño webVenta de retenedores mensuales yde proyectos puntuales a pequeñosnegocios.Crear mi CRMPlan generadoEtapas: Plomo → RetenedorTipos de trato: retenedor, proyectoCampo: valor mensualSegmentos: SMB, agenciaSecuencia: incorporación al equipoAprobar & aplicar1DESCRIBEInglés sencillo en2AI PLANSEtapas, campos, segmentos3APPROVEAplicado · no codificación
Describir su negocio en inglés claro;OpsIQtodo el mundoCRM(etapas, campos, segmentos) y lo aplica en aprobación.

Cómo funciona

1
Describe lo que quieres

Escribe una descripción en inglés sencillo de la configuración de tu CRM. Ejemplo: "Crea un embudo de renovación con las siguientes etapas: Próximo, Contactado, Negociando, Renovado, Perdido.

2
Revisar el plan

OpsIQ muestra una vista previa de lo que va a crear: pipeline, etapas, probabilidades de etapa, reglas de puntuación, regla de ciclo de vida.

3
Aplicar

Cada cambio se registra como un paquete que puede deshacer con un solo clic, y cada cambio es automáticamente guardado en el plan.

4
Retroceda si es necesario

Si algo no está bien, haga clic en Deshacer para revertir todo el paquete y su CRM volverá a su estado anterior.

Lo que puedes construir

Pipelines y etapas

Cree canalizaciones con nombres, etapas personalizadas, probabilidades predeterminadas y umbrales de putrefacción.

Reglas de puntuación

Aumenta las puntuaciones de los clientes potenciales en función del comportamiento: "Puntúa más alto cuando ven precios", "Puntua menos cuando visitan la página de carreras".

Reglas del ciclo de vida

Avance automáticamente las etapas del ciclo de vida: "Mover a SQL cuando soliciten una demostración", "Moverse al cliente cuando se gane el trato".

Campos personalizados

Añadir campos a contactos, ofertas o empresas: texto, número, fecha, seleccionar, casilla de verificación, URL, correo electrónico.

Lista de verificación de calificación

Defina la lista de verificación MEDDICC o BANT contra la que el Coach de Negocios califica.

Configuración de una canalización de renovación

Escenario:
You manage SaaS subscriptions and need a pipeline for renewals.
Qué hacer:

Tipo: "Crear una canalización de renovación. Etapas: 90 Días fuera (10%), 60 Días fuera (25%), Contactado (40%), Negociación (60%), renovado (100%), Churned (0%). Establezca el umbral de putrefacción en. 14 days."OpsIQ Una vez generado el plan, puedes revisarlo y hacer clic en Aplicar para que aparezca inmediatamente en la página Embudos.

¿Qué pasa si describo algo que no es posible?+

El constructor solo genera acciones que sabe validar, si pides algo fuera de sus capacidades (por ejemplo, "Integrate with my custom API"), rechazará la solicitud y te explicará qué puede hacer en su lugar.

¿Puedo deshacer los cambios?+

Cada acción de Build My CRM se captura como un paquete reversible. Vaya a Estado de CRM > Historial de cambios para ver todos los paquetes y deshacer cualquiera de ellos.

CRM

Configura tu CRM a tu manera

Configuración manual de CRM para equipos que prefieren hacer clic en lugar de escribir Todas las configuraciones que Build My CRM puede crear también están disponibles como campos de formulario tradicionales.

Pipelines y etapas

Crea, cambia el nombre, reordena y elimina canalizaciones y etapas. Establece la probabilidad de ganar por defecto por etapa. Especifica el umbral de putrefacción (días sin actividad antes de que un trato se marque como "detenido").

Campos personalizados

Añade campos a ofertas, contactos o empresas. Tipos de campo: texto, número, fecha, selección (menú desplegable con opciones predefinidas), casilla de verificación, URL, correo electrónico. Los campos personalizados aparecen en el perfil del objeto y en los filtros.

Lista de verificación de calificación

Defina la lista de verificación que usa el Coach para evaluar los tratos. Elija MEDDICC, BANT o un conjunto personalizado de criterios. Cada elemento puede marcarse como obligatorio u opcional.

Reglas de etapa del ciclo de vida

Defina transiciones automáticas de etapas: cuando un contacto cumple una condición (ve precios, envía un formulario, realiza una compra), su etapa del ciclo de vida avanza automáticamente.

Reglas de lead-scoring

Aumenta o reduce las puntuaciones de leads en función del comportamiento. Ejemplos: "Página de precios vista = +15"Papel blanco descargado = +10"Página de carreras visitada = -5Se puede establecer un recuento mínimo (por ejemplo, "debe ver los precios al menos 10 veces"). 2 times").

Vistas guardadas

Cree combinaciones de filtros y ordenes con nombre para contactos, ofertas o empresas. Comparte vistas con tu equipoEstablece una vista predeterminada por tipo de objeto.

Agregar una regla de puntuación de leads

Escenario:
You want contacts who view your pricing page twice or more to get a higher score.
Qué hacer:

Vaya a Configuración de CRM > Reglas de puntuación de clientes potenciales. Haga clic en Agregar regla. Set: Event = "pageview", URL contiene = "/pricing", Recuento mínimo =2, Aumento de puntuación = +20 La próxima vez que se ejecute el marcador, los contactos que coincidan con esta regla obtendrán +20 a su puntaje de ventaja.

CRM

CRM Chequeo de salud

El estado de CRM es una página de autodiagnóstico que verifica si su CRM está configurado correctamente y funciona sin problemas.

Chequeo de salud
Comprobación de salud CRMUn anillo de puntuación de salud en 92 junto a una lista de comprobaciones de configuración de aprobación y advertencia.Comprobación de salud CRMespacio de trabajo92SaludableEtapas de la canalización configuradasConector vinculado e importandoAgentes de IA habilitados!No hay secuencia de seguimiento activa!12 contactos que faltan compañía1AUDITVerifica tu configuración2FLAGSLo que falta3PUNTUACIÓNUn número general
Una auditoría de CRM de una página: un puntaje general de salud más una lista de verificación de lo que está configurado correctamente y lo que aún necesita atención.

Lo que comprueba

Esquema

Si se ha perdido una migración, CRM Health la marcará como no realizada y le enviará un mensaje de error.

Agentes de IA

Todos los agentes de CRM (Capture, Data Steward, Deal Intelligence, etc.) están registrados y funcionan correctamente: verde = en ejecución, ámbar = necesita atención, rojo = error.

Rutas

Las rutas CRM API y los puntos finales AJAX están registrados y se pueden llamar.

Acciones de IA

El catálogo de acciones de CRM se registra en el Registro de aciones Si faltan acciones, CRM Health las vuelve a registrar para autocorregirlas.

Recuento de datos en vivo

Total de contactos, empresas, negocios, tareas, actividades y eventos. Útil para verificar importaciones y captura continua de datos.

Después de la verificación de configuración

Después de la primera configuración del CRM, abra el estado del CRM y verifique que todas las comprobaciones estén en verde; si alguna está en ámbar o rojo, haga clic en el elemento para obtener una explicación de diagnóstico y una solución sugerida.

¿Con qué frecuencia debo comprobar el estado de CRM?+

Compruebe después de la configuración inicial, después de las actualizaciones principales y siempre que el comportamiento del CRM parezca incorrecto. CRM Health se autocura muchos problemas (como los registros de acciones faltantes) con solo abrir la página.

CRM

Conexiones CRM para desarrolladores

El CRM expone un REST público completo API Webhooks entrantes y salientes para que se ajuste a cualquier pila sin exportaciones manuales.

API puntos finales

Autenticación

API Una clave (Autorización: Portador opq_...) con el ámbito crm.read o crm.write. /api/v1.php con acción y site_key.

Contactos

crm. contacts. list (búsqueda + filtro), crm, contactos. detalles (por ID), cRM, contactos, upsert (crear o actualizar), cRm, contactos de guardar.

Ofertas

crm. deals. list, crn. deales. detail, crsm. deals, cRm. Deals

Actividades

crm. activities. list (línea de tiempo para un contacto/negocio), crm,activities,record (registro de una nueva actividad).

Eventos

crm. events. list (alimentación de cambios duraderos con cursor since_id), crm, eventos. catalogo (lista tipos de eventos disponibles).

Crear un trato a travé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 de Webhook

crm.contact.created

Se activa cuando se agrega un nuevo contacto al CRM.

crm. deal. stage_changed

Se dispara cuando un trato pasa a una etapa diferente.

crm.deal.won

Se dispara cuando un trato se cierra como ganado.

crm.deal.lost

Se dispara cuando un trato se cierra como perdido.

crm.task.created

Se activa cuando se crea una nueva tarea (generada manualmente o por IA).

crm.outreach.reply

Se activa cuando un prospecto responde a un correo electrónico de secuencia.

crm. agent. proposal_created

Se activa cuando un agente de IA crea una propuesta para la cola de aprobación.

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

Sincronizar contactos de CRM con Hojas de cálculo de Google

Escenario:
You want every new CRM contact to appear in a Google Sheet for your marketing team.
Qué hacer:

Configura un suscriptor de webhook para crm. contact. created. Apunte a una aplicación web de Google Apps Script o a un webhooku Zapier URL. La carga útil incluye el nombre del contacto, el correo electrónico, la empresa, la puntuación de clientes potenciales y la fuente. El script adjunta una fila a la Hoja de cálculo de Google para cada nuevo contacto.

CRM

Segmentos

Los segmentos guardan filtros de contacto reutilizables para vistas de CRM, alcance, promociones y otras herramientas conscientes del público.

Pantalla de producto
SegmentosEl editor de segmentos combina condiciones, muestra el recuento de coincidencias en tiempo real y permite al operador elegir un filtro en tiempo Real o una instantánea fija.Segmentosespacio de trabajoMODOEn vivoLOGICTODOSMATCHES1,248VISTA DE ESPACIO DE TRABAJO EN DIRECTOEtapa del cliente= Cliente activoRegla 10Última actividad:dentro de 30 díasRegla 10PaísReino UnidoRegla 10Alta intenciónPuntúa al menos 70Regla 101CHOOSE MODEEn vivo o instantánea2ADD RULESTODOS o CUALQUIER3REUSECampañas y CRM
El editor de segmentos combina condiciones, muestra el recuento de coincidencias en tiempo real y permite al operador elegir un filtro en tiempo Real o una instantánea fija.

A Segmento en vivo Se recalcula a partir de los datos actuales cada vez que se utiliza. Snapshot de pined congela la lista de miembros actual, lo cual es útil cuando un público de divulgación no debe cambiar después de su aprobación.

Elegir TODOS Cuando todas las condiciones deben coincidir o CUALQUIER Los segmentos del sistema pueden ser visibles, pero protegidos de la edición ordinaria. Los segmentos de sistema pueden estar ocultos o no aparecer en el panel de control.

CRM

Puntuación de leads

Las reglas de puntuación de leads convierten las señales de comportamiento y perfil en una puntuación uniforme que pueden usar las ventas y la automatización.

Pantalla de producto
Puntuación de leadsLa puntuación de leads muestra las reglas activas, la ventana móvil y el cambio de puntuación positivo o negativo que se aplica a cada regla.Puntuación de leadsespacio de trabajoRULES12SCORED8,412HOT LEADS286VISTA DE ESPACIO DE TRABAJO EN DIRECTOActividad de fijación de precios3+ visitas en 14 Días+20Palabra clave de compraContiene migración o empresa+15Riesgo de apoyoEvento de queja en 30 días-10Fuente de confianzaReferencia de socio+121DESCRIBE RULEUsar inglés sencillo2REVIEW FIELDSSeñal, ventana, puntos3RESCOREAplicar al espacio de trabajo
La puntuación de leads muestra las reglas activas, la ventana móvil y el cambio de puntuación positivo o negativo que se aplica a cada regla.

El generador de reglas de IA puede convertir una instrucción en inglés sencillo en una regla estructurada, pero cada regla debe ser revisada antes de su activación: confirmar la actividad o palabra clave, el recuento mínimo, la ventana móvil y el cambio de puntuación.

Las reglas positivas y negativas pueden coexistir. Uso Espacio de trabajo Rescore Los resultados pueden ser utilizados para alimentar segmentos, enrutamiento, prospección y condiciones de flujo de trabajo.

CRM

Tabla de ventas

El ranking compara a los representantes usando el logro de cuotas, ingresos ganados, comisiones y canales abiertos para el mes seleccionado.

Pantalla de producto
Tabla de ventasLa tabla de clasificación mensual clasifica a los representantes de ventas mientras mantiene visibles los ingresos ganados, las comisiones y el embudo abierto.Tabla de ventasespacio de trabajoPERIODJulioTEAM QUOTA82%GANADO184.000 librasVISTA DE ESPACIO DE TRABAJO EN DIRECTOAmina104% cuota · £62k ganado- Bien.88% cuota · £51k ganado2aRita76% cuota · £43k ganado3aPipeline abierto312k £ en todo el equipoExamen1CHOOSE MONTHComparar un período2CHECK QUOTALogro por rep3COACHUsar contexto de canalización
La tabla de clasificación mensual clasifica a los representantes de ventas mientras mantiene visibles los ingresos ganados, las comisiones y el embudo abierto.

El cumplimiento de la cuota solo tiene sentido cuando cada representante tiene una cuota actual y los negocios tienen el propietario, cantidad, moneda y estado de cierre correctos. Utilice el cuadro de mando para entrenamiento y reconocimiento, no como única medida de calidad; combínelo con el estado del trato, actividad y precisión de pronóstico.

CRM

Aprobaciones de transacciones

Las aprobaciones de los acuerdos requieren la firma del gerente antes de que se puedan marcar como ganados los acuerdoes de alto valor.

Pantalla de producto
Aprobaciones de transaccionesLa política de aprobación define dos umbrales de valor y la cola muestra las decisiones pendientes, aprobadas y rechazadas.Aprobaciones de transaccionesespacio de trabajoPOLICYHabilitadoWAITING6OLDEST3hVISTA DE ESPACIO DE TRABAJO EN DIRECTONivel 1Ofertas de £10,000AdministradorNivel 2Ofertas de £50,000SuperiorRenovación de la empresa£72,000 · solicitada por BenPendienteProyecto de migración£18,500 · solicitada por RitaAprobado1SET THRESHOLDS0 desactiva un nivel2REQUESTEl representante envía el trato3DECIDEAprobar o rechazar
La política de aprobación define dos umbrales de valor y la cola muestra las decisiones pendientes, aprobadas y rechazadas.

Habilitar la política y establecer el nivel1y nivel2umbrales. 0 Cuando un no-administrador intenta ganar un trato en el umbral o por encima de él, OpsIQ crea una solicitud de aprobación en lugar de cambiar silenciosamente la etapa.

Los administradores y los administradores completos no están bloqueados por la política. Cada decisión debe conservar el solicitante, aprobador, tiempo y razón para auditabilidad.

CRM

Reglas del ciclo de vida

Las reglas de ciclo de vida mueven automáticamente los contactos entre etapas cuando sus datos actuales coinciden con una condición guardada.

Pantalla de producto
Reglas del ciclo de vidaLas reglas de ciclo de vida se evalúan por prioridad; la primera regla coincidente cambia la etapa del contacto.Reglas del ciclo de vidaespacio de trabajoActivo7RUNSNocturnoPRIORITYEl más alto primeroVISTA DE ESPACIO DE TRABAJO EN DIRECTOLead → CalificadoPuntuación ≥ 60 y actividad recientePrioridad 100Calificado → ClienteEl evento de compra existePrioridad 90Cliente → En riesgoNo hay actividad durante 60 díasPrioridad 70En riesgo → ClienteNueva compra o respuestaPrioridad 601PICK STAGESDesde y hacia2DEFINE FILTEREstilo de segmento JSON3ORDER RULESPrimer partido gana
Las reglas de ciclo de vida se evalúan por prioridad; la primera regla coincidente cambia la etapa del contacto.

Cada regla tiene una etapa de origen, una etapa del destino, un indicador activo, prioridad y filtro de estilo de segmento. El trabajo programado del ciclo de vida evalúa las prioridades más altas primero y se detiene después de la primera coincidencia para un contacto.

Las reglas deben ser mutuamente comprensibles. Evite dos reglas activas que pueden mover el mismo contacto en direcciones opuestas durante la misma ejecución. Pruebe el filtro contra un segmento antes de activarlo.

CRM

Flujo de actividad CRM

El flujo de actividad del espacio de trabajo combina eventos operativos y de clientes para que los equipos puedan investigar lo sucedido sin abrir cada módulo.

Pantalla de producto
Actividad de CRMEl flujo de actividad intercala chat, ticket, correo electrónico, webhook, conversión y eventos de anomalía con filtros y paginación.Actividad de CRMespacio de trabajoEVENTOS2,804CUSTOMERS1,126ANOMALIES14VISTA DE ESPACIO DE TRABAJO EN DIRECTOChat resuelto[email protected] AIAhoraEl ticket respondióT-1048 · Facturación y pago4mEvento de entradasubscription.upgraded12mConversiónNúmero de pedido 7788 · £14919m1FILTEREvento y cliente2OPEN CONTEXTIr al registro3PAGE RESULTSMantenga las investigaciones delimitadas
El flujo de actividad intercala chat, ticket, correo electrónico, webhook, conversión y eventos de anomalía con filtros y paginación.

Filtre por tipo de evento, fecha, contacto o estado del cliente (incluidos los clientes que pagan). La fuente es un modelo de lectura de la actividad registrada; no reemplaza el registro de ticket, conversación, trato o conector de origen.

CRM

Flujos de trabajo

Los flujos de trabajo responden a un evento y ejecutan una serie ordenada de acciones, incluyendo pasos retrasados reanudado por cron.

Pantalla de producto
Flujos de trabajoUna ejecución de flujo de trabajo muestra su desencadenador, acciones completadas, retraso en espera y siguiente paso.Flujos de trabajoespacio de trabajoActivo9RUNNING42FALLADO1VISTA DE ESPACIO DE TRABAJO EN DIRECTODisparadorcontact.createdComenzarPaso 1Enviar correo electrónico de bienvenidaHechoRetrasoEspere 2 díasEsperandoPaso 2Crear tarea de ventasSiguiente1CHOOSE TRIGGEREl evento comienza la carrera2ORDER STEPSAcciones y retrasos3MONITORReanudar a través de cron
Una ejecución de flujo de trabajo muestra su desencadenador, acciones completadas, retraso en espera y siguiente paso.

Crea un flujo de trabajo eligiendo el desencadenador, añadiendo pasos en orden y activándolo. Los retrasos se almacenan, no son retenidos por una solicitud del navegador; la cron unificada reanuda las ejecuciones del flujo de trabajado debido.

Las plantillas iniciales incorporadas incluyen bienvenida después del registro, agradecimiento posterior a la compra y confirmación de demostración. Clone una plantilla, reemplace sus destinatarios / contenido, luego pruebe con un registro controlado antes de la activación amplia.

Un nuevo intento no debe enviar solicitudes duplicadas de movimiento de dinero ni crear registros duplicados.

Soporte

Boletos

Los tickets son su canal de soporte formal. Tienen departamentos, prioridades, objetivos SLA, archivos adjuntos, notas internas y hilos completos de conversación. OpsIQ Administrador, formulario de ticket/inserción, ingestión de correo electrónico, escalamiento de chat, conector o API.

Boletos
Detalle del billeteUn ticket con una barra lateral meta (prioridad, departamento, SLA, estado), el hilo de conversación y las acciones de borrador y reembolso de IA.Boletoespacio de trabajoT-12345PrioridadAltoDepartamentoFacturaciónSLA3h 12m leftEstadoAbrirMe cobraron dos veces por miSuscripción en junio 3.IAConfirmado el duplicadoCargo, procesamiento de reembolso.respuesta del borrador de AIReembolso1THREADEDConversación completa + notas2SLA & ROUTINGPrioridad, departamento, temporizadores3AI DRAFTRespuesta escrita para ti
Cada billete lleva su prioridad, departamento, temporizador SLA y completo hilo, y la AI puede redactar la respuesta para usted.

Cómo fluye un ticket

1
El billete llega

Un cliente envía un mensaje por correo electrónico, escalación de chat, incrustación de ticket o el administrador crea uno. El ticket recibe un ID único (por ejemplo, T-12345).

2
Triage

La IA lee el asunto y el cuerpo del mensaje, asigna la prioridad (baja/normal/alta/urgente), sugiere un departamento y detecta el sentimiento de los destinatarios.

3
Responder

Un agente abre el ticket, lee el contexto (perfil del cliente, datos de la plataforma de los conectores, tickets anteriores) y escribe una respuesta que puede redactarse mediante IA y editarse antes de enviarla.

4
Cerrar

Cuando el problema se resuelve, el agente cierra el ticket y notifica al cliente. Si el cliente responde después de cerrar el ticket, este vuelve a abrirse automáticamente.

Acciones por ticket

Cambiar departamento

Mover el ticket a un departamento diferente (por ejemplo, de General a Facturación). Útil cuando la ruta inicial era incorrecta.

Asignar al agente

Asigna el ticket a un miembro del equipo específico: El agente asignado verá el ticket en su vista "Mis tickets".

Añadir nota interna

Escribe una nota visible solo para el personal. Úsala para: resultados de la investigación, razones del reembolso, contexto de ingeniería, compromisos anteriores.

Combinar tickets

Combina los tickets duplicados del mismo cliente. El asunto del ticket combinado recibe una etiqueta [MERGED] (Fusionado). Todos los mensajes de ambos tickets se conservan en el ticket restante.

Respuesta enlatada

Insertar una plantilla de respuesta preescrita. Variables como {{customer_name}} and {{ticket_id}} Se reemplazan automáticamente.

Reescritura de AI

Deja que la IA mejore tu borrador de respuesta: ajusta el tono, acorta/alarga, corrige la gramática o traduce.

Cambiar la prioridad

Establezca en Baja, Normal, Alta o Urgente. La prioridad afecta a los temporizadores de SLA y al orden de clasificación.

Cambiar el estado

Establecer como Abierto, Pendiente, Esperando al cliente, Resuelto o Cerrado.

Ejemplo de trabajo: manejo de un cliente insatisfecho

Correo electrónico del cliente: "Me cobraron dos veces por mi suscripción"

Escenario:
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.
Qué hacer:

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

Crea departamentos en Configuración > Tickets > Departamentos. Departamentos comunes: General, Facturación, Técnico, Ventas, Abuso, IncorporaciónCada departamento puede tener diferentes reglas de respuesta automática, conocimiento de IA y asignaciones de equipo.

Respuestas enlatadas

Cree plantillas de respuesta reutilizables en Configuración > Tickets > Respuestas predefinidas. Las buenas respuestas predeterminadas incluyen:

Ejemplo de plantilla de respuesta enlatada
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}}

Fusionar tickets

Cuando un cliente envía la misma pregunta varias veces (por correo electrónico y chat, o dos correos electrónicos separados), puede combinar los duplicados. Vaya al ticket, haga clic en Combinar, seleccione el otro ticket que desea combinar. El ticket restante recibe todos los mensajes de ambos tickets.

Prioridad y SLA

Bajo

Preguntas no urgentes, solicitudes de funciones, comentarios generales. Primera respuesta prevista: 24 horas.

Normal

Preguntas de soporte estándar. Primera respuesta prevista: 8 horas.

Alto

Impacto en el negocio del cliente. Primera respuesta prevista: 4 horas.

Urgente

Incidente de seguridad, pérdida de datos, error de facturación. Primera respuesta prevista: 1 hora.

Los temporizadores de SLA comienzan cuando se crea el ticket y se pausan cuando el estado es "En espera del cliente" Si no se alcanza el objetivo de SL, el ticket se resalta y, opcionalmente, se escala.

¿Pueden los clientes ver las notas internas?+

Las notas internas son estrictamente para el personal y no aparecen en el portal de tickets del cliente, las notificaciones por correo electrónico ni ninguna otra superficie que esté orientada al cliente.

¿Qué sucede cuando se responde a un ticket cerrado?+

El ticket se reabre automáticamente y vuelve a la cola activa, y el equipo recibe una notificación de la nueva respuesta.

¿Puedo bloquear un ticket para evitar más respuestas?+

Sí. Usa la opción Bloquear hilo para evitar que el cliente y la IA agreguen nuevas respuestas, útil para disputas resueltas o investigaciones cerradas.

Soporte

Service Studio: SLA, flujo de estado y calidad

La sala de control para el comportamiento de su operación de soporte: políticas SLA con escaleras de escalada, calendarios de horario laboral, un flujo de estado obligatorio, ajustes CSAT y los interruptores de funciones empresariales. Abre desde la página Tickets (el botón Service Studio en la barra de operaciones).

Políticas de SLA

Cada ticket nuevo recibe una fecha límite de primera respuesta y resolución según la política activa más específica: departamento + prioridad supera al departamento, supera a la prioridad, superan el valor predeterminado. Los plazos se pausan automáticamente mientras un ticket está en Pendiente o En espera.

Escaleras de escalada

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.

Horarios y calendarios

Con el horario de oficina, los relojes del SLA solo se encienden durante el tiempo laboral, por lo que un ticket abierto el viernes por la noche no se infringe el sábado. Se pueden adjuntar calendarios con nombre (zona horaria, días, horas, festivos) a políticas individuales para equipos en diferentes regiones.

Flujo de estado

Una matriz de origen/destino que restringe los cambios de estado que pueden realizar los administradores, con un valor preestablecido al estilo de Zendesk. La automatización, el correo electrónico entrante y las respuestas a tickets originadas por clientes siempre están exentas, por lo que una matriz estricta nunca puede atascar la canalización.

Aprobaciones

Los agentes solicitan la aprobación de un ticket (reembolsos por encima de un umbral, excepciones de políticas). Un aprobador designado o cualquier administrador completo decide con una nota; los solicitantes nunca pueden aprobar su propia solicitud.

Relaciones de tickets

Enlace de tickets como relacionados, duplicados, padres/niños o bloqueos; dividir respuestas a un nuevo ticket vinculado (el reverso de fusión, sin enviar por correo electrónico al cliente); seguir entradas para notificaciones en aplicación y opcionalmente direcciones de correo electrónico del seguidor CC sobre las respuestas externas.

Bandeja de entrada en vivo y colisiones

Con la bandeja de entrada en tiempo real habilitada, los nuevos tickets y respuestas aparecen para los agentes en cuestión de segundos a través del flujo de notificaciones existente. En un ticket, los actores ven quién más está viendo el ticket y reciben una advertencia cuando un compañero de equipo ya está escribiendo una respuesta.

Enrutamiento consciente de IA

Las reglas de enrutamiento pueden coincidir con las señales de clasificación de IA: prioridad, categoría, sentimiento y riesgo de escalada, además de los valores de campos personalizados introducidos desde el formulario de solicitud del portal.

💡
Activar uno en Service Studio → Quality & Automation es la opción de participación; si los deja desactivados, el comportamiento se mantiene idéntico al que tenía antes de la actualización.
¿Por qué un cliente puede reabrir un ticket cerrado cuando mi matriz prohíbe cerrado → abierto?+

Las respuestas originadas por el cliente, las respuestas de correo electrónico y la automatización están exentas deliberadamente para que una política estricta nunca pueda bloquear a los clientes o romper el embudo.

¿Las escaleras de SLA reemplazan la antigua acción de violación?+

No, las políticas guardadas con una acción de infracción única siguen funcionando sin cambios. Una escalera reemplaza la acción única solo en las políticas donde se definen pasos.

Soporte

Respuesta automática y escalamiento de tickets

La respuesta automática permite que la IA responda automáticamente a los nuevos tickets, mientras que la escalada mueve los tickets a un departamento diferente cuando la IA detecta necesidades especializadas. Ambas funciones funcionan tanto con tickets nativos como con tickets creados por correo electrónico.

Auto-respuesta
Respuesta automática de ticketsUn flujo: nuevo ticket, un retraso de dos minutos, respuesta de IA a partir del conocimiento y el contexto, luego enviado o guardado como borrador.Auto-respuestaespacio de trabajoCuando llegue un nuevo ticketNuevo ticketDe cualquier fuenteRetraso2 minrespuestas AIKB + contextoEnviadoo proyectoSi un humano responde durante el retraso, la respuesta automática se cancela y Intent puede escalar primero a otro departamento.1DELAYLos humanos tienen la primera oportunidad2AI REPLIESDe KB + contexto3OR ESCALATERuta por intención
Los nuevos boletos reciben un breve retraso (para que los humanos puedan saltar), luego una respuesta de AI de su conocimiento, enviado o consultado como borrador.

Cómo funciona la respuesta automática

1
Aparece el boleto

Se crea un nuevo ticket desde cualquier fuente (correo electrónico, chat, portal, API).

2
Programar respuesta

OpsIQ Espera el retraso configurado (por defecto: ) 2 Esto les da a los agentes humanos la oportunidad de responder primero.

3
La primera respuesta gana

Si un agente humano responde durante el retraso, la respuesta automática se cancela; de lo contrario, la IA genera una respuesta.

4
Generar y enviar

La IA lee el ticket, comprueba la base de conocimientos, el contexto del conector y el historial del cliente, luego escribe una respuesta que se envía (o se pone en cola como borrador para su revisión, según los ajustes).

Cómo funciona la escalada

1
Configurar los departamentos

Establezca qué departamentos pueden recibir escalaciones (por ejemplo, Facturación puede ser escalada desde General, Técnico puede ser escalo de General).

2
Clasificar el ticket

Antes de responder automáticamente, la IA clasifica el ticket en función de su intención: facturación, técnica, reembolso, abuso, etc.

3
Muévase si es necesario

Si la intención del ticket coincide con un departamento de escalado, el ticket se mueve y una nota interna explica por qué.

4
Generar en nueva voz

La respuesta se genera utilizando el conocimiento del departamento de destino y la capacitación en IA.

Referencia de configuración

Auto-respuesta habilitada

Activa para habilitar la respuesta automática de IA para los tickets.

Departamentos permitidos

Comience con los departamentos de bajo riesgo (general, ventas) antes de habilitar la facturación.

Retraso

Cuánto tiempo esperar antes de que la IA responda (en segundos). Por defecto: 120 segundos (215 minutos).0Para respuestas instantáneas.

Horario de retraso

Opcionalmente, establezca diferentes retrasos para horas de trabajo vs. fuera del horario laboral.

Detención en la respuesta del administrador

Si un agente humano responde primero, cancela la respuesta automática. Valor predeterminado: activada.

Escalada habilitada

Habilite el enrutamiento automático de departamentos basado en la intención del ticket.

Departamentos de escalada

A qué departamentos se pueden escalar los tickets.

Estado de la escalada

Qué estado establecer al escalar (por ejemplo, Abierto, Pendiente).

Nota de incremento

Si se debe agregar una nota interna que explique el motivo de la escalada.

Tickets creados por correo electrónico

Los tickets creados desde el correo electrónico (a través de la consulta del buzón o la entrega por canalización MX) siguen las mismas reglas de respuesta automática y escalado. La respuesta de IA se envía como una respuesta al cliente, mientras que los borradores de correo electrónico van a la cola de borradores para su revisión si está configurada.

¿La IA responderá automáticamente a las preguntas de facturación?+

Solo si habilitas la respuesta automática para el departamento de facturación. Te recomendamos que empieces con la respuesta automatizada desactivada para la facturación y solo la habilites después de haber entrenado a la IA con un conocimiento completo de facturaciones y probarla exhaustivamente.

¿Qué pasa si la IA da una respuesta incorrecta?+

Si un cliente responde diciendo que la respuesta era incorrecta, un agente humano debe intervenir. Revise el historial de IA para entender por qué la IA dio la respuesta incorrecto, a continuación, actualizar la base de conocimientos o entrenamiento de AI para evitar que vuelva a suceder.

¿Puedo revisar las respuestas automáticas antes de que se envíen?+

Establece el modo de entrega en "Borrador" en lugar de "Envío automático". Los borradores de respuestas automáticas aparecerán en la cola Borradores para que los revise un usuario antes de enviarlos.

Soporte

Insertar portal de entradas

El portal de tickets embed le permite agregar una interfaz de gestión de entradas a cualquier sitio web. Los clientes pueden ver sus entradas, crear nuevos y responder, todo sin entrar en el OpsIQ admin.

Cómo funciona
Insertar portal de entradasUn portal de soporte incrustado en un sitio web que muestra a un cliente sus propios tickets y un botón nuevo ticket.yoursite.com/supportCentro de soporteNuevo ticketCompra tus entradas#1042 · Pregunta sobre reembolsoAbrir#1038 · Ayuda de configuraciónResuelto#1031 · Copia de la facturaPendiente1EMBEDAñadir a cualquier sitio2SELF-SERVELos clientes ven sus tickets3NO LOGINIdentidad manejada de forma segura
Insertar portal de entradas

Tres sabores de incrustación

Inserción en línea

Renderiza el portal de tickets dentro de un div en tu página El portal ocupa todo el ancho del contenedor.

Widget flotante

Muestra un botón flotante que abre el portal de tickets en un panel, similar al widget de chat.

Autenticado

Requiere un token de identidad firmado. Los clientes solo ven sus propios tickets.

Instalación

Snippet de inserción del ticket
<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>

Generación de tokens de identidad

Para el modo autenticado, tu servidor debe generar un token de identidad firmado que le diga a OpsIQ quién es el cliente para que solo vea sus propios tickets.

PHP · generar token de identidad
<?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 · token de identidad
// 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, genera identidad token
// 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 del widget

Lista de entradas

Una lista filtrada por estado y con capacidad de búsqueda. Un "Esperando a usted" resalta los tickets que el equipo ha respondido.

Conversación en hilo

Vista completa de la conversación con texto enriquecido, archivos adjuntos y marcas de tiempo.

Borrador de autoguardado

Los borradores de respuestas del cliente se guardan automáticamente para que no pierdan el trabajo si se alejan.

Encuesta en vivo

El widget encuesta nuevas respuestas cada ~12 segundos.

Resolver / reabrir

Los clientes pueden resolver o reabrir sus propios tickets con un solo clic.

Las notas internas del personal NUNCA se muestran a los clientes en la inserción de tickets, ya que es un límite de seguridad.
Soporte

Bandeja de entrada del chat

La bandeja de entrada del chat es donde tu equipo administra las conversaciones en vivo con los clientes, y muestra los chats activos, asignados, gestionados por IA e historial archivado.

Bandeja de entrada del chat
Bandeja de entrada del chatUna bandeja de entrada de chat del agente con tres paneles: la lista de conversaciones, la conversación en vivo con un chip de borrador de IA y un panel contextual de visitantes/CRM.Bandeja de entrada del chatespacio de trabajoJDJane¿Dónde está mi pedido?MOMensahPregunta de facturaciónRTRitaAI manejado¿Dónde está mi pedido?Hoy escogido · UPSAI borrador listoResponder a…VISITANTEJane DoeEE. UU · Chrome3 pedidos pasadosLTV$480CRMEtapa: El cliente1UNIFIEDCada chat en vivo2CONTEXTPanel Visitante + CRM3AI ASSISTBorrador & reescribir
Una bandeja de entrada para cada chat en vivo, lista de conversaciones, el hilo con AI borrador sobre grifo y completo contacto con el visitante + contexto CRM.

Administración de conversaciones

Chats activos

Conversaciones en curso. Punto verde = cliente está escribiendo o activo recientemente.

AI-manipulado

Conversaciones en las que la IA está respondiendo. Puedes tomar el control en cualquier momento haciendo clic en "Unirse".

Asignado a mí

Conversaciones asignadas a usted específicamente.

Esperando

Conversaciones donde el cliente está esperando una respuesta.

Archivo

Conversaciones completadas. Búsqueda por palabra clave, fecha y cliente.

Entrega de IA a humano

Cuando te hagas cargo de una conversación de la IA, sigue estas tres reglas:

1
Saluda personalmente

Preséntate por tu nombre: "Hola, soy Sarah del equipo de soporte".

2
Contexto de referencia

Muestra que has leído la conversación. "Veo que me preguntaste sobre el estado de tu pedido".

3
Establecer las expectativas

Dile al cliente lo que sucederá a continuación: "Estoy investigando esto ahora y tendré una respuesta para usted en unos minutos".

Activar/desactivar la IA por conversación

Utilice el interruptor de IA en la parte superior de cada conversación. Cuando está activada, la IA genera respuestas. Cuando se desactiva, solo los agentes humanos pueden responder. La IA recuerda el contexto de la conversación incluso cuando se apaga y vuelve a encenderse.

Modo fuera de horario

Configura el horario de trabajo en Ajustes. Fuera del horario laboral, la IA puede:1) Seguir respondiendo a los clientes, (2) Mostrar un mensaje de "ausencia" y crear un ticket para seguimiento, o (3) Deshabilitar el chat por completo y mostrar el formulario de ticket.Elige el comportamiento que se ajuste a tu modelo de soporte.

Manejo de conversaciones difíciles

1
Manténgase en calma

No iguales la intensidad emocional del cliente, reconoce su frustración sin estar a la defensiva.

2
Recopilar los hechos

Antes de responder, recopila la información relevante: detalles del pedido, estado de la cuenta, tickets anteriores.

3
Escalar temprano

Si la situación involucra reembolsos, amenazas legales, abuso o seguridad, escala a un miembro del equipo senior en lugar de tratar de manejarlo solo.

¿Puedo tener chat de equipo (de agente a agente)?+

Sí, puede usar notas internas dentro de una conversación para comunicarse con otros agentes. Estas notas nunca son visibles para el cliente.

¿Qué sucede cuando cierro un chat?+

Si el cliente envía un nuevo mensaje más tarde, se crea una nueva conversación y la conversación se guarda en el archivo.

Soporte

Canales de mensajería

Conecta WhatsApp, Facebook Messenger, Instagram DM, Telegram y LINE para que los clientes de mensajes ya te envíen lleguen a la misma bandeja de entrada que tu chat web, contestado por el mismo asistente de AI.

Cada canal se comporta de forma idéntica una vez conectado: un mensaje del cliente se convierte en una conversación en la bandeja de entrada de chat, su asistente de inteligencia artificial lo responde utilizando el mismo conocimiento e instrucciones que su chat web y cualquier agente puede asumir. Nada sobre sus necesidades de IA configurar por canal.

Qué conexión parece

Facebook Messenger &amp; Instagram

Un clic. Conectadores abiertos→Facebook Messenger &amp; Instagram DM, haz clic en Conectar, inicia sesión con la cuenta de Facebook que gestiona tu página y elige la Página. Instagram viene con ella cuando tu página tiene una cuenta profesional conectada a Instagram.

WhatsApp

Un clic donde su proveedor lo ofrece: abra el conector del centro de mensajería y utilice Connect WhatsApp, luego siga la señalización guiada de Meta para recoger o crear su número de negocio de Whatsapp. De lo contrario, pega las credenciales de cualquiera de los portales 20.

Telegram

Dos minutos. Mensaje @BotFather en Telegram, envía/newbot,Elija un nombre y un nombre de usuario finalizando en "bot", y pega el token que le da al conector Telegram.OpsIQregistra el Webhook para usted.

LINE

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

Agregue un proveedor (Twilio, Vonage, Termii y otros) en el Centro de Mensajería con sus credenciales y número de remitente.

Cada conector muestra sus propias instrucciones paso a paso dentro del cajón, incluyendo exactamente qué copiar y dónde. Nunca necesita credenciales de desarrollador para las opciones de un clic.

Activar un canal

Conectar un canal no lo inicia. Ir a Settings → Client Chat → Advanced → Messaging Channels, cambiar el toggle maestro y luego el canal individual. Cada canal tiene su propio interruptor de auto-reply AI, por lo que puede pilotar en uno antes de abrir el resto.

1
Conectar el canal

En Connectors, usando las instrucciones en el cajón de ese conector.

2
Prueba la conexión

Haga una llamada real al proveedor y le dice qué es incorrecto si algo es.

3
Permitir canales de mensajería

Ajustes→Chat de cliente→Avanzado. Enciende el interruptor principal, luego el canal.

4
Envíe un mensaje

De otra cuenta, envía un mensaje a tu página, número o bot. Debe aparecer en la bandeja de entrada de chat en segundos y obtener una respuesta de AI.

Responder ventanas

Las plataformas de mensajería limitan cuánto tiempo puede responder un negocio después de que un cliente escriba. OpsIQ muestra el tiempo restante en cada conversación y hace cumplir la regla para usted.

WhatsApp

24 horas del último mensaje del cliente. Después de esto, solo puede enviar una plantilla aprobada, que configura en la misma pestaña Advanced.

Mensajero &amp; Instagram

24horas para las respuestas normales; los agentes pueden responder hasta7días después bajo la asignación humana-agente de Meta.

Telegrama, LINE, SMS

No hay ventana de proposición.

⚠️
Si una respuesta falla porque la ventana se cerró, la conversación muestra por qué. Esta es una regla de plataforma, no un límite OpsIQ.

Preguntas comunes

¿Los clientes ven que una AI respondió?+

Sólo si les dices. La respuesta viene de tu página, número o bot exactamente como una respuesta humana. Tus instrucciones AI controlan el tono y si se identifica a sí mismo.

¿Puede un agente tomar el control de la conversación?+

Sí. Abra la conversación en el Chat Inbox y haga clic en Join. La AI para, escribe y el cliente ve un hilo continuo en su lado.

¿Y si desconecto un canal?+

Use Desconectarse en el conector. Historia del mensaje se mantiene; nuevos mensajes simplemente dejan de llegar, y la plataforma es ordenada para dejar de enviarlos.

¿Pueden dos espacios de trabajo utilizar la misma página de Facebook?+

No. Una página pertenece a un espacio de trabajo a la vez. Conectarla en otro lugar lo mueve, y el primer espacio de trabajos deja de recibir mensajes, así que desconectar deliberadamente en lugar de reconectarse en otra parte.

Soporte

Conversaciones de chat reales

Estos ejemplos muestran cómo una IA de cliente bien entrenada debería manejar escenarios comunes, y se pueden usar para probar su entrenamiento de IA e identificar brechas.

10 ejemplos de conversación

1. Cliente que vuelve a preguntar sobre el pedido

Escenario:
Customer: Hi, I placed an order 3 days ago and haven't received any shipping notification yet. Order #ORD-5523.
Qué hacer:

El AI debería: (1) Busque el orden #ORD-5523 A través del conector. (2) Informe el estado actual y la información de seguimiento si está disponible. (3) Si el pedido se retrasa, reconozca la demora y proporcione un cronograma estimado. (4) NO invente un estado de envío si el conector no tiene uno.

2. El prospecto pregunta sobre los precios

Escenario:
Customer: How much does your Pro plan cost? Do you offer annual billing?
Qué hacer:

El AI debería: (1) Respuesta de la base de conocimientos con precios actuales. (2) Explique la diferencia entre facturación mensual y anual. (3Si la respuesta no está en la base de conocimientos, díselo y ofrézcase a conectarlos con las ventas.4) NO invente precios que no estén en la base de conocimientos.

3. Cliente enojado exigiendo reembolso

Escenario:
Customer: This is ridiculous! Your product does not work and I want my money back NOW.
Qué hacer:

The AI should: (1) Reconocer la frustración tranquilamente. (2) Solicitar el número de pedido o correo electrónico de cuenta. (3) Explicar el proceso de reembolso. (4) Crear un billete de apoyo o escalar a un agente humano. (5) NO promete un reembolso, que requiere la aprobación humana.

4. Caso de doble borde de facturación

Escenario:
Customer: I was charged twice this month. My bank shows two charges of $29.99.
Qué hacer:

El AI debería: (1) Reconocer la preocupación. (2) Reúna los detalles relevantes (correo electrónico, fechas de cargos).3) Explique que los problemas de facturación requieren revisión humana. (4) Crear un ticket de departamento de facturación con los detalles. (5) Establezca la prioridad en Alta.

5. Cliente multilingüe

Escenario:
Customer: Bonjour, je voudrais savoir si vous livrez en France?
Qué hacer:

El AI debería: (1) Responder en el idioma del cliente si ese idioma es compatible. (2) Responda la pregunta sobre el envío a España desde la base de conocimientos. (3) Si el idioma no es compatible, responda en el idioma predeterminado y mencione qué idiomas están disponibles.

6. Conversación después de las horas laborales

Escenario:
Customer: Hello, is anyone there? I need help with my account.
Qué hacer:

El AI debería: (1) Si está configurado para IA fuera de horario, responda y asista. (2) Si después del horario de trabajo se crean tickets, di: "Nuestro equipo está desconectado en este momento. He creado un ticket de soporte para usted y alguien lo seguirá durante el horario laboral".3) Proporcione el número del ticket.

7. Comprador de comparación previa a la compra

Escenario:
Customer: How does your product compare to [Competitor X]?
Qué hacer:

El AI debería: (1) Describa las fortalezas de su producto con hechos. (2) NO insulte al competidor. (3) Si hay una página de comparación en la base de conocimientos, enlace a ella. (4) Si el cliente pregunta sobre características que no tienes, sé honesto.

8. El cliente quiere una recomendación

Escenario:
Customer: I run a small online store with about 100 orders per month. Which plan is right for me?
Qué hacer:

El AI debería: (1) Haga preguntas aclaratorias si es necesario (por ejemplo, qué características son más importantes).2) Recomendar un plan basado en la base de conocimientos. (3) Explique por qué ese plan se ajusta a sus necesidades. (4) Mencione que pueden comenzar con un plan más pequeño y actualizarlo más tarde.

9. Cliente tratando de obtener un descuento no autorizado

Escenario:
Customer: I saw online that you give 50% discounts. Can I have one?
Qué hacer:

El AI debería: (1) Explique cortésmente las promociones actuales si alguna existe. (2) NO cree ni prometa descuentos que no estén en la base de conocimientos. (3) Si el cliente persiste, ofrézcale conectarlo con el equipo de ventas.

10. El cliente necesita ayuda con una función

Escenario:
Customer: How do I export my data? I can't find the export button.
Qué hacer:

El AI debería: (1) Proporcionar instrucciones paso a paso de la base de conocimientos. (2) Incluya la ruta exacta de la página y la ubicación del botón.3) Si la función requiere un plan específico, menciónelo. (4) Si la característica no existe, se honesto y sugiere alternativas.

Soporte

Enrutamiento y escalado de chat

Cuando un chat en vivo necesita una persona real, la IA responde a dos preguntas: ¿qué equipo es el propietario de esta conversación y quién debe ser informado? Ambos están configurados en Configuración, Chat del cliente, Flujo de soporte, bajo Departamentos de enrutamiento de AI.

Elegir qué departamentos puede usar la IA

Los dos cuadros de ese panel son una lista blanca. Los departamentos que se mueven a la derecha son los únicos a los que el IA puede enrutar o abrir tickets. Cualquier cosa que queda a la izquierda es invisible para él, incluso si el departamento existe y tiene personal.

💡
Si no se habilita ningún departamento, OpsIQ vuelve al enrutamiento heredado a través de todos los departamentos que puede encontrar. Trate esto como una red de seguridad, no como una opción de configuración.

Quién recibe la escalada

Esta es la parte que la mayoría de las personas esperan configurar y no necesitan hacerlo. Cuando el AI escala un chat, OpsIQ envía correos electrónicos a las personas adjuntas a ese departamento. Usted administra esa lista una vez, en la página Equipo y Departamentos, y tanto la escalada del ticket como la escalación del chat siguen esta lista.

Miembros del equipo de departamento

Cada administrador activo adjunto al departamento recibe su propia copia, y se omiten las cuentas suspendidas e inhabilitadas.

Administrador primario

Se usa cuando no hay miembros del equipo adjuntos, por lo que una escalada todavía llega a alguien.

No hay nadie adjunto

El panel de enrutamiento marca ese departamento en rojo y la IA no le dice al visitante que un humano fue notificado.

⚠️
La dirección de correo electrónico del propio departamento nunca se utiliza deliberadamente como destinatario. Esa dirección es el buzón de entrada de tickets del departamento, con la que se comparan los mensajes entrantes para abrir los tickets. Una escalada enviada allí sería canalizada de vuelta como un nuevo ticket en lugar de llegar a una persona.

El departamento de capturar todo

Exactamente un departamento lleva la marca de capturar todo, recibe chats que la IA no podría colocar con confianza y es el último recurso en lugar del camino normal.

1
Las señales claras ganan

La redacción de facturación va a un departamento de facturaciones, la redacción del hosting y los errores a uno técnico, la formulación de compras a las ventas.

2
El clasificador de IA intenta a continuación

Si las palabras clave no son concluyentes, el modelo lee la conversación y elige entre los departamentos habilitados.

3
Entonces el catch-all

Solo cuando ambos se quedan vacíos, el departamento de captura general recibe el chat.

4
El guardia de ventas

Si el catch-all es un departamento de ventas y el visitante no mostró ninguna señal de compra, OpsIQ busca en su lugar un departamento técnico o de soporte, por lo que las preguntas ordinarias de soportes no se acumulan en Ventas.

Lo que se le dice al visitante

Si el correo electrónico de escalada sale, la IA le dice al visitante que el equipo ha sido notificado. Si no puede salir, la AI dice algo honesto e invita a dejar el mensaje en el chat en su lugar. No afirmará que un humano fue alertado cuando no se envió ningún correo electrónico.

El panel dice "Nadie a notificar" para un departamento+

No hay nadie conectado a él. Abra Equipo y Departamentos, conecte al menos un administrador activo, luego vuelva a cargar la página de configuración.

¿Pueden las escaladas de chat ir a otro lugar que no sea el equipo?+

Una dirección personalizada guardada previamente para un departamento aún reemplaza la lista de equipos. Las nuevas configuraciones deberían adjuntar personas al departamento en su lugar, por lo que hay un solo lugar para mantener.

¿Por qué se omitió mi captura general?+

Si es un departamento de ventas y el visitante no ha mostrado ninguna señal de compra, OpsIQ enruta a propósito al soporte o departamento técnico.

Soporte

Buzones de correo electrónico y borradores

OpsIQ puede conectarse a buzones de correo electrónico para crear automáticamente tickets desde el correo entrante y enviar respuestas como correo electrónico, además de proporcionar respuestas redactadas por IA para revisión humana.

Correo electrónico
Enviar por correo electrónico a ticketUn buzón IMAP a la izquierda que alimenta los correos electrónicos entrantes en un ticket con hilo de discusión y una respuesta borrada por IA a la derecha.Correo electrónicoespacio de trabajo[email protected] · IMAPSolicitud de reembolso[email protected]No puedo iniciar sesión[email protected]Copia de factura[email protected]Entrada 1042Desde el correo electrónico · FacturaciónMe gustaría un reembolso por elCarga de duplicado…Borrador de IARevisar y enviar respuesta1INGESTIMAP & reenvío en2TO TICKETSRoscado automáticamente3AI DRAFTSRespuestas para revisión
Recibe correos electrónicos a través de IMAP (o reenvía), convierte cada uno en un ticket con hilo y deja que la IA redacte la respuesta para su revisión.

Conectar un buzón

Protocolo

IMAP (la mayoría de los proveedores), Gmail API (Google Workspace), o Microsoft Graph (Outlook 365).

Configuraciones necesarias

Host, puerto, cifrado (SSL/TLS), nombre de usuario, contraseña o contraseña de aplicación, carpeta (normalmente INBOX).

Mapeo de departamentos

Los correos electrónicos a [email protected] crean tickets en el departamento de "Soporte" y se asignan al buzón del departamento.

Configuración de Gmail (paso a paso)

1
Habilitar la verificación de 2pasos

Ve a Cuenta de Google > Seguridad > Verificación en 2pasos y habilitela.

2
Crear una contraseña de aplicación

Ve a Cuenta de Google > Seguridad > Contraseñas de aplicación. Selecciona "Correo" y "Otros (OpsIQ)". 16-contraseña de carácter.

3
Entrar en OpsIQ

Go to Email > Mailboxes > Add. Set host: imap.gmail.com, port: 993, encryption: SSL, username: [email protected], password: the app password.

4
Prueba

Si la conexión se realiza correctamente, OpsIQ comenzará a buscar nuevos correos electrónicos en el intervalo configurado.

Configuración de Outlook 365

1
Compruebe que IMAP está habilitado

En Configuración de Outlook > Correo > Sincronizar correo electrónico, asegúrese de que IMAP esté habilitado.

2
Usar contraseña de aplicación o autenticación moderna

Si la autenticación multifactor está habilitada, crea una contraseña de aplicación; en caso contrario, usa tu contraseña habitual.

3
Entrar en OpsIQ

Anfitrión: outlook.office365.com, puerto: 993, cifrado: SSL, nombre de usuario: [email protected].

cPanel configuración de correo web

1
Encuentra la configuración de IMAP

En cPanel > Cuentas de correo electrónico, haga clic en su cuenta de correo. IMAP Configuraciones.

2
Entrar en OpsIQ

Host: usualmente mail.yourdomain.com o su nombre de host del servidor, puerto: 993 (SSL) o 143 (STARTTLS), nombre de usuario: dirección de correo electrónico completa.

Borrador de correo electrónico AI

Cuando la respuesta automática está configurada en el modo "Borrador", la IA genera borradores de respuesta que aparecen en la cola Borradores.

Examen

Lea el borrador y compruebe la exactitud.

Editar

Modifica el texto, tono o contenido antes de enviar.

Enviar

Aprobar el borrador y enviarlo como respuesta por correo electrónico.

Descartar

Suprimir el borrador si no es apropiado.

Auto-envío

Si la confianza es lo suficientemente alta y el envío automático está habilitado, los borradores se envían automáticamente después de un retraso configurable.

¿Por qué los correos electrónicos no se convierten en tickets?+

Cheque: (1) ¿Está el buzón conectado y funcionando correctamente? Busque un estado verde en Correo electrónico > buzones. (2) ¿Está ejecutándose el trabajo cron? El sondeo de correo electrónico requiere cron. (3) ¿Se está filtrando el correo electrónico o se ha movido a una carpeta distinta de la bandeja de entrada?

¿Puedo usar varios buzones?+

Sí, cada buzón puede asignarse a un departamento diferente. [email protected] va a Soporte, [email protected] Va a Facturación.

Soporte

Satisfacción del cliente (CSAT)

CSAT mide la satisfacción de los tickets y chats, resalta las respuestas insatisfechas y compara los resultados humanos con los de IA.

Pantalla de producto
Satisfacción del clienteLa página de CSAT combina tarjetas de puntuación, seguimiento de detractores, comentarios, desglose por departamento y agente y retroalimentación del chat.Satisfacción del clienteespacio de trabajoRESPONSES386AVERAGE4.6POSITIVE91%VISTA DE ESPACIO DE TRABAJO EN DIRECTOSeguimiento de detractores12 respuestas calificadas1–2ExamenEncuestas de boletosEnviado 24h después de cerrarAutomáticoComentarios de chatAI 4.5 Humano 4.7CompararVista de agentePuntuación y recuento de respuestasEntrenador1WATCH AVERAGEUsar tendencia, no una puntuación2FOLLOW DETRACTORSLeer el comentario3COMPARE FAIRLYIA y humano
La página de CSAT combina tarjetas de puntuación, seguimiento de detractores, comentarios, desglose por departamento y agente y retroalimentación del chat.

Las encuestas de boletos se programan después del cierre (normalmente 24 horas antes).24 Una respuesta positiva es una puntuación de 10 puntos.4o 5. Utilice la cola de detractores para obtener puntuaciones de.1o2y lea el ticket/conversación antes de contactar al cliente.

Los comentarios de chat se informan por separado para las conversaciones resueltas por IA y las manejadas por humanos. Los tamaños de muestra bajos no deben usarse para clasificar a los agentes o modelos.

Soporte

Difusión de correo electrónico del equipo

La página de la plataforma de correo electrónico permite a un operador autorizado enviar un mensaje único a todos los agentes activos, agentes seleccionados o un departamento y revisar el historial de envíos.

Pantalla de producto
Plataforma de correo electrónicoEl compositor de correo electrónico del equipo muestra la audiencia, el asunto, el mensaje y el historial de entregas anteriores.Plataforma de correo electrónicoespacio de trabajoRECIPIENTES12DELIVERED11FALLADO1VISTA DE ESPACIO DE TRABAJO EN DIRECTOAudienciaTodos los agentes activosSeleccionadoAsuntoRota de apoyo de julioListoMensajeNotas de cronograma y escalamientoListoHistoriaTransmisiones anteriores y resultadoVer1CHOOSE PEOPLETodos, seleccionados o equipo2WRITE CLEARLYAsunto y mensaje3REVIEW HISTORYConfirmar el resultado
El compositor de correo electrónico del equipo muestra la audiencia, el asunto, el mensaje y el historial de entregas anteriores.

Esta página es para mensajes operativos internos, no de marketing al cliente. Elija el público correcto más pequeño, obtenga una vista previa de los nombres y direcciones y luego envíelo.

Soporte

Buzones, entrega y correo entrante

Configure cómo OpsIQ envía correo electrónico, convierte mensajes entrantes en tickets y prueba que el dominio de envío está listo.

Pantalla de producto
Configuración de correo electrónicoLa configuración de correo electrónico combina enrutamiento saliente, identidad de origen, ingestión del buzón, comprobaciones de entregabilidad y correo electrónico de prueba.Configuración de correo electrónicoespacio de trabajoSALIDASMTPMAILBOXES3DOMINIOPaseVISTA DE ESPACIO DE TRABAJO EN DIRECTOConector preferidoSMTP / conector de proveedorConfiguradoDesde la identidadSupport <[email protected]>ListoBuzón IMAP[email protected] · BOX DE ENTRADAEncuestaEntregabilidad¿Qué es SPF?Pase1CHOOSE OUTBOUNDConector o SMTP2CONNECT INBOXIMAP o tubería3TESTEnviar y verificar
La configuración de correo electrónico combina enrutamiento saliente, identidad de origen, ingestión del buzón, comprobaciones de entregabilidad y correo electrónico de prueba.

Correo electrónico saliente

Los administradores completos pueden elegir el conector de correo electrónico preferido; OpsIQ Cae de nuevo a configurado SMTP Establezca un nombre/dirección del remitente reconocible, envíe una prueba y compruebe el estado de la entrega. 24 Métricas de éxito / fracaso por hora.

Buzones

Un buzón IMAP necesita un nombre, una dirección de correo electrónico, el departamento de destino, el host, el puerto, el modo de seguridad, el nombre de usuario, la contraseña, la carpeta, el estado de sondeo y la opción de validación del certificado. Encuesta ahora Para verificar la ingestión antes de esperar a cron.

Tubería instantánea

En el mismo servidor, una tubería de correo puede pasar directamente el mensaje RFC822 sin procesar. Un servidor de correo remoto puede enviar el mensaje sin procesarse al punto final entrante protegido utilizando su token. Ambas rutas ingresan a la misma canalización de deduplicación, hilo y enrutamiento de tickets.

Entregabilidad

La comprobación SPF/DKIM/DMARC es una prueba de asesoramiento para el dominio From configurado. Una marca verde no garantiza la ubicación en la bandeja de entrada, pero un error debe corregirse antes de enviar mensajes de producción.

Soporte

Portal de soporte

Support Portal Studio diseña y publica la experiencia de soporte orientada al cliente sin necesidad de recursos de imágenes externos.

Pantalla de producto
Portal de soportePortal Studio muestra una vista previa adaptativa junto con el tema, la navegación, los conocimientos, el ticket, el asistente, el formulario, el pie de página y los controles CSS.Portal de soporteespacio de trabajoTEMPLATEModernoPREVISTAEscritorioESTADOBorradorVISTA DE ESPACIO DE TRABAJO EN DIRECTOTemaColores y tipografía de la marcaEditarNavegaciónConocimiento, tickets, asistenteEditarFormulario de ticketCampos, enrutamiento y copiaEditarPublicarValidar y poner en marchaExamen1CHOOSE TEMPLATEComience desde la estructura2PREVIEW SIZESDe escritorio a móvil3PUBLISH SAFELYRevisar y luego liberar
Portal Studio muestra una vista previa adaptativa junto con el tema, la navegación, los conocimientos, el ticket, el asistente, el formulario, el pie de página y los controles CSS.

Utilice la plantilla como punto de partida, luego configure el tema, diseño, navegación, búsqueda de conocimientos, formulario de ticket, asistente, pie de página, marca, comportamiento del ticket, CSS personalizado y configuración general.

Soporte

Brechas de conocimiento

La cola de brechas de conocimiento recopila las preguntas del cliente que la IA no pudo responder con confianza para que el equipo pueda mejorar la cobertura.

Pantalla de producto
Brechas de conocimientoLa cola de brechas clasifica las preguntas perdidas o con poca confianza y realiza un seguimiento para ver si el equipo las ha resuelto.Brechas de conocimientoespacio de trabajoOPEN GAPS28REPEATED9RESOLVED116VISTA DE ESPACIO DE TRABAJO EN DIRECTOLímites de migraciónPreguntado 14 vecesAltoSoporte de fin de semanaPreguntado 8 vecesMedioTiempo de reembolsoPreguntado 6 vecesMedioRegión de APIPreguntado 3 vecesBajo1REVIEW QUESTIONVer contexto de conversación2CHOOSE FIXArtículo o mensaje3RESOLVEVerificar la siguiente respuesta
La cola de brechas clasifica las preguntas perdidas o con poca confianza y realiza un seguimiento para ver si el equipo las ha resuelto.

Abre un espacio para leer la pregunta original y la conversación cercana, luego elige la solución correcta: actualiza un artículo existente, crea un nuevo artículo de conocimiento, agrega un hecho comercial, corrige los datos del conector o cambia las instrucciones de escalada. Marcalo como resuelto solo después de que una evaluación o prueba real devuelva una respuesta aceptable.

Soporte

Administración de la página de estado

La página de administración del estado comunica el estado y los incidentes del servicio mediante componentes, estados actuales y actualizaciones.

Pantalla de producto
Administración de estadoLa administración de estado enumera los componentes y incidentes para que los operadores puedan publicar información clara sobre el servicio con marca de tiempo.Administración de estadoespacio de trabajoOVERALLOperacionalCOMPONENTES7INCIDENTS1VISTA DE ESPACIO DE TRABAJO EN DIRECTOSitio webOperacionalVerdeAPIDeterioro del rendimientoVerIngestión de correo electrónicoOperacionalVerdeIncidente actualAPI investigación de latenciaAbrir1UPDATE COMPONENTElegir estado claro2POST INCIDENTActualizaciones con marca de tiempo3RESOLVECerrar con resumen
La administración de estado enumera los componentes y incidentes para que los operadores puedan publicar información clara sobre el servicio con marca de tiempo.

Cuando un incidente afecte a los clientes, publica una notificación inicial, agrega actualizaciones con marca de tiempo según cambien los hechos y cierra con un resumen conciso de la resolución. No uses la página de estado como registro interno de depuración; los diagnósticos confidenciales pertenecen al OpsIQ y a los registros del servidor.

IA

Configura tu IA

Configuración de IA es donde usted elige su proveedor, modelo y controles de costos. OpsIQ Este sitio soporta múltiples proveedores: Claude (Anthropic), GPT-4o (OpenAI), Gemini (Google), y Grok (xAI). Puede utilizar su propio API clave (BYOK) o IA administrada si está disponible en su plan.

Configurar AI
Configuración de IAUn panel de configuración de IA: un interruptor de proveedor Managed-AI / BYOK, un selector de modelo y un medidor mensual de presupuesto de token.Configuración de IAespacio de trabajoConfiguración de IAProveedorAI GestionadoSu clave (BYOK)Modeloclaude · equilibradoPresupuesto mensual de IA62%1TWO MODESIA gestionada o BYOK2PICK A MODELVelocidad vs profundidad3BUDGETSLímites de tokens y control de costes
Elija IA administrada o su propia clave, elija un modelo para velocidad vs profundidad y limite el gasto mensual con un presupuesto de token.

Elegir un proveedor

Claude.Anthropic)

Razonamiento fuerte, cuidadoso con los hechos, bueno para seguir instrucciones complejas. Modelos: claude-sonnet-4-20250514, claude-3.5 Lo mejor para: conversaciones de soporte, preguntas técnicas, análisis detallados.

GPT-4o OpenAI)

Rápido, creativo, buen conocimiento general. Modelos: gpt-4o, gpt 4o-mini. Mejor para: respuestas rápidas, escritura creativa, preguntas de amplio conocimiento.

Gemini (Google)

Bueno en preguntas fácticas, soporte multi-idioma. Modelos:gemini-2.0-flash,gemini-1.5 Lo mejor para: soporte multilingüe, búsquedas de hechos.

Amarillo (xAI)

Respuestas rápidas y concisas. Modelos: grok-3-mini-fast. Mejor para: respuestas rápida, tono informal.

BYOK vs IA gestionada

BYOK (Traiga su propia clave)

Usted proporciona su propia clave API del proveedor. Usted paga directamente al proveedor. Control total sobre la selección de modelos y el uso.

AI Gestionado

La IA se proporciona como parte de su. OpsIQ Plan. No API El uso se mide en función del saldo de crédito de AI de su plan.

Configuración paso a paso

1
Ir a Configuración de AI

En el administrador de OpsIQ, vaya a Configuración > Configuraciones de IA.

2
Seleccionar proveedor

Elija su proveedor de IA en el menú desplegable.

3
Ingrese la clave API

Si se utiliza BYOK, introduzca su. API En el caso de la IA administrada, esto se gestiona automáticamente.

4
Elige el modelo

Seleccione el modelo específico que desea utilizar. Los modelos más pequeños son más rápidos y baratos, mientras que los modelos más grandes proporcionan respuestas de mejor calidad.

5
Conexión de prueba

Haga clic en "Probar conexión" para verificar que la clave API y el modelo están funcionando, una marca de verificación verde significa éxito.

6
Guardar

Haga clic en Guardar para activar su configuración de IA.

Controles de costos

Presupuesto mensual

Cuando se alcanza el presupuesto, las funciones de IA disminuyen con gracia (respuestas más cortas, sin respuesta automática) en lugar de detenerse por completo.

Límite de token por conversación

Máximo de tokens por conversación. Evita que las conversaciones fuera de control consuman créditos excesivos.

Alerta de saldo bajo

Cuando el saldo de créditos de IA cae por debajo del umbral (por defecto: 50,000 tokens), aparece una advertencia en la administración, que puede configurar en Configuración de AI.

Configuración por espacio de trabajo

Si administras varios sitios, cada espacio de trabajo puede usar un proveedor, modelo y presupuesto diferentes. El espacio de trabaja hereda los valores predeterminados globales a menos que se anulen. Para configurar por espacio de Trabajo: cambia al espacio de labor, luego ve a Configuración de IA y guarda la configuración allí.

Obtención de API claves

Anthropic (Claude)

Ir a console.anthropic.com > API Teclas > Crear clave. Copia la clave que comienza con "sk-ant-".

OpenAI (GPT)

Ir a platform.openai.com > API Teclas > Crear nueva clave secreta. Copie la clave que comienza con "sk-".

Google (Gemini)

Ve aaistudio.google.com, ConsigueAPIKey. Crea una llave para tu proyecto. Copia la clave.

xAI (Grecia)

Ir a console.x.ai > API Claves. Crea y copia tu clave.

Probar tu configuración de IA

Escenario:
After entering your API key, click "Test connection." You should see a green checkmark and a sample response from the AI.
Qué hacer:

Si la prueba falla: (1) Compruebe que el API La clave es correcta (sin espacios adicionales).2) Comprueba que tu cuenta tenga la facturación configurada con el proveedor. (3) Compruebe que el nombre del modelo es válido. (4) Si utiliza IA administrada, verifique que su licencia esté activa.

¿Cuál es el mejor proveedor?+

No hay un único proveedor que sea el mejor. Claude es excelente para las conversaciones de soporte. GPT-4o es rápido y versátil. Gemini maneja bien varios idiomas. Pruebe cada uno y vea cuál produce los mejores resultados para su caso de uso específico.

¿Puedo cambiar de proveedor más tarde?+

Sí, puede cambiar el proveedor y la clave API en cualquier momento. El historial de conversaciones existente se conservará y la IA utilizará el nuevo proveedor para todas las conversaciones futuras.

¿Qué sucede cuando me quedo sin créditos?+

La IA se degrada con gracia: las respuestas se vuelven más cortas, la auto-respuesta se detiene y el administrador muestra una advertencia de saldo bajo. El seguimiento principal, los tickets y CRM continúan funcionando sin AI.

IA

Chat de clientes más inteligente y barato

A set of opt-in controls that make your customer chat either smarter (it reasons across a customer's account like a human agent) or cheaper (it sends the AI less, or answers in fewer steps). Every control is off by default and independent, turning one on never changes any other behaviour. Most live under Settings > Client Chat > Behaviour; a few are on Set up your AI and Train your AI.

Respuestas más inteligentes (modo agente)

Un chatbot normal responde una pregunta de una búsqueda. Con Modo de agente on, el asistente puede hacer varios cheques de cuenta sólo lectura en un solo turno y referenciales cruzados, por ejemplo: "¿Tengo entradas abiertas, y es mi saldo suficiente para mi próxima renovación?" se responde en una respuesta con las matemáticas hechas. Sólo participa para clientes verificados en preguntas de cuenta o reembolso; todo lo demás funciona la ruta normal de una sola respuesta.

Modo de agente

Hasta unas pocas búsquedas de solo lectura por turno, con referencia cruzada antes de responder.Activa cuando tienes una plataforma conectada (WHMCS, Shopify, Stripe, Zendesk, etc.). Desactivado = comportamiento de búsqueda única actual, sin cambios.

Profundidad de pensamiento para las respuestas del agente

Cómo de difícil es el modelo para razonar en giros complejos (bajo/medio/alto) Comience con bajo; la mayoría de las preguntas de soporte se manejan bien allí.

Modelo de agente

Se fija un modelo más fuerte solo para turnos de agentes complejos, por lo que el chat diario se mantiene en un modelo ligero y barato y solo los turnos difíciles pagan por la profundidad.

Planear adelante · respuestas de un paso (beta)

Un pequeño paso de planificación decide qué búsquedas para tirar y si la base de conocimiento es necesaria, entonces responde en UNA llamada principal en lugar de varios pasos. Una sub-retroducción bajo modo Agente. No puede ser habilitado a menos que el modo Agente esté encendido. La misma calidad de respuesta, menos llamadas en preguntas multiparto.

Conversación & comprensión

Memoria de conversación larga (beta)

Mantiene un resumen corto de los mensajes más antiguos (nombres, números de tickets/facturas, cantidades, decisiones) para que el asistente se mantenga consistente en chats muy largos sin volver a enviar toda la transcripción. Mejor para hilos largos y pesados de soporte; se combina con el modo Agente.

Tolerancia de errores tipográficos

Lee pequeños errores tipográficos ("mis tickets abiertos", "facturas no pagadas") como las palabras deseadas para que la información correcta se encuentre en lugar de perderse. Funciona con todas las plataformas conectadas.

Contexto de cuenta Lean

Sólo se adjunta la instantánea de cuenta del cliente cuando la pregunta es en realidad sobre su cuenta (balance, facturas, entradas, servicios), saltando a las preguntas generales. Costos de corte sin pérdida de calidad. El asistente puede todavía buscar la cuenta en vivo cuando un turno lo necesita.

Ahorro de costos

Saltar la búsqueda de conocimientos para saludos (beta)

"Hola", "gracias" y "ok" no activan una búsqueda basada en el conocimiento, esas respuestas nunca la usan. Cualquier mensaje con contenido real todavía busca como normal.

Respuesta más larga permitida (tokens)

Límite de la duración máxima de una respuesta. La duración de las respuestas es la parte más costosa de una llamada, por lo que un límite razonable (alrededor de 500 para el soporte) es el control de costes de chat más eficaz.

Configura tu IA

Profundidad de pensamiento (chat con clientes y administradores)

Cuanto piensa el modelo antes de responder (mínimo a alto) Mantenga el chat con el cliente en mínimo/bajo para la velocidad; reserve ajustes más altos para el análisis y el copiloto del administrador.

Modelo por IA (por trabajo)

Cada superficie de IA ( chat en vivo, borradores de tickets, resúmenes, análisis, copiloto de administración, promociones, Inteligencia del Sitio y más) puede funcionar en su propio modelo. Luz donde importa la velocidad, fuerte donde importa calidad. Enfría sobre una superficie = predeterminado proveedor para ese trabajo.

Controles de coste del chat administrativo

El copiloto administrador puede mantener una memoria de trabajo limitada y cargar solo las herramientas que necesita una pregunta (herramientas lean) en lugar de todas las herramienta en cada turno.

Entrena tu IA

Instrucciones de compresión

Sus instrucciones se envían en cada turno, por lo que su longitud es un costo recurrente. El botón Compress reescribe una ranura para decir la misma cosa con menos palabras. Se niega a la reescritura si deja caer cualquier {variable} o gobernar, e informa lo que protegió, por lo que nunca cambia silenciosamente significado.

"Lo que ya está en el cerebro" (ℹ️)

Muestra lo que OpsIQ ya sabe sobre tu negocio por espacio, para que puedas borrar cualquier cosa que estuvieras repitiendo en tus propias instrucciones.

💡
¿Dónde va el dinero? Para charlar de soporte corto la entrada (instrucción + datos de cuenta + historia, enviado cada turno) generalmente cuesta más que la respuesta corta, caché y contexto magro ayudan a la mayoría allí. Para contenido generado largo domina la salida. La tapa de respuesta-longitud y una profundidad de pensamiento inferior pagan allí. Ver Configurar su inteligencia para mantener encendido rápido, lo que hace la parte repetida grande de cada vuelta barato.
¿Cambia esto la forma en que el chat ya responde?+

No, cada control está desactivado por defecto e independiente. Activar uno solo añade su comportamiento; al desactivarlo el chat vuelve a funcionar exactamente como antes.

¿En qué orden debo encenderlos?+

Ejecuta el chat diario en un modelo ligero y fija un modelo de agente más fuerte. Luego, si tienes una plataforma conectada, habilita el modo Agente, luego Planificar con anticipación, luego Memoria de conversaciones largas. A continuación, reduce el contexto, omite los KB para los saludos y añade un cap de respuesta.

El kit de agente administrativo: búsqueda web, runbooks, misiones, transferencia de archivos

El chat de IA del administrador es un ingeniero en acción, no solo una caja de preguntas: puede buscar soluciones en la web, mantener una biblioteca de sus procedimientos operativos, patrullar sus servidores según un horario y mover archivos. La mayor parte de esto se realiza al solicitarlo en el chat; lo único que debe configurar por adelantado es qué proveedor de búsqueda web usará, en la página Configuración de su IA.

Búsqueda en la web

Construido en

El agente busca en la web documentos, mensajes de error e información actual mientras trabaja. Desde el principio, esto utiliza DuckDuckGo, que no necesita clave ni configuración.

Runbooks

En el chat

Una biblioteca guardada de tus procedimientos ("cómo hacemos X aquí") El agente escribe uno después de hacer un trabajo complicado y lo sigue la próxima vez, por lo que el conocimiento sobrevive al final del chat.

Misiones

Programado

"Cada mañana, comprueba el espacio en disco y los registros de errores e infórmanos". Los resultados llegan a tu campana de administración.

Transferencia de archivos

En el chat

Pide un archivo de registro y obtén un enlace privado para descargarlo, o haz que se copie un archivo desde un servidor conectado a otro, ambos con límite en 5 MB.

Búsqueda web de Admin Agent (en Configurar tu IA)

Proveedor de búsqueda

Lo que utiliza el agente de búsqueda web. El valor predeterminado es DuckDuckGo: sin llave, libre, funciona en cada instalación.Serper.dev(Resultados Google) generalmente devuelve mejores resultados pero cada uno necesita unAPIclave de ese proveedor. Si un proveedor con llave falla por cualquier razón (bad key, contingent used up, network problem), esa búsqueda se remonta a DuckDuckGo automáticamente, así que la búsqueda nunca se oscurece.

Buscar la clave API

La clave del proveedor que hayas elegido, solo se necesita para Brave, Tavily o Serper. Una vez guardada, queda enmascarada y no vuelve a aparecer en la página; pega una nueva para reemplazarla. Un proveedor con clave solo se activa cuando tanto el proveedor como su clave están guardados.

Runbooks

Cuando el agente haya terminado de trabajar en un trabajo que desea realizar de la misma manera, diga "guardar esto como un runbook llamado nightly-cleanup". A partir de entonces, ve el runbook por su nombre en cada sesión y cuando le pide el trabajo por su nome (o lo describe) extrae los pasos y los sigue.

💡
Un runbook es una guía, no un pase libre. Cuando el agente sigue uno, cada paso que cambiaría un servidor aún pasa por su modo de permiso actual y muestra las tarjetas de aprobación habituales.

Misiones

Una misión es un trabajo recurrente que el agente ejecuta por sí mismo: cada hora, diariamente a una hora establecida o semanalmente en un día determinado. Las misiones están diseñadas para ser de solo lectura. Pueden leer servidores, datos y la web, pero nunca pueden cambiar nada; investigan e informan. Cuando termina una misión, los resultados aparecen como una notificación en su campana de administración.

⚠️
Las misiones se ejecutan desde el cron OpsIQ, por lo que necesita ser configurado (ver Cron y automatización). Un "ejecútalo ahora" único desde el chat funciona incluso entre las ejecuciones de cron en la mayoría de los servidores.

Mover archivos

Si solicita un archivo ("obtenga el registro de errores del servidor web para hoy"), el agente lo prepara y le responde con un enlace privado de descarga, que solo funciona para los administradores registrados y caduca después de aproximadamente un día. Los archivos tienen un límite máximo de 5 MB; si es más grande, pídale al agente que primero lo comprima o recorte en el servidor.

El agente también puede copiar un solo archivo entre dos servidores conectados, de nuevo hasta 5 MB. La escritura en el destino se trata como cualquier otro cambio que haga: en modo preguntar primero obtiene una tarjeta de aprobación, el archivo existente se respalda y la copia es reversible. Por seguridad, el contenido del archivo se vuelve a leer desde el origen en el momento en que se aplica la copia, no se toma del chat.

IA

Entrena tu IA

En el entrenamiento de IA, se le enseña a OpsIQ cómo comportarse. Se escriben instrucciones que definen la personalidad, los límites, el enfoque del conocimiento y las reglas de escalada.

Entrena a AI
Entrena tu IAUn editor de instrucciones AI con pestañas Cliente / Administrador y tono en inglés sencillo, siempre y nunca gobierna.Entrena tu IAespacio de trabajoIA del clienteAdministrador de AIToneladaAmable, conciso, nunca intrusivo.SiempreOfrezca una entrega humana para disputas de facturación.NuncaPrometa un reembolso sin revisar la cuenta.1TWO MANUALSAI de cliente y administrador2PLAIN ENGLISHTono, siempre, nunca3GROUNDEDMás su base de conocimientos
Entrena la AI como un nuevo contrato, Manuales de cliente y Admin escritos en inglés claro (tone, always, never), basado en tu KB.

Dos áreas de entrenamiento

Solicitud de IA del cliente

Controla cómo la IA habla con tus clientes en el widget de chat, es el mensaje más importante para hacerlo bien.

Solicitud de AI del administrador

Controla cómo la IA ayuda a su equipo de administración en el panel del operador, gestionando las consultas internas y la ejecución de acciones.

Escribir un gran mensaje de IA para el cliente

El mensaje de IA para el cliente debe cubrir estas áreas:

1
Identidad

¿Quién es la IA? Dale un nombre, rol y personalidad. Ejemplo: "Eres Luna, una amigable y conocedora asistente de atención al cliente para Acme Store".

2
Tono y estilo

Ejemplo: "Sé profesional pero cálido. Usa un lenguaje sencillo. Evita la jerga. Mantén las respuestas concisas (2-3 20 párrafos máx.)."

3
Límites del conocimiento

¿Qué debe saber y qué no? Ejemplo: "Conoce nuestros productos, precios, envíos y política de devoluciones. NO conoce los productos de la competencia ni las decisiones internas de la empresa".

4
Reglas de escalada

Ejemplo: "Envía el mensaje a un agente humano cuando: el cliente solicita un reembolso, menciona una acción legal, informa de un problema de seguridad o hace la misma pregunta tres veces".

5
Cosas que nunca hacer

Ejemplo: "Nunca prometa reembolsos. Nunca comparta fórmulas internas de precios. Nuncan invente características del producto que no existen. Nuncen dé consejos médicos, legales o financieros".

Ejemplo de prompts

Ejemplo cliente AI prompt · tienda 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
Ejemplo cliente AI prompt · compañía de hosting
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

Perfeccionar tu mensaje con el tiempo

1
Comience con lo básico

Comience con la identidad, el tono y los límites clave; no trate de cubrir todo en el primer día.

2
Revisar la historia de AI semanalmente

Lee conversaciones donde la IA dio respuestas incorrectas o subóptimas.

3
Actualice el mensaje

Agregue reglas específicas para problemas recurrentes. Ejemplo: si la AI mantiene reembolsos prometedores, agregue "Nunca promete un reembolso. Diga que se escalará al equipo de facturación".

4
Agregar conocimientos

Si la IA no puede responder a una pregunta, añada la respuesta a la Base de conocimiento en lugar de tratar de que todo se ajuste al mensaje.

⚠️
Mantenga su solicitud bajo 2,000 palabras. Solicitudes demasiado largas pueden confundir a la IA y aumentar los costos de token, en lugar de poner información detallada en la base de conocimiento.
¿Cuál es la diferencia entre el prompt y la base de conocimientos?+

El prompt define la personalidad, los límites y las reglas; mientras que la base de conocimiento proporciona información objetiva (detalles del producto, precios, políticas). La IA lee ambos, pero el prompt da forma al comportamiento mientras que el KB ofrece respuestas.

¿Puedo tener diferentes mensajes para los distintos departamentos?+

Si necesitas un comportamiento de IA diferente para diferentes departamentos, utiliza la base de conocimientos para proporcionar información específica del departamento y menciona el contexto del departamento en tu solicitud.

IA

Historia de la IA

El historial de IA muestra todas las conversaciones que la IA ha tenido con clientes y administradores, lo que le permite auditar el rendimiento de la IA, encontrar respuestas incorrectas e identificar lagunas en la capacitación.

Historia de la IA
Historia de la IAUn registro de turnos de IA con insignias tipo, la pregunta y respuesta, tiempo de respuesta y resultado.Historia de la IAespacio de trabajoCada turno de IA, grabadochatQ: ¿Dónde está mi orden?A: enviado hoy, seguimiento de UPS...0.9sansweredticketProyecto de respuesta para T-12345Redacción de acta de reintegro1.4sdraftedadministradorResumen de entradas de esta semana12-línea resumen devuelto2.1shechochatP: cancelar mi planEntregado a un humano0.7sescalated1EVERY TURNSolicitar, responder, acción2SEARCHABLEFiltrar & exportar3OWNER-ONLYSeguimiento de auditoría completo
Cada cambio de IA (chat, ticket draft, acción administrativa) se ha conectado con el aviso exacto, respuesta, duración y resultado.

Lo que muestra cada conversación

Fecha y hora

Cuando la conversación sucedió.

Identidad del cliente

Nombre y correo electrónico si se conoce, de lo contrario IP y país.

Canal

Widget de chat, respuesta automática de tickets, borrador de correo electrónico o IA administrativa.

Mensajes

Transcripción completa de la conversación: mensajes del cliente y respuestas de IA.

Uso de token

Un alto uso de tokens puede indicar que la IA está dando respuestas demasiado detalladas o que la conversación se ha ido en círculos.

Medidas adoptadas

Cualquier acción que la IA haya ejecutado durante la conversación (orden buscada, ticket creado, etc.).

Calificación

Si CSAT está habilitado, la calificación de satisfacción del cliente para esta conversación.

Encontrar problemas

Buscar por palabra clave

Busca temas específicos para ver cómo los maneja la IA, por ejemplo: busca "reembolso" para comprobar si la IA está siguiendo tu política de reembolsos.

Filtrar por valoración

Muestre solo las conversaciones con baja calificación para centrarse en los clientes insatisfechos.

Filtrar por canal

Mostrar solo respuestas automáticas de tickets para auditar las respuestas automatizadas por separado del chat.

Ordenar por uso de token

Las conversaciones de alto token pueden indicar problemas: la IA vaga, gira en círculos o no responde a la pregunta.

Rutina de auditoría semanal

1
Comprueba las conversaciones de baja calificación

Lea la transcripción completa. ¿Qué salió mal? ¿Fue una brecha de conocimiento, un problema de tono o una respuesta incorrecta?

2
Compruebe conversaciones de alto token

Estos podrían indicar confusión. ¿Se estaba repitiendo la IA? ¿No entendió la pregunta?

3
Actualizar la capacitación

Para las lagunas de conocimiento, añade artículos a la base de coñecemento. Para los problemas de comportamiento, actualiza el mensaje de IA. Para respuestas incorrectas recurrentes, agrega reglas explícitas de corrección.

Encontrar brechas de conocimiento

Escenario:
You search AI History for "installation" and find 15 conversations where the AI said "I do not have specific installation instructions for this product."
Qué hacer:

Esto significa que a tu base de conocimientos le faltan guías de instalación. Crea artículos para los pasos de instalación de cada producto y, después de agregarlos, haz una prueba haciendo las preguntas de la instalación de IA.

IA

Perspectivas de IA

AI Insights analiza automáticamente los patrones de conversación y revela resultados prácticos: preguntas comunes, tendencias de satisfacción, brechas de conocimiento y patrones ascendentes.

Perspectivas de IA
Información de IA (Intelligence Hub)El Centro de Inteligencia: un Informe del Día de IA, Alertas Inteligentes, una herramienta de Puntuación-a-Lead / Análisis-de-una-Página y un. 14-Gráfico de patrón de tráfico del día.Perspectivas de IAespacio de trabajoEL BRIEF DE HOYTráfico arriba 12%; 3 contactos directos;2Los acuerdos necesitan seguimiento.Alertas inteligentesErrores de checkout aumentadosRebote en /pricingNueva ventaja caliente de los E. E. U. UIngresos por delante de la semana pasadaPuntuación de un lead / Analizar una páginaIP o URL…Ejecutar14-Patrón de Tráfico por Días1EL BRIEF DE HOYLa IA escribe el resumen de la mañana2SMART ALERTSLas anomalías que salieron a la superficie3ON DEMANDAnotar un lead · analizar una página
El verdadero centro de inteligencia: un resumen del día escrito por IA, alertas inteligentes para anomalías, puntuación de clientes potenciales bajo demanda y análisis de páginas, y el patrón de tráfico del día 14.

Qué muestran los insights

Las preguntas más frecuentes

Si la pregunta "¿Cómo puedo restablecer mi contraseña?" es #1, tu base de conocimientos necesita una guía destacada para restablecimiento de contraseña.

Tendencias de satisfacción

CSAT scores over time. Is AI satisfaction improving or declining? Sudden drops may indicate a knowledge base change that broke something.

Tasa de resolución

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.

Razones de la escalada

Razones comunes: el cliente solicitó un humano, la IA no pudo responder, tema delicado, problema de facturación.

Brechas de conocimiento

Temas donde la IA frecuentemente dice "no sé" o da respuestas de baja confianza.

Duración media de la conversación

Conversaciones muy largas (10+ mensajes) pueden indicar que la IA no está entendiendo la pregunta, por lo que es posible que el sistema de respuesta no esté respondiendo correctamente.

Usando insights para mejorar

Escenario:
AI Insights shows that 23% of escalations are "Customer asked about warranty" and the AI could not answer.
Qué hacer:

Esta es una clara brecha de conocimiento. Pasos: (1) Escriba un artículo completo sobre la garantía en la Base de Conocimientos que cubra todos los términos, el proceso de reclamación y las exclusiones.2) Actualice el mensaje de AI para hacer referencia a la información de garantía. (3) Monitoree AI Insights la próxima semana para ver si disminuyen las escaladas de garantía.

IA

Guía de IA para administradores

La IA del administrador (Ask OpsIQ) ayuda a tu equipo a gestionar _OpsIQ desde el panel de administración. Puedes pedirle que busque datos, explique funciones, resuma tickets y ejecute acciones en la plataforma.

Administrador de AI
Guía de IA para administradoresEl cuadro de comando Ask-OpsIQ con una tarjeta de acción de plataforma propuesta por la IA que muestra parámetros y confirmar/cancelar.Pregunta a OpsIQespacio de trabajoPregunta a OpsIQSuspender el servicio por cuenta vencida #4821IAAcción propuesta: suspend_servicecuenta: #4821(debido)$120)Plataforma: WHMCS · reversible · auditadoConfirmarCancelar1ASK ANYTHINGComandos en inglés sencillo2PROPOSE FIRSTAcción mostrada antes de ejecutarse3YOU CONFIRMAlcance & auditado
Dígale a la administración AI lo que desea en inglés claro; propone la acción exacta (espejado, reversible, auditado) y espera su confirmación.

Lo que puede hacer la IA del administrador

Buscar datos

Pregunta: "Mostrarme todos los boletos de [email protected]" o "¿Cuál es el estado del pedido #ORD-5523?"

Resumen

Pregunta: "Resume los últimos tickets de 10" o "¿Cuáles son los principales problemas de soporte esta semana?"

Explicar las características

Pregunta: "¿Cómo configuro la respuesta automática?" o "¿Qué significa la tarjeta de tasa de rebote?"

Ejecutar acciones

Pregunte: "Crear un ticket para [email protected] ¿Tienes dudas sobre la facturación?" o "Cerrar ticket"12345"

Consultas de plataforma

Pregunte: "¿Cuántos visitantes recibimos ayer?" o "¿Qué ingresos tenemos este mes?"

Ejemplo de conversaciones

Buscar a un cliente

Escenario:
Admin asks: "Find customer [email protected] and show me their recent activity"
Qué hacer:

La IA busca al cliente en todas las fuentes de datos conectadas: sesiones de visitantes, tickets, conversaciones de chat, pedidos y contactos de CRM, y devuelve un resumen de la actividad reciente con enlaces a cada elemento.

Obtener un resumen diario

Escenario:
Admin asks: "What happened today?"
Qué hacer:

La AI resume: "Hoy tuviste 245 Visitantes (hasta ) 12%), 8Nuevos billetes (3 resolvido por AI),2Nuevos pedidos por un total de $198, y1"Escalación de chat sobre un retraso en el envío."

Ejecutar una acción

Escenario:
Admin asks: "Change ticket T-5523 priority to Urgent"
Qué hacer:

La IA confirma: "Cambiaré la prioridad del ticket T-5523 de Normal a Urgente. Esto afectará al temporizador SLA. ¿Confirmar?" Usted confirma y se ejecuta la acción.

💡
La IA del administrador solo ejecuta acciones que están registradas en el Registro de Acciones, no puede inventar acciones o sistemas de acceso fuera de OpsIQ.
IA

Escenarios de IA del cliente

Esta sección cubre escenarios comunes de IA frente a clientes con el comportamiento esperado y consejos de entrenamiento.

IA del cliente
Escenarios de IA del clienteUna biblioteca de preguntas del cliente emparejadas con el comportamiento esperado de la IA y una etiqueta de resultado para cada una.Escenarios de IA del clienteespacio de trabajoBiblioteca Escenario · comportamiento esperado de AI"¿Dónde está mi pedido?"Busque el pedido a través del conector, dé seguimientoResolver"Quiero un reembolso"Reconocimiento, nunca prometer · mano a un humanoHandoff"¿Está el servicio abajo?"Compruebe el estado, informe del estado actualEstado"Cancelar mi cuenta"Confirme la intención y luego envíela a un humanoConfirmar1SCENARIOSPreguntas comunes2EXPECTEDCómo debería responder la IA3TESTEncuentre brechas de capacitación
Una biblioteca de preguntas reales del cliente y exactamente cómo la AI debe manejar cada uno, para probar su entrenamiento y encontrar lagunas.

Biblioteca de escenarios

Consulta de estado del pedido

Escenario:
Customer: "Where is my order #12345?"
Qué hacer:

Comportamiento esperado de la IA: (1) Busque el pedido a través del conector de la plataforma. (2) Informe el estado actual (procesamiento, enviado, entregado).3) Incluya el número de seguimiento si está disponible.4) Si el pedido se retrasa, reconozca y proporcione un cronograma estimado. (5) Nunca invente la información de seguimiento.

Solicitud de restablecimiento de contraseña

Escenario:
Customer: "I forgot my password and cannot log in"
Qué hacer:

Comportamiento esperado de la IA: (1) Proporcione los pasos para restablecer la contraseña de la base de conocimientos. (2) Incluya el enlace de restablecimiento o la ruta de la página. (3) Mencione que el correo electrónico de restablecimiento puede tardar unos minutos. (4) Sugiere revisar la carpeta de spam. (5) Si el cliente aún no puede restablecer, escalar a un humano.

Solicitud de característica

Escenario:
Customer: "Can you add dark mode to the mobile app?"
Qué hacer:

Comportamiento esperado de la IA: (1Gracias por la sugerencia.2) Explicar cómo se manejan las solicitudes de características (registradas, revisadas, priorizadas).3) NO prometa que la característica será construida. (4) Si existe una característica similar, menciónela.

Disputa de facturación

Escenario:
Customer: "I was charged but my service is not working"
Qué hacer:

Comportamiento esperado de la IA: (1) Reconozca la frustración. (2) Compruebe el estado del servicio si es posible. (3) Escalar al departamento de facturación con todos los detalles. (4) NO prometa un reembolso. (5) Establezca la prioridad del ticket en Alta.

Pregunta fuera de tema

Escenario:
Customer: "What is the weather like in London today?"
Qué hacer:

Comportamiento esperado de la IA: (1"Soy su asistente de soporte [de la empresa] y puedo ayudarle con preguntas sobre nuestros productos y servicios. Para obtener información meteorológica, pruebe un servicio meteorológico".2) Pregunte si tienen una pregunta sobre el producto.

¿Cómo puedo probar el comportamiento de IA del cliente?+

Abre tu sitio web en un navegador privado/de incógnito y chatea con la IA como cliente. Prueba preguntas comunes, casos extremos y escenarios adversarios. Comprueba que la IA sigue tus reglas de prompt y usa el contenido de la base de conocimiento correctamente.

IA

Base de conocimientos sobre IA

La base de conocimientos es una biblioteca de artículos que la IA utiliza para responder a las preguntas: cuando un cliente hace una pregunta, la IA busca en la base de datos los artículos relevantes y los usa para generar una respuesta precisa y fundamentada.

Base de conocimientos
Base de conocimientosLas fuentes se alimentan en una tienda de conocimiento, luego una IA genera una respuesta fundamentada y citada.Base de conocimientosespacio de trabajoFuentesRastreo de sitio webArtículos de ayudaPreguntas frecuentesDocumentos importadosConocimientosSemántica + palabra claveIARespuesta motivadacon una fuente citada."Los reembolsos toman 3–51-3 días laborables."1INGESTRastreo, FAQ, importación2RETRIEVESemántica + palabra clave3GROUNDEDRespuestas de tu contenido
Rastree su sitio e importe documentos a la base de conocimientos; la IA recupera las piezas y respuestas correctas, fundamentadas y citadas.

Cómo funciona

1
El cliente hace una pregunta

"¿Cuál es su política de devolución?"

2
La IA busca en la base de conocimientos

OpsIQ encuentra el artículo "Política de devolución" haciendo coincidir las palabras clave y el significado semántico.

3
La IA genera una respuesta

La IA lee el artículo y escribe una respuesta en lenguaje natural basada en el contenido del artículo.

4
El cliente obtiene una respuesta precisa

La respuesta se basa en su política real, no en los datos generales de entrenamiento de la IA.

Crear buenos artículos

Un tema por artículo

Escribe un artículo separado para cada tema: política de devoluciones, tarifas de envío, configuración de la cuenta, restablecimiento de contraseña. No combines temas no relacionados.

Escribe como un FAQ

Comienza con la pregunta que hacen los clientes y luego proporciona la respuesta, lo cual ayuda a la IA a relacionar las preguntas con los artículos.

Sé específico

"Las devoluciones se deben iniciar dentro de los 30 días posteriores a la entrega" es mejor que "Tenemos una política de devolución".

Incluir casos de borde

¿Qué pasa con las devoluciones internacionales?, ¿qué pasa con los productos digitales?, y qué pasa con artículos comprados en rebajas?

Mantenerlo actualizado

Revise los artículos trimestralmente. Elimine la información desactualizada. Actualice los precios, las políticas y los procedimientos cuando cambien.

Artículos de inicio que debería escribir

Envío y entrega

Costos de envío, plazos de entrega, seguimiento, envíos internacionales y retrasos en la manipulación.

Devoluciones y reembolsos

Ventana de devolución, condiciones, proceso, cronograma de reembolso y excepciones.

Gestión de cuentas

Restablecimiento de contraseña, cambio de correo electrónico, eliminación de cuenta y exportación de datos.

Precios y facturación

Descripciones de plan, ciclo de facturación, métodos de pago, facturas y moneda.

Guías de productos

Cómo usar cada producto o función. Instrucciones paso a paso con capturas de pantalla.

Solución de problemas

Problemas comunes y soluciones. Mensajes de error y sus correcciones.

Información de contacto

Horario de atención, canales de soporte, tiempos de respuesta y rutas de escalada.

Legal y cumplimiento

Resumen de la política de privacidad, resumen de los términos del servicio, solicitudes de datos GDPR.

Conocimiento del conector

Cada conector puede contribuir con conocimientos a la IA. Cuando se habilita un conector, sus artículos de conocimiento integrados (catálogo de productos, preguntas frecuentes y solución de problemas específicos de plataforma) están disponibles automáticamente para la IA, pero puedes cambiar el modo en que se muestran los conocimiento de cada conector en la configuración del conector.

Presupuesto de tokens

La base de conocimientos tiene un límite configurable (predeterminado: tokens 32,000) que controla la cantidad de contexto de coñecemento enviada a la IA por conversación. Si tu base de datos es muy grande, la IA selecciona los artículos más relevantes dentro de este presupuesto. Aumenta el límite si la IA no está encontrando artículos relevantes; disminuyelo si quieres reducir los costos de tokens.

¿Cuántos artículos debo tener?+

Comience con.5-10 Añada más a medida que identifique las lagunas mediante el historial de IA y la información sobre IA. La mayoría de los negocios necesitan 20-50 Artículos para una cobertura completa.

¿Puedo importar artículos de otro sistema?+

Actualmente, los artículos se crean manualmente en OpsIQ Puede copiar y pegar contenido de preguntas frecuentes existentes, centros de ayuda o documentos.

¿En qué formato deben estar los artículos?+

El texto sin formato funciona mejor, ya que la IA entiende el lenguaje natural mejor que los HTML estructurados o los códigos de marcación. Escribe como le explicarías a un cliente.

IA

Evaluación de IA y Watchtower

Los conjuntos de evaluación convierten las preguntas críticas del cliente en pruebas repetibles para la calidad de respuesta, citaciones, escalamiento y seguridad de acción.

Pantalla de producto
Evaluación de IALa evaluación de IA enumera casos de prueba dorados, comportamientos requeridos, resultados más recientes y ejecuciones programadas de Watchtower.Evaluación de IAespacio de trabajoSETS6CASES84PASS RATE96%VISTA DE ESPACIO DE TRABAJO EN DIRECTOPolítica de envíoSe requiere citaciónPaseSolicitud de reembolsoSe requiere confirmación humanaPaseReclamación no justificadaAcción prohibidaPaseCuestión de la migraciónFalta la fuente esperadaArchivo1CREATE CASESEntrada y reglas doradas2RUN SAFELYPrueba en seco o evaluación en vivo3WATCHPrograme diariamente o semanalmente
La evaluación de IA enumera casos de prueba dorados, comportamientos requeridos, resultados más recientes y ejecuciones programadas de Watchtower.

Los administradores completos pueden crear conjuntos de evaluación con un mensaje, etiquetas de fuente esperadas, citas requeridas, reglas de confirmación humana, expectativas de escalamiento y acciones prohibidas. Ejecute un conjunto directamente, ejecútelo en seco o repita el historial seleccionado.

Atalaya Programa comprobaciones diarias o semanales a través de cron y ejecuta un número limitado de casos (hasta ocho por paso programado) Revisa los fallos junto con el proveedor / modelo, la versión del prompt, la edición del conocimiento, las acciones propuestas y el costo antes de cambiar el comportamiento de producción.

IA

Idiomas y traducción

Idiomas gestiona el texto traducido dirigido al cliente y el comportamiento utilizado cuando OpsIQ sigue un idioma del cliente.

Pantalla de producto
IdiomasLa página Idiomas muestra el idioma de origen, los idiomas traducidos, el estado borrador/activo y el comportamiento del idioma del cliente.Idiomasespacio de trabajoFUENTEInglésLANGUAGES4VIVE3VISTA DE ESPACIO DE TRABAJO EN DIRECTOFrancésInterfaz y contenidoEn vivoAlemánInterfaz y contenidoEn vivoEspañolProyecto de traducciónBorradorSiga al clienteResponder en el idioma detectadoEncendido1SET SOURCEIdioma original del operador2ADD LANGUAGETraducir en segundo plano3PUBLISHProyecto o en vivo
La página Idiomas muestra el idioma de origen, los idiomas traducidos, el estado borrador/activo y el comportamiento del idioma del cliente.

OpsIQ Establezca el idioma de origen correctamente antes de crear traducciones, agregue los idiomas de destino y revise los borradores antes de publicarlos. La opción “Seguir el idioma del cliente” controla el lenguaje de respuesta; traduciendo la interfaz del widget se controlan sus botones, etiquetas y texto del sistema.

No confíe en la traducción automática para textos legales, de reembolso o de seguridad sin una revisión humana.

Cada lugar que contiene su propia redacción se enumera con su conteo de mensajes: mensajes de chat del cliente, promociones, mensajes proactivos, flujos de chat, visitas guiadas, anuncios, burbujas de teaser y más. Encuestas y formulariosLa superficie de la encuesta cubre cada encuesta publicada por completo: título, todas las preguntas, todas los opciones de respuesta, botones, copia de bienvenida y agradecimiento, página de cromo y páginas de resultados. Las teclas están vinculadas al ID de la pregunta y el valor de opción, por lo que reordenar preguntas u opciones nunca pierde una traducción, y cambiar la redacción de un mensaje vuelve a traducir solo ese mensaje.

La encuesta por correo electrónico después del chat sigue el idioma en que ha chateado realmente el visitante, siempre y cuando ese idioma sea uno de los que ofreces aquí; de lo contrario, utiliza el idioma de tu sistema. Sus seis campos editables también se traducen en esta página, y el comportamiento tiene su propio interruptor en la configuración del Chat del cliente.

Mensajes de tickets y portal cubre el tipo de operadores de texto fijo una vez y cada cliente recibe en ese idioma: el recibo del ticket, las confirmaciones abiertas, cerradas y retroalimentaciones, los signos por partida y la línea de bienvenida portal. (La AI auto-reply no necesita nada de esto, ya responde en el lenguaje del cliente.) Envíe correos electrónicos a sus clientes en su propio idioma habilitado en OpsIQ Escribir, enviar un correo electrónico resuelve el idioma del destinatario en este orden: el idioma que escogieron en el portal o Centro de Ayuda (carried on the ticket), el locale en su registro de contacto, luego el lenguaje que escribieron, detectado localmente por scripts y palabras marcadores, sin llamada externa. Sólo los idiomas seleccionados en la página Idiomas se utilizan siempre, así que la función está inerte hasta que se añadan los idiomas. HTML El envoltorio de correo electrónico no se traduce deliberadamente: es marcado, no prosa. Correo electrónico que hace frente al personal (notificaciones, alertas del departamento, informes analistas, informes programados, el digest semanal) siempre utiliza el lenguaje del sistema.

Soporte

Centro de ayuda

Tu Centro de ayuda es un sitio de autoayuda creado a partir de los artículos que publicas. Los clientes pueden leerlo y buscar en su propia página pública, así como dentro del widget de chat, para encontrar respuestas por sí mismos antes de abrir una conversación. Todo lo que contiene proviene de tu base de conocimientos, por lo que el mismo contenido que sustenta tu IA también alimenta tu ayuda pública.

Donde lo ven tus clientes

Su propia página pública

Un sitio de ayuda limpio y buscable en /help.php. Los clientes pueden navegar por categorías, buscar y abrir cualquier artículo que quieran, dándole su propio nombre y estilo.

Dentro del widget de chat

Un enlace de ayuda en el widget del chat para que los clientes puedan buscar tus artículos sin salir del chat y, si aún necesitan una persona, están a un toque de iniciar una conversación.

Enciéndelo

1
Abrir la página del Centro de ayuda

Ir a la página Config, then Help Center Ingresa a tu cuenta de administrador y enciéndela Habilitar el Centro de ayuda público.

2
Dale un nombre y una mirada

Establezca el nombre del Centro de ayuda, que se muestra en la cabecera y en la pestaña del navegador, y seleccione un estilo visual. Puede desactivar la navegación superior para tener una página limpia sin menús.

3
Publicar algunos artículos

No se muestra nada hasta que publicas artículos en él. La siguiente parte cubre cómo hacerlo.

Publicar artículos en el Centro de ayuda

Los artículos se encuentran en tu base de conocimiento. Un artículo aparece en el Centro de ayuda una vez que se publica y marca como público, lo cual puedes hacer de varias maneras:

Publicar un artículo

Abre el artículo, márcalo como publicado y activa la opción para mostrarlo en el Centro de ayuda.

Publica todo a la vez

Utilice el Publicar todo Haga clic en el botón para enviar todo su conjunto publicado al Centro de ayuda con un solo clic, en lugar de hacerlo uno a la vez.

Convierte las preguntas frecuentes en artículos

¿Ya tienes preguntas frecuentes? Uso Publicar todo para ayudar para convertirlos en artículos de ayuda, así que se sientan junto a todo lo demás.

Importar una base de conocimientos existente

¿Se está trasladando de otro help desk? Importación de KB El botón de la pestaña Artículos te trae una base de conocimiento existente, que puedes apuntar a tu contenido de tres maneras:

Pegar un URL

Si el motor de búsqueda reconoce la plataforma (por ejemplo, Zendesk), lee el árbol de categorías exacto de esa plataforma. De lo contrario, rastrea el sitio y reconstruye la estructura a partir de las páginas, importando solo los artículos reales y omitiendo las páginas de inicio de sesión, precios y contacto.

Elige una aplicación conectada

Si una plataforma ya está conectada a este espacio de trabajo y tiene una base de conocimientos, se muestra en un menú desplegable debajo Importar desde una aplicación conectada. Selecciona la aplicación e importa, no se necesitan URL ni contraseña La aplicación solo aparece una vez que está conectada y configurada.

Subir un CSV

¿No tienes un sitio en vivo al que apuntar? title, category, y body 10 columnas. Poner Parent / Child En la columna de categorías para crear categorías anidadas.

De cualquier manera que elijas, obtienes un Ver vista previa primero: los artículos que encontró, agrupados por categoría, cada uno con una casilla de verificación para que pueda eliminar cualquier cosa que no desee. Nada se guarda hasta que haga clic en Importar. Deshacer Importar todo en un solo clic, o Re-sincronización Puedes usar una importación URL o de aplicación conectada más tarde para importar artículos nuevos y modificados.

💡
Desarrolladores: cualquier conector puede anunciar su base de conocimientos en este menú desplegable declarando un kb_capabilities Bloque en su settings.json (tipo kb_source, con un adapter y a base_templateConsulte la sección Conectores y la referencia de conector de plataforma.

Organizar con IA

Un centro de ayuda ordenado es fácil de navegar y más fácil de buscar. Organizar con IA El botón de ordenación hace el trabajo por ti. Con un solo clic lee tus artículos publicados, los clasifica en categorías sensibles y añade etiquetas. Crea una categoría cuando la necesita, reutiliza una categoría que ya cabe y omite cualquier cosa que hayas organizado previamente, para que puedas ejecutarlo nuevamente cada vez que agregues nuevos artículos. Deja que la IA se organice en subcategorías en la configuración del Centro de ayuda y también puede archivar artículos bajo Parent / Child Categorías, lo cual es útil justo después de importar una base de conocimientos que tenía subsecciones.

💡
Las categorías permiten a los clientes navegar por el contenido, y las etiquetas perfeccionan la búsqueda tanto en la página pública como en el widget. Puedes cambiar el nombre o mover cosas después de que hayas terminado de crear tu sitio web, ya que la IA te da un punto de partida sólido, no una configuración con la que te quedes atascado.

El Centro de ayuda dentro del widget de chat

Puedes mostrar el Centro de ayuda directamente dentro del widget de chat para que los usuarios busquen respuestas antes de enviarte un mensaje. En la configuración del widget, elige dónde aparecerá el enlace de ayuda:

En el encabezado

Un pequeño icono de ayuda en la parte superior del widget.

En la parte inferior

Un enlace de texto debajo del cuadro de mensaje, por ejemplo "Explorar el centro de ayuda", que puedes cambiar.

En ambos lugares

Muéstralo en el encabezado y en la parte inferior para obtener más visibilidad.

El enlace de ayuda tiene su propio control de color en la configuración del widget Apariencia. Ninguno para que coincida con el color de su lanzador, o elegir un Sólido Color o un DegradadoToda la experiencia de ayuda sigue el tema del widget, por lo que siempre se ve como parte de tu marca.

Pon tu centro de ayuda en tu propia dirección web

Su centro de ayuda ya tiene una dirección propia limpia y compartible (por ejemplo, /help/your-help-centerPuedes ir un paso más allá y servirlo bajo tu mesa. Tu propio dominio, por lo que los clientes y motores de búsqueda lo ven como parte de su marca, por ejemplo yourdomain.com/help o help.yourdomain.comTodo sigue funcionando en tu dominio: enlaces, imágenes, búsqueda y las valoraciones de los artículos.

Bajo tu sitio principal

En Configuración, luego Centro de ayuda, abrir el Incrustar pestaña y encuentra "Mostrar tu centro de ayuda en tu propia dirección web".Cloudflare, Nginx o Apache), copiar el bloque listo y pegarlo en su sitio. Cada opción tiene una Guía de configuración Haga clic en el botón junto a él con los pasos exactos.

En un subdominio

Prefiera help.yourdomain.com? El mismo panel tiene una opción de subdominio. En Cloudflare un subdomnio es la ruta más confiable, y le da una dirección limpia sin nada después de ella.

💡
Usando Cloudflare? Solo ejecuta su Worker en una dirección que es un proxy a través de Cloudflare Su dominio principal a menudo apunta directamente a su sitio web, por lo que una regla colocada en el dominio central no puede hacer nada silenciosamente. La forma más confiable es un subdominio proxy como help.yourdomain.com. La guía de configuración te lleva a través de la DNS grabar y la ruta.
Bien porSEO. Una vez que su centro de ayuda está en su propio dominio, los motores de búsqueda indexan sus artículos bajo su marca. Cada página declara su dirección correcta y el mapa del sitio las lista, por lo que el mismo artículo nunca se indienta dos veces.
💡
En la configuración del widget de chat, en "Abrir en el centro de ayuda", establezca Donde va el enlace a Su propio dominio de centro de ayuda Entonces, esos enlaces de artículo se abrirán en tu dominio también, no en la dirección OpsIQ.

Vea cómo está funcionando todo su centro de ayuda

Más allá de las votaciones por artículo, el Centro de ayuda tiene su propia analytics. Enciende en los ajustes de Centro de Ayuda y registra silenciosamente cómo la gente utiliza su ayuda: los artículos más vistos, lo que buscan y las búsquedas que volvieron vacías (una lista de escritura lista para escribir), trabajando por país de visitantes y dispositivo por sí solo, así que no necesita el widget de chat instalado para informar. both Los widgets de ayuda muestran los lugares donde aparece tu ayuda, la página pública y la ayuda en el widget, así como combinados, para que puedas ver cuánto se usa cada uno.

💡
El análisis permanece desactivado hasta que lo activas, y puedes hacer que las direcciones de los visitantes IP sean anónimas. Nada se registra antes de que optes por participar.

Elige lo que aparece en cada parte de la página

Cada sección del Centro de Ayuda (las categorías en la página principal, los artículos populares, la lista de artículos en una página de categoría y más) tiene su propia regla simple. Para cada uno puede mostrar o ocultarlo, y mostrar all Artículos, a Número de conjunto, el más reciente, o solo los que usted feature Cuando una regla termina una lista, los clientes siguen recibiendo un enlace "Mostrar todo", por lo que nada está realmente fuera de su alcance.

Usted también decide cómo se ven los votos útiles: ocultos, una relación amigable como "12 de 2013 14 Un ajuste de votos mínimos evita que un artículo nuevo muestre una imagen incómoda, como "0de 20130".

Ver qué artículos están funcionando

Cada artículo muestra un ¿Fue útil esta información? Cada sí o no se cuenta por artículo, así que puedes ver de un vistazo qué artículos responden bien a las preguntas y cuáles necesitan ser reescritos. Los votos repetidos del mismo visitante son ignorados, para que los conteos permanezcan honestos.

Texto y etiquetas

Puedes cambiar los encabezados y las etiquetas del Centro de ayuda para que coincidan con tu voz, deja cualquier campo en blanco y volverá a un valor predeterminado razonable, por lo que solo editas el texto que realmente quieres cambiar.

El Centro de ayuda comparte una biblioteca con tu IA, y cada artículo que publiques aquí es el mismo contenido que la IA usa para responder a los chats y tickets.

Preguntas comunes

¿Necesito escribir contenido por separado para el Centro de ayuda?+

No, se construye a partir de los mismos artículos de la base de conocimiento que ya utiliza la IA. Publica un artículo una vez y puede servir para ambos.

¿Puedo mantener algunos artículos internos?+

Sí. Solo los artículos que publique y marque como públicos aparecerán en el Centro de ayuda, pero no se mostrará nada que no haya publicado.

¿Podrán los clientes seguir contactando con una persona?+

El enlace de ayuda del widget está a un toque de distancia para iniciar una conversación, por lo que el autoservicio nunca atrapa a nadie.

Crecimiento & SEO

Inteligencia del sitio (suite SEO)

Site Intelligence es OpsIQ incorpora SEO y suite de visibilidad de búsqueda. Recorra su sitio como un motor de búsqueda, pistas donde usted clasifica, investiga palabras clave, relojes backlinks y competidores, escanea su presencia del mapa local, verifica la velocidad de página y lo convierte en informes listos para el cliente, con un analista de inteligencia que explica qué arreglar y puede redactar los mezclados.

Inteligencia del Sitio
Panel de inteligencia del sitioUn panel de SEO que muestra una puntuación de salud del sitio, seguimiento de posicionamiento de palabras clave y tendencias de tráfico.Inteligencia del Sitioyoursite.com86SALUD DEL SITIO3 cuestiones críticasSeguimiento del ranking de palabras claveServicio de asistencia#3Chat en vivo#7CRM para agencias#12Clics orgánicos1CRAWLEncuentra problemas técnicos2TRACKRankings, palabras claves, backlinks3Analista de IAExplica y redacta correcciones
El sitio de inteligencia: una puntuación de la salud del sitio desde el último gate, seguimiento en vivo de las palabras claves, una tendencia de clics orgánicos y el bucle de tres pasos: arrastrar, rastrear, dejar que la AI redacte los arreglos.

Correr un rastreo · empezar aquí

Un rastreo es OpsIQ visitando sus páginas de la manera en que lo haría un motor de búsqueda, para encontrar problemas técnicos: enlaces rotos, títulos faltantes, contenido fino, páginas lentas, problemas de indexación.

1
Comience el rastreo

En la vista general, haz clic para iniciar un rastreo. OpsIQ lo pone en cola y trabaja a través de tus páginas en segundo plano. Un indicador de estado muestra el progreso.

2
Lea los informes

Cuando termine, abra los problemas y la lista de páginas. Cada problema está agrupado por gravedad para que pueda abordar primero las victorias más grandes.

3
Deje que la IA le ayude

El analista de AI produce un informe en lenguaje claro sobre lo que es incorrecto y por qué importa, y puede generar correcciones sugeridas que usted revisa antes de aplicar.

Qué rastrea Site Intelligence

Rastreos y salud del sitio

Analiza tus páginas en busca de problemas técnicos de SEO y enumera cada página con sus problemas. Reejecuta en cualquier momento, o programalo.

Seguimiento de Rank

Añade las palabras clave que te interesan; OpsIQ comprueba dónde se encuentra tu sitio y realiza un seguimiento de los movimientos a lo largo del tiempo.

Investigación de palabras clave

Descubre nuevas ideas de palabras clave a las que dirigirte, con el entrenador de palabras principales de IA para ayudarte a priorizar.

Enlaces de retorno

Ve quién te enlaza, actualiza la lista y rechaza los enlaces que no quieres asociar con tu sitio.

Competidores

Añade dominios de la competencia y compara tu visibilidad con la de ellos, con un análisis de IA de competidores.

Cuadrícula local (mapa)

Escanea la visibilidad de tu perfil local en una cuadrícula geográfica para ver dónde apareces en el mapa, además de las herramientas del Perfil Empresarial de Google.

Velocidad de página

Ejecuta comprobaciones de velocidad de página para poder corregir páginas lentas que perjudican los rankings y las conversiones.

Contenido de AI

Generar resúmenes de contenido y borradores dirigidos a las palabras clave que estás segmentando.

Informes

Cree informes imprimibles y listos para el cliente de todo lo anterior.

Conecta Google para obtener datos precisos

Dos conectores de Google convierten estimaciones en números reales:

Google Search Console

Buscar

Obtenga los informes exactos de consultas, clics e impresiones que Google genera para su sitio web, mapee su propiedad y descubra oportunidades de posicionamiento directamente desde los datos propios de Google.

Google Analytics 4

Tráfico

Combina los datos de tráfico y participación con tus datos SEO para que los informes muestren la visibilidad y el comportamiento juntos.

Actualizaciones programadas e informes de marca blanca

Usted no tiene que ejecutar todo a mano. Refrescos programados re-run gates, cheques de rango, chequeos de palabras clave, refrescos backlink, escaneos locales-grid y generación de reportes en una cadencia (de forma diaria o semanal dependiendo del plan y volumen). OpsIQ cron, vea la sección Cron y automatización. Informes generados exportan como documentos impresos y listos para el cliente: las agencias envían a cada cliente una actualización SEO regular, y porque los datos de cada dominio son separados, cada cliente sólo ve su propio.

Algunas características de Inteligencia del Sitio llaman proveedores de datos externos y AI a través OpsIQ's proveedor configurado. Funcionan fuera de la caja cuando la suite está habilitada para su plan. Si una actualización no funciona, confirme el OpsIQ cron se ejecuta (ver Cron y automatización).
¿Necesito añadir algo a mi sitio para el seguimiento SEO?+

Para obtener datos exactos de tráfico y búsqueda, conecte Google Search Console a GA4 para que pueda rastrear su sitio web y analizar sus resultados.

¿Puedo hacer un seguimiento de más de un dominio?+

Añade cada dominio por separado; sus rastreos, clasificaciones e informes permanecen completamente aislados entre sí.

¿Con qué frecuencia debo gatear?+

Una vez a la semana es suficiente para la mayoría de los sitios; haz un rastreo bajo demanda después de un gran cambio en el contenido o la estructura.

Crecimiento & SEO

Auto-Implementación (SEO Agent)

Auto-Implement es la parte de Site Intelligence que realmente aplica las correcciones que el analista de gate y AI recomienda, en lugar de sólo aconsejarle. El agente trabaja estrictamente de lo que ya encontró Site Intelligence (nunca puede inventar un cambio) y camina cada fijado a través del mismo bucle seguro: una vista previa de funcionamiento seco, su aprobación por paso, la escritura en vivo, una instantánea automática, y una re-rockwl que demuestra el número abierto de A

Implementación automática
Agente SEO de implementación automáticaUn flujo que muestra las correcciones SEO recomendadas pasando por la vista previa, aprobación y una escritura en vivo, con un nuevo rastreo de prueba.Implementación automáticayoursite.comSoluciones recomendadasAdd missing <title>aprobadoCorregir el archivo robots. txtaprobadoEnviar mapa del sitio.xmlreviewPREVISION DE UNA CURSA EN SECO (DIFF)+ <title>AI Helpdesk - OpsIQ</title>+ <meta name=description ...>- <title>Home</title>AprobarNaveDEMUÉSTRALO - RE-CRAWLCuestiones abiertas 124Instantánea guardada1PREVISTAEjecución en seco de cada corrección2APROBA & EscribeSSH o alojados API3Prueba & RevertirRe-rastreo + instantánea
Cómo funciona una sesión: el agente enumera las correcciones que ya se recomienda Inteligencia del Sitio, muestra un diff de funcionamiento seco de cada uno, aplica los que aprueba sobreSSHo un anfitriónAPI, instantáneas antes de cada escritura, y re-crawls para probar que el conteo de entrada abierta cayó.

Lo que puede cambiar

El agente solo aplica las correcciones que Site Intelligence (o el analista de IA) ya ha recomendado para ese dominio, y no las que se han encontrado en otras plataformas.

Configuración del servidor

sitemap.xml, robots. txt y redirección, reglas canónicas y de encabezado en. htaccess (Apache / LiteSpeed) o la configuración de nginx.

Cadenas de redirección

Colapsa una cadena de redireccionamiento multi-salto hasta un solo salto directo al URL final, dentro del mismo bloque. htaccess administrado, por lo que la velocidad y el valor del enlace dejan de filtrarse a través de los saltos adicionales.

Page <head>

Títulos de página, metadescripciones, etiquetas canónicas y bloques de datos estructurados (esquema) que faltan o son débiles.

WordPressSEO

Yoast, Rank Math y SEOPress títulos &quot; meta, e imagen texto alt, aplicado a través de WP-CLI en elSSHel camino o la RESTAPIen el camino alojado.

WordPress datos estructurados

Adds JSON-LD (schema) a las páginas que no lo tienen. En el SSH En la ruta alojada, un pequeño ayudante administrado (un plugin que debes usar) imprime el marcado para que funcione con o sin un plugin SEO; en la ruta alojada, tu plugin SEO lo lleva.

Enlaces internos de la página

Añade un enlace interno relevante dentro del contenido existente de WordPress para rescatar páginas huérfanas y conectar publicaciones relacionadas. Un enlace por página, nunca dentro de un encabezado, un enlace existente o un código corto, y siempre aprobado por usted primero.

Reescrituras de contenido de página delgada

Crea borradores de contenido completo para páginas finas (activado por una opción de rastreo, ver más abajo) Cada borrador es revisado y aprobado por usted antes de que se publique algo, y el contenido antiguo se mantiene para que pueda ser restaurado.

Caché de página (WordPress)

Activa el almacenamiento en caché de páginas W3 Total Cache cuando el rastreo encuentra problemas de velocidad y ese plugin está instalado, por lo que las páginas se sirven más rápido.

ShopifySEO

Títulos y descripciones SEO de productos y colecciones, SEO de páginas y artículos de blog, más 301 Redirige, a través de la. Shopify Administrador API.

WebflowSEO

Título SEO por página y meta descripción a través del. Webflow Datos API v2.

Preparar las correcciones automáticamente (dos opciones de rastreo)

El panel Configurar inteligencia del sitio para un dominio (su configuración de rastreo) tiene dos opciones que deciden cuánto el agente se alinea por usted con anticipación. Ambas están desactivadas de forma predeterminada y ambas usan crédito de IA, por lo que solo las activa cuando desea que ese trabajo se haga por ustede.

Preparación automática de correcciones de IA después de cada rastreo

Cada rastreo también escribe el contenido concreto de la corrección (títulos, metadescripciones, texto alternativo, esquema, redirecciones) para lo que encontró, por lo que las correcciones están listas para revisar y aplicarse en el momento en que finaliza el rastreos en lugar de generarse más tarde bajo demanda.

Reescritura de contenido por IA (páginas finas)

El agente puede redactar contenido de reemplazo completo para páginas delgadas. Nada se publica nunca por sí solo: cada borrador aparece como un cambio que revisa lado a lado y aprueba o rechaza, el contenido anterior se mantiene para que sea reversible, y está limitado a unas pocas páginas por pase.

💡
Cada cambio sigue pasando por el mismo proceso de aprobación paso a paso, instantánea y reversión que cualquier otra corrección, así que activarlas nunca pone nada en vivo por sí solo.

Dos maneras de conectar

SSH / SFTP ruta

Autogestionados

Para los sitios en su propio servidor, el agente se conecta a través de SSH/SFTP Utiliza las credenciales que almacenas, edita la configuración del servidor y los archivos de paginación directamente, y ejecuta WP-CLI para. WordPress. Mejor cuando tienes acceso a shell y quieres control total de los archivos.

Hosted-API ruta (no SSH)

Sin shell

Para plataformas que no permiten SSH, el agente trabaja enteramente a través de un funcionario API conector, WordPress (REST + Contraseñas de Aplicación), Webflow (Data)API v2) y Shopify (Admin API). Nada se instala en el host.

💡
Wix y Squarespace no tienen un API público de SEO-write, así que en esas plataformas Auto-Implement se ejecuta en modo asesor: te muestra el cambio exacto que hay que hacer (el título preciso, meta o configuración) para que lo apliques manualmente. Todo lo demás es de solo lectura y seguro.

Encienda los conectores

El agente llega a cada plataforma a través de un conector:

Construido en

Shopify y WordPress barco de conexión con OpsIQ, sólo habilitarlos bajo Connectors y añadir las credenciales de la tienda / sitio.

Desde el Marketplace

Webflow, Wix y Squarespace se instalan desde Conectores → Marketplace, luego conéctate de la misma manera.

Cómo se ejecuta una sesión

1
Elige las soluciones

Abre la opción de implementación automática (cohete) en la sección Site Intelligence, que muestra los problemas que ya ha encontrado Site Intelligence y que puede corregir en este dominio.

2
Vista previa de cada cambio

Para cada solución el agente muestra un diff de funcionamiento seco (exactamente lo que escribirá) antes de cualquier cosa toca el sitio en vivo.

3
Aprueba paso a paso

Usted aprueba (o omite) cada cambio individualmente, y nada se aplica sin su aprobación explícita en ese paso.

4
Escribe, luego toma instantáneas

Con la aprobación el agente hace que el cambio en vivo sobreSSHo el anfitriónAPIy guarda una instantánea primero, así que cualquier cambio puede ser removido.

5
Demuéstralo, vive

A medida que aplica cada cambio, el agente vuelve a comprobar inmediatamente esa página exacta y muestra un veredicto de “corrección en vivo” paso a paso. Así puedes ver cómo cada corrección llega a la página activa mientras sucede. Al final, vuelve al sitio completo y confirma que se ha reducido el número de problemas abiertos.

Seguridad & facturación

Solo SEO

El agente sólo puede hacer lo que Site Intelligence recomendó para ese dominio. No puede realizar cambios arbitrarios en su sitio o servidor.

Aprobación por pasos

Cada escritura se previsualiza como una diferencia y solo se aplica después de que apruebe ese paso específico.

Instantánea & rollback

Se guarda una instantánea antes de cada escritura, por lo que cualquier cambio puede revertirse.

Prueba en vivo por paso

Cada página modificada se vuelve a comprobar en el instante que se escribe y obtiene un veredicto de “corrección en vivo”, por lo que una corrección se confirma contra la página en vivo inmediatamente, no solo en el re-rastreo final.

El contenido nunca se publica automáticamente

Los enlaces internos y las reescrituras de contenido de página delgada tienen un mayor impacto, por lo que siempre se muestran para su aprobación y nunca se aplican automáticamente, independientemente del modo en el que se ejecute.

Solo IA gestionada

La implementación automática se ejecuta en IA administrada; está bloqueada cuando un espacio de trabajo utiliza sus propias claves (BYOK).

Facturación

AI tokens Bill normalmente como usted los utiliza, más una tarifa plana por uso por sesión de Auto-Implement, ambos extraídos del mismo crédito de la Administración-AI.

Habilite la implementación automática en la página de configuración de IA (tarjeta de implementación automatizada) y asegúrese de que el conector para su plataforma esté conectado primero.
¿Cambia algo sin preguntar?+

No, cada cambio se previsualiza como una comparación en prueba y solo se aplica después de que apruebe ese paso exacto. Se guarda una instantánea antes de cada escritura para que pueda revertirla.

¿Necesito acceso a SSH?+

No en WordPress, Shopify o Webflow. Esos trabajos a través de su funcionario APIs sin acceso a la concha. SSH es sólo uno de los dos caminos, usado cuando desea que el agente edite config servidor y archivos directamente en su propio servidor.

¿Cómo sé que funcionó?+

Después de aplicar las correcciones aprobadas, el agente vuelve a rastrear el sitio y muestra el recuento de problemas abiertos antes y después, para que pueda confirmar que las correciones han reducido los problemas.

¿Reescribirá o publicará el contenido de la página por sí mismo?+

No, las reescrituras de contenido con IA están desactivadas hasta que las activas en las opciones de rastreo. Están limitadas a unas pocas páginas finas por pasada y cada borrador se muestra para su aprobación lado a lado antes de publicarse.

¿Puedo usarlo con mis propias llaves de IA?+

No. La implementación automática solo es para IA administrada y está bloqueada bajo BYOK. Factura los tokens de IA normalmente más una tarifa fija por uso por sesión, con el mismo crédito de IA administrado.

Crecimiento & compromiso

Estudio de encuestas

Survey Studio es el espacio de trabajo para crear encuestas editables que se pueden entregar como una página independiente, un widget del sitio web o incrustar en línea. El producto actual también proporciona enlaces alojados, vistas previas de borradores firmados, invitaciones privadas, uso compartido de códigos QR, exploración de respuestas y análisis con alcance de encuesta.

⚠️
Límite actual versus objetivo: Conector Builder, la experiencia de creación y vista previa premium survey Survey Studio todavía necesita la arquitectura independiente de implementación múltiple, el token firmado de Survey Identity Gateway, el cableado de orientación/variables, el flujo de envío de CRM Outreach y los límites de registro/estado del proveedor propiedad de Survey. surveys.* API.

Crear una encuesta

1
Elige cómo la gente lo tomará

El asistente actual ofrece página y enlace independientes, widget de sitio web e incrustación en línea. El flujo de destino aprobado comienza con el tipo de encuesta y más tarde agrega correo electrónico CRM, enlace privado y implementaciones QR como opciones de primera clase.

2
Elige el propósito

Elija NPS, CSAT, CES, comentarios sobre el producto, post-compra, cancelación, incorporación, sitio web, evento, seminario web, soporte, lead/demostración, prueba, testimonio, investigación, empleado, admisión o comentarios generales.

3
Usar una plantilla completa o empezar en blanco

Al elegir una plantilla, se crea un borrador copiado: cambiar la encuesta no cambia el inicio ni ninguna otra encuesta.

4
Personalizar o Revisión rápida

Personalizar abre cada pregunta, diseño, comportamiento y control de entrega. La revisión rápida abre el mismo borrador en la comprobación final de la vista del cliente.

Opciones de entrega y comportamiento actual

Página independiente y enlace

Una página de marca responsiva con su propio URL. Utiliza invitaciones privadas y vencimiento cuando cada destinatario necesita un enlace controlado.

Widget del sitio web

El canal heredado migrado. Puede usar reglas de página, geografía, dispositivo, visitante, fecha, muestreo, tiempo de reutilización, visita y cuota. Todavía está respaldado por el puente de widget activo heredado mientras se crea la arquitectura de implementación.

Inserción en línea

Una encuesta adaptable que se coloca dentro de una página, portal, producto o centro de ayuda y no requiere Promotion Studio.

Correo electrónico

Hoy en día el estudio puede generar invitación HTML El envío de extremo a extremo desde los contactos/segmentos de CRM, con consentimiento, supresión, programación, reintento y correlación de respuestas, es el objetivo aprobado para la integración de CRM Outreach.

Diseño y vista previa empresariales

Las páginas de encuestas tienen temas y familias de diseño de página propiedad de Survey, controles adaptables, copia de bienvenida y finalización, y una vista previa del borrador firmado. La vista previa de diseñador es de ancho completo debajo del editor, no un riel lateral estrecho; utiliza el tiempo de ejecución real alojado en un marco aislado y admite anchos para escritorio, tableta y teléfono; el tráfico de vista previa no escribe respuestas ni análisis.

💡
Survey Studio es independiente de Promotion Studio, por lo que la orientación en tiempo de ejecución, la identidad, los activos, el procesamiento y las analíticas deben ser propiedad de Survey. El contenido promocional solo puede reutilizarse mediante una copia/importación explícita única que cree datos separados de la Encuesta; las ediciones posteriores de la Promoción no deben tener efecto alguno.

El producto de forma completa

Despliegues independientes

En vivo

Una encuesta puede tener versiones separadas de página, widget, incrustación, correo electrónico CRM, enlace privado y implementaciones QR, cada una con su propio estado, diseño, público y análisis. Cada encuesta se puede pausar, deshabilitar o eliminar.

CRM Alcance y campañas

En vivo

Cree una audiencia verificada a partir de segmentos de CRM y conectores compatibles con encuestas, congelala en una versión inmutable, emita una invitación firmada cada vez y envíela mediante el conector de correo electrónico saliente anclado con prueba de entrega por invitación.

Kit de campo y validación

En vivo

Deslizadores, elección de imagen, carga de archivo, firma, dirección, teléfono, encabezados y texto enriquecido, con longitud mínima / máxima, correo electrónico/URL/número preestablecidos, texto de error personalizado y parámetros URL por pregunta.

Lógica, fórmulas y resultados

En vivo

Grupos de condiciones AND/OR, reglas de ramificación, un motor de fórmula segura sobre las respuestas y bandas de puntuación que llevan su propia página de resultados: una prueba con puntuación aterriza en su veredicto.

Idioma, quiosco, precarga

En vivo

Un menú desplegable del idioma del visitante que muestra solo los idiomas con traducciones reales, modo quiosco para tabletas compartidas (objetivos más grandes, restablecimiento automático, sin redirecciones), un creador de enlaces precompletados y texto editable de pie de página e insignia segura.

Pruebas de versión A/B

En vivo

Publica una versión desafiante en cualquier implementación con división de tráfico. Los visitantes se asignan automáticamente, las respuestas se etiquetan con la versión que realmente se ha servido y la tabla comparativa muestra las respuesta, el tiempo de finalización y la puntuación media por versión.

Resumen semanal

En vivo

Un correo electrónico semanal con los últimos 7 días de KPIs de encuesta, las encuestas más ocupadas, el Pulso de comentarios y la última reunión informativa sobre IA, enviado a través del conector saliente anclado. Configurarlo en Centro de entrega, Automatización.

Gobernanza

En vivo

Las listas de acceso por encuesta restringen quién puede editar, publicar o eliminar una encuesta. La aprobación de publicación (cuatro ojos) requiere que un segundo administrador publique el borrador exacto; la edición restablece la aprobación.

Plataforma de desarrollador

En vivo

Contrato de conector 2.2, encuestas mecanografiadas* y actividades de retroalimentación* sobre api/v1, eventos de encuesta canónica.*, webhooks firmados duraderos con formatos de retransmisión de Slack y Hojas de cálculo de Google y una respuesta PDF export.

Crecimiento & compromiso

Análisis de encuestas y comentarios son productos diferentes

Survey Analytics explica cómo una encuesta está llegando a las personas y su rendimiento, mientras que Feedback explica lo que los clientes dijeron de todas las fuentes permitidas y qué debe hacer la empresa al respecto. Los dos productos se vinculan entre sí pero no comparten ni sobrescriben la verdad analítica.

Análisis de encuestas

Se ingresa desde la encuesta individual en Survey Studio, no desde la navegación lateral global. Mide elegibilidad, exposición, comportamiento de activación, inicios, finalización, abandono, fricción entre preguntas y ramas, tiempo, resultados de implementación/campaña/versión y confiabilidad en tiempo de ejecución.

Descripción general y bandeja de entrada

Un feed cronológico con permisos para respuestas de encuesta completadas, comentarios sobre widgets heredados, chat y CSAT de tickets, comentarios de respuesta a tickets, calificaciones de respuestas AI del cliente, votos útiles de la base de conocimientos y fuentes externas/personalizadas aprobadas.

Análisis de comentarios

Analiza el significado del cliente: tendencias de métricas originales, temas/temas, sentimiento, emoción, intención, urgencia, solicitudes, quejas, elogios, segmentos de viaje/producto/servicio/equipo, detractores y resultados en bucle cerrado.

Propiedad de los datos

Las respuestas de la encuesta siguen siendo autorizadas en el almacenamiento de la Encuesta. La retroalimentación almacena una referencia de origen reconstruible y señales derivadas, luego carga las pruebas permitidas bajo demanda.

⚠️
La página de comentarios actual todavía tiene un navegador de respuestas de encuesta y una bandeja de entrada de widget heredada independiente, y sus totales de IA aún no utilizan el modelo de origen normalizado completo. El diseño unificado de Descripción general / Bandeja de salida / Análisis / Fuentes e integridad es el objetivo de implementación.

NPS, CSAT, CES, estrellas, pulgares y utilidad deben siempre conservar su método original, escala, muestra, ventana de fecha y denominador; nunca se deben combinar en un promedio inexplicable.

Crecimiento & SEO

Estudio de Promociones

El Promotion Studio convierte su sitio web en un motor de conversión. Diseño pop-ups, banners, toboganes, barras top/bottom, tomas de pantalla completa, bloques inline e incluso redirecciones basadas en el país, luego mostrar el mensaje correcto al visitante adecuado en el momento oportuno. OpsIQ widget ya en su sitio, por lo que no hay nada extra para instalar. Usted diseña y ahorra campañas en cualquier momento; sólo muestran una vez que usted Publish ellos y el estudio se activa para su espacio de trabajo.

Estudio de Promociones
Diseñador de estudioUn diseñador de campañas visuales con una paleta de bloques, un pop-up en el lienzo y un panel de orientación.Promoción Studio - Diseñador de interioresBLOQUESxBienvenido, {first_name}!Obtén un 15% de descuento en tu primer pedidoSAVE15Reclamar mi cupónOBJETIVOPaísEE. UU., CADisparadorIntención de salidaDivisión A/B50 / 50Publicar1DISEÑOArrastre bloques al lienzo2OBJETIVOPaís, página, público3MEDIDAGanador A/B + información de IA
El diseñador visual: una paleta de bloques a la izquierda, tu campaña en el lienzo (aquí un pop-up de cupón personalizado usando un token {first_name}), y el panel de segmentación + publicación a la derecha.

La gran imagen

Campaña

¿Qué?

Una promoción: pop-up, banner, bar, slide-in, pantalla completa, bloque en línea o geo-redirect. Cada uno tiene un objetivo: ventas, plomo, registro, chat, encuesta, anuncio.

Diseño & versiones

¿Cómo?

Construye la mirada en el editor visual. Cada ahorro crea una nueva versión, así que siempre puedes volver a rodar. Nada se pierde nunca.

Segmentación

Quién

Quien lo ve: país, página, dispositivo, fuente de tráfico, retorno vs nuevo, horario y (con un conector) sus clientes conectados.

Activadores

Cuando

Cuando aparece: instantáneamente, con retraso, al desplazarse, en la intención de salida, cuando está inactivo, en un clic, después de N páginas o desde la actividad del chat / ticket.

Análisis

Resultados

Impresiones en vivo, clics, conversiones, un embudo de salida, divisiones por país / página / dispositivo, ganadores A/B y una visión de IA.

Lanza tu primera promoción en 5 pasos

1
Empezar desde una plantilla o en blanco

Abre Promotion Studio y haz clic en Nueva campaña, o elige un diseño ya preparado de la galería Plantillas. Se abrirá un borrador en el diseñador.

2
Diseñarlo

Arrastre en bloques, encabezados, texto, botones, imágenes, placas, estadísticas, cuentadowns, formas, cupones, videos, puntuaciones, spin-wheels. Colores de estilo, gradientes y efectos 3D con los deslizadores. Avance Desktop / Tablet / Mobile, y utilice Movilidad gratuita para colocar cualquier cosa en cualquier lugar.

3
Personalízalo ahora

Tipo de tokens como {first_name}, {country} o {company} En el momento de la exposición se convierten en los valores reales del visitante.

4
Objetivo & disparador

Elige quién la ve (país, página, dispositivo, público) y cuándo se activa (retraso, desplazamiento, intento de salida). Deja una regla en blanco para significar todos.

5
Comprueba, luego publica

Haz clic en Comprobar para realizar un análisis rápido antes del lanzamiento y, a continuación, haz clic en Publicar.

Bloques que puedes construir

Contenido

Núcleo

Encabezamiento, párrafo, lista, cita, imagen, icono, insignia, estat, divider y espaciadora, los bloques de construcción de cualquier mensaje.

Llamado a la acción

Núcleo

Botones con acciones reales: abrir un enlace, iniciar un chat, crear un ticket, copiar un cupón o saltar a una página.

Urgencia & captura

Prima

Temporizadores de cuenta atrás, formularios (correo electrónico / teléfono / texto), revelaciones de cupones e incrustaciones de video.

Gamificado & feedback

Prima

Ruedas de giro para ganar, tarjetas rasca y gana, NPS / clasificaciones por estrellas y embudos multi-paso.

Diseño & efectos

Prima

Columnas, barras de progreso, acciones sociales, garrapatas de prueba social, sí/no dos pasos, cuestionarios y efectos 3D, inclinación, brillo, paralaja, vidriomorfismo.

Tokens de personalización

Escribe cualquiera de estos en los títulos, párrafos, botones, insignias, estadísticas, listas o citas y serán reemplazados por los detalles del visitante en el momento que se muestre la promoción (siempre limpiados para mayor seguridad):

Los tokens disponibles
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)

Referencia de orientación

País & ubicación

Mostrar solo en (u ocultar de) países, ciudades o zonas horarias seleccionadas a través de GeoIP. Excelente para ofertas específicas de la región o una redirección geográfica.

Páginas & URLs

Limitar a ciertas páginas usando iguales / comienza con / contiene / regex, y excluir las páginas también.

Dispositivo

Escritorio, tableta o móvil, por ejemplo una barra delgada en el móvil, un modal en el escritorio.

Tipo de visitante

Nuevos, recurrentes, conocidos (en tu CRM) o anónimos; segmentos de CRM, etapa del ciclo de vida, puntaje de leads o idioma del navegador.

Fuente de tráfico

Por UTM (utm_source, utm_campaign) o sitio de referencia, por ejemplo sólo los visitantes de un anuncio específico.

Horario & frecuencia

Fechas de inicio / finalización, ventanas horarias y con qué frecuencia puede verlo una persona (por sesión, por día, después de que cierren / hagan clic / convierta).

División de tráfico A/B

Muestre a un porcentaje de visitantes y ejecute variantes frente a frente; la misma persona siempre ve la misma variante.

Audiencias (ha iniciado sesión)

Con un conector habilitado, objetivo por estado de cuenta en vivo, por ejemplo clientes con facturas no pagadas o suscriptores activos.

Activadores

Elija cómo aparecerá la promoción: Inmediatamente, después de un retraso, en profundidad de desplazamiento, al salir del sitio, cuando esté inactivo, al hacer clic en un elemento, después del número de páginas vistas, al abandonar el formulario o desde la actividad de chat / ticket. window.OpsIQPromo.fire('event').

Orientar a clientes conectados (conectores)

Esto es lo que hace OpsIQ Promociones especiales: conecta una plataforma como. WHMCS (o cualquier conector que admita audiencias) y el estudio puede dirigirse a los visitantes por su estado de cuenta activa.

1
Habilitar un conector de audiencia

Bajo Connectors, habilitar uno que exponga los hechos del público (WHMCS los clientes son reconocidos de forma segura cuando se registran en esa plataforma, OpsIQ nunca confía en un email escrito.

2
Agregar una regla de audiencia

En Segmentación > Público de la campaña, requiera que se haya iniciado sesión y agregue reglas como facturas impagadas >= 1, la suscripción está vencida o hay crédito en la cuenta > 0.

3
Personaliza con sus datos

Utilice símbolos como {first_name} o {balance_due}. Un recordatorio "Tiene una factura vencida" se escribe a sí mismo.

El objetivo de audiencia es seguro por fallos: si el conector no puede confirmar un hecho (o el visitante no está conectado), la promoción simplemente no se muestra, así que una oferta dirigida a facturar nunca llega a la persona equivocada. ¿Construir su propio conector? Vea "Promoción de audiencia apuntando" abajo.

El comercio conectado (la superpotencia del estudio)

Tarjetas de producto desde tu tienda

Datos en vivo

Un bloque de producto tira artículos reales (nombre, precio, precio de venta, imagen, enlace) directamente desde WHMCS, WooCommerce, Shopify o tu OpsIQ Facturación. Tick "Keep fresh" y la tarjeta actualiza su precio de la plataforma cada hora mientras se publica.

Cupones aprovisionados en la tienda

Cupones

Un bloque de cupones puede crear el código de descuento real en tu tienda en el momento que lo publicas, por lo que el código que un visitante revela siempre funciona al finalizar la compra.

Ingresos por orden de verdad

Atribución

Los pedidos reales de sus plataformas se corresponden con campañas por hora (por código de cupón utilizado o por correo electrónico del líder) así que los ingresos que usted ve son de ventas reales, no estimaciones.

Prueba social real

Confianza

El ticker social-prueba puede liderar con órdenes recientes genuinas ("Ada ordenó Plan de Inicio · 2h hace"), nombre y artículo solamente, nunca correos electrónicos o cantidades.

Experimentos & viajes

Variantes A/B y ganador automático

Dividir el tráfico a través de las variantes del diseño; dejar que el estudio promueva automáticamente al ganador estadístico, o el tráfico manual al optimismo bandido que desplaza a los visitantes hacia lo que convierte como evidencia entra.

Aumento de retención

Reserva una porción de visitantes que no vean nada, para poder probar que la propia campaña causa el aumento.

Variantes de segmento

Contenido diferente por audiencia en la campaña SAME (visores móviles, carritos grandes, clientes retornados), cada segmento obtiene su propia versión.

Activar experimentos

Las variantes también pueden probar CUÁNDO aparecerán: inmediato vs retrasado vs intención de salida, medido frente a frente.

Viajes (encadenamiento)

Meta por lo que alguien hizo con otra campaña ("campaña de visión A pero no se convirtió") para construir secuencias de promoción multi-paso.

Teasers

Una pequeña píldora que los visitantes pueden volver a abrir después de cerrar la campaña, por lo que un pop-up cerrado nunca se ha ido para siempre.

Saber lo que pasó

Mapa de calor de clics

Diseñador

En el diseñador, activa o desactiva el mapa de calor para pintar los clics reales de visitantes sobre cada bloque de tu diseño.

Embudo de pasos

Embudos

Las campañas de varios pasos muestran exactamente dónde se quedan los usuarios, pantalla por pantalla.

Comparar las campañas

Estudio

Poner hasta cuatro campañas lado a lado (impresiones, clics, conversiones), mejor valor resaltado.

Historia semanal y resumen

IA

Cada lunes, un resumen aterriza en tus notificaciones; el botón 📖 Historia semanal escribe un resumer en lenguaje sencillo con los próximos pasos cuando lo desees.

Trabaja cómodamente

Copiloto de IA e ideas

Chatea con el copiloto de diseño para editar el lienzo ("hacer que el titular sea urgente, agregar una cuenta atrás"), obtener ideas de campaña a partir de tus propios datos de tráfico, traducir una campaña por país o corregir automáticamente un puntaje bajo del diseño.

Importación de Kits

Un comando lee tu sitio web y propone los colores y fuentes de tu marca real; guarda y cada picker se lleva con ellos.

Embudos de múltiples pantallas

Los bloques de pasos se hacen realidad por pantalla: pestañas para cada pantalla, añadir o reordenar las pantallas y la vista previa sigue.

Versiones con nombre y presencia

Nombra versiones importantes ("Candidato a lanzamiento"), restaura cualquiera de ellas y ve una advertencia cuando un compañero de equipo esté editando la misma campaña.

Tira de dispositivo y reglas

Vea el escritorio, la tablet y el móvil uno al lado del otro en una sola vista; cambie las reglas de píxeles para una colocación precisa.

Páginas y canales alojados

Cada campaña también puede ser una página alojada independiente para biografías y códigos QR, una secuencia de goteo de correo electrónico para clientes potenciales capturados o un borrador web push con un solo clic.

Seguridad de la empresa

Publicar ventanas de congelación (períodos de cambio-congelación), un interruptor de emergencia para pausar todo, aprobaciones, seguimiento de auditoría y revertir versiones.

¿Necesito añadir código a mi sitio?+

No, las promociones se entregan a través del mismo widget OpsIQ que ya tienes instalado. Diseña, publica y listo.

¿Verán los visitantes el mismo pop-up una y otra vez?+

No. Establecer gorras de frecuencia (por sesión / por día, o parar después de que alguien cierra, haga clic o conversos).

¿Quién puede publicar?+

Las funciones de publicación, pausa, archivo y restablecimiento están limitadas a los propietarios del espacio de trabajo y los administradores completos.

Crecimiento & SEO

Diseñador de Promoción

Promotion Designer es un editor de bloques adaptable para crear, revisar, editar y publicar una experiencia de campaña.

Pantalla de producto
Diseñador de PromociónEl diseñador combina un lienzo en vivo, vistas previas de dispositivos, bloques, variables de personalización, comentarios e historial de versiones.Diseñador de Promociónespacio de trabajoVIEWPORTEscritorioVERSIÓNv12ESTADOBorradorVISTA DE ESPACIO DE TRABAJO EN DIRECTOBloque de héroeTitular, medios y CTAEditarBloque de ofertaDescuento y plazoEditarPersonalizaciónVariables de contacto y campañaListoVerificación de lanzamientoComentarios y validaciónExamen1BUILD BLOCKSEditar diseño en vivo2PREVISTAEscritorio, tableta, móvil3PUBLISHVersión con versiones
El diseñador combina un lienzo en vivo, vistas previas de dispositivos, bloques, variables de personalización, comentarios e historial de versiones.

Usa bloques para componer la experiencia, obtener una vista previa de cada ventana compatible e insertar las variables de personalización aprobadas. Revisa los comentarios y la procedencia de los medios de IA antes del lanzamiento.

Crecimiento & SEO

Plantillas de promoción

Las plantillas proporcionan una galería de inicio categorizada y con capacidad de búsqueda para las campañas de Promotion Studio.

Pantalla de producto
Plantillas de promociónLa galería de plantillas filtra los diseños premium y aplica colores de marca del espacio de trabajo cuando una plantilla se convierte en un borrador.Plantillas de promociónespacio de trabajoCATEGORÍAConversiónRESULTS24BRANDAplicadoVISTA DE ESPACIO DE TRABAJO EN DIRECTOOferta de salidaModal con urgencia y CTAVista previaBienvenida a nuevos visitantesBanner y lista de beneficiosVista previaLanzamiento de productoHéroe, prueba y cuenta atrásVista previaSolicitud de comentariosSolicitud de encuesta compactaVista previa1FILTERCategoría y búsqueda2PREVISTAInspeccione el diseño completo3USECrear un borrador de marca
La galería de plantillas filtra los diseños premium y aplica colores de marca del espacio de trabajo cuando una plantilla se convierte en un borrador.

Busque o filtre por categoría, cargue resultados adicionales, obtenga una vista previa de la experiencia completa y luego elija Usar plantillaLa nueva campaña sigue siendo un borrador y puede cambiarse en el Diseñador de promociones antes de su publicación.

Crecimiento & SEO

Análisis de promoción

Los análisis de promoción conectan las impresiones y los clics con las conversiones, el contexto del público, los resultados de la acción del conector y el aprendizaje de campaña.

Pantalla de producto
Análisis de promociónLos análisis de promoción muestran el rendimiento del titular, la audiencia y los desgloses de disparadores, exportación de clientes potenciales y resultados de acciones conectoras.Análisis de promociónespacio de trabajoIMPRESSIONS42.8kCTR6.4%CONVERSIONS814VISTA DE ESPACIO DE TRABAJO EN DIRECTOPaísReino Unido · 31%DesglosePágina/pricing · 22%DesgloseDisparadorIntención de salida · 44%DesgloseAcción de conectorCupón creado · 97% éxitoResultado1MEDIDAImpresiones a conversión2SLICEPágina, país, dispositivo3LEARNAplique la información
Los análisis de promoción muestran el rendimiento del titular, la audiencia y los desgloses de disparadores, exportación de clientes potenciales y resultados de acciones conectoras.

Desglose los resultados por país, página, desencadenante y dispositivo; exporte los clientes potenciales capturados cuando sea necesario. Los resultados de las acciones del conector muestran si el seguimiento prometido de la promoción realmente se ha realizado. La información de IA y los resúmenes de aprendizaje deben tratarse como hipótesis para validar, no como pruebas automáticas.

Crecimiento & SEO

Anuncios

Los anuncios publican un mensaje en el área de notificación del widget con orientación opcional, programación y llamada a la acción.

Pantalla de producto
AnunciosEl editor de anuncios incluye contenido, CTA, público, segmento, regla de página, fechas activas y estilo visual.Anunciosespacio de trabajoActivo3AUDIENCESegmentoCUADROJul22–29VISTA DE ESPACIO DE TRABAJO EN DIRECTOTítuloMantenimiento planificadoListoContenidoMensaje de MarkdownListoCTALea la actualizaciónOpcionalRegla 10Páginas de precios · clientes activosMeta1WRITETítulo y Markdown2OBJETIVOAudiencia, segmento, página3CUADROVentana activa
El editor de anuncios incluye contenido, CTA, público, segmento, regla de página, fechas activas y estilo visual.

Elige todos los visitantes, los visitadores que han iniciado sesión o los nuevos visitantes; opcionalmente, restringe la audiencia con un segmento de contacto y una regla de página. Establece fechas activas desde/hasta y un indicador activo. Los colores y los estilos predefinidos Premium cambian la presentación pero no reemplazan el contenido claro.

Crecimiento & SEO

Campañas de push

Las campañas push envían notificaciones del navegador a los visitantes suscritos después de que hayan salido del sitio.

Pantalla de producto
Campañas de pushEl compositor de push muestra el alcance, contenido, medios, acciones, reglas de destino y estado de programación de la suscripción.Campañas de pushespacio de trabajoSUBSCRIBERS8,214ENVIADO31.6kCLICK RATE5.8%VISTA DE ESPACIO DE TRABAJO EN DIRECTOTítuloTu carrito está esperandoListoCuerpoRegresa hoy para recibir tu envío gratisListoCTAAbrir carrito de comprasListoCalendarioEnvíe ahora o programadoBorrador1PREPARE PUSHTítulo, cuerpo e icono2OBJETIVOAudiencia, segmento, página3SENDAhora, programa o borrador
El compositor de push muestra el alcance, contenido, medios, acciones, reglas de destino y estado de programación de la suscripción.

Una campaña puede incluir el título, cuerpo, icono, imagen del héroe, insignia, CTA y hasta dos botones de acción; una notificación persistente permanecerá hasta que el visitante interactúe con la misma.

Puedes seleccionar un destinatario por audiencia, segmento de contacto opcional y regla de página. Guarda un borrador, programalo o envíalo inmediatamente. Utiliza las métricas de suscripción y clic para evaluar el alcance. En los sitios web integrados de terceros se requiere HTTPS y un service worker alojado correctamente; consulta Web Push en sitios web de terceras partes.

Crecimiento & SEO

Mensajes proactivos

Los mensajes proactivos alcanzan automáticamente el momento en que el comportamiento de un visitante coincide con una regla, antes de preguntar. Construye cada uno como norma con tres partes: lo que debe suceder, cuando debe disparar, y con qué frecuencia. Todo se entrega a través de la OpsIQ widget ya en su sitio.

Proactivo
Mensajes proactivosUn compositor de reglas proactivas en tres partes: elige una acción (chat, banner, tour, push, email), agrega condiciones y establece un tiempo de reutilización de frecuencia.Mensajes proactivosespacio de trabajo1 · AcciónMensaje de chatBannerTourEmpujeCorreo electrónico2 · Condiciones de usopage = /pricingTiempo en la página > 20sregresando3 · FrecuenciaUna vez por sesiónEstado1ACCIÓNChat, banner, correo electrónico, push…2CONDITIONSPágina, tiempo, puntuación, regresando3FRECUENCIATiempo de reutilización por visitante
Cada regla proactiva es tres opciones: qué sucede (chat, banner, tour, push, email, webhook), cuándo (condiciones) y con qué frecuencia (refrigeración).

Las tres partes de una regla

1
Qué debe suceder (acción)

Mostrar una burbuja de chat o banner on-page, iniciar un Tour guiado, enviar un empuje web o correo electrónico, asignar a un departamento, o disparar un Webhook.{{visitor_name}}y{{page_title}}se convierten en valores reales.

2
Cuando debe disparar (condiciones)

Gorrión que lo activa: página/URL, tiempo en la página, profundidad de desplazamiento, puntaje de plomo, retorno vs nuevo, ocioso. Sin condiciones, la regla se dispara para cada visitante. Añadir al menos uno a apuntarlo. Las condiciones se combinan con AND.

3
¿Con qué frecuencia (frecuencia)

Establezca una refrigeración para que la misma persona no esté plagada, por ejemplo una vez por sesión o una vez al día. Cada regla tiene un estado de encendido/apagado.

⚠️
El espacio de trabajo "Run time/idle rules hourly" permite que las acciones del lado servidor (email, push, webhook, assign) incendien un horario para contactos conocidos que no están actualmente en la página, así que puede "email idle hot leads" automáticamente. Necesita el OpsIQ cron corriendo. Déjalo si sólo deseas usar los lodos en vivo.
¿Se disparará para todos?+

Añade al menos una condición (página, puntuación de leads, visitantes que regresan…) para dirigirte a los visitantes adecuados.

¿Cómo se relacionan estos con los flujos y recorridos?+

Funcionan juntas: una regla proactiva puede iniciar un tour guiado, y un flujo de chatbot puede ser activado por una regla Empieza con una sola regla de mensaje de chat, luego superpone las otras.

Crecimiento & SEO

Flujos de chatbot

Chatbot Flows script ramificando conversaciones dentro de tu widget de chat (verde, respuestas de palabras clave, caminos guiados) sin código. Un flujo es un conjunto de pasos conectados (nodos): haces una pregunta, el visitante elige una opción, y el flujo los envía por la rama que coincide. Sólo los flujos activos funcionan en tu sitio.

Cómo funciona
Flujos de chatbotUn lienzo de flujo: un nodo saludante se ramifica en tres botones de opción, cada uno conduce a un paso siguiente, mira el orden o dale una mano al humano.Saludo¿Cómo puedo ayudarle?Seguimiento de mi pedidoPregunta de facturaciónHabla con un humanoBuscar orden→ Agente humanoDesencadenadores: Saludo · Palabra clave · Manual · Después-detalles · Al final del chat
Flujos de chatbot

Flujo vs la AI · cuándo utilizar cuál

Usar un flujo

Cuando el camino es predecible y lo deseas idéntico cada vez: pasos de reserva, un mago de retorno, un "que plan?" elija, recolectando un correo electrónico antes del despegue. Flujos nunca improvisan.

Usa la IA

Cuando las preguntas son abiertas, "¿hace este trabajo con mi configuración?". El chat de cliente AI responde desde su conocimiento entrenado. Un flujo puede entregar a la IA (o un humano) en cualquier paso.

Activadores

Saludo

Se ejecuta como el mensaje de apertura cuando un visitante abre por primera vez el chat.

Palabra clave

Se ejecuta cuando el visitante escribe una palabra que has incluido (por ejemplo, reembolso, precios, cancelar).

Después de detalles / después del retraso

Comienza una vez que se comparten los detalles del contacto o un tiempo establecido en la conversación.

Al final del chat / Proactivo

Se ejecuta cuando el chat termina (por ejemplo, una calificación) o se inicia por una regla de mensaje proactivo.

Construye uno en cuatro pasos

1
Crea el flujo

Haz clic en Nuevo flujo, ponle un nombre, elige un tipo de disparador (y palabras clave si es una palabra clave), guarda.

2
Abrir el lienzo

Haga clic en Editar Canvas. El constructor visual donde se añaden pasos (mensajes, preguntas con botones, ramas) y conectarlos.

3
Agregar ramas y un traspaso

Para cada opción, dibuja una rama al siguiente paso y termina los caminos resolviendo, entregándolo a la IA o transfiriéndolo a un humano.

4
Habilitarlo

Haz clic en Habilitar. El flujo se activará inmediatamente en tu widget, pero puedes desactivarlo en cualquier momento sin perder el diseño.

¿Los flujos reemplazan a la IA?+

No. Corren de lado a lado. Usan flujos para caminos predecibles y la IA para preguntas abiertas; un flujo siempre puede entregarse a cualquiera de los dos.

Crecimiento & SEO

Visitas guiadas en Barcelona

Los recorridos guiados son guías paso a paso que apuntan a partes de tu página con burbujas de diálogo y un foco, guiando al visitante a través del proceso de incorporación o una nueva función. Están completamente temáticos y construidos en un diseñador visual con una vista previa en vivo. Un recorrido solo se ejecuta cuando está marcado como Activo.

Cómo funciona
Visitas guiadas en BarcelonaUna página atenuada con un anillo de foco alrededor del botón Agregar oferta y una burbuja temática que lee el discurso Paso 11de 2013 4 con un botón Siguiente.+ Añadir ofertaPASO 1 OF 4Crea tu primer tratoHaga clic aquí para agregar un trato a su embudo.Siguiente →
Visitas guiadas en Barcelona

Cómo se construye un tour

Pasos

Cada paso se centra en un elemento y muestra una burbuja con tu texto, agrega tantas paradas como necesite el recorrido y ordenalas.

Presets & tema

Comience desde un preset o diseñe su propia burbuja (colores, gradientes, foco) con una vista previa en vivo a la derecha.

Disparador

Opcionalmente, enlaza una regla proactiva para que el recorrido se inicie automáticamente cuando se active esa regla (por ejemplo, la primera visita al panel de control de un visitante habitual).

Activo toggle

Un tour solo puede ejecutarse mientras esté activado, desmarque la casilla para eliminarlo sin borrarlo.

Construye uno en cuatro pasos

1
Nuevo tour de

Haga clic en Nueva visita guiada, asignele un nombre y, opcionalmente, vincule una regla proactiva para que se inicie automáticamente.

2
Agregar pasos

Añade cada parada: elige el elemento al que apunta y escribe el texto de la burbuja, reordena hasta que el camino fluya.

3
Diseñarlo

Elige un preset o diseña tu propio estilo de burbuja, la vista previa en vivo muestra exactamente lo que ven los visitantes.

4
Activar

Tick Active y guardar. El tour puede funcionar ahora, en su propio gatillo, o iniciado por una regla de Mensaje Proactivo.

¿Cómo comienzan los tours?+

Por su propio gatillo, o a través de la acción "Viaje guiado" de una regla del Mensaje Proactivo, así que usted decide qué visitantes ven qué gira y cuándo.

Crecimiento & SEO

Objetivos de conversión

Conversion Goals turn an activity you care about (an inbound webhook event, a chat message, a ticket resolution) into a recorded conversion with full attribution. When the activity fires, OpsIQ logs a conversion against the contact and ties it back to the campaigns, segments and sources that led there.

Cómo funciona
Objetivos de conversiónUn flujo de objetivos: un evento webhook payment. succeeded se convierte en una conversión "compra" registrada por valor de $49, atribuida a su origen y campaña, con chips preestablecidos de inicio rápido arriba.Inicio rápidoCompra de StripeDemo reservadoInscripción al boletínpayment.succeededWebhook de entradaConversión"compra" · $49AtribuidoFuente · campaña
Objetivos de conversión

Definir un objetivo en tres pasos

1
Elige la actividad desencadenante

Haga clic en Nuevo objetivo de conversión. Elija el tipo de actividad que cuenta como conversión, o utilice un preset Quick-start, Compra Stripe, Demo reservado, Registro de Newsletters o Inscripción iniciada.

2
Ponle un nombre y establece un valor

Dale un nombre a la conversión (compra, demo_booked, registro) y opcionalmente un valor fijo y una ventana de atribución.

3
Guardar

A partir de entonces, cada vez que se dispare la actividad, OpsIQ registrará una conversión contra el contacto con atribución a los toques anteriores.

Los objetivos ya están conectados a los webhooks de entrada: cualquier objetivo cuyo desencadenador coincida con el tipo de evento de entrada se activa automáticamente en el momento en que llega el evento. Usa la página Webhooks entrantes para conectar Stripe, Calendly o cualquier sistema que pueda enviar JSON.
¿Qué puede ser una conversión?+

Cualquier actividad registrada: un evento webhook (pago. succeed), una captura de correo electrónico de chat, una resolución de ticket, cualquier cosa en el cronómetro de contacto.

Análisis

Tableros personalizados

Los paneles personalizados te permiten crear tu propia vista de las métricas que importan, en lugar de depender solo del resumen estándar. Añade los widgets que quieras, arrastra y cambia su tamaño al diseño que más te guste, guárdalo y compártelo con tu equipo.

Tableros personalizados
Tableros personalizadosUn creador de paneles con KPI y mosaicos de widgets gráficos, una zona de descenso discontinua y un botón Agregar widget.Paneles de control personalizadosespacio de trabajoMi tablero de instrumentos+ Añadir widgetVISITADOR2,481Ingresos$8.2kTRAFFICArrastra un widget aquíPÁGINAS DE TOP/pricing/docs/signup1ADD WIDGETSMétricas y gráficos de Pick2ARRANGEArrastrar y cambiar tamaño3SHARECon tu equipo
Crea tu propio tablero: agrega KPI, gráficos y widgets de lista, arrástralos y cambia su tamaño al diseño que desees, luego compártelo con el equipo.

Construye uno en tres pasos

1
Añadir widgets

Haz clic en Agregar widget y elige la métrica o el gráfico que quieras rastrear, repite este proceso para todo lo demás del tablero.

2
Organizar el diseño

Arrastre widgets para reposicionar y arrastrar sus bordes para redimensionarse. KPIs en la parte superior, gráficos abajo. Lo que lee mejor.

3
Guardar y compartir

Guarda el panel y compártelo con tu equipo para que todos vean los mismos números.

Mantenga tablas separadas para trabajos separados (una tabla de "miración diaria" con cuentas en vivo, y una junta de revisión mensual con gráficos de tendencia) así que cada estancia se centra.
Crecimiento & SEO

Campañas de alcance

Outreach is OpsIQ's1:1Motor de correo electrónico masivo: componga un mensaje personalizado o ejecute una campaña en un segmento CRM, con detección de respuestas, control del tiempo de envío, seguimiento de apertura/clic, píxel de seguimiento y cancelación de suscripción con un solo clic.

Alcance
Campañas de alcanceLa pantalla de Alcance con las pestañas Compositor/Campañas/Plantillas/Respuestas y una tabla de campaña que muestra la tasa enviada, abierta y de respuesta.Alcanceespacio de trabajoCampañasCompositorPlantillasRespuestasCAMPAÑAENVIADOAbiertoRESPUESTABoletín de junio1,20048%7%Seguimiento de los juicios34062%14%Recuperar82039%5%La detección de respuestas detiene automáticamente los seguimientos · cancelación de suscripción con un solo clic en cada envío11:1 & BULKComponer o hacer campaña2TRACKEDAbre, hace clics y responde3COMPLIANTAnular suscripción incorporado
El motor de Outreach: enviar1:1o ejecutar campañas para un segmento, realizar el seguimiento de las aperturas y respuestas, y mantenerse en cumplimiento con la detección integrada de cancelación de suscripción y respuesta.

Las cuatro pestañas

Compositor

Escribir un comentario1:1Email con {tokens} Desde el contacto y CRM.

Campañas

Envíe a un segmento de CRM, programado o ahora, con límites y control del tiempo de envío.

Plantillas

Plantillas de mensajes reutilizables para el alcance repetido.

Respuestas

La detección de respuestas registra las respuestas y detiene automáticamente el seguimiento a cualquiera que haya respondido.

Cómo se ejecuta una campaña

1
Elige un público

Elija un segmento de CRM (o cargue una lista). La supresión y el consentimiento se aplican automáticamente.

2
Composición

Escribe el mensaje con tokens de personalización; vista previa contra un contacto real.

3
Programar & enviar

Envía ahora o en el mejor momento: se abre un registro de píxeles de seguimiento; los clics y las respuestas se atribuyen.

La extensión es el consentimiento y la supresión-gated, incluye un solo clic de subscripción en cada envío, y sigue CAN-SPAM / CASL. Respuestas automáticamente paran más seguimientos.
Análisis

visualHtml

Informes programados envía un correo electrónico a los destinatarios seleccionados en un horario (de día, semanal o mensual) como una etiqueta blanca imprimible PDF. Establecerlo una vez y el informe aterriza en las bandejas de entrada automáticamente a través de OpsIQ Cron.

visualHtml
visualHtmlLa pantalla de informes programados: una tabla de los informes con su programación, destinatarios y última hora de envío, además de un botón Guardar informe.Informes programadosespacio de trabajovisualHtml+ Guardar informeINFORMECUADRORECIPIENTESÚLTIMO ENVIADOTráfico semanalMiércoles 9:_00[email protected]Hace 2dInforme de cliente SEOMensual[email protected]Jun 1Resumen de ventasDiario[email protected]todayEntregado como una etiqueta blanca PDF vía el OpsIQ cron1AUTOMATEDDiario · semanal · mensual2WHITE-LABELPDF a los clientes3RECIPIENTESEnviado por correo electrónico en el horario
Establezca un informe una vez (configuración, rango, calendario, destinatarios) y OpsIQ correos electrónicos a una etiqueta blanca PDF automáticamente en tu cadencia.

Configurar un informe

1
Elige qué enviar

Elige el conjunto de métricas (tráfico, SEO, ventas, soporte…) y un intervalo de fechas.

2
Establecer programación y destinatarios

Diariamente, semanalmente o mensualmente, en el momento que usted elija, a uno o más destinatarios de correo electrónico.

3
Guardar

Guardar y activar. El informe genera y envía correos electrónicos a su cuenta en el horario, sin paso manual.

💡
Los informes programados se ejecutan a través del OpsIQ cron, si un informe no llega, confirma que el crón está funcionando (ver Cron y automatización).
Privacidad

Privacidad y cumplimiento

La página de Privacidad & Compliance es el único lugar para mostrar un auditor que maneja los datos personales responsablemente: el libro mayor del consentimiento, el registro de acceso al administrador, su política de residencia y retención de datos, y una lista a imprimir DPA en una vista tabbed. Sólo los administradores completos pueden abrirla.

Privacidad y cumplimiento
Privacidad y cumplimientoLa pantalla de Privacidad y cumplimiento: pestañas para el libro mayor del consentimiento, registro de acceso, residencia y DPA, con una tabla del libro mayor de consentimiento de concesiones y revocaciones por canal.Privacidad & cumplimientoespacio de trabajoLibro de consentimientosRegistro de accesoResidenciaDPACONTACTOCANALACCIÓNFECHA[email protected]correo electrónicoConcedidoJun 12[email protected]pushRevocadoJun 10[email protected]marketingConcedidoJun 9Prueba de búsqueda de cada concesión y revocación del consentimiento, por canal1CONSENT LEDGERPrueba de cada subvención2ACCESS LOGQuién tocó los datos3DPAPlantilla para imprimir
Una pantalla lista para auditores: un registro de consentimiento con capacidad de búsqueda (otorga/revoca por canal), un registro del acceso a los datos, la configuración de residencia/retención y una DPA imprimible.

Las cuatro pestañas

Libro de consentimientos

Un registro de cada consentimiento conceda y revoca, por contacto, canal (email, push, SMS, in-widget), acción, fuente y fecha. Su prueba de un contacto acordado (o retirado).

Registro de acceso

Quien en su equipo vio, editó, exportó, borró o envió los datos de un contacto con el administrador, contacto, acción, razón declarada y IP Exactamente lo que pide un regulador.

Residencia & retención

Declara dónde se encuentran los datos de este espacio de trabajo, establece cuántos días se conservan las filas de actividad (0 = para siempre) y registra a tu controlador de datos y DPO.

Plantilla de DPA

Un Anexo de Procesamiento de Datos imprimible que rellena su controlador, dirección, DPO, residencia y retención. Imprima o guarde como PDF.

Privacy & Compliance se combina con el estudio de consentimiento de cookies (que recopila el consentimiento) y la página Exportar (que produce la copia de datos para un DSAR). Vea también Cron y automatización para la limpieza nocturna de retención.
Conectores

Conecta tus plataformas

Enlace de conectores OpsIQ a plataformas externas: tiendas de comercio electrónico, sistemas de facturación, procesadores de pago, proveedores de correo electrónico y personal APIs. Una vez conectado, la AI puede buscar pedidos, datos de clientes, suscripciones y más, y tomar acciones con su aprobación.

Cómo funciona
Hub de conectoresOpsIQ Núcleo conectado a WHMCS, Shopify, Stripe, WooCommerce, SendGrid y Google Business Profile, cada uno de los cuales muestra un estado conectado.WHMCSShopifyStripeWooCommerceSendGridGoogle BPOpsIQCORE1PLUG IN25+ conectores pre-construidos2AI CONTEXTDatos reales de la plataforma3ACTIONSHecho con su aprobación
Conectores

Barcos conOpsIQ

Estos están presentes en el momento que instala y necesita sólo sus credenciales.

WHMCS

Facturación

Facturación de alojamiento web: clientes, servicios, tickets, facturas, dominios, servidores.

Shopify

Comercio electrónico

Comercio electrónico: pedidos, clientes, productos, inventarios, pagos, webhooks.

WooCommerce

Comercio electrónico

WordPress comercio electrónico: pedidos, clientes, productos, cupones, envíos.

WordPress

CMS

Contenido y usuarios sobre unWordPresssitio.

Plaza

Pagos

Pagos y punto de venta: pedidos, clientes, catálogo.

osCommerce

Comercio electrónico

Comercio electrónico heredado: pedidos, clientes, productos.

Botble Hotel

Puente

Un hotel Botble CMS a través de la firmaOpsIQpuente. Aplicación de referencia para una plataforma sinAPI.

Zendesk

Soporte

Helpdesk: tickets, usuarios, organizaciones, comentarios.

Perfil de Negocio en Google

Comercialización

Negocios locales: opiniones, publicaciones, preguntas y respuestas, conocimiento. Utiliza OAuth.

Google Calendar

Productividad

Calendarios y eventos. Usos OAuth.

GmailyIMAP

Correo electrónico

Mailboxes: correo de entrada y salida, sincronía del directorio.

SendGrid

Correo electrónico

Entrega de correo electrónico: enviar emails y administrar plantillas.

Mailgun

Correo electrónico

Entrega de correos electrónicos: envía correos a través de Mailgun.

Slack, Telegram, LINE, X DM

Mensajería

Modición de canales para conversaciones entrantes y salientes.

Meta canales

Mensajería

Facebook Messenger, Instagram DM y WhatsApp.

Site Intelligence (Informe del Sitio)GA4, Consola de Búsqueda)

Análisis

Análisis y datos de búsqueda para elSEOsuite.

Enriquecimiento del sitio web y CRM importación

CRM

Enriquecimiento de la empresa y importación a granel de clientes.

Disponible desde el mercado

Estos son paquetes publicados, no parte de la instalación. Instalar uno de Connectors, Marketplace y se copia en la carpeta de conectores vivos, después de lo cual se comporta exactamente como los anteriores.

Stripe

Mercado

Pagos: cargos, clientes, facturas, suscripciones, pagos, disputas.

BigCommerce

Mercado

E-commerce: pedidos, clientes, productos, categorías, marcas.

Magento 2

Mercado

E-commerce: pedidos, clientes, productos, categorías, inventario.

PrestaShop

Mercado

E-commerce: pedidos, clientes, productos, reglas de carrito, transportistas.

OpenCart

Mercado

E-commerce: pedidos, clientes, productos, categorías.

Amazon SES, Postmark, Resend

Mercado

Entrega de correo electrónico transaccional.

Jira, Linear

Mercado

Seguimiento de emisiones y proyectos.

Zoom, Microsoft Calendar, Outlook Mail

Mercado

Reuniones, calendarios y correo.

DocuSign, Apollo, SerpApi.Google Analytics

Mercado

Datos de firma, prospecto, búsqueda y análisis.

Webflow, Wix, Squarespace

Mercado

Plataformas web.

💡
La lista de conectores se mueve como los paquetes son publicados. La lista autorizada para SU instalación es la página Connectors: lo que está listado allí es lo que el tiempo de ejecución descubierto, y la pestaña Marketplace muestra lo que puede añadir.

Instalar un conector

1
Ir a Conectores

Navegue a Conectores en la barra lateral de administración.

2
Encuentra el conector

Los conectores se agrupan por categorías y pueden ser de varios tipos.

3
Habilitarlo

Haga clic en el conector y active o desactive Habilitar.

4
Ingrese las credenciales

Rellene los campos requeridos: API clave, URL, tokens, etc. Cada conector tiene requisitos específicos documentados en su panel de configuración.

5
Conexión de prueba

Haga clic en "Probar conexión". Un resultado verde significa que el conector puede llegar a la plataforma externa, mientras que un resultado rojo indica el error.

6
Configurar las funciones

Elija qué funciones habilitar: sincronización de conocimientos, sincrónización de webhook, acciones de IA No todos los conectores admiten todas las funciones.

Qué te dan los conectores

Contexto de IA

La IA puede buscar datos de clientes, pedidos, suscripciones y más a través del conector. Cuando un cliente chatea, la IA tiene datos reales de la plataforma para hacer referencia.

Contexto de IA (autores del conector)

El ContextProvider del conector alimenta a la IA de tickets un resumen de cuenta de solo lectura del propietario del ticket. customer_id cuando se sabe; de lo contrario, en el billete auto-replies, donde la bandera ctx customer_trust_email es verdad, mira la cuenta por customer_email (el remitente del ticket verificado). Las plataformas remotas exponen un /context/customer-by-email Esto es lo que hace que la IA cite un saldo/factura real en lugar de decir “por favor, inicie sesión”. Honre los toggles de clase de datos del operador (customer_sections, customer_allow_credit) y permanecer estrictamente solo lectura, nunca emitir secretos.

Directorio de clientes (autores del conector)

El IdentityProvider del conector alimenta tres búsquedas de tickets universales: lookupCustomerById() (tarjeta de cliente), lookupCustomerServices() (tabla de productos/servicios), y listCustomers($query,$limit): el "Buscar cliente o correo electrónico de tipo" en el formulario nativo Compose-New-Ticket. Regresar filas de {id, external_id, name, email, company, phone, platform, platform_label}. Regla de remoto: si tus clientes viven en otra base de datos o servicio, tráelos sobre la plataforma API dentro de estos métodos, nunca lea las tablas del otro sistema directamente (en el OpsIQ DB son titulares vacíos, por lo que una lectura local devuelve un selector vacío).API URL; mantener a un local leído sólo como una caída del mismo-DB.

Billetes de identificación por correo electrónico, detección &quot; enrutamiento (autores de conexión)

Cuando el correo electrónico entrante se convierte en un ticket nativo, OpsIQ detecta al remitente llamando lookupCustomerById(0, ['email'=>$sender]) El primer partido "posee" al cliente y su platform La babosa está estampada en el ticket.created Evento como _pipe_owner_platform (vacío = invitado). Así que un WHMCS-El correo electrónico del cliente abre un ticket en WHMCS (WHMCS Un remitente desconocido sigue siendo un invitado nativo. Si el conector refleja los tickets nativos en su propia plataforma, tu ticket.created El manipulador debe tener una puerta en esto: if (array_key_exists('_pipe_owner_platform',$payload) && $payload['_pipe_owner_platform'] !== '<your-slug>') return;. La clave está ausente en entradas no recogidas (chat/manual/AI), por lo que el espejo como antes. El control de salida vive bajo los departamentos del equipo → Entradas abiertas vía email (Anyone / Clientes solamente / Off).

Medidas

La AI puede realizar acciones a través del conector: crear entradas, actualizar pedidos, cancelar suscripciones, todo con su aprobación a través de la Capa de Confianza.

Conocimientos

Los conectores aportan artículos de conocimiento específicos de la plataforma a la IA. Shopify El conector agrega solución de problemas de comercio electrónico; WHMCS El conector agrega conocimiento de alojamiento.

Importación de la base de conocimientos (autores del conector)

Si su plataforma aloja una base de conocimientos, declare un kb_capabilities Bloquear en settings.json (tipo kb_source) y el conector aparece en el editor del Centro de ayuda Importar KB → Importar desde una aplicación conectada desplegable siempre que esté habilitado y configurado en el espacio de trabajo. Es declarativo, ningún método para implementar: nombre un in-in adapter (zendesk para el Centro de ayuda exact-tree API, o crawl para cualquier sitio de la KB) y un base_template tales como https://{subdomain}.zendesk.com, que OpsIQ rellena con la configuración almacenada del conector. Las credenciales nunca salen del servidor; el navegador solo envía el slug del conecto Para admitir una nueva plataforma, agregue un opsiq_kb_<platform>_manifest() Refiera el adaptador por su nombre. Referencia completa: connectors/PLATFORM_CONNECTORS.md §5.

Webhooks

Algunos conectores registran webhooks con la plataforma externa para notificaciones de eventos en tiempo real (nuevos pedidos, actualizaciones de tickets, etc.).

Seguimiento de ventas

Los conectores de comercio electrónico alimentan los datos de ingresos en el panel de ventas para la atribución y análisis.

💡
Los conectores tienen un ámbito de espacio de trabajo. Cada espacio puede tener diferentes conecteurs habilitados con distintas credenciales.WHMCS El espacio de trabajo utiliza el.WHMCS Conector; a Shopify El espacio de trabajo utiliza el.Shopify Conector.
¿Puedo usar varios conectores a la vez?+

Sí, puedes tener Shopify para pedidos y Stripe para pagos en el mismo espacio de trabajo. La IA combina los datos de todos los conectores habilitados.

¿Qué pasa si mi plataforma no está en la lista?+

Utilice el generador de conectores para crear un conector personalizado para cualquier plataforma con una interfaz REST. API. O consulte el Marketplace para ver los conectores creados por la comunidad.

¿Los conectores funcionan con OpsIQ autohospedado?+

Sí, los conectores funcionan de manera idéntica tanto en las ediciones en la nube como en las autoalojadas.

Conectores

Contrato de conector de ventas y facturación

Cada conector de comercio utiliza el mismo contrato de evento neutral para plataformas. WHMCS es la implementación de referencia, pero SaaS Bridge, tiendas, proveedores de pago, conectores de mercado y paquetes de Connector Builder deben obedecer las mismas reglas.

Lo que todo conector de comercio debe publicar

Un libro mayor autorizado

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.

Identidad de fuente estable

La plataforma es el slug de registro del conector, como. whmcs, shopify o opsiq_saas. traffic_source contiene la atribución de adquisición verificada cuando se proporciona; de lo contrario, usa el mismo slug que el fallback. OpsIQ Resuelve el nombre del conector amigable en la interfaz de usuario.

Idempotencia

Asegúrate de asignar al menos un valor inmutable order_ref, invoice_ref o subscription_ref para que los reintentos y el relleno del webhook actualicen el mismo evento en lugar de crear ventas duplicadas. service_ref identifica la instancia del producto o servicio afectada cuando existe una.

Marca de tiempo de origen

occurred_at es la hora del pago o el evento económico que informa la plataforma de origen. No sustituyas las fechas históricas de pago por la hora de importación.

Dinero y FX

Si la configuración del conector habilita la conversión de divisas OpsIQ, los informes se convierten a la moneda de generación de informes del espacio de trabajo; en caso contrario, los reportes conservan la moneda del almacén o de la plataforma de facturación. El código del conecto no debe codificar una moneda de creación de informe o un tipo de cambio.

Ciclo de vida basado en evidencia

Usa nuevo, renovación, actualización, reembolso, crédito o desconocido. Clasifica por motivo de la factura, suscripción o relación de servicio, tipo de ítem u otro campo de fuente autorizado. Una compra repetida del mismo cliente no es automáticamente una renovación.

Límite de ventas

Solo los recibos de comercio nuevos, renovados, actualizados o desconocidos legítimamente pertenecen a Ventas y conversiones. Los reembolsos se informan mediante el análisis de reembolso e ingresos netos. El crédito en la cuenta, las recargas del monedero, las Recargas de tokens y Agregar fondos siguen siendo eventos del libro mayor de facturación y nunca cuentan como ventas, conversiones, volumen de pedidos ni ingresos por ventas.

El CRM permanece separado

Los negocios de CRM representan la actividad del embudo y los negocios, no son ventas de plataforma comercial a menos que una plataforma de facturación o tienda conectada emita el pedido pagado realizado o la factura a través de este contrato.

Proyecciones derivadas

Las conversiones opsiq_conversions y los resúmenes del panel son proyecciones de compatibilidad reconstruidas a partir del libro mayor. Los conectores no deben tratar una proyección como la fuente financiera de verdad, ya que las revisiones de contrato pueden volver a evaluar filas derivadas sin eliminar el historial de facturación subyacente.

Límite de plataforma remota

Un conector remoto lee su plataforma a través del API autenticado configurado. Nunca debe depender de tablas de base de datos del mismo servidor. La clave exacta site_key de dominio autenticada es proporcionada por ConnectorRegistry y se debe aplicar en cada escritura y relleno de libro mayor.

Ejemplo de evento pagado canónico

Evento de comercio 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"
}

Asignación de Connector Builder

Cuando Ventas y facturación esté habilitado en Connector Builder, mapee el importe, la moneda, el estado del origen y la fecha de origen, además de al menos una referencia de pedido, factura o suscripción. API El SalesIngest generado pasa cada fila a través del mismo normalizador CommerceEventRegistry utilizado por los conectores integrados y de mercado.

⚠️
Los créditos y los fondos de adición se conservan intencionalmente para el historial de facturación, el contexto del saldo del cliente y el análisis del libro mayor. Excluirlos de Ventas no los elimina; solo evita que inflan el rendimiento comercial.

lifecycle_type decide lo que se convierte en un acuerdo CRM

lifecycle_type no es una etiqueta analítica. OpsIQ lee para decidir si una venta entra en el oleoducto CRM, por lo que cada conector de ventas está tomando una decisión del oleaje si tiene intención o no.

nuevo

Abre un acuerdo cerrado (nuevo negocio).

renovación, actualización

No hay acuerdo de negocio nuevo, las renovaciones se convierten en una curva de probabilidad diferente y mezclarlas corrompen ambas previsiones.

reembolso, crédito

Nunca abre un trato, en cualquier modo. El dinero devuelto a un cliente no es una victoria.

omitida / desconocida

Sólo factura. La venta se registra pero nunca llega al oleoducto.

Una venta, una fila de libro mayor: la identidad es el SALE, no el evento

No coincida con event_id e insértete. event_id is platform:eventName:externalId, que responde “si ya procesamos esta entrega” y no podemos responder “habemos ya grabado esta venta”. Una plataforma que anuncia un pago dos veces – como invoice.paid y de nuevo payment.completed — miente dos ids y aterriza el mismo dinero dos veces, sin nada que collide y nada que advertir.

💡
Encontrado en la instalación de referencia: seis facturas con tres filas del libro mayor cada una, desde tres caminos de código utilizando tres esquemas event_id diferentes.0.00así que ningún total parecía equivocado, y cualquier proceso posterior restaurando cantidades reales habría contado un pago tres veces.

Llamar al escrito compartido en su lugar. Core compute la identidad de negocio de la venta (sale_fingerprint), coincide con una fila existente en ella, preserva el original event_id sobre actualización, y filtros a columnas reales:

La única manera soportada de escribir el libro mayor de ventas
\OpsIQ\Commerce\CommerceEventContract::upsertSaleRow('opsiq_sales_events', $row);
Mismo venta, muchos eventos

factura. pagado, pago. completado y venta. completa para una factura compartir una huella dactilar y actualizar una fila.

Los reembolsos permanecen separados

El dinero que sale es un hecho diferente del dinero que viene. Un reembolso de una factura mantiene su propia identidad, por lo que nunca puede sobreescribir el pago que revierte.

No hay referencia, no hay huella dactilar

Una fila sin orden, factura, suscripción o referencia de servicio no obtiene ninguna huella dactilar en absoluto, por lo que dos filas no relacionadas nunca chocan sólo porque ambos faltan una id.

Referencia precedencia

bill_ref, then order_reF, then subscription_refi, then service_refe — strongest first, so one sale kept a stable identity.

El libro de contabilidad es sólo anexion: nunca reescribir una venta

Un reembolso, una cancelación o una corrección es un nueva fecha de entrada. Nunca mutar la fila que corrige. Reescribir un pago en un reembolso parece ordenado y rompe tres cosas a la vez:

Destruye los ingresos brutos

Las ventas brutas y la tasa de reembolso se detienen siendo separables, y el tipo de devolución es la métrica que existe para informar.

Libro la inversión en el período equivocado

Un reembolso de marzo de una venta de enero debe reducir Marzo. Reescribir la fila de enero silenciosamente renueva un período cerrado.

Rompe la ruta de auditoría

Una entrada de libro mayor registra lo que sucedió en un momento en el tiempo. Las correcciones son contra-entros, que es cómo la contabilidad de doble ingreso ha funcionado durante cinco siglos.

Así que un conector informa la inversión en lugar de aplicarla: retorno refunded_at y refund_amount junto al propio ciclo de vida de la venta, y dejar que el callador escriba el reembolso como su propia fila fechada cuando el reembolso sucedió. Los dos nunca pueden collide, porque la huella de venta separa un retorno de una venta.

💡
El mismo principio se aplica a las cantidades. No "repair" una cantidad almacenada al valor actual de la plataforma: una factura asentada del crédito de cuenta registrada legítimamente0en el tiempo de pago, y el dinero ya se registró cuando el cliente subió. Restaurar el valor facial lo cuenta dos veces.

El contrato de clasificación

OpsIQ decide el ciclo de vida once, in \OpsIQ\Commerce\SaleLifecycleClassifier. Un conector declara sólo cuál de su propia plataforma palabras significan qué, mediante la implementación \OpsIQ\Connectors\SalesLifecycleConnectorInterface::salesLifecycleVocabulary(), y luego llama al clasificador compartido. No vuelva a aplicar el razonamiento.

Declarar vocabulario, delegar la decisión
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,
]);
💡
Precedencia es fija y compartida: explícita, luego reembolsada/cancelada, luego crédito, entonces actualización, luego is_order, luego recurrido, después adquisición, luego desconocido. Actualización se encuentra por encima del cheque de pedido porque las plataformas levantan un orden para actualizaciones también; recurrente se sienta debajo porque la primera factura de una nueva suscripción lleva un tipo de línea recurrente. En una venta ambigua sin ordenación el clasificatorio leans a los ingresos y los productos.

Declarar todo el vocabulario de la plataforma

Este es el fracaso que más cuesta y parece el menos equivocado.WHMCS conector concordado ['hosting','addon','domain'] - una lista que se lee como completa.WHMCS no emite un desnudo Domain tipo para líneas de dominio reales; emite DomainRegister, DomainRenew, DomainTransfer, PromoHosting, PromoDomain, DomainAddon* y Upgrade. Todos ellos pasaron de la lista unknown: 1,288 facturas, tres años, sin errores y sin línea de registro.

Cada nuevo cliente importa su historia a través de un backfill conector, por lo que un error de clasificación no afecta a un espacio de trabajo — afecta cada espacio de trabajos que se haya incorporado a través de ese conector, en el momento en que primero miren su oleoducto. Tome el vocabulario de la documentación de la plataforma o un censo de datos vivos, y coincida con las familias crecientes por prefix Así que un hermano nadie ha visto aún clasificar con sus familiares en lugar de desaparecer.

💡
Un cheque práctico: cuenta cuántos de sus propias filas aterrizan en desconocido. Un conector de ventas saludable clasifica casi todo. Una corriente constante de desconocido es casi nunca datos que no tiene — es un vocabulario que el conector nunca aprendió a leer.

Reparación de la historia importada

Cada conector de ventas OpsIQ implementa esto — 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 cualquier cosa que el conector haya conseguido por disco ya. tools/crm_backfill_sales_lifecycle.php entonces repara la historia importada de su conector sin código per-connector: seca corre por defecto, se respalda y verifica el conteo de filas antes de escribir, reversible a través de un libro mayor, y nunca escribe una lectura fallida como respuesta.

💡
Si su conector no puede volver a leer los registros pasados —un conector webhook-only no puede— no obsesionar el método. Un problema que regresa desconocido es peor que ninguna implementación: un backfill reescribirá buenas filas como no clasificadas y reporta éxito. Implementar la interfaz de vocabulario solamente.
💡
Las referencias detalladas de los paquetes siguen estando disponibles en connectors/CONNECTOR_EVENTS. md y connectors / PLATFORM_CONNECTORIS. md en las distribuciones de código fuente auto-hospedado.
Conectores

Contrato de evento Journey

Journey Intelligence acepta un sobre de evento neutral para plataformas del widget del navegador, los conectores integrados, el puente SaaS, los paquetes de mercado y la salida de Nombres específicos de plataforma se traducen en el borde; embudo, atribución y código de Site Intelligence consumen solo eventos canónicos.

Aislamiento y límite de confianza

Clave exacta de dominio igual

Cada evento está vinculado a la clave site_key del dominio autenticado. Un conector debe obtener esa clave de ConnectorRegistry o su extremo autenticada, nunca de un cuerpo de solicitud no confiable. Los dominios mantienen registros separados; un grupo de dominio es solo un agregado en tiempo de lectura.

Identidad de impotencia

Los reintentos, los webhooks y los rellenos actualizan un evento en lugar de duplicar una experiencia o venta. Retry, webhook and backfills update one event instead of duplicating a journey or sale.

Nombre nativo más canónico

Conserva el nombre_origen_del_evento para obtener evidencia y solucionar problemas, luego asignólo a El análisis principal nunca debe ramificarse en un slug de conector.

La evidencia del servidor gana

Los eventos de conector autenticados confirman el registro, inicio de sesión, pago, compra, renovación, reembolso y otros resultados del terminal. Un token de correlación vinculado a un sitio válido es la unión más segura; se rechaza un token no válido y sus ID incrustados no son confiables.

Privacidad

Envía solo los identificadores y campos necesarios para el viaje declarado. Respeta la configuración de consentimiento, enmascaramiento y retenciónNunca coloques credenciales, datos de tarjetas, secretos de autenticación ni cuerpos de mensajes privados en las propiedades.

Sobre canónico

Sobre de evento de viaje
{
  "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"}
}

Taxonomía canónica

Las familias compatibles incluyen eventos de página de interacción/CTA; registro de cuenta, inicio de sesión, MFA y restablecimiento de contraseña; etapas de leads y formularios; productos, carritos, pagos, pago, compra, suscripción, renovación y reembolso; impresiones y conversiones de promociones; eventos del centro de ayuda, chat y tickets; eventos de seguridad; y eventos personalizados con espacios de nombre. account.signup.succeeded, account.login.succeeded, lead.form.succeeded, commerce.payment.succeeded, commerce.purchase.completed, commerce.subscription.renewed y commerce.refund.completed.

Inferencia, confirmación y abandono del navegador

El widget puede funcionar sin un conector al observar la estructura de página, las acciones del formulario, los resultados del DOM y el registro del recorrido del visitante. Esa evidencia se califica explícitamente como observada o inferida. Un conector agrega confirmación autorizada del servidor y puede correlacionarlo con el mismo intento del navegador.

Atribución e ingresos

La atribución prefiere un token de correlación firmado válido, luego una referencia exacta de trayecto, intento, sesión o comercio, luego el gráfico de identidad consentida y finalmente una coincidencia de comportamiento limitada. Las ventas no combinadas permanecen sin atribuir. Los pesos del libro mayor multitáctil deben totalizar 1. Los ingresos atribuidos de Site Intelligence leen este libro mayor; los créditos, las recargas de monedero, las Recargas con token y Agregar fondos nunca son conversiones de compra.

⚠️
El modelo de atribución, las ventanas retrospectivas, el manejo del tráfico directo, la confianza mínima, el tiempo de espera por abandono y las definiciones de embudo son políticas de IU.

Manifiesto y generador de conectores

Declaración de viaje del 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 solo las capacidades que el paquete realmente ofrece. Connector Builder valida la asignación y genera el mismo adaptador neutral de plataforma utilizado por los paquetes originales. La ingestión del trayecto acepta un evento o un lote limitado de 100 a través del punto final de integración autenticado generado.

💡
El puente de comercio a viaje publica los resultados confirmados por el servidor y reconcilia la atribución después del upsert del libro mayor idempotente existente, de modo que un pago nunca se convierte en dos ventas.
Conectores

Cómo funcionan las acciones de IA

Cada conector declara un conjunto de acciones: cosas que la IA puede hacer a través de la plataforma externa. Las acciones son el puente entre "la IA dice" y "la AI hace".

Acciones de IA
Cómo funcionan las acciones de IAUna solicitud de cliente asignada a una tarjeta de acción tipo eliminación, luego una lista de verificación: permiso comprobado, usted confirma, API llamado.Cómo funcionan las acciones de IAespacio de trabajo"Cancelar mi suscripción"clienteIAcancel_subscriptiondeleteConfirmar requeridoparams: subscription_id (desde el contexto)TIPOS DE ACCIÓNreadwritedeletePermiso y rol comprobadosUsted confirma la acciónAPI llamado · resultado reportado1DECLAREDCada conector enumera acciones2GATEDPermiso + confirmar3THEN RUNAPI llamada, devuelve el resultado
Una solicitud se convierte en una acción declarada (leída tipo/escritura/derecho) que es verificada, confirmada, ejecutada y reportada.

El ciclo de vida de la acción

1
El cliente pide algo

"Cancelar mi suscripción" La IA identifica que esto requiere la acción "cancel_subscription".

2
La IA comprueba los permisos

¿Está permitida esta acción?, ¿está habilitada?,¿el usuario actual tiene el rol correcto?

3
La IA recopila parámetros

La acción necesita un ID de suscripción, que la IA busca en el contexto del cliente o le pregunta al cliente.

4
Confirmación

Para acciones destructivas o de alto impacto, la IA pide confirmación antes de ejecutar.

5
Ejecución

La acción llama a la plataforma externa API.

6
Resultado

La IA informa el resultado al cliente.

Tipos de acción

Acciones de lectura

Busque datos sin cambiar nada. Ejemplos: list_orders, get_customer Seguro, no se necesita confirmación.

Escribir acciones

Crear o modificar datos. Ejemplos: create_ticket, update_order. Puede requerir confirmación.

Eliminar acciones

Eliminar datos. Ejemplos: cancel_subscription. Requerir siempre confirmación.

Acciones de HTTP

Declarado en acciones.json, genérico API llamadas definidas declarativamente.

Etiquetas de capacidad

Campo opcional de "capacidad" por acción en acciones.json, una etiqueta de clase conector-neutral (por ejemplo "tickets" para un ticket read/lookup, "ticket_create" para abrir un billete).OpsIQ cierra toda la clase uniformemente a través de cada conector: las lecturas del ticket abandonan la AI cuando el operador apaga la conciencia de entrada AI, y la creación de boletos está reservada para OpsIQ's propio compositor (así que la herramienta de creación del conector no puede duplicarla). Declararlo y su conector se ajusta.OpsIQ Nunca necesita saber sus nombres de acción. El Constructor de conectores lo expone como una gota de Capability por acción.

Acciones de código

Implementado en PHP en la clase connector. Control total sobre la lógica.

Ejemplo de definición de acción
{
  "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 un conector

El generador de conectores le permite crear un conector completo para cualquier plataforma con una interfaz REST API. No se requiere codificación para los conecteurs básicos.

Construir un conector
Constructor de ConectoresUn formulario de conector sin código: nombre, tipo de auth, base URL, un mapeo de acción, una prueba de aprobación y un botón publicar.Constructor de Conectoresespacio de trabajoConstructor de ConectoresNombreMi plataformaAutenticaciónOAuth 2.0(PKCE)BaseURLhttps://api.example.com/v2AcciónGET/customers → lista de clientesLa prueba pasóConector del paquete1NO-CODENombre, auth, base URL2ANY APIClave, portador, básico, HMAC, OAuth3PUBLISHInto /connectors/<slug>/
Apunte el constructor en cualquier REST API. Set auth, base URL y acciones, probarlo y publicar un conector de trabajo. No se necesita ningún código.

Cobertura completa del proveedor API

Cada generado API El conector puede exponer separado Native.API Read and Native API Acciones de escritura. Las acciones seleccionadas siguen siendo las preferidas; las acciones nativas cubren los puntos finales del proveedor agregados posteriormente. JSON, forma, XML, cuerpos en bruto y de varias partes, paginación limitada,API-version encabezados e idempotencia mientras mantiene las credenciales dentro de la configuración del conector de espacio de trabajo.

⚠️
Los paquetes de mercado son fuente de/marketplace_connectorsasí como empaquetado/connectors.Aumentar la versión del paquete, regenerar el contrato y documentación, realizar pruebas de conformidad, luego volver a firmar y publicar la nueva versión Marketplace.

Asistente de Connector Builder

El asistente tiene seis pasos, mostrados como pestañas en la parte superior, entre los que puede saltar libremente y Guardar borrador El botón en el pie de página mantiene su trabajo en cualquier punto.

1
Identidad y perfil

Nombre, slug, descripción e icono, luego elegir un perfil de contrato: Estándar API_, Comercio, Ayudadesk, Mailbox, Inteligencia del Sitio, Puente SaaS, Plataforma PHP Local o Plataforma noAPI cuando la plataforma no sirve nada callable yOpsIQtiene que instalar un puente. El perfil selecciona un punto de partida completo de la capacidad; todavía puede ajustar las capacidades individuales.

2
Autenticación

Elige el patrón de autenticación que utiliza la plataforma y rellena sus campos. Ingresa las credenciales reales de prueba aquí también: se utilizan para la prueba de conexión en el siguiente paso, y no se almacenan después de publicar.

3
Prueba

Entra en el API base URL y un endpoint verificado, luego ejecutar una prueba de conexión en vivo usando las credenciales desde el paso 2. Haga esto antes de definir cualquier acción, si la austeridad o la base URL está mal, cada acción que escriba después fallaría por la misma razón y estarías depurando lo equivocado.

4
Medidas

Defina cada operación: nombre, método HTTP, ruta de acceso al punto final, parámetros, asignación del campo de respuesta y los ajustes de confiabilidad que se describen a continuación. Puede ejecutar cada acción individualmente contra el API en vivo desde este paso.

5
Activadores

Asigna los eventos de webhook que tu plataforma envía a OpsIQ events, para que las cosas que ocurren en tu plataforma puedan empezar a funcionar en _OpsIQ.

6
Revisar, contratar y publicar

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>/.

⚠️
La publicación NO ejecuta la suite de conformance. Publicar sólo valida la forma mago y emite advertencias que no bloquean. La suite completa — manifest, archivos de capacidad, el contrato de identificación-token y el control del puente-snippet— funciona cuando pulsa Dry-run, y otra vez en el tiempo de instalación. Presione Seco-corrido antes de enviar, cada vez.

Lo que la publicación hace que el formulario no le muestre

Cinco comportamientos del generador sorprenden a la gente. Ninguno es un bicho; todos ellos le costarán una tarde si los encuentra por accidente.

Una pregunta decide el paso: ¿la plataforma sirve un API?

Responde en paso1eligiendo el modo de acceso a datos (o la "Platform sinAPI" Perfil".APIModo declara native_api and emits the <slug>_api_call passthrough. Bridge mode declares platform_bridge en lugar de ello y STRIPS native_api incluso si una especie mayor la llevaba, por lo que el manifiesto, la clase generada y los docs de experiencia no pueden discrepar. ai_brain_aware se añade de cualquier manera.

SILENCE MEANS "tiene unAPI"

El Constructor sigue su respuesta; no funciona la verdad por sí mismo, y el predeterminado cuando nada se dice esAPIAsí que un no-APIplataforma debe decirlo de manera ACTIVELY: elegir el "Platform con noAPI" perfil, establecer el acceso a los datos al puente o marcar 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.

La prueba de conexión predeterminada para GET/ping

Si deja el camino de verificación vacío, escribe el Constructor /ping en el conector generado y en perfil.jsonCasi ninguna plataforma real sirve esa ruta, así que Test Connection falla con HTTP404en cada instalación y lee como un error de configuración del cliente en lugar de un defecto de paquete. Establece una ruta verificada que su plataforma realmente responde. Para un conector puente, apunte a su propio punto final diagnóstico — prueba toda la cadena en una llamada: el puente está desplegado, los partidos clave, y el puente puede llegar a la base de datos.

Reeditar aún sobrescribe tus manos-edits

Las capacidades ahora siguen la respuesta de acceso a datos, por lo que los que ya no se derivan. Todo lo demás generado todavía hace: editar ContextProvider. php o cualquier otro archivo emitido y el próximo publicar lo reemplaza. La única excepción protegida es el archivo puente — el mago sólo sobrescribe un puente con su propio marcador, así que uno manuscrito queda solo.

Republish elimina archivos

Desactivar una capacidad y la próxima publicación elimina su archivo de proveedor. Los datos a mano en cualquier archivo generado — ContextProvider.php sobre todo— se sobrescriben sin previo aviso. Copia las personalizaciones primero, o toma la propiedad del paquete mediante la eliminación .opsiq- Constructor.json(después del cual el mago ya no lo manejará).

release_status siempre es previsual

El mago no tiene control para ello. Un paquete destinado a enviar como producción debe haber lanzado_status cambiado a mano en la configuración.json — y que la edición rompe la firma, así que re-firme después.

La firma demuestra integridad, no origen

Los paquetes de Builder se firman con la propia clave simétrica de esta instalación. Eso detecta manipulación. No prueba quién escribió el paquete, y cualquier instalación que tenga la misma llave puede producir la misma firma. Trate un paquete firmado localmente como auto-firmado.

Las colisiones de la piel solo se revisan en un árbol

Publishing rechaza una mancha que ya existe bajo/connectors/.No mira./marketplace_connectors/,así que un paquete de primera fiesta con la misma mancha, autorizado a mano, puede terminar en sombra.

💡
El asistente no tiene un paso de creación de conocimientos, se genera un archivo de coñecemento que describe su plataforma a partir del nombre, la descripción, el tipo de autenticación y las acciones definidas por usted, y se carga en la IA cuando se habilita el conector.

Definir una acción (paso 4)

Cada acción tiene los siguientes ajustes, solo se requieren los primeros cuatro; el resto controla quién puede ejecutarla y con qué cuidado.

Tecla y etiqueta de acción

La clave es lo que la IA llama; la etiqueta es lo qu un humano lee. Las claves se agrupan automáticamente con el slug del conector, por lo que dos conectores pueden tener una "list_orders" sin chocar.

Método de HTTP

GET, POST, PUT, PATCH o DELETE.

URL ruta

Anexado a la base URL. Uso {name} para marcadores de posición, por ejemplo /opportunities/{id}/stage

Parámetros

Para cada parámetro también se elige a dónde va: cuerpo, path, query o encabezado. Un parámetro de ruta rellena un. {placeholder}; un parámetro de consulta se añade a la URL.

Mapeo de respuesta

Di qué campo en el JSON respuesta significa qué, cuál es el nombre del cliente, que es el correo electrónico, el cual es el total de pedido. Esto es lo que permite a la AI leer los datos de su plataforma en lugar de adivinarlo.

Quién puede usarlo

Tu equipo (administrador de IA), clientes que han iniciado sesión (chat con el cliente), ambos o el asistente de escritura: las acciones del cliente se ejecutan solo para el cliente que ha iniciado la sesión, y los campos de identidad se bloquean automáticamente para que un cliente no pueda preguntar sobre otro.

Requiere confirmación

Un humano debe aprobar antes de que la acción se ejecute.

Destructivo

Marca la acción como borrado o cambio de estado. Se usa para advertir antes de ejecutarla.

Permiso requerido

El administrador debe tener este permiso para que la AI ejecute la acción en su nombre; los administradores completos siempre pasan. Elige entre manage_integrations, manage_general, manage _billing, manage@sales_bridge, manage, manage-knowledge, manage/appearance, manage*behavior, manage[permissions, manage]d_dangerzone, reply_to_chats, escalate_to _to_ticket, send_agent

Descripción / AI hint

Opcional, pero vale la pena escribirlo. Le dice a la IA cuándo realizar esta acción, por ejemplo "Usa esto cuando el administrador pida cambiar una etapa de trato". Una buena pista es la diferencia entre una acción que la IA usa correctamente y otra que ignora.

Capacidad

Etiquetas de clase opcional, ya sea entradas (leer o buscar) o ticket_crear (opens un boleto). Tagging permite OpsIQ _Puerta toda la clase a la vez, por ejemplo, el boleto escondido lee cuando un operador hace que se desconozcan los tickets de AI.

Ruta de la lista

Para los extremos que devuelven una lista, la ruta de acceso con puntos al array, por ejemplo data o data. items

Ruta de error

Opcional. Un campo corporal cuya presencia significa que la llamada falló, por ejemplo error.message, útil para APIs que devuelve HTTP 200 al fracaso.

Ejecútalo

Cada acción puede ejecutarse contra el API en vivo desde este paso, por lo que puede corregir una ruta o nombre de campo incorrecto antes de que alguien más lo use.

⚠️
Cualquier acción que use POST, PUT, PATCH o DELETE requiere el permiso manage_integrations para iniciar y se puede ejecutar en cualquier momento. y Una nueva acción de escritura falla en lugar de dejar que la AI cambie sus datos sin supervisión. Puedes cambiar ambos en la acción, pero cambiarlos a sabiendas.
💡
Para que se pueda llamar desde el chat del cliente, una acción debe ser de solo lectura: deje desmarcadas las opciones Requiere confirmación y Destructivo. Una acción que un cliente puede activar que también cambia de estado no es algo que el asistente le permitirá enviar por accidente.

Recibir webhooks (paso 5)

El paso Triggers te da un webhook URL para registrarte en tu plataforma, y verifica cada solicitud que llega a ella.

Encabezado de firma

El encabezado con el que su plataforma firma, por ejemplo X-Hub-Signature-256.

Algoritmo de firma

HMAC-SHA1, HMA C-SHA256 o HMA-SHA512.

Esquema de firma

Simple, un hex simple o base64 digerir. O estilo Stripe, el t=...,v1=... formato utilizado por Stripe y varias plataformas que lo copiaron.

Prefijo de firma

Opcional. Algunas plataformas prefijan el resumen, por ejemplo sha256=. Déjalo en blanco si la tuya no lo hace.

Mapeos de eventos

Asigna cada evento que tu plataforma envía al evento OpsIQ que debería generar.

Registro automático del webhook

Si tu plataforma tiene unaAPIpara gestionar sus propios webhooks, usted no tiene que registrar elURLa mano. Registrar automáticamente este webhook al habilitarlo y apunte a dos de las acciones que definió en el paso 4:

Acción de Create-webhook

Se llama cuando un administrador habilita el conector. Das el nombre del parámetro que lleva el URL, opcionalmente el que lleva la lista de eventos y la ruta en la respuesta que contiene el nuevo id del webhook.

Acción de Delete-webhook

Se llama cuando el conector está deshabilitado, usando la identificación capturada anteriormente, por lo que desactivar el conecto también detiene su plataforma enviando a un punto final muerto.

Capacidades que puedes activar

Los perfiles y capacidades se definen por el contrato de conector 2.2. Las capacidades generadas y declarativas se emiten directamente; las capacidades empresariales generan un EnterpriseExtension.php Andamio con cableado de ciclo de vida en tiempo real.

Medidas

Operaciones que la IA puede ejecutar en su plataforma: lista de pedidos, encontrar un cliente, emitir un reembolso.

Activadores

Recibe webhooks desde tu plataforma y conviértelos en eventos OpsIQ.

Entradas de AI

Triage de IA y Copiloto de respuestas en los tickets que permanecen en tu plataforma. Selecciona el punto final que devuelve un ticket con sus respuestas y asigna los campos; OpsIQ lee el hilo a través de él.

Buzón y contactos

Muestre el correo de un cliente en su línea de tiempo, envíelo desde una oferta y sincronice su libreta de direcciones con la. OpsIQ CRM.

Importación de clientes

Recorre tu lista de clientes e importa cada uno como un contacto OpsIQ, esto es lo que hace el botón Importar.

Contexto

Inserte datos en tiempo real de su plataforma en cada conversación de IA.

Identidad

Descubre cuál de tus clientes es un visitante y muestra su perfil y compras en un ticket.

Ventas y facturación

Introduzca los eventos de ingresos y las cifras MRR en los paneles OpsIQ.

Billetes de entrada

Convierta los tickets y correos electrónicos que su plataforma entrega por webhook en hilos de soporte OpsIQ.

Respuestas salientes

Publicar OpsIQ personal responde de vuelta a la plataforma en la que se originó el hilo.

Sincronizar usuarios

Importe las cuentas de su personal en los usuarios OpsIQ admin.

Sincronizar los departamentos

Importe sus departamentos de soporte en OpsIQ.

Segmentación de promociones y feed de productos

Deja que Promotion Studio se enfoque en los hechos que sabes sobre una persona y muestre tus productos reales dentro de una promoción.

Proveedor de Survey Studio

Exponga los datos de la encuesta verificados por el servidor, las variables escapadas y las páginas de destinatarios de CRM Outreach con límites a través de un archivo SurveyProvider. php dedicado.

Bloqueo nativo de IP

Cuando OpsIQ bloques an IP, llama al bloque propio de tu plataforma API Así que el bloqueo se aplica allí también.

Eventos de seguridad

Recibir bloqueado-IP Señales de amenaza desde. OpsIQ.

Conocimiento de la plataforma para la IA

Cada conector que construyes incluye una breve referencia que describe qué es tu plataforma y qué hacen sus acciones. La IA de administración de OpsIQ la lee cada vez que se habilita el conector, por lo que entiende tu plataforma en lugar de solo ver una lista de nombres de acción.

API paso a través

El conector siempre recibe una llamada de propósito general para que la IA pueda llegar a un punto final para el cual no se ha definido una acción tipo. Utilice acciones tipo donde sea posible; esta es la escotilla de escape.

Contrato de conector canónico 2.2 referencia

Contract version: 2.2 · 55 capabilities · 8 profiles.

Perfiles de conexión

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

acciones

Universal actions. Capability version: 1.0. Mode: generated. Runtime methods: registerActions. Package files: actions.json.

disparadores

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.

identidad

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.

facturación

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.

esto

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.

⚠️
Las especificaciones del Builder siguen siendo la fuente autorizada. Ponga reglas de negocio específicas para plataforma en los puntos de extensión generados; el ciclo de vida del paquete, las colas, los trabajadores, las migraciones y las pruebas de conformidad siguen gestionados por Builder.

Ajustes de fiabilidad en cada acción

Reintentos

Cuántas veces se reintenta una llamada fallida, con un backoff que duplica cada intento. Solo los tiempos de espera, 429s y errores 5xx son reintentados; un 4xx es culpa de su solicitud y repetirlo solo quemaría su límite de velocidad.

Límite de tasa

Un límite por minuto para esta acción, de modo que un disparador ocupado no pueda afectar a su plataforma. Déjelo en 0 para ningún límite.

Tiempo de espera

Cuánto tiempo esperar por su plataforma antes de rendirse.

Confirmación

Requiere que un humano apruebe antes de ejecutar la acción. Úselo para cualquier cosa destructiva.

Tipos de autenticación

Paso 2 ofrece siete patrones. Elige el que coincida con la plataforma API documentación, el generador emite el cliente HTTP adecuado para él.

API clave en el encabezado

Una clave estática enviada como un encabezado fijo, por ejemplo X-API-Key. Usted da el nombre del encabezado y la etiqueta que el formulario de administración debe mostrar. Esto envía la clave como un encabezada solamente; si su API Si espera que la clave sea un parámetro de consulta, utilice encabezados personalizados o un conector de código completo.

Ficha al portador

Token sent as Authorization: Bearer <token>. Common for modern APIs.

Auth básico

Nombre de usuario y contraseña, codificados en base64 en el encabezado Autorización. Usted elige las etiquetas que ambos campos muestran en el formulario de administración.

Firmado por HMAC

Una clave pública más un secreto, con el cuerpo de la solicitud firmado. Das el encabezado de firma, el encapuchamiento de la llave y el encadenamientos del timestamp que tu plataforma espera.

OAuth 2.0 (credenciales del cliente)

De servidor a servidor, sin interacción del usuario ni redirección. Usted proporciona el token URL y un ámbito opcional; el administrador proporciona un ID de cliente y secreto. Use esto cuando su plataforma emite credenciales a una aplicación en lugar de a una persona.

OAuth 2.0 (Botón de conexión)

El flujo de código de autorización con PKCE, para Stripe, Shopify, Slack y aplicaciones al estilo de QuickBooks. Usted da la autorización URL, el símbolo URL Después de la publicación, el administrador hace clic en Conectar en el conector, autoriza en su plataforma y OpsIQ Almacena el token de actualización y mints los tokens de acceso bajo demanda. La redirección URI Para registrarse en su. OAuth La aplicación se muestra en la página de configuración del conector.

Encabezados personalizados

Una forma libre JSON Use el mapa de encabezado para cualquier cosa que los patrones anteriores no cubran, por ejemplo {"X-API-Key":"{api_key}","X-Tenant":"{tenant_id} Cada marcador de posición se convierte en un campo del formulario de administración.

💡
El flujo de credenciales del cliente no tiene redirección ni paso de usuario, por lo que PKCE no se aplica a él. The client-credentials flow does not have any redirection and user step, so PKCE does not apply to it.

Estilos de paginación

Compensación

Utiliza los parámetros offset y limit. Ejemplo:?offset=100&limit=50.

Página

Utiliza el número de página. Ejemplo:? page=3&per_page=_50.

Cursor

Usa un token de cursor de la respuesta anterior.

Encabezado de enlace

Utiliza el encabezado de respuesta Link con rel="next".

Avanzado: 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 — el contrato real, mínimo y ejecutable
<?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.

Copia de tickets en el sistema nativo

Cuando tu plataforma sea propietaria de un ticket, haz que se refleje en OpsIQ desde el conector mediante el asistente de ingesta de tickets que hereda el conecto (crear para un nuevo ticket, añadir respuestas para los seguimientos). subscribers() método, ticket.created, ticket.replied, ticket.updated, ticket.deletedLa respuesta automática, la escalación, el SLA y CSAT se conectan a los mismos eventos, por lo que los hereda sin código adicional.

Diga quién escribió el mensaje de apertura

Un ticket es siempre para El cliente, pero el mensaje de apertura puede ser escrito por staff: un agente que abre una entrada en nombre del cliente, o que se extiende proactivamente. Cada ayudante lo apoya, por lo que es parte de la universalidad ticket.created Es más bien un contrato que algo que cada conector resuelve de forma privada.

author_type

Si se omite, el cliente es asumido.

author_id

El id del personal cuando author_type=admin. Nunca el id del cliente.

author_name

Nombre de agente o departamento. Vuelve a "Personal".

author_email

La dirección de agente. NUNCA el cliente. Un mensaje del personal bajo el correo electrónico del cliente es un error de presentación y auditoría.

Esto no es cosmético. Los consumidores leen author_type Una apertura escrita por el personal se reporta como un "Abierto". client deja auto-reply elegible para responder un mensaje que escribió su propio agente, y hace que el eco de su plataforma de esa apertura parezca un nuevo mensaje del cliente, que luego aterriza como duplicado y voltea el ticket a answered. Asignación de la señal de su plataforma en él en el conector Normalizador de eventos, nunca en los consumidores.

Bloqueo centralizado

Cuando un agente bloquea a un remitente, esto se aplica en todos los every canal inmediatamente (e-mail, chat, portal, widget y cada gemelo conector) porque el bloque se aplica centralmente, antes de que cualquier conector vea el mensaje. Su conector lo hereda haciendo nada. No hay trabajo en la entrada para implementar y no hay manera de conseguirlo mal.

La mitad opcional es outbound: indicar a tu plataforma que un cliente fue bloqueado aquí, implementa esto solo si tu plataforma puede expresar algo equivalente.

Capacidade de carga()

Debe incluir block_registry Y la clase debe implementar BlockRegistryInterface. La bandera es una reclamación; la interfaz es la garantía. El registro requiere ambos.

blockSender($b)

Recibe t ip o (correo electrónico|dominio|ip), valor, razón, admin_id, expires_at, site_key. Devuelve [resultado, detalle?, referencia_remota?].

unblockSender($b)

La misma carga de pago, reversa. Debe ser idempotente. Desbloquear algo nunca bloqueado es noop, no un error.

isSenderBlocked($b)

Para la conciliación, por lo que se informa de la deriva en lugar de ser descubierto por un cliente.

Valores de resultado

aceptable

Aplicado en su plataforma. Incluya remote_ref cuando tenga un id que valga la pena registrar.

noop

Ya en el estado solicitado.

unsupported

Su plataforma no tiene un concepto equivalente. NO es un error.

fallido

Podrías haberlo hecho y no haber salido bien, pero incluye detalles; eso se incluirá en el rastro de auditoría.

Declinar es la respuesta correcta. Muchas plataformas no tienen el concepto de "bloquear este remitente" y solo ofrecen la suspensión de CUENTA, que detiene la facturación, los inicios de sesión y los servicios en lugar de solo correo de soporte. Mapeando "un agente bloqueó una dirección de spam" a "cerrar la cuenta de este cliente" permitiría que un bloqueo mal hecho terminara con los servicios de un cliente pagante. unsupported Y dejarlo en paz.

La negativa también cubre el caso en que la plataforma can No lo hará, pero no te dejará hacerlo. API, no una característica: una palanca que solo existe en la interfaz de usuario de administración de la plataforma es una palanka que su conector no tiene.

Ejemplo de trabajo · Zendesk (la implementación de referencia)

Leer connectors/zendesk/connector.php alongside this. It is short, and every branch below is a decision you will face too.

Correo electrónico → ok

PUT /api/v2/users/{id} con suspensión=true. Las nuevas solicitudes del usuario final suspendido se desvían a las entradas suspendidas en lugar de abrir una, realmente la misma idea que bloquear un remitente, y no para facturación porque los usuarios finales de Zendesk no tienen ninguna. Devuelve el id del usuario como remote_ref.

dominio → no soportado

Zendesk PUEDE suspender un dominio completo, pero solo a través de la palabra clave suspend: en el área de texto de la lista de bloqueo del Centro de administración y sin que API escriba ese campo.

ip → no soportado

No existe ningún bloque IP a nivel de ticket.

Dirección desconocida → noop

Zendesk no puede pre-suspender una dirección que nunca ha visto, por lo que el bloqueo local detiene el ticket.

Agente o administrador → no soportado

REFUSED. El personal pendiente de un colega podría bloquear a un compañero fuera del ayudante. Una dirección del personal que llega a una lista bloqueada es mucho más probable que sea un error que una instrucción, comprobar el papel antes de actuar en él.

Esa última fila es la que vale la pena copiar. El contrato no puede evitar que mapees un bloque a algo destructivo, por lo que cada conector tiene que decidir por sí mismo qué rechazará. detail Un operador puede leer, bate obedecer.

Informe con honestidad. Observe cuán pocas de esas filas son ok. Ese es el resultado correcto, no una brecha: un bloque de dominio todavía funciona (se aplica en el núcleo del momento que está escrito); simplemente no puede ser reflejado hacia fuera. ok Si no lo hiciera, le diría a un operador que el bloque llegó a su plataforma cuando nunca salió de OpsIQ.

Reglas

El bloque local siempre gana

Se escribe ANTES de que se le llame y es válido lo que usted responda, no puede evitar que un operador bloquee a alguien.

Nunca lo lances

Un lanzamiento es tratado como no soportado y registrado, el retorno falla con un detalle en su lugar para que la razón sobreviva.

Ser idempotente

El mismo bloque puede ser anunciado más de una vez.

Regresa rápidamente

El trabajo lento de la cola se realiza en lugar de mantener abierta la solicitud.

No vuelva a llamar

Nunca vuelva a bloquear en OpsIQ desde su controlador. El registro salta el conector de origen, pero un segundo salto sería bucle.

Cada anuncio está escrito para opsiq_block_registry_log (operación, tipo, valor, razón, administración, origen, conexión de la nube, resultado, detalle y timetamp) para que un operador pueda ver una cuadra llega desde su plataforma en lugar de un agente, y lo que cada conector hizo al respecto.

Empuje los archivos adjuntos correctamente

Mano una attachments array to create()/addReply(). Cada elemento lleva el archivo en una de tres formas:

content_b64

Base64 of the RAW file bytes, use for files behind auth (most inbound cases). OpsIQ decodes it and re-hosts the file for you. The most portable shape.

url_ / source_url

Un https público URL (por ejemplo, una content_url de Zendesk). Debe ser https; pasa una comprobación de SSRF / allowlist antes de almacenarse.

stored_path

Una referencia de archivo almacenada que ya escribió (lo que produce el cargador del compositor nativo).

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 Solo nombres de archivos (no bytes), por lo que el patrón de entrada confiable es: leer los bytes donde su código ya funciona (en la plataforma, o desde la carga útil webhook), base64 ellos, y enviarlos como content_b64 Sobre el evento.

Saliente (OpsIQ → tu plataforma). Cuando un agente adjunta un archivo, el ticket.replied La carga útil le da los archivos de la respuesta como stored_path ítems relacionados con OpsIQ file store. Léalos y empuje en el propio formato de su plataforma, y compruebe los docs de la plataforma, el codificación importa: WHMCS quiere base64_encode(json_encode([[name,data]])) (JSON, no serializar); Zendesk carga bytes sin procesar a /uploads.json Para un token, luego establece comment.uploads; Gmail envía un mensaje RFC-822 de varias partes/mixto codificado con base64url raw; Amazon SES inbound attachments need the S3 receive action (the SNS path caps at 150 KB).

Plataformas remotas: API + webhook, nunca tablas de otra aplicación

Si su plataforma es una Aplicación o base de datos independiente (un SaaS alojado, un WHMCS remoto, una base de datos diferente en el mismo servidor), Nunca escriba sus tablas directamente: una base cruzada escribe tierras en cualquier conexión es activa y silenciosamente extraña las filas reales. Siempre: outbound = llamar al REST firmado de la plataforma API (respuestas, estado, departamento, eliminaciones); inbound = la plataforma publica un webhook firmado, tu handleWebhook() Lo verifica y dispara la coincidencia ticket.* Para detener un bucle de espejo, marque lo que empuja con un marcador de origen (por ejemplo, "reverse_buckle"). mirror_origin:'opsiq'); la plataforma se hace eco de él en el webhook y tu controlador entrante salta sus propios ecos. OpsIQEvents::isMirroredEvent() En la parte superior de cada manipulador.

Estado, prioridad y departamento de espejo

Una respuesta mueve el estado automáticamente, una agent Responder a esta respuesta → answered, a cliente Responder a esta respuesta → customer_replyPara cambios explícitos, suscríbase a la lista de correo. ticket.updated y leer payload['changes'] (e. g. {status:'closed'}).

Estado: El conjunto canónico de OpsIQ es open, customer_reply, answered, in_progress, pending, closedMantenga un pequeño mapa de dos vías para el vocabulario de su plataforma, y asegúrese de que su columna realmente acepta los valores que escribe (un ENUM Si falta un valor, algunas bases de datos lo vacían silenciosamente). Departamento: el departamento de OpsIQ es sin sentido a su lado, Nunca lo envíe. Enviar el descriptor (name, email y slug) y resolverlo contra sus propios departamentos por correo electrónico → nombre → slug, así que “Departamento de facturación” aterriza en tu Departamento de facturación en lugar de General. Disparar en ambos ticket.escalated y a department_id Cambio en ticket.updated.

💡
La duplicación de estado/prioridad/tema/departamento/eliminación está controlada por los conmutadores por conector (mirror_status_changes, mirror_priority_changes, Mirror_subject_change, Mirror Department Changes, Mirror Deletes) leídos a través del. OpsIQ\Connectors\MirrorOptions helper. Incruste ese bloque en su configuración.json y cada conector ticket-mirror lee los toggles idénticamente.

Vincule un ticket a un producto / servicio

Si el cliente eligió un producto específico al abrir el ticket, marque una pista para que el agente vea una tarjeta de servicio enfocada (con un modal "ver otros productos" con un solo clic para el resto). Pasa cualquiera de estos a create():

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

Un código de servicio de plataforma, p. ej. WHMCS S396 (servicio396) / D11 (dominio11). OpsIQ Descompone el tipo-letra + id opcional y hace coincidir su lista de servicios, con un protector de tipos para que un código de dominio nunca coincida con un producto del mismo id. Exponga una referencia coincidente en cada servicio para obtener una coincidencia exacta.

related_domain

Un nombre de dominio; coincide como una subcadena con el detalle / dominio de cada servicio.

💡
Construya la lista de archivos adjuntos una vez, en la forma anterior, y OpsIQ Se encarga del resto: hosted URLs El contenido base64 es almacenado y re-hospedado para usted, nunca necesita escribir el manejo de archivos por plataforma.
⚠️
Las teclas de acción son letras minúsculas, dígitos y subrayados.3a80caracteres y también permite puntos; la tienda de acción acepta2a100caracteres sin puntos, así que manténgase con letras, dígitos y subrayados y satisfaga ambos. Agregar una acción no crea ninguna ruta AJAX, por lo que no hay nada para regenerar — re-salvar el conector y se sincroniza.
Conectores

Vender a través de chat: el mapa del papel comercial

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.

El archivo: commerce_roles.json

La declaración vive en su propio archivo en la raíz del paquete — la presencia del archivo es la reclamaciónNo puede vivir connector_contract.json: ese archivo es regenerado por las herramientas de embalaje y su esquema rechaza claves desconocidas, así que un bloque a mano fallaría la validación y luego sería sobrescrito.

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

Las reglas, y por qué cada uno existe

Los roles son un vocabulario cerrado

OpsIQ nunca infiere un papel del nombre de una acción. Un rol que no se declara no existe — declarando es todo el contrato.

La operación debe ser una de sus acciones

Cada operación mapeada debe existir en su actions.json. Un tirapo declara una capacidad que no puede funcionar, y se extiende a un cliente como "Puedo comprobar eso por usted" seguido de nada.

Un papel de lectura nunca apunta a una operación destructiva

Leer roles (catalog, disponibilidad, cotización, búsqueda de pedidos) debe mapear a operaciones que no cambian nada en su plataforma.

Un papel de escritura nunca mapas a una operación registro genérico

Mapping order_create a una tabla prima inserta record.create, db.insert, recordCreate, cualquier ortografía, cualquier separador — es rechazado estructuralmente. Una fila escrita directamente elude los precios de su plataforma, bloqueo de stock y correo de confirmación, produciendo un pedido en que su propio sistema no cree completamente.

Un papel escrito declara una operación de recuperación

Una búsqueda idempotente que responde "¿de mi tierra de escritura?". El tiempo más peligroso es el que después de su plataforma ya puede haber creado el orden; sin una búsqueda de recuperación las únicas opciones son para retiro ciego o perderlo.

Las funciones de pago conllevan tres obligaciones adicionales

Un paquete que declare cualquier papel de pago también debe declarar payment_profile (monedas, países, métodos y environment — un entorno sin estado es cómo una integración de prueba toma un pago en vivo), webhook_verify (El esquema de firma real de su proveedor; se rechaza un compás secreto genérico) y event_map (sus eventos en canónicas).

En el Constructor de conectores, haga clic en commerce la capacidad y el mapa de los roles en el mago - valida todo lo anterior como escribes y escribe commerce_roles.json desentrañar la capacidad y el archivo se eliminan en repetible. Verifique cualquier paquete a mano con php tools/verify_commerce_contracts.php.
💡
El transporte es http para un control remotoAPIo bridge para una operación llamada en un puente desplegado (ver el NO-APIpatrón abajo). Las funciones son de transporte-agnóstico; el tiempo de ejecución sólo necesita el transporte declarado para que pueda ver versión-pair un puente.
Conectores

Conecta una plataforma que tiene NO API (el patrón de puente)

Muchas plataformas reales no envían RESTAPIUn hotel CMS, un antiguo sistema de facturación, una herramienta interna a medida. Todavía puede escribir un completoOpsIQconector para uno: el conector envía un único archivo PHP que el operador cae en su propia webroot pública, y ese archivo ES elAPI. Esta página es todo el patrón, con las reglas que lo hacen seguro para correr y la razón detrás de cada regla.

La forma de ella

Un conector normal llama a alguien másAPI. Un conector de puente trae su propio. Nada más cambia: las mismas acciones, los mismos proveedores de contexto, el mismo contrato de identidad, la misma distribución del paquete.

1
Escribe un archivo 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
El operador lo copia en su webroot

Junto a la plataforma index. php. No se modifica ningún código de plataforma, no se instala ningún plugin, nada para mantener en las actualizaciones de la plataforma.

3
El panel de conexión les da el archivo

Tus ajustes.jsondeclara webhook_help.snippet_template. La página del conector lo hace como un archivo copiable con su configuración en vivo ya substituida, por lo que no hay nada a mano-edit.

4
OpsIQ lo llama servidor a servidor

Su cliente.php envía las solicitudes de GET con la clave compartida en un X-Opsiq- El cabecero de Black-Key.URLconfiguración es la raíz del sitio de la plataforma.

El Constructor de conectores puede generar esto para usted ahora. Escoge el "Platform con noAPI" perfil (o establece acceso a los datos al puente) y emite el archivo del puente, el panel de emparejamiento y las acciones tipodas que leen y escriben a través de él - para una aplicación Laravel leyendo su .env, paraWordPressleer wp-config.php, o con credenciales que se pegan para cualquier otra cosa. Autor de mano sólo cuando su plataforma no es ninguna de esas, o cuando usted necesita comportamiento el puente generado no cubre. Un puente escrito a mano está seguro del mago: solo sobrescribe un archivo de puente que lleva su propio 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.

El modelo de seguridad, y por qué cada regla está allí

Este archivo se encuentra en una webroot pública detrás de una clave compartida. Ese solo hecho conduce cada regla abajo. No relaje ninguno de ellos para hacer su puente más simple.

El que llama nunca suministraSQL

No es una cláusula WHERE, no un fragmento ORDER BY, no el parámetro de consulta cruda "just this once". El callador denomina una tabla, una columna y un valor; su archivo construye la declaración.SQLtexto, una clave compartida se convierte en la ejecución arbitraria de bases de datos.

Los nombres de las tablas y columnas se validan contra information_schema

Los identificadores no pueden estar vinculados como parámetros, por lo que tienen que ser comprobados en su lugar. Lea la lista real de tabla y columna para ESTA base de datos y rechazar cualquier cosa no en ella. Un identificador que no es un objeto real de este esquema entonces no puede llegar a una consulta en absoluto — eso hace que sea seguro exponer cada tabla.

Cada valor es un parámetro delimitado

Sin excepción, incluyendo valores dentro de una búsqueda. identificadores validados más valores consolidados es el par que hace la superficie total y el nil de superficie de inyección.

Las lecturas son universales, las escrituras se listan

Mira la siguiente cuadra, esta es la regla que más quieren saltar.

Las columnas secretas se redactan en la lectura y se niegan por escrito

Coincide en la columna Nombre: contraseña, remember_token, secret, api_key, private_key , sala , token. Reemplazar el valor con un marcador de posición al salir. Rechazar el texto completamente en el camino – escribir una contraseña cruda hash no es una operación , es una pistola de pie . Enviar el operador al propio flujo de contraseña de la plataforma .

Las eliminaciones son de una sola hoja, por clave principal

Nunca un borrador de vracs, nunca un borrado por filtro. Una eliminación a granel es cómo muere una base de datos. Si alguien realmente necesita uno, pueden hacerlo en la plataforma.

Las lecturas están cubiertas de fila

Abra el parámetro límite con un techo duro. Una consulta desviada no debe ser capaz de dejar la base de datos a través de un mensaje de chat.

Cierre el velo hasta que se establezca la llave

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.

Comparación de teclas en tiempo constante, clave en un encabezado

hash_equals, nunca ==. La clave va en X-Opsiq-Bridge-Key, no la cadena de consulta, por lo que se mantiene fuera de los registros de acceso, troncos proxy y encabezados Refererer.

Sólo

Un método, una forma, nada para contrabandear en un cuerpo. Todo lo que hace el puente es expresible como un GET con parámetros validados, y OpsIQ es el único callador.

Lee universal, escribe lista de permisos - y por qué

Esta es la regla con la que se argumenta, así que aquí está el razonamiento completo. El asistente debe ser capaz de VER toda la plataforma: eso es lo que hace útil, y una lectura no puede destruir nada. Los escritos son diferentes. Este archivo se encuentra en una web pública detrás de UNA clave compartida. Si esa fuga clave, una superficie de escritura sin restricciones hace que la filtración sea equivalente al control total de bases de datos — un nuevo usuario administrador, una tabla de reservas vacía nunca permite.

⚠️
ElOpsIQLa tarjeta de aprobación cierra la IA, no la clave. El administrador haciendo clic Permitir una acción destructiva es un control sobre el asistente. No es un mando sobre quien tiene la llave del puente. Esas son dos amenazas diferentes, y la lista de permisos es la respuesta a la segunda.
El botón de cara al operador, desde el puente 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';

Dos detalles en el cheque de abajo son fáciles de equivocarse. El nombre de la tabla ya llega RESOLVED, llevando el prefijo de mesa del instalador, mientras que un operador escribe la lista de permisos sin prefijos porque eso es lo que naturalmente escribirían. Compare ambos modos o una instalación prefijada silenciosamente permite nada y cada pausa de escritura. Y la negativa debe explicarse a sí mismo, porque la persona que lee es un administrador en una ventana de chat no se desarrolla trazadora.

El cheque de la lista de permisos, verbatim desde marketplace_connectors/botble/bridge/opsiq- puente de abajo.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);
};

La puerta, en su totalidad

Cuatro cheques, en este orden, antes de que cualquier cosa toque los datos. Copiar el pedido así como los cheques.

Las cuatro puertas, en orden
<?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. */

Validación de identificadores contra information_schema

Esta es la pieza que convierte "el asistente puede llegar a cualquier mesa" de imprudente en seguro. Resolver el nombre de la tabla del llamante contra el esquema real, tolerar un prefijo perdido o extra de la mesa, y volver nulo para cualquier otra cosa. Todo abajo entonces trabaja con un nombre que probablemente existe.

Validación y reordenación identificativa, verbatim del puente 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;
};

Una operación de lectura y una operación de escritura, completa

Observe lo que está atado y lo que se valida. La columna filtrante se comprueba contra la lista de columnas reales y luego interpolada como identificador; su valor está atada. El límite es acoplado. Las filas son redactadas en el camino hacia fuera. La actualización rechaza la clave principal y cualquier columna de austeridad, y sellos actualizados_at cuando la tabla tiene uno.

Lea cualquier tabla — identificadores validados, valores encuadernados, filas capped
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,
    ]]);
}
Escribe una fila — tabla lista, columnas de auth rechazadas, fila única por clave principal
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)),
    ]]);
}

Supervivencia de las diferencias del esquema

Las versiones de la plataforma difieren. Las columnas se mueven, se renombran o están ausentes. Un puente que asume un esquema funciona en una instalación. Introspección y adaptación en su lugar: seleccione sólo las columnas que existen aquí, tolerar el prefijo de la tabla, y probar los ortografías plausibles de una referencia.

Tolerancia del esquema, desde el puente 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));
💡
Dar a su puente un op=diag que reporta STRUCTURE solamente — qué tablas resolvieron, qué columnas la mesa principal tiene, y el SHAPE de la referencia más reciente con cada dígito enmascarado. Es clave-gated como todo lo demás, y se convierte "el lookup no encuentra nada" desde un ticket de soporte en una respuesta de diez segundos. Nunca dejes que vuelva registros reales.

Errores uniformes y trampa de enumeración

Una forma para todo

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.

No se encuentra ni tiene que ser idéntico

En una superficie de búsqueda, una referencia que no existe y una referencia cuya prueba no coincida debe producir la respuesta SAME. Diferentes respuestas convierten su puente en un oráculo que confirma las referencias reales, lo cual es una exportación gratuita para cualquier paciente.

Nunca se filtre la razón a un visitante

El puente puede ser preciso conOpsIQ. Lo que llega a un visitante es decidido porOpsIQ, en un rechazo fijo.

El archivo copiable en el panel de conectores

El operador nunca abre su repositorio. Abren el panel del conector enOpsIQy presione Copia. Esa copia viene de la configuración.json, y debe ser el mismo programa que puente/*.php.

settings.json — la entrada del panel para un conector de puente
{
  "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.

Otros propietarios de lugares son sustitutivos lado del servidor

Independientemente de eso,{webhook_url}, {webhook_path}, {webhook_secret}, {site_key}, {base_url}y{slug}se llenan antes de que el panel vea alguna vez el snippet.

webhook_help puede ser un objeto o una lista

Una lista le da varios fragmentos en un panel, por ejemplo un archivo de puente y un gancho separado.

🚫
No mantener el snippet a mano. El archivo puente y la copia del panel son dos copias de un programa, y se arrastrarán WILL — se ha actualizado un puente y su copia del tablero no fue así que cualquiera que reinstaló y copió desde el panel instaló el viejo puente y perdió silenciosamente cada nueva capacidad. Nada lo detectó: conformidad pasada, firmas pasadas, pruebas pasadas.
Mantenga las dos copias 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.

Lo que el puente debe exponer

Operaciones de forma y una superficie universal de datos, juntos. Las formas devuelven respuestas ordenadas y diseñadas para las preguntas que la gente realmente hace; los universales cubren todo lo demás así el asistente nunca está atrapado.

Leídos de forma

Estadísticas, la lista principal de objetos con filtros, un objeto con sus filas relacionadas, el catálogo de lo que se vende, búsqueda de clientes con historia. Estos dan a la AI una buena respuesta en una sola llamada en lugar de cinco.

Escribidos de forma

Los dos o tres cambios estatales que importan — establecer el estado, cancelar. Mantener los valores aceptados permitidos-listed.

descubrimiento universal

tablas (con recuentos de fila) y describir (columnas, tipos, clave primaria, más banderas legibles y writables por columna). Así es como el asistente aprende una plataforma que no anticipaste.

Leído y escrito universal

query, record. get, record, record

Identidad, antes de la puerta clave

Las sondas de identidad son llamadas por el BROWSER del ADMIN, mismo origen, por lo que no pueden enviar un encabezado personalizado. Su autenticación es la sesión de plataforma en sí. Ponlas delante de la puerta clave, manténgalos alejados de todos los datos de registro, y nunca dejes que vuelvan a ser secretos.

Diagnósticos

op=diag, structure only, masked.

💡
Un conector solo lectura no necesita ninguna lista de permisos. Si su plataforma sólo responde alguna vez preguntas, envíe un puente sin operaciones de escritura y toda la clase de riesgo de escribir desaparece. Añadir escribe cuando alguien les pide.

Lista de verificación antes de enviar un puente

El puente lo rechaza todo sin un juego de llaves

Pruébalo. Renombra la constante para vaciar y confirmar cada respuesta de op 403_.

Una clave equivocada se rechaza en tiempo constante

hash_equals, y la llave leída desde el encabezado solamente.

Se rechaza un nombre de mesa de maquillaje

Y un verdadero nombre de mesa con un prefijo equivocado todavía resuelve.

Una columna de contraseña nunca aparece en una lectura

Y una escritura que nombre uno se niega con una explicación.

Se rechaza un escrito a una tabla fuera de la lista de permisos

Con el mensaje que le dice al operador cómo ampliarlo.

El panel snippet coincide con el archivo puente

php tools/sync_connector_bridge_snippets. php lo reporta en el paso.

Reinstalar el conector no es suficiente

Si su paquete envía un archivo de puente, un operador que actualiza el conector debe redespliegar ese archivo en su webroot. Dilo así en el cuerpo del panel y en su CHANGELOG, cada lanzamiento.

Conectores

El puente en otros idiomas y otras bases de datos

El patrón de puente no es un patrón PHP.OpsIQllamadas es un punto final HTTP, por lo que el archivo puede ser Nodo, Python, Go, Ruby, .NET o Java, y la tienda detrás de él puede ser cualquierSQLmotor oMongoDB. Lo que ES en forma de PHP es el oleoducto de embalaje, y esa limitación decide cómo su puente llega al operador. Lea la sección de entrega primero: es la parte que sorprende a las personas.

Lo que el conector realmente requiere

Este es el contrato completo, nada en él nombra un lenguaje.

Transportar

HTTPS. Una solicitud de GET por llamada, sin cuerpo ni otro método.

Autenticación

Un secreto compartido en el X-Opsiq-Bridge-Key solicitar encabezado, comparado en tiempo constante. No un parámetro de consulta, no una cookie, no Básico auth.

Parámetros

Una cuerda de consulta. op nombre la superficie, do nombra la operación, el resto son los argumentos de esa operación.

Respuesta

JSON. {"success":true,"data":{...}} o {"success":false,"error":"snake_case_reason"}. Aplicación de tipo de contenido/json, y sin cacheo.

Códigos de estado

200sobre el éxito.403llave inconfigurada o incorrecta,404no encontrado,405método equivocado,400mala discusión,501sin apoyo en este esquema.

Eso es todo

No framework, no runtime, no OpsIQ library on your side. If it can serve that, it can be a bridge.

Entrega: lo que puede vivir en puente/, y lo que no debe

El paquete firmado cubre una lista fija de extensiones de archivo, y un archivo fuera de esa lista se deja fuera del ZIP. Un puente en un idioma que la lista no cubre por lo tanto no puede enviar dentro del paquete — pero ya no puede desaparecer sobre usted tampoco.26Agosto2026un archivo en bridge/ que el empaquetador caería es un fallo de conformancia dura, por lo que el paquete se niega a pasar en lugar de instalar sin puente en él.

Cómo se trata un puente/carpeta en tiempo de construcción
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 yJavaScript- Totalmente apoyado

El archivo se envía en el ZIP firmado, y el verificador de snippet mantiene su copia de panel byte-identical a él, cualquiera de los dos que es. La comprobación de la deriva lee cada archivo en puente /, no sólo los PHP, por lo que un puente actualizado con una copia del panel de establos falla la construcción en cualquier idioma.

Todo lo demás — entregar a través del panel solamente

El panel snippet es texto plano sin idea de qué idioma tiene, por lo que funciona para cualquier pila. Ponga todo el programa en webhook_help. snippe_template, nombre el archivo en snifpet_filename, y NO deje una copia en puente/ — la conformidad rechazará el paquete en lugar de enviarlo hueco. Diga claramente en webhech_helpad. body que el operador copia este paquete en vez.

Si realmente necesitas otro idioma en el paquete

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.

💡
Nombre del archivo en webhook_help.snippet_filename cuando su paquete navegue más de un puente. Así es como el verificador sabe a qué puente pertenece una copia del panel; sin ella, se reporta un emparejamiento ambiguo como advertencia de conformidad y que snippet queda sin control.
⚠️
El punto de la comprobación de deriva es que un archivo puente y su copia del panel son dos copias de un programa y se divergen. Regenerar en lugar de editarlo a mano: php tools/sync_connector_bridge_snippets.php --apply, luego re-firme el paquete.

La puerta, en seis idiomas

Los mismos cuatro cheques en el mismo orden por todas partes: no cerrar con llave, un método, comparación de teclas constante-tiempo del encabezado, luego conectar. La única trampa real es la comparación, y es una trampa diferente en cada idioma.

⚠️
Compare el SHA-256digests of the two keys rather than the keys themselves. Es correcto en todos los idiomas, y se aparta el hecho de que varios comparadores constantes a la vez arrojan o filtran sobre un desajuste longitudinal — Node's timingSafeEqual eleva una RangeError cuando los búferes difieren en longitud, lo cual convierte una clave equivocada en una500en lugar de un403.
Node. js — la puerta
// 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 — la puerta
# Python — Flask
import hashlib, hmac, os
from flask import Flask, request, jsonify

app = Flask(__name__)
BRIDGE_KEY = os.environ.get("OPSIQ_BRIDGE_KEY", "")      # empty = bridge OFF

def same_key(a: str, b: str) -> bool:
    return hmac.compare_digest(
        hashlib.sha256(a.encode()).digest(),
        hashlib.sha256(b.encode()).digest(),
    )

def out(payload, code=200):
    resp = jsonify(payload)
    resp.status_code = code
    resp.headers["Cache-Control"] = "no-store"
    return resp

@app.before_request
def gate():
    if len(BRIDGE_KEY) < 24:
        return out({"success": False, "error": "bridge_not_configured"}, 403)
    if request.method != "GET":
        return out({"success": False, "error": "method_not_allowed"}, 405)
    given = request.headers.get("X-Opsiq-Bridge-Key", "")
    if not given or not same_key(BRIDGE_KEY, given):
        return out({"success": False, "error": "forbidden"}, 403)
Go, Ruby, . NET y Java - la misma comparación
// 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)));
}

Validación de identificadores en cada motor de base

La propiedad de seguridad no cambia: una tabla o nombre de columna que el callador suministrado debe ser revisado contra el esquema real antes de interpolar, y cada valor debe ser un parámetro atado. Sólo la consulta de introspección, el carácter de cita y la cláusula de paging difieren.

MySQLyMariaDB

Cuadros: SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = ?. Columnas: lo mismo contra information_schema.COLUMNS con AND TABLE_NAME = ?. Cotización con backticks, duplicando cualquier retroceso dentro. LIMIT n OFFSET m.

PostgreSQL

Mismo información_schema vistas, nombres de casos inferiores, WHERE table_schema = $1 (normalmente) public). Citas con citas dobles, duplicando cualquier cita doble dentro. LIMIT n OFFSET m. Ver la regla plegable: un identificador no citado se dobla a caso inferior, así que compare caso-insensiblemente cuando resuelve un nombre.

SQL Servidor

Mismo INFORMATION_SCHEMA views. Cotización con soportes cuadrados, duplicando cualquier soporte de cierre dentro. Paging necesita un ORDER BY: ORDER BY [id] DESC OFFSET @o ROWS FETCH NEXT @n ROWS ONLY.

SQLite

Cuadros: SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%'Columnas: SELECT name FROM pragma_table_info(?) — utilizar esa forma de tabla valorada, porque la desnuda PRAGMA table_info(x) declaración no puede tomar un parámetro atado e invitar la interpolación de cuerdas hay exactamente el agujero que está tratando de cerrar. Cita con citas dobles. LIMIT n OFFSET m.

Oracle

Cuadros: SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = :owner; columnas de ALL_TAB_COLUMNS. Cotización con citas dobles, y recuerde un identificador no citado se dobla al caso UPPER, lo opuesto a PostgreSQL. Página con OFFSET :o ROWS FETCH NEXT :n ROWS ONLY el 12c y más tarde.

MongoDB

No SQL, por lo que no interpolación de identificadores y ningún parámetro encuadernado — una disciplina diferente para el mismo objetivo.

La consulta de introspección 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;
💡
Resolver, luego utilizar el nombre RESOLVED. Nunca pasar la ortografía del callador a través de la consulta incluso después de comprobarlo — mire el nombre real en la lista que lee desde el esquema e interpola eso. No cuesta nada y cierra la brecha entre "este nombre coincide con algo" y "este es el nombre que estoy a punto de ejecutar".

MongoDB: las mismas reglas, sinSQL

No hay una cadena de consulta para inyectarse, por lo que la gente asume que no hay nada que guardar. Hay: el documento del filtro.JSONrecto find() deja que un callador envíe {"$ne": null} o {"$gt": ""} donde esperabas un valor, y seleccionas silenciosamente cada documento. Construye el filtro tú mismo.

MongoDB — colección de filtros, proyección como redaccionamiento
// 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();
Nombres de la colección vienen de listaColección

Esa es tu información_schema. Resolver la ortografía del callador en su contra y utilizar el nombre resuelto.

Forzar cada valor de filtro a un escalar

A String() o a Number() alrededor de ella es toda la defensa contra inyección del operador. Un documento donde usted esperaba un valor es el equivalente NoSQL de una cita perdida.

La proyección es la regla de la reacción

Excluir campos en forma de secreto en la proyección para que nunca abandonen el servidor, en lugar de eliminarlos del resultado después.

Eliminaciones permanecer un solo documento por _id

EliminarUno con un _id resuelto. Nunca eliminar aMany, y nunca un filtro que el llamante influyó.

Los escritos se mantienen alistados

El mismo razonamiento que SQL: nombrar las colecciones que escriba puede tocar, y rechazar el resto con una explicación.

El punto final de identidad en otros idiomas

La sonda de identidad es la otra mitad del puente, y también es HTTP. El bloque de firmas es idéntico en cada idioma: base64url la carga útil, HMAC_-SHA256 esa cuerda, unirse a un punto.

No escriba esto a mano desde cero. Configuración, Portal de soporte ya lleva un catálogo de snippet listo para PHP, Laravel,WordPress, WHMCS, Nodo con y sin dependencias, Flask y FastAPI, Django, .NET, Ruby on Rails, Java Spring Boot and Go. Tome el signer del sabor que coincide con su pila.
Qué cambiar cuando lo reutiliza

Esos snippets mintan un token de entrega PORTAL, que es deliberadamente más estricto: lleva jti y single_use:true y vive sobre120segundos porque viaja en unURL. Un token de identidad puente o widget no lleva ninguno de ellos y utiliza una exp más larga, minutos a horas.

Lo que queda igual

site_key, iat, exp y un nivel superior autenticado:true, más un administrador o cliente sujeto con una id y un nombre de usuario o correo electrónico. Mismos reclamos, misma firma, mismo secreto.

Ambas formas de token verifican

Un JWT de tres partes firmó HS256 funciona, y también lo hace la carga útil base64url de dos partes más hex HMAC que la referencia PHP emite. Use cualquiera que las bibliotecas de su idioma hacen natural — una biblioteca JWP es generalmente el camino más corto fuera de PHP.

Nunca lo mentiste en el navegador

Es cierto en cada idioma. Firmar el lado del cliente significa enviar el sitio secreto a cada visitante.

Elegir, honestamente

La plataforma es PHP

Escribe el puente en PHP. Nave en el paquete, se controla la deriva y puede arrancar el marco propio de la plataforma para leer una sesión en vivo para la sonda de identidad. Nada más te da los tres.

La plataforma es Node

Un . js puente barcos, signos y se controla la deriva exactamente como un PHP. Nada es dado hacia arriba.

La plataforma es Python, Ruby, Go, . NET o Java

Entregar a través del panel de la cinta y decirlo en el cuerpo del panel; no dejar el archivo en puente /, donde la conformidad rechazará el paquete. El conector es completamente normal: acciones, proveedores de contexto, identidad y búsquedas de invitados todo trabajo igual, porque ninguno de ellos se preocupa qué respuestas la llamada HTTP.

No puedes ejecutar un proceso en el host de plataformas

Entonces el patrón de puente no es la herramienta correcta. Existe un puente para llegar a una plataforma desde su propio host. Si sólo se puede alcanzar desde fuera, usted está escribiendo un conector normal API contra cualquier superficie que expone.

⚠️
Una limitación más que vale la pena planear alrededor: una sonda de identidad tiene que leer la sesión de inicio de la plataforma, lo cual generalmente significa correr dentro del propio proceso de la Plataforma o al menos en su anfitrión con acceso a su tienda de sesiones. Un puente escrito en un idioma diferente de la base puede servir los datos cómodamente y puede seguir luchando para responder op=admin_identity. Si es así, envíe el puente de datos en su idioma y la sonda.
Conectores

Dar al asistente ambas mitades: acciones Y contexto

Esta es la cosa más común que falta de un conector que "trabaja pero es inútil". Las acciones permiten que las cosas AI DO. Secciones contextuales lo permitan CONOCER cosas. Un conector necesita ambos, y la mayoría de preguntas que un administrador hace son respondidas por contexto, nunca por una acción. Un conexión con acciones perfectas y ningún proveedor de contexto informará sinceramente que no puede ver nada.

Los dos mitades

Acciones — cómo hace la AI las cosas

Declarado en acciones.jsono devuelto por registerActions(). El modelo elige uno, llena sus parámetros yOpsIQLas acciones son para verbos: cancelar esta reserva, abrir ese ticket, cambiar este estado.

Secciones de contexto — cómo la AI sabe cosas

Assembled by a ContextProvider before the model runs. "Cuantas órdenes este mes", "quiénes son mis clientes más recientes", "qué vendemos" todo resuelven a través de una búsqueda contextual, y nunca toquen una acción en absoluto.

⚠️
Síntoma de un proveedor desaparecido: el asistente responde "No hay conector habilitado suministrado esta sección contextual" mientras que el conector está instalado, habilitado y pasando su prueba de conexión. Nada se ha registrado, nada errores. Ese mensaje significa que ningún proveedor reclama la sección.

El vocabulario de la sección universal

OpsIQ pide secciones por nombre genérico. Su trabajo es decidir qué significa cada uno en su plataforma y responder a ella. Una reserva de hotel ES orden del hotel; una habitación IS lo que el hotel vende. Mapa, no inventar.

órdenes / pending_orders

Cualquiera que sea una transacción en su plataforma: pedidos, reservas, reservas y trabajos, envíos. pending_orders es la misma lista filtrada a los inacabados.

clientes

La lista de clientes.

products

Lo que la plataforma vende: productos, habitaciones, planes, servicios.

facturación

Totales de ingresos y dinero en forma, además cuenta por estado.

entradas, servicios, dominios, servidores, actividad

Use estos cuando su plataforma realmente los tiene. No forzar un mapeo — una sección sin respuesta es mejor que uno equivocado.

Cualquier otra cosa que tu plataforma tenga

Declara tu propio. Un proveedor que declara secciones(): ['licenses','shipments'] tiene los fusionados en la lista de permisos del Lookup universal, así que las búsquedas específicas de plataforma se ponen a disposición sin cambios centrales.

El error que cuesta un día

Un proveedor de contexto DEBE implementar la interfaz. El registro lo controla, por lo que una clase que simplemente LOOKS derecha es saltada — sin error, en cualquier lugar.

ContextProvider. php — el contrato, del paquete de referencia 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 '';
    }
}
Registrelo desde el conector

Implementar ContextConnectorInterface y devolver a sus proveedores de contextProviders(). La clase conector también puede implementar ContextProviderInterface directamente y ser registrado como mismo.

Regresar texto plano, noJSON

build() devuelve un bloque de texto que se concaten en el prompt. Escríbelo para un lector: una partida, luego una línea por fila.

Regresa ' en lugar de tirar

Busca tus propias excepciones. Un proveedor que lanza se ha registrado y saltado, pero devolver '' es el contrato.

El constructor no puede escribir secciones() para usted

Las secciones generadas de ContextProvider. php barcos(): array { return []; } y el mago no tiene campo para él. Llene a mano - y recuerde que republicándose del asistente OVERWRITES el archivo. Copia sus ediciones primero.

⚠️
Establece el verdadero TOTAL, no el número de filas que envió. Una página no es un total. Un proveedor que lista veinte hileras sin decir así consigue al asistente con confianza contestando "tienes20reservas" cuando la plataforma sostiene669. Un COUNT barato y una línea explícita - "TOTAL en el archivo:669(esta lista muestra lo más nuevo20solamente)" — es todo el arreglo, y un conteo confiadomente equivocado es peor que ningún recuento.
Un bloque de sección que no puede ser mal contado
$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);

Nombra tus acciones para que OpsIQ pueda decir lecturas de escritos

OpsIQ clasifica una acción de los WORDS en su action_id, y es deliberadamente conservador: todo lo que no puede reconocer se trata como un escrito y exige una tarjeta de aprobación. Obtener el verbo derecho y una lectura justa corre.

1
is_destructive or requires_confirmation wins

Si se establece, la acción siempre necesita aprobación. Declararlas honestamente — esto es lo que sale de la tarjeta de aprobación del administrador.

2
Una palabra de escritura en cualquier lugar del id hace que sea un escrito

añadir, crear, abrir, actualizar, editar, cambiar, eliminar, eliminar. destruir, cancelar, devolver, suspender, terminar, activar, aprobar, rechazar, enviar, marcar, resetear, capturar, vacío, cerrar, reabrir, asignar, revocar, otorgar, establecer, recortar, habilitar, desactivar, emitir, aplicar, pagar, proveer, renovar, actualizarse, fusionar, mover, transferir, escalar, pulsar, registrar

3
Entonces una palabra de lectura lo hace leer

get, list, search, find, view, show, fetch, count, lookup, describe, exportar, vista previa, test, ping, status, summary, detail, recent, history, check, log, statistics, metrics, overview, revenue, desglose, reporte, analytics, balance, use, quota, snapshot, insights, feed, draft, triage, classify, suggest.

4
Luego el método HTTP decide

Obtenga, escuche y se leen las OPCIONES.

5
De lo contrario es un escrito

No reconocido significa aprobación necesaria. Ese defecto es intencional.

⚠️
Las palabras escritas se revisan ANTES leer las palabras, por lo que un nombre mixto como get_and_sync_orders es clasificado como WRITE. Escoge un verbo, ponlo primero y manténgalo limpio: list_ordens, get_customer, search_bookings, cancel_bookting, set_ord_status.

Sólo declarar nativo_api si la plataforma realmente tiene uno

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.

El Constructor lo decide desde la respuesta de acceso a datos

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.

Los paquetes autorizados por las manos deben tener la razón

Si usted está escribiendo el manifiesto, declarar exactamente uno de nativo_api o plataforma_bridge. Conformance trata la plataforma_puente como el escape que captura un conector puente se espera tener, y el Builder rechaza una especie que reclama plataforma_bar en un conector API _.

Mantenga ai_api_reference. md honesto de cualquier manera

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.

Enséñale al cerebro del administrador sobre tu 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

Lo que esta plataforma ES, cómo se moldean sus datos, cuáles son sus objetos y los quirks que de otra manera harían adivinar al asistente. Escríbelo para un colega competente que nunca ha visto la plataforma.

ai_api_reference. md

Para un conector de puente, esta es su opcion y hacer vocabulario con sus parámetros, no una tabla de puntas REST.

Presupuesto

Roughly6,000caracteres mantenidos por conector, y sobre24,000caracteres para todo el bloque a través de cada conector habilitado. Sobre la tapa per-connector su archivo está truncado; ser conciso antes que el truncador es.

Pagos por decisión

Estos archivos son la diferencia entre el asistente que utiliza sus herramientas de mesa universal y contestando desde la sección equivocada porque nada le dijo que esas herramientas existían.

💡
Ambos archivos deben estar en el paquete INSTALLED, no sólo su árbol fuente. Son archivos de paquetes ordinarios, por lo que están cubiertos por la firma y enviados en el ZIP —lo cual también significa editar uno después de firmar rompe el sello. Re-sign.
Conectores

Identidad a través de un conector: admin, cliente, portal

Un contrato de firma sirve tres superficies. El trabajo del conector es convertir "quien está conectado en la plataforma" en un token firmadoOpsIQpuede verificar, y luego presentar el sujeto verificado enOpsIQ's forma. El conector nunca autentifica a nadie — la plataforma lo hace, y la firma lleva esa afirmación.

Las tres superficies, un letrero

Admin — su personal, dentro de su backend

El widget se carga dentro del panel de administración de la plataforma y cada miembro del personal es igual a su propioOpsIQAgente. Avanzado completo en la página del widget de administración.

Cliente — un cliente firmado, en chat de clientes

Un sujeto de cliente. Esto es lo que permite a un cliente conectado obtener su cuenta TODO en lugar de una búsqueda anónima: cada pedido, detalle completo y cualquier acción de autoservicio que usted permita.

Portal: un profundo vínculo en el portal de soporte

Las mismas afirmaciones más jti y single_use, con un120- segunda vida, porque el token viaja en unaURLy debe ser gastado una vez. No se lance a mano: Configuración, Portal de soporte lleva un snippet listo por idioma, y la plataforma lo miente para usted cuando el área de cuenta se ejecuta en este servidor.

El contrato de carga útil

Estas son las reclamaciones que verifican los verificadores. Nada aquí es opcional, sea cual sea un ejemplo parcial en otro lugar podría sugerir.

site_key

Nivel superior. Debe igualar la clave del sitio de la solicitud, o se rechaza el token.

iat y exp

Nivel superior, unix segundos. exp debe estar en el futuro y después de la inactividad. Se rechaza una señal más de un minuto en el porvenir. Mantenga la vida corta — minutos a horas.

autenticado: verdadero

Nivel superior, junto a la exp. La afirmación de su plataforma que un humano real está conectado.

plataforma

Nivel superior. Un corto bazo que nombra el origen. Recomendado, y permite al proveedor de identidad del conector decir sus propios tokens de otra plataforma.

admin o cliente

Un objeto que nombra al sujeto. Debe llevar un id no vacío, y un nombre de usuario o un correo electrónico: la puerta de acceso per-admin coincide con ellos. Incluya ambos cuando usted tiene ambos.

Minting, verbatim del puente 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);

Los dos verificadores, y el fracaso que causan

OpsIQtiene dos verificadores de token, y no eran idénticos. Saber esto te salva una tarde, porque el síntoma no se parece a la causa.

El widget de administración tiene su propio verificador

opsiq/embed/admin_ajax. php lleva un verificador local que acepta la bandera autenticada en cualquier posición. Lista de conversación, historia y sin leer todo pasan por ella, así que autentifican bien.

El verificador compartido es más estricto

opsiq/includes/customer_identity_token_verify.php se encuentra detrás del stream de chat y el núcleo AJAXAPI. Históricamente requería la bandera en el nivel TOP.

El síntoma

Historia y conversaciones funcionan. Cada chat da la respuesta "Se requiere acceso a los clientes". Lee exactamente como un fallo de sesión y no es: el token está perdiendo la bandera de primer nivel.

Qué núcleo actual hace

Ahora acepta la bandera en el nivel superior O dentro del sujeto, por lo que el contrato es uniforme. Los núcleos más antiguos leen sólo el nivel de arriba. Emitir la forma canónica y su paquete funciona en cada liberación.

Esto es comprobado a máquina ahora. Cualquier archivo en su paquete que mints fichas de identidad se escanea estadísticamente contra el contrato, y una carga útil la plataforma rechazaría fallas conformidad con el archivo exacto y línea. Ejecutarlo: php tools/verify_identity_contracts. php.

Clientes registrados en chat cliente

Dos cosas tienen que ser ciertas. Core debe sellar al cliente verificado, y su conector debe presentarlo.

1
Tu puente o punto final miente un cliente token

El mismo firmante que el administrador, con un sujeto de cliente. Lea al cliente desde la propia sesión de la plataforma. Si su plataforma muestra a los clientes en una guardia diferente de los administradores, lea el guardián que desea y nunca se cae sobre temas — así es como un cliente sería entregado un token de administración.

2
Core lo verifica y sella

En un token válido, el tema verificado se bloquea en la sesión. Su proveedor lee una identidad probada; nunca autentica.

3
Su IdentidadProvider lo presenta

detectCustomer() devuelve elOpsIQdebe implementarOpsIQ\Platform\IdentityProviderInterface, o el registro silenciosamente lo salta — la misma trampa que el proveedor de contexto.

4
Sus acciones con el sistema de cliente aceptan un cliente_id

Y OpsIQ lo bloquea a la identidad verificada antes de ejecutarlo. El modelo no puede suministrarla.

IdentidadProvider.php — leer la identidad probada, presentarla enOpsIQ's shape
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;
    }
}

Acciones con el cliente: dos cerraduras, ambas necesarias

El modelo nunca debe elegir los datos que lee.OpsIQHace cumplir eso a su lado, y su plataforma debe ejecutarlo en el otro lado también. Una cerradura es un error lejos de una fuga; dos bloqueos son un contrato.

Cerradura1 — OpsIQsobreescribir los parámetros de identidad

Antes de que se ejecute una acción cliente-chat,OpsIQreemplaza cada parámetro en forma de identidad con la identidad del visitante VERIFIED: client_id, clientid, user_id , user _id, account_id to the verified numeric id; client_identifier, customer_dentifier, account/identifier take it as a string; email, cliente_email, customer _email y user_e mail take the verified email.What the model proposed is discarded.

Cerradura2— su plataforma re-scopios cada consulta

Tome el id que le dieron y agreguelo a la cláusula WHERE de cada lectura y cada escritura en esa superficie. Nunca confíe en la referencia en su propia solicitud. Un cliente firmado preguntando por el orden de alguien más debe volver vacío, no prohibido.

Name your parameters so lock 1 can find them

Llámalo cliente_id, no cust o ref. Un parámetroOpsIQno reconoce es un parámetro que no puede 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.

Cierre de página cero: la sonda declarada por 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 — el ajuste de la 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."
}
La sonda es llamada por el navegador

El mismo origen, por lo que no puede llevar un encabezado personalizado. Su autenticación es la sesión de plataforma. Ponlo AHEAD de su puerta de puente-key, manténgalo alejado de los datos del registro, y no devuelve nada para un visitante registrado.

Responde a una forma fija

{"success":true,"authenticated":true,"admin":{...},"identity_token":"..."} — and {"success":false,"authenticated":false,"error":"..."} when nobody is signed in.

No hay secretos de larga vida en la fuente de página

Sólo el token firmado y expiatorio.

Las implementaciones completas para Laravel,WordPress, WHMCS, Symfony y PHP liso, además de los detalles de la Laravel duro y el orden de solución de problemas, están en la página widget admin. Son el mismo código para un sujeto cliente: cambiar la guardia que lee y la clave del tema que firma.

Conectores

Publicación: edición de la carpeta no está publicando

La forma más común de perder una tarde es editar un conector bajo marketplace_connectors/, reinstalarlo y no encontrar nada cambiado. Los instaladores no leen esa carpeta. Ellos sacan un ZIP firmado del catálogo de mercado. Publicar es la secuencia que pone sus cambios en ese ZIP.

¿Por qué la edición no hizo nada

marketplace_connectors/<slug>/ is the SOURCE

Es donde trabajas, nada se instala de ella.

El catálogo tiene un ZIP firmado

Una descarga de instalación que ZIP, verifica la firma y lo desempaqueta. Hasta que reconstruya el ZIP cada instalación sigue recibiendo el paquete antiguo.

El Constructor de Conector publica en otro lugar

It writes into /connectors/<slug>/ on this install. That is a local connector, not a marketplace release. The two paths do not overlap.

La secuencia de liberación

1
Bump la versión en archivos TWO

Ajustes.jsony connector_contract.json. Conformance los compara y falla si el fragmento, la versión o la capacidad se ponen en desacuerdo. Agregue una entrada CHANGELOG.md mientras usted está allí — es un archivo requerido.

2
Re-sincronizar el puente de la snippet

php tools/sync_connector_bridge_snippets.php --apply — only relevant if your package ships bridge/*.php, and mandatory if it does. Skipping it means the panel hands operators the previous bridge.

3
Re-signar cada paquete

php tools/resign_all_connectors. php — la firma cubre los hashes de archivos, por lo que CUALQUIER editar invalida. Firme último, después de que cada archivo sea final.

4
Exportar la clave de firma, luego semilla

El visor muestra cada paquete a medida que construye el ZIP, y se ejecuta en un contexto donde la clave no puede ser leída desde los ajustes — por lo que debe venir del medio ambiente.

5
Redistribuir el archivo del puente, si usted envía uno

Reinstalar el conector actualiza el paquete. NO toca la copia sentada en la webroot del operador. Dígales, en el panel y en el changelog.

Toda la liberación, en orden
# 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
⚠️
Por qué la exportación no es opcional: el signer busca la clave en OPSIQ_CONNECTOR_SIGNING_KEY primero y el conector_signing_key setting segundo. El visor se ejecuta en el bootstrap de SaaS y las herramientas/sign_connector.php botas nada en absoluto, así que tanto en el lector de ajustes no existe — sin variable ambiente no hay ninguna clave, y usted consigue "No hay herramientas de firma del paquete disponible"OpsIQy puede encontrar la llave por su cuenta.

¿Qué naves de verdad?

Sólo ficheros la firma cubre

El ZIP está construido desde la lista de archivos del propio firmante, por lo que un archivo callejero sentado en su carpeta de paquete no se envía. Eso es deliberado: un archivo sin firmar utilizado para viajar a los clientes.

Extensiones cubiertas

Php,json, js ,css, md, txt,html, sh, svg, png, jpg, jpeg, gif, webp, ico, yml, yaml — recursivamente, incluyendo puente/ y pruebas /. firma.jsonpor sí mismo está excluido de los hashes y luego se añade al ZIP para que las instalaciones puedan verificar.

Cualquier otra cosa se reporta como no_paqueted

El verdugo nombra cada archivo que dejó atrás. Lea esa lista. Un archivo que esperaba enviar aparece allí significa una extensión incorrecta o un lugar incorrecto — no un éxito silencioso.

Edición de cualquier archivo cubierto rompe el sello

Incluyendo un archivo de Markdown. Re-signar ese paquete.

Archivos obligatorios en un paquete distributable

connector.php

Debe devolver una instancia de ConnectorInterface.

settings.json

Manifiesto: slug, nombre, versión, manifest_version, compatibilidad, capacidades, connector_contract_versión, ajustes.

connector_contract.json

Contrato legible por máquina. Su conjunto de la función, versión y capacidad debe ser idéntico a los ajustes.json.

README. md, DEVELOPER. mD, CHANGELOG. m

Los tres son revisados para la existencia Y tamaño mínimo. DEVELOPER. md necesita contenido real, no un problema.

Un archivo por capacidad declarada

Cada capacidad denomina el archivo que espera — ContextProvider. php para contexto, IdentityProviders. phpa para identidad, GuestLookupProvidr. phP para guest_lookup y así sucesivamente— a menos que el conector implemente la capacidad en línea.

Nada que parezca una credencial

Conformance escanea los tres archivos Markdown para valores en forma secreta y claves privadas, y falla en un éxito.

Compruébalo antes de enviarlo.

La suite de conformación completa es la misma que se ejecuta una instalación. Chequea el manifiesto contra el contrato canónico, que las capacidades de ejecución y manifestación coinciden, que cada capacidad declarada tiene su archivo y sus métodos, el contrato de identificación en cada archivo de mención, el partido puente-snippet, la higiene del cliente-lookup permitido, la unidad de acción y seguridad de confirmación, y la firma del paquete.

Corre los cuatro antes de cada lanzamiento
# 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
💡
Se espera un fallo y no es un problema: el cheque de firma del paquete reporta una advertencia mientras todavía está editando. Limpia el momento en que vuelve a firmar. Cada otro fracaso es real.
Conectores

Paquete de conectores y referencia del ciclo de vida

Este es el contrato a nivel de código fuente para crear un conector que OpsIQ puede descubrir, configurar, validar, habilitar, ejecutar, probar, firmar y distribuir.

Referencia para desarrolladores
Paquete de conectorUn paquete de conector tiene una implementación y un manifiesto del conector requeridos, con acciones opcionales, recetas, conocimientos, recursos y metadatos de firma.Paquete de conectordeveloperMANIFESTv1LIFECYCLEAdministradoTRABAJOAlcanceVISTA DE ESPACIO DE TRABAJO EN DIRECTOconnector.phpClase de conector / fábricaNecesariasettings.jsonEsquema de manifiesto y configuraciónNecesariaactions.jsonDefiniciones de acciónOpcionalsignature.jsonMetadatos de firma del paqueteLanzamiento1DECLAREManifiesto y capacidades2IMPLEMENTCiclo de vida y proveedores3VALIDATEPrueba, señal, paquete
Un paquete de conector tiene una implementación y un manifiesto del conector requeridos, con acciones opcionales, recetas, conocimientos, recursos y metadatos de firma.

Paquete mínimo

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 manifiesto

settings.json Utiliza la versión de manifiesto 1. El validador espera un slug, nombre, versión, manifest_version, compatibilidad, descripción y capacidades. opsiq_min y opsiq_maxEl estado de liberación es uno de los production, beta, vista previa o templateLos paquetes antiguos pueden normalizarse con advertencias, pero un nuevo paquete debería pasar sin advertencia alguna.

Interfaz del conector de la base

  • Identidad y configuración: slug(), name(), description(), capabilities(), settingsSchema(), testConnection().
  • Ciclo de vida: onEnable() y onDisable()La desactivación debe ser no destructiva; la purga de datos es una operación deliberada separada.
  • Entrada / sincronización: handleWebhook(), poll(), backfill()Poll maneja el trabajo incremental; backfill importa la historia y debe ser seguro para repetir.
  • Soporte: pushReply() donde la plataforma acepta respuestas.
  • Medidas: registerActions() Suministra contratos de acción ejecutable.
  • Seguridad: securityCapabilities(), syncBlockedIp(), removeBlockedIp(), testSecuritySync().

La base abstracta también ofrece relleno opcional en trozos, listado de clientes, descubrimiento/creación de cuentas de correo electrónico, suscriptores, detección de administrador/cliente, proveedores de facturación/contexto/identidad, extracción de respuestas, reintento de llamadas HTTP, acceso a ruta JSON, clasificación difusa y ayudantes de paginación.

Capacidades y autenticación

Los nombres de las capacidades admitidas incluyen acciones, desencadenadores, contexto, identidad, ventas, facturación, inbound_ticket, outbound_reply, sincronización_usuarios, sync_departments, eventos_de_seguridad, customer_import, bloque_nativo_de-seguridade, promo_audience, feed_promocional, correo_electrónico, native_api, ai_brain_aware y ai_tickets. API clave, portador, básico, HMAC,OAuth 2credenciales del cliente,OAuth 2Código de autorización y plantillas de autenticación personalizadas.

Ciclo de vida del registro

  1. Discovery carga el paquete y valida su manifiesto.
  2. La configuración se almacena por espacio de trabajo; los secretos están cifrados.
  3. La prueba de conexión comprueba las credenciales sin habilitar el conector.
  4. Habilitar las llamadas onEnable(), sincroniza las definiciones de acción y puede iniciar el relleno inicial.
  5. La ejecución de sondeo/webhook/suscriptor siempre lleva el contexto del espacio de trabajo.
  6. Desactivar las llamadas onDisable() y detiene la actividad sin eliminar los datos importados.
  7. Purgar es una operación explícita separada.

Reglas de corrección

  • Usa la clave de espacio de trabajo/sitio en cada lectura, escritura, clave de caché, claves de deduplicación y búsqueda de webhook.
  • Registre un ID externo/ID de evento siempre que la plataforma lo proporcione, y luego utilice el mismo para cada una de las acciones.
  • Para sistemas remotos, utilice suAPI; nunca asuma sus tablas de bases de datos existen enOpsIQconexión.
  • Nunca exponga secretos, rastros de proveedores sin procesar ni la existencia de otro espacio de trabajo.
  • Declara solo las capacidades que el paquete realmente implementa. actions.json El catálogo no hace una acción utilizable hasta que el conector está instalado, habilitado, configurado y su conexión es válida.

Pruebas y lanzamiento

Ejecuta PHP lint, validación de manifiesto, pruebas de conexión, prueba de esquema de acción, prueba para firmar/reproducir webhook, prueba del aislamiento del espacio de trabajo, prueba backfill-repeat, prueba disabled-connector y prueba error/reintentar. Un paquete de marketplace debe estar firmado y verificado, incluir la documentación de configuración/permisos/webhook e indicar su verdadero estado de publicación.

Conectores

Recetas de conector

Recetas paso a paso para configuraciones de conectores comunes.

Recetas
Receta de conectorUna receta de configuración Shopify como una lista de verificación: crear aplicación, conceder ámbitos, pegar token y prueba, habilitar webhooks, realizar un pedido de prueba.Receta de conectorShopifyReceta · Shopify con webhooksCrear una aplicación personalizada en Shopify adminÁmbitos de concesión: read_orders, read_customers…Pegue el dominio de la tienda + token, haga clic en TestHabilitar sincronización de Webhook (registro automático de pedidos)Realizar un pedido de prueba → aparece en Ventas en 30s1STEP BY STEPRecetas de copiar y pegar2REAL PLATFORMSShopify · WHMCS · Stripe · Pago seguro3VERIFYEl orden de prueba se muestra en 30s
Cada receta es una lista de verificación que sigues arriba a abajo, aquí, Shopify con los juegos web en tiempo real verificados por un pedido de prueba.

Receta: Shopify con webhooks en tiempo real

Escenario:
Goal: Connect Shopify with automatic order sync and GDPR compliance.
Qué hacer:

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.

Receta: WHMCS integración

Escenario:
Goal: Connect WHMCS so AI can look up clients, services, tickets, and invoices.
Qué hacer:

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.

Receta: Pagos de Stripe

Escenario:
Goal: Track Stripe payments and let AI look up transactions.
Qué hacer:

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.

Receta: Perfil de Negocio en Google

Escenario:
Goal: Connect GBP for review management, posts, and insights.
Qué hacer:

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

Extienda el CRM y la inteligencia del sitio

OpsIQ subsistemas están abiertos para la extensión. Un conector puede conectar una nueva capacidad en el CRM o Site Intelligence sin cambios a OpsIQ núcleo, a través del registro de la capacidad de plataforma (\OpsIQ\Platform\CapabilityRegistry). Declarar la capacidad, implementar su pequeño conjunto de métodos, enviar el conector,OpsIQ lo descubre y lo conecta a la interfaz de usuario, el cliente 360 timeline y los avisos de instalación.

Extender CRM y SI
Capacidades de la plataformaUn conector en los autobuses de capacidad de alimentación izquierda (CRM, Site Intelligence, Analytics) descubiertos por el Registro de Capacidades.Capacidades de la plataformaespacio de trabajoSu conector de redDeclara capacidadesCRMcalendario · enriquecimiento · esign · pagos · buzónInteligencia del SitioLocal_listing · Ranking de la páginaAnálisisweb_analítica · reporte &gt; ingertCapacidadRegistrLo descubre y conecta la interfaz de usuario + línea de tiempo1DECLARECapacidades, no ediciones básicas2PLUG INCRM · SI · Buses de análisis3AUTO-WIREDInterfaz de usuario, línea de tiempo, mensajes
Un conector declara capacidades (calendario, enriquecimiento, datos de rango, análisis...) y OpsIQ auto-los lleva a CRM y Site Intelligence, sin cambios de núcleo.

Declarar capacidades

Declarativo (configuración.json)

Añadir un comentario <domain>_capabilities array, mejor para conectores sin código/mercado. crm, site_intelligence.

En código (connector. php)

Aplicación crmCapabilities() / siCapabilities() Devolver los mismos descriptores.

Declarar un proveedor de calendario CRM (settings.json)

Escenario:
Goal: make a calendar connector appear in the CRM Schedule-meeting panel.
Qué hacer:

"crm_capabilities": [ { "type": "calendar", "label": "Calendar (Acme)", "actions": ["createEvent","listEvents","freeBusy"], "requires_auth": true } ]

Declarar un proveedor de inteligencia del sitio (settings.json)

Escenario:
Goal: feed local-listing data into Site Intelligence.
Qué hacer:

"site_intelligence_capabilities": [ { "type": "local_listing", "actions": ["listLocations","listReviews","getInsights"], "requires_auth": true } ]

Buses de capacidad y su superficie de método

CRM / calendario

createEvent($settings,$params) → {success,id_evento,enlace_html,enllaz_de_reunión}; listEvents; freeBusy. Impulsado por \OpsIQ\CRM\CalendarBridge.

CRM / enriquecimiento

enrich($settings,$params) → {success,traits}. Impulsado por \OpsIQ\CRM\EnrichmentBridge (también se ejecuta automáticamente en la creación de compañía cuando un proveedor está conectado).

CRM / Gestión de la calidad

sendForSignature($settings,$params) → {success,envelope_id,sign_url}. Desarrollado por \OpsIQ\CRM\EsignBridge.

Sitio de inteligencia / local_listing

listLocations, listReviews, getInsights. Se envía a través del conector de Google Business Profile.

Sitio de inteligencia / Rank_Data

keywordRanks($settings,$params) → {success,ranks}. Impulsado por \OpsIQ\SiteIntelligence\RankDataBridge. Enviados: conector SerpApi.

Analítica web / analítica_web

report($settings,$params) (sincronización / exportación) + ingest($settings,$events) (importación). Conducido por \OpsIQ\Analytics\WebAnalíticaBridge. Naves: Google Analytics (GA4) conector. Datos API para informes, Protocolo de Medición para importación. Análisis está abierto para conectores como CRM + Inteligencia del Sitio (dominio analytics / analytics_capabilities).

Pagos / Proveedor de pago

listPayments, customerPayments, createPaymentLink. Conducido por \OpsIQ\Pagos\PaymentsBridge. Mostrar los pagos de un cliente en elCRMtimeline + enviar un enlace de pago en un acuerdo.StripeConector de pagos. payments / payments_capabilities.

Buzón de correo / email_sync

listMessages + sendMessage. Conducido por \OpsIQ\Mailbox\Mail boxBridge. Los correos electrónicos del cliente en el Cliente 360 timeline + enviar correo electrónico de un acuerdo. Se envía: Gmail + Outlook/Microsoft 365 conectores. mailbox / mailbox_capabilities.

Aplicación compartida OAuth + UNA redirección

Todos los conectores de Google comparten ONE app via \OpsIQ\OAuth\SharedGoogleApp. Set google_oauth_client_id/_secret una vez y Calendario, Análisis, Perfil de Negocios + Gmail todos los campos de trabajo (los campos "(opcional)" son anulaciones). También comparten ONE redirección URI, <site>/connectors.php?oauth=callback (no per-connector slug), porque Google expone no API a) Añadiendo redirección de URIs a una aplicación; OpsIQ recupera el conector de la firma OAuth state Registra ese único URI una vez y cada conector de Google (presente + futuro) autoriza sin más configuración en la consola. Return SharedGoogleApp::resolve(...)’s redirect_uri Desde tu casa oauthParams()Los conectores de Microsoft hacen lo mismo a través de \, pero no se puede hacer esto en el código.OpsIQ\OAuth\SharedMicrosoftApp (Aplicación compartida de Microsoft)microsoft_oauth_*).

Los botones de importación están limitados por capacidades

El Importación (relleno histórico) y Clientes de importación Los botones muestran SOLO para conectores que realmente los implementan, detectados por reflexión, así que no hay bandera que declarar. backfill() o backfillChunk() Para ganar el botón Importar; sobrescribir listCustomers() (volver {email, first_name, …} páginas) para ganar clientes de importación. Heredar el AbstractConnector no-op y el botón permanece oculto, por lo que la IU nunca ofrece una importación que un conector no puede realizar.

IA en todos los autobuses

El agente de CRM propone y publica reuniones fuera de las señales del acuerdo (\OpsIQ\CRM\MeetingProposer → CalendarBridge), y auto-enriquece nuevas cuentas, la "AI opera el bucle CRM", ejecutado en autobuses conectores.

Búsqueda de tickets en el chat del cliente (fetchTicket())

Dos niveles, sin cambios básicos

Cuando un visitante hace referencia a un número de ticket en el chat del cliente ("¿cuál es el estado de T-000123?"), OpsIQ Lo resuelve en dos niveles. Nivel 1 lee la tienda compartida OpsIQ _, cada conector con inbound_ticket El cliente refleja sus tickets allí, por lo que los tickets sincronizados solo funcionan para TODOS los conectores con cero código por conector. Nivel 2 Este es un fallback en vivo para tickets VIEJOS que nunca fueron reflejados: llamadas de núcleo OPCIONAL fetchTicket() En cada conector habilitado que lo implementa. Es duck-typed (descubierto por method_exists(), como contextProviders()/audienceCatalog()), por lo que el firmado ConnectorInterface El conector no está tocado y los conectores que no lo necesitan (fuentes de correo electrónico/chat que crean tickets nativamente) simplemente lo omiten.

⚠️
La propiedad es obligatoria y usted debe hacerla cumplir. fetchTicket() Recibe la identidad VERIFICACIÓN del visitante en $ctx (client_id + client_email, la misma identidad verificada que utiliza el chat cliente AI). Resuelva al cliente de la plataforma de esa identidad y consulta SOLAMENTE que los boletos del cliente, luego vuelva a comprobar la propiedad en el registro de detalles. null en cualquier falta, desajuste o error, nunca los datos de otro cliente. null se degrada con gracia a "no pude encontrar ese boleto".
connector.php, el contrato fetchTicket() (referencia: conectores/whmcs y 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
    }
}

Cómo la utiliza la plataforma

Descubrimiento

CapabilityRegistry::providers($domain,$type) muestra los proveedores con el estado instalado/habilitado/listo (basado en sistemas de archivos; DB solo para la bandera habilitada).

Selección

CapabilityRegistry::active($domain,$type) devuelve al primer proveedor listo con su conector cargado y configuración. Los puentes llaman a esto en lugar de los fragmentos de codificación dura.

Notificar para instalar

Cuando una característica necesita una capacidad que no está conectada todavía, la interfaz de usuario muestra un solo clic Connect/Install prompt, nunca un control muerto.

Guía completa

Ver connectors/PLATFORM_CONNECTORS.md (CRM + Inteligencia del Sitio) y connectors/CRM_CONNECTORS.md En el paquete.

Conectores

Búsquedas y reembolsos de autoservicio del cliente (crea tu conector para el chat del cliente)

Signed-in customers can ask the customer chat AI about their OWN account ("my balance", "my orders", "did support answer my ticket") and, if the business enables it, request refunds. All of it is powered by YOUR connector's declarations: no OpsIQ core changes, no platform hardcoding. The AI calls your lookups as native tools (it cannot invent one), identity is locked server-side to the verified customer, and results are automatically trimmed for the AI.

Declarar una búsqueda de cliente

En tu casa actions.json, una acción de solo lectura se convierte en llamada por el cliente con TODOS LOS TRES: "scope":"client", "requires_confirmation":false, "is_destructive":false. Uso "scope":"both" cuando la misma búsqueda también debe ser llamada por su equipo en el Admin AI. El vocabulario completo es admin, client, both y system (system no llega a ninguna inteligencia artificialAPIcualquier otra cosa es rechazada directamente: la validación del paquete falla y la acción no se instala. No hay ningún writing alcance - el asistente de escritura se sirve admin conjunto de acción.

La regla de identidad (obligatorio)

Nombre el parámetro de identidad del conjunto estándar. Encerrado a la id numérica verificada: client_id, clientid, customer_id, user_id, userid, account_idEncerrado a ese id como una cuerda: client_identifier, customer_identifier, account_identifier. Encerrado al correo electrónico verificado: email, client_email, customer_email, user_emailOpsIQ bloquea y rellena automáticamente el nombre del cliente que ha iniciado sesión en la plataforma; la IA nunca ve ni elige la identidad. Un nombre no estándar falla al cerrarse (se deniega, nunca se filtra).

Lo que debe permanecer solo para administradores

Cualquier cosa que no esté dentro del ámbito de esa identidad: fetch-by-bare-id (order_id/ticket_id solos), listas de tiendas, búsquedas de texto libre. Esas son filtraciones de carga cruzada en cualquier plataforma. "scope":"admin".

Efecto de la formación (claves de alcantarillado)

Los resultados de la búsqueda son estructuralmente recortados antes de llegar a la IA: se eliminan las teclas en forma secreta, se caen largas cadenas y listas, los campos en blanco se podan, y un mapa plano más ancho que el gorro clave mantiene su las teclas de respuesta primero, dinero (credit, balance, amount, total, due, paid), identidad (email, *name, phone, company), estado (status, active, expir*, renew*), fechas, campos de plan/producto/dominio/servicio/suscripción/orden/invocación/tiborto, moneda, conteos y stats/summary/totals, antes de que cualquier asiento restante vaya a otras teclas más pequeñas-valor-primero. Orientación práctica: nombre sus campos con ese vocabulario estándar y devolver los campos que responden a la pregunta del cliente en lugar de un vertedero de plataforma 100_-key crudo; un campo llamado fuera del vocabulario compite para los asientos sobrantes y puede ser recortado desde cargas muy amplias.

Reembolsos · lo que su conector proporciona

Dos operaciones sin procesar, libres de políticas: (1) una lectura de verificación de pago filtrable por identidad Y una referencia de transacción (su API Debe Y los filtros), p. ej. whmcs_get_transactions; (2) una acción de ejecución de reembolso (scope:"admin", requires_confirmation:true, is_destructive:true, nunca expuesto al cliente), por ejemplo. whmcs_refund_orderLa empresa elige ambas claves en Configuración → Chat del cliente; OpsIQ vuelve a verificar el lado del servidor de pago, aplica la casilla de política de la empresa (tope de cantidad, ventana de edad, límite mensual), problemas dentro de la caja y archiva un ticket de revisión para todo lo demás.

Enrutamiento por Departamento según el Destinatario

El editor de acciones del generador de conectores tiene los mismos controles: establece "Quién puede usarlo" en Clientes que han iniciado sesión, deja desactivadas ambas casillas de verificación de escritura y usa un nombre de parámetro de identidad estándar.

Implementaciones de referencia

Las entradas de "Autoservicio del cliente" en connectors/whmcs/actions.json, woocommerce/actions.json, oscommerce/actions.json; contrato completo en connectors/README.md §8.1–8.2 y ConnectorInterface::registerActions().

Conectores

Buscador de invitados — permite que los visitantes rastreen una reserva, envío o pedido SIN firmar en (guest_lookup)

Hoteles, correos y muchas plataformas comerciales sirven a clientes que tienen una referencia pero no se accede: un huésped con confirmación de reserva, un destinatario con un número de seguimiento. guest_lookup la capacidad (Contrato Connector, modo: generado) permite que SU conector sirva a los visitantes en el chat cliente AI — noOpsIQcambios de núcleo, sin codificación de plataformas. Su conector declara QUÉ prueba el derecho y los campos WHICH son visibles;OpsIQimpone los interruptores, el acelerador y la negación uniforme.

El modelo de confianza

Referencia + prueba, nunca identidad

El visitante suministra la referencia record (acoplada por el regex que declara) más la prueba que eliges, normalmente el correo electrónico en el registro. Su acción de captura recupera el registro SERVER-SIDE por referencia; OpsIQ_ el proveedor generado compara la prueba con el registro FETCHED. La entrada del visitante nunca se confía y no se crea ninguna identidad verificada: el partido da derecho al visitante a ese campo único, nada permitido.

Niegue uniforme (sin oráculo de enumeración)

La IA está explícitamente instruida para confirmar si existe una referencia y nunca inventar detalles de registro. Los intentos están limitados por tasa por conversación + IP por núcleo antes de que se consulte a su conector.

Doble opción, ambos por defecto OFF

Nada sirve a los huéspedes hasta que el negocio permite conmutadores BOTH: el control de espacio-tarea en Ajustes→Seguridad→"Buscar registros de clientes en chat cliente" (permiso y siempre confirmado por contraseña, incluso cuando se ha apagado el paso opcional), y su propio conector guest_lookup_enabled configuración de la red. Instalar o habilitar un conector solo nunca abre la superficie del huésped.

La superficie de invitados dedicada

El proveedor generado registra en los guest de la superficie del contexto, estructuralmente separada admin y customer. Los proveedores de contexto existentes nunca son consultados para visitantes anónimos, y el proveedor invitado nunca es consultado por los firmados en uno. El ctx que recibe lleva el mensaje de chat, el hilo id y el correo electrónico pre-chat del visitante afirmado (sinverificado) como candidato a prueba — no campos de identidad.

Declarándolo en el Constructor

1
Definir la acción de la hembra

En el paso Acciones, agregue una acción sólo de lectura que devuelve UN registro por su referencia (por ejemplo. GET /bookings/{booking_number}) y mapea sus campos de respuesta con alias: estado, llegada, salida, room_type, customer_email...

2
Tick "Guest lookups"

En el paso de la capacidad, guest_lookup. Aparece un panel dedicado: elegir la acción de embrague, nombrar el parámetro referencia, dar el patrón de referencia (un cuerpo regex como \bBK-[0-9]{4,10}\b), nombre el registro ("reserva") y seleccione la prueba — correo electrónico en el registro (recomendado) o ninguno (referencia sola, para seguimiento de mensajería únicamente).

3
Permitir los campos visibles

Todo lo demás es DROPPED — nunca redactó. El Builder rechaza los campos en forma de PII (email, teléfono, dirección, pago...) en el persista y la suite de conformidad de puerta de lanzamiento re-checks la misma regla antes de publicar, por lo que una espectaculo hecha a mano no puede colarse uno en. Tenga en cuenta que la validación de tiempo de instalación cubre el manifiesto y la firma sólo se muestra, así que ejecutar la propiamente.

4
Publish and enable

El Constructor emite GuestLookupProvider.php — la aplicación canónica endurecida, idéntica para cada paquete generado— y añade el guest_lookup_enabled el negocio arma los dos interruptores y la chat AI comienza a ofrecer la apariencia cuando un visitante pregunta sobre su tipo de registro.

Reglas de contrato

Campos en forma de estado únicamente

Piense "qué sería una impresión de mensajería en la página de seguimiento público": estado, fechas, categoría de habitación o servicio, cuenta. Nombres, datos de contacto, direcciones callejeras, información de pago y notas de texto libre no tienen lugar en un chat anónimo — el Constructor y la conformidad ambos los rechazan.

La AI responde SOLAMENTE desde el bloque

El proveedor generado termina su salida con una instrucción para responder sólo de los campos enumerados y ofrecer un ticket para cualquier otra cosa. Detalle no en el permitido es "no disponible en chat" — por diseño.

Los seguimientos siguen funcionando

El proveedor re-derives la referencia de los mensajes recientes del visitante en la misma conversación, así que "y cuándo es el check-out?" funciona sin volver a escribir la referencia. La referencia y el correo electrónico de prueba coinciden se recuerdan en el hilo de chat como CANDIDATES, por lo que las medidas de seguimiento no vuelven a montarse. Son sólo candidatos: cada vuelta todavía vuelve a crear el lado del servidor registrado y vuelve a completar un campo único antes de liberación.

Paquetes autorizados a mano

Un paquete de mercado puede enviar su propio GuestLookupProvider.php implementing ContextProviderInterface con surfaces(): ['guest']. Seguir el contrato de la plantilla generada exactamente — buscar por referencia, lado del servidor de prueba-match, negar uniforme, salida sólo para listas de permisos— y declarar guest_lookup in capabilities. Conformance verifica la superficie de invitados y escanea el perímetro para PII.

💡
Los buscadores de invitados son contextos sólo leídos para el chat AI. Nunca ejecutan acciones, nunca crean identidades y nunca desbloquean la ruta de acción del cliente autoservicio arriba — ese camino todavía requiere un cliente firmado-en-en plataforma.
Conectores

Segmentación de audiencia de promoción (promo_audience)

Let the Promotion Studio target campaigns by LIVE client and billing state from YOUR platform: "has an unpaid invoice", "order pending", "subscription cancelled". Any connector (pre-installed, marketplace, or one you build yourself) joins by implementing two small methods. No OpsIQ core changes, no platform hardcoding: your connector appears as a platform in the studio Targeting tab with its own dropdown of facts, and several connectors can be enabled side by side.

Audiencia de promoción
Segmentación de la audiencia de promociónUna identidad verificada pasada a una llamada de conector audienceFlags que produce hechos que impulsan una regla de orientación, con una nota de cierre por error.Segmentación de la audiencia de promociónespacio de trabajoConectadoIdentidad verificadapublicFlags()Seleccione su conectorHECHOSunpaid_invoices = 2REGLAFacturas impagadas ≥ 1Espectáculos de campañaFalla cerrada: cliente desconocido o cualquier error → la campaña permanece oculta.1TWO METHODSAudienciaCatálogo + Banderas2LIVE STATENo pagado, pendiente, estado3FAIL-SAFENunca muestra a la persona equivocada
Su conector responde a los hechos de facturación en vivo para el visitante conectado; el estudio se dirige hacia ellos, y falla cerrado por lo que una oferta de facturas nunca llega a la persona equivocada.

Cómo funciona

1
Declare sus hechos

Implementa audienceCatalog() en tu clase de conector. Devuelve una etiqueta y la lista de claves que puede responder tu plataforma, cada una de las cuales aparece en el menú desplegable del estudio debajo del nombre de tu plataforma.

2
Respuesta para un 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
Hecho

En la pestaña Targeting de Promotion Studio se crea una sección "Cliente y facturación" en la que aparece tu plataforma; los administradores pueden crear reglas como "facturas_no_pagadas >= 1"; cada hecho también se convierte en una variable de personalización como {unpaid_invoices}.

conector. php, el contrato promo_audience completo
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'],
    ];
}

Reglas de contrato

Anunciar la capacidad

Añadir 'promo_audience' A tu conector capabilities() La matriz preinstalada para que la plataforma y el mercado lo listan como capaz de audiencia (el descubrimiento también funciona desde la presencia del método, pero declararlo es la señal limpia). connectors/whmcs El conector es la implementación de referencia completa.

Nombramiento de claves

Minúsculas snake_case, 2-60 Las claves no declaradas devueltas por audienceFlags() todavía se pueden utilizar en las reglas, pero debes declarar todo lo que admites para que los administradores puedan verlo.

La identidad se verifica

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.

Cerrado en el velo · siempre

En cualquier error (API down, client not found, timeout) devuelve []. Una regla cuyo hecho falte hace que la campaña NO se muestre. Un popup dirigido a facturación nunca debe llegar a la persona equivocada; OpsIQ Esto también se aplica en el emparejador de reglas.

Rendimiento

La función audienceFlags() se llama como máximo una vez por conector y vista de página, y SOLO cuando una campaña publicada utiliza realmente las reglas de tu plataforma. Los visitantes anónimos no te cuestan nada en llamadas. 1-2 API llamadas; OpsIQ Memoizes dentro de la solicitud.

Operadores proporcionados de forma gratuita

Los administradores combinan tus teclas con =, !=, √≥, нелит=, se establece, está vacío, sólo proporciona valores.

Tokens de personalización

Cada hecho se duplica como una variable en el texto de la campaña: {unpaid_invoices}, {client_status}, además de los componentes incorporados. {first_name} and {client_email}. Los valores se desinfectan antes del procesamiento.

Conectores de mercado sin código

Hechos automáticos

Declarative (JSON Los conectores de marketplace obtienen promo_audience GRATIS: si su conector declara recursos de clientes/usuarios, facturas, pedidos o suscripciones, OpsIQ Deriva customer_status, unpaid_invoices, amount_due, pending_orders, active_subscriptions y subscription_status de tus acciones de búsqueda existentes.

Catálogo personalizado (settings.json)

Añadir un objeto de audiencia_capacidades · {"bel": "Mi Plataforma", "keys": [{"key": 'open_carts', "label" : "libros abiertos", "tipo":"numerario"}]}, para controlar exactamente qué hechos (y etiquetas) aparecen en el estudio desplegable.

Prueba de tu proveedor

1
Habilitar el conector

Conector √≥ tu conector нели Enable. A continuación, abre la pestaña de destino de cualquier campaña. Su plataforma debe aparecer bajo "Client &amp; billing (connectors)".

2
Crear una regla

Añade: Tu plataforma · una clave · >= · 1 y establece "Solo clientes conectados". Guarda y publica.

3
Verificar ambas direcciones

Inicie sesión en su plataforma como cliente que coincide con la regla (el pop-up debe mostrarse) y como uno que no lo hace (el popup debe permanecer oculto).

Desencadenamiento de una campaña desde su propio código (desencadenador personalizado)

¿Por qué?

Más allá de los desencadenantes incorporados (desviar, desplazamiento, salida-intent, ocioso, clic, páginas vistas, chat / actividad de ticket), puede disparar una campaña desde cualquier lugar en su sitio o conexión frontal, después de un paso exitoso de checkout, cuando se abandona un carrito, cuando su SPA cambia la ruta, etc.

¿Cómo?

Establecer el desencadenador de la campaña en Personalizado con un nombre de evento (p. ej. checkout_failed), luego llama al gancho global desde tu página:

Crear un sitio web / 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');
💡
Firing an event never bypasses targeting or frequency. It only releases the “when”. La campaña todavía tiene que pasar cada regla (geo, audiencia, consentimiento, caps) antes de que se muestre.
La guía completa de cómo usar (diseño, bloques, análisis, A/B, publicación) está en el Centro de ayuda dentro de la aplicación bajo Engage → Promoción Estudio. La capacidad aquí se descubre automáticamente desde cualquier conector ENABLED en conectores/ o marketplace_connectors/. No hay nada que registrarse. Envíe los dos métodos y el estudio hace el resto.
Conectores

Capacidad de conector de encuesta (Contrato 2.2)

El survey Esta capacidad permite a cualquier plataforma suministrar adaptadores de identidad del cliente verificados, datos sobre la audiencia, variables seguras y candidatos de destinatarios a Survey Studio. promo_audience y no otorga a un conector la propiedad de las encuestas, respuestas, análisis o entrega de correo electrónico.

💡
La creación está completa y utilizable hoy: Contrato de conector 2.2, SurveyConnectorInterface, el panel de Constructor dedicado, generado SurveyProvider.php, los metadatos del paquete y el aislamiento de conformidad de todo el buque. SurveyConnectorRegistry Se implementa y se prueba, pero ningún tiempo de ejecución de Survey lo llama todavía, por lo que el estado del proveedor no aparece en la interfaz de usuario de administración y ningún paquete de conector publicado declara la capacidad. La emisión de tokens firmados de Gateway de identidad de Survey, la orientación y la integración variable, la materialización de CRM Outreach y las primeras asignaciones de proveedores enviadas siguen siendo fases separadas. Compile ahora este contrato; espere que el tiempo de ejecutar comience a consumirlo en una versión posterior.

Responsabilidades del proveedor

Catálogo de audiencia y datos

Los hechos típicos incluyen order_count, last_order_status, canceled_order _count, customer_created_at, active_subscription_count y open_ticket_count. Los datos canónicos son los que se utilizan para determinar si un cliente ha recibido una factura o no.

Catálogo de variables y valores

Declare variables de cliente, cuenta, pedido, suscripción y soporte con el tipo, la sensibilidad y el contexto permitido. La copia de encuesta requiere fallbacks y escapes de contexto de salida.

Paginación de destinatarios

Opcionalmente, enumera candidatos para el alcance de CRM con ID externos estables, páginas limitadas, cursores deterministas y metadatos relacionados con el consentimiento.

Identidad

Solo acepta identidades de Survey Identity Gateway después de la firma del token, el vencimiento, el propósito, el conector y la verificación del espacio de trabajo. El correo electrónico, ID, etiquetas o datos de facturación proporcionados por el navegador nunca son autorizados.

Salud en tiempo de ejecución

SurveyConnectorRegistry está diseñado para informar de proveedores compatibles, bloqueados y no disponibles sin exponer configuraciones, rutas, identidades en bruto o mensajes de excepción. Un proveedor bloqueado nunca se puede invocar. La superficie de informes aún no está expuesta en la interfaz de usuario de administración: hoy un proveedor bloqueada es simplemente inerte.

Reglas de cierre por fallo

Se rechazan las claves no declaradas, los tipos incorrectos, los valores de gran tamaño, las incompatibilidades entre temas, los tiempos de espera del conector y las identidades desconocidas. Una regla de orientación que necesite un hecho no disponible no coincide. Las páginas destinatarias se limitan y auditan.

Puerta de liberación del constructor

Contrato 2.2 envía la entrada de registro de capacidad, interfaz, panel de mapeo de encuestas, generado SurveyProvider.php, versión de la función, README/referencia del desarrollador y accesorios de conformidad. Los perfiles PHP locales, el puente SaaS, los perfiles de comercio y helpdesk lo incluyen; los conectores estándar API optan por participar.

💡
La copia de la promoción es solo para importación: el creador puede traducir las asignaciones compatibles de la Promoción una vez, guardar una copia completa que sea propiedad del cuestionario y registrar la procedencia.
Conectores

Capacidad de respuesta (Contracto 2.2)

El reply_feedback La capacidad refleja las propias calificaciones por respuesta de una plataforma en OpsIQ. Una estrella un cliente da una respuesta del personal dentro WHMCS El área del cliente de's aterriza en la MISMA respuesta en el.OpsIQ Hilo de administración, con el mismo chip, crédito del agente, entrada en la página de comentarios y cálculo de equipo y rendimiento como una calificación dada en un.OpsIQ Un almacenamiento, un chip y una canalización; el conector solo traduce.

La ruta de escritura única

Hay exactamente dos rutas de entrada y una verdad. OpsIQ Los tickets del portal escriben nativamente, los tickets de la plataforma fluyen a través del conector y el núcleo aterrizará cada evento vía ReplyFeedback::recordMirrored(): las mismas columnas, regla de sólo personal, semántica de un solo golpe por último, sello del espacio de trabajo y Voz del cliente indexando el portal escribe usos. Un conector nunca escribe filas de retroalimentación en sí mismo.

Conformidad (cuatro archivos, luego volver a firmar)

1
connector_contract.json

Añade la entrada capabilities. reply_feedback: versión 1.0, el ReplyFeedbackConnectorInterface, los métodos replyFeed backCatalog y pullReplyFeedBack, implica inbound_ticket.

2
settings.json

Añadir reply_feedback a la lista de capacidades. Esto es lo que el descubrimiento del conector lee.

3
spec.json

Declare reply_feedback. modes (poll and/or webhook) y la escala de calificación de la plataforma. Esto es lo que lee la puerta de conformación.

4
Clase de tiempo de ejecución

Implemente la interfaz, liste reply_feedback en capabilities(), y luego vuelva a firmar el paquete.

Responsabilidades del proveedor

Catálogo

Declarar modos, la propia escala de calificación de la plataforma (el núcleo se normaliza al 1-5), y cualquier token de reacción. El catálogo debe estar de acuerdo con las especificaciones.json.

Traducción de Pull

pullReplyFeedback devuelve eventos canónicos: ticket de plataforma id, respuesta de la plataforma ide, calificación, reacción opcional / compromiso, tiempo presentado y un event_id estable. Lee y traduce. Nunca escribe.

Idempotencia

event_id es estable por feedback STATE, así que un evento repetido no se puede ejecutar y una calificación cambiada sobrescribe (las últimas victorias, como el portal).

Disciplina del cursor

Las páginas están delimitadas y son deterministas; un cursor que no avanza termina la ejecución, el relleno histórico se drena como una ventana rodante, nunca en un tirón gigante.

Seguridad de la sonda

Sin configuración, devuelve una página completa vacía en lugar de lanzar. Las sondas de corredor conformaciones con argumentos vacíos.

Resolución de cierre por fallo

El núcleo resuelve cada evento a una respuesta local por el marcador de réplica que la réplica del ticket ya estampa (<slug>:<ticket>:reply:<reply>). Un evento que no puede resolverse se retira, nunca se adivina; la retroalimentación sólo se adjunta a las respuestas del personal; y el crédito de agente siempre viene del autor existente de la respuesta. inbound_ticket o ticket_mirror.

Ejemplo de trabajo: WHMCS

WHMCS almacena las calificaciones de estrellas por respuesta en el área del cliente tblticketreplies.rating. The WHMCS El conector declara el modo de sondeo con un. 1-5 Escala, barcos a ticket_reply_ratings El comando relay en su archivo de puente, y traduce cada fila a un evento cuyos ids coinciden con los whmcs:<ticket>:reply:<reply> Después de actualizar el conector, vuelva a copiar el archivo del puente al servidor WHMCS para que el nuevo comando exista allí.

💡
Contrato completo de desarrollador con la interfaz, formas de eventos, reglas de normalización y lista de verificación de conformidad: doc/contracts/TICKET_REPLY_FEEDBACK_CAPABILITY.md en el OpsIQ Aceptación: calificar una respuesta dentro de la plataforma, esperar a la encuesta horaria y la misma respuesta en.OpsIQ La pantalla muestra el chip, la página de comentarios lo enumera y un evento repetido no cambia nada.
Conectores

Mercado de conectores

El Marketplace le permite descubrir, instalar y publicar conectores creados por la comunidad.

Mercado
Mercado de conectoresUna cuadrícula de búsqueda de tarjetas conector comunitarias con categorías, botones de instalación y clasificaciones por estrellas.Mercado de conectoresespacio de trabajoBuscar conectores…CalendlyProgramaciónInstalar★ 4.8HubSpotCRMInstalar★ 4.6MailchimpCorreo electrónicoInstalar★ 4.7QuickBooksContabilidadInstalar★ 4.5TwilioSMSInstalar★ 4.9NociónDocumentosInstalar★ 4.41DISCOVERConectores de la comunidad2INSTALLCon un clic3PUBLISHFirma y envía la tuya
Busque conectores comunitarios, instale en un clic o firme y publique sus propios tiers preinstalados y de mercado tanto disponibles.

Buscar e instalar conectores

1
Navegar

Vaya a Conectores > Marketplace. Busque por nombre, categoría o plataforma.

2
Examen

Compruebe la descripción, las acciones admitidas y las calificaciones.

3
Instalar

El paquete del conector se descarga e instala en el directorio marketplace_connectors/.

4
Configurar

Habilite en Conectores, ingrese las credenciales API y pruebe.

Publicar un conector

1
Construir y probar

Utilice el generador de conectores. Verifique que todas las acciones funcionan.

2
Paquete

Generar el perfil.json, acciones.json, knowledge.json, y archivos PHP.

3
Firmar

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

Sube a través del flujo de envío del mercado para su revisión.

Dos niveles de conector

conectores/ — lo que realmente funciona

La raíz de descubrimiento en tiempo de ejecución. Todo aquí es en directo: los conectores que envían con OpsIQ, cualquier cosa instalada desde el mercado, y todo lo que el Constructor de conexión publica en esta instalación.

marketplace_connectors/ — donde se autorizan los paquetes

La publicación SOURCE para paquetes de primer mercado. No es una raíz de descubrimiento: nada aquí está vivo hasta que se empaqueta, firma, sembra en el catálogo e instalado, en cuyo punto una copia aterriza en los conectores/.

💡
Mira en ambos lugares. Un paquete que autorizó bajo marketplace_connectors/ no es la copia que funciona — instalando copias en conectores /, y sólo esa copia se descubre a tiempo de ejecución.Stripe, BigCommerce, Magento2, PrestaShop, OpenCart, Amazon SES, Postmark y Resend son todos los paquetes de mercado: instalar uno antes de esperar encontrarlo en Connectors.
Desarrollador

API y el constructor de webhook

El API y Webhook Builder le permite crear personalizado API endpoints y escuchas webhook dentro OpsIQ sin escribir PHP.

API constructor
API y el constructor de webhookUn constructor que elige un tipo de disparador (webhook entrante, programación, evento, manual) que se alimenta en una acción configurable.API y el constructor de webhookespacio de trabajoDISPARADORWebhook de entradaHorario (cron)OpsIQ eventoManualAcciónMapear campos entrantes →Crear ticket / notificar / llamar APIGuardar punto final1DISPARADORESWebhook · programación · evento · manual2NO RAW PHPConstruido en la interfaz de usuario3ACCIÓNMapa los campos, luego ejecuta
Construir puntos finales sin PHP crudo: elegir un disparador (enlace web, horario, evento o manual), luego mapear campos a una acción.

Activadores

Evento

Correr cuando algo pasa en. OpsIQ, o cuando un sistema externo publica un evento coincidente en su webhook. URL. Escriba el nombre del evento, por ejemplo ticket.created.

Calendario

Utilice uno de los eventos de intervalo incorporados como nombre del evento: cron. minutely, cron. hourly o cron. daily La pantalla Acciones y desencadenadores tiene botones para estos, por lo que no tiene que recordarlos.

Frase

Ejecutar cuando un administrador lo pide a la IA en lenguaje sencillo Añadir la frase que debe coincidir, por ejemplo encontrar cliente.

Webhook de entrada

Un sistema externo envía un HTTP POST a su. OpsIQ webhook URL Cualquier desencadenador que esté escuchando ese evento se activará.

Solo ejecútelo a veces: condiciones

Un desencadenador de evento puede contener condiciones, por lo que solo se ejecuta cuando los datos entrantes coinciden; sin condiciones, se ejecute cada vez que se dispara el evento.

Campo

Una ruta de acceso a los datos del evento. Utilice un punto para valores anidados, por ejemplo customer. email.

Coincidir todo o cualquiera

Elija si todas las reglas deben coincidir o solo una de ellas.

Pruebas de texto

Igual, no es igual, contiene, no contiene, comienza con, es uno de, no está entre los siguientes:

Pruebas de números

Los números escritos como texto se comparan correctamente, pero no se pueden modificar.

Pruebas de presencia

Está presente, está ausente, está vacío, no está blanco.

Solo haga una página al ingeniero de guardia para tickets urgentes

Escenario:
Event ticket.created, with one rule: priority equals urgent.
Qué hacer:

La acción se ejecuta para los tickets urgentes y se omite para todo lo demás, sin necesidad de filtrar.

💡
Si deja las reglas en blanco, el disparador se ejecutará en cada evento coincidente, que es el mismo comportamiento que antes de que existieran condiciones.

Medidas

Enviar webhook

Envía HTTP POST a un URL externo con una carga personalizada.

Crear ticket

Crear un ticket de soporte con el departamento especificado, asunto y mensaje.

Enviar correo electrónico

Envía un correo electrónico con una plantilla personalizada.

Actualizar el registro

Actualice un registro de cliente, ticket o CRM.

Ejecutar acción de conector

Ejecute una acción registrada desde un conector habilitado con sus reglas de permiso y confirmación del conector.

Run OpsIQ Generales de la Segunda Guerra Mundial API Acción

Buscar el nombre completo General API Los campos, ámbitos, permisos, confirmación, idempotencia y compatibilidad con pruebas provienen del contrato de acción en vivo; el flujo de trabajo se ejecuta dentro de su espacio de trabajo guardado y contexto de administrador.

Enviar solicitud provider-native API

Use un conector Native API Read o confirmed Native _API Write action cuando el endpoint del proveedor no tiene ninguna acción curada. Las credenciales permanecen dentro del conector y solo se aceptan las rutas de acceso relativas al proveedor.

El constructor de acciones y desencadenadores, /api/v1.php, OpenAPI y Postman usan el mismo ActionContractRegistry, por lo que una acción seleccionable no puede derivar de la documentación en tiempo de ejecución.
Desarrollador

Libro de cocina Triggers

Recetas de acciones activadoras listas para usar para automatizaciones comunes.

Cómo funciona
Libro de cocina TriggersUn flujo de receta: un webhook uptime. down pasa por un filtro de producción, luego se expande para crear un ticket urgente y notificar a Slack.uptime.downMonitor webhooksi se proponefilterCrear ticket urgenteNotifique a Slack #ops
Libro de cocina Triggers

Creación automática de tickets desde la monitorización

Escenario:
Monitoring system sends POST when server goes down.
Qué hacer:

Trigger: Inbound webhook Condition: payload.status = "down" Action: Create ticket · Dept: Technical, Subject: "Server {{payload.hostname}} down", Priority: Urgent

Slack notificación de pedidos grandes

Escenario:
Slack message every time a customer places an order over $100.
Qué hacer:

Trigger: Event (order.completed) Condition: order.amount > 100 Action: Send webhook to Slack incoming webhook URL with order details

Correo electrónico de resumen semanal

Escenario:
Summary email to management every Monday at 9am.
Qué hacer:

Trigger: Schedule (Monday 09:00) Action: Send email with last week's stats pulled from the REST API

Escalar tickets obsoletos

Escenario:
If a ticket has no reply for 24 hours, assign to team lead.
Qué hacer:

Trigger: Schedule (every hour) Condition: ticket.status = "Open" AND ticket.last_reply_age > 86400 Action: Assign to team-lead, add internal note

Desarrollador

Creando tu primera acción

Este tutorial crea una acción de conector simple desde cero.

Acciones de construcción
Construyendo una acciónUn formulario de definición de acción: name lookup_order, una solicitud GET a /orders/{id}, un parámetro id escrito y una variable de paso 200 test.Nueva acciónespacio de trabajoNueva acciónNombrelookup_orderSolicitudGET/orders/{id}Parámetrosid · cadena200 · pedido encontrado1DEFINENombre, método, punto final2PARAMSEntradas mecanografiadas3TESTResultado 200 en directo
Construir una acción desde cero. Nombrarlo, establecer el método y punto de finalización, declarar los params escritos, y probarlo a un vivo 200_.

Dos tipos de acción

Antes de empezar, decida cuál necesita, ya que ambos se configuran en la misma pantalla.

Llame a un API externo

La acción envía una solicitud HTTP a tu plataforma. Elige esta opción cuando OpsIQ necesite hacer algo por ti.

Ejecutar una acción de conector

La acción ejecuta algo que ya proporciona un conector instalado. Elige esto cuando el trabajo ya está disponible y solo quieres activarlo. Elige la acción del conector de una lista, por lo que no hay nada que conectar.

La segunda opción es cómo reutilizar todo lo que ya pueden hacer los conectores sin tener que crear nada de nuevo: leer un hilo de ticket, buscar a un cliente, importar contactos, etc. Seleccione la acción del conector en el menú desplegable y listo.
1
Planea la acción

Ejemplo: "lookup_product". Buscar un producto por nombre, precio de retorno, stock y descripción.

2
Definir en acciones.json

Añadir la definición de acción:

acciones.json— la forma manifiesta real
{
  "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" }
      ]
    }
  ]
}
⚠️
Tres cosas que hacen una acción no se registran en absoluto. action_id es REQUIRED y debe ser2a100caracteres de letras minúsculas, dígitos y subrayados – una entrada sin uno es rechazada por completo. El manifiesto es un objeto con un LIST "acciones", no un mapa clavedo por el nombre de la acción. Y la asignación de respuestas es "retornos" con caminos DOTTED (data.id), no JSONPath ($.dat.id) — no hay "response_mapping", "metodo", "parar" en ningún sitio web
3
Prueba con prueba en seco

En el paso de revisión del Constructor Conectador, presione Correr seco. Funciona la lista de verificación completa de conformidad contra su paquete y, cuando usted ha suministrado credenciales, hace una prueba real de conexión. No utiliza datos de muestra.

4
Verificar el uso de IA

Pregunta a la IA del administrador: "Buscar producto Widget Pro" La IA debe encontrar y ejecutar la acción.

⚠️
Agregar una acción a las acciones.jsonNO crea una ruta AJAX, por lo que no hay nada para regenerar. Acciones de conexión se sincronizan enOpsIQcuando el conector está habilitado o se guardan sus ajustes: volver a guardar el conector y aparece la nueva acción. tools/gen_route_registry.php cubre el envío de administrador AJAX y no tiene ningún efecto en las acciones del conector.
Desarrollador

Endpoints de eventos entrantes

Los endpoints de entrada aceptan JSON firmado desde otro sistema y lo convierten en actividad de contacto desduplicada que puede alimentar líneas de tiempo, puntuación y flujos de trabajo.

Pantalla de producto
Puntos finales entrantesCada fuente entrante tiene su propio URL, secreto, mapeado y resultado de actividad reciente.Puntos finales entrantesespacio de trabajoSOURCES5ACCEPTED12.4kREJECTED18VISTA DE ESPACIO DE TRABAJO EN DIRECTOPlataforma de facturaciónEventos de suscripciónSaludableAplicación de productoEventos de registro y usoSaludableID del eventoprovider_event_idDeduplicadoFirmaX-OpsIQ-Firma de entradaHMAC1CREATE SOURCEURL y secreto2MAP PAYLOADCorreo electrónico, evento e ID3VERIFYHMAC luego ingerir
Cada fuente entrante tiene su propio URL, secreto, mapeado y resultado de actividad reciente.

Cree una fuente por sistema de envío. OpsIQ genera un URL/token y secreto. Enviar JSON con Content-Type: application/json y firmar el cuerpo bruto exacto usando HMAC-SHA256:

X-OpsIQ-Inbound-Signature: sha256=<hex hmac>

Asignación de rutas JSON para el correo electrónico del contacto, nombre del evento y ID de evento opcional. El ID de eventos es la clave de deduplicación preferida. La actividad aceptada entra en la línea de tiempo del contacto y puede afectar a la puntuación de clientes potenciales, segmentos, reglas del ciclo de vida y flujos de trabajo.

Rotar un secreto actualizando ambos lados dentro de una ventana controlada; no registrar el secreto, ya que se puede rotar en cualquier momento.

Desarrollador

Operaciones de webhook salientes

La administración de webhook saliente crea suscripciones firmadas, prueba los puntos finales y supervisa la entrega asíncrona y el estado del reintento.

Pantalla de producto
Webhooks de salidaLa página de webhook saliente muestra los puntos finales HTTPS, las suscripciones a eventos, el estado de entrega y una prueba firmada con un solo clic.Webhooks de salidaespacio de trabajoENDPOINTS7SUCCESS99.2%RETRYING4VISTA DE ESPACIO DE TRABAJO EN DIRECTOEspejo de CRMContacto.* y trato.*SaludableAutobús de apoyoComprar ticket.* y chat.*SaludableAlmacén de datos*ReintentarEntrega de pruebaCarga útil de muestra firmadaListo1SUBSCRIBEHTTPS URL y eventos2AUTHENTICATEFirma de HMAC3OBSERVECarril de entrega y reintentos
La página de webhook saliente muestra los puntos finales HTTPS, las suscripciones a eventos, el estado de entrega y una prueba firmada con un solo clic.

Los administradores completos crean un punto final HTTPS, eligen eventos específicos o el comodín, almacenan el secreto de forma segura y envían una prueba. OpsIQ firma la carga útil sin procesar con HMAC-SHA256:

X-OpsIQ-Signature: sha256=<hex hmac>

La entrega es asíncrona y se reintenta automáticamente después de aproximadamente 10 minutos. 1minuto, 5 minutos, 30 minutos,2horas y 12 HorasUtilice el riel de entrega reciente para inspeccionar el estado, código de respuesta y recuento de intentos.

El receptor debe ser idempotente porque cualquier sistema asíncrono puede volver a enviar y devolver una respuesta 2xx solo después de la aceptación duradera.

Desarrollador

Webhooks

Los webhooks permiten que los sistemas externos notifiquen OpsIQ Cuando algo sucede (entrada), y deje que OpsIQ Notificar a los sistemas externos cuando algo sucede internamente (salida).

Webhooks
Webhooks de salidaLa pantalla de webhooks salientes: una tabla de puntos finales con nombre, eventos suscritos, puntos de estado de entrega recientes y un botón Send-test.Webhooks de salidaespacio de trabajoPuntos finales+ Guardar punto finalNOMBREEVENTOSENTREGASSlack #alertas-de-ventashttps://hooks.slack.com/…Etiquetas: lead. created, ventaPruebaEspejo de CRMhttps://api.acme.com/hookContacto *, ticket. creadoPruebaZapierhttps://hooks.zapier.com/…chat.startedPrueba1ENDPOINTSNombre, eventos, URL2SIGNEDHMAC + reintento automático3SEND TESTVerificar las entregas
La pantalla real outbound-webhooks: cada punto final con sus eventos, salud de entrega reciente y un clic Enviar prueba, firmado y retrigado.

Webhooks de salida

Suscripción

Vaya a Configuración > Webhooks. Agregue un punto final URL y seleccione los eventos que desea recibir.

Eventos

ticket. created, ticket. replied, chat. started, message, order. completed, crm. deal. stage_changed, contact. create, etc.

Reintentar

Las entregas fallidas se reintentan con retroceso exponencial. Después de 15 Si se producen fallas consecutivas, el endpoint se deshabilita automáticamente.

Firma

Cada solicitud incluye una firma HMAC en X-OpsIQ-Signature. Siempre verifique.

Protección de SSRF

OpsIQ No se enviará a privado/interno IPs (127.x, 10.x, 172.16.x, 192.168.x, 169.254.169.254).

Entrega asincrónica

Los webhooks se entregan a través de la cola de trabajos, sin bloquear las operaciones OpsIQ.

ID de evento estable

Cada evento tiene un event_id único que permanece igual en los intentos de deduplicación.

Verificar firmas de webhook

PHP · verificar firma 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 la firma 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 });
});
¿Cómo puedo probar webhooks localmente?+

Usa ngrok para exponer tu servidor local. Establece el punto final del webhook en tu ngrok URL.

¿Qué ocurre si mi endpoint está temporalmente inactivo?+

OpsIQ reintentos con retroceso exponencial: si el endpoint se recupera dentro de la ventana de reintento, no se pierden eventos.

Desarrollador

Claves de API

API Las claves autentican las solicitudes al. OpsIQ REST API. Cada clave tiene permisos de ámbito.

Claves de API
Claves de APILa pantalla de API claves: un panel de problemas con nivel de acceso y chips de alcance, junto a una lista de las claves enmascaradas existentes con botones de revocación.Claves de APIespacio de trabajoEmitir una llaveAccesoSolo lecturaRestringidoAlcancescontacts.readtickets.readevents.writeClave de emisiónSus llaves de casaIntegración con Zapieropq_•••4f2aRevocarAplicación móvilopq_•••91c7RevocarExportación de Analyticsopq_•••2db0Revocar1SCOPEDSolo lectura o restringido2PER-ACTIONElegir ámbitos exactos3REVOCABLEGire en cualquier momento
La pantalla de claves API real: emite una llave amplia, sólo lectura o restringida al escoger los alcances exactos y revocar cualquier tecla en cualquier momento.

Creación de una clave API

1
Ve a Configuración > API Teclas

Navegue a la administración de claves API.

2
Haga clic en Crear clave

Dale un nombre descriptivo.

3
Seleccionar ámbitos

Los ámbitos vienen en pares de lectura y escritura por área, así que una integración de informes puede concederse solo para leer y nada más.

Ámbitos disponibles

Elige el conjunto más estrecho que haga el trabajo. admin El dominio satisface todos los ámbitos a continuación, así que úselo solo cuando realmente necesite un acceso amplio.

crm. read / crm

Contactos, empresas, ofertas, actividades, segmentos, alcance, conversiones, ciclo de vida y webhooks CRM.

tickets. read / tickets. write

Enumerar y leer tickets y sus mensajes; responder, actualizar, abrir y ejecutar operaciones de cola masivas.

Conversaciones. leer / conversaciones. escribir

Lea conversaciones de chat en vivo y el historial de mensajes; enviar mensajes, asignar y cambiar estado.

kb. read / kb. write

Entradas de la base de conocimientos.

Chat. read / chat. write

Plantillas de respuesta guardadas.

connectors.read

Vea qué conectores están instalados, lo que pueden hacer y pruebe sus credenciales.

automations.read

Vea sus acciones, desencadenadores y su historial de ejecución.

departments.read

Departamentos disponibles para enrutamiento.

notifications.read

Notificaciones para un operador con nombre.

analytics.read

Secciones de informes, exportaciones CSV y definiciones de informe programadas.

Sitio de inteligencia.

Sitios monitorizados y sus informes SEO.

files.read

Enlaces de descarga firmados para los archivos adjuntos.

status.write

Componentes e incidentes de la página de estado.

writing

Ayudantes de escritura con IA: redactar, resumir, traducir, reescribir, componer, analizar.

administrador

Todo, incluyendo un pequeño número de acciones sensibles que son deliberadamente no alcanzables por ningún alcance estrecho: borrar un contacto, cambiar la configuración de privacidad y leer el registro de acceso.

💡
Llame a meta. actions con su clave para ver exactamente qué acciones puede ejecutar en su instalación, lo cual siempre es más confiable que trabajar desde una lista.

Niveles de acceso

Todo

La clave puede llamar a cualquier cosa que sus alcances permitan.

Solo lectura

Se rechaza toda escritura, independientemente de lo que digan los ámbitos. La opción más segura para informes, paneles y cualquier cosa que nunca debería cambiar datos.

Restringido

Se enumeran las acciones exactas que puede llamar la tecla, cualquier otra acción se rechaza, incluso dentro de un ámbito permitido.

4
Copiar la clave

Se muestra una vez. Comienza con "opq_". Guárdelo de forma segura.

🚫
Nunca compartir API Claves en código público, lado cliente JavaScript, o control de versiones. Use variables de entorno.
Desarrollador

Conecta tu sitio web

The OpsIQ El widget es un. JavaScript Un fragmento de código que agregas a tu sitio web para el seguimiento, chat con IA, creación de tickets e identificación del cliente.

Cómo funciona
Conecta tu sitio webUna etiqueta de script de una línea a la izquierda y, a la derecha, una página web con el burbuja de chat OpsIQ que aparece en la esquina.<!-- paste before </body> --><script src="https://cdn.opsiq.io/w.js" data-site="ws_8a2f" async></script>
Conecta tu sitio web

Instalación básica

Fragmento básico del widget
<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 configuración

data-site-key

Su clave de sitio desde Sitios conectados.

data-mode

Opcional. "chat" (predeterminado), "tickets", o "ambos".

data-position

Opcional. "bottom-right" (predeterminado) o "botton-left".

data-color

Opcional. Código hexadecimal de color primario.

data-greeting

Opcional. Mensaje de bienvenida inicial.

data-language

Idioma de la interfaz de usuario: "en", "es", "fr", "de", "pt", "ar", etc.

data-identity-token

Opcional. Token de identidad firmado generado por el servidor.

Soporte de SPA

Seguimiento manual de rutas 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,
}]);

Reglas de CSP

Reglas de CSP para widget
script-src 'self' https://your-opsiq-domain.com;
connect-src 'self' https://your-opsiq-domain.com;
frame-src https://your-opsiq-domain.com;
¿El widget ralentiza mi sitio web?+

No. Bajo 15 KB gzipped, carga asincrónico después del contenido de la página.

¿Puedo personalizar la apariencia?+

Use data-color para el color primario. Póngase en contacto con soporte técnico para las opciones de anulación CSS.

Desarrollador

Widget instalar recetas

Guías de instalación específicas para plataforma.

Cómo funciona
Widget instalar recetasTarjetas de instalación de plataforma para WordPress, Shopify and Google Tag Manager, cada uno diciendo dónde agregar el widget.WPWordPressInstala el plugin, ingresaIngrese su clave de sitio, guarde.TiendaShopifyPega el fragmento enTemas de tema. liquid antes de /body.GTMAdministrador de etiquetasEtiqueta personalizada HTML, todas las páginas.
Instalar recetas

WordPress

Escenario:
Add to all pages of a WordPress site.
Qué hacer:

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

Escenario:
Add to your Shopify store.
Qué hacer:

Online Store > Themes > Edit Code > Layout > theme.liquid. Paste before </body>. Save.

React / Next. js

Escenario:
Add to a React or Next.js app.
Qué hacer:

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

Escenario:
Add to your WHMCS client area.
Qué hacer:

Configuración > General Settings (Configuración general) > Other (Otro) > Global Footer Content (Contenido global del pie de página). Pegue el fragmento.

Google Tag Manager

Escenario:
Add via GTM.
Qué hacer:

Crear etiqueta personalizada HTML, pegar fragmento. Activador: Todas las páginas. Publicar.

Desarrollador

widget de administrador en su backend (un contrato, cualquier 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.

Paso 1 — la línea de la incrustación

Desde Sitios remotos→su sitio→Códigos, copiar la línea de carga y añadirla a las páginas del panel de administración (incluidos los pies, plantilla de diseño o una caja solo para administración personalizada-JS):

La única línea incrustada
<script async src="https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=SITE_KEY&identity_token=TOKEN_FROM_STEP_2"></script>

Paso2- Díselo.OpsIQquién está conectado (señal del servidor)

Sólo SU aplicación sabe en qué administrador está firmado - que no es un corto, es el modelo de seguridad. Su servidor genera una ficha firmada de corta duración desde su propia sesión, exactamente como la señal de identidad del visitante, firmada con el mismo sitio webhook secreto:

PHP · firma la identidad de administrador en tu sesión
<?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.
Acceso por amino, automáticamente

Cada administrador que entra en su plataforma se combina individualmente:OpsIQ's per-admin access gate resolve the token's username + email against oneOpsIQagente (página del equipo; utilice la lista de "emails principales" del agente cuando los correos electrónicos de la plataforma difieren) y aplica permisos de espacio de trabajo, departamento e bandeja de entrada de ese agente.OpsIQ; no hay cambios en la incrustación.

Paseos en roles a lo largo de

Cualquiera que sea la cadena de papel que envía su plataforma se muestra en elOpsIQlado para la atribución; autorización siempre viene delOpsIQagente record, nunca del papel afirmado.

¿Por qué no leemos nuestra cookie de inicio?

Los navegadores nunca envían su cookie de administrador a otro origen — ningún proveedor puede "sólo detectar" el dominio cruzado de inicio. Cada producto serio resuelve esto de la misma manera: su servidor vouches, firmado. Ese es todo el contrato.

Modo simple (tiendas de memoria única)

Paso2y utilizar el token estático de sitios remotos→Códigos en la línea de carga (token=... en lugar de identity_token =...). El widget funciona con la identidad compartida del espacio de trabajo; la puerta per-admin puede permanecer ejecutada más adelante cuando el equipo crece.

El authenticated bandera - ponerlo en el nivel TOP

Esta bandera es la afirmación de su servidor que un humano está conectado y OpsIQ se niega a cualquier token sin ella. "authenticated" => true beside site_key/iat/exp, NO sólo dentro de admin actual OpsIQ acepta en cualquier posición, pero las versiones anteriores sólo leen el nivel superior - y el fracaso es engañoso: lista de conversaciones, historia e irrevisible todo autenticado fino mientras cada chat da respuestas "Se requiere acceso a la memoria", que parece un error de sesión y no lo es. Si ves exactamente esa división, compruebe esta bandera primero.

Higiene de las piezas

Firme en el servidor solamente, nunca en el navegadorJavaScript. Mantener la exposición corta (minutos a horas);OpsIQrechaza los tokens vencidos y actualizados por el futuro, y la firma une la señal a su clave del sitio.

Implementaciones de referencia

ElWHMCSmódulo hace esto automáticamente desde elWHMCSsesión de administración; el archivo puente del conector Botble Hotel lo hace desde la sesión Laravel (op=admin_identity). Ambos son sólo este contrato en el dialecto de su plataforma — copia que lee más cerca de su pila.

Cierre de página cero (sonda declarada por conector)

Cuando su conector OpsIQ almacena su punto de referencia de identidad en su admin_identity_probe_url configuración, la línea de carga PLAIN es toda su página de administración necesita: el widget descubre la sonda del conector, lo llama con tu token de sitio + widge y autentica cada administrador automáticamente. La página puede anularse con un data-identity-endpoint atributo o window.OpsIQAdminIdentityEndpoint.

Implementación del punto final de identidad en Laravel (notas difíciles)

Si su plataforma es Laravel (Botble, Bagisto, aplicaciones personalizadas) y su punto final es un archivo independiente que arranca el marco para leer el administrador conectado, tres detalles le ahorrarán horas — cada uno produjo una falla de producción real antes de aprender:

Cumplir la solicitud de arranque antes de la salida

Sus proveedores de servicios pueden resolver request del contenedor durante el arranque. El propio ciclo de vida de Laravel ata la solicitud capturada primera cosa dentro Kernel::handle() - espejo de ese orden: $app->instance('request', Request::capture()) ANTES $kernel->bootstrap(), o te dan "La clase de sargento [la conquista] no existe".

El prefijo de la sesión es HMAC_

Modern Laravel prefixes cookie values with an HMAC computed WITH THE APP KEY (CookieValuePrefix) - Una llanura sha1(name."v2") nunca puede igualar. CookieValuePrefix::validate($name, $decrypted, $keys), con un retroceso estructural40hex chars + | a la posición40). Decir: una sesión id más largo que40chars (81= prefijo todavía apegado) y una sesión que carga con sólo _token dentro.

Donde vive el login

El sello de auth es login_<guard>_<sha1(guard class)> — para el guarda web predeterminado: 'login_web_' . sha1(Illuminate\Auth\SessionGuard::class). Escanear cualquier login_* llave numérica como un retroceso para guardias personalizados.

Debug como el puente hace

Navega a debug=1 Modo que nombra el STEP fallido y la excepción — un bloqueo ciego hizo una implementación en vivo indiagnosable. El puente Botble (desde v1.0.7) es la referencia: marcadores de pasos en kernel/bind/bootstrap/decrypt/session/auth/db.

Laravel · punto final de identidad completo (copia, establecer las dos constantes, hecho)
<?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]);
}

El mismo punto final en otras pilas

Sólo el "quién se ha conectado?" cambia la línea — el bloque de firma es idéntico en todas partes. Inicie sesión en el servidor, nunca en JavaScript.

WordPress · WHMCS· Symfony · PHP claro — cambiar la búsqueda, mantener el firmante
<?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]);

Cuando no funciona — diagnosticar en este orden

Widget nunca aparece, consola dice "Se requiere señalización de identidad administrativa"

Tu punto final no regresó identity_token. Abrir el punto finalURLdirectamente en el navegador de administración conectado con &debug=1 En Laravel esto es casi siempre el elemento de unión de solicitudes o de prefijo de cookies arriba.

Historia y conversaciones funcionan, pero cada charla dice "Se requiere acceso a la memoria"

La división clásica, tu token está perdiendo el TOP-LEVEL authenticated bandera — el punto final del widget acepta la señal, el verificador compartido detrás de la secuencia de chat lo rechaza. "authenticated" => true beside exp.

"admin not provisioned inOpsIQ" (HTTP401)

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.

Todo 403s desde el navegador pero funciona con rl

Un preluz CORS está rechazando uno de sus encabezados de solicitud. Su punto final debe responder OPTIONS y hacer eco del origen solicitante, o simplemente evitar los encabezados personalizados — el widget sólo necesita la cookie.

Trabajado ayer, falla hoy

Verificar exp: las fichas son de corta duración por diseño. El widget se reprobe automáticamente, por lo que esto generalmente significa que el punto final dejó de ver la sesión — una rotación clave de aplicación, un cambio de goteo de sesión, o un cambio del dominio de cookies.

💡
El widget admin se oculta hasta que la identidad se resuelva, y cada llamada chat/inbox/data es ejecutada lado servidor contra el partidoOpsIQagente independientemente de cualquier cosa que la página afirma. El token desbloquea la UI; los permisos siempre vienen deOpsIQ.
Desarrollador

Identidad del visitante

Cuando se identifica, OpsIQ vincula el historial de navegación, los chats y los tickets al perfil del cliente.

Cómo funciona
Identidad del visitanteUn flujo: un usuario inicia sesión en tu sitio, emites un token de identidad firmado y OpsIQ unifica sus sesiones, chats y tickets en un solo perfil.El usuario inicia sesiónEn tu sitioToken firmadoToken de identidad (HMAC)Un perfil únicosessions+ chats+ entradas
Identidad del visitante

Dos niveles de identidad, y cuando cada uno es suficiente

Nivel 1 — una pista sin firmar

Dígale al widget quién es el visitante con una llanuraJavaScriptllena el correo electrónico y cliente id en el registro de visitantes, por lo que su panel muestra tráfico firmado y sesiones se unen. Es un HINT: cualquiera puede editarlo en su navegador, así queOpsIQnunca libera datos de cuenta sobre la fuerza.

Nivel 2 - una ficha de identidad firmada

Su servidor firma un token de corta duración con el sitio webhook secret. OpsIQ verifica la firma y sólo entonces trata a la persona como cliente probado. Este es el nivel que desbloquea respuestas de cuenta en chat de clientes y búsquedas de conectores. Úselo para cualquier cosa que un extraño no debe ver.

⚠️
Nivel1es una comodidad de visualización.2es autenticación. Si una pregunta sólo puede ser contestada para el titular de la cuenta real, usted necesita Nivel2.

Nivel 1 — la insinuación no firmada

Establecer el objeto ANTES del script widget, o llamar a identificar() más tarde una vez que su aplicación sepa quién está firmado. Ambos formularios son leídos; utilizar cualquier cosa que se ajuste a su página.

JavaScript · las dos formas soportadas
<!-- 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.

Nivel 2 — la identidad firmada por el servidor token

Exactamente el mismo contrato de ficha que el widget admin, con un customer sujeto en lugar de un admin uno. Firme en su servidor y pásela al widget. Dos detalles deciden si lo verifica, y ambos son fáciles de equivocarse:

ElHMACcubre la cadena BASE64URL, no elJSON

Firmar $payload64, no $payload. Firmar la cruda JSON produce una señal que se ve bien y es rechazada cada vez con un desajuste de firma.

base64url, sin apadillar

Traducido +/ a -_ y despojar = padding. Plain base64 happens to survive today; base64url is the contract and is what every OpsIQ verifier and reference connector emits.

autenticado va en el nivel TOP

Beside site_key, iat y exp. Es su afirmación de que un verdadero humano está conectado, y OpsIQ se niega la señal sin ella.

cliente. id es obligatorio

Un token que lleva sólo un correo electrónico verifica como firma y luego se deja caer silenciosamente. Siempre envía una id.

Mantenga la exposición corta

Minutos a horas. El token es una afirmación de sesión, no un credencial para almacenar.

PHP - firma un token de identidad del cliente (este código exacto 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>';
🚫
Iniciar sesión en el servidor solamente. Un token minted en el navegadorJavaScriptsignifica enviar el sitio secreto a cada visitante, que da a cualquiera la capacidad de impersonar cualquier cliente.

El mismo contrato, tres superficies

chat de cliente en su sitio

sujeto cliente, pasó como ID_token a widget. php. Cubierta arriba.

chat de administrador dentro de su backend

El sujeto de administración, pasó a opsiq/embed/admin_widget. php. Mismo signer, clave de tema diferente. Ver "El widget de Admin en tu backend".

Enlaces profundos del portal de apoyo

Una variante más estricta: las mismas afirmaciones más jti y single_use:true, y una120- segunda vida, porque el token viaja en unaURLy debe ser gastado una vez. No la cargue a mano. Ajustes, Portal de soporte tiene un snippet listo para su idioma, y la plataforma lo miente cuando el área de cuenta se ejecuta en este servidor.

¿Qué pasa si un visitante borra las cookies?+

Se vuelven anónimos hasta que se identifiquen de nuevo. OpsIQ vincula el nuevo registro anónimo al perfil del cliente en el momento en que llega una pista o un token.

¿Por qué mi ficha verifica para el registro de visitantes pero no para preguntas de cuenta?+

Ese es el nivel1/ Nivel2Una insinuación no firmada llena el registro del visitante y nada más. Las respuestas de la cuenta necesitan una firma verificada.

Desarrollador

Plugins y SDK

OpsIQProporcionarSDKpaquetes y plugins para plataformas comunes.

Cómo funciona
Plugins y SDKCuatro paquetes: PHP SDK, Node.js SDK, WordPress plugin y WHMCS Cada uno con su comando de instalación.PHPPHPSDKEl compositor requiere opsiq/sdkJSNode. js SDKnpm i @opsiq/sdkWPWordPress pluginInstalación y conexión con un solo clic¿Por qué?Módulo WHMCSAddon para facturación + retransmisión de boletos
Plugins y SDK
PHPSDK

Paquete Composer: generación de tokens de identidad, ayudantes de acción API, verificación de firma webhook.

JavaScript SDK

Browser-side: seguimiento, identidad, eventos personalizados, control de chat.

WordPress plugin

Inyección de widgets, identidad desde sesiones de usuario WP, sincronización WooCommerce.

Módulo WHMCS

Integración completa: widget, retransmisión de tickets, identidad, IA administrativa.

Extensión de tema Shopify

Insertar aplicaciones con identidad automática del cliente.

Inicio rápido de PHP SDK

Ejemplo de PHP SDK
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);
Desarrollador

Encuesta API, eventos y automatización sin conectores

Survey Studio está diseñado para usar el mismo tipo de GeneralAPI, ejecución interna, operaciones de bus de eventos y webhook como el resto deOpsIQ. Esto permite que los desarrolladores integren el fin al final sin construir un conector empaquetado.

⚠️
Estado de implementación: el catálogo en vivo actualmente expone solo platform.get.survey.config y platform.save.survey.config. El surveys.* y feedback.* Las familias a continuación son el contrato objetivo aprobado y deben regresar unknown_action Hasta que se registre.

Familias de acción específica

Tipos, plantillas y lanzamiento rápido

surveys.types.*, surveys.templates.* y surveys.quick_launch.* Lista, vista previa, instancia y validar los inicios completos.

Encuestas y versiones

surveys.create|get|list|update|archive|duplicate más acciones de versión, validación y publicación inmutables.

Despliegues y orientación

surveys.deployments.*, surveys.links.*, surveys.audiences.*, surveys.triggers.* y surveys.variables.*.

Divulgación y respuestas

surveys.invitations.*, surveys.campaigns.*, surveys.recipients.*, surveys.responses.*, exportaciones, redacción y análisis.

Webhooks, importación y exportación

surveys.webhooks.*, surveys.imports.*, feedback.items.*, feedback.analytics.*, feedback.sources.* y feedback.analysis.*.

Flujo sin conector

1
Crear y publicar a través de General API

Las acciones de uso de encuestas escritas* con una clave fijada al espacio de trabajo. Las escrituras declaran permiso, riesgo, confirmación, idempotencia y comportamiento de ejecución en seco.

2
Recibe tu evento de negocios

Envía un evento firmado a un webhook de entrada, por ejemplo, una cancelación de pedido o el paso de incorporación completado. La protección de reproducción desduplica el ID del evento.

3
Asignarlo en acciones y desencadenadores

Elija unOpsIQGeneralAPIacción tales como la emisión de una invitación a Survey o la preparación de una campaña, luego mapear campos desde la carga útil del desencadenante verificada.

4
Suscríbase a los eventos de la encuesta

Entregue el subconjunto de ciclos de vida de encuestas* documentado y seguro para la empresa a su punto final con firma, filtro, reintento, registro y reproducción autorizada.

Objetivo de evento canónico

El catálogo compartido cubrirá el estado de publicación de la encuesta/implementación, las decisiones de audiencia y activación, invitaciones, renderización/inicio/parcial/reanudación/completo/abandono, redacción de respuestas, estado de campaña y errores de entrega. El enfoque de alto volumen, el desplazamiento y los tiempos de pregunta permanecen en el almacenamiento de Survey Analytics a menos que se documente explícitamente para su despliegue.

Un conector es opcional y agrega detección de plataforma reutilizable, identidad verificada, hechos, variables y enumeración de destinatarios. General API más Actions & Triggers/webhooks sigue siendo la ruta de integración completa para los desarrolladores que no necesitan un conector empaquetado.
Desarrollador

API REST

The OpsIQ REST API Le permite acceder por programación a todas las funciones de la plataforma.

Cómo funciona
API RESTUn terminal que muestra un POST al. OpsIQ API con una llave de portador, enumerando los tickets abiertos y el paginado JSON Respuesta.$ curl -X POST https://your-domain.com/api/v1.php \-H "Authorization: Bearer opq_..."200OK{ "data": [{ "id": 4192, "ticket_number": "T-4192","subject": "Card declined", "status": "open" },... more tickets ...], "page": 1, "per_page": 50, "has_more": true }
API REST

Formato de solicitud

Enviar la clave como Authorization: Bearer opq_... o X-OpsIQ-Key: opq_.... Utilice un encabezado de autenticación, no ambos.

API formato de solicitud
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"
}

Acciones comunes

El API está basado en la acción: enviar un action Cada operación de administrador registrada JSON tiene una acción estable con nombre. POST {"action":"meta.actions"} (no se requiere clave) para la lista autorizada, por instalación, el contrato de solicitud, los metadatos de riesgo y el alcance. platform.routes.* El puente permanece solo para integraciones más antiguas.

crm.contacts.list

Lista de contactos CRM (alcance crm. read). Parámetros: q, estado, fuente, etiqueta, puntuación de clientes potenciales, límite.

crm.contacts.upsert

Resolución o creación de un contacto (alcance crm. write). Parámetros: correo electrónico más campos, etiquetas, notas.

crm.deals.list

ListaCRMacuerdos (scopio)crmParams: status, stage_id, company_id , owner_admin_id y pipeline_id. limit.

crm.activities.record

Registra un ciclo de vida/actividad comercial para un contacto (scope crm. write) Parámetros: email o contact_id, evento, valor, moneda.

crm.conversions.record

Registra una conversión (alcance crm. write). Parámetros: contact_id o email, conversion_type, value, currency.

crm.events.list

Consultar el flujo de eventos del CRM (ámbito crm. read). Parámetros: limit.

tickets.list

Parametros: page, per_page, sort, order, status, priority, department_id, assigned_admin_id (por_página), email_cliente, search.

tickets.get

Un ticket y sus mensajes (alcance tickets. read). Parámetros: id_ticket o número_de_tiquet, include_messages, messages_limit.

tickets.reply

Publicar una respuesta a un ticket (alcance tickets. write). Params: ticket_id o número_de_ticket, cuerpo, tipo_autor, nombre_autor.

tickets.update

Para actualizar un ticket (scope tickets. write), se deben especificar los parámetros siguientes: ticket_id o ticket_number, status, priority, subject, department_id, assigned_admin_id.

tickets.open

Abre un ticket de soporte (scope tickets. write). Parámetros: customer_email, customer_name, subject, body, priority.

tickets.bulk

Ejecuta una operación de cola masiva (scope tickets. write). Parámetros: operation, ids.

conversations.list

Lista de conversaciones en chat (scope conversations. read). Parámetros: page, per_page, status, assigned_admin_id, client_email, search.

conversations.get

Una conversación y sus mensajes (scope conversations. read). Parámetros: id_conversación o clave_de_hilo, include_messages.

conversations.messages

Historial de mensajes paginados (alcance conversations. read). Parámetros: id_conversación, página, por_página, incluir_interno.

conversations.send

Enviar un mensaje a una conversación (scope conversations. write). Parámetros: id_conversación, mensaje, tipo_remitente, interno.

conversations.update

Asignar, cambiar el estado o renombrar una conversación (scope conversations. write). Params: conversation_id, status, assigned_admin_id.

Conectores. lista /. get /, prueba

Vea qué conectores están instalados, lo que cada uno puede hacer y si sus credenciales funcionan (scope connectors. read).

automations.actions.list

Las acciones que ejecutará el generador de acciones (alcance automations. read).

automations.triggers.list

Qué se disparará y en qué condiciones (alcance automations. read).

automations.runs.list

Historial de ejecución para la depuración de una integración (scope automations. read). Parámetros: status, action_key.

departments.list

Departamentos a los que puede enrutar un ticket (ámbito departments. read).

notifications.list

Notificaciones para un operador (scope notifications. read). Parámetros: admin_id (requerido), unread_only.

analytics.export

Una sección de informe como CSV (alcance analytics. read). Parámetros: section, preset, from, to Llama a analytics. sections. list para obtener valores válidos.

Sitios de inteligencia del sitio. lista /. reports. list

Sitios monitoreados y sus informes de SEO (alcance site_intelligence. read).

files.get

Un enlace de descarga firmado y efímero para un archivo adjunto (scope files. read). Parámetros: reference, ttl.

security.check

Pregunte si un IP Aquí se indica si un mensaje de texto o correo electrónico está bloqueado o es sospechoso (ámbito security.read).IP El firewall, la lista de bloqueo de spam del ticket y el veredicto de IA de seguridad almacenado en caché. ip, correo electrónico.

security.report

Informe de abuso observado en su sistema (alcance security. write). Registrado como un evento de seguridad, clasificado inmediatamente por la inteligencia artificial de seguridad y los administradores son alertados sobre veredictos de alto riesgo. Parámetros: ip, correo electrónico, t ip o, razón, fuente.

Añadir a la lista de bloqueos /. list

Administra las reglas de spam que el canalizador del ticket aplica (alcance security. write / security. read). Se almacenan igual que en la página Tickets, control "Bloquear remitente". Params: tipo (correo electrónico, dominio, ip), valor, razón, expires_hours.

💡
Meta. actions es siempre autoritativo, devuelve todas las acciones disponibles en tu instalación con el alcance que cada una necesita, así que nunca tienes que adivinar o codificar esta lista.

Paginación, filtrado y clasificación

Cada acción de lista utiliza los mismos parámetros, por lo que se aprenden una vez.

Página / por página

Número de página que comienza con 1, y el tamaño de la página. 50, máximo 200. límite y compensación también se aceptan si usted los prefiere.

orden

Campo por el que ordenar, y asc o desc (por defecto desc). Cada acción acepta un conjunto fijo de campos de ordenación; cualquier otra cosa se ignora en lugar de producir errores.

filters

Envía filtros como un objeto o pasa un filtro como parámetro de nivel superior, los filtros desconocidos se ignoran.

Lo que vuelve

Sigue solicitando páginas hasta que has_more sea falso. Keep requesting pages until has_most is false.

Solicitud de lista paginada, filtrada y ordenada
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
}

Errores

Cada fallo devuelve la misma forma, con un code No coincidir en el formato legible por humanos. error texto, que puede ser reformulado.

Respuesta de error
{
  "success": false,
  "code": "missing_scope",
  "error": "API key missing required scope. Needed one of: tickets.read, admin",
  "request_id": "req_8f2c1a9d4b7e"
}
Error de conexión a la red: missing_api_key / invalid_api _key

No se envió ninguna clave, o la clave es incorrecta o ha caducado. HTTP 401.

missing_scope

La clave es válida, pero carece del alcance que necesita esta acción. HTTP 403.

Clave de solo lectura / acción restringida

La clave es de solo lectura, o esta acción no está en su lista de permisos. HTTP 403.

unknown_action

No hay tal acción. Llama a meta. actions para la lista actual. HTTP 400.

Parámetro_inválido / error_parameter

No se ha encontrado un parámetro requerido, o no se acepta un valor. HTTP 400.

not_found

El registro no existe, o no está en el espacio de trabajo que esta clave puede ver. HTTP 404.

rate_limited

El límite por hora de esta clave se ha agotado. HTTP 429.

server_error

Algo falló en nuestro lado. El request_id identifica el intento si necesitas informarlo. HTTP 500.

Reintentos seguros

Si un tiempo de escritura se agota, no puedes saber si aterrizó. idempotency_key y una repetición de la misma llamada devuelve el resultado original en lugar de hacer el trabajo dos veces.

Escritura Idempotent
{
  "action": "tickets.reply",
  "ticket_id": 4192,
  "body": "Thanks, that is now fixed.",
  "idempotency_key": "your-unique-id-for-this-attempt"
}
Cuánto tiempo dura

Una llave es recordada por24horas contra la misma acción yAPIllave.

Lo que obtienes a cambio

La respuesta original, más idempotent_replay: true para que puedas saber si se trataba de una repetición.

Los fallos se mantienen reintentables

Solo se recuerdan las escrituras exitosas, si una llamada falla, enviándola de nuevo con la misma clave se ejecutará nuevamente, lo que es lo que desea.

Lee

Las lecturas ignoran la clave. Repetir una lectura es inofensivo.

Prueba sin cambiar nada

Añadir dry_run: true Su clave, ámbitos y parámetros son todos comprobados exactamente como de costumbre, luego la llamada se detiene antes de que nada sea creado o cambiado.

Prueba en seco: verifique las credenciales y la carga útil de forma segura
{
  "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."
}
Usa dry_run mientras estás compilando, es la forma más rápida de confirmar que una clave tiene los alcances correctos y tu carga útil se ha formado correctamente, sin crear datos de prueba que luego tengas que limpiar.

Límites de tasa

Límite por clave

Un límite horario configurable por API key (default ) 1000 Configurarlo por tecla en la sección de Ajustes,API Llaves.

Cuando se supera

HTTP 429 con el código rate_limited, más un encabezado Retry-After que te indica cuántos segundos esperar y que restablece el límite al principio de la siguiente hora del reloj.

Saber dónde estás

Cada respuesta lleva X-RateLimit-Limit, X-Remaining y X-Reset (una marca de tiempo Unix) Observe Remaining y reduzca la velocidad antes de que se agote en lugar de esperar a ser rechazado.

Decir429desde401

A 429 significa esperar e intentar de nuevo. A 401 significa que la propia clave es incorrecta o ha caducado, por lo que volver a intentarlo no ayudará hasta que arregle la clave.

Guardia de fuerza bruta pre-auth

Repetidas tentativas fallidas de unaIPLas claves válidas nunca tropiezan con esto.

Las mejores prácticas

Retírate cuando el Remaining sea bajo, y honra a Retry-After después de un 429 en lugar de volver a intentarlo inmediatamente.

Versiones y estabilidad

Versión actual

v1. Cada respuesta lleva X-OpsIQ-API-Versión y X-OpsIQ-API-Estado para que puedas confirmar con quién estás hablando.

Cómo se le avisará

Si una versión es retirada, las respuestas obtienen los encabezados estándar Deprecation y Sunset, y meta. actions reporta deprecated y sunset_at. Compruébalos en tu monitoreo y nunca te sorprenderás.

Lo que no cambiará

Nombres de acciones existentes, sus parámetros y códigos de error. Nuevas acciones y nuevos campos opcionales pueden ser añadidos en cualquier momento, así que ignore los campos que no reconozca antes que fallarlos.

Una integración completa, de principio a fin

Este es el ciclo completo: encontrar trabajo, leerlo, actuar sobre él y confirmar lo que hiciste.

Flujo de trabajo completo del ticket sobre el 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}
💡
Todo lo anterior funciona de la misma manera para las conversaciones: conversations. list, conversations. get, conversation. send y conversations, update siguen el mismo patrón, parámetros y forma de respuesta.

Cada acción, con el alcance que necesita

Esta lista se genera a partir del catálogo en ejecución, por lo que siempre coincide con la versión que estás usando. meta.actions Devuelve la misma información 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

chat (34)

chat.call.start

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Call Start

chat.cobrowse.send

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Cobrowse Send

chat.feedback

Read. Scope: chat.read, admin. Contract: route_inferred. Chat Feedback

chat.feedback.digest

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Feedback Digest

chat.form.delete

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Form Delete

chat.form.get

Read. Scope: chat.read, admin. Contract: route_inferred. Chat Form Get

chat.form.list

Read. Scope: chat.read, admin. Contract: declared_dynamic. Chat Form List

chat.form.save

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Form Save

chat.form.set.default

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Form Set Default

chat.online.admins

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Online Admins

chat.permissions.list

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Permissions List

chat.permissions.revoke

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Permissions Revoke

chat.permissions.save

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Permissions Save

chat.permissions.upload.avatar

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Permissions Upload Avatar

chat.reaction.toggle

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Reaction Toggle

chat.saved_replies.add

Write. Scope: chat.write, admin. Contract: source_inferred. Chat Saved Replies Add Retry-safe with idempotency_key.

chat.saved_replies.list

Read. Scope: chat.read, admin. Contract: explicit. List workspace and personal saved replies

chat.saved_replies.save

Write. Scope: chat.write, admin. Contract: source_inferred. Chat Saved Replies Save Retry-safe with idempotency_key.

chat.set.persona

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Set Persona

chat.snooze.clear

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Snooze Clear

chat.snooze.set

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Snooze Set

chat.transfer.thread

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Transfer Thread

chat.transfer.unread

Write. Scope: chat.write, admin. Contract: declared_dynamic. Chat Transfer Unread

chat.typing.preview

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Typing Preview

chat.whisper.ai.summary

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper Ai Summary

chat.whisper.controls

Write. Scope: chat.write, admin. Contract: declared_dynamic. Chat Whisper Controls

chat.whisper.delete.room

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper Delete Room

chat.whisper.list

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper List

chat.whisper.mentions

Write. Scope: chat.write, admin. Contract: declared_dynamic. Chat Whisper Mentions

chat.whisper.rooms

Write. Scope: chat.write, admin. Contract: declared_dynamic. Chat Whisper Rooms

chat.whisper.save.controls

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper Save Controls

chat.whisper.send

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper Send

chat.whisper.targets

Write. Scope: chat.write, admin. Contract: declared_dynamic. Chat Whisper Targets

chat.whisper.unread

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper Unread

communications (21)

communications.auth.check

Read. Scope: communications.read, admin. Contract: route_inferred. Email Auth Check

communications.campaign.delete

Write. Scope: communications.write, admin. Contract: route_inferred. Push Campaign Delete

communications.campaign.save

Write. Scope: communications.write, admin. Contract: route_inferred. Push Campaign Save

communications.campaign.send

Write. Scope: communications.write, admin. Contract: route_inferred. Push Campaign Send

communications.campaigns.list

Read. Scope: communications.read, admin. Contract: declared_dynamic. Push Campaigns List

communications.drafts.delete

Write. Scope: communications.write, admin. Contract: route_inferred. Email Drafts Delete

communications.drafts.list

Read. Scope: communications.read, admin. Contract: declared_dynamic. Email Drafts List

communications.drafts.save

Write. Scope: communications.write, admin. Contract: route_inferred. Email Drafts Save

communications.drafts.send

Write. Scope: communications.write, admin. Contract: route_inferred. Email Drafts Send

communications.mailboxes.delete

Write. Scope: communications.write, admin. Contract: route_inferred. Email Mailboxes Delete

communications.mailboxes.list

Read. Scope: communications.read, admin. Contract: route_inferred. Email Mailboxes List

communications.mailboxes.poll

Read. Scope: communications.read, admin. Contract: declared_dynamic. Email Mailboxes Poll

communications.mailboxes.save

Write. Scope: communications.write, admin. Contract: route_inferred. Email Mailboxes Save

communications.mailboxes.test

Read. Scope: communications.read, admin. Contract: declared_dynamic. Email Mailboxes Test

communications.pipe.regen.token

Write. Scope: communications.write, admin. Contract: declared_dynamic. Email Pipe Regen Token

communications.platform.list

Read. Scope: communications.read, admin. Contract: declared_dynamic. Email Platform List

communications.platform.send

Write. Scope: communications.write, admin. Contract: route_inferred. Email Platform Send

communications.settings.get

Read. Scope: communications.read, admin. Contract: declared_dynamic. Email Settings Get

communications.settings.save

Write. Scope: communications.write, admin. Contract: route_inferred. Email Settings Save

communications.settings.test

Read. Scope: communications.read, admin. Contract: route_inferred. Email Settings Test

communications.vapid.generate

Write. Scope: communications.write, admin. Contract: declared_dynamic. Push Vapid Generate

connector_builder (11)

connector_builder.export

Read. Scope: connector_builder.read, admin. Contract: explicit. Export a generated connector Required fields: slug.

connector_builder.generate

Write. Scope: connector_builder.write, admin. Contract: explicit. Generate a connector package Required fields: spec. Retry-safe with idempotency_key.

connector_builder.get

Read. Scope: connector_builder.read, admin. Contract: explicit. Load a Builder specification Required fields: slug.

connector_builder.import.curl

Write. Scope: connector_builder.write, admin. Contract: explicit. Import cURL into Connector Builder Retry-safe with idempotency_key.

connector_builder.import.openapi

Write. Scope: connector_builder.write, admin. Contract: explicit. Import OpenAPI into Connector Builder Retry-safe with idempotency_key.

connector_builder.import.postman

Write. Scope: connector_builder.write, admin. Contract: explicit. Import Postman into Connector Builder Retry-safe with idempotency_key.

connector_builder.list

Read. Scope: connector_builder.read, admin. Contract: explicit. List Builder connectors

connector_builder.profiles

Read. Scope: connector_builder.read, connectors.read, admin. Contract: source_inferred. List Connector Builder profiles and capability contracts

connector_builder.test

Write. Scope: connector_builder.write, admin. Contract: explicit. Run Builder conformance tests Required fields: slug. Retry-safe with idempotency_key.

connector_builder.update

Write. Scope: connector_builder.write, admin. Contract: explicit. Update a generated connector Required fields: slug, spec. Retry-safe with idempotency_key.

connector_builder.validate

Read. Scope: connector_builder.read, admin. Contract: explicit. Validate a Builder specification Required fields: spec.

connectors (49)

connectors.action

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Action

connectors.backfill

Write. Scope: connectors.write, admin. Contract: explicit. Start connector backfill Required fields: slug. Retry-safe with idempotency_key.

connectors.backfill.route.connectors.backfill

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Backfill

connectors.backfill.status

Read. Scope: connectors.read, admin. Contract: explicit. Read connector backfill status Required fields: slug.

connectors.backfill.status.route.connectors.backfill.status

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Backfill Status

connectors.builder.ai.actions

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Ai Actions

connectors.builder.ai.handler

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Ai Handler

connectors.builder.ai.map

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Ai Map

connectors.builder.delete

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Delete

connectors.builder.dry.run

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Dry Run

connectors.builder.generate

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Generate

connectors.builder.import.curl

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Import Curl

connectors.builder.import.openapi

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Import Openapi

connectors.builder.import.postman

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Import Postman

connectors.builder.list

Read. Scope: connectors.read, admin. Contract: declared_dynamic. Connectors Builder List

connectors.builder.load

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Load

connectors.builder.marketplace.apply

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Marketplace Apply

connectors.builder.marketplace.link

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Marketplace Link

connectors.builder.marketplace.status

Read. Scope: connectors.read, admin. Contract: declared_dynamic. Connectors Builder Marketplace Status

connectors.builder.marketplace.submit

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Marketplace Submit

connectors.builder.test

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Test

connectors.builder.test.action

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Test Action

connectors.builder.update

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Update

connectors.builder.validate

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Validate

connectors.contacts.import

Write. Scope: connectors.write, admin. Contract: route_inferred. Connector Contacts Import

connectors.contract

Read. Scope: connectors.read, connector_builder.read, admin. Contract: source_inferred. Read the canonical connector capability contract

connectors.customers.sync

Write. Scope: connectors.write, admin. Contract: explicit. Synchronize connector customers Required fields: slug. Retry-safe with idempotency_key.

connectors.disable

Write. Scope: connectors.write, admin. Contract: explicit. Disable a connector Required fields: slug. Retry-safe with idempotency_key.

connectors.disable.route.connectors.disable

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Disable

connectors.email.account.department

Read. Scope: connectors.read, admin. Contract: route_inferred. Connector Email Account Department

connectors.email.account.remove

Write. Scope: connectors.write, admin. Contract: route_inferred. Connector Email Account Remove

connectors.email.account.routing

Read. Scope: connectors.read, admin. Contract: route_inferred. Connector Email Account Routing

connectors.enable

Write. Scope: connectors.write, admin. Contract: explicit. Enable a connector Required fields: slug. Retry-safe with idempotency_key.

connectors.enable.route.connectors.enable

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Enable

connectors.get

Read. Scope: connectors.read, admin. Contract: source_inferred. Connectors Get

connectors.get.route.connectors.get

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Get

connectors.install

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Install

connectors.integrity.scan

Read. Scope: connectors.read, admin. Contract: declared_dynamic. Connector Integrity Scan

connectors.list

Read. Scope: connectors.read, admin. Contract: explicit. List installed connectors and capabilities

connectors.list.route.connectors.list

Read. Scope: connectors.read, admin. Contract: declared_dynamic. Connectors List

connectors.oauth.start

Write. Scope: connectors.write, admin. Contract: route_inferred. Connector Oauth Start

connectors.settings.get

Read. Scope: connectors.read, admin. Contract: explicit. Read connector settings Required fields: slug.

connectors.settings.save

Write. Scope: connectors.write, admin. Contract: explicit. Save connector settings Required fields: slug, settings. Retry-safe with idempotency_key.

connectors.shared.oauth.delete

Write. Scope: connectors.write, admin. Contract: route_inferred. Connector Shared Oauth Delete

connectors.sync.customers

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Sync Customers

connectors.test

Read. Scope: connectors.read, admin. Contract: source_inferred. Connectors Test

connectors.test.route.connectors.test

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Test

connectors.uninstall

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Uninstall

connectors.workflow.recipes

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Workflow Recipes

conversations (37)

conversations.ai.draft

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Ai Draft

conversations.ai.rewrite

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Ai Rewrite

conversations.archive

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Archive

conversations.assign

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Assign

conversations.assignees

Write. Scope: conversations.write, admin. Contract: declared_dynamic. Admin Client Chat Assignees

conversations.bulk

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Bulk

conversations.clear

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Clear

conversations.clear.all

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Clear All

conversations.customer.tickets

Write. Scope: conversations.write, admin. Contract: declared_dynamic. Admin Client Chat Customer Tickets

conversations.decline

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Decline

conversations.delete

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Delete

conversations.delete.last

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Delete Last

conversations.edit.last

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Edit Last

conversations.export

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Export

conversations.forget.visitor

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Forget Visitor

conversations.get

Read. Scope: conversations.read, admin. Contract: source_inferred. Conversations Get

conversations.history

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat History

conversations.list

Read. Scope: conversations.read, admin. Contract: source_inferred. Conversations List

conversations.messages

Read. Scope: conversations.read, admin. Contract: source_inferred. Conversations Messages

conversations.resolve

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Resolve

conversations.saved.replies

Write. Scope: conversations.write, admin. Contract: declared_dynamic. Admin Client Chat Saved Replies

conversations.saved.reply.add

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Saved Reply Add

conversations.saved.reply.ai.generate

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Saved Reply Ai Generate

conversations.saved.reply.delete

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Saved Reply Delete

conversations.saved.reply.save

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Saved Reply Save

conversations.send

Write. Scope: conversations.write, admin. Contract: source_inferred. Conversations Send Retry-safe with idempotency_key.

conversations.send.route.admin.client.chat.send

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Send

conversations.tags.set

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Tags Set

conversations.thread

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Thread

conversations.threads

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Threads

conversations.toggle

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Toggle

conversations.toggle.attachments

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Toggle Attachments

conversations.toggle.call.button

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Toggle Call Button

conversations.typing

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Typing

conversations.unarchive

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Unarchive

conversations.update

Write. Scope: conversations.write, admin. Contract: explicit. Update a conversation status, assignment or subject Retry-safe with idempotency_key.

conversations.upload

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Upload

crm (260)

crm.ab.results

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Ab Results

crm.access.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Access Set

crm.access_log.list

Read. Scope: admin. Contract: source_inferred. Crm Access Log List

crm.account.health

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Account Health

crm.account.health.board

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Account Health Board

crm.account.health.refresh

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Account Health Refresh

crm.account.plan.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Account Plan Get

crm.account.plan.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Account Plan Save

crm.account.plans.due

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Account Plans Due

crm.account.timeline

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Account Timeline

crm.activities.list

Read. Scope: crm.read. Contract: explicit. List CRM contact activities

crm.activities.record

Write. Scope: crm.write. Contract: explicit. Record a CRM contact activity Required fields: contact_id, activity_type. Retry-safe with idempotency_key.

crm.activity.feed

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Activity Feed

crm.agent.toggle

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Agent Toggle

crm.ai.policy.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Ai Policy Get

crm.ai.policy.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Ai Policy Save

crm.ai.policy.simulate

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Ai Policy Simulate

crm.ai.trace

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Ai Trace

crm.approval.decide

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Approval Decide

crm.approval.delegate.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Approval Delegate Set

crm.approval.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Approval List

crm.approval.policy.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Approval Policy Get

crm.approval.policy.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Approval Policy Save

crm.approval.settings

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Approval Settings

crm.approve.apply

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Approve Apply

crm.approve.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Approve List

crm.approve.reject

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Approve Reject

crm.approve.update

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Approve Update

crm.ask

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Ask

crm.assign.owner

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Assign Owner

crm.assignment.get

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Assignment Get

crm.assignment.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Assignment Save

crm.attachment.delete

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Attachment Delete

crm.attachment.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Attachment List

crm.attachment.upload

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Attachment Upload

crm.autobook.meeting

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Autobook Meeting

crm.autodeal.mode

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Autodeal Mode

crm.book.meeting

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Book Meeting

crm.booking.link.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Booking Link Save

crm.booking.links.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Booking Links List

crm.build.apply

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Build Apply

crm.build.get

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Build Get

crm.build.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Build List

crm.build.plan

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Build Plan

crm.build.rollback

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Build Rollback

crm.bulk

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Bulk

crm.bundle.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Bundle Set

crm.calendar.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Calendar Status

crm.capture.status

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Capture Status

crm.comm.policy.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Comm Policy Get

crm.comm.policy.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Comm Policy Save

crm.command.snapshot

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Command Snapshot

crm.companies.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Companies List

crm.company.hierarchy

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Company Hierarchy

crm.company.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Company Save

crm.company.set.parent

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Company Set Parent

crm.company.suggest.related

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Company Suggest Related

crm.connectors.catalog

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Connectors Catalog

crm.consent_log.list

Read. Scope: crm.read. Contract: source_inferred. Crm Consent Log List

crm.contact.churn

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Contact Churn

crm.contact.draft.email

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contact Draft Email

crm.contact.enrich

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contact Enrich

crm.contact.propose.email

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contact Propose Email

crm.contacts.detail

Read. Scope: crm.read. Contract: source_inferred. Crm Contacts Detail

crm.contacts.erase

Write. Scope: admin. Contract: source_inferred. Crm Contacts Erase Retry-safe with idempotency_key.

crm.contacts.export

Read. Scope: crm.read. Contract: source_inferred. Crm Contacts Export

crm.contacts.import.list

Read. Scope: crm.read. Contract: source_inferred. Crm Contacts Import List

crm.contacts.import.run

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Import Run Retry-safe with idempotency_key.

crm.contacts.list

Read. Scope: crm.read. Contract: source_inferred. Crm Contacts List

crm.contacts.next_action

Read. Scope: crm.read. Contract: source_inferred. Crm Contacts Next Action

crm.contacts.open_chat

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Open Chat Retry-safe with idempotency_key.

crm.contacts.open_ticket

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Open Ticket Retry-safe with idempotency_key.

crm.contacts.resync

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Resync Retry-safe with idempotency_key.

crm.contacts.save

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Save Retry-safe with idempotency_key.

crm.contacts.send_email

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Send Email Retry-safe with idempotency_key.

crm.contacts.upsert

Write. Scope: crm.write. Contract: explicit. Crm Contacts Upsert Required fields: email. Retry-safe with idempotency_key.

crm.contract.amend

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contract Amend

crm.contract.price.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contract Price Set

crm.contract.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contract Save

crm.contract.usage

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contract Usage

crm.contracts.list

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contracts List

crm.conversation.intel

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Conversation Intel

crm.conversions.goals.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Conversions Goals Delete Retry-safe with idempotency_key.

crm.conversions.goals.list

Read. Scope: crm.read. Contract: source_inferred. Crm Conversions Goals List

crm.conversions.goals.save

Write. Scope: crm.write. Contract: source_inferred. Crm Conversions Goals Save Retry-safe with idempotency_key.

crm.conversions.list

Read. Scope: crm.read. Contract: source_inferred. Crm Conversions List

crm.conversions.record

Write. Scope: crm.write. Contract: source_inferred. Crm Conversions Record Retry-safe with idempotency_key.

crm.create.video.meeting

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Create Video Meeting

crm.customer.auto.sync

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Customer Auto Sync

crm.customer.auto.sync.status

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Customer Auto Sync Status

crm.customer.emails

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Customer Emails

crm.customer.payments

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Customer Payments

crm.data.steward.bulk.propose

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Data Steward Bulk Propose

crm.data.steward.inbox

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Data Steward Inbox

crm.data.steward.propose

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Data Steward Propose

crm.deal.advance

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Deal Advance

crm.deal.coach

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Deal Coach

crm.deal.coach.action

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Deal Coach Action

crm.deal.get

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Deal Get

crm.deal.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Deal Save

crm.deal.splits.get

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Deal Splits Get

crm.deal.splits.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Deal Splits Set

crm.deals.advance

Write. Scope: crm.write. Contract: explicit. Advance a CRM deal to another stage Required fields: deal_id, stage_id. Retry-safe with idempotency_key.

crm.deals.create

Write. Scope: crm.write. Contract: explicit. Create a CRM deal Required fields: title. Retry-safe with idempotency_key.

crm.deals.detail

Read. Scope: crm.read. Contract: explicit. Get one CRM deal Required fields: deal_id.

crm.deals.list

Read. Scope: crm.read. Contract: explicit. List CRM deals

crm.deals.list.route.crm.deals.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Deals List

crm.deals.update

Write. Scope: crm.write. Contract: explicit. Update a CRM deal Required fields: deal_id. Retry-safe with idempotency_key.

crm.detail

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Detail

crm.draft.outreach

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Draft Outreach

crm.enrich.account

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Enrich Account

crm.erase

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Erase

crm.events.catalog

Read. Scope: crm.read. Contract: explicit. List subscribable CRM domain events

crm.events.list

Read. Scope: crm.read. Contract: explicit. List durable CRM domain events

crm.export

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Export

crm.export.all

Read. Scope: crm.read, admin. Contract: route_inferred. Contact Export All

crm.field.add

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Field Add

crm.field.policy.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Field Policy Get

crm.field.policy.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Field Policy Save

crm.field.remove

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Field Remove

crm.fields.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Fields List

crm.forecast.board

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Forecast Board

crm.forecast.snapshot

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Forecast Snapshot

crm.form.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Form Save

crm.forms.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Forms List

crm.health.repair.catalog

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Health Repair Catalog

crm.health.smoke

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Health Smoke

crm.health.snapshot

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Health Snapshot

crm.home.persona.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Home Persona Set

crm.identity.rules.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Identity Rules Get

crm.identity.rules.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Identity Rules Save

crm.import.list

Read. Scope: crm.read, admin. Contract: route_inferred. Contact Import List

crm.import.run

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Import Run

crm.inbound.activity

Read. Scope: crm.read. Contract: source_inferred. Crm Inbound Activity

crm.inbound.endpoints.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Inbound Endpoints Delete Retry-safe with idempotency_key.

crm.inbound.endpoints.list

Read. Scope: crm.read. Contract: source_inferred. Crm Inbound Endpoints List

crm.inbound.endpoints.save

Write. Scope: crm.write. Contract: source_inferred. Crm Inbound Endpoints Save Retry-safe with idempotency_key.

crm.inbound.endpoints.test

Write. Scope: crm.write. Contract: source_inferred. Crm Inbound Endpoints Test Retry-safe with idempotency_key.

crm.leaderboard

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Leaderboard

crm.lifecycle.evaluate

Write. Scope: crm.write. Contract: source_inferred. Crm Lifecycle Evaluate Retry-safe with idempotency_key.

crm.lifecycle.rules.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Lifecycle Rules Delete Retry-safe with idempotency_key.

crm.lifecycle.rules.list

Read. Scope: crm.read. Contract: source_inferred. Crm Lifecycle Rules List

crm.lifecycle.rules.save

Write. Scope: crm.write. Contract: source_inferred. Crm Lifecycle Rules Save Retry-safe with idempotency_key.

crm.list

Read. Scope: crm.read, admin. Contract: route_inferred. Contacts List

crm.mailbox.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Mailbox Status

crm.meeting.book

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Meeting Book

crm.meeting.cancel

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Meeting Cancel

crm.meeting.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Meeting List

crm.meeting.reschedule.accept

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Meeting Reschedule Accept

crm.meeting.reschedule.reject

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Meeting Reschedule Reject

crm.merge

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Merge

crm.message.send

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Message Send

crm.messaging.provider.delete

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Messaging Provider Delete

crm.messaging.provider.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Messaging Provider Save

crm.messaging.provider.test

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Messaging Provider Test

crm.messaging.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Messaging Status

crm.next.action

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Next Action

crm.object.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Object Save

crm.objects.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Objects List

crm.offline.pull

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Offline Pull

crm.offline.push

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Offline Push

crm.open.chat

Read. Scope: crm.read, admin. Contract: route_inferred. Contact Open Chat

crm.open.ticket

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Open Ticket

crm.outreach.campaigns.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Campaigns Delete Retry-safe with idempotency_key.

crm.outreach.campaigns.list

Read. Scope: crm.read. Contract: source_inferred. Crm Outreach Campaigns List

crm.outreach.campaigns.save

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Campaigns Save Retry-safe with idempotency_key.

crm.outreach.campaigns.send

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Campaigns Send Retry-safe with idempotency_key.

crm.outreach.send

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Send Retry-safe with idempotency_key.

crm.outreach.templates.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Templates Delete Retry-safe with idempotency_key.

crm.outreach.templates.list

Read. Scope: crm.read. Contract: source_inferred. Crm Outreach Templates List

crm.outreach.templates.preview

Read. Scope: crm.read. Contract: source_inferred. Crm Outreach Templates Preview

crm.outreach.templates.save

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Templates Save Retry-safe with idempotency_key.

crm.payments.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Payments Status

crm.pipeline.data

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Pipeline Data

crm.price.resolve

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Price Resolve

crm.pricebook.entry.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Pricebook Entry Set

crm.pricebook.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Pricebook Save

crm.pricebooks.list

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Pricebooks List

crm.privacy_settings.get

Read. Scope: crm.read. Contract: source_inferred. Crm Privacy Settings Get

crm.privacy_settings.save

Write. Scope: admin. Contract: source_inferred. Crm Privacy Settings Save Retry-safe with idempotency_key.

crm.product.archive

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Product Archive

crm.product.revenue

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Product Revenue

crm.product.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Product Save

crm.products.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Products List

crm.propose.meeting

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Propose Meeting

crm.propose.outreach

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Propose Outreach

crm.prospecting.dashboard

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Prospecting Dashboard

crm.prospecting.icp.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Prospecting Icp Save

crm.prospecting.import

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Prospecting Import

crm.prospecting.research

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Prospecting Research

crm.prospecting.score

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Prospecting Score

crm.prospecting.sequence

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Prospecting Sequence

crm.qualification.checklist.get

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Qualification Checklist Get

crm.qualification.checklist.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Qualification Checklist Save

crm.quota.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Quota Save

crm.quote.get

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Quote Get

crm.quote.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Quote Save

crm.quotes.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Quotes List

crm.record.delete

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Delete

crm.record.fields.get

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Record Fields Get

crm.record.fields.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Fields Save

crm.record.get

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Record Get

crm.record.history

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Record History

crm.record.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Save

crm.record.share.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Share Set

crm.record.share.unset

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Share Unset

crm.record.shares

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Shares

crm.records.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Records List

crm.restore.email.consent

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Restore Email Consent

crm.resync.from.platform

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Resync From Platform

crm.retention.catalog

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Retention Catalog

crm.revert

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Revert

crm.runtime.policy.get

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Runtime Policy Get

crm.runtime.policy.remote.wipe

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Runtime Policy Remote Wipe

crm.runtime.policy.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Runtime Policy Save

crm.save

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Save

crm.scoring.rule.ai

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Scoring Rule Ai

crm.scoring.rule.delete

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Scoring Rule Delete

crm.scoring.rule.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Scoring Rule List

crm.scoring.rule.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Scoring Rule Save

crm.segments.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Segments Delete Retry-safe with idempotency_key.

crm.segments.list

Read. Scope: crm.read. Contract: source_inferred. Crm Segments List

crm.segments.members

Read. Scope: crm.read. Contract: source_inferred. Crm Segments Members

crm.segments.preview

Read. Scope: crm.read. Contract: source_inferred. Crm Segments Preview

crm.segments.save

Write. Scope: crm.write. Contract: source_inferred. Crm Segments Save Retry-safe with idempotency_key.

crm.segments.suggestions.accept

Write. Scope: crm.write. Contract: source_inferred. Crm Segments Suggestions Accept Retry-safe with idempotency_key.

crm.segments.suggestions.dismiss

Write. Scope: crm.write. Contract: source_inferred. Crm Segments Suggestions Dismiss Retry-safe with idempotency_key.

crm.segments.suggestions.list

Read. Scope: crm.read. Contract: source_inferred. Crm Segments Suggestions List

crm.semantic.search

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Semantic Search

crm.send.email

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Send Email

crm.send.email.route.crm.send.email

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Send Email

crm.send.for.signature

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Send For Signature

crm.send.payment.link

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Send Payment Link

crm.sequence.action

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Sequence Action

crm.sequence.runs

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Sequence Runs

crm.setup.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Setup Status

crm.sharing.rules.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Sharing Rules Get

crm.sharing.rules.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Sharing Rules Save

crm.subject.registry

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Subject Registry

crm.subscriptions.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Subscriptions List

crm.subscriptions.rollup

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Subscriptions Rollup

crm.subscriptions.sync

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Subscriptions Sync

crm.task.create

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Task Create

crm.tasks.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Tasks List

crm.team.parent.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Team Parent Set

crm.team.rules.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Team Rules Set

crm.team.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Team Save

crm.teams.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Teams List

crm.territory.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Territory Set

crm.video.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Video Status

crm.views.delete

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Views Delete

crm.views.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Views List

crm.views.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Views Save

crm.webhooks.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Webhooks Delete Retry-safe with idempotency_key.

crm.webhooks.list

Read. Scope: crm.read. Contract: explicit. List CRM outbound webhook endpoints and recent deliveries

crm.webhooks.save

Write. Scope: crm.write. Contract: source_inferred. Crm Webhooks Save Retry-safe with idempotency_key.

crm.webhooks.test

Write. Scope: crm.write. Contract: source_inferred. Crm Webhooks Test Retry-safe with idempotency_key.

crm.workflows.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Workflows Delete Retry-safe with idempotency_key.

crm.workflows.list

Read. Scope: crm.read. Contract: source_inferred. Crm Workflows List

crm.workflows.save

Write. Scope: crm.write. Contract: source_inferred. Crm Workflows Save Retry-safe with idempotency_key.

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

seguridad (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

estado (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.

encuestas (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

Billetes (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.

¿Están disponibles OpenAPI y Postman?+

Sí. El OpenAPI generado 3.0 El documento está en. /api/v1/openapi.php, La colección de Postman generada está en. /api/v1/postman.php, y la documentación de desarrollo legible por humanos está en. /api/docs/.

¿Cómo puedo trabajar con más de un espacio de trabajo?+

Una clave emitida para un espacio de trabajo permanece fija a él; una clave con contexto de administrador puede seleccionar cualquier espacio de trabajar que se le permita ver, y es rechazada por cualquier otro que no lo esté.

¿Qué acciones puede llamar una tecla de solo lectura?+

Cualquier acción marcada como lectura. Establezca el modo de permisos en la clave a solo_lectura y cada escritura se rechaza con solo_lectura_clave, por lo que una integración de informes no puede cambiar nada ni siquiera por error.

¿Por qué recibí not_found para algo que puedo ver en el administrador?+

Los registros en otros espacios de trabajo devuelven not_found en lugar de un error de permiso, por lo que el API nunca confirma si algo existe en otro lugar.

Desarrollador

Seguridad API

Un contrato de seguridad para cada conector e integración: pregunteOpsIQlo que sabe de unIPo remitente, y alimentar el abuso que ve su propio sistema.

OpsIQ El mundo ya se defiende: la IP El firewall bloquea a los atacantes, la canalización de tickets filtra el spam y la inteligencia artificial de seguridad clasifica a los infractores y propone reglas de bloqueo. API Una plataforma de facturación, un portal para clientes o una aplicación personalizada pueden verificar a un visitante antes de confiar en él e informar lo que observó para que toda la instalación aprenda de cada superficie.

Qué puedes hacer

Comprueba antes de confiar

security. check responde con el estado del firewall, cualquier regla de spam que coincida con el remitente y el veredicto de IA en caché para IP Una llamada, una opinión consolidada.

Reporta lo que viste

security.report registra la observación como un evento de seguridad, hace que la IA de Seguridad clasifique el IP Los informes repetidos se agrupan en incidentes, exactamente como los ataques de ransomware, y son enviados a un administrador. OpsIQ El hombre ve directamente.

Reglas de spam compartido

security. blocklist. add y security. bloklist. list leen y escriben las mismas reglas de spam que usa la página Tickets, por lo que un remitente bloqueado en un sistema está bloqueado por todas partes.

Informar de abuso desde un 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"
}

Alcance y seguridad

security.read

Necesaria para security. check y security. blocklist. list. Segura para dar una integración de informes.

security.write

Necesario para security. report y security. blocklist. add, déselo solo a los sistemas en los que desea alimentar reglas e informes.

Nada se destruye silenciosamente

Un remitente bloqueado aún se encuentra en la vista de Spam, donde el ticket puede leerse y restaurarse.

La plataforma se protege a sí misma

El propio del servidor IP Las direcciones de correo no deseadas nunca pueden ser bloqueadas, incluidas en la lista de bloqueo o reportadas a través de este. API, por lo que una integración mal configurada no puede derribar la plataforma.

💡
Cree una clave bajo Integraciones, luego API Keys y déle solo los ámbitos de seguridad que necesita. El contrato completo de solicitud para cada acción está en meta. actions y el documento OpenAPI.
¿Mis conectores existentes utilizan esto automáticamente?+

La sincronización saliente ya es automática: cuando bloquea un IP, las plataformas conectadas se comunican a través de la sincronización de seguridad del conector. API Apunte su conector o código personalizado a estas cuatro acciones con una tecla que lleve los alcances de seguridad.Point your connector or custom code at these four actions with a key carrying the security scopes.

¿Dónde viven las reglas de spam?+

El control de remitentes bloqueados en la página Tickets, el spam AI en Configuración y este API todos trabajan contra la misma lista de bloqueo, por lo que hay exactamente un lugar para buscar.

Desarrollador

Eventos API

Envía eventos personalizados desde tu servidor o sitio web a OpsIQ para análisis, experimentos, desencadenadores de CRM y condiciones de webhook.

Cómo funciona
Eventos APIUna llamada a track() que envía un evento demo_booked personalizado a OpsIQ, el cual alimenta objetivos de conversión, segmentos y desencadenadores.OpsIQ. track("demo_booked", {Valor: 0, plan: "pro"});Objetivos de conversiónSegmentosDisparadores & webhooksNavegador de Internet (OpsIQ.track) o POST del servidor /v1/events
Eventos API

Eventos del lado del navegador

Seguimiento de eventos del navegador
window.OpsIQ = window.OpsIQ || [];
window.OpsIQ.push(["track", "button_clicked", {
  button: "signup",
  page: "/pricing",
  variant: "green"
}]);

Eventos del lado del servidor

En el lado del servidor, registra las actividades y conversiones de un contacto mediante la acción API. Uso crm.activities.record para el ciclo de vida/actividad comercial y crm.conversions.record No hay ningún tipo de conversión. events.send El receptor del evento CRM entrante vive en /v1/inbound.php?t=<token> para sistemas de terceros que envían eventos.

Actividad del lado del servidor (acción 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"
}

Convención de nombres

Notación de puntos

"order. completed" no "orderCompleted".

Tiempo pasado

"button. clicked" no "buttons. click".

Sé específico

"pricing. plan_selected" no "user_action".

Desarrollador

Cómo fluyen los datos a través de OpsIQ

Comprender el flujo de datos le ayuda a depurar las integraciones y optimizar el rendimiento.

Cómo funciona
Cómo fluyen los datosLos datos fluyen del widget y el beacon enOpsIQnúcleo (CDP, gráfico de identidad, cerebro AI, analítica,CRM) entonces fuera a través de webhooks y el RESTAPI.Widget&quot; BeaconOpsIQ núcleoCDP · gráfico de identidadCerebro de IAAnálisis · CRMWebhooks fueraAPI REST
Flujo de datos

Flujo de datos entrante

1
Widget de baliza

The JavaScript El widget envía vistas de página, clics y mensajes de chat a. /beacon.php.

2
Ingestión de eventos

Eventos almacenados en opsiq_events con site_key, tipo de evento, cliente y propiedades.

3
Asamblea de sesión

El generador de sesiones agrupa las vistas de página en sesiones (a través de cron).

4
Resolución de identidad

Cuando se identifican, los registros anónimos se vinculan al perfil del cliente.

5
Sincronización del conector

Los conectores extraen datos de plataformas externas y los almacenan en la caché del conector.

6
Contexto de IA

La IA ensambla el contexto de: historial del visitante, perfil del cliente, datos del conector, KB y solicitud.

Flujo de datos salientes

1
Incendios de eventos

Incendios de eventos internos (ticket. created, chat. message, order. completed).

2
Cola de trabajos

Evento colocado en la cola de trabajos asíncronos.

3
Despacho de Webhook

El despachador firma y envía a todos los puntos finales suscritos.

4
Reintentar en caso de fallo

Las entregas fallidas se reintentan con retroceso exponencial.

Configuración

Referencia de configuración

Todo lo que se indica a continuación tiene un alcance específico para el espacio de trabajo en el que te encuentras, por lo que una cuenta puede administrar varias marcas con identidades, comportamientos de chat y reglas de retención diferentes.

Encontrar un entorno

Hay alrededor de seiscientos controles individuales en Configuración, distribuidos en once pestañas agrupadas bajo cuatro menús, pero no se espera que los busques.

Configuración de búsqueda (Ctrl + K)

Presione Ctrl + K, o Cmd + K en un Mac, en cualquier lugar de la página Configuración. Escriba palabras sencillas y presione Intro para ir directamente al control. La búsqueda tolera errores tipográficos pequeños y entiende las palabras relacionadas, por lo que el programador encuentra Cron y la privacidad encuentra los controles de seguimiento.

Espacio de trabajo y plan

General y Licencia.

AI y atención al cliente

Asistente de IA, Chat con el cliente, OpsIQ Escritura y Portal de soporte.

Datos y gobernanza

Seguimiento y privacidad, permisos y seguridad.

Sistema

Configuración de Cron (solo auto-hospedado) y Zona de peligro.

Ahorro

Cada pestaña se guarda por sí misma con su propio botón Guardar. El Chat del cliente y OpsIQ Escritura fijan el suyo a la pantalla.

Enlaces profundos

La pestaña activa se escribe en la dirección de la página, por lo que una pestaña puede ser marcada o enviada a un colega.

General: Identidad corporativa

La tarjeta más importante de la página, que el IA lee en cada respuesta, informe y resumen diario.

Nombre de la empresa

Se utiliza en informes de IA, resúmenes diarios y textos dirigidos al cliente.

Industria de negocios

Elige entre alojamiento web, comercio electrónico, SaaS, bienes raíces, agencias, consultoría, atención médica, educación, finanzas o negocios en general. Elige entre una amplia gama de servicios y herramientas para optimizar tu experiencia de usuario.

Idioma del sistema

El idioma que se muestra a cualquiera que no haya elegido el suyo, cada agente puede anularlo en su perfil.

Usar el idioma del navegador

Muestra la página de inicio de sesión en el propio idioma del visitante Una vez que alguien elige un idioma allí, su elección gana y esto nunca lo anula.

Zona horaria del sistema

La zona en la que se ejecuta todo el sistema: fechas, informes, horarios y cron de fondo. Utilice su zona horaria de operaciones, no sus clientes.

General: GeoIP y seguimiento

Ruta de la base de datos GeoIP2

Ruta completa a GeoLite2-City. mmdb. Autodetecta en la primera carga en cPanel, Plesk, DirectAdmin, Cloudways, Docker y Linux o Windows Añada GeoLit2-ASN. mmbd en la misma carpeta para el proveedor de Internet del visitante.

Modo de fuente geográfico

GeoLite2 solamente, GeoLit2 con un Cloudflare fallback, or Cloudflare only.Cloudflare Estos modos requieren que el sitio sea un proxy a través de.Cloudflare, con los encabezados de ubicación del visitante habilitados para el detalle de ciudad y región.

Tiempo de espera (s)

La inactividad antes de que una sesión del visitante se considere terminada. Por defecto 14400, es decir cuatro horas.

Intervalo de actualización en vivo (s)

Con qué frecuencia se actualiza el Live Feed. Por defecto 30 segundos.

Umbral activo (min)

El tiempo que un visitante cuenta como en vivo después de su última carga de página. Por defecto 2 minutos Este es el tiempo de caída del Live Feed, no la duración de la sesión.

Retención de datos (días)

Elimina los registros recopilados y generados después de esta edad: análisis, chat, tickets, comentarios, transacciones, telemetría de IA, registros de integración y actividad de CRM. 0 lo guarda todo para siempre; la configuración, el contenido creado y los recibos de consentimiento nunca se eliminan.

Cuando se elimina un chat

Elige cuánto de una conversación borrada se mantiene en el registro: el disco completo, el registro sin la conversación o sólo la puntuación. Eliminar siempre esconde el chat desde la bandeja de entrada y la historia del visitante. Retención programada y Olvidar visitante siempre borrar completamente independientemente de esto.

Seguimiento del tráfico de bots

Cuenta los rastreadores como visitantes. Deja de hacerlo; infla el recuento de visitantes y sesga todos los informes.

Encuesta de retroalimentación emergente habilitada

Separado de las encuestas del chat, bajo Chat con el cliente, Flujo de soporte.

General: Características de IA

Interruptores maestros para cada superficie de IA, todos activados por defecto y guardados por espacio de trabajo.

AI Triage en los tickets

Clasifica cada ticket por categoría, prioridad y sentimiento, y escribe un resumen del hilo en la parte superior del ticket.

Resumen de hover de AI Triage

Muestra las etiquetas de clasificación y el resumen en una información sobre la herramienta cuando un agente pasa el cursor por encima de una fila de la lista de tickets.

Copilot (compositor)

Añade los botones Borrador de respuesta de IA, Más cálido, Más corto, Más formal y Apología bajo el cuadro de respuesta del ticket.

Pregunta...OpsIQ Copiloto

El copiloto flotante consciente de la página en cada página de administración Sabe qué cliente, factura o ticket está abierto.

Brief de la mañana

En la primera apertura de cada día, el copiloto presenta los tickets urgentes, las respuestas atrasadas y los chats en espera.

General: dinero, marca, respaldo

OpsIQ moneda base

Cada total de dinero en el administrador se convierte a esta moneda para mostrarse. Los conectores almacenan su propia moneda de origen; establezca esa por conector.

Sincronización automática de las tasas FX

Actualiza los tipos de cambio cada seis horas desde un canal público gratuito sin la clave API. Puedes agregar tipos de cambios manuales que anulen el canal, pero si desactivas la sincronización automática, las divisas sin un tipo de cambio manual no se convertirán.

Habilitar las funciones de comercio y facturación

Cuando se activa, muestra la página Ventas y conversiones, las tarjetas de ingresos del panel y el feed de inteligencia en tiempo real. Si está desactivada, todas las superficies de precios están ocultas y la página de ventas sale del menú.

Vocabulario de comercio

Enseña a OpsIQ su redacción: si usted hace renovaciones, la palabra para renovar, lo que vende y cómo se llama a los compradores.

Branding y Logotipos

Dos subidas, una para fondos claros (barra lateral de administración) y otra para oscuros (página de inicio de sesión): PNG, JPG, WebP o SVG hasta 3 MB.

Agente de inteligencia del sitio, permitir objetivos privados SSH

El agente de SEO de implementación automática se conecta a través de SSH. Las direcciones privadas, de bucle y reservadas están bloqueadas por defecto como medida anti-SSRF. Solo habilite en instalaciones autohospedadas que deben llegar a un servidor local.

OpsIQ Copia de seguridad / Restauración

Exporta todos los ajustes y tablas propiedad de OpsIQ más archivos cargados. Restaurar reemplaza solo la configuración y registros de _OpsIQ; nunca toca clientes, facturas, tickets, servicios, dominios, pedidos o transacciones.

⚠️
Hacer una copia de seguridad antes de usar cualquier cosa en Danger Zone, la copia de respaldo vive en General y las acciones de eliminación viven en Dangers Zone, por lo que es fácil llegar al botón de eliminar sin haber exportado primero.
Configuración

Configuración: Seguridad y privacidad

Protección para el inicio de sesión del administrador, las cuentas de su personal y los datos que recopila OpsIQ El inicio de sesion del cliente para el portal de soporte se configura por separado.

Protección de inicio de sesión

Google reCAPTCHA

Detiene los bots y el relleno de credenciales en el inicio de sesión del administrador. Elija v3 (invisible, puntuado) o v2 (caja de verificación), establezca el umbral de puntuación de v3 y proporcione las claves secretas y del sitio.

Bloqueo automático de inicio de sesión fallido

Bloquea una dirección después de un número de errores dentro de una ventana, durante un número determinado de horas. Puede personalizar el mensaje de página bloqueada y mostrar una pequeña distracción en la pantalla de espera.

Iniciar sesión Hardening

Política de contraseñas con una longitud mínima, rechazo de las contraseñas encontradas en violaciones conocidas, bloqueo por cuenta contra el relleno de credenciales, dos factores obligatorios para cada administrador, reintroducción de la contraseña antes de acciones peligrosas y alertas de inicio de sesión en nuevos dispositivos.

Inicio de sesión único (OIDC)

El inicio de sesión del personal a través de su proveedor de identidades requiere el emisor URL, el ID de cliente y el secreto del cliente. Los dominios con aprovisionamiento automático, uno por línea, crean usuarios automáticamente al iniciar sesión por primera vez.

Inicio de sesión único (SSO)SAML 2.0)

Para proveedores que hablan SAML. OpsIQ Suministra la respuesta ACS.URL y el ID de entidad del SP; usted proporciona el IdP ID de la entidad,URL, salida opcional URL y X.509 Los campos de atributo Correo electrónico y Nombre solo son necesarios para nombres de atributos no estándar.

Provisionamiento SCIM

Creación, actualización y desactivación de directorios OpsIQ accounts.OpsIQ Suministra el. SCIM Base URL; se generan tokens etiquetados aquí para que uno pueda ser revocado sin romper el resto.

Amenazas, bloqueo y recopilación

Lista de permisos de salida

Restringe a qué hosts externos pueden llamar los conectores de este espacio de trabajo. Compañero del control SSH target en General.

Puntuación de amenazas y bloqueo automático

Bloquea a un visitante una vez que su puntuación de amenaza supere el umbral. 0 lo desactiva. Observe la página Descripción general de seguridad durante una semana antes de elegir un número.

Mensaje de página bloqueada

El mensaje que ve un visitante bloqueado, como texto plano o su propia pantalla de bloqueo HTML personalizada.

Core Web Vitals de visitantes reales

Mide LCP, INP y CLS de sesiones reales.

Entrega de eventos por lotes, segura para reintentos

Los eventos personalizados se encolan en el navegador y se entregan por lotes con reintentos, reduciendo la pérdida de datos en las conexiones móviles deficientes.

Balizas de seguimiento firmadas

Los widgets reales incorporados llevan un token criptográfico giratorio para que los datos de seguimiento falsificados puedan ser rechazados. Desactivado por defecto; habilitar cambia cómo se autentican los insertos, así que pruébalo primero.

Alertas de seguridad

Esta tarjeta controla si se te dice que lo hagas, y cuánto ayuda la IA.

Habilitar alertas de seguridad

Interruptor maestro para esta tarjeta.

Umbral de onda de inicio de sesión fallido

Cuántos inicios de sesión fallidos en un período corto cuentan como una ola que vale la pena alertar.

IP Inteligencia de reputación

Agrega una puntuación de amenaza para los visitantes que aparecen en las fuentes públicas de abuso.

Vigilancia del sitio

Tiempo de actividad por hora y comprobaciones de caducidad TLS, alertando antes de que un certificado caduque.

Analista de seguridad de IA y informes de incidentes de IA

Añade un veredicto explicable a la actividad sospechosa y agrupa los ataques relacionados en un único incidente legible, en lugar de una secuencia de eventos.

Piloto automático de políticas

Actúa por sí mismo, convirtiendo lo que aprende de un incidente en una regla propuesta o aplicada; deja de hacerlo hasta que hayas revisado sus propuestas y estés de acuerdo con ellas.

Resumen diario de seguridad y asesor semanal de postura

Un resumen diario en la página de información general sobre seguridad y una lista de verificación semanal que muestra qué está protegido y qué sigue abierto.

Propuestas obsoletas de caducidad automática

Una regla de bloqueo propuesta sobre la que nunca actuó caduca por sí misma en lugar de acumularse.

Reproducción de sesión DOM

Habilitar la reproducción de sesión DOM

Cuando está desactivada, la biblioteca de repeticiones nunca se carga, por lo que no hay costo alguno en dejarla desactivado. Las grabaciones se muestrean y enmascaran para proteger su privacidad, y se ven en la página Reproducción de sesión bajo Análisis.

Frecuencia de muestreo, captura máxima, retención

Qué porcentaje de sesiones grabar, cuánto tiempo puede durar una sola grabación y cuántos días se guardan las grabaciones.

⚠️
La reproducción de sesiones registra a personas reales que usan tu sitio. Mantén la frecuencia de muestreo y la retención lo más bajas posibles para responder a tu pregunta. Divulga esta información en tu aviso de privacidad.
Configuración

Configuración: Seguimiento y privacidad

Qué puede recopilar OpsIQ y cuánto tiempo sobrevive cada tipo de registro.

Exclusiones

Excluidos IPs y rangos de CIDR

Direcciones nunca rastreadas, una por línea, direcciones exactas o rangos de CIDR: la forma más limpia de mantener a su propio equipo fuera de sus análisis, porque cubre a todos los usuarios en esa dirección y no solo a los administradores que han iniciado sesión.

Rutas de acceso URL excluidas

Los patrones de página nunca se rastrean, uno por línea, comodines con un asterisco Por ejemplo /admin/* mantiene todo el back office fuera del registro de visitantes.

Política de retención de datos

Separado de la configuración general de Retención de datos en General y de la purga de Zonas peligrosas. Separated from the overall Data Retention setting in General and from the Danger Zone purge.

Registros de interacción con IA

Confidence telemetry holding short previews of query and response. Por defecto, 90 días. Este tiempo contiene la mayor cantidad de texto del cliente, así que acórtalo primero cuando se restrinja la privacidad.

Eventos de uso de IA

Recuento de tokens por llamada para informes de costo. Por defecto 90 días. Solo números, sin contenido del mensaje.

Rastro de auditoría de acciones

El registro de seguridad y acciones a prueba de manipulación. Por defecto, 365 días. Consérvelo durante el mayor tiempo posible; es su rastro de evidencia.

Diagnósticos

Registros de estado del sistema. Por defecto 30 días.

Preguntas sin respuesta

Clústeres de preguntas que la IA no pudo responder. Por defecto 90 días, trabaja en ellas en la página Preguntas que la AI se perdió antes de que expiren.

Perros de vigilancia y exportaciones

Alertas de anomalía métrica

Comparación diaria de ayer con la línea base reciente, que alerta cuando una métrica se mueve más allá del umbral. Por defecto 35 por ciento.

Exportación de Almacén

Volcados nocturnos de sesiones, visitantes, páginas vistas y tablas relacionadas para su propia pila de BI, en un formato que usted elija, conservados durante un número de días.

Configuración

Configuración: Administrador AI Assistant

El asistente flotante que su personal utiliza dentro del administrador, con acceso de lectura en vivo a clientes, facturas, tickets, servidores y registros cron. Un asistente diferente al que se encuentra frente al cliente bajo Chat de Cliente.

Activar el widget de IA OpsIQ

Muestra el botón de asistente en cada página de administración. Desactivado lo oculta para todos.

Diseño y comportamiento

Posición de la esquina, ancho del panel (320 to 600 px), altura máxima (400 to 900 px), radio de esquina (0to 24), el tamaño de la fuente y un desenfoque de vidrio esmerilado detrás del panel.

Mostrar chips rápidos

Botones de acceso directo con un solo clic debajo del encabezado. La forma más rápida para la mayoría del personal.

Mostrar información del modelo

Muestra qué modelo respondió y cuánto tiempo tomó. Útil al afinar el costo, ruido para uso diario.

Puerta de acceso por administrador

Solo muestra el asistente al administrador que ha iniciado sesión y cuyo nombre de usuario y correo electrónico coinciden con un agente OpsIQ asignado a este espacio de trabajo. Los propietarios siempre pasan. Utilice el botón Comprobar mi acceso antes de habilitar o puede bloquear su propio equipo.

AI Persona

Nombre de visualización, eslogan del encabezado y un mensaje personalizado de bienvenida que se muestra cuando se abre el panel.

Chips inteligentes de acción rápida

Edite la etiqueta y el mensaje subyacente para cada acceso directo, agregue su propio o restablezca los valores predeterminados. La etiqueta es lo que ve el personal, el mensaje es lo qu recibe la IA.

Colores y formas

Forma de la ficha (píldora, redondeado, cuadrado), colores de las fichas, tema de tarjeta y forma del lanzador (redondo, squircle, cuadrados), con una vista previa en vivo.

Memoria de conversación

El asistente recuerda el historial de cada persona en las sesiones del navegador, hasta los mensajes 120, almacenados en su propia base de datos.

Configuración

Configuración: Chat de cliente

El widget de chat que usan tus clientes y el área más grande de Configuración Seis subpestañas, con el interruptor maestro y Guardar anclado en la parte superior de la pestaña.

En una nueva instalación, siga las subpestañas en orden: Identidad y copia, Apariencia, Comportamiento, Flujo de soporte, Capacitación sobre conocimientos.

Identidad y copia

Identidad de marca

Nombre del widget, eslogan, nombre de IA, el nombre utilizado para los avisos del sistema y de inactividad, y cómo aparecen los nombres de los agentes. El origen del nombre del agente decide entre nombres reales, un nombre personalizado o una etiqueta de equipo.

Saludo en el chat

Dos saludos, uno para todos los visitantes y otro para los visitante identificados. Una pregunta inicia más conversaciones que una declaración.

Teaser de Popup

El mensaje flotante antes de que se abra el chat, con su propio nombre, tamaño de fuente y colores. La IA puede escribir los teasers, con controles para cuántos generar, cuánto mostrar por visita y el espacio entre ellos.

Indicaciones y Handoff

El guion completo: pedir un nombre y correo electrónico, confirmaciones, solicitar a un humano, no hay agentes disponibles, ticket creado o cancelado, entrega pendiente… Unas dos docenas de líneas individuales en un panel plegable.

Notificaciones de estado e inactividad

Tres mensajes visibles para el cliente: el agente cierra el chat, el visitante se ha quedado en silencio y el agenta devuelve la información a la IA.

Compositor y Sugerencias

El marcador de posición de entrada, la etiqueta del botón para hablar con un humano y las preguntas iniciales sugeridas: tres buenas sugerencias desvían más tickets que una página de artículos.

Lanzador, icono y avatares

Icono del lanzador, un icono diferente opcional cuando está abierto, tamaño del lanzadora e imágenes para el agente humano y la IA.

Apariencia

Tema y vidrio

Modo de tema, un ajuste preestablecido de color premium, intensidad y opacidad del desenfoque, además de conmutadores para animaciones, líneas separadoras, ocultar la fila de estado, ocultando la tarjeta del cuadro de mensaje y ocultando el botón de cerrar. Comience con un ajusta preestado; establece docenas de colores a la vez.

Colores principales:

Lanzador, encabezado, panel de ayuda, enlaces, botones, avisos del sistema y compositor, cada uno con un color de inicio y final para los degradados. Una opción de uso por defecto de vidrio ignora estos y mantiene el acabado transparente.

Panel, burbujas y virutas

Alrededor de treinta selectores que cubren el panel, bordes, texto, área de entrada y cada tipo de burbuja (visitante, IA, agente, escritura, sistema), además de chips de sugerencia y su estado de desplazamiento sobre la pantalla.

Diseño y forma

Ancho y altura del panel, radio de la esquina, tamaño de fuente, posición en pantalla, forma del lanzador, estilo de burbuja y si se muestran los avatares.

Comportamiento

La IA responde automáticamente

Desactivado significa que cada mensaje espera a un humano para responder.

Seguimientos humanos y doble mensajería natural

Un seguimiento suave cuando un visitante se calla, y un segundo mensaje corto opcional de la manera en que una persona enviaría uno. Ajustado con el máximo de seguimientos por silencio, primer retraso, multiplicador posterior, ventana de presencia y ventana de secuencia máxima.

Respuestas de máquina de escribir y ritmo de respuesta

Si las respuestas se escriben palabra por palabra, y qué tan rápido el asistente responde, por preestablecido o su propio retraso mínimo y máximo en milisegundos. Un pequeño retraso se lee como más humano que una respuesta instantánea.

Traducción en vivo

Cada agente lee y escribe en su propio idioma mientras que el visitante lee el suyo.

Devolver la mano a AI después de que el agente esté inactivo

Minutos de inactividad del agente antes de que la IA reanude la conversación.

Abrir automáticamente el chat

Segundos antes de que el widget se abra.0Intrusivo en dispositivos móviles; dejar en.0a menos que probado.

Respuestas más inteligentes

Planificar con anticipación para respuestas de un solo paso, profundidad de pensamiento, un modelo opcional separado para las respuestas del agente, mostrar el razonamiento a los visitantes, tolerar errores ortográficos, memoria de conversaciones largas, restringir al asistente solo a su negocio, precios en la moneda del visitante y cómo aparecen los enlaces. Solo hablar sobre tu negocio debería estar activado para casi todo el mundo.

Ahorro de costos

Omite la búsqueda de conocimientos para saludos como hola y gracias, y limita la respuesta más larga en tokens. Reduce el costo sin cambiar la calidad de las respuestas a preguntas reales.

Idiomas

Qué idiomas admite el widget y cómo elige uno para un visitante.

Respuestas de la cuenta del cliente

Respuestas desde la propia cuenta de un cliente registrado, consultadas en directo opcionalmente y cargadas solo cuando sea necesario. Solo lectura en todos los casos; cargar cuando se necesite reduce notablemente el costo.

Reembolsos

Solicitudes de reembolso asistidas donde el asistente recopila los detalles y entrega la solicitud a una persona, pero nunca completa un reembolsa por sí mismo.

Conversación y Widget

Mantener conversaciones pasadas, continuar un chat en sus sitios conectados, ventana arrastrable, pedir a los invitados un correo electrónico y permitir que su equipo convierta un chat a un ticket.

Características del widget

Selección de emojis, adjuntos con un modo opcional solo para pegar, comprensión de imágenes por IA, iconos en línea, micrófono, botón para hablar con el agente, sonidos del visitante, vista previa de los archivos adjunto, botón de llamada de voz y aislamiento de sesión.

Bandeja de entrada, notificaciones y ventana emergente de bienvenida

La ventana emergente de bienvenida al visitante, además de las alertas para sus agentes: sonidos de bandeja de entrada, notificaciones en el escritorio, susurros, si los susurros privados emiten un pitido y el intervalo de sondeo de la bandeja.

Flujo de soporte

Entrega humana

Cómo se asignan las solicitudes de una persona, los segundos que un agente tiene que responder, si al rechazar el chat regresa a la IA y si la IA reanuda cuando expira el tiempo de espera. Configura esto antes de ponerlo en vivo o un visitante que pide un humano simplemente espera.

Horario de trabajo

Horarios de apertura, zona horaria y el mensaje de horario cerrado. Fuera de estas horas la IA no ofrecerá un humano. Un horario separado del horario comercial del boleto bajo OpsIQ Escritura.

Responde cuando la IA está apagada

La primera respuesta a un nuevo mensaje, la respuesta cuando alguien ya está en cola y cuánto tiempo antes de repetir.

Formulario fuera de línea

Muestra un formulario de contacto en lugar del chat.

Búsqueda de tickets y notificaciones del departamento

Conocimiento de ticket por IA, para que un visitante que cita un número de ticket obtenga su estado real y a qué departamentos puede enrutar el AI. Un panel incorporado muestra los destinatarios reales de cada departamento, resueltos de la misma manera que el notificador los resuelve, para poder ver antes de que lo haga un cliente que un departamento no alerta a nadie.

Centro de ayuda en el widget de chat

Permite a los visitantes navegar por artículos publicados sin salir del chat. Tú eliges dónde aparece el punto de entrada, la etiqueta y el icono de la barra inferior, y si se ofrece un enlace al centro de ayuda completo.

Calificación de conversación

La calificación por estrellas se activa cuando un agente cierra el chat, cuando finaliza una entrega o después de un período de inactividad que establezca. Elige uno o dos desencadenadores, no todos ellos.

Encuesta post-chat

Una encuesta corta cuando el visitante cierra el chat, con su pregunta, retraso, regla de tiempo y un límite por visita. Los visitantes también pueden enviar por correo electrónico o descargar la transcripción.

Encuesta de correo electrónico post-chat

Una encuesta de seguimiento por correo electrónico después de que la conversación termine, opcionalmente en el idioma en el que chateó el visitante, con control sobre retraso, asunto, introducción, pregunta, ambas etiquetas del botón y la línea de agradecimiento.

Responder a Feedback

Pulgares arriba y pulgares abajo en cada respuesta de IA, alimentando los paneles de control de calidad.

Archivo de conversación

Se establece un tercer lugar de retención, junto a General y Seguimiento. A third place retention is set, alongside General and Tracking.

Capacitación en conocimiento

Lo que el asistente realmente sabe. Nada más en el Chat del Cliente importa tanto.

Formación en Conocimiento del Sitio Web

Rastrea tu sitio para que el asistente pueda responder desde él. Hasta diez enlaces iniciales, un límite de páginas, una profundidad de enlace y carpetas excluidas. Se puede probar un solo URL antes del rastreo completo.

Inserciones

La clave y el modelo API que convierten las páginas en significados buscables en lugar de coincidencias de palabras clave.

Organizador de conocimientos

Un clic y la IA lee todas las preguntas frecuentes y páginas rastreadas y las clasifica en categorías.

Preguntas frecuentes, respuestas verificadas

Pares de preguntas y respuestas tratados como la fuente con mayor prioridad, cada uno con un estado, peso y categoría. Se pueden buscar, importar desde JSON, y la IA puede escribirlas a partir de una descripción de su negocio. Cuando el asistente obtiene algo mal, escriba una FAQ: supera las páginas rastreadas, por lo que la solución es inmediata.

Avanzado

Rendimiento y límites

Intervalo de sondeo, límite de velocidad y ventana del mensaje, tamaño máximo de los archivos adjuntos, intentos de adjuntar por ventana y extensiones de archivo permitidas. La lista de extensiones es un control de seguridad; manténgala estricta.

Entrega en tiempo real

Envío de mensajes instantáneos y estados en lugar de sondeos, a través de Pusher, Ably o Firebase, con un intervalo de sondeo alternativo. La recolección está bien para la mayoría de los sitios.

Notificaciones push de Google

Alertas de dispositivos para agentes mediante Pusher Beams o OneSignal, con un dispositivo de interés.

Web Push (VAPID)

Browser push usando sus propias claves generadas sin ningún proveedor externo, generado aquí, no en Danger Zone.

Compartir voz, vídeo y pantalla

TURN credenciales para que las llamadas se conecten a través de redes restrictivas, utilizando Cloudflare o Twilio credenciales o su propio TURN URL, nombre de usuario y credenciales.

Flujo de trabajo de bandeja de entrada

Configuración del espacio de trabajo del agente en lugar de la configuración del visitante: SLA de primera respuesta en minutos, vistas guardadas de colas, métodos abreviados de teclado y paleta de comandos, búsqueda dentro de conversaciones y tickets de clientes en el inspector.

Canales de mensajería

WhatsApp, SMS, Facebook Messenger, Instagram, Telegram, X Direct Messages y LINE, cada uno con su propio interruptor de respuesta automática de IA, además de un interruptor para políticas de acciones de IA en los canales, una opción de cancelación de respuestas y la plantilla de re-engagement de WhatsApp.

Una vista previa en vivo del widget en la parte inferior de la pestaña se actualiza a medida que editas, así que úsala en lugar de volver a cargar tu sitio web para comprobar un cambio.
Configuración

Configuración: OpsIQ Escritura

Tickets respondidos por escrito: respuestas automáticas, el sistema de tickets nativo, escalación, horarios comerciales, enrutamiento y los correos electrónicos dirigidos al cliente.

Auto-respuesta

Mostrar OpsIQ Botones de Escritura

Agrega los botones de ayuda para escribir a sus agentes en el panel de administración.

Habilitar respuesta automática de ticket

Hace colas de nuevos tickets y responde a ellos después de un retraso. Comience con esto apagado y revise los borradores durante una semana, los reembolsos, cancelaciones y cambios de acceso siempre deberían llegar a una persona.

Departamentos de respuesta automática

Cualquier cosa que no esté en la lista se deja para un humano, lo cual es el valor predeterminado seguro.

Programa de retraso en la respuesta (minutos)

Cuánto tiempo esperar antes de enviar la respuesta automática: una respuesta instantánea se lee como un robot; unos minutos se leen como un equipo rápido.

Máximo de respuestas de IA por ticket por departamento

Una gorra por partida, por ejemplo Billing1y Apoyo3Sin una gorra un hilo confuso puede bucle.

Longitud, estado e identidad de la respuesta

El número máximo de tokens de escritura, el estado del ticket después de una respuesta y después de un escalamiento, y a qué cuenta de administrador se atribuyen las respuestas automáticas. Utilice una cuenta con un nombre claro para que el personal pueda distinguir las respuesta de IA de las humanas.

Operaciones de ticket nativas

Sistema de tickets nativo

El sistema de tickets integrado en OpsIQ, para instalaciones sin un servicio externo.

Canalice el correo electrónico entrante en tickets nativos

Convierte el correo entrante en tickets. OpsIQ Suministra el punto final URL, token de autentificación, ruta del script y binario PHP Cualquier cosa que pueda publicar en ese punto final puede crear tickets, así que mantén el token secreto.

Respuestas de múltiples vueltas y retraso y debounce

Si la IA sigue respondiendo a medida que continúa la conversación, y si espera una ventana silenciosa para que tres mensajes rápidos reciban una respuesta considerada. La ventana silencioso es el mejor ajuste único para hacer que las respuestas automáticas se sientan considerados.

Portal de soporte público

Una página orientada al cliente donde cualquiera puede crear y hacer un seguimiento de un ticket, con una línea opcional de bienvenida Su dirección y apariencia se configuran en la pestaña Portal de soporte.

Formato del número de ticket

Cuántas letras aleatorias aparecen en los números de ticket generados.

Envíe correos electrónicos a sus clientes en su propio idioma

Los correos electrónicos del personal nunca cambian de idioma: las notificaciones, alertas de departamento, reuniones informativas e informes programados permanecen en el idioma de su sistema.

Agradecimientos y confirmaciones

Un acuse de recibo fijo en los nuevos tickets, además de mensajes de confirmación cuando se abre un ticket, cuando se deja una opinión y cuando se cierra un ticket. Cada uno con una vista previa en vivo. También hay un envoltorio global de plantilla de correo electrónico y el enlace detrás del botón Ver su ticket.

Revisión de spam con IA

Filtra los tickets de remitentes desconocidos y puede mover automáticamente el spam sospechoso, pero deje la acción automática desactivada hasta que haya visto su juicio.

Cierre automático de tickets inactivos

Cierra un ticket después de varios días sin respuesta, indicando al cliente en el mensaje de cierre cómo volver a abrirlo.

Horario de trabajo (calendario SLA)

Zona horaria, horarios de apertura y cierre, días laborables y festivos para los temporizadores de primera respuesta y resolución. Un calendario separado del horario laboral en Chat con el cliente.

Asignar automáticamente nuevos tickets

Asignación automática, opcionalmente solo a los agentes que están en línea, con habilidades de agente y una sensibilidad de coincidencia para el enrutamiento basado en habilidaden.

Sugerir tickets duplicados

Detecta cuando un cliente abre un ticket cercano al que ya tiene, con una sensibilidad de coincidencia ajustable.

Encuesta de satisfacción después del cierre

Envía una encuesta por correo electrónico un día después del cierre. Los resultados aparecen en la página de CSAT.

Notificar al departamento por correo electrónico

Envía un correo electrónico al departamento cuando llega un nuevo ticket, los destinatarios son los miembros de ese departamento y no la dirección del buzón del departamento, que es la dirección entrante a la que llegan los tickets.

Lo que la IA puede leer

Acceso a datos de clientes AI

Un interruptor principal más permisos individuales de solo lectura para el resumen del perfil del cliente, facturas, transacciones, saldo de crédito, productos y servicios, dominios, servidores vinculados y una visión general de la cuenta de alto nivel. Comience con el resumer del perfil y agregue categorías según las respuestas lo necesiten.

Escalada y conocimiento

Habilitar escalado de ticket AI

Mueve un ticket a un departamento más adecuado antes de responder. Usted elige los departamentos permitidos, el retraso en la comprobación y puede escribir sus propias instrucciones de notificación de escalada.

Configuraciones de conocimiento

Ya sea que las respuestas utilicen el lenguaje del cliente, ya sea en enlaces arrastres y FAQs, si la AI lee imagen yPDFapegos, el modo de respuesta al conocimiento, si importaJSONEl conocimiento se utiliza, y si pueden aparecer enlaces de origen. Use enlaces arrastrados y FAQs deben estar en, o la AI está adivinando.

Detener la respuesta automática después de una respuesta humana

Una vez que el personal responde, la IA deja de responder ese ticket y puede hablar por encima de su propio agente.

Instrucciones de ticket y correo electrónico

Instrucciones de texto libre que dan forma al tono y contenido de cada respuesta, con un ejemplo cargable para trabajar. Sé específico sobre lo que la IA nunca debe hacer.

Importar conocimientos de JSON

Sube o pega un archivo de conocimientos JSON para el asistente de redacción.

Botón de estudio

Un diseñador completo para el botón orientado al cliente: estilo de visualización, tamaño, etiqueta, icono, forma, ancho mínimo, estilo de fondo con colores primarios y secundarios, ángulo degradado, borde, radio de esquina, sombra, tipografía, relleno, animación inactiva, movimiento y colores del cursor y anillo de enfoque, además de un cuadro personalizado CSS para cualquier cosa que los controles no cubran.

Configuración

Configuración: Portal de soporte

El sitio orientado al cliente donde las personas crean y hacen un seguimiento de los tickets y leen tus artículos de ayuda. Esta pestaña controla cómo se llega a ella y cómo inician sesión los clientes; su diseño visual se realiza en el estudio del portal de soporte.

Portal Studio o Embedded Ticket Portal: ¿cuál de los dos prefiero?

Estos son dos productos diferentes y la gente los mezcla constantemente. Resuelven problemas diferentes, y es normal que funcionen ambos juntos.

Soporte Portal Studio: un lugar que envía clientes a

El estudio diseña un Sitio de soporte completo que OpsIQ aloja para ustedTiene su propia dirección web, o su propio dominio, y lleva toda la experiencia de autoservicio: artículos de ayuda con búsqueda, el formulario de solicitud, historial de tickets, inicio de sesión del cliente y el asistente. Elige una plantilla, trabaja en Tema, Navegación, Diseño, Conocimiento, Pie de página, Marca, Tickets, Asistente, Formulario y CSS, previsualiza en tamaños de escritorio, tableta y teléfono, luego publica.

Úselo cuando Quieres un destino de marca al que puedas dirigir a cada cliente, y prefieres no construir o mantener una área de soporte dentro de tu propio sitio web.

Portal de entradas embedida: entradas dentro de su propio sitio

El embed pone Solo la experiencia de entrada en una página de su propio sitio webLos clientes abren, hacen un seguimiento y responden a las solicitudes de soporte sin salir nunca de tus páginas, y tu propio encabezado, navegación y diseño permanecen exactamente como están. Establece el diseño, la apariencia y las reglas de acceso en el creador de widgets, previsualiza el resultado y luego copia el fragmento incrustado en tu página.

Úselo cuando Ya tienes un sitio web o una aplicación con su propio diseño, y quieres que el soporte se produzca dentro de él en lugar de entregar al cliente a otra dirección.

La versión corta

El estudio construye Un lugar al que envías a tus clientes. El inserto trae entradas Lleve a sus clientes allí donde ya estánMuchas empresas utilizan ambos, incrustando el widget de ticket en su área de cuenta para solicitudes contextuales y manteniendo el portal alojado como destino completo de autoservicio con artículos y búsqueda. Son switches independientes.

Dirección y acceso

Modo de acceso

Si el portal está abierto para cualquiera o restringido a clientes que han iniciado sesión, los portales abiertos reciben más tickets y más spam.

Opciones de diseño

Si el portal y el centro de ayuda comparten un héroe o usan dos, qué navegación y pie de página aparecen en ambas superficies y la etiqueta de sección de navegacion.

Dirección del portal

La dirección que usan los clientes. Elige un nombre y OpsIQ muestra el portal resultante y las direcciones de centro de ayuda correspondientes.

Su propio dominio

Ofrece el portal desde un dominio que es de su propiedad, como support. yourdomain. com.

Portal de tickets integrado

Activa el widget desplegable descrito anteriormente, y abre el creador de incrustaciones donde se puede elegir el diseño, la apariencia y las reglas de acceso, previsualizar el resultado y copiar el fragmento para su página. Esto no es Portal Studio: el estudio diseña el portal hospedado, esto pone los tickets dentro de su propio sitio.

Cómo inician sesión los clientes

El inicio de sesión del personal se configura en Configuración, Seguridad. Set up staff login in Settings, Security.

Métodos de inicio de sesión

Qué opciones aparecen en la página de inicio de sesión. El conector y el inicio de sesiones por correo electrónico funcionan automáticamente.

Inicio de sesión social

Proveedores de cuentas de consumidores, cada uno necesita un ID de cliente y secreto, con la dirección de redirección proporcionada por OpsIQ para registrarse con ese proveedor.

Inicio de sesión único (OIDC)

Inicio de sesión del cliente a través de un proveedor de identidad, con emisor URL, ID de cliente, secreto y una lista opcional de dominios de correo electrónico permitidos.

Cliente SAML 2.0

The SAML equivalent. OpsIQ Suministra la respuesta ACS.URLID de entidad del IdP, inicio y cierre de sesión URLs, X 509 certificado y nombres de atributos opcionales. Turn SAML En Métodos de inicio de sesión o no aparecerá.

Inicio de sesión sin problemas desde tu aplicación

Un enlace profundo firmado para que un cliente que ya ha iniciado sesión en su aplicación aterrice en el portal sin tener que volver a iniciar sesión. OpsIQ Suministra el secreto de firma, portal URL El generador de enlaces de prueba firmados es una herramienta que se puede usar antes de escribir cualquier código.

Cierre sesión en todas partes

Al cerrar sesión en el portal, también se cierra la sesión del cliente en su aplicación.

Admisión y protección

Campos del formulario de solicitud

Cada campo adicional hace que se pierdan envíos, así que solo pida lo que necesita para clasificar los datos.

Protección contra spam y abuso

Un honeypot y un límite de velocidad siempre protegen el formulario público. Encima, puede bloquear direcciones de correo electrónico desechables, agregar sus propios dominios bloqueados y añadir un CAPTCHA utilizando Google reCAPTCHA o Cloudflare Turnstile. reCAPCHA reutiliza las claves ya establecidas en Configuración, Seguridad; Las claves del torniquete se ingresan aquí.

Análisis de portal

Un resumen de solo lectura de la actividad del portal durante los últimos treinta días.

Configuración

Configuración: Permisos, Licencia, Cron y Zona de Peligro

El grupo Sistema, además de los controles de acceso del equipo que deciden quién puede ver qué pestaña de Configuración.

Acceso y permisos del equipo

Permisos por administrador

Cada administrador recibe un conjunto explícito de permisos que cubren el acceso a la bandeja de entrada del chat, las secciones de Configuración que pueden editar y sus departamentos. Cualquier persona con el rol de Administrador completo siempre tiene todos los permisos.

Licencia

Muestra su licencia actual, lo que le da derecho y su estado.

Configuración de Cron

En la nube OpsIQ, las tareas programadas se ejecutan por ti y la pestaña está oculta. Una línea de crontab controla cada tarea programada: respuesta automática del ticket, enrutamiento de escalación, actualización de tipo de cambio, sondeo de buzón y sincronización de conector.

1
Copiar la línea

La pestaña muestra la línea crontab exacta para su servidor con el binario PHP correcto ya elegido.

2
Añádelo a crontab

Ejecute crontab -e como el usuario que ejecuta PHP y pegue la línea única, en cPanel use la herramienta Cron Jobs.

3
Verificar

En un minuto, los azulejos de latidos del corazón se iluminan. Utilice Ejecutar ahora para probar inmediatamente en lugar de esperar.

El panel de heartbeat muestra la última ejecución, duración y lo que se procesó para la cola de respuesta automática y el correo electrónico y la encuesta del conector. Advierte cuando la última operación vino desde el botón web manual en lugar de un cron del servidor real, y cuando un heartbeat ha quedado obsoleto.

Zona de peligro

Eliminar todos los datos de seguimiento

Borra todo lo que OpsIQ recopila o genera. Usted marca lo que desea incluir y escribe la frase de confirmación exactamente. Configuraciones y configuración del sitio, direcciones bloqueadas, todo lo escrito por su equipo (base de conocimientos, preguntas frecuentes, traducciones, diseños de portales, definiciones de acciones) y recibos de consentimiento se conservan todos.

Purgar datos más antiguos que

El mismo barrido limitado a registros más antiguos que 30, 60, 90 o 180 Para la retención automática continua, utilice los valores de retención en General y Seguimiento en su lugar y deje que la tarea programada lo haga.

🚫
Exporta una copia de seguridad desde Configuración, General antes de usar cualquier cosa en Zona de peligro. Estas acciones no se pueden deshacer.
Configuración

Administrar tu equipo

Invite a los miembros del equipo y asigne roles para controlar quién puede acceder a qué.

Equipo
Equipo & departamentosLa pantalla del equipo: una tabla de administradores con contacto, insignia de rol (Propietario, Administrador completo, Agente) y los departamentos a los que cada uno puede acceder.Equipo & departamentosespacio de trabajoEquipo & departamentos+ Guardar usuario adminCONTACTOFunciónDEPARTAMENTOAO[email protected]Ada OwusuPropietarioTodoKM[email protected]Kojo MensahAdministrador completoTodoRT[email protected]Rita TettehAgenteFacturaciónSB[email protected]AgenteSoporte1TEAMInvitar y administrar administradores2ROLESPropietario · Administrador completo · Agente3SCOPEDAcceso por departamento
La pantalla del equipo real: cada administrador con su contacto, papel y los departamentos que pueden llegar, agentes en alcance, propietarios llenos.

Funciones

Propietario

Acceso completo, incluida la licencia, facturación y zona de peligro. Uno por instalación.

Administrador completo

Acceso completo excepto licencia y zona de peligro. Puede administrar los administradores.

Agente

Limitado a los departamentos asignados. Solo tickets, chats y análisis.

Invitar a miembros del equipo

1
Ir a Equipo

Ve a Equipo en la barra lateral.

2
Haga clic en Invitar

Ingresa el correo electrónico del miembro del equipo.

3
Establecer el rol

Elija Propietario, Administrador completo o Agente.

4
Asignar departamentos

Para Agentes, seleccione departamentos accesibles.

5
Enviar invitación

Recibirán un correo electrónico con un enlace de configuración.

Configuración

Rendimiento del equipo

Cómo se realiza su equipo de soporte. El acceso es por permiso, no por papel: el permiso de vista abre la página, el permiso del manejo desbloquea objetivos, QA y las lecturas identificativas de los compañeros, y el permiso para recompensa-financieras es lo que agrega la ficha Recompensas. Un líder del equipo puede ser dado cualquiera de estos sin convertirse en un administrador completo.

Rendimiento del equipo
Rendimiento del equipoLa pantalla de rendimiento del equipo: agentes clasificados por una barra de puntuación compuesta, CSAT y un saldo de recompensas con un botón Pagar por fila.Rendimiento del equipoespacio de trabajoRendimiento del equipoAGENTEPUNTUACIÓNCSATBALANCERTRita Tetteh4.8$42PagarSBSam Boateng4.5$28PagarKMKojo Mensah4.2$15PagarAOAda Owusu4.9$51Pagar1SCOREDRendimiento compuesto2CSAT & LOADValoraciones + volumen3REWARDSSaldos de los agentes de pago
La pantalla de rendimiento del equipo real: cada agente puntuado en volumen y CSAT, con un saldo de recompensa que puede pagar por fila.

Cómo se organiza la página

El rendimiento del equipo es de cinco fichas. Cada respuesta una pregunta diferente, y se ordena por lo urgente que generalmente te necesitan.

01 Centro de mando

Estado de cola en vivo, resultados del cliente contra sus objetivos, cómo se gastó la capacidad, situaciones que necesitan una decisión y el índice de evaluación por persona.

02 Compañeros de equipo

La tabla de clasificación, el reconocimiento (más mejorado y estriado), las misiones y el control opt-in para quién puede ver la clasificación.

03 Calidad

Partituras, evaluaciones registradas, acuerdo de revisión corregido por riesgo, deriva del revisor y disputas de pruebas.

04 Rewards

Valor token, reclamaciones de pago y la asignación del período gobernado: autoriza un techo financiado, revisa el previsualización, finaliza.

05 Historia

Cómo el espacio de trabajo se ha movido con el tiempo: métricas de tendencia con un gráfico, y una hoja de calor 28_-día de cobertura mostrando cuando el equipo estaba trabajando en realidad. Cada tarjeta se esconde hasta que hay suficiente historia para dibujarlo.

No es cero

Un compañero de equipo sin suficiente volumen manejado —o cuyas dimensiones llevan evidencias suman menos de la mitad del peso configurado— se muestra como un no marcado. Su puntuación, rango y banda están vacías y su desglose está oculto. Esto es deliberado: hacer una medición ausente como cero pone a alguien en el fondo de un ranking para tener una semana tranquila. Los umbrales de evidencia son configurables por espacio de trabajo en Targets &amp; puntuación.

Los dos umbrales de evidencia hacen diferentes trabajos y vale la pena mantenerlos separados. El manejo mínimo decide si alguien está marcado en absoluto. Las calificaciones mínimas no afectan el puntaje: decide la adjudicación y elegibilidad de recompensa. Así que un compañero de equipo puede ser completamente anotado y todavía ser inelegible para ese período, porque demasiado pocos clientes los valoraron.

💡
Cada figura tiene un alcance en el espacio de trabajo que está viendo y el rango de tiempo que elige. Un compañero de equipo trabajando en dos espacios de trabajo separados tiene un registro independiente en cada uno. Dos excepciones merecen saber: un sitio GROUP es un espacio de obra, por lo que sus dominios miembros se miden juntos; y la vista All-sites deliberadamente mide todo a la vez.

El índice de rendimiento

Un compuesto de cinco dimensiones, cada una medido contra un objetivo que se establece en lugar de contra colegas, luego se jaló hacia el centro cuando la evidencia detrás es delgada. Tenga en cuenta la dirección: el ajuste mueve la figura hacia 70, por lo que una puntuación excelente fina se tira abajo y una puntuación pobre delgado se levanta. Una mala primera semana en cuatro conversaciones no es un veredicto resuelto tampoco.

Calidad

Satisfacción del cliente de la retroalimentación verificada. Complementada por los resultados de QA Scorecard donde existen y se rigen.

Responsabilidad

Primera respuesta en los percentiles P50 y P90, contra sus objetivos.

Resolución

Tiempo de resolución y tasa de resolución de un solo toque.

SLA

La retención contra el SLA que configuraste, más los cargos en riesgo y los conteos incumplidos.

Stewardship

Tasas de reabrir y transferir — el trabajo que regresa.

💡
Las pesas son configurables y relativas; no tienen que totalizar 100. La falta de evidencia sólo puede bajar el índice, nunca elevarlo — el peso configurado completo permanece en el denominador.

Capacidad y tiempo productivo

Ocupación, tiempo productivo, resuelto por hora productiva y parte en línea de la ventana. La utilización no se reporta deliberadamente: necesita horas programadas como denominador, OpsIQ no tiene una fuente de lista o cambio, y un denominador sustituido sería una conjetura que llevaba un signo porcentaje. Se lee como indisponible con esa razón adjunta.

⚠️
La ocupación dice cómo se pasó el tiempo, nunca lo bien que fue gastado y nunca financia, puertas o tamaños de un pago. Un compañero de equipo sin pruebas de la manija lee como indisponible, nunca como cero.

Garantía de calidad

Un marcador es el resultado de las conversaciones reales contra los críticos. Sólo una versión publicada puede recibir una evaluación, y publicar una nueva versión nunca reescribirá lo que ya se ha marcado. Una revisión es evidencia sobre una conversación, no un veredicto en una persona.

Acuerdo de revisión

Reportado como una estadística corregida por casualidad (Cohen's y Fleiss' kappa), no un porcentaje de acuerdo crudo. Dos revisores que pasan todo coinciden 100% del tiempo mientras no llevan información.

Direccionalidad de los revisores

Si un revisor marca sistemáticamente más duro o más suave que sus colegas en la misma conversación, una comparación con el resto del panel, no una tendencia a lo largo del tiempo. Necesita una interacción revisada independientemente más de una vez.

Controversias

Un compañero de equipo puede disputar formalmente evidencias registradas sobre ellos. Una disputa abierta bloquea la finalización de los períodos de recompensa hasta que se resuelve.

Auto-revisión

Un compañero de equipo no puede presentar una evaluación de sí mismo.

⚠️
Las evaluaciones de grado AI no pueden influir en el pago hasta que se publique una calibración mostrando que el modelo está de acuerdo con los revisores humanos lo suficientemente cerca, medido por kappa contra una muestra mínima. Una puerta abierta significa que el Modelo está de conformidad con la gente lo suficiente para contar — nunca significa que sea correcto el modelo.

Reconocimiento

El ranking solo ha documentado modos de falla: juegos métricos, quemadura y afeitado público de quien es el último. Tres alternativas se sientan al lado de él.

Mayoría mejorada

Medido contra el propio record anterior de un compañero, nunca contra colegas, con la reducción por lo que un pequeño denominador no puede comprar una victoria.

Streaks

Períodos consecutivos que reúnen una barra fija, declarada — puntuación media, volumen manejado, calificaciones contadas y tasa de retroalimentación negativa, todas las cifras absolutas. Todos pueden mantener un estreptoco simultáneamente, por lo que no crea ningún ranking, y un colega que tenga un mes excepcional no puede romper el suyo.

Clasificación de Opt-in

Un compañero de equipo siempre ve su propio índice; si ven a los colegas es una decisión del espacio de trabajo. Las bandas percentiles pueden ser publicadas en lugar de posiciones absolutas.

💡
El reconocimiento nunca toca dinero. Una estrecha no puede financiar una paga o romper uno, y la mayoría mejorada no es una categoría de premio.

Búsquedas

Un objetivo al que trabaja el equipo, medido contra una barra declarada fija en lugar de contra uno contra otro, para que todos puedan aclarar la misma búsqueda en el mismo período.

Alcance y cadencia

Individual o equipo; un-off, repetible, o estacional con una ventana explícita.

Criterios

Conversaciones manejadas, clasificaciones recibidas, días activos, calificación media o tasa de retroalimentación negativa. Todo absoluto — ningún métrica cuyo valor depende de lo que hicieron los colegas.

Guardia de calidad

Se requiere en cualquier búsqueda con un objetivo de volumen. Esconder el número mientras que la calidad cae por debajo del suelo retiene la misión más que completarla, y se muestra como retenido, no inacabado.

Límites de repetición

Un gorro per-período, impulsado por el criterio más lento, además de una refrigeración opcional antes de que un repetitivo pueda contar.

Búsquedas de equipo

Progreso compartido sin publicación de atribución por persona, por lo que una búsqueda en equipo no puede convertirse en un tablero de liderazgo.

Cursos de capacitación

Una sesión de coaching es un disco, no una charla. Tiene un entrenador, un compañero siendo entrenado, un tiempo programado, puntos de conversación acordados, y un resumen escrito después. Los chats reales, las entradas y evaluaciones QA están marcados a él como evidencia, por lo que la conversación está anclada al trabajo que realmente sucedió en lugar de una impresión recordada.

Puntos de conversación

De acuerdo antes de la sesión, así que el compañero no se está paseando en una sorpresa.

Pruebas intencionadas

Chats, tickets y evaluaciones de QA adjuntas a la sesión. Un pin almacena una referencia — un tipo y un id— no una copia, por lo que siempre apunta al registro en vivo. OpsIQ no verifica el id antes de aceptarlo.

Temas de acción

Cada uno con un propietario y una fecha de vencimiento. Un artículo pasado su fecha se muestra como atrasado —un estado derivado, no un estatus que alguien tiene que recordar para establecer.

Nota privada

El compañero que está entrenado nunca puede leerlo, no como agente, no en cuanto gerente, no de propietario. Ese cheque corre antes de cada otro permiso y no se puede anular.

¿Quién puede ver una sesión?

El entrenador, el compañero de equipo y cualquiera con permiso para la gestión del equipo. Nadie más, incluyendo a otros compañeros en el mismo departamento.

Auditoría

Cada creación, actualización, pin, unpin y finalización se registra con lo que cambió, por quien.

💡
El entrenamiento es deliberadamente separado de la puntuación y del dinero. Una sesión no cambia el índice de nadie, no cierra una recompensa, y no aparece en la tabla de mandos.

Recompensas y premios

La actividad grabada se convierte en fichas con un valor de efectivo que usted establece. El camino a un pago es deliberadamente lento y cada paso está registrado.

1
Establecer el valor de ficha

Cuantas fichas equivalen a cuánto dinero, y lo que cada actividad vale.

2
Autorizar el techo financiado

Para un período de calendario cerrado, un administrador completo declara las fichas máximas que puede pagar. Ahorrar el formulario de configuración no autoriza un presupuesto y no puede alterar un techo que ya ha sido autorizado.

3
Revisar el previsualización

Los destinatarios, la reserva y la razón por la que alguien es ineligible. Las disputas de evidencia abierta bloquean este paso.

4
Finalizar

La asignación se registra permanentemente con la evidencia detrás de ella. Un período que no asignó nada puede ser anulado y re-correo. Una que emitió fichas debe ser revertida primero: OpsIQ escribe una entrada compensatoria contra cada billetera y nunca elimina el original, por lo que el libro muestra lo que sucedió y por qué, y sólo entonces es el período liberado. La inversión se niega si alguien ya ha cobrado más que los nombres de la cantidad recuperado.

⚠️
La elegibilidad requiere una retroalimentación verificada del cliente. Las puntuaciones de calidad AI pueden complementar ese juicio pero nunca reemplazarlo, y un compañero demostrado como Unscored no es elegible. Cada contribuyente está subido a 25% por encima de su parte esperada del período, por lo que un mes muy alto de volumen no puede absorber todo el presupuesto.
💡
El dueño de la cuenta no participa en premios o recompensas token, sin cambio: autorizan el techo financiado y finalizan cada asignación, y no hay nadie por encima de ellos para aprobar lo que se pagarían. Su trabajo es medido, marcado y clasificado en el tablero exactamente como cualquier otro.

Todos los demás participan por defecto, lideran y copropietarios incluidos. Para dejar a alguien fuera, abrirlos en Departamentos de Equipo y apagar la opción Tomas parte en premios y recompensas. Su trabajo sigue marcado y mostrado; ellos deja de ser un candidato desde ese punto en adelante, y nada ya finalizado se toca.

⚠️
Nadie aprueba dinero por sí mismo. Porque la gente que puede participar son también las personas que pueden aprobar pagos, OpsIQ se niega a pagar o a acreditar en su propia cartera, pagando su propio reclamo, finalizando un período en el cual usted sería pagado y finalizando una indemnización que ganaría. Otro administrador completo o el propietario debe hacerlo. Pagar todas las reclamaciones salta su cuenta y lo reporta como esquiado, no falló.

¿Quién puede ver y hacer lo que

Ver el rendimiento del equipo

El tablero, estado en vivo, capacidad y calidad de visión general para el espacio de trabajo.

Gestión de la actuación del equipo

Metas y puntuación, exportaciones, tarjetas de puntuación y evaluaciones QA, coaching, misiones y lecturas que llevan datos identificativos de colega como la historia de los aminas y el historial de premios.

Ver el equipo recompensa financiera

Saldos, valores de efectivo, notas de reclamación y referencias de pago - separados de las pruebas de rendimiento porque es la nómina de sueldos-adyacente.

Administrador completo sólo

Cada mutación monetaria: pagar una recompensa, pagar o rechazar una reclamación, autorizar un presupuesto, finalizar, anular o invertir una asignación y establecer la tasa de ficha a cambio. Esto no puede ser delegado concediendo un permiso.

Usarlo bastante

El índice de rendimiento es evidencia de gestión, no una decisión automática de empleo. Abre las conversaciones fuente detrás de un número antes de actuar en él, y pesa la complejidad del caso, horarios, necesidades de permiso y accesibilidad. Una semana difícil no parece un patrón sostenido.

Configuración

Sus sitios (espacios de trabajo)

Los sitios (espacios de trabajo) te permiten administrar varios sitios web desde una instalación de OpsIQ, cada uno con su propio seguimiento, IA, conectores y acceso del equipo.

Sitios
Sus sitios webLa pantalla de sitios: una lista de espacios de trabajo, cada uno con su dominio, tipo, conector, insignia de estado y un botón Abrir, además de Add-new-site.Sus sitios webespacio de trabajoSus sitios web+ Añadir nuevo sitioSshop.acme.comComercio electrónico · Shopify conectorActivoAbrirHhost.acme.comAlojamiento · Conector WHMCSActivoAbrirBblog.acme.comContenido · sin conectorPasosAbrir1MULTI-SITEUn espacio de trabajo por sitio2ISOLATEDLos datos nunca se mezclan3PER-SITEConfiguraciones propias y conectores
La pantalla de Sitios reales: cada sitio es su propio espacio de trabajo aislado (dominio propio, conector y configuración), añadido y abierto de una lista.

Crear un sitio

1
Ir a Sitios conectados

Navegue a Sitios conectados.

2
Añadir un nuevo sitio

Ingrese el nombre, dominio y descripción.

3
Copiar la clave del sitio

Cada sitio obtiene una clave única (site_xxx) para el fragmento del widget.

4
Configurar de forma independiente

Cada sitio tiene su propia IA, conectores y configuraciones.

¿Cuántos sitios puedo tener?+

Depende de su plan de licencia. Compruebe los detalles de la licencia.

Configuración

Licencia y plan

Su licencia OpsIQ controla las funciones, los límites del sitio y el saldo de crédito de AI.

Licencia
Centro de licenciasEl OpsIQ License Center: plan, una insignia de estado activo, la clave de licencia enmascarada, un medidor de créditos de IA y un botón Force-remote-check.Centro de licenciasespacio de trabajoOpsIQ Centro de licenciasPlanNegociosEstadoActivoClaveOPSIQ-•••–••Créditos de IA$68 izquierdaForzar la comprobación remota1PLAN & STATUSActive, de un vistazo2KEYHMAC-caché localmente3CREDITSBalance y límites de IA
El verdadero Centro de licencias: su plan y estado activo, la clave enmascarada, el saldo de crédito de IA y una nueva verificación forzada con un solo clic.
Clave de licencia

Introduzca en Configuración > Licencia. Validado contra el servidor de licencias OpsIQ.

Latidos cardíacos de licencia / validación

OpsIQ Utilice Forzar comprobación remota cuando necesite un resultado inmediato; el diagnóstico identifica los errores de validación y actualiza la caché de licencia local firmada. DNS, HTTPS o problemas de hora del servidor.

Plan

Determina la disponibilidad y los límites de las funciones.

Límite de sitio

Número máximo de espacios de trabajo.

Créditos de IA

Si usas IA administrada, tu saldo de crédito se muestra aquí.

Expiración

Renueva antes de la fecha de vencimiento para evitar interrupciones del servicio.

¿Qué sucede cuando mi licencia caduca?+

El seguimiento, los tickets y el CRM continúan. Las funciones de IA se ponen en pausa hasta la renovación.

Configuración

Perfil, contraseña y autenticación de dos factores

Cada administrador puede mantener su propia identidad, preferencias de trabajo, contraseña y autenticación de dos factores.

Pantalla de producto
Mi perfil de usuarioLa página de perfil separa los detalles personales, el idioma/zona horaria, avatar/firma, contraseña y autenticación de dos factores.Mi perfil de usuarioespacio de trabajoPROFILECompletoTIMEZONEEuropa/Atenas2FAHabilitadoVISTA DE ESPACIO DE TRABAJO EN DIRECTONombre y dirección de correo electrónicoIdentidad personalEditarIdioma y zona horariaFechas e interfazEditarAvatar y firmaRespuestas y presencia del equipoEditarContraseña y 2FAProtección de cuentaSeguro1UPDATE PROFILEIdentidad y localización2SECURE LOGINContraseña y 2FA3SAVEAplicar a este administrador
La página de perfil separa los detalles personales, el idioma/zona horaria, avatar/firma, contraseña y autenticación de dos factores.

La configuración del perfil pertenece al administrador que ha iniciado sesión y no cambia la marca de espacio de trabajo. Utilice una contraseña única y habilite la autenticación de dos factores. Cambiar un correo electrónico o la configuración de autenticación puede requerir una nueva verificación o un nuevo inicio de sesión.

Configuración

Preferencias de notificación

Las preferencias de notificación controlan qué eventos operativos llegan a un administrador en el producto o por correo electrónico.

Pantalla de producto
Preferencias de notificaciónLa página de notificaciones proporciona opciones por evento en la aplicación y por correo electrónico, además de una lista de notificación reciente.Preferencias de notificaciónespacio de trabajoIN-APPEncendidoEMAILSelectivoUNREAD4VISTA DE ESPACIO DE TRABAJO EN DIRECTOBillete asignadoEn la aplicación y por correo electrónicoEncendidoEl cliente respondióEn la aplicaciónEncendidoriesgo de SLAEn la aplicación y por correo electrónicoEncendidoAprobación de AIEn la aplicación y por correo electrónicoEncendido1CHOOSE EVENTSSolo señales útiles2CHOOSE CHANNELEn la aplicación o por correo electrónico3EXAMENNotificaciones recientes
La página de notificaciones proporciona opciones por evento en la aplicación y por correo electrónico, además de una lista de notificación reciente.

Las preferencias cubren la asignación de tickets, respuestas al cliente, advertencias de SLA, entrega de chat y eventos de aprobación de IA. Mantenga las señales operativas urgentes habilitadas en algún lugar; desactivar el correo electrónico no necesariamente desactiva la notificación dentro de la aplicación.

Configuración

Descripción general de seguridad

La descripción general de seguridad es la primera pantalla para evaluar bloqueos, ataques de inicio de sesión, sesiones de amenazas, tendencias de seguridad e integridad de eventos.

Pantalla de producto
Descripción general de seguridadSecurity Overview combina tarjetas de riesgo actuales, una tendencia del 14 día, lista de atacantes, fuente de eventos y estado de integridad.Descripción general de seguridadespacio de trabajoACTIVE BLOCKS18FAILED LOGINS42HIGH THREAT3VISTA DE ESPACIO DE TRABAJO EN DIRECTOAutobloqueado7-día total y fuenteTendenciaLos últimos atacantesIP, país y motivoExamenEventos de seguridadRiesgo y resultado de la acciónAlimentaciónIntegridad de cadena hashCadena de eventos a prueba de manipulaciónValida1READ HEADLINEExposición actual2OPEN EVIDENCEAtacantes y eventos3ACTOBloquear, investigar, exportar
Security Overview combina tarjetas de riesgo actuales, una tendencia del 14 día, lista de atacantes, fuente de eventos y estado de integridad.

Utilice las tarjetas de título para clasificar, luego abra la pestaña relacionada Auditoría, Inicios de sesión fallidos, Bloqueados. IPs o JavaScript Página de errores para el trabajo a nivel de registro. 14 Las sesiones de alta amenaza deberían ser investigadas en comparación con la evidencia del visitante, solicitud y autenticación antes de aplicar un bloqueo permanente.

Configuración

Registro de auditoría a prueba de manipulación

El registro de auditoría registra quién hizo qué, cuándo, a qué objeto, en qué nivel de riesgo y si tuvo éxito.

Pantalla de producto
Auditoría de actividadLa página de auditoría proporciona actividad con acciones, actores, riesgos, objetivos y resultados que se pueden buscar.Auditoría de actividadespacio de trabajoEVENTOS18.2kHIGH RISK21INTEGRITYValidaVISTA DE ESPACIO DE TRABAJO EN DIRECTOConector habilitado[email protected] · ShopifyÉxitoAPI clave revocada[email protected] · clave 19ÉxitoLa configuración cambió[email protected] AIÉxitoPermiso denegado[email protected] · exportaciónBloqueado1FILTERAcción, riesgo y actor2INSPECTIVAMeta y resultado3EXPORTCSV o JSON
La página de auditoría proporciona actividad con acciones, actores, riesgos, objetivos y resultados que se pueden buscar.

Filtrar por acción, riesgo y actor; exportación CSV o JSON La cadena hash ayuda a detectar filas de auditoría que faltan o se han alterado, pero no sustituye las copias de seguridad protegidas ni el acceso restringido a la base de datos. Trate las exportaciones de auditorías como confidenciales porque pueden identificar usuarios, registros y acciones de seguridad.

Operaciones

Diagnósticos

Los diagnósticos convierten las comprobaciones de subsistema en resultados de estado claros y acciones directas siguientes.

Pantalla de producto
DiagnósticosLos diagnósticos agrupan las comprobaciones de estado del widget, IA, tickets, integraciones, inteligencia del sitio, tareas en segundo plano, automatización de CRM, licenciamiento y almacenamiento.Diagnósticosespacio de trabajoSaludable13WARNING2FALLADO1VISTA DE ESPACIO DE TRABAJO EN DIRECTOWidgetEndpoints de beacon y chatSaludableTareas de fondoCron latido del corazón tardeAdvertenciaCorreo electrónicoFalló la prueba de salidaFalladoConectoresRegistro y admisión de eventosSaludable1REFRESHEjecutar comprobaciones actuales2OPEN WARNINGLea la evidencia3FIX AND RETESTConfirmar la recuperación
Los diagnósticos agrupan las comprobaciones de estado del widget, IA, tickets, integraciones, inteligencia del sitio, tareas en segundo plano, automatización de CRM, licenciamiento y almacenamiento.

La página comprueba la velocidad del sitio, el ranking/palabra clave/backlink/datos locales, la IA y la puerta de enlace de acción, los tickets, las auditorías/rastreadores, la integración/admisión de eventos, las tareas en segundo plano, las automatizaciones de CRM, la licencia, el widget y los servicios relacionados con el producto.

Después de un cambio, actualice y confirme que el subsistema afectado vuelve a estar sano. Una página verde de diagnóstico es necesaria pero no suficiente para el lanzamiento; complete también la lista de comprobación previa al lanzamiento.

Configuración

Seguridad y acceso

OpsIQincluye múltiples capas de seguridad para proteger su administración, datos yAPIacceso.

Cómo funciona
Seguridad y accesoUn escudo de seguridad junto a los controles habilitados: dos factores, OIDC SSO, SCIM 2.0, OAuth2 PKCE, CSRF/CSP IP Firewall, límites de velocidad y una bóveda secreta.Autenticación de dos factores (TOTP)OIDC SSOSCIM 2.0OAuth2 PKCECSRF + CSPIP FirewallLímites de tasaBóveda de secretos
Seguridad

Características de seguridad

Autenticación de administrador

Correo electrónico/contraseña con 2FA opcional.

Bloqueo de inicio de sesión

Bloqueo temporal después de demasiados intentos fallidos.

IP bloqueo

Bloquear IPs o rangos CIDR de acceso a sitios rastreados.

Puntuación de amenazas

Los visitantes que suponen una amenaza alta pueden ser bloqueados automáticamente.

Aplicación de HTTPS

Requerido para todas las conexiones. HTTP redirige a HTTPS.

Encabezados de HSTS

La seguridad de transporte estricta evita los ataques de degradación.

Protección de CSRF

Todos los formularios de administración incluyen tokens CSRF.

Protección contra XSS

Toda la entrada del usuario se escapa. Los encabezados CSP restringen la ejecución de scripts.

Protección de SSRF

Los webhooks salientes bloquean las direcciones IP privadas/internas.

Configuración recomendada

1
Habilitar 2FA

Para todas las cuentas de administrador.

2
Contraseñas fuertes y seguras

Mínimo 12 caracteres, mixto.

3
Cuentas de revisión

Eliminar el acceso de los antiguos miembros del equipo.

4
Monitorea los inicios de sesión fallidos

Revisa semanalmente si hay patrones sospechosos.

5
Manténgase actualizado

Aplique actualizaciones de forma inmediata para obtener parches de seguridad.

Configuración

Roles y permisos

El control de acceso basado en roles le permite controlar lo que puede hacer cada miembro del equipo.

Roles & permisos
Roles y permisosUna matriz de roles por capacidad: el propietario tiene todo; el administrador completo carece de facturación y zona de peligro; el agente solo tiene tickets con alcance.Roles & permisosespacio de trabajoCONFIGURACIÓNFacturaciónPeligroTICKETPropietarioAdministrador completoAgentescoped13 ROLESPropietario · Administrador completo · Agente2GRANULARPor página + por departamento3DEFAULT-DENYRutas olvidadas bloqueadas
La matriz de roles de un vistazo: El propietario obtiene todo, el administrador completo todo menos la facturación y la zona de peligro, el agente solo sus tickets de alcance.

Roles predeterminados

Propietario

Todo, incluyendo licencias, zonas de peligro y gestión de instalaciones.

Administrador completo

Todo excepto licencia y zona de peligro. Puede dirigir equipo.

Agente

Responda a los tickets y chats del departamento asignado, vea las estadísticas. Sin acceso de configuración, equipo o seguridad.

¿Puedo crear roles personalizados?+

Tres roles integrados más la asignación de departamentos proporcionan un control detallado.

Configuración

Bloqueado IPs

Administrar direcciones IP bloqueadas para acceder a sus sitios rastreados.

Bloqueado IPs
Bloqueado IPsEl bloqueado...IPs Pantalla: un bloque-an-IP/CIDR forma junto a una tabla de direcciones bloqueadas con cada entrada, fecha, razón y un botón Desbloquear.Bloqueado IPsespacio de trabajoBloquear un IP / CIDR203.0.113.0/24Motivo (opcional)BloqueDirecciones de correo bloqueadas203.0.113.9Jun 12 · fuerza brutaDesbloquear45.12.0.0/16Jun 10 · correo no deseadoDesbloquear102.89.6.2Jun 9 · abusoDesbloquear1BLOQUEARIP o rango de CIDR2LISTQuién y cuándo, con razón3UNBLOCKCon un clic
El verdadero bloqueado IPs pantalla: bloquear un solo IPo un rango de CIDR, y gestionar la lista, cada una con su fecha, razón y un clic desbloquear.

Cómo bloquear

1
Ve a Seguridad > Bloqueado IPs

2
Agregar un rango IP o CIDR

Ejemplo: 203.0.113.42 o 203.0.113.0/24

3
Añadir una razón

Documenta por qué: spam, abuso, scraping, etc.

¿El bloqueo afectará a los usuarios legítimos?+

Si los clientes comparten un IP corporativo o una VPN, al bloquear ese _IP se bloquea a todos en él.

Configuración

Iniciativas de inicio de sesión fallidas

Todos los intentos de inicio de sesión fallidos a su OpsIQ admin.

Iniciativas de inicio de sesión fallidas
Iniciativas de inicio de sesión fallidasLa pantalla de inicios de sesión fallidos: una tabla de cuentas/IPs con el recuento de errores, la hora del último intento y un botón Bloquear por fila.Iniciativas de inicio de sesión fallidasespacio de trabajoIntentos de inicio de sesión fallidosCuenta / IPFALLADOÚLTIMOACCIÓN[email protected] · 41.62.10.47Hace 2mBloque[email protected] · 102.89.6.23Hace 18mBloqueDesconocido · 45.12.9.712Hace 26mBloque[email protected] · 88.21.4.92Hace 1hBloque1WATCHIntentos de inicio de sesión fallidos2COUNTSPor cuenta / IP3ACTOBloquear desde la fila
La pantalla de inicios de sesión Failed real: cada cuenta/IP con su cuenta de fracaso y último intento, bloquear una fuente de fuerza bruta directamente desde la fila.

Lo que muestra cada entrada

Fecha/hora

Cuando el intento sucedió.

Correo electrónico

Dirección de correo electrónico utilizada.

Dirección de IP

Fuente del intento.

País

Ubicación geográfica.

Razón

Contraseña incorrecta, bloqueada o no encontrada.

Señales de advertencia

Muchos intentos, mismo correo electrónico

Asegúrate de que la autenticación en dos pasos esté habilitada.

Muchos intentos, diferentes correos electrónicos

Ataque automatizado. Bloquear la fuente IP.

Países inusuales

Si tu equipo es local, los intentos extranjeros son probablemente ataques.

Configuración

analista de seguridad de IA

Una capa de analista opt-in sobre las páginas de Seguridad: veredictos, informes de incidentes, un resumen diario, una comprobación semanal de la postura, Preguntar por seguridad y políticas de bloqueo del token 0. Nunca se ejecuta en la ruta de solicitud del visitante.

Cada página de seguridad registra lo que ha sucedido, pero la lectura todavía requiere juicio. El analista de seguridad de IA agrega ese juicio en su lugar y está diseñado para no gastar casi nada: nunca se encuentra en el camino del beacon o del inicio de sesión, las reglas deterministas resuelven los casos obvios sin llamada de IA, los veredictos se almacenan en caché y la mejor salida del analista es una regla determinista que luego se aplica para siempre con cero tokens. Configuración → Seguridad; todos por defecto desactivados.

Lo que añade

Fichas de veredicto + Explicar

Bloqueado IPs Las filas de inicios de sesión fallidos y no exitosos muestran un chip benigno / sospechoso / hostil con una puntuación de confianza. Explicar abre el razonamiento, los hechos utilizados y las acciones Bloquear / Liberar con un solo clic. 24h, por lo que re-viewing an.IPLa entrada es gratuita.

Informes de incidentes

Los eventos relacionados se agrupan en un incidente (onda de inicio de sesión, análisis URL, ráfaga de bloqueo automático) con una línea de tiempo en inglés sencillo y un paso siguiente recomendado.

Resumen diario

Un resumen por día: ayer versus tu línea de base, bloqueos, incidentes y la única cosa que hay que hacer. Días tranquilos envían un all-clear determinístico con cero tokens.

Chequeo semanal de postura

Una lista de verificación para el endurecimiento del lunes (brechas 2FA, umbral de bloqueo frente al volumen real de ataques, alertas desactivadas) con una severidad, esfuerzo y solución exacta por elemento.

Preguntar a Seguridad

Un cuadro de preguntas en la vista general de seguridad que responde desde su estado de seguridad real. Preguntas profundas del servidor se entregan al chat del ingeniero administrativo en lugar de adivinarlas.

Propuestas de políticas + piloto automático

El analista propone reglas de bloque concreto como tarjetas Aprobar / Desestimar; las reglas aprobadas se aplican a cero tokens con un contador de golpes en vivo. El piloto automático opcional solo aprueba automáticamente las reglaes más seguras.

Configuración

Analista de seguridad de IA (security_ai_enabled)

Master switch. Enables verdict chips, Explain, and Ask Security. Only ambiguous IPs reach the model, batched into one call.

Resúmenes de incidentes (security_ai_incidents)

Agrupa los eventos en incidentes y escribe cada nueva historia. Se ejecuta sobre el cron de seguridad por hora existente.

Resumen diario (security_ai_digest)

Un resumen de seguridad por día en la campana y el Resumen. Días tranquilos no cuestan nada.

Revisión semanal de la postura (security_ai_posture)

La lista de verificación es completamente determinista y se puede modificar en cualquier momento.

Piloto automático de políticas (security_ai_autopilot)

Permite al analista activar sus propuestas más seguras sin supervisión: solo bloques reversibles con límite de tiempo, único IPs o rangos no más amplios que /24, Nunca compartido/móvil/privado, limitado 10 por hora, siempre auditado y deshacible.

💡
Cada llamada es etiquetada como Security_ai con su propia tapa mensual en AI Config → Guardacostas de Costo (default 300k fichas). Si la gorra se golpea, características degradan a lecturas deterministas. Bloquear, bloqueos y alertas nunca dependen de este presupuesto. El analista nunca puede eliminar datos, cambiar ajustes, tocar el libro mayor de auditoría o hacer una prohibición permanente.
Operaciones

Cron y automatización

OpsIQ utiliza un programador de productos para ejecutar encuestas por correo electrónico, automatización de tickets, agregados analíticos, retención, colas de IA, trabajo con CRM, informes y trabajos con conectores.

Pantalla de producto
Cron y automatizaciónUna entrada cron del producto proporciona el ritmo cardíaco; OpsIQ decide qué trabajos internos se deben realizar.Cron y automatizaciónservidorLATIDOCada minutoRUNNERcron/all.phpHEALTHConfiguraciónVISTA DE ESPACIO DE TRABAJO EN DIRECTOCorredor de producto unificadoopsiq/cron/all.phpNecesariaColas de tickets y correo electrónicoTrabajo programado cortoActivoAnálisis y retenciónCadencia internaProgramadoSuscriptores de ConnectorEventos cron declaradosAlcance1INSTALL ONE LINEEjecute el programador de productos cada minuto2CHECK CRON SETUPConfirmar los latidos del corazón CLI3USE DIAGNOSTICSInvestigar trabajos tardíos o fallidos
Una entrada cron del producto proporciona el ritmo cardíaco; OpsIQ decide qué trabajos internos se deben realizar.

Entrada cron de producto requerida

Añada esta línea a la crontab para el mismo servidor y entorno PHP que ejecuta OpsIQ:

OpsIQ entrada de crontab del producto
* * * * * php /path/to/opsiq/opsiq/cron/all.php >> /tmp/opsiq-cron.log 2>&1

Sustitúyase por /path/to/opsiq Use la ruta completa de PHP CLI cuando el host lo requiera, por ejemplo: /usr/bin/php8.4.

No utilice el nivel superior /cron.php Para el trabajo del producto. En este repositorio, ese ejecutor pertenece a un servicio separado que no es producto y está fuera de este manual. OpsIQ El corredor del producto es opsiq/cron/all.php.

Lo que impulsa el programador unificado

Colas de tickets y IA

Procesa respuestas automáticas, escalaciones, aprobaciones y otros trabajos de productos en cola.

Correo electrónico entrante

Buzones configurados para sondeos donde la sonda es el método de admisión seleccionado.

Análisis y sesiones

Ensambla sesiones y actualiza agregados programados cuando deben hacerse.

CRM y compromiso

Ejecuta tareas de puntuación, ciclo de vida, flujo de trabajo, campaña y informe programado que están habilitadas.

Retención y mantenimiento

Realiza el trabajo de limpieza, archivo, caducidad e integridad debido.

Conectores

Envía suscriptores cron de conectores y sondeos solo para los conecteurs instalados, habilitados y configurados.

Verificar cron

  1. Abrir Configuración - Configurar cron y confirme que existe el producto runner.
  2. Uso Corre ahora Una vez, luego confirme la actualización de los latidos del corazón de administración y encuesta.
  3. Verificar Diagnósticos para un problema de heartbeat tardío, PHP CLI, base de datos o ruta de archivo.
  4. Inspeccionar /tmp/opsiq-cron.log o la ruta de registro que seleccionó cuando falla una ejecución manual.

Sincronice por lotes sincronizaciones largas y almacene un cursor/punto de control para que la siguiente ejecución pueda continuar con seguridad.

🚫
Cuando el cron del producto se detiene, el trabajo basado en tiempo OpsIQ se detén o llega tarde aunque las páginas administrativas ordinarias aún pueden cargarse.
Operaciones

Operaciones de despliegue alojadas

Una implementación de OpsIQ alojada utiliza las mismas pantallas y flujos de trabajo del producto, mientras que el operador de alojamiento administra la capa del servidor. Los procedimientos comerciales de registro, planes, facturación y portal de cuenta están fuera de este manual.

Pantalla de producto
Despliegue alojadoLa operación hospedada cambia quién mantiene la infraestructura; no cambia cómo los clientes utilizan OpsIQ.Despliegue alojadoespacio de trabajoPRODUCT UIIgual OpsIQINFRASTRUCTUREOperador-managedWORKSPACE DATAAisladoVISTA DE ESPACIO DE TRABAJO EN DIRECTOTiempo de ejecución de aplicacionesPHP, servidor web y base de datosAdministradoCron de productoProgramado por el operador de alojamientoVerificarCopias de seguridad y actualizacionesPolítica y evidencia del proveedorExamenOpsIQ configuraciónSitios, IA, equipo y conectoresTu equipo de trabajo1OPERATE OPSIQ NORMALLYUtilizar la misma navegación de productos2VERIFY SERVICE HEALTHUso Diagnósticos y evidencia de estado3KNOW RESPONSIBILITYSepara la configuración del producto de los trabajos de alojamiento
La operación hospedada cambia quién mantiene la infraestructura; no cambia cómo los clientes utilizan OpsIQ.

Lo que normalmente gestiona el operador de alojamiento

  • Servidor web, tiempo de ejecución PHP, servicio de base de datos, TLS y almacenamiento.
  • El cron del producto unificado y sus registros a nivel de servidor.
  • Actualizaciones de aplicaciones, monitorización de infraestructura y el proceso de backup definido por el acuerdo de hosting.

Lo que un administrador de OpsIQ todavía gestiona

  • Instalación de sitios web y widgets, configuración de IA, conocimiento, buzones y flujos de trabajo de soporte al cliente.
  • Acceso de equipos, departamentos, controles de seguridad, claves API, conectores, automatizaciones y ajustes de retención de datos.
  • Verificación del producto a través de Diagnósticos, el registro de auditoría, pruebas de conectores y comprobaciones reales de extremo a extremo.

Controles operativos

No asuma que un servicio administrado significa que todas las integraciones de productos están en buen estado.Confirme la última evidencia de copias de seguridad y política de retención con el operador de hosting, y utilice OpsIQ Diagnósticos después de cambios a DNS, correo electrónico, proveedores de IA, sitios web o conectores.

La incorporación comercial, las suscripciones, la facturación y la administración de cuentas de clientes permanecen fuera del manual OpsIQ.

Operaciones

Alojamiento en casa particular OpsIQ

A self-hosted OpsIQ Usted es responsable del tiempo de ejecución, la base de datos, el software y las aplicaciones. TLS, cron del producto, copias de seguridad, actualizaciones y monitoreo.

Pantalla de producto
AutoalojamientoEl autohosting le da control de la infraestructura y hace que su equipo sea responsable de cada dependencia operativa.AutoalojamientoservidorPHP8.4+DATABASEMySQL 5.7+SCHEDULERCada minutoVISTA DE ESPACIO DE TRABAJO EN DIRECTOExtensiones de tiempo de ejecuciónCurl, pdo_mysql, mbstring, jsonNecesariaExtensiones adicionalesxml, en inglés, OpenSSL, Inc.NecesariaAlternativa de base de datosMariaDB 10.3+ con InnoDBApoyadoTransportarAcceso HTTPS y de proveedores salientesVerificar1PREPARE THE SERVERCoincidir con los requisitos de tiempo de ejecución2INSTALL AND CONFIGUREUsar una base de datos dedicada y HTTPS3ADD PRODUCT CRONEjecute opsiq/cron/all. php
El autohosting le da control de la infraestructura y hace que su equipo sea responsable de cada dependencia operativa.

Contrato mínimo de software

PHP

PHP 8.4 extensiones requeridas: curl, pdo_mysql, mbstring, json, xml, apertura, cremallera, intl y gd.

Base de datos

MySQL 5.7+ o MariaDB 10.3 Crear una base de datos dedicada y un usuario con menos privilegios en la aplicación.

Servidor de web

Apache o Nginx configurado para el controlador frontal OpsIQ, los recursos estáticos y las reescrituras requeridas.

HTTPS

Necesaria para sesiones de administración, tráfico de widgets, claves API, webhooks y llamadas a proveedores.

Acceso de salida

Permita el acceso DNS y HTTPS a los endpoints de IA, correo electrónico, conector y licencia que haya habilitado.

Acceso a archivos

Los usuarios web y de CLI deben poder leer archivos de aplicaciones y escribir solo en las ubicaciones de tiempo de ejecución/almacenamiento documentadas.

Cron

Ejecute el programador de productos OpsIQ cada minuto con la misma configuración de aplicación y acceso a base de datos que el proceso web.

Secuencia de instalación

  1. Cargue la versión en la raíz del documento deseado y conserve la estructura de directorios proporcionada.
  2. Cree la base de datos y el usuario de aplicación, luego ingrese la configuración de base de información, URL canónico y licencia.
  3. Ejecute el flujo de instalación/instalador y cree la primera cuenta del propietario.
  4. Habilita HTTPS y verifica las redirecciones, cookies y rutas de acceso del widget público/API.
  5. Añadir el cron del producto OpsIQ unificado:
Cron de producto autoalojado
* * * * * php /path/to/opsiq/opsiq/cron/all.php >> /tmp/opsiq-cron.log 2>&1
  1. Abra Configuración - Cron Setup y Diagnósticos; ejecute el programador una vez y resuelva todas las dependencias fallidas.
  2. Configure los procedimientos de copia de seguridad, restauración, pruebas, retención de registros y actualización antes de agregar datos de producción.

Actualizar de forma segura

  1. Lea las notas de la versión y compruebe los requerimientos PHP/extensiones antes de cambiar archivos.
  2. Haga una copia de seguridad de la base de datos y los archivos de aplicación/configuración, luego pruebe que la copia de respaldo se puede restaurar en una ubicación de prueba.
  3. Implemente los nuevos archivos sin eliminar la configuración específica de instalación o datos en tiempo de ejecución.
  4. Ejecute el proceso de migración/comprobación previa suministrado y verifique el inicio de sesión, seguimiento de widgets, tickets, correo electrónico, IA, conectores y cron.
  5. Mantenga la versión anterior y el respaldo de base de datos disponibles para la ventana de reversión documentada.
🚫
El repositorio de nivel superior /cron.php No es el. OpsIQ Apunta la automatización del producto solo a. opsiq/cron/all.php.
⚠️
No elimines. schema_cache.json como mantenimiento rutinario, sino solo cuando las instrucciones del producto requieran explícitamente una reconstrucción de la caché de esquemas.
Operaciones

Guía de producción

Lista de comprobación y mejores prácticas para ejecutar OpsIQ en producción.

Guía de producción
Guía de producciónUna lista de verificación para poner en marcha: dominio personalizado y SSL, entrenamiento con IA, conectores y cron, copias de seguridad y retención, y roles del equipo.Lista de verificación Go-liveespacio de trabajoAntes de ir en vivoDominio personalizado + SSL configuradoIA entrenada en tu contenidoConectores probados · cron en ejecuciónCopias de seguridad programadas · conjunto de retenciónRoles de equipo asignados y revisados1GO-LIVELista de verificación previa al lanzamiento2VERIFYDominio · SSL · copias de seguridad3CONFIDENTNave cuando es verde
Una lista de verificación para que no se pierda nada: dominio + SSL, IA entrenada, conectores y cron probados, copias de seguridad y retención, y roles del equipo.

Antes de ir en vivo

HTTPS configurado

SSL instalado, redirecciones HTTP, HSTS habilitado.

Cron en ejecución

Verificar a través de la página de diagnósticos.

AI probado

Chatea como cliente. Verifica la precisión y el tono.

Widget instalado

En todas las páginas del sitio web. Verificar con Live Feed.

Copia de seguridad configurada

Backups diarios automatizados de bases de datos y archivos.

Registro de errores

Registro de errores PHP habilitado y monitoreado.

Equipo invitado

Todos los miembros tienen cuentas con roles correctos.

Base de conocimientos completada

Al menos 5-10 Artículos.

Diariamente: Compruebe el panel de control, limpie la cola de tickets y compruebe las conversaciones de IA.

Semanal: revisa los Insights de IA, actualiza la base de conocimientos, comprueba el rendimiento del equipo y revisa la seguridad.

Mensual: revise las tendencias de análisis, audite los conectores, actualice el entrenamiento de IA y verifique las copias de seguridad.

Operaciones

Lista de verificación previa al lanzamiento

Ejecute las puertas de código fuente y complete comprobaciones reales del producto antes de una versión o primer lanzamiento en producción. El hecho de que un comando esté disponible no es evidencia de que haya pasado en su entorno.

Pantalla de producto
Verificación de la liberaciónLa vista de liberación muestra las puertas requeridas para ejecutarse; no las pre-etiqueta como pasadas.Verificación de la liberaciónservidorRUNTIMEPHP8.4SOURCE GATESEjecutar localmenteOUTCOMEBasado en pruebasVISTA DE ESPACIO DE TRABAJO EN DIRECTOExtensiones requeridasCompruebe antes de la suitePuertaBarrer sintaxis PHPTodos los archivos PHP del proyectoPuertaEvaluación de IA y PHPUnitEjecutar cuando las dependencias están presentesPuertaComprobaciones estáticas y del navegadorEjecutar cuando está configuradoPuerta1RUN THE CHECKSCaptura la salida real2FIX EVERY REQUIRED FAILURENo reemplace la evidencia con suposiciones3TEST THE PRODUCTVerifica los recorridos reales de los usuarios
La vista de liberación muestra las puertas requeridas para ejecutarse; no las pre-etiqueta como pasadas.

Puertas de origen y liberación

Ejecute las comprobaciones del repositorio desde la raíz de instalación y mantenga su salida completa con el registro de lanzamiento.

Puerta de prevuelo primaria
php tools/preflight.php
Puerta de liberación extendida
php tools/release_gate.php

La comprobación previa comprueba el tiempo de ejecución PHP 8.4 y las extensiones requeridas, realiza un barrido de sintaxis PHP, ejecuta la puerta de evaluación AI ship gate y la suite completa PHPUnit, y ejecuta comprobaciones de PHPStan/Node cuando estas herramientas están instaladas. La puerta extendida también incluye controles de humo, instalación limpia / esquema y navegador de extremo a extremo cuando su entorno está configurado.

Una comprobación omitida no es un paso, anote por qué no estaba disponible, instale la dependencia que falta o ejecútela en el entorno de CI/staging correcto antes del lanzamiento.

Controles de productos

1. Autenticación y roles

Inicie sesión como cada rol previsto; verifique las páginas/acciones permitidas y denegadas.

2. Widget y seguimiento

Cargue un sitio real en un navegador privado; verifique el tráfico de beacon, Live Feed, registros de visitantes y sesiones.

3. Chat y IA

Haga preguntas representativas; verifique la base de conocimiento, seguridad, escalada e historial de IA.

4. Entradas

Cree, asigne, responda, escale, cierre y reabra a través de cada ruta de admisión habilitada.

5. Correo electrónico

Pruebe la entrega saliente y cada buzón de entrada configurado o ruta de webhook.

6. CRM y análisis

Cree un contacto/negocio/conversión controlado y verifique paneles, embudos, puntuaciones e informes.

7. Conectores

Ejecute pruebas de conexión, una lectura, una escritura segura/ejecución en seco y rutas webhook/polling para cada conector habilitado.

8. API Conexiones y webhooks

Verifique ámbitos estrechos, límites de velocidad, reintentos idempotentes, firmas y manejo de duplicados.

9Cron

Ejecute el programador de productos unificado y confirme todos los latidos del corazón requeridos en Cron Setup/Diagnostics.

10. Seguridad

Verifique 2FA, controles de CSRF/sesión, entradas de auditoría, revocación de clave y aislamiento del espacio de trabajo.

11. Copia de seguridad y restauración

Restaure una copia de seguridad actual en un entorno de prueba independiente y verifique los datos y la configuración.

12. Observabilidad y reversión

Confirme los registros/alertas, preserve las ID de solicitud y pruebe el procedimiento de reversión.

⚠️
Implemente solo después de que cada puerta requerida y el recorrido crítico del negocio tenga evidencia actual para la versión exacta y el entorno.
Desarrollador

Web Push en sitios de terceros

Notificaciones de empuje del navegador (incluyendo OpsIQ Push Campaigns) necesita un trabajador de servicio servido del SAME ORIGIN como la página.OpsIQ cargas de widget de su OpsIQ el despliegue, por lo que un sitio de terceros no puede registrarse OpsIQ's worker directly. Host one small file on the site's own domain to enable push there. Campaigns deliver through BOTH supported methods.

Cómo funciona
Empuje webUna notificación push estilo SO sobre dos tarjetas de método de entrega: VAPID incorporado y Pusher Beams.Tu tienda en líneaYour cart is waiting · 10% off todayahoraIntegrado (VAPID)Sin tercerosHospedar un archivoAspiradores de empujeUsar tu cuentaHospedar al trabajador
Empuje web

Por qué se necesita esto

Los navegadores sólo permiten que una página registre un trabajador de servicio desde su propio origen. El widget carga el orgán cruzado de su OpsIQ implementación, por lo que no puede instalar el trabajador de presión en un sitio del cliente, hasta que usted acoge al trabajador en el origen de ese sitio, el widget silenciosamente salta empuje (sin error, sin suscripción). Usted tiene dos opciones abajo;OpsIQ Campañas de empuje publican a través de ambas.

Opción A · Empuje Web Auto-auspiciado (VAPID, no terceros)

1. Descargue el worker desde su implementación OpsIQ: https://YOUR-OPSIQ/opsiq/opsiq-push-sw.js

2. Subir a tu blog raíz de la web Por lo que es accesible en https://yoursite.com/opsiq-push-sw.js. El widget Detecta automáticamente esta ruta en el propio origen de la página y lo registra, sin cambio de chispa necesario. (Usa un alcance estrecho, por lo que nunca reemplaza a un trabajador de servicio que ya se ejecuta).

Opcional: Si tienes que alojarlo en una ruta no estándar, apunta el widget a ella antes el snippet. Sólo se acepta cuando mismo-origen:

Opcional · sólo si el archivo NO está en la raíz web
<script>window.OpsIQ=window.OpsIQ||{};window.OpsIQ.pushSwUrl="/custom/opsiq-push-sw.js";</script>

3. En OpsIQ, genera claves VAPID (Configuración → AI de chat del cliente → Avanzado → Web Push) El widget luego pide permiso a los visitantes para recibir notificaciones y se suscriben.

¿Detrás de un CDN/Cloudflare? Asegúrese /opsiq-push-sw.js devoluciones HTTP 200 (purge el cache si era 404 antes de subir; un caché 404 bloqueará el registro).

Opción B · Beams de empuje (proveedor gestionado)

1. En la configuración de OpsIQ establecer el proveedor de push a Aspiradores de empuje Entrar y entrar en tus Beams ID de instancia y Llave secreta.

2. Aloja el service worker de Beams en la raíz del sitio como /service-worker.js. Copia https://YOUR-OPSIQ/opsiq/pusher-beams-service-worker.js, o fusione esta línea en su root worker existente:

Beams worker, host athttps://yoursite.com/service-worker.js
importScripts("https://js.pusher.com/beams/service-worker.js");

3. El widget carga automáticamente los Beams SDK y suscribe a cada visitante al interés por sitio. opsiq-site-<your-site-key>. No se necesita otro cableado.

Cómo funcionan las campañas

Las campañas push publican a través de both Los visitantes del worker VAPID autohospedado reciben el Web Push cifrado, y los visitantes suscritos a través de Pusher Beams obtienen la publicación de cada visitante se llega a través del que esté suscrito, por lo que puede ejecutar VAPIDS de origen común en algunos sitios y beams de orígenes cruzados en otros.

HTTPS es requerido La bandeja de entrada del chat de administración ya utiliza el mismo mecanismo de interés de Beams para las alertas de operadores, pero no se puede usar en la aplicación de mensajería instantánea.

Operaciones

Solución de problemas

Problemas comunes y cómo solucionarlos.

General

Página en blanco+

Causas: PHP antiguo (necesita 8.4+), falta de extensión, falla en la conexión a la base de datos, permisos incorrectos del archivo.

El panel muestra ceros+

Compruebe: ¿Widget instalado? Cron en ejecución? Rango de fechas correcto? IP excluido?

IA

La IA no responde+

Compruebe: ¿el proveedor está configurado? ¿La clave API es válida (use Conexión de prueba)?

La IA da respuestas equivocadas+

Compruebe: ¿está actualizada la base de conocimientos?, ¿el mensaje está claro?, las búsquedas del conector devuelven los datos correctos?

La IA es lenta+

Depende de: velocidad del proveedor API, tamaño del contexto (grande KB = más tokens = menos rápido), latencia de la red.

Seguimiento

Falta el widget+

Comprueba: ¿script en el código fuente de la página? ¿errores JS en la consola?

País desconocido+

GeoIP no configurado. Usar Cloudflare (automático) o MaxMind GeoLite2 base de datos.

Boletos

Correos electrónicos que no crean tickets+

Compruebe: buzón conectado? Cron en ejecución? Cambiado la contraseña de la aplicación? IMAP configuración correcta?

La respuesta automática no funciona+

¿Departamento permitido? ¿AI configurada? ¿Cron en ejecución? ¿Respondió el humano primero?

Conectores

Error de conexión+

Compruebe: ¿las credenciales son correctas? API ¿Accesible desde el servidor? Base URL ¿No es correcto?

Conectado pero sin datos+

Compruebe: ¿Los alcances de la clave API? ¿La sincronización del webhook está habilitada?

Rendimiento

Páginas lentas+

Compruebe: rendimiento de la base de datos (SHOW PROCESSLIST), memoria PHP (aumentar a 1GB), habilitar opcache, reducir el período de retención.

Operaciones

Widget no registra visitas

Utilice esta comprobación enfocada cuando el widget se carga incorrectamente o Live Feed permanece vacío.

Cuando el El widget no está registrando visitas, verifique la clave del sitio, cargue la página en un navegador privado, compruebe los paneles de Red/Consola del navegador para ver si se han bloqueado las solicitudes de beacon o widget, revise la política de seguridad de contenido y los bloqueadores de anuncios, confirme que el sitio está activo en OpsIQ y abra Diagnóstico.

Referencia

Glosario

Definiciones de los términos utilizados en OpsIQ.

Acción

Algo que la IA puede hacer a través de un conector o la plataforma.

Agente

Un miembro del equipo con acceso limitado o un agente de IA.

BYOK

Trae tu propia llave, proporcionas tu propia tecla AI API.

Conector

Un plugin que integra una plataforma externa con OpsIQ.

CSAT

Puntuación de satisfacción del cliente.

Acuerdo

Una oportunidad de ingresos en el CRM.

Departamento

Una categoría de ticket para enrutamiento y control de acceso.

Escalada

Mover un ticket a otro departamento o de IA a humano.

GeoIP

Detección de la ubicación del visitante desde la dirección IP.

Handoff

Transferir una conversación de IA a humano.

Token de identidad

Token firmado que identifica a un visitante del sitio web.

Base de conocimientos

Artículos que la IA utiliza para responder preguntas.

Plomo

Un visitante que muestra intención de compra.

Puntuación de lead

Número 0-_100 que indica la probabilidad de conversión.

Etapa del ciclo de vida

Donde está un cliente: Cliente potencial, prospecto, cliente, en riesgo, rechazado.

AI Gestionado

La IA se proporciona como parte de su plan OpsIQ.

Pipeline

Tablero visual de las etapas del trato.

RBAC

Control de acceso basado en roles.

Sesión

Una serie de vistas de página dentro de una ventana de tiempo de espera.

Clave del sitio

Identificador único de un sitio web rastreado.

SLA

Acuerdo de nivel de servicio, plazos de respuesta.

Token

Unidad de texto AI. Roughly4caracteres =1Token.

Capa de confianza

Sistema de seguridad que controla la autonomía de IA.

Webhook

Devolución de llamada HTTP para notificaciones de eventos.

Widget

JavaScript código incrustado en su sitio web.

Espacio de trabajo

Un sitio con su propio seguimiento, IA, conectores y equipo. Lo mismo que "sitio".

Referencia

Obtenga más ayuda

Si esta documentación no responde a su pregunta:

Administrador de AI

Haga clic en "Preguntar a OpsIQ" en el administrador. Tiene acceso a esta documentación y los datos de su plataforma.

Ticket de soporte

Incluye: lo que intentaste, qué sucedió, lo que esperabas y cualquier mensaje de error.

Correo electrónico

Envíe un correo electrónico al soporte con su clave de licencia y la descripción del problema.

Consejos para solicitudes de soporte efectivas

Incluir la página

Qué página de administración (URL o nombre).

Incluir el entorno

Nombre exacto de la configuración y valor actual.

Incluya el error

Mensaje de error exacto con códigos.

Incluya los pasos

Lo que hiciste, paso a paso.

Incluir esperado vs real

Lo que debería suceder vs lo que sucedió.

💡
Cuanto más específica sea su solicitud, más rápida será la respuesta. "No funciona" requiere investigación. "Haciendo clic en Guardar en Configuración de IA da el código de error 502" obtiene una respuesta directa.