Pular para o conteúdo principal

Triagem de e-mail e automação de respostas com OpenClaw

Automatize a triagem, categorização e respostas inteligentes de e-mail com agentes OpenClaw AI. Processe centenas de e-mails diários sem classificação manual e tempos de resposta mais rápidos.

E
ECOSIRE Research and Development Team
|19 de março de 202613 min de leitura2.5k Palavras|

O trabalhador do conhecimento médio gasta 2,6 horas por dia gerenciando e-mail. Para equipes de atendimento ao cliente, representantes de desenvolvimento de vendas e assistentes executivos, o número é maior – e uma fração significativa desse tempo é gasta em tarefas que um sistema capaz poderia realizar: classificar e-mails por urgência, encaminhar consultas para a pessoa certa, responder a perguntas frequentes, agendar solicitações de reuniões e acompanhar tópicos pendentes.

Essas tarefas exigem compreensão, mas não criatividade. Essas são exatamente as tarefas para as quais os agentes OpenClaw foram criados.

A automação de e-mail OpenClaw vai além de regras baseadas em palavras-chave. O agente de triagem de e-mail lê todos os e-mails da mesma forma que um assistente humano qualificado faria: entendendo o contexto, inferindo a intenção, reconhecendo o relacionamento do remetente com sua empresa e tomando decisões inteligentes de roteamento e resposta. Este guia aborda a arquitetura completa de automação de e-mail para implantações empresariais.

Principais conclusões

  • O Email Triage Agent do OpenClaw classifica e-mails por tipo (consulta, reclamação, fatura, solicitação de reunião, spam, notificação interna) e prioridade em menos de dois segundos.
  • O agente elabora respostas para consultas repetitivas, envia-as automaticamente ou encaminha-as para um ser humano para aprovação com base na sua política.
  • Os pedidos de agendamento de reuniões são tratados de ponta a ponta: o agente verifica a disponibilidade do calendário, propõe horários, confirma a reserva e envia convites.
  • O agente mantém o contexto do tópico – e-mails de acompanhamento no mesmo tópico são tratados com conhecimento do histórico da conversa.
  • A detecção de escalada emocional direciona remetentes angustiados ou irritados para manipuladores humanos imediatamente, independentemente do assunto.
  • Categorias de e-mail confidenciais (avisos legais, correspondência regulatória, reclamações de contas corporativas) são sinalizadas e nunca respondidas automaticamente.
  • Integração com Gmail, Outlook (Microsoft 365) e qualquer sistema de e-mail compatível com IMAP/SMTP.
  • ECOSIRE cria automação de e-mail OpenClaw para equipes executivas, departamentos de atendimento ao cliente e operações de desenvolvimento de vendas.

Arquitetura: a pilha de automação de e-mail

O pipeline de automação de email consiste em quatro agentes trabalhando em sequência:

Inbound Email
      ↓
[ Triage Agent ]         — classify type, priority, sender relationship, intent
      ↓
[ Response Agent ]       — draft appropriate response or action
      ↓
[ Review Gate ]          — auto-send, human-approve, or escalate
      ↓
[ Follow-up Agent ]      — track replies, manage open threads, send reminders

O Review Gate é configurável por categoria de e-mail. Para notificações internas, o agente pode agir imediatamente. Para consultas de clientes, os rascunhos vão para a caixa de entrada como uma sugestão de resposta para ser enviada por um humano. Para spam e marketing, o agente arquiva automaticamente. Para categorias sensíveis, o agente sinaliza sem responder.


Integração de e-mail: conectando-se à sua caixa de correio

OpenClaw se conecta ao e-mail por meio de protocolos padrão e OAuth. A arquitetura recomendada para Gmail:

