Home Eddie | Connect your backoffice
💾

Eddie | Connect your backoffice

The real-time communication agent that connects ClaudIA with your backoffice and much more
Winderlly
Ian Kraskoff
By Winderlly and 5 others
16 articles

Turn Your Google Sheets into a Web Service in 5 Minutes!

Replace all UPPERCASE texts with your actual values YOUR_SHEET_ID • YOUR_SHEET_NAME • YOUR_KEY_NAME (e.g., id, phone, cpf…) 1. Overview - Web App exposes your Google Sheets spreadsheet as an HTTP endpoint (GET or POST). - In-memory cache uses an index in a Map for responses in milliseconds. - Key search query by YOUR_KEY_NAME (e.g., id=123) using index + quick fallback. - Rebuild & Incremental You control when to rebuild the index (manual or trigger every 1 min). 2. Script-based (anonymized) /** * Web App – Spreadsheet API * Replace ALL UPPERCASE placeholders with your real data! */ /* ⚙️ CONFIGURATION */ const SHEET_ID = 'YOUR_SHEET_ID'; const SHEET_NAME = 'YOUR_SHEET_NAME'; /* 🗺️ Map only the columns you want to expose (A=1, B=2, …) */ const COL = { key : 1, // YOUR_KEY_NAME (search key) field01 : 2, field02 : 3, field03 : 4 }; const NUM_COLS = Object.keys(COL).length; const TTL_CACHE_MS = 15 * 60 * 1000; // 15 min const CHUNK_ROWS = 8000; // read in blocks /* 🛢️ Cache */ let cache = { map:new Map(), last:0, building:false }; /* 🌐 ENDPOINTS */ function doGet(e){ return handle(e); } function doPost(e){ if (e.postData && e.postData.type === 'application/json') Object.assign(e.parameter, JSON.parse(e.postData.contents||'{}')); return handle(e); } /* 🧠 MAIN LOGIC */ function handle(e){ const id = (e.parameter['YOUR_KEY_NAME'] || '').trim(); if (!id) return out({found:false,error:`Missing 'YOUR_KEY_NAME' parameter`}); try{ if (Date.now() - cache.last > TTL_CACHE_MS) buildIndex(); const hit = cache.map.get(id); if (hit) return out({found:true, ...hit}); const obj = searchSheet(id); return out(obj ? {found:true, ...obj} : {found:false}); }catch(err){ return out({found:false,error:err.toString()}); } } /* 🔍 Direct search (fallback) */ function searchSheet(id){ const sh = SpreadsheetApp.openById(SHEET_ID).getSheetByName(SHEET_NAME); const rng = sh.getRange(1, COL.key, sh.getLastRow(), 1) .createTextFinder(id).matchEntireCell(true).findNext(); if (!rng) return null; const vals = sh.getRange(rng.getRow(), 1, 1, NUM_COLS).getValues()[0]; const obj = rowToObj(vals); cache.map.set(id, obj); // save to cache return obj; } /* 🔄 Build or refresh the full index */ function buildIndex(){ if (cache.building) return; cache.building = true; try{ const sh = SpreadsheetApp.openById(SHEET_ID).getSheetByName(SHEET_NAME); const rows = sh.getLastRow() - 1; const map = new Map(); for (let i=2;i<=rows+1;i+=CHUNK_ROWS){ const end = Math.min(i+CHUNK_ROWS-1,rows+1); sh.getRange(i,1,end-i+1,NUM_COLS).getValues().forEach(r=>{ const id = (r[COL.key-1]||'').toString().trim(); if (id) map.set(id, rowToObj(r)); }); } cache = { map, last:Date.now(), building:false }; }finally{ cache.building=false; } } /* 🧩 Helpers */ function rowToObj(r){ const o={}; for (const k in COL) o[k]=r[COL[k]-1]; return o; } const out = o=>ContentService.createTextOutput(JSON.stringify(o)) .setMimeType(ContentService.MimeType.JSON); /* ⏰ Create incremental trigger (every 1 min) */ function createIncrementalTrigger(){ ScriptApp.newTrigger('buildIndex') .timeBased().everyMinutes(1).create(); } 3. Essential Step-by-Step A. Configure & paste the script 1. Open script.google.com → New Project. 2. Paste the above template. 3. Replace ALL placeholders YOUR_…. B. Build the first index manually 1. In the editor → Run buildIndex() once. 2. This loads all rows into memory (faster for the first request). 💡 Quick tip If you prefer, just call the API with &rebuild=true right after deployment – same effect. C. Create the incremental trigger 1. Once the initial index is built, select the function createIncrementalTrigger from the dropdown menu. 2. Click Run → authorize. 3. A 1-minute trigger will keep the cache synchronized effortlessly. D. Publish and generate the URL 1. Deploy → New deployment → Web app. 2. Execute as: Me • Who has access: Anyone (or anyone with the link). 3. Deploy → Authorize → Copy URL. https://script.google.com/macros/s/YOUR_DEPLOY_ID/exec 4. Quick Tests 5. Common Problems & Solutions 🔒 Quick Security - Web App runs with your credentials → clients only see JSON. - To limit access, change to Only myself and require a token / API Key. Done! 1. Build the first index (buildIndex or rebuild=true). 2. Create the incremental trigger. 3. Publish and use! Any questions, contact us. 😉

Last updated on Aug 22, 2025

Básico de como usar as funcionalidades e botões do Eddie

Bem-vindo(a) ao guia definitivo sobre como construir fluxos com o Eddie, o builder visual do Cloud Chat. Aqui você vai entender o que cada botão faz, quando usar e como configurar — com exemplos práticos que te ajudam a decidir o melhor caminho para o seu caso. 🧱 Como funciona um fluxo? Um fluxo é como uma conversa guiada, com começo, meio e fim. - Ele pode começar com uma mensagem (ex: “Olá! Em que posso te ajudar?”) - O cliente responde (ex: “Quero saber o status do meu pedido”) - O Eddie entende e decide o que fazer com essa informação - E segue adiante: buscando dados, encaminhando, ou finalizando a conversa 💡 Cada etapa é um bloco, e você pode ligar blocos como quem monta um quebra-cabeça. 🔢 Tipos de blocos disponíveis 💬 Bubbles (Mensagens) 📌 Text (Texto) - O que é? Bloco usado para enviar mensagens visíveis ao cliente (ou usuário interno). - O que faz: Envia uma mensagem para o cliente. - Quando usar? Sempre que quiser exibir uma informação, confirmação, aviso ou instrução. - Como usar? Arraste o bloco para o fluxo, escreva sua mensagem no campo “Text” e pronto. - Exemplo: “Olá! Preencha o formulário a seguir para prosseguir com sua solicitação.” ✏️ Inputs (Coleta de dados) 📌 Text (Texto) - O que é? Coleta dados digitados pelo usuário: nome, código, número do pedido, etc. - Quando usar: Para saber o número do pedido, CPF, e-mail, ou qualquer outro dado. - Como usar? Posicione o bloco no fluxo, escreva a pergunta e defina a variável que vai armazenar a resposta (ex: nome_cliente). Exemplo: - “Qual o número do seu pedido?” - Armazene como: numero_pedido Logic (Lógica) Aqui começam as “decisões” do fluxo — como num “se isso, então aquilo”. 🔁 Set Variable (Definir variável) - O que é? Cria ou atualiza uma variável — uma “caixinha” onde você guarda um valor para reutilizar mais tarde no fluxo. - Por que é útil? - Reutilização: Você define uma vez e usa em vários lugares. - Organização: Deixa o fluxo mais limpo e legível. - Automação: Pode guardar o resultado de cálculos, integrações ou inputs. - Tomada de decisão: Pode ser usada em condições para decidir caminhos diferentes. - Como usar? 1. Arraste o bloco “Set Variable” para o fluxo. 2. Escolha uma variável existente ou crie uma nova (ex: tipo_usuario). 3. Atribua um valor: - Manual (ex: "cliente") - Vindo de outro ponto do fluxo (ex: resultado de uma API ou input) - Exemplos: - status_fluxo = "aguardando_validação" - desconto = 0.15 - mensagem_final = nome_cliente + ", sua solicitação foi recebida!" 🔍 Condition (Condição) - O que é? Verifica uma condição lógica (ex: se status == "aprovado") e direciona o fluxo com base na resposta. Ou seja, cria bifurcações: Se o valor X for Y, siga por este caminho; senão, vá por outro. - Como usar? 1. Arraste o bloco “Condition” 2. Escolha a variável a ser testada 3. Defina o valor a ser comparado (ex: status == "aprovado") 4. Configure o que acontece no “Sim” e no “Não” - Exemplo: Se cliente_tipo == "vip" → mostrar uma mensagem personalizada Senão → seguir com o fluxo padrão 💻 Script - O que é? - Bloco para quem sabe programar um pouco (JavaScript). - Permite rodar um código JavaScript dentro do fluxo — útil para cálculos, formatações, lógica avançada, etc. - Pode ser usado para calcular prazos, formatar números, ou coisas mais técnicas. - Como usar? - Arraste o bloco “Script” - Insira seu código JS - Defina variáveis de entrada e saída - Exemplo: Calcular dias entre duas datas, ou formatar um CPF com pontos. Atalhos e organização 🔄 Jump (Pular) - O que é? - Faz o fluxo “saltar” para outra parte sem passar pelos blocos intermediários. - Útil para reaproveitar partes ou encurtar caminhos. - Quando usar? - Para reaproveitar partes do fluxo - Para redirecionar em um “loop” - Para pular etapas desnecessárias com base em uma condição - Exemplo: Se tipo_usuario == "interno", pule direto para o bloco “Encerrar” 🔁 Typebot - O que é? - Permite embutir outro fluxo dentro do fluxo atual. - Permite encaixar um fluxo dentro de outro. - Quando usar? - Reaproveitar um fluxo genérico (ex: verificação de dados) - Modularizar o fluxo e facilitar manutenção - Exemplo: - Você pode criar um mini fluxo de “validação de CPF” e usá-lo em vários fluxos diferentes. 🔗 5. Integrações (conectar com outros sistemas) 🧠 ClaudIA - O que é? Integra com a IA da Cloud Humans para automação e inteligência nas respostas. Conecta com a ClaudIA para: - Transferir conversa para N1 ou N2 - Encerrar a conversa - Alterar o tópico ou contexto do atendimento - Como usar? Arraste o botão para o fluxo, defina a interação desejada com ClaudIA (ex.: transferir para N2, transferir de volta pra ClaudIA / N1, definir um tópico, etc.). 🌐 HTTP Request - O que é? Permite que o Eddie se conecte com APIs externas (GET, POST, etc.) - Como usar? - Arraste para o fluxo, configure o método (GET, POST, etc.), URL e parâmetros necessários. - Configure o método, a URL, os headers e o corpo da requisição - Use variáveis para enviar e receber dados - Exemplo de uso: Buscar status de pedido no seu ERP Pegar o status de um pedido em outro software 📊 Google Sheets - O que é? Integra com Google Sheets para ler ou escrever dados em planilhas. - Como usar? Arraste o botão, conecte à sua conta do Google, escolha a planilha e defina a operação (ler ou escrever dados). - Exemplo de uso: - Verificar se o CPF do usuário está em uma lista - Salvar os dados preenchidos no atendimento 🤖 OpenAI / Anthropic - O que é? - Permite enviar prompts para modelos LLM como GPT ou Claude e usar a resposta no fluxo. - Permite usar modelos de IA avançada para gerar respostas ou processar dados. - Como usar? Arraste, conecte ao serviço de IA desejado, e configure os prompts e parâmetros. - Exemplo de uso: - Resumo de uma explicação técnica - Geração de respostas com linguagem natural - Validação se o cliente escreveu é a opção 1, 2 ou 3 pra casos em que os clientes costumam mandar a opção errada 📅 Cal.com - O que é? - Permite agendamento de reuniões diretamente pelo fluxo - Integra com o Cal.com para gerenciar e agendar reuniões automaticamente. - Como usar? - Arraste o botão, conecte à sua conta Cal.com e configure as opções de agendamento. - Conecte sua conta Cal.com - Escolha o tipo de reunião e horários disponíveis 📤 Email - O que é? - Envia e-mails automáticos dentro do fluxo, diretamente pelo Eddie - Envia e-mails para o cliente ou equipe. - Como usar? Arraste, configure o destinatário, assunto e conteúdo do e-mail. - Exemplo de uso: Enviar um resumo da conversa ou um link de contrato ⚙️ Make / Zapier - O que é? - Conecta o Eddie com plataformas externas usando automações prontas - Essas plataformas de automação externa que ampliam ainda mais as possibilidades do Eddie. - Como usar? Arraste para o fluxo, conecte à sua conta da plataforma escolhida, e defina as automações e fluxos desejados. - Exemplo de uso: - Disparar uma automação no CRM - Atualizar uma base de leads 🛠️ Como montar seu primeiro fluxo do zero Exemplo: “Quero saber o status do meu pedido” 1. Mensagem inicial (Text) “Olá! Posso te ajudar a consultar o status do seu pedido.” 2. Pergunta (Input) “Qual o número do seu pedido?” → Guarde isso como numero_pedido 3. Condição (Condition) Se o número estiver preenchido, vá para o próximo passo. 4. Integração (HTTP Request) Faça uma consulta à sua API ou planilha com o número informado. 5. Mensagem final (Text) “O status do seu pedido é: {{status_pedido}}.” 🧠 Dicas para quem está começando - Use nomes claros para as variáveis. Exemplo: nome_cliente, tipo_plano, resposta_email - Pense como um roteiro: o que você diria se estivesse conversando com o cliente? - Teste no Playground sempre que terminar um trecho. - Comece simples: você pode ir melhorando aos poucos. - Se tiver dúvidas, pense: “o que eu quero que aconteça depois disso?” Agora você já sabe tudo sobre como aproveitar ao máximo cada botão e funcionalidade do Eddie! 🚀✨

Last updated on Aug 18, 2025

Flow Testing in Eddie via API

Eddie's API allows for automatic initiation and continuation of conversations using created flows through HTTP calls. This functionality is ideal for performing automated tests, validating interactions, and ensuring that the flows are working as expected. This guide presents the complete process for using the API. Overview of Integration Communication with Eddie occurs in two main steps: 1. Starting the conversation: creates a new chat session. 2. Continuing the conversation: sends messages within the created session. These calls are made through HTTP endpoints, using an authentication token and the ID of the flow created in Eddie. Step-by-Step Integration 1. Obtain the Flow ID Each flow created in Eddie has a unique identifier (ID) that is used to start the session via API. This ID can be copied directly from the flow's edit URL or the publication screen. 2. Start a New Chat Session Endpoint: POST https://eddieeyes.us-east-1.prd.cloudhumans.io/api/v1/typebots/FLOW_ID/startChat Required Headers: - Content-Type: application/json - Authorization: Bearer {{apiToken}} Expected Response: { "sessionId": "abc123xyz"} This sessionId is essential for the next steps. 3. Send Messages to Continue the Chat Endpoint: POST https://eddieeyes.us-east-1.prd.cloudhumans.io/api/v1/sessions/{{sessionId}}/continueChat Headers: - Content-Type: application/json - Authorization: Bearer {{apiToken}} Body: { "message": "user's message"} Response: a JSON object with the next interaction generated by Eddie based on the flow's logic. How to Generate a Token To authenticate calls via API, you need an API Token. Follow the steps below to generate one: 1. Click on Settings and Members in the upper right corner of the screen. 2. In the side menu, select My Account. 3. In the API tokens section, click on Create to generate a new token. Best Practices for Using the API Storing and Reusing the sessionId Keep the sessionId generated for each conversation. It is necessary to maintain continuity in the interaction with the same context. Testing Before Final Integration Use tools like Postman or Insomnia to validate the endpoints, headers, body, and responses. This helps avoid errors in the production environment. Error Monitoring Failures in calls (such as invalid data, incorrect endpoints, or timeouts) appear on the HUB with error signaling. Use this information for quick diagnosis.

Last updated on Aug 12, 2025

Como criar um fluxo no Eddie acessando informações em um Google Sheets

https://www.loom.com/share/23e057bb1692482c89e9b56e05a49ff0 O que é essa funcionalidade? Essa integração permite que você conecte o Eddie a uma planilha do Google Sheets e crie fluxos automáticos com base nos dados contidos nela — como consultar status de pedidos, valores de saldo, agendamentos, entre outros. É especialmente útil quando você atualiza a planilha com frequência, seja manualmente ou via automação (ex: dumps horários do sistema). Exemplo de uso Vamos usar uma planilha com duas colunas: - id: código do pedido - status: situação atual (ex: “em andamento”, “entregue”, “atrasado”) Etapa 1 – Criar um novo Eddie Crie um novo fluxo no Eddie e defina o ponto de entrada com um input de texto, para que o cliente informe o número do pedido. Dê à variável um nome descritivo, como status_pedido. Etapa 2 – Conectar o Google Sheets Na aba Integrações, selecione “Sheets”. - Se sua conta ainda não estiver conectada, peça para o time da Cloud Humans te passar o e-mail de serviço para compartilhar sua planilha. - Escolha a planilha, a aba correta e a linha de cabeçalho (geralmente 1). - Use a operação Get data. - Aplique um filtro, como por exemplo "coluna id" == {{status_pedido}} Etapa 3 – Extrair a informação desejada Escolha a coluna status como saída e armazene em uma nova variável (ex: status_resposta). Etapa 4 – Retornar uma resposta ao cliente Use um bloco de texto para formatar a mensagem de retorno. Exemplo: “Seu pedido está com o seguinte status: {{status_resposta}}.” Para testar, basta clicar em Visualizar. Você pode testar colocando, por exemplo, o ID “234567” e validando se a resposta vem correta de acordo com a planilha. Etapa 5 – Definir regras de encaminhamento para N2 Use blocos condicionais para redirecionar automaticamente: - Se status_resposta for “atrasado”, envie a conversa para N2 (atendimento humano). - Caso contrário, siga com o atendimento padrão. Etapa 6 – Encerrar ou transferir o atendimento Ao final do fluxo, use o bloco “Retornar para a Cloud” e defina: - “Nenhum” → apenas encerra o fluxo com a resposta para o cliente - “N2” → sinaliza que a Cláudia deve transferir para um humano Etapa 7 – Publicar e testar com tickets reais Depois de finalizar, clique em Publicar. Só após isso o fluxo estará disponível para testes reais com a ClaudIA, inclusive no Hub / Playground. Conclusão Com esse fluxo: - Você automatiza a busca de dados no Google Sheets. - Evita respostas manuais e erros. - Escala apenas quando necessário (ex: atrasos). - Pode adaptar para outros usos como consulta de CPF, agendamentos, elegibilidade, etc.

Last updated on Aug 12, 2025

How the ClaudIA and Eddie Interaction Works

Interaction: Client <=> ClaudIA <=> Eddie Detailed Explanation of the Flow Client sends a message: The client initiates contact by sending a message to ClaudIA. The message can be a simple query, an inquiry about the status of an order, or a more specific question that requires an automated flow. ClaudIA interprets the message Upon receiving the message, ClaudIA, powered by a GPT model, begins processing the content. The model performs a deep linguistic analysis to understand the client's intent, the context of the message, and identify important entities. ClaudIA checks the type of content With the message processed, ClaudIA checks what type of response is necessary: - Content N1: If the message is simple and direct, ClaudIA automatically responds with an answer from the knowledge base. - Content N2: If the question is more complex or requires human assistance, ClaudIA transfers the conversation to the N2 team. - Interactive Content: If the issue involves a more complex inquiry (e.g., checking order status, information via API, or integration with Google Sheets), ClaudIA activates Eddie's flow. Eddie's Flow (Interactive Content) When the content is interactive, ClaudIA triggers Eddie's flow. This flow may include: - Queries (API, Google Sheets, LLM prompt, tree flows, JavaScript, etc.): Eddie performs the queries defined in the flow, such as checking the status of an order or retrieving specific data. - Response Generation: The response generated by Eddie is then sent to the client. Flow Finalization After executing Eddie's flow, the service can proceed in different ways: - Return to ClaudIA: If the flow was set to return to ClaudIA, she continues the service. "End Flow [N1]". - Escalated to N2: If configured, the conversation is escalated to the N2 team for more in-depth assistance "Forward to Human [N2]".

Last updated on Aug 12, 2025

Como criar um fluxo no Eddie com API externa (via Eddie)

https://www.loom.com/share/dff35323278948c8bb6f48181c95e859 O que você vai aprender aqui? Essa FAQ ensina, passo a passo, como usar o Eddie com o Eddie + API externa para construir um fluxo que: - Recebe uma entrada do usuário (ex: CEP ou número do pedido) - Faz uma requisição para uma API externa - Extrai e salva os dados retornados em variáveis - Retorna uma resposta formatada para a Cláudia ou direciona o fluxo para N2 Etapa 1 – Crie um novo fluxo no Eddie 1. Acesse o Eddie e clique em “Criar um Typebot” 2. Comece do zero (blank bot) Etapa 2 – Defina o ponto de partida (input do usuário) 1. Crie um bloco de input de texto 2. Salve a entrada do usuário (ex: CEP) numa variável chamada cep Etapa 3 – Configure a chamada de API 1. Adicione um bloco do tipo HTTP Request 2. No campo de URL, cole o endpoint da API (exemplo: https://viacep.com.br/ws/{{cep}}/json) 3. Certifique-se de que a variável esteja entre chave ("{{}}"), como, no exemplo, {{cep}}. 4. Método: GET Etapa 4 – Teste o request 1. Clique em “Test Request” 2. Adicione um valor real de teste (ex: 01025-020) 3. Se o teste falhar, verifique se o link começa com https:// Etapa 5 – Mapeie os campos de resposta Depois que o request funcionar, extraia os dados relevantes do JSON retornado. No exemplo, ele retorna o abaixo: Etapa 6 – Monte a resposta formatada Crie um bloco de texto com a resposta para o cliente, usando as variáveis extraídas. Exemplo: “O CEP {{cep}} corresponde à rua {{endereco}}, no bairro {{bairro}}, cidade de {{cidade}}/{{uf}}, DDD {{ddd}}.” Etapa 7 – Lidando com CEPs inválidos 1. Use um bloco condicional 2. Verifique se a variável endereco existe: - Se sim, siga com a resposta - Se não, envie uma mensagem como, por exemplo, “Não encontramos esse CEP” e retorne para a Cláudia ou redirecione para N2 Etapa 8 – Enviando de volta para a Cláudia - No final do fluxo, use o bloco “Retornar para a Cloud” - Se o dado foi encontrado, retorne uma resposta amigável - Se não foi encontrado, envie um texto que sinalize que a Cláudia deve escalar para N2 (ex: “Não encontrei o status. Por favor, transfira.”) Etapa 9 – Publicar e testar com tickets reais 1. Clique em “Publicar” no topo da tela 2. O fluxo estará disponível para testes reais com tickets na IDS Etapa 10 – Tratamento de entradas com formatação incorreta Se o usuário digitar o CEP com traços, espaços ou pontos (ex: 01.025-020), use blocos intermediários para sanitizar a entrada (remover caracteres especiais). Dica: use blocos de transformação de texto ou scripts JavaScript no Eddie, se necessário. Conclusão Com esse fluxo no Eddie: - Você automatiza buscas externas via API - Personaliza a resposta para o cliente - Escala apenas quando necessário - Pode replicar esse modelo para consultas de status de pedidos, rastreios, CPFs, etc. Outros artigos que podem ser úteis - Básico de como usar as funcionalidades e botões do Eddie - Como Identificar e Evitar Falhas nos Fluxos e Requisições do Eddie - Troubleshooting e outras dicas - Monitoramento e Melhoria Contínua dos Fluxos no Eddie - Passo a passo para lançar um novo Eddie - Como funciona a interação ClaudIA e Eddie

Last updated on Aug 11, 2025

Troubleshooting and Other Tips

Potential Issues When Using Eddie's "Inputs" 1. Buttons Currently, the "Buttons" input does not work in ClaudIA. While tests are successful in Eddie's workspace, this feature is not supported by ClaudIA. In this case, we recommend using a Bubble - Text indicating, in a numbered format, the response options available to the user, followed by a Logic - Condition: 2. Placeholder The "Placeholder" field within "Input" cards allows Eddie to automatically capture data that the customer has already sent in chat to ClaudIA, without needing to ask again. To do this, simply fill in this field with a description of what data is being collected. When filled, it acts as a prompt for automatic search in the ticket. For example, if you write "User's Email," Eddie will automatically identify an email in the ticket and assign it to the defined variable. Consequently, the response in the interactive section is not triggered, avoiding duplicate requests for information. Variable Collection 1. Default Variables These are variables that ClaudIA automatically sends to Eddie's flows. All are in string format. Some may be empty (if the information isn't available in the conversation), while others always have a value. - helpdeskId Ticket identifier in your help desk. Used to locate a specific ticket. - cloudChatId Unique code for the conversation in CloudChat. Always present, as it identifies the conversation. - activeIntent Detected intent (topic) in the current conversation. If no intent is identified, the value will be DEFAULT. - channelType Origin channel of the conversation. Possible values: EMAIL WHATSAPP SMS CHAT FORM FACEBOOK INSTAGRAM NO_TYPE_PROVIDED - language (can be null) Detected language of the conversation. Possible values: pt-BR en es fr de it ja ko zh ru ar hi nl sv da fi pl tr - createdAt Date and time when the conversation started. - frustrationScore Customer frustration level, automatically calculated by ClaudIA. 0 indicates no frustration, higher values indicate greater dissatisfaction, based on project settings. - abKey (can be null) Key used in A/B testing. Not all conversations are tested, so it may not exist. - lastUserMessages Last messages sent by the customer since the last agent response. - messages Complete conversation history in text format, structured as: USER: message AGENT: message No additional integration is required for Eddie to use this information. Simply create a "Condition" card, as shown below: 2. Variable Extractor By default, Eddie's flows are designed to request all necessary information from the customer (such as order number, email, etc.) to fulfill a request. However, this information is often already provided earlier in the conversation. This can cause Eddie to ask redundant questions, leading to a poor user experience. We developed a variable extractor capable of analyzing the conversation history, collecting the required data, and sending it to Eddie at activation, thus eliminating the need to ask customers again. Features: - The extractor dynamically checks Eddie's flow to identify which variables need to be collected. - Extraction is performed by GPT, using a prompt defined within ClaudIA's code. - Collected data can be reviewed in the Hub audit. Configurations: The setup is done within Eddie's flow. For a variable to be extracted, the following conditions must be met: - There must be an input block with the placeholder filled out, describing the variable (e.g., Order number in the format IN-XXXXXX). - The variable must be preceded by an is set conditional, which checks if it has a value or not. This allows control over the flow depending on whether the variable has already been filled by the extractor. Eddie Activation by ClaudIA 1. How An Eddie Is Triggered An Eddie is triggered by ClaudIA through the "section used" feature, detailed in this article. Step-by-step: 1. User sends a message; 2. ClaudIA analyzes the "responses" of available sections; 3. ClaudIA activates the Eddie for the section with the most appropriate "response" to the customer's message; 4. If ClaudIA selects two Eddie sections, the one with the highest score will be triggered. 2. How to Hide the Interactive Section's "Response" To omit the "response," Eddie needs access to the first variable collected in the flow. For example, if the "response" contains the text "What is your order number?", ClaudIA will suppress this question if the user has already provided the order number. For this mechanism to work, you must fill in the "Placeholder" field in the variable collection card.

Last updated on Sep 24, 2025

Passo a passo para lançar um novo Eddie

[Passo 1] Entendendo qual fluxo será construído O primeiro passo para lançar um novo Eddie é definir qual o seu objetivo. Será um Eddie que comunica o status do pedido do cliente? Será um Eddie que adiciona verifica o plano do cliente? Será um Eddie que excluirá a conta do usuário? Para tal, deve-se entender quais as perguntas feitas pelos usuários que deverão acionar o novo Eddie, como nos exemplos abaixo de pergunta do usuário/Eddie: - "Onde está meu pedido?" → Eddie de Status de pedido - "Esqueci a minha senha" → Eddie de reset de senha - "Minha conta está bloqueada" → Eddie de desbloqueio de conta - Validação de alguma informação no início do atendimento → Eddie inicial de validação [Passo 2] Desenhando o rascunho do fluxo que será construído Recomendamos o uso do Miro ou alguma ferramenta digital de "White Board" para fazer o rascunho de cada etapa (uma espécie de fluxograma simplificado). Você precisará entender: - A pergunta que o cliente fará que acionará este Eddie Por exemplo: "Onde está o meu pedido?" - As variáveis que devem ser mapeadas Por exemplo: campo de ID do pedido do cliente - As fontes de dados que serão utilizadas pelo Eddie Por exemplo: Google Sheets ou API - As respostas que devem ser fornecidas ao cliente com base nas variáveis mapeadas e nas consultas feitas no backoffice Por exemplo: "O status do seu pedido é {{statusPedido}}" [Passo 3] Setup do fluxo no Eddie Este guia fornece instruções passo a passo para o setup de um fluxo no Eddie. Siga os passos abaixo: Passo 1: Solicite a criação de um workspace no Eddie para você (ele ainda não é criado por padrão). Passo 2: Dentro do workspace, clique em "Create a typebot" para cada novo fluxo de Eddie, depois selecione "Start from scratch" para criar um Eddie. Passo 3: Inicie a construção de um novo Eddie. Para ver em mais detalhes como construir um fluxo Eddie completo: Como criar um fluxo no Eddie via API ou Como criar fluxo no Eddie via Google Sheets [Passo 4] Setup na ClaudIA (vincular o fluxo criado a uma seção INTERATIVA) Este guia explica como garantir que o Eddie será ativado pela ClaudIA. Passo 1: Não utilize textos genéricos na "response" da seção atualizada/criada. É essencial que ela não se repita em outras seções a fim de otimizar o acionamento do Eddie. Exemplo de seção adequada (com "response" específico para o caso): Exemplo de seção inadequada (genérica): Passo 2: Certifique-se de que o Type da seção esteja marcado como "INTERACTIVE". Esta opção só se torna disponível após o Setup no Eddie. Passo 3: Selecione o Flow ID do fluxo Eddie no qual você quer que seja acionado quando essa seção for utilizada. Pronto! Sua seção interativa está completamente configurada. Você pode testar o comportamento integrado entre ClaudIA <> Eddie diretamente na tela de Playgroud do Hub. [Passo 5] Revisar a estratégia de finalização dos fluxos do Eddie End Flow [N1] Quando este card é utilizado, o ticket não será encerrado ao final da atuação do Eddie e o cliente voltará a interagir com a ClaudIA. Ideal para Eddies ativados através de alguma seção da ClaudIA. Answer Ticket [N1] Ao ser utilizado, este card impede o encerramento do ticket ao final da atuação do Eddie, permitindo que o cliente retome a interação com a ClaudIA. Se o atendimento for iniciado pelo Eddie, a ClaudIA responderá à primeira mensagem do usuário, tornando-o ideal para casos em que o Eddie inicia o atendimento. É importante destacar que é necessário haver um card de Bubble de texto antes do Answer Ticket, com algum conteúdo escrito. Sem isso, o funcionamento pode ser comprometido, resultando em erro no Eddie. Close Ticket [N1] Quando este card é utilizado, o ticket será fechado em N1. Caso o cliente envie uma nova mensagem, um novo ticket será aberto. Forward to Human [N2]: Quando este card é utilizado, o ticket será encerrado pela ClaudIA e transferido a um agente do cliente (escalado N2). Cuidados importantes 1. Preencha o campo "Topic" apenas se a ClaudIA possuir seções com diferentes topics (multiprompt). 2. Sempre será necessário colocar um bubble de texto antes do card de Forward to Human [N2] quando este for utilizado. [Passo Final] Testando o Eddie que foi criado Testando um novo Eddie Antes de disponibilizar um novo fluxo e substituir uma seção importante, é fundamental testar o Eddie para mapear oportunidades de melhoria. Recomendamos realizar testes de três maneiras distintas: 1. Pelo próprio workspace do Eddie 2. Pelo Playground do Hub 3. Pelo canal oficial 1. Pelo próprio workspace do Eddie Os testes no próprio workspace do Eddie podem ser feitos através do botão "Test", no canto superior direito da página. Embora tenha algumas limitações por não considerar todas as integrações com a ClaudIA, como não possibilitar testes com a variável helpdeskId, é uma maneira bastante útil por ser mais rápida, permitindo múltiplos testes em um curto período de tempo. 2. Pelo Playground do Hub Para testar o Eddie pelo Playground do Hub, é necessário criar uma seção na base de conteúdo na ClaudIA que acione o Eddie. A dica aqui é criar uma seção que muito provavelmente não será utilizada pela ClaudIA para responder a um usuário, visto que atualmente este teste ocorre em produção. Para isso, basta criar um título com um conteúdo que os usuários provavelmente não perguntariam, como "Teste Eddie - como eu faço uma poção polissuco com uma batedeira?". Com a seção criada, basta enviar a mensagem do título da seção (Teste Eddie - como eu faço uma poção polissuco com uma batedeira?) no playground. 3. Pelo canal oficial Assim como no teste através do Playground, para testar via canais oficiais, como WhatsApp, e-mail ou widget, é necessário criar uma seção na base de conteúdo na ClaudIA. Para isso, basta seguir os mesmos passos do teste no Playground, mas, ao invés de enviar uma mensagem pelo Playground, a mensagem deve ser enviada através do canal oficial escolhido. Esta opção é útil para testar fluxos que fazem algum tipo de validação com base no helpdeskId.

Last updated on Aug 12, 2025

How to Identify and Avoid Failures in Eddie's Flows and Requests

To ensure efficient and smooth service, it is essential to understand the main modes of failure that can occur in Eddie's flows and the communication between Eddie and ClaudIA. Identifying and mitigating these failures enhances the customer experience and prevents unwanted interruptions. Timeout and Request Cancellation Communication between ClaudIA and Eddie needs to be quick and efficient to ensure smooth customer service. However, there is a time limit for executing each request within Eddie. If this time is exceeded, the request is automatically canceled, interrupting the flow and preventing the customer from receiving an adequate response. How Does Timeout Work? - When ClaudIA calls a flow from Eddie, the execution of actions within the flow must occur within a time limit of 45 seconds. - This limit exists to ensure that the conversation happens in real time, without noticeable delays for the customer. - If a request takes longer than this period, Eddie cannot complete the action, resulting in the cancellation of the operation and no response for ClaudIA. Main Causes of Timeout and Request Cancellation APIs with High Response Time - When an Eddie flow makes a call to an external API, the response time can be very long, exceeding the allowed limit. - Some APIs are not optimized for quick queries and may take time to process and return data. - If the API does not respond within 45 seconds, the request will be automatically canceled, harming the user experience. 🔹 How to Avoid: Use APIs that have a fast response time (ideally less than 2-3 seconds). Prioritize asynchronous APIs or those with cached responses to avoid delays. If you need a slow API, consider breaking the request into smaller parts or using intermediate solutions (such as storing temporary data). Retrieval Failure - This can happen due to configuration errors, recent changes in the flow, or failures in data indexing. - To mitigate this issue, it is essential to regularly review and test the contents attached to the flow. Internal Execution Error in Eddie - Eddie may experience internal failures that prevent the correct execution of the flow. - This can occur due to incorrect configurations, poorly structured blocks, or improper use of logical conditions (IF/ELSE). - To minimize this risk, it is recommended to test each flow before publication and review error logs in the Hub if it occurs. Error in Integration Execution - External integrations (such as API calls, Google Sheets) may return error messages or fail completely. - When this happens, Eddie may follow an incorrect path or not respond to the customer. - To mitigate this issue, configure appropriate error handling, such as: - Returning an explanatory message to the customer. - Escalating service to a human agent (N2). 5. Incorrect Execution Flow - In flows that use LLMs (Language Models like GPT) to define the execution route, there may be failures in choosing the next step. - This occurs when the model's interpretation leads to an unexpected path or when the conditions within the flow are not well defined. - To avoid this type of error: - Define clear and well-structured prompts. - Configure conditional responses for different scenarios. - Test variations of the flow to ensure predictability. Total Failure of Eddie - In extreme cases, Eddie may fail completely, preventing the flow from continuing. - To prevent the customer from getting stuck in the conversation, there is a safety feature that automatically escalates the conversation to N2. - This scalability ensures that, even in a scenario of overall failure, customer service is not interrupted.

