Ir para o conteúdo

Agente de Vendas Jitterbit

Visão geral

A Jitterbit fornece o Agente de Vendas aos clientes através do Jitterbit Marketplace. Este agente foi desenvolvido para permitir que o time interno de Vendas da sua organização funcione de forma mais eficiente. O agente usa a técnica de Geração Aumentada por Recuperação (RAG), que combina o raciocínio de LLM com acesso a ferramentas externas e fontes de dados. Ele realiza o seguinte:

  • Conecta-se ao NetSuite e Salesforce para buscar pedidos de vendas em tempo real, preços e dados de clientes usando Jitterbit Studio.
  • Integra-se com um LLM para potencializar um chatbot de Agente de Vendas inteligente acessado por meio de uma API personalizada criada com Jitterbit API Manager.

Este documento explica como configurar e operar este agente de IA. Aborda a arquitetura e pré-requisitos, exemplos de prompts que mostram o que o agente pode fazer, e etapas para instalar, configurar e operar o agente de IA.

Arquitetura do agente de IA

O diagrama a seguir retrata a arquitetura implementada no Agente de Vendas:

--- config: themeVariables: lineColor: '#6b7280' edgeLabelBackground: '#f5f5f5' flowchart: curve: 'monotoneX' padding: 25 --- graph classDef default fill:white, stroke:black, stroke-width:3px, rx:15px, ry:15px SLACK_BOT(fab:fa-slack
Slack bot) GENERIC_UI_APP(
Generic UI app) JB_APIM_A((
Jitterbit API Manager
custom API)) JB_APIM_B((
Jitterbit API Manager
custom API)) MAIN_ENTRY(Main Entry - Slack API Request Handler workflow) GENERIC_API_RH(Generic API Request Handler workflow) MAIN(Main - AI Agent Tools Logic workflow) AUTH_UTIL@{ shape: delay, label: "Authorization utility" } AUTH_WF[Utility - User Authorization and Session workflow] HISTORY_CONTEXT_UTIL@{ shape: delay, label: "History context utility" } INSERT_QUERY_QA_HIST_WF[Utility - Bot Chat History Storage workflow] TOOLS_ROUTER_OP[Tools Router operation] DECISION@{ shape: diamond, label: "Identify which function is called based on LLM response" } CUSTOMER_LOOKUP_TOOL@{ shape: delay, label: "Customer lookup tool" } CUSTOMER_LIST_WF[Tool - Customer Lookup workflow] PRICING_TOOL@{ shape: delay, label: "Pricing tool" } PRICING_DETAILS_WF[Tool - Pricing Sheets workflow] ORDER_FORM_TOOL@{ shape: delay, label: "Order form tool" } ORDER_FORM_DETAILS_WF[Tool - Customer Order Details workflow] FUNCTION_RESPONSE_TO_OPENAI[Function response to Azure Open AI] FUNCTION_RESPONSE[Function response] subgraph BOUNDARY[**Sales agent architecture**] LLM_NAT_LANG_REPLY[LLM-crafted natural-language reply] AZURE_OPENAI[ Azure Open AI] subgraph CHATBOT_UI_APPS[Chatbot UI apps] SLACK_BOT GENERIC_UI_APP end subgraph JB_AI[ **Jitterbit Studio project**] JB_APIM_A JB_APIM_B MAIN_ENTRY GENERIC_API_RH MAIN DECISION TOOLS_ROUTER_OP subgraph GROUP2[ ] HISTORY_CONTEXT_UTIL AUTH_UTIL ORDER_FORM_TOOL PRICING_TOOL CUSTOMER_LOOKUP_TOOL end subgraph GROUP3[ ] CUSTOMER_LIST_WF PRICING_DETAILS_WF ORDER_FORM_DETAILS_WF AUTH_WF end subgraph GROUP4[ ] FUNCTION_RESPONSE --> FUNCTION_RESPONSE_TO_OPENAI FUNCTION_RESPONSE_TO_OPENAI -->|Store Q and A| INSERT_QUERY_QA_HIST_WF end end end SLACK_BOT --User question--> JB_APIM_A GENERIC_UI_APP -->|User question| JB_APIM_B JB_APIM_A --> MAIN_ENTRY --> MAIN JB_APIM_B --> GENERIC_API_RH --> MAIN MAIN --> HISTORY_CONTEXT_UTIL MAIN ----> AUTH_UTIL --> AUTH_WF MAIN --> DECISION --> TOOLS_ROUTER_OP HISTORY_CONTEXT_UTIL --> INSERT_QUERY_QA_HIST_WF TOOLS_ROUTER_OP --> ORDER_FORM_TOOL ORDER_FORM_TOOL --> ORDER_FORM_DETAILS_WF ORDER_FORM_DETAILS_WF --> FUNCTION_RESPONSE TOOLS_ROUTER_OP --> PRICING_TOOL PRICING_TOOL --> PRICING_DETAILS_WF PRICING_DETAILS_WF --> FUNCTION_RESPONSE TOOLS_ROUTER_OP --> CUSTOMER_LOOKUP_TOOL CUSTOMER_LOOKUP_TOOL --> CUSTOMER_LIST_WF CUSTOMER_LIST_WF --> FUNCTION_RESPONSE FUNCTION_RESPONSE_TO_OPENAI ---->|REST call| AZURE_OPENAI AZURE_OPENAI -->|Response| FUNCTION_RESPONSE_TO_OPENAI CHATBOT_UI_APPS --- LLM_NAT_LANG_REPLY LLM_NAT_LANG_REPLY --- FUNCTION_RESPONSE_TO_OPENAI classDef Clear fill:white, stroke:white, stroke-width:0px classDef Plain fill:white, stroke:black, stroke-width:3px, rx:15px, ry:15px classDef BoundaryStyle fill:white, stroke-width:0px, rx:15px, ry:15px class CHATBOT_UI_APPS,JB_AI Plain class GROUP2,GROUP3,GROUP4 Clear class BOUNDARY BoundaryStyle

