C'est la documentation complète pour OpsIQ. Configurez le produit, lancez le support, configurez l'IA, gérez le CRM, installez le widget, construisez des connecteurs, appelez le REST API, recevoir des webhooks, paqueter les applications du marché et opérer des déploiements auto-organisés.
CtrlK
Rechercher tous les sujets OpsIQAucune section correspondante
Guide du clientGuide d'administrationGuide du développeurRéférence CRMSDK de connecteurAPI RESTAuto-hébergé
Parcours du visiteur détecté
Suivez les sessions, les pays, les pages, les prospects, les conversions et l'intention de support en temps réel.
Réponse AI rédigée
OpsIQ peut aider à rédiger des réponses aux tickets, des réponses de chat, des résumés et des avis clients.
Action webhook prête
Connectez les actions de plateforme approuvées à des déclencheurs sécurisés avec confirmation et historique d'audit.
Portée
Portée du présent manuel
Tout OpsIQ fait, en un seul endroit: comment chaque écran fonctionne, comment connecter vos propres systèmes, et comment construire sur elle. Commencer n'importe où, les sections suivent la même commande que la barre latérale d'administration.
PortéeLe manuel est organisé autour du produit OpsIQ, suivant le même ordre que la barre d'administration.
Guide de terrain Portal Studio
Utilisez le guide d'administration et de développement dédié pour l'architecture du portail, les pages, les composants, la version préliminaire, le centre d'aide, l'identité, SCIM, les versions régies, les extensions, les migrations et la certification.
Chaque écran de l’administration: analyses, chat en direct, tickets, CRM, base de connaissances, Site Intelligence, promotions et portail client. Que fait chaque page, ce que les chiffres signifient et quoi faire quand ils ne semblent pas corrects.
Connectez vos systèmes
Le widget du site Web, les boîtes aux lettres de courrier électronique, les webhooks entrants et sortants et la bibliothèque de connecteurs pour des plateformes comme Shopify, WooCommerce, WHMCS Zendesk, Stripe, Slack et Gmail.
Construisez votre propre
Le Connector Builder pour les connecteurs sans code, Actions & Triggers si vous préférez ne pas utiliser de connecteurs du tout et le REST API avec chaque action, portée et code d'erreur.
Faites-le fonctionner
Rôles et autorisations, sécurité, cron, diagnostics, sauvegardes et déploiement hébergé ou auto-hébergé.
Où commencer
1
Si vous exécutez OpsIQ jour après jour
Chaque page s’ouvre avec l’objet de la page, vous pouvez donc arrêter dès que vous avez ce dont vous avez besoin.
2
Si vous l'administrez
Ajoutez les sections Paramètres, Sécurité, Diagnostics, Cron et Production qui décident si tout le reste fonctionne.
3
Si vous créez une intégration
Commencez par Connecteurs, puis le Constructeur de connecteur, puis REST API Lisez-les dans l'ordre et vous aurez vu toutes les façons de créer des webhooks. OpsIQ Il peut parler à un autre système.
💡
Deux choses changent ce que vous voyez. Les permissions masquent les pages de votre rôle, donc une section décrite ici peut manquer dans votre barre latérale. Demandez à un administrateur de vérifier votre rôle. Et les connecteurs portent une étiquette de maturité de Production, Beta, Preview ou Template; la construction en cours et son manifeste de connexion sont l'autorité sur laquelle vous avez, pas cette page.
Commencez ici
Ce que OpsIQ fait pour votre entreprise
OpsIQ Il remplace vos analyses, chat en direct, service d'assistance, CRM, boîte à outils SEO, middleware d'intégration et plate-forme de développement par un seul administrateur unifié où chaque outil partage le même contexte client. Au lieu de coller ensemble 8-12 Des produits SaaS séparés, vous installez OpsIQ Une seule fois et de tout faire fonctionner à partir d'un seul écran.
La plateformeOpsIQ est une plateforme avec un contexte client partagé, chaque outil alimente, et est alimenté par, le même cerveau d'IA.
Tout OpsIQ fait · en détail
Analyse du site Web et intelligence des visiteurs
Suivi des visiteurs en temps réel
Chaque chargement de page, clic, défilement et événement de navigation est capturé en temps réel. Voyez qui est sur votre site en ce moment, quelles pages ils regardent, combien de temps ils passent, et d'où ils viennent, tous sans cookies tiers.
Journal des visiteurs et sessions
Historique complet de chaque visiteur avec l'appareil, le navigateur, le système d'exploitation, le pays, la ville, le référent, les paramètres UTM, la page de destination et la résolution des identités. Les sessions regroupent les vues de pages en parcours afin que vous puissiez voir tout le chemin emprunté par un visiteur.
Relecture de session
Lecture de style chronologique des sessions de visiteurs capturés. Voyez exactement ce que les utilisateurs ont fait : mouvements de souris, clics, défilements, transitions de page et interactions de forme. Utilisez-le pour diagnostiquer les problèmes UX, comprendre les points de dépôt et vérifier les flux de conversion.
Flux en direct
Un flux en temps réel de l'activité des visiteurs au fur et à mesure. Voir les pages vues, les débuts de chat, les soumissions de formulaires et les signaux d'intention mis à jour toutes les quelques secondes. Filtrer par pays, appareil ou référent pour se concentrer sur des segments de trafic spécifiques.
Pages haut de page
Pages classées par visites, temps d'engagement, taux de rebond, conversions et activité d'assistance Identifiez votre contenu le plus performant et les pages qui doivent être améliorées.
Géo-intelligence
Distribution des appareils et des navigateurs, analyse de la source du trafic, suivi des moteurs de recherche référents et informations sur la pénétration du marché.
Entonnoir d'intention
Suivre les signaux d'intention des visiteurs (visites de pages, retours répétés, modèles de navigation documentaire et interactions de soutien) afin d'identifier les visiteurs susceptibles d'acheter, de faire des achats ou d'avoir besoin d'aide.
Expériences A/B
Exécutez des tests de split sur votre site web directement depuis OpsIQ. Créez des variantes, définissez l'allocation du trafic, les objectifs de conversion et mesurez la signification statistique.
Suivi des erreurs JavaScript
Capturez automatiquement les erreurs JavaScript côté client de votre site Web. Consultez les messages d'erreur, les traces de pile, les navigateurs affectés, le nombre de fréquences et les pages qui les déclenchent.
Journal des événements
Chaque événement suivi (vues de page, événements personnalisés, interactions de chat, présentations de formulaires, achats) dans un journal de bord consultable et filtrable avec métadonnées complètes.
Ventes et conversions
Suivez les commandes, le chiffre d'affaires, les remboursements, les renouvellements d'abonnement et attribuez les conversions aux sources de trafic, aux campagnes et au parcours des visiteurs.
Plombs
Les visiteurs à haut niveau d'intention identifiés par les modèles de comportement. Le pointage est basé sur les visites de page, l'heure sur le site, la fréquence de retour, les interactions de soutien et les signaux personnalisés.CRMpipeline.
Site Intelligence (SEO et analyse de contenu)
Crawls de site
Analyse automatisée de l'ensemble de votre site Web pour découvrir des pages, détecter les liens cassés, trouver les balises Meta manquantes, vérifier le texte alternatif d'images, valider URLs canonique et cartographier la structure de votre Site.
Audit SEO technique
Analyse technique complète : scores de vitesse des pages, ergonomie mobile, Core Web Vitals, état du certificat SSL, chaînes de redirection, contenu dupliqué
Audit de contenu
Évaluez la qualité de chaque page, le nombre de mots, le score de lisibilité, la densité des mots-clés, la structure du titre, le ratio liens internes/externes et la fraîcheur.
Recherche alimentée par l'IA
Posez des questions en langage naturel sur votre contenu et obtenez des réponses synthétisées par l'IA avec les références de la page source.
Suivi du SERP rank
Surveillez les changements de position au fil du temps, comparez-vous aux concurrents et voyez quelles pages se classent pour quels termes.
Recherche de mots clés
Découvrez les opportunités de mots-clés en fonction de votre contenu, de l'analyse des concurrents et des données sur le volume de recherche.
Analyse de backlink
Voyez quels sites vous renvoient, suivez les liens nouveaux et perdus, analysez la distribution des textes d’ancrage et identifiez les opportunités de création de liens.
Grille SEO locale
Pour les entreprises disposant d'un emplacement physique, visualisez votre visibilité dans la recherche locale sur une grille géographique et voyez comment vos classements varient en fonction de l'emplacement, de la distance par rapport à votre entreprise et de l’intention de recherche.
Synchronisation du profil Google Business
Connectez votre profil Google Business à OpsIQ. Synchronisez les avis, les publications, les questions et réponses, les photos et les informations professionnelles. Gérez votre page GBP depuis l'intérieur de _OpsIQ. Répondez aux avis, publiez des publications et suivez les statistiques.
visualHtml
Rapports automatisés SEO et analytiques générés sur votre horaire (quotidiennement, hebdomadairement, mensuellement). Les rapports comprennent les changements de classement, les tendances du trafic, les problèmes techniques trouvés, et la performance du contenu.
Support alimenté par l'IA
Chat IA client
L'IA répond aux questions des clients sur votre site Web 24/7 Grâce à votre base de connaissances, aux données de la plateforme connectée (commandes, comptes, abonnements) et aux invites de formation personnalisées.Anthropic), GPT-4o (OpenAI), Gemini (Google), et Grok (xAI).
Assistante d'IA
Un copilote d'IA dans votre panneau d'administration qui vous aide à rédiger des réponses aux tickets, à rédigez les communications clients, à analyser les tendances de support, à rechercher les données client sur toutes les plateformes connectées et à exécuter des actions via le système de connecteur.
Ancrage des connaissances en IA
L'IA est ancrée dans vos articles de base de connaissances, les entrées FAQ, la documentation du produit et les données de plate-forme connectées. Il ne hallucine pas. Il répond à partir de vos informations commerciales réelles ou s'aggrave quand incertain.
Auto-handoff aux humains
Lorsque l’IA ne parvient pas à résoudre une question, détecte un problème ou que le client demande la présence d’un humain, elle passe automatiquement le relais à votre équipe avec le contexte complet de la conversation.
Invites de formation à l'IA
Écrivez des invites d'instructions distinctes pour l'IA destinée aux clients et celle destinée à l'administrateur. Contrôlez le ton, les limites, les règles d’escalade, les sujets interdits et le comportement spécifique de l'entreprise.
Historique et audit de l’IA
Chaque conversation d'IA est enregistrée avec tous les détails de la demande/réponse, l'utilisation du jeton, le suivi des coûts, le fournisseur utilisé et la version du modèle.
Insights sur l'IA
Consultez les questions courantes, les taux de résolution, la fréquence des remises, la satisfaction client par sujet et les domaines dans lesquels l'IA a besoin d'une meilleure formation.
Configuration de l'IA par espace de travail
Chaque site/espace de travail connecté peut utiliser son propre fournisseur d’IA, modèle, température, budget de token et invites de formation. Une entreprise SaaS peut utiliser Claude pour le produit principal et GPT-4o pour une marque secondaire.
Gestion de l'IA et BYOK
Deux modes d'IA : Gestion de l'IA (inclus dans votre plan, non API clé nécessaire) ou Apportez votre propre clé (utilisez la vôtre OpenAI/Anthropic/Google/xAI API Les deux sont de première classe, chaque fonction fonctionne avec l'un ou l'autre mode.
Budgets et contrôle des coûts pour les tokens d’IA
Définissez des budgets de token mensuels, des limites par conversation et des alertes en cas de solde faible. Suivez les dépenses par fournisseur, par espace de travail et par conversation.
Tickets et helpdesk
Système de tickets natif
Un service d'assistance complet avec les départements, les priorités (faible/moyen/élevé/urgent), les statuts, le suivi des SLA, les notes internes, la réponse du client, les pièces jointes et les conversations en fil.
Triage et réponse automatique par IA
L'IA trie automatiquement les tickets entrants par département et priorité. Activez la réponse automatique pour des départements sûrs. L'AI rédige et envoie une réponse après un délai configurable (par défaut : 2 minutes) afin que les humains puissent intervenir en premier.
Ingestion d'email
Connectez une boîte aux lettres (Gmail, IMAP ou spécifique à un fournisseur) pour créer automatiquement des tickets à partir d’e-mails entrants.
Intégration du portail des billets
Intégrez un portail de billets orienté client sur votre site Web. Les clients peuvent soumettre des billets, afficher leur historique, répondre à des tickets ouverts et vérifier l'état, tous marqués à votre conception.
Fusion de tickets
Fusionnez les tickets en double dans un seul fil de discussion. Les tickets fusionnés affichent [Fusionné] sur la ligne d’objet, et l’historique des conversations est conservé dans le ticket qui restera.
Retour à AI
Une fois qu'un agent humain a pris en charge un ticket, utilisez « Retour à l'IA » pour laisser l'AI reprendre la réponse automatique sur ce ticket. Utile lorsque la partie humaine est résolue mais que le client a des questions de suivi que l'intelligence artificielle peut gérer.
Boîte de réception copilote
Le copilote suggère des réponses, résume l’historique de conversation, recommande les affectations par priorité/service et peut exécuter des actions sur les plateformes connectées.
Chat et support en temps réel
Boîte de réception du chat
Chat client en temps réel géré à partir d'une boîte de réception unifiée. Voir toutes les conversations actives, l'identité du client, l’historique des conversations et les suggestions d'IA. Plusieurs agents peuvent collaborer sur une conversation.
Règles de chat proactives
Déclencher des messages de chat en fonction du comportement du visiteur: temps sur la page, spécifique URL Exemple: afficher un message d'aide après 10 visites, profondeur de défilement, nombre de retours, intention de sortie ou événements personnalisés. 60 Cliquez ici pour accéder à la page des prix.
Widget de chat
Un widget de chat personnalisable intégré à votre site Web. Prend en charge le chat IA, le chat d'agent en direct, la soumission de tickets, la recherche dans la base de connaissances et l'identité du visiteur.
Enquêtes CSAT
Collectez les notes de satisfaction des clients après les interactions via le chat et les tickets. Concevez des sondages avec vos propres questions, échelles d’évaluation et invites de suivi, puis intégrez les résultats dans la performance de l’équipe et les informations issues de l'IA.
Sondage par e-mail post-chat
Après la fin d'un chat, les visiteurs ayant un e-mail connu peuvent recevoir un message personnalisé avec un résumé de l'IA de ce qui a été traité et un clic sur « Est-ce que c'était facile? » Oui/Non. Une fois par fil, des liens à usage unique signés, chaque envoi enregistré et le résultat se trouve sur la page Feedback comme son propre signal à côté des étoiles dans le chat.
Boucle d'identité de retour
Chaque élément de retour d'information qui transporte une personne lui montre: nom, e-mail, un clic vers son parcours client complet et le contact CRM, ainsi que des réponses en un clic par e-Mail ou AI basées sur leur historique réel.
Écrire une IA
Utilise sa propre invite (et non le cerveau du chat) pour la rédaction professionnelle d'e-mails, de réponses aux tickets, d'annonces et de communications avec les clients.
CRM axé sur l’IA
Centre de Commande CRM
Un seul écran affiche l’état complet de votre CRM : la valeur du pipeline, la vitesse des transactions, les tâches à venir, les transactions à risque, l’activité des agents et les recommandations d’IA.
Contacts et entreprises
Gérez les contacts clients avec des profils complets : nom, adresse e-mail, téléphone, société, balises, étape du cycle de vie, historique des conversations, historiques des tickets, historiqus des achats et champs personnalisés. Liez les contacts aux entreprises pour la gestion des relations B2B.
Conseil des transactions et du pipeline
Tableau de transactions visuel de style Kanban avec étapes personnalisables. Faites glisser les offres entre les étapes, définissez des valeurs, assignez des propriétaires, suivez les dates de clôture et consultez la valeur du pipeline à chaque étape.
Entraînement AI
L’IA analyse chaque transaction et fournit un coaching: signaux de risque (départ silencieux, concurrents mentionnés, préoccupations budgétaires), recommandations sur la meilleure action à suivre, probabilité de gagner et calendrier de suivi suggéré.
Prévisions et rapports
Les rapports incluent le pipeline par étape, par propriétaire, par source, les taux de conversion, la taille moyenne des transactions et la durée du cycle de vente.
Agent de prospection (DTS)
La prospection basée sur l'IA identifie les clients potentiels à partir des données de vos visiteurs, des signaux de lead et de l'activité de la plateforme connectée.
Séquences de suivi
Séquences de suivi automatisées en plusieurs étapes: envoyer un e-mail, attendre, envoyer, vérifier la réponse, Définissez des séquences pour les nouveaux prospects, les affaires bloquées, les contrôles post-achat et les campagnes de réengagement.
Cycle de vie et rétention
Suivez les étapes du cycle de vie des clients (lead, prospect, client, churned) avec des transitions automatisées. L'agent de rétention surveille les signaux de churn et suggère des interventions.
Agent de gestionnaire des données
Agent d'IA qui nettoie et enrichit continuellement vos données CRM: déduplique les contacts, remplit les champs manquants, valide les e-mails, standardise les noms des entreprises et signale les enregistrements obsolètes.
Construire mon CRM
Configuration CRM en langage naturel : indiquez à l’IA à quoi ressemble votre processus de vente et il crée vos étapes du pipeline, des champs personnalisés, des modèles d’affaires et des règles d'automatisation.
Vérification de la santé CRM
Audit automatisé de la qualité des données CRM : contacts en double, offres sans étapes suivantes, pipelines obsolètes, informations de contact manquantes et notation de l’exhaustivité des données.
Dial de confiance
Contrôle de l’autonomie à trois niveaux pour chaque agent d’IA CRM : Pilote automatique (l’IA agit indépendamment), Copilote (l'IA suggère, l’humain approuve) et Manuel (l‘IA observe uniquement). Définissez le cadran par agent, par type d’action et par seuil de valeur de transaction.
Quatre agents d'IA
Le CRM exécute quatre agents d’IA spécialisés : Steward (qualité des données), SDR (prospection), Retention (prévention du décrochage) et Analyst (rapports et informations). Chaque agent a son propre paramètre de numérotation fiable.
Connecteurs et intégrations
Connecteurs pré-construits
Connecteurs prêts à l'emploiShopify, WooCommerce, BigCommerce, Magento2, PrestaShop, OpenCart, osCommerce,WordPress, WHMCS, Zendesk, Stripe, Amazon SES, Postmark, Renvoyer, SendGrid, Mailgun,Gmail, IMAP, Slack, et Google Business Profile . Chaque connecteur apporte des actions d'IA spécifiques à la plate-forme, connaissances, et de la synchronisation des données.
Constructeur de connecteurs
Construisez des connecteurs personnalisés pour n'importe quelle plate-forme, aucun code, AI assisté ou code complet. Le constructeur supporte REST et GraphQLAPIs, OAuthflux de code d'autorisation, enregistrement automatique webhook avecStripeet des schémas de signature simples, pagination (offset, page, curseur et link-header), transformation de la liste/erreur, contexte multi-action et emballage du marché.
Création de connecteur assistée par IA
ConnectorBuilderAI vous aide à créer des connecteurs : décrivez ce que vous voulez et il suggère des actions, écrit les gestionnaires de requêtes et mappe les réponses API. Gère l'authentification, la pagination et le traitement des erreurs automatiquement.
OAuth flux pour n'importe quel connecteur
In-app générique OAuth Prise en charge de PKCE, gestion d'état à l'échelle du site, actualisation automatique des jetons. Les connecteurs définissent leurs propres OAuth paramètres et OpsIQ Il gère le flux.
Bus de capacité (extension à l'échelle de la plate-forme)
Les connecteurs n'ajoutent pas simplement des actions de plate-forme. Ils peuvent alimenter les fonctions centrales par des "bus" de capacité. Un connecteur déclare une capacité (calendrier, enrichissement, esign dans CRM; local_listing, range_data dans Site Intelligence; web_analytics dans Analytical; payment_provider dans Payments; email_sync dans Mailbox; video_meeting dans comms) et implémente son petit ensemble de méthodes; OpsIQ le découvre via CapacityRegistry et le télécharge dans l'interface utilisateur, le client 360 Plusieurs connecteurs peuvent offrir la même capacité sans verrouillage. Voir les connecteurs/PLATFORM_CONNECTORS.md.
Pré-installé vs Marketplace
Les connecteurs préinstallés (connecteurs/) sont actifs dans le registre hors de la boîte, maintenus à l'écart de la référence sans clé et du fournisseur le plus utilisé par capacité (par exemple Google Calendar, Gmail, Google Business Profile). Les connecteur de marché (marketplace_connectors/) peuvent être découverts mais inertes jusqu'à leur installation, p. ex. Microsoft 365 Calend, Outlook, DocuSign, Stripe, GA4, SerpApi, Zoom. Chaque pont surmonte une liste de marché afin que l'interface utilisateur et l'IA puissent « installer depuis le marché » (notifier-à-installer) lorsqu'une capacité n'a pas de fournisseur prêt, jamais un bouton cassé.
Marché des connecteurs
Publiez vos connecteurs sur le. OpsIQ Connecteurs de paquet avec le profil.json, la connaissance.json, workflow_recipes.json Marketplace prend en charge les connecteurs gratuits et payants avec facturation multi-source.
Signature de connecteur
Tous les connecteurs sont signés cryptographiquement pour vérifier leur intégrité. La signature est vérifiée au moment de l'installation, et vous pouvez utiliser l'outil resign_all_connectors pour resigner après les mises à jour.
SmartLookup
Système déclaratif de correspondance floue pour les actions du connecteur. OpsIQ Exemple : find_country("germ") fait correspondre l'Allemagne à, la France avec, le Royaume-Uni avec. 88.9% Confiance.
Contrats d'action
Le général OpsIQ API Publications 1,312 Les packages de connecteur déclarent leurs propres actions fournisseur avec des paramètres tapés, des exigences d'authentification, des règles de pagination et des transformations de réponse via l'ActionExecutor unifié.
Recettes de connecteur
Des recettes de workflow prédéfinies qui combinent plusieurs actions de connecteur en flux de travail métier communs. Exemple : « Lorsqu'une nouvelle commande arrive sur Shopify, créez un ticket, mettez à jour le CRM et envoyez une notification Slack.»
Synchronisation des connaissances
Les articles d'aide spécifiques à la plateforme, les guides de configuration et les étapes de dépannage sont automatiquement disponibles pour l'IA sans saisie manuelle des connaissances.
Plateforme de développement
API REST
A named JSON API Couvre tous les administrateurs enregistrés JSON fonctionnement, avecAPI-authentification par clé, isolation de l'espace de travail, étendues, limitation du débit, écritures idempotentes, OpenAPI et une collection Postman générée.
Webhooks
Webhooks sortants pour tous les événements majeurs: commandes, factures, abonnements, tickets, chats, leads, inscriptions d'utilisateurs et abandon de panier. Livraison asynchrone via la file d'attente des tâches, réessai exponentiel, protection SSRF et désactivation automatique après 15 échecs consécutifs.
Signature de webhook
Chaque webhook sortant est signé avec HMAC-SHA256. Vérifiez les signatures sur votre fin de réception pour assurer l'authenticité du webhake.
Widget SDK
JavaScript SDK Installez des recettes pour React, Vue, Next.js, jQuery et JavaScript pour le widget de suivi avec résolution d'identité, suivi personnalisé des événements, contrôle par programmation du chat et configuration spécifique à la page. WordPress, Shopify, et statique HTML.
Plugins et SDK
SDK côté serveur et plugins pour des cadres communs.WordPressplugin,WHMCSmodule, et bibliothèques d'intégration génériques PHP/Node.js.
Événements API
Poussez des événements personnalisés dans OpsIQ depuis votre backend: achats, inscriptions, utilisation de fonctionnalités, erreurs ou tout autre évéement commercial. Les évélements apparaissent dans la timeline du visiteur et sont alimentés dans le contexte analytique et d'IA.
Livre de cuisine pour les triggers
Créez des workflows automatisés déclenchés par des événements (nouveau ticket, chat lancé, visiteur identifié, changement de stade d'une transaction ou évéement personnalisé) qui exécutent des actions de connecteur, envoient des webhooks, mettent à jour les enregistrements ou notifient votre équipe.
API constructeur
Visual API Configurez les points de terminaison, testez les requêtes, inspectez les réponses et déboguez les intégrations sans quitter l'interface d'administration. OpsIQ.
Équipe et administration
Contrôle d'accès basé sur les rôles
Trois rôles: Propriétaire (accès complet, facturation, zone de danger), Administrateur complet (toutes les opérations sauf la facturation et la zone de risque) et Agent (seulement les services affectés, pas d'accès aux paramètres).
Tableau de bord des performances d'équipe
Le propriétaire et le tableau de bord Full Admin seulement montrant les temps de résolution, la répartition de la charge de travail, profondeur de la poignée, ventilation des canaux, analyse des tendances,SLAconformité,CSATpar agent, les tarifs de réouverture, les roulements d'équipe, et les heures les plus occupées.
Présence et suivi en ligne de l'administrateur
Widget qui-est-en ligne en temps réel dans la navigation de l'administrateur.60-second ping, 300-second extend, auto-prune après 120 Voir quels administrateurs sont actuellement actifs et sur quelles pages.
Paramètres par espace de travail
Chaque site connecté (espace de travail) peut avoir sa propre configuration d’IA, ses paramètres de connecteur, ses services de tickets, son image de marque et ses règles opérationnelles.
Gestion de plusieurs sites
Gérez plusieurs sites Web à partir d'un seul administrateur OpsIQ. Chaque site a son propre extrait de suivi, ses données de visiteur et sa configuration.
Système de modèles d'email
Modèles d'e-mail basés sur le registre pour toutes les communications automatisées: notifications de tickets, transcriptions de chat, e-mails de bienvenue, réinitialisation du mot de passe et alertes système. HTML Modèles avec prévisualisation en direct, puces variables ({{customer_name}}, {{ticket_id}}), et le contrôle global de la mise en page.
Importation et exportation
Importez des contacts, des tickets et des articles de connaissances à partir de CSV/JSON. Exportez les données des visiteurs, les rapports d'analyse et les enregistrements CRM.
Sécurité, conformité et opérations
Entreprise SSO
OIDC (OpenID Connect) authentification unique avec runtime complet: découverte, autorisation, rappel, vérification de signature JWKS, userinfo, liste d'autorisations du domaine, provisionnement JIT et gardes d'état. SAML Support de configuration.
GDPR et conformité des données
Gestion intégrée des demandes d'accès aux données (DSAR) : exportez et supprimez les données clients dans tous les systèmes. Effacement des données au niveau du contact, y compris les sessions, les tickets, les chats, le CRM et les journaux de messagerie.
IP blocage et protection contre la force brute
Bloc spécifique IPs Le verrouillage automatique après des tentatives de connexion échouées configurables. Log d'échec de connexions avec IP, horodatage et agent utilisateur.
HSTS et en-têtes de sécurité
Les déploiements auto-hébergés peuvent ajouter des en-têtes CSP via la configuration du serveur. The self-hosted deployments can add CSP headers through server configuration.
Hardening de webhook sortant
SSRF guard bloque les webhooks vers private/metadata IP La livraison asynchrone empêche les points de terminaison lents de bloquer votre application. 15 Les défaillances consécutives empêchent le gaspillage de ressources sur les points finaux morts.
Isolation de l'espace de travail
Les visiteurs, les tickets, les chats, les enregistrements CRM et les conversations d’IA sont intégrés à leur espace de travail. Les fuites de données entre les espaces de travail sont empêchées au niveau des requêtes.
Gestion du cycle de facturation
Prise en charge des cycles de facturation mensuel, trimestriel, semestriel, annuel, biennal et à vie. Normalisation des devises pour les passerelles multi-devises Conversion de devises sur réception du paiement pour un reporting précis des revenus.
Cron et automatisation planifiée
Système cron intégré pour les tâches planifiées: génération de rapports, nettoyage des données, renouvellement d'abonnements, mises à jour de formation AI, synchronisations de connecteurs et retentations de webhook.
Politiques de conservation des données
Configurez la durée de conservation des sessions de visiteur, des transcriptions de chat, de l'historique des conversations d'IA et des journaux d'événements. Nettoyage automatique des données obsolètes pour gérer le stockage et se conformer aux politiques de rétention.
Diagnostic et santé
Tableau de bord d'intégrité du système affichant l'état cron, la connectivité à la base de données, le statut du fournisseur d'IA, l'intégralité du connecteur, les taux de livraison des webhook et l'utilisation du stockage.
À qui OpsIQ est destiné
Magasins de commerce électronique
Magasins
Suivez chaque visiteur de l'atterrissage à l'acquisition. Laissez l'IA répondre « Où est ma commande? » en utilisant des données Shopify/WooCommerce/BigCommerce en temps réel. Gérez les tickets d'assistance avec la réponse automatique AI. Exécutez un pipeline d'affaires pour les prospects grossistes et B2B. Attribuez le chiffre d'activité aux sources de trafic et aux campagnes.
Entreprises de SaaS et logiciels
SaaS
Suivez les pages de documentation qui sont converties. Automatisez l'assistance grâce à une IA ancrée dans votre environnement API Gérez les revenus des abonnements et les offres d'expansion dans le CRM. Connectez votre plateforme de facturation (Stripe, WHMCS Utilisez l'agent de cycle de vie CRM pour détecter et prévenir le churn (départ des clients).
Agences et indépendants
Agence
Offrez des portails d'analyse et de soutien en marque blanche aux clients. Suivez les pistes sur plusieurs sites clients à partir d'un seul administrateur.CRMConstruisez des connecteurs personnalisés pour les plates-formes clientes à l'aide du Connector Builder. Générez une marqueSEOrapports avec le site Intelligence. revendre des connecteurs de marché comme services à valeur ajoutée.
Hébergement et infrastructure
Hébergement
Deep WHMCS Intégration avec 80+ Actions d'IA pour la recherche de commande, gestion des services, DNS Répondez automatiquement aux questions d'hébergement courantes à l'aide des articles de la base de connaissances. Suivez l'engagement de la page d'état du serveur. Gérez les tickets d'assistance technique avec le triage par IA. Utilisez l'échelle de cycle de facturation pour les plans d'hôte mensuels et à vie.
Entreprises à forte intensité de soutien
Appui
Deflect 40-70% of repetitive questions with AI chat grounded in your knowledge base. Route tickets to the right department with AI triage. Track team performance with resolution times, SLA compliance, and CSAT by agent. Use the writing AI for professional reply drafting. Monitor support trends with AI insights.
Équipes marketing et SEO
Commercialisation
Suite complète de Site Intelligence: crawls, audits SEO techniques, analyse de contenu, suivi du classement SERP, recherche de mots-clés, surveillance des backlinks et grille SEO locale. Gestion du profil Google Business. Rapports en marque blanche planifiés pour les clients. Test A/B intégré au widget de suivi.
Fondateurs en solo et petites équipes
Démarrages
Commencez par simplement suivre et discuter, libre d'ajouter. Puis ajoutez des tickets lorsque vous obtenez du volume de support. Activez le CRM lorsque vous commencez à vendre. Connectez les plateformes que vous adoptez. OpsIQ d'une personne faisant tout à une 50- une équipe d'opérations avec le CCRA, les ministères et le suivi des performances par agent.
Entreprise et multi-marques
Entreprise
EntrepriseSSOavecOIDCpour l'authentification centralisée. Isolement multi-espace de travail pour des marques ou divisions distinctes. Configuration AI par espace de travail avec différents fournisseurs et modèles. Développement de connecteurs personnalisés avec distribution sur le marché.GDPRles outils de conformité et les politiques de conservation des données.
Ce que OpsIQ remplace
Google Analytics + Hotjar et Plausible
Analyse complète du site Web avec suivi des visiteurs, replay de session, classements de pages, géo-intelligence, entonnoirs d'intention, attribution de conversion, événements, expériences A/B, et suivi des erreurs JS, tout est respectueux de la vie privée, le tout dans une seule plateforme.
Interphone + dérive + Tidio
Chat client basé sur l'IA avec ancrage des connaissances, prise en charge de l'intelligence artificielle multi-fournisseurs, transfert automatique aux humains, règles de chat proactives, historique des conversations, sondages CSAT et création de tickets à partir du chat.
Zendesk + Freshdesk et Help Scout
Système de tickets natif avec départements, priorités, SLA, triage par IA, réponse automatique avec délai configurable, ingestion d'e-mails, incorporation de ticket, fusion de ticket et fonctionnalité Return to AI.
HubSpot + Pipedrive + Salesforce
CRM d'abord AI avec quatre agents spécialisés en IA (Steward, SDR, Retention, Analyst), contrôle de l'autonomie Trust Dial, tableau de pipeline, coaching des affaires, prévisions, séquences, gestion du cycle de vie et configuration CRM en langage naturel.
Ahrefs + SEMrush + Moz
Site Intelligence avec des crawls automatisés, des audits SEO techniques, une analyse de contenu, une recherche AI, un suivi du classement SERP, une étude de mots-clés, une analysis de backlinks, une grille SEO locale et des rapports en marque blanche planifiés.
Zapier + Make + middleware personnalisé
Connecteur SDK with 25+ connecteurs prédéfinis, Connector Builder (sans code/AI-assistée/code complet), OAuth Flux, enregistrement automatique de webhook, un vaste catalogue de définitions d'actions de connecteur qui ne deviennent exécutables que lorsque le connecteur concerné est installé, activé, configuré et validé, SmartLookup, marketplace et packages signés.
Gestionnaire de profils Google Business
Connecteur GBP complet: gestion de l'examen, publication post-édition, gestion des questions et réponses, téléchargements de photos, synchronisation d'informations commerciales, suivi des informations et réponses d'examen alimentées par l'IA, toutes depuis l'intérieur OpsIQ.
Outils de modèles d'email séparés
Modèles d'e-mails basés sur le registre avec éditeur visuel, aperçu en direct, puces variables, contrôle de la mise en page globale et personnalisation par événement pour toutes les communications automatisées.
Tableaux de bord de gestion d'équipe
Performances d'équipe intégrées: temps de résolution, charge de travail, conformité aux SLA, CSAT par agent, taux de réouverture, heures les plus occupées, suivi des présences en temps réel et ventilation par service.
GDPR outils de conformité
Gestion native DSAR, effacement des données dans tous les systèmes, gestion du consentement, politiques de conservation et pistes de vérification, intégrées à la plate-forme, non verrouillées.
Deux éditions
Déploiement hébergé
OpsIQ L'exploitation du produit est la même ; l'infrastructure, les mises à jour et les sauvegardes sont prises en charge par l'opérateur d'hébergement. Ce manuel documente le fonctionnement de OpsIQ Exécution plutôt que les flux de comptes marketing ou commerciaux.
Module auto-hébergé
Installer OpsIQ Installez le logiciel sur votre propre serveur pour un contrôle total des données, de la marque, des mises à jour et des intégrations. 8.4+, MySQL 5.7+ ou MariaDB 10.3+, HTTPS et le OpsIQ Unified cron. Supports WHMCS Intégration en tant que module complémentaire. Souveraineté totale sur les données.
Ordre de lecture recommandé
1
Démarrage rapide
Suivez le guide de configuration en 30 minutes pour faire fonctionner le suivi, le chat et l'IA basique sur votre site Web.
2
Tableau de bord et analyses
Apprenez à lire les données de vos visiteurs, configurer la lecture des sessions, identifier les prospects et comprendre les schémas de trafic.
3
Intelligence du site
Exécutez votre premier crawl SEO, vérifiez votre santé technique et configurez le suivi du classement SERP pour vos mots-clés cibles.
4
Tickets et support
Configurez les départements, configurez la réponse automatique avec l'IA, connectez l'ingestion d'e-mail et entraînez votre IA à gérer les questions courantes.
5
CRM
Organisez vos contacts, créez votre pipeline, configurez les agents d'IA, définissez des niveaux de Trust Dial et laissez l'IA coacher vos offres.
6
Connecteurs et outils de développement
Connectez votre plateforme de commerce électronique/facturation, créez des connecteurs personnalisés, configurez des webhooks et intégrez-vous via le REST API.
💡
New to OpsIQ? Commencez avec le guide de démarrage rapide ci-dessous. Vous pouvez avoir un suivi et une conversation IA basique en cours d'exécution sous 30 15 minutes.
Commencez ici
Démarrage rapide en 30 minutes
Suivez ces étapes pour mettre OpsIQ en marche. Chaque étape s'appuie sur la précédente, et à la fin vous aurez le suivi des visiteurs, un chat AI et une assistance de base pour les tickets.
ÉtapesLe chemin de 30-minute: installer le widget, connecter une plateforme, entraîner votre IA, inviter l’équipe, puis aller en ligne.
La configuration 30-minute
1
Activer votre licence
Entrez votre clé de licence dans l'administration du OpsIQ. Allez à Paramètres, entrez la clé fournie pour cette installation et cliquez sur Activer. Vous devriez voir un badge vert "Actif".
2
Définissez votre identité d'entreprise
Allez dans Paramètres et remplissez le nom de votre entreprise, l'industrie, le fuseau horaire, la devise par défaut et les heures d'assistance. Cette information est utilisée par l'IA pour répondre aux questions des clients et par les analyses pour les rapports tenant compte du fuseaux horaires.
3
Choisissez un fournisseur d’IA
Allez dans Configuration de l'IA et sélectionnez votre fournisseur. Options: Claude (Anthropic), GPT-4o (OpenAI), Gemini (Google), ou Grok (xAI). Entrez votre API Cliquez sur « Test de connexion » pour vérifier si vous utilisez votre propre clé, ou utiliser l'IA gérée si disponible dans votre forfait.
4
Installer le widget de suivi
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
Connectez votre plateforme
Si vous utilisez Shopify, WooCommerce, WHMCS, ou une autre plateforme prise en charge, accédez à Connecteurs, recherchez votre plateforme, entrez les informations d’identification et cliquez sur Connexion de test.Cela donne à l’IA un accès aux données des commandes, aux profils clients et au contexte du support.
6
Invitez votre équipe
Accédez à Équipe, cliquez sur Inviter, entrez leur adresse e-mail et leur rôle (Propriétaire, Administrateur complet ou Agent). Les agents peuvent uniquement accéder aux services auxquels vous les avez affectés.
Le chemin le plus rapide possible (5 minutes)
Étape 1: Installer le widget
Copiez l'extrait de code des sites connectés et collez-le sur votre site Web, ce qui vous permet d'effectuer le suivi immédiatement.
Étape 2: Activer l'IA
Allez dans Configuration de l'IA, choisissez un fournisseur, entrez votre clé et enregistrez. Le chat AI est maintenant actif sur votre site Web.
Fait
Vous pouvez ajouter des tickets, un CRM et des connecteurs plus tard, mais vous devez toujours utiliser le même nom d’utilisateur.
Jour 2: Rendre utile
Ajouter des connaissances
Accédez à la base de connaissances et ajoutez 5-10 L'IA utilise ces articles pour répondre aux questions les plus fréquentes des clients avec précision.
Créer des départements
Allez dans Tickets et créez au moins 2 départements (par exemple, « Ventes » et « Support ») et assignez des membres à chacun d'eux.
Écrivez votre AI prompt
Accédez à la formation sur l’IA et rédigez une invite d’IA client qui décrit votre entreprise, votre ton de voix et vos règles d’escalade.
Tester une conversation
Ouvrez votre site web dans un navigateur privé et discutez avec l’IA en tant que client, vérifiez que les réponses sont exactes et le ton est correct.
Semaine 1: Construisez vos opérations
Connecter l'email
Configurez une boîte aux lettres (Gmail, IMAP ou un connecteur de fournisseur) pour que les e-mails des clients créent automatiquement des tickets.
Configurer la réponse automatique
Définissez un délai de 2minutes afin que les humains puissent intervenir en premier.
Examen des analyses
Regardez le nombre de visiteurs, le taux de rebond, les pages principales et les ventes si le suivi est connecté.
Démarrez votre CRM
Ouvrez AI CRM et laissez OpsIQ importer les contacts de vos plateformes connectées.
Mois 1: Optimiser
Examiner l'historique de l'IA
Recherchez les mauvaises réponses, les questions manquées et les occasions d'ajouter des connaissances.
Ajouter des règles proactives
Créez une règle : si un visiteur est sur la page de tarification pendant plus de 60 secondes, affichez un message de chat lui demandant s'il a besoin d'aide.
Construisez un connecteur
Si vous utilisez une plateforme qui ne dispose pas d’un connecteur intégré, utilisez le Connector Builder pour en créer un.
Configurer des webhooks
Connectez OpsIQ à vos outils internes en utilisant des webhooks sortants pour les tickets, le chat et les événements de vente.
Puis-je ignorer l'IA et simplement utiliser le suivi ?+
Oui. Le fournisseur d'IA est optionnel. OpsIQ fonctionne comme une plateforme d'analytique et de billetterie pure sans IA. Vous pouvez activer l'IA plus tard lorsque vous êtes prêt.
Puis-je ignorer les connecteurs et les ajouter plus tard?+
Oui, les connecteurs enrichissent l’IA avec des données spécifiques à la plateforme, mais OpsIQ fonctionne sans eux. Commencez par le suivi et le chat, puis connectez les plateformes au besoin.
Que faire si je n'ai pas encore de site web?+
Vous pouvez toujours utiliser OpsIQ pour les tickets, le CRM et la collaboration d'équipe. Le widget de suivi est facultatif, ajoutez-le lorsque votre site Web sera prêt.
Comment savoir si le widget est installé correctement ?+
Visitez votre site Web dans un navigateur privé/incognito. Puis cochez OpsIQ Vous devriez voir votre visite apparaître dans les 24 heures. 15 Si ce n'est pas le cas, vérifiez: (1) est le fragment collé correctement, (2) si la clé du site est correcte, (3) sont des bloqueurs de publicité ou des en-têtes CSP bloquant le script.
Commencez ici
Carte complète des produits
OpsIQ n’est pas une fonctionnalité, c’est un administrateur d’opérateur, un widget de site web, une couche de support IA, un système de ticket/helpdesk, un CRM complet avec quatre agents AI, une suite Site Intelligence, une plateforme de connecteur avec marketplace et une surface de développeur. Voici tous les composants qu’il contient.
Opérateur admin
Tableau de bord, flux en direct, journal des visiteurs, sessions, replay de session, pages principales, géo-intelligence, entonnoir d'intention, journal d'événements, expériences A / B, suivi des erreurs JS, ventes et conversions, prospects, AI CRM (centre de commande, contacts, entreprises, offres, tableau de pipeline, coaching commercial, prévisions, prospection, séquences, cycle de vie, intendance des données, Construire mon CRM, configuration CRM, santé CRM, CRM API), tickets, boîte de réception du chat, règles proactives, sondages CSAT, brouillons e-mail, boîtiers électroniques, configurations IA, formation IA, historique IA, informations sur l'IA, base de connaissances, connecteurs, Connector Builder, marché, sites connectés, gestion d'équipe, performances de l'écurie, paramètres, diagnostics et licence.
Surfaces face au client
Widget de suivi du site Web (balise analytique + chat + intégration de ticket + recherche dans la base de connaissances), chat client AI, portail de soumission de tickets, gestion des jetons d'identité des visiteurs, téléchargement de fichiers, widget d'enquête CSAT et centre d'aide orienté vers le client.
CRM axé sur l’IA
Centre de commande, contacts, entreprises, offres, tableau de pipeline avec glisser-déposer, coaching d’offre AI (signaux de risque, meilleure action suivante, probabilité de gagner), prévision des revenus, agent de prospection (SDR), séquences de suivi automatisées, gestion du cycle de vie et de la rétention, agent délégué aux données (désurveillance, enrichissement, validation), Build my CRM (configuration en langage naturel), configuration CRM, vérification de l’état du CRM, Trust Dial (pilote automatique / copilote / manuel par agent), quatre agents spécialisés (Steward, SDR, Rétention, Analyste) et CRM API avec webhooks.
Suite Site Intelligence
Crawls de site automatisés, audit SEO technique (vitesse, mobile, Core Web Vitals, ) SSL, redirections, données structurées), audit de contenu (nombre de mots, lisibilité, densité des mots clés, structure du titre), recherche sémantique alimentée par l'IA, suivi du classement SERP sur tous les moteurs, recherche de mot-clé avec notation d'opportunité, analyse et surveillance des backlinks, visualisation de la grille SEO locale, synchronisation du profil Google Business (avis, publications, Q&R, photos, informations), rapports planifiés (quotidiens/hebdomadaires/mensuels) et marque blanche. PDF Output for agencies.
IA et automatisation
Client AI chat (multi-fournisseurs: Claude, GPT-4o, Gemini, Grok), assistant d'IA administratif, ancrage des connaissances en IA, transfert automatique avec rétablissement configurable, configuration de l'IA par espace de travail, gestion de l’IA et. BYOK Les modes, les budgets de jetons et les contrôles des coûts, la piste d'audit historique de l'IA, l'analyse des informations sur l'AI, le triage AI des tickets, la réponse automatique aux tickets avec retard, l’écriture IA (invite séparée) et le copilote de boîte de réception administrateur.
Connecteurs et intégrations
25+ connecteurs pré-construits (Shopify, WooCommerce, BigCommerce, Magento2, PrestaShop, OpenCart, osCommerce, WordPress, WHMCS, Zendesk, Stripe, Amazon SES, Postmark, Renvoyer, SendGrid, Mailgun, Gmail, IMAP, Slack, Google Business Profile), Connector Builder (sans code/AI-assisted/code complet), générique OAuth Flux de travail avec PKCE, marketplace de connecteurs avec distribution payante, signature et vérification des connecteurs, correspondance floue SmartLookup, un vaste catalogue de définitions d'actions HTTP dont la disponibilité dépend de l'installation du connecteur, activation, configuration et validation, synchronisation des connaissances et recettes de workflow.
Plateforme de développement
RESTAPI(visiteurs, événements, tickets, contacts, paramètres, connecteurs), OpenAPI spec,API Gestion des clés, webhooks sortants (asynchrones, signés, réessayés, protégés par SSRF, désactivation automatique), ÉvénementsAPI Pour l'ingestion d'événements personnalisés, widget SDKavec résolution d'identité, livre de recettes des déclencheurs, contrats d'action, connecteur SDK, packaging de marché, SDK côté serveur (PHP, Node.js), WordPress plugin, et WHMCS Module.
Paramètres et opérations
Identité d'entreprise, configuration de l'IA par espace de travail, paramètres de suivi, sécurité (HSTS, politique des autorisations, blocage IP, protection contre la force brute), RBAC (propriétaire / administrateur complet / agent), gestion et invitations d'équipe, tableau de bord de performances de l’équipes, suivi de la présence de l‘administrateur, système de modèles d’email (guidé par le registre, éditeur visuel, puces variables), concepteur d’enquêtes, connaissance du domaine, configurations d’intégration de tickets, marque, politiques de conservation des données, gestion du cycle de facturation (mensuel à vie), normalisation de devises, import/export, diagnostics, automatisation cron et zone dangereuse.
Sécurité et conformité
Enterprise SSO (OIDC avec vérification JWKS, provisionnement JIT), SAML configuration, GDPR/DSAR traitement (exportation et suppression dans tous les systèmes), effacement des données par contact, gestion du consentement, isolation de l'espace de travail (étendue stricte de la couche de requête), pistes d'audit, suivi des échecs de connexion, IP Blocage, webhook sortant SSRF guard et politiques de conservation des données.
Pont de fournisseur
Gestion de l'IA OpsIQ prestataire URL, appels de fournisseurs de renseignements sur le site, validation de licence, rapports de santé, PDF le rendu et les exportations de données, toutes acheminées à travers le paramètre du fournisseur configuré, pas le fournisseur direct API appels depuis votre serveur.
Chaque page d'administration
Tableau de bord
Nombre de base
Centre de commande quotidien: aperçu du trafic, compteur de visiteurs en direct, résumé des ventes, profondeur de la file d'attente d'assistance, alertes d'activité IA et raccourcis rapides.
Flux en direct
Analytique
Flux de visiteurs en temps réel : pages vues, démarrages de chat, soumissions de formulaires et signaux d'intention mis à jour toutes les quelques secondes avec des filtres par pays, appareil et référent.
Journal des visiteurs
Analytique
Enregistrements complets des visites: appareil, navigateur, système d'exploitation, pays, ville, référent, paramètres UTM, page de destination, identité et historique complet des pages vues.
Séances
Analytique
Vue groupée par parcours : flux de page, temps sur la page, profondeur de défilement, chemin de conversion et page de sortie pour chaque session du visiteur.
Relecture de session
Analytique
Lecture chronologique des événements capturés: mouvement de la souris, clics, défilements, transitions de page et interactions de formulaire pour le diagnostic d'UX.
Pages haut de page
Analytique
Classement des performances de la page: visites, temps d'engagement, taux de rebond, conversions, interactions avec le support et direction de la tendance.
Géo-intelligence
Analytique
Rapports géographiques: ventilation par pays/ville avec cartes, distribution des appareils, part de navigateur, sources de trafic et pénétration du marché.
Entonnoir d'intention
Analytique
Suivi de l’intention comportementale : prix des visites, fréquence de retour, navigation dans les documents, interactions avec le support et signaux personnalisés avec probabilité de conversion.
Journal des événements
Analytique
Historique des événements consultable: pages vues, évéements personnalisés, chats, achats, soumissions de formulaires avec métadonnées complètes et filtrage.
Expériences A/B
Analytique
Tests de division : créer des variantes, répartir le trafic, définir les objectifs, mesurer la signification et déclarer les gagnants, tous à partir de l'intérieur OpsIQ.
Erreurs de JS
Analytique
Capture d'erreurs frontales: messages, traces de pile, navigateurs affectés, fréquence, pages affectées et suivi des tendances.
Ventes
Ventes
Tableau de bord des revenus: commandes, renouvellements, remboursements, attribution par source, performances de la campagne, comparaison entre périodes et analyse des tendances.
Plombs
Ventes
Gestion des prospects : scoring, attribution de la source, statut CRM, coordonnées, signaux comportementaux et routage dans le pipeline.
CRM AI
CRM
CRM complet: centre de commande, contacts, entreprises, offres, conseil d'administration du pipeline, coaching, prévisions, prospection, séquences, cycle de vie, délégué aux données et santé.
Billets
Appui
Boîte de réception du support: départements, priorités, suivi des SLA, triage par IA, réponse automatique, notes internes, pièces jointes, fusion et gestion du statut.
Boîte de réception du chat
Appui
Conversations en direct : IA et chat humain, transfert, collaboration, historique des conversations, identité client et collecte de CSAT.
Brouillons d'e-mails
Appui
Gestion des e-mails: courrier entrant aux tickets, composition de réponse assistée par IA, sélection de modèle et configuration de boîte aux lettres.
Configuration de l'IA
IA
Configuration du fournisseur : sélectionnez Claude/GPT-4o/Gemini/Grok, entrez la clé API ou activez l’IA gérée, définissez le modèle, la température et les budgets de jetons par espace de travail.
Formation à l'IA
IA
Création d'invites : invites destinées aux clients et aux administrateurs, règles d'escalade, directives de ton, sujets interdits et configuration des limites.
Histoire de l'IA
IA
Audit de conversation : journaux complets des demandes/réponses, utilisation du jeton, coût par conversation, fournisseur, version du modèle et résultat de la résolution.
Insights sur l'IA
IA
Analyse des modèles : questions courantes, taux de résolution, fréquence de transmission, satisfaction par sujet et identification des lacunes en matière de formation.
Base de connaissances
IA
Contenu de formation sur l'IA: articles, entrées FAQ, documentation produit, connaissance des connecteurs et entrée personnalisée. Recherche sémantique et par mots-clés pour la mise à la terre de l'AI.
Connecteurs
Intégrations
Hub d’intégration : connecteurs installés, statut de santé, inventaire des actions, gestion des informations d’identification, navigateur du marché et Connector Builder.
Sites connectés
Paramètres
Gestion du site: extrait de suivi, clé de site, configuration de widget, paramètres de domaine et isolation de l'espace de travail par site.
Équipe
Paramètres
Gestion des utilisateurs : invitez les membres, attribuez des rôles (propriétaire/administrateur complet/agent), définissez l'accès du service et gérez les autorisations.
Performance de l'équipe
Paramètres
Mesure des opérations: temps de résolution, charge de travail, conformité aux SLA, CSAT par agent, taux de réouverture, heures d'affluence et analyse des tendances.
Paramètres
Paramètres
Configuration: identité d'entreprise, configuration de l'IA, suivi, sécurité, image de marque, rétention, modèles d'email, facturation, import/export, diagnostic et zone dangereuse.
Licence
Paramètres
Gestion des plans : statut de la licence, fonctionnalités du plan, indicateurs d'utilisation, date de renouvellement et options de mise à niveau/rétrogradation.
Commencez ici
Onboarding guidé
Le parcours d'intégration transforme une nouvelle installation en un espace de travail OpsIQ fonctionnel et peut être quitté et repris sans perte de progression.
Écran de produitOnboarding affiche chaque zone de configuration, son état actuel et la prochaine action à effectuer.
Séquence recommandée
Licence: Valider la licence et confirmer que l'espace de travail est actif.
Fournisseur d'IA: L’IA peut être ignorée si l’espace de travail n’utilisera initialement que les analyses et les tickets, mais vous pouvez également utiliser le modèle d’analyse pour créer des rapports.
Identité de l'entreprise: Définissez le nom, l'industrie, la description, le ton client et les détails de marque utilisés par le widget et l'IA.
Connecteur : Activer au moins une plateforme externe lorsque OpsIQ a besoin de commandes, clients, tickets, e-mails ou d'autres contextes de plateformes.
Site et widget: Créez le site/espace de travail, copiez la clé du site et vérifiez une visite en mode navigateur privé dans Live Feed.
Équipe et routage: Inviter des administrateurs/agents, créer des départements, définir le routage de courrier électronique et confirmer les préférences de notification.
Vérifications de mise en service: Testez le chat, un ticket, la synchronisation de connecteur, cron, e-mail sortant, webhooks et en-têtes de sécurité.
Le retour à l’intégration devrait afficher les étapes terminées plutôt que de forcer un redémarrage.
Commencez ici
Navigation et autorisations d'administrateur
La barre latérale OpsIQ tient compte des permissions. Ce plan explique où se trouve chaque domaine opérationnel et pourquoi une page peut ne pas être visible par tous les administrateurs.
Écran de produitLa barre latérale regroupe OpsIQ par zone de travail; les liens individuels n'apparaissent que lorsque le rôle actuel peut les utiliser.
Appui
Billets, plateforme de messagerie de l'équipe, CSAT, le Centre d'aide et les flux de chatbot.
CRM
Les surfaces de vente quotidiennes: CRM Home, Command Center, contacts, pipeline, prévision, cycle de vie, prospection, segments, classement, approbations de marchés, data steward, outils de croissance et le flux d'activité.
Automatisation
Workflows axés sur les événements, règles du cycle de vie et objectifs de conversion.
Commercialisation
Sensibilisation, messages proactifs, annonces, Studio de promotion, Studio d'enquête, campagnes de push et visites guidées.
Analytique
Les surfaces de rapport d'abord — Analytics Hub, AI perspicacités, ventes, clients, leads, entonnoirs, tests A/B, replay de session, tableaux de bord personnalisés et rapports programmés — avec les journaux de visiteurs, de sessions, de pages, de géographie et d'événements bruts dans une sous-section Données brutes.
Pages autonomes
Le renseignement, le rendement et la rétroaction des équipes sont des entrées directes à l'extérieur des groupes.
Intégrations
Connecteurs, actions et déclencheurs, boîtes aux lettres, brouillons, paramètres de messagerie, paramètres d'entrée, boutons de sortie et touches API.
Sécurité et confidentialité
Vue d'ensemble de la sécurité, confidentialité et conformité, consentement aux cookies, activité d'audit, connexion ratée, bloquéIPsetJavaScripterreurs.
Paramètres
Bases de l'espace de travail (général, équipe, sites, langues), puis sous-sections pliables : AI Brain (instructions, configuration, évaluation, histoire), CRM Setup (constructeur, champs personnalisés, score de plomb, santé), Data & Health (diagnostic, exportation) et Se mettre en route (à bord, aide).
Les pages qu'un rôle ne peut pas ouvrir sont cachées dans la barre latérale. Mise à jour tag et ouvrir un écran de mise à niveau dans l'application.
Cacher un lien dans une barre latérale n'est pas le seuil de sécurité : chaque action protégée doit passer ses vérifications d'autorisation et d'espace de travail.
Analytique
Hub d'analyse
Le hub Analytics rassemble les rapports sur le support, le chat, l'IA, les visiteurs et les agents dans un espace de travail filtré par date avec des résultats exportables.
Écran de produitLe Hub Analytics affiche une plage de dates, des cartes et onglets statistiques pour les performances du support, du chat, de l’IA, des visiteurs et des agents.
Filtres et contrôles
Utiliser un paramètre prédéfini ou personnalisé de/à Sélectionnez une plage, puis Actualiser pour reconstruire chaque carte et graphique pour la même période.
Exporter CSV exporte la vue analytique active plutôt qu’une capture d’écran.
La portée par espace de travail est automatique ; changer de site change le jeu de données sous-jacent.
Ce que chaque onglet mesure
Support : Tickets créés/fermés/en attente, première réponse, résolution, réduction au premier contact, SLA et ventilation par priorité/service/état.
Clavardage : sessions démarrées, résolutions d'IA, escalades, abandons, temps de traitement, messages par session et IA/humain/toutes les CSAT.
AI: Confiance moyenne, taux de confiance faible, précision du triage, rétroaction, déviation des connaissances, utilisation de jetons/cache et les éléments à examiner.
Visiteur: Les tendances du trafic et de l'engagement pour la période sélectionnée.
Agent : Mesure de la charge de travail, de la vitesse, des clôtures et de la satisfaction par agent.
Utilisez Analytics Hub pour l'examen inter-équipe; utilisez les pages dédiées Visiteurs, Tickets, CSAT, Historique de l'IA et Performance d'équipes lorsque vous avez besoin d'une enquête au niveau des enregistrements.
Analytique
Le tableau de bord
Le tableau de bord est votre centre de commande quotidien. Il affiche le trafic, les ventes, la charge d'assistance, l'activité d'IA et les indicateurs de conversion dans une vue unique. Ouvrez-le chaque matin pour comprendre ce qui s'est passé pendant la nuit et ce qui nécessite une attention aujourd'hui.
Tableau de bordL'écran Aperçu réel : OpsIQ Panneau d'intelligence vers le haut (pick une analyse et il l'écrit) au-dessus des widgets KPI que vous arrangez vous-même.
Cartes de tableau de bord expliquées
Visiteurs en direct
Le nombre de personnes sur votre site en ce moment. Cette fonction est mise à jour tous les 15 Un visiteur est "actif" s'il a chargé une page à l'intérieur du seuil d'activité (par défaut : 0). 90 20 secondes).
Nombre de visiteurs uniques
OpsIQ identifie les visiteurs par une combinaison d'empreintes digitales du navigateur, de cookies et (si disponible) d'une identité authentifiée.
Nouveau vs retour
Les nouveaux visiteurs voient votre site pour la première fois. Des visiteurs récurrents ont déjà été vus auparavant. Un taux de retour élevé signifie que votre contenu attire les gens à revenir.
Taux de rebond
Le pourcentage de visiteurs qui sont partis après avoir visionné une seule page. Un taux de rebond au-dessus 70% sur les pages d'atterrissage signifie généralement que la page ne répond pas aux attentes des visiteurs, à un contenu erroné, à une charge lente ou à une mauvaise expérience mobile.
Temps moyen sur la page
Durée moyenne de visite sur chaque page. Des temps très courts (moins de 10 secondes) sur les pages de contenu indiquent que le contenu n'est pas intéressant, tandis que des temps très longs sur les sites de paiement peuvent être un signe de confusion.
Menaces bloquées
IPadresses qui OpsIQ Les sites identifiés comme potentiellement malveillants en fonction du score de menace, des tentatives de force brute ou des blocages manuels. IPs Liste.
Ventes aujourd'hui / cette semaine / ce mois-ci
Chiffre d'affaires des sources de ventes connectées (Shopify, WooCommerce, Stripe, etc.). Si les ventes affichent zéro, vérifiez que votre connecteur de plateforme est connecté et en cours de synchronisation.
Graphique de tendance
Recherchez des tendances: pics de trafic (campagnes, mentions dans la presse), baisses (week-ends, jours fériés) et tendance soutenue. Recherche d'un modèle pour le nombre de visiteurs sur une période donnée.
Sources principales
D’où viennent vos visiteurs : direct, Google, réseaux sociaux, campagnes d’emailing, sites de parrainage… Utilisez ces informations pour comprendre quels canaux marketing fonctionnent.
Top des navigateurs
Si un navigateur affiche un taux de rebond anormalement élevé, vous avez peut-être une erreur dans le code du navigateur. CSS ou JavaScript Problème de compatibilité.
Carte thermique horaire
Une grille affichant l'activité des visiteurs par heure du jour et jour de la semaine. Utilisez-la pour décider quand planifier les quarts d'assistance, quand envoyer des annonces et quand exécuter des promotions.
Les visiteurs récents
Les derniers visiteurs avec pays, page, appareil et source. Utile pour des contrôles ponctuels rapides pendant les campagnes.
Utilisation du filtre de plage de dates
Cliquez sur le sélecteur de date en haut à droite du tableau de bord. Présets: Aujourd'hui, Hier, Dernier7jours, derniers30jours, ce mois, le mois dernier, plage personnalisée. Toutes les cartes et cartes de tableau de bord mettent à jour lorsque vous changez la plage. La plage de dates est dans votre fuseau horaire configuré (réglages).
Exemples de travaux
Enquête sur le taux de rebond
Scénario :
Your bounce rate jumped from 45% to 78% this week. What happened?
Que faire:
Vérifiez : (1) Une page de renvoi en particulier a-t-elle changé? Allez dans Top Pages et triez par taux de rebond. (2) Une campagne a-t-elle envoyé du trafic vers la mauvaise page? Vérifiez les principales sources pour de nouveaux référents. (3) Le site est-il cassé sur mobile? Vérifiez la panne du navigateur pour le taux de rebond mobile. (4Vérifiez le compteur de menaces et les détails des visiteurs pour détecter d'éventuels schémas suspects.
Zéro visiteur sur le tableau de bord
Scénario :
The dashboard shows 0 live visitors even though your website is getting traffic.
Que faire:
Vérifiez : (1) Le widget de suivi est-il installé? Consultez le code source de votre site web et recherchez OpsIQ script. (2) La clé du site est-elle correcte? Comparez la clé data-site dans le script avec celle de Sites connectés. (3) Un CDN ou un cache diffuse-t-il une page obsolète sans le script? Effacer votre cache CDN. (4) Un bloqueur de publicité ou un en-tête CSP bloque le script? Vérifiez la console du navigateur pour les requêtes bloquées.
Lecture de la carte thermique horaire
Scénario :
Your heatmap shows heavy activity between 10am-2pm on weekdays but nothing on weekends.
Que faire:
Il s'agit d'un modèle de trafic B2B. Vos visiteurs sont des professionnels qui naviguent pendant les heures ouvrables.1) Planifier le personnel de soutien pour les heures d'ouverture en semaine. (2) Envoyer des campagnes d'email mardi-jeudi matin. (3) Les fenêtres de maintenance du week-end sont sûres. (4Envisagez d’offrir le chat en direct uniquement pendant les heures de pointe.
Pic de trafic provenant d'une source inconnue
Scénario :
You see a sudden spike of 500 visitors in one hour from an unknown referrer.
Que faire:
Allez sur Visiteurs et filtrez par la fenêtre de temps.1) Sont-ils de vrais visiteurs ou des robots? Regardez la durée de session, les pages consultées et la diversité du navigateur. (2) Si réel, sur quelle page atterrissent-ils? (3) Vérifiez la référence URL. Quelqu'un pourrait vous avoir lié de Reddit, Hacker News ou un blog populaire. (4) Si c'est le trafic de bot, vérifier les menaces et envisager de bloquer la IP portée.
Pourquoi mon compte de visiteurs diffère-t-il de Google Analytics?+
OpsIQ Il utilise l'empreinte digitale du navigateur et les cookies, tandis que GA utilise un modèle de cookie différent. Le filtrage des bots, les taux de blocage d'annonces et l'ordre de chargement des scripts peuvent également entraîner des différences. 10-20% La variance est normale.
Puis-je intégrer le tableau de bord dans un autre outil?+
Le tableau de bord est conçu pour le. OpsIQ Pour les rapports externes, utilisez le REST API.API pour extraire des données analytiques et les afficher dans votre propre tableau de bord ou outil BI.
Que signifie le compteur de "menaces"?+
It counts IP adresses qui OpsIQ Cliquez sur le compteur pour afficher les détails et gérer les blocages.Click the counter to see details and manage blocks.
Analytique
Journal des visiteurs
Le journal des visiteurs affiche chaque visite de vos sites Web suivis, avec une ligne pour chaque page chargée par un visiteur. Utilisez-le pour étudier le comportement individuel des visiteur, trouver du trafic de campagne et diagnostiquer les problèmes de suivi.
Journal des visiteursLe journal des visiteurs réel : filtrez par date, recherche et périphérique, puis lisez chaque visite par IP/email, emplacement, source, appareil et heure, menaces signalées en rouge.
Ce que chaque ligne montre
IP adresse
Le visiteur IP Anonymisé si IP L'anonymisation est activée dans les paramètres. Cliquez pour voir toutes les visites de ce IP.
Pays et ville
Détecté à partir duIP Nécessite la base de données MaxMind GeoLite2 ou Cloudflare Affiche "Inconnu" si GeoIP n'est pas configuré.
PageURL
La page que le visiteur a chargée. Cliquez pour voir la fiche complète URL. Long URLs Les données sont tronquées dans la vue de tableau.
Référent
D'où le visiteur est venu avant d'atterrir sur votre site. "Direct" signifie pas de référent (signets, URLs tapé, certains liens vers des applications).
Appareil et navigateur
Le type d'appareil du visiteur (ordinateur de bureau, mobile, tablette) et le navigateur utilisé (Chrome, Safari, Firefox, etc.).
Date et heure
Lorsque la page a été chargée, dans votre fuseau horaire configuré.
Identité du client
Si le visiteur est identifié (via un jeton d'identité ou de connexion), son nom ou son adresse e-mail apparaît, sinon il s'affiche comme anonyme.
Filtres
plage de dates
Filtrer les visites sur une période spécifique. Par défaut: derniers 7 jours.
Recherche
Recherche par : IP adresse, page URL, référent, pays ou e-mail du client.
Source
Filtrer par source de trafic: Direct, Organique, Social, Référence, Payé, Email.
Appareil
Filtrez par ordinateur, mobile ou tablette.
Nouveau seulement
Affichez uniquement les visiteurs qui ne vous ont jamais vu auparavant.
Exemples de travaux
Trouver des visiteurs provenant d'une campagne spécifique
Scénario :
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?
Que faire:
Dans le journal des visiteurs, utilisez le champ de recherche et tapez « soldes d'été ».URLs et page URLs Vous pouvez également filtrer par Source = Payé pour affiner davantage les résultats.You can also filter by source = Paid to narrow down further.
Recherchez un client qui a signalé un problème
Scénario :
A customer emailed saying "your checkout page was broken yesterday around 3pm." How do you find their session?
Que faire:
Recherchez leur adresse e-mail dans le journal des visiteurs. S'ils étaient connectés, leur identité apparaîtra. Définissez la plage de dates sur hier. Rechercher les visites aux pages de paiement vers 15h. Cliquez sur leur session pour voir le flux complet de la page et toute erreur JavaScript.
Détecter un boucleur ou un grattoir
Scénario :
You notice an IP address has 500+ visits in one hour, all to the same page.
Que faire:
Il s'agit probablement d'un bot, un scraper ou un script endommagé.Allez dans le journal des visiteurs et recherchez par ce mot-clé:IP. Vérifiez: (1) Toutes les visites sont-elles sur la même page? (2) L'agent utilisateur est-il un bot connu? (3) Est-ce que la durée de session est toujours 0 Si vous êtes confirmé comme étant un bot, allez dans Sécurité et bloquez le.IP.
Journal des visiteurs vs Sessions vs Flux en direct
Journal des visiteurs
Idéal pour: enquêter sur des pages spécifiques, trouver du trafic provenant de sources spécifiques, diagnostiquer les problèmes de suivi.
Séances
Une ligne par session de visite. Idéal pour: comprendre le flux des utilisateurs, mesurer la durée de la session, identifier les chemins de conversion.
Flux en direct
Affiche les visiteurs actuellement sur votre site. Idéal pour: surveiller les campagnes en cours, repérer les visiteur à haute intention, observer les opportunités de support.
Pourquoi vois-je mes propres visites dans le journal?+
OpsIQ Pour exclure votre propre trafic, ajoutez vos références à la liste des visiteurs.IPAdresse aux exclus IPs Liste dans Paramètres > Suivi.
Pourquoi un visiteur affiche-t-il le pays "Inconnu"?+
La recherche GeoIP nécessite soit Cloudflare En-têtes géographiques (automatique si vous utilisez )Cloudflare) ou un fichier de base de données MaxMind GeoLite2.Vérifiez Paramètres > Chemin d'accès GeoIP pour vous assurer que le fichier de la base existe et est lisible.
Combien de temps les données des visiteurs sont-elles conservées?+
Les données des visiteurs sont conservées pendant la période de rétention configurée dans Paramètres (par défaut: 90 jours), après quoi les anciens enregistrements sont automatiquement nettoyés par le travail de réception cron.
Analytique
Séances
Les sessions regroupent plusieurs pages vues par la même personne en un seul parcours. Le journal des visiteurs affiche les chargements de page individuels, tandis que les sessions vous montrent comment les utilisateurs se déplacent sur votre site Web depuis l'atterrissage jusqu'à la sortie.
SéancesLe vrai journal de session : chaque visiteur voyage en ligne (IP, pays, appareil, source, durée et pages) avec des sessions risquées marquées en rouge.
Comment fonctionnent les sessions
Une session commence lorsqu'un visiteur charge sa première page. Elle se poursuit à mesure qu'il navigue vers d'autres pages. Une session prend fin lorsque le visiteur est inactif pendant la période de délai d'attente de la session (par défaut : 30 minutes) ou ferme son navigateur. La même personne qui revient après l'expiration du délai crée une nouvelle session.
Ce que chaque séance montre
Première page
La page d'accueil, où le visiteur a entré votre site. Cela vous indique quel contenu attire les gens.
Dernière page
La page de sortie, où le visiteur est parti. Si la page de départ est souvent la page des prix, les visiteurs pourraient vous comparer avec les concurrents.
Nombre de pages
Plus de pages signifie généralement plus d'engagement, mais cela peut aussi signifier que le visiteur est perdu.
Durée
Les sessions avec 0 secondes sont des rebonds (vue d'une seule page, aucune autre interaction).
Source
La source de trafic pour cette session (direct, Google, social, référence, etc.).
Pays
Pays détecté à partir de l'adresse IP du visiteur.
Bounce
Si le visiteur a quitté la page après avoir consulté une seule page.
Conversion
Si le visiteur a complété un événement de conversion suivi (achat, inscription, envoi d'un formulaire) au cours de cette session.
Filtres
Recherche
Recherche parIP, courriel, pageURL, ou référent dans les sessions.
Type
Filtrer par Nouveaux visiteurs (première session) ou Visiteurs de retour.
Source
Filtrer par source de trafic.
Pays
Filtrer par pays pour voir les sessions d'une région spécifique.
Menaces/Rebondissements
Filtre pour afficher uniquement les sessions rebondies ou signalées comme menaces.
Exemples de travaux
Profiler un client à forte valeur ajoutée
Scénario :
A customer just made a large purchase. You want to understand their journey before buying.
Que faire:
Recherchez leur email dans Sessions. Voir toutes leurs sessions : (1) Combien de fois ont-ils visité avant d'acheter? (2) Quelles pages ont-ils consulté? (3) Ont-ils utilisé le chat ou ouvert un ticket? (4) Quel a été le temps total entre la première visite et l'achat?Cela vous indique le parcours d'achet typique pour les clients à forte valeur ajoutée.
Détecter la connexion à partir d'un nouvel emplacement
Scénario :
A customer usually logs in from Nigeria but you see a session from Russia.
Que faire:
Recherchez l'e-mail du client dans Sessions. Comparez le pays des sessions récentes. Si une session apparaît soudainement à partir d'un pays inhabituel, il pourrait s'agir de voyages légitimes ou d'une violation du compte.1) Y a-t-il eu une tentative de connexion échouée avant la réussite? (2) A-t-il IP Signalez-le pour examen si vous pensez qu'il est suspect.
Quelle est la différence entre une session et un visiteur?+
Un visiteur est une personne (ou un navigateur). Une session correspond à une seule visite de cette personne. Le même visiteur peut avoir plusieurs sessions au fil du temps. Les sessions expirent après la période d'expiration.
Comment OpsIQ identifie-t-il les visiteurs récurrents?+
OpsIQ utilise une combinaison de cookies, d'empreintes digitales du navigateur et de jetons d'identité authentifiés. Si un visiteur efface ses cookies et n'est pas connecté, il apparaîtra comme un nouveau visiteur.
Analytique
Flux en direct
Le Live Feed affiche les visiteurs actuellement sur votre site en temps réel. Il est mis à jour automatiquement toutes les 15 secondes (configurable). Utilisez-le pendant les campagnes, les lancements de produits et les périodes d'assistance chargées pour voir ce qui se passe en ce moment.
Flux en directVoyez qui est sur votre site cette seconde et ce qu'ils font, rafraîchissant automatiquement toutes les 15 secondes.
Comment ça fonctionne
Le flux en direct interroge votre serveur à l'intervalle d'actualisation configuré. Chaque ligne affiche un visiteur actuellement sur votre site : sa page courante, son pays, son appareil, sa source, la durée de sa session et le nombre de pages.
Paramètres
Intervalle de rafraîchissement
Fréquence de mise à jour du flux en direct. Par défaut: 15 Les valeurs inférieures (5-10s) donnent des mises à jour plus rapides mais utilisent davantage de ressources du serveur.30-60s) sont plus faciles sur le serveur mais moins en temps réel.
Seuil actif
Durée pendant laquelle un visiteur est considéré comme "actif" après le chargement de sa dernière page. 90 Si un visiteur charge une page puis la lit pendant 10 secondes, il est automatiquement redirigé vers le site d'origine. 2 Si vous ne cliquez pas sur les vidéos pendant plus de 10 minutes, elles disparaissent du flux en direct après le seuil.
Bouton de pause
Cliquez sur Pause pour arrêter l'actualisation automatique. Utile lorsque vous souhaitez lire les détails sans que la liste soit mise à jour, cliquez sur Reprendre pour redémarrer.
Exemples de travaux
Repérez un lead chaud pendant une campagne
Scénario :
You are running a product launch. A visitor just viewed your homepage, then features, then pricing, and is now on the checkout page.
Que faire:
C'est un comportement de haute intention. Dans le flux en direct: (1) Cliquez sur le visiteur pour voir sa session. (2) S'ils démarrent un chat, l'IA aura le contexte complet de leur voyage. (3) S'ils quittent sans acheter, ils deviennent un lead dans la page Leads. (4Envisagez de créer une règle proactive pour afficher un message de chat lorsque les visiteurs atteignent la caisse.
Trop de visiteurs du même IP
Scénario :
You see 20 visitors from the same IP address, all on different pages.
Que faire:
Cela pourrait être: (1) Un bureau avec Internet partagé. Vérifiez si les visites ressemblent à de vrais humains (pages différentes, durées raisonnables de la session). (2Un bot ou un racleur. Vérifiez si les sessions sont très courtes (0-1ou frapper systématiquement les pages. (3) Un test de charge. Si vous effectuez des tests automatisés, exclure le IP de traquer.
Pourquoi le flux en direct montre-t-il les visiteurs 0 lorsque mon site a du trafic?+
Vérifiez : (1) Le script du widget est-il installé sur votre site? (2) La clé du site est-elle correcte? (3) Le seuil actif est-il dépassé? (4) Les visiteurs utilisent-ils des bloqueurs de publicité agressifs qui bloquent le script de suivi?
Puis-je filtrer le flux en direct par pays ou appareil?+
Le flux en direct affiche tous les visiteurs actifs. Pour des vues filtrées, utilisez la page Journal des visiteurs ou Sessions avec leurs options de filtrage. Le flux en live est intentionnellement simple pour le suivi en temps réel.
Analytique
Pages haut de page
Les pages les plus consultées indiquent quelles sont les pages de votre site Web qui reçoivent le plus de trafic, en fonction des visites, de l'engagement, des conversions et de l’activité d'assistance. Utilisez cette fonctionnalité pour identifier vos meilleurs contenus, trouver les pages peu performantes et découvrir celles qui génèrent des questions d'aide.
Pages haut de pageVos pages classées par trafic et engagement, afin que vous puissiez repérer le meilleur contenu et les pages qui génèrent du soutien.
Ce que chaque page montre
PageURL
Le plein URL Les pages similaires (par exemple, les variantes de produits) sont groupées si le regroupement est activé.
Vues
Nombre total de fois que cette page a été chargée dans la période sélectionnée.
Nombre de visiteurs uniques
Combien de personnes différentes ont consulté cette page (une personne qui consulte la même page deux fois est comptée comme 1 unique).
Taux de rebond
Pourcentage de visiteurs qui ont quitté votre site après avoir consulté cette page uniquement. Un taux élevé de rebond sur les pages d'accueil = problème, et un taux de rebondir élevé sur les « pages de remerciement » = normal.
Temps moyen
Combien de temps les visiteurs passent en moyenne sur cette page. Très court = pas de lecture, très long sur une page de formulaire = confusion.
Le chat commence
Si le chat commence sur une page de produit, cela signifie que la description du produit peut ne pas être claire.
Tickets de support
Nombre de tickets d’assistance créés par les visiteurs présents sur cette page. Un nombre élevé de tickets signale un problème potentiel d’ergonomie ou de contenu.
Exemples de travaux
Trouver des pages qui génèrent des questions d'assistance
Scénario :
Your support team keeps getting questions about shipping. Which page is failing?
Que faire:
Recherchez les pages de produits ou d'expédition qui affichent un nombre élevé. La page avec le plus grand nombre de questions relatives à l'assistance contient probablement des informations peu claires. Corrigez le contenu de la page et vérifiez si le nombre de ces questions diminue.
Repérer les pages à fort taux de sortie
Scénario :
You want to know where people leave your site most often.
Que faire:
Ignorez les pages qui sont naturellement des points de sortie (pages de remerciement, pages de confirmation). Concentrez-vous sur les pages destinées à retenir l’attention des visiteurs : pages produit, prix, fonctionnalités.
Pourquoi une page affiche-t-elle 0 vues alors que je sais qu'elle a du trafic?+
Vérifiez : (1) Le widget de suivi est-il installé sur cette page spécifique? Les applications à une seule page peuvent ne pas déclencher des pages vues lors de changements d'itinéraire.2) La page est-elle exclue dans les paramètres de suivi? (3Un CDN sert-il une version mise en cache sans le script de suivi?
Analytique
Géo-intelligence
La fonctionnalité Geo Intelligence vous permet de comprendre l'origine de vos visiteurs par pays, ville, appareil et source, ainsi que les marchés géographiques, de décider du support linguistique, de planifier le marketing régional et de détecter des schémas de trafic suspects.
GéoD'où viennent vos visiteurs (par pays, ville et appareil) à la taille des marchés et repérer le trafic inhabituel.
Ce que vous voyez
Top pays graphique à barres
Cliquez sur un pays pour afficher les données au niveau de la ville.
Beignet de pays
Répartition visuelle du trafic par pays. Passez le curseur pour les pourcentages.
Tableau complet des pays
Chaque pays ayant reçu des visiteurs au cours de la période sélectionnée, avec le nombre de visiteurs, le nombre d'ouvertures de session, le taux de rebond et le taix de conversion.
Déroulement vers le bas
Cliquez sur un pays pour voir les villes de ce pays qui ont le plus de visiteurs.
Comment fonctionne la détection GeoIP
OpsIQ détecte l'emplacement des visiteurs de deux façons: (1) Cloudflare en-têtes géo. Si votre site est derrière Cloudflare, la détection par pays est automatique et précise (2) Base de données MaxMind GeoLite2. Téléchargez la base de données gratuite et configurez le chemin dans Paramètres. La détection au niveau de la ville nécessite la base GeoLité2-City, pas seulement la base Country.
Trafic VPN et 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.
Exemples de travaux
Trafic de pays inattendu
Scénario :
You run a US-only business but 30% of traffic is from India.
Que faire:
Vérifiez : (1Regardez la durée de la session et les pages consultées. Des sessions très courtes avec un taux de rebond élevé = des bots probables.2) Est-ce qu'ils vous trouvent via Google? Vérifiez le référent. (3Si le trafic est authentique et engageant, envisagez d’ajouter des prix ou du contenu spécifiques à l’Inde.
Décider du soutien linguistique
Scénario :
You want to know if you should translate your site into Spanish.
Que faire:
Si les pays hispanophones (Espagne, Mexique, Colombie, Argentine, etc.) représentent ensemble plus de 10% de votre trafic avec des taux de rebond faibles, la traduction vaut la peine d'être envisagée. Vérifiez également: les visiteurs de ces pays convertissent-ils à des taUX similaires à ceux de votre marché principal?
Planification des quarts de travail du soutien régional
Scénario :
You need to decide support team hours for different time zones.
Que faire:
Utilisez la carte thermique horaire (dans le tableau de bord) combinée avec Geo Intelligence. 40% La majeure partie de votre trafic provient d'Europe et 35% La carte thermique montre exactement quand chaque région est la plus active, ce qui vous permet d'améliorer votre visibilité.
Pays avec des visites mais pas de commandes
Scénario :
Germany shows 500 visitors this month but zero sales.
Que faire:
Enquêter : (1) Est-ce qu'ils rebondissent sur la page de prix? Peut-être que votre tarification n'est pas compétitive pour ce marché.2) Livrez-vous en Allemagne? Vérifiez si votre page d'expédition mentionne l'Allemagne. (3) Votre paiement est-il disponible en EUR? Un décalage de devises entraîne des paiements abandonnés. (4) Ces visiteurs proviennent-ils d'une seule source qui pourrait être un trafic à faible intention?
Pourquoi un visiteur affiche-t-il le pays "Inconnu"?+
Soit configurez Cloudflare (qui ajoute automatiquement les en-têtes géographiques) ou téléchargez la base de données MaxMind GeoLite2 et définissez le chemin du fichier dans Paramètres > Chemin GeoIP.
Puis-je bloquer le trafic de pays spécifiques?+
OpsIQ Utilisez votre serveur web ou configurez-le à l'aide d'un navigateur Web. Cloudflare Règles de pare-feu pour le blocage par pays.OpsIQ Se concentre sur la visibilité, pas le contrôle d'accès au niveau du réseau.
Analytique
Entonnoir d'intention
L'entonnoir d'intention classe les sessions des visiteurs en fonction de ce qu'ils semblent essayer de faire : parcourir, rechercher, comparer, acheter, obtenir un support ou quitter. Utilisez-le pour comprendre l'équilibre des intentions sur votre site et identifier où les visiteurs abandonnent.
Entonnoir d'intentionSessions classées par intention (parcour, recherche, comparaison, achat) afin que vous puissiez voir exactement où les gens déposent.
Catégories d ' intention
Navigation
Visiteurs regardant autour d'eux. Sessions courtes, peu de pages, aucun objectif spécifique détecté.
Recherche
Visiteurs lisant des pages de produits/fonctionnalités, des documents ou du contenu de blog. Temps sur la page plus long, plusieurs pages de contenu.
Comparaison
Les visiteurs qui consultent les prix, la comparaison des forfaits ou les tableaux de fonctionnalités.
Achat
Visiteurs à la caisse, au panier ou aux pages d'inscription. Haute intention. Ce sont vos possibilités de conversion.
Recherche d ' appui
Les visiteurs sur les pages d'aide, les pages de contact ou qui démarrent un chat.
Rebondissant
Les visiteurs qui ont quitté après une page. Faible engagement.
Comment lire l'entonnoir
Interpréter votre entonnoir
Scénario :
1,000 visitors viewed Pricing. 270 opened chat. 92 started checkout. 64 paid. 18 opened support tickets.
Que faire:
La page de tarification est assez forte pour créer une intention. Le chat est important dans le chemin d'achat: 27% Les tickets de support après la commande peuvent indiquer l'activation ou la confusion du paiement. Action: (1) Assurez-vous que le chat AI répond bien aux questions de prix. (2) Enquêter sur 18 les tickets d'assistance post-vérification pour les questions communes.
Filtres de temps
Utilisez le filtre de la plage de dates pour comparer les tendances d'intention entre les périodes. Par exemple, comparez la semaine du vendredi noir à une semaine normale. Vous devriez voir un pic dans l'intention "Acheter" et éventuellement "Support-cherching" si vos promotions ont créé de la confusion.
Comment OpsIQ classe-t-il l'intention?+
OpsIQ Vues sur la page URLs Les pages de tarification indiquent une intention de comparaison. Les pages d'achat indiquent l'intention d'acquérir un produit. Les page d'aide/de contact indiquent la volonté de prendre en charge le client.
Puis-je personnaliser les catégories d'intention?+
Pas pour le moment. Les catégories sont intégrées en fonction des modèles de comportement Web courants, et la classification personnalisée d'intention est prévue dans la feuille de route.
Analytique
Entonnoirs, rétention et cheminement
Créez des parcours personnalisés à partir d'étapes de page ou d'événement, mesurez la rétention de cohorte et découvrez les chemins que les visiteurs empruntent le plus souvent sur un site.
Écran de produitUn entonnoir personnalisé affiche chaque étape de page/événement, les visiteurs restants et le pourcentage de conversion.
Entonnoirs
Créer un entonnoir nommé avec 2à8 Définissez la fenêtre de conversion en heures ; un visiteur est compté uniquement lorsque les étapes ordonnées se produisent dans cette fenêtre. Utilisez le décalage entre les étape pour choisir où inspecter la rejouabilité, les erreurs, la vitesse de page ou la messagerie.
Conservation
La rétention regroupe les visiteurs en cohortes hebdomadaires et montre combien d'entre eux retournent. 6, 8 ou 12 Gardez la définition de cohorte stable lors de la comparaison des sorties ou des campagnes.
Chemin
Chemins liste les séquences de pages les plus courantes. Choisissez une longueur de chemin à partir2à5les pages pour garder le résultat lisible. Utilisez-le pour trouver des détours inattendus, des sorties communes et du contenu qui précède à plusieurs reprises la conversion.
Pour réagir à une étape terminée, créez un objectif de conversion, un segment, un déclencheur ou un flux de travail.
Analytique
Relecture de session
La fonctionnalité Replay de session vous permet d'afficher une chronologie des actions effectuées par un visiteur sur votre site : les éléments sur lesquels il a cliqué, la façon dont il a fait défiler le contenu, l'endroit où il s'est arrêté et ce qu'il a saisi (les champs sensibles étant masqués).
Relecture de sessionRejouez exactement ce qu'un visiteur a fait : clics, défilements, saisie (champs sensibles masqués), sur un épurateur de timeline.
Trouver la bonne session
Dans la page Sessions, recherchez les sessions comportant des problèmes signalés, un nombre élevé de pages sans conversion ou des sessions provenant de clients qui ont déposé des tickets d’assistance.
Ce que montre le replay
Chronologie
Une barre horizontale affichant les événements au fil du temps. Cliquez n’importe où sur la chronologie pour passer à ce moment-là.
Navigation de la page
Chaque chargement de page apparaît comme un segment sur la timeline, vous pouvez voir le chemin exact que le visiteur a emprunté.
Cliques
Les événements de clic sont affichés sous forme de points sur la timeline et en surbrillance sur la reconstruction de page.
Défilement
La profondeur de défilement est suivie afin que vous puissiez voir jusqu'où le visiteur a lu.
Interaction de formulaire
La saisie de texte dans les champs à mot de passe et sensibles est masquée par défaut.
Confidentialité et masquage
Les champs de mot de passe, les saisies de carte bancaire et les champs marqués avec data-opsiq-mask ne sont jamais enregistrés. Vous pouvez configurer des règles de masquage supplémentaires dans Paramètres > Suivi. Si votre stratégie de conformité l’exige, vous pouvez désactiver complètement la lecture en continu.
Diagnostiquer un checkout cassé
Scénario :
A customer says "I tried to buy but the button did nothing."
Que faire:
Recherchez leur session dans la page Sessions (recherche par e-mail). Ouvrez le replay. Regardez le segment de la page de paiement.1) Ont-ils cliqué sur le bon bouton? (2) Did a JavaScript (Consultez la page Erreurs JS à ce moment-là.)3) La page a-t-elle été rechargeée ou affiché un message d'erreur? (4) Un champ obligatoire était vide? Le replay montre exactement ce qui s'est passé.
Quel volume de stockage la relecture de session utilise-t-elle ?+
Pour les sites à trafic élevé, envisagez une période de conservation plus courte (par exemple 30 jours) afin de gérer le stockage. Pour les sites avec un trafic faible, envisagent une période plus longue (par ex.
Les visiteurs peuvent-ils refuser la retransmission?+
Si l'option "Respecter Do Not Track" est activée dans les paramètres, les visiteurs avec des en-têtes DNT ne sont pas enregistrés. Vous pouvez également exclure certaines pages de la lecture dans les réglages de suivi.
Analytique
Journal des événements
Le journal des événements affiche tous les évéements enregistrés par OpsIQ (page vue, clics, démarrage de chat, création de ticket, vente et évéments personnalisés) pour vous aider à déboguer vos intégrations, vérifier la livraison du webhook et comprendre l'ordre d'action.
Journal des événementsUne chronologie de tout les enregistrements OpsIQ (pageviews, chats, ventes, webhooks, événements personnalisés) pour le débogage et l'audit.
Événements intégrés (automatiques)
pageview
Déclenché à chaque chargement d'une page suivie. Comprend URL, titre, référent et horodatage.
chat.started
Déclenché lorsqu'un visiteur ouvre le widget de chat et envoie son premier message.
chat.message
Déclenché pour chaque message dans une conversation de chat (visiteur et IA/agent).
ticket.created
Déclenché lorsqu'un nouveau ticket d'assistance est créé (à partir du chat, de l'e-mail, du widget ou de l’administrateur).
ticket.replied
Déclenché lorsqu'une réponse est ajoutée à un ticket.
order.completed
Déclenché lorsqu'un achat est effectué via une plateforme connectée.
form.submitted
Déclenché lorsqu'un formulaire suivi est soumis (si le suivi de formulaires est activé).
identify
Déclenché lorsqu'un visiteur est identifié via un jeton d'identité.
Erreur de connexion_failed
Déclenchée lorsqu'une tentative de connexion échoue.
Événements personnalisés
Vous pouvez envoyer des événements personnalisés depuis votre site Web ou serveur à OpsIQ. Les évéements personnalisé sont utiles pour suivre les actions spécifiques à votre entreprise: clics sur un bouton, utilisation de fonctionnalités, lectures vidéo, téléchargements, etc.
JavaScript · événement personnalisé depuis le navigateur
// Send a custom event from the browser
window.OpsIQ = window.OpsIQ || [];
window.OpsIQ.push(["track", "plan_selected", {
plan: "pro",
billing: "annual",
value: 99
}]);
PHP · enregistrer une activité de contact depuis votre serveur
Filtrer par noms d'événement spécifiques: pageview, chat. started, ticket. created, etc.
plage de dates
Afficher les événements d'une période de temps spécifique.
Recherche
Recherchez les données d'événement par mot-clé (URL, e-mail, valeurs de propriété d'évènement).
Combien de temps les événements sont-ils conservés?+
Les événements suivent la stratégie de conservation définie dans Paramètres. Par défaut: 90 jours. Les évéements à forte valeur (achats, évéments de sécurité) peuvent être configurés avec une rétention plus longue.
Puis-je utiliser des événements dans les expériences A/B?+
Oui. Lorsque vous créez une expérience, vous choisissez un événement de conversion. Tout évéement intégré ou personnalisé peut être utilisé comme objectif de conversion, mais il ne doit pas être le même pour tous les utilisateurs.
Analytique
Expériences A/B
Les expériences vous permettent de tester deux versions d'une page ou fonctionnalité et de déterminer celle qui fonctionne le mieux. OpsIQ Suivre les impressions, conversions et signification statistique.
Expériences A/BExécutez deux variantes, observez les conversions et la signification statistique, puis déclarez le gagnant.
Comment fonctionnent les expériences
1
Créer une expérience
Donnez-lui un nom, définissez votre statistique principale (événement de conversion) et configurez les variantes (contrôle et test).
2
Exécutez-le
OpsIQ affecte de manière aléatoire les visiteurs à des variantes et suit leur comportement. Ne modifiez pas l'expérience pendant son exécution.
3
Lire les résultats
Une fois que suffisamment de données ont été recueillies, vérifiez le niveau de confiance. 95% la confiance signifie que vous pouvez être _95% sûr que la différence est réelle et non aléatoire.
États de l'expérience
Brouillon
Créée mais pas encore démarrée. Vous pouvez toujours modifier les variantes et statistiques.
Exécution
Attribuer activement les visiteurs aux variantes. Ne pas modifier pendant l'exécution.
Terminé
Atteint la signification statistique ou a été arrêté manuellement. Les résultats sont définitifs.
Archivé
Les résultats ont été examinés et l’expérience n’a plus sa place dans la liste active.
Les meilleures pratiques
Définissez votre métrique avant le lancement
Choisir une mesure après avoir vu les résultats introduit un biais, et vous risquez de ne pas être satisfait.
Exclure le trafic interne
Ajoutez les adresses IP de votre équipe à la liste d'exclusion afin que les visites du personnel ne fassent pas biaiser les résultats.
Courir assez longtemps
N'arrêtez pas une expérience après 100 visiteurs, car vous avez besoin de centaines ou de milliers de visiteurs par variante pour obtenir des résultats fiables.
Tester un changement à la fois
Si vous changez le titre ET la couleur du bouton, vous ne saurez pas quel changement a causé l'amélioration.
Enregistrez votre décision
Une fois l’expérience terminée, notez quelle variante a gagné et pourquoi vous avez choisi de la mettre en œuvre.
De combien de visiteurs ai-je besoin pour une expérience valide?+
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.
Puis-je exécuter plusieurs expériences en même temps?+
Oui, mais attention : si deux expériences affectent la même page, leurs résultats peuvent interagir. Il est plus sûr d'exécuter des expériences sur différentes pages ou fonctionnalités en même temps.
Analytique
JavaScript erreurs
JavaScriptErreurs collecte des erreurs côté client de votre site Web visiteurs. Un bouton cassé, un échecAPIappel, ou une ressource manquante apparaît ici. Utilisez-la pour trouver et corriger des bugs qui affectent les clients réels.
Erreurs de JSDe vrais visiteurs qui frappent la surface de code cassée ici (message, source, navigateur et à quelle fréquence) pour que vous puissiez résoudre ce qui compte.
Ce que chaque erreur indique
Message d'erreur
Le texte d'erreur JavaScript (par exemple, "TypeError: Cannot read properties of undefined").
PageURL
Sur quelle page l'erreur s'est produite.
Navigateur et appareil
Le navigateur et le type d'appareil qui ont généré l'erreur. Certaines erreurs sont spécifiques au navigateur.
Pile de trace
L'emplacement du code où l'erreur s'est produite. Cliquez pour développer la trace de pile complète.
Première fois vu
Lorsque cette erreur est apparue pour la première fois.
Dernière fois vu
Quand cette erreur s'est produite la dernière fois.
Compte
Combien de fois cette erreur a été enregistrée.
Sessions affectées
Combien de sessions différentes ont connu cette erreur.
Hiérarchisation des erreurs
Pas tous JavaScript Les erreurs nécessitent une attention immédiate. Prioriser par: (1) erreurs sur les pages critiques (caisse, inscription, connexion), (2) des erreurs avec un nombre élevé de sessions, (3) des erreurs apparues récemment (régression possible d'un changement de code), (4) des erreurs sur votre propre code (pas de scripts tiers).
Réparation d'un bouton de paiement cassé
Scénario :
The JS Errors page shows "TypeError: Cannot read properties of undefined (reading submit)" on /checkout, affecting 45 sessions this week.
Que faire:
Cela signifie : 45 Les clients réels n'ont pas pu compléter le paiement. Étapes: (1) Ouvrez la page dans le même navigateur/appareil. (2) Ouvrez la console du navigateur et reproduisez l'erreur. (3) Vérifiez la trace de pile pour trouver la ligne exacte du code. (4) Corrigez le bogue, déployez et surveillez le nombre d'erreurs allant à zéro.
OpsIQ capture-t-il les erreurs des scripts tiers?+
Oui, OpsIQ captures all JavaScript Les erreurs sur la page, y compris les erreurs provenant des scripts d'analyse, des widgets de chat et les scripts publicitaires. URL Dans la trace de pile pour se concentrer sur votre propre code.
Comment puis-je exclure les erreurs connues inoffensives?+
Vous ne pouvez pas supprimer des erreurs spécifiques dans OpsIQ, mais vous pouvez filtrer la liste par page URL Corrigez ou ignorez les erreurs provenant des extensions du navigateur (elles apparaissent souvent sous la forme d'erreurs de sources inconnues).
Ventes
Ventes et conversions
Le suivi des ventes connecte votre boutique ou plateforme de facturation à OpsIQ afin que vous puissiez voir les revenus en même temps que le comportement du visiteur. Chaque achat est attribué au parcours du visiteurs, ce qui vous permet de savoir quelles pages, campagnes et canaux génèrent des revenus.
VentesL'écran de vente réel, les revenus en haut, puis les achats récents (date, client, plate-forme, montant), chacun attribué à sa source de trafic.
Tableau de bord des ventes
Les ventes d'aujourd'hui
Revenu des commandes passées aujourd'hui. Actualise à chaque nouvel événement de commande depuis votre plateforme connectée.
Cette semaine / ce mois-ci / total
Les revenus cumulés au cours de la période. Les remboursements sont soustraits de ces totaux.
Graphique de tendance
Recherchez les pics (promotions, campagnes) et les creux (problèmes, saisonnalité), puis affinez votre recherche en fonction de ces données.
Top sources de conversion
Quelles sources de trafic mènent au plus grand nombre d'achats. Les acheteurs « directs » ont souvent mis votre site en favoris, tandis que les acheteurs Google vous ont trouvé par le biais des recherches.
Les achats récents
Les dernières commandes avec l'adresse e-mail du client, le montant, la devise et les articles achetés.
Guides de configuration de la plateforme
Shopify
Aller à Connecteurs >Shopify. Créez une application personnalisée dans votre.Shopify admin (Paramètres > Applications et canaux de vente > Développer des applications). Champ d'application de l'autorisation: read_orders, read_customers et read_products. API Jeton d'accès. Dans OpsIQ, entrez le domaine de votre boutique (par ex. your-store.myshopify.com) et le jeton d'accès. Cliquez sur Tester la connexion. Si cela réussit, activez la synchronisation webhook pour les notifications de commande en temps réel.
WooCommerce
Aller à Connecteurs >WooCommerce Dans votre. WordPress admin, go to WooCommerce> Paramètres > Avancé > REST API. Créez une clé avec autorisation de lecture/écriture. Copiez la clé et le secret du consommateur. OpsIQ, entrez votre site URL, la clé du consommateur et le secret du consommteur. Cliquez sur Tester la connexion.
Grand commerce
Accédez à Connecteurs > BigCommerce. Dans votre administrateur BigCommerce, accédez à Paramètres avancés >API Création d'un compte V2/V3 API Copiez le jeton d'accès, l'ID du client et la clé de connexion dans les champs correspondants.API Entrez-les dans le champ. OpsIQ et test.
Magento 2
Allez dans Connecteurs > Magento. Dans votre admin Magento, allez dans Système > Intégrations et créez une nouvelle intégration avec. API Activez l'intégration et copiez le jeton d'accès. Entrez-le dans, puis cliquez sur OK. OpsIQ Avec votre base Magento URL.
PrestaShop
Allez dans Connecteurs > PrestaShop. Dans votre administrateur Prestashop, allez dans Paramètres avancés > Webservice. Activez le webservice et créez une nouvelle clé. Accorder l'accès aux commandes, clients et produits. Copier la clé et entrer-la dans OpsIQ Avec votre magasin. URL.
OpenCart
Allez dans Connecteurs > OpenCart. Générer API Entrez les informations d'identification de votre panneau d'administration OpenCart.API URL, nom d'utilisateur et mot de passe OpsIQ. Le connecteur utilise le REST d'OpenCart API Pour les données de commande et client.
osCommerce
Allez dans Connecteurs > osCommerce. Configurer l'accès à la base de données ou API L'intégration osCommerce nécessite généralement un accès direct à la base de données ou une connexion personnalisée.API Module.
Stripe
Accédez à Connecteurs > Stripe. Copiez votre compte Stripe restricted API Cliquez sur la clé dans le tableau de bord Stripe (Développeurs >API La clé doit avoir un accès en lecture aux clients, frais, factures et abonnements. Entrez-la dans le champ OpsIQ Configurer le point de terminaison webhook pour les événements en temps réel.
Personnalisé / autres plateformes
Utiliser le REST API Envoyez des événements order.completed avec l'adresse e-mail du client, le montant, la devise et les articles. Voir les Événements API Section pour le format de la charge utile.
Comprendre votre entonnoir de vente
Top sources de conversion
Affiche quels canaux apportent des clients payants. Si Google apporte 1000 visiteurs et 50 les ventes, c'est un5% taux de conversion. Si email apporte 200 visiteurs et 30 les ventes, c'est-à-dire 15%. L'email est plus efficace par visiteur.
Remboursements
Les commandes remboursées sont suivies séparément et réduisent votre chiffre d'affaires net total. Si les taux de remboursement sont élevés pour une source donnée, il est possible que le trafic soit de mauvaise qualité.
Manipulation des devises
OpsIQ stocke la devise et le montant originaux de la transaction. Les entreprises multidevises voient leurs revenus dans chaque devise, tandis que les rapports normalisés utilisent le taux de change configuré.
Exemples de travaux
100 visiteurs, zéro vente
Scénario :
Your pricing page gets 100 visitors per day but zero conversions.
Que faire:
Enquêter sur: (1) Utilisez Session Replay sur les visiteurs de la page de prix. Regardez comment ils interagissent avec le tableau de prix (2) Consultez les pages en haut pour connaître le taux de rebond et le temps sur la page des prix. (3) Consultez les conversations de discussion des visiteurs de la page de prix. Quelles questions posent-ils? (4) Comparez votre page de prix aux concurrents. (5) Essayez une expérience A/B avec différentes mises en page de tarification.
Attribution pour une campagne marketing
Scénario :
You sent an email campaign with UTM tags. How do you measure its revenue impact?
Que faire:
Allez dans Ventes et filtrez par source. Recherchez le paramètre UTM de la campagne, vous verrez: (1) Combien de visiteurs sont venus du courriel. (2) Combien ont converti en ventes. (3) Revenu total attribué à la campagne. (4) Par rapport à la même période avant la campagne.
Pourquoi les ventes affichent-elles zéro alors que ma boutique a des commandes?+
Vérifiez : (1) Le connecteur de plateforme est-il connecté et en bon état? Allez dans Connecteurs et vérifiez l'état. (2) La synchronisation webhook est-elle activée? Si vous utilisez le polling, la tâche cron est en cours d'exécution? (3) Le connecteur a-t-il le droit API Pour? Shopify, vous avez besoin de read_orders.
Comment OpsIQ attribue-t-il une vente à un visiteur?+
Lorsqu'une commande est reçue via le connecteur, OpsIQ fait correspondre l'adresse e-mail du client à un visiteur connu. Si le visiteur a été suivi avant l'achat, la vente est attribuée au parcours de son visiteur, y compris la source de trafic, la page de destination et l'historique des sessions.
Puis-je ajouter manuellement des ventes?+
Vous pouvez envoyer des événements de vente via le REST API Le format des événements est documenté dans la section Events (Événements).API section.
Ventes
Plombs
Leads sont des visiteurs ou des clients qui montrent l'intention d'acheter ou de soutenir.OpsIQdétecte automatiquement les leads en fonction du comportement: visites de page de prix, visites de retour, interactions de chat, démarrage de la commande et engagement élevé. Utilisez la page Leads pour prioriser le suivi et alimenter votreCRMpipeline.
PlombsL'écran Leads réel, les visiteurs à haut niveau d'intention comme une table consultable (IP/email, emplacement, appareil, source, temps sur le site) avec les sources et les pays les plus importants.
Ce qui fait un lead
Tarification des visites de page
Les visiteurs qui consultent votre page de tarification ou de forfaits envisagent activement un achat.
Visites de retour
Les visiteurs qui reviennent plusieurs fois sont engagés mais pas encore convertis.
Interactions de chat
Les visiteurs qui commencent un chat cherchent activement de l'aide, soit avant l'achat ou après l'acquisition.
Le checkout commence
Les visiteurs qui atteignent la page de paiement mais ne terminent pas l'achat.
Formulaire de soumission
Les visiteurs qui soumettent un formulaire de contact, une demande de démo ou un formulaires d’inscription.
Engagement élevé de la page
Les visiteurs qui consultent de nombreuses pages avec une longue durée de session font des recherches approfondies.
Panneau de détail
Cliquez sur n'importe quel lead pour voir son profil complet:
Identité
Nom, adresse e-mail et société si connu. Les prospects anonymes affichent IP et leur emplacement.
Séances
Toutes les sessions de ce lead avec flux de page, durée et source.
Pages consultées
Toutes les pages qu'ils ont visitées, classées par récentes.
Source
Comment ils vous ont trouvé : organique, payé, social, par renvoi, direct.
Score du prospect
Un score de 0 à _100 basé sur l'intensité du comportement, la récente et l'intention de page.
État du CRM
Si ce lead a été ajouté au CRM en tant que contact ou offre.
Astuce de vente
Proposition générée par l'IA sur la suite à donner (p. ex. 3 temps · envisager une approche proactive").
Badge de lead à haute valeur
Les prospects dont le score est supérieur à 80 obtiennent un badge « Valeur élevée ». Ce sont vos meilleurs prospects, que vous pouvez hiérarchiser pour les sensibiliser, leur proposer une discussion proactive ou les inclure dans votre pipeline CRM.
Exemples de travaux
Travailler une piste chaude
Scénario :
A lead viewed your pricing page 3 times in 2 days, started a chat asking about enterprise plans, but has not purchased.
Que faire:
C'est une piste de haute intention. Étapes: (1) Vérifiez les détails de leur prospect pour obtenir des informations sur l'entreprise et le rôle. (2) Examinez la transcription du chat pour les besoins et objections spécifiques. (3) Créer une offre dans le CRM avec les informations recueillies. (4) Attribuer une tâche de suivi à un membre de l'équipe commerciale. (5) S'ils retournent à la page de tarification, la règle de chat proactif peut déclencher un message personnalisé.
Convertir des leads anonymes en contacts CRM
Scénario :
You have 50 anonymous leads with high scores but no email addresses.
Que faire:
Options: (1) Créez une règle proactive qui offre un rabais ou le téléchargement d'une ressource en échange d'un e-mail sur les pages à forte intention.2) Utilisez le widget de chat pour demander un e-mail lorsque des visiteurs anonymes commencent une conversation.3) Ajoutez un jeton d'identité à vos pages de connexion / inscription afin que les visiteurs récurrents soient automatiquement identifiés.
Comment le score de lead est-il calculé?+
Le score prend en compte: la récente des visites (récent = plus élevé), la fréquence des visite (plus = supérieur), les pages consultées (prix/caisse = supérieure), la durée de session (plus longue = meilleure), les interactions sur le chat (engagé = meilleur) et les visites répétées (session multiple = mieux).
Puis-je personnaliser les règles de notation des prospects?+
Dans la configuration CRM, vous pouvez ajouter des règles de notation des prospects qui augmentent le score en fonction de mots clés, d'événements, de sources ou de modèles de page spécifiques.
CRM
Votre CRM · commencez ici
OpsIQ envoie un CRM complet d'IA-premier qui capture la vérité client, nettoie les données, scores leads, coachs traite, prévoit des revenus et agit, avec l'intelligence du site Web, support, billets, produits et paiements comme un graphique en direct. Chaque action d'AI est source, expliquée, réversible et contrôlée par approbation.
CRM AIUn premier CRM AI géré par quatre agents spécialisés, et un Dial de confiance qui décide combien ils font sur leur propre.
Aperçu des pages CRM
AI CRM (Centre de commande)
Commencez ici
Votre écran d’accueil quotidien: pulsation des revenus, ce que l’IA a trouvé, ce qu’elle a fait, file d’attente d’approbation, prochaines étapes, santé de l’agent et retour sur investissement.
Personnes à contacter
Nombre de base
Personnes et entreprises dans votre CRM. Recherchez, filtrez, notez et gérez les profils.
Pipeline
Nombre de base
Tableau de négociation visuel avec des étapes glisser-déposer, la probabilité de gagner et le coaching AI.
Prévisions et rapports
Nombre de base
Prévisions de qualité: engagées, probables, cas le plus favorable, avec intervalles de confiance et suivi de la précision.
Cycle de vie
Nombre de base
Où se trouve chaque client : actif, à risque, prêt pour l’expansion, renouvellement attendu ou en décrochage.
Construire mon CRM
Configurer
OpsIQ génère un plan réversible et l'applique à l'approbation. Description de votre configuration CRM en anglais clair.
CRM Santé
Opérations
Page d'auto-vérification: schéma, agents, routes, actions IA et compteurs de données en direct.
Comment OpsIQ vous protège
Demander avant d'agir
Les propositions d'IA sont mises en file d'attente pour approbation. Vous pouvez les approuver, les modifier ou les rejeter, mais rien ne se passe sans votre consentement.
Ne jamais écraser
Lorsque l’IA suggère un changement, elle affiche la valeur actuelle et la valeur proposée. Les données saisies par des humains sont protégées contre les modifications de provenance.
Tout est réversible
Chaque action de l'IA est enregistrée dans le journal et vous pouvez annuler n'importe quelle modification en un seul clic.
Explicable
Chaque recommandation d’IA montre son raisonnement et les sources de données qu’elle a utilisées.
Tout neuf? Commencez ici
1
Ouvrir AI CRM
Cliquez sur AI CRM dans la barre de navigation gauche. Le Centre de commande affiche votre état actuel.
2
Vérifier la santé CRM
Ouvrez CRM Health pour vérifier que le schéma, les agents et les itinéraires sont prêts.
3
Importer des contacts
Si un connecteur est actif (Shopify, WHMCS, etc.), les contacts sont importés automatiquement. Sinon, importez via CSV Ou créer manuellement.
4
Créer un pipeline
Allez dans Pipeline et créez votre premier pipeline avec des étapes (par exemple, Lead, Qualifié, Proposition, Négociation, Gagnant, Perdu).
5
Ajouter votre première offre
Créez une offre à partir d'un contact, définissez le montant et l'étape, puis laissez-vous guider par le coach de vente.
Dois-je utiliser le CRM ?+
Non, le CRM est optionnel. OpsIQ fonctionne parfaitement comme une plateforme de suivi + support + IA sans le CRM, activez-la lorsque vous êtes prêt à gérer les ventes et la relation client.
Le CRM peut-il fonctionner sans connecteurs?+
Oui, vous pouvez créer manuellement des contacts et des offres. Les connecteurs enrichissent le CRM avec les données de la plateforme (commandes, abonnements, tickets), mais ne sont pas obligatoires.
Qu'est-ce que la couche de confiance?+
La couche de confiance est le système de sécurité qui contrôle ce que l’IA peut faire. Mode copilot (par défaut) : L’IA propose, l’humain approuve.
CRM
L’écran d’accueil du CRM IA
Le Centre de Commandement est votre briefing quotidien, ouvrez-le chaque matin pour voir ce qui s'est passé, ce qui nécessite votre attention et ce que vous devez faire ensuite.
Centre de commandementLe véritable centre de commande : basculer entre Prévision, Gagnez le taux et Pipeline, et travailler la file d'attente de proposition AI, approuver ou rejeter les offres, les mouvements d'étapes et les tâches qu'il suggère.
Ce que le Centre de commande affiche
Les chiffres d'aujourd'hui
Valeur pipeline, offres gagnées/perdues, nouvelles pistes, offres actives et tendances de revenus, un instantané de votre état actuel.
Ce que OpsIQ a trouvé
Des informations découvertes par l’IA : transactions bloquées, comptes à risque, nouvelles opportunités, problèmes de qualité des données et signaux du marché.
Ce que OpsIQ a fait
Actions que l’IA a prises (en pilote automatique) ou proposées (en copilote): avancées d’étape, mises à jour de score, enrichissement des contacts et création de tâches.
Besoin d'approbation
Une file d’attente de propositions IA en attente de votre décision. Chacune montre l’action proposée, le raisonnement et les preuves.
Les prochains pas
Liste des chefs d'État et de gouvernement 10 Les choses les plus importantes à faire aujourd'hui: suivre une affaire chaude, vérifier un compte à risque, rechercher un nouveau lead, etc.
Statut d ' assistant
Santé des agents d’IA: Capture, Data Steward, Deal Intelligence, Deal Coach, SDR, Retention. Vert = en cours, jaune = nécessite une attention particulière, rouge = erreur.
Résultats
Suivi du ROI: transactions influencées par l’IA, gain de temps, précision des prédictions et comparaison avec le travail manuel CRM.
Briefing du matin
1
Lire les chiffres d'aujourd'hui
Vérifiez l’état de votre pipeline et la tendance des revenus.
2
Effacer la file d'attente d'approbation
Approuvez les actions sûres, modifiez si nécessaire et rejetez les mauvaises suggestions.
3
Vérifiez ce que OpsIQ a trouvé
Lisez les informations sur l’IA. Des transactions sont-elles à risque? Y a-t-il de nouvelles opportunités?
4
Travailler la liste des prochains mouvements
Commencez par la priorité absolue, que l’IA a classée en fonction de son urgence et de son impact potentiel.
Rattacher après le temps libre
Scénario :
You were away for a week. What happened while you were gone?
Que faire:
Ouvrez le Centre de commande et vérifiez: (1) "What OpsIQ done" montre toutes les actions de l'IA pendant votre absence. (2) "Besoin d'approbation" montre les propositions en attente de votre révision. (3) "What OpsIQ"Non trouvé" met en évidence les éléments urgents. (4Définissez la plage de dates du tableau de bord sur votre période d'absence pour voir la tendance.
CRM
Contacts, entreprises et offres
Le CRM organise vos relations commerciales en quatre objets : Contacts (personnes), Entreprises (organisations), Offres (opportunités de revenu) et Tâches (actions de suivi).
Objets de CRMQuatre objets de base (contacts, entreprises, transactions et tâches) liés à un seul graphique client connecté.
Personnes à contacter
Qu'est-ce qu'un contact
Une personne dans votre CRM, qui peut être un client, un prospect, un partenaire ou un lead. Les contacts ont une adresse e-mail, un nom, une société, des balises, une étape du cycle de vie et un score d'attractivité.
Trouver des contacts
Utilisez la barre de recherche pour trouver par nom, e-mail, société ou tags. Utilisez des filtres: étape du cycle de vie, score de lead, source, pays, date de dernière activité, propriétaire assigné.
Profil de contact
Cliquez sur un contact pour voir son profil complet : informations personnelles, société, offres, activités, tickets, chats, visites de site Web, score de lead et informations d'IA.
Score de chaleur
Un score de 0 à _100 calculé à partir des signaux comportementaux: visites du site Web, engagement par e-mail, interactions sur le chat, historique d'achat et récent.
Entreprises
... plus de billets...
Contact-société liant
Les contacts sont liés aux entreprises par domaine d'email ou par attribution manuelle, une entreprise peut avoir plusieurs contacts.
Offres
Qu'est-ce qu'une offre
Les offres ont un titre, un montant, un pipeline, une étape, une probabilité de gagner, une date de clôture, un propriétaire assigné et des contacts/entreprise associés.
Probabilité de gagner
Un pourcentage de chances de gagner l'affaire. Défini manuellement ou calculé par l'IA en fonction de vos données historiques de gains.
Traiter la santé
Vert (en bonne santé), jaune-automne (à risque) ou rouge (au point mort) en fonction de la récente activité, de la durée du stade et des signaux d’engagement.
1. Tâches
Qu'est-ce qu'une tâche
Les tâches ont un titre, une date d'échéance, une priorité, un type (appel, courriel, réunion, autre) et le contact/l'affaire liés.
Tâches générées par l'IA
L’IA crée automatiquement des tâches lorsqu’elle détecte quelque chose qui nécessite de l’attention : suivre une transaction bloquée, répondre à un compte à risque, rechercher un nouveau lead.
Trouver des leads chauds
Scénario :
You want to see all high-score contacts in the UK who have not been contacted recently.
Que faire:
Aller à Contacts. Filtrer par: Lead score > 80, Pays = Royaume-Uni, Dernière activité > 7 Il y a quelques jours. Trier par lead score descendant. Ce sont vos leads négligés les plus chauds, prioriser la sensibilisation.
Création d'une offre à partir d'un contact
Scénario :
A contact just expressed interest in your enterprise plan during a chat.
Que faire:
Ouvrez le profil du contact. Cliquez sur « Créer une offre ». Entrez le titre de l'offre (p. ex., « Acme Corp - Plan Entreprise »), le montant, la filière et l'étape (p. ex., "Qualifié"). Définissez la date de clôture et assignez-vous cette date. Le coach d'affaires commencera à suivre cette opportunité.
CRM
Le pipeline (votre tableau de bord)
Le Pipeline est un tableau visuel où les offres se déplacent à travers les étapes de gauche à droite. Faites glisser et déposez des cartes pour avancer les offre, chaque carte montre le montant de la transaction, la probabilité de gagner, et l'état de santé.
PipelineL’écran du pipeline réel: statistiques en direct (valeur ouverte, prévision pondérée), une file d’attente AI Approve pour les offres proposées et le tableau de glisser-déposer.
Utilisation du panneau de pipeline
1
Voir vos offres
Le pipeline affiche toutes les transactions actives sous forme de cartes disposées en colonnes (étapes) dont l'en-tête indique la valeur totale des transactions dans cette étape.
2
Faites glisser pour avancer
Faites glisser une carte vers le niveau suivant, la probabilité de gagner et les comptes sont mis à jour instantanément. Si le déplacement échoue (erreur de validation), la carte se replie sur sa position initiale.
3
Badges de carte de chèque
Badge vert = en bonne santé (activité récente, sur la bonne voie). Ambre = à risque (ralentissement, attention requise). Rouge = au point mort (pas d'activité depuis trop longtemps).
4
Cliquez pour les détails
Cliquez sur une carte pour ouvrir le panneau de détails d’une offre avec les contacts, les activités, le résumé du coach et les actions rapides.
La file d'attente d'approbation
Les propositions d’IA apparaissent dans la file d’attente d’approbation en haut de la page du pipeline. Chaque proposition indique ce que l’IA souhaite faire, pourquoi et les preuves.
Approuver
L'action s'exécute à travers la couche de confiance et est enregistrée dans le journal. The action runs through the Trust Layer and is recorded in the journal.
Éditer
Modifiez la proposition avant d’approuver, par exemple en modifiant l’étape proposée ou le montant.
Rejeter
L’IA apprend des refus pour faire de meilleures suggestions à l’avenir.
Probabilité de gagner expliquée
La probabilité de gagner peut être définie manuellement ou calculée par l'IA. Lorsque l'AI la calcule, elle utilise un modèle entraîné sur vos propres transactions fermées (gagnées et perdues). Si vous ne disposez pas de suffisamment de données historiques, l'intelligence artificielle utilise la probabilité par défaut du stade. $10,000 deal at 30% La probabilité contribue $3,000 Aux prévisions "probables".
Déplacer une offre vers Won
Scénario :
A customer signed the contract and paid.
Que faire:
Faites glisser la carte jusqu'à l'étape "Gagné". OpsIQ will: (1) Marquer la transaction comme close-won. (2) Mettre à jour les prévisions. (3) Ajoutez une activité "Gagné" à la chronologie. (4) Si configuré, déclenche un événement webhook (crm.deal.won).5) Mettez à jour l'étape du cycle de vie du contact sur "Client".
Repérer les offres bloquées
Scénario :
You want to find deals that have been in the same stage for too long.
Que faire:
Recherchez les badges rouges (bloqués) sur le tableau de bord du pipeline. Ces offres n'ont pas eu d'activité depuis plus longtemps que le seuil de pourriture configuré (défini dans Configuration CRM > Pipelines).
Puis-je avoir plusieurs pipelines?+
Oui, allez dans Configuration CRM > Pipelines pour créer des pipelines supplémentaires. Cas d'utilisation courants : pipelines distincts pour les nouvelles affaires et les renouvellements ou pour différents produits/services.
Que se passe-t-il lorsque je fais glisser une offre vers "Perdu"?+
L'opération est marquée comme fermée-perdue. On vous demandera une raison de perte. L'affaire est retirée du forum actif mais peut être trouvée dans le filtre des affaires fermées. Le contact reste dans le CRM.
CRM
Coaching des affaires
Le Deal Coach analyse chaque affaire et vous donne un bref état de santé, des signaux de risque, des personnes clés, une liste de contrôle de qualification, la préparation de réunion et les prochaines actions suggérées. Tout est source. L'entraîneur montre de quel ticket, chat ou activité chaque réclamation provient.
Entraîneur de venteLe coach drape pourquoi un accord pourrait glisser (chaque signal cite sa source) et vous donne le prochain mouvement à prendre.
Ce que vous dit l'entraîneur
Explication de santé
Signaux spécifiques: jours en cours, date du dernier contact, fréquence des activités, mentions de concurrents, schémas d’objection.
Signaux
Chaque signal est lié à sa source (transcription de chat, ticket, courriel, activité) et peut être utilisé pour identifier les objections soulevées, mentions des concurrents, discussions sur la tarification, indicateurs de risque d’assistance, signaux de renouvellement/expansion.
Carte de champion et de bloqueur
Qui aide à la transaction (champion) et qui résiste (bloquant), basé sur l’analyse des interactions et les rôles de contact.
Liste de contrôle des qualifications
Liste de contrôle MEDDICC ou BANT (configurable) indiquant les critères de qualification qui sont remplis et ceux qui manquent. Catégorie: A, B, C, D ou F.
Préparation des réunions
Avant une réunion prévue, le coach génère un brief: ordre du jour, points clés à aborder, questions à poser, risques à traiter et matériel à préparer.
Répondre et appeler des plans
Suggestion du prochain message ou script d'appel en fonction de l'état actuel de la transaction et des interactions récentes.
Échéancier des preuves
Chaque réclamation que le coach fait est liée à une source : un numéro de ticket, l’ID d’une transcription de chat, la date d’activité ou la visite du site Web.
Comment utiliser le coach
1
Lire le brief
Ouvrez n’importe quelle offre et faites défiler jusqu’à la section Coach de l’offre.
2
Combler les écarts de qualification
Si l'élément « Acheteur économique » est manquant, planifiez la désignation et le recrutement du titulaire du budget.
3
Agir sur les suggestions
Le coach propose des actions concrètes. Cliquez pour créer une tâche, rédiger un courriel ou planifier une réunion, toutes acheminées par la file d'attente d'approbation.
Préparation à une grande réunion
Scénario :
You have a meeting with a prospect tomorrow about a $50,000 deal.
Que faire:
Ouvrez l'offre et lisez la section Préparation de la réunion.1) Points de discussion clés basés sur des interactions récentes. (2) Objections qu'ils ont soulevées dans le chat la semaine dernière. (3) Concurrent qu'ils ont mentionné dans un ticket de support. (4) Questions à poser sur leur chronologie. (5Utilisez ce mémoire pour préparer un programme ciblé et fondé sur des données probantes.
Comprendre pourquoi une transaction est à risque
Scénario :
The pipeline shows a red badge on a deal you thought was going well.
Que faire:
Cliquez sur l'offre et lisez l'explication de la santé du coach d'offres, qui peut indiquer : « Cette offre a été au stade Proposition pour. 22 jours (seuil : 14 Le dernier contact a été. 11 Le contact principal a ouvert un ticket d'assistance concernant les problèmes de migration des données. 5 Il y a 2 jours (ticket #T-892 Suggestion : adressez-vous au problème de migration et planifiez un appel de suivi. » Maintenant, vous savez exactement ce qu’il faut corriger.
CRM
Prévisions et rapports
Des prévisions de qualité avec une plage défendable, des explications sur les changements au niveau de l'offre et un suivi de la précision pour que vous puissiez prouver et expliquer vos chiffres.
PrévisionsCommit, best-cas et pipeline en un coup d'oeil, AI pondéré par la santé de l'affaire, avec précision suivi pour que vous puissiez le défendre.
Catégories de prévision
Engagé
Les offres avec une probabilité de gain égale ou supérieure à 80%. Ce sont vos gains les plus probables, et ils devraient représenter votre revenu minimum attendu.
Probable pondéré par l ' IA
Toutes les transactions ouvertes sont pondérées par leur probabilité de gagner calculée par l'IA, c'est la prédiction la plus réaliste de ce que vous ferez.
Le meilleur cas
Toutes les offres ouvertes à pleine valeur, c’est-à-dire le revenu maximal possible si tout se passe parfaitement (ce qui est rarement le cas).
Intervalle de confiance
An 80% Exemple : "Vous fermez probablement entre 10 et 20% de votre position actuelle." $45,000 and $72,000 Ce trimestre."
Ce qui a changé et pourquoi
Les prévisions incluent l'attribution des variations d'une semaine à l'autre. $15,000, le rapport explique exactement quels accords ont causé ce changement: "Accord A a glissé au prochain trimestre ($8,000), Deal B perdu ($5,000), Deal C réduit en valeur ($2,000)."
Suivi de précision
Prévisions 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.
Calibration de probabilité de victoire
Le score de Brier mesure dans quelle mesure les probabilités de gagner correspondent aux résultats réels.70% Probabilité de gagner.70% La plupart du temps, l'étalonnage est bon.
Instantanés hebdomadaires
OpsIQ capture un instantané de vos prévisions chaque semaine (via cron) et vous pouvez voir comment la précision de vos prediction s'améliore au fil du temps.
Rollups et avertissements
Conversion par étape
Combien de transactions passent de chaque étape à la suivante. Si 80% Passer de Qualifié à Proposition mais seulement 20% Passez de la proposition à la négociation, vos propositions pourraient avoir besoin d'être améliorées.
Taux de victoire par source
Quelles sources de leads produisent le plus de gains. Investissez davantage dans les sources à taux de gain élevé.
Performance par propriétaire
Comment chaque membre de l'équipe commerciale se comporte: affaires gagnées, valeur du pipeline, taille moyenne des affaires, taux de gain.
Avertissements
Sandbagging (probabilités irréalistes), overcommitting (irréalistement élevé) et committed-at-risk (deals à forte probabilité montrant des signaux de stall).
Comprendre une baisse des prévisions
Scénario :
Your quarterly forecast dropped from $180,000 to $155,000 since last week.
Que faire:
Ouvrez la page Prévisions et cochez « Ce qui a changé. » Le rapport montre : « Acme Corp deal ($15,000) déménagé à Lost, concurrent choisi. Beta Inc deal ($8,000) date de clôture poussé au trimestre prochain.$3,000) ajouté cette semaine." Le changement net est -$20,000 + $3,000 = -$17,000, expliquant la baisse de 180 000 $ à 163 000 $ (avec les 8 000 $ restants expliqués par des rajustements de probabilité sur d'autres transactions).
CRM
Trouver de nouvelles affaires
L’agent de prospection vous aide à trouver et rechercher des clients potentiels. Décrivez votre client idéal, ajoutez les entreprises cibles et laissez l’IA effectuer des recherches, noter et rédiger une communication en première personne.
ProspectionL’agent SDR trouve les entreprises cibles, les évalue sur leur adéquation et rédige la première approche pour votre examen.
Une seule fois setup
1
Décrivez votre client idéal
Accédez à Configuration CRM > Prospection. Décrivez votre profil client idéal (ICP) : industries cibles, taille de l'entreprise, titres professionnels, emplacement géographique, termes de correspondance des produits et score d'adéquation minimum.50-500"Nous avons 20 employés aux États-Unis/au Royaume-Uni, vendant des outils de développement, avec un vice-président des ventes ou responsable de la croissance comme contact principal."
2
Ajouter des entreprises cibles
Vous pouvez également laisser l'IA vous suggérer des entreprises en fonction de votre ICP (Identité de Produit) ou d'autres critères.
3
Réviser les résultats de recherche
L’IA enrichit chaque entreprise avec les données disponibles : taille, secteur d’activité, pile technologique, actualités récentes et score de fiabilité avec explication.
4
Approuver la sensibilisation
Pour les entreprises qui répondent aux critères, l’IA rédige un message personnalisé en première contact.
Corriger le score
Chaque prospect obtient un0-100 Score d'ajustement basé sur cinq facteurs:
Ajustement ICP
La mesure dans laquelle l’entreprise correspond à votre profil de client idéal (industrie, taille, emplacement).
Signaux d'urgence
Y a-t-il des preuves qu’ils ont besoin de votre produit maintenant?
Proximatif budgétaire
La taille de l’entreprise, le stade du financement et les indicateurs des revenus suggèrent la disponibilité budgétaire.
Correspondance de produit
La pertinence de votre produit pour leur entreprise en fonction du secteur et de la technologie.
Ajustement de l'aide
Si vous pouvez servir efficacement ce client (fuseau horaire, langue, complexité).
Recherche d’une entreprise cible
Scénario :
You want to evaluate whether acme.com is worth pursuing.
Que faire:
Ajouter acme.com L'IA retourne: Fit score 78/100 Raisons: B2B SaaS, 120 10 employés, basé aux États-Unis, a récemment embauché un vice-président des ventes (signal d'urgence), utilise le concurrent X (correspondance de produits). Signaux d'achat: visité votre page de tarification deux fois le mois dernier (à partir du suivi du site Web). [email protected] L’ouvreur rédigé fait référence à leurs visites récentes de la page d’embauche et de tarification.
CRM
Séquences de suivi automatiques
Les séquences automatisent le suivi en plusieurs étapes : un mélange d'étapes de messagerie, d'attente, de tâche, d’appel et de webhook qui s'exécutent automatiquement après que vous ayez approuvé l'envoi initial.
SéquencesSuivi automatisé en plusieurs étapes (email, attente, email, tâche) que vous approuvez en premier et une réponse s'arrête automatiquement.
Comment fonctionnent les séquences
1
Créer une séquence
Définir les étapes: email, attendre 3 jours, email, attendre 5 Jours, tâche (appeler si aucune réponse), e-mail Chaque étape de l'e-mail a un modèle que vous pouvez personnaliser.
2
Enregistrer les contacts
Ajouter des contacts à la séquence. L’IA peut également proposer l’inscription à partir de résultats de prospection.
3
Exécution automatique
Si un contact répond à n'importe quel moment, la séquence est automatiquement mise en pause.
4
Suivre les résultats
Consultez les taux d'ouverture, de réponse, de conversion et de désabonnement par étape pour optimiser votre séquence.
Répondre à la compréhension
Lorsqu'un contact répond, l'IA classe la réponse:
Positif
Intéressé, veut parler. Pauses de séquence, tâche créée pour le suivi.
Objection
La séquence s'arrête, la tâche est créée avec les détails de l'objection.
Se désinscrire
Veut arrêter de recevoir des messages. Contact supprimé définitivement.
Pas maintenant
Intéressé mais le timing est incorrect. Séquence en pause, tâche de rappel créée.
La mauvaise personne
La séquence s'arrête, le contact est signalé pour examen.
Appui
Une question de support, pas une réponse commerciale. Pauses de séquence, ticket créé.
Protections anti-spam
Gestion de l'opt-out
Les demandes de désabonnement sont honorées immédiatement et le contact est supprimé de toutes les séquences futures.
Envoyer un cap quotidien
Limite quotidienne au niveau de l'espace de travail (par défaut: 1,000 e-mails). Empêche les envois massifs qui déclenchent des filtres anti-spam.
Limite par contact
Un message maximum par contact et par jour. Évite de submerger les personnes.
Manipulation des sur-caps
Les pas qui dépassent le plafond quotidien sont reportés au lendemain et ne sont jamais abandonnés ou ignorés.
Que se passe-t-il si un contact ouvre un ticket d'assistance pendant une séquence?+
La séquence est automatiquement mise en pause, le support ayant la priorité sur l'aide. La séquestration peut être reprise manuellement une fois que le problème de support est résolu.
Puis-je tester A/B les étapes de séquence?+
Pas directement dans les séquences, mais vous pouvez créer deux séquence avec des messages différents et comparer leurs résultats.
CRM
Outils de croissance
Une page sous CRM qui contient le moteur de croissance: revenus récurrents (MRR / ARR), catalogue de produits, formulaires de capture de leads, liens de réservation et routage des leads. Tout ici s'écrit directement dans le CRM, donc une soumission de formulaire ou un appel réservé est un contact avec historique, pas une ligne dans une feuille de calcul.
Ce qui vit sur la page
Revenus récurrents
Revenus
Les abonnements sont regroupés à partir des paiements par plateforme, le cycle de facturation est déduit des écarts de paiement et un abonnement expire lorsqu'un paiement est en retard au-delà de 1.5 fois son cycle. Les clients se connectent automatiquement aux contacts CRM lorsque le grand livre contient leur adresse e-mail.
Catalogue de produits
Catalogue
Une source unique de vérité pour ce que vous vendez. Les devis extraient le nom et le prix catalogue du catalogue, et les devis acceptés s'ajoutent au chiffre d'affaires par produit.
Formulaires de capture des pistes
Capturer
Chaque formulaire reçoit une page hébergée et un code d'intégration iframe pour votre propre site. Les soumissions deviennent des contacts, le propriétaire reçoivent une notification et vos règles de routage attribuent la piste.
Liens de réservation
Calendrier
Partagez un lien, laissez les prospects choisir un emplacement libre. Les créneaux respectent les heures de travail de l'organisateur, le fuseau horaire et les réunions existantes. Une réservation crée la réunion, envoie une confirmation par e-mail au prospect et informe l'organiseur.
Routage des pistes
Routage
Les règles du territoire s'exécutent d'abord, puis les règles de champ (combiner un champ comme le pays ou la source), puis les round-robin à travers votre rep pool. Il fait route des CONTACTS ET DES DEALS aussi bien, quel que soit le statut de l'accord: une affaire gagnée nécessite toujours un propriétaire pour l'attribution de commission, la responsabilité de compte et le suivi, et en mode de visibilité propriétaire ou équipe un enregistrement non détenu est invisible pour tout le monde sauf un gestionnaire.
Créer votre premier formulaire
1
Outils de croissance ouverts
Allez dans CRM, puis Outils de croissance, puis la section Formulaires de capture de leads.
2
Nommez-le et choisissez des champs
Tapez un nom et une liste de champs séparés par des virgules, par exemple nom,email,téléphone,message.
3
Partager ou intégrer
Copiez le lien hébergé pour le partager n'importe où, ou copiez le code d'intégration et collez-le dans une page de votre site Web.
4
Regardez les leads arriver
Chaque soumission est un contact CRM avec une activité form. submitted, une notification au propriétaire et un routage automatique.
💡
Les espaces de travail Cloud utilisent leur sous-domaine attribué (company.opsiq. help), afin que le lien résolve toujours les bonnes données.
Protections intégrées
Les bots voient le succès, vous ne voyez rien
Un champ de honeypot caché rejette silencieusement les soumissions de bot.
Taux limité
Dix soumissions par heure et par adresse IP pour les formulaires et réservations.
Le consentement reste honnête
La soumission d’un formulaire ne constitue pas un consentement au marketing, seule une case à cocher de consentement explicite le fait.
Pas de double réservation
Un emplacement est re-validé contre un nouveau contrôle de disponibilité au moment de la réservation.
D’où proviennent les données sur le chiffre d’affaires récurrent?+
Utilisez Re-sync from billing (Resynchroniser depuis la facturation) après avoir connecté une nouvelle plateforme.
Puis-je utiliser les formulaires sans avoir de site web?+
Oui, chaque formulaire a une page hébergée sur votre propre adresse qui fonctionne de manière autonome, avec ou sans JavaScript.
CRM
Hub de messagerie (SMS et WhatsApp)
Un connecteur, jusqu'à vingt passerelles. Connectez les fournisseurs de SMS et WhatsApp que vous utilisez réellement, marquez un par défaut, et choisissez l'un d'eux lors de la transmission d'un contact. Le consentement est vérifié par le CRM avant que n'importe quelle passerelle ne soit contactée.
Mettez-le en place
1
Activer le connecteur
Sur la page Connecteurs, ouvrez le Hub de messagerie (SMS et WhatsApp) et activez-le.
2
Ajouter un fournisseur
Dans le même tiroir, ou dans CRM Growth Tools, choisissez une passerelle dans la liste déroulante (Twilio, Vonage, Termii, Meta WhatsApp Cloud, Infobip et plus), collez son. API Vous pouvez en ajouter plusieurs, y compris la même passerelle deux fois avec des comptes différents.
3
Filer le webhook
Chaque entrée de fournisseur affiche son propre webhook URL Collez-le dans les paramètres de rapport de livraison et de message entrant de la passerelle pour obtenir l'état de livraison et les réponses dans. OpsIQ.
4
Envoyer à partir d'un contact
Ouvrez un contact et utilisez le bouton SMS ou WhatsApp. Si plusieurs opérateurs prennent en charge le canal, un sélecteur vous permet de choisir. Sinon, la valeur par défaut est utilisée.
Le consentement vient en premier
Consentement accordé uniquement
Un consentement inconnu n’est pas un consentement. Un envoi refuse à moins que le consentement SMS ne soit explicitement accordé.
Le non-contact gagne toujours
Un drapeau de non-contact bloque chaque canal, peu importe ce qui est défini.
Suppression honorée
Les contacts figurant sur la liste de suppression ne reçoivent jamais de messages.
Les refus donnent leur raison
Un envoi bloqué vous indique exactement pourquoi, afin que vous puissiez corriger les données au lieu de deviner.
Pour les développeurs : le contrat webhook
URL forme
https://your-address/opsiq/cron/messaging_webhook.php?sk=SITE_KEY&e=ENTRY_ID&t=TOKEN. Le token par entrée est créé lorsque le fournisseur est connecté et ne tourne jamais lors de l'édition.
Formats compris
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":"..."}.
Effets
Les messages entrants correspondent au contact par numéro de téléphone dans l’espace de travail, atterrissent comme une activité message. received et marquent la conversation comme répondue. Les rapports de livraison indiquent que le message est reçu ou non.
Mode d ' échec
Réponses de jeton incorrectes ou manquantes 403 Les charges utiles inconnues sont comptées et ignorées, jamais fatales, de sorte qu'une passerelle mal configurée ne peut pas briser le point final.
Quelles passerelles sont prises en charge?+
Twilio, Vonage, Plivo, MessageBird, Sinch, Infobip, Telnyx, ClickSend, Termii, Africa's Talking, BulkSMS, Textlocal, Meta WhatsApp Cloud, 360dialog, SMSAPI, Gupshup, Kaleyra, D7 Networks, Hubtel et un webhook HTTPS personnalisé pour tout le reste.
Les identifiants sont-ils sécurisés?+
Les informations d'identification sont stockées de manière chiffrée dans les paramètres du connecteur et ne sont jamais renvoyées au navigateur. La modification d'une entrée avec un secret vide conserve celui qui a été stocké.
L'IA peut-elle envoyer des messages?+
Oui, au moyen d’actions enregistrées qui exigent une confirmation et passent par le même contrôle de consentement. L’IA peut aussi lister les fournisseurs connectés pour expliquer ce qui est disponible
CRM
Fidéliser et développer les clients
Chaque compte reçoit un score de risque de déperdition, un score d'intégrité, un pointage d'expansion et un guide recommandé pour réussir.
Cycle de vieLes clients passent par l'embarquement, actif, à risque et le renouvellement, chacun marqué pour la santé et l'expansion avec un livre de jeu.
Le tableau de bord du cycle de vie
Plan de l'étape
Tableau visuel montrant où se trouve chaque compte: Lead, Prospect, Opportunité, Client, Expansion, Renouvellement, À risque, Churned.
Comptes à risque
Chaque compte affiche le principal facteur (pique de support, inactivité, échec du paiement) et une sauvegarde recommandée.
Possibilités d ' expansion
Les comptes qui montrent des signes de volonté d’acheter davantage : forte utilisation, demandes de fonctionnalités, demande de forfaits.
Renouvellements à venir
Comptes avec dates de renouvellement à venir. Triés par niveau de risque et valeur des revenus.
Comment OpsIQ détecte le risque de départ
Le risque de décrochage est calculé à partir de plusieurs signaux fusionnés ensemble:
Signaux de CRM
Santé des transactions, inactivité, pertes récentes, engagement décroissant.
Signaux d’assistance
Nombre de tickets ouverts, pics de volume de ticket, sentiment négatif, escalades.
Engagement du produit
Fréquence de connexion, utilisation des fonctionnalités, visites de pages, appels API.
Signaux de facturation
Échecs de paiement, factures en retard, demandes de rétrogradation, visites de page d'annulation.
Guides pratiques
Sauver le jeu
Pour les comptes à risque : communiquez de façon proactive, répondez aux préoccupations, offrez du soutien et faites passer le problème au niveau supérieur si nécessaire.
Jeu de renouvellement
Pour les prochains renouvellements : confirmer la satisfaction, examiner l’utilisation, présenter la valeur, offrir un incitatif si nécessaire.
Jeu d'expansion
Pour les comptes prêts à croître : présentez des options de mise à niveau, partagez des histoires réussies et démontrez le retour sur investissement.
Jeu d'adoption
Pour les comptes sous-utilisés : offrez une formation, partagez les meilleures pratiques, activez les fonctionnalités qu’ils n’utilisent pas.
Repérer le churn avant qu'il ne se produise
Scénario :
A customer who normally logs in daily has not logged in for 2 weeks, and they opened 3 support tickets this month.
Que faire:
Le tableau du cycle de vie marque ce compte comme "à risque" avec les pilotes: inactivité (14 10 jours depuis la dernière connexion) et le pic de support (3x Le jeu recommandé: appel de sensibilisation proactif pour comprendre ce qui se passe. Y a-t-il un problème avec le produit? Est-ce qu'ils évaluent les concurrents? Une intervention précoce peut sauver le compte.
CRM
Garder vos données propres
L'agent Data Steward détecte et corrige automatiquement les problèmes de qualité des données : doublons, champs manquants, incohérences et enregistrements obsolètes.
Responsable des donnéesL'agent Steward garde votre CRM propre, en trouvant des duplicatas, des lacunes, des enregistrements inexistants et des mauvais formats, en fixant sur l'approbation.
Contacts sans adresse email, offres sans montants, entreprises sans domaines. Suggère de remplir à partir des sources disponibles.
Enregistrements non liés
Offres sans contacts associés, contacts sans entreprises. Propose un lien en fonction du domaine et du contexte de l'email.
Incohérences
Une affaire en phase "Gagné" avec une probabilité de 20%, un contact marqué "Client" sans aucune affaire, une entreprise dont l'industrie n'est pas appariée.
Les mauvaises étapes
Les offres qui se trouvent au même stade depuis trop longtemps ou les contacts dont l’étape du cycle de vie ne correspond pas à leur activité.
Comment utiliser
1
Ouvrir la liste des stewards
Accédez à CRM et recherchez la section Data Steward (ou ouvrez-la depuis l'état de santé du CRM).
2
Approuver les correctifs sécuritaires
Les éléments verts sont sûrs : supprimez les doublons, les données manquantes évidentes. Approuvez-les en bloc.
3
Consultez le reste
Les éléments ambrés ont besoin de votre jugement : doublons possibles avec des différences mineures, changements d’étape proposés, liens entre les entreprises.
Le steward propose de fusionner les deux dossiers, en conservant le dossier avec plus d'activité et en fusionnant les transactions et les activités des autres dossiers. Il examine la proposition, ajuste le nom affiché si nécessaire et approuve l'opération.
CRM
Construire mon CRM
Build My CRM vous permet de décrire votre configuration CRM en anglais clair. OpsIQ génère un plan validé et réversible, qu'il applique à l'approbation.
Construire mon CRMDécrivez votre entreprise en anglais simple; OpsIQ rédige l'ensemble du CRM (étapes, champs, segments) et l'applique à l'approbation.
Comment ça fonctionne
1
Décrivez ce que vous voulez
Tapez une description en anglais de votre configuration CRM _. Exemple : « Créez un pipeline de renouvellement avec étapes : Prochainement, Contacté, Négociation, Renouvelé, Perdu. Score mène plus haut lorsqu'ils voient les prix deux fois ».
2
Examiner le plan
OpsIQ montre un aperçu de ce qu'il va créer: pipeline, étapes, probabilités d'étape, règles de notation, règle de cycle de vie.
3
Appliquer
Chaque modification est enregistrée sous forme de groupe que vous pouvez annuler en un seul clic, et chaque changement est automatiquement répertorié dans le plan.
4
Retournez si nécessaire
Si quelque chose ne va pas, cliquez sur Annuler pour rétablir l'ensemble du bundle et votre CRM revient à son état précédent.
Ce que vous pouvez construire
Pipelines et étapes
Créez des pipelines nommés avec des étapes personnalisées, des probabilités par défaut et des seuils de pourriture.
Règles de notation
Augmentez les scores des prospects en fonction de leur comportement : « Score plus élevé lorsqu'ils consultent la tarification », « Scores inférieurs lorsqu'il visitent la page Carrières. »
Règles du cycle de vie
Faites progresser automatiquement les étapes du cycle de vie : « Passer à SQL lorsqu’une démo est demandée », « Passer à Client lorsque l’affaire est gagnée ».
Champs personnalisés
Ajouter des champs aux contacts, offres ou entreprises: texte, numéro, date, sélectionner, case à cocher, URL, e-mail.
Liste de contrôle des qualifications
Définir la liste de contrôle MEDDICC ou BANT contre laquelle le coach des affaires évalue.
Mise en place d’un pipeline de renouvellement
Scénario :
You manage SaaS subscriptions and need a pipeline for renewals.
Que faire:
Type: "Créer un pipeline de renouvellement. Étapes: 90 Jours de pluie (10%), 60 Jours de pluie (25%), Contacté (40%), Négociation (60%), renouvelé (100%), Churned (0% Réglez le seuil de pourriture à. 14 days."OpsIQ Une fois le plan généré, vous l'examinez et cliquez sur Appliquer.Le pipeline apparaît immédiatement sur votre page Pipeline.
Que faire si je décris quelque chose qui n’est pas possible?+
Le constructeur ne génère que les actions qu'il sait valider. Si vous demandez quelque chose qui n'est pas dans ses capacités (par exemple, "Integrate with my custom API"), il rejettera la requête et expliquera ce qu'elle peut faire à la place.
Puis-je annuler des modifications?+
Oui, chaque action de Build My CRM est enregistrée sous forme d'un lot réversible. Allez dans l'onglet Santé du CRM > Historique des modifications pour voir tous les lots et annuler ceux que vous souhaitez.
CRM
Configurez votre CRM à votre façon
Configuration manuelle du CRM pour les équipes qui préfèrent cliquer plutôt que de taper Tous les paramètres que Build My CRM peut créer sont également disponibles sous forme de champs de formulaire traditionnels.
Pipelines et étapes
Créez, renommez, réorganisez et supprimez des pipelines et des étapes. Définissez la probabilité de victoire par défaut par étape. Définissez le seuil de pourriture (jours sans activité avant qu'une offre ne soit marquée comme « bloquée »).
Champs personnalisés
Ajoutez des champs aux offres, contacts ou entreprises. Types de champs: texte, nombre, date, sélection (liste déroulante avec options prédéfinies), case à cocher, URL, e-mail. Les champs personnalisés apparaissent sur le profil d'objet et dans les filtres.
Liste de contrôle des qualifications
Définissez la liste de contrôle que le coach d'affaires utilise pour évaluer les affaires. Choisissez MEDDICC, BANT ou un ensemble personnalisé de critères. Chaque élément peut être marqué comme requis ou facultatif.
Règles de l'étape du cycle de vie
Définissez des transitions automatiques d’étape : lorsqu’un contact remplit une condition (consulte les tarifs, soumet un formulaire, effectue un achat), son étape de cycle de vie avance automatiquement.
Règles de lead-scoring
Augmentez ou réduisez les scores des prospects en fonction du comportement. Exemples : "Page de tarification consultée = +15"Livre blanc téléchargé = +10"Page de carrières visitée = -5Le nombre minimum de points peut être défini (par exemple, "doit voir les prix au moins 10 fois"). 2 times").
Vues enregistrées
Créez des combinaisons de filtres et de tris nommés pour les contacts, les offres ou les entreprises. Partagez des vues avec votre équipe Définissez une vue par défaut par type d'objet.
Ajout d'une règle de lead scoring
Scénario :
You want contacts who view your pricing page twice or more to get a higher score.
Que faire:
Accédez à Configuration CRM > Règles de notation des prospects. Cliquez sur Ajouter une règle. Set: Event = "pageview", URL contains = "/pricing", Nombre minimum =2, Boost de score = +20 La prochaine fois que le scorer s'exécutera, les contacts correspondant à cette règle obtiendront +20 à leur score de tête.
CRM
CRM Bilan de santé
La santé du CRM est une page d'autodiagnostic qui vérifie que votre CRM est configuré correctement et fonctionne sans problème.
Vérification de santéUn audit CRM d’une page : un score de santé global plus une liste de contrôle des éléments correctement configurés et de ceux qui nécessitent encore une attention particulière.
Ce qui est vérifié
Schéma
Si une migration a été manquée, CRM Health l'indiquera en la marquant dans le champ correspondant.
Agents d ' AI
Tous les agents CRM (Capture, Data Steward, Deal Intelligence, etc.) sont enregistrés et en bonne santé Vert = en cours d’exécution, jaune = nécessite une attention particulière, rouge = erreur.
Itinéraires
Les routes CRM API et les points de terminaison AJAX sont enregistrés et appelables.
Actions d ' AI
Si des actions sont manquantes, CRM Health se répare automatiquement en les enregistrant à nouveau. CRM Health rectifie les erreurs de gestion du système et des processus.
Comptes de données en direct
Total des contacts, entreprises, affaires, tâches, activités et événements. Utile pour vérifier les importations et la capture de données en cours.
Après vérification de l'installation
Après la première configuration de CRM, ouvrez l'état du CRM et vérifiez que toutes les vérifications sont en vert. Si certaines sont orange ou rouge, cliquez sur l'élément pour obtenir une explication diagnostique et des suggestions de correctif.
À quelle fréquence dois-je vérifier l'état du CRM?+
La fonctionnalité CRM Health corrige automatiquement de nombreux problèmes (comme les enregistrements d'actions manquantes) en ouvrant simplement la page. CRM Health est une fonctionnalisation qui permet aux utilisateurs de gérer leurs actions et leur état de santé.
CRM
Connexions CRM pour les développeurs
Le CRM expose un REST public complet API et des webhooks sortants afin qu'il s'adapte à n'importe quelle pile sans exportations manuelles.
API points de fin
Authentification
API clé (Autorisation: porteur opq_...) avec le champ d'application crm.read ou crm écriture. /api/v1.php avec action et site_key.
Personnes à contacter
crm. contacts. list (recherche + filtre), crm, contact. detail (par ID), crme contact. upsert (créer ou mettre à jour), crmme contact. save.
Offres
crm. deals. list, crm. deal. detail, crme. deales. create, crmme. deaux. update, crmi. deels. advance (tous via la couche de confiance).
Activités
crm. activities. list (cadre temporel d'un contact/d'une offre), crm, activites. record (enregistrement d'une nouvelle activité).
Événements
crm. events. list (flux de modification durable avec curseur since_id), crm. event. catalog (liste des types d'événement disponibles).
Déclenchée lorsqu'un nouveau contact est ajouté au CRM.
crm. deal. stage_changed
Déclenchée lorsqu'une transaction passe à une autre étape.
crm.deal.won
Déclenché quand une transaction est clôturée comme gagnée.
crm.deal.lost
Déclenchée lorsqu'une transaction est clôturée comme perdue.
crm.task.created
Déclenchée lorsqu'une nouvelle tâche est créée (manuelle ou générée par l'IA).
crm.outreach.reply
Déclenché lorsqu'un prospect répond à un e-mail de séquence.
crm. agent. proposal_created
Déclenché lorsqu'un agent d'IA crée une proposition pour la file d'attente d'approbation.
Tous les événements de webhook sontHMAC-signée et réétudiée sur échec.URLdans Paramètres > Webhooks, ou sondagecrm.events.list avec depuis_id pour un flux de changement durable.
Synchronisation des contacts CRM avec Google Sheets
Scénario :
You want every new CRM contact to appear in a Google Sheet for your marketing team.
Que faire:
Configurer un abonné webhook pourcrm.contact.created. Pointez-le sur une application web Google Apps Script ou sur un webhook ZapierURL. La charge utile comprend le nom du contact, l'email, la compagnie, le score de tête et la source. Votre script ajoute une ligne à la feuille Google pour chaque nouveau contact.
CRM
Segments
Les segments enregistrent des filtres de contact réutilisables pour les vues CRM, la sensibilisation, les promotions et d'autres outils adaptés à l'audience.
Écran de produitL'éditeur de segments combine les conditions, affiche le nombre de correspondances en direct et permet à l'opérateur de choisir un filtre en direct ou une image épinglée.
A Live segment Recalcule à partir des données courantes chaque fois qu'il est utilisé. A Pined snapshot fige la liste de membres actuelle, ce qui est utile lorsqu'une audience d'approche ne doit pas changer après l'approbation.
Choisir TOUS Quand chaque condition doit correspondre ou N'IMPORTE QUEL Les segments système peuvent être visibles, mais protégés contre toute modification ordinaire. Les segments de données peuvent être modifiés par l'utilisateur ou les utilisateurs.
CRM
Note du chef de file
Les règles de notation des prospects transforment les signaux comportementaux et profilés en un score cohérent que les ventes et l'automatisation peuvent utiliser.
Écran de produitLe score des leads montre les règles actives, la fenêtre mobile et le changement de score positif ou négatif que chaque règle applique.
Chaque règle doit toujours être vérifiée avant son activation : confirmer l’activité ou le mot-clé, le nombre minimum de mots, la fenêtre mobile et le changement du score.
Les règles positives et négatives peuvent coexister. Utiliser Espace de travail Rescore Les scores peuvent être utilisés pour alimenter les segments, le routage, la prospection et les conditions de flux de travail.
CRM
Tableau de bord des ventes
Le classement compare les représentants en utilisant l'atteinte du quota, le revenu gagné, la commission et le pipeline ouvert pour le mois sélectionné.
Écran de produitLe classement mensuel classe les représentants commerciaux tout en gardant visibles le chiffre d’affaires gagné, la commission et le pipeline ouvert.
L’atteinte du quota n’est significative que lorsque chaque représentant dispose d’un quota actuel et que les offres ont le propriétaire, le montant, la devise et l’état de clôture corrects. Utilisez le tableau de bord pour l’encadrement et la reconnaissance, pas comme seule mesure de qualité. Associez-le à la santé des offres, à l’activité et à la précision des prévisions.
CRM
Approbations de transactions
Les approbations des transactions nécessitent l’approbation du gestionnaire avant que les transactions de grande valeur puissent être marquées comme gagnées.
Écran de produitLa stratégie d'approbation définit deux seuils de valeur et la file d'attente affiche les décisions en attente, approuvées et rejetées.
Activer la stratégie et définir le niveau.1and Level 2 Un seuil de 10 %. 0 Lorsqu'un non-manager tente de remporter une transaction à un seuil ou au-dessus du seuil, OpsIQ crée une demande d'approbation au lieu de changer silencieusement l'étape.
Chaque décision doit conserver le demandeur, l'approbateur, la date et la raison de la décision pour permettre son audit.
CRM
Règles du cycle de vie
Les règles de cycle de vie déplacent automatiquement les contacts entre les étapes lorsque leurs données actuelles correspondent à une condition enregistrée.
Écran de produitLes règles de cycle de vie sont évaluées par priorité ; la première règle correspondante modifie l'étape du contact.
Chaque règle a une étape source, une étapes de destination, un indicateur actif, une priorité et un filtre de style segment. La tâche du cycle de vie planifiée évalue les priorités supérieures en premier et s'arrête après la première correspondance pour un contact.
Les règles doivent être mutuellement compréhensibles. Évitez d'avoir deux règles actives qui peuvent déplacer le même contact dans des directions opposées au cours de la même exécution, testez le filtre sur un segment avant de l'activer.
CRM
Flux d'activité CRM
Le flux d'activité de l'espace de travail combine les événements clients et opérationnels afin que les équipes puissent enquêter sur ce qui s'est passé sans avoir à ouvrir chaque module.
Écran de produitLe flux d'activités intercale les événements de chat, ticket, e-mail, webhook, conversion et anomalie avec des filtres et une pagination.
Filtrez par type d’événement, date, contact ou état du client (y compris les clients payants). Le flux est un modèle en lecture de l’activité enregistrée; il ne remplace pas le ticket source, la conversation, l’affaire ou l’enregistrement connecteur.
CRM
Flux de travail
Les workflows répondent à un événement et exécutent une série ordonnée d'actions, y compris des étapes retardées reprises par cron.
Écran de produitUne exécution de workflow affiche son déclencheur, les actions terminées, le temps d’attente et l’étape suivante.
Créez un workflow en choisissant le déclencheur, en ajoutant les étapes dans l'ordre et en l'activant. Les retards sont stockés, pas retenus par une requête de navigateur. Le cron unifié reprend les exécutions du workflow attendues.
Les modèles de démarrage intégrés incluent l'accueil après l'inscription, le remerciement post-achat et la confirmation de démonstration. Clonez un modèle, remplacez ses destinataires/son contenu, puis testez avec un enregistrement contrôlé avant une activation générale.
Une nouvelle tentative ne doit pas envoyer de demandes en double pour le déplacement d'argent ou créer des enregistrements en doublon.
Appui
Billets
Les billets sont votre canal de soutien officiel. Ils ont des ministères, des priorités,SLAles cibles, les pièces jointes, les notes internes et le threading complet de la conversation.OpsIQadministrateur, formulaire de ticket/embed, ingestion d'email, escalade du chat, connecteur, ouAPI.
BilletsChaque billet porte sa priorité, département, minuterie SLA et le fil complet, et l'IA peut rédiger la réponse pour vous.
Comment un ticket s'écoule
1
Le billet arrive
Un client envoie un message par e-mail, une escalade de chat, l'intégration d'un ticket ou l'administrateur crée un ticket. Le ticket reçoit un ID unique (par exemple, T-12345).
2
Triage
L’IA lit le sujet et le corps de l’e-mail, attribue la priorité (faible/normal/élevé/urgent), suggère un service et détecte les sentiments.
3
Répondre
Un agent ouvre le ticket, lit le contexte (profil du client, données de la plateforme provenant des connecteurs, tickets précédents) et rédige une réponse que l’IA peut élaborer et qu’il modifie avant d’envoyer.
4
Fermer
Lorsque le problème est résolu, l’agent ferme le ticket et en informe le client. Si ce dernier répond après la clôture du ticket, celui-ci se rouvre automatiquement.
Actions par ticket
Changer de département
Déplacer le ticket vers un autre service (par exemple, de Général à Facturation). Utile lorsque l'acheminement initial était incorrect.
Affecter à un agent
L'agent désigné voit le ticket dans sa vue « Mes tickets », puis il peut afficher les informations de contact et d'assistance.
Ajouter une note interne
Écrivez une note visible uniquement par le personnel. Utilisez-la pour : les résultats de l'enquête, les raisons du remboursement, le contexte technique, les engagements antérieurs.
Fusionner les tickets
Combinez les tickets en double provenant du même client. L’objet du ticket fusionné obtient une balise [MERGED] (Fusionné). Tous les messages des deux tickets sont conservés dans le ticket restant.
Réponse en conserve
Insérez un modèle de réponse préécrit.{{customer_name}}et{{ticket_id}}sont automatiquement remplacés.
réécriture AI
Laissez l'IA améliorer votre brouillon de réponse : ajustez le ton, raccourcissez/allongez, corrigez la grammaire ou traduisez. Vous révisez le résultat avant d'envoyer.
Changer la priorité
Définissez la priorité sur Faible, Normale, Élevée ou Urgente. La priorité affecte les minuteries SLA et l'ordre de tri.
Changer de statut
Définir comme Ouvert, En attente, Attente du client, Résolu ou Fermé.
Exemple pratique: gérer un client mécontent
E-mail du client : « Mon abonnement m'a été facturé deux fois »
Scénario :
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.
Que faire:
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.
Départements
Créez des départements dans Paramètres > Tickets > Départements. Département commun : Général, Facturation, Technique, Ventes, Abus, Onboarding Chaque service peut avoir différentes règles de réponse automatique, connaissances en IA et affectations d'équipe.
Réponses en conserve
Créez des modèles de réponse réutilisables dans Paramètres > Tickets > Réponse prédéfinie.
Exemple de modèle de réponse conservée
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}}
Fusion des billets
Lorsqu'un client envoie la même question plusieurs fois (par e-mail et chat, ou deux e-mailings distincts), vous pouvez fusionner les doublons. Accédez au ticket, cliquez sur Fusionner, sélectionnez l'autre ticket à fusionners. Le ticket restant reçoit tous les messages des deux tickets. L'objet du ticket fusionné reçoivent une balise [MERGED] pour indiquer qu'il a été combiné.
Priorité et SLA
Bas
Questions non urgentes, demandes de fonctionnalités, commentaires généraux. Cible première réponse: 24 heures.
Normal
Questions standard de support. Cible première réponse: 8 heures.
Élevé
Impact sur l'activité du client. Cible première réponse: 4 heures.
Urgent
Service en panne, incident de sécurité, perte de données, erreur de facturation. Cible première réponse: 1 heures.
Les minuteries SLA démarrent lorsque le ticket est créé et s'arrêtent lorsque l'état est « En attente du client ». Si la cible SLA n'est pas atteinte, le ticket sera mis en surbrillance et éventuellement transféré à un niveau supérieur.
Les clients peuvent-ils voir les notes internes?+
Les notes internes sont strictement réservées au personnel. Elles n’apparaissent pas dans le portail de tickets client, les notifications par e-mail ou toute autre surface face aux clients.
Que se passe-t-il lorsqu'un ticket fermé reçoit une réponse?+
Le ticket s’ouvre automatiquement et retourne dans la file d’attente active, l’équipe étant informée de la nouvelle réponse.
Puis-je verrouiller un ticket pour empêcher d'autres réponses?+
Oui. Utilisez l'option Verrouiller le fil pour empêcher à la fois le client et l'IA d'ajouter de nouvelles réponses. Utile pour les litiges résolus ou les enquêtes closes.
Appui
Service Studio: SLA, flux d'état et qualité
La salle de contrôle pour le comportement de votre opération d'assistance: les politiques SLA avec des échelles d'escalade, les calendriers des heures ouvrables, un flux d'état appliqué, les paramètres CSAT et les commutateurs de fonctionnalité d'entreprise. Ouvrez-le à partir de la page Tickets (bouton Service Studio dans la barre des opérations).
Politiques de SLA
Chaque nouveau ticket reçoit une première réponse et un délai de résolution à partir de la politique active la plus spécifique: département + priorité bat le département, bat la priorité, bat le délai par défaut.
Échelles d ' escalade
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.
Heures d'ouverture et calendriers
Avec les heures de bureau, les horloges SLA ne brûlent que pendant les heures ouvrables. Un ticket ouvert le vendredi soir n'est donc pas violé le samedi. Des calendriers nommés (fuseau horaire, jours, heures, jours fériés) peuvent être associés à des politiques individuelles pour les équipes dans différentes régions.
Flux de statut
Une matrice de départ/arrivée qui restreint les modifications d’état que peuvent effectuer les administrateurs, avec un paramètre prédéfini de style Zendesk. L’automatisation, les e-mails entrants et les réponses aux tickets émanant des clients sont toujours exemptés, donc une matrice stricte ne peut jamais engorger le pipeline.
Agréments
Les agents demandent l’approbation d’un ticket (remboursements au-delà d’une limite, exceptions aux règles). Un approbateur nommé ou un administrateur complet décide avec une note ; les requérants ne peuvent jamais approuver leur propre demande.
Relations de tickets
Liez les tickets en tant que liés, dupliqués, parents/enfants ou bloqués; divisez les réponses vers un nouveau ticket lié (l'inverse de la fusion, sans envoyer d'e-mail au client); suivez les tickets pour des notifications dans l'application et, éventuellement, CC les adresses e-mail des abonnés sur les réponset sortantes.
Boîte de réception en direct et collisions
Avec la boîte de réception en temps réel activée, les nouveaux tickets et réponses apparaissent pour les agents en quelques secondes via le flux de notification existant. Sur un ticket, les agents voient qui d’autre est en train de consulter le ticket et reçoivent une bannière d’avertissement lorsqu’un collègue d’équipe est déjà en train d’y répondre.
Routage conscient de l'IA
Les règles de routage peuvent correspondre aux signaux de triage d'IA: priorité, catégorie, sentiment et risque d'escalade, ainsi qu'aux valeurs des champs personnalisés saisies dans votre formulaire de demande du portail.
💡
L’activation d’un commutateur dans Service Studio → Qualité et automatisation est l’option de participation ; en laissant ces options désactivées, le comportement reste identique à celui d’avant la mise à niveau.
Pourquoi un client peut-il rouvrir un ticket fermé quand ma matrice interdit la fermeture → ?+
Les réponses émanant du client, les réponses par e-mail et l'automatisation sont délibérément exclues afin qu'une politique stricte ne puisse jamais bloquer les clients ou interrompre le pipeline.
Les échelles SLA remplacent-elles l'ancienne action en cas de violation?+
Non, les stratégies enregistrées avec une action de violation unique continuent à fonctionner sans modification. Une échelle remplace l'action unique uniquement sur les stratégie où vous définissez des étapes.
Appui
Réponse automatique et escalade des tickets
La réponse automatique permet à l’IA de répondre aux nouveaux tickets automatiquement. L’escalade déplace les tickets vers un autre service lorsque l’AI détecte des besoins spécialisés, et ces deux fonctionnalités fonctionnent aussi bien pour les tickets natifs que pour ceux créés par e-mail.
Auto-réponseLes nouveaux billets sont courts (pour que les humains puissent y accéder), puis une réponse d'IA de votre connaissance, envoyée ou en attente comme un brouillon.
Comment fonctionne la réponse automatique
1
Le billet apparaît
Un nouveau ticket est créé à partir de n'importe quelle source (email, chat, portail, API).
2
Programme de réponse
OpsIQ Attend le délai configuré (par défaut: ) 2 Cela donne aux agents humains la possibilité de répondre en premier.
3
La première réponse gagne
Si un agent humain répond pendant le délai, la réponse automatique est annulée, sinon l’IA génère une réponse.
4
Générer et envoyer
L’IA lit le ticket, vérifie la base de connaissances, le contexte du connecteur et l’historique client, puis rédige une réponse qui est envoyée (ou mise en file d’attente sous forme de brouillon pour examen, selon les paramètres).
Comment fonctionne l'escalade
1
Configurer les départements
Définissez les départements pouvant recevoir des escalades (par exemple, la facturation peut être échelonnée à partir de Général, le service technique peut être escaladé à partir du Général).
2
Classer le ticket
Avant de répondre automatiquement, l’IA classe l’intention du ticket : facturation, technique, remboursement, abus, etc.
3
Déplacez-vous si nécessaire
Si l’intention du ticket correspond à un service d’escalade, le ticket est déplacé et une note interne explique pourquoi.
4
Générer dans une nouvelle voix
La réponse est générée en utilisant les connaissances du service de destination et la formation à l'IA.
Référence des paramètres
Auto-réponse activée
Activez-le pour activer la réponse automatique de l'IA pour les tickets.
Départements autorisés
Commencez par les départements à faible risque (Général, Ventes) avant d'activer la facturation.
Délai
Le temps d'attente avant que l'IA ne réponde (en secondes). Par défaut: 120 20 secondes (2Réglez à 10 minutes).0Pour des réponses instantanées.
Calendrier des retards
Définissez éventuellement différents délais pour les heures ouvrables par rapport aux horaires d'après-midi.
Arrêtez sur la réponse de l'administrateur
Si un agent humain répond en premier, annuler la réponse automatique. Par défaut : activé.
Escalation activée
Activez le routage automatique des départements en fonction de l'intention du ticket.
Départements d ' escalade
Les départements vers lesquels les tickets peuvent être transférés.
État de l ' escalade
Statut à appliquer lors d’une escalade (par exemple Ouvert, En attente).
Note d ' escalade
Indique s'il faut ajouter une note interne expliquant la raison de l'escalade.
Tickets créés par e-mail
Les tickets créés à partir d’un e-mail (via le sondage de boîte aux lettres ou la distribution par pipeline MX) suivent les mêmes règles de réponse automatique et d’escalade. La réponse AI est envoyée sous forme d’e-mail au client, tandis que les brouillons sont placés dans la file d’attente des brouillont pour examen si elle est configurée.
L’IA répondra-t-elle automatiquement aux questions de facturation?+
Nous vous recommandons de commencer par désactiver la réponse automatique pour la facturation et de l'activer uniquement après avoir formé l'IA avec des connaissances approfondies en matière de facturation, puis d'effectuer des tests complets.
Et si l’IA donne une mauvaise réponse ?+
Si un client répond que la réponse était incorrecte, un agent humain doit intervenir. Revisez l'historique de l'IA pour comprendre pourquoi l'AI a donné la mauvaise réponse, puis mettez à jour la base de connaissances ou la formation de l’IA pour éviter qu’il ne se reproduise.
Puis-je vérifier les réponses automatiques avant qu'elles ne soient envoyées?+
Oui. Définissez le mode de remise sur « Brouillons » au lieu de « Envoi automatique ». Les brouillons des réponses automatiques apparaîtront dans la file d'attente Brouills pour examen humain avant l'envoi.
Appui
Intégration du portail des billets
Le portail de tickets intégré vous permet d'ajouter une interface de gestion de ticket à n'importe quel site Web. Les clients peuvent voir leurs tickets, en créer de nouveaux et répondre, le tout sans entrer dans l'administrateur OpsIQ.
Comment ça fonctionneIntégration du portail des billets
Trois saveurs embed
Intégration en ligne
Le portail prend la largeur complète de son conteneur et est affiché dans une div sur votre page.
Widget flottant
Affiche un bouton flottant qui ouvre le portail de tickets dans un panneau, similaire à un widget de chat.
Authentifié
Nécessite un jeton d’identité signé. Les clients ne voient que leurs propres tickets.
Pour le mode authentifié, votre serveur doit générer un jeton d'identité signé qui indique à OpsIQ l'identités du client afin qu'il ne voit que ses propres tickets.
Liste consultable et filtrable par statut. Une mise en évidence « En attente de votre réponse » signale les tickets auxquels l’équipe a déjà répondu.
Conversation en fil
Vue complète de la conversation avec texte enrichi, pièces jointes et horodatages.
brouillon d'enregistrement automatique
Les brouillons de réponse du client sont automatiquement enregistrés afin qu'ils ne perdent pas leur travail s'ils se déplacent.
Sondage en direct
Le widget sonde pour de nouvelles réponses toutes les ~12 secondes.
Résoudre / rouvrir
Les clients peuvent résoudre ou rouvrir leurs propres tickets en un seul clic.
✅
Les notes internes du personnel ne sont JAMAIS affichées aux clients dans l'intégration de ticket, ce qui constitue une limite de sécurité stricte.
Appui
Boîte de réception du chat
La boîte de réception du chat est l’endroit où votre équipe gère les conversations en direct avec vos clients, et affiche les discussions actives, les conversationes assignées, les discussiones gérées par l’IA et l’historique archivé.
Boîte de réception du chatUne boîte de réception pour chaque chat en direct, liste de conversation, le thread avec l'IA brouillon sur tap, et le contexte complet visiteur + CRM.
Gestion des conversations
Les chats actifs
Point vert = le client est en train de taper ou a été récemment actif.
Géré par IA
Vous pouvez prendre la relève à tout moment en cliquant sur « Joindre » (Join) et vous connecter au chat.
Assigné à moi
Conversations qui vous sont spécifiquement assignées.
En attente
Conversations où le client attend une réponse.
Archives
Conversations terminées. Recherchable par mot-clé, date et client.
Transfert de l’IA à l’humain
Lorsque vous prenez en charge une conversation de l'IA, suivez ces trois règles:
1
Saluer personnellement
Présentez-vous par votre nom. « Bonjour, je suis Sarah de l'équipe d'assistance »
2
Contexte de référence
Montrez que vous avez lu la conversation. « Je vois que vous m'avez demandé l'état de votre commande »
3
Définir les attentes
Dites au client ce qui va suivre. « Je regarde cela tout de suite et je reviens vers vous d’ici quelques minutes. »
Activer/désactiver l'IA par conversation
Utilisez le bouton d’IA en haut de chaque conversation. Lorsque l’IA est activée, elle génère des réponses. Lorsqu’elle est désactivée, seuls les agents humains peuvent répondre. L’IA se souvient du contexte de la conversation même lorsqu’elle a été désactive et réactivée.
Mode absent / hors heures
En dehors des heures d'ouverture, l'IA peut: (1) Continuer à répondre aux clients, (2) Afficher un message « absent » et créer un ticket pour le suivi, ou (3) Désactiver complètement le chat et afficher le formulaire de ticket Choisissez le comportement qui correspond à votre modèle d'assistance.
Gérer des conversations difficiles
1
Restez calme.
Ne pas correspondre à l'intensité émotionnelle du client. Reconnaître sa frustration sans être sur la défensive.
2
Recueillir des faits
Avant de répondre, recueillez les informations pertinentes : détails de la commande, statut du compte, tickets précédents.
3
Escalate tôt
Si la situation implique des remboursements, des menaces juridiques, des abus ou de la sécurité, faites-en part à un membre supérieur de l’équipe plutôt que d’essayer de gérer le problème seul.
Puis-je avoir un chat d'équipe (agent à agent)?+
Oui, vous pouvez utiliser des notes internes dans une conversation pour communiquer avec d'autres agents. Ces notes ne sont jamais visibles par le client.
Que se passe-t-il lorsque je ferme un chat?+
Si le client envoie un nouveau message plus tard, une nouvelle conversation est créée et les messages sont déplacés vers l'archive.
Appui
Chaînes de messagerie
Connectez WhatsApp, Facebook Messenger, Instagram DM, Telegram et LINE afin que les messages que les clients vous envoient déjà arrivent dans la même boîte de réception que votre chat site, répondu par le même assistant AI.
Chaque canal se comporte de la même manière une fois connecté : un message client devient une conversation dans la boîte de réception Chat, votre assistante AI répond en utilisant les mêmes connaissances et instructions que votre chat site web, et tout agent peut prendre le relais.
À quoi ressemble la connexion
Facebook Messenger & Instagram
Un clic. Ouvrez les connecteurs → Facebook Messenger & Instagram DM, cliquez sur Connectez-vous, connectez-vous avec le compte Facebook qui gère votre page, et choisissez la page. Instagram vient avec elle lorsque votre page a un compte professionnel Instagram lié.
WhatsApp
Un clic où votre fournisseur l'offre : ouvrez le connecteur de Hub de Messagerie et utilisez Connect WhatsApp, puis suivez la connexion guidée de Meta pour récupérer ou créer votre numéro d'entreprise Whatsapp. Sinon collez les identifiants de n'importe lequel des20les portes d'entrée.
Télégramme
Deux minutes. Message @BotPère en télégramme, envoyer/newbot,Choisissez un nom et un nom d'utilisateur se terminant par "bot", et collez le jeton qu'il vous donne dans le connecteur Telegram.OpsIQenregistre le webhook pour vous.
LIGNE
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
Ajouter un fournisseur (Twilio, Vonage, Termii et autres) dans le Hub de messagerie avec ses identifiants et son numéro d'expéditeur.
✅
Chaque connecteur affiche ses propres instructions étape par étape dans le tiroir, y compris exactement ce qu'il faut copier et où. Vous n'avez jamais besoin d'identifications de développeur pour les options à un clic.
Allumer un canal
La connexion d'un canal ne démarre pas. Settings → Client Chat → Advanced → Messaging Channels, allumez le maître et ensuite le canal individuel. Chaque canal a son propre commutateur de réponse automatique AI, vous pouvez piloter sur un avant d'ouvrir le reste.
1
Connectez le canal
Dans les connecteurs, en utilisant les instructions dans le tiroir de ce connecteur.
2
Tester la connexion
Cliquez sur Test. Il fait un appel réel au fournisseur et vous dit ce qui ne va pas si quelque chose est.
3
Activer les canaux de messagerie
Paramètres→Chat client→Avancé. Allumez l'interrupteur principal, puis le canal.
4
Envoyez-vous un message
D'un autre compte, envoyez un message à votre page, numéro ou bot. Il doit apparaître dans la boîte de réception Chat en quelques secondes et obtenir une réponse AI.
Fenêtres de réponse
Les plateformes de messagerie limitent la durée de réponse d'une entreprise après l'écriture d'un client. OpsIQ montre le temps restant sur chaque conversation et applique la règle pour vous.
WhatsApp
24 heures à partir du dernier message du client. Après cela, vous ne pouvez envoyer qu'un modèle approuvé, que vous configurez dans le même onglet Advanced.
Messagerie & Instagram
24heures pour les réponses normales; les agents peuvent répondre jusqu'à7quelques jours plus tard, sous l'allocation d'agent humain de Meta.
Télégramme, LINE, SMS
Pas de fenêtre imposée par la plate-forme.
⚠️
Si une réponse échoue parce que la fenêtre s'est fermée, la conversation montre pourquoi. Il s'agit d'une règle de plate-forme, et non d'un OpsIQ limite.
Questions fréquentes
Les clients voient-ils qu'une AI a répondu ?+
Seulement si vous leur dites. La réponse vient de votre page, numéro ou bot exactement comme une réponse humaine le ferait. Vos instructions AI contrôlent le ton et si elle s'identifie.
Un agent peut-il prendre le relais de la conversation ?+
Oui. Ouvrez la conversation dans la boîte de réception Chat et cliquez sur Join. L'IA s'arrête, vous tapez, et le client voit un fil continu sur son côté.
Et si je débranche un canal ?+
Utilisez Déconnecter sur le connecteur. L'historique des messages est conservé; les nouveaux messages cessent simplement d'arriver, et la plate-forme est dit de cesser de les envoyer.
Deux espaces de travail peuvent-ils utiliser la même page Facebook ?+
Non. Une page appartient à un espace de travail à la fois. Connecter-le ailleurs le déplace, et le premier espace de travailler cesse de recevoir des messages, donc déconnectez-vous délibérément plutôt que de se reconnecter ailleurs.
Appui
Conversations de chat réelles
Ces exemples montrent comment une IA client bien entraînée devrait gérer des scénarios courants et vous permettent de tester votre formation en IA et d’identifier les lacunes.
10 exemples de conversation
1. Client de retour s'informant sur la commande
Scénario :
Customer: Hi, I placed an order 3 days ago and haven't received any shipping notification yet. Order #ORD-5523.
Que faire:
L'AI devrait: (1) Chercher l'ordre #ORD-5523 Passez le connecteur.2) Signaler le statut actuel et les informations de suivi si disponibles. (3) Si la commande est retardée, reconnaissez le retard et fournissez un calendrier estimatif. (4) NE PAS inventer un statut d'expédition si le connecteur n'en a pas.
2. Demande de prix par un prospect
Scénario :
Customer: How much does your Pro plan cost? Do you offer annual billing?
Que faire:
L'AI devrait: (1) Répondre à partir de la base de connaissances avec les prix actuels. (2) Expliquez la différence entre facturation mensuelle et annuelle. (3) Si la réponse n'est pas dans la base de connaissances, dites-le et proposez de les connecter avec les ventes.4) NE PAS inventer des prix qui ne sont pas dans la base de connaissances.
3. Client en colère exigeant un remboursement
Scénario :
Customer: This is ridiculous! Your product does not work and I want my money back NOW.
Que faire:
L'IA devrait: (1) Reconnaissez la frustration calmement. (2) Demandez le numéro de commande ou l'email de compte. (3) Expliquer le processus de remboursement. (4) Créer un ticket de support ou passer à un agent humain. (5) Ne promettez PAS un remboursement, qui nécessite l'approbation humaine.
4. Cas de double facturation
Scénario :
Customer: I was charged twice this month. My bank shows two charges of $29.99.
Que faire:
L'AI devrait: (1) Reconnaître la préoccupation. (2) Recueillir les détails pertinents (courriel, dates des charges).3) Expliquer que les problèmes de facturation nécessitent un examen humain. (4) Créer un ticket de service de facturation avec les détails. (5) Définissez la priorité sur Haute.
5. Client multilingue
Scénario :
Customer: Bonjour, je voudrais savoir si vous livrez en France?
Que faire:
L'AI devrait: (1) Répondre dans la langue du client si cette langue est prise en charge. (2) Répondez à la question sur la livraison en France dans la base de connaissances. (3) Si la langue n'est pas prise en charge, répondez dans la langue par défaut et mentionnez les langues disponibles.
6. Conversation après les heures de travail
Scénario :
Customer: Hello, is anyone there? I need help with my account.
Que faire:
L'AI devrait: (1) Si configuré pour l'IA après les heures d'ouverture, répondre et aider. (2) Si après les heures de bureau, des tickets sont créés, dites: "Notre équipe est actuellement hors ligne. J'ai créé un ticket d'assistance pour vous et quelqu'un fera le suivi pendant les heures ouvrables."3) Fournissez le numéro du billet.
7. Acheteur de comparaison avant achat
Scénario :
Customer: How does your product compare to [Competitor X]?
Que faire:
L'AI devrait: (1) Décrivez les forces de votre produit factuellement. (2) Ne pas calomnier le concurrent. (3) S'il existe une page de comparaison dans la base de connaissances, créez un lien vers celle-ci. (4) Si le client demande des fonctionnalités que vous n'avez pas, soyez honnête.
8. Le client veut une recommandation
Scénario :
Customer: I run a small online store with about 100 orders per month. Which plan is right for me?
Que faire:
L'AI devrait: (1) Posez des questions de clarification si nécessaire (par exemple, quelles caractéristiques sont les plus importantes).2) Recommander un plan basé sur la base de connaissances. (3) Expliquez pourquoi ce plan répond à leurs besoins. (4) Mentionnez qu'ils peuvent commencer avec un forfait plus petit et passer à une version supérieure plus tard.
9. Client essayant d'obtenir une remise non autorisée
Scénario :
Customer: I saw online that you give 50% discounts. Can I have one?
Que faire:
L'AI devrait: (1) Expliquez poliment les promotions en cours s'il y en a. (2) NE PAS créer ou promettre des remises qui ne sont pas dans la base de connaissances. (3) Si le client persiste, proposez de le mettre en relation avec l’équipe commerciale.
10. Le client a besoin d'aide avec une fonctionnalité
Scénario :
Customer: How do I export my data? I can't find the export button.
Que faire:
L'AI devrait: (1) Fournir des instructions étape par étape à partir de la base de connaissances. (2) Inclure le chemin exact de la page et l'emplacement du bouton. (3) Si la fonctionnalité nécessite un plan particulier, mentionnez-le. (4Si la fonctionnalité n'existe pas, soyez honnête et suggérez des alternatives.
Appui
Routage et escalade des chats
Lorsqu’un chat en direct nécessite une personne réelle, l’IA répond à deux questions : quelle équipe est propriétaire de cette conversation et qui doit être informé. Les deux sont configurés dans Paramètres, Chat client, Flux d’assistance, sous Départements de routage AI.
Choisir les départements que l'IA peut utiliser
Les deux cases de ce panneau sont une liste blanche. Les départements déplacés vers la droite sont les seuls auxquels l’IA peut acheminer ou ouvrir des tickets. Tout ce qui est laissé sur la gauche est invisible pour elle, même si le département existe et qu’il est doté d’un personnel.
💡
Si aucun département n'est activé, OpsIQ revient au routage hérité à travers tous les départements qu'il peut trouver. Traitez cela comme un filet de sécurité, pas un choix de configuration.
Qui reçoit l'escalade
C’est la partie que la plupart des gens s’attendent à configurer et n’ont pas besoin de le faire. Lorsque l’IA fait passer un chat en mode avancé, OpsIQ envoie un e-mail aux personnes attachées à ce service. Vous gérez cette liste une fois, sur la page Équipe et services, et les deux escalades de ticket et de chat suivent.
Membres de l'équipe du département
Chaque administrateur actif attaché au département reçoit sa propre copie, les comptes suspendus et désactivés sont ignorés.
Administrateur principal
Utilisé quand aucun membre de l'équipe n'est attaché, donc une escalade atteint toujours quelqu'un.
Personne attaché
Le panneau de routage marque ce service en rouge et l’IA ne dit pas au visiteur qu’un humain a été notifié.
⚠️
L'adresse de courriel du service n'est délibérément jamais utilisée comme destinataire. Cette adresse est la boîte aux lettres des tickets entrants du service, celle avec laquelle les messages entrants sont comparés pour ouvrir des tickets. Une escalade envoyée à cette adresse serait renvoyée en tant que nouveau ticket plutôt qu'atteindre une personne.
Le département catch-all
Il reçoit les conversations que l’IA ne pouvait pas placer avec confiance, et c’est un dernier recours plutôt qu’un chemin normal.
1
Des signaux clairs gagnent
Le libellé de facturation va à un service de facturations, le libellé d’hébergement et d’erreur à un département technique, le texte d’achat aux ventes.
2
Le classificateur d'IA essaie ensuite
Si les mots-clés ne sont pas concluants, le modèle lit la conversation et choisit parmi les départements activés.
3
Puis le catch-all
Ce n’est que lorsque les deux sont vides que le service de capture reçoit le chat.
4
Le garde des ventes
Si le catch-all est un service commercial et que le visiteur n'a montré aucun signal d'achat, OpsIQ recherche à la place un service technique ou de support, afin que les questions de support ordinaires ne s'accumulent pas dans Sales.
Ce qui est dit au visiteur
Si l’e-mail d’escalade sort, l’IA dit au visiteur que l’équipe a été notifiée. S’il ne peut pas sortir, l'IA dit quelque chose de honnête et les invite à laisser le message dans la discussion à la place.
Le panneau indique « Personne à aviser » pour un ministère+
Personne n'est attaché à ce panneau. Ouvrez Équipe et Départements, attachez au moins un administrateur actif, puis rechargez la page des paramètres.
Les escalades de chat peuvent-elles aller ailleurs que dans l'équipe?+
Oui, une adresse personnalisée précédemment enregistrée pour un service remplace toujours la liste d'équipe. Les nouvelles configurations doivent associer les personnes au service à la place, de sorte qu'il y ait un seul endroit à maintenir.
Pourquoi mon catch-all a été sauté?+
Si c'est le cas et que le visiteur n'a pas montré de signe d'achat, OpsIQ achemine délibérément l'utilisateur vers un service technique ou de support.
Appui
Boîtes aux lettres et brouillons
OpsIQ peut se connecter aux boîtes de messagerie pour créer automatiquement des tickets à partir d'e-mails entrants et envoyer les réponses sous forme d'email.
CourrielRecevez les e-mails via IMAP (ou en les transférant), transformez chacun d'eux en ticket et laissez l'IA rédiger une réponse pour examen.
Connexion d'une boîte aux lettres
Protocole
IMAP (la plupart des fournisseurs), Gmail API (Google Workspace), ou Microsoft Graph (Outlook 365).
Paramètres nécessaires
Hôte, port, chiffrement (SSL/TLS), nom d'utilisateur, mot de passe ou mot de passer d'application, dossier (généralement INBOX).
Cartographie des départements
Les e-mails envoyés à [email protected] créent des tickets dans le département "Support".
Configuration de Gmail (étape par étape)
1
Activer la vérification 2-Step
Allez dans Compte Google > Sécurité > 2-Step Verification et activez cette option.
2
Créer un mot de passe d'application
Aller à Google Compte > Sécurité > Mot de passe d'application. Sélectionnez "Mail" et "Autre (OpsIQ)". Copier le16- un mot de passe caractéristique.
3
Entrez dans OpsIQ
Aller à l'email > Boîtes aux lettres > Ajouter. imap.gmail.com, port: 993, chiffrement : SSL, nom d'utilisateur: [email protected], mot de passe : le mot de Passe de l'application.
4
Essai
Si l'opération est réussie, OpsIQ commencera à rechercher de nouveaux e-mails à l'intervalle configuré.
Configuration d'Outlook 365
1
Vérifiez que IMAP est activé
Dans les paramètres Outlook > Courrier > Synchroniser le courrier électronique, assurez-vous que IMAP est activé.
2
Utiliser le mot de passe d'application ou l'authentification moderne
Si l’authentification multifacteur est activée, créez un mot de passe d’application. Sinon, utilisez votre mot de passer habituel.
3
Entrez dans OpsIQ
Hôte : outlook.office365.com, port : 993, chiffrement : SSL, nom d’utilisateur : [email protected].
cPanel configuration de webmail
1
Trouver les paramètres IMAP
In cPanel > Comptes e-mail, cliquez sur votre compte e- IMAP Réglages.
2
Entrez dans OpsIQ
Hôte: habituellement mail.yourdomain.com ou votre nom d'hôte de serveur, port: 993 (SSL) ou 143 (STARTTLS), nom d'utilisateur: adresse e-mail complète.
Brouillons d'email AI
Lorsque la réponse automatique est définie sur le mode « Brouillon », l'IA génère des brouillons de réponse qui apparaissent dans la file d'attente Brouillons.
Examen
Lisez le projet et vérifiez l'exactitude.
Éditer
Modifiez le texte, le ton ou le contenu avant d'envoyer.
Envoyer
Approuvez le brouillon et envoyez-le sous forme de réponse par courrier électronique.
Jeter
Supprimer le projet s ' il n &apos.
Envoi automatique
Si la confiance est suffisamment élevée et que l'envoi automatique est activé, les brouillons sont envoyés automatiquement après un délai configurable.
Pourquoi les e-mails ne sont-ils pas convertis en tickets?+
Vérifiez : (1) La boîte aux lettres est-elle connectée et en bon état? Recherchez l’état vert dans E-mail > Boîtes aux2) Le travail cron est-il en cours d'exécution? L'interrogation par courrier électronique nécessite cron. (3) Le courriel est-il filtré ou déplacé vers un dossier autre que la BOÎTE A RECEVOIR?
Puis-je utiliser plusieurs boîtes aux lettres?+
Oui, chaque boîte aux lettres peut être associée à un département différent. [email protected] va à Support, [email protected] Aller à la facturation.
Appui
Satisfaction client (CSAT)
CSAT mesure la satisfaction des tickets et du chat, fait ressortir les réponses insatisfaites et compare l’IA aux résultats humains.
Écran de produitLa page CSAT combine des fiches de score, le suivi des détracteurs, les commentaires, la répartition par département et agent, ainsi que les commentairet du chat.
Les enquêtes sur les billets sont programmées après la fermeture (normalement 24 Une réponse positive correspond à un score de 10.4ou 5. Utilisez la file des détracteurs pour les scores de.1ou2Lisez le ticket/la conversation avant de contacter le client.
Les petites tailles d’échantillon ne doivent pas être utilisées pour classer les agents ou les modèles, car elles peuvent entraîner des erreurs de classement.
Appui
Diffusions d'e-mail d'équipe
La page Email Platform permet à un opérateur autorisé d’envoyer un message unique à tous les agents actifs, aux agents sélectionnés ou à un service et de consulter l’historique des envois.
Écran de produitLe compositeur d'e-mails d'équipe affiche l'audience, le sujet, le message et l'historique de livraison passé.
Cette page est destinée aux messages opérationnels internes, pas au marketing client. Choisissez l'audience la plus petite possible, prévisualisez les noms et adresses, puis envoyez. La livraison utilise le chemin d'envoi configuré et enregistre le résultat.
Appui
Boîtes aux lettres, livraison et courrier entrant
Configurez comment OpsIQ envoie les e-mails, transforme les messages entrants en tickets et prouve que le domaine d'envoi est prêt.
Écran de produitLes paramètres de messagerie combinent le routage sortant, l'identité d'origine, l’ingestion des boîtes aux lettres, les vérifications de délivrabilité et les e-mails de test.
Courrier électronique sortant
Les administrateurs complets peuvent choisir le connecteur de messagerie préféré; OpsIQ Revient à configured SMTP Définissez un nom/une adresse de l'expéditeur reconnaissable, envoyez un test et vérifiez la validité du message. 24-heure de succès / échec métriques.
Boîtes aux lettres
Une boîte aux lettres IMAP nécessite un nom, une adresse e-mail, le service cible, l'hôte, le port, le mode de sécurité, le nom d'utilisateur, le mot de passe, le dossier, l’état du sondage et le choix de validation des certificats. Sondage maintenant pour vérifier l’ingestion sans attendre le cron.
Piping instantané
Sur le même serveur, un pipeline de messagerie peut transmettre directement le message RFC822 brut. Un serveur de messageries distant peut envoyer le message brut au point de terminaison entrant protégé à l'aide de son jeton. Les deux chemins entrent dans le même pipeline d'acheminement des tickets, de déduplication et de threading.
Délivrabilité
La vérification SPF/DKIM/DMARC est une preuve consultative pour le domaine From configuré. Une coche verte ne garantit pas le placement dans la boîte de réception, mais un échec doit être corrigé avant d'envoyer des messages de production.
Appui
Portail de support Studio
Support Portal Studio conçoit et publie l'expérience de support client sans avoir besoin d'images externes.
Écran de produitPortal Studio affiche un aperçu réactif avec les contrôles thème, navigation, connaissances, ticket, assistant, formulaire, pied de page et CSS.
Utilisez le modèle comme point de départ, puis configurez le thème, la mise en page, la navigation, la recherche des connaissances, le formulaire de ticket, l'assistant, le pied de page, l’image de marque, le comportement du ticket et personnalisé. CSS Prévisualisez votre site sur ordinateur, tablette et mobile avant de le publier.
Appui
Lacunes dans les connaissances
La file d’attente des lacunes de connaissance recueille les questions auxquelles l’IA ne pouvait pas répondre avec confiance afin que l’équipe puisse améliorer sa couverture.
Écran de produitLa file d’attente des écarts classe les questions manquées ou à faible confiance et suit si l’équipe les a résolues.
Ouvrez un espace pour lire la question originale et la conversation à proximité, puis choisissez le bon correctif : mettez à jour un article existant, créez un nouvel article de connaissances, ajoutez un fait d’affaires, corrigez les données du connecteur ou modifiez les instructions d’escalade.
Appui
Administration de la page d'état
La page d'administration de l'état communique l'intégrité du service et les incidents à l'aide des composants, des états actuels et des mises à jour.
Écran de produitL'administration de l'état répertorie les composants et les incidents afin que les opérateurs puissent publier des informations claires sur le service horodaté.
Lorsqu'un incident affecte les clients, publiez un avis initial, ajoutez des mises à jour horodatées au fur et à mesure que les faits changent, puis fermez avec un résumé concis de la résolution. N'utilisez pas la page d'état comme journal de débogage interne; les diagnostics sensibles doivent être conservés dans les journaux du serveur et de OpsIQ.
IA
Configurez votre IA
La configuration de l'IA est le lieu où vous choisissez votre fournisseur, modèle et contrôle des coûts. OpsIQ Ce site supporte plusieurs fournisseurs: Claude (Anthropic), GPT-4o (OpenAI), Gemini (Google), et Grok (xAI). Vous pouvez utiliser votre propre API clé (BYOK) ou l’IA gérée si elle est disponible dans votre forfait.
Mettre en place AIChoisissez Managed AI ou votre propre clé, choisissez un modèle pour la vitesse par rapport à la profondeur et limitez vos dépenses mensuelles avec un budget de token.
Choisir un fournisseur
(Anthropic_)
Raisonnement fort, prudent avec les faits, bon à suivre des instructions complexes. Modèles: claude-sonnet-4-20250514, claude-3.5 Idéal pour: les conversations de soutien, les questions techniques, l'analyse détaillée.
Bon aux questions factuelles, support multilingue. Modèles:gemini-2.0-flash,gemini-1.5 Idéal pour: support multilingue, recherches factuelles.
Vert (xAI)
Réponses rapides et concises. Modèles: grok-3-mini-fast. Idéal pour : réponses rapides, ton décontracté.
BYOK vs IA gérée
BYOK (Apportez votre propre clé)
Vous recevez votre propre clé API du fournisseur et payez directement le fournisseur. Contrôle total sur la sélection des modèles et leur utilisation.
IA gérée
L'IA est fournie dans le cadre de votreOpsIQ- C'est pas le cas.APIL'utilisation est mesurée par rapport au solde de crédit AI de votre plan.
Configuration étape par étape
1
Aller à la configuration AI
Dans l'administration OpsIQ, accédez à Paramètres > Configuration de l'IA.
2
Sélectionner un fournisseur
Choisissez votre fournisseur d'IA dans le menu déroulant.
3
Entrez la clé API
Si vous utilisez BYOK, entrez votre. API Pour l'IA gérée, cette opération est effectuée automatiquement.
4
Choisissez le modèle
Sélectionnez le modèle spécifique à utiliser. Les plus petits sont plus rapides et moins chers, tandis que les plus grands donnent des réponses de meilleure qualité.
5
Connexion de test
Cliquez sur "Test de connexion" pour vérifier que la clé et le modèle API fonctionnent. Une coche verte signifie succès.
6
Enregistrer
Cliquez sur Enregistrer pour activer votre configuration d'IA.
Contrôles des coûts
Budget mensuel
Lorsque le budget est atteint, les fonctionnalités d’IA se dégradent gracieusement (réponses plus courtes, pas de réponse automatique) plutôt que de s’arrêter complètement.
Limite de jeton par conversation
Nombre maximum de jetons par conversation. Empêche les conversations débridées de consommer des crédits excessifs.
Alerte de solde faible
Lorsque votre solde de crédits d'IA tombe en dessous du seuil (par défaut: 50,000 tokens), un avertissement apparaît dans l'administration.
Configuration par espace de travail
Si vous gérez plusieurs sites, chaque espace de travail peut utiliser un fournisseur, un modèle et un budget différents. L'espace de travail hérite des valeurs par défaut globales sauf si elles sont remplacées. Pour configurer par espace de travaux: basculez vers l'endroit où se trouve l'écran d'accueil, puis accédez à Configuration AI et enregistrez les paramètres là-bas.
Obtenir les clés API
Anthropic (Claude)
Allez àconsole.anthropic.com > APIClés > Créer une clé. Copier la clé en commençant par "sk-ant-".
OpenAI (GPT)
Allez àplatform.openai.com > APIClés > Créer une nouvelle clé secrète. Copier la clé en commençant par "sk-".
Google (Gemini)
Aller à aistudio.google.com > Get API Clé. Créez une clé pour votre projet. Copiez la clé.
xAI (Grèce)
Aller à console.x.ai > API Clés. Créez et copiez votre clé.
Tester votre configuration d'IA
Scénario :
After entering your API key, click "Test connection." You should see a green checkmark and a sample response from the AI.
Que faire:
Si le test échoue: (1) Vérifiez que le API La clé est correcte (pas d'espaces supplémentaires).2) Vérifiez que la facturation de votre compte est configurée auprès du fournisseur. (3) Vérifiez que le nom du modèle est valide. (4) Si vous utilisez Managed AI, vérifiez que votre licence est active.
Quel fournisseur est le meilleur?+
Il n'y a pas de meilleur fournisseur. Claude est excellent pour les conversations d'assistance. GPT-4o est rapide et polyvalent. Gemini gère bien plusieurs langues. Essayez chacune et voyez laquelle produit les meilleurs résultats pour votre cas d'utilisation spécifique.
Puis-je changer de fournisseur plus tard?+
Oui, vous pouvez changer le fournisseur et la clé API à tout moment. L'historique de conversation existant est conservé. L'IA utilisera le nouveau fournisseur pour toutes les conversations futures.
Que se passe-t-il quand je manque de crédits?+
L’IA se dégrade avec grâce : les réponses deviennent plus courtes, la réponse automatique s’arrête et l’administrateur affiche un avertissement de solde faible. Le suivi principal, les tickets et le CRM continuent à fonctionner sans IA.
IA
Un chat client plus intelligent et moins cher
Un ensemble de contrôles opt-in qui rendent votre client chat plus intelligent (il raisons sur le compte d'un client comme un agent humain) ou moins cher (il envoie l'IA moins, ou répond en moins de étapes). Chaque contrôle est désactivé par défaut et indépendant, allumer sur jamais changer aucun autre comportement. La plupart vivent sous Paramètres > Chat client > Comportement; quelques sont sur Configurer votre AI et Trainez votre AI.
Réponses plus intelligentes (mode agent)
Un chatbot normal répond à une question par recherche. Avec Mode d'agent sur, l'assistant peut faire plusieurs vérifications de compte en lecture seule en un seul tour et les recouper, par exemple « ai-je des billets ouverts, et est mon solde assez pour mon prochain renouvellement? » est répondu dans une réponse avec les maths fait. Il engage seulement pour les clients vérifiés pour compte ou de remboursement des questions; tout le reste exécute le chemin normal d'une réponse unique.
Mode d'agent
Jusqu'à quelques recherches en lecture seule par tour, recoupées avant de répondre. Allumez lorsque vous avez une plate-forme connectée (WHMCS, Shopify, Stripe, Zendesk, etc.). Off = le comportement mono-aspect d'aujourd'hui, inchangé.
Profondeur de réflexion pour les réponses des agents
La difficulté du modèle à raisonner sur des virages complexes (faible/moyen/haut) Commencez par le niveau faible ; la plupart des questions de support sont bien traitées là.
Modèle d ' agent
Épingle un modèle plus fort pour les tours d’agent complexes, de sorte que le chat quotidien reste sur un modèle léger et bon marché et que seuls les toures difficiles paient pour la profondeur.
Planifier les réponses à un seul passage (bêta)
Une petite étape de planification décide quelles recherches tirer et si la base de connaissances est nécessaire, puis répond en ONE appel principal au lieu de plusieurs étapes. Un sous-toggle sous le mode Agent. Il ne peut être activé que si le mode agent est activé. Même qualité de réponse, moins d'appels sur les questions multi-parties.
Conversation & compréhension
Mémoire de longues conversations (bêta)
Conserve un bref résumé des anciens messages (noms, numéros de ticket/facture, montants, décisions) afin que l'assistant reste cohérent sur les conversations très longues sans renvoyer la transcription entière. Idéal pour les longs threads à forte intensité d'assistance; s'associe au mode Agent.
Tolérance au typo
Lit les petites fautes de frappe ("mes tickets ouverts", "facture non payée") comme des mots prévus afin que la bonne information soit trouvée au lieu d'être manquée. Fonctionne avec toutes les plateformes connectées.
Contexte du compte Lean
Ne fixe l'instantané du compte du client que lorsque la question porte sur son compte (solde, factures, billets, services), en le faisant passer sur des questions générales.
Économie de coûts
Ignorer la recherche de connaissances pour les salutations (bêta)
"Hi", "merci" et "ok" ne déclenchent pas une recherche de base de connaissances, ces réponses ne l'utilisent jamais. Tout message avec le contenu réel recherche toujours comme normal.
Réponse la plus longue autorisée (tokens)
La longueur de la réponse est le point le plus coûteux d'un appel, donc un plafond raisonnable (environ 500 pour l'assistance) est le contrôle des coûts du chat le plus efficace. Cela ne fait qu'abaisser votre limite globale, jamais l'augmenter.
Configurez votre IA
Profondeur de réflexion (chat client & admin)
Le temps que le modèle pense avant de répondre (minimum à élevé). Gardez le chat client sur minimal/bas pour la vitesse. Réservez des paramètres plus élevés pour l'analyse et le copilote administrateur.
Modèle par IA (par tâche)
Chaque surface d'IA (chat en direct, brouillons de tickets, résumés, analyse, copilote administratif, promotions, Intelligence du site et plus) peut fonctionner sur son propre modèle.
Contrôles des coûts de chat d'administration
Le copilote administrateur peut garder une mémoire de travail limitée et charger uniquement les outils dont une question a besoin (outils lean) au lieu de chaque outil à chaque tour.
Entraînez votre IA
Instructions de compresser
Vos instructions sont envoyées à chaque tour, de sorte que leur longueur est un coût récurrent. Le bouton Compresse réécrit une fente pour dire la même chose en moins de mots. Il refuse la réécriture si elle laisserait tomber n'importe quelle {variable} ou règle, et rapporte ce qu'il a protégé, donc il ne change jamais silencieusement le sens.
"Ce qui est déjà dans le cerveau" (ℹ️)
Affiche ce que OpsIQ sait déjà sur votre entreprise par emplacement, de sorte que vous pouvez supprimer tout ce que vous répétiez dans vos propres instructions.
💡
Pour le court entretien de l'entrée (instructions + données de compte + historique, envoyé chaque tour) coûte généralement plus que la réponse courte, le cache et le contexte maigre aident le plus là. Pour le contenu généré depuis longtemps, la sortie domine. Le plafond de longueur de réponse et une profondeur de pensée inférieure y paient. Voir Configurez votre AI pour garder la mise en cache rapide, ce qui rend la grande partie répétée de chaque tour bon marché.
Est-ce que cela change la façon dont le chat répond déjà?+
Non, chaque contrôle est désactivé par défaut et indépendant. Activer un contrôle ajoute seulement son comportement ; le désactiver remet le chat exactement comme il fonctionnait avant.
Dans quel ordre dois-je les allumer?+
Exécutez le chat quotidien sur un modèle léger et épinglez un modèle d’agent plus puissant. Ensuite, si vous avez une plateforme connectée, activez le mode Agent, puis Planifiez à l’avance, puis la mémoire de longue conversation. Puis réduisez le contexte, ignorez les KB pour les salutations et ajoutez une limite de réponse.
Le kit Admin Agent: recherche web, runbooks, missions, transfert de fichiers
Le chat d’IA de l’administrateur est un ingénieur en activité, pas seulement une boîte à questions. Il peut rechercher des correctifs sur le Web, conserver une bibliothèque de vos procédures d’exploitation, patrouiller vos serveurs selon un calendrier et déplacer des fichiers. La plupart de ces fonctionnalités sont gérées par demande dans le chat; la seule chose que vous configurez à l’avance est le fournisseur de recherche Web qu’il utilise, sur la page Configuration de votre IA.
Recherche sur le Web
Construit en
L'agent recherche sur le web des documents, des messages d'erreur et des informations actuelles pendant qu'il fonctionne. Hors de la boîte, il utilise DuckDuckGo, qui ne nécessite aucune clé ni configuration.
Livres d'exécution
Dans le chat
Une bibliothèque de vos procédures (« comment faire X ici ») que l’agent peut noter après avoir réussi un travail délicat et suivre la prochaine fois, afin que le savoir-faire survive à la fin du chat.
Missions
Programmé
Patrouilles en lecture seule planifiées. « Chaque matin, vérifiez l'espace disque et les journaux d'erreurs et informez-moi » Les résultats arrivent sur votre cloche d'administration.
Transfert de fichiers
Dans le chat
Demandez un fichier log et obtenez un lien de téléchargement privé, ou faites copier un fichier d'un serveur connecté à un autre, les deux limités à 5 MB.
Recherche Web de l'agent Admin (sur Configurer votre IA)
Fournisseur de recherche
Ce que l'agent de recherche Web utilise. La valeur par défaut est DuckDuckGo: sans clé, gratuit, fonctionne sur toutes les installations. Serper.dev (Résultats Google) renvoient généralement de meilleurs résultats mais chacun a besoin d'un API Si un fournisseur de clé échoue pour une raison quelconque (mauvaises clés, quota utilisé, problème de réseau), cette recherche revient automatiquement à DuckDuckGo, donc la recherche n'est jamais obscurcie.
Recherche de la clé API
La clé du fournisseur choisi, uniquement nécessaire pour Brave, Tavily ou Serper. Une fois enregistrée, elle est masquée et ne s'affiche plus sur la page; collez-en une nouvelle pour la remplacer. Un fournisseur avec clé n'est actif que lorsque le fournisseur et sa clé sont sauvegardés.
Livres d'exécution
Lorsque l'agent vient de terminer une tâche que vous souhaitez faire à nouveau, dites "enregistrez-la comme un runbook appelé nightly-cleanup". À partir de là, il voit le runbook par son nom dans chaque session et lorsque vous demandez la tâche par son Nom (ou la décrivez), il récupère les étapes et les suit.
💡
Un runbook est un guide, pas une autorisation. Lorsque l'agent en suit un, chaque étape qui modifierait un serveur passe toujours par votre mode d'autorisation actuel et affiche les cartes d'approbation habituelles. Un runbook ne peut jamais contourner une approbation.
Missions
Une mission est un travail récurrent que l'agent exécute seul : toutes les heures, tous les jours à une heure définie ou chaque semaine un jour donné. Les missions sont conçues en lecture seule. Elles peuvent lire des serveurs, des données et le Web, mais elles ne peuvent jamais rien changer ; elles enquêtent et font rapport. Quand une mission se termine, les résultats atterrissent sous forme de notification sur votre sonnette d'administration.
⚠️
Les missions sont exécutées par le cron OpsIQ, donc il faut le paramétrer (voir Cron et automatisation). Un "run it now" unique depuis le chat fonctionne même entre les runs de cron sur la plupart des serveurs.
Déplacement de fichiers
Demandez un fichier ("obtenez le journal d'erreurs du serveur web pour aujourd'hui") et l'agent le prépare et vous répond avec un lien de téléchargement privé. Le lien ne fonctionne que pour les administrateurs connectés et expire après environ une journée. Les fichiers sont limités à 5 MB; pour tout ce qui est plus gros, demandez à l' agent de compresser ou de couper sur le serveur en premier.
L'agent peut également copier un seul fichier entre deux serveurs connectés, toujours jusqu'à 5 MB. L'écriture sur la destination est traitée comme toute autre modification qu'il effectue: en mode demande vous obtenez d'abord une carte d'approbation, le fichier existant est sauvegardé et la copie est réversible. Pour plus de sécurité, le contenu du fichier est relu à partir de la source au moment où la copie a été appliquée, pas prise du chat.
IA
Entraînez votre IA
La formation à l’IA est le processus par lequel vous apprenez à OpsIQ comment se comporter. Vous écrivez des instructions qui définissent la personnalité, les limites, le domaine de compétence et les règles d’escalade.
Train AIFormez l'IA comme une nouvelle location, Manuels clients et administratifs rédigés en anglais simple (ton, toujours, jamais), basé sur votre KB.
Deux zones d'entraînement
Invite de l'IA client
Contrôle la façon dont l’IA parle à vos clients dans le widget de chat C’est l’invite la plus importante à bien faire.
Invite d'IA de l'administrateur
Contrôle la façon dont l'IA assiste votre équipe d'administration dans le tableau de bord de l'opérateur, en gérant les requêtes internes et l'exécution des actions.
Rédiger une excellente invite d’IA client
Votre message d’IA client devrait couvrir ces domaines:
1
Identité
Donnez-lui un nom, un rôle et une personnalité. Exemple : « Vous êtes Luna, une assistante du service clientèle sympathique et compétente pour Acme Store ».
2
Ton et style
Exemple : « Soyez professionnel mais chaleureux. Utilisez un langage simple. Évitez le jargon. Gardez les réponses concises (2-3 20 paragraphes max)."
3
Les frontières de la connaissance
Exemple : « Vous connaissez nos produits, nos prix, notre politique d'expédition et de retour. Vous ne connaissez PAS les produits des concurrents ni les décisions internes de l'entreprise ».
4
Règles d ' escalade
Exemple : « Passez à un agent humain lorsque le client demande un remboursement, mentionne une action en justice, signale un problème de sécurité ou pose la même question trois fois. »
5
Choses à ne jamais faire
Exemple : « Ne jamais promettre de remboursements, ne jamais partager les formules internes de tarification, ne pas inventer des caractéristiques de produits qui n'existent pas, ne donner aucun conseil médical, juridique ou financier ».
Exemple d'invites
Exemple client AI prompt · boutique en ligne
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
Exemple client AI prompt · entreprise d'hébergement
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
Affinez votre prompt au fil du temps
1
Démarrer avec les bases
Commencez par définir l’identité, le ton et les limites de la clé. N’essayez pas de tout couvrir dès le premier jour.
2
Revue AI History hebdomadaire
Lisez les conversations où l'IA a donné des réponses erronées ou sous-optimales.
3
Mettre à jour l'invite
Ajouter des règles spécifiques pour les problèmes récurrents. Exemple : si l'IA continue de promettre des remboursements, ajouter « Jamais promettre un remboursement. Dites que vous allez augmenter à l'équipe de facturation ».
4
Ajouter des connaissances
Si l'IA ne peut pas répondre à une question, ajoutez la réponse à la base de connaissances plutôt que d'essayer de tout mettre dans l'invite.
⚠️
Gardez votre prompt sous 2,000 mots. Des prompts trop longs peuvent confondre l'IA et augmenter les coûts de token.
Quelle est la différence entre l'invite et la base de connaissances?+
L’invite définit la personnalité, les limites et les règles de l’utilisateur, tandis que la base de connaissances fournit des informations factuelles (détails du produit, prix, politiques). L’IA lit les deux, mais l’invité façonne le comportement tandis qu’elle fournit les réponses.
Puis-je avoir des invites différentes pour différents départements?+
Si vous avez besoin d’un comportement différent de l’IA pour différents services, utilisez la base de connaissances pour fournir des informations propres à chaque service et mentionnez le contexte du service dans votre invite.
IA
Histoire de l'IA
L’historique de l’IA affiche toutes les conversations que l’AI a eues avec des clients et des administrateurs, ce qui vous permet d’auditer ses performances, de trouver de mauvaises réponses et d’identifier les lacunes en matière de formation.
Histoire de l'IAChaque tour AI (chat, brouillon de tickets, action admin) est enregistré avec l'invite exacte, réponse, durée et résultat.
Ce que chaque conversation révèle
Date et heure
Quand la conversation a eu lieu.
Identité du client
Nom et courriel si connu, sinon IP et le pays.
Canal
Widget de chat, réponse automatique aux tickets, brouillon d’e-mail ou IA administrateur.
Messages
Transcription complète de la conversation: messages clients et réponses d’IA.
Utilisation de token
Une utilisation élevée de jetons peut indiquer que l'IA donne des réponses trop détaillées ou que la conversation a continué en rond.
Mesures prises
Toutes les actions exécutées par l'IA pendant la conversation (recherche d'ordre, création de ticket, etc.).
Évaluation
Si CSAT est activé, la note de satisfaction du client pour cette conversation.
Trouver des problèmes
Recherche par mot-clé
Recherchez des sujets spécifiques pour voir comment l'IA les traite, par exemple: recherchez "refund" (remboursement) pour vérifier si l'AI suit votre politique de remboursement.
Filtrer par classement
Affichez uniquement les conversations mal notées pour vous concentrer sur les clients insatisfaits.
Filtrer par canal
Afficher uniquement les réponses automatiques des tickets pour auditer les réponset automatisées séparément du chat.
Trier par utilisation de jeton
Les conversations à haute valeur peuvent indiquer des problèmes : l’IA vagabonde, tourne en rond ou ne répond pas à la question.
Routine d'audit hebdomadaire
1
Vérifiez les conversations peu appréciées
Qu’est-ce qui a mal tourné? S’agissait-il d’un manque de connaissances, d’une question de ton ou d’ une mauvaise réponse?
2
Vérifiez les conversations à haut jeton
Ces réponses peuvent indiquer une certaine confusion. L’IA se répétait-elle? A-t-elle échoué à comprendre la question?
3
Mise à jour de la formation
Pour les lacunes dans les connaissances, ajoutez des articles à la base de connaissance. Pour les problèmes de comportement, mettez à jour l’invite d’IA et pour les mauvaises réponses récurrentes, ajouter des règles de correction explicites.
Détecter les lacunes de connaissances
Scénario :
You search AI History for "installation" and find 15 conversations where the AI said "I do not have specific installation instructions for this product."
Que faire:
Cela signifie que votre base de connaissances ne contient pas les guides d'installation. Créez des articles pour chaque étape d'instalation du produit, puis posez les questions d'IA sur l'installations.
IA
Insights sur l'IA
AI Insights analyse automatiquement les modèles de conversation et fait ressortir des résultats exploitables : questions courantes, tendances en matière de satisfaction, lacunes dans les connaissances et schémas d’escalade.
Insights sur l'IALe véritable Hub d'intelligence: un résumé du jour écrit par l'IA, des alertes intelligentes pour les anomalies, le score de prospect à la demande et l'analyse de page, ainsi que le modèle de trafic 14-day.
Ce que les insights montrent
Questions les plus fréquentes
Les questions les plus fréquemment posées. Si « Comment puis-je réinitialiser mon mot de passe? » est #1, votre base de connaissances a besoin d'un guide de remise à zéro bien visible.
Tendances de satisfaction
CSAT scores au fil du temps. La satisfaction en matière d'IA s'améliore-t-elle ou diminue-t'il? Des gouttes soudaines peuvent indiquer un changement de base de connaissances qui a brisé quelque chose.
Taux de résolution
Quel est le pourcentage de conversations que l’IA résout sans intervention humaine? Un taux supérieur à 70% C'est bon. Ci-dessous 50% Cela signifie que l'IA a besoin de plus d'entraînement.
Raisons de l ' escalade
Raisons courantes: le client a demandé un humain, l’IA n’a pas pu répondre, sujet sensible, problème de facturation.
Lacunes dans les connaissances
Sujets où l'IA dit fréquemment "Je ne sais pas" ou donne des réponses peu fiables.
Durée moyenne de la conversation
Des conversations très longues (10+ messages) peuvent indiquer que l'IA ne comprend pas la question.
Utiliser les informations pour améliorer
Scénario :
AI Insights shows that 23% of escalations are "Customer asked about warranty" and the AI could not answer.
Que faire:
Il s'agit d'un manque de connaissances évident. Étapes: (1Rédiger un article complet sur la garantie dans la base de connaissances, qui couvre toutes les conditions de garantie, le processus de réclamation et les exclusions.2) Mettre à jour l'invite AI pour faire référence aux informations de garantie. (3Surveillez AI Insights la semaine prochaine pour voir si les escalades de garantie diminuent.
IA
Manuel d'IA pour les administrateurs
L'IA Admin (Ask OpsIQ) aide votre équipe à gérer OpsIQ Vous pouvez lui demander de rechercher des données, d'expliquer les fonctionnalités, de résumer les tickets et d'effectuer des actions sur la plateforme.
Admin IADites à l'administrateur ce que vous voulez en anglais clair; il propose l'action exacte (scoped, réversible, audité) et attend votre confirmation.
Ce que l'IA de l'administrateur peut faire
Recherchez les données
Demandez: "Montrer tous les billets de [email protected]" ou "Quel est le statut de la commande #ORD-5523?"
Résumer
Dis: "Résumez les derniers 10"Quels sont les principaux problèmes de support cette semaine?"
Expliquer les caractéristiques
Demandez-vous : « Comment puis-je configurer la réponse automatique? » ou « Que signifie le taux de rebond?
Exécuter des actions
Demandez: "Créer un ticket pour [email protected] Informations sur la facturation" ou "Fermer le ticket T-12345"
Requêtes de plateforme
Demandez-vous : « Combien de visiteurs avons-nous eu hier? » ou « Quel est notre chiffre d'affaires ce mois-ci?
Exemple de conversations
Recherche d'un client
Scénario :
Admin asks: "Find customer [email protected] and show me their recent activity"
Que faire:
L’IA recherche le client dans toutes les sources de données connectées : sessions des visiteurs, tickets, conversations sur chat, commandes et contacts CRM. Elle renvoie un résumé de l’activité récente avec des liens vers chaque élément.
Obtenir un résumé quotidien
Scénario :
Admin asks: "What happened today?"
Que faire:
L'IA résume: "Aujourd'hui, vous aviez245visiteurs (en haut)12%), 8nouveaux billets (3résolue par AI),2nouvelles commandes totalisées$198et1chat escalade sur un retard d'expédition."
Exécuter une action
Scénario :
Admin asks: "Change ticket T-5523 priority to Urgent"
Que faire:
L'IA confirme : « Je vais changer la priorité du ticket T-5523 de Normal à Urgent. Cela affectera le minuteur SLA. Confirmer? » Vous confirmez, et l'action est exécutée.
💡
L'IA Admin n'exécute que les actions enregistrées dans le Registre d'Actions, elle ne peut pas inventer des actions ou accéder à des systèmes en dehors de OpsIQ.
IA
Scénarios d'IA client
Cette section couvre les scénarios d'IA courants face aux clients avec le comportement attendu et des conseils de formation.
L'IA clientUne bibliothèque de vraies questions client et exactement comment l'IA doit gérer chacun, pour tester votre formation et trouver des lacunes.
Bibliothèque de scénarios
Demande de statut de commande
Scénario :
Customer: "Where is my order #12345?"
Que faire:
Comportement attendu de l'IA: (1) Recherchez la commande via le connecteur de plateforme. (2) Signaler l'état actuel (traitement, expédié, livré).3) Inclure le numéro de suivi si disponible.4) Si la commande est retardée, accuser réception et fournir un calendrier estimatif. (5) Ne jamais inventer des informations de suivi.
Demande de réinitialisation du mot de passe
Scénario :
Customer: "I forgot my password and cannot log in"
Que faire:
Comportement attendu de l'IA: (1) Fournissez les étapes de réinitialisation du mot de passe à partir de la base de connaissances. (2) Inclure le lien de réinitialisation ou le chemin d'accès à la page. (3) Mentionnez que l'email de réinitialisation peut prendre quelques minutes. (4) Suggérer de vérifier le dossier spam. (5) Si le client ne peut toujours pas réinitialiser, passez à un humain.
Demande de fonctionnalité
Scénario :
Customer: "Can you add dark mode to the mobile app?"
Que faire:
Comportement attendu de l'IA: (1) Je les remercie pour leur suggestion. (2) Expliquer comment les demandes de fonctionnalité sont traitées (enregistrées, examinées, hiérarchisées).3) NE promettez PAS que la fonctionnalité sera construite. (4) Si une fonctionnalité similaire existe, mentionnez-la.
Litige de facturation
Scénario :
Customer: "I was charged but my service is not working"
Que faire:
Comportement attendu de l'IA: (1) Reconnaître la frustration. (2) Vérifiez l'état du service si possible. (3) Communiquez avec le service de facturation pour obtenir tous les détails. (4) Ne promettez PAS un remboursement. (5) Définissez la priorité du ticket sur Haute.
Question hors sujet
Scénario :
Customer: "What is the weather like in London today?"
Que faire:
Comportement attendu de l'IA: (1"Je suis l'assistant technique de votre [entreprise] et je peux vous aider à répondre aux questions sur nos produits et services. Pour obtenir des informations météorologiques, essayez un service météo."2) Demandez s'ils ont une question sur un produit.
Comment tester le comportement de l'IA client?+
Ouvrez votre site Web dans un navigateur privé/incognito et discutez avec l’IA en tant que client. Essayez des questions courantes, des cas extrêmes et des scénarios contradictoires Vérifiez que l’AI suit vos règles de prompt et utilise correctement le contenu de la base de connaissances.
IA
Base de connaissances sur l'IA
La base de connaissances est une bibliothèque d’articles que l’IA utilise pour répondre aux questions. Lorsque le client pose une question, l’AI recherche dans la base de données les articles pertinents et les utilise pour générer une réponse précise et fondée.
Base de connaissancesParcourez votre site et importez des documents dans la base de connaissances; l'IA récupère les bons éléments et réponses, ancrés et cités.
Comment ça fonctionne
1
Le client pose une question
"Quelle est votre politique de retour?"
2
L’IA recherche dans la base de connaissances
OpsIQ trouve l'article "Politique de retour" en faisant correspondre les mots-clés et la signification sémantique.
3
L’IA génère une réponse
L’IA lit l’article et rédige une réponse en langage naturel basée sur le contenu de l’Article.
4
Le client obtient une réponse précise
La réponse est basée sur votre politique réelle, pas les données générales de formation de l'IA.
Créer de bons articles
Un sujet par article
Rédigez un article distinct pour chaque sujet : politique de retour, tarifs d'expédition, configuration du compte, réinitialisation du mot de passe.
Écrire comme un FAQ
Commencez par la question que les clients posent, puis fournissez la réponse pour aider l’IA à faire correspondre les questions aux articles.
Soyez spécifique
« Les retours doivent être initiés dans les 30 jours suivant la livraison » est mieux que « Nous avons une politique de retour. »
Inclure les cas de bord
Qu’en est-il des retours internationaux, des produits numériques et des articles achetés en solde? Couvrez les exceptions.
Gardez-le à jour
Supprimez les informations obsolètes. Mettez à jour la tarification, les politiques et les procédures lorsqu’elles changent.
Articles de démarrage que vous devriez écrire
Expédition et livraison
Frais d'expédition, délais de livraison, suivi, expédition internationale et retards de manutention.
Retours et remboursements
Fenêtre de retour, conditions, processus, calendrier de remboursement et exceptions.
Gestion de compte
Réinitialisation du mot de passe, changement d'adresse e-mail, suppression de compte et exportation des données.
Prix et facturation
Descriptions des plans, cycle de facturation, méthodes de paiement, factures et monnaie.
Guides de produits
Comment utiliser chaque produit ou fonctionnalité. Instructions étape par étape avec captures d'écran.
Dépannage
Problèmes courants et solutions. Messages d'erreur et leurs correctifs.
Informations de contact
Heures d'ouverture, canaux de support, délais de réponse et voies d'escalade.
Juridique et conformité
Résumé de la politique de confidentialité, résumé des conditions d'utilisation, demandes de données GDPR.
Connaissance du connecteur
Chaque connecteur peut apporter des connaissances à l’IA. Lorsqu’un connecteur est activé, ses articles de connaissance intégrés (catalogue de produits, questions courantes, dépannage spécifique à la plateforme) sont automatiquement disponibles pour l’AI. Vous pouvez activer ou désactiver les connaissance de connecteur par connecteur dans les paramètres du Connecteur.
Budget de jetons
La base de connaissances dispose d'un plafond configurable (par défaut: 32,000 jetons) qui contrôle la quantité de contexte de connaître envoyé à l'IA par conversation. Si votre base de données est très grande, l'AI sélectionne les articles les plus pertinents dans ce budget. Augmentez le plafond si l'intelligence artificielle ne trouve pas d'articles pertinents; diminuez-le si vous souhaitez réduire les coûts des jetons.
Combien d'articles dois-je avoir?+
Commencez par5-10 Ajoutez-en d'autres à mesure que vous identifiez des lacunes grâce à l'historique de l'IA et aux informations sur l'intelligence artificielle. La plupart des entreprises ont besoin 20-50 Articles pour une couverture complète.
Puis-je importer des articles d'un autre système?+
Actuellement, les articles sont créés manuellement dans OpsIQ Vous pouvez copier et coller du contenu à partir de FAQ, centres d'aide ou documents existants.
Dans quel format les articles doivent-ils être?+
Le texte brut fonctionne mieux. L'IA comprend le langage naturel mieux que HTML ou markdown structuré. Écrivez comme vous expliqueriez à un client.
IA
Évaluation de l’IA et Watchtower
Les ensembles d'évaluation transforment les questions critiques des clients en tests répétables pour la qualité de réponse, les citations, l'escalade et la sécurité d'action.
Écran de produitL’évaluation de l’IA liste les cas d’essai, les comportements requis, les derniers résultats et les exécutions prévues de Watchtower.
Les administrateurs complets peuvent créer des jeux d’évaluation avec une instruction, les libellés de sources attendus, les citations obligatoires, les règles de confirmation humaine et les attentes en matière d’escalade
La Tour de Garde Planifie des vérifications quotidiennes ou hebdomadaires via cron et exécute un nombre limité de cas (jusqu'à huit par passage planifié) Examine les échecs en même temps que le fournisseur/modèle, la version prompt, la Version de connaissance, les actions proposées et le coût avant de modifier le comportement de production.
IA
Langues et traduction
Langues gère le texte traduit destiné au client et le comportement utilisé lorsque OpsIQ suit la langue du client.
Écran de produitLa page Langues affiche la langue source, les langues traduites, l'état brouillon/en direct et le comportement de la langue du client.
OpsIQ Définissez correctement la langue source avant de créer des traductions, ajoutez les langues cibles, puis vérifiez les brouillons avant de publier. « Suivre la langue du client » contrôle la langue de réponse ; traduire l’interface du widget contrôle ses boutons, ses étiquettes et le texte du système.
Ne vous fiez pas à la traduction automatique pour les textes juridiques, de remboursement ou de sécurité sans avoir reçu une révision humaine.
Chaque endroit qui contient votre propre formulation est répertorié avec son nombre de messages: messages de chat client, promotions, messages proactifs, flux de chat, visites guidées, annonces, bulles teasers et plus encore. Sondages et formulairesLa surface du sondage couvre entièrement chaque sondage publié : titre, toutes les questions, toutes le choix de réponses, boutons, copie d’accueil et de remerciement, page chrome et pages des résultats. Les clés sont liées à l’ID de la question et à la valeur de l’option, donc en réordonnant les questions ou les options vous ne perdez jamais une traduction, et en reformulant un message, ce dernier est seulement traduit.
Le sondage par e-mail post-chat suit la langue dans laquelle le visiteur a réellement discuté, à condition que cette langue soit une des langues proposées ici. Sinon, il utilise la langue de votre système. Ses six champs modifiables sont traduits sur cette page également et ce comportement dispose de son propre commutateur dans les paramètres du chat client.
Messages de ticket et de portail couvre les opérateurs de texte fixe tapent une fois et chaque client reçoit ensuite dans cette langue: l'accusé de réception du ticket, les confirmations ouvertes, fermées et de rétroaction, les sign-offs par département et la ligne d'accueil portail. (La réponse automatique AI n'a pas besoin de cela, il répond déjà dans la langue du client.) Envoyez des e-mails à vos clients dans leur propre langue activé en OpsIQ L'écriture, l'email du ticket résolvent la langue du destinataire dans cet ordre : la langue qu'ils ont choisie dans le portail ou le centre d'aide (porté sur le ticket), la localité de leur enregistrement de contact, puis la langue dans laquelle ils ont écrit, détectée localement par la plage de scripts et les mots marqueurs, sans appel externe. Seules les langues sélectionnées sur la page Langues sont jamais utilisées, donc la fonctionnalité est inerte jusqu'à ce que des langues soient ajoutées. HTML e-mail wrapper n'est délibérément pas traduit: c'est un balisage, pas de la prose. L'e-mail adressé au personnel (notifications, alertes départementales, mémoires d'analystes, rapports programmés, le digest hebdomadaire) utilise toujours le langage système.
Appui
Centre d'aide
Votre centre d'aide est un site d'assistance en libre-service créé à partir des articles que vous publiez. Les clients peuvent le lire et y effectuer des recherches sur sa propre page publique, ainsi qu'à l'intérieur du widget de chat, afin de trouver les réponses par eux-mêmes avant même d'ouvrir une conversation. Tout ce qui s'y trouve provient de votre base de connaissances, donc le contenu qui sous-tend votre IA alimente également votre aide publique.
Où vos clients le voient
Sa propre page publique
Un site d'aide propre et consultable à /help.php. Les clients peuvent naviguer par catégorie, rechercher et ouvrir n'importe quel article. Vous pouvez lui donner votre propre nom et style.
À l'intérieur du widget de chat
Un lien d’aide dans le widget de chat pour que les clients puissent rechercher vos articles sans quitter le chat et, s’ils ont encore besoin d’une personne, ils sont à un seul clic du début d’un échange.
Allumez-le
1
Ouvrir la page du Centre d'aide
Aller à Config, then Help Center Dans votre admin et activez Activer le centre d'aide public.
2
Donnez-lui un nom et un regard
Définissez le nom du centre d’aide, qui s’affiche dans l’en-tête et dans l'onglet du navigateur. Choisissez un style visuel. Vous pouvez désactiver la navigation supérieure pour une page propre sans menu.
3
Publier quelques articles
Rien ne s'affiche jusqu'à ce que vous publiiez des articles sur le site.
Publier des articles dans le Centre d’aide
Les articles sont stockés dans votre base de connaissances. Un article apparaît dans le Centre d’aide une fois qu’il est publié et marqué comme public, ce qui peut se faire de plusieurs façons :
Publier un article
Ouvrez l’article, marquez-le comme publié et activez l'option pour l'afficher dans le Centre d'aide.
Publiez tout en une fois
Utilisez le bouton Publier tout Utilisez le bouton pour envoyer l’ensemble de vos ensembles publiés au Centre d’aide en un seul clic, plutôt que de les faire un par un.
Transformez les FAQ en articles
Vous avez déjà des FAQ? Utilisation Publier tout pour aider Pour les transformer en articles d'aide afin qu'ils soient à côté de tout le reste.
Importer une base de connaissances existante
Vous venez d'un autre help desk? Importer KB Vous avez trois façons de faire pointer une base de connaissances existante vers votre contenu, en utilisant le bouton « Articles ».
Coller un URL
Si elle reconnaît la plateforme (par exemple Zendesk), elle lit l’arborescence de catégories exacte de cette plateforme. Sinon, elle explore le site et reconstruit la structure à partir des pages, en n’important que les articles réels et en sautant les pages de connexion, de tarification et de contact.
Choisissez une application connectée
Si une plateforme est déjà connectée à cet espace de travail et qu'elle contient une base de connaissances, elle apparaît dans un menu déroulant sous Importer à partir d'une application connectée. Sélectionnez-la et importez, pas besoin de URL ou mot de passe. L'application n'est répertoriée qu'une fois connectée et configurée.
Télécharger un CSV
Pas de site en direct à pointer? Télécharger une feuille de calcul avec title, category, et body 2 colonnes. Mettre Parent / Child Dans la colonne de catégorie pour créer des catégories imbriquées.
Quel que soit le chemin que vous choisissez, vous obtenez un Voir l'aperçu d'abord: les articles qu'il a trouvés, regroupés par catégorie, chacun avec une case à cocher pour que vous puissiez supprimer tout ce dont vous ne voulez pas. Rien n'est enregistré jusqu'à ce que vous cliquiez sur Importer. Annuler L'importation entière en un seul clic, ou Re-synchronisation Une importation URL ou connected-app plus tard pour tirer dans les nouveaux et modifiés articles.
💡
Développeurs: n'importe quel connecteur peut annoncer sa base de connaissances à ce menu déroulant en déclarant un kb_capabilities Dans son bloc settings.json (type kb_source, avec un adapter et un base_templateVoir la section Connecteurs et la référence de connecteur de plateforme.
Organisez-vous avec l'IA
Un centre d'aide bien rangé est facile à parcourir et plus facile à rechercher. Organisez-vous avec l'IA En un clic, il lit vos articles publiés, les trie en catégories pertinentes et ajoute des balises. Il crée une catégorie quand il en a besoin, réutilise une catalogue qui y correspond déjà, et ignore tout ce que vous avez déjà organisé, de sorte que vous pouvez le lancer à nouveau chaque fois que vous ajoutez de nouveaux articles. Laissez l'IA s'organiser en sous-catégories dans les paramètres du Centre d'aide et il peut également classer des articles sous Parent / Child Catégories, ce qui est pratique juste après l'importation d'une base de connaissances qui avait des sous-sections.
💡
Les catégories permettent aux clients de naviguer et les tags affinent la recherche sur la page publique et dans le widget. Vous pouvez renommer ou déplacer des éléments par la suite, l’IA vous donne un point de départ solide, pas une configuration avec laquelle vous êtes coincé.
Le centre d'aide dans votre widget de chat
Vous pouvez afficher le Centre d'aide directement dans le widget de chat afin que les utilisateurs puissent rechercher des réponses avant de vous envoyer un message.
Dans l'en-tête
Une petite icône d'aide en haut du widget.
Au fond
Un lien textuel sous la boîte de message, par exemple « Parcourir le centre d'aide » Vous pouvez modifier le libellé.
Les deux endroits
Affichez-le dans l'en-tête et en bas pour une visibilité maximale.
Le lien d'aide a sa propre couleur sous le widget Paramètres de l'apparence. Aucun Pour correspondre à votre couleur de lanceur, ou choisissez un Solide Couleur ou un DégradéL'ensemble de l'expérience d'aide suit votre thème de widget, donc il semble toujours faire partie de votre marque.
Mettez votre centre d'aide sur votre propre adresse web
Votre centre d'aide dispose déjà de sa propre adresse propre et partageable (par exemple /help/your-help-centerVous pouvez aller un peu plus loin et le servir sous votre verre. Votre propre domaine, ainsi les clients et les moteurs de recherche le voient comme faisant partie de votre marque, par exemple yourdomain.com/help ou help.yourdomain.comTout continue de fonctionner sur votre domaine : les liens, les images, la recherche et les évaluations des articles.
Sous votre site principal
Dans Configuration, puis Centre d'aide, ouvrez le Intégré onglet et trouver "Afficher votre centre d'aide sur votre propre adresse web".Cloudflare, Nginx ou Apache), copiez le bloc prêt à l'emploi et collez-le dans votre site. Guide de configuration Cliquez sur le bouton à côté avec les étapes exactes.
Sur un sous-domaine
Préférer help.yourdomain.com? Le même panneau a une option de sous-domaine. Sur Cloudflare un sous- domaine est la route la plus fiable, et il vous donne une adresse propre sans rien après elle.
💡
Utiliser Cloudflare? Il ne fait tourner son Worker que sur une adresse qui est proxy par le biais de _Cloudflare (le nuage orange). Votre domaine principal pointe souvent directement vers votre site web, donc une règle placée sur le domaine principal ne peut rien faire tranquillement. help.yourdomain.com. Le guide de configuration vous accompagne dans l'enregistrement DNS et dans le parcours.
✅
Bon pour SEO_. Une fois que votre centre d'aide est sur votre propre domaine, les moteurs de recherche indexent vos articles sous votre marque. Chaque page déclare son adresse correcte et le plan du site les liste, donc le même article n'est jamais indexé deux fois.
💡
Dans les paramètres "Ouvrir dans le centre d'aide" du widget de chat, définissez la valeur Où le lien va à Votre propre domaine de centre d'aide Ensuite, ces liens d'article s'ouvrent sur votre domaine aussi, et non pas sur l'adresse OpsIQ.
Découvrez comment se porte votre centre d'aide
Au-delà des votes sur un seul article, le Centre d'aide possède son propre analytics. Activez-le dans les paramètres du Centre d'aide et enregistrez discrètement comment les gens utilisent votre aide : les articles les plus consultés, ce qu'ils recherchent, et les recherches qui sont revenues vides (une liste prête à écrire), en train de travailler sur le pays visiteur et l'appareil de son propre, de sorte qu'il n'a pas besoin du widget de chat installé pour rapporter. both Vous pouvez voir les endroits où votre aide apparaît, la page publique et l'aide dans le widget, ainsi que combinés, de sorte que vous pouvez voir à quel point chacun est réellement utilisé.
💡
L'analyse reste désactivée jusqu'à ce que vous l'activez, et vous pouvez avoir les adresses IP des visiteurs anonymisées. Rien n'est enregistré avant que vous ne souscriviez.
Choisissez ce qui apparaît sur chaque partie de la page
Chaque section du Centre d'aide (les catégories sur la page d'accueil, les articles populaires, la liste des articles sur une page de catégorie et plus) a sa propre règle simple. Pour chacun, vous pouvez le montrer ou le cacher, et afficher all articles, a Numéro de série, le dernier, ou seulement ceux que vous feature Lorsqu'une règle vient compléter une liste, les clients reçoivent toujours un lien « Afficher tout », de sorte que rien n'est vraiment hors de portée.
Vous décidez également à quoi ressemblent les votes utiles: cachés, un ratio amical comme "12 of 14 Un paramètre de votes minimum empêche un tout nouvel article d'afficher une image désagréable "0Out of0".
Découvrez quels articles fonctionnent
Chaque article montre un Cette réponse vous a-t-elle été utile? Chaque oui ou non est compté par article, de sorte que vous pouvez voir en un coup d'œil quels articles répondent bien aux questions et ceux qui ont besoin d'être réécrits. Les votes répétés du même visiteur sont ignorés, donc les comptes restent honnêtes.
Texte et étiquettes
Vous pouvez modifier les titres et les étiquettes du Centre d’aide pour qu’ils correspondent à votre voix. Laissez n’importe quel champ vide pour revenir à une valeur par défaut raisonnable. Vous ne devez donc modifier que le libellé que vous souhaitez réellement changer.
✅
Chaque article que vous publiez ici est le même contenu que l’IA utilise pour répondre aux chats et aux tickets, donc améliorer l’un améliore l’autre.
Questions fréquentes
Dois-je rédiger un contenu distinct pour le Centre d'aide?+
Non, il est construit à partir des mêmes articles de la base de connaissances que l’IA utilise déjà. Publiez un article une fois et il peut servir les deux.
Puis-je garder certains articles en interne?+
Oui. Seuls les articles que vous publiez et marquez comme publics apparaissent dans le Centre d’aide, tout ce qui n’est pas publié est exclu.
Les clients pourront-ils toujours joindre une personne?+
Oui, le lien d’aide du widget est à un clic de démarrer une conversation, donc le libre-service ne piège jamais personne.
Croissance & SEO
Site Intelligence (suite SEO)
Site Intelligence est le SEO intégré de OpsIQ et la suite de recherche-visibilité. Il rampe votre site comme un moteur de recherche, trace où vous rangez, recherche des mots clés, surveille les backlinks et les concurrents, scanne votre présence locale de carte, vérifie la vitesse de page, et transforme tout en rapports prêts à la clientèle, avec un analyste AI qui explique quoi réparer et peut rédiger les corrections. C'est une fonctionnalité premium; quand elle apparaît comme Site Intelliance dans la barre latérale.
Intelligence du siteLe site Intelligence : un score de santé sur le site du dernier crawl, un suivi des mots clés en direct, une tendance de clics organiques et la boucle en trois étapes : crawling, track, laissez l'IA brouillonner les corrections.
Lancez un crawl · commencez ici
Un crawl est : OpsIQ Visiter vos pages comme le ferait un moteur de recherche, pour trouver des problèmes techniques : liens cassés, titres manquants, contenu maigre, pages lentes, problèmes d'indexation.
1
Commencez le crawl
Dans l'aperçu, cliquez pour démarrer un crawl. OpsIQ le met en file d'attente et parcourt vos pages en arrière-plan. Un indicateur de statut indique la progression.
2
Lire les rapports
Chaque problème est regroupé par gravité afin que vous puissiez aborder les plus grands succès en premier.
3
Laissez l'IA vous aider
L'analyste de l'IA produit un mémoire en langage clair sur ce qui est faux et pourquoi il importe, et peut générer des corrections suggérées que vous examinez avant de postuler.
Ce que Site Intelligence suit
Crawls & santé du site
Scanne vos pages pour les problèmes techniques SEO et liste chaque page avec ses problèmes. Ré-exécutez à tout moment, ou planifiez-la.
Suivi du classement
Ajoutez les mots-clés qui vous intéressent; OpsIQ vérifie où se classe votre site et suit son mouvement au fil du temps.
Recherche de mots clés
Découvrez de nouvelles idées de mots-clés à cibler, avec l'aide du coach AI pour les mots-clefs.
Liens retour
Découvrez qui vous renvoie vers votre site, actualisez la liste et refusez les liens que vous ne souhaitez pas associer à votre site.
Concurrents
Ajoutez des domaines concurrents et comparez votre visibilité avec celle de vos concurrents, grâce à une analyse concurrentielle par IA.
Grille locale (carte)
Analysez la visibilité des fiches locales sur une grille géographique pour voir où vous apparaissez sur la carte, ainsi que les outils de profil d'entreprise Google.
Vitesse de page
Lancez des contrôles de vitesse de page afin de corriger les pages lentes qui nuisent au référencement et aux conversions.
Contenu de l'IA
Générez des briefs et des brouillons de contenu ciblant les mots-clés que vous ciblez.
Rapports
Créez des rapports imprimables et prêts à l'emploi pour tous les éléments ci-dessus.
Connectez Google pour des données précises
Deux connecteurs Google transforment les estimations en nombres réels:
Console de recherche Google
Recherche
Obtenez les requêtes, clics et impressions exactes que Google rapporte pour votre site, cartographiez votre propriété et découvrez des opportunités de classement directement à partir des données propres de Google.
Google Analytics 4
Trafic
Combinez vos données de trafic et d'engagement avec vos données SEO, afin que les rapports affichent la visibilité et le comportement ensemble.
Actualisations planifiées et rapports en marque blanche
Vous n'avez pas à tout exécuter à la main. Rafraîchissements planifiés re-cours rampes, contrôles de rang, vérifications de mots clés, backlink rafraîchit, local-grid scans et rapport génération sur une cadence (quotidienne ou hebdomadaire selon le plan et le volume).OpsIQcron, voir la section Cron et l'automatisation. Les rapports générés exportent comme des documents imprimables et prêts à la clientèle: les agences envoient à chaque client un régulierSEOmise à jour, et comme les données de chaque domaine sont séparées, chaque client ne voit que les siennes.
✅
Certaines fonctionnalités du site Intelligence appellent les fournisseurs de données externes et l'IA par OpsIQ Le fournisseur configuré. Ils fonctionnent hors de la boîte lorsque la suite est activée pour votre plan. Si un rafraîchissement ne s'exécute pas, confirmer le OpsIQ cron fonctionne (voir Cron et automatisation).
Dois-je ajouter quelque chose à mon site pour le suivi SEO?+
Pour obtenir des données exactes sur le trafic et les recherches, connectez Google Search Console à GA4.
Puis-je suivre plusieurs domaines ?+
Oui, ajoutez chaque domaine séparément ; leurs crawls, classements et rapports restent entièrement isolés les uns des autres.
À quelle fréquence devrais-je ramper?+
Une fois par semaine est suffisant pour la plupart des sites; crawlez à la demande après un changement important de contenu ou de structure.
Croissance & SEO
Auto-Implémentation (SEO Agent)
L'auto-implémentation est la partie de Site Intelligence qui applique en fait les correctifs le crawl et l'analyste AI recommandent, au lieu de vous conseiller seulement. L'agent travaille strictement à partir de ce que Site Intellectual a déjà trouvé (il ne peut jamais inventer un changement) et marche chaque fix dans la même boucle sûre : un aperçu de course à sec, votre approbation par étape, l'écriture en direct, un instantané automatique, et un re-crawl qui prouve que le nombre de dossiers ouverts a baissé.
Mise en œuvre automatiqueExécution d'une session : l'agent liste les correctifs déjà recommandés par Site Intelligence, affiche un diff de test pour chacun d'entre eux et applique ceux que vous approuvez. SSH or a hosted API, des instantanés avant chaque écriture et re-crawls pour prouver que le nombre de problèmes ouverts a chuté.
Ce qu'il peut changer
L'agent n'applique que les correctifs déjà recommandés par Site Intelligence (ou l'analyste de l'IA) pour ce domaine. Sur toutes les plateformes prises en charge, cela couvre :
Configuration du serveur
sitemap.xml, robots. txt et redirection, règles canoniques et d'en-tête dans. htaccess (Apache / LiteSpeed) ou la configuration nginx.
Chaînes de redirection
Réduit une chaîne de redirection multi-sauts à un seul saut direct vers le URL final, dans le même bloc. htaccess géré, afin que la vitesse et la valeur du lien cessent de fuir par les sauts supplémentaires.
Page <head>
Titres de page, méta descriptions, balises canoniques et blocs de données structurées (schema) manquants ou faibles.
WordPress SEO
Yoast, Rank Math et SEOPress titres & meta, et le texte d'image alt, appliqué par WP-CLI sur leSSHchemin ou le RESTAPIsur le chemin hébergé.
WordPress données structurées
Adds JSON-LD (schema) pour les pages qui ne l'ont pas. SSH Sur le chemin hébergé, un petit helper géré (un plugin à utiliser obligatoirement) imprime le balisage pour qu'il fonctionne avec ou sans un plugin SEO ; sur le chemin d'hébergement, votre plugin SEO le transporte.
Liens internes
Ajoute un lien interne pertinent à l'intérieur du contenu WordPress existant pour sauver des pages orphelines et relier les articles connexes. Un lien par page, jamais dans un titre, un liens existant ou un shortcode, et toujours approuvé par vous en premier.
Réécriture de contenu sur page mince
Brouillonne le contenu de remplacement complet pour les pages minces (activé par une option d'exploration, voir ci-dessous). Chaque brouillon est examiné et approuvé par vous avant toute publication. L'ancien contenu est conservé afin qu'il puisse être restauré.
Cache de la page (WordPress)
Active le cache de page W3 Total Cache lorsque l'exploration détecte des problèmes de vitesse et que ce plugin est installé, afin que les pages soient servies plus rapidement.
Shopify SEO
Titres et descriptions SEO de produits et collections, référencement des pages et articles de blog, plus 301 Les redirections, à travers le. Shopify Admin API.
Webflow SEO
Titre SEO par page et meta description à travers le. Webflow Données API v2.
Préparer les correctifs automatiquement (deux options de crawl)
Le panneau Configurer l'intelligence du site pour un domaine (ses paramètres d'exploration) dispose de deux options qui déterminent à l'avance le nombre de lignes que l'agent doit configurer. Les deux sont désactivées par défaut et utilisent toutes les deux des crédits d'IA. Vous ne pouvez donc les activer que lorsque vous souhaitez que ce travail soit effectué pour vous.
Préparation automatique des correctifs d'IA après chaque crawl
Chaque crawl écrit également le contenu concret de la correction (titres, descriptions méta, texte alternatif, schéma, redirections) pour ce qu'il a trouvé, afin que les corrections soient prêtes à être examinées et appliquées au moment où l'exploration se termine plutôt que d'être générées plus tard sur demande.
Réécriture de contenu par IA (pages minces)
L’agent peut rédiger un projet de contenu complet pour remplacer les pages minces. Rien n’est jamais publié seul : chaque projet apparaît comme une modification que vous examinez côte à côte et approuvez ou rejetez, le contenu précédent est conservé afin qu’il soit réversible, et il est limité à quelques pages par passage.
💡
Chaque modification passe toujours par les mêmes étapes d’approbation, de prise de vue et d’annulation que n’importe quel autre correctif, donc l’activation de ces options ne met jamais rien en ligne par elle-même.
Deux façons de se connecter
SSH / SFTPchemin
Autogéré
Pour les sites sur votre propre serveur, l'agent se connecte par SSH/SFTP Utilise les identifiants que vous stockez, modifie directement la configuration du serveur et les fichiers de page, et exécute WP-CLI pour. WordPress Idéal lorsque vous avez accès au shell et que vous voulez avoir le contrôle total des fichiers.
Accueillé...API chemin (non) SSH)
Sans coque
Pour les plates-formes qui ne permettent pas SSH, l'agent travaille entièrement à travers un fonctionnaire API connecteur, WordPress (REST + mot de passe d'application), Webflow (Données API v2) et Shopify (Administration API Rien n'est installé sur l'hôte.
💡
Wix et Squarespace n’ont pas de API SEO-write public, donc sur ces plateformes Auto-Implement fonctionne en mode consultatif: il vous montre le changement exact à faire (le titre précis, la méta ou le paramètre) pour que vous puissiez l’appliquer manuellement. Tout le reste est en lecture seule et sécurisé.
Allumez les connecteurs
L'agent atteint chaque plateforme par un connecteur:
Construit en
Shopify et WordPress connectique navire avec OpsIQ, il suffit de les activer sous Connecteurs et d'ajouter les identifiants du magasin / site.
De la Marketplace
Webflow, Wix et Squarespace s’installent depuis Connecteurs → Marketplace, puis se connectent de la même manière.
Comment une session fonctionne
1
Choisissez les correctifs
Ouvrez l'option Auto-Implement (rocket) dans la section Site Intelligence, qui répertorie les problèmes déjà détectés par Site Intelligence et qu'il peut corriger sur ce domaine.
2
Prévisualiser chaque modification
Pour chaque fix, l'agent montre une diff à sec (exactement ce qu'il écrira) avant que quelque chose ne touche le site en direct.
3
Approuver étape par étape
Vous approuvez (ou ignorez) chaque modification individuellement, rien n'est appliqué sans votre autorisation explicite à cette étape.
4
Il écrit, puis prend des clichés
Sur approbation, l'agent effectue le changement en direct. SSH ou l'hébergé API et enregistre d'abord un instantané, afin que toute modification puisse être annulée.
5
Prouvez-le, vivez
Au fur et à mesure qu’il applique chaque changement, l’agent vérifie immédiatement la page exacte et affiche un verdict « corrigé en direct » étape par étape. Vous pouvez donc regarder chaque correction atterrir sur la page active au fur et aux mesures de sécurité pour éviter les erreurs d’accès. À la fin, il re-crawl le site entier et confirme que le nombre de problèmes ouverts a diminué.
Sécurité & facturation
SEO-seulement
L'agent ne peut faire que ce que Site Intelligence recommande pour ce domaine. Il ne peut pas apporter des modifications arbitraires à votre site ou serveur.
Approbation par étape
Chaque écriture est prévisualisée en tant que diff et appliquée uniquement après votre approbation de cette étape spécifique.
Capture d'instantané & retour
Un instantané est sauvegardé avant chaque écriture, de sorte que toute modification peut être annulée.
Preuve en direct par étape
Chaque page modifiée est vérifiée à l’instant où elle est écrite et reçoit un verdict « corrigé en direct », de sorte qu’un correctif est confirmé par rapport à la page active immédiatement, pas seulement dans le re-crawl final.
Le contenu n'est jamais publié automatiquement
Les liens internes et les réécritures de contenu de page fine ont un impact plus important, donc ils vous sont toujours présentés pour approbation et ne sont jamais appliqués automatiquement, quel que soit le mode utilisé.
Managed-IA uniquement
L'implémentation automatique s'exécute sur l'IA gérée ; elle est bloquée lorsqu'un espace de travail utilise ses propres clés (BYOK).
Facturation
Les jetons AI facturent normalement comme vous les utilisez, plus un forfait par utilisation par session d'exécution automatique, tous deux tirés du même crédit Géré-AI.
✅
Activez-la sur la page de configuration d'IA (carte Auto-Implement) et assurez-vous que le connecteur pour votre plateforme est connecté en premier.
Est-ce que ça change quelque chose sans demander?+
Non, chaque modification est prévisualisée en tant que diff de test et appliquée uniquement après avoir approuvé cette étape précise. Un instantané est sauvegardé avant chaque écriture afin que vous puissiez revenir en arrière.
Ai-je besoin d'un accès SSH?+
Pas sur WordPress, Shopify ou Webflow. Ceux qui travaillent par l'intermédiaire de leur APIs sans accès au shell. SSH est seulement l'un des deux chemins, utilisé lorsque vous voulez que l'agent modifie la configuration du serveur et les fichiers directement sur votre propre serveur.
Comment puis-je savoir si cela a fonctionné?+
Après avoir appliqué les correctifs approuvés, l'agent re-explore le site et affiche le nombre de problèmes ouverts avant et après, afin que vous puissiez confirmer que les corrections ont réduit les problèmes.
Est-ce qu'il réécrit ou publie le contenu de la page par lui-même?+
Les réécritures de contenu par IA sont désactivées jusqu’à ce que vous les activiez dans les options d’exploration, elles sont limitées à quelques pages minces par passage et chaque brouillon est affiché pour approbation côte à côte avant toute publication. Le contenu précédent est conservé, donc une réécriture peut toujours être annulée.
Puis-je l'utiliser avec mes propres clés AI?+
Non. La mise en œuvre automatique est uniquement disponible pour l’IA gérée et est bloquée sous BYOK. Elle facture les jetons d’IA normalement, plus des frais fixes par session et par utilisation, à partir du même crédit AI géré.
Croissance & engagement
Studio d'enquête
Survey Studio est l’espace de travail pour la création de sondages modifiables qui peuvent être diffusés sous forme d’une page autonome riche, d’un widget de site Web ou d’intégration en ligne. Le produit actuel fournit également des liens hébergés, des aperçus signés de brouillons, des invitations privées, le partage par code QR, la navigation dans les réponses et des analyses spécifiques au sondage.
⚠️
Limite actuelle par rapport à la cible: Connector Builder, l'expérience de création et d'aperçu premium survey Survey Studio a toujours besoin de l'architecture indépendante multi-déploiement, du jeton signé Survey Identity Gateway, du câblage cible/variable, du flux d'envoi CRM Outreach et des données typées pour les opérations de déploiement. surveys.* API.
Créer un sondage
1
Choisissez comment les gens vont le prendre
Le flux de cibles approuvé commence par le type d’enquête et ajoute plus tard les déploiements CRM par e-mail, liens privés et QR comme choix de première classe.
2
Choisissez le but
Choisissez NPS, CSAT, CES, commentaires sur les produits, post-achat, annulation, onboarding, site web, événement, webinaire, support, lead/démo, essai, témoignage, recherche, employé, accueil ou commentaires généraux.
3
Utiliser un modèle complet ou Commencer par le vide
Le choix d'un modèle crée un brouillon copié : modifier votre sondage ne change pas le démarreur ni aucun autre sondage, mais vous pouvez choisir de créer un nouveau sondage à partir du modèle.
4
Personnaliser ou Révision rapide
Personnaliser ouvre chaque question, conception, comportement et contrôle de livraison. La révision rapide ouvre le même brouillon lors du dernier contrôle de la vue client.
Choix de livraison et comportement actuel
Page & lien autonome
Une page personnalisée réactive avec son propre URL. Utilisez des invitations privées et une date d'expiration lorsque chaque destinataire a besoin d'un lien contrôlé.
Widget de site web
Il peut utiliser des règles de page, géographiques, d’appareil, de visiteur, de date, d'échantillonnage, de temps de rechargement, de visiter et de quota. Il est toujours pris en charge par le pont active-widget hérité pendant que l'architecture de déploiement est construite.
Intégration en ligne
Un sondage responsif placé à l'intérieur d'une page, d'un portail, d’un produit ou d' un centre d'aide.
Courriel
Aujourd’hui, le Studio peut générer des invitations HTML et des liens privés. L’envoi de bout en bout à partir de contacts/segments CRM, avec consentement, suppression, planification, réessai et corrélation des réponses, est la cible d’intégration approuvée de CRM Outreach.
Conception et prévisualisation d'entreprise
Les pages de sondage comprennent des thèmes et familles de mises en page propriétaires de Survey, des contrôles réactifs, une copie d’accueil et de remplissage ainsi qu’un aperçu du brouillon signé. L’aperçu du concepteur est pleine largeur sous l’éditeur, pas un rail latéral étroit, il utilise le véritable runtime hébergé dans un cadre sandbox et prend en charge les largeurs de bureau, tablette et téléphone; le trafic d’affichage n’écrit ni réponses ni analyses.
💡
Le ciblage, l'identité, les ressources, le rendu et les analyses en temps d'exécution doivent être la propriété de Survey. Le contenu promotionnel ne peut être réutilisé que par une copie/importation explicite unique qui crée des données de sondage distinctes ; les modifications ultérieures apportées à Promotion ne doivent pas avoir d'effet.
Le produit de forme complète
Déploiements indépendants
En direct
Un sondage peut avoir des déploiements de page, widget, intégration, e-mail CRM, lien privé et QR séparément en version, chacun avec son propre état, design, audience et analyse. Chaque sondage est suspendu, désactivé ou supprimé.
CRM Outreach et campagnes
En direct
Créez une audience vérifiée à partir de segments CRM et de connecteurs compatibles avec les sondages, figez-la en une version immuable, émettez une invitation signée pour chacune et envoyez-la via le connecteur d'email sortant épinglé avec preuve de livraison par invitation.
Kit de terrain et validation
En direct
Sliders, choix d'images, téléchargement de fichiers, signature, adresse, téléphone, en-têtes et texte riche, avec longueur min/max, email/URL/numéro prédéfini, texte d'erreur personnalisé et paramètres URL par question.
Logique, formules, résultats
En direct
Groupes de conditions ET/OU, règles de branchement, un moteur de formule sûr sur les réponses et des bandes de score qui portent leur propre page de résultat : un quiz noté atterrit sur son verdict.
Langue, kiosque, pré-remplissage
En direct
Une liste déroulante de langues pour les visiteurs ne répertoriant que des langues avec de vraies traductions, un mode kiosque pour tablettes partagées (cibles plus grandes, réinitialisation automatique, pas de redirections), un générateur de liens préremplissage et un badge sécurisé modifiable et du texte de pied de page.
Test de version A/B
En direct
Publiez une version challenger sur n'importe quel déploiement avec un partage du trafic. Les visiteurs sont assignés de manière collant, les réponses sont tamponnées avec la version réellement servie et le tableau comparatif affiche les réponse, l'achèvement et le score moyen par version.
Digest hebdomadaire
En direct
Un e-mail hebdomadaire contenant les KPI des derniers 7 jours de sondage, les sondages les plus occupés, l’impulsion Feedback et le dernier briefing sur l’IA, envoyé via le connecteur sortant épinglé. Configurez-le dans le Centre de diffusion, Automation.
Gouvernance
En direct
Les listes d’accès par sondage limitent les personnes pouvant modifier, publier ou supprimer un sondage. L’approbation de publication (quatre yeux) nécessite qu’un deuxième administrateur publie le brouillon exact ; la modification réinitialise l’appro btion.
Plateforme de développement
En direct
Connector Contract 2.2, enquêtes dactylographiées* et rétroaction* api/v1, événements d'enquête canonique.*, webhooks signés durables avec les formats de relais Slack et Google Sheets, et une réponse PDF export.
Croissance & engagement
Survey Analytics et Feedback sont des produits différents
Survey Analytics explique comment un sondage lui-même atteint les gens et fonctionne, tandis que Feedback explique ce que les clients ont dit à travers toutes les sources autorisées et ce que l’entreprise devrait faire à ce sujet. Les deux produits sont liés entre eux mais ne partagent pas ou n’écrasent pas la vérité analytique.
Analyse des enquêtes
Elle mesure l’éligibilité, l’exposition, le comportement des déclencheurs, les débuts, la fin, l'abandon, les frictions entre questions et branches, le timing, les résultats de déploiement/campagne/version et la fiabilité en temps d'exécution.
Vue d'ensemble & boîte de réception
Un flux chronologique avec permission pour les réponses aux sondages complétées, les commentaires des widgets existants, le chat et les CSAT de ticket, les retours sur les réponse de ticket et les évaluations des réponses d'IA du client.
Analyse des commentaires
Analyse la signification client: tendances de mesures originales, sujets/thèmes, sentiment, émotion, intention, urgence, demandes, plaintes, éloges, segments parcours/produit/service/équipe, détracteurs et résultats en boucle fermée.
Propriété des données
Les réponses au sondage restent autorisées dans le stockage du sondage. Le Feedback stocke une référence de source reconstructible et des signaux dérivés, puis charge les preuves autorisées à la demande.
⚠️
La page de commentaires actuelle dispose toujours d'un navigateur de réponses au sondage et d'une boîte de réception distincte pour le widget hérité, et ses totaux IA n'utilisent pas encore le modèle source normalisé complet.
Les indicateurs NPS, CSAT, CES, les étoiles, les notes et l’utilité doivent toujours conserver leur méthode originale, leur échelle, leur exemple, leur fenêtre de date et leur dénominateur, et ne jamais être combinés en une moyenne inexpliquée.
Croissance & SEO
Studio de promotion
Le Studio de Promotion transforme votre site en un moteur de conversion. Concevoir des pop-ups, bannières, slide-in, barres de haut/bas, prises de contrôle en plein écran, blocs en ligne et même des redirections par pays, puis montrer le bon message au bon visiteur au bon moment. OpsIQ widget déjà sur votre site, donc il n'y a rien de plus à installer. Vous concevez et enregistrez des campagnes à tout moment; elles ne montrent qu'une fois que vous les publiez et le studio est activé pour votre espace de travail.
Studio de promotionLe concepteur visuel : une palette de blocs à gauche, votre campagne sur la toile (ici un popup coupon personnalisé avec un token {first_name}), et le panneau ciblage + publication à droite.
La vue d'ensemble
Campagne
Quoi?
Une promotion : pop-up, bannière, barre, diapo-in, plein écran, bloc en ligne ou géo-rédirect. Chacun a un objectif : vente, plomb, inscription, chat, sondage, annonce.
Conception et versions
Comment
Chaque sauvegarde crée une nouvelle version, donc vous pouvez toujours revenir en arrière. Rien n'est jamais perdu.
Ciblage
Qui
Qui le voit : pays, page, appareil, source de trafic, retour vs nouveau, horaire et (avec un connecteur) vos clients connectés.
Déclencheurs
Quand
Quand il apparaît: instantanément, sur retard, sur défilement, sur intention de sortie, en veille, sur un clic, après N pages ou à partir d'une conversation / activité de ticket.
Analytique
Résultats
Impressions en direct, clics, conversions, entonnoir de dépôt, séparations pays / page / appareil, gagnants A/B et un aperçu d'IA.
Lancez votre première promotion en. 5 étapes
1
Commencer à partir d'un modèle ou d'une page vierge
Ouvrez Promotion Studio et cliquez sur Nouvelle campagne, ou choisissez un design prêt à l'emploi dans la galerie Modèles.
2
Concevez-le
Faites glisser dans les blocs, les titres, le texte, les boutons, les images, les badges, les statistiques, les comptes à rebours, formulaires, coupons, vidéos, évaluations, spin-wheels. Couleurs de style, gradients et effets 3D avec les curseurs.
3
Personnalisez-le
Tapez des jetons comme {first_name}, {country} ou {company} Au moment du spectacle, ils deviennent les valeurs réelles du visiteur.
4
Cible & déclencheur
Choisissez qui la voit (pays, page, appareil, audience) et quand elle se déclenche (délai, défilement, intention de sortie). Laisser une règle vide pour signifier tout le monde.
5
Vérifiez, puis publiez
Cliquez sur Vérifier pour une analyse rapide avant le lancement, puis Publier. Il est mis en ligne en quelques secondes et commence à collecter des données analytiques.
Blocs que vous pouvez construire
Contenu
Nombre de base
En-tête, paragraphe, liste, citation, image, icône, badge, stat, diviseur et espaceur, les éléments constitutifs de tout message.
Appel à l'action
Nombre de base
Des boutons avec de vraies actions : ouvrir un lien, démarrer une conversation, créer un ticket, copier un coupon ou accéder à une page.
Urgence & capture
Prime
Compte à rebours, formulaires (email / téléphone / texte), révélations de coupon et intégration vidéo.
Gamification & feedback
Prime
Roues de spin-to-win, cartes à gratter, NPS / évaluations d'étoiles et entonnoirs multi-étapes.
Mise en page & effets
Prime
Colonnes, barres de progrès, partage social, cochés de preuve sociale, oui/non à deux étapes, quiz et effets 3D, inclinaison, lueur, parallax, verremorphisme.
Jetons de personnalisation
Tapez l'un de ces éléments dans les titres, paragraphes, boutons, badges, statistiques, listes ou citations et ils seront remplacés par les détails en direct du visiteur au moment où la promotion apparaît (toujours nettoyés pour plus de sécurité) :
Jetons 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)
Référence de ciblage
Pays et localisation
Afficher uniquement dans (ou masquer de) les pays, villes ou fuseaux horaires choisis via GeoIP. Idéal pour des offres spécifiques à une région ou une géo-redirection.
Pages et URL
Limitez à certaines pages avec égal à / commence par / contient / expression régulière, et excluez également des pages.
Appareil
Bureau, tablette ou mobile, p. ex. une barre mince sur mobile, un mode de travail sur bureau.
Type de visiteur
Nouveau, récurrent, connu (dans votre CRM) ou anonyme; segments CRM, étape du cycle de vie, score de lead ou langue du navigateur.
Source de trafic
Par UTM (utm_source, utm _campaign) ou site de référence, par exemple uniquement les visiteurs d'une annonce spécifique.
Horaire & fréquence
Dates de début / fin, fenêtres d'heure du jour et fréquence à laquelle une personne peut la voir (par session, par jour, après qu'elle ait fermé / cliqué / converti).
Répartition du trafic A/B
Affichez à un pourcentage de visiteurs et exécutez des variantes en tête-à-tête ; la même personne voit toujours la même variante.
Audiences (en ligne)
Avec un connecteur activé, cible par l'état du compte en direct, par exemple les clients avec des factures impayées, ou les abonnés actifs.
Déclencheurs
Choisissez comment la promotion apparaît: Immédiatement, après un délai, sur la profondeur de défilement, sur l'intention de sortie, en mode inactif, sur un clic d'un élément, après une certain nombre de pages consultées, sur le formulaire abandonné ou à partir de l'activité du chat / ticket. window.OpsIQPromo.fire('event').
Ciblez les clients connectés (connecteurs)
C'est ce qui rend OpsIQ Spécial promotions: connectez une plateforme comme WHMCS (ou tout autre connecteur prenant en charge les audiences) et le studio peut cibler les visiteurs par l'état de leur compte actif.
1
Activer un connecteur d’audience
Sous Connectors, activez un système qui expose les faits de l'audience (WHMCS Les clients sont reconnus en toute sécurité lorsqu'ils sont connectés à cette plate-forme, OpsIQ jamais fait confiance à un email tapé.
2
Ajouter une règle d'audience
Dans le Ciblage > Audience de la campagne, exigez une connexion et ajoutez des règles comme les factures impayées >= 1, l'abonnement est en retard ou le crédit du compte > 0.
3
Personnalisez avec leurs données
Utilisez des jetons tels que {first_name} ou {balance_due}. Un rappel "Vous avez une facture en retard" s'écrit.
✅
Le ciblage de l'auditoire est sûr : si le connecteur ne peut confirmer un fait (ou que le visiteur n'est pas connecté), la promotion ne s'affiche tout simplement pas, donc une offre ciblée sur la facturation n'arrive jamais à la mauvaise personne.
Le commerce connecté (la superpuissance des studios)
Cartes de produits depuis votre boutique
Données en direct
Un bloc produit tire des objets réels (nom, prix, prix de vente, image, lien) directement à partir WHMCS, WooCommerce, Shopify ou de votre OpsIQ Cochez "Continuez frais" et la carte met à jour son prix depuis la plate-forme toutes les heures pendant qu'elle est publiée.
Coupons fournis par le magasin
Coupons
Un bloc de coupon peut créer le vrai code de réduction dans votre boutique au moment où vous publiez, afin que le code révélé par un visiteur fonctionne toujours à la caisse.
Revenu de l'ordre-vérité
Montant alloué
Les commandes réelles de vos plateformes sont appariées à des campagnes horaires (par code promo utilisé ou par l'email du lead) donc les revenus que vous voyez proviennent des ventes réelles, pas des estimations.
Une vraie preuve sociale
Confiance
Le cocker social-proof peut mener avec de véritables commandes récentes ("Ada commandé Starter Plan · 2h year"), prénom et article seulement, jamais emails ou montants.
Expériences & voyages
Variantes A/B et gagnant automatique
Diviser le trafic entre les variantes de conception; laisser le studio promouvoir automatiquement le gagnant statistique, ou le trafic manuel à l'optimiseur de bandit qui déplace les visiteurs vers ce qui se convertit comme preuve.
Augmentation de la rétention
Réservez une tranche de visiteurs qui ne voient rien, afin que vous puissiez prouver que la campagne elle-même provoque le lift.
Variantes de segment
Différents contenus par public sur la campagne SAME (visiteurs mobiles, grands chariots, clients de retour), chaque segment obtient sa propre version.
Déclencher des expériences
Les variantes peuvent également tester QUAND apparaître: immédiate vs différée vs intention de sortie, mesurée en tête-à-tête.
Voyages (enchaînement)
Ciblez par ce que quelqu'un a fait avec une autre campagne («saw campagne A mais n'a pas converti») pour construire des séquences de promotion en plusieurs étapes.
Thésers
Une petite pilule permet aux visiteurs de rouvrir la campagne après sa fermeture, donc une pop-up fermée n’est jamais définitivement disparue.
Savoir ce qui s'est passé
Carte de chaleur des clics
Designer
Dans le concepteur, activez la carte thermique pour peindre les clics réels des visiteurs sur chaque bloc de votre design.
Entonnoir d'étapes
Entonnoirs
Les campagnes multi-étapes montrent exactement où les gens abandonnent, écran par écran.
Comparer les campagnes
Studio
Mettez jusqu'à quatre campagnes côte à côte (impressions, clics, conversions), meilleure valeur mise en évidence.
Histoire hebdomadaire & digest
IA
Chaque lundi, un résumé atterrit dans vos notifications; le bouton 📖 Weekly story écrit un résume en langage clair avec les prochaines étapes chaque fois que vous en voulez une.
Travailler confortablement
AI copilote & idées
Discutez avec le copilote de conception pour modifier la toile ("faire le titre urgent, ajouter un compte à rebours"), obtenir des idées de campagne à partir de vos propres données de trafic, traduire une campagne par pays ou corriger automatiquement un score de confection faible.
Marque Kit import
Une commande lit votre site web et propose les couleurs et polices de votre marque réelle; sauvegardez et chaque sélecteur mène avec eux.
Entonnoirs multi-écran
Les blocs d'étapes obtiennent une édition par écran véritable : onglets pour chaque écran, ajouter ou réorganiser des écrans, et l'aperçu suit.
Versions nommées & présence
Nommez les versions importantes (« candidat au lancement »), restaurez-les et recevez un avertissement lorsqu'un coéquipier modifie la même campagne.
Bande de dispositifs et règles
Affichez les ordinateurs de bureau, tablettes et mobiles côte à côte dans une seule vue ; basculez entre les règles en pixels pour un positionnement précis.
Page & canaux hébergés
Chaque campagne peut également être une page hébergée autonome pour les bios et les codes QR, une séquence de goutte à goutte d'emails pour les prospects capturés ou un brouillon web-push en un clic.
Sécurité de l'entreprise
Publiez des fenêtres de gel (périodes de gel des modifications), un commutateur d'urgence pour tout mettre en pause, les approbations, la piste d'audit et le retour à la version précédente.
Dois-je ajouter du code à mon site?+
Non, les promotions sont livrées par le même widget OpsIQ que vous avez déjà installé. Concevoir, publier, c'est fait.
Les visiteurs verront-ils la même fenêtre contextuelle encore et encore?+
Non. Réglez les bouchons de fréquence (par session / par jour, ou arrêtez-vous après que quelqu'un ferme, clique ou convertit).
Qui peut publier?+
Les fonctions de publication, d'interruption, d’archivage et de rétablissement sont limitées aux propriétaires d’espaces de travail et aux administrateurs complets.
Croissance & SEO
Designer de promotion
Promotion Designer est un éditeur de blocs réactif pour la création, l’examen, le versionnement et la publication d’une expérience de campagne.
Écran de produitLe concepteur combine une toile en direct, des aperçus d'appareils, des blocs, variables de personnalisation, commentaires et historique de version.
Utilisez des blocs pour composer l'expérience, prévisualiser chaque fenêtre prise en charge et insérer les variables de personnalisation approuvées. Passez en revue les commentaires et la provenance des médias d'IA avant le lancement.
Croissance & SEO
Modèles de promotion
Les modèles fournissent une galerie de départ classée et consultable pour les campagnes Promotion Studio.
Écran de produitLa galerie de modèles filtre les mises en page premium et applique les couleurs de marque d'espace de travail lorsqu'un modèle devient un brouillon.
Recherchez ou filtrez par catégorie, chargez des résultats supplémentaires, prévisualisez l'expérience complète, puis choisissez Utiliser le modèleLa nouvelle campagne reste un brouillon et peut être modifiée dans Promotion Designer avant sa publication.
Croissance & SEO
Analyse de la promotion
L'analyse des promotions relie les impressions et les clics aux conversions, au contexte de l'audience, aux résultats d'action du connecteur et à l'apprentissage de la campagne.
Écran de produitL'analyse de la promotion montre les performances des titres, l'audience et les déclencheurs, l’exportation de leads et les résultats d'actions connectées.
Les résultats des actions du connecteur indiquent si le suivi promis de la promotion a réellement été effectué. Les informations tirées de l’IA et les résumés d’apprentissage doivent être traités comme des hypothèses à valider, pas comme une preuve automatique.
Croissance & SEO
Annonces
Les annonces publient un message dans la zone de notification du widget avec ciblage, planification et appel à l'action en option.
Écran de produitL'éditeur d'annonces comprend le contenu, l'APC, l’audience, le segment, la règle de page, les dates actives et le style visuel.
Choisissez tous les visiteurs, les visiteur connectés ou les nouveaux visiteurs; vous pouvez également affiner l'audience avec un segment de contact et une règle de page. Définissez des dates actives à partir/jusqu'à et un drapeau actif.
Croissance & SEO
Campagnes de push
Les campagnes push envoient des notifications de navigateur aux visiteurs abonnés après qu'ils aient quitté le site.
Écran de produitLe compositeur de push affiche la portée, le contenu, les médias, les actions, les règles cibles et l'état du planning.
Une campagne peut inclure le titre, le corps de l'e-mail, une icône, une image du héros, un badge, un CTA et jusqu'à deux boutons d'action.
Enregistrez un brouillon, planifiez-le ou envoyez-la immédiatement. Utilisez les statistiques d'abonnement et de clics pour évaluer la portée. HTTPS et un service worker correctement hébergé sont requis sur les sites tiers intégrés; voir Web Push sur les Sites tiers.
Confidentialité
Consentement aux cookies
Le studio Consentement aux cookies conçoit la bannière de cookies que vos visiteurs voient, définit ce qui compte comme essentiel pour votre entreprise, applique le bon comportement pour chaque région de visiteur, et (circonstanciellement) fait en sorte que le consentement est effectivement appliqué afin que les étiquettes d'analyse et de marketing ne fonctionnent pas tant que le visiteur n'est pas d'accord. OpsIQ widget déjà sur votre site. Il s'agit d'un studio de design premium; la bannière ne montre que lorsque vous allumez le consentement pour votre espace de travail.
Consentement aux cookiesLa bannière de consentement comme le voit le visiteur : votre libellé, vos catégories (essentiellement sur, le reste est le choix du visiteur), et Accepter / Rejet / Préférences, avec l'exécution par catégorie derrière elle.
Les onglets du studio
Dessins
Choisissez parmi une grande bibliothèque de modèles de bannières et un système de couleurs (transparent, solide ou dégradé) pour correspondre à votre marque.
Style
Ajustez le libellé, les étiquettes des boutons, les liens de politique, la position de la bannière et la durée pendant laquelle un choix est mémorisé.
Catégories
Définissez vos propres catégories de cookies et les visiteurs de formulation voir. Vous décidez ce qui est essentiel. L'essentiel est toujours sur; tout le reste est à eux pour permettre ou refuser.
Cookies (scanner)
Analysez votre site et laissez OpsIQ AI détecter automatiquement chaque cookie et traqueur, le catégoriser et écrire un objectif en langage clair. Cela alimente le tableau des préférences et le blocage automatique.
Droit & région
Choisissez le comportement du consentement par la loi (ci-dessous) et activez le partage de domaines de groupe, le mode Google Consent v2 et les intervalles de renouvellement du consentment.
Analytique
Voir les statistiques de consentement en direct provenant des choix réels de visiteurs (taux d'acceptation, par catégorie) projetés dans votre espace de travail.
Obtenez la loi correcte automatiquement
Auto par région
Intelligent
Les visiteurs de l'UE / du Royaume-Uni obtiennent un opt-in (rien d'essentiel ne fonctionne jusqu'à ce qu'ils acceptent); les visiteurs américains obtiendront une option "Ne pas vendre ou partager". OpsIQ décide par visiteur par emplacement.
Opt-in partout
Strict
Strict GDPR pour tous les visiteurs, rien de non essentiel jusqu'à ce qu'ils acceptent.
Opt-out partout
Lent
Les balises s'exécutent à moins que le visiteur ne désactive.
Les signaux de contrôle global de la confidentialité (GPC) et de non-suivi (DNT) du navigateur sont respectés quel que soit le mode choisi.
Comment l’application de la loi arrête réellement les captures
Le consentement n'est pas seulement une bannière, mais il contrôle ce qui fonctionne :
Application par catégorie. Lorsqu'un visiteur refuse une catégorie, OpsIQ arrête la capture correspondante, avec l'analyse désactivée, le suivi analytique ne s'exécute pas vraiment, pas seulement visuellement.
Bloquer automatiquement vos propres tags. Étiquetez tout script tiers pour rester inerte jusqu'à ce que sa catégorie soit accordée. OpsIQ l'active dès que le visiteur consent, et jamais auparavant.
Bloquer automatiquement une balise tierce
<!-- This tag stays dormant until the visitor grants the "marketing" category -->
<script type="text/plain" data-opsiq-consent="marketing"
src="https://example.com/ads-pixel.js"></script>
💡
Google Consent Mode v2 (onglet Droit et Région) émet les bons signaux gtag du choix de chaque visiteur, donc GA4 et Google Ads obéissent au consentement nativement. La plupart des sites n'ont pas besoin de TCF IAB, ce qui est seulement pour les sites exécutant des annonces programmatiques IAB-cadre.
Partager le consentement sur vos sites
Activez le partage de groupe-domaine pour qu'un visiteur qui accepte sur l'un de vos sites ne soit pas demandé à nouveau aux autres dans ce groupe d'espace de travail. Leur choix s'étende sur le nombre de jours que vous définissez. Éteignez-le pour un consentement strict par domaine. Le consentement des cookies est associé à la page Vie privée et conformité, qui conserve le registre du consentement (preuve de chaque subvention et révocation).
Le refus de l'analyse arrête-t-il vraiment le suivi?+
Oui. L'application par catégorie arrête la capture correspondante à la source. Ce n'est pas une bannière cosmétique.
Ai-je besoin d'un développeur?+
Non pour la bannière. Il est envoyé par le widget. Seul le blocage automatique de vos propres balises tiers nécessite un changement de balisage unique sur ces étiquettes (voir ci-dessus).
Où est la preuve qu'un visiteur a consenti?+
Sur la page Confidentialité et conformité : un registre de consentement consultable pour chaque accord et révocation par contact, canal, action et date.
Croissance & SEO
Des messages proactifs
Les messages proactifs s'adressent automatiquement au moment où le comportement d'un visiteur correspond à une règle, avant de demander. Vous construisez chacun en règle générale avec trois parties: ce qui doit arriver, quand il devrait tirer, et combien de fois. OpsIQ widget déjà sur votre site.
ProactifChaque règle proactive est composée de trois choix : ce qui se produit (chat, bannière, visite guidée, push, e-mail, webhook), quand (conditions) et à quelle fréquence (relâchement).
Les trois parties d'une règle
1
Ce qui devrait se passer (action)
Afficher une bulle de chat ou une bannière sur la page, commencer une visite guidée, envoyer un push web ou un courriel, assigner à un département, ou tirer un webhook.{{visitor_name}}et{{page_title}}devenir des valeurs réelles.
2
Quand il devrait se déclencher (conditions)
N'hésitez pas à le déclencher : page/URL, heure sur la page, profondeur du défilement, score de tête, retour vs nouveau, inactif. Sans conditions, la règle s'allume pour chaque visiteur. Ajoutez au moins une pour la cibler.
3
Combien de fois (fréquence)
Réglez un refroidissement pour que la même personne ne soit pas piétinée, par exemple une fois par session ou une fois/jour. Chaque règle a un statut d'on/off.
⚠️
L'espace de travail basculer "Run time/idle rules horaires" permet aux actions côté serveur (email, push, webhook, assigner) d'allumer sur un horaire pour les contacts connus qui ne sont pas actuellement sur la page, de sorte que vous pouvez "email tain hot leads" automatiquement. OpsIQ Laisse tomber si tu veux juste des punaises en direct.
Est-ce qu'il va tirer pour tout le monde?+
Ajoutez au moins une condition (page, lead score, retour…) pour cibler les bons visiteurs et vous assurer que votre campagne est efficace.
Comment ces derniers se rapportent-ils aux flux et aux circuits?+
Ils fonctionnent ensemble : une règle proactive peut déclencher un Guided Tour, et un Chatbot Flow peut être décLENCHE par une règle Proactive. Commencez avec une seule règle de message chat, puis superposez les autres.
Croissance & SEO
Les flux de chatbot
Chatbot Flows script branche les conversations dans votre widget de chat (greetings, mots clés, chemins guidés) sans code. Un flux est un ensemble d'étapes connectées (nodes): vous posez une question, le visiteur choisit une option, et le flux les envoie vers la branche correspondante. Seuls les flux actifs s'exécutent sur votre site.
Comment ça fonctionneLes flux de chatbot
Flux par rapport à l'IA · quand utiliser
Utiliser un flux
Lorsque le chemin est prévisible et que vous voulez qu'il soit identique à chaque fois : les étapes de réservation, un assistant de retour, un choix "quel plan?", collecte d'un email avant la remise.
Utilisez l'IA
Lorsque les questions sont ouvertes, « cela fonctionne avec mon installation ? ». Le client Clavardage AI répond à partir de vos connaissances formées. Un flux peut se transmettre à l'IA (ou un humain) à n'importe quelle étape.
Déclencheurs
Salutation
S'exécute comme message d'ouverture lorsqu'un visiteur ouvre le chat pour la première fois.
Mot-clé
S'exécute lorsque le visiteur tape un mot que vous avez indiqué (par exemple, remboursement, prix, annulation).
Après les détails / Après le retard
Démarre une fois que les coordonnées du contact sont partagées, ou à un moment défini dans la conversation.
En fin de chat / Proactif
S'exécute à la fin du chat (par exemple, une évaluation) ou est déclenchée par une règle de message proactif.
Construisez-en un en quatre étapes
1
Créer le flux
Cliquez sur Nouveau flux, donnez-lui un nom, choisissez un type de déclencheur (et des mots clés si vous utilisez le mot clé), enregistrez.
2
Ouvrez la toile
Cliquez sur Modifier la toile. Le constructeur visuel où vous ajoutez des étapes (messages, questions avec boutons, branches) et connectez-les.
3
Ajouter des branches et un transfert
Pour chaque choix, dessinez une branche vers l'étape suivante. Finissez les chemins en résolvant, en remettant à l'IA ou en transférant à un humain.
4
Activez-le
Cliquez sur Activer. Le flux est immédiatement actif dans votre widget, vous pouvez le désactiver à tout moment sans perdre la conception.
Les flux remplacent-ils l’IA?+
Non. Ils courent côte à côte. Utilisez les flux pour des chemins prévisibles et l'IA pour des questions ouvertes; un flux peut toujours se transmettre à l'un ou l'autre.
Croissance & SEO
Visites guidées
Les visites guidées sont des présentations étape par étape qui pointent vers certaines parties de votre page avec des bulles et un projecteur, guidant le visiteur à travers l'intégration ou une nouvelle fonctionnalité. Elles sont entièrement thématiques et construites dans un concepteur visuel avec un aperçu en direct.
Comment ça fonctionneVisites guidées
Comment une visite est construite
Étapes
Chaque étape cible un élément et affiche une bulle avec votre texte. Ajouter autant d'arrêts que la visite guidée a besoin et les ordonner.
Préréglages & thème
Commencez par un préréglage ou créez votre propre bulle (couleurs, dégradés, projecteurs) avec un aperçu en direct sur la droite.
Déclencheur
Vous pouvez éventuellement lier une règle proactive pour que la visite démarre automatiquement lorsque cette règle se déclenche (par exemple, lors de la première visite du tableau de bord d'un visiteur récurrent).
Toggle actif
Une visite n'est éligible à l'exécution que si Active est cochée. Décochez pour la supprimer sans la suppression.
Construisez-en un en quatre étapes
1
Nouvelle tournée
Cliquez sur Nouvelle visite guidée, donnez-lui un nom et éventuellement liez une règle proactive pour qu’elle démarre automatiquement.
2
Ajouter des étapes
Ajoutez chaque arrêt : choisissez l'élément vers lequel il pointe et écrivez le texte de la bulle, puis réorganisez jusqu'à ce que le chemin coule.
3
Concevez-le
Choisissez un préréglage ou stylez vous-même la bulle. L'aperçu en direct montre exactement ce que les visiteurs voient.
4
Activer
Cochez Active et sauvegardez. La tournée peut maintenant se dérouler, sur son propre déclencheur, ou démarrée par une règle Message Proactive.
Comment les visites guidées démarrent-elles ?+
Sur leur propre déclencheur, ou via une règle Message proactive "Visite guidée", vous décidez donc quels visiteurs voient la visite et quand.
Croissance & SEO
Objectifs de conversion
Les objectifs de conversion transforment une activité que vous aimez (un événement webhook entrant, un message de chat, une résolution de ticket) en une conversion enregistrée avec attribution complète. Lorsque l'activité s'enflamme, OpsIQ enregistre une conversion contre le contact et la relie aux campagnes, segments et sources qui y ont mené.
Comment ça fonctionneObjectifs de conversion
Définir un objectif en trois étapes
1
Choisissez l'activité déclenchant
Cliquez sur Nouveau but de conversion. Choisissez le type d'activité qui compte comme une conversion, ou utilisez un préréglage Quick-start, achat Stripe, démo réservé, inscription à la newsletter ou abonnement démarré.
2
Nommez-le et définissez une valeur
Donnez un nom à la conversion (achat, démo_réservée, inscription) et éventuellement une valeur fixe et une fenêtre d'attribution.
3
Enregistrer
À partir de là, chaque fois que l'activité se déclenche, OpsIQ enregistre une conversion par rapport au contact avec attribution aux contacts précédents.
✅
Les objectifs sont déjà câblés dans les webhooks entrants : tout objectif dont le déclencheur correspond au type d'événement entrant se déclencha automatiquement au moment où l'évéement atterrit. Utilisez la page Webhooks Inbound pour connecter Stripe, Calendly ou n'importe quel système pouvant POST JSON.
Qu’est-ce que la conversion?+
Toute activité enregistrée: un événement webhook entrant (paiement. succeed), une capture de chat par e-mail, une résolution de ticket, tout ce qui se trouve dans la timeline de contact.
Analytique
Tableaux de bord personnalisés
Les tableaux de bord personnalisés vous permettent d'obtenir votre propre vue des indicateurs importants, au lieu de compter uniquement sur l'aperçu standard. Ajouter les widgets que vous voulez, faites-les glisser et redimensionnez-les dans la disposition qui vous convient, enregistrez-la et partagez-la avec votre équipe.
Tableaux de bord personnalisésCréez votre propre tableau de bord : ajoutez des KPI, des widgets de graphique et de liste, faites-les glisser et redimensionnez-les dans la disposition souhaitée, puis partagez-le avec l'équipe.
Construisez-en un en trois étapes
1
Ajouter des widgets
Cliquez sur Ajouter un widget, choisissez la mesure ou le graphique que vous souhaitez suivre et répétez l'opération pour tout ce que vous voulez ajouter au tableau.
2
Organiser la mise en page
Faites glisser des widgets pour repositionner et faites glisser leurs bords pour les redimensionner. KPIs à travers le haut, graphiques ci-dessous.
3
Enregistrer et partager
Enregistrez le tableau de bord et partagez-le avec votre équipe afin que tout le monde puisse consulter les mêmes chiffres.
✅
Gardez des tableaux séparés pour des emplois distincts (un tableau de « coup d'œil quotidien » avec des comptes en direct, et un tableau de "revue mensuelle" avec des graphiques de tendances) afin que chaque reste concentré.
Croissance & SEO
Campagnes de sensibilisation
Outreach is OpsIQ's1:1Moteur d’emailing en masse et de messagerie personnalisée : composez un message personnalisé ou lancez une campagne vers un segment CRM, avec détection des réponses, contrôle du temps d’envoi, suivi des ouvertures/clics, pixel de traçage et désabonnement en un clic.
SensibilisationLe moteur Outreach: envoyer1:1ou exécutez des campagnes pour un segment, suivez les ouvertures et les réponses et restez conforme avec la détection de désabonnement et de réponse intégrée.
Les quatre onglets
Compositeur
Écrire un commentaire1:1Envoyer un email avec {tokens} Du contact et du CRM.
Campagnes
Envoyez à un segment CRM, planifié ou immédiatement, avec des plafonds et le contrôle de l'heure d'envoi.
Modèles
Modèles de messages réutilisables pour une diffusion répétée.
Réponses
La détection de réponse enregistre les réponses et arrête automatiquement le suivi à toute personne qui a répondu.
Comment fonctionne une campagne
1
Choisissez un public
Choisissez un segment CRM (ou téléchargez une liste). La suppression et le consentement sont appliqués automatiquement.
2
Composer
Rédigez le message avec des jetons de personnalisation; prévisualiser contre un contact réel.
3
Planifier & envoyer
Envoyez maintenant ou au meilleur moment. Un pixel de suivi s'ouvre; les clics et les réponses sont attribués.
✅
La sensibilisation est axée sur le consentement et la suppression, comprend un désabonnement en un clic à chaque envoi et suit CAN-SPAM / CASL.
Analytique
visualHtml
Rapports programmés envoyer par courriel un ensemble de mesures choisi aux destinataires choisis sur une liste (quotidienne, hebdomadaire ou mensuelle) sous forme d'étiquette blanche imprimable PDF. Réglez-le une fois et le rapport atterrit dans des boîtes de réception automatiquement à travers la OpsIQ Cron.
visualHtmlDéfinir un rapport une fois (ensemble métrique, plage, calendrier, destinataires) et OpsIQ e-mails d'un label blanc PDF automatiquement sur votre cadence.
Créer un rapport
1
Choisissez ce que vous voulez envoyer
Choisissez l’ensemble de mesures (traffic, SEO, ventes, support…) et une plage de dates.
2
Définir le calendrier & les destinataires
Quotidiennement, hebdomadairement ou mensuellement, à l’heure de votre choix, à un ou plusieurs destinataires.
3
Enregistrer
Enregistrer et activer. Le rapport génère et s'envoie par courriel à l'horaire, pas d'étape manuelle.
💡
Les rapports prévus passent par OpsIQ cron, si un rapport n'arrive pas, confirme que le cron est en marche (voir Cron et automatisation).
Confidentialité
Confidentialité et conformité
La page Vie privée et Conformité est le seul endroit où afficher un auditeur que vous manipulez les données personnelles de manière responsable : le registre du consentement, le journal d'accès administratif, votre politique de résidence et de conservation des données, et une version prête à imprimer DPA, dans une vue tablée.
Confidentialité et conformitéUn écran prêt pour l'auditeur: un registre de consentement consultable (octrois/révocation par canal), un journal d'accès des personnes ayant touché les données, les paramètres de résidence/conservation et un DPA imprimable.
Les quatre onglets
Registre de consentement
Un enregistrement consultable de chaque autorisation de consentement et révoquer, par contact, canal (email, push, SMS, in-widget), action, source et date. Votre preuve un contact accepté (ou retiré).
Journal d'accès
Qui, dans votre équipe, a consulté, édité, exporté, effacé ou envoyé des messages aux données d'un contact, avec l'administrateur, le contact, l'action, la raison indiquée et IP. Exactement ce que demande un régulateur.
Résidence & rétention
Déclarez où se trouvent les données de cet espace de travail, définissez le nombre de jours pendant lesquels les lignes d'activité sont conservées (0 = pour toujours) et enregistrez votre contrôleur de données et DPO.
Modèle DPA
Un Addendum sur le traitement des données imprimable qui indique votre contrôleur, adresse, DPO, résidence et conservation. Imprimer ou enregistrer sous PDF.
✅
Privacy & Compliance est associé au studio de consentement aux cookies (qui recueille le consentement) et à la page Exporter (qui produit la copie des données pour un DSAR). Voir aussi Cron et automatisation pour le nettoyage nocturne de rétention.
Connecteurs
Connectez vos plateformes
Lien des connecteurs OpsIQ vers des plateformes externes: magasins de commerce électronique, systèmes de facturation, processeurs de paiement, fournisseurs d'e-mail et sur mesure APIs. Une fois connectée, l'IA peut rechercher les commandes, les données client, les abonnements, et plus encore, et prendre des mesures avec votre approbation.
Comment ça fonctionneConnecteurs
Navires avec OpsIQ
Ceux-ci sont présents au moment où vous installez et n'ont besoin que de leurs identifiants.
Établissement local : avis, publications, questions-réponses, statistiques. Utilise OAuth.
Calendrier Google
Productivité
Calendriers et événements. Utilisations OAuth.
GmailetIMAP
Courriel
Boîtes aux lettres : courrier entrant et sortant, synchro-book.
SendGrid
Courriel
Envoi de courriels : envoyez des courriels et gérez des modèles.
Paramétrage
Courriel
Envoi d'e-mails: envoyer des e-mail via Mailgun.
Slack, Télégramme, LIGNE, X DM
Messagerie
Les canaux de messagerie pour les conversations entrantes et sortantes.
Métacanaux
Messagerie
Facebook Messenger, Instagram DM et WhatsApp.
Renseignements sur le site (GA4, Console de recherche)
Analytique
Données analytiques et de recherche pour la suite SEO.
enrichissement du site Web et importation CRM
CRM
L'enrichissement de l'entreprise et l'importation en vrac des clients.
Disponible sur le marché
Installez-en un depuis les connecteurs, Marketplace et il est copié dans le dossier des connecteurs en direct, après quoi il se comporte exactement comme ceux ci-dessus.
Signature, prospection, recherche et données analytiques.
Webflow, Wix, Squarespace
Marché
Plateformes de sites Web.
💡
La liste des connecteurs se déplace sous forme de paquets. La liste autorisée pour VOTRE installation est la page Connectors : ce qui est listé là est ce que l'exécution a découvert, et l'onglet Marketplace montre ce que vous pouvez ajouter.
Installation d'un connecteur
1
Accédez à Connecteurs
Accédez à Connecteurs dans la barre latérale d'administration.
2
Trouver le connecteur
Parcourez la liste ou effectuez une recherche. Les connecteurs sont regroupés par catégorie.
3
Activez-le
Cliquez sur le connecteur et activez/désactivez Activer.
4
Entrez les informations d'identification
Remplissez les champs obligatoires: API clé, URL Chaque connecteur a des exigences spécifiques documentées dans son panneau de paramètres.
5
Connexion de test
Cliquez sur « Test de connexion ». Un résultat vert signifie que le connecteur peut atteindre la plateforme externe, un résultat rouge indique l'erreur.
6
Configurer les fonctionnalités
Choisissez les fonctionnalités à activer : synchronisation des connaissances, synchronization de webhook, actions d'IA. Tous les connecteurs ne supportent pas toutes les fonctions.
Ce que les connecteurs vous donnent
Contexte de l ' IA
L’IA peut consulter les données des clients, les commandes, les abonnements et plus encore via le connecteur. Lorsque le client discute, l’IA dispose de données réelles de la plateforme pour se référer.
Contexte de l'IA (auteurs du connecteur)
Le ContextProvider de votre connecteur fournit à l’IA de tickets un résumé de compte en lecture seule du propriétaire du ticket. Identifiez le client par customer_id lorsque connu; sinon, sur le ticket répond automatiquement, où le drapeau ctx customer_trust_email est vrai, regardez le compte en haut customer_email (l'expéditeur du ticket vérifié). Les plateformes distantes exposent un /context/customer-by-email C'est ce qui fait que l'IA cite un solde/facture réel au lieu de dire « s'il vous plaît connectez-vous ». Honorer les bascules de classe de données de l'opérateur (customer_sections, customer_allow_credit) et rester strictement en lecture seule, ne jamais émettre de secrets.
Répertoire client (auteurs de connecteurs)
L'IdentityProvider de votre connecteur alimente trois recherches de tickets universelles : lookupCustomerById() (carte client), lookupCustomerServices() (tableau des produits/services), et listCustomers($query,$limit): le "Rechercher client ou taper email" sur le formulaire de Compose-New-Ticket natif. {id, external_id, name, email, company, phone, platform, platform_label}. Règle à distance: si vos clients vivent dans une autre base de données ou un autre service,API à l'intérieur de ces méthodes, ne jamais lire directement les tables de l'autre système (dans le OpsIQ DB ce sont des détenteurs de place vides, c'est pourquoi une lecture locale retourne un récupérateur vide. Gate le chemin distant sur votre configuré API URL; ne garder une lecture locale qu'en tant que retour en arrière de la même BD.
Billets, détection et routage par courriel (auteurs de connecteur)
Lorsque l'e-mail entrant devient un ticket natif, OpsIQ détecte l'expéditeur en appelant lookupCustomerById(0, ['email'=>$sender]) Le premier match "possède" le client et son environnement. platform le slug est apposé sur le ticket.created événement comme _pipe_owner_platform (vide = invité).WHMCS-l'email du client ouvre un ticket dans WHMCS (WHMCS Un expéditeur inconnu reste un invité natif. Si votre connecteur met en miroir les tickets natifs sur sa propre plateforme, votre ticket.created Le gestionnaire doit être gaté sur ceci: if (array_key_exists('_pipe_owner_platform',$payload) && $payload['_pipe_owner_platform'] !== '<your-slug>') return;. La clé est absente sur les tickets non pipé (chat/manuel/AI), de sorte que ceux miroir comme avant. Le contrôle par département vit sous Team & Departments → Ouvrir les ticketes par courriel (Toute personne / Clients seulement / Off).
Actions
L'IA peut effectuer des actions via le connecteur : créer des tickets, mettre à jour les commandes, annuler les abonnements, avec votre approbation par le biais du calque de confiance.
Connaissances
Les connecteurs contribuent à l'IA des articles de connaissances spécifiques à la plateforme.Shopifyconnecteur ajoute le dépannage e-commerce;WHMCSconnecteur ajoute la connaissance de l'hébergement.
Importation de la base de connaissances (auteurs du connecteur)
Si votre plateforme héberge une base de connaissances, déclarez un kb_capabilities Bloquer dans settings.json (type kb_source) et votre connecteur apparaît dans l'éditeur du Centre d'aide Importer KB → Importation à partir d'une application connectée déroulant chaque fois qu'il est activé et configuré dans l'espace de travail. Il est déclaratif, aucune méthode à mettre en œuvre: nom un intégré adapter (zendesk pour le centre d'aide exact-tree API, ou crawl (pour tout site KB) et un base_template tels que https://{subdomain}.zendesk.com, que OpsIQ remplit à partir des paramètres stockés de votre connecteur. Les informations d'identification ne quittent jamais le serveur ; le navigateur envoie uniquement la logique du connecteur (slug). opsiq_kb_<platform>_manifest() Référencez-le par son nom. Références complètes: connectors/PLATFORM_CONNECTORS.md §5.
Webhooks
Certains connecteurs enregistrent des webhooks avec la plateforme externe pour les notifications d’événement en temps réel (nouvelles commandes, mises à jour de tickets, etc.).
Suivi des ventes
Les connecteurs de commerce électronique alimentent les données de revenus dans le tableau de bord Sales pour l'attribution et l'analyse.
💡
Chaque espace de travail peut avoir des connecteurs différents activés avec des références différentes.WHMCSl'espace de travail utiliseWHMCSconnecteur;Shopifyl'espace de travail utiliseShopifyconnecteur.
Puis-je utiliser plusieurs connecteurs en même temps?+
Oui, vous pouvez utiliser Shopify pour les commandes et Stripe pour les paiements dans le même espace de travail. L'IA fusionne les données de tous les connecteurs activés.
Que faire si ma plateforme n'est pas répertoriée?+
Utilisez le Connector Builder pour créer un connecteur personnalisé pour n'importe quelle plateforme avec une interface REST API, ou consultez la Marketplace pour trouver des connecteurs créés par la communauté.
Les connecteurs fonctionnent-ils avec OpsIQ autohébergé?+
Oui. Les connecteurs fonctionnent de manière identique dans les éditions cloud et auto-hébergées.
Connecteurs
Contrat de connecteur de vente et facturation
WHMCS est l'implémentation de référence, mais les ponts SaaS, les magasins, les fournisseurs de paiement, les connecteurs de marché et les packages Connector Builder doivent obéir aux mêmes règles.
Ce que chaque connecteur commerce doit publier
Un grand livre faisant autorité
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.
Identité source stable
La plate-forme est la logique de registre du connecteur, telle que whmcs, shopify ou opsiq_saas. traffic_source contient l'attribution d'acquisition vérifiée lorsqu'elle est fournie; sinon, utilisez le même slug que la solution de secours. OpsIQ Résout le nom du connecteur convivial dans l'interface utilisateur.
Idempotence
Mapper au moins un order_ref, invoice_ref ou subscription_ref immuable afin que les réessais de webhook et le remplissage en arrière mettent à jour le même événement au lieu de créer des ventes en double. service_ref identifie l'instance du produit ou du service affecté lorsqu'il existe une instance.
Horodatage de la source
occurred_at est l'heure du paiement ou de l'événement économique signalé par la plateforme source. Ne remplacez jamais les dates historiques des paiements par l'horaire d'importation.
Monnaie et devises
Si le paramètre du connecteur active la conversion de devises OpsIQ, les rapports sont convertis dans la devise de l’espace de travail. Sinon, les reports conservent la devis de la boutique ou de la plateforme de facturation. Le code du connecteurs ne doit pas coder en dur une devise ou un taux de change pour les rapport.
Cycle de vie fondé sur des données probantes
Utilisez les champs Nouveau, Renouvellement, Mise à niveau, Remboursement, Crédit ou Inconnu. Classez par raison de facturation, relation d'abonnement ou de service, type d'élément de ligne ou autre champ de source faisant autorité.
Limite de vente
Les remboursements sont signalés par l'analyse des remboursés et du chiffre d'affaires net. Le crédit de compte, les rechargements de portefeuille, les jetons et les fonds ajoutés restent des événements de grand livre de facturation et ne sont jamais comptabilisés comme ventes, conversions, volume de commandes ou revenus de ventes.
Le CRM reste séparé
CRMLes transactions ne sont pas des ventes de plate-forme commerciale à moins qu'une plateforme de facturation ou de magasin connectée émette la commande ou la facture payée réalisée par le biais du présent contrat.
Projections dérivées
Les opsiq_conversions et les résumés de tableau de bord sont des projections de compatibilité reconstruites à partir du grand livre. Les connecteurs ne doivent pas traiter une projection comme la source financière de vérité. Les révisions de contrat peuvent réévaluer les lignes dérivées sans supprimer l'historique de facturation sous-jacent.
Délimitation de plate-forme distante
Un connecteur distant lit sa plateforme via le API authentifié configuré. Il ne doit jamais dépendre de tables de base de données du même serveur. La clé site_key exacte authentifiée du domaine est fournie par ConnectorRegistry et doit être appliquée à chaque écriture et remplissage de grand livre.
Lorsque la fonctionnalité Ventes et facturation est activée dans le Connector Builder, mappez le montant, la devise, l’état de la source et la date de la Source, ainsi qu’au moins une commande, une facture ou une référence d’abonnement. Mappez lifecycle_type lorsque API expose des preuves faisant autorité du cycle de vie. Le SalesIngest généré passe chaque ligne par le même normalisateur CommerceEventRegistry utilisé par les connecteurs intégrés et marketplace.
⚠️
Les crédits et les fonds d'ajout sont intentionnellement conservés pour l'historique de facturation, le contexte du solde client et l'analyse du grand livre. Les exclure des ventes ne les supprime pas; cela empêche seulement qu'ils gonflent la performance commerciale.
Le type de cycle de vie décide ce qui devient une affaire CRM
lifecycle_type n'est pas une étiquette analytique. OpsIQ lit pour décider si une vente entre dans le pipeline CRM, de sorte que chaque connecteur de vente prend une décision pipelinière qu'il ait l'intention ou non.
nouveau
Ouvre une transaction avec un client (nouvelle entreprise).
renouvellement et modernisation
Aucun accord de nouvelle entreprise — les renouvellements convertissent sur une courbe de probabilité différente et les mélangent corrompent les deux prévisions.
remboursement, crédit
Jamais ouvrir une offre, en aucun mode. L'argent retourné à un client n'est pas une victoire.
omis / inconnu
La vente est enregistrée mais n'a jamais atteint le pipeline.
Une vente, une rangée de grand livre : l'identité est la VENTE, pas l'événement
Ne pas correspondre à event_id et insérez-vous. event_id is platform:eventName:externalId, qui répond -Est-ce que nous avons déjà traité cette livraison et ne peut pas répondre -ont-nous déjà enregistré cette vente . Une plate-forme qui annonce un paiement deux fois — comme invoice.paid et encore comme payment.completed — deux cartes d'identité et deux cartes de crédit, sans rien à mettre en garde.
💡
Trouvé sur l'installation de référence : six factures avec trois lignes du grand livre chacune, à partir de trois chemins de code utilisant trois schémas event_id différents. Elles ont toutes porté 0.00 donc aucun total n'a semblé mal, et tout processus ultérieur de restauration des montants réels aurait compté un paiement trois fois.
Appelez plutôt l'écriture partagée. Core calcule l'identité commerciale de vente (sale_fingerprint), correspond à une ligne existante sur elle, conserve l'original event_id sur mise à jour et filtres aux colonnes réelles:
facture. payée, paiement. complété et vente. complete pour une facture partager une empreinte digitale et mettre à jour une ligne.
Les remboursements restent séparés
L'argent qui sort est un fait différent de l'argent en provenance. Un remboursement d'une facture conserve sa propre identité, donc il ne peut jamais écraser le paiement qu'il inverse.
Pas de référence, pas d'empreinte digitale
Une ligne ne portant aucune commande, facture, abonnement ou référence de service n'a aucune empreinte digitale du tout, donc deux lignes sans lien ne se heurtent jamais juste parce qu'elles manquent toutes deux un identificateur.
Priorité de référence
facture_ref, puis commande_ref et abonnement_ref. Ensuite service_ref — plus fort d'abord, une vente conserve une identité stable.
Le registre est en annexe seulement : ne jamais réécrire une vente
Un remboursement, une annulation ou une correction est nouvelle entrée datée. Ne mutez jamais la ligne qu'il corrige. Réécrire un paiement en remboursement semble rangé et casse trois choses à la fois:
Il détruit les recettes brutes
Le taux de vente et de remboursement brut cesse d'être séparable — et le taux de restitution est la mesure que l'inversion existe pour informer.
Il enregistre le renversement dans la mauvaise période
Un remboursement de mars d'une vente de janvier doit réduire Mars. Réécrire la rangée de janvier en silence répète une période fermée.
Il casse la piste de vérification
Un registre enregistre ce qui s'est passé à un moment donné. Les corrections sont des contre-engagements, ce qui est la façon dont la tenue de livres d'entrée double a fonctionné pendant cinq siècles.
Donc un connecteur signale l'inversion plutôt que de l'appliquer : retour refunded_at et refund_amount Le client peut aussi faire un rapport sur la vente, et le client doit écrire le remboursement comme sa propre ligne datée du moment où le remboursement a été effectué.
💡
Le même principe s'applique aux montants. Ne pas "réparer" un montant stocké à la valeur courante de la plateforme : une facture réglée à partir du crédit de compte enregistré légitimement 0 au moment du paiement, et l'argent était déjà enregistré lorsque le client a augmenté.
Le contrat de classification
OpsIQ décide du cycle de vie once, in \OpsIQ\Commerce\SaleLifecycleClassifier. Un connecteur ne déclare que lequel des sa propre plateforme les mots signifient ce que, en mettant en œuvre \OpsIQ\Connectors\SalesLifecycleConnectorInterface::salesLifecycleVocabulary(), puis appelle le classificateur partagé. Ne pas ré-appliquer le raisonnement.
Déclarez le vocabulaire, délèguez la décision
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,
]);
💡
La priorité est fixe et partagée : explicite, puis remboursé/annulé, puis crédit, puis mise à niveau, puis is_order, puis récurrent, puis acquisition, puis inconnu. Mise à jour se situe au-dessus de la vérification de commande car les plateformes soulèvent une commande pour des mises à niveau aussi; régular se trouve en dessous parce que la première facture d'un nouvel abonnement porte un type de ligne récurrent.
Déclarez la plateforme tout le vocabulaire
C'est l'échec qui coûte le plus cher et qui semble le moins faux.WHMCS connecteur assorti ['hosting','addon','domain'] — une liste qui se lit comme complète.WHMCS n'émet pas de nu Domain type pour les lignes de domaine réelles; il émet DomainRegister, DomainRenew, DomainTransfer, PromoHosting, PromoDomain, DomainAddon* et Upgrade. Tous sont tombés au-delà de la liste unknown: 1,288 factures, trois ans, aucune erreur et aucune ligne de journal.
Chaque nouveau client importe son histoire par un remblayage de connecteur, donc un bug de classification n'affecte pas un espace de travail — il affecte chaque espace de travailler qui jamais à bord à travers ce connecteur, au moment où ils regardent leur pipeline. prefix Ainsi, un frère et une sœur que personne n'a vus se classe avec ses proches au lieu de disparaître.
💡
Un bon connecteur de vente classe presque tout. Un flux constant d'inconnu est presque jamais les données que vous n'avez pas — c'est un vocabulaire que le connecteur n'a jamais appris à lire.
Réparation de l'historique importé
Chaque connecteur de vente expédié OpsIQ implémente ce — 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() en utilisant n'importe quel fichier récupérer votre connecteur a déjà. tools/crm_backfill_sales_lifecycle.php puis répare votre connectique , sans code de connexion : sec par défaut, se recule et vérifie le nombre de lignes avant d'écrire, réversible à travers un registre défaire, et il n'écrit jamais une lecture ratée comme réponse.
💡
Si votre connecteur ne peut pas relire les enregistrements passés — un connecteur webhook seulement ne peut — ne pas piéger la méthode. Un stub retour inconnu est pire qu'aucune implémentation: un remblayage réécrirait de bonnes lignes comme non classifiées et rapporterait le succès. Implémentez l'interface vocabulaire uniquement.
💡
Les références détaillées des paquets restent disponibles dans connectors/CONNECTOR_EVENTS. md et connectors / PLATFORM_CONNECTORIS. md dans les distributions de sources auto-hébergées.
Connecteurs
Contrat d'événement de voyage
Journey Intelligence accepte une enveloppe d'événement neutre par rapport à la plateforme provenant du widget de navigateur, des connecteurs intégrés, du pont SaaS, des packages de marché et de la sortie de Connector Builder.
Isolation et limite de confiance
Clé de domaine pair exacte
Chaque événement est lié à la clé site_key du domaine authentifié. Un connecteur doit obtenir cette clé depuis ConnectorRegistry ou son point de terminaison authentificable, et jamais depuis un corps de requête non approuvé. Les domaines conservent des enregistrements distincts; un groupe de domaine n'est qu'un agrégat en lecture.
Identité indéterminée
Les retentatives, les webhooks et les remplissages de données effectuent la mise à jour d'un événement plutôt que de dupliquer un parcours ou une vente.
Nom natif plus nom canonique
Préservez source_event_name pour les besoins de la preuve et du dépannage, puis mappez-le sur event_name_canonical.
Le serveur gagne
L’observation du navigateur peut amorcer ou déduire un parcours. Les événements authentifiés du connecteur confirment l’inscription, la connexion, le paiement, l’achat, le renouvellement, le remboursement et d’autres résultats finaux. Un jeton de corrélation valide et lié au site constitue la jointure la plus fiable ; un jeton invalide est rejeté et les identifiants qu’il contient ne sont pas considérés comme fiables.
Confidentialité
Envoyez uniquement les identifiants et champs nécessaires au voyage déclaré. Respectez les paramètres de consentement, de masquage et de conservation Ne placez jamais d’identifiants, de données de carte, de secrets d’authentification ou de corps de message privé dans des propriétés.
Les familles prises en charge incluent les événements de page d’engagement/CTA, l’inscription au compte, la connexion, l'authentification multifacteur et la réinitialisation du mot de passe, les étapes de prospect et de formulaire, le produit, le panier, la caisse, le paiement, l‘achat, l´abonnement, le renouvellement et le remboursement, les impressions et conversions de promotion, les activités liées aux centres d’aide, au chat et aux tickets, les évènements de sécurité et les opérations personnalisées dans des espaces de noms. account.signup.succeeded, account.login.succeeded, lead.form.succeeded, commerce.payment.succeeded, commerce.purchase.completed, commerce.subscription.renewed et commerce.refund.completed.
Inférence, confirmation et abandon du navigateur
Le widget peut fonctionner sans connecteur en observant la structure de la page, les actions du formulaire, les résultats DOM et le journal du parcours du visiteur. Cette preuve reste explicitement notée comme observée ou inférieure. Un connecteur ajoute une confirmation faisant autorité du serveur et peut la corréler à la même tentative de navigateur. L'abandon est d'abord stocké comme candidat; il devient abandonné seulement après la fenêtre d'inactivité définie dans l'interface utilisateur et uniquement lorsqu'il n'existe aucune récupération ultérieure ou aucun succès.
Attribution et revenus
L'attribution privilégie un jeton de corrélation signé valide, puis une référence exacte au parcours, à la tentative, à l'activité ou au commerce, puis le graphique d'identité acceptée et enfin une correspondance comportementale limitée. Les ventes non appariées restent sans attribution. Les pondérations du grand livre multi-touch doivent totaliser 1.
⚠️
Le modèle d'attribution, les fenêtres de rétroaction, la gestion du trafic direct, le niveau minimum de confiance, le délai d'abandon et les définitions d'entonnoir sont des règles d'interface utilisateur.
Connector Builder valide le mappage et génère la même carte neutre par rapport à la plateforme utilisée par les packages propriétaires. L'ingestion de trajet accepte un événement ou un lot limité de 100 via le point de terminaison d'intégration authentifié généré.
💡
Le pont commerce-to-journey publie les résultats confirmés par le serveur et réconcilie l'attribution après la mise en avant du grand livre idempotent existant, de sorte qu'un paiement ne devient jamais deux ventes.
Connecteurs
Comment fonctionnent les actions d'IA
Chaque connecteur déclare un ensemble d'actions, c'est-à-dire des choses que l'IA peut faire via la plateforme externe. Les actions sont le pont entre ce que dit l'AI et ce qu'elle fait.
Actions d ' AIUne requête devient une action déclarée (lit/écrit/supprimé) qui est vérifiée, confirmée, puis exécutée et rapportée.
Le cycle de vie des actions
1
Le client demande quelque chose
"Annuler mon abonnement." L'IA identifie que cela nécessite l'action "cancel_subscription".
2
L'IA vérifie les autorisations
Cette action est-elle autorisée? Est-elle activée ; l'utilisateur actuel a-t-il le bon rôle?
3
L’IA recueille des paramètres
L’action nécessite un ID d’abonnement que l’IA recherche dans le contexte client ou demande au client.
4
Confirmation
Pour les actions destructrices ou à fort impact, l’IA demande une confirmation avant d’exécuter.
5
Exécution
L'action appelle la plateforme externe API.
6
Résultat
L’IA rapporte le résultat au client.
Types d ' action
Lire les actions
Recherchez des données sans rien modifier, par exemple list_orders ou get_customer. Sûre, aucune confirmation nécessaire.
Écrire des actions
Créer ou modifier des données. Exemples: create_ticket, update_order. Peut nécessiter une confirmation.
Supprimer les actions
Supprime les données. Exemples: annuler_abonnement. Toujours demander confirmation.
Actions HTTP
Déclaré dans les actes.json, générique API les appels définis de manière explicite.
Étiquettes de capacité
Champ facultatif de « capacité » par action dans les actions.json, une étiquette de classe neutre (p. ex. "tickets" pour une lecture/lookup de ticket, "tecket_create" pour ouvrir un ticket).OpsIQ permet à toute la classe d'accéder uniformément à chaque connecteur : le ticket lit les gouttes de l'IA lorsque l'opérateur désactive la sensibilisation au billet AI, et la création du ticket est réservée OpsIQ's propre compositeur (ainsi un outil de création de connecteur ne peut pas le reproduire).OpsIQ jamais besoin de connaître vos noms d'action. Le Constructeur de connecteurs l'expose comme un déroulant Capacité par action.
Actions du code
Implémenté en PHP dans la classe connecteur. Contrôle total sur la logique.
Exemple de définition d'action
{
"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" }
}
}
}
Connecteurs
Construisez un connecteur
Le Connector Builder vous permet de créer un connecteur complet pour n'importe quelle plateforme avec une interface REST API. Aucun codage requis pour les connecteurs de base.
Construisez un connecteurPointez le constructeur à n'importe quel REST API. Régler auth, base URL et les actions, testez-le, et publiez un connecteur de travail. Pas de code nécessaire.
Couverture complète du fournisseur API
Chaque généré API Le connecteur peut exposer des composants séparés.API Read and Native API Les actions sélectionnées restent préférées; les actions natives couvrent les points de terminaison du fournisseur ajoutés ultérieurement. L'exécution prend en charge REST, GraphQL, JSON, forme, XML, corps bruts et en plusieurs parties, pagination limitée,API-version des en-têtes et idempotence tout en conservant les informations d'identification dans les paramètres du connecteur de l'espace de travail.
⚠️
Les paquets du marché proviennent de. /marketplace_connectors ainsi que groupé /connectors. Augmentez la version du package, régénérez le contrat et la documentation, exécutez des tests de conformité, puis signez à nouveau et publiez la nouvelle version Marketplace.
Assistant Connector Builder
L'assistant comporte six étapes, affichées sous forme d'onglets en haut de l'écran. Enregistrer le brouillon Le bouton dans le pied de page garde votre travail à tout moment.
1
Identité et profil
Nom, limace, description et icône, puis choisir un profil de contrat: Standard API_, Commerce, Helpdesk, Mailbox, Site Intelligence, SaaS Bridge, Local PHP Platform, ou Plateforme avec noAPI lorsque la plate-forme ne sert rien d'appelable et que OpsIQ doit installer un pont. Le profil sélectionne un point de départ complet de la capacité; vous pouvez toujours ajuster les capacités individuelles.
2
Resp.: Ministère de l'Economie et des Finances
Choisissez le modèle d'authentification utilisé par la plateforme et remplissez ses champs. Entrez ici également les vraies informations d'identification de test. Elles sont utilisées pour le test de connexion à l'étape suivante, et ne sont pas stockées après la publication.
3
Essai
Entrez la API de base URL et un paramètre de vérification, puis exécutez un test de connexion en direct en utilisant les identifiants de l'étape 2. Faites ceci avant de définir des actions, si l'auth ou la base URL est faux, chaque action que vous écrivez après échouerait pour la même raison et vous débogez la mauvaise chose.
4
Actions
Définissez chaque opération: nom, méthode HTTP, chemin d'accès au point de terminaison, paramètres, mappage des champs de réponse et les paramètres de fiabilité décrits ci-dessous. Vous pouvez exécuter chaque action individuellement contre le API en direct à partir de cette étape.
5
Déclencheurs
Mappez les événements webhook que votre plateforme envoie sur des évéements OpsIQ, afin que les choses qui se produisent sur votre plate-forme puissent commencer à fonctionner dans _OpsIQ.
6
Relecture, contrat entreprise et publication
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>/.
⚠️
Publier ne valide que le formulaire de l'assistant et émet des avertissements qui ne bloquent pas. La suite complète — manifeste, fichiers de capacité, contrat d'identité-ticket et la vérification bridge-snipet — fonctionne lorsque vous appuyez sur Dry-run, et encore à l'installation. Appuyez sur Dy-rune avant d'expédier, à chaque fois.
Que fait la publication que le formulaire ne vous montre pas
Cinq comportements du générateur surprennent les gens. Aucun n'est un bug; tous vous coûteront un après-midi si vous les rencontrez par accident.
Une question décide de la transmission : la plate-forme sert-elle un API ?
Répondez-le en un rien de temps1en sélectionnant le mode d'accès aux données (ou le "Platform avecAPI" profil " .APIle mode déclare native_api and emits the <slug>_api_call passthrough. Bridge mode declares platform_bridge et les STRIPS native_api même si une spécification plus ancienne la portait, de sorte que le manifeste, la classe générée et les documents d'expertise ne peuvent pas être en désaccord. ai_brain_aware est ajouté de toute façon.
SILENCE MENSUE "il a un API"
Le Constructeur suit votre réponse ; il ne fonctionne pas la vérité pour lui-même, et le défaut quand rien n'est dit estAPIDonc, un non-APIla plate-forme doit le dire ACTIVEMENT — choisissez la "Platform sansAPI" profil, accès aux données de la passerelle ou tic 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.
Le test de connexion par défaut pour GET /ping
Si vous laissez le chemin de vérification vide, le constructeur écrit /ping dans le connecteur généré et dans le profil.json's test block. Presque aucune plate-forme réelle ne sert cette route, donc Test Connection échoue avec HTTP404sur chaque installation et se lit comme une erreur de configuration du client plutôt qu'un défaut de paquet. Définissez un chemin de vérification que votre plateforme répond réellement. Pour un connecteur de pont, pointez-le à votre propre paramètre de diagnostic — cela prouve toute la chaîne en un seul appel: le pont est déployé, la clé correspond, et le pont peut atteindre la base de données.
Re-publier toujours écraser vos éditions main
Les capacités suivent maintenant la réponse data-access, de sorte que ceux qui ne dérivent plus. Tout le reste généré fait toujours: éditer ContextProvider. php ou tout autre fichier émis et publier suivant le remplace. La seule exception protégée est le fichier bridge — l'assistant écrase seulement un pont portant son propre marqueur, donc un manuscrit est laissé seul.
La publication des fichiers supprime
Désactivez une fonction et la publication suivante supprime son fichier fournisseur. Les modifications apportées à n'importe quel fichier généré — ContextProvider.php surtout — sont écrasées sans avertissement. Copiez d'abord les personnalisations ou prenez possession du paquet en supprimant .opsiq- Constructeur.json(après quoi l'assistant ne le gérera plus).
release_status est toujours prévisualiser
L'assistant n'a aucun contrôle pour elle. Un paquet destiné à expédier comme production doit avoir release_status changé à la main dans les paramètres.json— et que la modification rompt la signature, donc resigner ensuite.
La signature prouve l'intégrité, pas l'origine
Les paquets de constructeur sont signés avec la propre clé symétrique de cette installation. Cela détecte les manipulations. Il ne prouve pas qui a écrit le paquet, et toute installation tenant la même clé peut produire la même signature. Traiter un paquet signé localement comme autosigné.
Les collisions de boue ne sont vérifiées que dans un arbre
L'édition refuse une limace qui existe déjà sous/connectors/.Il ne regarde pas/marketplace_connectors/,Donc un paquet de première partie avec la même limace peut finir par shadowed.
💡
Un fichier de connaissances décrivant votre plateforme est généré pour vous à partir du nom, de la description, du type d’authentification et des actions que vous avez définis. Il est chargé dans l’IA lorsque le connecteur est activé. After the connector is enabled, it is loaded into the AI.
Définir une action (étape 4)
Seuls les quatre premiers paramètres sont requis, le reste est défini par l'utilisateur qui peut exécuter l'action et avec quel soin.
Clé et étiquette d'action
La clé est ce que l'IA appelle, et le label est ce qu'un humain lit. Les clés sont automatiquement associées à votre slug de connecteur. Deux connecteurs peuvent donc avoir tous deux un "list_orders" sans entrer en collision.
Méthode HTTP
GET, POST, PUT, PATCH ou DELETE.
chemin URL
Annexé à la base URL. Utilisation {name} Pour les espaces réservés, par exemple /opportunities/{id}/stage
Paramètres
Pour chaque paramètre, vous choisissez également où il va: corps, path, query ou en-tête. Un paramètre path remplit un. {placeholder}; un paramètre de requête est ajouté à la URL.
Cartographie des réponses
Dites quel champ de la réponse JSON signifie ce qui, qui est le nom du client, qui correspond au courriel, qui représente le total des commandes. C'est ce qui permet à l'IA de lire les données de votre plateforme plutôt que de deviner.
Qui peut l'utiliser
Votre équipe (IA d’administration), les clients connectés (chat client), les deux ou l’assistant de rédaction. Les actions client s’exécutent uniquement pour le client connecté, et les champs d’identité sont verrouillés automatiquement afin qu’un client ne puisse pas poser de questions sur un autre.
Nécessite confirmation
Un humain doit approuver avant que l'action ne s'exécute.
Destructif
Marque l'action comme supprimant ou changeant d'état. Utilisé pour avertir avant son exécution.
Permission requise
L'administrateur doit détenir cette autorisation pour que l'IA exécute l'action en son nom; les administrateurs complets passent toujours. Choisissez parmi get_integrations, geten_general, geat_billing, gate_sales_bridge, gesten_knowledge, gage_comportement, glean_permissions, manage_dangerzone, reply_to_chats, greating_to _ticket, send_agent_email ou aucun, ce qui signifie qu'il y a un administrateur authentifié.
Description / indice AI
Optionnel, mais il vaut la peine d'être écrit. Il indique à l'IA quand elle doit utiliser cette action, par exemple "Utiliser ceci lorsque l'administrateur demande de changer une étape du deal". Un bon indice est la différence entre une action que l'AI utilise correctement et celle qu'elle ignore.
Capacité
En option, les tickets (un ticket lu ou recherché) ou ticket_create (ouvre un ticket). Le marquage permet à OpsIQ de bloquer toute la classe en même temps, par exemple, le billet caché lit lorsqu'un opérateur désactive la sensibilisation au ticket AI.
Chemin de la liste
Pour les points de terminaison qui renvoient une liste, le chemin pointillé vers le tableau, par exemple data ou data. items
Chemin d'erreur
Facultatif. Un champ de corps dont la présence signifie que l'appel a échoué, par exemple error.message, utile pour APIs qui renvoie HTTP 200 en cas d'échec.
Exécutez-le
Chaque action peut être exécutée sur le API en direct à partir de cette étape, vous pouvez donc corriger un chemin ou nom de champ erroné avant que quelqu'un d'autre ne l'utilise.
⚠️
Toute action utilisant POST, PUT, PATCH ou DELETE nécessite au départ l'autorisation manage_integrations (voir la section sur les permissions de gestion des intégrations). et Une nouvelle action d'écriture échoue fermée plutôt que de laisser l'IA changer vos données sans supervision. Vous pouvez changer à la fois sur l'action, mais les changer sciemment.
💡
Pour être appelée depuis le chat client, une action doit être en lecture seule. Laissez les options Requires confirmation et Destructive décochées. Une action qu'un client peut déclencher qui change également l'état n'est pas quelque chose que l'assistant vous laissera expédier par accident.
Réception de webhooks (étape 5)
L'étape Triggers vous donne un webhook URL pour s'inscrire sur votre plateforme, et vérifie chaque requête qui arrive sur elle.
En-tête de signature
L'en-tête avec lequel votre plateforme signe, par exemple X-Hub-Signature-256.
Algorithme de signature
HMAC-SHA1, HMA C-SHA256 ou HMA-SHA512.
Système de signature
Simple, un hexagone simple ou une base64 digest.Stripe-style, le format t=...,v1=... utilisé parStripeet plusieurs plateformes qui l'ont copié.
Préfixe de signature
Certaines plateformes préfixent le digest, par exemple sha256=. Laissez-le vide si la vôtre ne l'a pas fait.
Mappings d'événement
Mapper chaque événement que votre plateforme envoie sur l'événement OpsIQ qu'elle devrait générer.
Enregistrement automatique du webhook
Si votre plateforme dispose d'un API Pour gérer ses propres webhooks, vous n'avez pas besoin d'enregistrer le. URL Fabriqué à la main. Ouvrir Enregistrer automatiquement ce webhook sur enable et pointez-le sur deux des actions que vous avez définies à l'étape 4:
Action Create-webhook
Vous donnez le nom du paramètre qui contient URL, éventuellement celui qui contiens la liste des évènements et le chemin dans la réponse qui contien l'identifiant du nouveau webhook.
Action Delete-webhook
Appelé lorsque le connecteur est désactivé, en utilisant l'identifiant capturé ci-dessus. La désactiver arrête donc également votre plateforme d'envoyer vers un point de terminaison mort.
Des fonctionnalités que vous pouvez activer
Les profils et les capacités sont définis par le contrat de connecteur 2.2. Les capacités générées et déclaratives sont émises directement; les capacité EnterpriseExtension.php Échafaudage avec câblage de cycle de vie.
Actions
Opérations que l’IA peut exécuter sur votre plateforme : liste des commandes, recherche d’un client, émission d’une facture.
Déclencheurs
Recevez des webhooks de votre plateforme et transformez-les en événements OpsIQ.
Billets AI
AI Triage et le copilote de réponse sur les tickets qui restent sur votre plateforme. Choisissez l'endpoint qui renvoie un ticket avec ses réponses et mappez les champs; OpsIQ lit le thread à travers lui.
Boîte aux lettres et contacts
Affichez le courrier d'un client sur sa timeline, envoyez à partir d'une offre et synchronisez votre carnet d'adresses dans l'application. OpsIQ CRM.
Importation de client
Parcourez votre liste de clients et importez chacun d'eux en tant que contact OpsIQ, c'est ce que fait le bouton Importer.
Contexte
Insérez les données en direct de votre plateforme dans chaque conversation d’IA.
Identité
Déterminez lequel de vos clients est un visiteur et affichez son profil et ses achats sur un ticket.
Ventes et facturation
Insérez les événements de revenu et les chiffres MRR dans les tableaux de bord OpsIQ.
Billets d ' entrée
Transformez les tickets et e-mails que votre plateforme livre par webhook en fils de support OpsIQ.
Réponses sortantes
Le staff de OpsIQ répond à la plateforme sur laquelle le fil a été créé.
Synchroniser les utilisateurs
Importez vos comptes de personnel dans les utilisateurs OpsIQ admin.
Synchroniser les départements
Importez vos services de support dans OpsIQ.
Ciblage promotionnel et flux de produits
Laissez Promotion Studio cibler les faits que vous connaissez sur une personne et affichez vos produits réels dans une promotion.
Fournisseur Survey Studio
Exposez les faits de l'enquête vérifiés par le serveur, les variables échappées et les pages des destinataires CRM Outreach délimitées via un fichier SurveyProvider. php dédié.
Blocage natif de IP
When OpsIQ blocs an IP, appelez le bloc propre à votre plateforme. API Donc le blocage est appliqué là aussi.
Événements de sécurité
Recevoir bloqué-IP Signaux de menace provenant de : OpsIQ.
Connaissance de la plateforme pour l’IA
Chaque connecteur que vous créez est livré avec une courte référence décrivant ce qu'est votre plateforme et ses actions. L'IA d'administration OpsIQ la lit chaque fois que votre connecteur est activé, de sorte qu'elle comprend votre plate-forme plutôt que de simplement voir une liste des noms d'actions.
API passage
Votre connecteur reçoit toujours un appel à usage général afin que l'IA puisse atteindre un point de terminaison pour lequel vous n'avez pas défini d'action typée. Utilisez des actions typées lorsque c'est possible; il s'agit du trapèze d'échappement.
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.
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.
Mettez des règles métier spécifiques à la plateforme dans les points d'extension générés; le cycle de vie du package, les files d'attente, les travailleurs, les migrations et les tests de conformité restent gérés par Builder.
Paramètres de fiabilité sur chaque action
Remboursements
Le nombre de fois où un appel échoué doit être réessayé, avec une mise en attente qui double chaque tentative. Seuls les délais d'attente, les erreurs 429s et 5xx sont réessayées. Une erreur 4xx est la faute de votre requête et répéter cette erreur ne ferait que brûler votre limite de débit.
Limite de taux
Un plafond par minute pour cette action, afin qu'un déclencheur occupé ne puisse pas marteler votre plateforme. Laissez-le à 0 pour aucune limite.
Délai
Combien de temps attendre pour votre plate-forme avant d'abandonner.
Confirmation
Exiger qu'un humain approuve l'action avant de la faire fonctionner. Utilisez-le pour tout ce qui est destructeur.
Types d'authentification
Étape 2 vous propose sept modèles. Choisissez celui qui correspond à votre plateforme API documentation, le générateur émet le bon client HTTP pour lui.
API clé dans l'en-tête
Une clé statique envoyée comme en-tête fixe, par exemple X-API Vous donnez le nom de l'en-tête et l'étiquette que le formulaire d'administration doit afficher. Ceci envoie la clé uniquement comme en-têtes; si votre API Si la requête attend que la clé soit un paramètre de requêtes, utilisez des en-têtes personnalisés ou un connecteur à code complet.
Jeton au porteur
Token sent as Authorization: Bearer <token>. Common for modern APIs.
Auth de base
Nom d'utilisateur et mot de passe, encodés en base64 dans l'en-tête Autorisation Vous choisissez les étiquettes que ces deux champs affichent sur le formulaire d'administration.
HMAC-signé
Une clé publique plus un secret, avec le corps de la requête signé Vous donnez l'en-tête de signature, l'entête de la clé et l'entier d'horodatage attendu par votre plateforme.
OAuth 2.0 (informations d'identification du client)
Serveur à serveur, sans interaction utilisateur ni redirection. Vous fournissez le jeton URL et une portée facultative; l'administrateur fournit un ID client et un secret. Utilisez-le lorsque votre plateforme émet des informations d'identification à une application plutôt qu'à une personne.
OAuth 2.0 (Bouton de connexion)
Le flux d'autorisation-code avec PKCE, pour Stripe, Shopify, Slack et des applications de style QuickBooks. Vous donnez l'autorisation URL, le jeton URL Après la publication, l'administrateur clique sur Connecter sur le connecteur, autorise votre plateforme et configure les paramètres de connexion. OpsIQ stocke le jeton de rafraîchissement et les jetons d'accès mints à la demande. URI Pour vous inscrire dans votre. OAuth L'application est affichée sur la page de paramètres du connecteur.
En-têtes personnalisés
A free-form JSON Utilisez la carte d'en-tête pour tout ce que les modèles ci-dessus ne couvrent pas, par exemple {"X-API-Key":"{api_key}","X-Locataire":"{tenant_id}"}. Chaque espace réservé devient un champ sur le formulaire d'administration.
💡
Le flux d'informations d'identification du client n'a pas de redirection et aucune étape utilisateur, PKCE ne s'y applique donc pas.
Styles de pagination
Déduction
Utilise les paramètres offset et limit. Exemple:?offset=100&limit=50.
Page 10
Utilise le numéro de page. Exemple:? page=3&per_page=_50.
curseur
Utilise un jeton de curseur de la réponse précédente.
En-tête de lien
Utilise l'en-tête de réponse Lien avec rel="next".
Avancé: code PHP personnalisé
connector. php REMURS une instance. Il ne déclare pas une classe nommée pour laquelle OpsIQ chasse. Les noms de méthode ci-dessous sont ceux requis par ConnectorInterface; obtenir un faux est fatal à la charge, pas un avertissement.
connector. php — le contrat réel, minimal et réalisable
<?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.
Miroir des tickets dans le système de billetterie natif
Lorsque votre plateforme possède un ticket, faites-en une copie en miroir dans OpsIQ à partir de votre connecteur en utilisant l'assistant d'ingestion de tickets dont hérite votre connecteurs (créer pour un nouveau ticket, ajouter une réponse pour les suivis). subscribers() méthode, ticket.created, ticket.replied, ticket.updated, ticket.deletedLa réponse automatique, l'escalade, le SLA et le CSAT sont tous liés aux mêmes événements, vous pouvez donc en hériter sans code supplémentaire.
Dites qui a écrit le message d'ouverture
Un billet est toujours pour Le message d'ouverture peut être écrit par le client, mais staff: un agent qui ouvre un ticket pour le compte du client, ou qui s'adresse à lui de manière proactive. ticket.created Un contrat plutôt que quelque chose que chaque connecteur résout en privé.
author_type
client (par défaut) ou admin. Omettez-le et le client est supposé.
author_id
L'identifiant du personnel lorsque author_type=admin. Jamais l'identi fi de client.
author_name
Nom d'affichage de l'agent ou du service. Revient à « Personnel ».
author_email
L'adresse de l'agent. JAMAIS celle du client. Un message du personnel sous le courriel du client est une erreur de rapport et d'audit.
Ce n'est pas cosmétique. Les consommateurs lisent author_type Une ouverture écrite par le personnel est signalée comme étant la première. client laisse auto-répondre à un message écrit par votre propre agent, et fait l'écho de votre plateforme de cette ouverture ressemble à un nouveau message client, qui se pose alors comme un duplicata et retourne le ticket à answered. Mappez le signal de votre plateforme sur celui-ci dans les Normalisateur d'événements, jamais dans les consommateurs.
Blocage centralisé
Lorsqu'un agent bloque un expéditeur, cela s'applique à tous les every canal immédiatement (e-mail, chat, portail, widget et chaque connecteur jumeau) parce que le bloc est appliqué centralement, avant que n'importe quel connecteur voit le message. Votre connecteur hérite en ne faisant rien. Il n'y a pas de travail entrant pour implémenter et aucun moyen de se tromper.
La moitié facultative est outbound: indiquer à votre plateforme qu'un client a été bloqué ici, ne l'implémenter que si votre plate-forme peut exprimer quelque chose d'équivalent.
Capabilities()
Doit inclure block_registry ET la classe doit implémenter BlockRegistryInterface. Le drapeau est une revendication; l'interface est la garantie. Le registre nécessite les deux.
Même charge utile, inversée. Doit être idémpotente. Débloquer quelque chose qui ne soit jamais bloqué n'est pas une erreur.
isSenderBlocked($b)
Pour le rapprochement, la dérive est donc signalée plutôt que découverte par un client. Retourne [résultat, bloqué?].
Valeurs de résultat
Très bien.
Appliqué sur votre plateforme. Inclure remote_ref quand vous avez un id qui vaut la peine d'être enregistré.
noop
Déjà dans l'état demandé.
unsupported
Votre plateforme n'a pas de concept équivalent. PAS une erreur.
échoué
Vous auriez pu le faire et cela aurait mal tourné. Incluez les détails. Ils entreront dans la piste d’audit.
La réponse correcte est « décliner ». De nombreuses plateformes n'ont pas de concept de « blocage de cet expéditeur » et offrent uniquement la suspension du COMPTE, ce qui arrête la facturation, les connexions et les services plutôt que simplement le courrier d'assistance. En associant « un agent a bloqué une adresse spam » à « fermer le compte de ce client », vous permettrez qu'un seul clic erroné bloque les services d'un client payant. unsupported Et laissez-le tranquille.
Le refus couvre également le cas où la plateforme can Vous ne pouvez pas le faire, mais vous ne le laisserez pas. API, pas une fonctionnalité: un levier qui n'existe que dans l'interface d'administration de la plateforme est un lecteur dont votre connecteur ne dispose pas.
Exemple de travail · Zendesk (la mise en œuvre de référence)
Lire connectors/zendesk/connector.php alongside this. It is short, and every branch below is a decision you will face too.
Envoyer un email → ok
PUT /api/v2/users/{id} avec suspendu=true. Les nouvelles requêtes d'un utilisateur final suspendu se détournent vers les Billets Suspendus au lieu d'en ouvrir une, vraiment la même idée que de bloquer un expéditeur, et cela n'arrête pas la facturation parce que Zendesk utilisateurs finaux n'ont pas.
Domaine → non pris en charge
Zendesk PEUT suspendre un domaine entier, mais seulement à l’aide du mot clé suspend: dans la zone de texte de liste de blocage du Centre d’administration. Aucune valeur API n’écrit ce champ. La fonctionnalité existe, le levier non.
ip → non pris en charge
Aucun bloc IP n'existe au niveau du ticket.
Adresse inconnue → noop
Zendesk ne peut pas pré-suspendre une adresse qu’il n’a jamais vue. Rien ne faire n’est pas un échec. Le blocage local arrête toujours le ticket.
Agent ou administrateur → non pris en charge
REFUSÉ. Le personnel qui suspendrait un collègue serait enfermé hors du service d'assistance. Une adresse du personnel atteignant une liste de blocs est beaucoup plus susceptible d'être une erreur qu'une instruction, vérifiez le rôle avant d'agir sur elle.
Cette dernière ligne est celle qui vaut la peine d'être copiée. Le contrat ne peut pas vous empêcher de mapper un bloc sur quelque chose de destructeur, donc chaque connecteur doit décider par lui-même ce qu'il refusera. detail Un opérateur peut lire, battre l'obéissance.
Faites des rapports honnêtement. Remarquez combien peu de ces lignes sont ok. C'est le résultat correct, pas un trou : un bloc de domaine fonctionne encore (il est appliqué dans le noyau au moment où il est écrit); il ne peut tout simplement pas être reflété vers l'extérieur. ok pour une action que vous n’avez pas effectuée indiquerait à un opérateur que le blocage a atteint votre plateforme alors qu’il n’a jamais quitté OpsIQ.
Règles
Le bloc local gagne toujours
Il est écrit AVANT que vous soyez appelé et il reste en place quel que soit le résultat de votre appel.
Ne jamais jeter
Un lancer est traité comme non supporté et enregistré, le retour échoue avec un détail à la place pour que la raison survive.
Être idempotent
Le même bloc peut être annoncé plus d'une fois.
Retournez rapidement
Le travail lent de la file d'attente est préférable à maintenir la requête ouverte.
Ne pas rappeler dans
Ne jamais rebloquer dans OpsIQ depuis votre gestionnaire. Le registre ignore le connecteur d'origine, mais un deuxième saut serait en boucle.
Chaque annonce est écrite à opsiq_block_registry_log (opération, type, valeur, raison, admin, origine, connection slug, résultat, détail et timestamp) afin qu'un opérateur puisse voir un bloc arrivé de votre plateforme plutôt que d'un agent, et ce que chaque connecteur a fait à son sujet.
Pousser les pièces jointes correctement
Main attachments array to create()/addReply(). Chaque élément porte le fichier sous l'une des trois formes suivantes:
content_b64
Base64 des octets de fichier RAW, utiliser pour les fichiers derrière auth (la plupart des cas entrants). OpsIQ le décode et ré-héberge le fichier pour vous. La forme la plus portable.
url / source_url
Un https public URL (par exemple, une content_url Zendesk). Doit être https; passe un contrôle SSRF / allowlist avant d'être stocké.
stored_path
Une référence de fichier stockée que vous avez déjà écrite (ce que le compositeur natif produit).
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 Noms de fichier uniquement (pas d'octets), donc le motif fiable d'arrivée est: lire les octets où votre code fonctionne déjà (à l'intérieur de la plate-forme, ou à partir de la charge utile webhook), base64, et les expédier comme content_b64 sur l'événement.
Sortie (OpsIQ → votre plateforme). Lorsqu'un agent joint un fichier, le ticket.replied La charge utile vous donne les fichiers de la réponse stored_path au titre de la OpsIQ Lisez-les et appuyez dans le format de votre plateforme, et vérifiez les documents de la plate-forme, les questions d'encodage: WHMCS veut base64_encode(json_encode([[name,data]])) (JSON, ne pas sérialiser) ; Zendesk télécharge les octets bruts vers /uploads.json Pour un jeton puis définit comment.uploads; Gmail envoie un message RFC-822 multipart/mixte codé en base64url raw; Amazon SES inbound attachments need the S3 receive action (the SNS path caps at 150 KB).
Plateformes distantes: API + webhook, jamais les tables d'une autre application
Si votre plateforme est une Une application ou une base de données séparée (un SaaS hébergé, un WHMCS distant, une DB différente sur le même serveur), N'écrivez jamais ses tables directement: une base de données croisée écrit des terres sur n'importe quelle connexion est active et manque silencieusement les lignes réelles. Toujours: outbound = appeler le REST signé de la plateforme API (réponses, statuts, département, suppressions); inbound = la plateforme POST un webhook signé, votre handleWebhook() Vérifie et déclenche la correspondance ticket.* Pour arrêter une boucle miroir, marquez ce que vous poussez avec un marqueur d'origine (par ex. mirror_origin:'opsiq'); la plateforme fait écho à ce message sur le webhook et votre gestionnaire entrant ignore ses propres échos. OpsIQEvents::isMirroredEvent() Au sommet de chaque gestionnaire.
Statut, priorité et département du miroir
Une réponse déplace automatiquement le statut, agent Répondre → answered, a client Répondre → customer_replyPour des modifications explicites, abonnez-vous à la liste de diffusion. ticket.updated et lire : payload['changes'] (e. g. {status:'closed'}).
Statut : L'ensemble canonique de OpsIQ est open, customer_reply, answered, in_progress, pending, closedGardez une petite carte bidirectionnelle du vocabulaire de votre plateforme, et assurez-vous que votre colonne accepte réellement les valeurs que vous écrivez (un ENUM (L'absence d'une valeur est silencieusement abandonnée à vide par certaines bases de données). Département : des OpsIQ département id est sans sens de votre côté, Ne l'envoyez jamais. Envoyer le descripteur (name, email et slug) et résolvez-le contre vos propres départements par e-mail → nom → slug, de sorte que “Département de facturation” atterrit dans votre Département de facturation au lieu de général. Déclenchement sur les deux ticket.escalated et un department_id Changement en ticket.updated.
💡
La mise en miroir d'état / priorité / sujet / département / suppression est contrôlée par des bascules par connecteur (mirror_status_changes, mirror_priority_changes, Mirror_subject_change, Mirror Department Changes, Mirror Deletes) lues à travers le partage. OpsIQ\Connectors\MirrorOptions helper. Intégrez ce bloc dans vos paramètres.json et chaque connecteur ticket-miroir lit les bascules de manière identique.
Lier un ticket à un produit / service
Si le client a choisi un produit spécifique lors de l'ouverture du ticket, ajoutez une indication afin que l'agent voit une carte de service ciblée (avec un modal « voir d'autres produits » en un clic pour le reste).
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 code de service de plateforme, par exemple WHMCS S396 (service396) / D11 (domaine11). OpsIQ décompose le type-lettre + id optionnel et fait correspondre votre liste de services, avec une protection de type afin qu'un code de domaine ne corresponde jamais à un produit du même id.
related_domain
Un nom de domaine; correspondant à une sous-chaîne par rapport au détail / domaine de chaque service.
💡
Construire la liste des pièces jointes une fois, dans la forme ci-dessus, et OpsIQ Gère le reste: hébergé URLs Vous n'avez jamais besoin d'écrire une gestion de fichiers par plate-forme.You never need to write per-platform file handling.
⚠️
Les touches d'action sont des lettres minuscules, des chiffres et des soulignements.3à80caractères et permet également des points; le magasin d'action accepte2à100Si vous ajoutez une action ne crée pas de route AJAX, il n'y a donc rien à régénérer — sauvez le connecteur et il est synchronisé.
Connecteurs
Connectez une plate-forme qui a NOAPI(le modèle de pont)
Beaucoup de plates-formes réelles ne sont pas navire RESTAPIUn CMS hôtel, un ancien système de facturation, un outil interne sur mesure.OpsIQconnecteur pour un: le connecteur expédie un seul fichier PHP que l'opérateur tombe dans leur propre webroot public, et ce fichier EST leAPI. Cette page est le modèle entier, avec les règles qui rendent sûr de courir et la raison derrière chaque règle.
La forme de celui-ci
Un connecteur normal appelle le API de quelqu'un d'autre. Un connecteur de pont apporte le sien. Rien d'autres ne change : les mêmes actions, les mêmes fournisseurs de contexte, le même contrat d'identité, la même disposition du paquet.
1
Vous écrivez un fichier 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
L'opérateur le copie dans leur webroot
A côté de la plate-forme propre index. php. Aucun code de plate-formes n'est modifié, aucun plugin n'a été installé, rien à maintenir sur les mises à niveau de la plateforme.
3
Le panneau de connecteurs leur donne le fichier
Vos paramètres.json déclare webhook_help. snippet_template. La page de connecteur la rend comme un fichier copiable avec leurs paramètres en direct déjà substitués, il n'y a donc rien à modifier manuellement.
4
OpsIQ l'appelle serveur vers serveur
Votre Client.php envoie des requêtes GET avec la clé partagée dans un X-Opsiq- En-tête de la clé de pont.URLsetting est la racine du site de la plate-forme.
✅
Le Constructeur de connecteurs peut générer ceci pour vous maintenant.API" profile (ou set data access to bridge) et il émet le fichier bridge, l'extrait de panneau correspondant et les actions dactylographiées qui lisent et écrivent à travers lui — pour une application Laravel lisant son .env, pourWordPressreading wp-config.php, or with identitys you colle in for anything. Hand-Author only when your platform is not there, or when you need behavior the generated bridge does not cover. Un pont manuscrit est sûr de l'assistant : il écrase seulement un fichier de ponts portant son propre marqueur.
💡
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.
Le modèle de sécurité, et pourquoi chaque règle est là
Ce fichier est situé dans une webroot publique derrière une clé partagée. Ce seul fait conduit chaque règle ci-dessous. Ne détendez aucun d'entre eux pour rendre votre pont plus simple.
L'appelant ne fournit jamais SQL
Pas une clause OÙ, pas un fragment ORDER BY, pas juste un paramètre de requête brute "une fois". L'appelant nomme une table, une colonne et une valeur; votre fichier construit l'instruction. Le moment où un appelant peut contribuer SQL texte, une clé partagée devient arbitraire exécution de base de données.
Les noms de tableau et de colonne sont validés en fonction du_schéma d'information
Les identifiants ne peuvent être liés en tant que paramètres, ils doivent donc être vérifiés à la place. Lisez la liste de tableaux et de colonnes réelles pour CE fichier et refusez tout ce qui n'y figure pas. Un identifiant qui n ́est pas un objet réel de ce schéma ne peut alors pas atteindre une requête du tout — ce qui rend sûr d ́exposer chaque table.
Chaque valeur est un paramètre lié
Sans exception, y compris les valeurs à l'intérieur d'une recherche. Les identifiants validés plus les valeurs limites sont la paire qui rend le total de surface et la surface d'injection nulle.
Les lectures sont universelles, les écrits sont listés
Voir le prochain bloc. C'est la règle que les gens veulent le plus sauter.
Les colonnes secrètes sont expurgées en lecture et refusées en écriture
Correspondance sur la colonne NOM: mot de passe, remember_token, secret, api_key, private_key et sel. Remplacer la valeur par un porte-places en sortie. Refuser l'écriture entièrement en cours de route — écrire un hash brut n'est pas une opération, c'est un pistolet de pied. Envoyer l'opérateur au flux de mot de passer propre à la plate-forme.
Les suppressions sont à une ligne, par clé primaire
Jamais un vrac supprimer, jamais un effacer par filtre. Un enlèvement en vrac est la façon dont une base de données meurt. Si quelqu'un a vraiment besoin d'un, ils peuvent le faire dans la plate-forme.
Les lectures sont en rangée
Fermez le paramètre limite avec un plafond dur. Une requête fugueuse ne doit pas pouvoir vider la base de données à travers un message de chat.
Échec fermé jusqu'à ce que la clé soit réglée
Un pont non configuré répond 403 à tout. Un pont qui est utile avant qu'il soit configuré est un pont qui a été utile à un étranger.
Comparaison des clés à temps constant, clé dans un en-tête
La clé est dans X-Opsiq_-Bridge-Key, pas la chaîne de requête, donc elle reste hors des journaux d'accès, des journaux proxy et des en-têtes de référencier.
Obtenir seulement
Une méthode, une forme, rien à faire entrer en contrebande dans un corps. Tout ce que fait le pont est expressible comme GET avec des paramètres validés, et OpsIQ est le seul appelant.
Lire universel, écrit permis-énuméré — et pourquoi
C'est la règle qui se dispute, alors voici le raisonnement en entier. L'assistant devrait être capable de VOIR toute la plate-forme: c'est ce qui la rend utile, et une lecture ne peut rien détruire. Les écritures sont différentes. Ce fichier est situé dans un webroot public derrière UNE clé partagée. Si cette clé fuit, une surface d'écriture sans restriction fait la fuite équivalente à un contrôle complet de base de données — un nouvel utilisateur admin, une table de réservation vidée. Une liste permis signifie qu'une clé divulguée ne peut toujours pas atteindre une table que l'opérateur n'a jamais activée.
⚠️
La carte d'approbation OpsIQ permet l'IA, pas la clé. L'administrateur cliquer Permettre sur une action destructrice est un contrôle sur l'assistant. Ce n'est pas un contrôle de celui qui détient la clé de pont. Ce sont deux menaces différentes, et la liste d'autorisation est la réponse à la seconde.
Le bouton de l'opérateur, depuis le pont Bottle
/* ── 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';
Deux détails dans le chèque ci-dessous sont faciles à corriger. Le nom de la table arrive déjà RESOLVED, en portant le préfixe de la tableau d'installation, tandis qu'un opérateur écrit la liste d'autorisation non préfixée car c'est ce qu'ils taperaient naturellement. Comparez les deux façons ou une installation préfixé permet silencieusement rien et chaque pause d'écriture. Et le refus doit s'expliquer, parce que la personne qui lit est un administrateur dans une fenêtre de chat, pas un développeur avec une trace de pile.
La vérification de la liste d'autorisation, à partir de marketplace_connectors/botble/bridge/opsiq-botble-bridge.php
/** Tables a WRITE may touch. Empty = the built-in defaults. */
$writeAllowed = static function (string $table) use ($prefix): bool {
$raw = trim((string)(defined('OPSIQ_WRITE_TABLES') ? OPSIQ_WRITE_TABLES : ''));
if ($raw === '') $raw = 'ht_bookings,ht_booking_rooms,ht_rooms,ht_customers,customers';
if (trim($raw) === '*') return true; // explicit opt-in to everything
$bare = ($prefix !== '' && stripos($table, $prefix) === 0) ? substr($table, strlen($prefix)) : $table;
foreach (explode(',', $raw) as $t) {
$t = trim($t);
if ($t === '') continue;
if (strcasecmp($t, $table) === 0) return true;
if (strcasecmp($t, $bare) === 0) return true;
if ($prefix !== '' && strcasecmp($prefix . $t, $table) === 0) return true;
}
return false;
};
/** One refusal, one explanation — used by every write op. */
$requireWritable = static function (string $table) use ($writeAllowed): void {
if ($writeAllowed($table)) return;
opsiq_bridge_out(['success' => false, 'error' =>
'write_not_allowed: "' . $table . '" is not in this bridge\'s write allow-list. '
. 'Reads are unrestricted. To permit writes here, add the table to OPSIQ_WRITE_TABLES '
. 'in opsiq-botble-bridge.php (or set it to "*" to allow every table).'], 403);
};
La porte, en entier
Quatre contrôles, dans cet ordre, avant que rien ne touche les données. Copier la commande ainsi que les contrôles.
Les quatre contrôles de porte, en ordre
<?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. */
Valider les identifiants en fonction du_schéma d'information
C'est la pièce qui transforme "l'assistant peut atteindre n'importe quelle table" en sécurité. Résolvez le nom de la table de l'appelant contre le schéma réel, tolèrez un préfixe de table manquant ou supplémentaire, et retournez nul pour tout le reste. Tout en aval fonctionne alors avec un nom qui existe probablement.
Validation et rédaction de l'identificateur, mot à mot du pont Bottle
/** 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;
};
Une opération de lecture et une op d'écriture, terminée
Notez ce qui est lié et ce qui a été validé. La colonne filtre est cochée sur la liste des colonnes réelles puis interpolée comme un identifiant; sa valeur est liée. La limite est serrée. Les lignes sont expurgées en sortant. La mise à jour refuse la clé primaire et toute colonne auth, et les timbres mis à jour_at lorsque la table en a une.
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,
]]);
}
Écrire une ligne — tableau en liste autorisée, colonnes auth refusées, ligne unique par clé primaire
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)),
]]);
}
Différences de schéma de survie
Les versions de la plate-forme diffèrent. Les colonnes se déplacent, sont rebaptisées ou sont absentes. Un pont qui suppose qu'un schéma fonctionne sur une installation. Introspecter et s'adapter à la place : sélectionnez seulement les colonnes qui existent ici, tolèrez le préfixe de table, et essayez l'orthographe plausible d'une référence.
Tolérance au schéma, depuis le pont 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));
💡
Donnez à votre bridge un op=diag qui ne rapporte que la STRUCTURE — quelles tables ont résolu, quelles colonnes la table principale a, et le SHAPE de la nouvelle référence avec chaque chiffre masqué. Il est clé-fait comme tout le reste, et il transforme "la recherche ne trouve rien" d'un ticket de support en une réponse dix secondes. Ne jamais laisser retourner des enregistrements réels.
Erreurs uniformes et piège de dénombrement
Une forme pour tout
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.
Non-trouvé et sans correspondance doit être identique
Sur une surface de recherche, une référence qui n'existe pas et une référence dont la preuve ne correspond pas doit produire la réponse SAME. Différentes réponses transforment votre pont en un oracle qui confirme quelles références sont réelles, ce qui est une liste gratuite d'exportation pour tout patient.
Ne jamais divulguer la raison à un visiteur
Le pont peut être précis avecOpsIQ. Ce qui atteint un visiteur est décidé parOpsIQ, dans un refus fixe.
Le fichier copiable dans le panneau de connecteur
L'opérateur n'ouvre jamais votre dépôt. Ils ouvrent le panneau du connecteur dansOpsIQet appuyez sur Copie. Cette copie vient de paramètres.json, et il doit être le même programme que bridge/*.php.
paramètres.json — l'entrée du panneau pour un connecteur de pont
{
"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.
D'autres détenteurs de place sont substitués côté serveur
Indépendamment de cela,{webhook_url}, {webhook_path}, {webhook_secret}, {site_key}, {base_url}et{slug}sont remplis avant que le panneau ne voit jamais l'extrait.
webhook_help peut être un objet ou une liste
Une liste vous donne plusieurs extraits dans un panneau, par exemple un fichier de pont et un crochet de relais séparé.
🚫
Ne pas maintenir l'extrait de pont à la main. Le fichier du pont et la copie du panneau sont deux copies d'un programme, et ils DIRECT — un pont a été amélioré et sa copie du tableau n'était pas, donc quiconque a réinstallé et copié du panneau installé l'ancien pont et a silencieusement perdu toutes les nouvelles capacités.
Gardez les deux copies identiques
# 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.
Ce que le pont devrait exposer
Les opérations en forme et une surface de données universelles, ensemble. Les personnes en forme retournent des réponses ordonnées, conçues pour répondre aux questions que les gens posent réellement; les personnes en ligne couvrent tout le reste afin que l'assistant ne soit jamais coincé.
Lectures en forme
statistiques, la liste d'objets principale avec filtres, un objet avec ses lignes connexes, le catalogue de ce qui est vendu, recherche client avec l'historique. Ceux-ci donnent à l'IA une bonne réponse en un appel au lieu de cinq.
Écrits en forme
Les deux ou trois changements d'état qui comptent — définir le statut, annuler. Conserver les valeurs acceptées sur la liste.
Découverte universelle
les tableaux (avec nombre de lignes) et décrire (colonnes, types, clé primaire, plus des drapeaux lisibles et enregistrables par colonne). C'est ainsi que l'assistant apprend une plateforme que vous n'avez pas prévue.
Lecture et écriture universelles
requête, record. get, records. create, record . update, record, record_delete. Tous validés comme indiqué ci-dessus.
Identité, avant la porte de clé
Les sondes d'identité sont appelées par le ADMIN'S BROWSER, même origine, de sorte qu'elles ne peuvent pas envoyer un en-tête personnalisé. Leur authentification est la session de plate-forme elle-même. Mettez-les en avant de la porte clé, les tenir loin de toutes les données d'enregistrement, et ne jamais les laisser retourner un secret. Voir la page d'identification du connecteur.
Diagnostic
op=diag, structure only, masked.
💡
Un connecteur en lecture seule n'a pas besoin d'une liste d'autorisation. Si votre plateforme ne répond qu'à des questions, expédiez un pont sans écriture et toute la classe de risque d'écriture disparaît. Ajoutez les écrits lorsque quelqu'un vous les demande.
Liste de contrôle avant d'expédier un pont
Le pont refuse tout sans clé
Testez-le. Renommer la constante pour vider et confirmer chaque réponse op 403.
Une mauvaise clé est refusée en temps constant
hash_egals, et la clé lue depuis l'en-tête seulement.
Un nom de table maquillé est refusé
Et un vrai nom de table avec un faux préfixe résout encore.
Une colonne de mot de passe n'apparaît jamais dans une lecture
Et une écriture qui donne un nom à un est refusée avec une explication.
Un écrit à une table en dehors de la liste d'autorisation est refusé
Avec le message qui indique à l'opérateur comment l'élargir.
L'extrait de panneau correspond au fichier du pont
php tools/sync_connector_bridge_snippets. php le rapporte en étape.
La remise en service du connecteur n'est pas suffisante
Si votre paquet envoie un fichier de passerelle, un opérateur mettant à niveau le connecteur doit ALSO redéployer ce fichier dans leur webroot. Dites-le dans le corps du panneau et dans votre CHANGELOG, chaque version.
Connecteurs
La passerelle dans d'autres langues et autres bases de données
Le modèle de pont n'est pas un modèle PHP.OpsIQappels est un paramètre HTTP, de sorte que le fichier peut être Node, Python, Go, Ruby, .NET ou Java, et le magasin derrière il peut être n'importe quelSQLmoteur ouMongoDB. Ce qui est en forme de PHP est le pipeline d'emballage, et cette contrainte décide comment votre pont atteint l'opérateur. Lire la section de livraison d'abord : c'est la partie qui surprend les gens.
Ce que le connecteur nécessite réellement
Rien ne donne de nom à une langue.
1. Transports
HTTPS. Une requête GET par appel. Pas de corps, pas d'autre méthode.
Authentification
Un secret partagé dans le X-Opsiq-Bridge-Key request en-tête, comparé en temps constant. Pas un paramètre de requête, pas un cookie, pas Basic auth.
Paramètres
- C'est une corde de requête. op désigne la surface, do Nomme l'opération, le reste sont les arguments de cette opération.
Réponse
JSON. {"success":true,"data":{...}} ou {"success":false,"error":"snake_case_reason"}. Application de type contenu/json, et sans cache.
Codes d'état
200sur le succès.403clé non configurée ou incorrecte,404non trouvé,405mauvaise méthode,400Mauvais argument,501non supporté sur ce schéma.
C'est tout.
Pas de cadre, pas d'exécution, pas de bibliothèque OpsIQ de votre côté. S'il peut servir cela, il peut être un pont.
Livraison: ce qui peut vivre dans le pont/, et ce qui ne doit pas
Le paquet signé couvre une liste fixe d'extensions de fichiers, et un fichier en dehors de cette liste est laissé hors du ZIP. Un pont dans une langue la liste ne couvre donc pas ne peut pas expédier à l'intérieur du paquet — mais il ne peut plus disparaître sur vous non plus.26Août2026un fichier dans bridge/ que le paqueteur tomberait est une défaillance de conformité difficile, donc le paquet refuse de passer plutôt que d'installer sans pont dedans.
Comment un bridge/ dossier est traité au moment de la construction
bridge/bridge.php -> SHIPPED, and drift-checked against the panel snippet
bridge/server.js -> SHIPPED, and drift-checked against the panel snippet
bridge/bridge.py -> REFUSED at conformance: "Bridge files are packaged" FAILS
bridge/bridge.rb -> REFUSED at conformance
bridge/main.go -> REFUSED at conformance
bridge/Bridge.cs -> REFUSED at conformance
bridge/Bridge.java -> REFUSED at conformance
PHP and JavaScript — fully supported
Le fichier est livré dans le ZIP signé, et le vérificateur d'extrait de code contient votre copie de panneau octet-identique à elle, l'un des deux il est. La vérification de dérive lit chaque fichier dans bridge/, pas seulement les PHP, donc un pont mis à niveau avec une copie de tableau stale échoue la construction dans l'une ou l'autre langue.
Tout le reste — livrer par le panneau seulement
Le panneau snipet est un texte simple sans idée de la langue qu'il contient, donc il fonctionne pour n'importe quelle pile. Mettez le programme entier dans webhook_help. sniptepet_template, nomez le fichier dans snipset_filename, et ne laissez PAS une copie dans bridge/ — conformance refusera le paquet plutôt que de l'expédier creux. Dites clairement dans webHook_ Help. body que l'opérateur copie ce fichier plutôt que le récupérer du paquet.
Si vous avez vraiment besoin d'une autre langue dans le paquet
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.
💡
Nommer le fichier dans webhook_help.snippet_filename chaque fois que votre colis expédie plus d'un pont. C'est ainsi que le vérificateur sait à quel pont une copie de panneau appartient; sans elle, un appariement ambigu est signalé comme un avertissement de conformité et que l'extrait est laissé incoordonné.
⚠️
Le point de la vérification de dérive est qu'un fichier de pont et sa copie de panneau sont deux copies d'un programme et WILL divergent. Régénérer plutôt que main-modifier: php tools/sync_connector_bridge_snippets.php --apply, puis resignez le paquet.
La porte, en six langues
Mêmes quatre contrôles dans le même ordre partout : échec fermé sans clé, une méthode, comparaison de clé à temps constant depuis l'en-tête, puis connexion. Le seul vrai piège est la comparaison, et c'est un piège différent dans chaque langue.
⚠️
Comparer le SHA-256Il est correct dans chaque langue, et il écarte le fait que plusieurs comparateurs à temps constant lancent ou fuient sur une longueur inadapté — Le timing de NodeSafeEqual soulève un RangeError lorsque les tampons diffèrent en longueur, ce qui transforme une mauvaise clé en une500au lieu d'un403.
# 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 et Java — la même comparaison
// 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)));
}
Validation des identifiants sur chaque moteur de base de données
La propriété de sécurité ne change pas : un nom de table ou de colonne que l'appelant fournit doit être vérifié par rapport au schéma réel avant qu'il soit interpolé, et chaque valeur doit être un paramètre lié. Seule la requête d'introduction, le caractère de citation et la clause de recherche diffèrent.
MySQLetMariaDB
Tableaux: SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = ?. Colonnes : même contre information_schema.COLUMNS avec AND TABLE_NAME = ?. Citation avec des backticks, doubler n'importe quel backtick à l'intérieur. Page avec LIMIT n OFFSET m.
PostgreSQL
Mêmes vues d'informations_schéma, noms en minuscules, WHERE table_schema = $1 (habituellement public). Citation avec des guillemets doubles, en double de n'importe quel guillemot à l'intérieur. LIMIT n OFFSET m. Regardez la règle de pliage : un identifiant non cité est replié sur le bas du boîtier, alors comparez la case avec l'insensibilité lorsque vous résolvez un nom.
Serveur SQL
Mêmes vues INFORMATION_SCHEMA. Citation avec crochets, en doublement de tout support de fermeture à l'intérieur. ORDER BY [id] DESC OFFSET @o ROWS FETCH NEXT @n ROWS ONLY.
SQLite
Tableaux: SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%'. Colonnes : SELECT name FROM pragma_table_info(?) — utiliser cette forme de table, parce que la nu PRAGMA table_info(x) ne peut pas prendre un paramètre lié et inviter l'interpolation de la chaîne il y a exactement le trou que vous essayez de fermer. Citation avec des guillemets doubles. Page avec LIMIT n OFFSET m.
Oracle
Tableaux: SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = :owner; colonnes de ALL_TAB_COLUMNS. Citation avec guillemets doubles, et rappelez-vous un identifiant non cité plie dans le cas UPPER, le contraire de PostgreSQL. Page avec OFFSET :o ROWS FETCH NEXT :n ROWS ONLY les 12C et plus tard.
MongoDB
Non SQL, donc pas d'interpolation des identifiants et aucun paramètre lié — une discipline différente pour le même but. Voir ci-dessous.
La requête d'introduction par moteur
-- 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;
💡
Résolvez, puis utilisez le nom RESOLVED. Ne passez jamais l'orthographe de l'appelant à la requête même après la vérification — regardez le vrai nom dans la liste que vous avez lu du schéma et interpolez cela. Cela ne coûte rien et il comble l'écart entre "ce nom correspond quelque chose" et "c'est le nom que je suis sur le point d'exécuter".
MongoDB: les mêmes règles, sansSQL
Il n'y a pas de chaîne de requête à injecter, donc les gens supposent qu'il n'ya rien à garder. Il y a : le document filtre.JSONdirectement dans find() permet à un appelant d'envoyer {"$ne": null} ou {"$gt": ""} où vous attendiez une valeur, et sélectionnez tranquillement chaque document. Construisez le filtre vous-même.
MongoDB — liste de collecte autorisée, filtre scalaire, projection comme redaction
// Node + the official driver
const names = (await db.listCollections({}, { nameOnly: true }).toArray()).map(c => c.name);
function resolveCollection(given) {
if (!/^[A-Za-z0-9_.-]+$/.test(given || "")) return null;
return names.find(n => n.toLowerCase() === String(given).toLowerCase()) || null;
}
const coll = resolveCollection(q.collection);
if (!coll) return out(res, { success: false, error: "unknown_collection" }, 404);
// Build the filter from a validated field and a SCALAR value. Never spread
// caller JSON into it: {"$ne":null} would match every document.
const filter = {};
if (q.where_field) {
if (!/^[A-Za-z0-9_.]+$/.test(q.where_field))
return out(res, { success: false, error: "unknown_field: " + q.where_field }, 400);
filter[q.where_field] = String(q.where_value ?? ""); // String() is the guard
}
// Projection is the redaction allow-list: drop secrets, never return them.
const projection = { password: 0, remember_token: 0, api_key: 0, secret: 0, token: 0 };
const limit = Math.min(Math.max(parseInt(q.limit ?? "25", 10) || 25, 1), 200);
const rows = await db.collection(coll)
.find(filter, { projection })
.limit(limit)
.skip(Math.max(0, parseInt(q.offset ?? "0", 10) || 0))
.toArray();
Les noms de collection proviennent de listCollections
C'est votre information_schema. Résolvez l'orthographe de l'appelant contre lui et utilisez le nom résolu.
Forcer chaque valeur de filtre à un scalaire
Un String() ou un Number() autour de lui est la défense complète contre l'injection par l'opérateur. Un document où vous attendez une valeur est l'équivalent NoSQL d'une citation errante.
La projection est la règle de la rédaction
Exclut les champs en forme de secret dans la projection pour qu'ils ne quittent jamais le serveur, plutôt que de les supprimer du résultat par la suite.
Supprime rester un seul document par _id
deleteOne avec un _id résolu. Ne jamais supprimerBeaucoup, et jamais un filtre influencé par l'appelant.
Écrit rester sur la liste des permis
Même raisonnement que SQL : nommez les collections qu'un écrit peut toucher, et refusez le reste avec une explication.
Le paramètre d'identité dans les autres langues
La sonde d'identité est l'autre moitié d'un pont, et c'est HTTP aussi. Le bloc de signature est identique dans chaque langue : base64url la charge utile, HMAC-SHA256 cette chaîne, se joignent à un point.
✅
N'écrivez pas cela à partir de zéro. Paramètres, Portail de support contient déjà un catalogue d'extraits de code prêt pour PHP, Laravel,WordPress, WHMCS, Noeud avec et sans dépendances, Flask et FastAPI, Django, .NET, Ruby on Rails, Java Spring Boot et Go. Prenez le signeur de la saveur qui correspond à votre pile.
Que changer lorsque vous le réutilisez?
Ces snippets ment un jeton PORTAL, qui est délibérément plus strict: il porte jti et single_use:true et vit autour120secondes parce qu'il voyage dans unURL. Un jeton d'identité de pont ou de widget ne porte aucun de ceux-ci et utilise un exp plus long, minutes à heures.
Ce qui reste le même
site_key, iat, exp et un haut niveau authentifié:true, plus un sujet administrateur ou client avec un id et un nom d'utilisateur ou email. Mêmes revendications, même signature, même secret.
Les deux formes de jeton vérifier
Un JWT en trois parties signé HS256 fonctionne, et la base en deux parties64url charge utile plus hex HMAC que la référence PHP émet. Utilisez la bibliothèque de votre langue qui rend naturel — une bibliothèque JWF est généralement le chemin plus court en dehors de PHP.
Ne jamais la laisser dans le navigateur
Vrai dans chaque langue. Signer côté client signifie envoyer le secret du site à chaque visiteur.
C'est honnête de choisir
La plateforme est PHP
Ecrivez le pont en PHP. Il est livré dans le paquet, il est vérifié par dérive, et il peut démarrer le propre cadre de la plate-forme pour lire une session en direct pour la sonde d'identité. Rien d'autre ne vous donne les trois.
La plateforme est Node
Un . js pont est expédié, signe et est vérifié de dérive exactement comme un PHP. Rien n'est abandonné.
La plateforme est Python, Ruby, Go, . NET ou Java
Livrez à travers l'extrait de panneau et dites-le dans le corps du panneau; ne laissez pas le fichier dans bridge/, où la conformité refusera le paquet. Le connecteur est autrement complètement normal: actions, fournisseurs de contexte, identité et recherche invités fonctionnent tous de même, car aucun d'eux ne se soucie de ce qui répond à l'appel HTTP.
Vous ne pouvez pas exécuter un processus sur l'hôte de la plateforme
Le modèle de pont n'est pas l'outil approprié. Un pont existe pour atteindre une plate-forme de l'intérieur de son propre hôte. Si vous ne pouvez l'atteindre que de l ́extérieur, vous écrivez un connecteur API ordinaire contre toute surface qu'il expose.
⚠️
Une contrainte supplémentaire mérite d'être planifiée : une sonde d'identité doit lire la session de connexion de la plateforme, ce qui signifie généralement fonctionner dans le processus propre de la plate-forme ou du moins sur son hôte avec accès à son magasin de session. Un pont écrit dans une langue différente de la plates-formes peut servir les données confortablement et peut encore lutter pour répondre op=admin_identity. Si c'est votre cas, expédiez le pont de données dans votre langue et la sonde d ́identité dans la plate‐forme.
Connecteurs
Donnez à l'assistant les deux moitiés: actions ET contexte
C'est la chose la plus commune manquante d'un connecteur qui « fonctionne mais est inutile ». Les actions laissent les choses AI DO. Sections de contexte le laisser SAVOIR des choses. Un connecteur a besoin à la fois, et la plupart des questions posées par un administrateur sont répondues par contexte, jamais par une action.
Les deux moitiés
Actions — Comment l'IA agit-elle?
Déclaré dans les actes.jsonou retourné par registerActions(). Le modèle en choisit un, remplit ses paramètres, etOpsIQLes actions sont pour les verbes : annuler cette réservation, ouvrir ce ticket, modifier ce statut.
Sections contextuelles — Comment l'IA sait les choses
Assemblé par un ContextProvider avant que le modèle ne tourne. "Combien de commandes ce mois-ci", "qui sont mes nouveaux clients", "qu'est-ce que nous vendons" tous résoudre à travers une recherche contextuelle, et ne jamais toucher une action du tout.
⚠️
Symptôme d'un fournisseur manquant: l'assistant répond "Aucun connecteur activé n'a fourni cette section contextuelle" pendant que le connecteur est installé, activé et passant son test de connexion. Rien n'est enregistré, rien d'erreur. Ce message signifie qu'aucun fournisseur n'avait revendiqué la section.
Le vocabulaire universel de la section
OpsIQ demande des sections par nom générique. Votre travail est de décider ce que chacun signifie sur votre plateforme et de répondre à elle. Une réservation d'hôtel EST la commande de l'hôtel; une chambre EST ce que l'établissement vend. Carte, ne pas inventer.
ordres / ordres_en attente
Quelle que soit la transaction sur votre plateforme : commandes, réservations, réservations et travaux. en attente_orders est la même liste filtrée aux non-finis.
clients
Le tableau des clients.
products
Ce que la plateforme vend : produits, chambres, plans, services.
facturation
Revenus et montants en forme d'argent, plus les comptes par État.
tickets, services, domaines, serveurs, activité
Utilisez-les quand votre plateforme les a réellement. Ne forcez pas une cartographie — une section sans réponse est meilleure qu'une mauvaise.
Tout ce que votre plateforme a d'autre
Un fournisseur qui déclare les sections() : ['licences','shipments'] a fusionné ceux-ci dans la liste d'autorisation de la recherche universelle, de sorte que les recherches spécifiques à la plateforme deviennent disponibles sans changement de base.
L'erreur qui coûte une journée
Un fournisseur de contexte DOIT implémenter l'interface. Le type de registre le vérifie, donc une classe qui simplement LOOKS droite est sautée — sans erreur, nulle part.
ContexteProvider. php — le contrat, du paquet de référence Bottle
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 '';
}
}
Enregistrez-le depuis le connecteur
Implémenter ContextConnectorInterface et renvoyer vos fournisseurs de contextProviders(). La classe de connecteurs peut également implémente ContextProviderInterface directement et être enregistrée comme elle-même.
Retourner le texte clair, pas JSON
build() retourne un bloc de texte concaténé dans l'invite. Ecrivez-le pour un lecteur : un titre, puis une ligne par ligne.
Retourner '' plutôt que jeter
Un fournisseur qui lance est enregistré et ignoré, mais le retour '' est le contrat.
Le Constructeur ne peut pas écrire des sections() pour vous
Le ContextProvider. php généré envoie des sections(): array { return []; } et l'assistant n'a pas de champ pour cela. Remplissez-le à la main — et rappelez-vous que la réédition depuis l'Assistant SURVEILLANCE le fichier. Copiez vos modifications en premier.
⚠️
Indiquer le vrai TOTAL, pas le nombre de lignes que vous avez envoyées. Une page n'est pas un total. Un fournisseur qui liste vingt lignes sans dire ainsi obtient l'assistant en toute confiance répondre "vous avez20réservations" lorsque la plate-forme détient669. Une COUNT bon marché et une ligne explicite — "TOTAL au dossier:669(cette liste montre la plus récente20seulement)" — est toute la solution, et un compte confiantment faux est pire que pas de compte.
Un bloc de section qui ne peut pas être compté à tort
$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);
Nommez vos actions donc OpsIQ peut dire lectures à partir d'écritures
OpsIQ classifie une action de la WORDS dans son action_id, et elle est délibérément conservatrice : tout ce qu'elle ne peut reconnaître est traité comme un écrit et exige une carte d'approbation.
1
is_destructive ou requires_confirmation wins
Si l'un ou l'autre est réglé, l'action a toujours besoin d'approbation.
2
Un mot d'écriture n'importe où dans l'identifiant en fait un écrit
Les mots d'écriture sont vérifiés AVANT de lire les mots, donc un nom mixte comme get_and_sync_orders est classé comme un WRITE. Choisissez un verbe, mettez-le en premier et gardez-le propre : list_order, get _customer, search_bookings, annuling_booking, set_ordre_status.
Ne déclare native_api que si la plateforme en a vraiment une
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.
Le Constructeur décide de votre réponse data-access
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.
Les paquets à main doivent quand même être bien conçus.
Si vous écrivez le manifeste vous-même, déclarez exactement un de native_api ou plate-forme_bridge. La conformité traite plate-formes_bridge comme l'écoutille d'échappement qu'un connecteur de pont est censé avoir, et le constructeur refuse une spécification qui revendique plate- forme_bridge sur un connecteur API.
Gardez ai_api_reference. md honnête dans les deux sens
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.
Enseignez le cerveau de l'administrateur sur votre plateforme
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.
_expert_admin. md
Ce que cette plateforme est, comment ses données sont façonnées, ce que ses objets sont appelés, et les rancoeurs qui autrement feraient l'assistant de deviner. Ecrivez-le pour un collègue compétent qui n'a jamais vu la plate-forme.
ai_api_reference. md
La surface callable. Pour un connecteur de pont, ceci est votre op et faire du vocabulaire avec leurs paramètres, pas une table de fin de ligne REST.
Budget
En gros6,000caractères conservés par connecteur, et environ24,000caractères pour l'ensemble du bloc sur chaque connecteur activé. Sur le bouchon par connecteur, votre fichier est tronqué; soyez concis avant que le troncateur ne soit.
La précision paie
Ces fichiers sont la différence entre l'assistant utilisant vos outils de table universels et répondre à partir de la mauvaise section parce que rien ne lui a jamais dit que ces outils existaient.
💡
Les deux fichiers doivent être dans le paquet INSTALLED, et non seulement dans l'arborescence de votre source. Ce sont des fichiers de paquets ordinaires, donc ils sont couverts par la signature et expédiés dans le ZIP — ce qui signifie également que l'édition après la signature casse le sceau.
Connecteurs
Identité par un connecteur: admin, client, portail
Un contrat de signature sert trois surfaces. La tâche du connecteur est de transformer "qui est connecté sur la plate-forme" en un jeton signéOpsIQpeut vérifier, puis présenter le sujet vérifié dansOpsIQ's forme. Le connecteur n'authentifie jamais personne — la plate-forme le fait, et la signature porte cette affirmation.
Les trois surfaces, un signeur
Admin — votre personnel, dans votre backend
Un sujet admin. Le widget se charge à l'intérieur du panneau admin de la plateforme et chaque membre du personnel est associé à son propre agent OpsIQ.
Client — un client connecté, dans le chat du client
Un sujet client. C'est ce qui permet à un client connecté d'obtenir son compte GLOBE au lieu d'une recherche anonyme: chaque commande, détail complet et toute action en libre-service que vous autorisez.
Portail — un lien profond vers le portail de support
Les mêmes revendications plus jti et single_use, avec120- la seconde vie, parce que le jeton voyage dans unURLet doit être dépensé une fois. Ne pas faire rouler celui-ci manuellement: Paramètres, Portail de support porte un extrait prêt par langue, et la plate-forme le ment pour vous lorsque la zone de compte fonctionne sur ce serveur.
Le contrat de charge utile
Ce sont les revendications que les vérificateurs vérifient. Rien ici n'est facultatif, quel qu'un exemple partiel ailleurs pourrait suggérer.
site_key
Niveau supérieur. Doit égaler la clé de site de la demande, ou le jeton est refusé.
iat et exp
Le niveau supérieur, unix secondes. exp doit être dans le futur et après iat. Un jeton plus d'une minute dans le future est refusé. Garder la vie courte — minutes à heures.
authentifié: vrai
Haut niveau, à côté de exp. L'affirmation de votre plateforme que un vrai humain est connecté.
plateforme
Niveau supérieur. Une limace courte qui désigne l'origine. Recommandée, et elle permet au fournisseur d'identité d'un connecteur de dire ses propres jetons depuis une autre plateforme.
administrateur ou client
Un objet qui nomme le sujet. Il doit porter un id non vide, et un nom d'utilisateur ou un courriel — la porte d'accès par administrateur correspond à ceux-ci. Inclure les deux lorsque vous avez les deux.
OpsIQ a deux vérificateurs de jetons, et ils n'étaient pas identiques. Savoir cela vous sauve un après-midi, parce que le symptôme ne ressemble à rien à la cause.
Le widget d'administration a son propre vérificateur
opsiq/embed/admin_ajax. php porte un vérificateur local qui accepte le drapeau authentifié dans chaque position. La liste de conversations, l'historique et la lecture non-lue passent par elle, donc ils authentiment bien.
Le vérificateur partagé est plus strict
opsiq/inclus/customer_identity_token_verify.php se trouve derrière le flux de discussion et le noyau AJAXAPI. Il exigeait historiquement le drapeau au niveau TOP.
Le symptôme
L'historique et les conversations fonctionnent. Chaque chat tourne les réponses "Admin login required". Il se lit exactement comme un bug de session et n'est pas: le jeton est manquant le drapeau de haut niveau.
Ce que fait le noyau actuel
Il accepte maintenant le drapeau au niveau supérieur OU à l'intérieur du sujet, de sorte que le contrat est uniforme. Les cœurs plus anciens ne lisent que le niveau supérieur. Emit la forme canonique et votre paquet fonctionne sur chaque version.
✅
Ceci est vérifié par la machine maintenant. Tout fichier dans votre paquet qui mints identité jetons est balayé statiquement contre le contrat, et une charge utile la plate-forme refuserait de ne pas se conformer au fichier exact et à la ligne. Exécutez-le vous-même: php tools/verify_identity_contracts. php.
Clients inscrits dans le chat client
Deux choses doivent être vraies. Core doit tamponner le client vérifié, et votre connecteur doit le présenter.
1
Votre pont ou endpoint menthe un jeton client
Même signataire que l'administrateur, avec un sujet client. Lisez le client de la propre session de la plateforme. Si votre plate-forme signe les clients sur un gardien différent de admins, lire le garde que vous voulez et ne jamais tomber sur des sujets — c'est ainsi qu'un client se verrait remettre un jeton d'administration.
2
Le noyau vérifie et appose
Sur un jeton valide, le sujet vérifié est inscrit dans la session. Votre fournisseur lit une identité prouvée; il n'authentifie jamais.
3
Votre fournisseur d'identité le présente
detectCustomer() retourne leOpsIQforme. Il DOIT implémenterOpsIQ\Platform\IdentityProviderInterface, ou le registre le saute silencieusement — le même piège que le fournisseur de contexte.
4
Vos actions client-scoped acceptent un client_id
Et OpsIQ le verrouille à l'identité vérifiée avant exécution. Le modèle ne peut pas le fournir.
IdentityProvider. php — lisez l'identité prouvée, présentez-la sous la forme de OpsIQ
use OpsIQ\Platform\IdentityProviderInterface;
final class IdentityProvider implements IdentityProviderInterface
{
public function slug(): string { return 'yourplatform_identity'; }
public function label(): string { return 'Your Platform identity (bridge-signed identity_token)'; }
public function priority(): int { return 25; } // ahead of the generic session provider
public function isAvailable(): bool
{
try {
$s = \OpsIQ\Connectors\ConnectorRegistry::getSettings('yourplatform') ?: [];
return trim((string)($s['base_url'] ?? '')) !== '';
} catch (\Throwable $e) { return false; }
}
public function detectAdmin(): ?array
{
$row = $this->sessionRowFor('_opsiq_admin_identity');
if (!$row || !$this->isOurs($row)) return null;
return [
'id' => (int)($row['id'] ?? 0),
'name' => $this->displayName($row, 'Admin'),
'email' => (string)($row['email'] ?? ''),
'username' => (string)($row['username'] ?? ''),
'role' => (string)($row['role'] ?? ''),
'platform' => 'yourplatform',
'source' => 'yourplatform_identity_token',
];
}
public function detectCustomer(): ?array
{
$row = $this->sessionRowFor('_opsiq_customer_identity');
if (!$row || !$this->isOurs($row)) return null;
return [
'id' => (int)($row['id'] ?? 0),
'name' => $this->displayName($row, 'Customer'),
'email' => (string)($row['email'] ?? ''),
'phone' => (string)($row['phone'] ?? ''),
'platform' => 'yourplatform',
'source' => 'yourplatform_identity_token',
];
}
/* A session identity stamped by ANOTHER platform's token must not be
* claimed here. An empty platform is accepted because older bridges did
* not stamp one, and the site key already scoped the token. */
private function isOurs(array $row): bool
{
$p = strtolower(trim((string)($row['platform'] ?? '')));
return $p === '' || $p === 'yourplatform' || $p === 'remote';
}
private function sessionRowFor(string $key): ?array
{
if (session_status() !== PHP_SESSION_ACTIVE) return null;
$row = $_SESSION[$key] ?? null;
return (is_array($row) && (int)($row['id'] ?? 0) > 0) ? $row : null;
}
}
Actions à portée client : deux serrures, les deux nécessaires
Le modèle ne doit jamais choisir les données qu'il lit. OpsIQ force cela de son côté, et votre plateforme doit l'appliquer de l'autre côté aussi. Un verrou est un bug loin d'une fuite; deux verrous sont un contrat.
Verrouillage1 — OpsIQécrase les paramètres d'identité
Avant qu'une action de clavardage ne soit lancée, OpsIQ remplace chaque paramètre en forme d'identité par l'identifiant du visiteur VERIFIED : client_id, clientid, user_id userid, customer_id et compte_id prennent l'identification numérique vérifiée; client_identificateur, client_identifier, compte_identifiant le prennent comme une chaîne; email, client _email, client/email prennent l 'e-mail vérifié.
Verrouillez 2 — votre plateforme re-scopee chaque requête
Prenez l'id qui vous a été donné et ajoutez-le à la clause OÙ chaque lecture et chaque écriture sur cette surface. Ne faites jamais confiance à la référence dans la demande de lui-même. Un client connecté demandant au sujet de la commande d'un autre doit revenir vide, non interdit.
Nommez vos paramètres pour que le 1 puisse les trouver
Appeler customer_id, pas cust ou ref. Un paramètre OpsIQ ne reconnaît pas est un paramètre qu'il ne peut verrouiller.
⚠️
Donnez au client connecté sa surface d'exploitation OWN, séparée des opérations administratives, même lorsque le SQL semble similaire. Deux surfaces avec des règles différentes restent honnêtes; une surface avec un drapeau devient une fuite le jour où quelqu'un modifie la mauvaise branche.
Câble de page zéro : la sonde déclarée par le connecteur
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.
paramètres.json — le réglage de la sonde
{
"key": "admin_identity_probe_url",
"label": "Admin identity probe URL",
"type": "text",
"placeholder": "https://your-site.com/opsiq-yourplatform-bridge.php?op=admin_identity",
"help": "Set this to your bridge admin_identity endpoint and the plain admin-widget loader works with NO page wiring: the widget probes this URL by itself, the bridge answers with the signed identity of the CURRENTLY logged-in admin, and every admin is matched to their own OpsIQ agent. Leave empty to keep the admin embed off."
}
La sonde est appelée par le navigateur
Même origine, il ne peut donc pas porter un en-tête personnalisé. Son authentification est la session de plate-forme. Mettez-le AHEAD de votre porte-clé de pont, gardez-le loin des données d'enregistrement, et ne retournez rien du tout pour un visiteur connecté.
Il répond à une forme fixe
{"success":true,"authenticated":true,"admin":{...},"identity_token":"..."} — and {"success":false,"authenticated":false,"error":"..."} when nobody is signed in.
Aucun secret de longue durée dans la source des pages
Seulement le signe, expirant jeton.
La mise en œuvre complète du critère d'évaluation de Laravel,WordPress, WHMCS, Symfony et PHP simple, ainsi que les caractéristiques de Laravel et l'ordre de dépannage, sont sur la page du widget d'administration. Ils sont le même code pour un sujet client : changez le garde que vous avez lu et la clé du sujet que vous signez.
Connecteurs
Édition : l'édition du dossier n'est pas publiée
La façon la plus courante de perdre un après-midi est d'éditer un connecteur sous marketplace_connectors/, de le réinstaller et de ne rien trouver changé. Les installateurs ne lisent pas ce dossier. Ils tirent un ZIP signé du catalogue du marché. L'édition est la séquence qui met vos changements dans ce ZIP.
Pourquoi le montage n'a rien fait
marketplace_connectors/<slug>/ is the SOURCE
C'est là que vous travaillez. Rien ne s'installe à partir de lui.
Le catalogue contient une ZIP signée
Une installation télécharge que ZIP, vérifie la signature, et le décompresser. Jusqu'à ce que vous rebâtissez la ZIP , chaque installation continue à obtenir l'ancien paquet .
Le Constructeur de connecteurs publie ailleurs
It writes into /connectors/<slug>/ on this install. That is a local connector, not a marketplace release. The two paths do not overlap.
La séquence de libération
1
Bouffer la version dans les fichiers DEUX
paramètres.jsonet le contrat de raccordement.json. La conformité les compare et échoue si la limace, la version ou le jeu de capacités ne sont pas d'accord. Ajoutez une entrée CHANGELOG.md pendant que vous êtes là — c'est un fichier obligatoire.
2
Re-synchroniser l'extrait de pont
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
Resigner chaque paquet
php tools/resign_all_connectors. php — la signature couvre les hashes de fichier, donc toute modification l'invalide. Signer en dernier, après chaque fichier est final.
4
Exporter la clé de signature, puis les semences
Le semencier signe chaque paquet pendant qu'il construit le ZIP, et il fonctionne dans un contexte où la clé ne peut pas être lue à partir des paramètres — donc il doit venir de l'environnement.
5
Redéployez le fichier de passerelle, si vous en expédiez un
Réinstaller le connecteur met à jour le paquet. Il ne touche pas la copie assise dans le webroot de l'opérateur. Dites-leur, dans le panneau et dans le journal de changement.
Toute la libération, pour
# 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
⚠️
Pourquoi l'exportation n'est pas optionnelle : le signant recherche la clé dans OPSIQ_CONNECTOR_SIGNING_KEY d'abord et le connecteur_signing_key setting second. Le semencier fonctionne sur le bootstrap SaaS et les outils/sign_connector. php ne boots du tout rien, donc dans les deux paramètres le lecteur n'existe pas — sans variable d'environnement il n'y a pas de clé, et vous obtenez "Aucune clé de signature disponible" ou chaque paquet signalé comme sign_failed. Seuls les outils / resign_all_connectors. php boots OpsIQ et peuvent trouver la clé seule.
Qu'est-ce qui est en fait un navire
Seulement les fichiers que couvre la signature
Le ZIP est construit à partir de la propre liste de fichiers du signataire, donc un fichier errant assis dans votre dossier de paquet n'est pas expédié. C'est délibéré: un fichier non signé utilisé pour voyager avec les clients.
Extensions couvertes
php,json, js,css, md, txt,html, sh, svg, png, jpg, jpeg, gif, webp, ico, yml, yaml — récursivement, y compris la signature du pont/ et des essais/.jsonelle-même est exclue des hachages et ensuite ajoutée au ZIP afin que les installs puissent vérifier.
Tout autre élément est déclaré comme non_empaqueté
Le semencier nomme chaque fichier qu'il a laissé derrière. Lire cette liste. Un fichier que vous prévoyez d'expédier apparaît là signifie une mauvaise extension ou un mauvais emplacement — pas un succès silencieux.
Modifier tout fichier couvert brise le sceau
Y compris un fichier Markdown.
Fichiers obligatoires dans un paquet distributable
Le contrat lisible par machine. Son ensemble de limaces, de versions et de capacités doit être identique aux paramètres.json.
LIRE. md, DÉVELOPPEMENT. mD, CHANGELOG. mj
Tous les trois sont vérifiés pour l'existence ET la taille minimale. DEVELOPER. md a besoin de contenu réel, pas d'un talon.
Un fichier par capacité déclarée
Chaque fonction nomme le fichier qu'elle attend — ContextProvider. php pour le contexte, IdentityProvideer. php en identité, GuestLookupProvideR. php dans guest_lookup, etc. — à moins que le connecteur ne mette en œuvre la capacité en ligne.
Rien qui ressemble à un titre de créance
La conformité scanne les trois fichiers Markdown pour des valeurs en forme de secret et des clés privées, et échoue sur un coup.
Vérifiez avant de l'expédier
La suite pleine conformité est la même qu'une installation. Il vérifie le manifeste contre le contrat canonique, qui runtime et les capacités de manifeste conviennent, que chaque capacité déclarée a son fichier et ses méthodes, le contrat d'identité dans chaque fichier de menthe, le match bridge-snipet, l'hygiène de l'accueil des invités, l ́action unicité et la sécurité de confirmation, et la signature du paquet.
Exécutez les quatre avant chaque sortie
# 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
💡
Un échec est attendu et n'est pas un problème : la vérification de signature du paquet signale un avertissement pendant que vous êtes encore en train d'éditer. Il efface le moment où vous resignez.
Connecteurs
Référence de pack et cycle de vie du connecteur
Il s'agit du contrat de niveau source pour la construction d'un connecteur que OpsIQ peut découvrir, configurer, valider, activer, exécuter, tester, signer et distribuer.
Référence du développeurUn package de connecteur a une implémentation et un manifeste de connecteurs requis, avec des actions facultatives, des recettes, des connaissances, des ressources et des métadonnées de signature.
settings.json Utilise la version manifeste 1. Le validateur attend un slug, le nom, la version, manifest_version, compatibilité, description et les capacités. opsiq_min et opsiq_max. Le statut de la version est l'un des production, beta, prévisualiser ou templateLes paquets hérités peuvent être normalisés avec des avertissements, mais un nouveau paquet devrait passer sans aucun avertissant.
Interface de connecteur de noyau
Identité et configuration: slug(), name(), description(), capabilities(), settingsSchema(), testConnection().
Cycle de vie: onEnable() et onDisable(). La désactivation doit être non destructive ; la purge des données est une opération distincte et délibérée.
Entrée/synchronisation: handleWebhook(), poll(), backfill()Le sondage gère le travail incrémentiel; le remplissage importent l'historique et doivent être sûrs de répéter.
Support : pushReply() où la plateforme accepte les réponses.
Actions : registerActions() Fournit des contrats d'action exécutoires.
La base abstraite offre également un remplissage en morceaux optionnel, la liste des clients, la découverte/création de comptes e-mail, les abonnés, la détection d'administrateur/client, les fournisseurs de facturation/contexte/identité, l'extraction de réponses, le réessai des appels HTTP, l’accès au chemin JSON, le classement flou et les assistants de pagination.
Capacités et authentification
Les noms de fonctionnalité pris en charge incluent actions, déclencheurs, contexte, identité, ventes, facturation, inbound_ticket, outbound_reply, sync_users, sync_departments, security_events, customer_import, blocage_sécurité_natif, promo_audience, flux_promotion, boîte_mail, native_api, ai_brain_aware et ai_tickets. API clé, porteur, de base, HMAC,OAuth 2identifiants du client,OAuth 2Code d'autorisation et modèles d'authentification personnalisés.
Cycle de vie du registre
La découverte charge le paquet et valide son manifeste.
La configuration est stockée par espace de travail ; les secrets sont chiffrés.
Le test de connexion vérifie les informations d'identification sans activer le connecteur.
Activer les appels onEnable(), synchronise les définitions d'action et peut démarrer le remplissage initial.
L'exécution de polling/webhook/abonné porte toujours le contexte d'espace de travail.
Désactiver les appels onDisable() et arrête l'activité sans supprimer les données importées.
La purge est une opération explicite distincte.
Règles de correction
Utilisez la clé de l'espace de travail/site dans chaque lecture, écriture, clé cache, cle de déduplication et recherche webhook.
Enregistrez un ID externe/un ID d’événement chaque fois que la plateforme en fournit un.
Pour les systèmes distants, utilisez leurAPI; ne jamais supposer que leurs tables de base de données existent dans leOpsIQconnexion.
Ne jamais exposer de secrets, traces brutes du fournisseur ou l'existence d'un autre espace de travail.
Déclarez uniquement les capacités que le paquet implémente réellement. actions.json Le catalogue ne rend pas une action utilisable tant que le connecteur n'est pas installé, activé, configuré et sa connexion valide.
Test et sortie
Exécutez le lint PHP, la validation du manifeste, les tests de connexion, les test des schémas d'action, les essais de signature/replay webhook, les Essais d'isolation de l'espace de travail, les Tests de répétition de remplissage en arrière-plan, les testes de connecteur désactivé et les tests d'échec/réessai. Un package marketplace doit ensuite être signé et vérifié, inclure la documentation sur la configuration/les permissions/le webhooku, et indiquer son statut de version réel.
Connecteurs
Recettes de connecteur
Des recettes étape par étape pour les configurations de connecteurs courantes.
RecettesChaque recette est une liste de contrôle que vous suivez haut en bas, ici, Shopify avec des webhooks en temps réel, vérifiés par un ordre de test.
Recette: Shopify avec des webhooks en temps réel
Scénario :
Goal: Connect Shopify with automatic order sync and GDPR compliance.
Que faire:
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.
Recette: WHMCS intégration
Scénario :
Goal: Connect WHMCS so AI can look up clients, services, tickets, and invoices.
Que faire:
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.
Recette: Paiements Stripe
Scénario :
Goal: Track Stripe payments and let AI look up transactions.
Que faire:
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.
Recette: Profil d'entreprise Google
Scénario :
Goal: Connect GBP for review management, posts, and insights.
Que faire:
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.
Connecteurs
Étendre le CRM & Site Intelligence
OpsIQ Un connecteur peut brancher une nouvelle capacité dans le CRM ou le site Intelligence sans aucune modification à OpsIQ de base, via le registre des capacités de la plateforme (\OpsIQ\Platform\CapabilityRegistre). Déclarez la capacité, implémentez son petit ensemble de méthode, expédiez le connecteur,OpsIQ le découvre et l'insère dans l'interface utilisateur, le client 360 timeline et l'installation invite.
Extender CRM & SIUn connecteur déclare les capacités (calendar, enrichissement, données de classement, analytique...) et OpsIQ auto-connecte ces capacités dans CRM et Intelligence Site, aucun changement de cœur.
Déclarer les capacités
Déclarative (paramètres.json)
Ajouter un commentaire <domain>_capabilities tableau, le meilleur pour les connecteurs sans code/marché. crm, site_intelligence.
Dans le code (connector. php)
Mise en œuvre crmCapabilities() / siCapabilities() Retourner les mêmes descripteurs.
Déclarer un fournisseur de calendrier CRM (settings.json)
Scénario :
Goal: make a calendar connector appear in the CRM Schedule-meeting panel.
createEvent($settings,$params) → {success,event_id,html_link,meet_link} ; listEvents; freeBusy. Propulsé par \OpsIQ\CRM\CalendarBridge.
GRC / enrichissement
enrich($settings,$params) → {success,traits}. Propulsé par \OpsIQ\CRM\EnrichmentBridge (s'exécute également automatiquement sur la création d'entreprise lorsqu'un fournisseur est connecté).
GRC / esign
sendForSignature($settings,$params) → {success,envelope_id,sign_url}. Propulsé par \OpsIQ\CRM\EsignBridge.
Site_intelligence / local_listing
listLocations, listReviews, getInsights. Livré via le connecteur Google Business Profile.
Site_intelligence / Rank_data
keywordRanks($settings,$params) → {success,ranks}. Propulsé par \OpsIQ\SiteIntelligence\RankDataBridge. Livré avec: connecteur SerpApi.
Analyse web / Web_analytics
report($settings,$params) (synchronisation / exportation) + ingest($settings,$events) (importation). Conduit par \OpsIQ\Analytics\WebAnalyseBridge. Navires: Google Analytics (GA4) connecteur. Données API pour les rapports, Protocole de mesure pour l'importation. L'analyse est ouverte pour les connecteurs comme CRM + Intelligence du site (domaine analytics / analytics_capabilities).
Paiements / fournisseur_de_paiement
listPayments, customerPayments, createPaymentLink. Conduit par \OpsIQ\Payments\PayementsBridge. Affichez les paiements d'un client sur le calendrier CRM + envoyez un lien de paiement sur une affaire. Expédie:StripeConnecteur de paiement. Domaine payments / payments_capabilities.
Boîte aux lettres / email_sync
listMessages + sendMessage. Conduit par \OpsIQ\Mailbox\MailBoxBridge. Les courriels d'un client sur le Client 360 timeline + envoyer un email à partir d'une offre. Expédiés: Gmail + Outlook/Microsoft 365 connecteurs. Domaine mailbox / mailbox_capabilities.
Partagé OAuth application + une redirection
Tous les connecteurs Google partagent ONE app via \OpsIQ\OAuth\SharedGoogleApp. Set google_oauth_client_id/_secret une fois et Calendrier, Analytics, Business Profile + Gmail tous les travaux (les champs par connecteur (optionnel) sont des surcharges). Ils partagent également UNE redirection URI, <site>/connectors.php?oauth=callback (pas de limace par connecteur), parce que Google expose non API pour ajouter rediriger les URIs vers une application; OpsIQ récupère le connecteur à partir de la signature OAuth state Enregistrer ce URI unique une fois et chaque connecteur Google (présent + futur) autorise sans autre configuration de la console. Retour SharedGoogleApp::resolve(...),S redirect_uri De votre intérieur oauthParams()Les connecteurs Microsoft font la même chose via \, mais ils ne sont pas compatibles avec les redirections per-slug.OpsIQ\OAuth\SharedMicrosoftApp (microsoft_oauth_*).
Les boutons d'importation sont fonctionnellement limités
Le Importation (remblai historique) et Clients d'importation boutons montrent SEULEMENT pour les connecteurs qui les implémentent réellement, détectés par la réflexion, donc il n'y a pas de drapeau à déclarer. backfill() ou backfillChunk() Pour gagner le bouton Importer; surcharger listCustomers() (return {email, first_name, …} pages) pour gagner des clients d’importation. AbstractConnector no-op et le bouton reste caché, de sorte que l'interface utilisateur n'offre jamais une importation qu'un connecteur ne peut pas effectuer.
L'IA sur les bus
L'agent CRM propose et enregistre les réunions hors de la portée des signaux (\OpsIQ\CRM\MeetingProposer → CalendarBridge), et enrichit automatiquement de nouveaux comptes, le -AI exploite la boucle CRM, exécutée sur les bus de connecteur.
Recherche de ticket client-chat (fetchTicket())
Deux niveaux, pas de changements fondamentaux
Lorsqu'un visiteur fait référence à un numéro de ticket dans le chat client ("quel est l'état du T-000123?"), OpsIQ Il le résout en deux niveaux. Niveau 1 lit la billetterie partagée OpsIQ, chaque connecteur avec inbound_ticket Le serveur de tickets y reflète ses tickets, donc les tickets synchronisés fonctionnent pour TOUS les connecteurs avec zéro code par connecteur. Niveau 2 C'est une solution de secours pour les anciens tickets qui n'ont jamais été mis en miroir: fetchTicket() sur chaque connecteur activé qui l'implémente. Il est duck-typed (découvert par method_exists(), comme contextProviders()/audienceCatalog()), de sorte que le signé ConnectorInterface Les connecteurs qui n'en ont pas besoin (sources de messagerie/chat créant des tickets en natif) l'omettent simplement.
⚠️
La propriété est obligatoire et vous devez l'appliquer. fetchTicket() reçoit l'identité du visiteur VÉRIFIÉ dans $ctx (client_id + client_email, la même identité vérifiée que le client chat AI utilise). Résolvez le client de plateforme de cette identité et demandez SEULEMENT que les billets du client, puis revérifiez la propriété sur l'enregistrement de détail. null sur une quelconque erreur, erreur ou manque, jamais les données d'un autre client. null se dégrade gracieusement en "n'ai pas pu trouver ce billet".
connector.php, le contrat fetchTicket() (référence: connecteurs/whmcs et connecteurs/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
}
}
Comment la plateforme l’utilise
Découverte
CapabilityRegistry::providers($domain,$type) liste les fournisseurs avec le statut installé/activé/prêt (basé sur le système de fichiers; DB uniquement pour l'indicateur activé).
Sélection
CapabilityRegistry::active($domain,$type) retourne le premier fournisseur prêt avec son connecteur chargé et les paramètres. Bridges appellent cela au lieu de limaces de codage dur.
Notifier pour installer
Lorsqu'une fonctionnalité a besoin d'une capacité non encore connectée, l'interface utilisateur affiche une invite Connect/Installer un clic, jamais un contrôle mort.
Le guide complet
Voir connectors/PLATFORM_CONNECTORS.md (CRM + Site Intelligence) et connectors/CRM_CONNECTORS.md Dans le paquet.
Connecteurs
Recherches et remboursements en libre-service (créez votre connecteur pour le chat client)
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.
Déclarer une recherche de client
Dans votre esprit actions.json, une action en lecture seule devient appelable par le client avec ALL THREE: "scope":"client", "requires_confirmation":false, "is_destructive":false. Utilisation "scope":"both" quand la même recherche doit également être possible par votre équipe dans l'IA Admin. Le vocabulaire complet est admin, client, both et system (system n'atteigne ni AI — API et webhook seulement). Tout le reste est rejeté : la validation du paquet échoue et l'action ne s'installe pas. writing champ d'application — l'assistant à la rédaction est admin action set.
La règle d'identité (obligatoire)
Nommez votre paramètre d'identité à partir de la série standard. Verrouillé vers l'identifiant numérique vérifié: client_id, clientid, customer_id, user_id, userid, account_id. Verrouillé sur cette id comme une chaîne: client_identifier, customer_identifier, account_identifier. Verrouillé sur l'email vérifié: email, client_email, customer_email, user_emailOpsIQ verrouille et remplit automatiquement le nom du client connecté vérifié par la plateforme; l'IA ne voit ni ne choisit jamais d'identité. Un nom non standard échoue à se fermer (refusé, jamais divulgué).
Ce qui doit rester admin-only
Tout ce qui n'est pas dans la portée de cette identité: fetch-by-bare-id (order_id/ticket_id Les listes sont disponibles sur le site Web de l'OMPI, mais elles ne sont pas disponibles. "scope":"admin".
Formulation des résultats (clés porte-réponse)
Les résultats de recherche sont structuralement parés avant d'atteindre l'IA: les clés en forme secrète sont lâchées, les longues chaînes et les listes sont captées, les champs vides sont élagés, et une carte plate plus large que le capuchon de la clé garde sa d'abord, les clés porteuses de réponses, de l'argent (credit, balance, amount, total, due, paid), identité (email, *name, phone, company), état (status, active, expir*, renew*), dates, plan/produit/domaine/service/abonnement/commande/facture/champs de billet, monnaie, nombre et stats/summary/totals, avant tout siège restant aller à d'autres clés plus petite valeur-premier. Conseils pratiques: nommer vos champs avec ce vocabulaire standard et retourner les champs qui répondent à la question du client plutôt qu'un brut100-key plate-forme dump; un champ nommé en dehors du vocabulaire rivalise pour les sièges restants et peut être paré à partir de charges utiles très larges.
Remboursements · ce que votre connecteur fournit
Deux opérations brutes, sans politique: (1) une lecture de vérification de paiement filtrable par identité ET une référence de transaction (votre API doit ET les filtres), par ex. whmcs_get_transactions; (2) une action de remboursement exécuter (scope:"admin", requires_confirmation:true, is_destructive:true, jamais exposé au client), par exemple whmcs_refund_orderL'entreprise choisit les deux clés dans Paramètres → Chat client; OpsIQ re-vérifie le serveur de paiement, applique la boîte de politique de l'entrepreneur (montant maximum, fenêtre d'âge, limite mensuelle), émet des problèmes à l'intérieur de la boite et dépose un ticket d'examen pour tout le reste.
Routage par département selon le destinataire
L'éditeur d'action du Connector Builder dispose des mêmes contrôles: définissez « Qui peut l'utiliser » sur Clients connectés, laissez les deux cases à cocher d'écriture décochées et utilisez un nom de paramètre d'identité standard.
Implémentations de référence
Les entrées "Client Self-Service" dans connectors/whmcs/actions.json, woocommerce/actions.json, oscommerce/actions.json; contrat complet en connectors/README.md §8.1–8.2 et ConnectorInterface::registerActions().
Connecteurs
Recherches d'invités — laissez les visiteurs suivre une réservation, un envoi ou une commande SANS connexion (visiteur_lookup)
Les hôtels, les messageries et de nombreuses plateformes commerciales servent aux clients qui détiennent une référence mais pas de connexion: un client avec une confirmation de réservation, un destinataire avec un numéro de suivi. guest_lookup capacité (Connector Contract, mode: généré) permet à VOTRE connecteur de servir les visiteurs dans le chat client AI — nonOpsIQles modifications de base, pas de codage dur de la plate-forme. Votre connecteur déclare CE QUI prouve le droit et QUEL champs sont visibles;OpsIQforce les interrupteurs, les gaz et l'uniforme à nier.
Le modèle de confiance
Référence + preuve, jamais identité
Le visiteur fournit la référence de l'enregistrement (apparie par le regex que vous déclarez) plus la preuve que vous choisissez — normalement l'email sur l'album. Votre action de recherche récupère l'inscription SERVER-SIDE par référence; OpsIQ's generated provider compare la preuve avec l'entrée FETCHED. L'entrée du visiteur n'est jamais fiable, et aucune identité vérifiée n'a été créée: le match donne droit au visiteur aux champs autorisés d'un enregistrement, rien d'autre.
Naissance uniforme (pas d'oracle de dénombrement)
L'IA est explicitement chargé de ne jamais confirmer l'existence d'une référence et de n'inventer aucun détail. Les tentatives sont limitées par la vitesse par conversation + IP par cœur avant que votre connecteur soit consulté.
Double opt-in, les deux par défaut OFF
Rien ne sert aux clients jusqu'à ce que l'entreprise autorise les deux commutateurs: le contrôle de l'espace de travail dans Paramètres→Sécurité→"Invités à rechercher des enregistrements dans le chat client" (permission-gated ET toujours confirmé par mot de passe, même lorsque l'étape optionnelle est désactivée), et le propre connecteur guest_lookup_enabled Installer ou activer un connecteur seul n'ouvre jamais la surface du client.
La surface réservée aux invités
Les fournisseurs générés s'inscrivent dans le registre guest surface de contexte — structurellement séparée de admin et customer. Les fournisseurs de contexte existants ne sont jamais consultés pour les visiteurs anonymes, et le fournisseur invité n'est jamais consulté pour les personnes connectées. Le ctx qu'il reçoit porte le message de chat, l'identifiant du thread et le courriel de pré-chat affirmé (non vérifié) comme un candidat à la preuve — aucun champ d'identité.
La déclarer dans le constructeur
1
Définir l'action de récupération
À l'étape Actions, ajouter une action en lecture seule qui renvoie ONE record par sa référence (par exemple : GET /bookings/{booking_number}) et map ses champs de réponse avec alias: statut, arrivée, départ, room_type, customer_email...
2
Cochez "Vieilles de recherche"
Sur l'étape de la capacité, activer guest_lookup. Un panneau dédié apparaît : choisissez l'action de récupération, nomez le paramètre de référence, donnez le motif de référence (un corps régex tel que \bBK-[0-9]{4,10}\b) nom du dossier (réservation), et choisir la preuve — courriel sur le dossier (recommandé) ou aucun (seule référence, pour le suivi de messagerie statut-seulement).
3
Autoriser la liste des champs visibles
Cochez exactement les champs que peut voir un invité. Tout le reste est DRoppED — jamais expurgé. Le Constructeur refuse les champs en forme de PII (email, téléphone, adresse, paiement...) dans la licenselist, et la suite de conformité revérifie la même règle avant de publier, donc une spécification manuelle ne peut pas s'y glisser. Notez que la validation du temps d'installation couvre le manifeste et la signature seulement, alors exécutez la suite avant de livrer. Le champ de preuve lui-même ne peut jamais être affiché.
4
Publier et activer
Le constructeur émet GuestLookupProvider.php — la mise en œuvre renforcée canonique, identique pour chaque paquet généré — et ajoute guest_lookup_enabled l'entreprise arme les deux commutateurs et le chat AI commence à offrir la recherche lorsqu'un visiteur demande votre type d'enregistrement.
Règles du contrat
Champs en forme de statut seulement
Pensez à "ce qu'un messager imprimerait sur la page de suivi publique" : statut, dates, catégorie de chambre ou service, nombres. Les noms, les coordonnées, les adresses, les données de paiement et les notes en texte libre n'ont pas leur place dans une conversation anonyme — le Constructeur et la conformité les refusent tous deux.
L'AI répond SEULEMENT à partir du bloc
Le fournisseur généré termine sa sortie par une instruction de répondre uniquement à partir des champs listés et d'offrir un ticket pour tout autre chose. Detail non dans la licenselist est "pas disponible dans le chat" — par conception.
Les suivis continuent de fonctionner
Le fournisseur redessine la référence des messages récents du visiteur dans la même conversation, donc "et quand est check-out?" fonctionne sans retypage de la référence. La référence assortie et le courriel de preuve sont rappelés sur le thread de chat comme CANDIDATES, donc les suivis ne ré-redemandent pas. Ils sont candidats seulement: chaque tour refait toujours le côté serveur d'enregistrement et recompare la preuve avant de libérer un seul champ.
Paquets d'auteurs manuels
Un paquet de marché peut expédier son propre GuestLookupProvider.php implementing ContextProviderInterface avec surfaces(): ['guest']. Suivez le contrat du modèle généré exactement — récupérer par référence, côté serveur de correction, refus uniforme, sortie uniquement permiselist — et déclarer guest_lookup in capabilities. La conformité vérifie la surface de l'invité et scanne la liste des permis pour PII.
💡
Les recherches des clients sont en lecture seule pour le chat AI. Ils n'exécutent jamais d'actions, ne créent jamais d ́identités et ne déverrouillent jamais le chemin d'action du client en libre-service ci-dessus — ce chemin nécessite toujours un client connecté vérifié par plate-forme.
Connecteurs
Ciblage de l'audience promotionnelle (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.
PublicitéVotre connecteur répond aux faits de facturation en direct pour le visiteur connecté; le studio cible sur eux, et échoue fermé ainsi une offre de facturation ne parvient jamais à la mauvaise personne.
Comment ça fonctionne
1
Déclarez vos faits
Implémentez audienceCatalog() sur votre classe de connecteur. Elle renvoie une étiquette et la liste des clés auxquelles votre plateforme peut répondre, chaque clé apparaissant dans le menu déroulant du studio sous le nom de votre plate-forme.
2
Réponse pour un client
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
Fait
L'onglet Ciblage de Promotion Studio développe une section "Client et facturation" répertoriant votre plate-forme; les administrateurs créent des règles telles que "facture_non_payée >= 1"; chaque fait devient aussi une variable de personnalisation telle que {unpaid_invoices}.
connector. php, le contrat complet de promo_audience
Ajouter 'promo_audience' Ajouter à votre connecteur capabilities() Le tableau préinstallé est utilisé pour que la plateforme et le marché l'indiquent comme étant capable d'audience (la découverte fonctionne également à partir de la présence de méthode, mais sa déclaration est le signal propre). connectors/whmcs Le connecteur est l'implémentation de référence complète.
Nomination des clés
Petites lettres snake_case, 2-60 Les clés non déclarées retournées par audienceFlags() sont toujours utilisables dans les règles, mais déclarez tout ce que vous supportez afin que les administrateurs puissent le voir.
L'identité est vérifiée
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.
Échec fermé · toujours
En cas d'erreur (API down, client not found, timeout) renvoie []. Une règle dont le fait est manquant ne permet pas d'afficher la campagne. Un popup ciblé sur la facturation ne doit jamais atteindre la mauvaise personne ; OpsIQ Cela s'applique aussi dans le règle matcher.
Résultats
La fonction audienceFlags() est appelée au plus une fois par connecteur et par page vue, et UNIQUEMENT lorsqu'une campagne publiée utilise réellement les règles de votre plateforme. Les visiteurs anonymes ne vous coûtent aucun appel. 1-2 API les appels; OpsIQ Memoizes dans la requête.
Opérateurs fournis gratuitement
Les administrateurs combinent vos clés avec =, !=, >, >=, <, <=, contient, est défini, est vide, vous ne fournissez que des valeurs.
Jetons de personnalisation
Chaque fait double comme une variable dans le texte de la campagne: {unpaid_invoices}, {client_status}, plus les intégrations. {first_name} and {client_email}. Les valeurs sont désinfectées avant le rendu.
Connecteurs de marketplace sans code
Faits automatiques
Déclarative (JSON-seulement) les connecteurs de marketplace obtiennent promo_audience GRATUITEMENT: si votre connecteur déclare des ressources clients/utilisateurs, factures, commandes ou abonnements, OpsIQ Dérive les valeurs customer_status, unpaid_invoices, amount_due, pending_orders, active_subscriptions et subscription_status à partir de vos actions de recherche existantes.
Catalogue personnalisé (settings.json)
Ajouter un objet public_capabilities · {"label": "Ma Plateforme", "keys": [{"key":"open_carts", "label", "Open carts", "type": «nombre»}}, pour contrôler exactement quels faits (et étiquettes) apparaissent dans le menu déroulant du studio.
Testez votre fournisseur
1
Activer le connecteur
Connecteurs > votre connecteur > Activer. Puis ouvrez l'onglet Ciblage de toute campagne. Votre plateforme doit apparaître sous "Client & facturation (connecteurs)".
2
Créer une règle
Ajoutez: Votre plateforme · une clé · >= · 1 et définissez "Seuls les clients connectés".
3
Vérifiez les deux directions
Connectez-vous à votre plateforme en tant que client qui correspond à la règle (la fenêtre contextuelle doit être affichée) et comme un client qui ne le fait pas (la Fenêtre contextouel doit rester masquée).
Lancez une campagne à partir de votre propre code (déclencheur personnalisé)
Pourquoi?
Au-delà des déclencheurs intégrés (délay, défilement, intention de sortie, oisiveté, clic, pages vues, chat / activité ticket), vous pouvez lancer une campagne depuis n'importe où dans votre site ou le front-end connecteur, après une étape de caisse réussie, quand un chariot est abandonné, lorsque votre SPA change d'itinéraire, etc.
Comment
Définir le déclencheur de campagne Personnalisé avec un nom d'événement (p. ex. checkout_failed), puis appelez le hook global depuis votre page:
Ajouter un lien vers votre site / connecteur
// 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');
💡
Il ne libère que le -When. La campagne doit toujours passer toutes les règles (geo, audience, consentement, capsules) avant qu'elle ne se manifeste.
✅
Le guide d'utilisation complet (conception, blocs, analyses, A/B, publication) est disponible dans le centre d'aide de l'application sous Engage → Promotion Studio - 10 ans. La capacité ici est découverte automatiquement à partir de n'importe quel connecteur ENABLED dans les connecteurs/ ou marketplace_connectors/. Il n'y a rien à enregistrer. Expédiez les deux méthodes, et le studio fait le reste.
Connecteurs
Capacité de connecteur d'enquête (Contrat 2.2)
Le survey La capacité de fournir des adaptateurs d'identité client vérifiés, des données sur l'audience, des variables sûres et des candidats destinataires à Survey Studio permet à n'importe quelle plateforme. promo_audience et ne donne pas à un connecteur la propriété des sondages, réponses, analyses ou livraison de courrier électronique.
💡
La création est terminée et utilisable aujourd'hui: Connector Contract 2.2, SurveyConnectorInterface, le panneau de construction dédié, généré SurveyProvider.php, les métadonnées du paquet et l'isolation de conformité tout le navire. La consommation n'est pas encore câblée: SurveyConnectorRegistry L’intégrité du fournisseur n’apparaît donc pas dans l’interface utilisateur d’administration et aucun package de connecteur publié ne déclare la fonctionnalité. La publication des jetons signés Survey Identity Gateway, le ciblage et l’intégration des variables, la matérialisation de CRM Outreach et les premiers mappages de fournisseurs expédiés restent des phases distinctes.
Responsabilités du fournisseur
Catalogue d'audience et faits
Les faits typiques incluent order_count, last_order_status, cancelled_order _count, customer_created_at, active_subscription_count et open_ticket_count. Les valeurs canoniques sont des données de type facts qui peuvent être utilisées pour résoudre les problèmes d'ordres ou de tickets.
Catalogue et valeurs des variables
Déclarez les variables client, compte, commande, abonnement et support avec le type, la sensibilité et le contexte autorisé.
Notification des destinataires
Énumérez en option les candidats pour la prospection CRM avec des ID externes stables, des pages limitées, des curseurs déterministes et des métadonnées liées au consentement.
Identité
Acceptez l’identité uniquement à partir de Survey Identity Gateway après la signature du jeton, l’expiration, le but, le connecteur et la vérification de l’espace de travail.
État d'exécution
SurveyConnectorRegistry est conçu pour signaler les fournisseurs compatibles, bloqués et indisponibles sans exposer les paramètres, chemins d'accès, identités brutes ou messages d'exception. Un fournisseur bloqué ne peut jamais être invoqué. La surface de reporting n'est pas encore exposée dans l'interface utilisateur d'administration : aujourd'hui un fournisseur bloque est simplement inerte.
Règles de fail-closed
Les clés non déclarées, les types incorrects, les valeurs surdimensionnées, les décalages de sujet, les temps d'attente des connecteurs et les identités inconnues sont rejetés. Une règle de ciblage qui nécessite un fait indisponible ne correspond pas.
Porte de dégagement du constructeur
Contrat 2.2 expédie l'entrée de registre de capacité, interface, panneau de cartographie d'enquête, généré SurveyProvider.php, version de la fonctionnalité, fichier README/référence du développeur et fiches de conformité. Les profils PHP locaux, les profils Commerce, Helpdesk, pont SaaS et les connecteurs standard API l'incluent.
💡
La copie de la promotion est uniquement importable : le constructeur peut traduire les mappages de promotion compatibles une fois, enregistrer une copie complète appartenant à l'enquête et enregistrer la provenance.
Connecteurs
Capacité de rétroaction (Contract 2.2)
Le reply_feedback La capacité reflète les propres cotes par réponse d'une plate-forme en OpsIQ. Une étoile un client donne une réponse du personnel à l'intérieur WHMCS L'espace client de's atterrit sur la MÊME réponse dans le OpsIQ Le fil d'administration, avec la même puce, le crédit de l'agent, l'entrée de page Feedback et le calcul Team & Performance comme une note donnée sur un OpsIQ Un stockage, une puce, un pipeline ; le connecteur ne fait que traduire.
Le chemin d'écriture unique
Il y a exactement deux chemins d'entrée et une vérité. OpsIQ Les tickets de portail écrivent nativement, les tickets de plateforme passent par le connecteur et chaque évènement du noyau arrive via ReplyFeedback::recordMirrored(): les mêmes colonnes, règle du staff-only, une évaluation par réponse des dernières années, sémantique, timbre espace de travail et l'indexation de la voix du client le portail écrire utilise. Un connecteur n'écrit jamais les lignes de rétroaction elle-même.
Conformité (quatre dossiers, puis signer à nouveau)
1
connector_contract.json
Ajouter l'entrée capabilities. reply_feedback: version 1.0, le ReplyFeedbackConnectorInterface, les méthodes replyFeed backCatalog et pullReplyFeedBack, implique inbound_ticket.
2
settings.json
Ajouter reply_feedback à la liste des capacités. C'est ce que lit la découverte de connecteurs.
3
spec.json
Déclarez reply_feedback. modes (poll et/ou webhook) et l'échelle de notation de la plateforme. C'est ce que lit la barrière de conformité.
4
Classe d'exécution
Implémentez l'interface, listez reply_feedback dans capabilities(), puis signez à nouveau le paquet.
Responsabilités du fournisseur
Catalogue
Déclarer les modes, l'échelle de notation propre à la plate-forme (le noyau normalise vers le 1-5), et tous les jetons de réaction. Le catalogue doit être conforme aux spécifications.json.
Traduction de Pull
pullReplyFeedback retourne des événements canoniques : id ticket plate-forme, id réponse plate-formes, note, réaction/comment optionnelle, temps soumis et un event_id stable. Il lit et traduit. Il n'écrit jamais.
Idempotence
event_id est stable par feedback STATE, donc un évènement rejoué n'est pas jouable et une modification de classement remplace (les dernières victoires, comme le portail).
Discipline du curseur
Les pages sont délimitées et déterministes. Un curseur qui n'avance pas met fin à l'exécution. Le remplissage historique s'écoule comme une fenêtre roulante, jamais en un seul mouvement géant.
Sécurité de la sonde
Sans configuration, retourner une page complète vide au lieu de lancer. Le coureur de conformité sondes avec des arguments vides.
Résolution de fail-closed
Le noyau résout chaque événement en une réponse locale par le marqueur miroir que le miroir de ticket est déjà marqué (<slug>:<ticket>:reply:<reply>). Un événement qui ne peut être résolu est abandonné, jamais deviné; les commentaires ne se rapportent qu'aux réponses du personnel; et le crédit d'agent provient toujours de l'auteur existant de la réponse. inbound_ticket ou ticket_mirror.
Exemple de travail: WHMCS
WHMCS stocke les évaluations par étoiles de la zone client par réponse tblticketreplies.rating. The WHMCS Le connecteur déclare le mode poll avec un. 1-5 à l ' échelle, ticket_reply_ratings La commande relay dans son fichier de pont, et traduit chaque ligne en un événement dont les ids correspondent aux whmcs:<ticket>:reply:<reply> Après avoir mis à niveau le connecteur, recopiez le fichier de bridge sur le serveur WHMCS afin que la nouvelle commande y existe.
💡
Contrat de développement complet avec l'interface, les formes d'événements, les règles de normalisation et la liste de contrôle de conformité: doc/contracts/TICKET_REPLY_FEEDBACK_CAPABILITY.md Dans la rue OpsIQ Acceptation : noter une réponse à l’intérieur de la plateforme, attendre le sondage horaire, et la même réponse dans.OpsIQ La page d'accueil montre le jeton, la page de rétroaction le liste et un événement rejoué ne change rien.
Connecteurs
Marché des connecteurs
Le Marketplace vous permet de découvrir, d’installer et de publier des connecteurs créés par la communauté.
MarchéParcourez les connecteurs communautaires, installez en un clic ou signez et publiez vos propres niveaux de recherche, préinstallés et de marché.
Trouver et installer des connecteurs
1
Parcourir
Accédez à Connecteurs > Marketplace. Recherchez par nom, catégorie ou plateforme.
2
Examen
Vérifiez la description, les actions prises en charge et les évaluations.
3
Installer
Le package de connecteur est téléchargé et installé dans le dossier marketplace_connectors/.
4
Configurer
Activez-le dans Connecteurs, entrez les informations d'identification API et testez.
Publier un connecteur
1
Construire et tester
Utilisez le Connector Builder. Vérifiez que toutes les actions fonctionnent.
2
Paquet
Générer un profil.json, actions.json, la connaissance.json, et les fichiers PHP.
3
Signer
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
Soumettre
Téléchargez-le via le flux de soumission du marché pour examen.
Deux niveaux de connecteur
connecteurs/ — ce qui fonctionne réellement
Tout est en direct : les connecteurs qui expédient avec OpsIQ, tout ce qui est installé sur le marché et tout ce que publie le Connector Builder sur cette installation.
marketplace_connectors/ — où les paquets sont créés
La SOURCE d'édition pour les paquets de marché de premier parti. Ce n'est pas une racine découverte: rien ici n'y est en direct jusqu'à ce qu'il soit emballé, signé, ensemencé dans le catalogue et installé, à quel moment une copie atterrit dans des connecteurs/.
💡
Regardez dans les deux endroits. Un paquet que vous avez écrit sous marketplace_connectors/ n'est pas la copie qui fonctionne — l'installation de copies dans des connecteurs/, et seulement cette copie est découverte à l'exécution.Stripe, BigCommerce, Magento2, PrestaShop, OpenCart, Amazon SES, Postmark et Resend sont tous des paquets de marché: installer un avant de s'attendre à le trouver dans Connectors.
Développeur
API et constructeur de webhook
The API et Webhook Builder vous permet de créer des.API Points de terminaison et écouteurs webhook à l'intérieur OpsIQ sans écrire du PHP brut.
API constructeurConstruire des paramètres sans PHP brut : choisissez un déclencheur (en ligne, calendrier, événement ou manuel), puis mapez les champs vers une action.
Déclencheurs
Événement
Courir quand quelque chose se passe dans. OpsIQ, ou lorsqu'un système externe affiche un évènement correspondant à votre webhook. URL. Tapez le nom de l'événement, par exemple ticket.created.
Calendrier
Utilisez l'un des événements d'intervalle intégrés comme nom de l'événement: cron. minutely, cron. hourly ou cron. daily L'écran Actions et déclencheurs a des boutons pour ceux-ci, donc vous n'avez pas à les retenir.
Phrase
Exécuter quand un administrateur demande à l'IA de le faire en langage clair. Ajouter la phrase qui devrait correspondre, par exemple trouver client.
Webhook entrant
Un système externe envoie un HTTP POST à votre OpsIQ Webhook URL Tout déclencheur à l'écoute de cet événement est activé.
Ne l'exécutez que parfois: conditions
Un déclencheur d'événement peut contenir des conditions, de sorte qu'il ne s'exécute que lorsque les données entrantes correspondent. Sans conditions, il s'exerce à chaque fois que l'évéement se déclenchait.
Champ
Un chemin d'accès aux données de l'événement. Utilisez un point pour les valeurs imbriquées, par exemple customer. email.
Correspond à tout ou n'importe quoi
Choisissez si toutes les règles doivent correspondre, ou seulement une d'entre elles.
Tests de texte
est égal, n'est pas égal à, contient, ne contient pas, commence par, est l'un de, n’est pas l'une de.
Tests de nombre
Les nombres écrits en tant que texte sont toujours comparés correctement. Les nombres de caractères sont toujours utilisés pour les comparaisons.
Tests de présence
est présent, est manquant, est vide, n'est pas vide.
Seul le page l'ingénieur sur appel pour les tickets urgents
Scénario :
Event ticket.created, with one rule: priority equals urgent.
Que faire:
L'action s'exécute pour les tickets urgents et est ignorée pour tout le reste. Aucun filtrage nécessaire de votre côté.
💡
Si vous laissez les règles vides, le déclencheur s'exécute sur chaque événement correspondant, ce qui est le même comportement qu'avant l'existence des conditions.
Actions
Envoyer un webhook
Envoyer HTTP POST à un URL externe avec une charge utile personnalisée.
Créer un ticket
Créez un ticket d'assistance avec le département, l'objet et le message spécifiés.
Envoyer un email
Envoyez un e-mail avec un modèle personnalisé.
Mettre à jour l'enregistrement
Mettre à jour un enregistrement client, ticket ou CRM.
Exécuter l'action de connecteur
Exécutez une action enregistrée à partir d'un connecteur activé avec ses règles d'autorisation et de confirmation du connecteur.
Run OpsIQ Général de l'armée française API action
Recherchez le nom complet General API Les champs, les étendues, les autorisations, la confirmation, l'idempotence et le support de test proviennent du contrat d'action en direct ; le flux de travail s'exécute dans son espace de travail enregistré et son contexte administrateur.
Envoyer une demande provider-native API
Utiliser un connecteur Native API Lu ou confirmé Native API Les informations d'identification restent à l'intérieur du connecteur et seuls les chemins de fournisseur relatifs sont acceptés.The credentials remain inside the connector and only relative provider paths are accepted.
✅
Le constructeur d'Actions & Triggers, /api/v1.php, OpenAPI et Postman utilisent le même ActionContractRegistry, donc une action sélectionnable ne peut pas dériver de la documentation runtime.
Développeur
Livre de cuisine pour les triggers
Des recettes d'action de déclenchement prêtes à l'emploi pour les automatismes courants.
Comment ça fonctionneLivre de cuisine pour les triggers
Créer automatiquement un ticket à partir de la surveillance
Scénario :
Monitoring system sends POST when server goes down.
Slack message every time a customer places an order over $100.
Que faire:
Trigger: Event (order.completed)
Condition: order.amount > 100
Action: Send webhook to Slack incoming webhook URL with order details
Digest hebdomadaire par courriel
Scénario :
Summary email to management every Monday at 9am.
Que faire:
Trigger: Schedule (Monday 09:00)
Action: Send email with last week's stats pulled from the REST API
Escalade des tickets obsolètes
Scénario :
If a ticket has no reply for 24 hours, assign to team lead.
Que faire:
Trigger: Schedule (every hour)
Condition: ticket.status = "Open" AND ticket.last_reply_age > 86400
Action: Assign to team-lead, add internal note
Développeur
Construire votre première action
Cette procédure crée une action de connecteur simple à partir de zéro.
Actions de constructionConstruisez une action à partir de zéro. Nommez-la, définissez la méthode et le paramètre, déclarez les paramètres dactylographiés, et testez-le à un live 200.
Deux types d'action
Avant de commencer, décidez lequel vous voulez utiliser. Les deux sont configurés dans le même écran.
Appelez un API externe
L'action envoie une requête HTTP à votre plateforme. Choisissez cette option lorsque OpsIQ a besoin de vous contacter et d'agir de votre côté.
Exécuter une action de connecteur
L'action exécute quelque chose qu'un connecteur installé fournit déjà. Choisissez cette option lorsque le travail est déjà disponible et que vous voulez simplement le déclencher. Vous choisissez l'action du connecteur dans une liste, donc il n'y a rien à câbler.
✅
La deuxième option est de réutiliser tout ce que vos connecteurs peuvent déjà faire sans en créer à nouveau : lire un fil de discussion de ticket, rechercher un client, importer des contacts, etc. Choisissez l’action du connecteur dans la liste déroulante et vous avez terminé.
1
Planifier l'action
Exemple : "lookup_product". Cherchez un produit par son nom, son prix de retour, son stock et sa description.
Trois choses qui font une action ne s'enregistrent pas du tout. action_id est REQUIS et doit être2à100Le manifeste est un objet avec une LIST "actions", non une carte clé par nom d'action. Et le mapping des réponses est "retourne" avec les chemins DOTTED (data.id), pas JSONPath ($.data .id) — il n'y a pas de "réponse_mapping", "méthode", "point d'arrivée" ou "params" dans le registre.
3
Essai avec essai à sec
Dans l'étape de révision du Constructeur de connecteurs, appuyez sur Dry run. Il exécute la liste complète de vérification de conformité contre votre paquet et, lorsque vous avez fourni des informations d'identification, fait un test de connexion réel.
4
Vérifier l'utilisation de l'IA
Demandez à l'IA d'administration: "Recherchez le produit Widget Pro." L'IA devrait trouver et exécuter l'action.
⚠️
Ajout d'une action aux actions.jsonne crée PAS de route AJAX, il n'y a donc rien à régénérer.OpsIQlorsque le connecteur est activé ou que ses paramètres sont sauvegardés: réenregistrer le connecteur et la nouvelle action apparaît. tools/gen_route_registry.php couvre l'expédition admin AJAX et n'a aucune incidence sur les actions de connecteur.
Développeur
Points de terminaison d'événement entrant
Les points de terminaison entrants acceptent JSON signé d'un autre système et le transforment en activité de contact dédupliquée pouvant alimenter les échéanciers, la notation et les flux de travail.
Écran de produitChaque source entrante a son propre URL, secret, mapping et résultat d'activité récente.
Créez une source par système d'envoi. OpsIQ génère un URL/token et secret. Envoyer JSON avec Content-Type: application/json et signez le corps brut exact en utilisant HMAC-SHA256:
X-OpsIQ-Inbound-Signature: sha256=<hex hmac>
Mappent les chemins JSON pour l'e-mail du contact, le nom de l'événement et l'ID d'évéement optionnel. L'ID de l’événement est la clé de déduplication préférée. L'activité acceptée entre dans la chronologie des contacts et peut affecter le score des prospects, les segments, le cycle de vie et les workflows.
Rejetez les signatures non valides avant d'analyser les données métier. Rotation d'un secret en mettant à jour les deux côtés dans une fenêtre contrôlée; ne pas consigner le secret.
Développeur
Opérations de webhook sortantes
L'administration des webhook sortants crée des abonnements signés, teste les points de terminaison et surveille la livraison asynchrone et l'intégrité des réessais.
Écran de produitLa page webhook sortante répertorie les points de terminaison HTTPS, les abonnements à des événements, l’état de la livraison et un test signé en un clic.
Les administrateurs complets créent un point de terminaison HTTPS, choisissent des événements spécifiques ou le caractère générique, stockent le secret en toute sécurité et envoient un test. OpsIQ Signe la charge brute avec HMAC-SHA256:
X-OpsIQ-Signature: sha256=<hex hmac>
La livraison est asynchrone et une nouvelle tentative de livraisons sera effectuée automatiquement après environ 10 minutes. 1minute, 5 minutes, 30 minutes,2heures et 12 HeuresUtilisez le rail de livraison récente pour inspecter l'état, le code de réponse et le nombre de tentatives.
Votre récepteur doit être idempotent car tout système asynchrone peut redélivrer une réponse 2xx uniquement après acceptation durable.
Développeur
Webhooks
Les webhooks permettent aux systèmes externes de notifier OpsIQ quand quelque chose se passe (inbound), et à _OpsIQ d'avertir les systèmes extérieurs lorsque quelque chose arrive en interne (outbound).
WebhooksL'écran de webhooks réel sortant : chaque point final avec ses événements, la santé de la livraison récente, et un seul clic Envoyer test, signé et retrié.
Webhooks sortants
Souscription
Allez dans Paramètres > Webhooks. Ajoutez un point de terminaison URL et sélectionnez les événements à recevoir.
Utilisez ngrok pour exposer votre serveur local. Définissez le point de terminaison du webhook sur votre ngrok URL.
Que faire si mon point de terminaison est temporairement en panne?+
OpsIQ Si votre point de terminaison récupère dans la fenêtre de réessai, aucun événement n’est perdu.
Développeur
Clés API
API Les clés authentifient les requêtes vers le. OpsIQ REST API. Chaque clé a des autorisations d'étendue.
Clés APIL'écran de touches réel API : délivrez une clé en lecture seule ou restreinte en sélectionnant des champs exacts, et retirez n'importe quelle clé à tout moment.
Création d'une clé API
1
Allez dans Paramètres > API Touches
Accédez à la gestion des clés API.
2
Cliquez sur Créer une clé
Donnez-lui un nom descriptif.
3
Sélectionner les champs d'application
Les étendues sont fournies en paires de lecture et d'écriture par zone, de sorte qu'une intégration de rapports peut être autorisée à lire uniquement les données nécessaires.
Portées disponibles
Choisissez l'ensemble le plus étroit qui fait le travail. admin Il satisfait à tous les objectifs ci-dessous, alors n'utilisez-le que lorsque vous avez réellement besoin d'un accès étendu.
Création de crm. read / crm
Contacts, entreprises, offres, activités, segments, outreach, conversions, cycle de vie et webhooks CRM.
tickets. read / tickets. write
Listez et lisez les tickets et leurs messages; répondez, mettez à jour, ouvrez et exécutez des opérations de file d'attente en vrac.
conversations. read / conversations
Lisez les conversations en direct et l'historique des messages; envoyez des messages, assignez et modifiez le statut.
kb. read / kb. write
Entrées de la base de connaissances.
Chat. read / chat. write
Modèles de réponses sauvegardés.
connectors.read
Découvrez quels connecteurs sont installés, ce qu'ils peuvent faire et testez leurs informations d'identification.
automations.read
Voir vos actions, déclencheurs et leur historique d'exécution.
departments.read
Départements disponibles pour le routage.
notifications.read
Notifications pour un opérateur nommé.
analytics.read
Sections de rapport, exportations CSV et définitions de rapport planifiées.
Site_intelligence. read
Sites surveillés et leurs rapports SEO.
files.read
Liens de téléchargement signés pour les pièces jointes.
status.write
Composants de la page d'état et incidents.
writing
Aides à l’écriture d’IA: rédiger, résumer, traduire, réécrire, composer, analyser.
administrateur
Tout, y compris un petit nombre d'actions sensibles qui sont délibérément inaccessibles par une portée étroite: supprimer un contact, modifier les paramètres de confidentialité et lire le journal des accès.
💡
Appelez meta. actions avec votre clé pour voir exactement les actions qu'il peut exécuter sur votre installation, ce qui est toujours plus fiable que de travailler à partir d'une liste.
Niveaux d'accès
Tout
La clé peut appeler tout ce que ses portées permettent.
Lecture seule
Le choix le plus sûr pour les rapports, les tableaux de bord et tout ce qui ne devrait jamais modifier les données.
Restreint
Vous listez les actions exactes que la touche peut appeler, tout le reste est refusé, même dans un périmètre autorisé.
4
Copier la clé
Affichée une fois. Commence par "opq_". Stockez-la en toute sécurité.
🚫
Ne jamais partagerAPIclés en code public, côté clientJavaScript, ou contrôle de version. Utilisez des variables d'environnement.
Développeur
Connectez votre site web
The OpsIQ Le widget est un. JavaScript Un extrait de code que vous ajoutez à votre site Web pour le suivi, le chat AI, la création de tickets et l'identification des clients.
Non. Sous 15 KB gzipped, chargement asynchrone après le contenu de la page.
Puis-je personnaliser l'apparence?+
Utilisez data-color pour la couleur primaire. Contactez le support pour les options de remplacement CSS.
Développeur
Widget installer des recettes
Guides d'installation spécifiques à la plateforme.
Comment ça fonctionneInstaller des recettes
WordPress
Scénario :
Add to all pages of a WordPress site.
Que faire:
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
Scénario :
Add to your Shopify store.
Que faire:
Online Store > Themes > Edit Code > Layout > theme.liquid. Paste before </body>. Save.
React / Next. js
Scénario :
Add to a React or Next.js app.
Que faire:
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
Scénario :
Add to your WHMCS client area.
Que faire:
Sélectionnez Configuration > Paramètres généraux > Autre > Contenu du pied de page global. Collez l'extrait ou modifiez le fichier footer. tpl de votre modèle.
Google Tag Manager
Scénario :
Add via GTM.
Que faire:
Créer une balise personnalisée HTML, coller l'extrait. Déclencheur: Toutes les pages. Publier.
Développeur
Admin widget dans votre moteur de recherche (un contrat, n'importe quelle plateforme)
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.
Étape 1 — la ligne d'intégration
De Sites éloignés→votre site→Codes, copiez la ligne de chargeur et ajoutez-la aux pages de votre panneau d'administration (y compris le pied de page, le modèle de mise en page ou une boîte JS personnalisée uniquement par admin) :
Seule votre application sait dans quel admin est connecté — ce n'est pas une lacune, c'est le modèle de sécurité. Votre serveur génère un jeton signé à courte durée de vie de votre propre session, exactement comme le jeton d'identité du visiteur, signé avec le même secret webhook site:
PHP · signe l'identité de l'administrateur depuis votre session
<?php
$secret = "opsiq_whsec_your_site_secret"; // Remote Sites → Codes
$payload = json_encode([
"site_key" => "SITE_KEY",
"iat" => time(),
"exp" => time() + 6 * 3600,
"authenticated" => true, // REQUIRED, top level — see note below
"platform" => "your-platform",
"admin" => [
"id" => (string)$admin->id, // from YOUR session
"name" => $admin->name,
"username" => $admin->username,
"email" => $admin->email,
"role" => $admin->role,
"authenticated" => true,
],
]);
$payload64 = rtrim(strtr(base64_encode($payload), "+/", "-_"), "=");
$identityToken = $payload64 . "." . hash_hmac("sha256", $payload64, $secret);
// Put $identityToken into the embed line (identity_token=…), or expose it as
// window.OpsIQAdminIdentityToken before the loader script.
Accès par administrateur, automatiquement
Chaque administrateur qui se connecte à votre plateforme est assorti individuellement:OpsIQ's par-admin access gate résolve le nom d'utilisateur du jeton + email contre unOpsIQ(Page de l'équipe; utilisez la liste des «messages d'échange» de votre agent lorsque les courriels de la plate-forme diffèrent) et applique les permissions de cet agent dans son espace de travail, son département et sa boîte de réception.OpsIQ; aucun changement d'intégration.
Rôles
Quelle que soit la chaîne de rôle que votre plate-forme envoie est affichée sur leOpsIQpartie pour l'attribution; l'autorisation provient toujours de laOpsIQagent record, jamais du rôle affirmé.
Pourquoi ne pas lire notre cookie de connexion ?
Les navigateurs n'envoient jamais votre cookie d'administration à une autre origine — aucun fournisseur ne peut simplement détecter votre domaine de connexion. Chaque produit sérieux résout cela de la même manière: vos chèques de serveur, signé. C'est l'ensemble du contrat.
Mode simple (simple-boutiques administratifs)
Sauter l'étape2et utiliser le jeton statique des sites éloignés→Codes dans la ligne de chargeur (token=... au lieu d'identity_token =...).Le widget fonctionne avec l'identité partagée de l'espace de travail; la porte par administrateur peut rester imposée plus tard lorsque l'équipe grandit.
Le authenticated drapeau — mettre au niveau TOP
Ce drapeau est l'affirmation de votre serveur qu'un humain est vraiment connecté, etOpsIQrefuse tout jeton sans elle. "authenticated" => true beside site_key/iat/exp, PAS seulement à l'intérieur de admin objet. Current OpsIQ accepte dans l'une ou l'autre position, mais les versions plus anciennes ne lisent que le niveau supérieur — et l'échec est trompeur: liste de conversation, historique et non lu tout authentifiant bien pendant chaque chat tourner réponses "Accès administratif requis", qui ressemble à un bug de session et ne l'est pas. Si vous voyez exactement cette scission, cochez d'abord ce drapeau.
Hygiène symbolique
Se connecter sur le serveur seulement, jamais dans le navigateurJavaScript. Garder l'exp courte (minutes à heures);OpsIQles jetons périmés et à terme, et la signature lie le jeton à votre clé de site.
Implémentations de référence
LesWHMCSle module fait cela automatiquement à partir de laWHMCSsession d'administration; le fichier de bridge du connecteur Botble Hotel le fait à partir de la session Laravel (op=admin_identity). Tous deux sont juste ce contrat dans le dialecte de leur plateforme — copiez la plus proche de votre pile.
Câble à page zéro (sonde déclarée par le connecteur)
Lorsque votre connecteur OpsIQ stocke votre point de départ d'identité dans son admin_identity_probe_url la ligne PLAIN chargeur est toutes vos pages d'administration nécessaires: le widget découvre la sonde depuis le connecteur, l'appelle avec votre clé de site + jeton widnet, et authentifie chaque admin automatiquement. data-identity-endpoint attribut ou window.OpsIQAdminIdentityEndpoint.
Mise en œuvre du critère d'identité sur Laravel (notes hard-won)
Si votre plateforme est Laravel (Botble, Bagisto, applications personnalisées) et que votre terminal est un fichier autonome qui lance le cadre pour lire l'administration connectée, trois détails vous permettront de gagner des heures — chacun a produit une véritable défaillance de production avant qu'elle ne soit apprise:
Reliure la demande AVANT le bootstrap
Vos fournisseurs de services peuvent résoudre request du conteneur pendant la botte. Le cycle de vie de Laravel relie la requête capturée première chose à l'intérieur Kernel::handle() — de refléter cet ordre: $app->instance('request', Request::capture()) QUELLES SONT LES INFORMATIONS A CONNAITRE AVANT $kernel->bootstrap()ou tu as "La classe cible [demande] n'existe pas".
Le préfixe de la session-cookie est HMAC-clé
Laravel moderne préfixe les valeurs des cookies avec un HMAC calculé avec la clé de l'application (CookieValuePrefix) — une sha1(name."v2") ne peut jamais correspondre. CookieValuePrefix::validate($name, $decrypted, $keys), avec un recul structurel (40hexagonale + | en position40). Tell: une session id plus longue que40les caractères gras (81= préfixe toujours attaché) et une session qui ne se charge que _token dedans.
Où vit le login
Le timbre d'auth est login_<guard>_<sha1(guard class)> — pour le web guard par défaut: 'login_web_' . sha1(Illuminate\Auth\SessionGuard::class). Scanner n'importe quel login_* clé numérique comme un retour pour les gardes personnalisés.
Déboguer comme le pont
Navire a debug=1 mode qui nomme l'ÉTAPE défaillant et l'exception — un attrape-tout aveugle rendu un déploiement en direct non diagnostiqué. Le pont Botble (de v1._0.7) est la référence: marqueurs d'étape au noyau/bind/bootstrap/decrypt/session/auth/db.
Laravel · point final de l'identité complète (copie, définir les deux constantes, fait)
<?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]);
}
Le même paramètre sur d'autres piles
Seul le "qui est connecté?" change de ligne — le bloc de signature est partout identique. Signez sur le serveur, jamais dans JavaScript.
WordPress · WHMCS· Symfony · PHP simple — échangez la recherche, gardez le signataire
Quand cela ne fonctionne pas — diagnostiquez dans cet ordre
Widget n'apparaît jamais, la console dit "le jeton d'identité de l'administrateur signé est requis"
Votre point d'arrêt n'a pas été rendu identity_token. Ouvrez le paramètre URL directement dans le navigateur d'administration connecté avec &debug=1 — vous verrez l'étape défaillante. Sur Laravel, c'est presque toujours l'élément de requête ou de préfixe des cookies ci-dessus.
L'histoire et les conversations fonctionnent, mais chaque tour de chat dit "Accès administratif requis"
La division classique. Votre jeton manque le TOP-LEVEL authenticated flag — le paramètre propre au widget accepte le jeton, le vérificateur partagé derrière le flux de discussion refuse. "authenticated" => true beside exp.
"admin non fourni dans OpsIQ" (HTTP 401)
The token verified, but its username + email match no OpsIQ agent. Add the agent in OpsIQ → Team, or add the platform email to that agent's match-emails list when it differs from their OpsIQ email.
Tout 403s depuis le navigateur mais fonctionne avec curl
Un prévol CORS rejette un de vos en-têtes de requête. Votre point final doit répondre OPTIONS et faites écho à l'origine de la demande, ou évitez simplement les en-têtes personnalisés — le widget n'a besoin que du cookie.
Travaillé hier, échoue aujourd'hui
Vérifier exp: les jetons sont de courte durée par conception. Le widget re-probes automatiquement, donc cela signifie généralement que le point d'arrivée a cessé de voir la session — une rotation de clé app, un changement de pilote de session ou un changement du domaine des cookies.
💡
Le widget admin rend caché jusqu'à ce que l'identité se résout, et chaque appel chat/inbox/data est imposé côté serveur contre le correspondantOpsIQagent, peu importe ce que la page affirme. Le jeton déverrouille l'interface utilisateur; les permissions viennent toujours deOpsIQ.
Développeur
Identité du visiteur
Une fois identifié, OpsIQ relie l'historique de navigation, les discussions et les tickets au profil du client.
Comment ça fonctionneIdentité du visiteur
Deux niveaux d'identité, et quand chacun suffit
Niveau 1 — un indice non signé
Vous dites au widget qui est le visiteur avec une plaineJavaScriptobjet. Il remplit l'email et l'identifiant du client sur le journal des visiteurs, de sorte que votre tableau de bord affiche le trafic connecté et les sessions se joignent.OpsIQne publie jamais de données de compte sur la force de celui-ci.
Niveau 2 — un jeton d'identité signé
Votre serveur signe un jeton de courte durée avec le secret webhook site. OpsIQ vérifie la signature et seulement alors traite la personne comme un client éprouvé. C'est le niveau qui déverrouille les réponses de compte dans la conversation client et les recherches de connecteurs. Utilisez-le pour tout ce qu'un étranger ne doit pas voir.
⚠️
Niveau1est une commodité d'affichage.2est l'authentification. Si une question ne peut être répondue que pour le titulaire de compte réel, vous avez besoin de Niveau2.
Niveau 1 — l'indice non signé
Définir l'objet AVANT le script widget, ou appeler identif() plus tard une fois que votre application sait qui est connecté. Les deux formulaires sont lus; utilisez la meilleure de vos pages.
JavaScript · les deux formulaires supportés
<!-- Form A: set the global before the loader -->
<script>
window.OpsIQClient = {
id: "cust_1001",
email: "[email protected]",
name: "Jane Smith",
plan: "pro"
};
</script>
<script async src="https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY"></script>
<!-- Form B: identify later, e.g. after a client-side login -->
<script>
window.opsiq.identify({
id: "cust_1001",
email: "[email protected]",
name: "Jane Smith",
plan: "pro"
});
</script>
⚠️
Only these forms are read: the window.OpsIQClient global, window.opsiqConfig.user, and window.opsiq.identify(). There is no OpsIQ.push(['identify', ...]) queue and no OpsIQClientSignature global — if you find either in an old note, it does nothing.
Niveau 2 — le jeton d'identité signé par le serveur
Exactement le même contrat symbolique que le widget admin, avec un customer sujet au lieu d'un admin un. Signez-le sur votre serveur et passez-le au widget. Deux détails décident si il vérifie, et les deux sont faciles à faux:
LesHMACcouvre la chaîne BASE64URL, pas laJSON
Signer $payload64Pas $payload. Signer le brut JSON produit un jeton qui semble juste et est rejeté à chaque fois avec une erreur de signature.
base64url, non rembourrée
Traduire +/ à -_ et de retirer = rembourrage. Base plaine64 se trouve survivre aujourd'hui; base64url est le contrat et est ce que chaqueOpsIQle vérificateur et le connecteur de référence émettent.
Authentifié va au niveau TOP
A côté site_key, iat et exp. C'est votre affirmation qu'un vrai humain est connecté, etOpsIQrefuse le jeton sans lui.
client. id est obligatoire
Un jeton portant seulement un email vérifie comme une signature et est ensuite silencieusement abandonné. Toujours envoyer un id.
Garder l'exp courte
Minutes à heures. Le jeton est une affirmation de session, pas un titre de stockage.
<?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>';
🚫
Signez sur le serveur seulement. Un jeton hissé dans le navigateur JavaScript signifie l'expédition du secret du site à chaque visiteur, qui donne à quiconque la possibilité d'imiter n'importe quel client.
Le même contrat, trois surfaces
Chat client sur votre site
sujet client, passé comme identité_token à widget. php. Couvert ci-dessus.
Admin chat dans votre moteur de recherche
sujet administrateur, passé àopsiq/embed/admin_widget.php. Même signeur, clé de sujet différente. Voir "Admin widget dans votre backend".
Liens profonds du portail de soutien
Une variante plus stricte: les mêmes revendications plus jti et single_use:true, et a120- la seconde vie, parce que le jeton voyage dans unURLet doit être dépenseable une fois. Ne pas la faire rouler manuellement. Paramètres, Portail de support a un extrait prêt pour votre langue, et la plate-forme la menthe pour vous lorsque votre zone de compte fonctionne sur ce serveur.
Que se passe-t-il si un visiteur efface ses cookies ?+
Ils deviennent anonymes jusqu'à ce qu'ils soient identifiés à nouveau. OpsIQ lie le nouvel enregistrement anonyme au profil client dès qu'un indice ou un jeton arrive.
Pourquoi mon jeton vérifie-t-il le journal des visiteurs, mais pas les questions de compte?+
C'est le niveau1/ Niveau2split. Un indice non signé remplit le journal des visiteurs et rien d'autre. Les réponses au compte nécessitent une signature vérifiée.
Développeur
Plugins et SDK
OpsIQ provides SDK Paquets et plugins pour les plateformes courantes.
Comment ça fonctionnePlugins & SDK
PHP SDK
Paquet Composer: génération de jetons d'identité, assistants d'action API, vérification de signature webhook.
JavaScript SDK
Côté navigateur: suivi, identité, événements personnalisés, contrôle du chat.
WordPress plugin
Injection de widget, identité à partir des sessions utilisateur WP, WooCommerce sync.
Module WHMCS
Intégration complète: widget, relais de billets, identité, IA d'administration.
Shopify extension de thème
Intégration d'application avec identité client automatique.
Enquête API, évènements et automatisation sans connecteur
Survey Studio est conçu pour utiliser les mêmes types de données. API, exécuteur interne, bus d'événements et les opérations de webhook comme le reste de OpsIQ Cela permet aux développeurs d'intégrer de bout en bout sans créer un connecteur emballé.
⚠️
État de mise en œuvre: le catalogue live expose actuellement uniquement platform.get.survey.config et platform.save.survey.config. Les surveys.* et feedback.* Les familles ci-dessous sont le contrat cible approuvé et doivent retourner unknown_action jusqu'à ce que vous soyez enregistré.
Familles cibles d ' action
Types, modèles et lancement rapide
surveys.types.*, surveys.templates.* et surveys.quick_launch.* Liste, prévisualiser, instantier et valider les starters complets.
Enquêtes et versions
surveys.create|get|list|update|archive|duplicate Plus de version immuable, validation et actions de publication.
Déploiements et ciblage
surveys.deployments.*, surveys.links.*, surveys.audiences.*, surveys.triggers.* et surveys.variables.*.
Sensibilisation et réponses
surveys.invitations.*, surveys.campaigns.*, surveys.recipients.*, surveys.responses.*, exportations, rédaction et analyses.
Webhooks, importation et exportation
surveys.webhooks.*, surveys.imports.*, feedback.items.*, feedback.analytics.*, feedback.sources.* et feedback.analysis.*.
Flux sans connecteur
1
Créer et publier via General API
Les écritures déclarent les comportements d'autorisation, de risque, de confirmation, d'idempotence et d'exécution à vide.
2
Réceptionnez votre événement d'affaires
Envoyez un événement signé à un webhook entrant, par exemple une annulation de commande ou une étape d'intégration terminée.
3
Mappage dans Actions & Triggers
Choisir unOpsIQGénéralitésAPIdes mesures telles que l'émission d'une invitation au sondage ou la préparation d'un projet de campagne, puis la cartographie des champs à partir de la charge utile de déclenchement vérifiée.
4
S'abonner aux événements de sondage
Fournissez le sous-ensemble documenté du cycle de vie d'une enquête sécurisée* à votre point de terminaison avec signature, filtrage, réessai, journalisation et lecture autorisée.
Cible d’événement canonique
Le catalogue partagé couvrira l’état de publication des enquêtes et des déploiements, les décisions d’audience et de déclenchement, les invitations, ainsi que les événements d’affichage, de démarrage, de réponse partielle, de reprise, d’achèvement et d’abandon
✅
Un connecteur est optionnel et ajoute la découverte de plateforme réutilisable, l'identité vérifiée, les faits, les variables et l'énumération des destinataires. Général API plus Actions & Triggers/webhooks reste le chemin d'intégration complet pour les développeurs qui n'ont pas besoin d'un connecteur empaqueté.
Développeur
API REST
The OpsIQ REST API vous permet d'accéder par programmation à toutes les fonctionnalités de la plateforme.
Comment ça fonctionneAPI REST
Format de la demande
Envoyer la clé comme Authorization: Bearer opq_... ou X-OpsIQ-Key: opq_.... Utilisez un en-tête d'authentification, pas les deux.
API format de demande
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"
}
Actions communes
Le API est basé sur l'action: envoyer un action Chaque opération d'administrateur enregistrée JSON a une action nommée stable. POST {"action":"meta.actions"} (aucune clé requise) pour la liste faisant autorité, par installation, le contrat de demande, les métadonnées de risque et l'étendue. platform.routes.* Le pont reste uniquement pour les intégrations plus anciennes.
crm.contacts.list
Liste des contacts CRM (scope crm. read). Paramètres: q, statut, source, tag, score de lead, limite.
crm.contacts.upsert
Résoudre ou créer un contact (scope crm. write). Paramètres: email plus champs, tags, notes.
crm.deals.list
Liste des offres CRM (étendue crm. read). Paramètres: status, stage_id, company_id.
crm.activities.record
Enregistrer un cycle de vie/une activité commerciale pour un contact (scope crm. write) Paramètres: email ou contact_id, event, value, currency.
crm.conversions.record
Enregistrer une conversion (scope crm. write). Paramètres: contact_id ou email, type_conversion, valeur, devise.
crm.events.list
Interroge le flux d'événements CRM (scope crm. read). Paramètres: limit.
tickets.list
Liste des tickets (scope tickets. read). Paramètres: page, par_page, trier, ordre, statut, priorité, department_id, assigned_admin_id.
tickets.get
Un ticket et ses messages (scope tickets. read). Paramètres: id_ticket ou numéro_de_tiquet, include_messages, messages_limit.
tickets.reply
Poster une réponse à un ticket (scope tickets. write). Paramètres: numéro_de_ticket ou id_tiquet, corps, type_auteur, nom_acteur, interne.
tickets.update
Mettre à jour un ticket (scope tickets. write). Paramètres: numéro_de_ticket ou id_du_tiquet, statut, priorité, sujet, identifiant_departement, identifiants_administrateurs assignés.
tickets.open
Ouvre un ticket de support (scope tickets. write). Paramètres: customer_email, customer_name, sujet, corps, priorité.
tickets.bulk
Exécute une opération de file d'attente en bloc (scope tickets. write). Paramètres: operation, ids.
conversations.list
Liste des conversations de chat en direct (scope conversations. read). Paramètres: page, per_page, status, assigned_admin_id, client_email, search.
conversations.get
Une conversation et ses messages (scope conversations. read). Paramètres: conversation_id ou thread_key, include_messages.
Envoyer un message dans une conversation (scope conversations. write). Paramètres: conversation_id, message, sender_type, internal.
conversations.update
Attribuer, re-status ou re-titre une conversation (scope conversations. write). Paramètres: conversation_id, status, assigned_admin_id.
Connecteurs. liste /. get /, test
Découvrez quels connecteurs sont installés, ce que chacun peut faire et si ses informations d'identification fonctionnent (scope connectors. read).
automations.actions.list
Les actions que votre générateur d'actions exécutera (scope automations. read).
automations.triggers.list
Ce qui se déclenche et dans quelles conditions (scope automations. read).
automations.runs.list
Historique d'exécution pour le débogage d'une intégration (scope automations. read). Paramètres: status, action_key.
departments.list
Les départements vers lesquels vous pouvez acheminer un ticket (étendue departments. read).
notifications.list
Notifications pour un opérateur (scope notifications. read). Paramètres: admin_id (requis), unread_only.
analytics.export
Une section de rapport sous la forme CSV (étendue analytics. read). Paramètres: section, preset, from, to. Appelez analytics. sections. list pour obtenir des valeurs valides.
Site_intelligence. sites. list /. reports. liste
Sites surveillés et leurs rapports SEO (scope site_intelligence. read).
files.get
Un lien de téléchargement signé et éphémère pour une pièce jointe (scope files. read). Paramètres: reference, ttl.
security.check
Demander si un IP Une adresse IP ou un e-mail est bloqué ou suspect ici (étendue security.read).IP Le pare-feu, la liste de blocage des spams et le verdict de l'IA de sécurité mis en cache. ip, email.
security.report
Enregistré comme un événement de sécurité, classifié immédiatement par l'IA de sécurité et les administrateurs sont alertés sur les verdicts à haut risque. Paramètres: ip, email, type, raison, source.
Ajouter / Modifier la liste de blocage
Gérer les règles de spam que le pipeline des tickets applique (scope security. write / security. read). Même stockage que la page Tickets "Bloquer l'expéditeur" contrôle. Paramètres: type (email, domaine, ip), valeur, raison, expires_hours.
💡
Il renvoie toutes les actions disponibles sur votre installation avec la portée dont chacune a besoin, de sorte que vous n'avez jamais à deviner ou coder cette liste.
Pagination, filtrage et tri
Chaque action de liste utilise les mêmes paramètres, vous ne les apprenez donc qu'une seule fois.
Page / par page
Numéro de page commençant par 1, et la taille de la page. 50, maximum 200. limite et décalage sont également acceptés si vous les préférez.
tri / ordre
Champ à trier, et asc ou desc (par défaut desc). Chaque action accepte un ensemble fixe de champs de tri. Tout le reste est ignoré plutôt que d'être considéré comme une erreur.
filters
Envoyer des filtres en tant qu'objet, ou passer un filtre comme paramètre de niveau supérieur. Les filtres inconnus sont ignorés.
Ce qui revient
Pour chaque page, utilisez les paramètres items, page, per_page, count, total et has_more.
Aucune clé n'a été envoyée, ou la clé est incorrecte ou expirée. HTTP 401.
missing_scope
La clé est valide mais n'a pas la portée nécessaire à cette action. HTTP 403.
Clé en lecture seule / action_restricted
La clé est en lecture seule, ou cette action n'est pas dans sa liste d'autorisations. HTTP 403.
unknown_action
Aucune action. Appeler meta. actions pour la liste courante. HTTP 400.
Paramètre manquant / paramètre invalide
Un paramètre requis est absent ou une valeur n'est pas acceptée. HTTP 400.
not_found
L'enregistrement n'existe pas, ou il ne se trouve pas dans l'espace de travail que cette clé peut voir. 404.
rate_limited
La limite horaire de cette clé est épuisée. HTTP 429.
server_error
Quelque chose a échoué de notre côté. Le request_id identifie la tentative si vous devez le signaler. HTTP 500.
Retestages en toute sécurité
Si un temps d'écriture expire, vous ne pouvez pas savoir s'il a atterri. idempotency_key et une répétition du même appel retourne le résultat original au lieu de faire le travail deux fois.
Écrire l'idémpotent
{
"action": "tickets.reply",
"ticket_id": 4192,
"body": "Thanks, that is now fixed.",
"idempotency_key": "your-unique-id-for-this-attempt"
}
Combien de temps cela dure
Une clé est mémorisée pour 24 heures contre la même action et API clé.
Ce que vous obtenez en retour
La réponse originale, plus idempotent_replay: true pour que vous puissiez dire qu'il s'agissait d'une reprise.
Les échecs restent réessayables
Si un appel a échoué, le renvoyer avec la même clé l'exécute à nouveau, ce qui est ce que vous voulez.
Lire
Les lectures ignorent la clé. La répétition d'une lecture est inoffensive.
Testez sans rien changer
Ajouter dry_run: true Votre clé, vos champs d'application et vos paramètres sont tous vérifiés exactement comme d'habitude, puis l'appel s'arrête avant que quoi que ce soit ne soit créé ou modifié.
Essai: vérification des informations d'identification et de la charge utile en toute sécurité
{
"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."
}
✅
Utilisez dry_run pendant la construction, c'est le moyen le plus rapide de confirmer qu'une clé a les bons scopes et que votre charge utile est correctement formée, sans créer des données de test à nettoyer.
Limites de taux
Limite par clé
Une limite horaire configurable par API clé (par défaut 1000 Définissez-le par touche sous Paramètres, puis cliquez sur API Les clés.
Lorsque dépassé
HTTP 429 avec le code rate_limited, plus un en-tête Retry-After vous indiquant combien de secondes attendre. La limite est réinitialisée au début de l'heure d'horloge suivante.
Savoir où vous en êtes
Chaque réponse porte les valeurs X-RateLimit-Limit, X-Remaining et X-Resets (un horodatage Unix) Regardez Remaining et ralentissez avant de vous épuiser plutôt que d'attendre d'être refusé.
En disant 429 à partir 401
A 429 Cela signifie attendre et réessayer. A 401 signifie que la clé elle-même est incorrecte ou expirée, donc réessayer n'aidera pas tant que vous ne l'aurez pas corrigée.
Garde de brute-force pré-authentification
Essais répétés d'un seul coupIPLes clés valides ne font jamais ce voyage.
Meilleures pratiques
Reculez lorsque le reste est faible, et honorez Retry-After après un 429 au lieu de réessayer immédiatement.
Versions et stabilité
Version actuelle
v1. Chaque réponse porte X-OpsIQ-API- Version et X-OpsIQ-API-Situation pour que vous puissiez confirmer ce à quoi vous parlez.
Comment vous serez averti
Si une version est retirée, les réponses reçoivent des en-têtes standard Deprecation et Sunset, et meta. actions rapporte deprecated et sunset_at Vérifiez ces éléments dans votre monitoring et vous ne serez jamais surpris.
Ce qui ne changera pas
Les noms des actions existantes, leurs paramètres et leurs codes d'erreur. De nouvelles actions et de nouveaux champs optionnels peuvent être ajoutés à tout moment. Ignorez donc les champs que vous ne reconnaissez pas plutôt que de les échouer.
Une intégration complète, du début à la fin
C’est la boucle complète : trouver un travail, le lire, agir sur celui-ci et confirmer ce que vous avez fait.
Flux de travail complet des tickets sur le 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}
💡
Tout ce qui précède fonctionne de la même manière pour les conversations : conversations. list, conversations,get, conversation. send et conversations-update suivent le même modèle, les mêmes paramètres et la même forme de réponse.
Chaque action, avec la portée dont elle a besoin
Cette liste est générée à partir du catalogue en cours, elle correspond donc toujours à la version que vous utilisez. meta.actions Retourne les mêmes informations que JSON.
✅
1745 named actions: 588 reads, 1157 writes and 62 scopes. Every registered administrator JSON operation has a stable named action. OpenAPI: /api/v1/openapi.php. Postman: /api/v1/postman.php. Contract quality: declared_dynamic: 391; explicit: 92; route_inferred: 1146; source_inferred: 116.
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.
clients (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.
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
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
statut (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.
enquêtes (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
Write. Scope: tickets.write, admin. Contract: source_inferred. Update a ticket status, priority, subject, department or assignment Retry-safe with idempotency_key.
Write. Scope: writing. Contract: source_inferred. Writing Analyze Retry-safe with idempotency_key.
writing.compose
Write. Scope: writing. Contract: source_inferred. Writing Compose Retry-safe with idempotency_key.
writing.reply
Write. Scope: writing. Contract: source_inferred. Writing Reply Retry-safe with idempotency_key.
writing.rewrite
Write. Scope: writing. Contract: source_inferred. Writing Rewrite Retry-safe with idempotency_key.
writing.summarize
Write. Scope: writing. Contract: source_inferred. Writing Summarize Retry-safe with idempotency_key.
writing.translate
Write. Scope: writing. Contract: source_inferred. Writing Translate Retry-safe with idempotency_key.
OpenAPI et Postman sont-ils disponibles?+
Oui. OpenAPI généré 3.0 le document est à /api/v1/openapi.php, la collection Postman générée est à /api/v1/postman.php, et les docs développeurs lisibles par l'homme sont à /api/docs/.
Comment puis-je travailler avec plus d'un espace de travail?+
Envoyez site_key dans le corps de la requête pour choisir un espace de travail. Une clé émise pour un espace reste épinglée à celui-ci. Une clef avec contexte admin peut sélectionner n'importe quel espace qu'elle est autorisée à voir, et elle est refusée pour tous ceux qui ne l'est pas.
Quelles actions peut appeler une touche en lecture seule?+
Toute action marquée comme une lecture. Définissez le mode des permissions sur la clé à read_only et toute écriture est refusée avec read_Only_Key, de sorte qu'une intégration de rapport ne peut rien changer même par erreur.
Pourquoi ai-je reçu not_found pour quelque chose que je peux voir dans l'administration?+
Les enregistrements dans les autres espaces de travail renvoient not_found plutôt qu'une erreur d'autorisation, donc le API ne confirme jamais si quelque chose existe ailleurs.
Développeur
Sécurité API
Un contrat de sécurité pour chaque connecteur et intégration: demanderOpsIQce qu'il sait sur unIPou expéditeur, et de nourrir l'abus que votre propre système voit.
OpsIQ Le monde se défend déjà : IP Le pare-feu bloque les attaquants, le pipeline de tickets filtre le spam et l'IA de sécurité classe les contrevenants et propose des règles de blocage. API Une plateforme de facturation, un portail client ou une application personnalisée peut vérifier un visiteur avant de lui faire confiance et rapporter ce qu'elle a observé afin que l'ensemble de l'installation apprenne à partir de chaque surface.
Ce que vous pouvez faire
Vérifiez avant de faire confiance
security. check répond avec l'état du pare-feu, toute règle de spam correspondant à l'expéditeur et le verdict d'IA mis en cache pour IP. Un appel, une opinion consolidée.
Signaler ce que vous avez vu
security.report enregistre l'observation comme un événement de sécurité, fait classer le IP Les rapports répétés sont regroupés en incidents, exactement comme les attaques : ils ne peuvent pas être traités séparément. OpsIQ Il voit directement.
Règles de partage du spam
security. blocklist. add et security. bloklist. list lisent et écrivent les mêmes règles de spam que la page Tickets, donc un expéditeur bloqué dans un système est bloqué partout.
Nécessaire pour security. check et security. blocklist. list. Sécurisé pour donner une intégration de rapports.
security.write
Nécessaire pour security. report et security. blocklist. add Donnez-le uniquement aux systèmes dans lesquels vous voulez alimenter des règles et rapports.
Rien n'est détruit silencieusement
Un expéditeur bloqué se retrouve toujours dans la vue Spam où le ticket peut être lu et restauré.
La plateforme se protège elle-même
Le serveur lui-même IP Ces adresses ne peuvent jamais être bloquées ou signalées via ce. API, de sorte qu'une intégration mal configurée ne peut pas faire tomber la plate-forme.
💡
Créez une clé sous Integrations, puis API Keys et donnez-lui uniquement les champs de sécurité dont elle a besoin. Le contrat complet des requêtes pour chaque action se trouve dans meta. actions et le document OpenAPI.
Mes connecteurs existants l'utilisent-ils automatiquement?+
La synchronisation sortante est déjà automatique: lorsque vous bloquez uneIP, les plates-formes connectées sont racontées par la synchronisation de sécurité du connecteur.APIest la moitié entrante. Pointez votre connecteur ou code personnalisé à ces quatre actions avec une clé portant les champs de sécurité.
Où se trouvent les règles antispam ?+
Le contrôle de blocage d'expéditeur sur la page Tickets, l'IA du spam dans les Paramètres et ce API fonctionnent tous contre la même liste de blocages, donc il y a exactement un endroit où regarder.
Développeur
Événements API
Envoyez des événements personnalisés depuis votre serveur ou site Web vers OpsIQ pour les analyses, les expériences, le déclenchement de CRM et les conditions webhook.
Côté serveur, enregistrez les activités et conversions par rapport à un contact via l'action API. Utiliser crm.activities.record pour le cycle de vie/l ' activité commerciale et crm.conversions.record Il n'y a pas de conversions. events.send Le récepteur de l'événement CRM entrant vit à /v1/inbound.php?t=<token> Pour les systèmes tiers qui poussent des événements.
"pricing. plan_selected" et non pas "user_action".
Développeur
Comment les données circulent à travers OpsIQ
Comprendre le flux de données vous aide à déboguer les intégrations et à optimiser les performances.
Comment ça fonctionneFlux de données
Flux de données entrant
1
Widget balise
The JavaScript Le widget envoie des pages vues, clics et messages de chat à. /beacon.php.
2
Ingestion d'événements
Événements stockés dans opsiq_events avec site_key, type d'événement, client et propriétés.
3
Assemblée de session
Le constructeur de sessions regroupe les pages vues en sessions (via cron).
4
Résolution de l'identité
Une fois identifiés, les dossiers anonymes sont liés au profil du client.
5
Connecteur de synchronisation
Les connecteurs extraient des données de plateformes externes et les stockent dans le cache du connecteur.
6
Contexte de l ' IA
L'IA assemble le contexte à partir de l'historique des visiteurs, du profil client, des données de connecteur, de la base de connaissances et de l’invite.
Flux de données sortantes
1
Incendies d ' événements
Les événements internes se déclenchent (ticket. created, chat. message, order. completed).
2
File d'attente de tâches
Événement placé dans la file d'attente de tâches asynchrones.
3
Envoi de Webhook
Le répartiteur signe le message et l’envoie à tous les points de terminaison abonnés.
4
Réessayer en cas d'échec
Les livraisons échouées ont été réessayées avec un recul exponentiel.
Paramètres
Référence des paramètres
Tout ce qui est indiqué ci-dessous s'applique à l'espace de travail dans lequel vous êtes, afin qu'un seul compte puisse gérer plusieurs marques avec des identités, des comportements de chat et des règles de conservation différents.
Trouver un cadre
Il y a environ six cents contrôles individuels dans les paramètres, répartis sur onze onglets regroupés sous quatre menus. Vous n'êtes pas censé parcourir pour eux.
Paramètres de recherche (Ctrl + K)
Appuyez sur Ctrl + K, ou Commande + K sur un Mac, n'importe où dans la page Paramètres. Tapez des mots simples et appuyez sur Entrée pour accéder directement au contrôle. La recherche tolère les petites fautes de frappe et comprend les mots connexes, donc le planificateur trouve Cron et la confidentialité trouve les contrôles de suivi.
Espace de travail et plan
Général et Licence.
IA et support client
Assistant d'IA, Chat client, OpsIQ Portail de rédaction et de support.
Données et gouvernance
Suivi et confidentialité, autorisations et sécurité.
Système
Configuration de Cron (auto-hébergé uniquement) et Danger Zone.
Sauvegarde
Chaque onglet est sauvegardé séparément avec son propre bouton Sauvegarder. Client Chat et OpsIQ Writing épinglent leur onglet à l'écran, les modifications ne sont pas transférées entre les onglets.
Liens profonds
L'onglet actif est écrit dans l'adresse de la page, donc un onglet peut être mis en favoris ou envoyé à un collègue.
Général: Identité d'entreprise
La carte la plus importante de la page. L’IA lit ces valeurs à chaque réponse, chaque rapport et chaque briefing quotidien.
Nom de l'entreprise
Utilisé dans les rapports d'IA, les briefings quotidiens et le libellé destiné aux clients.
Industrie des affaires
Adapte l’analyse IA, le scoring des prospects, les briefings et les modèles d’enquête. Choisissez parmi hébergement web, e-commerce, SaaS, immobilier, agence, conseil, santé, éducation, finance ou entreprise générale.
Langue du système
La langue affichée à tous ceux qui n'ont pas choisi la leur, chaque agent peut l'annuler dans son profil.
Utiliser la langue du navigateur
Une fois que quelqu'un a choisi une langue, son choix l'emporte et cela ne le remplace jamais. This never overrides it.
Fuseau horaire du système
La zone dans laquelle l'ensemble du système fonctionne: les dates, les rapports, les plannings et le cron en arrière-plan. Utilisez votre fuseau horaire d'opérations, pas vos clients.
Général: GeoIP et suivi
Chemin de la base de données GeoIP2
Détection automatique au premier chargement sur cPanel, Plesk, DirectAdmin, Cloudways, Docker et Linux ou Windows ordinaire. Ajoutez GeoLite2-ASN. mmdb dans le même dossier que celui du fournisseur d'accès Internet du visiteur.
Mode de source géographique
GeoLite2 uniquement, Geo Lite 2 avec une Cloudflare fallback, or Cloudflare only.Cloudflare Les modes nécessitent que le site soit proxy via.Cloudflare, avec les en-têtes de localisation des visiteurs activés pour le détail de la ville et de la région.
Délai d'attente de la session (s)
L'inactivité avant la fin d'une session de visiteur est considérée comme terminée. Par défaut 14400, soit quatre heures.
Intervalle de rafraîchissement en direct (s)
Fréquence de rafraîchissement du flux en direct. Par défaut 30 secondes.
Seuil actif (min)
Durée pendant laquelle un visiteur est considéré comme en direct après le chargement de sa dernière page. Par défaut, 2 minutes.
Conservation des données (jours)
Supprime les enregistrements collectés et générés après cette date : analyse, chat, tickets, commentaires, transactions, télémétrie d’IA, journaux d’intégration et activité CRM. 0 conserve tout pour toujours : paramètres, contenu créé et reçus de consentement ne sont jamais supprimés.
Lorsqu'un chat est supprimé
Choisissez la quantité de conversation supprimée qui reste enregistrée : le disque complet, le disque sans conversation ou la partition seulement. La suppression cache toujours le chat dans la boîte de réception et l'historique du visiteur. Conservation programmée et Oubliez le visiteur toujours effacer complètement quoi que ce soit.
Suivre le trafic des bots
Laissez-le ; il gonfle le nombre de visiteurs et fausse chaque rapport.
Popup de sondage de retour activé
Séparé des sondages de chat sous Chat client, Flux d'assistance. Separate from the chat surveys under Client Chat, Support Flow.
Général: Fonctionnalités AI
Tous sont activés par défaut et enregistrés par espace de travail.
AI Triage sur les billets
Classe chaque ticket par catégorie, priorité et sentiment, et écrit un résumé du fil en haut du ticket.
Résumé du hover AI Triage
Affiche les balises de triage et le résumé dans une info-bulle lorsqu’un agent passe la souris sur une ligne de la liste des tickets.
Copilot (compositeur)
Ajout des boutons Brouillon de réponse IA, Plus chaleureux, Plus court, Plus formel et Apologie sous la zone de réponse du ticket.
Ask-OpsIQ Copilote
Le copilote flottant sur chaque page d'administration sait quel client, facture ou ticket est ouvert.
Matin brief
Lors de la première ouverture du jour, le copilote présente les tickets urgents, les réponses en retard et les chats en attente.
Général: argent, image de marque, sauvegarde
OpsIQ monnaie de base
Chaque montant total dans l'administration est converti en cette devise pour affichage. Les connecteurs stockent leur propre devise source; définissez-la par connecteur.
Taux de FX auto-synchronisés
Actualise les taux toutes les six heures à partir d'un flux public gratuit sans clé API. Vous pouvez ajouter des taux manuels qui remplacent le flux. Avec la synchronisation automatique désactivée, les devises sans un taux manuel ne sont pas converties.
Activer les fonctionnalités Commerce et Facturation
Si vous l'activez, la page Ventes et conversions, les cartes de revenu du tableau de bord et le flux Live Intelligence s'affichent. Lorsqu'elle est désactivée, toutes les surfaces de prix sont masquées et la page Vente quitte le menu.
Vocabulaire du commerce
Enseigne à OpsIQ votre formulation: si vous faites des renouvellements, le mot pour renouveler, ce que vous vendez et comment les acheteurs sont appelés.
Branding et logos
Deux téléchargements, un pour les arrière-plans clairs (barre latérale d'administration) et l'autre pour les sombres (page de connexion). PNG, JPG, WebP ou SVG jusqu'à 3 MB.
Agent de renseignements sur le site, autoriser les cibles SSH privées
L'agent SEO d'implémentation automatique se connecte sur SSH. Les adresses privées, de boucle et réservées sont bloquées par défaut comme mesure anti-SSRF. Activez uniquement pour les installations autohébergées qui doivent atteindre un serveur local.
OpsIQ Sauvegarde / Restauration
Exporte tous les paramètres et OpsIQ-propriétaire de la table plus les fichiers téléchargés.OpsIQ Configuration et enregistrements seulement; il ne touche jamais les clients, factures, tickets, services, domaines, commandes ou transactions.
⚠️
Prenez une sauvegarde avant d'utiliser quoi que ce soit dans Danger Zone. La sauvegardes est dans General et les actions de suppression sont dans Dangers Zone, il est donc facile d'atteindre le bouton de supprimer sans avoir exporté au préalable.
Paramètres
Paramètres: Sécurité et confidentialité
Protection de la connexion d'administrateur, des comptes de votre personnel et des données collectées par OpsIQ La connexion du client au portail de support est configurée séparément.
Protection de connexion
Google reCAPTCHA
Arrête les bots et le bourrage d'informations d'identification lors de la connexion administrateur. Choisissez v3 (invisible, avec score) ou v2 (case à cocher), définissez le seuil de score v3 et fournissez le site et les clés secrètes. Ces mêmes clés sont réutilisées par le formulaire de demande du portail d'assistance.
Verrouillage automatique après échec de connexion
Bloque une adresse après un certain nombre d'échecs dans une fenêtre, pendant un certain numéro d'heures. Vous pouvez personnaliser le message de page verrouillée et afficher une petite distraction sur l'écran d'attente.
Login Durcissement
Politique de mot de passe avec une longueur minimale, rejet des mots de passe trouvés dans les violations connues, verrouillage par compte contre le bourrage d'informations d'identification, deux facteurs obligatoires pour chaque administrateur, saisie à nouveau du mot de passer avant les actions dangereuses et alertes de connexion sur un nouvel appareil.
Authentification unique (OIDC)
Nécessite l'émetteur URL, l'ID client et le secret du client. Les domaines à approvisionnement automatique, un par ligne, créent des utilisateurs automatiquement lors de la première connexion.
Authentification unique (SSO)SAML 2.0)
Pour les fournisseurs qui parlent SAML. OpsIQ Fournit la réponse ACS.URL Vous fournissez l'ID de l'entité IdP, vous connectez URL, optional sign-out URL et X.509 Les champs d'attribut E-mail et Nom ne sont nécessaires que pour les noms d’attributi non standard.
Provisionnement SCIM
Création, mise à jour et désactivation de.OpsIQ des comptes.OpsIQ Fournit le. SCIM Base URL; vous générez des jetons étiquetés ici afin qu'un peut être révoqué sans casser le reste.
Menaces, blocage et collecte
Liste d'autorisations de sortie
Restreint les hôtes externes que ce connecteur d'espace de travail peut appeler. Compagnon du contrôle cible SSH dans General.
Notation des menaces et blocage automatique
Bloque un visiteur lorsque son score de menace dépasse votre seuil. 0 le désactive. Suivez la page Aperçu de la sécurité pendant une semaine avant de choisir un numéro.
Bloquer la page Message
Le message qu'un visiteur bloqué voit, en texte brut ou votre propre écran de blocage personnalisé HTML.
Core Web Vitals de vrais visiteurs
Mesure LCP, INP et CLS à partir de sessions réelles.
Distribution d'événements par lots, sécurisée
Les événements personnalisés sont mis en file d'attente dans le navigateur et diffusés par lots avec des réessais, ce qui réduit les pertes sur les connexions mobiles médiocres.
Balises de suivi signées
Les widgets intégrés réels contiennent un jeton cryptographique rotatif afin que les données de suivi falsifiées puissent être rejetées. Désactivé par défaut. L'activation modifie la façon dont les intégrations s'authentifient, donc testez d'abord.
Alertes de sécurité
Désactivé par défaut, la détection et le blocage s'exécutent indépendamment. Cette carte contrôle si vous êtes informé de l'aide apportée par l'IA et dans quelle mesure.
Activer les alertes de sécurité
Interrupteur principal pour cette carte.
Seuil de vague d’échecs de connexion
Combien de connexions ayant échoué sur une courte période comptent comme une vague qui mérite d'être signalée.
IP Intelligence de réputation
Ajoute un score de menace pour les visiteurs apparaissant dans des flux d'abus publics.
Montre du site
Vérifications horaires de disponibilité et d'expiration TLS, alerte avant l'expinction d'un certificat.
Analyste de sécurité IA et résumés d'incidents IA
Ajoute un verdict explicable à une activité suspecte et regroupe les attaques connexes en un seul incident lisible plutôt qu'en un flux d'événements.
Pilote automatique de politique
Il agit de lui-même, transformant ce qu'il apprend d'un incident en une règle proposée ou appliquée. Laissez tomber jusqu'à ce que vous ayez examiné ses propositions et acceptez avec eux.
Résumé quotidien de sécurité et conseiller hebdomadaire en posture
Un résumé quotidien sur la page Aperçu de sécurité et une liste de contrôle hebdomadaire montrant ce qui est protégé et ce qui reste ouvert.
Expiration automatique des propositions obsolètes
Une règle de bloc proposée sur laquelle vous n'avez jamais agi expire d'elle-même au lieu de s'accumuler.
Replay de la session DOM
Activer la lecture de session DOM
Enregistre les sessions des visiteurs pour la lecture. Lorsque désactivé, la bibliothèque de replay n'est jamais chargée, donc il n'y a pas de coût à le laisser désactiver. Les enregistrements sont échantillonnés et masqués en matière de confidentialité, et sont vus sur la page Session Replay sous Analytics.
Quelle part des sessions enregistrer, combien de temps un seul enregistrement peut durer et combien d'enregistrements sont conservés.
⚠️
Gardez le taux d'échantillonnage et la rétention aussi bas que possible, afin de répondre à votre question, et divulguez-le dans votre avis de confidentialité.
Paramètres
Paramètres: Suivi et confidentialité
Ce que OpsIQ peut collecter, et combien de temps chaque type d'enregistrement survit.
Exclusions
Gammes exclues IPs et CIDR
Adresses jamais suivies, une par ligne, adresses exactes ou plages de CIDR. La façon la plus propre d'exclure votre équipe de vos analyses, car elle couvre tous les utilisateurs à cette adresse plutôt que seulement les administrateurs connectés.
Chemin d'accès URL exclus
Les modèles de page ne sont jamais suivis, un par ligne, les caractères génériques avec un astérisque. Par exemple /admin/* garde tout le back office hors du journal des visiteurs.
Politique de conservation des données
Séparez-le du paramètre de conservation des données global dans Général et de la purge de zone dangereuse.
Journaux d'interaction avec l'IA
La télémétrie de confiance conserve des aperçus courts de la requête et de la réponse. Par défaut, 90 jours. Cette option contient le plus de texte client, alors raccourcissez-le en premier lorsque vous resserrez les paramètres de confidentialité.
Événements d'utilisation de l'IA
Compte par jeton d'appel pour le rapport de coûts. Par défaut 90 jours. Numéros uniquement, pas de contenu du message.
Piste d'audit des actions
Le journal des actions et de la sécurité à l'évidence d'altération. Par défaut 365 jours.
Diagnostic
Enregistrements de l'état du système. Par défaut 30 jours.
Questions sans réponse
Les groupes de questions auxquelles l'IA n'a pas pu répondre. Par défaut 90 jours, passez-les en revue sur la page Questions manquées par l'AI avant qu'elles ne soient expirées.
Chiens de garde et exportations
Alertes d'anomalie métrique
Comparaison quotidienne de la journée d'hier avec la base récente, en vous avertissant lorsqu'une mesure dépasse votre seuil. Par défaut 35 pour cent.
Exportation d'entrepôt
Des vidages nocturnes des sessions, visiteurs, pages vues et tables associées pour votre propre pile de BI, dans un format que vous choisissez, conservés pendant un certain nombre de jours.
Paramètres
Paramètres: Admin AI Assistant
L'assistant flottant que votre personnel utilise dans l'administration, avec un accès en lecture directe aux clients, factures, tickets, serveurs et journaux cron. Un assistant différent de celui qui est face au client sous Client Chat.
Activer le widget d'IA OpsIQ
Affiche le bouton assistant sur chaque page d'administration. Off le cache pour tout le monde.
Mise en page et comportement
Position de coin, largeur du panneau (320 to 600 px), hauteur maximale (400 to 900 px), rayon d'angle (0to 24), la taille de police, et un flou en verre dépoli derrière le panneau.
Afficher les Quick Chips
Boutons de raccourci en un clic sous l'en-tête. La façon la plus rapide pour la plupart des membres du personnel.
Afficher les informations du modèle
Affiche le modèle qui a répondu et combien de temps cela a pris. Utile lors du réglage des coûts, bruit pour une utilisation quotidienne.
Portail d'accès par administrateur
Affiche l'assistant uniquement à un administrateur connecté dont le nom d'utilisateur et l'adresse e-mail correspondent tous deux à un agent OpsIQ affecté à cet espace de travail. Utilisez le bouton Vérifier mon accès avant d'activer ou vous pouvez verrouiller votre propre équipe.
Personne de l'IA
Nom d'affichage, slogan de l'en-tête et message de bienvenue personnalisé affiché à l'ouverture du panneau.
Puces intelligentes à action rapide
Modifiez l'étiquette et l'invite sous-jacente pour chaque raccourci, ajoutez la vôtre ou réinitialisez les valeurs par défaut. L'étiquettes est ce que le personnel voit, l'Invite est ce qu'il reçoit.
Couleurs et formes
Forme de puce (pilule, arrondi, carré), couleurs de puces, thème de carte et forme du lanceur (rond, squircle, carrée), avec un aperçu en direct.
Mémoire de conversation
L'assistant se souvient de l'historique de chaque personne à travers les sessions du navigateur, jusqu'aux messages 120, stockés dans votre propre base de données.
Paramètres
Paramètres: Chat client
Le widget de chat que vos clients utilisent et la plus grande zone des Paramètres Six sous-onglets, avec le commutateur principal et Enregistrer épinglés en haut de l'onglet.
Parcourez les sous-onglets dans l'ordre sur une nouvelle installation: Identité et copie, Apparence, Comportement, Flux de support, Formation aux connaissances.
Identité et copie
Identité de marque
Nom du widget, slogan, nom de l’IA, nom utilisé pour les notifications système et d’inactivité, ainsi que la manière dont apparaissent les noms des agents.
Salutation dans le chat
Deux salutations, une pour tous les visiteurs et une autre pour ceux qui ont été identifiés. Une question déclenche plus de conversations qu’une déclaration.
Découpe-poupée
Le message flottant avant l’ouverture du chat, avec son propre nom, sa taille de police et ses couleurs. L’IA peut écrire les teasers, avec des contrôles pour le nombre à générer, combien d’afficher par visite et l’espace entre eux.
Invites et Handoff
Le script complet : demander un nom et une adresse e-mail, confirmations, demande d’un humain, aucun agent disponible, ticket créé ou annulé, remise en attente… Environ deux douzaines de lignes individuelles dans un panneau rétractable.
Avis d'état et d'inactivité
Trois messages visibles par le client : l’agent ferme la conversation, le visiteur est passé au silence et l’ agent remet les clés à l’IA.
Compositeur et Suggestions
Trois bonnes suggestions détournent plus de tickets qu’une page d’articles, et vous pouvez les utiliser pour créer des questions d’ouverture.
Lanceur, Icône et Avatars
Icône du lanceur, une icône différente en option lorsqu'elle est ouverte, taille du lanceurs et images pour l'agent humain et l'IA.
Apparence
Thème et verre
Mode Thème, un préréglage de couleur premium, intensité et opacité du flou, ainsi que des bascules pour les animations, les lignes de séparation, le masquage de la ligne d'état, le masquer la carte de boîte de message et le masque de bouton de fermeture.
Couleurs principales
Le lanceur, l'en-tête, le panneau d'aide, les liens, les boutons, les notifications système et le composeur, chacun avec une couleur de début et de fin pour les dégradés. Utiliser l'option par défaut du verre ignore ces éléments et conserve la finition transparente.
Panneau, bulles et copeaux
Une trentaine de sélecteurs couvrant le panneau, la bordure, le texte, la zone de saisie et chaque type de bulle (visiteur, IA, agent, saisie, système) ainsi que les puces de suggestion et leur état de survol.
Mise en page et forme
La largeur et la hauteur du panneau, le rayon des coins, la taille de police, la position de l'écran, la forme du lanceur, le style de bulle et si les avatars s'affichent.
Comportement
L'IA répond automatiquement
Désactivé signifie que chaque message attend un humain pour répondre.
Suivi humain et double-texting naturel
Un suivi doux lorsqu'un visiteur se tait, et un deuxième message court optionnel comme une personne en enverrait un. Réglé avec le nombre maximum de suivis par silence, le premier délai, le multiplicateur plus tard, la fenêtre de présence et la fenêtre de séquence maximale.
Réponses à la machine à écrire et rythme de réponse
Si les réponses sont tapées mot par mot, et à quelle vitesse l'assistant répond, par préréglage ou votre propre délai minimum et maximum en millisecondes. Un petit délai est plus humain qu'une réponse instantanée.
Traduction en direct
Chaque agent lit et écrit dans sa propre langue tandis que le visiteur lit la sienne.
Retour à l'IA après que l'agent est inactif
Minutes d'inactivité de l'agent avant que l'IA ne reprend la conversation.
Ouvrir automatiquement le chat
Secondes avant que le widget ne s'ouvre.0Intrusive sur mobile; quittez à 18h00.0à moins d ' avoir été testé.
Des réponses plus intelligentes
Planifier à l’avance pour des réponses en une seule fois, réfléchir en profondeur, un modèle séparé optionnel pour les réponses de l’agent, montrer le raisonnement aux visiteurs, tolérer les fautes d’orthographe, la mémoire de longue conversation, restreindre l’assistant à votre entreprise seulement, les prix dans la devise du visiteur et comment apparaissent les liens.
Économie de coûts
Saute la recherche de connaissances pour les salutations telles que bonjour et merci, et limite la réponse la plus longue en jetons.
Langues
Quelles langues le widget prend en charge et comment il choisit une pour un visiteur.
Réponses du compte client
Les réponses sont fournies par le compte d'un client connecté, consultées en direct si nécessaire et chargées uniquement au besoin. En lecture seule dans tous les cas. Le chargement lorsque nécessaire réduit sensiblement les coûts.
Remboursements
Demandes de remboursement assisté où l’assistant recueille les détails et remet le dossier à une personne.
Conversation et Widget
Conserver les conversations passées, continuer un chat sur vos sites connectés, fenêtre glissante, demander aux invités de recevoir un e-mail et laisser votre équipe transformer un chat en ticket.
Caractéristiques du widget
Sélecteur d’émoticônes, pièces jointes avec un mode optionnel de collage uniquement, compréhension des images par IA, icônes intégrées, microphone, bouton « Parlez à l’agent », sons du visiteur, aperçu des pièces attachées, bouton d’appel vocal et isolation de la session.
Boîte de réception, notifications et fenêtre contextuelle d'accueil
La fenêtre contextuelle de bienvenue du visiteur, ainsi que vos alertes d’agents : sons de boîte de réception, notifications sur le bureau, murmure sonore, si les murmures privés bipent et l’intervalle de sondage de la boîte à lettres.
Soutien du flux
Délivrance de l ' aide humaine
Comment les demandes d’une personne sont attribuées, le nombre de secondes qu’un agent doit répondre, si un refus renvoie le chat à l’IA et si l’AI reprend lorsque le délai expire. Configurez ceci avant la mise en ligne ou un visiteur qui demande une personne attend simplement.
Heures de travail
Horaires d'ouverture, fuseau horaire et le message de fermeture. En dehors de ces heures l'IA ne proposera pas un humain. Un calendrier distinct des heures d'affaires du billet sous OpsIQ Writing.
Réponse lorsque l'IA est désactivée
La première réponse à un nouveau message, la réponse quand quelqu'un est déjà dans la file d'attente et le temps avant de répéter.
Formulaire hors ligne
Affiche un formulaire de contact au lieu du chat.
Recherche de tickets et notifications du département
Connaissance du ticket d'IA, de sorte qu'un visiteur citant un numéro de ticket obtient son statut réel et les services vers lesquels l'IA peut être acheminée. Un panneau intégré affiche les destinataires réels pour chaque service, résolus de la même manière que le notifiant les résout.
Centre d'aide dans le widget de chat
Permet aux visiteurs de parcourir les articles publiés sans quitter le chat. Vous choisissez l’emplacement du point d’entrée, l’étiquette et l’icône de la barre inférieure, ainsi que si vous souhaitez proposer un lien vers le centre d’aide complet.
Évaluation de la conversation
Notation en étoiles déclenchée lorsqu’un agent ferme le chat, à la fin d’une transmission ou après une période d’inactivité que vous définissez. Choisissez un ou deux déclencheurs, pas tous.
Sondage post-chat
Un court sondage lorsque le visiteur ferme la discussion, avec votre question, le délai, la règle de synchronisation et un plafond par visite. Les visiteurs peuvent également envoyer ou télécharger la transcription.
Sondage par e-mail post-chat
Un sondage de suivi par e-mail après la fin de la conversation, éventuellement dans la langue du visiteur, avec contrôle sur le délai, l'objet, l’intro, la question, les deux étiquettes de bouton et la ligne de remerciement.
Avis sur les réponses
Les pouces vers le haut et les pouces en bas sur chaque réponse d'IA, alimentant les tableaux de bord de qualité.
Archive de conversation
L'archivage automatique après quelques jours, la résolution automatique au bout de quelques minutes de silence et la suppression des conversations archivées après plusieurs jours.
Formation en connaissance
Ce que l'assistant sait réellement. Rien d'autre dans le chat client n'a autant d'importance.
Formation sur la connaissance du site Web
Crawls votre site afin que l'assistant puisse répondre à partir de celui-ci. Jusqu'à dix liens de départ, une limite de page, une profondeur de lien et des dossiers exclus. Un seul URL peut être testé avant le crawling complet.
Embedures
La clé et le modèle API qui transforment les pages en signification consultable plutôt que des mots-clés correspondants.
Organisateur de connaissances AI
Un clic et l'IA lit chaque FAQ et page explorée et les trie en catégories.
FAQs, réponses vérifiées
Paires de questions et réponses traitées comme la source prioritaire, chacune avec un statut, un poids et une catégorie. Elles sont consultables, importables depuis un fichier JSON, et l’IA peut les rédiger à partir d’une description de votre activité. Lorsque l’assistant se trompe, écrivez une FAQ : elle prime sur les pages explorées, la correction est donc immédiate.
Avancé
Performances et limites
Intervalle de sondage, limite du débit des messages et fenêtre, taille maximale des pièces jointes, tentatives de pièces attachées par fenêtre et extensions de fichier autorisées. La liste d'extensions est un contrôle de sécurité; gardez-la serrée.
Livraison en temps réel
La diffusion de messages instantanés et d’états au lieu du polling, via Pusher, Ably ou Firebase, avec un intervalle de polling de secours.
Notifications push
Alertes d'appareil pour les agents via Pusher Beams ou OneSignal, avec un intérêt pour l'appareil.
Push Web (VAPID)
Poussée par navigateur en utilisant vos propres clés générées sans fournisseur tiers, générées ici et non dans Danger Zone.
Voix, vidéo et partage d'écran
TURN les informations d'identification pour que les appels se connectent à travers des réseaux restrictifs, en utilisant Cloudflare ou vos identifiants Twilio ou votre propre TURN URL, nom d'utilisateur et identifiant.
Flux de travail de boîte de réception
Paramètres de l’espace de travail des agents plutôt que les paramètres du visiteur: SLA de première réponse en quelques minutes, vues de file d’attente enregistrées, raccourcis clavier et palette de commandes, recherche dans la conversation et tickets client dans l’inspecteur.
Canaux de messagerie
WhatsApp, SMS, Facebook Messenger, Instagram, Telegram, X direct messages et LINE, chacun avec son propre commutateur de réponse automatique par IA, ainsi qu’un commutador de politique pour les actions d’IA sur les canaux, un déblocage des réponses et le modèle de réengagement WhatsApp. Chaque canal se retrouve dans la même boîte de réception que le chat Web.
✅
Un aperçu en direct du widget au bas de l'onglet est mis à jour lorsque vous modifiez, utilisez-le plutôt que de recharger votre site Web pour vérifier une modification.
Paramètres
Paramètres: OpsIQ Écriture
Les tickets répondus par écrit: réponses automatiques, le système de ticket natif, l'escalade, les heures d'ouverture, le routage et les e-mails adressés au client.
Auto-réponse
Afficher les boutons d'écriture OpsIQ
Ajoute les boutons d'aide à l'écriture pour vos agents dans le panneau d'administration.
Activer la réponse automatique aux tickets
Met en file d’attente les nouveaux tickets et répond à ceux-ci après un délai. Commencez par le mettre hors service et passez en revue les brouillons pendant une semaine, puis les remboursements, annulations et modifications d’accès devraient toujours arriver à une personne.
Départements de réponse automatique
Tout ce qui n'est pas répertorié est laissé pour un humain, ce qui constitue la valeur par défaut sécurisée.
Calendrier de délai de réponse (minutes)
Une réponse instantanée est considérée comme un robot, quelques minutes sont considérées comme une équipe rapide et la durée de l'attente peut varier selon les situations.
Nombre maximal de réponses AI par ticket et service
Un plafond par département, par exemple Billing 1 and Support 3. Sans capuchon, un fil confus peut se boucler.
Longueur, statut et identité de la réponse
Le nombre maximum de jetons d’écriture, le statut du ticket après une réponse et après une escalade, ainsi que le compte administrateur auquel les réponses automatiques sont attribuées. Utilisez un compte clairement nommé afin que le personnel puisse distinguer les réponset AI des réponses humaines.
Opérations de ticket natives
Système de tickets natif
Le système de tickets intégré à OpsIQ, pour les installations sans un helpdesk externe.
Pipeline des e-mails entrants vers les tickets natifs
Transforme l'email entrant en tickets.OpsIQfournit le point finalURL, auth token, script path et PHP binaire. Tout ce qui peut poster à ce paramètre peut créer des tickets, donc garder le jeton secret.
Réponse multi-tours, délai et debounce
Si l’IA continue de répondre au fur et à mesure que la conversation se poursuit, et s’il attend une fenêtre silencieuse afin que trois messages rapides reçoivent une réponse considérée. La fenêtre tranquille est le meilleur paramètre unique pour faire en sorte que les réponses automatisées semblent considérées.
Portail de soutien public
Une page client où tout le monde peut soulever et suivre un ticket, avec une ligne de bienvenue optionnelle. Son adresse et son apparence sont configurées dans l'onglet Portail d'assistance.
Format du numéro de billet
Nombre de lettres aléatoires apparaissant dans les numéros de ticket générés.
Envoyez des e-mails à vos clients dans leur propre langue
Les e-mails du personnel ne changent jamais de langue : les notifications, les alertes des départements, les briefings et les rapports planifiés restent dans la langue de votre système.
Remerciements et confirmations
Un accusé de réception fixe sur les nouveaux tickets, ainsi que des messages de confirmation lorsqu’un ticket est ouvert, lorsque des commentaires sont laissés et lorsqu’il est fermé. Chacun d’eux comporte un aperçu en direct. Il existe également une boîte à outils globale pour le modèle d’e-mail et le lien derrière le bouton « Afficher votre ticket ».
filtrage des spams AI
Filtre les tickets provenant d'expéditeurs inconnus, et peut éventuellement déplacer le spam suspect de lui-même. Laissez le mouvement automatique désactivé jusqu'à ce que vous ayez regardé son jugement.
Fermer automatiquement les tickets inactifs
Ferme un ticket après un certain nombre de jours tranquilles. Dites au client dans le message de clôture comment rouvrir.
Heures d'ouverture (calendrier SLA)
Fuseau horaire, heures d'ouverture et de fermeture, jours ouvrables et jours fériés pour les minuteries du premier intervenant et de la résolution.
Attribuer automatiquement de nouveaux tickets
Affectation automatique, en option uniquement aux agents qui sont en ligne, avec des compétences d'agent et une sensibilité de correspondance pour le routage basé sur les compétences.
Suggérer des tickets en double
Repère quand un client ouvre un ticket proche d'un autre qu'il a déjà, avec une sensibilité de correspondance réglable.
Enquête de satisfaction après la clôture
Envoie un sondage par courriel le jour suivant la clôture. Les résultats apparaissent sur la page CSAT.
Avertir le département par courriel
Les destinataires sont les membres de ce service, et non l’adresse de la boîte aux lettres du service, qui est l’ adresse d’arrivée des tickets.
Ce que l'IA peut lire
Accès aux données client AI
Un commutateur principal et des autorisations individuelles en lecture seule pour le résumé du profil client, les factures, les transactions, le solde de crédit, les produits et services, les domaines, les serveurs liés et un aperçu général du compte. Commencez par le résume du profil et ajoutez des catégories au fur et à mesure que les réponses en ont besoin.
Escalade et connaissance
Activer l’escalade des tickets par l’IA
Déplace un ticket vers un service plus approprié avant de répondre. Vous choisissez les services autorisés, le délai de vérification et vous pouvez écrire vos propres instructions d'avis d'escalade. Activez la note d'escalade interne afin que votre équipe puisse voir pourquoi un ticket a été déplacé.
Paramètres de connaissances
Si les réponses utilisent le langage du client, si elles s’appuient sur des liens crawlés et des FAQ, si l’IA lit les images et PDF Les pièces jointes, le mode de réponse à la connaissance, JSON Utilisez les liens crawlés et la FAQ doit être activée, sinon l'IA devinera ce que vous avez écrit.
Arrêter la réponse automatique après une réponse humaine
Une fois que le personnel répond, l'IA cesse de répondre à ce ticket et peut parler par-dessus votre propre agent.
Instructions pour les tickets et e-mails
Des instructions en texte libre qui façonnent le ton et le contenu de chaque réponse, avec un exemple de travail pouvant être chargé.
Importer les connaissances de JSON
Téléchargez ou collez un fichier de connaissances JSON pour l'assistant d'écriture.
Studio de bouton
Un concepteur complet pour le bouton client: style d'affichage, taille, étiquette, icône, forme, largeur minimale, style d’arrière-plan avec couleurs primaires et secondaires, angle de dégradé, bordure, rayon des angles, ombre, typographie, remplissage, animation au repos, mouvement et couleurs du curseur, bague de mise au point, plus une boîte personnalisée CSS pour tout ce que les contrôles ne couvrent pas.
Paramètres
Paramètres: Portail de support
Le site client où les utilisateurs soumettent et suivent des tickets et lisent vos articles d'aide. Cet onglet contrôle la façon dont il est accessible et dont les clients se connectent. Sa conception visuelle est réalisée dans le Studio du portail de support.
Portal Studio ou Embedded Ticket Portal : lequel dois-je choisir?
Ce sont deux produits différents et les gens les mélangent constamment. Ils résolvent des problèmes différents, et il est normal de les exécuter ensemble.
Support Portal Studio : un lieu où vous envoyez des clients
Le Studio conçoit un Site de support complet que OpsIQ héberge pour vousIl a sa propre adresse Web, ou votre propre domaine, et il porte toute l'expérience de libre-service: articles d'aide avec recherche, le formulaire de demande, historique des tickets, connexion client et assistant. Choisissez un modèle, travaillez à travers Thème, Navigation, Mise en page, Connaissances, Pied de page, Marque, Tickets, Assistant, Formulaire et CSS, prévisualiser sur les tailles de bureau, tablette et téléphone, puis publier.
Utilisez-le quand Vous voulez une destination de marque que vous pouvez diriger vers chaque client, et vous préféreriez ne pas construire ou maintenir un espace d'assistance à l'intérieur de votre propre site Web.
Portail de billets embarqués: billets à l'intérieur de votre propre site
L'intégration met Uniquement l'expérience de billet sur une page de votre propre site WebLes clients ouvrent, suivent et répondent aux demandes d'assistance sans jamais quitter vos pages. Votre propre en-tête, navigation et design restent exactement tels qu'ils sont Définissez la mise en page, l'apparence et les règles d’accès dans le constructeur de widgets, prévisualisez le résultat, puis copiez l'extrait intégré sur votre page.
Utilisez-le quand Vous avez déjà un site Web ou une application avec sa propre conception et vous souhaitez que le support se déroule à l'intérieur de celui-ci plutôt que de remettre le client à une adresse différente.
La version courte
Le Studio construit Un endroit où vous envoyez vos clients. L'intégration apporte des billets Où vos clients sont déjà. De nombreuses entreprises utilisent les deux, en incorporant le widget de ticket dans leur zone de compte pour des demandes contextuelles tout en conservant le portail hébergé comme destination libre-service complète avec articles et recherche.
Adresse et accès
Mode d'accès
Que le portail soit ouvert à tous ou restreint aux clients connectés, les portails ouverts reçoivent plus de tickets et plus de spam.
Choix de mise en page
Si le portail et le centre d’aide partagent un héros ou utilisent deux, la navigation et le pied de page apparaissent sur les deux surfaces, ainsi que l’étiquette de section de navigation.
Adresse du portail
Choisissez un nom et OpsIQ affichera le portail résultant ainsi que les adresses de centre d'aide correspondantes. Si vous modifiez ce nom ultérieurement, les liens déjà envoyés seront interrompus.
Votre propre domaine
Serve le portail à partir d'un domaine dont vous êtes propriétaire, tel que support. votredomaine. com.
Portail de tickets intégré
Active le widget déroulant décrit ci-dessus, et ouvre l'éditeur d'intégration où vous choisissez la mise en page, l'apparence et les règles d'accès, prévisualisez le résultat et copiez l'extrait pour votre page. Ce n'est pas le Studio du portail: le Studio conçoit le portail hébergé, ce qui met des tickets dans votre propre site.
Comment les clients se connectent
La connexion du personnel est configurée sous Paramètres, Sécurité. The staff login is configured under Settings, Security.
Méthodes de connexion
Quelles options apparaissent sur la page de connexion. Connecteur et e-mail fonctionnent automatiquement.
Connexion par réseau social
Fournisseurs de comptes consommateurs, chacun ayant besoin d'un identifiant client et d'une adresse secrète, avec l'adresse de redirection fournie par OpsIQ pour s'inscrire auprès de ce fournisseur.
Authentification unique (OIDC)
Connexion du client via un fournisseur d'identité, avec émetteur URL, ID de client, secret et une liste facultative des domaines e-mail autorisés.
Client SAML 2.0
The SAML equivalent. OpsIQ Fournit la réponse ACS.URLVous fournissez l'ID de l'entité IdP, la connexion et la déconnexion URLs, X 509 Noms de certificat et d'attribut facultatif. Turn SAML Dans Méthodes de connexion ou il n'apparaîtra pas.
Connexion transparente depuis votre application
Un lien profond signé afin qu'un client déjà connecté à votre application atterrisse dans le portail sans se reconnecter. OpsIQ Fournit le secret de signature, portail URL Utilisez le générateur avant d'écrire n'importe quel code.Use the generator before writing any code.
Se déconnecter partout
La déconnexion du portail permet également de déconnecter le client de votre application.
Prise et protection
Champs du formulaire de demande
Chaque champ supplémentaire entraîne une perte de soumissions, alors demandez uniquement ce dont vous avez besoin pour trier les données.
Protection contre le spam et les abus
Un honeypot et une limitation de taux protègent toujours le formulaire public. En plus, vous pouvez bloquer les adresses e-mail jetables, ajouter vos propres domaines bloqués et ajouter un CAPTCHA en utilisant Google reCAPTCHA ou Cloudflare Turnstile.
Analyse du portail
Un résumé en lecture seule de l'activité du portail au cours des trente derniers jours.
Paramètres
Paramètres: Permissions, Licence, Cron et Zone de Danger
Le groupe Système, ainsi que les contrôles d’accès de l’équipe qui décident qui peut voir quel onglet Paramètres.
Accès et autorisations de l'équipe
Permissions par administrateur
Chaque administrateur reçoit un ensemble explicite d'autorisations, qui couvre l'accès à la boîte de réception du chat, les sections des paramètres qu'il peut modifier et ses services. Toute personne ayant le rôle d'administrateur complet dispose toujours de toutes les autorisations.
Licence
Affiche votre permis actuel, ce à quoi il vous donne droit et son statut.
Configuration de Cron
Sur le cloud OpsIQ, les tâches planifiées s'exécutent pour vous et l'onglet est caché. Une ligne de crontab pilote chaque tâche planifiée: réponse automatique aux tickets, routage d'escalade, actualisation du taux de change, interrogation des boîtes aux lettres et synchronisation des connecteurs.
1
Copier la ligne
L'onglet montre la ligne crontab exacte pour votre serveur avec le binaire PHP correct déjà choisi.
2
Ajouter à crontab
Exécutez crontab -e en tant qu'utilisateur exécutant PHP et collez la ligne unique, sur cPanel utilisez l'outil Cron Jobs à la place.
3
Vérifier
Utilisez Exécuter maintenant pour tester immédiatement plutôt que d'attendre, puis cliquez sur Suivant.
Le panneau de pulsation montre la dernière exécution, sa durée et ce qui a été traité pour la file d'attente de réponse automatique ainsi que le sondage par e-mail et connecteur. Il avertit lorsque la dernière opération provient du bouton Web manuel plutôt qu'un vrai cron serveur, et quand une pulsation est devenue obsolète.
Zone de danger
Supprimer toutes les données de suivi
Wipes everything OpsIQ Les paramètres et la configuration du site, les adresses bloquées, tout ce que votre équipe a écrit (base de connaissances, FAQ, traductions, conceptions de portails, définitions d'actions) et les reçus de consentement sont tous conservés.
Purger les données plus anciennes que
Le même balayage limité aux enregistrements plus anciens que 30, 60, 90 ou 180 Pour la conservation continue automatique, utilisez les valeurs de rétention dans Général et Suivi à la place et laissez la tâche planifiée le faire.
🚫
Exportez une sauvegarde depuis Paramètres, Général avant d'utiliser quoi que ce soit dans Danger Zone. Ces actions ne peuvent pas être annulées.
Paramètres
Gérer votre équipe
Invitez les membres de l'équipe et assignez des rôles pour contrôler qui peut accéder à quoi.
ÉquipeL'écran de l'équipe réelle : chaque administrateur avec son contact, son rôle et les départements qu'il peut atteindre, agents visés, propriétaires pleins.
Rôles
Propriétaire
Accès complet, y compris la licence, la facturation et la zone de danger. Un par installation.
Admin complet
Accès complet sauf licence et zone de danger. Peut gérer les administrateurs.
Agent
Limité aux services affectés. Tickets, chats et analyse uniquement.
Inviter des membres d'équipe
1
Aller à l'équipe
Accédez à Équipe dans la barre latérale.
2
Cliquez sur Inviter
Entrez l'adresse e-mail du membre de l'équipe.
3
Définir le rôle
Choisissez Propriétaire, Administrateur complet ou Agent.
4
Attribuer des départements
Pour les agents, sélectionnez les départements accessibles.
5
Envoyer une invitation
Ils reçoivent un e-mail avec un lien de configuration.
Paramètres
Performance de l'équipe
L'accès est autorisé, non par rôle : la permission de visionner ouvre la page, la permission d'utiliser la gestion déverrouille les cibles, l'AQ et la lecture du confrère-identifiant, et la permission récompense-financier est ce qui ajoute l'onglet Récompenses. Une direction d'équipe peut être donnée à n'importe lequel de ces éléments sans devenir un administrateur complet.
Performance de l'équipeL’écran de performances d’équipe réel: chaque agent a obtenu un score sur le volume et CSAT, avec un solde de récompense que vous pouvez payer par ligne.
Comment la page est organisée
Le rendement d'équipe est de cinq onglets. Chaque réponse à une question différente, et ils sont ordonnés par la façon dont ils ont besoin de vous.
01 Centre de commandement
État de file d'attente en direct, résultats clients par rapport à vos cibles, comment la capacité a été dépensée, situations nécessitant une décision, et l'indice par équipière corrigé des preuves.
02 coéquipiers
Le classement, la reconnaissance (les plus améliorées et les plus striées), les quêtes et le contrôle opt-in pour qui peut voir le classement.
03 Qualité
Cartes de pointage, évaluations enregistrées, entente avec les examinateurs ayant corrigé leur chance, dérive des évaluateurs et différends relatifs aux preuves.
04 Récompenses
Valeur symbolique, demandes de paiement et répartition de la période régie : autoriser un plafond financé, revoir l'aperçu, finaliser.
05 Historique
Comment l'espace de travail a évolué au fil du temps : les métriques de tendance avec un graphique, et une carte thermique 28-jour montrant quand l'équipe travaillait réellement. Chaque carte se cache jusqu'à ce qu'il y ait suffisamment d'historique pour la dessiner.
Non noté n'est pas zéro
Un coéquipier sans volume suffisamment manipulé — ou dont les dimensions portent des preuves additionnent jusqu'à la moitié du poids configuré — est montré comme non-correspondant. Leur score, grade et bande sont vides et leur répartition est cachée. Ceci est délibéré : rendre une mesure absente comme zéro place quelqu'un au bas d'un classement pour avoir une semaine tranquille.
Les deux seuils de preuve font des tâches différentes et il est utile de les garder à part. Minimum géré décide si quelqu'un est noté du tout. La note minimale n'affecte pas la note: elle décide l'admissibilité à la récompense et à la prime. Ainsi, un coéquipier peut être pleinement noté et classé et toujours inéligible pour cette période, parce que trop peu de clients les ont notés.
💡
Chaque figure est portée sur l'espace de travail que vous regardez et la plage de temps que vous choisissez. Un coéquipier travaillant dans deux espaces de travail distincts a un enregistrement indépendant dans chacun d'eux. Deux exceptions méritent d'être connues : un site GROUP est un espace de travail, donc ses domaines membres sont mesurés ensemble; et la vue Tous les sites mesure délibérément tout à la fois.
L'indice de performance
Un composite de cinq dimensions, chacune mesurée par rapport à une cible que vous définissez plutôt qu'à des collègues, puis tiré vers le milieu lorsque la preuve derrière elle est mince. Notez la direction : l'ajustement déplace la figure vers 70, donc un score excellent fin est retiré et un faible score maigre est relevé. Une mauvaise première semaine sur quatre conversations n'est pas non plus un verdict réglé.
Qualité
Satisfaction des clients à la suite de commentaires vérifiés.
Réactivité
Les premiers temps de réponse aux percentiles P50 et P90, par rapport à vos cibles.
Résolution
Temps de résolution et taux de résolution à un toucher.
SLA
Atténuation contre le SLA que vous avez configuré, plus les nombres à risque et violés.
Intendance
Réouvrir et transférer les taux — le travail qui revient.
💡
Les poids sont configurables et relatifs; ils n'ont pas à totaliser 100. Les preuves manquantes ne peuvent que baisser l'indice, jamais le soulever — le poids configuré reste dans le dénominateur.
Capacités et temps de production
L'occupation, le temps productif, résolu par heure productive et la part en ligne de la fenêtre. L'utilisation n'est pas volontairement signalée: il a besoin d'heures programmées comme dénominateur, OpsIQ n'a ni liste ni source de changement, et un dénominateur substitué serait une supposition portant un signe de pourcentage. Il se lit comme indisponible avec cette raison jointe.
⚠️
L'occupation dit comment le temps a été passé, jamais comme il était bien passé, et il ne finance jamais, ne porte pas ou taille un paiement. Un coéquipier sans preuve de la manipulation du temps se lit comme indisponible, jamais aussi zéro.
Assurance qualité
Une carte de pointage est la note des examinateurs de la rubrique des conversations réelles contre. Seule une version publiée peut recevoir une évaluation, et publier une nouvelle version ne réécrit jamais ce qui a déjà été noté. Un examen est preuve d'une conversation, pas un verdict sur une personne.
Accord avec l'examinateur
Reporté comme une statistique corrigée par hasard (Kappa de Cohen et Fleiss), pas un pourcentage d'accord brut. Deux évaluateurs qui passent tout sont d'avis 100% du temps tout en ne portant aucune information.
Dérivation de l'examinateur
Que l'évaluateur note systématiquement plus ou moins que ses collègues sur la même conversation — une comparaison par rapport au reste du groupe, pas une tendance dans le temps. Il faut examiner une interaction de façon indépendante plus d'une fois.
Différends
Un coéquipier peut contester officiellement les preuves enregistrées à leur sujet. Un différend ouvert bloque la finalisation de la période de récompense jusqu'à ce qu'elle soit résolue.
Auto-examen
Un coéquipier ne peut pas se soumettre à une évaluation.
⚠️
Les évaluations classées par AI ne peuvent influencer le salaire tant qu'un calibrage n'est pas publié, montrant que le modèle est suffisamment en accord avec les évaluateurs humains, mesuré par kappa contre un échantillon minimum.
Reconnaissance
Le classement seul a documenté les modes d'échec: jeu métrique, burnout, et public hanting de qui est le dernier. Trois alternatives s'assoient à côté.
Plus amélioré
Mesuré contre le propre record d'un coéquipier, jamais contre ses collègues, avec un rétrécissement donc un petit dénominateur ne peut pas acheter une victoire.
Éparpillements
Les périodes consécutives répondant à une barre fixe et déclarée — cote moyenne, volume manipulé, nombre de cotes et taux de rétroaction négatif, tous les chiffres absolus. Chacun peut tenir une série simultanément, donc il ne crée aucun classement, et un collègue ayant un mois exceptionnel ne peut pas briser le vôtre.
Classement en mode «opt-in»
Off par défaut. Un coéquipier voit toujours son propre index; s'ils voient des collègues est une décision d'espace de travail. Les bandes de pourcentage peuvent être publiées au lieu de positions absolues.
💡
La reconnaissance ne touche jamais l'argent. Une série ne peut pas financer un paiement ou casser un, et la plupart des améliorations n'est pas une catégorie de prix.
Quests
Une cible vers laquelle l'équipe travaille, mesurée par rapport à une barre fixe déclarée plutôt que l'un contre l'autre — afin que chacun puisse dégager la même quête dans la même période.
Portée et cadence
Individuel ou en équipe; unique, répétable ou saisonnier avec une fenêtre explicite.
Critères
Conversations gérées, cotes reçues, journées actives, cote moyenne ou taux de rétroaction négatif. Tout est absolu — aucune mesure dont la valeur dépend de ce que les collègues ont fait.
Garde de qualité
Requis sur toute quête avec une cible de volume. Affecter le nombre alors que la qualité tombe sous le plancher retient la quête plutôt que de la compléter, et il est montré comme retenu, pas inachevé.
Répéter les limites
Un plafond par période, entraîné par le critère le plus lent, plus un refroidissement facultatif avant qu'une répétition ne puisse compter.
Recherches en équipe
Les progrès partagés sans attribution par équipe sont publiés, de sorte qu'une quête d'équipe ne peut pas devenir un classement.
Séances d'entraînement
Une séance d'encadrement est un disque, pas une conversation. Il a un entraîneur, un coéquipier étant entraîné, un temps prévu, des points de discussion convenus, et un résumé écrit après. De vrais chats, billets et évaluations d'AQ sont épinglés à elle comme preuve, donc la conversation est ancrée au travail qui s'est réellement passé plutôt qu'à une impression rappelée.
Points à traiter
Convenu avant la session, donc le coéquipier n'est pas en train de se lancer dans une surprise.
Preuves
Chats, tickets et évaluations d'AQ attachés à la session. Une broche stocke une référence — un type et un id — pas une copie, donc elle pointe toujours au live record.OpsIQ ne vérifie pas l'identité avant de l'accepter.
Points à traiter
Chacun d'eux a un propriétaire et une date limite. Un élément qui dépasse sa date est indiqué comme étant en retard — un état dérivé, pas un statut que quelqu'un doit se rappeler de définir.
Note privée
Le coéquipier qui est entraîné ne peut jamais le lire, pas en tant qu'agent, ni en tant que gestionnaire, ni comme propriétaire. Ce chèque court avant chaque autre autorisation et ne peut être dépassé.
Qui peut voir une session
L'entraîneur, le coéquipier et toute personne ayant la permission de gérer les performances de l'équipe. Personne d'autre, y compris les autres coéquipiers du même département.
Vérification des comptes
Chaque création, mise à jour, pin, décrochage et achèvement est enregistré avec ce qui a changé, par qui.
💡
L'entraînement est délibérément séparé de la notation et de l'argent. Une session ne change l'index de personne, ne porte pas une récompense, et n'apparaît pas sur le classement.
Récompenses et récompenses
L'activité enregistrée se convertit en jetons avec une valeur en espèces que vous définissez. Le chemin vers un paiement est délibérément lent et chaque étape est enregistrée.
1
Définir la valeur du jeton
Combien de jetons sont égaux à combien d'argent, et ce que chaque activité vaut.
2
Autoriser le plafond financé
Pour une période civile fermée, un administrateur complet indique le montant maximum qu'il peut payer. L'enregistrement du formulaire de paramètres n'autorise pas un budget et ne peut modifier un plafond qui a déjà été autorisé.
3
Revoir l'aperçu
Les bénéficiaires, les réserves et la raison pour laquelle tout le monde n'est pas admissible.
4
Finalisation
La répartition est enregistrée de façon permanente avec les preuves derrière elle. Une période qui n'a rien attribué ne peut être annulée et ré-exécutée sans équivoque. Celle qui a émis des jetons doit d'abord être inversée : OpsIQ écrit une entrée compensatoire contre chaque portefeuille et ne supprime jamais l'original, donc le registre montre toujours ce qui s'est passé et pourquoi, et seulement alors la période libérée.
⚠️
L'admissibilité exige une rétroaction vérifiée de la clientèle. Les cotes de qualité de l'IA peuvent compléter ce jugement mais ne jamais le remplacer, et un coéquipier indiqué comme non noté n'est pas admissible. Chaque contributeur est plafonné à 25% au-dessus de sa part prévue de la période, de sorte qu'un mois très important ne peut absorber l'ensemble du budget.
💡
Le propriétaire du compte ne prend pas part aux récompenses ou aux récompenses symboliques, sans changement : il autorise le plafond financé et finalise chaque allocation, et il n'y a personne au-dessus d'eux pour approuver ce qu'ils paieraient eux-mêmes. Leur travail est mesuré, noté et classé sur le tableau exactement comme tout autre.
Tous les autres participent par défaut, les chefs d'équipe et les copropriétaires inclus. Pour laisser quelqu'un dehors, ouvrez-les dans Team & Departments et éteindre l'option Prendre part aux récompenses et récompenses. Leur travail est toujours marqué et montré; ils cessent d'être un candidat à partir de ce moment-là, et rien n'est touché.
⚠️
Personne n'approuve l'argent pour lui-même. Parce que les gens qui peuvent prendre part sont aussi les personnes qui peuvent approuver les paiements,OpsIQ refuse un paiement ou un crédit dans votre propre portefeuille, payant votre propre réclamation, finalisant une période pendant laquelle vous seriez payé, et finalisant un prix que vous gagneriez. Un autre administrateur complet ou le propriétaire doit le faire.
Qui peut voir et faire quoi
Voir les performances de l'équipe
Le conseil, l'état en direct, la capacité et la qualité de l'espace de travail.
Gérer les performances de l'équipe
Objectifs et notation, exportations, cartes de pointage et évaluations de l'AQ, coaching, quêtes et lectures qui contiennent des données identifiant les collègues comme l'historique par administrateur et l'histoire des prix.
Voir les finances de récompense d'équipe
Soldes, valeurs en espèces, notes de réclamation et références au paiement — séparément des éléments de preuve du rendement parce qu'il est lié à la paie.
Administrateur complet seulement
Toute mutation monétaire : paiement d'une récompense, paiement ou rejet d'un sinistre, autorisation d'établir un budget, finalisation, annulation ou inversion d'allocation, fixation du taux de jeton à la caisse.
L'utiliser équitablement
L'indice de performance est une preuve de la direction, et non une décision d'emploi automatique. Ouvrez les conversations sources derrière un nombre avant d'agir sur elle, et peser la complexité des cas, les horaires, les congés et les besoins d'accessibilité.
Paramètres
Vos sites (espaces de travail)
Les sites (espaces de travail) vous permettent de gérer plusieurs sites Web à partir d'une installation OpsIQ, chacun disposant de son propre suivi, IA, connecteurs et accès d'équipe.
SitesL'écran des Sites réels : chaque site est son propre espace de travail isolé (domaine, connecteur et paramètres), ajouté et ouvert depuis une liste.
Créer un site
1
Aller aux sites connectés
Accédez à Sites connectés.
2
Ajouter un nouveau site
Entrez le nom, le domaine et la description.
3
Copier la clé du site
Chaque site reçoit une clé unique (site_xxx) pour l'extrait de code du widget.
4
Configurer indépendamment
Chaque site a sa propre IA, ses connecteurs et ses paramètres.
Combien de sites puis-je avoir?+
Dépend de votre plan de licence. Vérifiez les détails de votre licence.
Paramètres
Licence et plan
Votre licence OpsIQ contrôle les fonctionnalités, les limites du site et le solde de crédit AI.
LicenceLe vrai License Center: votre plan et statut actif, la clé masquée, votre solde de crédit AI et une revérification forcée en un clic.
Clé de licence
Entrez dans Paramètres > Licence. Validé par le serveur de licences OpsIQ.
Heartbeat / validation de licence
OpsIQ Utilisez Forcer la vérification à distance lorsque vous avez besoin d'un résultat immédiat ; Diagnostics identifie les licences qui ont été validées par le client. DNS, HTTPS ou des problèmes d'heure du serveur.
Plan
Détermine la disponibilité et les limites des fonctionnalités.
Limite de site
Nombre maximal d'espaces de travail.
Crédits d ' IA
Si vous utilisez Managed AI, votre solde de crédit est affiché ici.
Expiration
Renouvelez avant l'expiration pour éviter une interruption du service.
Que se passe-t-il lorsque ma licence expire?+
Le suivi, les tickets et le CRM continuent. Les fonctionnalités d’IA sont suspendues jusqu’au renouvellement.
Paramètres
Profil, mot de passe et authentification à deux facteurs
Chaque administrateur peut conserver sa propre identité, ses préférences de travail, son mot de passe et l'authentification à deux facteurs.
Écran de produitLa page de profil sépare les détails personnels, la langue/le fuseau horaire, l'avatar/la signature, le mot de passe et l'authentification à deux facteurs.
Les paramètres de profil appartiennent à l’administrateur connecté et ne modifient pas la marque de l’espace de travail. Utilisez un mot de passe unique et activez l’authentification à deux facteurs : la modification d’un paramètre d’adresse e-mail ou d’authentification peut nécessiter une nouvelle vérification ou une nouvelle connexion.
Paramètres
Préférences de notification
Les préférences de notification contrôlent les événements opérationnels qui parviennent à un administrateur dans le produit ou par courrier électronique.
Écran de produitLa page de notification fournit des choix par événement dans l'application et par e-mail, ainsi qu'une liste de notifications récentes.
Les préférences couvrent l’attribution de tickets, les réponses aux clients, les avertissements SLA, le transfert par chat et les événements d’approbation de l’IA.
Paramètres
Vue d'ensemble de la sécurité
La vue d'ensemble de la sécurité est le premier écran pour l'évaluation des blocages, les attaques de connexion, les sessions de menaces, les tendances de sécurité et l'intégrité des événements.
Écran de produitSecurity Overview combine les cartes de risque actuelles, une tendance 14-jour, la liste des attaquants, le flux d'événements et l'état d'intégrité.
Utilisez les cartes de titre pour le triage, puis ouvrez l'onglet Audit, Failed Logins, Blocked. IPs ou JavaScript Page d'erreurs pour le travail au niveau de l'enregistrement. 14 Les sessions à risque élevé doivent être examinées par rapport aux preuves de visiteur, de requête et d'authentification avant qu'un blocage permanent ne soit appliqué.
Paramètres
Journal d'audit à l'évidence de toute manipulation
Le journal d’audit enregistre qui a fait quoi, quand, sur quel objet, à quel niveau de risque et si cela a réussi.
Écran de produitLa page d'audit fournit une activité interrogeable et inviolable avec action, acteur, risque, cible et résultat.
Filtrer par action, risque et acteur; exporter CSV ou JSON La chaîne de hachage permet de détecter les lignes d'audit manquantes ou modifiées, mais elle ne remplace pas les sauvegardes protégées et l'accès restreint à la base de données. Traitez les exportations d'audits comme sensibles car elles peuvent identifier des utilisateurs, des enregistrements et des actions de sécurité.
Opérations
Diagnostic
Diagnostics transforme les vérifications de sous-système en résultats d'intégrité clairement définis et en actions suivantes directes.
Écran de produitLes diagnostics regroupent les vérifications de l’intégrité du widget, de l'IA, des tickets, des intégrations, de la Site Intelligence, des tâches en arrière-plan, de le CRM automatisé, des licences et du stockage.
La page vérifie la vitesse du site, le classement/mot-clé/lien de retour/données locales, l’IA et la passerelle d’action, les tickets, les robots d’exploration/audits, l'intégration/l'entrée des événements, les tâches en arrière-plan, les automatismes CRM, la licence, le widget et les services produits associés.
Après un changement, actualisez et confirmez que le sous-système affecté est de nouveau en bon état. Une page verte de diagnostics est nécessaire mais pas suffisante pour le lancement. Remplissez également la liste de contrôle préalable au lancement
Paramètres
Sécurité et accès
OpsIQcomprend plusieurs couches de sécurité pour protéger votre administrateur, vos données etAPIaccès.
Comment ça fonctionneSécurité
Caractéristiques de sécurité
Authentification d'administrateur
Email/mot de passe avec 2FA optionnel.
Login verrouillage
Verrouillage temporaire après trop de tentatives infructueuses.
IP blocage
Bloquer les plages IPs ou CIDR d'accéder aux sites suivis.
Notation des menaces
Les visiteurs présentant un risque élevé peuvent être bloqués automatiquement.
Application du HTTPS
Requis pour toutes les connexions. HTTP redirige vers HTTPS.
En-têtes HSTS
La sécurité de transport stricte empêche les attaques de déclassement.
Protection de CSRF
Tous les formulaires d'administration incluent des jetons CSRF.
Protection contre XSS
Toutes les entrées de l'utilisateur sont échappées. Les en-têtes CSP restreignent l'exécution du script.
Protection de SSRF
Les webhooks sortants bloquent les adresses IP privées/internes.
Configuration recommandée
1
Activer la 2FA
Pour tous les comptes d'administrateur.
2
Des mots de passe forts
Minimum 12 caractères, mixte.
3
Examen des comptes
Supprimer l'accès pour les anciens membres de l'équipe.
4
Surveiller les connexions ayant échoué
Vérifiez chaque semaine pour les modèles suspects.
5
Restez à jour
Appliquez rapidement les mises à jour pour les correctifs de sécurité.
Paramètres
Rôles et autorisations
Le contrôle d'accès basé sur les rôles vous permet de contrôler ce que chaque membre de l'équipe peut faire.
Rôles & permissionsLa matrice de rôle en un coup d'œil: Propriétaire obtient tout, Full Admin tout sauf la facturation et la zone de danger, Agent seulement leurs tickets étendus.
Rôles par défaut
Propriétaire
Tout, y compris la licence, la zone de danger et la gestion des installations.
Admin complet
Tout sauf licence et zone de danger. Peut gérer l'équipe.
Agent
Répondez aux tickets et chats des services affectés, consultez les analyses. Aucun accès de paramètres, d'équipe ou de sécurité.
Puis-je créer des rôles personnalisés?+
Pas actuellement. Trois rôles intégrés et l'affectation de départements offrent un contrôle granulaire.
Paramètres
Bloqué IPs
Gérer les adresses IP bloquées d'accéder à vos sites suivis.
Bloqué IPsLe vrai Blocked IPs écran: bloquer un seul IPou une plage de CIDR, et gérer la liste, chacun avec sa date, raison et un clic déblocage.
Comment bloquer
1
Allez dans Sécurité > Bloqué IPs
2
Ajouter une plage IP ou CIDR
Exemple : 203.0.113.42 ou 203.0.113.0/24
3
Ajouter une raison
Documentez pourquoi: spam, abus, scraping, etc.
Le blocage affectera-t-il les utilisateurs légitimes?+
Si les clients partagent un compte d'entreprise IP ou VPN, bloquant ce IP Utilisez des blocs étroits.
Paramètres
Échec des connexions
Toutes les tentatives de connexion infructueuses à votre OpsIQ admin.
Échec des connexionsL'écran de connexion réel Failed: chaque compte/IP avec son compte d'échec et sa dernière tentative, bloquez une source de force brute directement à partir de la rangée.
Ce que chaque entrée montre
Date/heure
Quand la tentative a eu lieu.
Courriel
Adresse e-mail utilisée.
IP adresse
Source de la tentative.
Pays
10. Situation géographique.
Raison
Mot de passe incorrect, verrouillé ou non trouvé.
Signes d'avertissement
Plusieurs tentatives, même email
Assurez-vous que l'authentification à deux facteurs est activée.
Plusieurs tentatives, différents emails
Attaque automatisée. Bloquer la source IP.
Pays inhabituels
Si votre équipe est locale, les tentatives étrangères sont probablement des attaques.
Paramètres
analyste de sécurité IA
Une couche d’analyse opt-in sur les pages de sécurité : verdicts, résumés des incidents, un résumé quotidien, une vérification hebdomadaire de la posture, Ask Security et politiques de blocage du jeton 0.
Chaque page de sécurité enregistre ce qui s'est passé, mais la lecture nécessite toujours un jugement. L'analyste de sécurité IA ajoute ce jugement en place et il est conçu pour ne dépenser presque rien : il n'est jamais dans le chemin de connexion ou de balise, les règles déterministes réglent les cas évidents sans appel d'IA, les verdicts sont mis en cache et la meilleure sortie de l'analysateur est une règle déterministe qui s’applique ensuite à perpétuité avec zéro jeton. Paramètres → Sécurité; tous par défaut off.
Ce qu'il ajoute
Chips de verdict + Expliquer
Blocked IPs Les lignes Connexions réussies et Échecs de connexion montrent une puce bénigne / suspecte / hostile avec un score de confiance. Expliquer ouvre le raisonnement, les faits utilisés et les actions Bloquer / Libérer en un clic. 24h, so re-viewing an IPL'accès est gratuit.
Briefs d'incidents
Les événements connexes sont regroupés en un seul incident (vague de connexion, analyse URL, rafale de blocage automatique) avec une chronologie en anglais clair et une étape suivante recommandée.
Résumé quotidien
Un résumé par jour: hier par rapport à votre baseline, les blocages, les incidents et la seule chose à faire. Les jours calmes envoient un all-clear déterministe avec zéro jeton.
Vérification hebdomadaire de la posture
Une checklist de durcissement du lundi (lacunes 2FA, seuil de verrouillage par rapport au volume d’attaque réel, alertes désactivées) avec une sévérité, un effort et une solution exacte par élément.
Demandez à la sécurité
Une boîte de question sur la vue d'ensemble de sécurité qui répond à partir de votre état de sécurité en direct. Les questions profondes du serveur sont transmises au chat de l'ingénieur administrateur plutôt que deviné.
Propositions de politique + pilote automatique
L'analyste propose des règles de bloc concret comme cartes d'approbation / rejet; les règles approuvées s'appliquent à zéro jeton avec un compteur de succès en direct. Le pilote automatique optionnel n'approuve que les règler les plus sûres automatiquement.
Paramètres
Analyste de sécurité IA (security_ai_enabled)
Commutateur maître. Active les puces de verdict, explique et demande la sécurité. Seulement ambigu IPs atteindre le modèle, loté en un seul appel.
Résumés d'incidents (security_ai_incident)
Regroupe les événements en incidents et écrit chaque nouvelle histoire sur le cron de sécurité horaire existant.
Résumé quotidien (security_ai_digest)
Un résumé de sécurité par jour sur la cloche et l'aperçu. Les jours tranquilles ne coûtent rien.
Contrôle hebdomadaire de la posture (security_ai_posture)
La liste de contrôle du durcissement du lundi sur l'aperçu. La liste est entièrement déterministe.
Pilote automatique de politique (security_ai_autopilot)
Permet à l'analyste d'activer ses propositions les plus sûres sans surveillance: blocs réversibles limités dans le temps uniquement, unique IPs ou des fourchettes ne dépassant pas. /24, Jamais partagé/mobile/privé, plafonné 10 par heure, toujours audité et réversible.
💡
Chaque appel est marqué security_ai avec son propre plafond mensuel dans AI Config → Cost Guardrails (jetons par défaut 300k). Si le bouchon est touché, les fonctionnalités dégradent pour des lectures déterministes. Bloquer, lock-out et alertes ne dépendent jamais de ce budget. L'analyste ne peut jamais supprimer les données, modifier les paramètres, toucher le registre d'audit, ou faire une interdiction permanente.
Opérations
Cron et automatisation
OpsIQ utilise un planificateur de produit pour exécuter le sondage par e-mail, l'automatisation des tickets, les agrégats d'analyse, la rétention, les files d'attente IA, le travail CRM, les rapports et les tâches de connecteur.
Écran de produitUne entrée cron produit fournit le battement du cœur; OpsIQ décide quels travaux internes sont dus.
Entrée cron du produit requise
Ajoutez cette ligne unique au crontab pour le même serveur et environnement PHP qui exécute OpsIQ:
Remplacer /path/to/opsiq Utilisez le chemin complet de l'interface à ligne de commande PHP lorsque l'hôte en requiert un, par exemple /usr/bin/php8.4.
N'utilisez pas le niveau supérieur /cron.php Pour le travail de produit. Dans ce référentiel, le coureur appartient à un service distinct non-produit en dehors de ce manuel. OpsIQ Le produit runner est opsiq/cron/all.php.
Ce que le planificateur unifié conduit
Files d’attente des tickets et de l’IA
Traite les réponses automatiques, les escalades, les approbations et autres travaux de produits en attente.
Courriel entrant
Les boîtes aux lettres configurées pour les sondages où le sondage est la méthode d'entrée sélectionnée.
Analyses et sessions
Assemble les sessions et actualise les agrégats planifiés lorsqu'ils sont dus.
CRM et engagement
Exécute les tâches de notation, cycle de vie, workflow, campagne et rapport planifié qui sont activées.
Conservation et entretien
Effectue le nettoyage, l'archivage, l’expiration et l'intégrité des travaux.
Connecteurs
Envoie les abonnés cron du connecteur et interroge uniquement pour les connecteurs installés, activés et configurés.
Vérifier le cron
Ouvert Paramètres - Configuration de Cron et confirmez que le produit existe.
Utilisation Courir maintenant Une fois, puis confirmez la mise à jour des battements de cœur d'administration et de sondage.
Vérifier Diagnostic pour un problème de heartbeat tardif, PHP CLI, base de données ou chemin de fichier.
Inspecter /tmp/opsiq-cron.log ou le chemin de journal que vous avez sélectionné lorsqu'une exécution manuelle échoue.
Faites des synchronisations longues par lots et stockez un curseur/point de contrôle afin que la prochaine exécution puisse se poursuivre en toute sécurité.
🚫
Lorsque le cron du produit s'arrête, le travail OpsIQ basé sur le temps s'interrompt ou devient tardif même si les pages d'administration ordinaires peuvent toujours se charger.
Opérations
Opérations de déploiement hébergées
Un déploiement OpsIQ hébergé utilise les mêmes écrans et flux de travail que le produit, tandis que l'opérateur d'hébergement gère la couche serveur. Les procédures commerciales d'inscription, de planification, de facturation et de portail de compte sont en dehors du présent manuel.
Écran de produitL'opération hébergée change qui maintient l'infrastructure; elle ne change pas la façon dont les clients utilisent OpsIQ.
Ce que l'hébergeur gère normalement
Serveur Web, PHP runtime, service de base de données, TLS et stockage.
Le cron du produit unifié et ses journaux au niveau du serveur.
Mises à jour des applications, surveillance de l’infrastructure et processus de sauvegarde défini par le contrat d’hébergement.
Ce qu’un administrateur OpsIQ continue de gérer
Installation de sites Web et widgets, paramètres d'IA, connaissances, boîtes aux lettres et workflows de support client.
Accès des équipes, départements, contrôles de sécurité, clés API, connecteurs, automatismes et paramètres de rétention des données.
Vérification du produit par le biais de diagnostics, d’un journal d’audit, de tests de connecteurs et de vérifications réelles de bout en bout.
Contrôles opérationnels
Ne présumez pas qu'un service géré signifie que chaque intégration de produit est saine. Confirmez les dernières preuves de sauvegarde et la politique de conservation avec l'opérateur d'hébergement, et utilisezOpsIQDiagnostics après les changementsDNS, e-mail, fournisseurs d'IA, sites Web ou connecteurs.
L'intégration commerciale, les abonnements, la facturation et l'administration des comptes clients restent en dehors du manuel OpsIQ.
Opérations
Hébergement en self-catering OpsIQ
A self-hosted OpsIQ Vous êtes responsable de l'environnement d'exécution, de la base de données, du TLS, cron produit, sauvegardes, mises à jour et surveillance.
Écran de produitL'auto-hébergement donne le contrôle de l'infrastructure et rend votre équipe responsable de chaque dépendance d'exploitation.
Contrat minimum de logiciel
PHP
PHP 8.4 ou plus récent. Extensions obligatoires : boucle, pdo_mysql, mbstring, json, xml, ouvre, zip, intl et gd.
Base de données
MySQL 5.7+ ou MariaDB 10.3 Créez une base de données dédiée et un utilisateur d'application le moins privilégié.
Serveur Web
Apache ou Nginx configuré pour le contrôleur frontal OpsIQ, les ressources statiques et les réécritures requises.
HTTPS
Requis pour les sessions d'administration, le trafic de widget, les clés API, les webhooks et les appels au fournisseur.
Accès sortant
Autorisez l’accès DNS et HTTPS aux points de terminaison d’IA, de messagerie électronique, de connecteur et de licence que vous activez réellement.
Accès aux fichiers
Les utilisateurs Web et CLI doivent pouvoir lire les fichiers d'application et écrire uniquement dans les emplacements de stockage/d'exécution documentés.
Cron
Exécutez le planificateur de produits OpsIQ toutes les minutes avec la même configuration d'application et l'accès à la base de données que le processus Web.
Séquence d'installation
Chargez la version à la racine du document prévu et conservez la structure de répertoire fournie.
Créez l'utilisateur de base de données et d'application, puis entrez la base de donnée, le URL canonique et les paramètres de licence.
Exécutez le processus d'installation et créez le premier compte propriétaire.
Activez HTTPS et vérifiez les redirections, les cookies et le chemin public du widget/API.
Ouvrez Paramètres - Configuration et diagnostics de Cron; exécutez le planificateur une fois et résolvez toutes les dépendances échouées.
Configurez les procédures de sauvegarde, de restauration des tests, de conservation des journaux et de mise à jour avant d'ajouter des données de production.
Mettre à jour en toute sécurité
Lisez les notes de version et vérifiez les extensions PHP/Firefox requises avant de modifier des fichiers.
Sauvegardez la base de données et les fichiers d'application/configuration, puis prouvez que la sauvegarde peut être restaurée dans un emplacement de test.
Déployez les nouveaux fichiers sans supprimer la configuration spécifique à l'installation ou les données d'exécution.
Exécutez le processus de migration/preflight fourni et vérifiez la connexion, le suivi des widgets, les tickets, l’e-mail, l'IA, les connecteurs et le cron.
Gardez la version précédente et la sauvegarde de base de données disponibles pour la fenêtre de restauration documentée.
🚫
Le dépôt de haut niveau /cron.php Ce n'est pas le. OpsIQ Pointez l'automatisation du produit uniquement à. opsiq/cron/all.php.
⚠️
Ne supprimez pas. schema_cache.json pour des raisons de maintenance courante, mais uniquement lorsque les instructions du produit exigent explicitement une reconstruction du cache schema.
Opérations
Guide de production
Liste de contrôle et meilleures pratiques pour exécuter OpsIQ en production.
Guide de productionUne checklist de mise en ligne pour que rien ne soit manqué: domaine + SSL, IA entraînée, connecteurs et cron testés, sauvegardes et rétention, et rôles d'équipe.
Avant de passer en direct
HTTPS configuré
SSL installé, redirections HTTP, HSTS activé.
Cron en cours d'exécution
Vérifiez via la page de diagnostics.
AI testé
Discutez en tant que client. Vérifiez l'exactitude et le ton.
Widget installé
Sur toutes les pages du site. Vérifier avec le flux en direct.
Sauvegarde configurée
Sauvegardes quotidiennes automatisées de la base de données et des fichiers.
Enregistrement des erreurs
Le journal d'erreurs PHP est activé et surveillé.
Équipe invitée
Tous les membres ont des comptes avec les rôles corrects.
Base de connaissances remplie
Au moins 5-10 Articles.
Quotidiennement: Vérifiez le tableau de bord, effacez la file d'attente des tickets, vérifiez les conversations AI.
Hebdomadaire: Examiner les informations sur l'IA, mettre à jour la base de connaissances, vérifier les performances de l'équipe, examiner la sécurité.
Mensuellement : Examinez les tendances d’analyse, vérifiez les connecteurs, mettez à jour la formation en IA et vérifier les sauvegardes.
Opérations
Liste de contrôle préalable au lancement
Exécutez les sources gates et effectuez des vérifications de produit réelles avant une sortie ou un premier lancement en production. Le fait qu'une commande soit disponible ne prouve pas qu'elle a été validée dans votre environnement.
Écran de produitLa vue de libération montre les portes requises pour fonctionner; elle ne les pré-étiquette pas comme passées.
Portes de source et de libération
Exécutez les vérifications du dépôt à partir de la racine d'installation et conservez leur sortie complète avec l'enregistrement de version.
Portail primaire de preflight
php tools/preflight.php
Porte de libération prolongée
php tools/release_gate.php
Le preflight vérifie l'environnement d'exécution PHP 8.4 et les extensions requises, effectue un balayage de la syntaxe PHP, exécute le ship gate d'évaluation AI et la suite complète PHPUnit, et exécut des vérifications PHPStan/Node lorsque ces outils sont installés. Le gate étendu comprend également des contrôles smoke, clean-install/schema et navigateur de bout en bout lorsque leur environnement est configuré.
Enregistrez la raison pour laquelle il n'était pas disponible, installez les dépendances manquantes ou exécutez-le dans l'environnement de CI/Staging approprié avant sa publication.
Contrôles de produits
1. Authentification et rôles
Connectez-vous en tant que chaque rôle prévu; vérifiez les pages/actions autorisées et refusées.
2. Widget et suivi
Chargez un vrai site dans un navigateur privé; vérifiez le trafic de balise, le flux en direct, les enregistrements des visiteurs et des sessions.
3. Chat et IA
Poser des questions représentatives; vérifier l'ancrage des connaissances, la sécurité, l'escalade et l'historique de l'IA.
4. Billets
Créez, assignez, répondez, transférez, fermez et rouvrez chaque chemin d'entrée activé.
5. Courriel
Testez la remise sortante et chaque chemin de boîte aux lettres entrante ou webhook configuré.
6. CRM et analyses
Créez un contact/affaire/conversion contrôlé et vérifiez les tableaux de bord, entonnoirs, scores et rapports.
7. Connecteurs
Exécutez des tests de connexion, une lecture, un safe write/dry run et des chemins webhook/polling pour chaque connecteur activé.
8. API Webhooks et webhook
Vérifiez les portées étroites, les limites de débit, les réessais idempotents, les signatures et la gestion des doublons.
9. Cron
Exécutez le planificateur de produit unifié et confirmez tous les battements requis dans Cron Setup/Diagnostics.
10. Sécurité
Vérifiez l'authentification à deux facteurs, les contrôles CSRF/de session, les entrées d'audit, la révocation de clés et l'isolation des espaces de travail.
11. Sauvegarde et restauration
Restaurez une sauvegarde récente dans un environnement de test distinct, puis vérifiez les données et la configuration.
12. Observabilité et retour en arrière
Confirmez les journaux/alertes, conservez les ID de requête et prouvez la procédure de rétablissement.
⚠️
Déployez uniquement après que chaque porte requise et parcours critique ait des preuves actuelles pour la version exacte et l'environnement.
Développeur
Web Push sur des sites tiers
Notifications de poussée du navigateur (y compris OpsIQ Push Campaigns) ont besoin d'un travailleur de service servi de l'ORIGINE DU MÊME comme page.OpsIQ widget charges de votre OpsIQ déploiement, de sorte qu'un site tiers ne peut pas enregistrer OpsIQ's worker directly. Hôte un petit fichier sur le propre domaine du site pour permettre de pousser là-bas. Campagnes livrer par les deux méthodes prises en charge.
Comment ça fonctionnePousser sur le Web
Pourquoi cela est nécessaire
Navigateurs laissez seulement une page enregistrer un travailleur de service de sa propre origine. Le widget charge cross-origin de votre OpsIQ déploiement, donc il ne peut pas installer le travailleur push sur un site client, jusqu'à ce que vous hébergez le travailleur sur l'origine de ce site, le widget saute silencieusement push (pas d'erreur, aucun abonnement). Vous avez deux options ci-dessous;OpsIQ Push Campaigns publie les deux.
Option A · Push Web auto-organisé (VAPID, aucun tiers)
1. Téléchargez le worker depuis votre déploiement OpsIQ: https://YOUR-OPSIQ/opsiq/opsiq-push-sw.js
2. Téléchargez-le sur votre ordinateur Web root Il est donc accessible à https://yoursite.com/opsiq-push-sw.js. Le widget Détecte automatiquement ce chemin sur l'origine de la page et l'enregistre, aucun changement d'extrait nécessaire. (Il utilise une portée étroite, donc il ne remplace jamais un travailleur de service que vous avez déjà exécuté.)
Facultatif: Si vous devez l'héberger sur un chemin non standard, pointez le widget dessus avant l'extrait de code. Il est seulement accepté quand même origine:
Optionnel · seulement si le fichier n'est PAS à la racine web
3. Dans OpsIQ, générer des clés VAPID (Paramètres → Client Chat AI → Avancé → Web Push) Le widget demande ensuite aux visiteurs l’autorisation de notification et les y abonne.
Derrière un CDN/Cloudflare? Assurez-vous /opsiq-push-sw.js retourne HTTP 200 (supprimer le cache si c'était 404 avant que vous n'envoyiez une copie; un cache 404 bloquera l'enregistrement).
Option B · Pousser les faisceaux (fournisseur géré)
1. Dans les paramètres OpsIQ, définissez le fournisseur de push à Poutre de pousseur Entrez vos Beams Numéro d'instance et Clé secrète.
2. Hébergez le service worker Beams sur la racine du site en tant que /service-worker.js. Copie https://YOUR-OPSIQ/opsiq/pusher-beams-service-worker.js, ou fusionnez cette ligne dans votre worker root existant:
Travailleur des faisceaux, hôte à https://yoursite.com/service-worker.js
3. Le widget charge automatiquement les Beams SDK et abonne chaque visiteur à l'intérêt par site. opsiq-site-<your-site-key>. Aucun autre câblage nécessaire.
Comment les campagnes fonctionnent-elles?
Les campagnes Push publient via both Les visiteurs sur le worker VAPID auto-hébergé reçoivent la Web Push chiffrée, et les visiteurs abonnés via des faisceaux de poussée obtiennent les faisceau publiés. Chaque visiteur est atteint par celui auquel il s'est abonné. Vous pouvez donc exécuter un VAPI D d'origine commune sur certains sites et des fasceaux d'autres sources sur d'autre sites.
HTTPS est requis pour les service workers et les notifications Web Push (localhost est exempté pour les tests). La boîte de réception du chat administrateur utilise déjà le même mécanisme d’intérêt Beams pour les alertes des opérateurs
Opérations
Dépannage
Problèmes courants et comment les résoudre.
Généralités
Page blanche+
Causes: ancien PHP (nécessite 8.4+), extension manquante, connexion à la base de données a échoué, permissions de fichier incorrectes.
Le tableau de bord affiche des zéros+
Vérifiez: widget installé? Cron en cours d'exécution? plage de dates correcte? IP exclus?
IA
L'IA ne répond pas+
Vérifiez: fournisseur configuré? API clé valide (utiliser la connexion de test)? budget épuisé? configuration d'IA de l'espace de travail correcte?
L’IA donne de mauvaises réponses+
Vérifiez : la base de connaissances est-elle à jour ? L’instruction est-elle claire ? Les recherches du connecteur renvoient-elles les bonnes données ? Réexaminez la conversation dans l’historique IA.
L'IA est lente+
Dépend de: la vitesse du fournisseur API, la taille du contexte (grand KB = plus de jetons = moins rapide), la latence réseau.
Suivi
Widget manquant+
Vérifiez: script dans la source de la page? erreurs JS dans la console? blocage CSP? bloqueur d'annonces?
Pays inconnu+
Utilisez Cloudflare (automatique) ou la base de données MaxMind GeoLite2.
Billets
Les e-mails ne créant pas de tickets+
Vérifiez: boîte aux lettres connectée? Cron en cours d'exécution? IMAP Les paramètres sont corrects?
La réponse automatique ne fonctionne pas+
Vérifiez: activé? Département autorisé? IA configurée? Cron en cours d'exécution?
Connecteurs
La connexion a échoué+
Vérifier: les informations d'identification sont-elles correctes? API Accessible depuis le serveur? Base URL C'est correct?
Connecté mais pas de données+
Vérifiez: API portée de la clé? Webhook sync activé? Cron en cours d'exécution?
Résultats
Pages lentes+
Vérifiez: performances de la base de données (SHOW PROCESSLIST), mémoire PHP (augmentez à 1GB), activer l'opcache, réduisez la période de rétention.
Opérations
Widget ne consignant pas les visites
Utilisez cette vérification ciblée lorsque le widget se charge incorrectement ou que Live Feed reste vide.
Lorsque le Le widget n'enregistre pas les visites, vérifiez la clé du site, chargez la page dans un navigateur privé, vérificez les panneaux Réseau/Console du navigateur pour vérifier si des requêtes de balises ou de widgets ont été bloquées, consultez la politique de sécurité du contenu et les bloqueurs d'annonces, confirmez que le site est actif dans OpsIQ et ouvrez Diagnostics.
Référence
Glossaire
Définitions des termes utilisés dans OpsIQ.
Décision
Quelque chose que l’IA peut faire via un connecteur ou la plateforme.
Agent
Un membre de l’équipe avec un accès limité ou un agent d’IA.
Un plugin intégrant une plateforme externe avec OpsIQ.
CSAT
Score de satisfaction client.
Marché conclu
Une opportunité de revenus dans le CRM.
Département
Une catégorie de ticket pour le routage et le contrôle d'accès.
Escalade
Déplacer un ticket vers un autre service ou de l’IA à l’humain.
GéoIP
Détection de l'emplacement du visiteur à partir de l’adresse IP.
Délivrance
Transférer une conversation de l’IA à l’humain.
Jeton d'identité
Jeton signé identifiant un visiteur du site Web.
Base de connaissances
Articles que l'IA utilise pour répondre aux questions.
Plomb
Un visiteur montrant une intention d'achat.
Score du prospect
0-100 Nombre indiquant la probabilité de conversion.
Étape du cycle de vie
Où un client est: Lead, prospect, client, à risque, churned.
IA gérée
AI fournie dans le cadre de votre plan OpsIQ.
Pipeline
Tableau visuel des étapes de l'opération.
RBAC
Contrôle d'accès basé sur les rôles.
Séance
Une série de pages vues dans une fenêtre d'expiration.
Clé de site
Identifiant unique pour un site Web suivi.
SLA
Accord sur le niveau de service, délais de réponse cibles.
Jeton
Unité de texte d'IA. 4 caractères = 1 token.
Couche de confiance
Système de sécurité contrôlant l’autonomie de l’IA.
Couvertures Web
Rappel HTTP pour les notifications d'événements.
Widget
Code JavaScript incorporé sur votre site Web.
Espace de travail
Un site avec son propre suivi, IA, connecteurs et équipe. Même que "site".
Référence
Obtenir plus d'aide
Si cette documentation ne répond pas à votre question:
Admin IA
Cliquez sur "Ask OpsIQ" dans l'administration. A accès à cette documentation et vos données de plateforme.
Ticket de support
Inclure: ce que vous avez essayé, ce qui s'est passé, ce à quoi vous vous attendiez et les messages d'erreur.
Courriel
Envoyez un e-mail au support avec votre clé de licence et la description du problème.
Conseils pour des demandes de support efficaces
Inclure la page
Quelle page d'administration (URL ou nom).
Inclure le paramètre
Nom exact du réglage et valeur actuelle.
Inclure l'erreur
Message d'erreur exact avec des codes.
Inclure les étapes
Ce que vous avez fait, étape par étape.
Inclure les prévisions par rapport aux chiffres réels
Ce qui devrait se passer par rapport à ce qui s’est réellement passé.
💡
Plus votre demande est spécifique, plus la réponse sera rapide. « Cela ne fonctionne pas » nécessite une enquête. « Cliquer sur Enregistrer dans Configuration de l'IA donne le code d'erreur 502» obtient une réponse directe.