Applications et intégrations
Par Sojan
Par Sojan
Connectez Chatwoot à des outils et services externes afin d’étendre et d’automatiser vos workflows d’assistance.
Comment suivre les problèmes et les fonctionnalités avec l'intégration Linear ?
Si votre entreprise, compte ou projet utilise Linear comme outil de gestion de projet, vous pouvez l’intégrer à Chatwoot pour gérer toutes les conversations dans votre espace de travail Linear. Vous pouvez créer de nouveaux tickets Linear directement depuis votre fenêtre de conversation ou les relier à des tickets existants pour un suivi simplifié. Pour commencer la configuration, suivez les étapes ci-dessous. Si vous utilisez une instance Chatwoot auto-hébergée, veuillez suivre ce guide. Comment connecter l’intégration Linear ? Étape 1. Rendez-vous dans Paramètres → Intégrations → Linear. Cliquez sur le bouton "Configurer" Étape 2. Cliquez sur le bouton Connecter. Lorsque l’avis de consentement apparaît, cliquez sur Autoriser pour accorder les permissions. Une fois terminé, vous serez redirigé vers l’application Chatwoot. Voilà ! Vous pouvez maintenant utiliser Linear dans votre compte Chatwoot. Fonctionnalités prises en charge Créer des tickets depuis la conversation Pour créer un nouveau ticket, ouvrez n’importe quelle conversation et cliquez sur le bouton Linear dans l’en-tête de la conversation. Remplissez ensuite les détails du ticket, y compris le titre, la description et l’équipe. Après avoir complété les détails, cliquez sur le bouton Créer pour ajouter le ticket à votre espace de travail Linear avec la conversation associée. Le ticket sera créé dans votre espace de travail Linear avec la conversation liée. Lier à des tickets existants. Pour associer une conversation à un ticket existant, cliquez sur l’onglet lier un ticket, recherchez le ticket puis cliquez sur "Lier" pour le connecter au ticket Linear.
Comment suivre les commandes avec l'intégration Shopify
Si votre entreprise, compte ou projet utilise Shopify comme outil, vous pouvez l'intégrer à Chatwoot pour voir toutes les commandes liées à un contact particulier. Les agents du support peuvent consulter les commandes, leur statut et le lien vers la page de commande dans la barre latérale de la conversation. Cette intégration permet le suivi des commandes et offre aux équipes de service client des informations cruciales sur les commandes sans quitter l'interface de Chatwoot. Les agents peuvent rapidement accéder aux détails des commandes, y compris le statut de livraison, les informations de paiement et les spécifications des produits directement depuis la barre latérale de la conversation. Si vous utilisez une instance Chatwoot auto-hébergée, veuillez suivre ce guide. Comment connecter l'intégration Shopify ? Étape 1. Rendez-vous dans Paramètres → Intégrations → Shopify. Cliquez sur le bouton « Configurer » Étape 2. Cliquez sur le bouton Connecter. Étape 3. Saisissez l'URL de votre boutique Shopify puis cliquez sur le bouton Confirmer. Étape 4. Vous serez redirigé vers la page Shopify. Cliquez sur le bouton Installer l’application. Étape 5. Une fois l'installation terminée, vous serez redirigé vers le tableau de bord Chatwoot. Voilà ! Vous pouvez désormais utiliser Shopify dans votre compte Chatwoot. Fonctionnalités prises en charge Chatwoot affiche toutes les commandes pour les contacts dont le numéro de téléphone ou l’email correspond à leur fiche Shopify.
Comment activer les appels vidéo avec l'intégration de Dyte ?
L'intégration Dyte n'est plus prise en charge pour les nouvelles configurations. Dyte est passé à Cloudflare RealtimeKit, et Chatwoot utilise désormais Cloudflare RealtimeKit pour les appels vidéo. Veuillez utiliser le guide de configuration Cloudflare RealtimeKit pour configurer les appels vidéo. Appeler vos clients en vidéo est un excellent moyen d'établir un contact rapidement, de comprendre efficacement leurs problèmes, de fournir des solutions plus rapides et de recueillir des informations précieuses pour votre entreprise. Vous pouvez appeler vos clients en vidéo via le chat en direct du site web sur Chatwoot. Pour profiter de cette fonctionnalité, vous devez activer l'intégration Dyte. Ce guide vous explique comment faire. P.S. Si vous ne possédez pas encore de compte Dyte, vous devrez d'abord en créer un. Comment configurer l'intégration Dyte dans Chatwoot ? Étape 1. Rendez-vous dans Paramètres -> Applications -> Dyte. Cliquez sur le bouton "Configurer" correspondant. Étape 2. La page de l'application Dyte s'affiche. Cliquez sur le bouton "Connecter". Étape 3. Saisissez votre identifiant d'organisation et votre clé API provenant de Dyte. Comment trouver vos informations de configuration Dyte ? Pour trouver ces informations, rendez-vous dans la section "API Keys" de votre portail développeur Dyte. Dans Chatwoot, une fois les valeurs renseignées, cliquez sur le bouton "Créer". Votre intégration Dyte est maintenant terminée. Comment appeler vos clients en vidéo depuis Chatwoot ? Une fois l'intégration Dyte activée, l'option d'appel vidéo apparaîtra dans la fenêtre de chat de la boîte de réception du site web. Pour inviter votre client à un appel vidéo, suivez les étapes ci-dessous. Étape 1. Cliquez sur l'icône de caméra vidéo sous l'éditeur de texte. Étape 2. Chatwoot enverra à votre client un message d'invitation à rejoindre l'appel vidéo. Cliquez sur le bouton "Cliquez ici pour rejoindre" pour accéder à la salle. Étape 3. Vous êtes maintenant connecté(e) à votre client. L'interface d'appel vidéo vous propose de nombreuses options pour enrichir votre expérience et celle de votre client. Quelques-unes de ces options sont illustrées dans la capture d'écran ci-dessous :
Comment traduire des messages avec Google Traduction ?
Si vous recevez fréquemment des demandes dans des langues que vous ou les membres de votre équipe ne comprenez pas, vous pouvez utiliser l’intégration Google Translate dans Chatwoot. Une fois activée, vous pouvez traduire instantanément les messages entrants via le menu clic droit. De cette manière, vous pouvez facilement communiquer avec vos clients dans leur langue maternelle, même si vous ne la parlez pas vous-même. Comment activer Google Translate dans Chatwoot ? Étape 1. Allez dans Paramètres -> Applications -> Google Translate. Cliquez sur le bouton "Configurer" correspondant. Étape 2. Vous accéderez à la page de l'application Google Translate. Cliquez sur le bouton "Connecter". Étape 3. Entrez votre identifiant de projet Google Cloud et votre fichier de clé de projet. Si vous avez besoin d’aide pour obtenir ces valeurs, consultez cette documentation de Google. Une fois que vous avez saisi les valeurs, cliquez sur le bouton "Créer". L’intégration Google Translate est maintenant terminée. Comment changer la langue de traduction ? Vos messages sont traduits dans la langue de votre site. Pour sélectionner la langue de votre site, rendez-vous sur la page "Paramètres du compte". Étape 1. Allez dans Paramètres -> Paramètres du compte -> Langue du site. Ouvrez le menu déroulant et sélectionnez votre langue préférée. Étape 2. Cliquez sur le bouton "Mettre à jour les paramètres" en haut à droite de la page. Cela traduira tout votre tableau de bord dans la langue sélectionnée. Remarque : Les agents peuvent également sélectionner individuellement leur langue préférée. Comment traduire les messages entrants ? Chaque fois que vous recevez un message dans une langue avec laquelle vous avez besoin d’aide, cliquez sur les 3 points à côté du message pour ouvrir le menu et sélectionnez "Traduire". Visualisez le contenu traduit directement dans la conversation. Comment créer un compte de service dans Google Cloud Console ? Pour créer un compte de service pour l’API Google Translate, commencez par vous connecter à la Google Cloud Console et sélectionnez ou créez un nouveau projet. Une fois votre projet prêt, activez l’API Cloud Translation en allant dans « API et services » > « Bibliothèque » et en recherchant « Cloud Translation API ». Cliquez sur « Activer » pour l’activer sur votre projet. L’activation de la facturation est également nécessaire si ce n’est pas déjà fait. Ensuite, allez dans « IAM et administration » > « Comptes de service » et cliquez sur « Créer un compte de service ». Indiquez un nom (par exemple, translate-api-user) puis continuez pour assigner le rôle « Utilisateur de l’API Cloud Translation ». Après avoir créé le compte de service, rendez-vous dans la section « Clés », cliquez sur « Ajouter une clé » et sélectionnez « Créer une nouvelle clé » au format JSON. Téléchargez et conservez ce fichier JSON en lieu sûr. Utilisez le contenu du fichier reçu ci-dessus dans le champ de saisie Fichier de clé de projet Google Cloud dans Chatwoot.
Comment répondre aux conversations sur Slack ?
Si votre entreprise/compte/projet utilise Slack comme moyen de communication, vous pouvez intégrer Slack avec Chatwoot pour gérer toutes les conversations de votre boîte de réception directement dans votre espace de travail Slack. Pour commencer la configuration rapide, suivez les étapes expliquées ci-dessous. Si vous utilisez une instance Chatwoot auto-hébergée, veuillez suivre ce guide. Comment intégrer Slack avec Chatwoot ? Étape 1. Rendez-vous dans Paramètres -> Intégrations -> Slack -> Connecter. Étape 2. Saisissez l’URL de votre espace de travail Slack comme demandé. Étape 3. Passez en revue les autorisations et autorisez l’application Chatwoot à accéder à votre espace de travail Slack. Étape 4. Vous serez redirigé vers l’écran de configuration, où vous pourrez voir une liste de vos chaînes Slack (publiques et privées). (Pour les chaînes privées, voir la section ci-dessous) Vous devez sélectionner la chaîne de votre choix dans le menu déroulant où vous souhaitez recevoir vos conversations Chatwoot. Cliquez sur le bouton Mettre à jour. L’intégration est maintenant terminée. Note importante Si vous avez connecté Slack avant septembre 2023, vous n’aviez pas la possibilité de sélectionner une chaîne Slack spécifique pour gérer vos conversations. Si vous souhaitez changer cela et sélectionner une chaîne en particulier, vous devrez supprimer l’intégration Slack existante de l’application Chatwoot et la connecter à nouveau. FAQ Q. Je réponds à un message, mais il n’apparaît pas dans la boîte de réception Chatwoot. R : Lorsque vous répondez à un message, répondez sous le même fil de discussion. Chaque fil représente une conversation distincte, donc pour que votre réponse soit liée au bon message, vous devez y répondre sous le fil. Nous utilisons l’ID du fil pour vérifier la conversation séparée. Fonctionnalités prises en charge Répondez depuis votre profil agent Lorsque vous répondez à une conversation depuis Slack, le client reçoit la réponse depuis votre profil Agent dans Chatwoot. Créez des notes privées depuis Slack Vous pouvez créer une note privée dans Chatwoot à partir de Slack. Si vous commencez un message par « note : », il sera converti en note privée et tous les agents tagués seront notifiés. Voici un exemple : Comment ajouter Chatwoot à des chaînes privées ? Chatwoot ne sera pas ajouté par défaut à vos chaînes Slack privées. Vous devrez l’ajouter manuellement. Voici comment procéder : Étape 1 : Après votre authentification avec Slack, vous serez redirigé vers une page dans Chatwoot où vous pourrez sélectionner la chaîne souhaitée. Étape 2 : Allez sur Slack et ouvrez la chaîne privée que vous souhaitez connecter. Cliquez sur les icônes d’utilisateurs en haut de la chaîne. Accédez à Intégrations → Ajouter des applications. Étape 3 : Recherchez Chatwoot. Vous verrez l’application Chatwoot dans la liste. Étape 4 : Cliquez sur Chatwoot pour l’ajouter à la chaîne privée. Un message de confirmation apparaîtra indiquant que Chatwoot a bien été ajouté. Étape 5 : Retournez dans l’application Chatwoot et actualisez la page. La chaîne devrait maintenant apparaître dans la liste. Sélectionnez la chaîne et terminez l’intégration. Remarque : Si cela ne fonctionne toujours pas, connectez l’intégration Slack avec une chaîne publique, puis supprimez l’intégration depuis Chatwoot et reconnectez-la à nouveau.
Comment utiliser les applications du tableau de bord ?
Avec les applications Dashboard, vous pouvez intégrer une application dans le tableau de bord Chatwoot à destination des agents. Cette fonctionnalité vous permet de créer une application de manière indépendante, qui peut ensuite être intégrée pour fournir des informations sur les clients, commandes, historiques de paiements, etc. Lorsque votre application est intégrée dans le tableau de bord de Chatwoot, elle recevra le contexte de la conversation et du contact via un événement window. Implémentez un écouteur pour l’événement message sur votre page afin de recevoir le contexte. P.S. Regardez notre YouTube live sur la création d’une application Dashboard. Comment créer une application dashboard ? Étape 1. Rendez-vous dans Paramètres → Intégrations → Applications Dashboard. Cliquez sur le bouton “Configurer” correspondant aux applications Dashboard. Étape 2. Ajoutez le nom de votre application et l’URL où votre application est hébergée. Une fois cela fait, un nouvel onglet avec le nom que vous avez donné à l’application apparaîtra dans la fenêtre de conversation. Dans ce cas, il s’agit de “Commandes clients”. Lorsque vous cliquez sur le nouvel onglet, vous verrez votre application récupérer des données sur le tableau de bord Chatwoot. Recevoir des données de Chatwoot dans votre application Chatwoot enverra le contexte de la conversation et du contact via un événement window. Ceci peut être accessible dans votre application en implémentant un écouteur pour l’événement, comme ci-dessous : window.addEventListener("message", function (event) { if (!isJSONValid(event.data)) { return; } const eventData = JSON.parse(event.data); }); Requête à la demande de données depuis Chatwoot Si vous avez besoin de demander les données de la conversation à la demande depuis Chatwoot, vous pouvez envoyer un message à la fenêtre parente à l’aide de l’API javascript postMessage. Chatwoot écoutera cette clé : chatwoot-dashboard-app:fetch-info. Exemple Le code suivant peut être utilisé pour interroger l’application Dashboard. Chatwoot répondra à cette requête en fournissant rapidement la charge utile actualisée de la conversation. window.parent.postMessage('chatwoot-dashboard-app:fetch-info', '*') // Vous recevrez un message dans l’écouteur de messages avec la charge utile appContext. Charge utile de l’événement Objet conversation { "meta": { "sender": { "additional_attributes": { "description": "string", "company_name": "string", "social_profiles": { "github": "string", "twitter": "string", "facebook": "string", "linkedin": "string" } }, "availability_status": "string", "email": "string", "id": "integer", "name": "string", "phone_number": "string", "identifier": "string", "thumbnail": "string", "custom_attributes": "object", "last_activity_at": "integer" }, "channel": "string", "assignee": { "id": "integer", "account_id": "integer", "availability_status": "string", "auto_offline": "boolean", "confirmed": "boolean", "email": "string", "available_name": "string", "name": "string", "role": "string", "thumbnail": "string" }, "hmac_verified": "boolean" }, "id": "integer", "messages": [ { "id": "integer", "content": "Hello", "inbox_id": "integer", "conversation_id": "integer", "message_type": "integer", "content_type": "string", "content_attributes": {}, "created_at": "integer", "private": "boolean", "source_id": "string", "sender": { "additional_attributes": { "description": "string", "company_name": "string", "social_profiles": { "github": "string", "twitter": "string", "facebook": "string", "linkedin": "string" } }, "custom_attributes": "object", "email": "string", "id": "integer", "identifier": "string", "name": "string", "phone_number": "string", "thumbnail": "string", "type": "string" } } ], "account_id": "integer", "additional_attributes": { "browser": { "device_name": "string", "browser_name": "string", "platform_name": "string", "browser_version": "string", "platform_version": "string" }, "referer": "string", "initiated_at": { "timestamp": "string" } }, "agent_last_seen_at": "integer", "assignee_last_seen_at": "integer", "can_reply": "boolean", "contact_last_seen_at": "integer", "custom_attributes": "object", "inbox_id": "integer", "labels": "array", "muted": "boolean", "snoozed_until": null, "status": "string", "timestamp": "integer", "unread_count": "integer", "allMessagesLoaded": "boolean", "dataFetched": "boolean" } Objet contact { "additional_attributes": { "description": "string", "company_name": "string", "social_profiles": { "github": "string", "twitter": "string", "facebook": "string", "linkedin": "string" } }, "availability_status": "string", "email": "string", "id": "integer", "name": "string", "phone_number": "+91 9000000001", "identifier": "string || null", "thumbnail": "+91 9000000001", "custom_attributes": {}, "last_activity_at": "integer" } Objet currentAgent { "email": "string", "id": "integer", "name": "string" } Charge utile finale { "event": "appContext", "data": { "conversation": { // <...Attributs de la conversation> }, "contact": { // <...Attributs du contact> }, "currentAgent": { // <...Attributs de l'agent actuel> } } }
Comment activer les appels vidéo avec Cloudflare RealtimeKit ?
La visioconférence permet à votre équipe de se connecter rapidement avec les clients, de comprendre clairement les problèmes et de fournir une assistance plus rapide. Chatwoot prend en charge les appels vidéo pour les conversations de chat en direct sur le site web via l’intégration Cloudflare RealtimeKit. Ce guide explique comment créer les identifiants requis pour Cloudflare RealtimeKit, les connecter à Chatwoot et démarrer un appel vidéo depuis une conversation. Remarque : si vous utilisiez précédemment l’intégration Dyte, utilisez Cloudflare RealtimeKit pour les nouvelles configurations. L’infrastructure héritée de Dyte va être arrêtée après l’acquisition par Cloudflare. Prérequis Avant de commencer, assurez-vous d’avoir : - Accès à votre compte Cloudflare. - L’autorisation de créer une application RealtimeKit dans Cloudflare. - L’autorisation de créer des jetons API Cloudflare. - L’accès administrateur à votre compte Chatwoot. Comment créer une application RealtimeKit dans Cloudflare ? Étape 1. Ouvrez le tableau de bord Cloudflare et allez dans Realtime -> RealtimeKit. Étape 2. Cliquez sur le bouton « Créer une application ». Étape 3. Entrez un nom pour l’application. Par exemple, vous pouvez utiliser « video-support ». Cliquez sur « Créer ». Étape 4. Après la création de l’application, copiez l’ID d’application RealtimeKit. Vous aurez besoin de cette valeur lors de la connexion de l’intégration dans Chatwoot. Comment trouver votre ID de compte Cloudflare ? Étape 1. Rendez-vous sur la page d’accueil de votre compte Cloudflare. Étape 2. Cliquez sur le menu à trois points en haut à droite. Étape 3. Cliquez sur « Copier l’ID du compte ». Comment créer un jeton API Cloudflare ? Étape 1. Dans Cloudflare, allez dans Mon Profil -> Jetons API. Étape 2. Cliquez sur « Créer un jeton ». Étape 3. Sous « Jeton personnalisé », cliquez sur « Commencer ». Étape 4. Donnez un nom descriptif au jeton. Par exemple, vous pouvez utiliser « video-support ». Étape 5. Dans la section Permissions, sélectionnez : - Portée : Compte - Permission : Realtime - Accès : Admin Étape 6. Sous Ressources de compte, sélectionnez le compte Cloudflare que vous souhaitez utiliser avec Chatwoot. Vous pouvez sélectionner « Tous les comptes » si vous souhaitez que le jeton fonctionne sur tous les comptes auxquels vous avez accès. Étape 7. Vérifiez le résumé du jeton et cliquez sur « Créer un jeton ». Étape 8. Copiez le jeton API. Cloudflare n’affiche ce jeton qu’une seule fois, conservez-le donc dans un endroit sûr jusqu’à ce que vous l’ajoutiez à Chatwoot. Comment configurer l’intégration RealtimeKit dans Chatwoot ? Étape 1. Dans Chatwoot, allez dans Paramètres -> Applications -> Cloudflare RealtimeKit. Étape 2. Cliquez sur « Configurer ». Étape 3. Cliquez sur « Connecter ». Étape 4. Saisissez les valeurs suivantes : - ID de compte Cloudflare - ID d’application RealtimeKit - Jeton API Cloudflare Étape 5. Cliquez sur « Créer ». Chatwoot valide les identifiants avant d’enregistrer l’intégration. Si une valeur est incorrecte, vous verrez une erreur spécifique concernant le jeton API, l’ID de compte, les permissions ou l’ID RealtimeKit App. Une fois les identifiants enregistrés, l’intégration RealtimeKit est prête à être utilisée. Comment appeler vos clients en vidéo sur Chatwoot ? Une fois l’intégration RealtimeKit activée, vous verrez l’option d’appel vidéo dans les conversations de la boîte de réception du site web. Étape 1. Ouvrez une conversation de la boîte de réception du site web. Étape 2. Cliquez sur l’icône de caméra vidéo sous l’éditeur de réponse. Étape 3. Chatwoot envoie un message d’invitation à la réunion au client. Cliquez sur « Cliquez ici pour rejoindre » pour entrer dans l’appel. Étape 4. Le client peut rejoindre le même appel depuis le widget de chat en direct du site web. Étape 5. Une fois les deux parties connectées, l’agent et le client peuvent poursuivre la conversation en visio ou en audio.
Comment améliorer les conversations grâce à l'intégration d'OpenAI ?
Interagir avec les clients exige un professionnalisme sans relâche. La façon dont vous communiquez avec vos clients est souvent un facteur déterminant pour les ventes ainsi que pour la fidélisation. Sans parler de l’impact sur l’identité de marque. Mais pour toujours paraître parfait––il faudrait être un robot. Nous avons donc intégré l’IA à votre tableau de bord à la place. Grâce à notre intégration avec OpenAI, vous pouvez améliorer vos conversations avec les clients en temps réel. En intégrant l’IA à votre tableau de bord Chatwoot, vous pouvez améliorer vos conversations clients en temps réel, sans sacrifier votre ton ou l’identité de votre marque. Vous recevrez des suggestions alimentées par l’IA pour affiner vos messages et communiquer plus efficacement avec vos clients. La configuration de l’intégration prend moins d’une minute, et les avantages sont immédiats. Pour commencer, suivez les étapes ci-dessous. Comment intégrer OpenAI à Chatwoot ? Étape 1. Accédez à Paramètres → Applications → OpenAI. Cliquez sur le bouton « Configurer » correspondant. Étape 2. Cliquez sur le bouton "Connecter". Une fenêtre modale s’ouvrira et vous demandera votre clé API OpenAI. Pour obtenir votre clé API OpenAI, connectez-vous à votre compte OpenAI et visitez ce lien. Après avoir saisi votre clé API secrète, un message de réussite apparaîtra à l’écran. Comment utiliser les fonctionnalités IA dans Chatwoot ? Il existe trois fonctionnalités alimentées par l’IA dans Chatwoot. Les sections ci-dessous expliquent comment les utiliser. Suggestion de réponse avec IA La fonctionnalité « Suggestion de réponse avec IA » propose une réponse possible à un message client, facilitant des réponses rapides. Suivez les étapes ci-dessous pour utiliser cette fonctionnalité. Étape 1. Accédez à l’onglet Conversations depuis la barre latérale et ouvrez une conversation nécessitant une réponse. Vous devriez voir une nouvelle option appelée "Suggestion de réponse avec IA". Voici un exemple : Étape 2. Cliquez sur le bouton pour voir la suggestion. La boîte de réponse sera remplie avec la réponse suggérée. Étape 3. Modifiez votre message si vous le souhaitez, puis cliquez sur Envoyer ! Améliorer avec l’IA La fonctionnalité « Améliorer avec l’IA » suggère des améliorations à vos brouillons de messages pendant leur rédaction. Suivez les étapes ci-dessous pour utiliser cette fonctionnalité. Étape 1. Accédez à l’onglet Conversations depuis la barre latérale et ouvrez une conversation. Commencez à rédiger un message dans la boîte de texte. En écrivant, vous devriez voir une nouvelle option s’afficher appelée "Améliorer avec l’IA". Voici un exemple : Étape 2. Cliquez sur le bouton "Améliorer avec l’IA" pour voir vos options. Sélectionnez un ton pour votre message – professionnel ou amical. Cliquez sur le bouton "Générer". Selon le ton choisi, l’IA réécrira votre message et remplira instantanément la boîte de texte avec la nouvelle version. En poursuivant l’exemple, voici à quoi cela ressemble : Étape 3. Modifiez votre message si vous le souhaitez, puis cliquez sur Envoyer ! Résumé avec l’IA La fonctionnalité « Résumé avec l’IA » résume les conversations dans les Notes privées en quelques secondes. Suivez les étapes ci-dessous pour utiliser cette fonctionnalité. Étape 1. Accédez à l’onglet Conversations depuis la barre latérale et ouvrez une conversation. Passez à l’onglet “Note privée”. Vous devriez voir une nouvelle option appelée "Résumé avec l’IA". Voici un exemple : Étape 2. Cliquez sur le bouton. L’éditeur de texte sera rempli avec un résumé de la conversation. Étape 3. Modifiez votre note si vous le souhaitez, puis cliquez sur le bouton ‘Ajouter une note’ ! Comment utiliser l’Assist IA ? Vous pouvez activer ou désactiver l’assistance IA depuis la barre de commandes ou en cliquant sur le bouton Assist IA à l’intérieur de l’éditeur. Pour sélectionner la fonctionnalité souhaitée, cliquez simplement dessus. Une fois l’option sélectionnée, la fenêtre modale Suggestion de réponse avec IA s’ouvrira et affichera le contenu généré par l’IA. Pour insérer le contenu dans l’éditeur, cliquez sur le bouton Utiliser cette suggestion. FAQ Les résultats de l’Assist IA sont-ils toujours exacts ? Les résultats peuvent ne pas toujours être précis. Bien que l’Assist IA ait été conçu pour fournir des suggestions fiables, il est important que les agents relisent et vérifient ces suggestions avant de les envoyer aux clients. Par ailleurs, nous travaillons continuellement à l’amélioration de notre Assist IA. Prise en charge d’autres fournisseurs d’IA à part OpenAI Pour le moment, nous ne prenons en charge qu’OpenAI. Mais nous prévoyons d’ajouter prochainement d’autres fournisseurs.
Comment utiliser les webhooks ?
Les webhooks sont des callbacks HTTP configurés pour chaque compte. Ceux-ci sont déclenchés lorsque des actions telles que la création d'un message se produisent dans Chatwoot. Plusieurs webhooks peuvent être créés pour un seul compte. Comment ajouter un webhook ? Étape 1. Allez dans Paramètres → Intégrations → Webhooks. Cliquez sur le bouton "Configurer". Étape 2. Cliquez sur le bouton "Ajouter un nouveau webhook". Une fenêtre modale s'ouvrira. Ici, saisissez l’URL vers laquelle la requête POST doit être envoyée. Ensuite, vous devez sélectionner les événements auxquels vous souhaitez vous abonner. Cette option vous permettra d’écouter uniquement les événements pertinents dans Chatwoot. Chatwoot enverra une requête POST avec la charge utile suivante vers les URL configurées pour diverses mises à jour de votre compte. Exemple de payload de webhook { "event": "message_created", // Le nom de l'événement "id": "1", // ID du message "content": "Hi", // Contenu du message "created_at": "2020-03-03 13:05:57 UTC", // Heure à laquelle le message a été envoyé "message_type": "incoming", // Ce champ peut valoir incoming, outgoing ou template. L'utilisateur du widget envoie des messages entrants, et l'agent envoie des messages sortants à l'utilisateur. "content_type": "enum", // Ceci est un enum, il peut être input_select, cards, form ou text. Le type de message sera template si content_type est l'une de celles-ci. La valeur par défaut est text "content_attributes": {} // Ce sera un objet, différentes valeurs sont définies ci-dessous "source_id": "", // Ceci serait l’ID externe si la boîte de réception est une intégration Twitter ou Facebook. "sender": { // Ceci fournit les détails de l’agent ayant envoyé ce message "id": "1", "name": "Agent", "email": "agent@example.com" }, "contact": { // Ceci fournit les détails de l'utilisateur ayant envoyé ce message "id": "1", "name": "contact-name" }, "conversation": { // Ceci fournit les détails de la conversation "display_id": "1", // Il s'agit de l'ID de la conversation visible dans le tableau de bord. "additional_attributes": { "browser": { "device_name": "Macbook", "browser_name": "Chrome", "platform_name": "Macintosh", "browser_version": "80.0.3987.122", "platform_version": "10.15.2" }, "referer": "<http://www.chatwoot.com>", "initiated_at": "Tue Mar 03 2020 18:37:38 GMT-0700 (Mountain Standard Time)" } }, "account": { // Ceci fournit les détails du compte "id": "1", "name": "Chatwoot", } } Événements webhook pris en charge dans Chatwoot Chatwoot publie divers événements sur les endpoints webhook configurés. Si vous souhaitez configurer un webhook, consultez le guide ici. Chaque événement a sa structure de payload selon le type de modèle sur lequel il s’applique. La section suivante décrit les principaux objets que nous utilisons dans Chatwoot et leurs attributs. Objets Une charge utile d’événement peut inclure l’un des objets suivants. Les différents types d’objets pris en charge par Chatwoot sont listés ci-dessous. Compte { "id": "integer", "name": "string" } Boîte de réception { "id": "integer", "name": "string" } Contact { "id": "integer", "name": "string", "avatar": "string", "type": "contact", "account": { // <...Objet Compte> } } Utilisateur { "id": "integer", "name": "string", "email": "string", "type": "user" } Conversation { "additional_attributes": { "browser": { "device_name": "string", "browser_name": "string", "platform_name": "string", "browser_version": "string", "platform_version": "string" }, "referer": "string", "initiated_at": { "timestamp": "iso-datetime" } }, "can_reply": "boolean", "channel": "string", "id": "integer", "inbox_id": "integer", "contact_inbox": { "id": "integer", "contact_id": "integer", "inbox_id": "integer", "source_id": "string", "created_at": "datetime", "updated_at": "datetime", "hmac_verified": "boolean" }, "messages": ["Array of message objects"], "meta": { "sender": { // Objet Contact }, "assignee": { // Objet Utilisateur } }, "status": "string", "unread_count": "integer", "agent_last_seen_at": "unix-timestamp", "contact_last_seen_at": "unix-timestamp", "timestamp": "unix-timestamp", "account_id": "integer" } Message { "id": "integer", "content": "string", "message_type": "integer", "created_at": "unix-timestamp", "private": "boolean", "source_id": "string / null", "content_type": "string", "content_attributes": "object", "sender": { "type": "string - contact/user" // Objet Utilisateur ou Contact }, "account": { // Objet Compte }, "conversation": { // Objet Conversation }, "inbox": { // Objet Boîte de réception } } Exemple de payload de webhook { "event": "event_name" // Attributs liés à l'événement } Événements Webhook Chatwoot prend en charge les événements webhook suivants. Vous pouvez vous y abonner lors de la configuration d’un webhook dans le tableau de bord ou via l’API. conversation_created Cet événement est déclenché lorsqu'une nouvelle conversation est créée dans le compte. Le payload de l'événement est le suivant. { "event": "conversation_created" // <...Attributs Conversation> } conversation_updated Cet événement est déclenché lorsqu’une modification est apportée à l’un des attributs de la conversation. { "event": "conversation_updated", "changed_attributes": [ { "<attribute_name>": { "current_value": "", "previous_value": "" } } ] // <...Attributs Conversation> } conversation_status_changed Cet événement est déclenché lorsque le statut de la conversation est modifié. Note : Si vous utilisez les APIs agent bot au lieu des webhooks, cet événement n’est pas encore pris en charge. { "event": "conversation_status_changed" // <...Attributs Conversation> } message_created Cet événement est déclenché lorsqu'un message est créé dans une conversation. Le payload de l'événement est le suivant. { "event": "message_created" // <...Attributs Message> } message_updated Cet événement est déclenché lorsqu’un message est mis à jour dans une conversation. Le payload de l'événement est le suivant. { "event": "message_updated" // <...Attributs Message> } webwidget_triggered Cet événement est déclenché lorsque l’utilisateur final ouvre le widget de chat en direct. { "event": "webwidget_triggered", "id": "", "contact": { // <...Objet Contact> }, "inbox": { // <...Objet Boîte de réception> }, "account": { // <...Objet Compte> }, "current_conversation": { // <...Objet Conversation> }, "source_id": "string", "event_info": { "initiated_at": { "timestamp": "date-string" }, "referer": "string", "widget_language": "string", "browser_language": "string", "browser": { "browser_name": "string", "browser_version": "string", "device_name": "string", "platform_name": "string", "platform_version": "string" } } } conversation_typing_on Cet événement est déclenché lorsqu’un agent commence à écrire dans une conversation. Cela peut être soit une note privée, soit un message au client. Vous pouvez utiliser le flag is_private pour distinguer les deux cas. { "event": "conversation_typing_on", "conversation": { ...<Objet Conversation> }, "user": { ... <Objet User / AgentBot / Captain> }, "is_private": true } conversation_typing_off Cet événement est déclenché lorsqu’un agent arrête d’écrire ou quitte la fenêtre de la conversation. { "event": "conversation_typing_off", "conversation": { ...<Objet Conversation> }, "user": { ... <Objet User / AgentBot / Captain> }, "is_private": true } Vérification des webhooks Chatwoot signe chaque requête webhook sortante afin que votre serveur puisse vérifier que la charge utile a bien été envoyée par Chatwoot et qu’elle n’a pas été altérée. Le secret vous est montré une fois le webhook créé, et vous pouvez le consulter à nouveau dans le formulaire de modification du webhook. Chaque requête webhook envoie les en-têtes suivants, qui peuvent être utilisés pour calculer la signature HMAC de la charge utile : - X-Chatwoot-Signature: Signature HMAC-SHA256 préfixée par sha256= - X-Chatwoot-Timestamp: Timestamp Unix (en secondes) lorsque la requête a été signée - X-Chatwoot-Delivery: ID de livraison unique pour l’événement webhook (si disponible) La signature est calculée comme suit : sha256=HMAC-SHA256(webhook_secret, "{timestamp}.{raw_body}") Où : - webhook_secret est le secret associé au webhook - timestamp est la valeur de l'en-tête X-Chatwoot-Timestamp - raw_body est le corps brut de la requête JSON (non parsé/résérialisé) Étapes de vérification 1. Extraire X-Chatwoot-Signature et X-Chatwoot-Timestamp des en-têtes de la requête 2. Lire le corps brut de la requête en octets (ne pas parser ni résérialiser) 3. Calculer la signature attendue : sha256=HMAC-SHA256(secret, "{timestamp}.{raw_body}") 4. Comparer la signature calculée avec la signature reçue en utilisant une comparaison en temps constant 5. Rejeter éventuellement les requêtes dont le timestamp est trop ancien afin de prévenir les attaques par rejeu Exemples Ruby def verify_signature(raw_body, timestamp, received_signature, secret) expected = "sha256=#{OpenSSL::HMAC.hexdigest('SHA256', secret, "#{timestamp}.#{raw_body}")}" ActiveSupport::SecurityUtils.secure_compare(expected, received_signature) end Python import hmac import hashlib def verify_signature(raw_body: bytes, timestamp: str, received_signature: str, secret: str) -> bool: message = f"{timestamp}.".encode() + raw_body expected = "sha256=" + hmac.new(secret.encode(), message, hashlib.sha256).hexdigest() return hmac.compare_digest(expected, received_signature) Node.js const crypto = require("crypto"); function verifySignature(rawBody, timestamp, receivedSignature, secret) { const message = `${timestamp}.${rawBody}`; const expected = "sha256=" + crypto.createHmac("sha256", secret).update(message).digest("hex"); return crypto.timingSafeEqual( Buffer.from(expected), Buffer.from(receivedSignature) ); } Go import ( "crypto/hmac" "crypto/sha256" "encoding/hex" "fmt" ) func verifySignature(rawBody []byte, timestamp, receivedSignature, secret string) bool { mac := hmac.New(sha256.New, []byte(secret)) mac.Write([]byte(fmt.Sprintf("%s.%s", timestamp, rawBody))) expected := "sha256=" + hex.EncodeToString(mac.Sum(nil)) return hmac.Equal([]byte(expected), []byte(receivedSignature)) } Notes importantes - Utilisez toujours le corps brut de la requête pour la vérification. Parser le JSON puis le résérialiser risque de modifier l’ordre des clés, les espaces ou l'encodage unicode, ce qui produira une signature différente. - Utilisez toujours une comparaison en temps constant (par exemple hmac.compare_digest, crypto.timingSafeEqual, ActiveSupport::SecurityUtils.secure_compare) pour éviter les attaques temporelles. - Envisagez de rejeter les requêtes avec des timestamps plus anciens que 5 minutes afin de limiter les attaques par rejeu.
Comment intégrer votre chatbot Dialogflow à Chatwoot ?
Les chatbots sont précieux pour de nombreuses équipes en charge de l'engagement client. Ils traitent efficacement les questions triviales et libèrent les agents humains pour qu'ils puissent se concentrer sur des problèmes plus importants. Dialogflow et Rasa.ai sont des plateformes NLP (traitement du langage naturel) de premier plan pour créer des chatbots personnalisés. Dans ce guide, nous expliquons comment vous pouvez créer un bot dans Dialogflow et l'intégrer facilement à Chatwoot en quelques secondes. Comment créer un bot Dialogflow ? Étape 1. Rendez-vous sur votre Console Dialogflow. Nous utiliserons Dialogflow Essentials pour cet article. Cliquez sur « Créer un agent ». Vous verrez des options comme celles-ci : Étape 2. Vous devrez créer des intentions selon la façon dont vous souhaitez que votre bot réponde. Deux intentions par défaut seront créées dans le projet, appelées « Default Fallback Intent » et « Default Welcome Intent », comme illustré ci-dessous. Cela termine la configuration de base du bot. Créons maintenant un compte de service et connectons-le à Chatwoot. Vous pouvez également créer des intentions supplémentaires pour vos cas d'utilisation spécifiques. Chatwoot prend également en charge des intentions avancées qui permettent le transfert à un agent, les messages interactifs, etc. référence : Faites défiler vers le bas jusqu'à « Intentions avancées ». Étape 3. Créez un compte de service. Pour connecter ce bot à Chatwoot, vous devez créer un compte de service dans votre console Google Cloud. Accédez à la console du projet sur Google Cloud en cliquant sur le Project ID dans les paramètres du projet. Naviguez vers IAM & Admin -> Comptes de service. Vous verrez un écran comme celui illustré ci-dessous. Cliquez sur « Créer un compte de service ». Indiquez un nom et une description pour le compte de service, comme ci-dessous. Pour accorder l'accès, sélectionnez Dialogflow API Client dans le menu déroulant. Continuez et cliquez sur « Terminer ». Vous devriez maintenant voir le service listé sur le tableau de bord. L'étape suivante consiste à créer une clé à partager avec Chatwoot. Cliquez sur le compte de service, puis sur l'onglet « Clés ». Cliquez ensuite sur « Ajouter une clé ». Vous verrez alors un écran comme celui ci-dessous. Cliquez sur « JSON » puis sur « Créer ». Une clé sera générée pour votre compte de service. Téléchargez la clé et conservez-la pour une utilisation ultérieure. Configuration de l'intégration Dialogflow dans Chatwoot Chatwoot propose une intégration native avec Dialogflow. Vous pouvez connecter votre bot à Chatwoot en deux étapes rapides. Étape 1. Allez dans « Paramètres -> Applications -> Dialogflow ». Cliquez sur « Configurer ». Étape 2. Cliquez sur le bouton « Ajouter un nouveau hook ». Une fenêtre de configuration s'ouvrira. Vous devez renseigner le « Project ID », le « fichier de clé de projet » et une boîte de réception pour créer un hook. Copiez le contenu du fichier de clé téléchargé précédemment et collez-le dans la zone de texte. Et voilà ! L'intégration est terminée. Testez la boîte de réception du site web pour voir si le bot prend en charge la question initiale. Intentions avancées Création d’une intention de transfert à un agent Lorsque l'utilisateur demande à parler à un agent, Dialogflow doit informer Chatwoot qu'un agent peut reprendre la conversation. Créez une intention nommée « Handoff Intent » avec des phrases d’entraînement comme « Parler à un agent » ou « Je veux un agent », etc. Pour gérer l’intention de transfert, nous allons créer une réponse « Payload personnalisé », comme ci-dessous. { "action": "handoff" } Lorsqu’une intention avec ce payload est déclenchée, Chatwoot passe le statut de la conversation à open et la transfère à un agent. Messages interactifs Remarque : Les messages interactifs sont actuellement pris en charge uniquement dans la boîte de réception du site web. L’intégration Chatwoot-Dialogflow prend également en charge les messages interactifs. Les types de messages interactifs suivants sont pris en charge. 1. Options (prise en charge du suivi) 2. Cartes 3. Articles Créer une intention de message interactif Vous pouvez créer d'autres messages interactifs en modifiant le payload, comme décrit dans le guide des messages interactifs. Créez une intention avec les phrases d’entraînement nécessaires et une réponse « Payload personnalisé », comme ci-dessous pour un message d'options. ## exemple pour un message interactif d’options { "content_type": "input_select", "content": "Sélectionnez votre plat préféré ci-dessous", "content_attributes": { "items": [ { "value": "J’aime les sushis", "title": "Sushi" }, { "title": "Biryani", "value": "J’aime le biryani" }, { "title": "Pizza", "value": "J’aime la pizza" } ] }, "private": false } Lorsque l’utilisateur interagit avec un message d'entrée et sélectionne une valeur, celle-ci est renvoyée à Dialogflow. Cela permet de configurer des intentions de suivi, comme la création d'une intention avec la phrase d’entraînement « J’aime le biryani » pour les cas où le contact sélectionne l’option « biryani ». Comment un agent peut-il transférer à nouveau la conversation au bot Dialogflow ? Lorsque le bot Dialogflow est connecté à une boîte de réception, les conversations sont créées avec le statut pending au lieu de open. Cela permet au bot de trier les conversations initiales avant de les transférer à un agent. Quand un handoff a lieu, le statut de la conversation passe à open et le bot cesse d’y répondre. Parfois, les agents souhaitent renvoyer une conversation transférée à nouveau dans la file d’attente du bot. Ils peuvent le faire en rétablissant le statut de la conversation à pending. Le bot recommencera alors à répondre à cette conversation.