Pré-requisitos

Para usar o Agente de Vendas, os componentes a seguir são necessários ou assumidos no design do agente.

Componentes do Harmony

Você deve ter uma licença do Jitterbit Harmony com acesso aos seguintes componentes:

Endpoints suportados

Os endpoints a seguir estão incorporados ao design do agente, mas outros sistemas podem ser acomodados modificando as configurações de endpoint e workflows do projeto.

Modelo de linguagem grande (LLM)

O agente de IA usa Azure OpenAI como provedor de LLM. Para usar o Azure OpenAI, você deve ter uma assinatura do Microsoft Azure com permissões para criar e gerenciar o Azure OpenAI com um modelo gpt-4o implantado.

Dica

Para selecionar níveis de preço com base em seus requisitos específicos e uso previsto, consulte Preços do Azure OpenAI.

Interface de chat

O design do agente incorpora o Slack como a interface de chat para interagir com o agente de IA.

NetSuite

O agente conecta-se ao NetSuite como a fonte principal para formulários de pedidos de clientes. A integração permite que o agente recupere, atualize ou valide dados de pedidos em tempo real durante as interações do usuário.

Salesforce

O agente usa o Salesforce para gerenciar contas de clientes e preços de produtos. Essa integração fornece ao agente os dados atuais necessários para gerar cotações precisas e detalhes de contas.

Exemplos de prompts

Aqui estão exemplos de prompts que o Agente de Vendas pode processar com acesso aos dados apropriados:

Perguntas sobre Pesquisa de Clientes

  • "Mostre-me todos os clientes na Califórnia."
  • "Quais clientes estão baseados em Sydney?"

Perguntas sobre Detalhes de Formulário de Pedido / Licenciamento

  • "Quais produtos a Acme Corp comprou?"
  • "Quantas licenças de 'Produto X' a ByteTech GmbH possui?"
  • "Você pode me fornecer os detalhes do pedido da AcmeCloud Ltd?"
  • "Qual é a duração da assinatura da Zento Systems?"

Perguntas sobre Preços de Produtos ou Planos

  • "Qual é o preço do 'Produto X' em USD?"
  • "Quanto custa a assinatura Professional?"
  • "Qual plano de assinatura permite 10 ambientes?"
  • "Você pode calcular o custo para 15 'Produto X' e 4 'Produto Y'?"

Consultas sobre Proprietário da Conta

  • "Quem gerencia a Acme Corp?"
  • "Quais clientes são de responsabilidade de jsmith@abc.com?"
  • "Mostre clientes atendidos por David Brown no Texas."
  • "Liste as contas gerenciadas por Grace no Reino Unido."