Last updated on Aug 12, 2025

Monitoring and Continuous Improvement of Flows in Eddie

To ensure that the flows operate correctly, it is essential to monitor the processes of ClaudIA and Eddie. We have a platform called HUB, where all interactions that have gone through ClaudIA are recorded. In the HUB, it is possible to view the services, track flows called by Eddie, and identify opportunities for improvement, ensuring increasingly efficient and well-monitored service. Overview of the HUB: Main screen displaying the conversation history of ClaudIA The HUB functions as a central dashboard that allows auditing, analyzing, and improving customer service. It offers a detailed view of the conversation flow, helping to identify potential bottlenecks and facilitating actions for continuous optimization. Flow Tracking in HUB: Example of a conversation indicating the start of the flow in Eddie and the return signal to ClaudIA at the end of the interaction. HUB Features ✔ Complete record of conversations: All messages exchanged between clients and ClaudIA are stored for analysis and auditing. ✔ Monitoring of Eddie's flows: Whenever ClaudIA triggers a flow from Eddie, the HUB displays a signal with the flow name and the messages exchanged within it, allowing for tracking the customer journey. ✔ Indication of flow end: When a flow is completed, there is a return signal to ClaudIA, allowing understanding of when the service returned to the AI. ✔ Audits for continuous improvement: The HUB allows for strategic adjustments, such as refining N1 and N2 content, creating interactive flows, and identifying failure points that impact customer experience. ✔ Monitoring of errors in Eddie's requests: If there is any failure in API calls or integrations within Eddie, the HUB allows for the identification of these failures, enabling quick corrections to avoid impact on service. A high-level block with a log is displayed at the moment of failure to facilitate problem identification. Example of log in Hub: indication of failure in Eddie's request The Hub is an essential tool to ensure efficiency, transparency, and constant evolution of service, providing a strategic view of the interaction between ClaudIA, Eddie, and customers. The following features are available for analysis and optimization: Identification of Eddie's Call Moment - In the Hub, it is possible to visualize exactly when an Eddie was called within a conversation. - The start and end of the flow are recorded, allowing for clear tracking of what happened during execution. Suggested Process for Testing and Improving Eddie To ensure the quality and continuous evolution of the flows created in Eddie, it is essential to follow a structured process of testing and improvements. Since Eddie does not have a native version control, best practices include backups, isolated testing, and validation before publication. Building and Modularization - Whenever possible, break complex flows into smaller, reusable parts. - Use calls between flows to facilitate maintenance and avoid rework. - Ensure that all conditions (if/else) are correctly filled to avoid incorrect decisions. Testing Before Publication - Before publishing any changes, duplicate the flow and conduct tests in an isolated environment. - Run complete simulations, checking decision logic, messages sent, and configured integrations. - Validate response times by observing the interval between the client's message and ClaudIA's response in the HUB. This helps identify potential slowdowns in requests, even without an exact detail of the duration. Avoid requests that may exceed the 45-second timeout. Backup and Change Control - As there is no native versioning system, download a copy of the flow before any modification. - Publish only after all changes are validated to avoid unexpected failures. - If a downgrade is necessary, use the saved version to quickly restore the previous flow. Monitoring and Continuous Improvement - Monitor the execution of flows in the HUB, checking which were called and if there were any failures or unexpected deviations. - Analyze logs and error messages to identify optimization points. - If recurring failures occur, adjust the decision conditions and alternative flows to ensure smoother service. This structured process minimizes errors, optimizes Eddie's performance, and improves the customer experience, ensuring that each flow works as effectively as possible.

