0.12.0 - 2020-26-05


  • @botonic/core

    • Transferring conversations to an agent is allowed with its identifier (id or email) with withAgentId(agentId) or withAgentEmail(agentEmail) method of HandOffBuilder. Now queue is not mandatory. The case will be assigned to the first queue which agent belongs.
    • getAgentVacationRanges is added to know availability of agents.
    • More router tests.
    • Type definitions improvement in index.d.ts.
  • @botonic/react

    • General features:

      • Type definitions improvement in index.d.ts.
      • Improved Text.serialize method.
    • New webchat features:

      • Breaking change: The text of a Button/Reply is now sent along with its payload. You can use button: {messageType: 'postback'} in webchat/index.js to enable the previous behavior.
      • Breaking change: Markdown is rendered by default within all the Text components. To disable it, you can declare the component as follows: <Text markdown={false}>Your text</Text>.
      • Be able to pass additional styles to Custom Messages.
      • Persistent Menu customizable with property customPersistentMenu in webchat/index.js.
      • Persistent Menu button customizable with property customMenuButton.
      • Possibility to enable timestamps in messages.
      • More unit tests added for Webchat.
      • More adaptable Webchat in iOS.
    • Multichannel:

      • Customize Multichannel visualization.
      • Multichannel to support letter indexes.
      • Compact Multichannel Text and Carousel.
      • Multichannel to allow separating messages with custom string.
  • @botonic/plugin-contentful

    • Passing Normalizer to CMS is now allowed.
    • Markup support for WhatsApp and Markdown.
    • Stemmers/tokens for Russian.
    • Normalizer now throws an exception for empty texts.
    • Keyword search now sets the result's score field
  • @botonic/plugin-inbenta

    • Added new package @botonic/plugin-inbenta to integrate the Inbenta Knowledge Management API. Please refer to its README for more information.


  • Project

    • Most eslint rules config have been moved to root .eslintrc.js.
  • @botonic/react

    • webchatReducer moved to its own file.
    • webchatReducer split to reduce complexity.
    • Calls to renderBrowser/renderNode unified.
    • emoji-picker-react updated to latest version 3.7.1 (visual changes).


  • Project

    • pre-commit was not aborting when lint failed.
    • Fixed several eslint warnings.
  • @botonic/cli
    • Preserved src/nlu directories for all templates (added .gitkeep file). Remove these files before running botonic train.
    • Added missing calls with await.
    • Used rimraf in favor of fs.rmdirSync.
    • Templates: Call CleanWebpackPlugin with
      { cleanOnceBeforeBuildPatterns: ['dist'] } to prevent occasional builds from crashing. We strongly suggest to add this line in your bot's webpack.config.js if updating from previous versions.
  • @botonic/react

    • Fixed sending wrong payloads when a handover was ended in botonic serve mode.
    • postMessage promises are now forwarded.
    • Better scrollbar handling when Webchat is hovered.
    • Limit attachment sizes to 10MB.
    • Fixed attachments crashing in production build for Webchat (media messages will be no longer stored as binary data in local storage, so the content will only be available temporarily in botonic serve mode).
    • Webchat's theme properties such message.bot.image, header.image, intro.image and triggerButton.image are now accepting URLs.
    • Fixed issue causing Botonic Logo to be visible during few milliseconds in production.
    • Handled parent page scrolling issues in Webchat for iOS.
  • @botonic/plugin-contentful
    • BotonicMsgConverter is now using replaceEmptyStringsWith option with value.
    • New operations are available to clone Contents performing composable transformations.
    • New operations are available to traverse the chain of followUp fields of MessageContent.
    • When calculating the match substring and score between an utterance and a keyword, tokens are preferred to stems when comparing to keywords.
Was this article useful?