Instalação, configuração e operação

Siga estas etapas para instalar, configurar e operar este agente de IA:

  1. Baixe as personalizações e instale o projeto Studio.
  2. Crie recursos do Microsoft Azure.
  3. Crie o app Slack.
  4. Prepare o Jitterbit Cloud Datastore.
  5. Configure variáveis do projeto.
  6. Teste as conexões.
  7. Implante o projeto.
  8. Crie a API customizada do Jitterbit.
  9. Revise os fluxos de trabalho do projeto.
  10. Dispare os fluxos de trabalho do projeto.

Baixe as personalizações e instale o projeto

Siga estas etapas para baixar arquivos de personalização e instalar o projeto Studio:

  1. Faça login no portal Harmony em https://login.jitterbit.com e abra Marketplace.

  2. Localize o agente de IA chamado Jitterbit Sales Agent. Para localizá-lo, você pode usar a barra de pesquisa ou, no painel Filtros em Tipo, selecione AI Agent para limitar a exibição aos agentes de IA disponíveis.

  3. Clique no link Documentação do agente de IA para abrir sua documentação em uma aba separada. Mantenha a aba aberta para consultar depois de iniciar o projeto.

  4. Clique em Start Project para abrir um diálogo de configuração em duas etapas para baixar personalizações e importar o agente de IA como um projeto Studio.

    Nota

    Se você ainda não adquiriu o agente de IA, será exibido Get agent. Clique nele para abrir um diálogo informativo e clique em Submit para que um representante entre em contato para discutir a compra do agente de IA.

  5. Na etapa de configuração 1, Download Customizations, os seguintes arquivos são fornecidos para facilitar a configuração do índice e do indexador no Azure AI Search e criar o app Slack. Selecione os arquivos e clique em Download Files:

    • Arquivos de definição JSON do índice e indexador do Azure AI Search

      • Azure_AI_Search_Datasource_Definition.json
      • Azure_AI_Search_Index_Definition.json
      • Azure_AI_Search_Indexer_Definition.json
    • Arquivo de manifesto do app Slack

      • slack_app_manifest.json

    Dica

    O diálogo de configuração inclui um aviso para não importar o template antes de aplicar personalizações de endpoint. Esse aviso não se aplica a este agente de IA e pode ser ignorado. Siga a ordem de etapas recomendada nesta documentação.

    Clique em Next.

  6. Na etapa de configuração 2, Create a New Project, selecione um ambiente onde deseja criar o projeto Studio e clique em Create Project.

  7. Um diálogo de progresso é exibido. Depois que indicar que o projeto foi criado, use o link do diálogo Go to Studio ou abra o projeto diretamente na página Projetos do Studio.

Crie recursos do Microsoft Azure

Crie os seguintes recursos do Microsoft Azure e retenha as seguintes informações para configurar o agente de IA. Para criar e gerenciar esses recursos, você deve ter uma assinatura do Microsoft Azure com as permissões apropriadas.

Contêiner do Azure Blob

Você deve criar um contêiner do Azure Blob para armazenar detalhes dos clientes. Os dados do contêiner do Blob serão indexados no Azure AI Search usando um índice e indexador.

Você precisará da URL SAS do contêiner para usar na determinação dos valores das variáveis do projeto de Armazenamento de Blob do Azure. Para gerar a URL SAS:

  1. No portal do Azure, navegue para Contas de armazenamento e abra a conta de armazenamento específica.
  2. No menu de recursos em Armazenamento de dados, selecione Contêineres e abra o contêiner específico.
  3. No menu de recursos em Configurações, selecione Tokens de acesso compartilhado.
  4. Use o menu Permissões para verificar se a URL de assinatura de acesso compartilhado (SAS) deste contêiner tem no mínimo permissões de Leitura e Gravação:

Permissões de URL SAS

  1. Clique em Generate SAS token and URL.
  2. Copie a Blob SAS URL exibida na parte inferior.
  3. Determine os valores das variáveis do projeto Azure Blob Storage a partir da URL SAS. A URL SAS está no formato {{ azure_blob_base_url }}/{{ Azure_Customer_Details_Container }}?{{ azure_customer_detail_blob_sig }}.

