Skip to content

Repository files navigation

botbuilder-timeout

npmlicensedependencies StatusdevDependencies Statusmaintained

© 2017, Claudius Mbemba (@user1m). MIT License.

Module for Microsoft Bot Framework to enable your bot to prompt the user if the bot detects inactivity and ultimately end the conversation if no user activity after a defined period of time.

Example:

Example Screenshot

Installation

npm install botbuilder-timeout --save-dev

Tested on Node.js v8 or newer

Usage

consttimeout=require("botbuilder-timeout");constconnector=newbuilder.ChatConnector({...});constoptions={PROMPT_IF_USER_IS_ACTIVE_MSG: "Hey are you there?",PROMPT_IF_USER_IS_ACTIVE_BUTTON_TEXT: "Yes I am",PROMPT_IF_USER_IS_ACTIVE_TIMEOUT_IN_MS: 15000,END_CONVERSATION_MSG: "Conversation Ended",END_CONVERSATION_TIMEOUT_IN_MS: 10000};constbot=newbuilder.UniversalBot(connector);timeout.setConversationTimeout(bot,options);

Options

OptionDescription

PROMPT_IF_USER_IS_ACTIVE_MSG

String
Default: 'Are you there?'. Message presented to user to confirm activity.

PROMPT_IF_USER_IS_ACTIVE_BUTTON_TEXT

String
Default: 'Yes'. Button text presented during prompt checking for activity.

PROMPT_IF_USER_IS_ACTIVE_TIMEOUT_IN_MS

Number
Default: 30000. Time in milliseconds before prompt with PROMPT_IF_USER_IS_ACTIVE_MSG message is presented.

END_CONVERSATION_MSG

String
Default: "Ending conversation since you've been inactive too long. Hope to see you soon." Message sent to user when conversation is ended.

END_CONVERSATION_TIMEOUT_IN_MS

Number
Default: 15000. Time in milliseconds before conversation is ended with END_CONVERSATION_MSG message.

Full Example with Botbuilder (Node.js/Typescript)

importexpress=require('express');import*asbuilderfrom'botbuilder';import{setConversationTimeout}from"botbuilder-timeout";console.log(`BOT ID: ${process.env.MICROSOFT_APP_ID}\nBOT PASS: ${process.env.MICROSOFT_APP_PASSWORD}`);// Create bot and add dialogsconstserver=express();constport=process.env.port||process.env.PORT||3978;constconnector=newbuilder.ChatConnector({appId: process.env.MICROSOFT_APP_ID,appPassword: process.env.MICROSOFT_APP_PASSWORD});constbot=newbuilder.UniversalBot(connector);bot.dialog('/',[(session,args,next)=>{builder.Prompts.text(session,`What's your name?`);},(session,args,next)=>{session.send(`Hi ${session.message.text}`);}]);constoptions={PROMPT_IF_USER_IS_ACTIVE_MSG: "Hey are you there?",PROMPT_IF_USER_IS_ACTIVE_TIMEOUT_IN_MS: 15000,END_CONVERSATION_MSG: "Conversation Ended",END_CONVERSATION_TIMEOUT_IN_MS: 10000};setConversationTimeout(bot,options);server.post('/api/messages',connector.listen());server.listen(port,()=>{console.info(`Server Up: Listening at port ${port}`);});

Change-Log

See CHANGELOG.md.

License

See MIT.

About

Module for Microsoft Bot Framework to enable your bot to prompt the user if user is inactive and ultimately end the conversation if no user activity after a defined period of time.

Resources

Stars

8 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages