Controles avançados de entrada e de saída padrão para uma integração de bate-papo personalizada

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 3 min. de leitura
  • Controles avançados de entrada e de saída devem ser mapeados para a integração de bate-papo personalizada na tabela Configurações de adaptador personalizado [sys_cs_custom_adapter_config]. Se um controle avançado não tiver uma implementação de transformador de saída, uma resposta não será servida ao usuário final e esse usuário poderá ter uma experiência de bate-papo insatisfatória.

    Os controles avançados padrão a seguir são mapeados para controles avançados de entrada e de saída. O parâmetro uiType se refere a um controle de tópico usado para criar conversas em Designer do Virtual Agent.

    Tabela 1. Controles avançados de entrada e de saída padrão
    Controle avançado Descrição
    ActionRichControl Este componente lida com os diferentes eventos e ações que ocorrem em uma conversa. Algumas ações podem não se aplicar a todos os canais. Por exemplo, StartSpinnerActionMsg é ignorado no SMS.

    O ServiceNow® Virtual Agent produz os seguintes tipos de mensagens da ação por meio dessa estrutura. A interface de bate-papo personalizada só reconhece determinados tipos de mensagens da ação.

    • SeparatorActionMsg || actionMsg instanceof
    • SystemActionMsg ||actionMsg instanceof
    • TopicFinishedActionMsg ||actionMsg instanceof
    • SwitchToVirtualAgentActionMsg || actionMsg instanceof
    • SwitchConversationActionMsg ||actionMsg instanceof
    • ChatSubHeaderActionMsg ||actionMsg instanceof
    • StartSpinnerActionMsg || actionMsg instanceof EndSpinnerActionMsg
    • SubscribetoSupportQueue || actionMsg instanceof
    • SubscribeToChatPresence ||actionMsg instanceof
    • SwitchToLiveAgentActionMsg ||actionMsg instanceof

    ActionRichControl quebra essas mensagens dentro do elemento actionMsg. Portanto, um único transformador de saída para ActionRichControl pode manipular todas essas mensagens. Não há necessidade de um transformador de entrada para esse componente.

    Parâmetro agentInfo Se o controle avançado for enviado por um atendente, o atributo agentInfo será adicionado ao controle avançado.
    Exemplo:
    {
         uiType: "someType",
         group: "someGroup"
         agentInfo: { sentFromAgent: true }  // please note that this object may contain more info in subsequent releases.
         ...
    } 
    DefaultPicker Mapas para Seletor de arquivos, Seletor de tópicos e controles Boolianos.
    Exemplo:
    {
        uiType: "Picker/TopicPicker/Boolean",
        group: "DefaultPicker",  
        nluTextEnabled: true/false,
        promptMsg: "", // optional (needed for TopicPicker)
        label: "The question for the list",   // always filled
        itemType: "Picture/List"  // needed to user key to expect picture attached
        options: [
            {
                label: "display label prompt",
                value: "the value required to satisfy the question",
                description: "a description of value_1 item"
    	    attachment: "www.foo",
                enabled: true/false
            }, 
    	...
        ]
    }

    O parâmetro opcional order permite especificar a ordem na qual os tópicos promovidos devem ser exibidos. Por exemplo:

    "options": [
        {
          label: "Check IT Ticket Status",
          value: "55720b465bf0201024f11fc40a81c72d",
          order: 100,
          enabled: true
        },
        {
          label: "Live Agent Support",
          value: "ce2ee85053130010cf8cddeeff7b12bf",
          order: 200,
          enabled: true
        },
        {
          label: "Open IT Ticket 2",
          value: "2a46cffbc7602010v088bbf603c260a7",
          order: 300,
          enabled: true
        }
    ]
    DefaultText Mapas para Entrada de texto, Texto de saída e controles de Carregamento de arquivo.
    Exemplo:
    {
        uiType: "InputText/OutputText/FileUpload/Picture",
        group: "DefaultText", 
        required: true/false,
        nluTextEnabled: true/false,
        itemType: "file/image/inputtext/outputtext",
        maskType: "SECURE/SENSITIVE/NONE"  // null except for InputText/OutputText
        label: "The Question?"        
    }
    DefaultDate Mapas para controles de data e hora.
    {
        uiType: "Date/DateTime/Time",
        group: "DefaultDate", 
        required: true/false,
        nluTextEnabled: true/false,   
        label: "The Question?"
         
    }
    DefaultOutputLink Mapas para controles de resposta do link.
    Exemplo:
    {
        uiType: "OutputLink",
        group: "DefaultOutputLink",
        label: "link label",
        header: "link header",
        type: "link",
        value: {
            action: "www.foo",
        }	
    }
         
    }
    DefaultOutputImage Mapas para controles de resposta de imagem.
    Exemplo:
    {
        uiType: "OutputImage",
        group: "DefaultOutputImage",
        value: "www.foo"
    }
    DefaultOutputCard Mapas para controles de resposta do cartão.
    Exemplo:
    {
        uiType: "OutputCard",
        group: "DefaultOutputCard",
        templateName: "Card",
        data: "some json data string"
    }
    DefaultOutputHtml Mapas para controles de resposta HTML.
    Exemplo:
    {
        uiType: "OutputHtml",
        group: "DefaultOutputHtml",
        style: "inline",
        height: 100,
        width: 100,
        value: "<div>html</div>"
    }
    DefaultOutputTable Mapas para controles de resposta da tabela.
    Exemplo:
    {
        uiType: "OutputTable",
        group: "DefaultOutputTable",
        label: "Table Title",
        headers: ["Column 1", "Column 2"],
        navigationBtnLabel: "See next",
        data: [
            ["foo1", "foo2"],
            ["bar1", "bar2"]
        ]
    }
    DefaultGroupedPartsOutputControl Mapas para controles de várias respostas.
    Exemplo:
    {
        uiType: "GroupedPartsOutputControl",
        group: "DefaultGroupedPartsOutputControl"
        groupPartType: "Link",
        header: "header message",
        values: [
    	{
    	    action: "www.foo",
    	    description: "description",
    	    label: "link_1 label",
    	    context: "ITSM"
    	},
    	...
        ]
    }
    DefaultMultiPartOutput Mapas para controles de várias respostas.
    Exemplo:
    {
        uiType: "MultiPartOutput",
        group: "DefaultMultiPartOutput"
        navigationBtnLabel: "Go next",
        content: {
            uiType: "OutputHtml",
            style: "inline",
            type: "html",
            height: 100,
            width: 100,
            value: "<div>html</div>"
         }
    }
    DefaultCustomControl Maps para controles personalizados.
    Exemplo:
    {
        uiType: "CustomControl",
        group: "DefaultCustomControl",
        name: "The name of the Custom Control (sys_cs_custom_control.name)",
        required: true/false,
        uxComponentDefinitionSysId: "seismicComponentId" // or null if not
        isInput: true/false, // whether to wait for a response value or if just output
        serializedControlData: "User defined JSON from generateControlData function";    
    }