{"version":1,"pages":[{"id":"-LvKTC7kS-Mn_3lm1Nqr","title":"Introduction","pathname":"/","siteSpaceId":"sitesp_Dj86k","description":"Kogno is an open source framework running on the Ruby programming language for developing chatbots."},{"id":"-M1Qtx0R6u6dnb-2p9EF","title":"Getting Started","pathname":"/getting-started","siteSpaceId":"sitesp_Dj86k","description":"This section explains how to install Kogno and create a new project."},{"id":"-M1V7gvjf1yBDZ6db3GB","title":"Configuration","pathname":"/getting-started/configuration","siteSpaceId":"sitesp_Dj86k","description":"","breadcrumbs":[{"label":"Getting Started"}]},{"id":"b1VVnSpALW2ntdHcBRY4","title":"Starting the Server","pathname":"/getting-started/starting-the-server","siteSpaceId":"sitesp_Dj86k","description":"","breadcrumbs":[{"label":"Getting Started"}]},{"id":"tFjHXNQjCgsaaGVkzJyA","title":"Messenger Configuration","pathname":"/getting-started/messenger-configuration","siteSpaceId":"sitesp_Dj86k","description":"","breadcrumbs":[{"label":"Getting Started"}]},{"id":"8f5UcCgLkXkjxG8BgyNF","title":"Telegram Configuration","pathname":"/getting-started/telegram-configuration","siteSpaceId":"sitesp_Dj86k","description":"","breadcrumbs":[{"label":"Getting Started"}]},{"id":"X5ldYr3vRYqNL7VfZVW2","title":"WhatsApp Configuration","pathname":"/getting-started/whatsapp-configuration","siteSpaceId":"sitesp_Dj86k","description":"","breadcrumbs":[{"label":"Getting Started"}]},{"id":"TVe8VE3LqSUlrYx35Q43","title":"NLP Configuration","pathname":"/getting-started/nlp-configuration","siteSpaceId":"sitesp_Dj86k","description":"","breadcrumbs":[{"label":"Getting Started"}]},{"id":"-M1UeYy4Dh0mJnbas_OK","title":"Conversation Class","pathname":"/conversation","siteSpaceId":"sitesp_Dj86k","description":""},{"id":"-M1X18SZXeuWsbNwekF0","title":"Contexts","pathname":"/contexts","siteSpaceId":"sitesp_Dj86k","description":"Contexts are the skeleton of an application developed with Kogno, since in these, a large part of the logic of capturing, processing and replying to an incoming message is developed."},{"id":"-M1XkeTckF1BaecfGa82","title":"Blocks","pathname":"/contexts/blocks","siteSpaceId":"sitesp_Dj86k","description":"The action blocks make it possible for a contexts to digest an incoming message or event with certain characteristics that matches with the execution criteria of a given block.","breadcrumbs":[{"label":"Contexts"}]},{"id":"82GzYLc8T6zE8yALeul6","title":"before_anything","pathname":"/contexts/blocks/before_anything","siteSpaceId":"sitesp_Dj86k","description":"If it's called in the current context of the conversation, it will always be executed, at the beginning of the block matching process.","breadcrumbs":[{"label":"Contexts"},{"label":"Blocks"}]},{"id":"-M1XFogDwpfPSik3VBp_","title":"postback","pathname":"/contexts/blocks/postback","siteSpaceId":"sitesp_Dj86k","description":"Captures a click event that contains one or more payloads configured.","breadcrumbs":[{"label":"Contexts"},{"label":"Blocks"}]},{"id":"79mamwWyo29lLhcR3AgR","title":"deep_link","pathname":"/contexts/blocks/deep_link","siteSpaceId":"sitesp_Dj86k","description":"If it's defined, this action block will be executed if the chat was opened through a link that contains a deep-link query string parameter.","breadcrumbs":[{"label":"Contexts"},{"label":"Blocks"}]},{"id":"zNEVr4w8eWOJiVPkJow8","title":"command","pathname":"/contexts/blocks/command","siteSpaceId":"sitesp_Dj86k","description":"Catches a Telegram command, which  has been specified as an argument.","breadcrumbs":[{"label":"Contexts"},{"label":"Blocks"}]},{"id":"-M1XWFa6UKPuKTwDJOGv","title":"any_attachment","pathname":"/contexts/blocks/any_attachment","siteSpaceId":"sitesp_Dj86k","description":"This block will catch any attachment file like a document, audio, image, sticker or video.","breadcrumbs":[{"label":"Contexts"},{"label":"Blocks"}]},{"id":"-M1XXCveED-qEPeGHT_j","title":"regular_expression","pathname":"/contexts/blocks/regular_expression","siteSpaceId":"sitesp_Dj86k","description":"This block will be executed if the regular expression provided matches with a pattern against the incoming message.","breadcrumbs":[{"label":"Contexts"},{"label":"Blocks"}]},{"id":"-M1Xe7xYBdioKVb_OTFP","title":"keyword","pathname":"/contexts/blocks/keyword","siteSpaceId":"sitesp_Dj86k","description":"This block will be executed if the message is one of the defined keywords.","breadcrumbs":[{"label":"Contexts"},{"label":"Blocks"}]},{"id":"p2XbVytZm4NTiVyZUfnI","title":"any_number","pathname":"/contexts/blocks/any_attachment-1","siteSpaceId":"sitesp_Dj86k","description":"It going to be executed if the incoming message contains at least one number (integer or float) and  it will return as a parameter an array with the numbers found.","breadcrumbs":[{"label":"Contexts"},{"label":"Blocks"}]},{"id":"F0xAWnFZfFemfGsAhEbW","title":"any_text","pathname":"/contexts/blocks/any_attachment-2","siteSpaceId":"sitesp_Dj86k","description":"","breadcrumbs":[{"label":"Contexts"},{"label":"Blocks"}]},{"id":"-M1XfI6z862RtYW_73xt","title":"intent","pathname":"/contexts/blocks/intent","siteSpaceId":"sitesp_Dj86k","description":"This block will be executed if the intent provided as argument matches with the incoming message intent and if it was previously created and trained in the NLP engine.","breadcrumbs":[{"label":"Contexts"},{"label":"Blocks"}]},{"id":"ml7caisa2IG2kNJ0kODq","title":"entity","pathname":"/contexts/blocks/entity","siteSpaceId":"sitesp_Dj86k","description":"This block captures an NLP entity regardless of the incoming message intention.","breadcrumbs":[{"label":"Contexts"},{"label":"Blocks"}]},{"id":"-M1XnHZ_rHA9okouJMhr","title":"membership","pathname":"/contexts/blocks/nlp_entity","siteSpaceId":"sitesp_Dj86k","description":"This block will be executed when the chatbot has been added or removed from a group or channel from Telegram.","breadcrumbs":[{"label":"Contexts"},{"label":"Blocks"}]},{"id":"dGQhmqxqmGo4fCT4H4dj","title":"recurring_notification","pathname":"/contexts/blocks/recurring_notification","siteSpaceId":"sitesp_Dj86k","description":"This block will be executed when a user has granted or removed permissions to receive recurring notifications from Messenger.","breadcrumbs":[{"label":"Contexts"},{"label":"Blocks"}]},{"id":"7KdFAmeD9vRFSrjpqbDe","title":"everything_else","pathname":"/contexts/blocks/everything_else","siteSpaceId":"sitesp_Dj86k","description":"It will be executed as long as none of the declared blocks in the current context have been executed. In other words, If the match doesn't occurs.","breadcrumbs":[{"label":"Contexts"},{"label":"Blocks"}]},{"id":"p7Na0EYq5I45e4xeEYck","title":"after_all","pathname":"/contexts/blocks/nlp_entity-1","siteSpaceId":"sitesp_Dj86k","description":"If it was called, this block will always be executed at the end of the matching process, even if another block was executed previously.","breadcrumbs":[{"label":"Contexts"},{"label":"Blocks"}]},{"id":"207m8Kd7kc70ei4TZJge","title":"Sub Contexts","pathname":"/contexts/sub-contexts","siteSpaceId":"sitesp_Dj86k","description":"It's a kind of action block that creates a context within another, making posible to call within this any action block and even another sub context.","breadcrumbs":[{"label":"Contexts"}]},{"id":"1kLnv50fd91DZY8OcXsB","title":"Routing","pathname":"/contexts/routing","siteSpaceId":"sitesp_Dj86k","description":"Route an incoming message or event to a specific context of the conversation.","breadcrumbs":[{"label":"Contexts"}]},{"id":"EO0XvZsERaHFF8IvI7SU","title":"Sequences","pathname":"/contexts/sequences","siteSpaceId":"sitesp_Dj86k","description":"Configure and execute a serie of actions or sending messages, based on an event that occurred in the conversation.","breadcrumbs":[{"label":"Contexts"}]},{"id":"Dbx7G81vBAEVgd8yydMF","title":"Conversational Forms","pathname":"/contexts/conversational-forms","siteSpaceId":"sitesp_Dj86k","description":"This feature, which includes two methods ask() and answer() allows you to create conversational forms.","breadcrumbs":[{"label":"Contexts"}]},{"id":"-M1Xx9u4ZYorej6w8kDG","title":"Replies / Notifications","pathname":"/replies-notifications","siteSpaceId":"sitesp_Dj86k","description":"This chapter talks about the different formats used when replying to or sending an on-demand notification to a user."},{"id":"G2nEF1tZxhmbzmlhAJpg","title":"text","pathname":"/replies-notifications/text","siteSpaceId":"sitesp_Dj86k","description":"Simple text message.","breadcrumbs":[{"label":"Replies / Notifications"}]},{"id":"pSatI9sDzM1jmTwkQP1I","title":"button","pathname":"/replies-notifications/button","siteSpaceId":"sitesp_Dj86k","description":"A text followed by one or more buttons.","breadcrumbs":[{"label":"Replies / Notifications"}]},{"id":"lUA76FcljYqvLFiZtaAD","title":"quick_reply","pathname":"/replies-notifications/quick_reply","siteSpaceId":"sitesp_Dj86k","description":"A text message followed by one or more buttons that disappear after being clicked.","breadcrumbs":[{"label":"Replies / Notifications"}]},{"id":"zVXbNNfqfvIjO3BLys3q","title":"raw","pathname":"/replies-notifications/raw","siteSpaceId":"sitesp_Dj86k","description":"Creates messages or making calls to the each platform API, by sending specific raw parameters for each of them.","breadcrumbs":[{"label":"Replies / Notifications"}]},{"id":"eJD7aMScdXJVb2JgSTXc","title":"list","pathname":"/replies-notifications/list","siteSpaceId":"sitesp_Dj86k","description":"A list with multiple options, the click event on one of them, sends a payload that can be captured by a postback action block.","breadcrumbs":[{"label":"Replies / Notifications"}]},{"id":"rgBFd4rnK6ZCdA4qHPYG","title":"carousel","pathname":"/replies-notifications/carousel","siteSpaceId":"sitesp_Dj86k","description":"Messenger Generic Templates Carousel.","breadcrumbs":[{"label":"Replies / Notifications"}]},{"id":"Y4JJa5LbTYC7Aa5hnCqM","title":"url","pathname":"/replies-notifications/url","siteSpaceId":"sitesp_Dj86k","description":"Creates a message that includes a link to a website, as well as a title, subtitle, photo and a button label.","breadcrumbs":[{"label":"Replies / Notifications"}]},{"id":"vsJhoeoQjRExPUSN4zip","title":"typing","pathname":"/replies-notifications/typing","siteSpaceId":"sitesp_Dj86k","description":"Makes a delay between messages simulating a typing.","breadcrumbs":[{"label":"Replies / Notifications"}]},{"id":"3oBvWjDTVmh3lEHlgCJ0","title":"image","pathname":"/replies-notifications/image","siteSpaceId":"sitesp_Dj86k","description":"Creates a message with an image provided via a url.","breadcrumbs":[{"label":"Replies / Notifications"}]},{"id":"00HmRxm6id5hURNz1n7r","title":"video","pathname":"/replies-notifications/video","siteSpaceId":"sitesp_Dj86k","description":"Creates a message with a video provided via a url.","breadcrumbs":[{"label":"Replies / Notifications"}]},{"id":"i64Gg4wI3HG3s3HVmw3Z","title":"html","pathname":"/replies-notifications/html","siteSpaceId":"sitesp_Dj86k","description":"This method creates a message in HTML format.","breadcrumbs":[{"label":"Replies / Notifications"}]},{"id":"qsl7vwOhsaKHLmPjGwxY","title":"markdown","pathname":"/replies-notifications/markdown","siteSpaceId":"sitesp_Dj86k","description":"This method creates a message in Makrdown format.","breadcrumbs":[{"label":"Replies / Notifications"}]},{"id":"o62UEF9EnMdkhRab1pBv","title":"contact","pathname":"/replies-notifications/contact","siteSpaceId":"sitesp_Dj86k","description":"Creates a message with contact information.","breadcrumbs":[{"label":"Replies / Notifications"}]},{"id":"1LmSzLpq4PBjEtZ4PnWR","title":"location","pathname":"/replies-notifications/location","siteSpaceId":"sitesp_Dj86k","description":"A message with a location.","breadcrumbs":[{"label":"Replies / Notifications"}]},{"id":"pe4y89Z1ybndSA5Zoi9X","title":"recurring_notification_request","pathname":"/replies-notifications/recurring_notification_request","siteSpaceId":"sitesp_Dj86k","description":"Sends a subscription request for recurring notifications in Messenger, which can be: daily, weekly and monthly.","breadcrumbs":[{"label":"Replies / Notifications"}]},{"id":"8gumzI9R0FisXDtAhhzA","title":"messenger_generic_template","pathname":"/replies-notifications/messenger_generic_template","siteSpaceId":"sitesp_Dj86k","description":"Allows the creation of messages from Messenger Generic Templates.","breadcrumbs":[{"label":"Replies / Notifications"}]},{"id":"dhzx58KkMbPPTU1gCYag","title":"whatsapp_template","pathname":"/replies-notifications/whatsapp_template","siteSpaceId":"sitesp_Dj86k","description":"Allows the creation of messages from WhatApp Templates.","breadcrumbs":[{"label":"Replies / Notifications"}]},{"id":"IV5895kEgdeTt5zYvt6S","title":"Templates","pathname":"/templates","siteSpaceId":"sitesp_Dj86k","description":"It calls a template with extension \".erb\" and executes it. There may be just one or a serie of replies."},{"id":"-M1XwE2_a1etK8zr_cje","title":"Models","pathname":"/models","siteSpaceId":"sitesp_Dj86k","description":"Models are classes, They talk to the database, store and validate data."},{"id":"-M1Xx75NZ8-_Qmf1Jlbm","title":"User model","pathname":"/models/user-model","siteSpaceId":"sitesp_Dj86k","description":"It is one of the models that is predefined in a new project and is associated with the users table in the database.","breadcrumbs":[{"label":"Models"}]},{"id":"k9YNvkUnFbk3RhVFGBGP","title":"Scheduled Messages","pathname":"/scheduled-messages","siteSpaceId":"sitesp_Dj86k","description":"Schedule and send messages in the future."},{"id":"7i44UZ918Bgy92va6LQH","title":"Telegram Inline Query","pathname":"/telegram-inline-query","siteSpaceId":"sitesp_Dj86k","description":"Allows you to receive and answer an inline query  from Telegram."},{"id":"WVIiBuDkYi8Jcpbe5KxY","title":"Command Line","pathname":"/command-line","siteSpaceId":"sitesp_Dj86k","description":""},{"id":"sK4FLcPtE5qFJRVSob6k","title":"Global Methods","pathname":"/global-methods","siteSpaceId":"sitesp_Dj86k","description":""},{"id":"GHlm6CGsPgvhtN3BgwR5","title":"Internationalization","pathname":"/internationalization","siteSpaceId":"sitesp_Dj86k","description":"The I18n library is already integrated in Kogno, so the development of a multi-language chatbot is relatively easy."}]}