export const GmailTool = defineTool({
  name: "email",
  type: "google-gmail",
  auth: {
    type: "oauth2",
    clientId: "${GOOGLE_CLIENT_ID}",
    clientSecret: "${GOOGLE_CLIENT_SECRET}",
    refreshToken: "${GMAIL_REFRESH_TOKEN}", // Stored in Vault
    scopes: [
      "https://www.googleapis.com/auth/gmail.readonly",
      "https://www.googleapis.com/auth/gmail.send",
      "https://www.googleapis.com/auth/gmail.modify",
    ],
  },
  polling: {
    intervalMs: 30_000, // Check every 30 seconds
    maxResults: 50,
    labelFilter: ["INBOX", "UNREAD"],
  },
});

Para Microsoft 365, a ferramenta usa a API Microsoft Graph com configuração OAuth semelhante. Para outros sistemas de e-mail, a ferramenta IMAP oferece compatibilidade:

export const ImapTool = defineTool({
  name: "email",
  type: "imap",
  config: {
    host: "${IMAP_HOST}",
    port: 993,
    tls: true,
    auth: { user: "${EMAIL_ADDRESS}", pass: "${EMAIL_PASSWORD}" },
    smtpHost: "${SMTP_HOST}",
    smtpPort: 587,
  },
});

A pesquisa por e-mail é executada em um intervalo configurável. Para caixas de entrada de alto volume (mais de 1.000 e-mails por dia), um modelo de notificação push por meio da integração Pub/Sub do Gmail ou das assinaturas de webhook do Outlook fornece processamento em tempo real sem sobrecarga de pesquisa.


Agente de triagem: entendendo cada e-mail

O Agente de Triagem classifica cada e-mail recebido em quatro dimensões:

Tipo: Em que categoria este e-mail se enquadra? Os tipos comuns incluem: consulta do cliente, oportunidade de vendas, comunicação com o fornecedor, fatura/cobrança, solicitação de reunião, reclamação, aviso legal, notificação interna, marketing/promocional, spam, boletim informativo.

Prioridade: com que urgência isso precisa de atenção? A prioridade é determinada pelo relacionamento do remetente (conta corporativa versus contato desconhecido), tipo (aviso legal é sempre de alta prioridade), sentimento (sinais de raiva ou angústia de alta prioridade) e referências de tempo explícitas (“Preciso disso até sexta-feira”).

Intenção: o que o remetente deseja? Agende uma ligação, obtenha resposta a uma dúvida, solicite reembolso, faça uma reclamação, confirme uma reunião, aprove um documento.

Relacionamento com o remetente: o remetente é um cliente (e, em caso afirmativo, qual nível)? Um fornecedor? Um cliente potencial no pipeline de vendas? Um colega interno? Um primeiro contato? O domínio de e-mail do remetente é comparado ao seu CRM e ERP para enriquecer o contexto da triagem.

export const TriageEmail = defineSkill({
  name: "triage-email",
  tools: ["email", "crm", "llm"],
  async run({ input, tools }) {
    const email = await tools.email.getMessage(input.messageId);

    // Enrich sender context
    const senderContext = await tools.crm.findByEmail(email.from.address);

    // Classify with LLM
    const classification = await tools.llm.classify({
      prompt: buildTriagePrompt(email, senderContext),
      schema: {
        type: z.enum(["customer-inquiry", "sales-opportunity", "complaint", "invoice",
                       "meeting-request", "legal-notice", "internal", "spam", "other"]),
        priority: z.enum(["urgent", "high", "normal", "low"]),
        intent: z.string().max(100),
        requiresHuman: z.boolean(),
        requiresHumanReason: z.string().optional(),
        sentiment: z.enum(["positive", "neutral", "negative", "distressed"]),
      },
    });

    // Emotional escalation — always to human
    if (classification.sentiment === "distressed" || classification.type === "legal-notice") {
      return {
        ...classification,
        requiresHuman: true,
        requiresHumanReason: classification.sentiment === "distressed" ? "Distressed sender" : "Legal notice",
        autoAction: "FLAG_FOR_HUMAN",
      };
    }

    return { ...classification, senderContext };
  },
});

Agente de resposta: elaboração de respostas contextualmente precisas