Se estiver usando os arquivos de definição JSON incluídos nos arquivos de personalização do agente de IA para gerar o índice e indexador, você também precisará da chave de conta do Azure Blob Storage. Para visualizar chaves de acesso da conta:

  1. No portal do Azure, navegue até Contas de armazenamento e abra a conta de armazenamento específica.
  2. No menu de recursos em Security + networking, selecione Access keys.
  3. Clique em Show keys para revelar a chave de acesso a ser usada durante a configuração do Azure AI Search.

    Chaves da conta de armazenamento

Serviço Azure AI Search

É necessário criar um serviço Azure AI Search e configurar seu índice e indexador para processar os dados do contêiner Blob.

Você precisará da URL e chave de API do serviço Azure AI Search para determinar os valores das variáveis do projeto Azure AI Search:

  • URL: Para obter o valor a ser usado para azure_ai_search_url, consulte a documentação do Azure Get service information.
  • Chave de API: Para obter o valor a ser usado para azure_ai_search_api_key, consulte a documentação do Azure Configure role-based access.

Você pode usar os arquivos de definição JSON incluídos nos arquivos de personalização do agente de IA para gerar o índice e indexador, ou criá-los você mesmo.

Se estiver usando os arquivos de definição fornecidos, é necessário substituir os seguintes espaços reservados pelos seus próprios valores de configuração:

Azure_AI_Search_Indexer_Definition.json

Espaço reservado Descrição
{{Your Azure AI Search Service Name}} O nome do serviço Azure AI Search.

Azure_AI_Search_Datasource_Definition.json

Espaço reservado Descrição
{{Your Azure AI Search Service Name}} O nome do serviço Azure AI Search.
{{Your Azure Blob Account Name}} O nome da conta Azure Blob.
{{Your Azure Blob Account Key}} A chave de acesso da conta Azure Blob Storage, obtida conforme descrito em Contêiner Azure Blob acima.
{{your_azure_blob_container_name}} O nome do contêiner Azure Blob.

Recurso Azure OpenAI

É necessário criar um recurso Azure OpenAI e implantar um modelo gpt-4o ou gpt-4.1 através do portal Azure AI Foundry.

Você precisará do nome da implantação, URL do ponto de extremidade do Azure OpenAI e chave de API para determinar os valores das variáveis do projeto Azure OpenAI. Para encontrar estes valores:

  1. No portal do Azure AI Foundry, abra o recurso específico do OpenAI.
  2. Os valores a usar para a URL do endpoint (azure_openai_base_url) e a chave da API (azure_openai_api_key) são exibidos na página inicial do recurso:

    Chave e URL do AI Foundry

  3. No menu de navegação em Recursos compartilhados, selecione Implantações. O nome da implantação (Azure_OpenAI_Deployment_Name) é exibido.

Criar o app do Slack

Para criar a interface de chat do Agente de Vendas no Slack, siga estas etapas:

  1. Crie um app do Slack usando o arquivo de manifesto do app do Slack (slack_app_manifest.json) fornecido com os arquivos de personalização deste agente de IA. Como alternativa, crie o app do zero.

  2. Se você usar o arquivo de manifesto fornecido, substitua os seguintes espaços reservados pelos seus próprios valores de configuração:

    Espaço reservado Descrição
    {{Replace with Slack bot name}} O nome que você deseja que seu bot do Slack tenha, conforme exibido aos usuários. Substitua esse valor em dois locais no manifesto.
    {{Replace with Jitterbit API URL}} A URL do serviço da API personalizada do Jitterbit que você criou em Criar a API personalizada do Jitterbit.
  3. Instale o app no seu workspace do Slack.

  4. Obtenha o token do bot (para o campo Bot User OAuth Token da conexão do Slack) e insira seu valor para a variável de projeto slack_bot_oauth_user_token.

  5. Configure a variável de projeto slack_channel_name com o canal para o qual as notificações devem ser enviadas.

  6. Insira o valor do token do bot para a variável de projeto slack_bot_oauth_user_token e o nome do canal para a variável de projeto slack_channel_name. Você configurará essas variáveis na próxima etapa.

Preparar o Jitterbit Cloud Datastore

Crie dois armazenamentos de chaves no Jitterbit Cloud Datastore, Bot_Authorized_Users e askjb_sales_q_and_a. Os campos Key, AlternativeKey e Value estão presentes por padrão. Adicione os campos personalizados com os nomes e tipos listados nas tabelas abaixo.

