bot-handoff
Version:
Bot hand off module for the Microsoft Bot Framework. It allows you to transfer a customer from talking to a bot to talking to a human.
62 lines (56 loc) • 2.2 kB
text/typescript
import { IAddress, Message, UniversalBot } from 'botbuilder';
import { HandoffEventMessage } from '../eventMessages/HandoffEventMessage';
import { defaultFailureHandler, EventFailureHandler } from './EventFailureHandlers';
import { EventSuccessHandler } from './EventSuccessHandlers';
export interface IEventHandler {
success: EventSuccessHandler;
failure: EventFailureHandler;
}
export interface IEventHandlers {
connect: IEventHandler;
disconnect: IEventHandler;
queue: IEventHandler;
dequeue: IEventHandler;
watch: IEventHandler;
unwatch: IEventHandler;
}
export const defaultEventHandlers: IEventHandlers = {
connect: {
success: (bot: UniversalBot, eventMessage: HandoffEventMessage) =>
sendTextToAddress(bot, 'you\'re now connected to an agent', eventMessage.customerAddress),
failure: defaultFailureHandler
},
disconnect: {
success: (bot: UniversalBot, eventMessage: HandoffEventMessage) =>
sendTextToAddress(bot, 'you\'ve disconnected from the agent', eventMessage.customerAddress),
failure: defaultFailureHandler
},
queue: {
success: (bot: UniversalBot, eventMessage: HandoffEventMessage) =>
sendTextToAddress(
bot,
'you\'re all set to talk to an agent. One will be with you as soon as they become available',
eventMessage.customerAddress),
failure: defaultFailureHandler
},
dequeue: {
success: (bot: UniversalBot, eventMessage: HandoffEventMessage) =>
sendTextToAddress(bot, 'you\'re no longer in line for an agent', eventMessage.customerAddress),
failure: defaultFailureHandler
},
watch: {
success: (bot: UniversalBot, eventMessage: HandoffEventMessage) => {},
failure: defaultFailureHandler
},
unwatch: {
success: (bot: UniversalBot, eventMessage: HandoffEventMessage) => {},
failure: defaultFailureHandler
}
};
function sendTextToAddress(bot: UniversalBot, text: string, address: IAddress): void {
const msg = new Message()
.text(text)
.address(address)
.toMessage();
bot.send(msg);
}