Jovo v4.1: Alexa Conversations, ISP, Slack Plugin, and AWS Lex
Published by Alex Swetlow & Jan König on Dec 17, 2021.
In November, we launched Jovo v4
, which was our most exciting update so far. The Jovo v4.1
now builds on top of that and comes with many improvements and new integrations. Learn more below.
Introduction
v4.1
is all about building on top of the v4
architecture and showing what can be built with it. The most notable features are:
- Alexa Conversations: Build Alexa Skills that make use of the Alexa Conversations dialogue management engine
- Alexa ISP: Offer in-skill purchases in your Alexa Skills
- AWS Lex: Integrate your Jovo apps with Lex speech recognition and natural language understanding
- Slack Plugin: Send errors and notifications to a Slack channel
v4.1
also comes with many smaller improvements and bugfixes.
Alexa Conversations
We're excited to offer an integration with Alexa Conversations that uses machine learning driven dialogue management.
This way, you can build hybrid Alexa Skills where rules driven interactions can be built with Jovo components and handlers, and then delegate to probabilistic dialogue management for tasks like slot filling:
import { DialogDelegateRequestOutput } from '@jovotech/platform-alexa'; // ... someHandler() { // ... return this.$send(DialogDelegateRequestOutput, { target: 'AMAZON.Conversations', updatedRequest: { type: 'Dialog.InputRequest', input: { name: '<utteranceSetName>', // Utterance set must use the Invoke APIs dialog act } }); }
You can find a sample repo here and learn more in the Jovo docs.
Alexa ISP
The integration for Alexa ISP allows you to interact with the Alexa In-Skill Purchasing (ISP) engine.
Here is an example how you can accept a request after a successful purchase using a helper for the @Handle
decorator:
import { Handle } from '@jovotech/framework'; import { AlexaHandles, IspType, PurchaseResult } from '@jovotech/platform-alexa'; // ... @Handle(AlexaHandles.onIsp(IspType.Buy, PurchaseResult.Accepted)) // or ('Buy', 'ACCEPTED') successfulPurchase() { return this.$send({ message: 'Thanks for buying.' }); }
AWS Lex
We now offer an integration with AWS Lex, which is a service that can do both automatic speech recognition (ASR) and natural language understanding (NLU).
You can install it like this:
$ npm install @jovotech/slu-lex
Slack Plugin
The Slack Plugin allows you to monitor your Jovo apps as it automatically sends errors to a Slack channel.
You can install it like this:
$ npm install @jovotech/plugin-slack
As an upgrade to the v3
version of this plugin, you can even send notifications manually right from your handlers:
this.$slack.sendMessage('Some notification');
Getting Started with Jovo
There are several ways how you can get started with Jovo:
- Follow our getting started guide to install the Jovo CLI and create a new project.
- Coming from Jovo
v3
? Follow our migration guide. - Take a look at our
v4
template for TypeScript and JavaScript.
Breaking Changes
When you're building for Alexa and run into problems while bundling the code, make sure that the bundle script in your package.json
file includes the following:
{ "scripts": { "bundle": "[...] --external:@alexa/*" } }
The reason for this is that esbuild
can't resolve vscode
, a dependency used in @alexa/acdl
, which is used for the Alexa Conversations integration.