Solution features - Serverless Bot Framework

Solution features

Supported languages

This solution supports the languages currently supported in Amazon Lex: English, French, German, Italian, Spanish, and Japanese. For more information, refer to Languages and locales supported by Amazon Lex in the Amazon Lex V2 Developer Guide.

Conversation types

This solution is configured to support two types of conversations:

Static conversations

Static conversations do not require access to external resources or any specialized AWS Lambda functions to implement the bot’s logic. The Amazon Lex bot answers all requests by looking for instructions inside its configuration in the form of intents and utterances.

Dynamic conversations

Dynamic conversations are used for more complex interactions and invoke Lambda functions to perform additional tasks, such as interacting with backend resources to validate input, retrieve data, or invoke external API operations.

For more information about how to create bots, interpret input parameters, and define external Lambda functions that implement the bot’s logic, refer to Architectural components.

Conversation logs

By default, this solution does not store conversation logs. Conversation logs can be stored by enabling the feature in Amazon Lex. Refer to Configuring conversation logs in the Amazon Lex V2 Developer Guide for more information.

Sample web application

This solution includes a sample web application that you can customize to create your own application that fits your business needs. The sample web application includes the following:

  • The main messages exchanged between client devices and the API endpoint using both text and audio outputs.

  • Client-side components to support audio and text inputs.


The sample web application leverages a Google Chrome web browser to access your computer’s microphone and transform input from speech to text format before sending it to the Serverless Bot Framework API endpoint.

  • Five bots:

    • A static bot to answer the bot’s name.

    • A static bot to provide help instructions.

    • A dynamic bot that can be used to get weather forecasts using an API or a random simulation. This bot can be used as a reference to securely use API keys with Lambda backed functions. In the Lambda function, which makes these API requests, the API key is cached for the duration of the Lambda container’s life, so changes to the API key in Systems Manager will not be reflected until the Lambda container is taken down.

    • A dynamic bot for user feedback, which is stored in DynamoDB. This can be used as a reference to implement multi-step Lambda backed functions.

    • A dynamic chatbot that demonstrates how to integrate a chatbot with a back end database, such as Amazon DynamoDB, to build an automated order taking service (in this example, a pizza ordering service). When the customer starts their order, the chatbot retrieves the pizza menu from the back end database, and displays it to the customer. The chatbot interacts with the customer to extract order details (for example, type and size of the pizza) and confirms the order. The order history is stored in a DynamoDB table, which helps facilitate a personalized customer experience.


To add Amazon Lex chatbot functionality to an existing web application, refer to the Deploy a Web UI for Your Chatbot blog post.