Depois de adicionar os campos personalizados, adicione um registro de armazenamento de chaves para cada usuário autorizado a usar o bot do agente de IA. Você deve definir manualmente os valores marcados nas tabelas abaixo. Deixe em branco os valores dos campos cujos valores são preenchidos automaticamente ou não utilizados.

Bot_Authorized_Users

Este armazenamento de chaves contém a lista de usuários autorizados e suas sessões. Você deve inserir manualmente os endereços de e-mail dos usuários autorizados a acessar o bot do agente de IA. Nenhum campo personalizado é necessário.

Nome do campo Tipo Descrição
Key Texto Insira manualmente. O endereço de e-mail do usuário autorizado a interagir com o agente de IA através do bot do Slack.
AlternativeKey Texto Preenchido automaticamente. A sessão do usuário, gerada durante a execução. Nenhuma entrada manual é necessária.
Value Texto Insira manualmente. O endereço de e-mail do usuário autorizado a interagir com o agente de IA através do bot do Slack. Fornecer um valor é necessário para o agente de IA funcionar.

askjb_sales_q_and_a

Este armazenamento de chaves retém o histórico de chat de um bot para fornecer contexto de memória para o LLM. É usado pela integração para armazenar o histórico de perguntas e respostas. Todos os dados são inseridos automaticamente durante a execução da interação. Adicione os seguintes campos personalizados:

Nome do campo Tipo Descrição
Key Texto Preenchido automaticamente. Especifica o identificador único atribuído a uma mensagem pelo sistema.
AlternativeKey Texto Preenchido automaticamente. Especifica o identificador único atribuído a uma sessão de chat pelo sistema.
Value Texto Não utilizado.
slackChannel Texto Preenchido automaticamente. A ID do canal do Slack do qual a mensagem é enviada.
User Texto Preenchido automaticamente. O nome de usuário do Slack do usuário que envia a mensagem.
FirstName Texto Preenchido automaticamente. Primeiro nome do usuário que envia a mensagem.
LastName Texto Preenchido automaticamente. Último nome do usuário que envia a mensagem.
Email Texto Preenchido automaticamente. Endereço de e-mail do usuário que envia a mensagem.
MessageTimestampText Texto Preenchido automaticamente. O texto do timestamp da mensagem.
UserQuestion Texto grande Preenchido automaticamente. A pergunta ou mensagem enviada pelo usuário ao agente de IA.
AIAnswer Texto grande Preenchido automaticamente. A resposta gerada pelo agente de IA para a pergunta do usuário.
ai_reformulate_question Texto grande Preenchido automaticamente. A pergunta do usuário após ser reformulada ou refraseada pela IA para melhorar a compreensão.

Configurar variáveis do projeto

No projeto do Studio instalado anteriormente via Marketplace, é necessário definir valores para as seguintes variáveis do projeto.

Para configurar variáveis do projeto, use o menu de ações do projeto para selecionar Variáveis do Projeto. Isso abre um painel na parte inferior da página onde você pode revisar e definir os valores.

Salesforce

Nome da variável Descrição
SF_Login_URL Server Host na conexão Salesforce
SF_Password Senha na conexão Salesforce
SF_Security_Token Token de segurança na conexão Salesforce
SF_User_Name Nome de usuário na conexão Salesforce

NetSuite

Nome da variável Descrição
NetSuite_Account Conta na conexão NetSuite
NetSuite_Consumer_Key Chave do consumidor na conexão NetSuite
NetSuite_Consumer_Secret Segredo do consumidor na conexão NetSuite
NetSuite_Base_URL URL base do NetSuite, como https://{{NetSuite_Account}}.suitetalk.api.netsuite.com.
NetSuite_Token_Key Chave do token na conexão NetSuite
NetSuite_Token_Secret Segredo do token na conexão NetSuite

Azure Blob Storage

Nome da variável Descrição
Azure_Customer_Details_Container O nome do contêiner Azure Blob para armazenar informações de clientes de formulários de pedidos.
azure_customer_detail_blob_sig Assinatura de URL SAS para Azure_Customer_Details_Container.
azure_blob_base_url URL base do serviço de contêiner Azure para Azure_Customer_Details_Container.

Dica

É possível derivar esses valores da URL SAS, que está no formato {{azure_blob_base_url}}/{{Azure_Customer_Details_Container}}?{{azure_customer_detail_blob_sig}}.

