Добавить комплекс Logi c к боту Twilio Whatsapp - PullRequest
1 голос
/ 23 апреля 2020

Я разрабатываю бот WhatsApp в Twilio для сбора данных опросов, связанных с Covid-19. Тем не менее, я хочу добавить сложные логи c в моей программе задачи. Например, я только хочу отобразить вопрос, спрашивающий, беременна ли пользователь или нет, если пользователь выбрал женщину как ее пол. Кроме того, я хочу добавить ряд вопросов, касающихся веса и роста.

Ниже приведен пример кода для моей задачи

    "actions": [
        {
            "say": "Thank you for making the time for this survey. Your answers help us improve the service!"
        },
        {
            "collect": {
                "name": "csat_answers",
                "questions": [

                    {
                        "question": "Have you completed this survey before??",
                        "name": "first_time",
                        "type": "Twilio.YES_NO"
                    },
                    {
                        "question": "Please enter your username",
                        "name": "usernmae"
                    },
                    {
                        "question": "How old are you?",
                        "name": "age",
                        "type": "Twilio.NUMBER"
                    },
                        {
                        "question": "What Gender are you",
                        "name": "Gender"
                    },
                    {
                        "question": "Are you pregnant?",
                        "name": "pregnant",
                        "type": "Twilio.YES_NO"
                    },
                    {
                        "question": "What is your height (cm)?",
                        "name": "height",
                        "type": "Twilio.NUMBER"
                    },
                    {
                        "question": "What is your weight (kg)?",
                        "name": "weight",
                        "type": "Twilio.NUMBER"
                    }
                ],
                "on_complete": {
                    "redirect": {
                        "method": "POST",
                        "uri": "task://complete_survey"
                    }
                }
            }
        }
    ]
}```

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Twilio developer evangelist здесь.

Нет способа сделать условный сбор потоков в Autopilot, так что logi c должен быть частью кода вашего приложения. Вы можете реализовать эту условную логику c с помощью Autopilot, используя Twilio Functions , наш инструмент для работы в среде без серверов для Node.js приложений.

Этот Node.js быстрый запуск содержит то, что вы ищете.

У вас может быть одна задача автопилота, которая перенаправляет на функцию, которая проверяет, что пользователь сказал. Эта задача Redirect может включать эту JSON:

{
    "actions": [
        {
                "collect": {
                    "name": "pregnant_collect",
                    "questions": [
                        {
                            "question": "Are you pregnant?",
                            "name": "pregnant",
                            "type": "Twilio.YES_NO"
                        }
                    ],
                    "on_complete": {
                        "redirect": {
                            "method": "POST",
                            "uri": "https://YOUR-TWILIO-FUNCTION.twil.io/Function_Name"
                        }
                    }
                }
            }
    ]
}

, а затем использовать условное выражение в функции Twilio, которое над задачей Task перенаправляет (выше, это https://YOUR-TWILIO-FUNCTION.twil.io/Function_Name), чтобы проверить, что сказал пользователь. Задача «Автопилот Twilio» может включать следующее: JSON:

 exports.handler = function(context, event, callback) {
        //Memory from the answered question
        let memory = JSON.parse(event.Memory);
        //array of "actions" objects 
        let actions = [];
        //response item to return/add to responseObject in Actions
        let responseItem;

        //get answer from Memory
        let pregnant_answer = Memory.twilio.collected_data.pregnant_collect.answers.pregnant.answer; 
        //Yes or No
        if (pregnant_answer === "Yes") {
            responseItem = {
                "say": "WHATEVER YOU WANT TO SAY FOR YES"
            };
            actions.push(responseItem);
        } 
        else {
            responseItem = {
                "say": "WHATEVER YOU WANT TO SAY FOR NO"
            };
            actions.push(responseItem);
        }
        responseItem = {
            "redirect": {
                "method": "POST",
                "uri": "task://next_task"
            }
        };

        actions.push(responseItem);

        let responseObject = {
            "actions": actions
        };
        callback(null, responseObject);
    };

Дайте мне знать, если это поможет! <3 </p>

0 голосов
/ 23 апреля 2020

Вам нужно будет ввести logi c в помощнике автопилота, stati c JSON не предоставит эту возможность.

Как использовать функции Twilio с Twilio Autopilot

Если вы не разработчик, а строитель, вам нужно взглянуть на Twilio Studio, чтобы графически нарисовать свой Ход съемки и обработка состояния съемки.

Проведите опрос с помощью Twilio Studio

...