Para e-mails qualificados para resposta automática (consultas de clientes sobre status de pedidos, perguntas frequentes, solicitações de agendamento), o Agente de Resposta elabora uma resposta no estilo de comunicação da organização.

A qualidade da resposta depende do conhecimento ao qual o agente tem acesso. O agente de resposta questiona:

  • A base de conhecimento para respostas factuais (especificações de produtos, preços, políticas)
  • O CRM para informações específicas do cliente (status da conta, pedidos em aberto, interações anteriores)
  • O calendário de disponibilidade no momento do agendamento
  • O ERP para detalhes de pedidos e faturas
export const DraftEmailResponse = defineSkill({
  name: "draft-email-response",
  tools: ["email", "crm", "knowledge-base", "erp", "calendar", "llm"],
  async run({ input, tools }) {
    const { email, classification, senderContext } = input;
    let contextData: Record<string, any> = {};

    // Gather relevant context based on email type
    if (classification.type === "customer-inquiry" && senderContext?.customerId) {
      contextData.recentOrders = await tools.erp.getRecentOrders(senderContext.customerId, { limit: 3 });
      contextData.openTickets = await tools.crm.getOpenTickets(senderContext.customerId);
    }

    if (classification.intent.includes("schedule") || classification.type === "meeting-request") {
      contextData.availability = await tools.calendar.getFreeSlots({ days: 7, duration: 30 });
    }

    // Query knowledge base for relevant answers
    const knowledgeResults = await tools.knowledgeBase.search(email.body, { topK: 3 });
    contextData.knowledgeAnswers = knowledgeResults;

    // Generate draft
    const draft = await tools.llm.generate({
      prompt: buildResponsePrompt(email, classification, senderContext, contextData),
      systemPrompt: loadBrandVoiceGuide(), // Tone, style, sign-off format
      maxTokens: 500,
      temperature: 0.3,
    });

    return {
      draft,
      contextUsed: Object.keys(contextData),
      confidence: knowledgeResults[0]?.confidence ?? 0.5,
    };
  },
});

Consistência da voz da marca: o prompt do sistema para geração de resposta inclui as diretrizes de estilo de comunicação da sua organização: nível de formalidade, aprovação preferencial, como se dirigir aos clientes (pelo primeiro nome ou formalmente) e frases específicas a serem usadas ou evitadas. Isso garante que as respostas elaboradas pelo agente sejam indistinguíveis da redação da sua equipe em estilo, se não em autoria.


Agendamento de reuniões: eliminando idas e vindas do calendário

Os e-mails de agendamento de reuniões têm alto volume e baixa criatividade – eles seguem padrões previsíveis que os agentes lidam com excelência. Quando o Agente de Triagem identifica uma solicitação de reunião, o fluxo de Agendamento de Resposta é ativado.

export const HandleMeetingRequest = defineSkill({
  name: "handle-meeting-request",
  tools: ["calendar", "email"],
  async run({ input, tools }) {
    const { email, requestedDuration } = input;

    // Find available slots
    const slots = await tools.calendar.getFreeSlots({
      duration: requestedDuration ?? 30,
      days: 7,
      businessHoursOnly: true,
      timezone: inferTimezone(email),
    });

    if (slots.length === 0) {
      return {
        action: "DRAFT_RESPONSE",
        message: "No available slots in the next 7 days — response template: suggest extending the window",
        requiresHuman: true,
      };
    }

    const topSlots = slots.slice(0, 3);

    // Create a scheduling page link (or include times directly in the email)
    const schedulingLink = await tools.calendar.createSchedulingPage({
      slots: topSlots,
      title: `Meeting with ${input.hostName}`,
      duration: requestedDuration ?? 30,
      confirmationEmailTemplate: "meeting-confirmed",
    });

    const draft = buildSchedulingResponse(email, topSlots, schedulingLink, input.hostName);

    return { action: "DRAFT_READY", draft, schedulingLink };
  },
});

Quando o destinatário clica em um slot no link de agendamento, um webhook aciona a habilidade de confirmação que reserva o evento do calendário, envia convites do calendário para todas as partes e fecha o thread de e-mail com uma confirmação.