Nome da variável Descrição
customer_search_index_name O nome do índice do Azure que armazena as informações do cliente a partir de formulários de pedidos.
Azure_SalesOrders_Customer_Indexer O nome do indexador do Azure que indexa dados de Azure_Customer_Details_Container para o índice customer_search_index_name.
azure_ai_search_url URL base do serviço Azure AI Search.
azure_ai_search_api_key Chave de API do serviço Azure AI Search.

Azure OpenAI

Nome da variável Descrição
Max_Output_Tokens O número máximo de tokens que o LLM pode gerar em uma resposta. GPT-4.1 oferece suporte a até 32768 tokens, enquanto GPT-4o oferece suporte a até 16384.
Azure_OpenAI_Deployment_Name O nome da implantação do LLM no Azure OpenAI.
azure_openai_base_url URL base do serviço Azure OpenAI.
azure_openai_api_key Chave de API do serviço Azure OpenAI.

Slack

Nome da variável Descrição
salesorder_slack_bot_token O token do bot do Slack obtido após criar o app do Slack, usado para o Bot user OAuth access token na conexão do Slack.

Nota

O app do Slack é criado em uma etapa posterior. Por enquanto, você pode deixar essa variável em branco.

Comum

Nome da variável Descrição
Authorized_User_Admin Nome do contato/email exibido na resposta enviada ao usuário quando ocorre um erro.
Customer_LastOrder_DefaultDate A data padrão (mm/dd/yyyy) a partir da qual os pedidos são extraídos do NetSuite durante a primeira execução ou uma execução histórica quando incrementalRun está definido como false. Por exemplo: 06/01/2004.
Default_Last_Sync_Date Data de última sincronização padrão a ser usada se o valor em cache não estiver disponível.
incrementalRun Quando true, apenas pedidos incrementais (novos ou atualizados) são extraídos do NetSuite. Quando false ou em branco, o histórico completo de pedidos é recuperado da data padrão.
Only_Unexpired_Orders Quando true, apenas os pedidos com nextbilldate maior que a data de hoje serão extraídos do NetSuite.

Testar conexões

Teste as configurações de endpoint para verificar a conectividade usando os valores das variáveis de projeto definidas.

Para testar as conexões, acesse a guia Endpoints de projeto e conectores na paleta de componentes de design, passe o mouse sobre cada endpoint e clique em Testar.

Implantar o projeto

Implante o projeto do Studio.

Para implantar o projeto, use o menu de ações do projeto para selecionar Implantar.

Criar a API personalizada do Jitterbit

Crie uma API personalizada usando o API Manager para um dos seguintes:

Criar o manipulador de solicitações de API de bot do Slack

Esta API personalizada do Jitterbit acionará a operação Slack Bot API Request Handler. Configure e publique a API personalizada com as seguintes configurações:

  • Serviço de API: Slack Bot API Request Handler
  • Caminho: /
  • Projeto: Selecione o projeto do Studio criado a partir do Jitterbit Sales Agent no Marketplace
  • Operação a acionar: Slack Bot API Request Handler
  • Método: POST
  • Tipo de resposta: System Variable

Retenha a URL do serviço da API publicada para uso na criação do app do Slack. A URL do serviço pode ser encontrada na gaveta de detalhes da API na guia Serviços, passando o mouse sobre a coluna Ações do serviço e clicando em Copiar URL do serviço de API.

Manipulador de solicitações de API genérica

Esta API personalizada do Jitterbit acionará a operação Generic API request Handler. Não é obrigatório. Crie esta API se estiver usando outras aplicações para processar solicitações de API HTTP. Configure e publique a API personalizada com as seguintes configurações:

  • Nome do serviço: Generic API request Handler
  • Projeto: Selecione o projeto do Studio criado a partir do Jitterbit Sales Agent no Marketplace
  • Operação: Generic API request Handler
  • Método: POST
  • Tipo de resposta: System Variable

Dica

Você também pode adicionar um perfil de segurança para autenticação.

Corpo da solicitação
{
    "username": "abc@abc.com",
    "sessionId": "123608",
    "prompt": "Order Forms details for xyz"
}
Resposta
{
   "message": "Based on order forms, here are the complete order details: ...",
   "status_code": 200
}

Revisar workflows do projeto

