Scripts de ação do Virtual Agent
Você precisa gravar um conjunto de scripts de ação e subfluxo obrigatórios Workflow Studio para passar os dados do usuário para o VACS, aplicar transformações e enviar a resposta de volta para o endpoint da interface de bate-papo.
Provedor e scripts de entrada/saída
Um provedor, como a Twilio, fornece o recurso de bate-papo. Os scripts de ação do usuário executam ações do provedor, bem como a configuração de integração de bate-papo personalizada de conversação para ações de transformador de entrada e de saída para o chatbot ou para conversas personalizadas. São fornecidos exemplos de cada um dos scripts. Eles incluem descrições do que cada script faz, bem como a ação de entrada e a ação de saída. Também são exibidos exemplos do script JSON.
Use Workflow Studio para criar esses scripts para transformar mensagens do servidor e do cliente. O provedor, o remetente e os scripts do transformador de entrada/saída são necessários. Você pode usar os scripts adicionais para acrescentar funcionalidade ao bate-papo.
| Nome do script | Finalidade | Obrigatório (S/N) |
|---|---|---|
| Atributo do provedor | Contém um token de autenticação do provedor, um identificador do usuário, uma entrada do usuário e variáveis de contexto. | S |
| Ação do remetente | Agrupa a solicitação e envia uma resposta de forma assíncrona por meio de Workflow Studio ou do Hub de integração. |
S |
| Processador de resposta | Executa ações da plataforma, como um status de mensagem de atualização, baseadas em uma resposta recebida para uma mensagem de saída. | N |
| Ação contextual | Oferece suporte a ações contextuais. | N |
| Ação vincular à conta | Fornece um retorno de chamada relacionado ao sucesso ou ao insucesso da vinculação da conta. | N |
| Transformador de saída | Transforma o controle compatível de um servidor de bate-papo em renderização específica da interface de bate-papo. | S |
| Transformador de entrada | Opcional. Você pode usar os controles avançados padrão se eles se aplicarem ao seu provedor de bate-papo. Você não precisa fornecer uma transformação de entrada separada para cada controle de entrada. Se um comportamento padrão não funcionar, é possível substituir o padrão pela sua própria transformação de entrada para um controle de servidor do Virtual Agent específico. | S |
Script de ação de atributos do provedor.
| Entrada | Saída |
|---|---|
|
|
Exemplo: script de ação de atributos do provedor.
(function execute(inputs, outputs) {
var headers = (inputs.headers);
var payload = (inputs.payload);
// check if an authentication token was included. this is optional.
var smsUtil = new VASMSTwilioUtil();
outputs.token = JSON.stringify(smsUtil.getToken(headers, payload));
var data = payload.data;
var request_context = {};
// inspect the actual message. it could be an MMS (attachment) or raw text
if (data['MediaUrl0']) {
var attachment_value = {};
attachment_value.url = data['MediaUrl0'];
attachment_value.content_type = data['MediaContentType0'];
attachment_value.name = smsUtil.getFileName(attachment_value.url , attachment_value.content_type);
request_context.attachment_value = attachment_value;
} else {
request_context.typed_value = data['Body'];
}
// set the mandatory outputs
outputs.request_context = request_context;
outputs.provider_user_id = data.From;
})(inputs, outputs);
Script de ação do remetente (desativado no Quebec, verifique o subfluxo do remetente)
O script de ação do remetente sabe como enviar uma mensagem ao provedor. O script deve invocar de forma assíncrona um subfluxo Workflow Studio ou Integration Hub. O Virtual Agent está liberado para continuar processando mensagens em vez de tentar enviar solicitações externas.
| Entrada | Saída |
|---|---|
|
Nenhum |
Exemplo: script de ação do remetente.
(function execute(inputs, outputs) {
var results = inputs.results;
// transform the inputs to something this custom subflow knows about
var sendInputs = {
app_inbound_id : inputs["app_inbound_id"],
channel_user_id: inputs["channel_user_id"],
messages: JSON.stringify(results)
};
// invoke an asynchronous subflow which will send the external request. so this sender script will immediately return,
// freeing up the chat server thread to do further message processing while putting the external request work on the
// Workflow Studio/Integration Hub
sn_fd.FlowAPI.startSubflowQuick('sn_va_sms_twilio.va_sms_twilio_adapter_send_sms', sendInputs);
})(inputs, outputs);
Script de subfluxo do remetente
O script de subfluxo do remetente sabe como enviar uma mensagem ao provedor. O script deve invocar de forma assíncrona um subfluxo Workflow Studio ou Integration Hub. O Virtual Agent está liberado para continuar processando mensagens em vez de tentar enviar solicitações externas. Ao criar um subfluxo, não há uma chamada de ação dentro do subfluxo.
}else{
outputs.sendmessage = true;
messages = inputs.results.results;
outputs.from = from;
outputs.to = to;
outputs.messages = getMessages(messages);
}
Script de ação contextual
O script de ação contextual executa ações especiais de palavra-chave, como digitar agente estando em um tópico Virtual Agent para ser imediatamente entregue a um agente dinâmico.
| Entrada | Saída |
|---|---|
|
Nenhum |
Exemplo: script de ação contextual.
(function execute(inputs, outputs) {
var contextual_action = inputs.request_context.contextual_action;
if (contextual_action === "END_CONVERSATION") {
sn_cs.VASystemObject.endConversation(inputs.conversation_id);
} else if (contextual_action === "AGENT") {
sn_cs.VASystemObject.switchToLiveAgent(inputs.conversation_id);
} else if (contextual_action === "START_CONVERSATION") {
sn_cs.VASystemObject.startConversation(inputs.conversation_id);
}
})(inputs, outputs);
Script de ação vincular à conta
O script de ação vincular à conta contém identificadores para o usuário que está fazendo a vinculação. O script também contém a conta à qual está vinculado.
| Entrada | Saída |
|---|---|
|
Nenhum |
Exemplo: script de ação vincular à conta.
(function execute(inputs, outputs) {
var richControl = (inputs.rich_control);
var value = richControl.value;
outputs.result = richControl.header + ': ' + value.action;
})(inputs, outputs);
Script de ação do processador de resposta
O script de ação do processador de resposta executa ações especializadas baseadas na resposta a uma solicitação de envio de mensagem. A estrutura já faz o rastreamento básico de status de mensagens.
| Entrada | Saída |
|---|---|
|
Nenhum |
Exemplo: script de ação do processador de resposta.
(function execute(inputs, outputs) {
gs.debug("Response from provider: message_id = " + inputs.message_id + ", status_code = " +
inputs.status_code + ", headers = " + JSON.stringify(inputs.headers) + ", body = " + inputs.body);
})(inputs, outputs);
Scripts do transformador de saída
Os scripts do transformador de saída convertem as mensagens Virtual Agent de saída em um protocolo relacionado à integração do bate-papo personalizada de conversação.
Entrada.
- rich_controls (JSON): componente de controle avançado do servidor do Virtual Agent que será transformado.
- carga (JSON): última resposta recebida de um solicitante.
Saída.
resultado (cadeia de caracteres) - Mensagem do componente apropriado ao provedor a ser enviada.
| Nome do transformador de saída | Exemplo de script. |
|---|---|
| Virtual Agent - Transformador de saída de texto padrão do adaptador da Twilio para SMS | |
| Virtual Agent - Transformador de saída do link padrão do adaptador da Twilio para SMS | |
| Virtual Agent - Transformador de saída do seletor padrão do adaptador da Twilio para SMS | |
| Virtual Agent - Transformador de saída de multilink padrão do adaptador da Twilio para SMS | |
| Virtual Agent - Transformador de saída do cartão padrão do adaptador da Twilio para SMS. | |
Scripts do transformador de entrada
Os scripts do transformador de entrada convertem as mensagens de integração de bate-papo padronizadas de conversação em um protocolo que é reconhecido por Virtual Agent. Ele determina o valor obrigatório a ser injetado ao controle avançado que é apresentado ao usuário.
Entrada.
- request_context (JSON) - A solicitação aprovada pelo script de Atributo do provedor.
- rich_control (JSON) - O último controle avançado enviado ao solicitante que contém a "pergunta" original.
Saída.
- valor - sys_id ou valor de texto.
- search_text - Texto usado se o solicitante selecionar algo inesperado. Por exemplo, um usuário digitou algo com o qual o NLU pode ajudar, como "Nenhuma dessas opções corresponde ao que quero" em resposta a um componente de seletor de tópico.
| Nome do transformador de entrada | Exemplo de script |
|---|---|
| Virtual Agent - Transformador de entrada de texto padrão do adaptador da Twilio para SMS. Finalidade: encontrar a resposta em texto para a pergunta InputText apresentada |
|
| Virtual Agent - Transformador de entrada do seletor padrão do adaptador do Twilio para SMS Objetivo: encontrar o sys_id da opção selecionada pelo usuário para essa pergunta do seletor. Esse script usa o mesmo algoritmo do transformador de saída. Se nenhuma opção estiver selecionada e o usuário tiver digitado algo, "search_text" será definido e alimentado no NLU, se estiver habilitado nesta instância. |
|