Last updated on Aug 12, 2025

How to open a side conversation in Zendesk via Eddie

What is a side conversation in Zendesk? It is a feature that allows you to open a new communication channel within an existing ticket, usually used to involve other teams or departments. Step-by-step guide to set up in Eddie 1. Add an HTTP Request block At the end of the branch in the flow where you want to open the side conversation, add a block of type "HTTP Request". 2. Configure the method - Method: POST 3. Configure the URL https://youraccount.zendesk.com/api/v2/tickets/{{helpdeskId}}/side_conversations - Replace youraccount.zendesk.com with your Zendesk URL. - Replace {{helpdeskId}} with the variable for the ticket ID (it can be collected from the flow by ClaudIA) 4. Headers Add the following headers: { "Authorization": "Bearer YOUR_TOKEN_HERE", "Content-Type": "application/json" } Replace YOUR_TOKEN_HERE with your Zendesk API token (converted to base64). 5. Body (request body) Use the following content in JSON format: { "message": { "subject": "Title", "body": "body", "to": [ { "support_group_id": GROUP_ID } ] } } - Title: title of the conversation. - body: message to be sent. - GROUP_ID: ID of the support group that will receive the conversation. You can use Eddie variables like {{name}}, {{message}}, etc., to personalize. Example with Eddie variables: { "message": { "subject": "New request from {{name}}", "body": "Customer {{name}} has made a new request with the following details: {{details}}", "to": [ { "support_group_id": 123456 } ] } } Where to add it? Add this HTTP block in the branch of the flow where you want the side conversation to be created in Zendesk. Example flow with opening of side conversation using Zendesk API