No projeto Studio aberto, revise os workflows junto com as descrições abaixo para entender o que fazem. As descrições abaixo indicam onde você poderia substituir o sistema modificando as configurações de endpoints e os workflows do projeto.

  1. Utility-Upload Customer Order Forms to Azure

    Este workflow automatiza o processamento de formulários de pedidos extraindo detalhes do NetSuite, fazendo upload de documentos para o Azure Blob Storage e indexando-os no índice do Azure AI Search.

    Este workflow deve ser executado primeiro para carregar todos os dados de clientes ativos, disponibilizando os detalhes dos clientes para o agente de IA. A execução do workflow é descrita em Trigger the project workflows mais adiante nesta página.

    Se os dados do formulário de pedido do cliente da sua organização estiverem em um sistema diferente do NetSuite, você deve modificar as operações do workflow para substituir os componentes específicos do NetSuite pelos do seu endpoint.

  2. Main Entry - Slack API Request Handler

    Este workflow gerencia solicitações de bot do Slack recebidas e verifica a autorização do usuário. É acionado por meio de uma API customizada do Jitterbit cada vez que sua equipe de Vendas interage com a interface do chat do bot do Slack (ou seja, envia uma mensagem do Slack para ele). A configuração da API customizada do Jitterbit é descrita em Create the Jitterbit custom API mais adiante nesta página.

    Se você não estiver usando Slack, este workflow pode ser ignorado e não será acionado. Para usar uma interface de chat diferente para sua equipe de Vendas interagir, use o workflow Generic API Request Handler, também acionado por meio de uma API customizada do Jitterbit.

  3. Main - AI Agent Tools Logic

    Após receber autorização do usuário de um dos workflows Main Entry - Slack API Request Handler ou Generic API Request Handler, este workflow gerencia solicitações de chamada de função para o modelo de linguagem grande (LLM), tomando decisões sobre qual ferramenta executar com base na resposta do LLM. Há três chamadas de ferramentas principais:

    1. Customer_Order_Function: Esta ferramenta responde consultas de usuários sobre formulários de pedidos de clientes invocando a operação Main - Get Customer Order Form Details dentro do workflow Tool-Customer Order Details.

    2. Pricing_Function: Esta ferramenta responde consultas de usuários sobre preços de produtos invocando a operação Main - Pricing Sheet dentro do workflow Tool-Pricing Sheets.

    3. Customer_Lookup_By_Location_Function: Esta ferramenta responde consultas de usuários para obter clientes por localização ou proprietário da conta invocando a operação Main - Customer Lookup dentro do workflow Tool - Customer Lookup.

  4. Tool-Customer Order Details

    Este workflow recupera detalhes de pedidos de clientes do NetSuite.

    Para usar um endpoint diferente do NetSuite, crie uma nova operação para recuperar formulários de pedidos do sistema e atribua os resultados à variável global extractedContent. Em seguida, acione a nova operação a partir da operação Main - Get Customer Order Form Details.

  5. Tool-Pricing Sheets

    Este workflow recupera preços de produtos do Salesforce.

    Na configuração da atividade Salesforce Query, a consulta a seguir recupera informações de preços de produtos por agente. Se sua organização Salesforce não usar esses objetos e campos, ou se as informações de preços de produtos estiverem armazenadas em objetos/campos diferentes, este workflow não funcionará corretamente. Nesse caso, o agente não poderá responder perguntas sobre preços. Personalize a consulta neste workflow para alinhar-se ao modelo de dados da sua organização Salesforce:

    SELECT Product2.Description,
           Product2.Family,
           Product2.ProductCode,
           CurrencyIsoCode,
           Name,
           UnitPrice,
           Pricebook2.Name,
           Id
    FROM   PricebookEntry
    WHERE  IsDeleted = false
           AND IsArchived = false
           AND IsActive = true
           AND Pricebook2.IsActive = true
           AND Pricebook2.IsDeleted = false
           AND Pricebook2.IsArchived = false
           AND Product2.IsActive = true
           AND Product2.IsDeleted = false
           AND Product2.IsArchived = false
           AND CurrencyIsoCode = '{{ currencycode }}'
    ORDER BY Name
    

    Para usar um endpoint diferente do Salesforce, crie uma nova operação para recuperar preços de produtos do sistema e atribua os resultados à variável global pricing_sheet. Em seguida, acione a nova operação a partir da operação Main - Pricing Sheet.

  6. Tool - Customer Lookup

    Este fluxo de trabalho recupera clientes do Salesforce.

    Na configuração da atividade Salesforce Query, a consulta a seguir recupera informações de conta de cliente. Se sua organização Salesforce utiliza campos ou objetos diferentes para detalhes de clientes, customize esta consulta neste fluxo de trabalho conforme necessário:

    SELECT Id,
           BillingCity,
           BillingCountry,
           BillingState,
           Name
    FROM   Account
    WHERE  Type = 'Customer'
    

    Para usar um endpoint diferente do Salesforce, crie uma nova operação para recuperar clientes do sistema e atribua os resultados à variável global extractedContent. Em seguida, acione a nova operação a partir da operação Main - Customer Lookup.

  7. Utility - Get All Account Owners

    Este fluxo de trabalho recupera proprietários de contas do Salesforce.

    Na configuração da atividade Salesforce Query, a consulta a seguir recupera proprietários de contas (nome e email) para todas as contas do tipo Customer ou Partner. Se sua organização Salesforce utiliza tipos de conta diferentes ou campos personalizados para classificar contas, customize esta consulta neste fluxo de trabalho conforme necessário:

    SELECT OwnerId,
           Owner.Email,
           Owner.Name
    FROM   Account
    WHERE  Type IN ('Customer', 'Partner')
    

    Para usar um endpoint diferente do Salesforce, crie uma nova operação para recuperar proprietários de contas do sistema e atribua os resultados à variável Account_Owner_List. Em seguida, acione a nova operação a partir da operação Main - Get Owner List.

  8. Utility-User Authorization And Session

    Este fluxo de trabalho gerencia a autorização de usuário e a sessão. Ele usa o Jitterbit Cloud Datastore para manter uma lista de usuários autorizados e suas sessões ativas.

    Para configurar este fluxo de trabalho com um armazenamento de dados alternativo ou mecanismo de autorização para gerenciar o acesso e as sessões de usuários, modifique as operações do fluxo de trabalho conforme apropriado.

  9. Utility - Bot Chat History Storage

    Este fluxo de trabalho gerencia o armazenamento do histórico de chat do bot, essencial para fornecer contexto de memória aos LLMs. Para isso, ele aproveita o Jitterbit Cloud Datastore.

    Para integrar com outras soluções de armazenamento de dados para armazenar e recuperar histórico de chat, modifique as operações do fluxo de trabalho conforme apropriado.

  10. Generic API Request Handler

    Este fluxo de trabalho processa solicitações HTTP API de qualquer aplicativo. Para integrar com seus aplicativos, crie uma API Jitterbit customizada que acione a operação Generic API request Handler. A URL dessa API pode ser utilizada por qualquer aplicativo para enviar e receber solicitações.

    A configuração da API Jitterbit customizada é descrita em Create the Jitterbit custom API mais adiante nesta página.