Gerenciamento de contexto de thread

As conversas por e-mail abrangem várias mensagens. Um e-mail de acompanhamento só tem sentido no contexto do tópico anterior. O Thread Manager mantém um resumo semântico de cada thread aberto que é atualizado à medida que novas mensagens chegam.

export const UpdateThreadContext = defineSkill({
  name: "update-thread-context",
  tools: ["email"],
  async run({ input, tools, memory }) {
    const threadKey = `thread:${input.threadId}`;
    const existingContext = await memory.episode.get(threadKey);

    const newMessages = await tools.email.getThreadMessages(input.threadId, {
      since: existingContext?.lastMessageId ?? null,
    });

    const updatedSummary = await summarizeThread([
      ...(existingContext?.messages ?? []),
      ...newMessages,
    ]);

    await memory.episode.set(threadKey, {
      threadId: input.threadId,
      summary: updatedSummary,
      lastMessageId: newMessages[newMessages.length - 1]?.id,
      openItems: extractOpenItems(updatedSummary),
      lastUpdated: new Date().toISOString(),
    });

    return { summary: updatedSummary };
  },
});

Quando uma nova mensagem chega em um thread, os agentes de triagem e resposta recebem o resumo do thread como contexto, para que entendam o histórico completo da conversa sem reler cada mensagem.


Acompanhamento de acompanhamento: nada passa despercebido

O Agente de Acompanhamento monitora threads abertos onde a organização enviou uma mensagem e não recebeu resposta. Após um período configurável (normalmente 3 dias úteis para contato com o cliente, 1 dia para acompanhamentos de vendas urgentes), ele elabora um e-mail de acompanhamento e o encaminha através do portão de revisão apropriado.

export const TrackOpenThreads = defineSkill({
  name: "track-open-threads",
  tools: ["email"],
  async run({ input, tools, memory }) {
    const sentEmails = await tools.email.getSentMessages({
      since: hoursAgo(24 * 7), // Last week's sent emails
      excludeInternalDomains: true,
    });

    const waitingForReply = [];
    for (const sent of sentEmails) {
      const thread = await tools.email.getThread(sent.threadId);
      const lastMessage = thread.messages[thread.messages.length - 1];
      const weWroteLastMessage = lastMessage.from.address === input.ourEmailAddress;

      if (weWroteLastMessage) {
        const daysSinceSent = daysSince(lastMessage.date);
        if (daysSinceSent >= input.followUpAfterDays) {
          waitingForReply.push({ threadId: sent.threadId, daysSinceSent, subject: sent.subject });
        }
      }
    }

    return { waitingForReply, count: waitingForReply.length };
  },
});

Tratamento de e-mail confidencial: o que o agente nunca responde automaticamente

Algumas categorias de email nunca devem receber respostas automatizadas. O Agente de Triagem sinaliza imediatamente estes para tratamento humano:

  • Avisos legais, cartas de cessação e desistência, correspondência regulatória
  • Reclamações de contas empresariais acima de um limite de receita
  • E-mails mencionando mídia, imprensa ou jornalismo
  • E-mails com tipos de anexos que sugerem documentos legais (PDF com padrões de nomes de arquivo que parecem legais)
  • Tentativas de phishing ou engenharia social (sinalizadas e colocadas em quarentena, sem resposta)
  • E-mails com confiança de classificação muito baixa (o agente não tem certeza do que se trata o e-mail)

O sistema de sinalização adiciona um rótulo e cria uma tarefa no sistema de fluxo de trabalho da equipe – o e-mail nunca é perdido, apenas encaminhado para mãos humanas.


Perguntas frequentes

Como o agente mantém a aparência de autoria humana nas respostas?

