v0.12.0
0.12.0 - 2020-05-26
Added
- Added ESLint Limit Cyclomatic Complexity for all projects.
- Added Pull Request Templates.
- Scripts to count lines of code on each package.
- Added new documentation built with
Docusaurus
. Check it out at https://docs.botonic.io/.
- Enable more checks in
tsconfig.json
.
- Enable more checks in
- Transferring conversations to an agent is allowed with its identifier (id or email) with
withAgentId(agentId)
orwithAgentEmail(agentEmail)
method ofHandOffBuilder
. 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
.
- Transferring conversations to an agent is allowed with its identifier (id or email) with
General features:
- Type definitions improvement in
index.d.ts
. - Improved
Text.serialize
method.
- Type definitions improvement in
New webchat features:
- Breaking change: The text of a Button/Reply is now sent along with its payload. You can use
button: {messageType: 'postback'}
inwebchat/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
inwebchat/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.
- Breaking change: The text of a Button/Reply is now sent along with its payload. You can use
Multichannel:
- Customize
Multichannel
visualization. Multichannel
to support letter indexes.- Compact
Multichannel
Text
andCarousel
. Multichannel
to allow separating messages with custom string.
- Customize
- 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
- Added new package
@botonic/plugin-inbenta
to integrate the Inbenta Knowledge Management API. Please refer to its README for more information.
- Added new package
Changed
- Most eslint rules config have been moved to root
.eslintrc.js
.
- Most eslint rules config have been moved to root
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).
- Upgraded
node-nlp
dependency. - Use of
ContextWithLocale
if locale required.
- Upgraded
Fixed
- 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 offs.rmdirSync
. - Templates: Call
CleanWebpackPlugin
with{ cleanOnceBeforeBuildPatterns: ['dist'] }
to prevent occasional builds from crashing. We strongly suggest to add this line in your bot'swebpack.config.js
if updating from previous versions.
- Preserved
- 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
andtriggerButton.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.
- Fixed sending wrong payloads when a handover was ended in
- @botonic/plugin-contentful
BotonicMsgConverter
is now usingreplaceEmptyStringsWith
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.