Trigger the project workflows

Para o carregamento inicial de dados, execute a operação no primeiro fluxo de trabalho, Utility-Upload Customer Order Forms to Azure. Isso pode ser feito usando a opção Run da operação exibida ao passar o mouse sobre a operação. Você precisará executar a operação novamente no futuro se seus dados forem atualizados.

Dica

Você pode querer colocar esta operação em um schedule para obter dados atualizados regularmente. Isso pode ser feito no menu ações da operação em Settings > Schedules.

Os outros dois fluxos de trabalho principais são acionados pelas APIs Jitterbit customizadas:

  • Main Entry - Slack API Request Handler: Este fluxo de trabalho é acionado a partir do Slack via a API customizada Slack Bot API Request Handler. Enviar uma mensagem direta para o app Slack acionará o disparo da API customizada.

  • Generic API Request Handler: Este fluxo de trabalho é acionado a partir de outro aplicativo via a API customizada Generic API request Handler. Enviar uma solicitação para a API configurada acionará o disparo da API customizada.

Todos os outros fluxos de trabalho são acionados por outras operações e são downstream daqueles listados acima. Eles não se destinam a ser executados por conta própria.

Solução de problemas

Se encontrar problemas, consulte os logs a seguir para obter informações detalhadas de solução de problemas:

Para obter assistência adicional, entre em contato com o suporte da Jitterbit.