O Agente de Resposta é configurado com o estilo de comunicação do remetente humano: frases preferidas, formato de aprovação, duração típica da resposta e nível de formalidade. Os rascunhos são gerados nesse estilo. Para equipes onde as respostas são revisadas antes do envio, o humano edita o rascunho, se necessário, e o envia por conta própria – o e-mail vem do endereço deles, sem indicação de assistência de IA. Para respostas totalmente automatizadas (respostas a perguntas frequentes, status do pedido), a organização pode optar por divulgar a automação no rodapé do e-mail.

O que acontece quando o agente não tem certeza sobre como responder?

Os limites de confiança são configuráveis ​​por categoria de e-mail. Quando a confiança do agente na sua classificação ou resposta proposta cai abaixo do limite, ele encaminha para a fila de revisão humana com uma ação sugerida, em vez de responder automaticamente. O humano pode aprovar a sugestão com um clique, modificá-la ou tratá-la manualmente. Cada sugestão aprovada melhora a confiança futura do agente em e-mails semelhantes por meio do ciclo de feedback de aprendizagem.

O agente pode lidar com e-mails em vários idiomas?

Sim. A detecção de idioma é executada como a primeira etapa no pipeline de triagem. O agente poderá redigir respostas no mesmo idioma do e-mail recebido se a base de conhecimento tiver conteúdo nesse idioma. Para idiomas onde a base de conhecimento é apenas em inglês, o agente traduz o rascunho da resposta para o idioma do remetente. A qualidade da resposta em línguas diferentes do inglês é mais elevada para línguas em que o LLM subjacente tem uma forte cobertura de formação (espanhol, francês, alemão, chinês, japonês, português, árabe).

Como o rastreador de acompanhamento evita o envio de lembretes de forma muito agressiva?

O agente de acompanhamento verifica os sinais de envolvimento do destinatário antes de enviar um lembrete. Se o destinatário abriu o e-mail anterior (rastreado por meio de confirmações de leitura, se disponíveis), mas não respondeu, o acompanhamento será mais suave e assumirá que ele está considerando isso. Se não houver sinal aberto, o acompanhamento é mais direto. O agente também respeita os sinais de opt-out: se um acompanhamento anterior gerou uma resposta pedindo para não ser contatado, o tópico é marcado como encerrado e nenhum acompanhamento adicional é enviado.

Existe uma trilha de auditoria de todas as ações automatizadas realizadas em e-mails?

Sim. Cada ação automatizada – classificação de triagem, geração de rascunho, envio automático, aplicação de etiqueta, arquivamento – é registrada com carimbo de data/hora, a lógica de classificação do agente e o ID da mensagem do e-mail. O log de auditoria está acessível aos administradores e pode ser exportado para análises de conformidade. Para organizações com requisitos de arquivamento de e-mail, as ações do OpenClaw não interferem na sua solução de arquivamento de e-mail existente.


Próximas etapas

O e-mail é um gargalo de alto volume e baixa criatividade para a maioria das equipes profissionais. A automação de e-mail OpenClaw cuida da classificação, roteamento e respostas repetitivas para que sua equipe se concentre nas conversas que exigem julgamento humano, construção de relacionamento e criatividade.

Os serviços OpenClaw da ECOSIRE incluem implementação de automação de e-mail para equipes de atendimento ao cliente, assistentes executivos, operações de desenvolvimento de vendas e funções de gerenciamento de fornecedores. Nossa equipe configura as regras de triagem, a base de conhecimento, as diretrizes de voz da marca e as portas de revisão para atender aos padrões de comunicação da sua organização.

Entre em contato com a ECOSIRE para discutir seus requisitos de automação de e-mail e receber uma estimativa de implementação.

E

Escrito por

ECOSIRE Research and Development Team

Redação técnica

A equipe de redação técnica da ECOSIRE escreve sobre Odoo ERP, e-commerce com Shopify, agentes de IA, análise de dados com Power BI, automação com GoHighLevel e boas práticas de software empresarial. Nossos guias ajudam as empresas a tomar decisões de tecnologia bem fundamentadas.

ECOSIRE

Crie agentes inteligentes de IA

Implante agentes autônomos de IA que automatizam fluxos de trabalho e aumentam a produtividade.