Last updated on Aug 12, 2025

Collaborative Editing on Eddie

🔄 How does collaborative editing work on Eddie? Eddie uses a queue system to manage multiple users within the same flow. - Only one user at a time can edit (Editor mode) - Others remain in Read-Only mode, watching in real-time. When the current editor leaves or is removed due to inactivity, the next user in line automatically takes over editing. 👥 Who can edit a flow? The order is determined by arrival: 1. The first user who opens the flow becomes the Editor 2. The others automatically join the waiting queue 3. When the current editor leaves, the next in line gains editing control 🖥️ What are the access modes? - Edit Mode → you can drag blocks, change settings, and publish changes normally - Read-Only Mode → you can view and even test the flow, but cannot edit 🔎 How do I know which mode I am in? The interface displays clear indicators: - Edit Mode → shows a sidebar with available blocks and the Publish: button: - - Read-Only Mode → displays a "READ-ONLY" warning at the top: - - The connected users icon (👥) shows how many people are accessing the flow; hovering over it reveals: - The current Editor (bold) - The other users in view-only mode - - ⏳ What happens if I become inactive? To prevent locks: - Eddie monitors your activity - If you are ~10 minutes inactive, you lose your editing position - The next user in the queue takes over as Editor 🔄 How do I pass the turn to another user? To release editing: 1. Save your changes 2. Exit the flow 3. The next user in line automatically gains editing access 📑 Can I duplicate a flow to edit separately? Yes. If you don’t want to wait in line to test a change, you can click Duplicate and create your own editable copy. 💾 Are my changes lost when someone else takes over? Only if you are inactive after 10 minutes and haven’t published your changes.

Last updated on Sep 22, 2025