Ce guide explique comment les applications Google Chat peuvent collecter et traiter les informations des utilisateurs en créant des entrées de formulaire dans des interfaces basées sur des cartes.
Les applications Chat demandent des informations aux utilisateurs pour effectuer des actions dans ou en dehors de Chat, y compris de la manière suivante :
- Configurez les paramètres. Par exemple, pour permettre aux utilisateurs de personnaliser les paramètres de notification ou de configurer et d'ajouter l'application Chat à un ou plusieurs espaces.
- Créer ou mettre à jour des informations dans d'autres applications Google Workspace Par exemple, autorisez les utilisateurs à créer un événement Google Agenda.
- Permettez aux utilisateurs d'accéder à des ressources dans d'autres applications ou services Web, et de les mettre à jour. Par exemple, une application Chat peut aider les utilisateurs à mettre à jour l'état d'une demande d'assistance directement depuis un espace Chat.
Prérequis
HTTP
Une application Google Chat qui reçoit des interactions utilisateur et y répond. Pour en créer un, suivez le guide de démarrage rapide HTTP.
Apps Script
Une application Google Chat qui reçoit des interactions utilisateur et y répond. Pour en créer un, suivez le guide de démarrage rapide d'Apps Script.
Créer des formulaires à l'aide de fiches
Pour collecter des informations, les applications Chat conçoivent des formulaires et leurs entrées, et les intègrent dans des fiches. Pour afficher des fiches aux utilisateurs, les applications Chat peuvent utiliser les interfaces Chat suivantes :
- Messages contenant une ou plusieurs fiches.
- Pages d'accueil, qui sont des fiches qui s'affichent dans l'onglet Accueil des messages privés avec l'application Chat.
- Boîtes de dialogue, qui sont des fiches s'ouvrant dans une nouvelle fenêtre à partir de messages et de pages d'accueil.
Les applications Chat peuvent créer les fiches à l'aide des widgets suivants :
Widgets de saisie de formulaire qui demandent des informations aux utilisateurs. Vous pouvez éventuellement ajouter une validation aux widgets de saisie de formulaire pour vous assurer que les utilisateurs saisissent et mettent en forme les informations correctement. Les applications Chat peuvent utiliser les widgets de saisie de formulaire suivants :
- Saisies de texte (
textInput) pour du texte libre ou suggéré. - Les entrées de sélection (
selectionInput) sont des éléments d'interface utilisateur sélectionnables, tels que des cases à cocher, des cases d'option et des menus déroulants. Les widgets de saisie de sélection peuvent également renseigner et suggérer des éléments à partir de données Google Workspace (comme un espace Chat) ou d'une source de données dynamique. Pour en savoir plus, consultez les sections Ajouter un menu déroulant et Ajouter un menu à sélection multiple. - Sélecteurs de date et d'heure (
dateTimePicker) pour les entrées de date et d'heure.
- Saisies de texte (
Un widget bouton pour que les utilisateurs puissent envoyer les valeurs qu'ils ont saisies dans la fiche. Une fois que l'utilisateur a cliqué sur le bouton, l'application Chat peut traiter les informations qu'elle reçoit.
Dans l'exemple suivant, une fiche collecte des coordonnées à l'aide d'une saisie de texte, d'un sélecteur de date et d'heure, et d'une saisie de sélection :
Pour obtenir d'autres exemples de widgets interactifs que vous pouvez utiliser pour collecter des informations, consultez Concevoir une fiche ou une boîte de dialogue interactive.
Ajouter un menu déroulant
Pour personnaliser les éléments de sélection ou permettre aux utilisateurs de sélectionner un seul élément d'une source de données dynamique, les applications Chat peuvent utiliser des menus déroulants, qui sont un type de widget SelectionInput. Par exemple, la fiche suivante affiche un menu déroulant dans lequel les utilisateurs peuvent sélectionner dynamiquement un contact dans une liste :
Vous pouvez renseigner les éléments d'un menu déroulant à partir des sources de données suivantes :
- Données Google Workspace, qui incluent les utilisateurs ou les espaces Chat.
- Sources de données externes, telles qu'une base de données relationnelle.
Remplir des éléments à partir d'une source de données Google Workspace
Pour renseigner des éléments à partir de sources de données Google Workspace, telles que des utilisateurs Google Workspace, spécifiez le champ platformDataSource dans un objet DataSourceConfig. Contrairement aux autres types d'entrées de sélection, vous omettez les objets SelectionItem, car ces éléments de sélection proviennent de manière dynamique de Google Workspace.
Le code suivant affiche un menu déroulant des utilisateurs Google Workspace :
JSON
{
"sections": [
{
"header": "Section Header",
"widgets": [
{
"selectionInput": {
"name": "contacts",
"type": "DROPDOWN",
"label": "Select contact from organization",
"dataSourceConfigs": [
{
"platformDataSource": {
"commonDataSource": "USER"
},
"minCharactersTrigger": 1
}
]
}
}
]
}
]
}
Remplir des éléments à partir d'une source de données externe
Les menus déroulants peuvent également renseigner des éléments à partir d'une source de données tierce ou externe. Pour utiliser une source de données externe, vous devez spécifier le champ remoteDataSource dans un objet DataSourceConfig contenant la fonction qui interroge et renvoie les éléments de la source de données.
Pour réduire les requêtes adressées à une source de données externe, vous pouvez inclure des éléments suggérés qui s'affichent dans le menu déroulant avant que les utilisateurs ne saisissent du texte dans le menu. Pour renseigner les éléments suggérés à partir d'une source de données externe, spécifiez des objets SelectionItem statiques.
Le code suivant montre un menu déroulant qui interroge et remplit des éléments à partir d'une source de données externe :
JSON
{
"sections": [
{
"header": "Section Header",
"widgets": [
{
"selectionInput": {
"name": "crm_leads",
"type": "DROPDOWN",
"label": "Select CRM Lead",
"dataSourceConfigs": [
{
"remoteDataSource": {
"function": "getCrmLeads"
},
"minCharactersTrigger": 2
}
],
"items": [
{
"text": "Suggested Lead 1",
"value": "lead-1"
}
]
}
}
]
}
]
}
Pour obtenir un exemple complet illustrant comment renvoyer des éléments suggérés, consultez la section Suggérer des éléments de sélection.
Ajouter un menu de sélection multiple
Pour personnaliser les éléments de sélection ou permettre aux utilisateurs de sélectionner des éléments à partir d'une source de données dynamique, les applications Chat peuvent utiliser des menus à sélection multiple, qui sont un type de widget SelectionInput. Par exemple, la fiche suivante affiche un menu à sélection multiple dans lequel les utilisateurs peuvent sélectionner dynamiquement des contacts dans une liste :
Vous pouvez renseigner les éléments d'un menu à sélection multiple à partir des sources de données suivantes :
- Données Google Workspace, qui incluent les utilisateurs ou les espaces Chat dont l'utilisateur est membre. Le menu ne contient que les éléments de la même organisation Google Workspace.
- Sources de données externes, telles qu'une base de données relationnelle. Par exemple, vous pouvez utiliser des menus à sélection multiple pour aider un utilisateur à sélectionner des éléments dans une liste de leads commerciaux d'un système de gestion de la relation client (CRM).
Remplir des éléments à partir d'une source de données Google Workspace
Pour utiliser des sources de données Google Workspace, spécifiez le champ platformDataSource dans le widget SelectionInput. Contrairement aux autres types d'entrées de sélection, vous omettez les objets SelectionItem, car ces éléments de sélection proviennent de manière dynamique de Google Workspace.
Le code suivant montre un menu à sélection multiple d'utilisateurs Google Workspace.
Pour renseigner les utilisateurs, l'entrée de sélection définit commonDataSource sur USER :
JSON
{
"selectionInput": {
"name": "contacts",
"type": "MULTI_SELECT",
"label": "Selected contacts",
"multiSelectMaxSelectedItems": 5,
"multiSelectMinQueryLength": 1,
"platformDataSource": {
"commonDataSource": "USER"
}
}
}
Le code suivant montre un menu de sélection multiple d'espaces Chat. Pour renseigner les espaces, l'entrée de sélection spécifie le champ hostAppDataSource. Le menu de sélection multiple définit également defaultToCurrentSpace sur true, ce qui fait de l'espace actuel la sélection par défaut dans le menu :
JSON
{
"selectionInput": {
"name": "spaces",
"type": "MULTI_SELECT",
"label": "Selected contacts",
"multiSelectMaxSelectedItems": 3,
"multiSelectMinQueryLength": 1,
"platformDataSource": {
"hostAppDataSource": {
"chatDataSource": {
"spaceDataSource": {
"defaultToCurrentSpace": true
}
}
}
}
}
}
Remplir des éléments à partir d'une source de données externe
Les menus à sélection multiple peuvent également renseigner des éléments à partir d'une source de données tierce ou externe. Pour utiliser une source de données externe, vous devez spécifier le champ externalDataSource dans le widget SelectionInput qui contient la fonction qui interroge et renvoie les éléments de la source de données.
Pour réduire les requêtes adressées à une source de données externe, vous pouvez inclure des éléments suggérés qui s'affichent dans le menu de sélection multiple avant que les utilisateurs ne saisissent du texte dans le menu. Par exemple, vous pouvez renseigner les contacts récemment recherchés pour l'utilisateur. Pour renseigner les éléments suggérés à partir d'une source de données externe, spécifiez des objets SelectionItem statiques.
L'exemple de code suivant montre un menu à sélection multiple qui interroge et renseigne des éléments à partir d'une source de données externe :
Node.js
Remplacez FUNCTION_URL par le point de terminaison HTTP qui interroge la source de données externe.
Python
Remplacez FUNCTION_URL par le point de terminaison HTTP qui interroge la source de données externe.
Java
Remplacez FUNCTION_URL par le point de terminaison HTTP qui interroge la source de données externe.
Apps Script
Cet exemple envoie un message de fiche en renvoyant un fichier JSON de fiche. Vous pouvez également utiliser le service de fiches Apps Script.
Pour obtenir un exemple complet illustrant comment renvoyer des éléments suggérés, consultez la section Suggérer des éléments de sélection.
Recevoir des données de widgets interactifs
Chaque fois qu'un utilisateur clique sur un bouton, l'action de l'application Chat est déclenchée avec des informations sur l'interaction. Dans le champ commonEventObject de la charge utile de l'événement, l'objet formInputs contient toutes les valeurs saisies par l'utilisateur.
Vous pouvez récupérer les valeurs de l'objet event.commonEventObject.formInputs.WIDGET_NAME, où WIDGET_NAME est le champ name que vous avez spécifié pour le widget.
Les valeurs sont renvoyées sous la forme d'un type de données spécifique pour le widget.
L'exemple suivant montre une partie d'un objet d'événement dans lequel un utilisateur a saisi des valeurs pour chaque widget :
{
"commonEventObject": { "formInputs": {
"contactName": { "stringInputs": {
"value": ["Kai 0"]
}},
"contactBirthdate": { "dateInput": {
"msSinceEpoch": 1000425600000
}},
"contactType": { "stringInputs": {
"value": ["Personal"]
}}
}}
}
Pour recevoir les données, votre application Chat gère l'objet d'événement afin d'obtenir les valeurs saisies par les utilisateurs dans les widgets. Le tableau suivant montre comment obtenir la valeur d'un widget de saisie de formulaire donné. Pour chaque widget, le tableau indique le type de données qu'il accepte, l'emplacement de stockage de la valeur dans l'objet d'événement et un exemple de valeur.
| Widget de saisie de formulaire | Type de données d'entrée | Valeur d'entrée de l'objet d'événement | Exemple de valeur |
|---|---|---|---|
textInput |
stringInputs |
event.commonEventObject.formInputs.contactName.stringInputs.value[0] |
Kai O |
selectionInput |
stringInputs |
Pour obtenir la première ou l'unique valeur, event.commonEventObject.formInputs.contactType.stringInputs.value[0] |
Personal |
dateTimePicker qui n'accepte que les dates. |
dateInput |
event.commonEventObject.formInputs.contactBirthdate.dateInput.msSinceEpoch. |
1000425600000 |
Une fois que l'application Chat a reçu les données, elle peut effectuer l'une des opérations suivantes :
- Pour les fiches contenant un menu à sélection multiple, remplissez ou suggérez des éléments en fonction de ce que l'utilisateur saisit dans le menu.
- Transférez les données vers une autre fiche pour que l'utilisateur puisse examiner ses informations ou passer à la section suivante du formulaire.
- Répondez à l'utilisateur pour confirmer qu'il a bien rempli le formulaire.
Suggérer des éléments de sélection
Si une fiche contient un menu à sélection multiple ou un menu déroulant qui remplit des éléments à partir d'une source de données externe, l'application Chat peut renvoyer des éléments suggérés en fonction de ce que les utilisateurs saisissent dans le menu. Par exemple, si un utilisateur commence à saisir Atl pour un menu qui affiche des villes des États-Unis, votre application Chat peut suggérer automatiquement Atlanta avant que l'utilisateur ait fini de saisir sa requête. L'application Chat peut suggérer jusqu'à 100 éléments.
Pour suggérer et renseigner de manière dynamique des éléments dans une entrée de sélection, le widget SelectionInput de la fiche doit spécifier une fonction qui interroge la source de données externe. Pour les menus à sélection multiple, vous devez spécifier le champ externalDataSource. Pour les menus déroulants, vous spécifiez le champ remoteDataSource dans un objet DataSourceConfig.
Vous pouvez également configurer le nombre de caractères qu'un utilisateur doit saisir avant que le menu ne renvoie des suggestions. Pour les menus à sélection multiple, définissez le champ multiSelectMinQueryLength. Pour les menus déroulants, définissez le champ min_characters_trigger dans DataSourceConfig.
Pour renvoyer des éléments suggérés, la fonction doit effectuer les opérations suivantes :
- Gérer un objet d'événement, que l'application Chat reçoit lorsque les utilisateurs saisissent du texte dans le menu.
- À partir de l'objet d'événement, récupérez la valeur saisie par l'utilisateur, qui est représentée dans le champ
event.commonEventObject.parameters["autocomplete_widget_query"]. - Interrogez la source de données à l'aide de la valeur saisie par l'utilisateur pour obtenir un ou plusieurs
SelectionItemsà suggérer à l'utilisateur. - Renvoyez les éléments suggérés en renvoyant l'action
RenderActionsavec un objetmodifyCard.
L'exemple de code suivant montre comment une application Chat suggère de manière dynamique des éléments dans le menu de sélection multiple d'une fiche. Lorsqu'un utilisateur saisit du texte dans le menu, la fonction ou le point de terminaison fourni dans le champ externalDataSource du widget interroge une source de données externe et suggère des éléments que l'utilisateur peut sélectionner.
Node.js
Remplacez FUNCTION_URL par le point de terminaison HTTP qui interroge la source de données externe.
Python
Remplacez FUNCTION_URL par le point de terminaison HTTP qui interroge la source de données externe.
Java
Remplacez FUNCTION_URL par le point de terminaison HTTP qui interroge la source de données externe.
Apps Script
Cet exemple envoie un message de fiche en renvoyant un fichier JSON de fiche. Vous pouvez également utiliser le service de fiches Apps Script.
Transférer les données vers une autre carte
Une fois qu'un utilisateur a envoyé des informations à partir d'une fiche, vous devrez peut-être renvoyer des fiches supplémentaires pour effectuer l'une des opérations suivantes :
- Aidez les utilisateurs à remplir des formulaires plus longs en créant des sections distinctes.
- Permettez aux utilisateurs de prévisualiser et de confirmer les informations de la fiche initiale afin qu'ils puissent vérifier leurs réponses avant de les envoyer.
- Remplissez de manière dynamique les autres parties du formulaire. Par exemple, pour inviter les utilisateurs à prendre un rendez-vous, une application Chat peut afficher une fiche initiale demandant le motif du rendez-vous, puis remplir une autre fiche indiquant les horaires disponibles en fonction du type de rendez-vous.
Pour transférer la saisie de données de la fiche initiale, vous pouvez créer le widget button avec des actionParameters contenant le name du widget et la valeur saisie par l'utilisateur, comme illustré dans l'exemple suivant :
Node.js
Remplacez FUNCTION_URL par le point de terminaison HTTP qui gère les clics sur le bouton.
Python
Remplacez FUNCTION_URL par le point de terminaison HTTP qui gère les clics sur le bouton.
Java
Remplacez FUNCTION_URL par le point de terminaison HTTP qui gère les clics sur le bouton.
Apps Script
Cet exemple envoie un message de fiche en renvoyant un fichier JSON de fiche. Vous pouvez également utiliser le service de fiches Apps Script.
Lorsqu'un utilisateur clique sur le bouton, votre application Chat reçoit un objet d'événement à partir duquel vous pouvez recevoir des données.
Répondre à l'envoi d'un formulaire
Après avoir reçu les données d'un message de fiche ou d'une boîte de dialogue, l'application Chat répond en accusant réception ou en renvoyant une erreur.
Dans l'exemple suivant, une application Chat envoie un message pour confirmer qu'elle a bien reçu un formulaire envoyé à partir d'un message de fiche.
Node.js
Python
Java
Apps Script
Cet exemple envoie un message de fiche en renvoyant un fichier JSON de fiche. Vous pouvez également utiliser le service de fiches Apps Script.
Pour traiter et fermer une boîte de dialogue, vous devez renvoyer un objet RenderActions qui indique si vous souhaitez envoyer un message de confirmation, mettre à jour le message ou la fiche d'origine, ou simplement fermer la boîte de dialogue. Pour connaître la procédure à suivre, consultez Fermer une boîte de dialogue.
Résoudre les problèmes
Cette section fournit des étapes de dépannage pour des codes d'erreur et des comportements d'exécution spécifiques lors de l'interaction avec des boîtes de dialogue dans Chat.
Les interactions avec la boîte de dialogue renvoient l'erreur "Erreur non spécifiée lors de l'appel du module complémentaire"
Lorsque vous interagissez avec une boîte de dialogue, si vous voyez des journaux d'erreurs avec le message "Erreur non spécifiée lors de l'appel du module complémentaire" et le code 13, cela indique généralement une erreur interne ou que le point de terminaison HTTP de l'application Chat n'a pas pu traiter la requête ou renvoyer une réponse valide.
Pour résoudre cette erreur :
- Vérifiez les journaux de votre point de terminaison HTTP pour détecter d'éventuelles exceptions non gérées ou des plantages.
- Vérifiez que votre point de terminaison répond aux requêtes dans un délai de 30 secondes. Si l'exécution du point de terminaison prend plus de 30 secondes, Chat ne peut pas traiter la réponse et l'interaction échoue. Pour en savoir plus, consultez Limites de débit et bonnes pratiques.
- Assurez-vous que votre point de terminaison renvoie une réponse valide. Pour les envois de boîtes de dialogue, le point de terminaison doit renvoyer un objet
RenderActionsau format JSON correct. Si la réponse est incorrecte ou ne contient pas les champs obligatoires, l'interaction de la boîte de dialogue peut échouer.
Lorsqu'une application Chat ou une fiche Google Chat renvoie une erreur, l'interface Chat affiche le message "Un problème est survenu". ou "Impossible de traiter votre demande." Il peut arriver que l'interface utilisateur de Chat n'affiche aucun message d'erreur, mais que l'application Chat ou la fiche produise un résultat inattendu. Par exemple, un message de fiche peut ne pas s'afficher.
Même si aucun message d'erreur ne s'affiche dans l'UI de Chat, des messages d'erreur descriptifs et des données de journal sont disponibles pour vous aider à corriger les erreurs lorsque la journalisation des erreurs est activée pour les applications Chat. Pour obtenir de l'aide pour afficher, déboguer et corriger les erreurs, consultez Résoudre les erreurs Google Chat.
Articles associés
- Consultez l'exemple de gestionnaire de contacts, qui est une application Chat qui invite les utilisateurs à remplir un formulaire de contact à partir de messages et de boîtes de dialogue de fiches.
- Ouvrir des boîtes de dialogue interactives
Applications Chat qui ne sont pas des modules complémentaires : lire les données de formulaire saisies par les utilisateurs sur les fiches
La documentation suivante s'applique aux applications Chat qui ne sont pas des modules complémentaires Google Workspace. Pour migrer une application Chat qui n'est pas un module complémentaire, consultez Convertir une application Google Chat en module complémentaire Google Workspace.
Créer des formulaires à l'aide de fiches
Pour obtenir un exemple d'application Chat qui n'est pas un module complémentaire et qui utilise un formulaire de contact avec une saisie de texte, un sélecteur de date et d'heure, et une saisie de sélection, consultez le code suivant :
Node.js
Python
Java
Apps Script
Recevoir des données de widgets interactifs
Chaque fois qu'un utilisateur clique sur un bouton, les applications Chat qui ne sont pas des modules complémentaires reçoivent un événement d'interaction en fonction de l'emplacement du bouton :
Si le bouton se trouve dans un message ou une boîte de dialogue, les applications Chat qui ne sont pas des modules complémentaires reçoivent un événement d'interaction
CARD_CLICKEDcontenant des informations sur l'interaction. La charge utile des événements d'interactionCARD_CLICKEDcontient un objetcommon.formInputs(event.common.formInputs) avec toutes les valeurs saisies par l'utilisateur.Vous pouvez récupérer les valeurs de l'objet
common.formInputs.WIDGET_NAME, où WIDGET_NAME est le champnameque vous avez spécifié pour le widget. Les valeurs sont renvoyées sous la forme d'un type de données spécifique pour le widget (représenté par un objetInputs).Voici une partie d'un événement d'interaction
CARD_CLICKEDdans lequel un utilisateur a saisi des valeurs pour chaque widget :HTTP
{ "type": "CARD_CLICKED", "common": { "formInputs": { "contactName": { "stringInputs": { "value": ["Kai 0"] }}, "contactBirthdate": { "dateInput": { "msSinceEpoch": 1000425600000 }}, "contactType": { "stringInputs": { "value": ["Personal"] }} }} }Apps Script
{ "type": "CARD_CLICKED", "common": { "formInputs": { "contactName": { "": { "stringInputs": { "value": ["Kai 0"] }}}, "contactBirthdate": { "": { "dateInput": { "msSinceEpoch": 1000425600000 }}}, "contactType": { "": { "stringInputs": { "value": ["Personal"] }}} }} }Si le bouton se trouve sur une page d'accueil, les applications Chat qui ne sont pas des modules complémentaires reçoivent un événement d'interaction
SUBMIT_FORM. La charge utile de l'événement d'interaction contient un objetcommonEventObject.formInputs(event.commonEventObject.formInputs) avec toutes les valeurs saisies par l'utilisateur.Vous pouvez récupérer les valeurs de l'objet
commonEventObject.formInputs.WIDGET_NAME, où WIDGET_NAME est le champnameque vous avez spécifié pour le widget. Les valeurs sont renvoyées sous la forme d'un type de données spécifique pour le widget (représenté par un objetInputs).Voici une partie d'un événement d'interaction
SUBMIT_FORMdans lequel un utilisateur a saisi des valeurs pour chaque widget :HTTP
{ "type": "SUBMIT_FORM", "commonEventObject": { "formInputs": { "contactName": { "stringInputs": { "value": ["Kai 0"] }}, "contactBirthdate": { "dateInput": { "msSinceEpoch": 1000425600000 }}, "contactType": { "stringInputs": { "value": ["Personal"] }} }} }Apps Script
{ "type": "SUBMIT_FORM", "commonEventObject": { "formInputs": { "contactName": { "": { "stringInputs": { "value": ["Kai 0"] }}}, "contactBirthdate": { "": { "dateInput": { "msSinceEpoch": 1000425600000 }}}, "contactType": { "": { "stringInputs": { "value": ["Personal"] }}} }} }
Pour recevoir les données, une application Chat qui n'est pas un module complémentaire gère l'événement d'interaction afin d'obtenir les valeurs saisies par les utilisateurs dans les widgets. Le tableau suivant montre comment obtenir la valeur d'un widget de saisie de formulaire donné. Pour chaque widget, le tableau indique le type de données accepté par le widget, l'emplacement de stockage de la valeur dans l'événement d'interaction et un exemple de valeur.
| Widget de saisie de formulaire | Type de données d'entrée | Valeur d'entrée de l'événement d'interaction | Exemple de valeur |
|---|---|---|---|
textInput |
stringInputs |
event.common.formInputs.contactName.stringInputs.value[0] |
Kai O |
selectionInput |
stringInputs |
Pour obtenir la première ou l'unique valeur, event.common.formInputs.contactType.stringInputs.value[0] |
Personal |
dateTimePicker qui n'accepte que les dates. |
dateInput |
event.common.formInputs.contactBirthdate.dateInput.msSinceEpoch. |
1000425600000 |
Transférer les données vers une autre carte
Pour transférer la saisie de données de la fiche initiale dans une application Chat qui n'est pas un module complémentaire, créez le widget button avec des actionParameters contenant le name du widget et la valeur saisie par l'utilisateur, comme illustré dans l'exemple suivant :
Node.js
Python
Java
Apps Script
Lorsqu'un utilisateur clique sur le bouton, l'application Chat qui n'est pas un module complémentaire reçoit un événement d'interaction CARD_CLICKED à partir duquel vous pouvez recevoir des données.
Répondre à l'envoi d'un formulaire
Dans l'exemple suivant, une application Chat qui n'est pas un module complémentaire envoie un message texte pour confirmer qu'elle a bien reçu un formulaire envoyé à partir d'une boîte de dialogue ou d'un message de fiche :
Node.js
Python
Java
Apps Script
Pour traiter et fermer une boîte de dialogue dans une application Chat qui n'est pas un module complémentaire, renvoyez un objet ActionResponse qui indique si vous souhaitez envoyer un message de confirmation, mettre à jour le message ou la fiche d'origine, ou simplement fermer la boîte de dialogue. Pour connaître la procédure à suivre, consultez Fermer une boîte de dialogue.