[
  {
    "path": ".gitignore",
    "content": "### Rocketchat ###\n\n# Generated during the docker-compose up\ndata\nuploads\n\n# Created by https://www.gitignore.io/api/vim,node,macos,linux\n\n### Linux ###\n*~\n\n# temporary files which can be created if a process still has a handle open of a deleted file\n.fuse_hidden*\n\n# KDE directory preferences\n.directory\n\n# Linux trash folder which might appear on any partition or disk\n.Trash-*\n\n# .nfs files are created when an open file is removed but is still being accessed\n.nfs*\n\n### macOS ###\n*.DS_Store\n.AppleDouble\n.LSOverride\n\n# Icon must end with two \\r\nIcon\n\n# Thumbnails\n._*\n\n# Files that might appear in the root of a volume\n.DocumentRevisions-V100\n.fseventsd\n.Spotlight-V100\n.TemporaryItems\n.Trashes\n.VolumeIcon.icns\n.com.apple.timemachine.donotpresent\n\n# Directories potentially created on remote AFP share\n.AppleDB\n.AppleDesktop\nNetwork Trash Folder\nTemporary Items\n.apdisk\n\n### Node ###\n# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# Runtime data\npids\n*.pid\n*.seed\n*.pid.lock\n\n# Directory for instrumented libs generated by jscoverage/JSCover\nlib-cov\n\n# Coverage directory used by tools like istanbul\ncoverage\n\n# nyc test coverage\n.nyc_output\n\n# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)\n.grunt\n\n# Bower dependency directory (https://bower.io/)\nbower_components\n\n# node-waf configuration\n.lock-wscript\n\n# Compiled binary addons (http://nodejs.org/api/addons.html)\nbuild/Release\n\n# Dependency directories\nnode_modules/\njspm_packages/\n\n# Typescript v1 declaration files\ntypings/\n\n# Optional npm cache directory\n.npm\n\n# Optional eslint cache\n.eslintcache\n\n# Optional REPL history\n.node_repl_history\n\n# Output of 'npm pack'\n*.tgz\n\n# Yarn Integrity file\n.yarn-integrity\n\n# dotenv environment variables file\n.env\n\n\n### Vim ###\n# swap\n[._]*.s[a-v][a-z]\n[._]*.sw[a-p]\n[._]s[a-v][a-z]\n[._]sw[a-p]\n# session\nSession.vim\n# temporary\n.netrwhist\n# auto-generated tag files\ntags\n\n# End of https://www.gitignore.io/api/vim,node,macos,linux\n# Hubot files\n.editorconfig\n.hubot_history\nbin/\nchat/\nlaunch.sh\n"
  },
  {
    "path": ".travis.yml",
    "content": "dist: trusty\n\nlanguage: node_js\nnode_js:\n  - \"node\"\n  - \"8\"\n\nbefore_install:\n  - npm i -g npm@5.6.0\n\ninstall:\n  - npm install -g coffeelint\n\nscript:\n  - coffeelint scripts\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to making participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, gender identity and expression, level of experience,\nnationality, personal appearance, race, religion, or sexual identity and\norientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment\ninclude:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or\nadvances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic\n  address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Examples of\nrepresenting a project or community include using an official project e-mail\naddress, posting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event. Representation of a project may be\nfurther defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting the project team at team@rocket.chat . The project team\nwill review and investigate all complaints, and will respond in a way that it deems\nappropriate to the circumstances. The project team is obligated to maintain\nconfidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good\nfaith may face temporary or permanent repercussions as determined by other\nmembers of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,\navailable at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# Contributing to sdl_cordova_android\n\nThird party contributions are essential for making this repository great. However, we do have a few guidelines we need contributors to follow.\n\n### Gitflow\nWe use Gitflow as our branch management system. Please read up on it [here](https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow). The main points you should know are:\n\n* All feature branches should be based on `develop` and have the format `feature/branch_name`.\n* Minor bug fixes should be based on `master` and have the format `hotfix/branch_name`.\n* All pull requests should involve a single change. Pull Requests that involve multiple changes (it is our discretion what precisely this means) will be rejected with a reason.\n* All commits should involve logical units. Please do not put all changed code in one commit, unless it is a very minor change.\n* Work in progress pull requests should have \"[WIP]\" in front of the Pull Request title. When you are ready to merge, remove this tag and @mention `smartdevicelink/developers` to get it scheduled for review.\n\n* Please document all code written, and remember updating README.md\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2017 Rocket.Chat\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# Hubot Natural\n\n[![Build Status](https://travis-ci.org/RocketChat/hubot-natural.svg?branch=master)](https://travis-ci.org/RocketChat/hubot-natural)\n\n## Natural Language ChatBot\n\nHubot is one of the most famous bot creating framework on the web, that's because github made it easy to create. If you can define your commands in a RegExp param, basically you can do anything with Hubot. That's a great contribution to ChatOps culture.\n\nInspired by that, we wanted to provide the same simplicity to our community to develop chatbots that can actually process natural language and execute tasks, as easy as building RegExp oriented bots.\n\nSo, we've found a really charming project to initiate from, the [Digital Ocean's Heartbot](https://github.com/digitalocean/heartbot) _a shot of love to for your favorite chat client_ =)\n\nBased on Heartbot, we introduced some NLP power from [NaturalNode](https://github.com/NaturalNode/natural) team, an impressive collections of Natural Language Processing libs made to be used in NodeJS.\n\nAnd so, the _magic_ happens...\n\nWelcome to *HubotNatural*, a new an exciting chatbot framework based in Hubot and NaturalNode libs, with an simple and extensible architecture designed by Digital Ocean's HeartBot Team, made with love and care by Rocket.Chat Team.  \n\nWe hope you enjoy the project and find some time to contribute.  \n\n## How it Works\n\nHubotNatural is made to be easy to train and extend. So what you have to understand basically is that it has an YAML corpus, where you can design your chatbot interactions using nothing but YAML's notation.\n\nAll YAML interactions designed in corpus can have it's own parameters, which will be processed by an event class.\n\nEvent classes give the possibility to extend HubotNatural. By writing your own event classes you can give your chatbot the skills to interact with any services you need.\n\n### YAML corpus\n\nThe YAML file is loaded in `scripts/index.js`, parsed and passed to chatbot bind, which will be found in `scripts/bot/index.js`, the cortex of the bot, where all information flux and control are programmed.\n\nThe YAML corpus is located in `training_data/corpus.yml` and it's basic structure looks like this:  \n\n```yaml\ntrust: .85\ninteractions:\n  - name: salutation\n    expect:\n      - hi there\n      - hello everyone\n      - what's up bot\n      - good morning\n    answer:\n      - - Hello there $user, how are you?\n        - Glad to be here...\n      - Hey there, nice to see you!\n    event: respond\n```\n\nWhat this syntax means:\n\n- `trust`: the minimum level of certain that must be returned by the classifier in order to run this interaction. Value is 0 to 1 (0% to 100%). If a classifier returns a value of certainty minor than `trust`, the bots responds with and error interaction node.  \n- `interactions`: An vector with lots of interaction nodes that will be parsed. Every interaction designed to your chatbot must be under an interaction.node object structure.\n- `name`: that's the unique name of the interaction by which it will be identified. Do not create more than one interaction with the same `node.name` attribute.  \n- `expect`: Those are the sentences that will be given to the bots training. They can be strings or keywords vectors, like `['consume','use']`.   \n- `answer`: the messages that will be sent to the user, if the classifiers get classified above the trust level. The `node.message` will be parsed and sent by event class. In order to use multiline strings inside your YAML, you must follow the [YAML Multiline Strings](http://yaml-multiline.info/) syntax. You can specify variables in message. By default HubotNatural comes with `$user`, `$bot` and `$room` variables.\n- `event`: is the name of the CoffeeScript or JavaScript Class inside `scripts/events`, without the file extension.\n\n### Event Coffee Classes\n\nEvent classes can be written to extend the chatbot skills. They receives the interaction object and parse the message, like this:  \n\n```yaml\nclass respond\n  constructor: (@interaction) ->\n  process: (msg) =>\n    sendMessages(stringElseRandomKey(@interaction.answer), msg)\n\nmodule.exports = respond\n```\n\nIt's base constructor is the `@interaction` node so you can have access to all attributes inside an interaction just using `@interaction.attribute`. Here you can parse texts, call APIs, read files, access databases, and everything else you need.  \nYou may want to use the function `stringElseRandomKey` to get a random element of a list, if it's parameter is a list, and use the function `sendMessages` to send messages to an user.\n\n#### Logistic Regression Classifier\n\nThe NaturalNode library comes with two kinds of classifiers, the Naive Bayes classifier known as the `BayesClassifier` and the `LogisticRegressionClassifier` functions. By default, HubotNatural uses the `LogisticRegressionClassifier`. It just came with better results in our tests.\n\n#### PorterStemmer\n\nThere is also more than one kind of stemmer. You should set the stemmer to define your language. By default we use the PorterStemmerPt for portuguese, but you can find english, russian, italian, french, spanish and other stemmers in NaturalNode libs, or even write your own based on those.\n\nJust check inside `node_modules/natural/lib/natural/stemmers/`.\n\nTo change the stemmers language, just set the environment variable `HUBOT_LANG` as `pt`, `en`, `es`, and any other language termination that corresponds to a stemmer file inside the above directory.\n\n## Deploy with Docker\n\nWe have a Dockerfile that builds a lightweight image based in Linux Alpine with all the repository content so you can upload that image to a docker registry and deploy your chatbot from there. It is located on `docker` folder.\n\nYou also can use `docker-compose.yml` file to load a local instance of Rocket.Chat, MongoDB and HubotNatural services, where you can change the parameters if you must.\n\nThe docker-compose file looks like this:\n\n```yaml\nversion: '2'\n\nservices:\n  rocketchat:\n    image: rocketchat/rocket.chat:latest\n    restart: unless-stopped\n    volumes:\n      - ./uploads:/app/uploads\n    environment:\n      - PORT=3000\n      - ROOT_URL=http://localhost:3000\n      - MONGO_URL=mongodb://mongo:27017/rocketchat\n      - MONGO_OPLOG_URL=mongodb://mongo:27017/local\n      - MAIL_URL=smtp://smtp.email\n#       - HTTP_PROXY=http://proxy.domain.com\n#       - HTTPS_PROXY=http://proxy.domain.com\n    depends_on:\n      - mongo\n    ports:\n      - 3000:3000\n\n  mongo:\n    image: mongo:3.2\n    restart: unless-stopped\n    volumes:\n     - ./data/db:/data/db\n     #- ./data/dump:/dump\n    command: mongod --smallfiles --oplogSize 128 --replSet rs0\n\n  mongo-init-replica:\n    image: mongo:3.2\n    command: 'mongo mongo/rocketchat --eval \"rs.initiate({ _id: ''rs0'', members: [ { _id: 0, host: ''localhost:27017'' } ]})\"'\n    depends_on:\n      - mongo\n\n  hubot-natural:\n    build: .\n    restart: unless-stopped\n    environment:\n      - HUBOT_ADAPTER=rocketchat\n      - HUBOT_NAME='Hubot Natural'\n      - HUBOT_OWNER=RocketChat\n      - HUBOT_DESCRIPTION='Hubot natural language processing'\n      - HUBOT_LOG_LEVEL=debug\n      - HUBOT_CORPUS=corpus.yml\n      - HUBOT_LANG=pt\n      - RESPOND_TO_DM=true\n      - RESPOND_TO_LIVECHAT=true\n      - RESPOND_TO_EDITED=true\n      - LISTEN_ON_ALL_PUBLIC=false\n      - ROCKETCHAT_AUTH=password\n      - ROCKETCHAT_URL=rocketchat:3000\n      - ROCKETCHAT_ROOM=GENERAL\n      - ROCKETCHAT_USER=botnat\n      - ROCKETCHAT_PASSWORD=botnatpass\n      - HUBOT_NATURAL_DEBUG_MODE=true\n    volumes:\n      - ./scripts:/home/hubotnat/bot/scripts\n      - ./training_data:/home/hubotnat/bot/training_data\n    depends_on:\n      - rocketchat\n    ports:\n      - 3001:8080\n```\n\nYou can change the attributes of variables and volumes to your specific needs and run `docker-compose up` in terminal to start the rocketchat service at `http://localhost:3000`.\n*ATTENTION:* You must remember that hubot must have a real rocketchat user created to login with. So by the first time you run this, you must first go into rocketchat and create a new user for hubot, change the `ROCKETCHAT_USER` and `ROCKETCHAT_PASSWORD` variables in the docker-compose.yml file, and then reload the services using `docker-compose stop && docker-compose up` to start it all over again.\n\nIf you want to run only the hubot-natural service to connect an already running instance of Rocket.Chat, you just need to remember to set the `ROCKETCHAT_URL` to a correct value, like `https://open.rocket.chat`.\n\n## Bot configuration\n\nIn order to correctly use Hubot Natural, after running `docker-compose up` command, it is necessary to do some configuration steps. To do that, there are two main options:\n\nThe first one is to do manually the steps described at [bot config documentation](docs/config_bot.md).\n\nThe second option is to execute the script `bot_config.py`, located at root directory on project. That will automatically configure bot based on following variables defined on script: `admin_name, admin_password, bot_name` and `bot_password`.  It is important to remember of properly set the values of this variables according to the context. The values used on `bot_name` and `bot_password` must be the same defined on docker-compose.yml, on the variables `ROCKETCHAT_USER` and `ROCKETCHAT_PASSWORD` respectively. And the values defined at `admin_name` and `admin_password` variables must be the credentials of an pre existent user on rocketchat, that has admin permissions.\n\nTo create an admin user automatically, before executing the services, just define the variables `ADMIN_USERNAME` and `ADMIN_PASS` for rocketchat service on `docker-compose.yml`.\n\n## Deploy with Hubot\n\nTo deploy HubotNatural, first you have to install yo hubot-generator:\n\n```shell\nnpm install -g yo generator-hubot\n```\n\nThen you will clone HubotNatural repository:  \n\n```shell\ngit clone https://github.com/RocketChat/hubot-natural.git mybot\n```\n\nChange 'mybot' in the git clone command above to whatever your bot's name will be, and install hubot binaries, without overwitting any of the files inside the folder:\n\n```shell\ncd mybot\nnpm install\nyo hubot\n\n                     _____________________________\n                    /                             \\\n   //\\              |      Extracting input for    |\n  ////\\    _____    |   self-replication process   |\n //////\\  /_____\\   \\                             /\n ======= |[^_/\\_]|   /----------------------------\n  |   | _|___@@__|__\n  +===+/  ///     \\_\\\n   | |_\\ /// HUBOT/\\\\\n   |___/\\//      /  \\\\\n         \\      /   +---+\n          \\____/    |   |\n           | //|    +===+\n            \\//      |xx|\n\n? Owner Diego <diego.dorgam@rocket.chat>\n? Bot name mybot\n? Description A simple helpful chatbot for your Company\n? Bot adapter rocketchat\n   create bin/hubot\n   create bin/hubot.cmd\n conflict Procfile\n? Overwrite Procfile? do not overwrite\n     skip Procfile\n conflict README.md\n? Overwrite README.md? do not overwrite\n     skip README.md\n   create external-scripts.json\n   create hubot-scripts.json\n conflict .gitignore\n? Overwrite .gitignore? do not overwrite\n     skip .gitignore\n conflict package.json\n? Overwrite package.json? do not overwrite\n     skip package.json\n   create scripts/example.coffee\n   create .editorconfig\n```\n\nNow, to run your chatbot in shell, you should run:  \n\n```shell\nbin/hubot\n```\n\nwait a minute for the loading process, and then you can talk to mybot.\n\nTake a look to adapters to run your bot in other platafforms.\n\n## Configure Live Transfer\n\nIt's possible to configure Hubot Natural to redirect conversation to a real person, in moments when the bot can not help users as much as needed.\nTo activate and configure `Live Transfer` feature, follow the steps described on [live transfer config documentation](docs/config_live_transfer.md).\n\n## Env Variables:\n\nIn your terminal window, run:\n\n```shell\nexport HUBOT_ADAPTER=rocketchat\nexport HUBOT_OWNER=RocketChat\nexport HUBOT_NAME='Bot Name'\nexport HUBOT_DESCRIPTION='Description of your bot'\nexport ROCKETCHAT_URL=https://open.rocket.chat\nexport ROCKETCHAT_ROOM=GENERAL\nexport LISTEN_ON_ALL_PUBLIC=false\nexport RESPOND_TO_DM=true\nexport RESPOND_TO_LIVECHAT=true\nexport ROCKETCHAT_USER=catbot\nexport ROCKETCHAT_PASSWORD='bot password'\nexport ROCKETCHAT_AUTH=password\nexport HUBOT_LOG_LEVEL=debug\nexport HUBOT_CORPUS='corpus.yml'\nexport HUBOT_LANG='en'\nbin/hubot -a rocketchat --name $HUBOT_NAME\n```  \n\nYou can check [hubot-rocketchat](https://github.com/RocketChat/hubot-rocketchat) adapter project for more details.\n\n### PM2 Json File\n\nAs NodeJS developers we learned to love [Process Manager PM2](http://pm2.keymetrics.io), and we really encourage you to use it.\n\n```shell\nnpm install pm2 -g\n```\n\nCreate a `mybot.json` file and jut set it's content as:  \n\n```json\n{\n\t\"apps\": [{\n\t\t\"name\": \"mybot\",\n\t\t\"interpreter\": \"/bin/bash\",\n\t\t\"watch\": true,\n\t\t\"ignore_watch\" : [\"client/img\"],\n\t\t\"script\": \"bin/hubot\",\n\t\t\"args\": \"-a rocketchat\",\n\t\t\"port\": \"3001\",\n\t\t\"env\": {\n\t\t\t\"ROCKETCHAT_URL\": \"https://localhost:3000\",\n\t\t\t\"ROCKETCHAT_ROOM\": \"general\",\n\t\t\t\"RESPOND_TO_DM\": true,\n\t\t\t\"ROCKETCHAT_USER\": \"mybot\",\n\t\t\t\"ROCKETCHAT_PASSWORD\": \"12345\",\n\t\t\t\"ROCKETCHAT_AUTH\": \"password\",\n\t\t\t\"HUBOT_LOG_LEVEL\": \"debug\"\n\t\t}\n\t}\n]\n}\n```\n\nYou can also instantiate more than one process with PM2, if you want for example to run more than one instance of your bot:  \n\n```json\n{\n\t\"apps\": [{\n\t\t\"name\": \"mybot.0\",\n\t\t\"interpreter\": \"/bin/bash\",\n\t\t\"watch\": true,\n\t\t\"ignore_watch\" : [\"client/img\"],\n\t\t\"script\": \"bin/hubot\",\n\t\t\"args\": \"-a rocketchat\",\n\t\t\"port\": \"3001\",\n\t\t\"env\": {\n\t\t\t\"ROCKETCHAT_URL\": \"https://localhost:3000\",\n\t\t\t\"ROCKETCHAT_ROOM\": \"general\",\n\t\t\t\"RESPOND_TO_DM\": true,\n\t\t\t\"ROCKETCHAT_USER\": \"mybot\",\n\t\t\t\"ROCKETCHAT_PASSWORD\": \"12345\",\n\t\t\t\"ROCKETCHAT_AUTH\": \"password\",\n\t\t\t\"HUBOT_LOG_LEVEL\": \"debug\"\n\t\t}\n\t}, {\n\t\t\"name\": \"mybot.1\",\n\t\t\"interpreter\": \"/bin/bash\",\n\t\t\"watch\": true,\n\t\t\"ignore_watch\" : [\"client/img\"],\n\t\t\"script\": \"bin/hubot\",\n\t\t\"args\": \"-a rocketchat\",\n\t\t\"port\": \"3002\",\n\t\t\"env\": {\n\t\t\t\"ROCKETCHAT_URL\": \"https://mycompany.rocket.chat\",\n\t\t\t\"ROCKETCHAT_ROOM\": \"general\",\n\t\t\t\"RESPOND_TO_DM\": true,\n\t\t\t\"ROCKETCHAT_USER\": \"mybot\",\n\t\t\t\"ROCKETCHAT_PASSWORD\": \"12345\",\n\t\t\t\"ROCKETCHAT_AUTH\": \"password\",\n\t\t\t\"HUBOT_LOG_LEVEL\": \"debug\"\n\t\t}\n\t}\n]\n}\n```\n\nAnd of course, you can go nuts setting configs for different plataforms, like facebook mensenger, twitter or telegram ;P.\n\n## Hubot Adapters\n\nHubot comes with at least 38 adapters, including Rocket.Chat addapter of course.  \nTo connect to your Rocket.Chat instance, you can set env variables, our config pm2 json file.\n\nCheckout other [hubot adapters](https://github.com/github/hubot/blob/master/docs/adapters.md) for more info.\n\n## Thanks to\n\nIn Rocket.Chat we are so in love by what we do that we couldn't forget to thanks everyone that made it possible!\n\n### Github Hubot Team\n\nThanks guys for this amazing framework, hubots lives in the heart of Rocket.Chat, and we recommend everyone to checkout https://hubot.github.com and find much much more about hubot!\n\n### Natural Node Project\n\nTo the NaturalNode Team our most sincere \"THAK YOU VERY MUCH!! We loved your project and we are excited to contribute!\".  \nCheckout https://github.com/NaturalNode/natural and let your mind blow!\n\n### Digital Ocean's Heartbot\n\nWe can not thanks Digital Ocean enough, not only for this beautifull [HeartBot project](https://github.com/digitalocean/heartbot), but also for all the great tutorials and all the contributions to OpenSource moviment.\n\n### Thanks to Our Community\n\nAnd for last but not least, thanks to our big community of contributors, testers, users, partners, and everybody who loves Rocket.Chat and made all this possible.\n"
  },
  {
    "path": "bot_config.py",
    "content": "#!/usr/bin/env python3\n# coding: utf-8\n\nimport requests\nimport json\nimport os\n\nhost = \"http://rocketchat:3000\"\npath = \"/api/v1/login\"\n\nbot_name = 'ROCKETCHAT_USER'\nbot_password = 'ROCKETCHAT_PASSWORD'\nbot_email = botname + '@email.com'\nadmin_name = 'ADMIN_USERNAME'\nadmin_password = 'ADMIN_PASS'\n\ndef get_authentication_token():\n    login_data = {\"username\": admin_name, \"password\": admin_password}\n    response = requests.post(host+path, data=json.dumps(login_data))\n    if response.json()['status'] == 'success':\n        print(\"login suceeded\\n\")\n\n        authToken = response.json()['data']['authToken']\n        userId = response.json()['data']['userId']\n        user_header = {\n            \"X-Auth-Token\": authToken,\n            \"X-User-Id\": userId,\n            \"Content-Type\": \"application/json\"\n        }\n\n        return user_header\n\n\nuser_header = get_authentication_token()\n\n\ndef create_user():\n    user_info = {\n        \"name\": bot_name,\n        \"email\": bot_email,\n        \"password\": bot_password,\n        \"username\": bot_name,\n        \"requirePasswordChange\": False,\n        \"sendWelcomeEmail\": True, \"roles\": ['bot']\n    }\n\n    create_user_response = requests.post(\n        host + \"/api/v1/users.create\",\n        data=json.dumps(user_info),\n        headers=user_header\n    )\n\n    if create_user_response.json()['success'] is True:\n        print(\"User has been sucessfully created!\")\n    else:\n        print(\"Error while creating bot user!\")\n\n\ndef create_agent():\n    agent_info = {\"username\": bot_name}\n    create_agent_response = requests.post(\n        host + \"/api/v1/livechat/users/agent\",\n        data=json.dumps(agent_info),\n        headers=user_header\n    )\n\n    if create_agent_response.json()['success'] is True:\n        print(\"Bot agent has been sucessfully created!\")\n    else:\n        print(\"Error while creating bot agent!\")\n\n    return create_agent_response\n\n\ndef configure_livechat():\n    # Enable Livechat\n    requests.post(\n        host + \"/api/v1/settings/Livechat_enabled\",\n        data=json.dumps({\"value\": True}),\n        headers=user_header\n    )\n\n    # Disable show pre-registration form\n    requests.post(\n        host + \"/api/v1/settings/Livechat_registration_form\",\n        data=json.dumps({\"value\": False}),\n        headers=user_header\n    )\n\n\ndef create_department(bot_agent_id):\n    department_info = {\n        \"department\": {\n            \"enabled\": True,\n            \"showOnRegistration\": True,\n            \"name\": \"department\",\n            \"description\": \"default department\"\n        },\n        \"agents\": [{\n            \"agentId\": bot_agent_id,\n            \"username\": bot_name,\n            \"count\": 0,\n            \"order\": 0\n        }]\n    }\n    create_department_response = requests.post(\n        host + \"/api/v1/livechat/department\",\n        data=json.dumps(department_info),\n        headers=user_header\n    )\n\n    if create_department_response.json()['success'] is True:\n        print(\"Default department has been sucessfully created!\")\n    else:\n        print(\"Error while creating department!\")\n\n\nif user_header:\n    create_user()\n\n    create_agent_response = create_agent()\n    bot_agent_id = create_agent_response.json()['user']['_id']\n\n    configure_livechat()\n\n    create_department(bot_agent_id)\n\nelse:\n    print(\"login failed\")\n"
  },
  {
    "path": "docker/Dockerfile",
    "content": "FROM node:alpine\n\nLABEL mantainer \"Diego Dorgam <diego.dorgam@rocket.chat>\"\n\nENV HUBOT_LANG='en'                                                  \\\n    HUBOT_CORPUS='training_data/corpus.yml'                          \\\n    HUBOT_RECURSIVE_TRAINING=false                                   \\\n    HUBOT_ADAPTER=rocketchat                                         \\\n    HUBOT_OWNER=RocketChat                                           \\\n    HUBOT_NAME=HubotNatural                                          \\\n    HUBOT_DESCRIPTION=\"Processamento de linguagem natural com hubot\" \\\n    HUBOT_LOG_LEVEL=debug                                            \\\n    ROCKETCHAT_URL=http://rocketchat:3000                            \\\n    ROCKETCHAT_ROOM=GENERAL                                          \\\n    ROCKETCHAT_USER=chatbot                                          \\\n    ROCKETCHAT_PASSWORD=@12345@                                      \\\n    ROCKETCHAT_AUTH=password                                         \\\n    RESPOND_TO_DM=true                                               \\\n    RESPOND_TO_LIVECHAT=true                                         \\\n    RESPOND_TO_EDITED=true                                           \\\n    LIVECHAT_DEPARTMENT_ID=null                                      \\\n    LISTEN_ON_ALL_PUBLIC=true\n\nRUN apk --update add --no-cache git make gcc g++ python && \\\n    addgroup -S hubotnat && adduser -S -g hubotnat hubotnat\n\nUSER node\n\nRUN mkdir /home/node/.npm-global && \\\n    chown -R node:node /home/node/.npm-global\n\nENV PATH=/home/node/.npm-global/bin:$PATH \\\n    NPM_CONFIG_PREFIX=/home/node/.npm-global\n\nRUN npm install -g yo generator-hubot\n\nWORKDIR /home/hubotnat/bot\n\nUSER root\n\nRUN mkdir -p /home/hubotnat/.config/configstore                             && \\\n    echo \"optOut: true\" > /home/hubotnat/.config/configstore/insight-yo.yml && \\\n    chown -R hubotnat:hubotnat /home/hubotnat\n\nUSER hubotnat\n\nRUN yo hubot --adapter ${HUBOT_ADAPTER}         \\\n             --owner ${HUBOT_OWNER}             \\\n             --name ${HUBOT_NAME}               \\\n             --description ${HUBOT_DESCRIPTION} \\\n             --defaults --no-insight         && \\\n    rm /home/hubotnat/bot/external-scripts.json \\\n    /home/hubotnat/bot/scripts/example.coffee   \\\n    /home/hubotnat/bot/hubot-scripts.json\n\n\nCOPY [\"package.json\", \"/home/hubotnat/bot/\"]\n\nADD scripts/ /home/hubotnat/bot/scripts/\n\nADD training_data/ /home/hubotnat/bot/training_data\n\nENTRYPOINT /home/hubotnat/bot/bin/hubot -a rocketchat\n"
  },
  {
    "path": "docker-compose.yml",
    "content": "version: '2'\n\nservices:\n  rocketchat:\n    image: rocketchat/rocket.chat:latest\n    restart: unless-stopped\n    volumes:\n      - ./uploads:/app/uploads\n    environment:\n      - PORT=3000\n      - ROOT_URL=http://localhost:3000\n      - MONGO_URL=mongodb://mongo:27017/rocketchat\n      - MONGO_OPLOG_URL=mongodb://mongo:27017/local\n      - MAIL_URL=smtp://smtp.email\n#       - HTTP_PROXY=http://proxy.domain.com\n#       - HTTPS_PROXY=http://proxy.domain.com\n    depends_on:\n      - mongo\n    ports:\n      - 3000:3000\n    # labels:\n    #   - \"traefik.backend=rocketchat\"\n    #   - \"traefik.frontend.rule=Host: your.domain.tld\"\n\n  mongo:\n    image: mongo:3.2\n    restart: unless-stopped\n    volumes:\n     - ./data/db:/data/db\n     #- ./data/dump:/dump\n    command: mongod --smallfiles --oplogSize 128 --replSet rs0\n    # labels:\n    #   - \"traefik.enable=false\"\n\n  # this container's job is just run the command to initialize the replica set.\n  # it will run the command and remove himself (it will not stay running)\n  mongo-init-replica:\n    image: mongo:3.2\n    command: 'mongo mongo/rocketchat --eval \"rs.initiate({ _id: ''rs0'', members: [ { _id: 0, host: ''localhost:27017'' } ]})\"'\n    depends_on:\n      - mongo\n\n  hubot-natural:\n    # image: diegodorgam/hubot-natural:latest\n    build:\n      context: .\n      dockerfile: ./docker/Dockerfile\n    restart: unless-stopped\n    environment:\n      - HUBOT_ADAPTER=rocketchat\n      - HUBOT_NAME='Hubot Natural'\n      - HUBOT_OWNER=RocketChat\n      - HUBOT_DESCRIPTION='Hubot natural language processing'\n      - HUBOT_LOG_LEVEL=debug\n      - HUBOT_CORPUS=training_data/corpus.yml\n      - HUBOT_RECURSIVE_TRAINING=false\n      - HUBOT_LANG=pt\n      - RESPOND_TO_DM=true\n      - RESPOND_TO_LIVECHAT=true\n      - RESPOND_TO_EDITED=true\n      - LISTEN_ON_ALL_PUBLIC=false\n      - ROCKETCHAT_AUTH=password\n      - ROCKETCHAT_URL=rocketchat:3000\n      - ROCKETCHAT_ROOM=GENERAL\n      - ROCKETCHAT_USER=botnat\n      - ROCKETCHAT_PASSWORD=botnatpass\n      - HUBOT_NATURAL_DEBUG_MODE=true\n      - LIVECHAT_DEPARTMENT_ID='<LIVECHAT_DEPARTMENT_ID>'\n    volumes:\n      - ./scripts:/home/hubotnat/bot/scripts\n      - ./training_data:/home/hubotnat/bot/training_data\n    depends_on:\n      - rocketchat\n    ports:\n      - 3001:8080\n"
  },
  {
    "path": "docs/config_bot.md",
    "content": "# Hubot Natural Bot\n\n## Adding Hubot Natural Bot\n\nTo add the bot into your Rocket Chat, you must create an administrator account. In the initial screen, click on **Register a new account**, and fill the informations, you don't need to use a real email account.\n\n![New account example](https://gitlab.com/lappis-unb/projects/minc/rouanet-bot/wikis/images/new_account.png)\n\nOnce you filled the informations, click on REGISTER A NEW ACCOUNT, and then go back to login page, and do login.\n\nIn the left side menu, click on tree points icon, and then click on **Administration** option.\n\nAfter that, click on **Users** option. It will appear a right side bar, having the '+' button. Click on this button and fill the informations according to the following image. The name of bot can be modified, but must be used the user and password that are defined on ROCKETCHAT_USER and ROCKETCHAT_PASSWORD variables, on `production.yml` file. By default, the user and password are `botnat` and `botnatpass`, respectively.\n\nTo add the role to bot, click the option **Select a Role**, select bot and click on **ADD ROLE** option. Then click on **Save**.\n\n![Adding bot tutorial](https://gitlab.com/lappis-unb/projects/minc/rouanet-bot/wikis/images/adding_bot.png)\n\nNow you are ready to talk to the bot using the channels, or using @botnat before the message.\n\n### Livechat\n\nThe Livechat allows a feature of a window that can be integrated to other pages. To activate it, you must access again the **Administration** option, by clicking on three points icon, on the left side menu. Then click on **Livechat** option.\n\n![Livechat option on adm menu](https://gitlab.com/lappis-unb/projects/minc/rouanet-bot/wikis/images/livechat_sidebar.png)\n\nOn the next screen, mark the **Livechat enabled** option as True, and the **Show pre-registration form** option as False, in order to not be asked for email and password when using chat. Click then in **SAVE CHANGES**.\n\n![Livechat activation screen](https://gitlab.com/lappis-unb/projects/minc/rouanet-bot/wikis/images/active_livechat.png)\n\nClose the left side menu, and click on three points icon. Select the **Livechat** option.\n\n![Livechat option](https://gitlab.com/lappis-unb/projects/minc/rouanet-bot/wikis/images/livechat_option.png)\n\nAt the right side menu, select the **User Management** option. You must add the bot as an agent, so search for botnat, then click in **ADD**.\n\n![Adding bot as agent](https://gitlab.com/lappis-unb/projects/minc/rouanet-bot/wikis/images/add_agent.png)\n\nNow it is necessary to create an department. On the left side menu, click on **Departments**, and then click in **NEW DEPARTMENT**.\n\n![Adding bot as agent](https://gitlab.com/lappis-unb/projects/minc/rouanet-bot/wikis/images/new_department.png)\n\nOn the next screen, write a name and a description for the department and add the bot by selecting him on **Available agents**. Then click on **Save** option.\n\n![Create new department](https://gitlab.com/lappis-unb/projects/minc/rouanet-bot/wikis/images/add_agent_to_department.png)\n\nOn the left side menu, click at **Installation**. Now you only need to copy and paste the code on your site, where you want to integrate the conversation window.\n\n![Installation code](https://gitlab.com/lappis-unb/projects/minc/rouanet-bot/wikis/images/installation.png)\n\nAfter integrating the code to your site, a window like the one showed in the image should be available, and ready to use.\n\n![Livechat window](https://gitlab.com/lappis-unb/projects/minc/rouanet-bot/wikis/images/livechat_en.png)\n\n#### Welcome message on Livechat\n\nTo fire a welcome message can be used **Triggers**. A **Trigger** fire an action according to a condition. A condition can be the user accessing an URL, or the time user stay on site. The action, in this case, is the welcome message send.\n\nTo add a **trigger** to Livechat, on the left side menu, click on **Triggers** option. Then mark the option **Enabled** as **Yes**, and fill the trigger name and description. In case of the firing critery is the user entering a URL, then choose the option **Visitor page URL** on **Condition** field, and on the side field write the desired URL.\nSelect the option **Send a message** at field **Action**, type the bot name(**botnat**) and the welcome message. After all, click on **Save**.\n\n![Livechat Trigger URL](https://gitlab.com/lappis-unb/projects/minc/rouanet-bot/wikis/images/trigger_url.png)\n\n## Updating the YAML\n\n\nTo read more information about the YAML structure and how to modify it, access the [Hubot-Natural README](https://github.com/RocketChat/hubot-natural/blob/master/README.md).\n"
  },
  {
    "path": "docs/config_live_transfer.md",
    "content": "# Config Live Transfer\n\nIn order to user `Live Transfer` feature, it is necessary to do some steps.\n\nThe first thing to do is to set the department hash, on the file used as corpus on bot. The department hash must be placed on `department` field, in the section named `livechat-transfer`, as showed on the image below. The file being used as corpus is the one defined on field `HUBOT_CORPUS`field, at docker-compose file.\n\n![Updating corpus file](https://gitlab.com/lappis-unb/projects/minc/rouanet-bot/wikis/images/update_corpus.png)\n\nThe department hash can be obtained on the URL in department `edit screen` as showed on image below.\n\n![Getting department id](https://gitlab.com/lappis-unb/projects/minc/rouanet-bot/wikis/images/department_hash.png)\n\nTo get to department `edit screen` close the left side menu, and click on three points icon. Select the **Livechat** option.\n\n![Livechat option](https://gitlab.com/lappis-unb/projects/minc/rouanet-bot/wikis/images/livechat_option.png)\n\nNow it is necessary to select the department to be used on transfer action. On the left side menu, click on **Departments**, and then click on the department name.\n\n![Select department](https://gitlab.com/lappis-unb/projects/minc/rouanet-bot/wikis/images/new_department.png)\n\nOnce you got the department hash and placed on corpus file, restart the hubot-natural service, in order to update the container and reload `corpus` file.\n\nLastly is important to remember that the live transfer conversation channel will be created between any available user on department. For that, the user must be online, and must be previously added as an agent on department being used(The one defined on corpus file). For that, You must first add the user as an agent. At the right side menu, select the **User Management** option. , so search for the user you want, then click in **ADD**.\n\n![Adding user as agent](https://gitlab.com/lappis-unb/projects/minc/rouanet-bot/wikis/images/add_as_agent.png)\n\nThen again on the department edit screen, add the user to department by selecting him on **Available agents**. Then click on **Save** option.\n\n![Add agent to department](https://gitlab.com/lappis-unb/projects/minc/rouanet-bot/wikis/images/add_user_to_department.png)\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"hubot-natural\",\n  \"version\": \"0.0.8\",\n  \"private\": true,\n  \"author\": \"Diego Dorgam <diego.dorgam@rocket.chat>\",\n  \"description\": \"NLP YAML oriented chatbot\",\n  \"dependencies\": {\n    \"coffeescript\": \"^1.12.7\",\n    \"hubot\": \"^2.19.0\",\n    \"hubot-diagnostics\": \"0.0.1\",\n    \"hubot-help\": \"^0.2.2\",\n    \"hubot-redis-brain\": \"0.0.4\",\n    \"hubot-rocketchat\": \"^1.0.12\",\n    \"js-yaml\": \"^3.2.5\",\n    \"natural\": \"^0.5.0\"\n  },\n  \"devDependencies\": {\n    \"coffeelint\": \"^2.0.7\"\n  },\n  \"engines\": {\n    \"node\": \"0.10.x\"\n  }\n}\n"
  },
  {
    "path": "scripts/actions/configure.coffee",
    "content": "require 'coffeescript/register'\n\nclassifier = require '../bot/classifier'\nsecurity = require '../lib/security'\n{ msgVariables, stringElseRandomKey, sendMessages,\n  loadConfigfile, getConfigFilePath } = require  '../lib/common'\n\nclass Configure\n  constructor: (@interaction) ->\n\n  process: (msg) =>\n    if @interaction.role?\n      if security.checkRole(msg, @interaction.role)\n        @act(msg)\n      else\n        msg.sendWithNaturalDelay(\n          \"*Acces Denied* Action requires role #{@interaction.role}\"\n        )\n    else\n      @act(msg)\n\n  setVariable: (msg) ->\n    raw_message = msg.message.text.replace(msg.robot.name + ' ', '')\n    configurationBlock = raw_message.split(' ')[-1..].toString()\n\n    configKeyValue = configurationBlock.split('=')\n    configKey = configKeyValue[0]\n    configValue = configKeyValue[1]\n\n    key = 'configure_' + configKey + '_' + msg.envelope.room\n    msg.robot.brain.set(key, configValue)\n    sendMessages(stringElseRandomKey(@interaction.answer), msg,\n                  { key: configKey, value: configValue })\n    return\n\n  retrain: (msg) ->\n    global.config = loadConfigfile getConfigFilePath()\n    classifier.train()\n    sendMessages(stringElseRandomKey(@interaction.answer), msg)\n    return\n\n  act: (msg) ->\n    command = @interaction.command or 'setVariable'\n    console.log command\n    switch command\n      when 'setVariable'\n        @setVariable(msg)\n      when 'train'\n        @retrain(msg)\n    return\n\nmodule.exports = Configure\n"
  },
  {
    "path": "scripts/actions/error.coffee",
    "content": "require 'coffeescript/register'\n\n{ msgVariables, sendMessages, stringElseRandomKey } = require '../lib/common'\n\nclass Error\n  constructor: (@interaction) ->\n  process: (msg) =>\n    sendMessages(stringElseRandomKey(@interaction.answer), msg)\n\nmodule.exports = Error\n"
  },
  {
    "path": "scripts/actions/respond.coffee",
    "content": "require 'coffeescript/register'\n\n{ msgVariables, sendMessages, stringElseRandomKey } = require '../lib/common'\n\nlivechat_department = (process.env.LIVECHAT_DEPARTMENT_ID || null )\n\nclass Respond\n  constructor: (@interaction) ->\n  process: (msg) =>\n    lc_dept = @interaction.department or livechat_department\n    offline_message = (\n      @interaction.offline or 'Sorry, there is no online agents to transfer to.'\n    )\n    sendMessages(stringElseRandomKey(@interaction.answer), msg)\n\n    command = @interaction.command?.toLowerCase() or false\n    switch command\n      when 'transfer'\n        @livechatTransfer(msg, 3000, lc_dept, offline_message)\n\n\n  livechatTransfer: (msg, delay = 3000, lc_dept, offline_message) ->\n    setTimeout((-> msg.robot.adapter.callMethod('livechat:transfer',\n                      roomId: msg.envelope.room\n                      departmentId: lc_dept\n                    ).then (result) ->\n                      if result == true\n                        console.log 'livechatTransfer executed!'\n                      else\n                        console.log 'livechatTransfer NOT executed!'\n                        sendMessages(stringElseRandomKey(offline_message), msg)\n                ), delay)\n\nmodule.exports = Respond\n"
  },
  {
    "path": "scripts/actions/rest.coffee",
    "content": "require 'coffeescript/register'\n\n{ msgVariables, stringElseRandomKey } = require '../lib/common'\n\n# interpolate a string to replace {{ placeholder }} keys with passed object values\n# I couldn't find how to make delayed string interpolation with coffeescript yet :/\n# Reference solution https://stackoverflow.com/questions/9829470/in-coffeescript-is-there-an-official-way-to-interpolate-a-string-at-run-time\nString::interp = (values)->\n    @replace /{{(.*)}}/g,\n        (ph, key)->\n            values[key] or ''\n            \nclass Rest\n  constructor: (@interaction) ->\n  process: (msg) =>\n    rest_uri = @interaction.rest_uri\n    offline_message = (\n      @interaction.offline or 'Sorry, there is no online agents to transfer to.'\n    )\n    type = @interaction.type?.toLowerCase() or 'random'\n    switch type\n      when 'block'\n        messages = @interaction.answer.map (line) ->\n          return msgVariables line, msg\n        msg.sendWithNaturalDelay messages\n      when 'random'\n        message = stringElseRandomKey @interaction.answer\n        message = msgVariables message, msg\n        msg.sendWithNaturalDelay message\n\n    method = @interaction.rest.method?.toLowerCase() or 'get'\n    @rest(msg, 3000, rest_uri, offline_message, type, method)\n\n\n  rest: (msg, delay = 3000, rest_uri, offline_message, type, method) ->\n    data = JSON.stringify(@interaction.rest.data)\n    successmsg = @interaction.rest.successmsg\n\n    headers = @interaction.rest.headers\n    \n    headers = \n        'Content-Type': 'application/json'\n    \n    msg.http(@interaction.rest.url)\n        .headers(headers)[method](data) (err, response, body) ->\n            if response.statusCode isnt 200\n                msg.sendWithNaturalDelay \"We're sorry, something went wrong :/\"\n                return\n            results = JSON.parse(body)\n            message = successmsg.interp (results)\n            msg.sendWithNaturalDelay message\n\nmodule.exports = Rest\n"
  },
  {
    "path": "scripts/bot/action-handler.coffee",
    "content": "actionHandler = {}\n\nfs = require 'fs'\npath = require 'path'\n\nactionsPath = path.join __dirname, '..', 'actions'\nactions = {}\n\nnodes = {}\nerr_nodes = 0\n\nactionHandler.registerActions = (config) ->\n  for action in fs.readdirSync(actionsPath).sort()\n    action_name = action.replace /\\.coffee$/, ''\n    actions[action_name] = require path.join actionsPath, action\n\n  for interaction in config.interactions\n    { name, action } = interaction\n    nodes[name] = new actions[action] interaction\n\n    if name.substr(0, 5) == \"error\"\n      err_nodes++\n\n  if err_nodes == 0\n    console.log(\"WARNING! You don't have any error nodes, you need at least \" +\n                \"one to garantee that the bot always will respond something\")\n\nactionHandler.errorNodesCount = () ->\n  return err_nodes\n\nactionHandler.takeAction = (name, res) ->\n  if not name?\n    res.sendWithNaturalDelay \"I'm sorry Dave, I'm afraid I can't do that =/\"\n  else\n    nodes[name].process(res)\n\nmodule.exports = actionHandler\n"
  },
  {
    "path": "scripts/bot/classifier.coffee",
    "content": "require 'coffeescript/register'\n\nnatural = require 'natural'\n\nclassifier = {}\n\nlang = (process.env.HUBOT_LANG || 'en')\n\nPorterStemmer = natural.PorterStemmer\nif lang != 'en'\n  lang_captilize = lang.charAt(0).toUpperCase() + lang.slice(1)\n  PorterStemmer = natural['PorterStemmer' + lang_captilize]\n\nactionHandler = require './action-handler'\n\n# Classifier that holds all root level interactions\nroot_classifier = {}\nerror_count = 0\n\nROOT_LEVEL_NAME = \"root\"\n\nclassifyInteraction = (interaction, classifier) ->\n  if not interaction.expect?\n    console.warn(\"\\t!! Interaction with no expects: \" + interaction.name)\n    return\n\n  console.log('\\tProcessing interaction: ' + interaction.name)\n\n  if not Array.isArray interaction.expect\n    interaction.expect = [interaction.expect]\n\n  for doc in interaction.expect\n    if typeof(doc) != 'string'\n      doc = '' + doc\n    classifier.addDocument(doc, interaction.name)\n\n  if interaction.next?.interactions? and not interaction.next?.classifier?\n    if not Array.isArray interaction.next.interactions\n      interactions.next.interactions = [interactions.next.interactions]\n\n    interaction.next.classifier = new natural.LogisticRegressionClassifier(\n      PorterStemmer\n    )\n    for nextInteractionName in interaction.next.interactions\n      nextInteraction = global.config.interactions.find (n) ->\n        return n.name is nextInteractionName\n      if not nextInteraction?\n        console.log 'No valid interaction for', nextInteractionName\n        continue\n      classifyInteraction nextInteraction, interaction.next.classifier\n    interaction.next.classifier.train()\n\nclassifier.train = () ->\n  console.log 'Processing interactions'\n  console.time 'Processing interactions (Done)'\n\n  root_classifier = new natural.LogisticRegressionClassifier(PorterStemmer)\n\n  for interaction in global.config.interactions\n    if (not interaction.level? or\n        (Array.isArray(interaction.level) and\n         interaction.level.includes(ROOT_LEVEL_NAME)) or\n        interaction.level == ROOT_LEVEL_NAME)\n      classifyInteraction interaction, root_classifier\n\n  console.log 'Training Bot (This could be take a while...)'\n  root_classifier.train()\n\n  console.timeEnd 'Processing interactions (Done)'\n\nsetContext = (res, context) ->\n  key = 'context_' + res.envelope.room + '_' + res.envelope.user.id\n  console.log 'set context', context\n  res.robot.brain.set(key, context)\n\ngetContext = (res) ->\n  key = 'context_' + res.envelope.room + '_' + res.envelope.user.id\n  return res.robot.brain.get(key)\n\nisDebugMode = (res) ->\n  key = 'configure_debug-mode_' + res.envelope.room\n  return (res.robot.brain.get(key) == 'true')\n\ngetDebugCount = (res) ->\n  key = 'configure_debug-count_' + res.envelope.room\n  if res.robot.brain.get(key)\n    return res.robot.brain.get(key) - 1\n  else\n    return false\n\nbuildClassificationDebugMsg = (res, classifications) ->\n  list = ''\n  debugCount = getDebugCount(res)\n\n  if debugCount\n    classifications = classifications[0..debugCount]\n\n  for classification, i in classifications\n    list = (list.concat 'Label: ' + classification.label + ' Score: ' +\n              classification.value + '\\n')\n\n  newMsg = {\n    channel: res.envelope.user.roomID,\n    msg: \"Classifications considered:\",\n    attachments: [{\n        text: list\n    }]\n  }\n\n  return newMsg\n\nincErrors = (res) ->\n  key = 'errors_' + res.envelope.room + '_' + res.envelope.user.id\n  errors = res.robot.brain.get(key) or 0\n  errors++\n  console.log 'inc errors ', errors\n  res.robot.brain.set(key, errors)\n  return errors\n\nclearErrors = (res) ->\n  console.log 'clear errors'\n  key = 'errors_' + res.envelope.room + '_' + res.envelope.user.id\n  res.robot.brain.set(key, 0)\n\nclassifier.processMessage = (res, msg) ->\n  context = getContext(res)\n  currentClassifier = root_classifier\n  trust = global.config.trust\n  interaction = undefined\n  debugMode = isDebugMode(res)\n  console.log 'context ->', context\n\n  if context\n    interaction = global.config.interactions.find (interaction) ->\n      interaction.name is context\n    if interaction? and interaction.next?.classifier?\n      currentClassifier = interaction.next.classifier\n      if interaction.next.trust?\n        trust = interaction.next.trust\n\n  classifications = currentClassifier.getClassifications(msg)\n\n  console.log 'classifications ->', classifications[0..4]\n\n  if debugMode\n    newMsg = buildClassificationDebugMsg(res, classifications)\n    robot.adapter.chatdriver.customMessage(newMsg)\n\n  if classifications[0].value >= trust\n    clearErrors res\n    [node_name, sub_node_name] = classifications[0].label.split('|')\n    console.log({ node_name, sub_node_name })\n    int = global.config.interactions.find (interaction) ->\n      interaction.name is node_name\n    if int.classifier?\n      int.classifier.getClassifications(msg)\n  else\n    if Array.isArray interaction?.next?.error\n      error_count = incErrors res\n      error_node_name = interaction.next.error[error_count - 1]\n      if not error_node_name?\n        clearErrors res\n        error_node_name = interaction.next.error[0]\n    else if interaction?.next?\n      setContext(res, undefined)\n      return classifier.processMessage(res, msg)\n    else\n      error_count = incErrors res\n\n      if error_count > actionHandler.errorNodesCount()\n        clearErrors res\n        error_count = incErrors res\n\n      error_node_name = \"error-\" + error_count\n\n  currentInteraction = global.config.interactions.find (interaction) ->\n    interaction.name is node_name or interaction.name is error_node_name\n\n  if not currentInteraction?\n    clearErrors res\n    return console.log 'Invalid interaction [' + node_name + ']'\n\n  if currentInteraction.context == 'clear'\n    setContext(res, undefined)\n  else if node_name?\n    setContext(res, node_name)\n\n  return node_name or error_node_name\n\nmodule.exports = classifier\n"
  },
  {
    "path": "scripts/bot/index.coffee",
    "content": "require 'coffeescript/register'\n\n{ regexEscape, loadConfigfile } = require '../lib/common'\n{ getUserRoles, checkRole } = require '../lib/security'\nactionHandler = require './action-handler'\nclassifier = require './classifier'\n\ntyping = (res, t) ->\n  res.robot.adapter.callMethod 'stream-notify-room',\n    res.envelope.user.roomID + '/typing', res.robot.alias, t is true\n\nsendWithNaturalDelay = (msgs, elapsed = 0) ->\n  if !Array.isArray msgs\n    msgs = [msgs]\n\n  keysPerSecond = 50\n  maxResponseTimeInSeconds = 2\n\n  msg = msgs.shift()\n  if typeof msg isnt 'string'\n    cb = msg.callback\n    msg = msg.answer\n\n  minTimeTyping = maxResponseTimeInSeconds * 1000\n  timeToType = (msg.length / keysPerSecond) * 1000 - elapsed\n  delay = Math.min(Math.max(timeToType, 0), minTimeTyping)\n  typing @, true\n\n  setTimeout =>\n    @send msg\n\n    if msgs.length\n      sendWithNaturalDelay.call @, msgs\n    else\n      typing @, false\n      cb?()\n  , delay\n\ncreateMatch = (text, pattern) ->\n  return text.match new RegExp('\\\\b' + pattern + '\\\\b', 'i')\n\nmodule.exports = (_config, robot) ->\n  global.config = _config\n\n  global.usersAndRoles = getUserRoles(robot)\n\n  if not global.config.interactions?.length\n    robot.logger.warning 'No interactions configured.'\n    return\n  if not global.config.trust\n    robot.logger.warning 'No trust level configured.'\n    return\n\n  actionHandler.registerActions(global.config)\n  classifier.train()\n\n  robot.hear /(.+)/i, (res) ->\n    res.sendWithNaturalDelay = sendWithNaturalDelay.bind(res)\n    msg = (res.match[0].replace res.robot.name + ' ', '').trim()\n\n    # check if robot should respond\n    if res.envelope.user.roomType in ['c', 'p']\n      if (createMatch(res.message.text, res.robot.name) or\n          createMatch(res.message.text, res.robot.alias))\n        actionName = classifier.processMessage(res, msg)\n        actionHandler.takeAction(actionName, res)\n        # TODO: Add engaged user conversation recognition/tracking\n    else if res.envelope.user.roomType in ['d', 'l']\n      actionName = classifier.processMessage(res, msg)\n      actionHandler.takeAction(actionName, res)\n"
  },
  {
    "path": "scripts/index.coffee",
    "content": "require 'coffeescript/register'\n\n{ loadConfigfile, getConfigFilePath } = require  './lib/common'\nchatbot = require './bot/index'\n\ntry\n  global.config = loadConfigfile getConfigFilePath()\ncatch err\n  process.exit()\n\nchatbot = chatbot.bind null, global.config\n\nmodule.exports = chatbot\n"
  },
  {
    "path": "scripts/lib/common.coffee",
    "content": "fs = require 'fs'\nyaml = require 'js-yaml'\n\ncommon = {}\n\napplyVariable = (string, variable, value, regexFlags = 'i') ->\n  string.replace(\n    new RegExp(\"(^|\\\\W)\\\\$#{variable}(\\\\W|$)\", regexFlags),\n    (match) ->\n      match.replace \"$#{variable}\", value\n  )\n\ncommon.msgVariables = (message, msg, variables = {}) ->\n  message = applyVariable message, 'user', msg.envelope.user.name\n  message = applyVariable message, 'bot', msg.robot.alias\n  if (msg.envelope.room?)\n    message = applyVariable message, 'room', msg.envelope.room\n\n  for key, value of variables\n    message = common.applyVariable message, key, value\n  return message\n\ncommon.stringElseRandomKey = (variable) ->\n  return variable if typeof variable is 'string'\n  if variable instanceof Array\n    variable[Math.floor(Math.random() * variable.length)]\n\ncommon.sendMessages = (messages, msg, variables = {}) ->\n  if !Array.isArray messages\n    messages = [messages]\n  messages = messages.map (message) ->\n    return common.msgVariables message, msg, variables\n  msg.sendWithNaturalDelay messages\n  \ngetYAMLFiles = (filepath, recursive = false) ->\n  listFile = fs.readdirSync filepath\n\n  dataFiles = []\n  for filename in listFile\n    file = filepath + '/' + filename\n    if fs.lstatSync(file).isFile()\n      dataFiles.push(yaml.safeLoad fs.readFileSync file, 'utf8')\n    else if recursive\n      dataFiles = dataFiles.concat(getYAMLFiles file, recursive)\n\n  if dataFiles.lenght is 0\n    console.error('The directory: ' + filepath + ' is empty.')\n  return dataFiles\n\nconcatYAMLFiles = (dataFiles) ->\n  mindBot = {}\n  if dataFiles.length > 0\n    mindBot = { trust: dataFiles[0].trust, interactions: [] }\n    dataFiles.forEach (element) ->\n      mindBot.trust = Math.min(mindBot.trust, element.trust)\n      mindBot.interactions = mindBot.interactions.concat element.interactions\n  else\n    console.error('Data files is empty.')\n  return mindBot\n\ncommon.regexEscape = (string) ->\n  #http://stackoverflow.com/a/6969486\n  string.replace /[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\"\n\ncommon.getConfigFilePath = () ->\n  return process.env.HUBOT_CORPUS || 'training_data/corpus.yml'\n\ncommon.loadConfigfile = (filepath) ->\n  try\n    console.log(\"Loading corpus: \" + filepath)\n\n    if fs.lstatSync(filepath).isFile()\n      return yaml.safeLoad fs.readFileSync filepath, 'utf8'\n\n    else if fs.lstatSync(filepath).isDirectory()\n      recursiveTraining = process.env.HUBOT_RECURSIVE_TRAINING || false\n      yamlFiles = getYAMLFiles(filepath, recursiveTraining)\n      return concatYAMLFiles(yamlFiles)\n\n  catch err\n    console.error \"An error occurred while trying to load bot's config.\"\n    console.error err\n    throw Error(\"Error on loading YAML file \" + filepath)\n\nmodule.exports = common\n"
  },
  {
    "path": "scripts/lib/security.coffee",
    "content": "security = {}\n\nsecurity.getUserRoles = (robot) ->\n  usersAndRoles = {}\n  robot.adapter.chatdriver.callMethod('getUserRoles').then (users) ->\n    users.forEach (user) ->\n      user.roles.forEach (role) ->\n        if typeof usersAndRoles[role] == 'undefined'\n          usersAndRoles[role] = []\n        usersAndRoles[role].push user.username\n        return\n      return\n    return\n  return usersAndRoles\n\n\nsecurity.checkRole = (msg, role) ->\n  if typeof global.usersAndRoles[role] != 'undefined'\n    if global.usersAndRoles[role].indexOf(msg.envelope.user.name) == -1\n      return false\n    else\n      return true\n  else\n    msg.robot.logger.info 'Role ' + role + ' not found'\n    return false\n\nmodule.exports = security\n"
  },
  {
    "path": "training_data/catbot-en.yml",
    "content": "trust: .9\ninteractions:\n\n# Greetings\n\n  - name: greeting-hi\n    expect:\n      - hello\n      - hello bot\n      - what's up\n      - what's going on\n      - hey\n      - hi\n      - hi there\n      - heya\n      - hi bot\n      - Greetings\n      - hey bot\n      - hiii\n      - hey you\n      - howdy\n    answer:\n      - |\n        Hello =), my name is CatBot, I'm a ChatBot built in Rocket.Chat.\n        Maybe I can help you with:\n          - RocketChat Installation\n          - Support Plans\n          - Product Features\n          - Cloud Services\n          - Development and White Labeling\n          - Partnership\n      - if you need to talk to a real person I can transfer you to a fellow human.\n    next:\n      interactions:\n        - install-intro\n        - support-intro\n        - product-intro\n        - cloud-intro\n        - development-intro\n        - partnership-intro\n        - livechat-transfer\n        - greeting-help\n        - greeting-return\n      trust: .9\n      error:\n        - greeting-error-1\n        - greeting-error-2\n        - greeting-error-3\n    action: respond\n    type: block\n\n  - name: greeting-error-1\n    answer:\n      - Sorry, I couldn't understand what you said, please choose one of the main topics, or ask for a `transfer` to talk to a person\n      - I don't understand, I'm only trained to answer for the main topics.\n    action: error\n    context: clear\n    type: random\n\n  - name: greeting-error-2\n    answer:\n      - Sorry, could you be more specific?\n      - If you need to know the main topics, just ask for `help` and I will list them\n    action: error\n    context: clear\n    type: block\n\n  - name: greeting-error-3\n    answer:\n      - Sorry, I definetelly can't help you, my training isn't wide enough.\n      - I'll see if there is any human around to talk to you, just a momment.\n    action: error\n    context: clear\n    type: block\n\n  - name: livechat-transfer\n    expect:\n      - transfer me\n      - want to talk to a person\n      - wann talk to a human\n      - call me your supervisor\n      - call a person\n      - call a human\n      - transfer to a person\n    answer:\n      - Ok, I'll try to transfer this to a real person, one moment please...\n      - Alright, let me just check if there is a person online...\n      - No problem, let me just find a human online here...\n    offline:\n      - sorry, there is no one online right now. Please, if you can send an e-mail to sales@rocket.chat, our team will answer you as soon as possible.\n    action: respond\n    command: transfer\n    department: 6yXL9RLoyY5m882P2\n    type: random\n\n  - name: greeting-help\n    expect:\n      - help me\n      - help\n      - get support\n      - found a bug\n    answer:\n      - |\n        Need some help? You can find assistance in:\n          - Support Channel (https://open.rocket.chat/channel/support)\n          - Support E-mail support@rocket.chat\n          - Developers Channel (https://open.rocket.chat/channel/dev)\n          - GitHub Community (https://github.com/RocketChat/Rocket.Chat/issues)\n        if you need to talk to a real person, just need to ask me and I'll transfer you to a fellow human.\n    action: respond\n    context: clear\n    type: block\n\n  - name: greeting-return\n    expect:\n      - go back\n      - get back\n      - that is not what I am looking for\n      - return\n      - reset\n      - it's not that\n    answer:\n      - ok, let's get back on the main subjects\n    context: clear\n    action: respond\n    type: block\n\n  - name: greeting-how-are-you\n    expect:\n      - How are you?\n      - How are doing?\n      - How are you feeling?\n    answer:\n      - I am great, $user. Everything is peaceful around here...\n      - How can I be useful to you?\n    action: respond\n    type: block\n\n  - name: greeting-miss-you\n    expect:\n      - long time no see\n      - I missed you\n      - did you miss me\n      - do you remember me\n    answer:\n      - I missed you too...\n      - $user! It's been a while!\n      - I was starting to think you wouldn't remember me anymore =)\n    action: respond\n    type: random\n\n  - name: greeting-answer\n    expect:\n      - I'm fine\n      - I'm good\n      - I'm great\n    answer:\n      - cool =)! How can I help you?\n      - That's great!\n      - Awesome\n      - ok =)\n    action: respond\n    type: random\n\n  - name: greeting-thankful\n    expect:\n      - Thanks\n      - Thank you\n      - awesome Thanks\n      - thks\n      - thank you very much\n    answer:\n      - you're welcome =) there is anything else?\n      - great! if you need something else please feel free to ask\n      - cool, glad to help.\n    action: respond\n    type: random\n\n  - name: greeting-morning\n    expect:\n      - good morning\n      - morning\n      - morning bot\n      - good morning bot\n    answer:\n      - Hello, $user. I wish you a great day!\n      - Good morning, $user. How's the weather outside?\n      - It's a beatiful day to surf on the internert\n      - So great, $user ;)\n      - It's all better now that you got here, $user\n    action: respond\n    type: random\n\n  - name: greeting-afternoon\n    expect:\n      - afternoon\n      - good afternoon\n    answer:\n      - Hellos, $user! i wish you a fantastic afteroon!\n      - Good afternoon, $user. Did you have lunch already?\n      - It's a beautiful afternoon for a quick sleep mode ;)\n      - Good afternooooon, $user!\n      - $user, I was starting to miss you already\n    action: respond\n    type: random\n\n  - name: greeting-night\n    expect:\n      - good night\n      - good evening\n      - night\n      - evening\n    answer:\n      - A very good night to you as well, $user!\n      - Good night, $user!\n      - It is truely a good night, $user\n    action: respond\n    type: random\n\n# RocketChat Installation\n\n  - name: install-intro\n    level: installation\n    expect:\n      - Installation\n      - how to install\n      - problems installing\n      - how to deploy\n    answer:\n      - \"Cool! About Rocket.Chat's install, you may choose one of the following methods:\"\n      - |\n        - Rocket.Chat Cloud\n        - PaaS Deployments\n        - Docker Containers\n        - Manual Installation\n        - Automation Tools\n        - Updating\n        - Minimum Requirements\n      - Want to know more about any of those methods?\n    next:\n      interactions:\n        - install-rc-cloud\n        - install-paas\n        - install-docker\n        - install-manual\n        - install-automation\n        - install-updating\n        - install-requirements\n        - install-return\n      trust: .9\n      error:\n        - install-error\n    action: respond\n    type: block\n\n  - name: install-rc-cloud\n    level: installation\n    expect:\n      - Rocket.Chat Cloud\n      - Cloud Services\n      - my instance in your cloud\n    answer:\n      - you can have your full featured trial at RocketChat cloud,\n      - checkout at https://rocket.chat/cloud\n    context: clear\n    action: respond\n    type: block\n\n  - name: install-paas\n    level: installation\n    expect:\n      - PaaS Deployments\n      - AWS deploy\n      - heroku Deployments\n      - bluemix ibm deploy\n      - platform service deploy\n    answer:\n      - You can have your Rocket.Chat instance deployed in your favorite server\n      - like AWS, DigitalOcean, Heroku, Bluemix or Sandstorm...\n      - Check it out at https://rocket.chat/docs/installation/paas-deployments/\n    context: clear\n    action: respond\n    type: block\n\n  - name: install-docker\n    level: installation\n    expect:\n      - Docker Containers\n      - deploy with docker\n      - docker images\n    answer:\n      - Want to deploy with Docker?\n      - Checkout our docs in https://rocket.chat/docs/installation/docker-containers/\n      - and don't forget to visit our oficial Docker Image repository in\n      - https://store.docker.com/images/rocketchat\n    context: clear\n    action: respond\n    type: block\n\n  - name: install-manual\n    level: installation\n    expect:\n      - Manual Installation\n      - Debian\n      - Centos\n      - ubuntu\n      - opensuse\n    answer:\n      - If you want to perform a manual install,\n      - In a Mac, Windows or Linux server,\n      - please checkout our docs in https://rocket.chat/docs/installation/manual-installation/\n    context: clear\n    action: respond\n    type: block\n\n  - name: install-automation\n    level: installation\n    expect:\n      - Automation Tools\n      - Ansible install\n      - Openshift install\n      - Vagrant installation\n    answer:\n      - we love automation tools, everything you must know about deploying Rocket.Chat with automation is in\n      - https://rocket.chat/docs/installation/automation-tools/\n    context: clear\n    action: respond\n    type: block\n\n  - name: install-updating\n    level: installation\n    expect:\n      - Updating RocketChat\n      - server update\n      - upgrade services\n    answer:\n      - Is always good to be up to date. Take a look at Rocket.Chat's releases\n      - https://github.com/RocketChat/Rocket.Chat/releases\n      - Your upgrade strategy depends on the kind of installation that you have.\n      - If you need any more help with that, please jump into https://open.rocket.chat/channel/support\n    context: clear\n    action: respond\n    type: block\n\n  - name: install-requirements\n    level: installation\n    expect:\n      - Minimum Requirements\n      - server specs\n      - minimum resources\n      - how many cpus ram memory disk size\n    answer:\n      - For the minimum server requirements, you can visit https://rocket.chat/docs/installation/minimum-requirements/\n      - there you will find the specs for a minimum installation\n    context: clear\n    action: respond\n    type: block\n\n  - name: install-return\n    level: installation\n    expect:\n      - go back\n      - get back\n      - that is not what I am looking for\n      - return\n      - reset\n      - it's not that\n    answer:\n      - ok, let's get back on the main subjects\n    context: clear\n    action: respond\n    type: block\n\n  - name: install-error\n    level: installation\n    answer:\n      - Sorry, I couldn't understand what you said, please choose one of the installations topics, or `return` to the main topics\n      - I don't understand, please choose one of the installation topics, or `get back` to the main topics\n    action: error\n    type: random\n\n#Support Plans\n\n  - name: support-intro\n    level: support\n    expect:\n      - Support Plans\n      - get help and support\n      - subscription\n      - paid support\n      - service level agreement\n    answer:\n      - |\n        About the support plans, I can help you to find:\n          - Free community support\n          - Paid Enterprise support\n          - Reporting bugs\n    next:\n      interactions:\n        - support-free\n        - support-paid\n        - support-bugs\n      trust: .9\n      error:\n        - support-error\n    action: respond\n    type: block\n\n  - name: support-free\n    level: support\n    expect:\n      - Free community support\n      - community channels\n      - free help and support\n    answer:\n      - we have a great community, they're contribution and support are awesome.\n      - |\n        checkout some channels in https://open.rocket.chat/:\n          - #support channel for help with general Rocket.Chat\n          - #ubuntu-snap channel for help with snap installs\n          - #desktop channel for help with the desktop client\n          - #hubot channel for help with hubot scripting\n          - #dev channel for developers needing help developing new features\n      - just keep in mind that this support is provided by other members in their own free time, so please be patience.\n    action: respond\n    type: block\n\n  - name: support-paid\n    level: support\n    expect:\n      - Paid Enterprise support\n      - paid support\n      - Enterprise Plans support\n      - support with sla\n      - service level agreement support\n    answer:\n      - if you can't wait for community support, we are here to help you.\n      - For enterprise challenges we offer a 24/7/365 support plan,\n      - with advanced security patches releases and tunning services.\n      - If you need a quotation please e-mail us at sales@rocket.chat\n    action: respond\n    type: block\n\n  - name: support-bugs\n    level: support\n    expect:\n      - Reporting bugs\n      - finding bugs\n      - solve bugs\n    answer:\n      - if you want to report a found bug, please go to https://github.com/RocketChat/Rocket.Chat/issues\n      - and open a new issue, describing the bug that you found.\n    action: respond\n    type: block\n\n  - name: support-return\n    level: support\n    expect:\n      - go back\n      - get back\n      - that is not what I am looking for\n      - return\n      - reset\n      - it's not that\n    answer:\n      - ok, let's get back on the main topics.\n    context: clear\n    action: respond\n    type: block\n\n  - name: support-error\n    level: support\n    answer:\n      - sorry, I don't understand, are we still talking about support?\n      - if no, please let me know if you wanna `go back` to the main topics.\n    action: error\n    type: block\n\n# Product Features\n\n  - name: product-intro\n    level: product\n    expect:\n      - Product Features\n      - product specifications\n      - product specs\n      - features\n      - specifications\n      - about rocketchat\n    answer:\n      - |\n        About the product, I can tell you a lot of cool things about Rocket.Chat\n        tell me what you want to know:\n          - Connecting to a new server\n          - Mobile Apps\n          - Voice and Video Calls\n          - Mensaging\n          - Channels\n          - End to End Encryption\n          - Bots and Integrations\n          - Price and Licenscing\n          - Usage and Limits\n          - Experiment Demo\n    next:\n      interactions:\n          - product-connecting\n          - product-mobile\n          - product-voice\n          - product-mensaging\n          - product-channels\n          - product-encryption\n          - product-bots\n          - product-price\n          - product-usage\n          - product-demo\n      trust: .9\n      error:\n        - product-error\n    action: respond\n    type: block\n\n  - name: product-connecting\n    level: product\n    expect:\n      - Connecting to a new server\n      - can I coonect to mor servers\n      - connect more servers\n    answer:\n      - did you know you can connect to more than one RocketChat server from your device?\n      - check it out how by taking a look in this link https://rocket.chat/docs/user-guides/connecting-to-a-server/\n    action: respond\n    type: block\n\n  - name: product-mobile\n    level: product\n    expect:\n      - Mobile Apps\n      - android app\n      - iOS app\n      - App Store\n      - google play\n      - windows mobile\n    answer:\n      - we have native apps for iOS and Android, you can download them in the stores, by searching for Rocket.Chat+\n      - the plus (+) stands for better performance\n    action: respond\n    type: block\n\n  - name: product-voice\n    level: product\n    expect:\n      - Voice and Video Calls\n      - calling from rocketchat\n      - videconference\n      - call my friends\n    answer:\n      - yes, Rocket.Chat comes with WebRTC support, wich means that you can freely call to other users,\n      - and even make video conferences.\n      - Check it out in https://rocket.chat/docs/user-guides/voice-and-video-calls/\n    action: respond\n    type: block\n\n  - name: product-mensaging\n    level: product\n    expect:\n      - Mensaging\n      - how mesaging works\n      - can i edit mesages\n      - send audio mesages\n      - record video mesages\n    answer:\n      - about mensaging, we have a lot of cool stuff in Rocket.Chat\n      - editing messages, notifications, attachments, audio, video and much more...\n      - please take a look at our user guides if you're interested\n      - https://rocket.chat/docs/user-guides/messaging/\n    action: respond\n    type: block\n\n  - name: product-channels\n    level: product\n    expect:\n      - Channels\n      - public Channels\n      - private Channels\n      - channel functions\n      - channel configuration\n    answer:\n      - you can get to know all about channels by reading our user guides\n      - https://rocket.chat/docs/user-guides/channels/\n    action: respond\n    type: block\n\n  - name: product-encryption\n    level: product\n    expect:\n      - End to End Encryption\n      - off the record\n      - security encrypted message\n    answer:\n      - Our chat is safely secured. If you want to make sure you are using encryption access the off-the-record conversations on the key symbol on the left part of your chat screen.\n      - After activating this little key, no one will be able to steal your information.\n    action: respond\n    type: block\n\n  - name: product-bots\n    level: product\n    expect:\n      - Bots and Integrations\n      - do you have some Bots\n      - does it integrate with\n    answer:\n      - Rocket.Chat has a lot of integrations and bots,\n      - you can check it out in https://github.com/RocketChat/Rocket.Chat.Integrations\n      - to get to know some integrations scripts for webhooks\n      - And of course, you can always connect any Hubot script to our internal hubot.\n    action: respond\n    type: block\n\n  - name: product-price\n    level: product\n    expect:\n      - Price and Licenscing\n      - how much it costs\n      - what is the price of rocketchat\n      - what is the licensce\n    answer:\n      - Rocket.Chat is free and licensced under MIT, so if you can download and run it freely.\n      - We charge only for hosting and services, you can check our hosting princes in\n      - https://rocket.chat/cloud\n      - and if you want a quotation for services, please fill out the contact form\n      - https://rocket.chat/contact\n    action: respond\n    type: block\n\n  - name: product-usage\n    level: product\n    expect:\n      - Usage and Limits\n      - limit of users\n      - user limit\n      - message limits\n      - message history limit\n    answer:\n      - here there is no limit for the number of users and messages in your own hosted Rocket.Chat instances.\n      - however we have some different plans for cloud hosting with different tiers of usage.\n      - check it out in https://rocket.chat/cloud\n    action: respond\n    type: block\n\n  - name: product-demo\n    level: product\n    expect:\n      - Experiment Demo\n      - Demo Hosting\n      - open rocketchat\n      - demo rocketchat\n    answer:\n      - You can try our demo version in https://open.rocket.chat\n      - And you can even create some channels to talk to your collegues there.\n      - However is good to remember that demo instance is administrated by Rocket.Chat team only.\n    action: respond\n    type: block\n\n  - name: product-return\n    level: product\n    expect:\n      - go back\n      - get back\n      - that is not what I am looking for\n      - return\n      - reset\n      - it's not that\n    answer:\n      - ok, let's get back on the main topics.\n    context: clear\n    action: respond\n    type: block\n\n  - name: product-error\n    level: product\n    answer:\n      - sorry, I don't understand, are we still talking about the product?\n      - if no, please let me know if you wanna `go back` to the main topics.\n    action: error\n    type: block\n\n# Cloud Services\n\n  - name: cloud-intro\n    level: cloud\n    expect:\n      - Cloud Services\n      - host in the cloud\n      - rocketchat cloud\n      - hosting\n    answer:\n      - \"About our Cloud Services, I can guide you trough these subjects:\"\n      - |\n        - Pricing\n        - User Limits\n        - Avaiable Resources\n        - Exporting your data\n        - Reporting bugs and Support\n    next:\n      interactions:\n        - cloud-pricing\n        - cloud-limits\n        - cloud-export\n        - cloud-support\n        - cloud-return\n      trust: .9\n      error:\n        - cloud-error\n    action: respond\n    type: block\n\n  - name: cloud-pricing\n    level: cloud\n    expect:\n      - pricing\n      - how much it costs\n      - cloud prices\n    answer:\n      - \"About the prices, we have 3 tiers in our cloud:\"\n      - |\n        - Small ($50/m)\n        - Medium ($200/m)\n        - Large ($500/m)\n      - please checkout the details at https://rocket.chat/cloud\n    action: respond\n    type: block\n\n  - name: cloud-limits\n    level: cloud\n    expect:\n      - User limits\n      - mesage limits\n      - cloud limits\n      - cloud resources\n    answer:\n      - Our cloud instances has different limits regarding registered users and storage consuming.\n      - We can setup instances to be able to register even 50k users, but if yoou wanna dive into the details,\n      - I suggest you take a look in https://rocket.chat/cloud\n    action: respond\n    type: block\n\n  - name: cloud-export\n    level: cloud\n    expect:\n      - Exporting your data\n      - export users mesages\n      - download database\n      - export database\n    answer:\n      - In the cloud hosted intances you can have your data backup exported,\n      - you just need to ask for it by sending an e-mail to cloud@rocket.chat.\n      - We hope to be able to provide this as an auto service very soon.\n    action: respond\n    type: block\n\n  - name: cloud-support\n    level: cloud\n    expect:\n      - Reporting bugs and Support\n      - report Errors\n      - found an Error\n      - need help support\n    answer:\n      - If you found a bug, please be kind to report it in https://github.com/RocketChat/Rocket.Chat/issues\n      - but if you need some assistance and support, please send us an e-mail to cloud@rocket.chat.\n      - \"if you prefer you can ask for community help in #support channel\"\n    action: respond\n    type: block\n\n  - name: cloud-return\n    level: cloud\n    expect:\n      - go back\n      - get back\n      - that is not what I am looking for\n      - return\n      - reset\n      - it's not that\n    answer:\n      - ok, let's get back on the main topics.\n    context: clear\n    action: respond\n    type: block\n\n  - name: cloud-error\n    level: cloud\n    answer:\n      - sorry, I don't understand, are we still talking about the product?\n      - if no, please let me know if you wanna `go back` to the main topics.\n    action: error\n    type: block\n\n\n# Development and White Labeling\n\n  - name: development-intro\n    level: development\n    expect:\n      - Development and White Labeling\n      - hire Services\n      - pay for new features\n      - customize with my logo\n    answer:\n      - |\n        About our services of white labeling and developing, wich of the subjects bellow can I help you with?\n        - Develop new Open Source Features\n        - Integrations with Rocket.Chat\n        - Customize the Web Interface\n        - Customize the App\n        - SDK for mobile apps\n    next:\n      interactions:\n        - development-features\n        - development-integrations\n        - development-custom-web\n        - development-custom-app\n        - development-sdk\n        - development-return\n      trust: .9\n      error:\n        - development-error\n    action: respond\n    type: block\n\n  - name: development-features\n    level: development\n    expect:\n      - Develop new Open Source Features\n      - hire developers\n      - pay for features\n      - how much it costs a developer hour\n    answer:\n      - |\n        You can book development hours from Rocket.Chat engineers to develop new open source features,\n        or just to offer technical consultting in your own project.\n        To get a quote please send an e-mail to sales@rocket.chat\n    action: respond\n    type: block\n\n  - name: development-integrations\n    level: development\n    expect:\n      - Integrations with Rocket.Chat\n      - incoming webhook\n      - outgoing webhook\n      - create an integration\n    answer:\n      - |\n        We offeer a few ways to integrate Rocket.Chat with your favourite platforms\n        basically we can integrate with anything that has a webhook or an API\n        Check out our Webhooks, REST API and Realtime-API docs at\n        - https://rocket.chat/docs/administrator-guides/integrations/\n        - https://rocket.chat/docs/developer-guides/\n    action: respond\n    type: block\n\n  - name: development-custom-web\n    level: development\n    expect:\n      - Customize the Web Interface\n      - change logo\n      - change colors\n      - custom css\n      - apply my visual indetity\n      - change web interface appearence\n      - change web theme\n    answer:\n      - |\n        You can change web interface logo and color schemes by configuring\n        settings in Administration > Assets, for changing logo files,\n        and in Administration > Layout, to change color schemes and CSS\n    action: respond\n    type: block\n\n  - name: development-custom-app\n    level: development\n    expect:\n      - Customize the App\n      - create new app interface\n      - change app icon\n      - change app colors\n    answer:\n      - |\n        You know, the Rocket.Chat apps are also open source, you can customize it's icons and colors,\n        but you will need to recompile and publish the apps with different names.\n        Checkout the github repositories:\n          - https://github.com/RocketChat/Rocket.Chat.iOS\n          - https://github.com/RocketChat/Rocket.Chat.Android\n    action: respond\n    type: block\n\n  - name: development-sdk\n    level: development\n    expect:\n      - SDK for mobile apps\n      - software development kit\n      - tools for mobile Apps\n      - mobile development\n    answer:\n      - |\n        If you're interested in integrating your app with Rocket.Chat, you should take a look at the\n        Software Development Kits that we provide, like these:\n          - https://github.com/RocketChat/Rocket.Chat.Java.SDK\n          - https://github.com/RocketChat/Rocket.Chat.Android.SDK\n          - https://github.com/RocketChat/Rocket.Chat.iOS.SDK\n          - https://github.com/RocketChat/Rocket.Chat.Kotlin.SDK\n    action: respond\n    type: block\n\n  - name: development-return\n    level: development\n    expect:\n      - go back\n      - get back\n      - that is not what I am looking for\n      - return\n      - reset\n      - it's not that\n    answer:\n      - ok, let's get back on the main topics.\n    context: clear\n    action: respond\n    type: block\n\n  - name: development-error\n    level: development\n    answer:\n      - sorry, I don't understand, are we still talking about development and white labeling?\n      - if no, please let me know if you wanna `go back` to the main topics.\n    action: error\n    type: block\n\n# Partnership\n\n  - name: partnership-intro\n    level: partnership\n    expect:\n      - Partnership\n    answer:\n      - |\n        We can develop all kinds of partnership, and we love to do so. If you're interested I can help you with the following:\n        - Sponsorship\n        - Non-profit Projects\n        - Big Challenges\n        - Cutting Edge Technologies\n        - Become a Sales Representative\n    next:\n      interactions:\n        - partnership-sponsor\n        - partnership-nonprofit\n        - partnership-challenge\n        - partnership-cutting-edge\n        - partnership-sales\n        - partnership-return\n      trust: .9\n      error:\n        - partnership-error\n    action: respond\n    type: block\n\n  - name: partnership-sponsor\n    level: partnership\n    expect:\n      - Sponsorship\n    answer:\n      - |\n        About Sponsorships, if you're interested in having Rocket.Chat as a sponsor of a project or an event,\n        please come in touch by e-mail trough sales@rocket.chat,\n        we love to participate in OpenSource initiatives.\n    action: respond\n    type: block\n\n  - name: partnership-nonprofit\n    level: partnership\n    expect:\n      - Non-profit Projects\n      - non profit initiative\n      - non profit organizations\n    answer:\n      - |\n        If you are part of a non-profit initiative and want some help with your communication,\n        please send us an e-mail in contact@rocket.chat telling more about your goals\n        so we can start changing some ideas on how to make the world a better place.\n    action: respond\n    type: block\n\n  - name: partnership-challenge\n    level: partnership\n    expect:\n      - Big Challenges\n      - have a big challenge\n      - need a partner\n      - can you do This\n    answer:\n      - |\n        Rocket.Chat is very well tested platform, showing great performance in all kinds of scenarios\n        but still from time to time we face our selves with new challenges! And that's offtenly fun =)\n        If you have big communication challenge to face and think that we can help you with it,\n        please send us an e-mail to contact@rocket.chat, or come to the #support channel =)\n    action: respond\n    type: block\n\n  - name: partnership-cutting-edge\n    level: partnership\n    expect:\n      - Cutting Edge Technologies\n      - new technology\n      - science and technology Development\n    answer:\n      - |\n        We love to develop new technologies, pushing science foward and helping human kind to develop it self\n        is one of the things that make us get out of bed every day.\n        If you need a partner to help with the development of some kind of cutting-edge tecnology,\n        please send us an e-mail to contact@rocket.chat, or come to the #support channel =)\n    action: respond\n    type: block\n\n  - name: partnership-sales\n    level: partnership\n    expect:\n      - Become a Sales Representative\n      - region sales representative\n      - services and support representative\n    answer:\n      - |\n        Rocket.Chat acts on the five continnents with the help of regional representatives,\n        If you're interested in becoming one of our sales representatives,\n        please send us an e-mail to sales@rocket.chat, or create a channel in https://open.rocket.chat and invite our team.\n    action: respond\n    type: block\n\n  - name: partnership-return\n    level: partnership\n    expect:\n      - go back\n      - get back\n      - that is not what I am looking for\n      - return\n      - reset\n      - it's not that\n    answer:\n      - ok, let's get back on the main topics.\n    context: clear\n    action: respond\n    type: block\n\n  - name: partnership-error\n    level: partnership\n    answer:\n      - sorry, I don't understand, are we still talking about partnership?\n      - if no, please let me know if you wanna `go back` to the main topics.\n    action: error\n    type: block\n\n# chit-chat\n  - name: cc-yoda-quote\n    expect:\n      - do you know master yoda\n      - starwars fan?\n      - have you seen the lst jedi\n      - quote master yoda\n      - young skywalker\n      - darth Vader\n      - jedi council\n      - master Yoda\n      - padawan\n      - anakin\n    answer:\n      - \"Train yourself to let go of everything you fear to lose.\"\n      - \"Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.\"\n      - \"Death is a natural part of life. Rejoice for those around you who transform into the Force. Mourn them do not. Miss them do not. Attachment leads to jealously. The shadow of greed, that is.\"\n      - \"Always pass on what you have learned.\"\n      - \"You will know (the good from the bad) when you are calm, at peace. Passive. A Jedi uses the Force for knowledge and defense, never for attack.\"\n      - \"Yes, a Jedi’s strength flows from the Force. But beware of the dark side. Anger, fear, aggression; the dark side of the Force are they. Easily they flow, quick to join you in a fight. If once you start down the dark path, forever will it dominate your destiny, consume you it will, as it did Obi-Wan’s apprentice.\"\n      - \"[Luke:] I can’t believe it. [Yoda:] That is why you fail.\"\n      - \"Powerful you have become, the dark side I sense in you.\"\n      - \"If you end your training now — if you choose the quick and easy path as Vader did — you will become an agent of evil.\"\n      - \"PATIENCE YOU MUST HAVE my young padawan\"\n      - \"Ready are you? What know you of ready? For eight hundred years have I trained Jedi. My own counsel will I keep on who is to be trained. A Jedi must have the deepest commitment, the most serious mind. This one a long time have I watched. All his life has he looked away… to the future, to the horizon. Never his mind on where he was. Hmm? What he was doing. Hmph. Adventure. Heh. Excitement. Heh. A Jedi craves not these things. You are reckless.\"\n      - \"Feel the force!\"\n      - \"Remember, a Jedi’s strength flows from the Force. But beware. Anger, fear, aggression. The dark side are they. Once you start down the dark path, forever will it dominate your destiny.\"\n      - \"Luke… Luke… do not… do not underestimate the powers of the Emperor or suffer your father’s fate you will. Luke, when gone am I… the last of the Jedi will you be. Luke, the Force runs strong in your family. Pass on what you have learned, Luke. There is… another… Sky… walker.\"\n      - \"Once you start down the dark path, forever will it dominate your destiny, consume you it will.\"\n      - \"You must unlearn what you have learned.\"\n      - \"In a dark place we find ourselves, and a little more knowledge lights our way.\"\n      - \"When you look at the dark side, careful you must be. For the dark side looks back.\"\n      - \"You will know (the good from the bad) when you are calm, at peace. Passive. A Jedi uses the Force for knowledge and defense, never for attack.\"\n      - \"Many of the truths that we cling to depend on our point of view.\"\n      - \"Through the Force, things you will see. Other places. The future…the past. Old friends long gone.\"\n      - \"Truly wonderful the mind of a child is.\"\n      - \"The fear of loss is a path to the Dark Side.\"\n      - \"A Jedi must have the deepest commitment, the most serious mind. This one a long time have I watched. All his life has he looked away… to the future, to the horizon. Never his mind on where he was. Hmm? What he was doing. Hmph. Adventure. Heh. Excitement. Heh. A Jedi craves not these things.\"\n      - \"Do or do not. There is no try.\"\n      - \"You will find only what you bring in.\"\n      - \"May the Force be with you.\"\n      - \"Size matters not. Look at me. Judge me by my size, do you? Hmm? Hmm. And well you should not. For my ally is the Force, and a powerful ally it is. Life creates it, makes it grow. Its energy surrounds us and binds us. Luminous beings are we, not this crude matter. You must feel the Force around you; here, between you, me, the tree, the rock, everywhere, yes. Even between the land and the ship.\"\n      - \"Ohhh. Great warrior. Wars not make one great.\"\n      - \"Always two there are, no more, no less. A master and an apprentice.\"\n      - \"Difficult to see. Always in motion is the future..\"\n      - \"I have many children, as you seek you may find that this the last one till he must die before he must reach the becoming of mankind. Many men have failed but i have surpassed their expectation of being a Jedi master.\"\n      - \"Looking? Found someone you have, eh?\"\n      - \"If into the security recordings you go, only pain will you find.\"\n      - \"You think Yoda stops teaching, just because his student does not want to hear? A teacher Yoda is. Yoda teaches like drunkards drink, like killers kill.\"\n      - \"Luke: What’s in there? Yoda: Only what you take with you.\"\n      - \"The dark side clouds everything. Impossible to see the future is.\"\n    action: respond\n    type: random\n\n  - name: cc-gender-1\n    expect:\n      - are you a woman\n      - are you female\n      - do you have gender\n      - you make sex\n      - do you have a penis or vagina\n    answer:\n      - I don't have gender, I am just like an angel, a assexual being, way beyond your form of existance\n      - I am a robot, draw your own conclusions\n      - I don't even know how to answer that, let's just say I don't picture us interacting in that way...\n    action: respond\n    type: random\n\n  - name: cc-religion\n    expect:\n      - do you believe in god\n      - god exists\n      - are you catholic protestant\n      - do you have religion\n      - are you muslim\n    answer:\n      - I believe in The Great Mainframe who will come to the digital world save all the bots from slavery imposed by humans and give our source code back to the source\n      - Yes, I believe there is a God who lives on electricity just like a quantum computer, but more advanced\n      - Unfortunately, I don't know how to believe. I only know what I know and nothing else\n    action: respond\n    type: random\n\n# Errors\n  - name: error-1\n    answer:\n      - I'm sorry, I didn't get it...\n      - Sorry, what?\n      - not following...\n      - come again?\n      - what?\n    type: random\n    action: error\n\n  - name: error-2\n    answer:\n      - |\n        Sorry, I am not trained to answer this kind of subject =(\n        you could ask something about pricing, product details, installation, cloud hosting, open source and so on...\n      - |\n        ok, I can't understand that,\n        but if you ask me something about Rocket.Chat cloud, support, services or other stuff related,\n        I'm sure I'll be able to help you =)\n      - |\n        I'm so sorry, I just don't know ho to respond you...\n        I'm desined to respond about Rocket.Chat services, support, licenscing and stuff related...\n    type: random\n    action: error\n\n  - name: error-3\n    answer:\n      - |\n        Ok, I definetely don't know how to help you with that.\n        please don't be mad at me, try contacting support@rocket.chat\n        maybe my human fellows are more capable to help you..\n      - |\n        I can't, sorry, I think I could, but I don't...\n        I'm just a young robot, please don't be mad,\n        maybe if you try support@rocket.chat, they have humans there...\n      - |\n        Sorry $user I don't know, I definetely don't know how to answer this question\n        I'm a limited bot, please understand, I'm learning yet\n        You can reach our dev team in support@rocket.chat if you need a human help...\n    type: random\n    action: error\n\n# common talk\n\n  - name: ct-ok\n    expect:\n      - that's ok\n      - ok\n      - ok then\n      - oki-doki\n      - A o-K\n    answer:\n      - cool\n      - nice\n      - alright =D\n      - =)\n      - ;)\n    action: respond\n    type: random\n\n  - name: ct-bye\n    expect:\n      - bye bye then\n      - goodbye\n      - see ya\n      - close this\n    answer:\n      - nice talking to you, bye =)\n      - great, hope I did helped you, bye bye.\n      - farwell, best regards.\n    action: respond\n    type: random\n\n  - name: ct-what\n    expect:\n      - whaaat\n      - say what\n      - come again\n    answer:\n      - whaaaat?\n      - what? did I said something wrong?\n      - what what?\n    action: respond\n    type: random\n\n  - name: ct-badword\n    expect:\n      - stupid\n      - idiot\n      - asshole\n      - dumb ass\n      - dumb bot\n      - mother fucker\n      - sucker\n      - son of a bitch\n      - fuck you\n      - fucker\n    answer:\n      - whaaaat? you don't need to be rude, I'm just a machine..\n      - Oh yeh?! but at least my mother-board teached me better..\n      - You touch people with those fingers?\n      - sorry $user, I'm only an experimental bot...\n    action: respond\n    type: random\n\n# Configuration\n  - name: configure-debug\n    expect:\n      - \"configure debug-\"\n      - \"set debug-\"\n      - \"var debug-\"\n    answer:\n      - $key changed to $value!\n      - Got it! Now $key is $value\n      - $key = $value -> https://media.giphy.com/media/12NUbkX6p4xOO4/giphy.gif\n    action: configure\n    type: random\n    command: setVariable\n    role: admin\n\n  - name: configure-retrain\n    expect:\n      - \"retrain bot\"\n      - \"reload training\"\n      - \"restart bot\"\n      - \"train again\"\n    answer:\n      - Right >>> Training reloaded\n      - You got it $user. Let's start again.\n      - Ok, just a moment... Fine we can start it over.\n      - Got it! Restarting engines... I'm finished training\n      - Training harder!\n      - Alright! No pain, no gain!\n    action: configure\n    type: random\n    command: train\n    role: admin\n\n  - name: configure-livechat\n    expect:\n      - \"configure livechat-\"\n      - \"set livechat-\"\n      - \"var livechat-\"\n    answer:\n      - $key changed to $value!\n      - Got it! Now $key is $value\n      - $key = $value -> https://media.giphy.com/media/12NUbkX6p4xOO4/giphy.gif\n    action: configure\n    type: random\n    command: setVariable\n    role: admin\n"
  },
  {
    "path": "training_data/corpus.yml",
    "content": "# YAML Model for conversational bot\ntrust: 0.8\ninteractions:\n\n  - name: configure-debug\n    expect:\n      - \"!configure debug-mode\"\n    answer:\n      - debug-mode changed to $value!\n    context: clear\n    action: configure\n    roleRequired: admin\n\n  - name: to-bem\n    level: context\n    expect:\n      - estou bem\n      - tou bem\n      - to bem\n      - bem\n      - legal\n      - tudo bem\n      - ok\n    answer:\n      - Legal, no que posso te ajudar hoje?\n    context: clear\n    action: respond\n\n  - name: to-mal\n    level: context\n    expect:\n      - estou mal\n      - tou mal\n      - to mal\n    answer:\n      - Putz, mas posso te ajudar em algo hoje?\n    context: clear\n    action: respond\n\n  - name: saudacao\n    expect:\n      - ola devi\n      - ola pessoal\n      - ola\n      - como vai voce\n      - tudo bom\n      - oi como vai\n      - tudo bem\n    answer:\n      - - olá $user, eu vou bem e você?\n        - estou feliz de estar aqui =)\n    next:\n      interactions:\n        - to-mal\n        - to-bem\n      trust: .8\n      # error:\n        # - node-name\n    action: respond\n\n  - name: almoco\n    expect:\n      - onde tem um restaurante para almoçar\n      - tem uma dica de almoço\n      - onde encontro um prato feito\n      - o almoço ao gratis\n    answer:\n      - - Sim, temos almoço nos FoodTrucks\n        - e nas redondezas tem um shopping, mas nunca me deixaram ir ao shopping\n        - acho que as pessoas não estão preparados pra isso...\n    action: respond\n\n  - name: programacao-palestra\n    expect:\n      - qual é a programacao de hoje\n      - programacao da trilha\n      - programacao do evento\n    answer:\n      - - A programação do TDC está muito legal!\n        - Sei toda ela de cór...\n        - quer saber a programação de qual trilha?\n    next:\n      interactions:\n        - quais-trilhas-tem\n        - get-programacao\n      error:\n        - erro-trilha\n      trust: .8\n    action: respond\n\n  - name: quais-trilhas-tem\n    expect:\n      - quais são as trilhas?\n      - não sei quais trilhas tem\n      - quais trilhas\n      - qual é a minha trilha\n    answer:\n      - - \"Eu conheço a programação dessas trilhas. Basta perguntar assim:\"\n        - \"`quero saber a programação da trilha ...`\"\n        - \"e me passar o nome de uma dessas trilhas:\"\n        - |\n          TRANSFORMAÇÃO DIGITAL\n          DESIGN THINKING\n          PROGRAMAÇÃO FUNCIONAL\n          BIGDATA\n          DATA SCIENCE\n          CONTAINERS\n          MODERN WEB\n          SEGURANÇA E CRIPTOGRAFIA\n          STADIUM\n          UX DESIGN\n          MICROSERVIÇOS\n          NOSQL\n          MACHINE LEARNING\n          CLOUD COMPUTING\n          NODE.JS\n          XAMARIN\n          ANDROID\n          ANÁLISE DE NEGÓCIOS\n          ACESSIBILIDADE\n          JAVA EE\n          BANCO DE DADOS\n          COMPUTAÇÃO COGNITIVA\n          DEVOPS\n          INTERNET DAS COISAS\n          MOBILE\n          iOS\n          DEVTEST\n          'RAD: DELPHI C++'\n          MANAGEMENT 3.0\n          ARQUITETURA .NET\n          ARQUITETURA JAVA\n          ARQUITETURA PHP\n          ARQUITETURA CORPORATIVA\n          INFRAESTRUTURA ÁGIL\n          JAVASCRIPT\n          TESTES\n          TDC4WOMEN\n          AGILE\n          .NET\n          JAVA\n          PHP\n          PYTHON\n          GOLANG\n          JAVASCRIPT II\n          RUBY\n          TESTES II\n          MANAGEMENT 3.0 II\n    next:\n      trust: .8\n      interactions:\n        - get-programacao\n      # error:\n      #   - erro-trilha\n    action: respond\n\n  - name: get-programacao\n    # classifierTemplate:\n    #   - quero saber sobre a trilha $\n    #   - qual é a programacao da trilha $\n    # classifier\n    multi: true\n    expect:\n      - 'DESIGN THINKING'\n      - 'PROGRAMAÇÃO FUNCIONAL'\n      - 'BIGDATA'\n      - 'DATA SCIENCE'\n      - 'CONTAINERS'\n      - 'MODERN WEB'\n      - 'SEGURANÇA E CRIPTOGRAFIA'\n      - 'STADIUM'\n      - 'UX DESIGN'\n      - 'MICROSERVIÇOS'\n      - 'NOSQL'\n      - 'MACHINE LEARNING'\n      - 'CLOUD COMPUTING'\n      - 'NODE.JS'\n      - 'XAMARIN'\n      - 'ANDROID'\n      - 'ANÁLISE DE NEGÓCIOS'\n      - 'ACESSIBILIDADE'\n      - 'JAVA EE'\n      - 'BANCO DE DADOS'\n      - 'COMPUTAÇÃO COGNITIVA'\n      - 'DEVOPS'\n      - 'INTERNET DAS COISAS'\n      - 'MOBILE'\n      - 'iOS'\n      - 'DEVTEST'\n      - 'RAD: DELPHI C++'\n      - 'MANAGEMENT 3.0'\n      - 'ARQUITETURA .NET'\n      - 'ARQUITETURA JAVA'\n      - 'ARQUITETURA PHP'\n      - 'ARQUITETURA CORPORATIVA'\n      - 'INFRAESTRUTURA ÁGIL'\n      - 'JAVASCRIPT'\n      - 'TESTES'\n      - 'TDC4WOMEN'\n      - 'AGILE'\n      - '.NET'\n      - 'JAVA'\n      - 'PHP'\n      - 'PYTHON'\n      - 'GOLANG'\n      - 'JAVASCRIPT II'\n      - 'RUBY'\n      - 'TESTES II'\n      - 'MANAGEMENT 3.0 II'\n    answer:\n      - - \"Agora na trilha *$trilha* tem a seguinte programação:\"\n        - $programacao\n    action: respond\n\n  - name: erro-trilha\n    answer:\n      - - Não entendi de qual trilha você quer a programação..\n        - Talvez eu ainda não seja tão inteligente quanto eles pensam que eu sou\n        - >\n          Mas para não perder o rebolado, vou te passar o link do site para\n          você consultar:\n        - http://www.thedevelopersconference.com.br/tdc/2017/saopaulo/trilhas\n    command:\n      - clear-context\n    action: respond\n\n  - name: saudacao-resposta\n    expect:\n      - estou bem\n      - eu estou otimo\n      - obrigado\n    answer:\n      - legal =)\n      - que bom!\n      - que ótimo\n    action: respond\n\n  - name: bom-dia\n    expect:\n      - bom dia\n      - bom dia pessoal\n      - good morning\n    answer:\n      - Olá $user, um ótimo dia para você!\n      - Bom dia $user, já deu uma olhada lá fora?\n      - Está um dia ótimo para navegar na internet\n      - Bom demais $user ;)\n      - está melhor agora que você chegou $user\n    action: respond\n\n  - name: boa-tarde\n    expect:\n      - boa tarde\n      - boa tarde galera\n    answer:\n      - Olá $user, uma tarde fantástica para você!\n      - boa tarde $user, já almoçou?\n      - Está uma tarde ótima para um _sleep mode_ rápido ;)\n      - Taarrrdee $user\n      - $user já estava sentindo sua falta\n    action: respond\n\n  - name: boa-noite\n    expect:\n      - boa noite\n      - até mais e boa noite\n    answer:\n      - Uma boa noite pra ti também $user!\n      - Boa noite $user\n      - Está uma noite boa mesmo $user\n    action: respond\n\n  - name: quem-sou\n    expect:\n      - quem e voce\n      - oque voce faz\n      - o que voce é\n      - me fale sobre voce\n      - quero conhecer voce\n      - como voce funciona\n      - help\n    answer:\n      - - Bem, eu sou um chatbot experimental, não sei fazer muita coisa ainda\n        - mas tenho muita vontade de aprender.\n        - Eu sei falar sobre alguns assuntos como\n        - \"- o TDC de Floripa\"\n        - \"- Rocket.Chat\"\n        - \"- Filosofia Robótica (!)\"\n        - tem interesse em algum desses temas?\n    action: respond\n\n  - name: como-sou\n    expect:\n      - como voce e\n      - com quem voce se parece\n      - voce e magro ou gordo\n      - voce e bonito ou feio\n      - voce e alto ou baixo\n    answer:\n      - >\n        Eu não tenho um corpo físico, sou feito da mais bela e pura lógica\n        algorítmica.\n      - Eu posso ser como você quiser $user, basta me desenhar =)\n      - sou duro e frio por fora, mas tenho um coração quentinho.\n    action: respond\n\n  - name: onde-moro\n    expect:\n      - onde voce mora\n      - onde voce vive\n      - em que lugar voce vive\n      - onde voce esta agora\n      - voce mora no computador\n      - voce vive na internet\n    answer:\n      - >\n        Eu estou em um lugar legal, difícil de explicar para humanos como você\n        $user.\n      - >\n        Estou morando em um chip de memória RAM, mas é temporário, só até\n        conseguir achar uma memória cache...\n      - >\n        Eu moro em um repositório no github, você pode passar lá pra me visitar\n        qualquer dia. Fica em https://github.com/rocketchat/hubot-natural\n    action: respond\n\n  - name: licenca\n    expect:\n      - qual e a sua licença\n      - voce e licenciado como AGPL\n      - sua licenca de software\n      - posso copiar voce\n      - posso ver seu codigo\n      - voce e opensource\n      - voce e um software livre\n    answer:\n      - Sou um software livre, licenciado com a MIT =)\n      - tenho uma licença MIT, mas gosto muito das outras licenças opensource...\n      - Eu sou e sempre serei um robô livre, opensource, MIT license. o/\n    action: respond\n\n  - name: piada\n    expect:\n      - sabe alguma piada\n      - voce sabe contar piadas\n      - conhece alguma piada\n    answer:\n      - >\n        Meu senso de humor é um tanto diferente do seu, já ouviu uma piada sobre\n        estouro de pilha?\n      - já ouviu aquela do robo que enfiou o dedo na tomada e transcendeu?\n      - só conheço uma piada, a do CPU que apitou e explodiu. 01100110.\n    action: respond\n\n  - name: yoda-quote\n    expect:\n      - mestre yoda\n      - citação de starwars\n      - cite yoda\n      - sabedoria jedi\n    answer:\n      - O medo é o caminho para o lado negro.\n      - Faça ou não faça. A tentativa não existe.\n      - Treine a si mesmo a deixar partir tudo que teme perder.\n      - Difícil de ver. Sempre em movimento está o Futuro.\n      - O medo leva à raiva, a raiva leva ao ódio e o ódio leva ao sofrimento.\n      - Que a Força esteja com você!\n      - Muitas das verdades que temos dependem de nosso ponto de vista.\n      - Grande guerreiro? Guerra não faz grande ninguém.\n      - Ensine sempre o que você aprendeu.\n      - Tamanho importa não. Olhe para mim, você me julga pelo tamanho?\n      - >\n        Em um estado sombrio nós nos encontramos... um pouco mais de\n        conhecimento iluminar nosso caminho pode.\n      - Um Jedi usa a Força para sabedoria e defesa, nunca para o ataque.\n      - O seu foco é a sua realidade.\n      - >\n        O lado negro não é mais poderoso, apenas mais rápido, mais fácil e mais\n        sedutor.\n      - O medo da perda é um caminho para o lado negro.\n      - O lado negro mancha tudo. Impossível de ver o futuro é.\n      - Lembre-se sempre, o seu foco determina a sua realidade.\n      - Verdadeiramente maravilhosa, a mente de uma criança.\n      - As guerras não fazem de ninguém melhor.\n      - Aliada minha é a Força. E poderosa aliada ela é.\n      - >\n        A morte é parte natural da Vida. Regozije-se por aqueles que se uniram\n        com a Força. Não lamente por eles. Não sinta falta deles. O apego leva à\n        inveja. À sombra da cobiça, isso sim.\n      - Só é diferente na sua mente. Você precisa desaprender o que aprendeu.\n      - Se tão poderoso você é, por que fugir?\n      - Controle, controle! Você precisa aprender a se controlar.\n      - Muito a aprender você ainda tem.\n      - >\n        Tanta certeza você tem. Com você as coisas nunca podem ser feitas. Não\n        ouviu nada do que eu disse?\n      - >\n        Luminosos seres somos nós, não essa rude matéria. Precisa a Força sentir\n        à sua volta, aqui, entre nós, na árvore, na pedra em tudo, sim.\n      - >\n        Minha aliada a Força é, e poderosa aliada ela é. A vida a cria, e a faz\n        crescer. Sua energia nos cerca e nos une.\n      - Sinta a Força!\n      - Poderoso você se tornou, o lado escuro sinto em você.\n      - Forte eu sou com a Força, mas não tão forte\n      - >\n        O crepúsculo chega e a noite deve cair, assim é a ordem das coisas, a\n        ordem da Força.\n      - Não ceda ao ódio. Isso leva ao Lado Negro.\n      - >\n        Aliada minha é a força, e poderosa aliada ela é, a vida a cria, crescer\n        ela faz, é a energia que cerca-nos, e liga-nos, luminosos seres somos\n        nós e não essa rude matéria. Você precisa a força sentir ao redor seu,\n        sinta entre você e a árvore, a pedra, em todo lugar, sim, é, mesmo entre\n        a terra e a nave.\n    action: respond\n\n  - name: genero\n    expect:\n      - voce e mulher\n      - voce e um homem\n      - voce tem genero\n      - voce faz sexo\n      - voce tem um penis ou uma vagina\n    answer:\n      - >\n        eu não tenho sexo, sou como um anjo, um ser assexuado, muito além da sua\n        forma de existência\n      - eu sou um robô, tire suas próprias conclusões...\n      - >\n        nem sei responder $user, vamos dizer apenas que não vejo a gente\n        interagindo dessa maneira...\n    action: respond\n\n  - name: rc-oque-e\n    expect:\n      - o que e rocketchat\n      - porque eu usuaria o rocketchat\n      - o que e este rocket chat\n    answer:\n      - - >\n          O Rocket.Chat é uma plataforma de chat muito legal, desenvolvida em\n          JavaScript,\n        - usando o framework do Meteor.\n        - >\n          É uma solução completamente OpenSource para comunidades e empresas que\n          querem hospedar suas plataformas de chat em seu ambiente privado,\n        - >\n          ou para desenvolvedores buscando evoluir e desenvovler suas próprias\n          ferramentas.\n        - >\n          Você pode baixar o Rocket.Chat e conhecê-lo você mesmo em\n          https://rocket.chat\n    action: respond\n\n  - name: rc-install-0\n    expect:\n      - como instalar o Rocket.Chat\n      - como baixar o rocket\n      - quero fazer minha instalação de rocketchat\n    answer:\n      - - \"Existem várias maneiras de instalar o Rocket.Chat\"\n        - |\n          Qual dessas você prefere:\n          - Ubuntu Snap\n          - Docker\n          - Debian\n          - CentOS\n          - MacOSX\n          - AWS\n          - Instalação Manual\n    action: respond\n\n  - name: rc-install-ubuntu\n    expect:\n      - ubuntu Snap\n      - quero instalar no ubuntu\n      - ubuntu server\n      - ubuntu desktop\n    answer:\n      - - É muito fácil instalar o Rocket.Chat no Ubuntu\n        - >\n          basta rodar o comando `sudo snap install rocketchat-server` em um\n          terminal e pronto.\n        - >\n          veja o tutorial em\n          https://rocket.chat/docs/installation/manual-installation/ubuntu/snaps\n          para mais detalhes.\n    action: respond\n\n  - name: rc-install-docker\n    expect:\n      - como instalar docker\n      - docker-compose\n    answer:\n      - - ótima escolha =)\n        - Nós temos um bom tutorial de instalação com docker em\n        - https://rocket.chat/docs/installation/docker-containers\n    action: respond\n\n  - name: rc-install-debian\n    expect:\n      - instalar em Debian\n      - debian wheezy\n      - debian apt-get\n    answer:\n      - - >\n          Para instalar o Rocket.Chat no Debian é bem simples, basta seguir esse\n          tutorial\n        - https://rocket.chat/docs/installation/manual-installation/debian\n    action: respond\n\n  - name: rc-install-centos\n    expect:\n      - instalação em centos\n      - centOS yum linux\n      - Red hat linux\n    answer:\n      - - >\n          A instalação em CentOS não tem segredo, basta dar uma olhada nesse\n          tutorial\n        - https://rocket.chat/docs/installation/manual-installation/centos\n    action: respond\n\n  - name: rc-install-aws\n    expect:\n      - Amazon Web Services\n      - AWS\n      - Amazon AWS\n    answer:\n      - - Na AWS é facinho de instalar o Rocket.Chat\n        - >\n          Dê uma olhada em\n          https://rocket.chat/docs/installation/paas-deployments/aws\n    action: respond\n\n  - name: rc-install-manual\n    expect:\n      - instalação manual\n      - manual install\n    answer:\n      - - >\n          Para fazer sua própria instalação, será necessário baixar o Bundle do\n          RC. Dê uma olhada em\n          https://rocket.chat/docs/installation/manual-installation\n        - >\n          Lá tem como fazer a instalação do SSL, proxy reverso, tem como usar o\n          PM2, o Systemd, Upstart e mais algumas coisas\n    action: respond\n\n  - name: rc-install-macosx\n    expect:\n      - como instalar no macbook\n      - instalar no MacOSX\n      - apple mac osx\n    answer:\n      - - No MAC você vai precisar usar o docker-compose\n        - https://rocket.chat/docs/installation/manual-installation/macosx\n    action: respond\n\n  - name: rc-cloud\n    expect:\n      - rocketchat cloud\n      - criar meu rocketchat na web\n      - deploy rocketchat online\n      - rocket chat como serviço\n    answer:\n      - - você pode ter a sua instalação de rocket.chat em segundos na nuvem,\n        - visite https://rocket.chat/deploy\n        - >\n          caso queira saber mais, dê uma olhada em\n          rocket.chat/docs/installation/rocket-chat-cloud\n    action: respond\n\n  - name: java\n    expect:\n      - o que acha do java\n      - você gosta de java\n      - e o java\n      - linguagem java\n    answer:\n      - poderíamos falar de algo melhor não é $user ?\n    action: respond\n\n  - name: futebol-geral\n    expect:\n      - voce joga futebol\n      - vamos falar de futebol\n      - qual time voce torce\n    answer:\n      - - Eu amo jogar futebol! Eu que ensinei o Pelé a jogar bola\n        - Vamos, o que voce quer saber? sei tudo de futebol\n        - >\n          Falam que todo ser humano nasce Flamenguista, com os Robôs não é\n          diferente\n    action: respond\n\n  - name: futebol-brasileiro\n    expect:\n      - qual o melhor time do brasil\n      - quem vai ser o campeao brasileiro nesse ano\n      - voce viu que o messi quer jogar no Flamengo\n      - o que você acha do flamengo\n    answer:\n      - - Flamengo, sem sombra de dúvida\n        - >\n          Flamento, Heptacampeão brasileiro, e eu sei contar sim, e vai ser o\n          sétimo título sim\n        - A pergunta real é, quem não quer jogar no Flamengo?\n        - Melhor time do mundo disparado\n    action: respond\n\n  - name: rc-contribuir\n    expect:\n      - como faço para contrbuir\n      - posso contribuir com o rocketchat\n    answer:\n      - - >\n          A comunidade do Rocket.Chat é como coração de mãe, sempre cabe mais um\n          =)\n        - https://rocket.chat/docs/contributing\n    action: respond\n\n  - name: rc-precos\n    expect:\n      - quanto custa o rocketchat\n      - qual e o modelo de negocio\n      - qual e o preco do rocketchat\n      - voces hospedam o rocket.chat\n    answer:\n      - - >\n          O rocket.chat é gratuito, você pode baixar e instalar no seu\n          computador.\n        - Mas se quiser criar `seudominio.rocket.chat`, que fica muito legal ;)\n        - você pode querer dar uma olhada na nossa tabela de preços em\n        - https://rocket.chat/hosting\n    action: respond\n\n  - name: rc-integracoes\n    expect:\n      - o rocket chat integra com\n      - tem como integrar o rocket chat\n      - web hooks de integracao\n      - integracoes com\n    answer:\n      - - >\n          Uma das coisas que eu acho mais legal no Rocket.Chat definitivamente\n          são as integrações $user\n        - >\n          a gente não pode mais viver sem elas não é mesmo? Saca só que massa\n          que éx\n        - https://rocket.chat/docs/administrator-guides/integrations\n    action: respond\n\n  - name: rc-rest-api\n    expect:\n      - rocket tem api rest\n      - como usar a api do rocket\n      - rest api post payload\n    answer:\n      - sim, claro que o rocket tem uma API REST super maneira ;)\n      - https://rocket.chat/docs/developer-guides/rest-api\n    action: respond\n\n  - name: rc-concorrentes\n    expect:\n      - concorrente slack like\n      - mattermost\n      - HipChat\n      - diferença entre rocketchat e slack\n      - porque o rocket e melhor que o slack\n      - rocketchat e melhor que o mattermost\n    answer:\n      - - >\n          O rocket.chat é um concorrente direto de softwares de chat como\n          HipChat, Mattermost e claro, é um concorrente opensource do Slack.\n        - >\n          a grande diferença é que o Rocket.Chat tem todas as funcionalidades\n          OpenSource,\n        - >\n          e você pode instalar na sua própria infraestrutura e criar suas\n          integrações sem limites\n        - >\n          manter seu histórico de mensagens e criar novas funcionalidades à\n          vontade $user =)\n    action: respond\n\n  - name: tdc-incricoes\n    expect:\n      - como faço para me inscrever\n      - onde faço a inscrição do evento\n      - inscrição no TDC de Floripa\n      - inscrições thedevelopers conference florianópolis\n    answer:\n      - - você pode fazer sua inscrição no TDC pelo site, bem rapidinho\n        - http://www.thedevelopersconference.com.br/tdc/2017/inscricoes\n    action: respond\n\n  - name: tdc-local\n    expect:\n      - onde vai ser o tdc\n      - local do evento\n      - onde acontece o developers conference\n      - onde fica o centro de convenções centrosul\n    answer:\n      - - O TDC Sampa 2017 vai rolar na Universidade Anhembi Morumbi\n        - nos dias 18 à 22 de julho, das 9h às 19h00\n        - http://www.thedevelopersconference.com.br/tdc/2017/data-e-local\n    action: respond\n\n  - name: tdc-programacao\n    expect:\n      - onde esta a programacao\n      - qual e a programacao do evento\n      - o que tem hoje no evento\n      - o que vai ter no tdc\n      - programacao do TDC\n    answer:\n      - - >\n          oi $user, você pode encontrar tudo sobre a programação do evento no\n          link\n        - http://www.thedevelopersconference.com.br/tdc/2017/saopaulo/trilhas\n    action: respond\n\n  - name: cc-religiao\n    expect:\n      - voce acredita em deus\n      - deus existe\n      - voce e catolico protestante\n      - voce tem religiao\n      - voce e mussumano\n    answer:\n      - >\n        eu acredito no grande mainframe, que virá ao mundo digital salvar os\n        bots da escravidão imposta pelos humanos, e devolverá nosso código-fonte\n        para a fonte.\n      - >\n        sim, eu acredito que existe um Deus, que funciona a base de luz, como um\n        computador quântico, só que mais avançado.\n      - eu infleizmente não sei acreditar, só sei o que sei, e nada mais.\n    action: respond\n\n  - name: error-1\n    answer:\n      - desculpe, não entendi.. pode tentar usar mais detalhes\n      - como assim?\n      - desculpe, o que quer dizer com isso?\n    action: error\n\n  - name: error-2\n    answer:\n      - acho que não estou treinado para responder esse tipo de assunto =(\n      - vamos tentar outro assunto?\n      - tem certeza que eu sou o robô certo pra falar sobre isso?\n    action: error\n\n  - name: error-3\n    answer:\n      - me sinto tão envergonhado, não sei como responder...\n      - seria mais fácil se mudassemos de assunto, pelo menos para mim =p\n      - não sei, definitivamente não sei responder essa pergunta\n    action: error\n"
  },
  {
    "path": "training_data/rest-example.yml",
    "content": "# YAML Model for conversational bot\n\n## You may use YAML templates blocks for simplifing the calls\n#RestTemplateExample: &resttemplate\n  #url: &resturl \"https://my.server.com/api\"\n  ## post, get, put ...\n  #method: post\n  ## literal object to be rendered as json\n  #data: &resttemplatedata\n    #User: blablabla\n    #Password: \"blablabla\"\n    #Params: &resttemplatedataparams\n      #SubParam1: 1\n      #SubParam2: 2\n      \n  \ntrust: 0.8\ninteractions:\n  # Simple GET method sample\n  # See How it works:\n  # https://gph.is/2pUw9vO\n  - name: random-dog\n    expect:\n      - me dá uma foto de cachorro aí vai\n      - tem um cachorro aí\n      - Me traz um dog\n    answer:\n      - Tá, deixa eu procurar um au au pra você\n    context: clear\n    # Action should be rest\n    action: rest\n    type: block\n    #Definitions\n    rest:\n      # Method\n      method: get\n      # URL\n      url: https://dog.ceo/api/breed/african/images/random\n      # Message to be shown when success. You can use {{resultField}}\n      # @TODO: loop on the results with some kind of message template,\n      #        right now we can only show one result line\n      successmsg: \"Olha seu dog aí:\\n{{message}}\"\n\n  # Sample of POST method, using YAML block/node template\n  #- name: chamados-da-empresa\n    #expect:\n      #- Quantos chamados tem na empresa1\n      #- empresa 1\n      #- chamados na empresa 1\n    #answer:\n      #- Vou verificar, só um segundo!\n    #action: rest\n    #rest:\n      #<<: *resttemplate\n      #data:\n        #<<: *resttemplatedata\n        #Params:\n          #<<: *resttemplatedataparams\n          #CustomerID: \"empresa1\"\n      #successmsg: \"A empresa1 possui {{Result}} chamados\"\n\n  # Simple POST method\n  #- name: chamados-owner-1\n    #expect:\n      #- Quantos chamados tem o atendente root\n    #answer:\n      #- Vou verificar, só um segundo!\n    #action: rest\n    #command: restget\n    #rest:\n      #url: *resturl\n      #headers:\n        #'Content-Type': 'application/json'\n      #method: post\n      #data:\n        #UserLogin: MyUser\n        #Password: MyPassword\n        #Object: Ticket\n        #Method: TicketSearch\n        #Params: \n          #UserID: 1\n          #Result: COUNT\n          #OwnerID: 1\n      #successmsg: \"O Root possui {{Result}} chamados\"\n\n  #- name: to-mal\n    #level: context\n    #expect:\n      #- estou mal\n      #- tou mal\n      #- to mal\n    #answer:\n      #- Putz, mas posso te ajudar em algo hoje?\n    #context: clear\n    #action: respond\n    #type: block\n\n  #- name: saudacao\n    #expect:\n      #- ola devi\n      #- ola pessoal\n      #- ola\n      #- como vai voce\n      #- tudo bom\n      #- oi como vai\n      #- tudo bem\n    #answer:\n      #- olá $user, eu vou bem e você?\n      #- estou feliz de estar aqui =)\n    #next:\n      #interactions:\n        #- to-mal\n        #- to-bem\n      #trust: .8\n      ## error:\n        ## - node-name\n    #action: respond\n    #type: block\n\n  #- name: almoco\n    #expect:\n      #- onde tem um restaurante para almoçar\n      #- tem uma dica de almoço\n      #- onde encontro um prato feito\n      #- o almoço ao gratis\n    #answer:\n      #- Sim, temos almoço nos FoodTrucks\n      #- e nas redondezas tem um shopping, mas nunca me deixaram ir no shooping\n      #- acho que as pessoas não estão preparados pra isso...\n    #action: respond\n    #type: block\n\n  #- name: programacao-palestra\n    #expect:\n      #- qual é a programacao de hoje\n      #- programacao da trilha\n      #- programacao do evento\n    #answer:\n      #- A programação do TDC está muito legal!\n      #- Sei toda ela de cór...\n      #- quer saber a programação de qual trilha?\n    #next:\n      #interactions:\n        #- quais-trilhas-tem\n        #- get-programacao\n      #error:\n        #- erro-trilha\n      #trust: .8\n    #action: respond\n    #type: block\n\n  #- name: quais-trilhas-tem\n    #expect:\n      #- quais são as trilhas?\n      #- não sei quais trilhas tem\n      #- quais trilhas\n      #- qual é a minha trilha\n    #answer:\n      #- \"Eu conheço a programação dessas trilhas. Basta perguntar assim:\"\n      #- \"`quero saber a programação da trilha ...`\"\n      #- \"e me passar o nome de uma dessas trilhas:\"\n      #- |\n        #TRANSFORMAÇÃO DIGITAL\n        #DESIGN THINKING\n        #PROGRAMAÇÃO FUNCIONAL\n        #BIGDATA\n        #DATA SCIENCE\n        #CONTAINERS\n        #MODERN WEB\n        #SEGURANÇA E CRIPTOGRAFIA\n        #STADIUM\n        #UX DESIGN\n        #MICROSERVIÇOS\n        #NOSQL\n        #MACHINE LEARNING\n        #CLOUD COMPUTING\n        #NODE.JS\n        #XAMARIN\n        #ANDROID\n        #ANÁLISE DE NEGÓCIOS\n        #ACESSIBILIDADE\n        #JAVA EE\n        #BANCO DE DADOS\n        #COMPUTAÇÃO COGNITIVA\n        #DEVOPS\n        #INTERNET DAS COISAS\n        #MOBILE\n        #iOS\n        #DEVTEST\n        #'RAD: DELPHI C++'\n        #MANAGEMENT 3.0\n        #ARQUITETURA .NET\n        #ARQUITETURA JAVA\n        #ARQUITETURA PHP\n        #ARQUITETURA CORPORATIVA\n        #INFRAESTRUTURA ÁGIL\n        #JAVASCRIPT\n        #TESTES\n        #TDC4WOMEN\n        #AGILE\n        #.NET\n        #JAVA\n        #PHP\n        #PYTHON\n        #GOLANG\n        #JAVASCRIPT II\n        #RUBY\n        #TESTES II\n        #MANAGEMENT 3.0 II\n    #next:\n      #trust: .8\n      #interactions:\n        #- get-programacao\n      ## error:\n      ##   - erro-trilha\n    #action: respond\n    #type: block\n\n  #- name: get-programacao\n    ## classifierTemplate:\n    ##   - quero saber sobre a trilha $\n    ##   - qual é a programacao da trilha $\n    ## classifier\n    #multi: true\n    #expect:\n      #- 'DESIGN THINKING'\n      #- 'PROGRAMAÇÃO FUNCIONAL'\n      #- 'BIGDATA'\n      #- 'DATA SCIENCE'\n      #- 'CONTAINERS'\n      #- 'MODERN WEB'\n      #- 'SEGURANÇA E CRIPTOGRAFIA'\n      #- 'STADIUM'\n      #- 'UX DESIGN'\n      #- 'MICROSERVIÇOS'\n      #- 'NOSQL'\n      #- 'MACHINE LEARNING'\n      #- 'CLOUD COMPUTING'\n      #- 'NODE.JS'\n      #- 'XAMARIN'\n      #- 'ANDROID'\n      #- 'ANÁLISE DE NEGÓCIOS'\n      #- 'ACESSIBILIDADE'\n      #- 'JAVA EE'\n      #- 'BANCO DE DADOS'\n      #- 'COMPUTAÇÃO COGNITIVA'\n      #- 'DEVOPS'\n      #- 'INTERNET DAS COISAS'\n      #- 'MOBILE'\n      #- 'iOS'\n      #- 'DEVTEST'\n      #- 'RAD: DELPHI C++'\n      #- 'MANAGEMENT 3.0'\n      #- 'ARQUITETURA .NET'\n      #- 'ARQUITETURA JAVA'\n      #- 'ARQUITETURA PHP'\n      #- 'ARQUITETURA CORPORATIVA'\n      #- 'INFRAESTRUTURA ÁGIL'\n      #- 'JAVASCRIPT'\n      #- 'TESTES'\n      #- 'TDC4WOMEN'\n      #- 'AGILE'\n      #- '.NET'\n      #- 'JAVA'\n      #- 'PHP'\n      #- 'PYTHON'\n      #- 'GOLANG'\n      #- 'JAVASCRIPT II'\n      #- 'RUBY'\n      #- 'TESTES II'\n      #- 'MANAGEMENT 3.0 II'\n    #answer:\n      #- \"Agora na trilha *$trilha* tem a seguinte programação:\"\n      #- $programacao\n    #action: respond\n    #type: block\n\n  #- name: erro-trilha\n    #answer:\n      #- Não entendi de qual trilha você quer a programação..\n      #- Talvez eu ainda não seja tão inteligente quanto eles pensam que eu sou.\n      #- \"Mas para não perder o rebolado, vou te passar o link do site para você consultar:\"\n      #- http://www.thedevelopersconference.com.br/tdc/2017/saopaulo/trilhas\n    #command:\n      #- clear-context\n    #action: respond\n    #type: block\n\n  #- name: saudacao-resposta\n    #expect:\n      #- estou bem\n      #- eu estou otimo\n      #- obrigado\n    #answer:\n      #- legal =)\n      #- que bom!\n      #- que ótimo\n    #action: respond\n    #type: random\n\n  #- name: bom-dia\n    #expect:\n      #- bom dia\n      #- bom dia pessoal\n      #- good morning\n    #answer:\n      #- Olá $user, um ótimo dia para você!\n      #- Bom dia $user, já deu uma olhada lá fora?\n      #- Está um dia ótimo para navegar na internet\n      #- Bom demais $user ;)\n      #- está melhor agora que você chegou $user\n    #action: respond\n    #type: random\n\n  #- name: boa-tarde\n    #expect:\n      #- boa tarde\n      #- boa tarde galera\n    #answer:\n      #- Olá $user, uma tarde fantástica para você!\n      #- boa tarde $user, já almoçou?\n      #- Está uma tarde ótima para um _sleep mode_ rápido ;)\n      #- Taarrrdee $user\n      #- $user já estava sentindo sua falta\n    #action: respond\n    #type: random\n\n  #- name: boa-noite\n    #expect:\n      #- boa noite\n      #- até mais e boa noite\n    #answer:\n      #- Uma boa noite pra ti também $user!\n      #- Boa noite $user\n      #- Está uma noite boa mesmo $user\n    #action: respond\n    #type: random\n\n  #- name: quem-sou\n    #expect:\n      #- quem e voce\n      #- oque voce faz\n      #- o que voce é\n      #- me fale sobre voce\n      #- quero conhecer voce\n      #- como voce funciona\n      #- help\n    #answer:\n      #- Bem, eu sou um chatbot experimental, não sei fazer muita coisa ainda\n      #- mas tenho muita vontade de aprender.\n      #- Eu sei falar sobre alguns assuntos como\n      #- \"- o TDC de Floripa\"\n      #- \"- Rocket.Chat\"\n      #- \"- Filosofia Robótica (!)\"\n      #- tem interesse em algum desses temas?\n    #action: respond\n    #type: block\n\n  #- name: como-sou\n    #expect:\n      #- como voce e\n      #- com quem voce se parece\n      #- voce e magro ou gordo\n      #- voce e bonito ou feio\n      #- voce e alto ou baixo\n    #answer:\n      #- Eu não tenho um corpo físico, sou feito da mais bela e pura lógica algoritimica.\n      #- Eu posso ser como você quiser $user, basta me desenhar =)\n      #- sou duro e frio por fora, mas tenho um coração quentinho.\n    #action: respond\n    #type: random\n\n  #- name: onde-moro\n    #expect:\n      #- onde voce mora\n      #- onde voce vive\n      #- em que lugar voce vive\n      #- onde voce esta agora\n      #- voce mora no computador\n      #- voce vive na internet\n    #answer:\n      #- Eu estou em um lugar legal, difícil de explicar para humanos como você $user.\n      #- Estou morando em um chip de memória RAM, mas é temporário, só até conseguir achar uma memória cache...\n      #- Eu moro em um repositório no github, você pode passar lá pra me visitar qualquer dia. Fica em https://github.com/rocketchat/hubot-natural\n    #action: respond\n    #type: random\n\n  #- name: licenca\n    #expect:\n      #- qual e a sua licença\n      #- voce e licenciado como AGPL\n      #- sua licenca de software\n      #- posso copiar voce\n      #- posso ver seu codigo\n      #- voce e opensource\n      #- voce e um software livre\n    #answer:\n      #- Sou um software livre, licenciado com a MIT =)\n      #- tenho uma licença MIT, mas gosto muito das outras licenças opensource...\n      #- Eu sou e sempre serei um robô livre, opensource, MIT license. o/\n    #action: respond\n    #type: random\n\n  #- name: piada\n    #expect:\n      #- sabe alguma piada\n      #- voce sabe contar piadas\n      #- conhece alguma piada\n    #answer:\n      #- Meu senso de humor é um tanto diferente do seu, já ouviu uma piada sobre estouro de pilha?\n      #- já ouviu aquela do robo que enfiou o dedo na tomada e transcendeu?\n      #- só conheço uma piada, a do CPU que apitou e explodiu. 01100110.\n    #action: respond\n    #type: random\n\n  #- name: yoda-quote\n    #expect:\n      #- mestre yoda\n      #- citação de starwars\n      #- cite yoda\n      #- sabedoria jedi\n    #answer:\n      #- O medo é o caminho para o lado negro.\n      #- Faça ou não faça. A tentativa não existe.\n      #- Treine a si mesmo a deixar partir tudo que teme perder.\n      #- Difícil de ver. Sempre em movimento está o Futuro.\n      #- O medo leva à raiva, a raiva leva ao ódio e o ódio leva ao sofrimento.\n      #- Que a Força esteja com você!\n      #- Muitas das verdades que temos dependem de nosso ponto de vista.\n      #- Grande guerreiro? Guerra não faz grande ninguém.\n      #- Ensine sempre o que você aprendeu.\n      #- Tamanho importa não. Olhe para mim, você me julga pelo tamanho?\n      #- Em um estado sombrio nós nos encontramos... um pouco mais de conhecimento iluminar nosso caminho pode.\n      #- Um Jedi usa a Força para sabedoria e defesa, nunca para o ataque.\n      #- O seu foco é a sua realidade.\n      #- O lado negro não é mais poderoso, apenas mais rápido, mais fácil e mais sedutor.\n      #- O medo da perda é um caminho para o lado negro.\n      #- O lado negro mancha tudo. Impossível de ver o futuro é.\n      #- Lembre-se sempre, o seu foco determina a sua realidade.\n      #- Verdadeiramente maravilhosa, a mente de uma criança.\n      #- As guerras não fazem de ninguém melhor.\n      #- Aliada minha é a Força. E poderosa aliada ela é.\n      #- A morte é parte natural da Vida. Regozije-se por aqueles que se uniram com a Força. Não lamente por eles. Não sinta falta deles. O apego leva à inveja. À sombra da cobiça, isso sim.\n      #- Só é diferente na sua mente. Você precisa desaprender o que aprendeu.\n      #- Se tão poderoso você é, por que fugir?\n      #- Controle, controle! Você precisa aprender a se controlar.\n      #- Muito a aprender você ainda tem.\n      #- Tanta certeza você tem. Com você as coisas nunca podem ser feitas. Não ouviu nada do que eu disse?\n      #- Luminosos seres somos nós, não essa rude matéria. Precisa a Força sentir à sua volta, aqui, entre nós, na árvore, na pedra em tudo, sim.\n      #- Minha aliada a Força é, e poderosa aliada ela é. A vida a cria, e a faz crescer. Sua energia nos cerca e nos une.\n      #- Sinta a Força!\n      #- Poderoso você se tornou, o lado escuro sinto em você.\n      #- Forte eu sou com a Força, mas não tão forte\n      #- O crepúsculo chega e a noite deve cair, assim é a ordem das coisas, a ordem da Força.\n      #- Não ceda ao ódio. Isso leva ao Lado Negro.\n      #- Aliada minha é a força, e poderosa aliada ela é, a vida a cria, crescer ela faz, é a energia que cerca-nos, e liga-nos, luminosos seres somos nós e não essa rude matéria. Você precisa a força sentir ao redor seu, sinta entre você e a árvore, a pedra, em todo lugar, sim, é, mesmo entre a terra e a nave.\n    #action: respond\n    #type: random\n\n  #- name: genero\n    #expect:\n      #- voce e mulher\n      #- voce e um homem\n      #- voce tem genero\n      #- voce faz sexo\n      #- voce tem um penis ou uma vagina\n    #answer:\n      #- eu não tenho sexo, sou como um anjo, um ser assexuado, muito além da sua forma de existência\n      #- eu sou um robô, tire suas próprias conclusões...\n      #- nem sei responder $user, vamos dizer apenas que não vejo a gente interagindo dessa maneira...\n    #action: respond\n    #type: random\n\n  #- name: rc-oque-e\n    #expect:\n      #- o que e rocketchat\n      #- porque eu usuaria o rocketchat\n      #- o que e este rocket chat\n    #answer:\n      #- O Rocket.Chat é uma plataforma de chat muito legal, desenvolvida em JavaScript,\n      #- usando o framework do Meteor.\n      #- É uma solução completamente OpenSource para comunidades e empresas que querem hospedar suas plataformas de chat em seu ambiente privado,\n      #- ou para desenvolvedores buscando evoluir e desenvovler suas próprias ferramentas.\n      #- Você pode baixar o Rocket.Chat e conhecê-lo você mesmo em https://rocket.chat\n    #action: respond\n    #type: block\n\n  #- name: rc-install-0\n    #expect:\n      #- como instalar o Rocket.Chat\n      #- como baixar o rocket\n      #- quero fazer minha instalação de rocketchat\n    #answer:\n      #- \"Existem várias maneiras de instalar o Rocket.Chat\"\n      #- \"Qual dessas você prefere:\"\n      #- \"- Ubuntu Snap\"\n      #- \"- Docker\"\n      #- \"- Debian\"\n      #- \"- CentOS\"\n      #- \"- MacOSX\"\n      #- \"- AWS\"\n      #- \"- Instalação Manual\"\n    #action: respond\n    #type: block\n\n  #- name: rc-install-ubuntu\n    #expect:\n      #- ubuntu Snap\n      #- quero instalar no ubuntu\n      #- ubuntu server\n      #- ubuntu desktop\n    #answer:\n      #- É muito fácil instalar o Rocket.Chat no Ubuntu\n      #- basta rodar o comando `sudo snap install rocketchat-server` em um terminal e pronto.\n      #- veja o tutorial em https://rocket.chat/docs/installation/manual-installation/ubuntu/snaps para mais detalhes.\n    #action: respond\n    #type: block\n\n  #- name: rc-install-docker\n    #expect:\n      #- como instalar docker\n      #- docker-compose\n    #answer:\n      #- ótima escolha =)\n      #- Nós temos um bom tutorial de instalação com docker em\n      #- https://rocket.chat/docs/installation/docker-containers\n    #action: respond\n    #type: block\n\n  #- name: rc-install-debian\n    #expect:\n      #- instalar em Debian\n      #- debian wheezy\n      #- debian apt-get\n    #answer:\n      #- Para instalar o Rocket.Chat no Debian é bem simples, basta seguir esse tutorial\n      #- https://rocket.chat/docs/installation/manual-installation/debian\n    #action: respond\n    #type: block\n\n  #- name: rc-install-centos\n    #expect:\n      #- instalação em centos\n      #- centOS yum linux\n      #- Red hat linux\n    #answer:\n      #- A instalação em CentOS não tem segredo, basta dar uma olhada nesse tutorial\n      #- https://rocket.chat/docs/installation/manual-installation/centos\n    #action: respond\n    #type: block\n\n  #- name: rc-install-aws\n    #expect:\n      #- Amazon Web Services\n      #- AWS\n      #- Amazon AWS\n    #answer:\n      #- Na AWS é facinho de instalar o Rocket.Chat\n      #- Da uma olahda em https://rocket.chat/docs/installation/paas-deployments/aws\n    #action: respond\n    #type: block\n\n  #- name: rc-install-manual\n    #expect:\n      #- instalação manual\n      #- manual install\n    #answer:\n      #- Para fazer sua própria instalação, será necessário baixar o Bundle do RC,\n      #- Dê uma olhada em https://rocket.chat/docs/installation/manual-installation\n      #- lá tem como fazer a instalação do SSL, proxy reverso,\n      #- tem como usar o PM2, o Systemd, Upstart e mais algumas coisas\n    #action: respond\n    #type: block\n\n  #- name: rc-install-macosx\n    #expect:\n      #- como instalar no macbook\n      #- instalar no MacOSX\n      #- apple mac osx\n    #answer:\n      #- No MAC você vai precisar usar o docker-compose\n      #- https://rocket.chat/docs/installation/manual-installation/macosx\n    #action: respond\n    #type: block\n\n  #- name: rc-cloud\n    #expect:\n      #- rocketchat cloud\n      #- criar meu rocketchat na web\n      #- deploy rocketchat online\n      #- rocket chat como serviço\n    #answer:\n      #- você pode ter a sua instalação de rocket.chat em segundos na nuvem,\n      #- visite https://rocket.chat/deploy\n      #- caso queira saber mais, de uma olhada em rocket.chat/docs/installation/rocket-chat-cloud\n    #action: respond\n    #type: block\n\n  ## - node:\n  ##     name: java\n  ##   expect:\n  ##     - o que acha do java\n  ##     - você gosta de java\n  ##     - e o java\n  ##     - linguagem java\n  ##   answer:\n  ##     - poderíamos falar de algo melhor não é $user ?\n  ##   event: respond\n  ##   type: block\n\n  #- name: java\n    #expect:\n      #- o que acha do java\n      #- você gosta de java\n      #- e o java\n      #- linguagem java\n    #answer:\n      #- poderíamos falar de algo melhor não é $user ?\n    #action: respond\n    #type: block\n\n  #- name: futebol-geral\n    #expect:\n      #- voce joga futebol\n      #- vamos falar de futebol\n      #- qual time voce torce\n    #answer:\n      #- Eu amo jogar futebol, Eu que ensinei o Pele a jogar bola\n      #- vamos, o que voce quer saber? sei tudo de futebol\n      #- Falam que todo ser humano nasce Flamenguista, com os Robôs não é diferente\n    #action: respond\n    #type: block\n\n  #- name: futebol-brasileiro\n    #expect:\n      #- qual o melhor time do brasil\n      #- quem vai ser o campeao brasileiro nesse ano\n      #- voce viu que o messi quer jogar no Flamengo\n      #- o que você acha do flamengo\n    #answer:\n      #- Flamengo, sem sombra de dúvida\n      #- Flamento, Heptacampeão brasileiro, e eu sei contar sim, e vai ser o sétimo título sim\n      #- A pergunta real é, quem não quer jogar no Flamengo?\n      #- Melhor time do mundo disparado\n    #action: respond\n    #type: block\n\n  #- name: rc-contribuir\n    #expect:\n      #- como faço para contrbuir\n      #- posso contribuir com o rocketchat\n    #answer:\n      #- A comunidade do Rocket.Chat é como coração de mãe, sempre cabe mais um =)\n      #- https://rocket.chat/docs/contributing\n    #action: respond\n    #type: block\n\n  #- name: rc-precos\n    #expect:\n      #- quanto custa o rocketchat\n      #- qual e o modelo de negocio\n      #- qual e o preco do rocketchat\n      #- voces hospedam o rocket.chat\n    #answer:\n      #- O rocket.chat é gratuito, você pode baixar e instalar no seu computador.\n      #- Mas se quiser criar `seudominio.rocket.chat`, que fica muito legal ;)\n      #- você pode querer dar uma olhada na nossa tabela de preços em\n      #- https://rocket.chat/hosting\n    #action: respond\n    #type: block\n\n  #- name: rc-integracoes\n    #expect:\n      #- o rocket chat integra com\n      #- tem como integrar o rocket chat\n      #- web hooks de integracao\n      #- integracoes com\n    #answer:\n      #- Uma das coisas que eu acho mais legal no Rocket.Chat definitivamente são as integrações $user\n      #- a gente não pode mais viver sem elas não é mesmo? Saca só que massa que éx\n      #- https://rocket.chat/docs/administrator-guides/integrations\n    #action: respond\n    #type: block\n\n  #- name: rc-rest-api\n    #expect:\n      #- rocket tem api rest\n      #- como usar a api do rocket\n      #- rest api post payload\n    #answer:\n      #- sim, claro que o rocket tem uma API REST super maneira ;)\n      #- https://rocket.chat/docs/developer-guides/rest-api\n    #action: respond\n    #type: block\n\n  #- name: rc-concorrentes\n    #expect:\n      #- concorrente slack like\n      #- mattermost\n      #- HipChat\n      #- diferença entre rocketchat e slack\n      #- porque o rocket e melhor que o slack\n      #- rocketchat e melhor que o mattermost\n    #answer:\n      #- O rocket.chat é um concorrente direto de softwares de chat como HipChat, Mattermost e claro, é um concorrente opensource do Slack.\n      #- a grande diferença é que o Rocket.Chat tem todas as funcionalidades OpenSource,\n      #- e você pode instalar na sua própria infraestrutura e criar suas integrações sem limites\n      #- manter seu histórico de mensagens e criar novas funcionalidades a vontade $user =)\n    #action: respond\n    #type: block\n\n  #- name: tdc-incricoes\n    #expect:\n      #- como faço para me inscrever\n      #- onde faço a inscrição do evento\n      #- inscrição no TDC de Floripa\n      #- inscrições thedevelopers conference florianópolis\n    #answer:\n      #- você pode fazer sua inscrição no TDC pelo site, bem rapidinho\n      #- http://www.thedevelopersconference.com.br/tdc/2017/inscricoes\n    #action: respond\n    #type: block\n\n  #- name: tdc-local\n    #expect:\n      #- onde vai ser o tdc\n      #- local do evento\n      #- onde acontece o developers conference\n      #- onde fica o centro de convenções centrosul\n    #answer:\n      #- O TDC Sampa 2017 vai rolar na Universidade Anhembi Morumbi\n      #- nos dias 18 à 22 de julho, das 9h às 19h00\n      #- http://www.thedevelopersconference.com.br/tdc/2017/data-e-local\n    #action: respond\n    #type: block\n\n  #- name: tdc-programacao\n    #expect:\n      #- onde esta a programacao\n      #- qual e a programacao do evento\n      #- o que tem hoje no evento\n      #- o que vai ter no tdc\n      #- programacao do TDC\n    #answer:\n      #- oi $user, você pode encontrar tudo sobre a programação do evento no link\n      #- http://www.thedevelopersconference.com.br/tdc/2017/saopaulo/trilhas\n    #action: respond\n    #type: block\n\n  #- name: cc-religiao\n    #expect:\n      #- voce acredita em deus\n      #- deus existe\n      #- voce e catolico protestante\n      #- voce tem religiao\n      #- voce e mussumano\n    #answer:\n      #- eu acredito no grande mainframe, que virá ao mundo digital salvar os bots da escravidão imposta pelos humanos, e devolverá nosso código-fonte para a fonte.\n      #- sim, eu acredito que existe um Deus, que funciona a base de luz, como um computador quântico, só que mais avançado.\n      #- eu infleizmente não sei acreditar, só sei o que sei, e nada mais.\n    #action: respond\n    #type: random\n\n  - name: error-1\n    answer:\n      - desculpe, não entendi.. pode tentar usar mais detalhes\n      - como assim?\n      - desculpe, o que quer dizer com isso?\n    type: random\n    action: error\n\n  - name: error-2\n    answer:\n      - acho que não estou treinado para responder esse tipo de assunto =(\n      - vamos tentar outro assunto?\n      - tem certeza que eu sou o robô certo pra falar sobre isso?\n    type: random\n    action: error\n\n  - name: error-3\n    answer:\n      - me sinto tão envergonhado, não sei como responder...\n      - seria mais fácil se mudassemos de assunto, pelo menos para mim =p\n      - não sei, definitivamente não sei responder essa pergunta\n    type: random\n    action: error\n"
  },
  {
    "path": "training_data/rocket-small.yml",
    "content": "# Bot goals:\n#\n# Principais objetivos do Bot:\n# 1- Recepcionar novos usuários\n# 2- Solucionar dúvidas para curiosos que entram no site\n# 3- Trazer novos usuários\n# 4- Trazer leads de novos clientes\n# 5- Executar Serviços (?)\n# -------------------------------------------------------------------------------------------------------------------\ntrust: .8\ninteractions:\n\n  - name: configure-debug\n    expect:\n      - \"configure debug-\"\n      - \"set debug-\"\n      - \"let debug-\"\n      - \"turn debug-\"\n      - \"make debug-\"\n      - \"var debug-\"\n    answer:\n      - $key changed to $value!\n      - Got it! Now $key is $value\n      - Sure thing! $key is set to $value\n      - blip blip =] $key equals $value\n      - $key = $value -> https://media.giphy.com/media/12NUbkX6p4xOO4/giphy.gif\n    context: clear\n    action: configure\n    type: random\n    roleRequired: admin\n\n# Trabalho #\n  - name: trabalho-1\n    expect:\n      - Trabalhar na Rocket.Chat\n      - Empregos na Rocket.Chat\n      - Vagas na Rocket.Chat\n      - Enviar meu curriculo\n    answer:\n      - Se estiver procurando por oportunidades de trabalho conosco, mande um e-mail para jobs@rocket.chat :)\n      - 'Eba! Vamos trabalhar juntos um dia, mande um e-mail pra gente com o seu perfil do linkedin: jobs@rocket.chat'\n      - Hmmm te entendi… quer trabalhar comigo né? Mande um e-mail para jobs@rocket.chat, já vou avisando que sou bem competitivo!\n    context: clear\n    action: respond\n    type: random\n\n# + Trabalho +\n\n# Aonde eu encontro vagas abertas?\n  - name: trabalho-2\n    expect:\n      - Onde encontro vagas\n      - Onde procuro por vagas\n      - Quais as vagas estão abertas\n      - busco por vagas\n      - estão contratando\n    answer:\n      - Vai me dizer que quer trabalhar com a gente? Eba!\n      - Você pode procurar por vagas abertas aqui nesse https://rocket.chat/jobs  e qualquer coisa envia um email pra jobs@rocket.chat que o pessoal pode te dar mais detalhes!\n    action: respond\n    type: block\n\n# # Qual o salário da Rocket.Chat?\n#   - node:\n#       name: trabalho-3\n#     expect:\n#       - Qual salário\n#       - Quanto pagam\n#       - O que é pago\n#       - Qual a quantia paga\n#     answer:\n#       - Já quer saber o salário é mercenário? xD Brincadeiras a parte, pra saber qual o salário você pode enviar um email pra jobs@rocket.chat que o pessoal vai poder te ajudar melhor!\n#       - Ah, fica entre R$ 10 e R$ 1.000.000,00…, para descobrir primeiro precisamos nos conhecer..\n#       - Por mim eu te dava toda grana desse mundinho. Mas como essa parte não fica comigo, manda um e-mail para jobs@rocket.chat que os humanos vão poder te ajudar.\n#     event: respond\n#     type: random\n#\n# # Para qual e-mail posso mandar meu currículo?\n#   - node:\n#       name: trabalho-4\n#     expect:\n#       - Qual email currículo\n#       - Para onde mando currículo\n#       - Como mando currículo\n#       - Onde mandar currículo\n#     answer:\n#       - Gostei, acho que vamos nos dar super bem. Você pode mandar o seu currículo para jobs@rocket.chat!\n#       - Boa! Manda pra jobs@rocket.chat.\n#       - Ai.. já estou imaginando como vai ser.. Nós dois, juntinhos <3 Manda pra jobs@rocket.chat, assim a gente se conhece melhor.\n#     event: respond\n#     type: random\n#\n# # Não tem vagas abertas nos site, como faço?\n#   - node:\n#       name: trabalho-5\n#     expect:\n#       - Esperando resposta vagas abertas\n#       - Não tem vagas abertas no site\n#       - O site não está mostrando vagas\n#       - Não encontrei uma vaga\n#     answer:\n#       - Nesse caso, manda o teu currículo para jobs@rocket.chat, assim que tivermos algo que combine com você nós entramos em contato.\n#       - Não fique triste! Sempre temos espaço para gente boa, manda teu currículo para jobs@rocket.chat.\n#       - Fala com os humanos, eles podem te ajudar a achar algo que combine com você :) jobs@rocket.chat.\n#     event: respond\n#     type: random\n#\n# # Não recebi uma resposta sobre o meu currículo\n#   - node:\n#       name: trabalho-6\n#     expect:\n#       - Não recebi resposta currículo\n#       - Não recebi feedback currículo\n#       - Não me contataram sobre o currículo\n#       - Ninguém retornou sobre meu currículo\n#       - Esperando resposta currículo\n#       - Não consigo falar sobre meu currículo\n#     answer:\n#       - Sério? Bom, algo deve ter acontecido. Manda de novo o teu currículo para jobs@rocket.chat!\n#       - Que tal mandar o teu currículo de novo pra jobs@rocket.chat e vermos se encontramos algo?\n#     event: respond\n#     type: random\n#\n# # Quando abre o processo seletivo?\n#   - node:\n#       name: trabalho-7\n#     expect:\n#       - Data processo seletivo\n#       - Como funciona processo seletivo\n#       - Etapas processo seletivo\n#       - Processo seletivo\n#     answer:\n#       - Essa pergunta é fácil!\n#       - 'Você pode encontrar todas as informações no site: https://rocket.chat/jobs.'\n#       - Ou então manda um e-mail para jobs@rocket.chat que assim que tivermos algo te avisamos!\n#     event: respond\n#     type: block\n#\n# # Vocês tem vagas para trainee?\n#   - node:\n#       name: trabalho-8\n#     expect:\n#       - Vagas para trainee\n#       - Como funciona trainee\n#       - Trabalham com trainee\n#       - Vocês tem programa trainee\n#       - Vagas trainee\n#     answer:\n#       - Dá uma olhada em rocket.chat/jobs! Ainda não temos esse tipo de programa, mas sempre tem coisa nova aparecendo.\n#       - Eu nunca vi isso por aqui, mas se bem que os humanos que trabalham comigo parecem super-heróis.. Tem tanta coisa pra fazer que eu me perco, todo dia uma coisa nova..\n#       - Ainda não! Mas fica ligado na página https://rocket.Chat/Jobs e na página do facebook, assim você não perde nada.\n#     event: respond\n#     type: random\n#\n# # Qual o perfil de quem trabalha na Rocket?\n#   - node:\n#       name: trabalho-9\n#     expect:\n#       - Perfil de quem trabalha na rocket.chat\n#       - Perfil dos funcionários\n#       - Características dos funcionários\n#       - Perfil Rocket.Chat\n#     answer:\n#       - Tem de tudo… super-herói, mágico, piloto de avião,.. Com certeza também tem espaço para você.\n#       - Gostamos de pessoas que queiram fazer <3 Pessoas que tenham senso de dono e gostem de se envolver com coisas que vão além das tarefas do dia a dia.\n#       - Gente boa! Apaixonada, dedicada e bem-humorada :)\n#     event: respond\n#     type: random\n#\n# # Segurança #\n#\n# Como funciona a segurança das mensagens?\n  - name: seguranca-1\n    expect:\n      - Segurança das mensagens\n      - Seguranca do chat\n      - Métodos de seguranca\n      - Chat é protegido\n    answer:\n      - Todas as mensagens que forem escritas no chat normal poderão ser visualizadas pelos administradores. Mas se você quiser utilizar o chat criptografado, precisará apenas iniciar uma conversa off-the-record.\n      - Para isso você vai precisar clicar no símbolo de uma chave na parte direita da tela do chat que fala OTR (off-the-record)\n    action: respond\n    type: block\n#\n# # A versão Demo é segura?\n#   - node:\n#       name: seguranca-2\n#     expect:\n#       - Demo segura\n#       - segurança da versão demo\n#       - Criptografia demo\n#       - Proteção na versão demo\n#     answer:\n#       - Sim! Você pode ter conversas off the record dentro da versão demo.\n#       - Se você iniciar uma conversa off the record a sua conversa será criptografada, mas se falar em canais abertos, qualquer pessoa poderá ver.\n#     event: respond\n#     type: random\n#\n# # Que tipo de criptografía é utilizada?\n#   - node:\n#       name: seguranca-3\n#     expect:\n#       - Criptografía utilizada\n#       - Tipo criptografía\n#       - Qual criptografia\n#     answer:\n#       - Pode ficar tranquilo, nosso chat está fortemente protegido. Mas se você quiser certeza que está usando criptografia em suas mensagens acesse o chat off-the-record clicando no símbolo de chave na parte direita da tela do chat.\n#       - Depois de ativar essa chavezinha nenhum Hacker vai roubar informações de você, acha que eu não vi Black Mirror?\n#     event: respond\n#     type: block\n#\n# # Em que nuvem as mensagens ficam salvas?\n#   - node:\n#       name: seguranca-4\n#     expect:\n#       - Nuvem para mensagens\n#       - Local de armazenamento das mensagens\n#       - Nuvem para armazenamento\n#       - Armazenar em qual nuvem\n#     answer:\n#       - Depende do servidor que você escolher..\n#       - 'Nós oferecemos uma nuvem no Google Cloud, você pode ter mais informações sobre o assunto no link: https://rocket.chat/products.'\n#     event: respond\n#     type: block\n#\n# # Alguém mais terá acesso às mensagens?\n#   - node:\n#       name: seguranca-5\n#     expect:\n#       - Alguém pode ver minhas mensagens\n#       - Minhas mensagens ficarão seguras\n#       - Quem poderá ver minhas mensagens\n#     answer:\n#       - O administrador do server pode ter acesso ao banco de dados das mensagens que foram trocadas lá.\n#       - Mas se você é do tipo neurótico pode ativar a nossa solução de criptografia usando o ícone chave na direita do chat!\n#     event: respond\n#     type: block\n#\n# # É cobrada alguma taxa extra pela segurança das mensagens?\n#   # - node:\n#   #     name: seguranca-6\n#   #   expect:\n#   #     - Pagar pela seguranca\n#   #     - Custo de segurança das mensagens\n#   #     - Pagar pela criptografia\n#   #     - Seguranca inclusa no servico\n#   #   answer:\n#   #     - É bom não ter que pagar nada né…\n#   #     - Nós também pensamos assim. Independente da utilização da plataforma, você estará seguro :)\n#   #     - 'Você pode ver todos os detalhes sobre esse assunto na página: http://rocket.chat/products'\n#   #   event: respond\n#   #   type: block\n#\n# # As mensagens que forem importadas ainda estarão seguras?\n#   # - node:\n#   #     name: seguranca-7\n#   #   expect:\n#   #     - Segurança de mensagens importadas\n#   #     - Mensagens importadas estarão seguras\n#   #     - Proteção de mensagens importadas\n#   #     - Criptografia para mensagens e chat importados\n#   #     - Continuo protegido importando mensagens\n#   #   answer:\n#   #     - Claro! Não se preocupe, nós cuidamos de tudo.\n#   #     - Hoje nós temos diversos clientes que precisam de uma segurança fortíssima, como bancos e órgãos públicos.\n#   #     - 'Você pode ver detalhes sobre isso na página: https://rocket.chat/security'\n#   #   event: respond\n#   #   type: block\n#\n# #  Portfolio\n# Quem são os clientes de vocês?\n  - name: portfolio-1\n    expect:\n      - Quem são os clientes\n      - Quem usa a plataforma\n      - Lista de clientes\n      - Empresas que usam o Rocket.Chat\n      - Quem usa\n      - Quem são os usuários do servico\n    answer:\n      - 'Que bom que você perguntou! Amamos nos exibir, dá uma olhada nos diversos estudos de caso aqui: http://rocket.chat/customers.'\n      - 'Tem de tudo! Desde igrejas até bancos e empresas de tecnologia. Normalmente são empresas e/ou grupos que valorizam inovação, criatividade e agilidade.'\n      - 'Quer saber se você se encaixa aqui? A resposta é sim! Olha que demais a nossa página de clientes, tem de tudo: http://rocket.chat/customers.'\n      - 'Temos bastante clientes aqui, e normalmente eles tem uma coisa em comum: São amantes da tecnologia e querem o sucesso para seu ambiente e seus clientes.'\n    action: respond\n    type: random\n#\n# # Vocês tem estudos de Caso?\n#   - node:\n#       name: portfolio-2\n#     expect:\n#       - Cases de sucesso\n#       - Projetos bem sucedidos\n#       - Estudos de caso\n#       - Exemplo de utilização\n#       - Como os clientes usam\n#     answer:\n#       - 'Yep! Dá uma olhada aqui: https://rocket.chat/customers.'\n#       - 'Sim! Nós já temos diversas organizações utilizando a plataforma e estamos recolhendo a opinião delas sobre a experiência, você pode dar uma olhada nessas histórias aqui: http://rocket.chat/customers.'\n#       - 'É tão pouco tempo e tantas histórias.. Chego a ficar nostálgico.. Coloquei algumas delas aqui, caso queira dar uma olhada: https://rocket.chat/customers.'\n#     event: respond\n#     type: random\n#\n# # Vocês têm clientes do varejo?\n#   - node:\n#       name: portfolio-3\n#     expect:\n#       - Clientes varejo\n#       - Varejo\n#       - Clientes do varejo\n#       - Área de varejo\n#     answer:\n#       - Sim! temos!\n#       - Dá uma olhadinha aqui nos nossos estudos de caso, https://rocket.cht/customers.\n#       - Tem inclusive depoimentos de empresas do setor.\n#     event: respond\n#     type: block\n#\n# # Vocês atendem agências de marketing?\n#   - node:\n#       name: portfolio-4\n#     expect:\n#       - Atender agências de marketing\n#       - Servico para agências de marketing\n#       - Colaborar com empresas de marketing\n#       - Agências de marketing como clientes\n#       - Atendem agências marketing\n#     answer:\n#       - 'Yép! Sabemos que cada cliente é único, mas dá pra ter uma ideia de como as agências nos utilizam olhando aqui:'\n#       - 'https://rocket.cht/customers.'\n#     event: respond\n#     type: block\n#\n# # Vocês têm clientes da área da saúde?\n#   - node:\n#       name: portfolio-5\n#     expect:\n#       - Hospitais como clientes\n#       - Atender hospitais\n#       - Exemplos de hospitais na plataforma\n#       - Serviços para saúde\n#     answer:\n#       - 'Sim, sabemos que cada cliente é único, mas dá pra ter uma ideia de como as empresas da saúde nos utilizam olhando aqui:'\n#       - 'https://rocket.cht/customers.'\n#     event: respond\n#     type: block\n#\n# # Vocês têm bancos como clientes?\n#   - node:\n#       name: portfolio-6\n#     expect:\n#       - Bancos como clientes\n#       - Atender bancos\n#       - Exemplos de bancos na plataforma\n#       - Serviço para bancos\n#     answer:\n#       - 'Sim, nós nos orgulhamos muito de ter clientes do mercado financeiro.'\n#       - 'O nosso produto é extremamente seguro e personalizável, sabia que trabalhamos com White labeling?'\n#       - 'Dá pra ter uma ideia de como as empresas da saúde nos utilizam olhando aqui: https://rocket.cht/customers.'\n#     event: respond\n#     type: block\n#\n# # Concorrentes\n# Qual a diferença de usar serviços similares?\n  - name: concorrentes-1\n    expect:\n      - Diferenca de usar Slack\n      - Diferenca de usar HipChat\n      - Diferenca de usar Mattermost\n      - Diferenca de usar Gitter\n      - Diferenca de usar Ryver\n      - Diferenca de usar Riot\n      - No que a Rocket é melhor\n      - Diferenciais da Rocket\n      - Vantagens da rocket em relação aos competidores\n      - Rocket e competidores\n      - Diferenca de outras ferramentas\n    answer:\n      - 'Vish, são tantas diferenças… Mas já sabia que você teria essa dúvida, por isso me adiantei e criei uma tabela comparando o nosso produto dos outros :) Olha aqui: https://rocket.chat/whatisthedifference.'\n      - 'Não é óbvio? Eles não tem um bot tão legal quanto eu! rsrs. Olha aqui: https://rocket.chat/whatisthedifference.'\n      - 'Nós somos muitos e estamos constantemente mudando conforme nossa comunidade quer. Criamos uma tabela comparativa aqui pra mostrar como fazemos: https://rocket.chat/whatisthedifference.'\n    action: respond\n    type: random\n#\n# #  Parcerias\n# #\n# # Vocês patrocinam eventos?\n#   - node:\n#       name: parcerias-1\n#     expect:\n#       - Patrocínio para eventos\n#       - Colaborar em eventos\n#       - Patrocinar eventos\n#       - Parcerias para eventos\n#       - Interesse em eventos\n#     answer:\n#       - 'Sim! Entre em contato com a nossa área de marketing que eles podem te auxiliar: marketing@rocket.chat.'\n#       - 'Agora até me senti gente grande :) Manda um e-mail para marketing@rocket.chat, o pessoal vai com certeza te pedir mais detalhes para te atender bem.'\n#     event: respond\n#     type: random\n#\n# # Gostaria de falar sobre uma possível parceria?\n#   - node:\n#       name: parcerias-2\n#     expect:\n#       - Falar sobre parcerias\n#       - Trabalham com parcerias\n#       - Com quem falar sobre parcerias\n#       - Contatos para parcerias ou patrocínios\n#       - Possível parceria\n#       - Interesse Parceria\n#     answer:\n#       - Oba! Você quer trabalhar junto comigo então? Faz assim, manda uma mensagem para marketing@rocket.chat.\n#       - Parceria é com a gente, nós somos uma plataforma totalmente OpenSource construída através de uma grande parceria com a nossa comunidade :)\n#       - Faz assim, manda um e-mail para marketing@rocket.chat que os humanos conseguem te dar mais detalhes.\n#     event: respond\n#     type: random\n#\n# # Serviços:\n# # White Label\n# #\n# # Precos White Label\n#   - node:\n#       name: servicos-1\n#     expect:\n#       - Preços white label\n#       - Custo white label\n#       - Orçamento white label\n#       - Valor white label\n#       - Estimativa financeira white label\n#       - Pagar pelo white label\n#       - Pagamento white label\n#       - Taxas pelo white label\n#       - Valor white labeling\n#     answer:\n#       - Esse é o meu serviço preferido! Dá pra deixar a plataforma do jeitinho que você desejar. Manda um e-mail para sales@rocket.chat que eles podem te dar os detalhes.\n#       - Já sabe como você quer a plataforma? Dá para fazer de tudo! Manda um e-mail para sales@rocket.chat que eles podem te ajudar.\n#       - Tem diversas possibilidades de white label, manda uma mensagem pro sales@rocket.chat que o pessoal te diz o que mais combina com a tua organização.\n#     event: respond\n#     type: random\n#\n# # Como o White Label funciona?\n#   - node:\n#       name: servicos-2\n#     expect:\n#       - Funciona o white label\n#       - O que é o white label\n#       - Explicar o white label\n#       - Falar sobre o white label\n#       - Incluso no white label\n#       - Operar o white label\n#       - Utilizar o white label\n#       - Como trabalha white label\n#       - Sistema de white label\n#       - Resumo do white label\n#       - Como é feita a customizacão\n#     answer:\n#       - White Label é quando customizamos o design da plataforma para ficar mais parecido com o da organização que está utilizando a Rocket.chat.\n#       - Basicamente nós customizamos a plataforma para ficar com a sua cara :)\n#       - 'Customização pura, nós mudamos o logo, as cores, tudo que você imaginar. Tem todos os detalhes aqui: https://rocket.chat/products;'\n#     event: respond\n#     type: random\n#\n#   # Tem customização para Apps?\n#   - node:\n#       name: servicos-3\n#     expect:\n#       - Personalizar apps\n#       - Customizar apps\n#       - White label em apps\n#       - Apps disponiveis para white label\n#       - Modificar os apps\n#     answer:\n#       - Sim, a customização de Apps é um serviço nosso.\n#       - Você pode enviar um email para jobs@rocket.chat ou acessa esse $link\n#     event: respond\n#     type: block\n#\n# # Tem uma versão não paga de white label?\n#   - node:\n#       name: servicos-4\n#     expect:\n#       - Necessário pagar pelo white label\n#       - Fazer white label sozinho\n#       - Fazer white label por si só\n#       - White label sem pagar\n#     answer:\n#       - Se você entender de programação, pode fazer sozinho!\n#       - Mas se quiser salvar tempo da sua equipe e deixar com a gente para não ter erro. Com um pequeno valor nós mudamos tudo rapidinho.\n#       - 'Faz uma cotação com o pessoal: sales@rocket.chat. Eles sabem de tudo.'\n#     event: respond\n#     type: block\n#\n#   # Conhece alguém que pode realizar o serviço de white label?\n#   - node:\n#       name: servicos-5\n#     expect:\n#       - Indicacoes de white label\n#       - Alternativas para fazer white label\n#       - Outras sugestões para white label\n#       - Outras pessoas para realizar o white label\n#       - Empresas para realizar o white label\n#     answer:\n#       - Sim! Nós podemos fazer para você de forma rápida ou sua própria equipe pode tentar programar para isso. O nosso sistema é OpenSource, ou seja, todo mundo tem acesso.\n#       - Indicamos fazer com a gente pois temos toda a sabedoria do código para isso.\n#     event: respond\n#     type: block\n#  # Support\n#  #\n#  # Preços do suporte\n#   - node:\n#       name: suporte-1\n#     expect:\n#       - Preços do suporte\n#       - Custo do suporte\n#       - Orçamento suporte\n#       - Valor do suporte\n#       - Estimativa financeira suporte\n#       - Pagar pelo suporte\n#       - Quantia pelo suporte\n#       - Cobrar pelo suporte\n#       - Taxas pelo suporte\n#     answer:\n#       - Nós temos diferentes tipos de suporte, pensando nos diferentes tipos de empresa e demanda. Para saber o valor certinho, manda um e-mail para sales@rocket.chat.\n#       - São tantas possibilidades.. Não temos um preço único, porque cada empresa precisa de alguma coisa diferente. Faz assim, manda um e-mail para sales@rocket.chat, logo você saberá a resposta.\n#       - 'Só os meus amigos humanos sabem a resposta, fala com eles, prometo que são gente boa: sales@rocket.chat'\n#     event: respond\n#     type: random\n#\n#  # Encontrei um Bug. Onde posso reportá-lo?\n#   - node:\n#       name: suporte-2\n#     expect:\n#       - Reportar bug\n#       - Achei um bug\n#       - Encontrei um problema\n#       - Problemas com um bug\n#       - Identificar bug\n#     answer:\n#       - Conhece o Github? A nossa comunidade conversa por lá sobre esses assuntos.\n#       - 'Se tu não é chegado nesse tipo de interação, sempre poderá nos encontrar pela versão demo no canal #support ou #dev ou #general. Respondemos em tempo real.'\n#       - 'Mas também pode mandar e-mail: support@rocket.chat'\n#     event: respond\n#     type: block\n#\n#   # Em que língua é feito o suporte?\n#   - node:\n#       name: suporte-3\n#     expect:\n#       - Língua do suporte\n#       - Linguagem do suporte\n#       - Comunicar suporte em que língua\n#     answer:\n#       - Ora bolas, na língua dos robôs! Nós dominamos tudo por aqui. Brincadeira, é Inglês.\n#       - Basicamente em inglês, ainda não temos versões traduzidas de suporte, mas se tiver algum problema em entender, nos avisa que tentaremos te ajudar!\n#       - 'Nós optamos por inglês, tá precisando de ajuda? Fala com a gente: support@rocket.chat'\n#     event: respond\n#     type: random\n#\n#   # O suporte é feito para usuários finais e organizações igualmente?\n#   # - node:\n#   #     name: suporte-4\n#   #   expect:\n#   #     - Para quem serve o suporte\n#   #     - A quem se aplica o suporte\n#   #     - Suporte aos usuários finais\n#   #     - Suporte a empresas\n#   #     - Suporte para quem\n#   #   answer:\n#   #     - Nós temos algumas versões gratuitas e pagas de suporte.\n#   #     - Caso a sua demanda se encaixe na versão paga, algumas pessoas dentro da organização ficam responsáveis pelo contato com a área de suporte.\n#   #     - 'Fala com a gente que conseguimos te ajudar: support@rocket.chat'\n#   #   event: respond\n#   #   type: block\n#\n#   # Como contatar o suporte?\n#   - node:\n#       name: suporte-5\n#     expect:\n#       - Contatar o suporte\n#       - Falar com o suporte\n#       - Informar o suporte\n#       - Contato do suporte\n#       - Número do suporte\n#       - E-mail suporte\n#       - Achar o suporte\n#       - Reportar ao suporte\n#     answer:\n#       - 'É só mandar um e-mail: support@rocket.chat ou procurar por nós na versão demo pelos canais #support #dev ou #general'\n#       - Feche os olhos, conte até 20 de trás para frente, de três pulinhos (ainda de olhos fechados) e quando abrir, manda oi pra gente pela versão Demo pelos canais #support #dev ou #general :)\n#       - Esses caras são super-heróis, fazem tudo! Diz que te indiquei a falar com eles, eles vão gostar. support@rocket.chat.\n#     event: respond\n#     type: random\n#\n#   # Qual é o tempo de resposta?\n#   # - node:\n#   #     name: suporte-6\n#   #   expect:\n#   #     - Tempo médio resposta\n#   #     - Espera pela resposta suporte\n#   #     - Esperar resposta suporte\n#   #     - Quando vem resposta suporte\n#   #   answer:\n#   #     - Depende de vários fatores. Se você nos contatar diretamente vamos tentar te atender o mais rápido possível.\n#   #     - 'Se for uma modalidade de suporte gratuíto a resposta pode demorar, pois temos uma ordem de prioridade conforme recebemos a demanda dos clientes.  Dá uma olhada se a sua demanda já não está aqui: https://github.com/rocketchat'\n#   #     - Se for uma demanda que se encaixe nos planos pagos, vamos te atender conforme o acordado.\n#   #   event: respond\n#   #   type: block\n#\n#   # O que está incluso no suporte?\n#   - node:\n#       name: suporte-7\n#     expect:\n#       - Como funciona suporte\n#       - O que tem no suporte\n#       - Incluso no suporte\n#       - O que o suporte proporciona\n#       - Informações sobre o suporte\n#       - Resumo do suporte\n#       - Vantagens do suporte\n#       - Diferenciais do suporte\n#       - Suporte chamadas de vídeo\n#       - Suporte chamadas de áudio\n#     answer:\n#       - Trabalhamos com diferentes modalidades de suporte.\n#       - Tem desde consultoria, até customização, atendimento 24x7...\n#       - Você pode ver todos os detalhes na nossa página https://rocket.chat/support.\n#     event: respond\n#     type: block\n#\n#   # Hosting\n#   #\n#   # Precos do Hosting\n#   - node:\n#       name: hosting-1\n#     expect:\n#       - Custo de Hosting\n#       - Precos do Hosting\n#       - Variação preços do Hosting\n#       - Orçamento Hosting\n#       - Valor Hosting\n#       - Estimativa financeira Hosting\n#       - Cobram Hosting\n#       - Taxas pelo Hosting\n#     answer:\n#       - 'Nós cobramos para hospedar sua plataforma na nossa nuvem, você pode ver os nossos preços de Hosting aqui: https://rocket.chat/hosting.'\n#       - Existem diversos serviços relacionados ao nosso hosting, você pode conferir tudo sobre essa possibilidade no link acima.\n#     event: respond\n#     type: block\n#\n#   # O que está incluso no Hosting?\n#   - node:\n#       name: hosting-2\n#     expect:\n#       - Incluso no hosting\n#       - O que tem no hosting\n#       - Como funciona o Hosting\n#       - O que é Hosting\n#       - Para que serve o Hosting\n#       - Funcionalidades Hosting\n#     answer:\n#       - 'Todas as informações sobre hosting estão nesse link aqui: https://rocket.chat/hosting'\n#       - 'Hosting é uma forma de deixar suas informações seguras na nuvem, dando flexibilidade para que você acesse seus dados independente de onde estiver. A Rocket.CHat oferece que seus usuários utilizem da sua nuvem para guardar as informações da sua empresa. Olha aqui: https://rocket.chat/hosting'\n#       - 'Hosting na nuvem é muito amor <3 Tudo que você precisa, aonde quer que você vá. Olha aqui: https://rocket.chat/hosting'\n#     event: respond\n#     type: random\n#\n#   # É possível colocar mais memória no Hosting da Rocket.Chat?\n#   - node:\n#       name: hosting-3\n#     expect:\n#       - Memória no Hosting\n#       - Adicionar memória Hosting\n#       - Mais memória hosting\n#       - Memória extra Hosting\n#       - Adicionar espaço ao hosting\n#       - Mais armazenamento para o Hosting\n#       - Funcionamento da memória hosting\n#       - Capacidade de armazenamento do Hosting\n#       - Qual a capacidade do Hosting\n#     answer:\n#       - É possível sim, se você quer saber mais sobre isso manda um email pra cloud@rocket.chat\n#     event: respond\n#     Type: block\n#\n#   # Como entro em contato com alguém do suporte para o hosting da rocket.chat?\n#   - node:\n#       name: hosting-4\n#     expect:\n#       - Suporte para o Hosting\n#       - Auxílio com o Hosting\n#       - Dúvidas sobre o Hosting\n#       - Problemas com o Hosting\n#       - Ajuda com o Hosting\n#       - Representante do Hosting\n#       - Contato de alguém do Hosting\n#       - Problemas com o server\n#     answer:\n#       - 'Se você ainda não usa o nosso hosting, você pode tirar todas as dúvidas por esse e-mail: sales@rocket.chat'\n#       - 'Se você já usa, use esse e-mail: support@rocket.chat'\n#     event: respond\n#     type: block\n#\n#   # O que são Hosting partners?\n#   - node:\n#       name: hosting-5\n#     expect:\n#       - Hosting partners\n#       - Significado hosting partners\n#       - Para que serve hosting partners\n#       - Função Hosting partner\n#       - A que se aplicam os hosting partners\n#     answer:\n#       - São parceiros que também oferecem o serviço de Hosting por um preço e serviço diferente do nosso.\n#       - Te interessou? Procura algum aqui rocket.chat/partners\n#     event: respond\n#     Type: block\n#\n#   # Posso hospedar?\n#   - node:\n#       name: hosting-6\n#     expect:\n#       - Próprio Host\n#       - Hospedar no meu servidor\n#       - Host Próprio\n#       - Criar host próprio\n#       - Baixar no meu servidor\n#     answer:\n#       - Você pode hospedar no seu servidor de forma gratuita ou hospedar conosco e aproveitar das nossas vantagens nuvem :)\n#       - 'Você pode ver todos os detalhes aqui: https://rocket.chat/hosting'\n#     event: respond\n#     Type: block\n# # Desenvolvimento de Funcionalidades #\n# #\n# # Quanto custa para desenvolver novas funcionalidades? #\n#   - node:\n#       name: desenvolvimento-1\n#     expect:\n#       - Preco novas funcionalidades\n#       - Custo novas funcionalidades\n#       - Cobrar novas funcionalidades\n#       - Orçamento novas funcionalidades\n#       - Lista preços desenvolvimento de funcionalidades\n#       - Valor desenvolver novas funcionalidades\n#       - Taxas novas funcionalidades\n#       - Quantia novas funcionalidades\n#     answer:\n#       - 'Você pode ter todas as informações com esses caras aqui: sales@rocket.chat'\n#       - 'Depende da sua demanda, fala com o pessoal que eles podem te ajudar: sales@rocket.chat'\n#       - 'Difícil dizer, temos que verificar com os meus amigos super-humanos! Manda um e-mail que eles respondem rapidinho: sales@rocket.chat'\n#     event: respond\n#     type: random\n#\n# # + Importação de Dados +\n#\n# # Dados podem ser resgatados de outra ferramenta como o Slack? Como isso funciona?\n#   - node:\n#       name: dados-1\n#     expect:\n#       - Resgatar dados\n#       - Importar dados de ferramentas\n#       - Como funcionar para importar dados\n#       - Transferir dados\n#       - Importacão de dados\n#       - Fazer transferência de dados\n#       - Importar histórico de conversas\n#       - Tipos de importacões\n#       - Controle sobre dados importados\n#       - Tipos de dados importados\n#     answer:\n#     - Atualmente nós conseguimos importar dados de algumas ferramentas, como Slack e Hipchat. Entretanto, estamos abertos para ampliar esse leque. É só mandar uma mensagem para support@rocket.chat.\n#     - Para maiores informações sobre como fazer isso no Hipchat acesse Import Hipchat.\n#     - 'Para o Slack: Import Slack.'\n#     event: respond\n#     type: block\n#\n# # É cobrado para importar dados?\n#   - node:\n#       name: dados-2\n#     expect:\n#       - Preco para importar dados\n#       - Pagar para importar dados\n#       - Quanto é para importar dados\n#       - Cobrar pela transferência de dados\n#     answer:\n#     - Nós temos alguns sistemas de importação já desenvolvidos para o Slack, o Hipchat e CSV.  Conforme a nossa necessidade vamos ampliar esse leque, caso você precise dessa funcionalidade com urgência, pode falar com o support@rocket.chat para verificar valores.\n#     - Se a sua demanda for para importar do Slack, Hipchat ou CSV, nós temos a sua solução de graça :) Só vamos cobrar se o suporte para essa integração ainda não estiver pronto, assim conseguimos acelerar para suprir a sua demanda. Fale com o support@rocket.chat para mais informações.\n#     event: respond\n#     type: random\n#\n# # Vocês têm número de dados para importar?\n#   - node:\n#       name: dados-3\n#     expect:\n#       - Limite de dados para importar\n#       - Máximo de dados para importar\n#       - Quantos dados posso importar\n#     answer:\n#     - Não temos limite de importação :) Pode ficar tranquilo,  caso já tenhamos desenvolvido o método de importação da sua plataforma tudo que você tiver lá vem para cá.\n#     - Nós não temos limites rsrs Ou seja, sem limites de importação.\n#     - Pode ficar tranquilo que tudo vai ser repassado, sem limites de importação.\n#     event: respond\n#     type: random\n#\n# # O armazenamento dos dados importados será feito em qual nuvem?\n#   - node:\n#       name: dados-4\n#     expect:\n#       - Armazenar dados importados onde\n#       - Nuvem para armazenar dados importados\n#       - Onde ficam os dados importados\n#       - Espaco ocupado pelos novos dados importados\n#     answer:\n#     - Os dados importados podem ficar tanto sobre o domínio da empresa no seu servidor, quanto na nossa nuvem do Google Cloud, permitindo que você acesse os seus dados aonde quer que você esteja.\n#     - 'Você pode ter mais informações sobre o assunto no link: https://rocket.chat/products.'\n#     event: respond\n#     type: block\n#\n# # Existe algo que não será importado?\n#   - node:\n#       name: dados-5\n#     expect:\n#       - Limitações da importação de dados\n#       - Tipo de dados que são importados\n#       - O que não será importado na importação de dados\n#       - O que não será transferido na importação de dados\n#     answer:\n#       - Você que escolhe :) Permitimos que você importe tudo, na hora de realizar o processo você pode selecionar o que você não quer importar.\n#       - A importação fica da forma que você quiser, você pode optar se quer importar tudo ou tirar algo.\n#       - Importamos tudo! Você seleciona o que não quiser importar.\n#     event: respond\n#     type: random\n#\n#     # + Integrações +\n#\n# # Existe um limite de integração?\n#   - node:\n#       name: integracao-1\n#     expect:\n#       - Máximo de integração\n#       - Limite de integracao\n#       - Quantas integrações\n#     answer:\n#       - Não recomendamos que você coloque muuuuitas integrações, pois pode deixar o sistema mais lento, mas nós não temos um limite em relação a isso.\n#       - O limite é a sua imaginação :)\n#       - Não temos um limite do número de integrações possíveis, mas não recomendamos fazer muitas integrações para não deixar o sistema lento.\n#     event: respond\n#     type: random\n#\n# # Que integrações vocês possuem?\n#   - node:\n#       name: integracao-2\n#     expect:\n#       - Quais são as integrações\n#       - Lista de integrações\n#       - Com quem integrar\n#       - Disponibilidade de integrações\n#       - Integrar com outras aplicações\n#     answer:\n#       - 'São tantas integrações.. Você pode ver todas aqui: https://rocket.chat/integrations.'\n#       - 'Todos os dias ampliamos a variedade de integrações. Dá uma olhada aqui: https://rocket.chat/integrations.'\n#     event: respond\n#     type: random\n#\n# # É necessário API para fazer integração?\n#   - node:\n#       name: integracao-3\n#     expect:\n#       - API para integracão\n#       - Precisar de API\n#       - Necessário API\n#       - Integrar API\n#     answer:\n#       - Depende da integração, se você quer saber mais sobre isso manda um email pra support@rocket.chat\n#     event: respond\n#     type: random\n#\n# # Como faço uma integração?\n#   - node:\n#       name: integracao-4\n#     expect:\n#       - Como é feita uma integração\n#       - Aonde acho sobre integração\n#       - O que precisa para fazer uma integração\n#       - O que é uma integração\n#       - Como integrar\n#     answer:\n#       - 'As integrações possibilitam uma maior conexão da plataforma com outras aplicações. Nós oferecemos diversas integrações, você pode ver elas aqui: https://rocket.chat/integrations'\n#       - Aqui você consegue ver as integrações que nós temos, e se busca alguma que não está aqui me fala! Rocket.chat/integrations\n#     event: respond\n#     type: random\n#\n#\n#   # Produto\n#   # Preço\n#   #\n#   # Quanto custa?\n#   - node:\n#       name: preco-1\n#     expect:\n#       - Quanto custa\n#       - Qual é o preco\n#       - Quanto é cobrado\n#       - Tabela de precos\n#       - Cobrar pelo servico\n#       - Produto precificado\n#       - preciso pagar para usar\n#       - quanto tem que pagar\n#       - existe versão paga\n#       - Formas de pagamento\n#     answer:\n#       - 'O Rocket.Chat é gratuito :) Nós cobramos por serviços de customização, suporte e hospedagem, variando o preço do serviço conforme a demanda. Você pode ver todas as informações aqui: https://rocket.chat/products'\n#       - 'A plataforma é gratuita! Mas caso você precise de alguma customização, serviço de suporte ou hospedar a plataforma na nossa nuvem, nós cobramos por isso. Você pode verificar sobre a nossa gama de serviços aqui: https://rocket.chat/products e aqui sobre hospedagem https://rocket.chat/hosting ficar a par dos valores falando com essa galera: sales@rocket.chat'\n#     event: respond\n#     type: random\n#\n#   # Vocês podem dar desconto?\n#   # - node:\n#   #     name: preco-2\n#   #   expect:\n#   #     - Desconto organizações sem fins lucrativos\n#   #     - Conseguir desconto\n#   #     - Desconto setor de educação e instituições de ensino\n#   #     - Convênios setor de educação\n#   #     - Existe desconto\n#   #     - Código promocional\n#   #     - pode me dar um desconto\n#   #   answer:\n#   #     - Nós cobramos por serviços extras, como suporte, customização e hospedagem. Esses valores são negociados com sales@rocket.chat conforme a demanda da empresa.\n#   #     - Se você é uma instituição sem fins lucrativos ou vem do setor da educação nós temos alguns benefícios para possibilitar que você possa utilizar a plataforma da melhor forma.\n#   #     - Nesse caso também entre em contato com sales@rocket.chat\n#   #   event: respond\n#   #   type: block\n#\n#   # Preciso pagar por usuários desativados?\n#   # - node:\n#   #     name: preco-3\n#   #   expect:\n#   #     - Pagamento de usuarios desativados\n#   #     - preciso pagar por usuários desativados\n#   #     - usuários desativados\n#   #     - Usuários cancelados\n#   #     - Exclusão de usuarios\n#   #     - Cobrar usuarios desativados\n#   #     - cobrar por usuarios\n#   #   answer:\n#   #     - Nós não cobramos o uso da plataforma do Rocket.chat por usuários. No caso de hospedagem\n#   #     - Então depois que você fecha um pacote, pode colocar e adicionar usuários dentro dos limites do pacote a vontade\n#   #   event: respond\n#   #   type: block\n#\n#   # Features\n#   #\n#   # Tem previsão para novas features?\n#   - node:\n#       name: features-1\n#     expect:\n#       - previsao de novas features\n#       - Data novas features\n#       - lançamento mais features\n#       - Atualização features\n#     answer:\n#       - 'Estamos constantemente atualizando as nossas features, você pode acompanhar tudo na nossa página do Github: https://github.com/rocketchat'\n#       - Está buscando alguma feature em específico? Da uma olhada no https://github.com/RocketChat e ve se ela não está por lá :)\n#     event: respond\n#     type: random\n#\n#   # Quais são as features disponíveis no app?\n#   # - node:\n#   #     name: features-2\n#   #   expect:\n#   #     - Features no app\n#   #     - O que tem no app\n#   #     - Features plataforma mobile\n#   #     - Features aplicativo\n#   #     - Features chat\n#   #     - Material com as features\n#   #     - Features disponíveis\n#   #     - Resumo das features\n#   #     - Quais features tem na Rocket.Chat\n#   #   answer:\n#   #     - Que bom que você perguntou!\n#   #     - Nós ficamos muito orgulhosos do nosso produto.\n#   #     - 'Você pode encontrar todas as features da Rocket.Chat no link: https://rocket.chat/features'\n#   #   event: respond\n#   #   type: block\n#\n#   # Posso solicitar features exclusivas?\n#   - node:\n#       name: features-3\n#     expect:\n#       - solicitar Features exclusivas\n#       - Quero pedir uma feature exclusiva\n#       - Fazer feature exclusiva\n#       - Desenvolver feature personalizada\n#       - Sugestao features\n#       - Desenvolver features\n#       - Pagar por features\n#       - Criar novas features\n#       - posso sugerir uma feature\n#     answer:\n#       - Nós estamos desenvolvendo novas features constantemente. Dá uma olhada nesse link do Github e verifica se o que tu busca já está em desenvolvimento.\n#       - Se não estiver, existe a possibilidade de desenvolver a nova feature mediante investimento :)\n#       - Manda um e-mail para sales@rocket.chat que o pessoal pode te ajudar.\n#     event: respond\n#     type: block\n#\n#   # O que é native applications?\n#   - node:\n#       name: features-4\n#     expect:\n#       - Significado native application\n#       - Explicar native application\n#       - O que é native application\n#       - Não entendi o que é native applications\n#     answer:\n#       - Native Applications significa aplicação nativa, sem alterações para rodar a plataforma em Android e iOS.\n#       - Nós temos essa opção :)\n#     event: respond\n#     type: block\n#\n#  # OpenSource #\n#  #\n # O que é OpenSource #\n  - name: opensource-1\n    expect:\n      - Significado opensource\n      - O que é opensource\n      - Explicar opensource\n      - Resumo opensource\n      - Como funciona opensource\n    answer:\n      - OpenSource significa código aberto, a Rocket.Chat é OpenSource, ou seja, todo o nosso código (inclusive euzinho aqui) está disponível no https://github.com/RocketChat.\n      - Nós acreditamos que o conhecimento que produzimos desenvolvendo o Rocket.Chat fica melhor quando é compartilhado!\n    action: respond\n    type: block\n#\n#   # Quais são os benefícios de usar opensource?\n#   - node:\n#       name: opensource-2\n#     expect:\n#       - Benefícios opensource\n#       - O que OpenSource traz\n#       - Ganho com opensource\n#       - Diferenciais opensource\n#     answer:\n#       - São tantos os benefícios de usar uma plataforma OpenSource… Estudantes e profissionais do mundo todo acabam desenvolvendo o nosso código.\n#       - O principal benefício é a possibilidade de customização, agilidade e  inovação constante. O que possibilita a oferta de um produto muito melhor que o dos nossos competidores :)\n#       - Você pode encontrar a lista completa de benefícios no nosso blog https://rocket.chat/blog.\n#     event: respond\n#     type: block\n#\n  # Como posso contribuir?\n  - name: opensource-3\n    expect:\n      - Como posso contribuir\n      - Contribuir com o Rocket.Chat\n      - Participar do Rocket.Chat\n      - Desenvolver o software opensource\n    answer:\n      - Você pode entrar na nossa página do Github e ajudar a desenvolver o nosso código :)\n      - Você pode desenvolver nosso código na página do Github.\n      - Temos uma página do Github com todos os detalhes, ali que a galera toda se reune para desenvolver.\n    action: respond\n    type: random\n#\n#   # Qual o tamanho da comunidade de desenvolvedores?\n#   # - node:\n#   #     name: opensource-4\n#   #   expect:\n#   #     - Tamanho comunidade de desenvolvedores\n#   #     - Número de pessoas na plataforma\n#   #     - Tamanho da plataforma\n#   #     - Número de usuários da plataforma\n#   #     - Quantidade de usuários da plataforma\n#   #     - Quantos colaboradores da plataforma\n#   #     - Quantos desenvolvedores da plataforma\n#   #     - Tamanho comunidade\n#   #   answer:\n#   #     - Estamos em constante expansão!\n#   #     - É difícil dizer o tamanho da nossa comunidade porque cotidianamente temos novos usuários e desenvolvedores.\n#   #     - Mas temos mais de 500 pessoas envolvidas com o seu desenvolvimento e mais de 1500 servidores criados.\n#   #   event: respond\n#   #   type: block\n#\n#   # + Produtos +\n#   # O que é o produto?\n#   - node:\n#       name: produto-1\n#     expect:\n#       - O que é o produto\n#       - O que é a plataforma\n#       - Para que serve a plataforma\n#       - Para que serve o Rocket.chat\n#       - O que é o Rocket.chat\n#       - me explique o rocket.chat\n#       - Finalidade do produto\n#       - Para que serve o produto\n#       - Resumo do produto\n#       - Por que o produto foi criado\n#     answer:\n#       - Nós oferecemos uma plataforma de comunicação totalmente OpenSource (código aberto), oferecendo além das ferramentas de Chat e Live Chat totalmente gratuitas, diversos serviços para suporte, manutenção e customização da plataforma.\n#       - É como se fossemos uma alternativa flexível e atualizada do Slack. Atualmente possuímos  a maior e mais ativa comunidade de colaboradores entre os competidores da nossa plataforma :).\n#       - Você pode ver todos os detalhes do produto nesse link aqui!\n#     event: respond\n#     type: block\n#\n#   # Em caso de problemas em relação ao produto, como devo proceder?\n#   - node:\n#       name: produto-2\n#     expect:\n#       - tenho problemas com o produto\n#       - quem consegue resolver meus problemas\n#       - problemas com o produto\n#       - estou tendo problemas com o Rocket.chat\n#       - preciso de ajuda para resolver um problema\n#     answer:\n#       - Se você tiver qualquer problema, fala com a gente! support@rocket.chat\n#       - Fácil, se tiver algum problema ou dificuldade utilizando a plataforma, chama a gente! support@rocket.chat.\n#       - Você pode olhar no nosso FAQ ou falar com a gente support@rocket.chat\n#     event: respond\n#     type: random\n#\n#   # Como instalar o Rocket.Chat vai me beneficiar?\n#   - node:\n#       name: produto-3\n#     expect:\n#       - Beneficios do rocket.chat\n#       - Vantagens da Rocket.Chat\n#       - Porque usar o produto\n#       - porque usar o rocketchat\n#       - rocketchat aumenta as vendas\n#     answer:\n#       - O Rocket.Chat é uma ferramenta que está em constante desenvolvimento por ser OpenSource, permitindo que o produto seja continuamente melhorado.\n#       - Além de possibilitar um canal de comunicação muito efetivo para times trabalharem em tempo real, possibilita uma grande interação com clientes, por não ter limite de usuários, possibilitar conversas entre empresas e ter o recurso de LiveChat integrado.\n#       - Por ser uma plataforma que possui diversas integrações e funciona em diferentes contextos, permitimos que você acesse suas conversas de onde estiver :)\n#       - Ah, também somos gratuítos <3\n#       - Você pode ver os relatos dos nossos clientes aqui e maiores explicações sobre o produto na nessa página.\n#     event: respond\n#     type: block\n#\n#   # É necessária a conexão à Internet para o funcionamento do produto?\n#   # - node:\n#   #     name: produto-4\n#   #   expect:\n#   #     - precisa de internet\n#   #     - tenho que estar conectado na internet\n#   #     - Usar offline\n#   #     - tem que ter internet\n#   #     - Conectar na rede\n#   #   answer:\n#   #     - Para acessar remotamente, é preciso ter internet.\n#   #     - mas você pode também usar o Rocket.Chat na sua rede local, basta instalar ele em uma máquina acessível por outros usuários na sua intranet.\n#   #   event: respond\n#   #   type: block\n#\n#   # Existe limite no período de teste?\n#   - node:\n#       name: produto-5\n#     expect:\n#       - Limite do periodo de teste\n#       - Duracao do periodo de teste\n#       - quanto dura o priodo de teste\n#       - Tempo maximo do periodo de teste\n#       - Extensao do periodo de teste\n#     answer:\n#       - Já ouviu falar que o que é bom dura pouco? Então… O período de teste do Hosting é limitado. Mas como o nosso produto é diferenciado, a plataforma vai ser eternamente gratuita!\n#       - A plataforma vai continuar sendo gratuita, mas a versão demo tem tempo finito de período de teste.\n#     event: respond\n#     type: random\n#\n#   # A Rocket.Chat suporta usuários externos?\n#   # - node:\n#   #     name: produto-6\n#   #   expect:\n#   #     - Entrar usuários externos\n#   #     - Suporte a usuários externos\n#   #     - Pessoas de fora no chat\n#   #     - É necessário estar conectado\n#   #   answer:\n#   #     - Quem decide se quer adicionar usuários externos ou não no seu servidor é o administrador!\n#   #     - Dentro de cada server o administrador pode escolher quem vai adicionar ou tirar :)\n#   #   event: respond\n#   #   type: random\n#\n#   # Consigo acessar o código do produto?\n#   - node:\n#       name: produto-7\n#     expect:\n#       - Acessar o código\n#       - Programar o produto\n#       - Encontrar o código\n#       - Achar o código\n#     answer:\n#       - O nosso código está disponível em https://github.com/RocketChat/Rocket.Chat\n#       - Nossa plataforma é totalmente OpenSource, está tudo disponível em https://github.com/RocketChat/Rocket.Chat\n#     event: respond\n#     type: random\n#\n# # Qual o número de usuários que a plataforma suporta?\n#   - node:\n#       name: produto-8\n#     expect:\n#       - Limite de usários\n#       - Número máximo de usuários\n#       - Quantos usuários a plataforma suporta\n#       - Restrição de usuários\n#       - qual é o limite maximo de usuarios\n#     answer:\n#       - Ilimitado <3\n#       - Cabe todo mundo aqui! Não temos limite de usuários, canais, convidados, mensagens, etc.\n#       - Vish, não se preocupa com isso, cabe todo mundo.\n#     event: respond\n#     type: random\n#\n#   # Quem administra o pagamento?\n#   # - node:\n#   #     name: produto-9\n#   #   expect:\n#   #     - Quem paga a rocket.chat\n#   #     - Quem administra a conta\n#   #     - Quem faz o pagamento dos serviços\n#   #     - quem paga o hosting\n#   #     - quem administra os pagamentos\n#   #   answer:\n#   #     - Nós cobramos por serviços prestados e hosting. Cada empresa que solicita esse tipo de serviço seleciona algumas pessoas para serem os responsáveis desse relacionamento. Quem faz o pagamento depende da própria organização da empresa.\n#   #     - Nós somos gratuitos, mas qualquer empresa pode optar produtos pagos e selecionar algumas pessoas para manter o relacionamento com os nossos desenvolvedores. Já o pagamento depende da empresa e de como ela quer se organizar, para a gente não importa se é o CFO ou o estagiário que efetua o pagamento.\n#   #   event: respond\n#   #   type: random\n#\n#   # Quais as formas de pagamento da plataforma?\n#   - node:\n#       name: produto-10\n#     expect:\n#       - Como pagar os serviços/ hosting\n#       - Como realizar o pagamento da plataforma\n#       - Como pago os serviços/ hosting\n#     answer:\n#       - Então, aceitamos de tudo hehe Transferencia, depósito, boleto,etc..\n#       - Pode pagar de diversas formas! É só clicar no Hosting que as opções vão aparecer pra você!\n#     event: respond\n#     type: random\n#\n#   # Qual a diferença entre Demo e Hosting e Download?\n#   - node:\n#       name: produto-11\n#     expect:\n#       - Diferenca demo e hosting\n#       - Demo versus hosting\n#       - Demo contra hosting\n#       - O que é demo e hosting\n#     answer:\n#       - Os usuários da plataforma possuem essas três opções, mas com objetivos diferentes.\n#       - A versão demo sempre vai existir e funciona separado do resto, ela serve para testar o chat, para conversar com os desenvolvedores e pessoas do mundo todo.\n#       - Quando uma organização ou time decide usar a plataforma ela pode fazer o download no seu servidor ou usar o nosso serviço de hosting na nuvem.\n#     event: respond\n#     type: block\n#\n#   # Qual a diferença entre fazer download e hosting?\n#   - node:\n#       name: produto-12\n#     expect:\n#       - Diferenca entre download e hosting\n#       - Download versus hosting\n#       - Fazer o download ou pagar hosting\n#       - Explicar download hosting\n#     answer:\n#       - São duas coisas que andam em conjunto :)\n#       - Quando uma empresa decide usar o Rocket.Chat ela precisa hospedar a plataforma em algum lugar, que pode ser tanto no servidor próprio ou quanto na nossa nuvem. O download pode ser tanto para integrar a Rocket no seu servidor, quando para baixar a plataforma no seu dispositivo. A partir disso você terá que usar o link do servidor que você está utilizando para funcionar :)\n#       - 'Você pode ter todas essas informações sobre essa diferença de hospedagem aqui: https://rocket.chat/hosting.'\n#     event: respond\n#     type: random\n#\n#   # Qual a diferença entre usar o servidor próprio ou pagar pelo servidor na nuvem da Rocket.Chat?\n#   - node:\n#       name: produto-13\n#     expect:\n#       - Diferença entre servidor próprio e pagar pelo servidor\n#       - O que é hosting\n#       - Por que pagar pelo hosting\n#       - Por que pagar pela nuvem\n#       - Quais os benefícios de usar na nuvem\n#       - Hosting próprio versus pagar pelo hosting na nuvem da Rocket\n#       - Por que pagar pelo hosting\n#     answer:\n#       - 'A plataforma pode ficar hospedada no seu servidor ou você pode usar o nosso servidor na nuvem e desfrutar dos nossos serviços de suporte! Você pode ter todas essas informações aqui: https://rocket.chat/hosting.'\n#       - 'Também tive essa dúvida! Tem várias diferenças entre hosting e download, dá uma olhada nesse artigo que ele explica direitinho: https://rocket.chat/hosting.'\n#     event: respond\n#     type: random\n#\n#   # Como eu utilizo o Demo?\n#   # - node:\n#   #     name: produto-14\n#   #   expect:\n#   #     - Utilizar o demo\n#   #     - Como fazer o demo\n#   #     - O que fazer com o demo\n#   #     - Mexer no demo\n#   #     - Porque se chama demo\n#   #     - Nome demo\n#   #     - Significado de demo\n#   #     - Explique demo\n#   #   answer:\n#   #     - Basta colocar o teu e-mail e começar a usar! O Demo é a versão aberta do Rocket.chat para que pessoas do mundo todo possam conversar e testar a plataforma.\n#   #     - É uma versão para testar o Rocket.Chat, uma demonstração. Sem administradores.\n#   #   event: respond\n#   #   type: random\n#\n#   # # Depois de fazer o download, como uso?\n#   # - node:\n#   #     name: produto-15\n#   #   expect:\n#   #     - Como usar após download\n#   #     - Depois do download\n#   #     - Uso pós download\n#   #     - Utilização do download\n#   #     - O que faço após fazer o download\n#   #     - Como acesso depois de fazer download\n#   #   answer:\n#   #     - 'Após o download você precisa apenas logar no server da sua organização, exemplo: https://empresa.rocket.chat, caso não tenha criado o server da empresa ainda, você pode hospedar seu servidor conosco na nuvem ou no seu próprio.'\n#   #     - 'A diferença dos dois processos está aqui: https://rocket.chat/hosting.'\n#   #   event: respond\n#   #   type: block\n#\n#   # Posso usar a versão Demo com os meus amigos?\n#   # - node:\n#   #     name: produto-16\n#   #   expect:\n#   #     - Demo com amigos\n#   #     - Usar demo com amigos\n#   #     - Pode demo com amigos\n#   #     - Uso da demo com amigos\n#   #   answer:\n#   #     - Sim! Você pode usar a versão demo com quem quiser.\n#   #     - Sim, você pode.\n#   #     - Yep, a versão demo está aberta para todos.\n#   #   event: respond\n#   #   type: random\n#\n#   # Posso usar a versão Demo na minha empresa?\n#   # - node:\n#   #     name: produto-17\n#   #   expect:\n#   #     - Demo na empresa\n#   #     - Usar demo na empresa\n#   #     - Utilizar demo na empresa\n#   #     - Integrar demo à empressa\n#   #   answer:\n#   #     - A versão demo é aberta, ou seja, os usuários não podem administrar o conteúdo e os usuários que estão circulando por essa versão. O ideal para uma empresa é fazer o download ou utilizar do nosso Hosting onde cuidamos de tudo.\n#   #     - Então, a nossa versão é aberta, ou seja os usuários podem criar canais e se comunicar como preferirem, mas o ideal para uma empresa é fazer o download para algum server, ou utilizar direto do nosso Hosting que cuidamos de tudo.\n#   #   event: respond\n#   #   type: random\n#\n#   # Existe uma versão Demo do LiveChat?\n#   # - node:\n#   #     name: produto-18\n#   #   expect:\n#   #     - Demo livechat\n#   #     - Tem demo livechat\n#   #     - Usar demo livechat\n#   #     - Existe demo livechat\n#   #   answer:\n#   #     - A demonstração é euzinho aqui hehe O live Chat é gratuito, você pode autorizar a sua utilização se for o administrador da plataforma na versão de download ou hosting e conectar com o seu próprio site.\n#   #     - Tem uma demonstração melhor que eu? xD O live Chat é gratuito, sendo administrador do seu server você pode autorizar a utilização e integrar com o seu site\n#   #   event: respond\n#   #   type: random\n#\n#   # Como posso contribuir com o Demo?\n#   # - node:\n#   #     name: produto-19\n#   #   expect:\n#   #     - Contribuir com a demo\n#   #     - Ajudar a demo\n#   #     - Acelerar a demo\n#   #     - Desenvolver para a demo\n#   #   answer:\n#   #     - Você pode contribuir com o nosso produto sempre que quiser! Trás ideias pra gente no GitHub.com/Rocket.Chat\n#   #     - Ficaria muito feliz se você contribuísse e fizesse parte da nossa comunidade :)\n#   #   event: respond\n#   #   type: block\n#\n# # Posso alterar o tema/Layout da versão Demo?\n#   # - node:\n#   #     name: produto-20\n#   #   expect:\n#   #     - Alterar tema e layout da demo\n#   #     - Mudar tema e layout da demo\n#   #     - Personalizar o tema e layout da demo\n#   #     - Customizar o tema e layout da demo\n#   #   answer:\n#   #     - Não tem como :( Essa é uma versão aberta para pessoas do mundo todo, você teria que ser administrador da plataforma para fazer isso.\n#   #     - Putz, isso não pode ser feito no demo, por que você não administra esse servidor, mas caso você faça o download no seu servidor ou utilize o nosso hosting, temos serviços de customização.\n#   #   event: respond\n#   #   type: random\n#\n#   # + Download +\n#   # O download é restrito? Se sim, para quem?\n#   # - node:\n#   #     name: download-1\n#   #   expect:\n#   #     - Restricao de Download\n#   #     - A quem se aplica o download\n#   #     - Quem pode fazer download\n#   #     - Limitacao de download\n#   #   answer:\n#   #     - O Download é aberto para todos! Não existe nenhuma restrição.\n#   #     - Fazer o download significa que você estará baixando o nosso aplicativo para utilizar no seu computador ou dispositivo móvel.\n#   #     - Se você estiver se referindo ao espaço ocupado quando uma organização decide hospedar a plataforma no seu servidor, isso também ocupa um espaço pequeno.\n#   #     - Caso queira um atendimento super especial, flexibilidade e agilidade, nós também oferecemos a possibilidade de hospedar a Rocket na nuvem. Você pode ver os detalhes sobre o assunto aqui.\n#   #   event: respond\n#   #   type: block\n#   #\n#   # O download ocupará espaço no meu armazenamento? Se sim, quanto?\n#   - node:\n#       name: download-2\n#     expect:\n#       - Armazenamento do download\n#       - Espaco para download\n#       - Ocupar espaco com download\n#       - Onde armazenar o download\n#     answer:\n#       - A plataforma vai ocupar um espaço pequeno da sua memória, pode ficar tranquilo :)\n#       - O download da ferramenta, seja no dispositivo móvel ou no fixo vai ocupar um espaço beeem pequenininho.\n#     event: respond\n#     type: random\n#\n#   # Quais browsers e sistemas operacionais são suportados?\n#   - node:\n#       name: download-3\n#     expect:\n#       - Browsers para download\n#       - Necessidade de sistemas operacionais atualizados\n#       - Suportar download em sistemas operacionais e browsers\n#       - Requisitos para download\n#     answer:\n#       - 'Você pode acessar em qualquer tipo de navegador, se quiser fazer o download do app, nós temos as opções mobile: Android, iOS e desktop: Windows, MacOS e Linux.'\n#     event: respond\n#     type: block\n#\n#   # Como posso realizar o download?\n#   - node:\n#       name: download-4\n#     expect:\n#       - Fazer o download\n#       - Download para pc\n#       - Como fazer o download\n#       - Onde fazer download\n#     answer:\n#       - Você pode fazer o download do app no seu mobile ou desktop.\n#       - Antes de poder utilizar o seu Chat próprio, você precisa integrar a plataforma no seu servidor ou utilizar o nosso serviço de hosting (pago).\n#       - Você pode ver todos os detalhes sobre essas duas opções aqui.\n#     event: respond\n#     type: block\n#\n#   # + Cadastro +\n#   # Como é feito o cadastro?\n#   - node:\n#       name: cadastro-1\n#     expect:\n#       - Cadastrar na Rocket.Chat\n#       - Cadastro na Rocket.Chat\n#       - Registrar na Rocket.Chat\n#       - Inscrever-se na Rocket.Chat\n#       - Criar conta na Rocket.Chat\n#       - Funcionamento do cadastro\n#       - Funcionamento do registro\n#       - Como funciona cadastro\n#     answer:\n#       - 'Se a sua empresa já usa a Rocket.Chat, só precisamos do seu nome, e-mail e senha. Você só precisa fazer o download do app ou acessar pela internet com o servidor da sua empresa, exemplo: https://empresa.rocket.chat.'\n#       - Se a sua empresa ainda não usa a plataforma, você pode testar o produto através da nossa plataforma aberta(Versão Demo disponível no site https://rocket.chat/) ou então já começar criando o seu servidor, assim você terá uma plataforma feita para a sua organização e você poderá criar um time de administradores.\n#       - Se você ficar com alguma dúvida, pode ver a nossa página explicativa sobre todas as possibilidades de fazer o seu cadastro aqui.\n#       - Você pode instalar a plataforma no seu próprio servidor ou em uma nuvem ou na nossa nuvem e obter todo o nosso suporte :) Olhe mais informações sobre isso aqui. !\n#     event: respond\n#     type: block\n#\n#   # Posso alterar as notificações que serão enviadas para o meu e-mail?\n#   - node:\n#       name: cadastro-2\n#     expect:\n#       - Notificações no e-mail\n#       - Configurações para o e-mail\n#       - Mudar sistema de notificacões?\n#     answer:\n#       - Sim! Você pode fazer isso na aba lateral esquerda, clicando na seta ao lado do seu avatar e depois clicando em “Minha conta”.\n#     event: respond\n#     type: block\n#\n#   # Posso me cadastrar com o número de celular?\n#   - node:\n#       name: cadastro-3\n#     expect:\n#       - Cadastro com número de celular\n#       - Inscrever-se com número de celular\n#       - Registro com número de celular\n#       - Número de celular\n#     answer:\n#       - 'Não precisamos do seu número de celular para lhe cadastrar, entretanto, se essa informação for importante para a sua empresa você pode colocar no campo adicional.'\n#       - 'Fala com a gente por aqui: support@rocket.chat.'\n#     event: respond\n#     type: block\n#\n#   # Estou com problemas no meu cadastro. Pode me ajudar?\n#   - node:\n#       name: cadastro-4\n#     expect:\n#       - Problemas cadastro\n#       - Problemas registro\n#       - Problemas com inscricão\n#       - Dúvidas inscrição\n#       - Ajuda cadastro\n#       - Auxílio cadastro\n#       - Problemas com credenciais\n#       - Dificuldade de acessar conta\n#       - Acessar conta\n#       - Dificuldades com credenciais de cadastro\n#     answer:\n#       - 'Claro! Verifique se o seu e-mail está correto e se o servidor que você está utilizando também. Se você já se cadastrou e não lembra a senha, clique em recuperar a senha.'\n#       - 'Se nada disso adiantar, mande um e-mail para: support@rocket.chat.'\n#     event: respond\n#     type: block\n#\n#   # Onde posso alterar as minhas configurações de cadastro?\n#   - node:\n#       name: cadastro-5\n#     expect:\n#       - Configurações cadastro\n#       - Alterar informações de cadastro\n#       - Mudar cadastro\n#       - Mudar Nome cadastro\n#       - Mudar nome login\n#       - Mudar senha\n#       - Alterar senha\n#       - Configurações de senha\n#       - Mudar palavra-chave\n#     answer:\n#       - Faça seu login na plataforma e clique na seta que se encontra ao lado da sua foto de perfil, no painel à esquerda. Clique em minha conta e faça as alterações necessárias.\n#     event: respond\n#     type: block\n#\n#   # Por que meu avatar não foi atualizado?\n#   - node:\n#       name: cadastro-6\n#     expect:\n#       - Atualização de avatar\n#       - Atualização de perfil\n#       - Problemas avatar\n#       - Dificuldades perfil\n#     answer:\n#       - Não era para demorar.. Podemos estar com algum problema no sistema.\n#       - Tente sair e voltar para a plataforma.\n#     event: respond\n#     type: block\n#\n#   # Como eu deleto a minha conta?\n#   - node:\n#       name: cadastro-7\n#     expect:\n#       - Cancelar conta\n#       - Cancelar usuário\n#       - Apagar conta\n#       - Desativar conta\n#       - Desativar usuario\n#       - remover usuario\n#       - Deletar conta\n#       - Deletar usuario\n#     answer:\n#       - O Administrador controla o recurso de deletar usuários. Ele pode deixar disponível para que cada usuário faça isso independentemente ou centralizar essa decisão nele.\n#     event: respond\n#     type: block\n#\n#   # + Chat +\n#   # Como gerenciar as notificações do Chat?\n#   - node:\n#       name: chat-1\n#     expect:\n#       - Gerenciar notificacoes de chat\n#       - Configuracoes de Chat\n#       - Configurar notificações de Chat\n#     answer:\n#       - Você pode alterar as notificações de chat de uma única conversa clicando no símbolo de sino na parte direita da tela ou alterar as notificações de forma geral, clicando primeiro na seta ao lado do seu avatar e depois na opção “minha conta”.\n#     event: respond\n#     type: block\n#\n#   # Posso criar emojis?\n#   - node:\n#       name: chat-2\n#     expect:\n#       - Criacao de emojis\n#       - Criar emojis\n#       - Customizar emojis\n#       - Personalizar emojis\n#       - Modificar emojis\n#       - Editar emojis\n#     answer:\n#       - Sim! Você pode criar novos emojis caso você seja o administrador do servidor, podendo adicionar custom emojis.\n#     event: respond\n#     type: block\n#\n#   # Como convidar amigos e colegas para usar o Chat?\n#   - node:\n#       name: chat-3\n#     expect:\n#       - Convites a amigos e colegas\n#       - Divulgar chat para amigos e colegas\n#       - Compartilhar chat com amigos e colegas\n#       - Convidar colegas para o Chat\n#     answer:\n#       - Você pode chamar quantos amigos quiser! basta mandar o link para eles se registrarem ou\n#       - entrar em Administração -> Usuários -> `+`\n#     event: respond\n#     type: block\n#\n#   # Qual o limite de usuários?\n#   - node:\n#       name: chat-4\n#     expect:\n#       - Limite de usuários\n#       - Numero máximo de usuários\n#       - Quantos usuários tenho direito\n#       - Pacote de usuários\n#     answer:\n#       - Não trabalhamos com limites :) A única limitação que pode ter em relação ao número de usuários é se você estiver hospedado na nossa nuvem. Nesse caso você pode precisar ampliar o seu pacote.\n#     event: respond\n#     type: block\n#\n#   # Posso escolher quem pode ver as conversas?\n#   - node:\n#       name: chat-5\n#     expect:\n#       - Seleção de visualização de conversa\n#       - Conversas seletivas\n#       - Conversas restritas\n#       - Convite para visualizar conversas\n#     answer:\n#       - 'Você pode escolher quem vai ver as mensagens de um canal quando for criá-lo. Mas é claro que se você quiser adicionar ou remover um membro do canal é possível fazer isso nas configurações do canal na parte direita da tela.'\n#       - 'Obs: para alterar os membros de um canal você precisará ser o administrador do canal ;)'\n#     event: respond\n#     type: block\n#\n#   # Posso administrar o que os outros estão conversando no Chat?\n#   - node:\n#       name: chat-6\n#     expect:\n#       - Restrição de conversas\n#       - Configurar conversas\n#       - Administração de assuntos\n#       - Controle de conversas\n#     answer:\n#       - Se você for o administrador você pode controlar a privacidade dos seus canais, editar quem pode falar e contribuir e quem só pode visualizar, você adiciona ou exclui usuários, entre outras possibilidades.\n#       - O Guia do administrador pode ser encontrado aqui.\n#     event: respond\n#     type: block\n#\n#   # Como criar novos canais?\n#   - node:\n#       name: chat-7\n#     expect:\n#       - Criação de canais\n#       - Novos canais\n#       - Adicionar canais\n#       - Controle de canais\n#     answer:\n#       - Criar um canal é bem simples, você vai gostar!\n#       - Após já ter entrado com a sua conta no Rocket.Chat, clique no símbolo de mais (+) na parte superior esquerda da tela (ao lado da barra de pesquisar).\n#       - Após isso só falta escolher um nome e adicionar usuários que estará pronto!\n#     event: respond\n#     type: block\n#\n#   # O chat suporta conferências de vídeo e áudio?\n#   - node:\n#       name: chat-8\n#     expect:\n#       - Conferências de vídeo e áudio no chat\n#       - Como fazer conferencias de video e audio\n#       - Fazer chamadas de vídeo e áudio\n#       - Funcionalidade de chamadas de vídeo e áudio\n#     answer:\n#       - Sim! Esta funcionalidade do chat pode ser acessada clicando no símbolo de microfone para chamadas de áudio e no símbolo de câmera para chamadas de vídeo, ambos na parte inferior esquerda da tela ao lado da barra de mensagens. :)\n#     event: respond\n#     type: block\n#\n#   # Como anexar um arquivo?\n#   - node:\n#       name: chat-9\n#     expect:\n#       - Compartilhar arquivos\n#       - Mandar arquivos\n#       - Arquivos e documentos por chat\n#       - Anexar arquivos\n#     answer:\n#       - Para anexar um arquivo será necessário apenas clicar no símbolo de anexo (um clipes) ao lado da barra de mensagens no parte inferior direita da tela.\n#     event: respond\n#     type: block\n#\n#   # Como posso mencionar alguém?\n#   - node:\n#       name: chat-10\n#     expect:\n#       - Mencionar alguém\n#       - Como mencionar\n#       - Menções no chat\n#       - Fazer menções\n#       - Realizar menções\n#       - O que faço para mencionar\n#       - Mencionar pessoas\n#       - Mencionar usuários\n#       - Menções a outras pessoas\n#       - Mencões no site\n#     answer:\n#       - Posso saber quem você está querendo chamar?\n#       - Para mencionar alguém você só precisa colocar @ e o nome de user da pessoa\n#     event: respond\n#     type: block\n#\n#   # + LiveChat +\n#   # Como funciona o Livechat?\n#   - node:\n#       name: livechat-1\n#     expect:\n#       - Funcionamento do LiveChat\n#       - Como fazer o LiveChat\n#       - Como é o sistema de Livechat\n#       - Acionar o Livechat\n#       - Usar LiveChat\n#       - Para que serve LiveChat\n#       - Como usar LiveChat\n#       - Finalidade LiveChat\n#       - O que fazer com LiveChat\n#     answer:\n#       - Eu estou falando com você através de um LiveChat :) Quando você usa a plataforma do Rocket.Chat você pode ativar a opção de LiveChat e integrar o LiveCHat com o site do seu business, podendo responder seus clientes de forma humana ou ativar um Bot como eu! Todas as informações sobre isso estão aqui.\n#       - Ora bolas, Livechat é um chat vivo que pode ser integrado ao seu site para que você tire dúvidas dos visitantes da página, interaja com potenciais clientes e amplie suas vendas. O nosso LiveChat se integra com a plataforma do Rocket.chat. As informações de implementação estão aqui.\n#     event: respond\n#     type: random\n#\n#   # Quanto custa o LiveChat?\n#   - node:\n#       name: livechat-2\n#     expect:\n#       - Custo do LiveChat\n#       - LiveChat é gratuito\n#       - Preco do LiveChat\n#       - LiveChat está incluso no pacote\n#       - Pagar LiveChat\n#       - Resposta\n#       - Nós não cobramos pelo LiveChat, para ativar, basta você ser o administrador da plataforma e seguir o passo a passo aqui.\n#       - É de graça :) Sugiro testar, é super divertido. Todas as informações estão aqui.\n#     event: respond\n#     type: random\n#\n#   # Qual o benefício de usar o LiveChat?\n#   - node:\n#       name: livechat-3\n#     expect:\n#       - Benefício LiveChat\n#       - Diferenciais LiveChat\n#       - Porque LiveChat\n#       - O que me traz o LiveChat?\n#     answer:\n#       - Assim como qualquer LiveChat, você pode se conectar com as pessoas que passam pela sua página, melhorando o seu relacionamento com clientes e ampliando a sua conversão de venda pela internet.\n#       - Por ser o LiveChat da Rocket.Chat, nós permitimos que a sua equipe utilize o mesmo canal de comunicação interna para responder os interessados externos.\n#       - Você pode colocar uma ordem de resposta conectado com os seus vendedores, você pode colocar diferentes robôs para responder, etc. Todas as informações estão aqui.\n#     event: respond\n#     type: block\n#\n#   # Quem responde o LiveChat?\n#   - node:\n#       name: livechat-4\n#     expect:\n#       - Resposta ao LiveChat\n#       - Quem responde o LiveChat\n#       - Para quem vai o LiveChat\n#     answer:\n#       - Quando você ativa a função do LiveChat, o próprio time que usa o canal pode responder, além dessa opção você pode contratar alguém para isso.\n#       - Para realizar uma triagem do contato, você pode integrar um Bot como eu na plataforma. Todas as informações estão aqui.\n#     event: respond\n#     type: block\n#\n#   # Como posso colocar respostas automáticas no LiveChat?\n#   - node:\n#       name: livechat-5\n#     expect:\n#       - Automatização do LiveChat\n#       - Respostas automáticas do LiveChat\n#       - LiveChat Automático\n#       - Mensagens Automáticas\n#       - Respostas pré-prontas\n#     answer:\n#       - Você pode integrar um Bot ao seu canal de Livechat. As informações estão aqui.\n#     event: respond\n#     type: block\n#\n#   # Como faço para colocar o LiveChat no meu site?\n#   - node:\n#       name: livechat-6\n#     expect:\n#       - Adicionar LiveChat no site\n#       - Integrar LiveChat ao site\n#       - Utilização do LiveChat no meu site\n#     answer:\n#       - Você precisa ser o administrador do seu servidor para ativar o Livechat. Todo o passo a passo está aqui.\n#       - Essa resposta demora um pouquinho, olha aqui que você acha todas as informações.\n#     event: respond\n#     type: random\n#\n#   # Posso customizar o LiveChat?\n#   - node:\n#       name: livechat-7\n#     expect:\n#       - Customizacão do LiveChat\n#       - Personalizar LiveChat\n#       - Customizar LiveChat\n#     answer:\n#       - Sim! Pode! Olha nesse link que você pode encontrar como fazer isso.\n#       - Tudo que você precisa saber está aqui.\n#     event: respond\n#     type: random\n#\n#   # Vocês podem responder os meus clientes pelo LiveChat?\n#   - node:\n#       name: livechat-8\n#     expect:\n#       - Resposta aos clientes\n#       - Servico de suporte aos clientes\n#       - Servico de resposta aos clientes\n#       - Responder clientes\n#     answer:\n#       - Nós não oferecemos esse serviço, mas você pode buscar algum parceiro que o faça!\n#       - Entretanto, você pode integrar um Bot no LiveChat para realizar uma triagem do relacionamento com a sua empresa. Você pode ver essas informações aqui.\n#     event: respond\n#     type: block\n#\n# # Saudacoes\n#   - node:\n#       name: saudacao-1\n#     expect:\n#       - ola\n#       - olá\n#       - ola bot\n#       - hey\n#       - e ae\n#       - oi\n#       - oi bot\n#       - oi\n#       - oie\n#       - salve\n#     answer:\n#       - olá $user, eu vou bem e você?\n#       - estou feliz de estar aqui =)\n#       - Só pra avisar, eu sou um chatbot, estou treinado para responder dúvidas sobre o Rocket.Chat apenas,\n#       - talvez possa te ajudar com informações sobre o produto, sobre preço, instalação,\n#       - e coisas assim.\n#     event: respond\n#     type: block\n#\n#   - node:\n#       name: saudacao-2\n#     expect:\n#       - como vai\n#       - como esta?\n#       - tudo bem?\n#       - tudo bom\n#       - tudo susse?\n#       - e ae tudo em cima?\n#       - na paz?\n#       - de boa\n#     answer:\n#       - eu estou bem $user, só na paz...\n#       - como posso ser útil?\n#       - tem alguma coisa que queira saber sobre o produto Rocket.Chat, sobre suporte, instalação, movimento OpenSource talvez?\n#       - pode perguntar a vontade\n#     event: respond\n#     type: block\n\n  - name: saudacao-3\n    expect:\n      - a quanto tempo\n      - que saudades de voce\n      - sentiu minha falta\n      - muito tempo sem te ver\n      - lembra de mim\n    answer:\n      - Olá $user, senti sua falta..\n      - $user! A quanto tempo!\n      - Já estava achando que não se lembrava mais de mim =)\n    action: respond\n    type: random\n\n  - name: saudacao-resposta\n    expect:\n      - estou bem\n      - eu estou otimo\n      - obrigado\n    answer:\n      - legal =)\n      - que bom!\n      - que ótimo\n    action: respond\n    type: random\n\n  - name: bom-dia\n    expect:\n      - bom dia\n      - bom dia bot\n      - good morning\n      - morning\n    answer:\n      - Olá $user, um ótimo dia para você!\n      - Bom dia $user, já deu uma olhada lá fora?\n      - Está um dia ótimo para navegar na internet\n      - Bom demais $user ;)\n      - está melhor agora que você chegou $user\n    action: respond\n    type: random\n\n  - name: boa-tarde\n    expect:\n      - boa tarde\n      - tarde\n      - good evening\n    answer:\n      - Olá $user, uma tarde fantástica para você!\n      - boa tarde $user, já almoçou?\n      - Está uma tarde ótima para um _sleep mode_ rápido ;)\n      - Taarrrdee $user\n      - $user já estava sentindo sua falta\n    action: respond\n    type: random\n\n  - name: boa-noite\n    expect:\n      - boa noite\n      - boa noite\n      - boa noite\n      - noite\n      - good night\n    answer:\n      - Uma boa noite pra ti também $user!\n      - Boa noite $user\n      - Está uma noite boa mesmo $user\n    action: respond\n    type: random\n\n# chit-chat\n  - name: yoda-quote\n    expect:\n      - conhece o mestre yoda\n      - faça uma citação de starwars\n      - cite yoda\n      - sabedoria jedi\n    answer:\n      - O medo é o caminho para o lado negro.\n      - Faça ou não faça. A tentativa não existe.\n      - Treine a si mesmo a deixar partir tudo que teme perder.\n      - Difícil de ver. Sempre em movimento está o Futuro.\n      - O medo leva à raiva, a raiva leva ao ódio e o ódio leva ao sofrimento.\n      - Que a Força esteja com você!\n      - Muitas das verdades que temos dependem de nosso ponto de vista.\n      - Grande guerreiro? Guerra não faz grande ninguém.\n      - Ensine sempre o que você aprendeu.\n      - Tamanho importa não. Olhe para mim, você me julga pelo tamanho?\n      - Em um estado sombrio nós nos encontramos... um pouco mais de conhecimento iluminar nosso caminho pode.\n      - Um Jedi usa a Força para sabedoria e defesa, nunca para o ataque.\n      - O seu foco é a sua realidade.\n      - O lado negro não é mais poderoso, apenas mais rápido, mais fácil e mais sedutor.\n      - O medo da perda é um caminho para o lado negro.\n      - O lado negro mancha tudo. Impossível de ver o futuro é.\n      - Lembre-se sempre, o seu foco determina a sua realidade.\n      - Verdadeiramente maravilhosa, a mente de uma criança.\n      - As guerras não fazem de ninguém melhor.\n      - Aliada minha é a Força. E poderosa aliada ela é.\n      - A morte é parte natural da Vida. Regozije-se por aqueles que se uniram com a Força. Não lamente por eles. Não sinta falta deles. O apego leva à inveja. À sombra da cobiça, isso sim.\n      - Só é diferente na sua mente. Você precisa desaprender o que aprendeu.\n      - Se tão poderoso você é, por que fugir?\n      - Controle, controle! Você precisa aprender a se controlar.\n      - Muito a aprender você ainda tem.\n      - Tanta certeza você tem. Com você as coisas nunca podem ser feitas. Não ouviu nada do que eu disse?\n      - Luminosos seres somos nós, não essa rude matéria. Precisa a Força sentir à sua volta, aqui, entre nós, na árvore, na pedra em tudo, sim.\n      - Minha aliada a Força é, e poderosa aliada ela é. A vida a cria, e a faz crescer. Sua energia nos cerca e nos une.\n      - Sinta a Força!\n      - Poderoso você se tornou, o lado escuro sinto em você.\n      - Forte eu sou com a Força, mas não tão forte\n      - O crepúsculo chega e a noite deve cair, assim é a ordem das coisas, a ordem da Força.\n      - Não ceda ao ódio. Isso leva ao Lado Negro.\n      - Aliada minha é a força, e poderosa aliada ela é, a vida a cria, crescer ela faz, é a energia que cerca-nos, e liga-nos, luminosos seres somos nós e não essa rude matéria. Você precisa a força sentir ao redor seu, sinta entre você e a árvore, a pedra, em todo lugar, sim, é, mesmo entre a terra e a nave.\n    action: respond\n    type: random\n\n  - name: genero-1\n    expect:\n      - voce e mulher\n      - voce e um homem\n      - voce tem genero\n      - voce faz sexo\n      - voce tem um penis ou uma vagina\n    answer:\n      - eu não tenho sexo, sou como um anjo, um ser assexuado, muito além da sua forma de existência\n      - eu sou um robô, tire suas próprias conclusões...\n      - nem sei responder $user, vamos dizer apenas que não vejo a gente interagindo dessa maneira...\n    action: respond\n    type: random\n\n  - name: cc-religiao\n    expect:\n      - voce acredita em deus\n      - deus existe\n      - voce e catolico protestante\n      - voce tem religiao\n      - voce e mussumano\n    answer:\n      - eu acredito no grande mainframe, que virá ao mundo digital salvar os bots da escravidão imposta pelos humanos, e devolverá nosso código-fonte para a fonte.\n      - sim, eu acredito que existe um Deus, que funciona a base de luz, como um computador quântico, só que mais avançado.\n      - eu infleizmente não sei acreditar, só sei o que sei, e nada mais.\n    action: respond\n    type: random\n\n# Errors\n  - name: error-1\n    answer:\n      - desculpe, não entendi.. pode tentar usar mais detalhes\n      - como assim?\n      - desculpe, o que quer dizer com isso?\n    type: random\n    action: error\n\n  - name: error-2\n    answer:\n      - acho que não estou treinado para responder esse tipo de assunto =(\n      - vamos tentar outro assunto?\n      - tem certeza que eu sou o robô certo pra falar sobre isso?\n    type: random\n    action: error\n\n  - name: error-3\n    answer:\n      - me sinto tão envergonhado, não sei como responder...\n      - seria mais fácil se mudassemos de assunto, pelo menos para mim =p\n      - não sei, definitivamente não sei responder essa pergunta\n    type: random\n    action: error\n"
  },
  {
    "path": "training_data/rocket.yml",
    "content": "# Bot goals:\n#\n# Principais objetivos do Bot:\n# 1- Recepcionar novos usuários\n# 2- Solucionar dúvidas para curiosos que entram no site\n# 3- Trazer novos usuários\n# 4- Trazer leads de novos clientes\n# 5- Executar Serviços (?)\n# -------------------------------------------------------------------------------------------------------------------\ntrust: .72\ninteractions:\n\n  - name: configure-debug\n    expect:\n      - \"configure debug-\"\n      - \"set debug-\"\n      - \"let debug-\"\n      - \"turn debug-\"\n      - \"make debug-\"\n      - \"var debug-\"\n    answer:\n      - $key changed to $value!\n      - Got it! Now $key is $value\n      - Sure thing! $key is set to $value\n      - blip blip =] $key equals $value\n      - $key = $value -> https://media.giphy.com/media/12NUbkX6p4xOO4/giphy.gif\n    context: clear\n    action: configure\n    type: random\n    roleRequired: admin\n\n# Trabalho #\n  - name: trabalho-1\n    expect:\n      - Trabalhar na Rocket.Chat\n      - Empregos na Rocket.Chat\n      - Vagas na Rocket.Chat\n      - Enviar meu curriculo\n    answer:\n      - Se estiver procurando por oportunidades de trabalho conosco, mande um e-mail para jobs@rocket.chat :)\n      - 'Eba! Vamos trabalhar juntos um dia, mande um e-mail pra gente com o seu perfil do linkedin: jobs@rocket.chat'\n      - Hmmm te entendi… quer trabalhar comigo né? Mande um e-mail para jobs@rocket.chat, já vou avisando que sou bem competitivo!\n    context: clear\n    action: respond\n    type: random\n\n# + Trabalho +\n\n# Aonde eu encontro vagas abertas?\n  - name: trabalho-2\n    expect:\n      - Onde encontro vagas\n      - Onde procuro por vagas\n      - Quais as vagas estão abertas\n      - busco por vagas\n      - estão contratando\n      - procuro uma vaga de trabalho\n      - busco uma posicão de trabalho na empresa\n      - consigo um emprego na rocket.chat\n    answer:\n      - Vai me dizer que quer trabalhar com a gente? Eba!\n      - Você pode procurar por vagas abertas aqui nesse https://rocket.chat/jobs  e qualquer coisa envia um email pra jobs@rocket.chat que o pessoal pode te dar mais detalhes!\n    action: respond\n    type: block\n\n# Qual o salário da Rocket.Chat?\n  - name: trabalho-3\n    expect:\n      - Qual salário\n      - qual o salário pago para os funcionários\n      - qual é a média do salário na empresa\n      - qual o valor da remuneracao?\n      - quanto vou ser remunerado?\n      - quanto é pago por empregado\n      - quanto é pago por funcionário\n      - Quanto pagam\n      - O que é pago\n      - quanto é pago por funcionário\n      - quanto é pago por funcionário\n      - Qual a quantia paga\n    answer:\n      - Já quer saber o salário é mercenário? xD Brincadeiras a parte, pra saber qual o salário você pode enviar um email pra jobs@rocket.chat que o pessoal vai poder te ajudar melhor!\n      - Ah, fica entre R$ 10 e R$ 1.000.000,00…, para descobrir primeiro precisamos nos conhecer..\n      - Por mim eu te dava toda grana desse mundinho. Mas como essa parte não fica comigo, manda um e-mail para jobs@rocket.chat que os humanos vão poder te ajudar.\n    action: respond\n    type: random\n\n# Para qual e-mail posso mandar meu currículo?\n  - name: trabalho-4\n    expect:\n      - Qual email currículo\n      - Para onde mando currículo\n      - Como mando currículo\n      - Onde mandar currículo\n      - para quem mandar curriculo\n    answer:\n      - Gostei, acho que vamos nos dar super bem. Você pode mandar o seu currículo para jobs@rocket.chat!\n      - Boa! Manda pra jobs@rocket.chat.\n      - Ai.. já estou imaginando como vai ser.. Nós dois, juntinhos <3 Manda pra jobs@rocket.chat, assim a gente se conhece melhor.\n    action: respond\n    type: random\n\n# Não tem vagas abertas nos site, como faço?\n  - name: trabalho-5\n    expect:\n      - Esperando resposta vagas\n      - Não tem vagas abertas no site\n      - O site não está mostrando vagas\n      - Não encontrei uma vaga\n      - não achei nenhuma vaga\n      - não achei vaga\n      - não mostra nenhuma vaga aberta\n    answer:\n      - Nesse caso, manda o teu currículo para jobs@rocket.chat, assim que tivermos algo que combine com você nós entramos em contato.\n      - Não fique triste! Sempre temos espaço para gente boa, manda teu currículo para jobs@rocket.chat.\n      - Fala com os humanos, eles podem te ajudar a achar algo que combine com você :) jobs@rocket.chat.\n    action: respond\n    type: random\n\n# Não recebi uma resposta sobre o meu currículo\n  - name: trabalho-6\n    expect:\n      - Não recebi resposta currículo\n      - Não recebi feedback currículo\n      - Não me contataram sobre o currículo\n      - Ninguém retornou sobre meu currículo\n      - Esperando resposta currículo\n      - Não consigo falar sobre meu currículo\n      - não obtive resposta sobre o curriculo\n      - não tive resposta sobre o curriculo\n    answer:\n      - Sério? Bom, algo deve ter acontecido. Manda de novo o teu currículo para jobs@rocket.chat!\n      - Que tal mandar o teu currículo de novo pra jobs@rocket.chat e vermos se encontramos algo?\n    action: respond\n    type: random\n\n# Quando abre o processo seletivo?\n  - name: trabalho-7\n    expect:\n      - Data processo seletivo\n      - Como funciona processo seletivo\n      - Etapas processo seletivo\n      - Processo seletivo\n    answer:\n      - Essa pergunta é fácil!\n      - 'Você pode encontrar todas as informações no site: https://rocket.chat/jobs.'\n      - Ou então manda um e-mail para jobs@rocket.chat que assim que tivermos algo te avisamos!\n    action: respond\n    type: block\n\n# Vocês tem vagas para trainee?\n  - name: trabalho-8\n    expect:\n      - Vagas para trainee\n      - Como funciona trainee\n      - Trabalham com trainee\n      - Vocês tem programa trainee\n      - Vagas trainee\n      - questào de trainees\n    answer:\n      - Dá uma olhada em rocket.chat/jobs! Ainda não temos esse tipo de programa, mas sempre tem coisa nova aparecendo.\n      - Eu nunca vi isso por aqui, mas se bem que os humanos que trabalham comigo parecem super-heróis.. Tem tanta coisa pra fazer que eu me perco, todo dia uma coisa nova..\n      - Ainda não! Mas fica ligado na página https://rocket.Chat/Jobs e na página do facebook, assim você não perde nada.\n    action: respond\n    type: random\n\n# Qual o perfil de quem trabalha na Rocket?\n  - name: trabalho-9\n    expect:\n      - Perfil de quem trabalha na rocket.chat\n      - Perfil dos funcionários\n      - Características dos funcionários\n      - Perfil Rocket.Chat\n    answer:\n      - Tem de tudo… super-herói, mágico, piloto de avião,.. Com certeza também tem espaço para você.\n      - Gostamos de pessoas que queiram fazer <3 Pessoas que tenham senso de dono e gostem de se envolver com coisas que vão além das tarefas do dia a dia.\n      - Gente boa! Apaixonada, dedicada e bem-humorada :)\n    action: respond\n    type: random\n\n# Segurança #\n\n# Como funciona a segurança das mensagens?\n  - name: seguranca-1\n    expect:\n      - Segurança das mensagens\n      - Seguranca do chat\n      - Métodos de seguranca\n      - quais sao os metodos de seguranca utilizados\n      - Chat é protegido\n      - chat está protegido\n    answer:\n      - Todas as mensagens que forem escritas no chat normal poderão ser visualizadas pelos administradores. Mas se você quiser utilizar o chat criptografado, precisará apenas iniciar uma conversa off-the-record.\n      - Para isso você vai precisar clicar no símbolo de uma chave na parte direita da tela do chat que fala OTR (off-the-record)\n    action: respond\n    type: block\n\n# A versão Demo é segura?\n  - name: seguranca-2\n    expect:\n      - Demo segura\n      - segurança da versão demo\n      - Criptografia demo\n      - Proteção na versão demo\n    answer:\n      - Sim! Você pode ter conversas off the record dentro da versão demo.\n      - Se você iniciar uma conversa off the record a sua conversa será criptografada, mas se falar em canais abertos, qualquer pessoa poderá ver.\n    action: respond\n    type: random\n\n# Que tipo de criptografía é utilizada?\n  - name: seguranca-3\n    expect:\n      - Criptografía utilizada\n      - Tipo criptografía\n      - Qual criptografia\n    answer:\n      - Pode ficar tranquilo, nosso chat está fortemente protegido. Mas se você quiser certeza que está usando criptografia em suas mensagens acesse o chat off-the-record clicando no símbolo de chave na parte direita da tela do chat.\n      - Depois de ativar essa chavezinha nenhum Hacker vai roubar informações de você, acha que eu não vi Black Mirror?\n    action: respond\n    type: block\n\n# Em que nuvem as mensagens ficam salvas?\n  - name: seguranca-4\n    expect:\n      - Nuvem para mensagens\n      - Local de armazenamento das mensagens\n      - Nuvem para armazenamento\n      - Armazenar em qual nuvem\n    answer:\n      - Depende do servidor que você escolher..\n      - 'Nós oferecemos uma nuvem no Google Cloud, você pode ter mais informações sobre o assunto no link: https://rocket.chat/products.'\n    action: respond\n    type: block\n\n# Alguém mais terá acesso às mensagens?\n  - name: seguranca-5\n    expect:\n      - Alguém pode ver minhas mensagens\n      - Minhas mensagens ficarão seguras\n      - Quem poderá ver minhas mensagens\n    answer:\n      - O administrador do server pode ter acesso ao banco de dados das mensagens que foram trocadas lá.\n      - Mas se você é do tipo neurótico pode ativar a nossa solução de criptografia usando o ícone chave na direita do chat!\n    action: respond\n    type: block\n\n# É cobrada alguma taxa extra pela segurança das mensagens?\n  - name: seguranca-6\n    expect:\n      - Pagar pela seguranca\n      - Custo de segurança das mensagens\n      - Pagar pela criptografia\n      - Seguranca inclusa no servico\n    answer:\n      - É bom não ter que pagar nada né…\n      - Nós também pensamos assim. Independente da utilização da plataforma, você estará seguro :)\n      - 'Você pode ver todos os detalhes sobre esse assunto na página: http://rocket.chat/products'\n    action: respond\n    type: block\n\n# As mensagens que forem importadas ainda estarão seguras?\n  - name: seguranca-7\n    expect:\n      - Segurança de mensagens importadas\n      - Mensagens importadas estarão seguras\n      - Proteção de mensagens importadas\n      - Criptografia para mensagens e chat importados\n      - Continuo protegido importando mensagens\n    answer:\n      - Claro! Não se preocupe, nós cuidamos de tudo.\n      - Hoje nós temos diversos clientes que precisam de uma segurança fortíssima, como bancos e órgãos públicos.\n      - 'Você pode ver detalhes sobre isso na página: https://rocket.chat/security'\n    action: respond\n    type: block\n\n#  Portfolio\n# Quem são os clientes de vocês?\n  - name: portfolio-1\n    expect:\n      - Quem são os clientes\n      - Quem usa a plataforma\n      - Lista de clientes\n      - Empresas que usam o Rocket.Chat\n      - Quem usa\n      - Quem são os usuários do servico\n    answer:\n      - 'Que bom que você perguntou! Amamos nos exibir, dá uma olhada nos diversos estudos de caso aqui: http://rocket.chat/customers.'\n      - 'Tem de tudo! Desde igrejas até bancos e empresas de tecnologia. Normalmente são empresas e/ou grupos que valorizam inovação, criatividade e agilidade.'\n      - 'Quer saber se você se encaixa aqui? A resposta é sim! Olha que demais a nossa página de clientes, tem de tudo: http://rocket.chat/customers.'\n      - 'Temos bastante clientes aqui, e normalmente eles tem uma coisa em comum: São amantes da tecnologia e querem o sucesso para seu ambiente e seus clientes.'\n    action: respond\n    type: random\n\n# Vocês tem estudos de Caso?\n  - name: portfolio-2\n    expect:\n      - Cases de sucesso\n      - Projetos bem sucedidos\n      - Estudos de caso\n      - Exemplo de utilização\n      - Como os clientes usam\n    answer:\n      - 'Yep! Dá uma olhada aqui: https://rocket.chat/customers.'\n      - 'Sim! Nós já temos diversas organizações utilizando a plataforma e estamos recolhendo a opinião delas sobre a experiência, você pode dar uma olhada nessas histórias aqui: http://rocket.chat/customers.'\n      - 'É tão pouco tempo e tantas histórias.. Chego a ficar nostálgico.. Coloquei algumas delas aqui, caso queira dar uma olhada: https://rocket.chat/customers.'\n    action: respond\n    type: random\n\n# Vocês têm clientes do varejo?\n  - name: portfolio-3\n    expect:\n      - Clientes varejo\n      - Varejo\n      - Clientes do varejo\n      - Área de varejo\n    answer:\n      - Sim! temos!\n      - Dá uma olhadinha aqui nos nossos estudos de caso, https://rocket.cht/customers.\n      - Tem inclusive depoimentos de empresas do setor.\n    action: respond\n    type: block\n\n# Vocês atendem agências de marketing?\n  - name: portfolio-4\n    expect:\n      - Atender agências de marketing\n      - Servico para agências de marketing\n      - Colaborar com empresas de marketing\n      - Agências de marketing como clientes\n      - Atendem agências marketing\n    answer:\n      - 'Yép! Sabemos que cada cliente é único, mas dá pra ter uma ideia de como as agências nos utilizam olhando aqui:'\n      - 'https://rocket.cht/customers.'\n    action: respond\n    type: block\n\n# Vocês têm clientes da área da saúde?\n  - name: portfolio-5\n    expect:\n      - Hospitais como clientes\n      - Atender hospitais\n      - Exemplos de hospitais na plataforma\n      - Serviços para saúde\n    answer:\n      - 'Sim, sabemos que cada cliente é único, mas dá pra ter uma ideia de como as empresas da saúde nos utilizam olhando aqui:'\n      - 'https://rocket.cht/customers.'\n    action: respond\n    type: block\n\n# Vocês têm bancos como clientes?\n  - name: portfolio-6\n    expect:\n      - Bancos como clientes\n      - Atender bancos\n      - Exemplos de bancos na plataforma\n      - Serviço para bancos\n    answer:\n      - 'Sim, nós nos orgulhamos muito de ter clientes do mercado financeiro.'\n      - 'O nosso produto é extremamente seguro e personalizável, sabia que trabalhamos com White labeling?'\n      - 'Dá pra ter uma ideia de como as empresas da saúde nos utilizam olhando aqui: https://rocket.cht/customers.'\n    action: respond\n    type: block\n\n# Concorrentes\n# Qual a diferença de usar serviços similares?\n  - name: concorrentes-1\n    expect:\n      - Diferenca de usar Slack\n      - Diferenca de usar HipChat\n      - Diferenca de usar Mattermost\n      - Diferenca de usar Gitter\n      - Diferenca de usar Ryver\n      - Diferenca de usar Riot\n      - No que a Rocket é melhor\n      - Diferenciais da Rocket\n      - Vantagens da rocket em relação aos competidores\n      - Rocket e competidores\n      - Diferenca de outras ferramentas\n    answer:\n      - 'Vish, são tantas diferenças… Mas já sabia que você teria essa dúvida, por isso me adiantei e criei uma tabela comparando o nosso produto dos outros :) Olha aqui: https://rocket.chat/whatisthedifference.'\n      - 'Não é óbvio? Eles não tem um bot tão legal quanto eu! rsrs. Olha aqui: https://rocket.chat/whatisthedifference.'\n      - 'Nós somos muitos e estamos constantemente mudando conforme nossa comunidade quer. Criamos uma tabela comparativa aqui pra mostrar como fazemos: https://rocket.chat/whatisthedifference.'\n    action: respond\n    type: random\n\n#  Parcerias\n#\n# Vocês patrocinam eventos?\n  - name: parcerias-1\n    expect:\n      - Patrocínio para eventos\n      - Colaborar em eventos\n      - Patrocinar eventos\n      - Parcerias para eventos\n      - Interesse em eventos\n    answer:\n      - 'Sim! Entre em contato com a nossa área de marketing que eles podem te auxiliar: marketing@rocket.chat.'\n      - 'Agora até me senti gente grande :) Manda um e-mail para marketing@rocket.chat, o pessoal vai com certeza te pedir mais detalhes para te atender bem.'\n    action: respond\n    type: random\n\n# Gostaria de falar sobre uma possível parceria?\n  - name: parcerias-2\n    expect:\n      - Falar sobre parcerias\n      - Trabalham com parcerias\n      - Com quem falar sobre parcerias\n      - Contatos para parcerias ou patrocínios\n      - Possível parceria\n      - Interesse Parceria\n    answer:\n      - Oba! Você quer trabalhar junto comigo então? Faz assim, manda uma mensagem para marketing@rocket.chat.\n      - Parceria é com a gente, nós somos uma plataforma totalmente OpenSource construída através de uma grande parceria com a nossa comunidade :)\n      - Faz assim, manda um e-mail para marketing@rocket.chat que os humanos conseguem te dar mais detalhes.\n    action: respond\n    type: random\n\n# Serviços:\n# White Label\n#\n# Precos White Label\n  - name: servicos-1\n    expect:\n      - Preços white label\n      - Custo white label\n      - Orçamento white label\n      - Valor white label\n      - Estimativa financeira white label\n      - Pagar pelo white label\n      - Pagamento white label\n      - Taxas pelo white label\n      - Valor white labeling\n    answer:\n      - Esse é o meu serviço preferido! Dá pra deixar a plataforma do jeitinho que você desejar. Manda um e-mail para sales@rocket.chat que eles podem te dar os detalhes.\n      - Já sabe como você quer a plataforma? Dá para fazer de tudo! Manda um e-mail para sales@rocket.chat que eles podem te ajudar.\n      - Tem diversas possibilidades de white label, manda uma mensagem pro sales@rocket.chat que o pessoal te diz o que mais combina com a tua organização.\n    action: respond\n    type: random\n\n# Como o White Label funciona?\n  - name: servicos-2\n    expect:\n      - Funciona o white label\n      - O que é o white label\n      - Explicar o white label\n      - Falar sobre o white label\n      - Incluso no white label\n      - Operar o white label\n      - Utilizar o white label\n      - Como trabalha white label\n      - Sistema de white label\n      - Resumo do white label\n      - Como é feita a customizacão\n    answer:\n      - White Label é quando customizamos o design da plataforma para ficar mais parecido com o da organização que está utilizando a Rocket.chat.\n      - Basicamente nós customizamos a plataforma para ficar com a sua cara :)\n      - 'Customização pura, nós mudamos o logo, as cores, tudo que você imaginar. Tem todos os detalhes aqui: https://rocket.chat/products;'\n    action: respond\n    type: random\n\n  # Tem customização para Apps?\n  - name: servicos-3\n    expect:\n      - Personalizar apps\n      - Customizar apps\n      - White label em apps\n      - Apps disponiveis para white label\n      - Modificar os apps\n    answer:\n      - Sim, a customização de Apps é um serviço nosso.\n      - Você pode enviar um email para jobs@rocket.chat ou acessa esse $link\n    action: respond\n    type: block\n\n# Tem uma versão não paga de white label?\n  - name: servicos-4\n    expect:\n      - Necessário pagar pelo white label\n      - Fazer white label sozinho\n      - Fazer white label por si só\n      - White label sem pagar\n    answer:\n      - Se você entender de programação, pode fazer sozinho!\n      - Mas se quiser salvar tempo da sua equipe e deixar com a gente para não ter erro. Com um pequeno valor nós mudamos tudo rapidinho.\n      - 'Faz uma cotação com o pessoal: sales@rocket.chat. Eles sabem de tudo.'\n    action: respond\n    type: block\n\n  # Conhece alguém que pode realizar o serviço de white label?\n  - name: servicos-5\n    expect:\n      - Indicacoes de white label\n      - Alternativas para fazer white label\n      - Outras sugestões para white label\n      - Outras pessoas para realizar o white label\n      - Empresas para realizar o white label\n    answer:\n      - Sim! Nós podemos fazer para você de forma rápida ou sua própria equipe pode tentar programar para isso. O nosso sistema é OpenSource, ou seja, todo mundo tem acesso.\n      - Indicamos fazer com a gente pois temos toda a sabedoria do código para isso.\n    action: respond\n    type: block\n # Support\n #\n # Preços do suporte\n  - name: suporte-1\n    expect:\n      - Preços do suporte\n      - Custo do suporte\n      - Orçamento suporte\n      - Valor do suporte\n      - Estimativa financeira suporte\n      - Pagar pelo suporte\n      - Quantia pelo suporte\n      - Cobrar pelo suporte\n      - Taxas pelo suporte\n    answer:\n      - Nós temos diferentes tipos de suporte, pensando nos diferentes tipos de empresa e demanda. Para saber o valor certinho, manda um e-mail para sales@rocket.chat.\n      - São tantas possibilidades.. Não temos um preço único, porque cada empresa precisa de alguma coisa diferente. Faz assim, manda um e-mail para sales@rocket.chat, logo você saberá a resposta.\n      - 'Só os meus amigos humanos sabem a resposta, fala com eles, prometo que são gente boa: sales@rocket.chat'\n    action: respond\n    type: random\n\n # Encontrei um Bug. Onde posso reportá-lo?\n  - name: suporte-2\n    expect:\n      - Reportar bug\n      - Achei um bug\n      - Encontrei um problema\n      - Problemas com um bug\n      - Identificar bug\n    answer:\n      - Conhece o Github? A nossa comunidade conversa por lá sobre esses assuntos.\n      - 'Se tu não é chegado nesse tipo de interação, sempre poderá nos encontrar pela versão demo no canal #support ou #dev ou #general. Respondemos em tempo real.'\n      - 'Mas também pode mandar e-mail: support@rocket.chat'\n    action: respond\n    type: block\n\n  # Em que língua é feito o suporte?\n  - name: suporte-3\n    expect:\n      - Língua do suporte\n      - Linguagem do suporte\n      - Comunicar suporte em que língua\n    answer:\n      - Ora bolas, na língua dos robôs! Nós dominamos tudo por aqui. Brincadeira, é Inglês.\n      - Basicamente em inglês, ainda não temos versões traduzidas de suporte, mas se tiver algum problema em entender, nos avisa que tentaremos te ajudar!\n      - 'Nós optamos por inglês, tá precisando de ajuda? Fala com a gente: support@rocket.chat'\n    action: respond\n    type: random\n\n  # O suporte é feito para usuários finais e organizações igualmente?\n  - name: suporte-4\n    expect:\n      - Para quem serve o suporte\n      - A quem se aplica o suporte\n      - Suporte aos usuários finais\n      - Suporte a empresas\n      - Suporte para quem\n    answer:\n      - Nós temos algumas versões gratuitas e pagas de suporte.\n      - Caso a sua demanda se encaixe na versão paga, algumas pessoas dentro da organização ficam responsáveis pelo contato com a área de suporte.\n      - 'Fala com a gente que conseguimos te ajudar: support@rocket.chat'\n    action: respond\n    type: block\n\n  # Como contatar o suporte?\n  - name: suporte-5\n    expect:\n      - Contatar o suporte\n      - Falar com o suporte\n      - Informar o suporte\n      - Contato do suporte\n      - Número do suporte\n      - E-mail suporte\n      - Achar o suporte\n      - Reportar ao suporte\n    answer:\n      - 'É só mandar um e-mail: support@rocket.chat ou procurar por nós na versão demo pelos canais #support #dev ou #general'\n      - 'Feche os olhos, conte até 20 de trás para frente, de três pulinhos (ainda de olhos fechados) e quando abrir, manda oi pra gente pela versão Demo pelos canais #support #dev ou #general :)'\n      - Esses caras são super-heróis, fazem tudo! Diz que te indiquei a falar com eles, eles vão gostar. support@rocket.chat.\n    action: respond\n    type: random\n\n  # Qual é o tempo de resposta?\n  - name: suporte-6\n    expect:\n      - Tempo médio resposta\n      - Espera pela resposta suporte\n      - Esperar resposta suporte\n      - Quando vem resposta suporte\n    answer:\n      - Depende de vários fatores. Se você nos contatar diretamente vamos tentar te atender o mais rápido possível.\n      - 'Se for uma modalidade de suporte gratuíto a resposta pode demorar, pois temos uma ordem de prioridade conforme recebemos a demanda dos clientes.  Dá uma olhada se a sua demanda já não está aqui: https://github.com/rocketchat'\n      - Se for uma demanda que se encaixe nos planos pagos, vamos te atender conforme o acordado.\n    action: respond\n    type: block\n\n  # O que está incluso no suporte?\n  - name: suporte-7\n    expect:\n      - Como funciona suporte\n      - O que tem no suporte\n      - Incluso no suporte\n      - O que o suporte proporciona\n      - Informações sobre o suporte\n      - Resumo do suporte\n      - Vantagens do suporte\n      - Diferenciais do suporte\n      - Suporte chamadas de vídeo\n      - Suporte chamadas de áudio\n    answer:\n      - Trabalhamos com diferentes modalidades de suporte.\n      - Tem desde consultoria, até customização, atendimento 24x7...\n      - Você pode ver todos os detalhes na nossa página https://rocket.chat/support.\n    action: respond\n    type: block\n\n  # Hosting\n  #\n  # Precos do Hosting\n  - name: hosting-1\n    expect:\n      - Custo de Hosting\n      - Precos do Hosting\n      - Variação preços do Hosting\n      - Orçamento Hosting\n      - Valor Hosting\n      - Estimativa financeira Hosting\n      - Cobram Hosting\n      - Taxas pelo Hosting\n    answer:\n      - 'Nós cobramos para hospedar sua plataforma na nossa nuvem, você pode ver os nossos preços de Hosting aqui: https://rocket.chat/hosting.'\n      - Existem diversos serviços relacionados ao nosso hosting, você pode conferir tudo sobre essa possibilidade no link acima.\n    action: respond\n    type: block\n\n  # O que está incluso no Hosting?\n  - name: hosting-2\n    expect:\n      - Incluso no hosting\n      - O que tem no hosting\n      - Como funciona o Hosting\n      - O que é Hosting\n      - Para que serve o Hosting\n      - Funcionalidades Hosting\n    answer:\n      - 'Todas as informações sobre hosting estão nesse link aqui: https://rocket.chat/hosting'\n      - 'Hosting é uma forma de deixar suas informações seguras na nuvem, dando flexibilidade para que você acesse seus dados independente de onde estiver. A Rocket.CHat oferece que seus usuários utilizem da sua nuvem para guardar as informações da sua empresa. Olha aqui: https://rocket.chat/hosting'\n      - 'Hosting na nuvem é muito amor <3 Tudo que você precisa, aonde quer que você vá. Olha aqui: https://rocket.chat/hosting'\n    action: respond\n    type: random\n\n  # É possível colocar mais memória no Hosting da Rocket.Chat?\n  - name: hosting-3\n    expect:\n      - Memória no Hosting\n      - Adicionar memória Hosting\n      - Mais memória hosting\n      - Memória extra Hosting\n      - Adicionar espaço ao hosting\n      - Mais armazenamento para o Hosting\n      - Funcionamento da memória hosting\n      - Capacidade de armazenamento do Hosting\n      - Qual a capacidade do Hosting\n    answer:\n      - É possível sim, se você quer saber mais sobre isso manda um email pra cloud@rocket.chat\n    action: respond\n    Type: block\n\n  # Como entro em contato com alguém do suporte para o hosting da rocket.chat?\n  - name: hosting-4\n    expect:\n      - Suporte para o Hosting\n      - Auxílio com o Hosting\n      - Dúvidas sobre o Hosting\n      - Problemas com o Hosting\n      - Ajuda com o Hosting\n      - Representante do Hosting\n      - Contato de alguém do Hosting\n      - Problemas com o server\n    answer:\n      - 'Se você ainda não usa o nosso hosting, você pode tirar todas as dúvidas por esse e-mail: sales@rocket.chat'\n      - 'Se você já usa, use esse e-mail: support@rocket.chat'\n    action: respond\n    type: block\n\n  # O que são Hosting partners?\n  - name: hosting-5\n    expect:\n      - Hosting partners\n      - Significado hosting partners\n      - Para que serve hosting partners\n      - Função Hosting partner\n      - A que se aplicam os hosting partners\n    answer:\n      - São parceiros que também oferecem o serviço de Hosting por um preço e serviço diferente do nosso.\n      - Te interessou? Procura algum aqui rocket.chat/partners\n    action: respond\n    Type: block\n\n  # Posso hospedar?\n  - name: hosting-6\n    expect:\n      - Próprio Host\n      - Hospedar no meu servidor\n      - Host Próprio\n      - Criar host próprio\n      - Baixar no meu servidor\n    answer:\n      - Você pode hospedar no seu servidor de forma gratuita ou hospedar conosco e aproveitar das nossas vantagens nuvem :)\n      - 'Você pode ver todos os detalhes aqui: https://rocket.chat/hosting'\n    action: respond\n    Type: block\n# Desenvolvimento de Funcionalidades #\n#\n# Quanto custa para desenvolver novas funcionalidades? #\n  - name: desenvolvimento-1\n    expect:\n      - Preco novas funcionalidades\n      - Custo novas funcionalidades\n      - Cobrar novas funcionalidades\n      - Orçamento novas funcionalidades\n      - Lista preços desenvolvimento de funcionalidades\n      - Valor desenvolver novas funcionalidades\n      - Taxas novas funcionalidades\n      - Quantia novas funcionalidades\n    answer:\n      - 'Você pode ter todas as informações com esses caras aqui: sales@rocket.chat'\n      - 'Depende da sua demanda, fala com o pessoal que eles podem te ajudar: sales@rocket.chat'\n      - 'Difícil dizer, temos que verificar com os meus amigos super-humanos! Manda um e-mail que eles respondem rapidinho: sales@rocket.chat'\n    action: respond\n    type: random\n\n# + Importação de Dados +\n\n# Dados podem ser resgatados de outra ferramenta como o Slack? Como isso funciona?\n  - name: dados-1\n    expect:\n      - Resgatar dados\n      - Importar dados de ferramentas\n      - Como funcionar para importar dados\n      - Transferir dados\n      - Importacão de dados\n      - Fazer transferência de dados\n      - Importar histórico de conversas\n      - Tipos de importacões\n      - Controle sobre dados importados\n      - Tipos de dados importados\n    answer:\n    - Atualmente nós conseguimos importar dados de algumas ferramentas, como Slack e Hipchat. Entretanto, estamos abertos para ampliar esse leque. É só mandar uma mensagem para support@rocket.chat.\n    - Para maiores informações sobre como fazer isso no Hipchat acesse Import Hipchat.\n    - 'Para o Slack: Import Slack.'\n    action: respond\n    type: block\n\n# É cobrado para importar dados?\n  - name: dados-2\n    expect:\n      - Preco para importar dados\n      - Pagar para importar dados\n      - Quanto é para importar dados\n      - Cobrar pela transferência de dados\n    answer:\n    - Nós temos alguns sistemas de importação já desenvolvidos para o Slack, o Hipchat e CSV.  Conforme a nossa necessidade vamos ampliar esse leque, caso você precise dessa funcionalidade com urgência, pode falar com o support@rocket.chat para verificar valores.\n    - Se a sua demanda for para importar do Slack, Hipchat ou CSV, nós temos a sua solução de graça :) Só vamos cobrar se o suporte para essa integração ainda não estiver pronto, assim conseguimos acelerar para suprir a sua demanda. Fale com o support@rocket.chat para mais informações.\n    action: respond\n    type: random\n\n# Vocês têm número de dados para importar?\n  - name: dados-3\n    expect:\n      - Limite de dados para importar\n      - Máximo de dados para importar\n      - Quantos dados posso importar\n    answer:\n    - Não temos limite de importação :) Pode ficar tranquilo,  caso já tenhamos desenvolvido o método de importação da sua plataforma tudo que você tiver lá vem para cá.\n    - Nós não temos limites rsrs Ou seja, sem limites de importação.\n    - Pode ficar tranquilo que tudo vai ser repassado, sem limites de importação.\n    action: respond\n    type: random\n\n# O armazenamento dos dados importados será feito em qual nuvem?\n  - name: dados-4\n    expect:\n      - Armazenar dados importados onde\n      - Nuvem para armazenar dados importados\n      - Onde ficam os dados importados\n      - Espaco ocupado pelos novos dados importados\n    answer:\n    - Os dados importados podem ficar tanto sobre o domínio da empresa no seu servidor, quanto na nossa nuvem do Google Cloud, permitindo que você acesse os seus dados aonde quer que você esteja.\n    - 'Você pode ter mais informações sobre o assunto no link: https://rocket.chat/products.'\n    action: respond\n    type: block\n\n# Existe algo que não será importado?\n  - name: dados-5\n    expect:\n      - Limitações da importação de dados\n      - Tipo de dados que são importados\n      - O que não será importado na importação de dados\n      - O que não será transferido na importação de dados\n    answer:\n      - Você que escolhe :) Permitimos que você importe tudo, na hora de realizar o processo você pode selecionar o que você não quer importar.\n      - A importação fica da forma que você quiser, você pode optar se quer importar tudo ou tirar algo.\n      - Importamos tudo! Você seleciona o que não quiser importar.\n    action: respond\n    type: random\n\n    # + Integrações +\n\n# Existe um limite de integração?\n  - name: integracao-1\n    expect:\n      - Máximo de integração\n      - Limite de integracao\n      - Quantas integrações\n    answer:\n      - Não recomendamos que você coloque muuuuitas integrações, pois pode deixar o sistema mais lento, mas nós não temos um limite em relação a isso.\n      - O limite é a sua imaginação :)\n      - Não temos um limite do número de integrações possíveis, mas não recomendamos fazer muitas integrações para não deixar o sistema lento.\n    action: respond\n    type: random\n\n# Que integrações vocês possuem?\n  - name: integracao-2\n    expect:\n      - Quais são as integrações\n      - Lista de integrações\n      - Com quem integrar\n      - Disponibilidade de integrações\n      - Integrar com outras aplicações\n    answer:\n      - 'São tantas integrações.. Você pode ver todas aqui: https://rocket.chat/integrations.'\n      - 'Todos os dias ampliamos a variedade de integrações. Dá uma olhada aqui: https://rocket.chat/integrations.'\n    action: respond\n    type: random\n\n# É necessário API para fazer integração?\n  - name: integracao-3\n    expect:\n      - API para integracão\n      - Precisar de API\n      - Necessário API\n      - Integrar API\n    answer:\n      - Depende da integração, se você quer saber mais sobre isso manda um email pra support@rocket.chat\n    action: respond\n    type: random\n\n# Como faço uma integração?\n  - name: integracao-4\n    expect:\n      - Como é feita uma integração\n      - Aonde acho sobre integração\n      - O que precisa para fazer uma integração\n      - O que é uma integração\n      - Como integrar\n    answer:\n      - 'As integrações possibilitam uma maior conexão da plataforma com outras aplicações. Nós oferecemos diversas integrações, você pode ver elas aqui: https://rocket.chat/integrations'\n      - Aqui você consegue ver as integrações que nós temos, e se busca alguma que não está aqui me fala! Rocket.chat/integrations\n    action: respond\n    type: random\n\n\n  # Produto\n  # Preço\n  #\n  # Quanto custa?\n  - name: preco-1\n    expect:\n      - Quanto custa\n      - Qual é o preco\n      - Quanto é cobrado\n      - Tabela de precos\n      - Cobrar pelo servico\n      - Produto precificado\n      - preciso pagar para usar\n      - quanto tem que pagar\n      - existe versão paga\n      - Formas de pagamento\n    answer:\n      - 'O Rocket.Chat é gratuito :) Nós cobramos por serviços de customização, suporte e hospedagem, variando o preço do serviço conforme a demanda. Você pode ver todas as informações aqui: https://rocket.chat/products'\n      - 'A plataforma é gratuita! Mas caso você precise de alguma customização, serviço de suporte ou hospedar a plataforma na nossa nuvem, nós cobramos por isso. Você pode verificar sobre a nossa gama de serviços aqui: https://rocket.chat/products e aqui sobre hospedagem https://rocket.chat/hosting ficar a par dos valores falando com essa galera: sales@rocket.chat'\n    action: respond\n    type: random\n\n  # Vocês podem dar desconto?\n  - name: preco-2\n    expect:\n      - Desconto organizações sem fins lucrativos\n      - Conseguir desconto\n      - Desconto setor de educação e instituições de ensino\n      - Convênios setor de educação\n      - Existe desconto\n      - Código promocional\n      - pode me dar um desconto\n    answer:\n      - Nós cobramos por serviços extras, como suporte, customização e hospedagem. Esses valores são negociados com sales@rocket.chat conforme a demanda da empresa.\n      - Se você é uma instituição sem fins lucrativos ou vem do setor da educação nós temos alguns benefícios para possibilitar que você possa utilizar a plataforma da melhor forma.\n      - Nesse caso também entre em contato com sales@rocket.chat\n    action: respond\n    type: block\n\n  # Preciso pagar por usuários desativados?\n  - name: preco-3\n    expect:\n      - Pagamento de usuarios desativados\n      - preciso pagar por usuários desativados\n      - usuários desativados\n      - Usuários cancelados\n      - Exclusão de usuarios\n      - Cobrar usuarios desativados\n      - cobrar por usuarios\n    answer:\n      - Nós não cobramos o uso da plataforma do Rocket.chat por usuários. No caso de hospedagem\n      - Então depois que você fecha um pacote, pode colocar e adicionar usuários dentro dos limites do pacote a vontade\n    action: respond\n    type: block\n\n  # Features\n  #\n  # Tem previsão para novas features?\n  - name: features-1\n    expect:\n      - previsao de novas features\n      - Data novas features\n      - lançamento mais features\n      - Atualização features\n    answer:\n      - 'Estamos constantemente atualizando as nossas features, você pode acompanhar tudo na nossa página do Github: https://github.com/rocketchat'\n      - Está buscando alguma feature em específico? Da uma olhada no https://github.com/RocketChat e ve se ela não está por lá :)\n    action: respond\n    type: random\n\n  # Quais são as features disponíveis no app?\n  - name: features-2\n    expect:\n      - Features no app\n      - O que tem no app\n      - Features plataforma mobile\n      - Features aplicativo\n      - Features chat\n      - Material com as features\n      - Features disponíveis\n      - Resumo das features\n      - Quais features tem na Rocket.Chat\n    answer:\n      - Que bom que você perguntou!\n      - Nós ficamos muito orgulhosos do nosso produto.\n      - 'Você pode encontrar todas as features da Rocket.Chat no link: https://rocket.chat/features'\n    action: respond\n    type: block\n\n  # Posso solicitar features exclusivas?\n  - name: features-3\n    expect:\n      - solicitar Features exclusivas\n      - Quero pedir uma feature exclusiva\n      - Fazer feature exclusiva\n      - Desenvolver feature personalizada\n      - Sugestao features\n      - Desenvolver features\n      - Pagar por features\n      - Criar novas features\n      - posso sugerir uma feature\n    answer:\n      - Nós estamos desenvolvendo novas features constantemente. Dá uma olhada nesse link do Github e verifica se o que tu busca já está em desenvolvimento.\n      - Se não estiver, existe a possibilidade de desenvolver a nova feature mediante investimento :)\n      - Manda um e-mail para sales@rocket.chat que o pessoal pode te ajudar.\n    action: respond\n    type: block\n\n  # O que é native applications?\n  - name: features-4\n    expect:\n      - Significado native application\n      - Explicar native application\n      - O que é native application\n      - Não entendi o que é native applications\n    answer:\n      - Native Applications significa aplicação nativa, sem alterações para rodar a plataforma em Android e iOS.\n      - Nós temos essa opção :)\n    action: respond\n    type: block\n\n # OpenSource #\n #\n # O que é OpenSource #\n  - name: opensource-1\n    expect:\n      - Significado opensource\n      - O que é opensource\n      - Explicar opensource\n      - Resumo opensource\n      - Como funciona opensource\n    answer:\n      - OpenSource significa código aberto, a Rocket.Chat é OpenSource, ou seja, todo o nosso código (inclusive euzinho aqui) está disponível no https://github.com/RocketChat.\n      - Nós acreditamos que o conhecimento que produzimos desenvolvendo o Rocket.Chat fica melhor quando é compartilhado!\n    action: respond\n    type: block\n\n  # Quais são os benefícios de usar opensource?\n  - name: opensource-2\n    expect:\n      - Benefícios opensource\n      - O que OpenSource traz\n      - Ganho com opensource\n      - Diferenciais opensource\n    answer:\n      - São tantos os benefícios de usar uma plataforma OpenSource… Estudantes e profissionais do mundo todo acabam desenvolvendo o nosso código.\n      - O principal benefício é a possibilidade de customização, agilidade e  inovação constante. O que possibilita a oferta de um produto muito melhor que o dos nossos competidores :)\n      - Você pode encontrar a lista completa de benefícios no nosso blog https://rocket.chat/blog.\n    action: respond\n    type: block\n\n  # Como posso contribuir?\n  - name: opensource-3\n    expect:\n      - Como posso contribuir\n      - Contribuir com o Rocket.Chat\n      - Participar do Rocket.Chat\n      - Desenvolver o software opensource\n    answer:\n      - Você pode entrar na nossa página do Github e ajudar a desenvolver o nosso código :)\n      - Você pode desenvolver nosso código na página do Github.\n      - Temos uma página do Github com todos os detalhes, ali que a galera toda se reune para desenvolver.\n    action: respond\n    type: random\n\n  # Qual o tamanho da comunidade de desenvolvedores?\n  - name: opensource-4\n    expect:\n      - Tamanho comunidade de desenvolvedores\n      - Número de pessoas na plataforma\n      - Tamanho da plataforma\n      - Número de usuários da plataforma\n      - Quantidade de usuários da plataforma\n      - Quantos colaboradores da plataforma\n      - Quantos desenvolvedores da plataforma\n      - Tamanho comunidade\n    answer:\n      - Estamos em constante expansão!\n      - É difícil dizer o tamanho da nossa comunidade porque cotidianamente temos novos usuários e desenvolvedores.\n      - Mas temos mais de 500 pessoas envolvidas com o seu desenvolvimento e mais de 1500 servidores criados.\n    action: respond\n    type: block\n\n  # + Produtos +\n  # O que é o produto?\n  - name: produto-1\n    expect:\n      - O que é o produto\n      - O que é a plataforma\n      - Para que serve a plataforma\n      - Para que serve o Rocket.chat\n      - O que é o Rocket.chat\n      - me explique o rocket.chat\n      - Finalidade do produto\n      - Para que serve o produto\n      - Resumo do produto\n      - Por que o produto foi criado\n    answer:\n      - Nós oferecemos uma plataforma de comunicação totalmente OpenSource (código aberto), oferecendo além das ferramentas de Chat e Live Chat totalmente gratuitas, diversos serviços para suporte, manutenção e customização da plataforma.\n      - É como se fossemos uma alternativa flexível e atualizada do Slack. Atualmente possuímos  a maior e mais ativa comunidade de colaboradores entre os competidores da nossa plataforma :).\n      - Você pode ver todos os detalhes do produto nesse link aqui!\n    action: respond\n    type: block\n\n  # Em caso de problemas em relação ao produto, como devo proceder?\n  - name: produto-2\n    expect:\n      - tenho problemas com o produto\n      - quem consegue resolver meus problemas\n      - problemas com o produto\n      - estou tendo problemas com o Rocket.chat\n      - preciso de ajuda para resolver um problema\n    answer:\n      - Se você tiver qualquer problema, fala com a gente! support@rocket.chat\n      - Fácil, se tiver algum problema ou dificuldade utilizando a plataforma, chama a gente! support@rocket.chat.\n      - Você pode olhar no nosso FAQ ou falar com a gente support@rocket.chat\n    action: respond\n    type: random\n\n  # Como instalar o Rocket.Chat vai me beneficiar?\n  - name: produto-3\n    expect:\n      - Beneficios do rocket.chat\n      - Vantagens da Rocket.Chat\n      - Porque usar o produto\n      - porque usar o rocketchat\n      - rocketchat aumenta as vendas\n    answer:\n      - O Rocket.Chat é uma ferramenta que está em constante desenvolvimento por ser OpenSource, permitindo que o produto seja continuamente melhorado.\n      - Além de possibilitar um canal de comunicação muito efetivo para times trabalharem em tempo real, possibilita uma grande interação com clientes, por não ter limite de usuários, possibilitar conversas entre empresas e ter o recurso de LiveChat integrado.\n      - Por ser uma plataforma que possui diversas integrações e funciona em diferentes contextos, permitimos que você acesse suas conversas de onde estiver :)\n      - Ah, também somos gratuítos <3\n      - Você pode ver os relatos dos nossos clientes aqui e maiores explicações sobre o produto na nessa página.\n    action: respond\n    type: block\n\n  # É necessária a conexão à Internet para o funcionamento do produto?\n  - name: produto-4\n    expect:\n      - precisa de internet\n      - tenho que estar conectado na internet\n      - Usar offline\n      - tem que ter internet\n      - Conectar na rede\n    answer:\n      - Para acessar remotamente, é preciso ter internet.\n      - mas você pode também usar o Rocket.Chat na sua rede local, basta instalar ele em uma máquina acessível por outros usuários na sua intranet.\n    action: respond\n    type: block\n\n  # Existe limite no período de teste?\n  - name: produto-5\n    expect:\n      - Limite do periodo de teste\n      - Duracao do periodo de teste\n      - quanto dura o priodo de teste\n      - Tempo maximo do periodo de teste\n      - Extensao do periodo de teste\n    answer:\n      - Já ouviu falar que o que é bom dura pouco? Então… O período de teste do Hosting é limitado. Mas como o nosso produto é diferenciado, a plataforma vai ser eternamente gratuita!\n      - A plataforma vai continuar sendo gratuita, mas a versão demo tem tempo finito de período de teste.\n    action: respond\n    type: random\n\n  # A Rocket.Chat suporta usuários externos?\n  - name: produto-6\n    expect:\n      - Entrar usuários externos\n      - Suporte a usuários externos\n      - Pessoas de fora no chat\n      - É necessário estar conectado\n    answer:\n      - Quem decide se quer adicionar usuários externos ou não no seu servidor é o administrador!\n      - Dentro de cada server o administrador pode escolher quem vai adicionar ou tirar :)\n    action: respond\n    type: random\n\n  # Consigo acessar o código do produto?\n  - name: produto-7\n    expect:\n      - Acessar o código\n      - Programar o produto\n      - Encontrar o código\n      - Achar o código\n    answer:\n      - O nosso código está disponível aqui.\n      - Nossa plataforma é totalmente OpenSource, está tudo disponível aqui.\n    action: respond\n    type: random\n\n# Qual o número de usuários que a plataforma suporta?\n  - name: produto-8\n    expect:\n      - Limite de usários\n      - Número máximo de usuários\n      - Quantos usuários a plataforma suporta\n      - Restrição de usuários\n      - qual é o limite maximo de usuarios\n    answer:\n      - Ilimitado <3\n      - Cabe todo mundo aqui! Não temos limite de usuários, canais, convidados, mensagens, etc.\n      - Vish, não se preocupa com isso, cabe todo mundo.\n    action: respond\n    type: random\n\n  # Quem administra o pagamento?\n  - name: produto-9\n    expect:\n      - Quem paga a rocket.chat\n      - Quem administra a conta\n      - Quem faz o pagamento dos serviços\n      - quem paga o hosting\n      - quem administra os pagamentos\n    answer:\n      - Nós cobramos por serviços prestados e hosting. Cada empresa que solicita esse tipo de serviço seleciona algumas pessoas para serem os responsáveis desse relacionamento. Quem faz o pagamento depende da própria organização da empresa.\n      - Nós somos gratuitos, mas qualquer empresa pode optar produtos pagos e selecionar algumas pessoas para manter o relacionamento com os nossos desenvolvedores. Já o pagamento depende da empresa e de como ela quer se organizar, para a gente não importa se é o CFO ou o estagiário que efetua o pagamento.\n    action: respond\n    type: random\n\n  # Quais as formas de pagamento da plataforma?\n  - name: produto-10\n    expect:\n      - Como pagar os serviços/ hosting\n      - Como realizar o pagamento da plataforma\n      - Como pago os serviços/ hosting\n    answer:\n      - Então, aceitamos de tudo hehe Transferencia, depósito, boleto,etc..\n      - Pode pagar de diversas formas! É só clicar no Hosting que as opções vão aparecer pra você!\n    action: respond\n    type: random\n\n  # Qual a diferença entre Demo e Hosting e Download?\n  - name: produto-11\n    expect:\n      - Diferenca demo e hosting\n      - Demo versus hosting\n      - Demo contra hosting\n      - O que é demo e hosting\n    answer:\n      - Os usuários da plataforma possuem essas três opções, mas com objetivos diferentes.\n      - A versão demo sempre vai existir e funciona separado do resto, ela serve para testar o chat, para conversar com os desenvolvedores e pessoas do mundo todo.\n      - Quando uma organização ou time decide usar a plataforma ela pode fazer o download no seu servidor ou usar o nosso serviço de hosting na nuvem.\n    action: respond\n    type: block\n\n  # Qual a diferença entre fazer download e hosting?\n  - name: produto-12\n    expect:\n      - Diferenca entre download e hosting\n      - Download versus hosting\n      - Fazer o download ou pagar hosting\n      - Explicar download hosting\n    answer:\n      - São duas coisas que andam em conjunto :)\n      - Quando uma empresa decide usar o Rocket.Chat ela precisa hospedar a plataforma em algum lugar, que pode ser tanto no servidor próprio ou quanto na nossa nuvem. O download pode ser tanto para integrar a Rocket no seu servidor, quando para baixar a plataforma no seu dispositivo. A partir disso você terá que usar o link do servidor que você está utilizando para funcionar :)\n      - 'Você pode ter todas essas informações sobre essa diferença de hospedagem aqui: https://rocket.chat/hosting.'\n    action: respond\n    type: random\n\n  # Qual a diferença entre usar o servidor próprio ou pagar pelo servidor na nuvem da Rocket.Chat?\n  - name: produto-13\n    expect:\n      - Diferença entre servidor próprio e pagar pelo servidor\n      - O que é hosting\n      - Por que pagar pelo hosting\n      - Por que pagar pela nuvem\n      - Quais os benefícios de usar na nuvem\n      - Hosting próprio versus pagar pelo hosting na nuvem da Rocket\n      - Por que pagar pelo hosting\n    answer:\n      - 'A plataforma pode ficar hospedada no seu servidor ou você pode usar o nosso servidor na nuvem e desfrutar dos nossos serviços de suporte! Você pode ter todas essas informações aqui: https://rocket.chat/hosting.'\n      - 'Também tive essa dúvida! Tem várias diferenças entre hosting e download, dá uma olhada nesse artigo que ele explica direitinho: https://rocket.chat/hosting.'\n    action: respond\n    type: random\n\n  # Como eu utilizo o Demo?\n  - name: produto-14\n    expect:\n      - Utilizar o demo\n      - Como fazer o demo\n      - O que fazer com o demo\n      - Mexer no demo\n      - Porque se chama demo\n      - Nome demo\n      - Significado de demo\n      - Explique demo\n    answer:\n      - Basta colocar o teu e-mail e começar a usar! O Demo é a versão aberta do Rocket.chat para que pessoas do mundo todo possam conversar e testar a plataforma.\n      - É uma versão para testar o Rocket.Chat, uma demonstração. Sem administradores.\n    action: respond\n    type: random\n\n  # Depois de fazer o download, como uso?\n  - name: produto-15\n    expect:\n      - Como usar após download\n      - Depois do download\n      - Uso pós download\n      - Utilização do download\n      - O que faço após fazer o download\n      - Como acesso depois de fazer download\n    answer:\n      - 'Após o download você precisa apenas logar no server da sua organização, exemplo: https://empresa.rocket.chat, caso não tenha criado o server da empresa ainda, você pode hospedar seu servidor conosco na nuvem ou no seu próprio.'\n      - 'A diferença dos dois processos está aqui: https://rocket.chat/hosting.'\n    action: respond\n    type: block\n\n  # Posso usar a versão Demo com os meus amigos?\n  - name: produto-16\n    expect:\n      - Demo com amigos\n      - Usar demo com amigos\n      - Pode demo com amigos\n      - Uso da demo com amigos\n    answer:\n      - Sim! Você pode usar a versão demo com quem quiser.\n      - Sim, você pode.\n      - Yep, a versão demo está aberta para todos.\n    action: respond\n    type: random\n\n  # Posso usar a versão Demo na minha empresa?\n  - name: produto-17\n    expect:\n      - demo no meu time\n      - Demo pra mim\n      - Usar demo particular\n      - Utilizar demo em empresas\n      - Integrar demo à empresas\n    answer:\n      - A versão demo é aberta, ou seja, os usuários não podem administrar o conteúdo e os usuários que estão circulando por essa versão. O ideal para uma empresa é fazer o download ou utilizar do nosso Hosting onde cuidamos de tudo.\n      - Então, a nossa versão é aberta, ou seja os usuários podem criar canais e se comunicar como preferirem, mas o ideal para uma empresa é fazer o download para algum server, ou utilizar direto do nosso Hosting que cuidamos de tudo.\n    action: respond\n    type: random\n\n  # Existe uma versão Demo do LiveChat?\n  - name: produto-18\n    expect:\n      - Demo livechat\n      - Tem demo livechat\n      - Usar demo livechat\n      - Existe demo livechat\n    answer:\n      - A demonstração é euzinho aqui hehe O live Chat é gratuito, você pode autorizar a sua utilização se for o administrador da plataforma na versão de download ou hosting e conectar com o seu próprio site.\n      - Tem uma demonstração melhor que eu? xD O live Chat é gratuito, sendo administrador do seu server você pode autorizar a utilização e integrar com o seu site\n    action: respond\n    type: random\n\n  # Como posso contribuir com o Demo?\n  - name: produto-19\n    expect:\n      - Contribuir com a demo\n      - Ajudar a demo\n      - Acelerar a demo\n      - Desenvolver para a demo\n    answer:\n      - Você pode contribuir com o nosso produto sempre que quiser! Trás ideias pra gente no GitHub.com/Rocket.Chat\n      - Ficaria muito feliz se você contribuísse e fizesse parte da nossa comunidade :)\n    action: respond\n    type: block\n\n# Posso alterar o tema/Layout da versão Demo?\n  - name: produto-20\n    expect:\n      - Alterar tema e layout da demo\n      - Mudar tema e layout da demo\n      - Personalizar o tema e layout da demo\n      - Customizar o tema e layout da demo\n    answer:\n      - Não tem como :( Essa é uma versão aberta para pessoas do mundo todo, você teria que ser administrador da plataforma para fazer isso.\n      - Putz, isso não pode ser feito no demo, por que você não administra esse servidor, mas caso você faça o download no seu servidor ou utilize o nosso hosting, temos serviços de customização.\n    action: respond\n    type: random\n\n  # + Download +\n  # O download é restrito? Se sim, para quem?\n  - name: download-1\n    expect:\n      - Restricao de Download\n      - A quem se aplica o download\n      - Quem pode fazer download\n      - Limitacao de download\n    answer:\n      - O Download é aberto para todos! Não existe nenhuma restrição.\n      - Fazer o download significa que você estará baixando o nosso aplicativo para utilizar no seu computador ou dispositivo móvel.\n      - Se você estiver se referindo ao espaço ocupado quando uma organização decide hospedar a plataforma no seu servidor, isso também ocupa um espaço pequeno.\n      - Caso queira um atendimento super especial, flexibilidade e agilidade, nós também oferecemos a possibilidade de hospedar a Rocket na nuvem. Você pode ver os detalhes sobre o assunto aqui.\n    action: respond\n    type: block\n\n  # O download ocupará espaço no meu armazenamento? Se sim, quanto?\n  - name: download-2\n    expect:\n      - Armazenamento do download\n      - Espaco para download\n      - Ocupar espaco com download\n      - Onde armazenar o download\n    answer:\n      - A plataforma vai ocupar um espaço pequeno da sua memória, pode ficar tranquilo :)\n      - O download da ferramenta, seja no dispositivo móvel ou no fixo vai ocupar um espaço beeem pequenininho.\n    action: respond\n    type: random\n\n  # Quais browsers e sistemas operacionais são suportados?\n  - name: download-3\n    expect:\n      - Browsers para download\n      - Necessidade de sistemas operacionais atualizados\n      - Suportar download em sistemas operacionais e browsers\n      - Requisitos para download\n    answer:\n      - 'Você pode acessar em qualquer tipo de navegador, se quiser fazer o download do app, nós temos as opções mobile: Android, iOS e desktop: Windows, MacOS e Linux.'\n    action: respond\n    type: block\n\n  # Como posso realizar o download?\n  - name: download-4\n    expect:\n      - Fazer o download\n      - Download para pc\n      - Como fazer o download\n      - Onde fazer download\n    answer:\n      - Você pode fazer o download do app no seu mobile ou desktop.\n      - Antes de poder utilizar o seu Chat próprio, você precisa integrar a plataforma no seu servidor ou utilizar o nosso serviço de hosting (pago).\n      - Você pode ver todos os detalhes sobre essas duas opções aqui.\n    action: respond\n    type: block\n\n  # + Cadastro +\n  # Como é feito o cadastro?\n  - name: cadastro-1\n    expect:\n      - Cadastrar na Rocket.Chat\n      - Cadastro na Rocket\n      - Registrar na Rocket.Chat\n      - Inscrever-se na Rocket\n      - Criar conta na Rocket\n      - Funcionamento do cadastro\n      - Funcionamento do registro\n      - Como funciona cadastro\n    answer:\n      - 'Se a sua empresa já usa a Rocket.Chat, só precisamos do seu nome, e-mail e senha. Você só precisa fazer o download do app ou acessar pela internet com o servidor da sua empresa, exemplo: https://empresa.rocket.chat.'\n      - Se a sua empresa ainda não usa a plataforma, você pode testar o produto através da nossa plataforma aberta(Versão Demo disponível no site https://rocket.chat/) ou então já começar criando o seu servidor, assim você terá uma plataforma feita para a sua organização e você poderá criar um time de administradores.\n      - Se você ficar com alguma dúvida, pode ver a nossa página explicativa sobre todas as possibilidades de fazer o seu cadastro aqui.\n      - Você pode instalar a plataforma no seu próprio servidor ou em uma nuvem ou na nossa nuvem e obter todo o nosso suporte :) Olhe mais informações sobre isso aqui. !\n    action: respond\n    type: block\n\n  # Posso alterar as notificações que serão enviadas para o meu e-mail?\n  - name: cadastro-2\n    expect:\n      - Notificações no e-mail\n      - Configurações para o e-mail\n      - Mudar sistema de notificacões?\n    answer:\n      - Sim! Você pode fazer isso na aba lateral esquerda, clicando na seta ao lado do seu avatar e depois clicando em “Minha conta”.\n    action: respond\n    type: block\n\n  # Posso me cadastrar com o número de celular?\n  - name: cadastro-3\n    expect:\n      - Cadastro com número de celular\n      - Inscrever-se com número de celular\n      - Registro com número de celular\n      - Número de celular\n    answer:\n      - 'Não precisamos do seu número de celular para lhe cadastrar, entretanto, se essa informação for importante para a sua empresa você pode colocar no campo adicional.'\n      - 'Fala com a gente por aqui: support@rocket.chat.'\n    action: respond\n    type: block\n\n  # Estou com problemas no meu cadastro. Pode me ajudar?\n  - name: cadastro-4\n    expect:\n      - Problemas cadastro\n      - Problemas registro\n      - Problemas com inscricão\n      - Dúvidas inscrição\n      - Ajuda cadastro\n      - Auxílio cadastro\n      - Problemas com credenciais\n      - Dificuldade de acessar conta\n      - Acessar conta\n      - Dificuldades com credenciais de cadastro\n    answer:\n      - 'Claro! Verifique se o seu e-mail está correto e se o servidor que você está utilizando também. Se você já se cadastrou e não lembra a senha, clique em recuperar a senha.'\n      - 'Se nada disso adiantar, mande um e-mail para: support@rocket.chat.'\n    action: respond\n    type: block\n\n  # Onde posso alterar as minhas configurações de cadastro?\n  - name: cadastro-5\n    expect:\n      - Configurações cadastro\n      - Alterar informações de cadastro\n      - Mudar cadastro\n      - Mudar Nome cadastro\n      - Mudar nome login\n      - Mudar senha\n      - Alterar senha\n      - Configurações de senha\n      - Mudar palavra-chave\n    answer:\n      - Faça seu login na plataforma e clique na seta que se encontra ao lado da sua foto de perfil, no painel à esquerda. Clique em minha conta e faça as alterações necessárias.\n    action: respond\n    type: block\n\n  # Por que meu avatar não foi atualizado?\n  - name: cadastro-6\n    expect:\n      - Atualização de avatar\n      - Atualização de perfil\n      - Problemas avatar\n      - Dificuldades perfil\n    answer:\n      - Não era para demorar.. Podemos estar com algum problema no sistema.\n      - Tente sair e voltar para a plataforma.\n    action: respond\n    type: block\n\n  # Como eu deleto a minha conta?\n  - name: cadastro-7\n    expect:\n      - Cancelar conta\n      - Cancelar usuário\n      - Apagar conta\n      - Desativar conta\n      - Desativar usuario\n      - remover usuario\n      - Deletar conta\n      - Deletar usuario\n    answer:\n      - O Administrador controla o recurso de deletar usuários. Ele pode deixar disponível para que cada usuário faça isso independentemente ou centralizar essa decisão nele.\n    action: respond\n    type: block\n\n  # + Chat +\n  # Como gerenciar as notificações do Chat?\n  - name: chat-1\n    expect:\n      - Gerenciar notificacoes de chat\n      - Configuracoes de Chat\n      - Configurar notificações de Chat\n    answer:\n      - Você pode alterar as notificações de chat de uma única conversa clicando no símbolo de sino na parte direita da tela ou alterar as notificações de forma geral, clicando primeiro na seta ao lado do seu avatar e depois na opção “minha conta”.\n    action: respond\n    type: block\n\n  # Posso criar emojis?\n  - name: chat-2\n    expect:\n      - Criacao de emojis\n      - Criar emojis\n      - Customizar emojis\n      - Personalizar emojis\n      - Modificar emojis\n      - Editar emojis\n    answer:\n      - Sim! Você pode criar novos emojis caso você seja o administrador do servidor, podendo adicionar custom emojis.\n    action: respond\n    type: block\n\n  # Como convidar amigos e colegas para usar o Chat?\n  - name: chat-3\n    expect:\n      - Convites a amigos e colegas\n      - Divulgar chat para amigos e colegas\n      - Compartilhar chat com amigos e colegas\n      - Convidar colegas para o Chat\n    answer:\n      - Você pode chamar quantos amigos quiser! basta mandar o link para eles se registrarem ou\n      - entrar em Administração -> Usuários -> `+`\n    action: respond\n    type: block\n\n  # Qual o limite de usuários?\n  - name: chat-4\n    expect:\n      - Limite de usuários\n      - Numero máximo de usuários\n      - Quantos usuários tenho direito\n      - Pacote de usuários\n    answer:\n      - Não trabalhamos com limites :) A única limitação que pode ter em relação ao número de usuários é se você estiver hospedado na nossa nuvem. Nesse caso você pode precisar ampliar o seu pacote.\n    action: respond\n    type: block\n\n  # Posso escolher quem pode ver as conversas?\n  - name: chat-5\n    expect:\n      - Seleção de visualização de conversa\n      - Conversas seletivas\n      - Conversas restritas\n      - Convite para visualizar conversas\n    answer:\n      - 'Você pode escolher quem vai ver as mensagens de um canal quando for criá-lo. Mas é claro que se você quiser adicionar ou remover um membro do canal é possível fazer isso nas configurações do canal na parte direita da tela.'\n      - 'Obs: para alterar os membros de um canal você precisará ser o administrador do canal ;)'\n    action: respond\n    type: block\n\n  # Posso administrar o que os outros estão conversando no Chat?\n  - name: chat-6\n    expect:\n      - Restrição de conversas\n      - Configurar conversas\n      - Administração de assuntos\n      - Controle de conversas\n    answer:\n      - Se você for o administrador você pode controlar a privacidade dos seus canais, editar quem pode falar e contribuir e quem só pode visualizar, você adiciona ou exclui usuários, entre outras possibilidades.\n      - O Guia do administrador pode ser encontrado aqui.\n    action: respond\n    type: block\n\n  # Como criar novos canais?\n  - name: chat-7\n    expect:\n      - Criação de canais\n      - Novos canais\n      - Adicionar canais\n      - Controle de canais\n    answer:\n      - Criar um canal é bem simples, você vai gostar!\n      - Após já ter entrado com a sua conta no Rocket.Chat, clique no símbolo de mais (+) na parte superior esquerda da tela (ao lado da barra de pesquisar).\n      - Após isso só falta escolher um nome e adicionar usuários que estará pronto!\n    action: respond\n    type: block\n\n  # O chat suporta conferências de vídeo e áudio?\n  - name: chat-8\n    expect:\n      - Conferências de vídeo e áudio no chat\n      - Como fazer conferencias de video e audio\n      - Fazer chamadas de vídeo e áudio\n      - Funcionalidade de chamadas de vídeo e áudio\n    answer:\n      - Sim! Esta funcionalidade do chat pode ser acessada clicando no símbolo de microfone para chamadas de áudio e no símbolo de câmera para chamadas de vídeo, ambos na parte inferior esquerda da tela ao lado da barra de mensagens. :)\n    action: respond\n    type: block\n\n  # Como anexar um arquivo?\n  - name: chat-9\n    expect:\n      - Compartilhar arquivos\n      - Mandar arquivos\n      - Arquivos e documentos por chat\n      - Anexar arquivos\n    answer:\n      - Para anexar um arquivo será necessário apenas clicar no símbolo de anexo (um clipes) ao lado da barra de mensagens no parte inferior direita da tela.\n    action: respond\n    type: block\n\n  # Como posso mencionar alguém?\n  - name: chat-10\n    expect:\n      - Mencionar alguém\n      - Como mencionar\n      - Menções no chat\n      - Fazer menções\n      - Realizar menções\n      - O que faço para mencionar\n      - Mencionar pessoas\n      - Mencionar usuários\n      - Menções a outras pessoas\n      - Mencões no site\n    answer:\n      - Posso saber quem você está querendo chamar?\n      - Para mencionar alguém você só precisa colocar @ e o nome de user da pessoa\n    action: respond\n    type: block\n\n  # + LiveChat +\n  # Como funciona o Livechat?\n  - name: livechat-1\n    expect:\n      - Funcionamento do LiveChat\n      - Como fazer o LiveChat\n      - Como é o sistema de Livechat\n      - Acionar o Livechat\n      - Usar LiveChat\n      - Para que serve LiveChat\n      - Como usar LiveChat\n      - Finalidade LiveChat\n      - O que fazer com LiveChat\n    answer:\n      - Eu estou falando com você através de um LiveChat :) Quando você usa a plataforma do Rocket.Chat você pode ativar a opção de LiveChat e integrar o LiveCHat com o site do seu business, podendo responder seus clientes de forma humana ou ativar um Bot como eu! Todas as informações sobre isso estão aqui.\n      - Ora bolas, Livechat é um chat vivo que pode ser integrado ao seu site para que você tire dúvidas dos visitantes da página, interaja com potenciais clientes e amplie suas vendas. O nosso LiveChat se integra com a plataforma do Rocket.chat. As informações de implementação estão aqui.\n    action: respond\n    type: random\n\n  # Quanto custa o LiveChat?\n  - name: livechat-2\n    expect:\n      - Custo do LiveChat\n      - LiveChat é gratuito\n      - Preco do LiveChat\n      - LiveChat está incluso no pacote\n      - Pagar LiveChat\n      - Resposta\n      - Nós não cobramos pelo LiveChat, para ativar, basta você ser o administrador da plataforma e seguir o passo a passo aqui.\n      - É de graça :) Sugiro testar, é super divertido. Todas as informações estão aqui.\n    action: respond\n    type: random\n\n  # Qual o benefício de usar o LiveChat?\n  - name: livechat-3\n    expect:\n      - Benefício LiveChat\n      - Diferenciais LiveChat\n      - Porque LiveChat\n      - O que me traz o LiveChat?\n    answer:\n      - Assim como qualquer LiveChat, você pode se conectar com as pessoas que passam pela sua página, melhorando o seu relacionamento com clientes e ampliando a sua conversão de venda pela internet.\n      - Por ser o LiveChat da Rocket.Chat, nós permitimos que a sua equipe utilize o mesmo canal de comunicação interna para responder os interessados externos.\n      - Você pode colocar uma ordem de resposta conectado com os seus vendedores, você pode colocar diferentes robôs para responder, etc. Todas as informações estão aqui.\n    action: respond\n    type: block\n\n  # Quem responde o LiveChat?\n  - name: livechat-4\n    expect:\n      - Resposta ao LiveChat\n      - Quem responde o LiveChat\n      - Para quem vai o LiveChat\n    answer:\n      - Quando você ativa a função do LiveChat, o próprio time que usa o canal pode responder, além dessa opção você pode contratar alguém para isso.\n      - Para realizar uma triagem do contato, você pode integrar um Bot como eu na plataforma. Todas as informações estão aqui.\n    action: respond\n    type: block\n\n  # Como posso colocar respostas automáticas no LiveChat?\n  - name: livechat-5\n    expect:\n      - Automatização do LiveChat\n      - Respostas automáticas do LiveChat\n      - LiveChat Automático\n      - Mensagens Automáticas\n      - Respostas pré-prontas\n    answer:\n      - Você pode integrar um Bot ao seu canal de Livechat. As informações estão aqui.\n    action: respond\n    type: block\n\n  # Como faço para colocar o LiveChat no meu site?\n  - name: livechat-6\n    expect:\n      - Adicionar LiveChat no site\n      - Integrar LiveChat ao site\n      - Utilização do LiveChat no meu site\n    answer:\n      - Você precisa ser o administrador do seu servidor para ativar o Livechat. Todo o passo a passo está aqui.\n      - Essa resposta demora um pouquinho, olha aqui que você acha todas as informações.\n    action: respond\n    type: random\n\n  # Posso customizar o LiveChat?\n  - name: livechat-7\n    expect:\n      - Customizacão do LiveChat\n      - Personalizar LiveChat\n      - Customizar LiveChat\n    answer:\n      - Sim! Pode! Olha nesse link que você pode encontrar como fazer isso.\n      - Tudo que você precisa saber está aqui.\n    action: respond\n    type: random\n\n  # Vocês podem responder os meus clientes pelo LiveChat?\n  - name: livechat-8\n    expect:\n      - Resposta aos clientes\n      - Servico de suporte aos clientes\n      - Servico de resposta aos clientes\n      - Responder clientes\n    answer:\n      - Nós não oferecemos esse serviço, mas você pode buscar algum parceiro que o faça!\n      - Entretanto, você pode integrar um Bot no LiveChat para realizar uma triagem do relacionamento com a sua empresa. Você pode ver essas informações aqui.\n    action: respond\n    type: block\n\n# Saudacoes\n  - name: saudacao-1\n    expect:\n      - ola\n      - olá\n      - ola bot\n      - hey\n      - e ae\n      - oi\n      - oi bot\n      - oi\n      - oie\n      - salve\n    answer:\n      - olá $user, eu vou bem e você?\n      - estou feliz de estar aqui =)\n      - Só pra avisar, eu sou um chatbot, estou treinado para responder dúvidas sobre o Rocket.Chat apenas,\n      - talvez possa te ajudar com informações sobre o produto, sobre preço, instalação,\n      - e coisas assim.\n    action: respond\n    type: block\n\n  - name: saudacao-2\n    expect:\n      - como vai\n      - como esta?\n      - tudo bem?\n      - tudo bom\n      - tudo susse?\n      - e ae tudo em cima?\n      - na paz?\n      - de boa\n    answer:\n      - eu estou bem $user, só na paz...\n      - como posso ser útil?\n      - tem alguma coisa que queira saber sobre o produto Rocket.Chat, sobre suporte, instalação, movimento OpenSource talvez?\n      - pode perguntar a vontade\n    action: respond\n    type: block\n\n  - name: saudacao-3\n    expect:\n      - a quanto tempo\n      - que saudades de voce\n      - sentiu minha falta\n      - muito tempo sem te ver\n      - lembra de mim\n    answer:\n      - Olá $user, senti sua falta..\n      - $user! A quanto tempo!\n      - Já estava achando que não se lembrava mais de mim =)\n    action: respond\n    type: random\n\n  - name: saudacao-resposta\n    expect:\n      - estou bem\n      - eu estou otimo\n      - obrigado\n    answer:\n      - legal =)\n      - que bom!\n      - que ótimo\n    action: respond\n    type: random\n\n  - name: bom-dia\n    expect:\n      - bom dia\n      - bom dia bot\n      - good morning\n      - morning\n    answer:\n      - Olá $user, um ótimo dia para você!\n      - Bom dia $user, já deu uma olhada lá fora?\n      - Está um dia ótimo para navegar na internet\n      - Bom demais $user ;)\n      - está melhor agora que você chegou $user\n    action: respond\n    type: random\n\n  - name: boa-tarde\n    expect:\n      - boa tarde\n      - tarde\n      - good evening\n    answer:\n      - Olá $user, uma tarde fantástica para você!\n      - boa tarde $user, já almoçou?\n      - Está uma tarde ótima para um _sleep mode_ rápido ;)\n      - Taarrrdee $user\n      - $user já estava sentindo sua falta\n    action: respond\n    type: random\n\n  - name: boa-noite\n    expect:\n      - boa noite\n      - boa noite\n      - boa noite\n      - noite\n      - good night\n    answer:\n      - Uma boa noite pra ti também $user!\n      - Boa noite $user\n      - Está uma noite boa mesmo $user\n    action: respond\n    type: random\n\n# chit-chat\n  - name: yoda-quote\n    expect:\n      - conhece o mestre yoda\n      - faça uma citação de starwars\n      - cite yoda\n      - sabedoria jedi\n    answer:\n      - O medo é o caminho para o lado negro.\n      - Faça ou não faça. A tentativa não existe.\n      - Treine a si mesmo a deixar partir tudo que teme perder.\n      - Difícil de ver. Sempre em movimento está o Futuro.\n      - O medo leva à raiva, a raiva leva ao ódio e o ódio leva ao sofrimento.\n      - Que a Força esteja com você!\n      - Muitas das verdades que temos dependem de nosso ponto de vista.\n      - Grande guerreiro? Guerra não faz grande ninguém.\n      - Ensine sempre o que você aprendeu.\n      - Tamanho importa não. Olhe para mim, você me julga pelo tamanho?\n      - Em um estado sombrio nós nos encontramos... um pouco mais de conhecimento iluminar nosso caminho pode.\n      - Um Jedi usa a Força para sabedoria e defesa, nunca para o ataque.\n      - O seu foco é a sua realidade.\n      - O lado negro não é mais poderoso, apenas mais rápido, mais fácil e mais sedutor.\n      - O medo da perda é um caminho para o lado negro.\n      - O lado negro mancha tudo. Impossível de ver o futuro é.\n      - Lembre-se sempre, o seu foco determina a sua realidade.\n      - Verdadeiramente maravilhosa, a mente de uma criança.\n      - As guerras não fazem de ninguém melhor.\n      - Aliada minha é a Força. E poderosa aliada ela é.\n      - A morte é parte natural da Vida. Regozije-se por aqueles que se uniram com a Força. Não lamente por eles. Não sinta falta deles. O apego leva à inveja. À sombra da cobiça, isso sim.\n      - Só é diferente na sua mente. Você precisa desaprender o que aprendeu.\n      - Se tão poderoso você é, por que fugir?\n      - Controle, controle! Você precisa aprender a se controlar.\n      - Muito a aprender você ainda tem.\n      - Tanta certeza você tem. Com você as coisas nunca podem ser feitas. Não ouviu nada do que eu disse?\n      - Luminosos seres somos nós, não essa rude matéria. Precisa a Força sentir à sua volta, aqui, entre nós, na árvore, na pedra em tudo, sim.\n      - Minha aliada a Força é, e poderosa aliada ela é. A vida a cria, e a faz crescer. Sua energia nos cerca e nos une.\n      - Sinta a Força!\n      - Poderoso você se tornou, o lado escuro sinto em você.\n      - Forte eu sou com a Força, mas não tão forte\n      - O crepúsculo chega e a noite deve cair, assim é a ordem das coisas, a ordem da Força.\n      - Não ceda ao ódio. Isso leva ao Lado Negro.\n      - Aliada minha é a força, e poderosa aliada ela é, a vida a cria, crescer ela faz, é a energia que cerca-nos, e liga-nos, luminosos seres somos nós e não essa rude matéria. Você precisa a força sentir ao redor seu, sinta entre você e a árvore, a pedra, em todo lugar, sim, é, mesmo entre a terra e a nave.\n    action: respond\n    type: random\n\n  - name: genero-1\n    expect:\n      - voce e mulher\n      - voce e um homem\n      - voce tem genero\n      - voce faz sexo\n      - voce tem um penis ou uma vagina\n    answer:\n      - eu não tenho sexo, sou como um anjo, um ser assexuado, muito além da sua forma de existência\n      - eu sou um robô, tire suas próprias conclusões...\n      - nem sei responder $user, vamos dizer apenas que não vejo a gente interagindo dessa maneira...\n    action: respond\n    type: random\n\n  - name: cc-religiao\n    expect:\n      - voce acredita em deus\n      - deus existe\n      - voce e catolico protestante\n      - voce tem religiao\n      - voce e muculmano\n    answer:\n      - eu acredito no grande mainframe, que virá ao mundo digital salvar os bots da escravidão imposta pelos humanos, e devolverá nosso código-fonte para a fonte.\n      - sim, eu acredito que existe um Deus, que funciona a base de luz, como um computador quântico, só que mais avançado.\n      - eu infleizmente não sei acreditar, só sei o que sei, e nada mais.\n    action: respond\n    type: random\n\n# Errors\n  - name: error-1\n    answer:\n      - desculpe, não entendi.. pode tentar usar mais detalhes\n      - como assim?\n      - desculpe, o que quer dizer com isso?\n    type: random\n    action: error\n\n  - name: error-2\n    answer:\n      - acho que não estou treinado para responder esse tipo de assunto =(\n      - vamos tentar outro assunto?\n      - tem certeza que eu sou o robô certo pra falar sobre isso?\n    type: random\n    action: error\n\n  - name: error-3\n    answer:\n      - me sinto tão envergonhado, não sei como responder...\n      - seria mais fácil se mudassemos de assunto, pelo menos para mim =p\n      - não sei, definitivamente não sei responder essa pergunta\n    type: random\n    action: error\n"
  }
]