Exécuter des blocs de code dans des bots

Lors de la création ou de la modification d'un bot, vous pouvez ajouter un bloc de code en cliquant sur le bouton + pour ajouter une action, comme vous le feriez habituellement. Dans le panneau de sélection de l'action, cliquez sur Exécuter un bloc de code.run-a-code-snippet-2

Ensuite, donnez un nom interne à votre action. Dans le panneau de modification de code, vous verrez le modèle par défaut pour Node.js 10.x. Les informations de l'objet d'événement et des formats de réponses possibles sont détaillées ci-dessous.run-a-code-snippet-editor

Le code sera déclenché lorsque l'action enregistrée sera atteinte dans une conversation.

Il existe trois éléments principaux à prendre en compte lors de l'utilisation de blocs de code :

  • La fonction exports.main() est appelée lorsque l'action de bloc de code est exécutée.
  • L'argument event est un objet contenant des informations pour le visiteur et la session de chat.
  • La fonction callback() est utilisée pour renvoyer des données au bot et à l'utilisateur. Elle doit être appelée dans la fonction exports.main.

L'objet event contiendra les données suivantes :

//example payload { "userMessage": { // Details for the last message sent to your bot "message": "100-500", // The last message received by your bot, sent by the visitor "quickReply": { // If the visitor selected any quick reply options, this will be a list of the selected options. // Will be 'null' if no options were selected. "quickReplies":[ // A list of quick reply options selected by the visitor { "value":"100-500", "label":"100-500" } ], }, "session": { "vid": 12345, // The contact VID of the visitor, if known. "properties": { // A list of properties collected by the bot in the current session. "CONTACT": { "firstname": { "value": "John", "syncedAt": 1534362540592 }, "email": { "value": "testing@domain.com", "syncedAt": 1534362541764 }, "lastname": { "value": "Smith", "syncedAt": 1534362540592 } } }, "customState":{myCustomCounter: 1, myCustomString:"someString"} // Only present if it customState was passed in from a previous callback payload } }

La fonction callback() est utilisée pour renvoyer des données au bot. L'argument doit être un objet avec les données suivantes :

//sample payload { "botMessage": "Thanks for checking out our website!", // This is the message your bot will display to the visitor. "quickReplies": [{ value:'option', // Passed to the bot as the response on click label:'Option' // Gets displayed as the button label }], // the quickReplies object is optional "nextModuleNickname": "SuggestAwesomeProduct", // The nickname of the next module the bot should execute. If undefined, the bot will follow the default configured behavior "responseExpected": false // If true, the bot will display the returned botMessage, wait for a response, then execute this code snippet again with that new response. "customState":{myCustomCounter: 1, myCustomString:"someString"} // Optional field to pass along to the next step. }

Limites

Les extraits de code dans les bots doivent se terminer dans un délai de 20 secondes et n'utiliser que 128 Mo de mémoire. Le dépassement de l'une de ces limites entraînera une erreur.

Bibliothèques disponibles

Plusieurs bibliothèques Node.js courantes peuvent être utilisées dans le bloc de code.

Les bibliothèques peuvent être chargées à l'aide de la fonction normale require() en haut de votre code.

const request = require('request'); exports.main = (event, callback) => { request('http://time.jsontest.com/', function (error, response, body) { const responseJson = { "botMessage": "The current time in GMT is " + JSON.parse(body).time, "responseExpected": false } callback(responseJson); }); };

Cet article vous a-t-il été utile ?
Ce formulaire est destiné à recueillir les avis sur la documentation pour les développeurs. Si vous souhaitez faire part de votre avis sur les produits HubSpot, veuillez le partager sur le forum des idéesde la communauté.