App Configuration

In this section, you will learn more about the essential configurations of a Jovo Voice App.

Jovo App Structure

A Jovo voice app is divided into four main building blocks: index.js (server configuration), app.json (project configuration), /app (app configuration and logic), and /models (Jovo Language Model).

Jovo Folder Structure

index.js - Server Configuration

Everything related to running your voice application, either in Lambda or using a webhook (recommended for local prototyping), is dealt with in index.js.

You can find all the information regarding server configuration in this section: App Configuration > Server.

app.json - Project Configuration

The app.json file stores all the necessary information for your Jovo project and is automatically created with the first jovo init command.

Learn more about everything that can go into the app.json here: App Configuration > app.json.

/app - Application Logic

The /app folder, and specifically app.js is used for the logic of your voice application, which contains handlers, intents and the configuration of your voice app (we will get to that shortly).

You can find everything related to the app logic here: App Logic.

/models - Language Model

The models folder contains the Jovo Language Model, which can be used to create and update platform specific language models using the Jovo CLI.

The idea is to maintain a single language model locally instead of having to go to the platform developer consoles independently.

In the /models folder, every language gets a file. For example, here's how a file en-US.json could look like:

You can find out more about that here App Configuration > Models.

How to Add Configurations

To add configurations, you have two options: You can either add them at the beginning of app.js in the constructor or you use the setter function of each configuration.

You can find a list of all available configurations below.

To add them with the constructor you simply change the content of the config object at the beginning of app.js:

The other possibility is to use one of the setter functions:

This is the default configuration:

Available Configurations

Below is a list of all configurations:

Category Name Description
Routing intentMap Maps incoming intents to specified intent names
intentsToSkipUnhandled Intents which should not be mapped to 'Unhandled' when not found in a certain state
Data inputMap Maps incoming input (slots and parameters) to specified input names
logging Logs both requests and responses
requestLogging Logs incoming requests
responseLogging Logs outgoing responses
requestLoggingObjects Limits request logs to the provided objects
responseLoggingObjects Limits response logs to the provided objects
User userDataCol Changes the name of the user data column in the database
userMetaData Change the default configurations for storing user meta data
userContext Change the default configurations for storing context data
Output i18n Enable multilingual output for your voice app
Integrations Databases Switch between supported database integrations
Analytics Enable analytics integrations

Comments and Questions

Any specific questions? Just drop them below. Alternatively, you can also fill out this feedback form. Thank you!

Join Our Newsletter

Be the first to get our free tutorials, courses, and other resources for voice app developers.