M
Cockpit Diário · VP Operações

Bom dia, Tulio.

Aqui está o panorama operacional de hoje.

📦 Repositórios da Operação

Resumo Executivo — CEO

Assuntos estratégicos que os times endereçaram diretamente ao CEO, organizados por time.

🔬

Mlz-Analysis

Análises do data warehouse, materializadas por área

⚙️

Operações Integradas

Gestão de redes, parceiros diretos e processos operacionais

🚨 Alertas de Rastreio
🔗 Redes de Afiliados e Parceiros
Awin 0
Rakuten 0
CJ 0
Parceiros Diretos 0
🧾

Casos Redes e Parceiros

Problemas com dono, prazo e histórico — no lugar da thread de e-mail

📊 Painel de Casos
🧾 Casos com Redes e Parceiros
📅 Semanal com Parceiros e Redes
🏷️ Cadastro e Acessos
🤝

Customer Success

Satisfação do cliente, NPS, churn e health score

🛡️

Prevenção à Fraudes

Monitoramento, análise de risco e prevenção

🤖 Agentes em Produção · Report ao Vivo
Não carregado
Agente automato · Análise de Fraude — Indique e Ganhe
⚙️ Configurar planilha
Clique em "Atualizar" para trazer o trabalho do agente (aba log_ieg).
🤖 Diagnóstico — Construção dos Agentes
Não carregado
Clique em "Atualizar" para carregar o mapeamento de agentes da planilha.
🚀

Mission Control

Monitoramento de sistemas, incidentes e estabilidade

🎛️ Estado dos Fluxos Críticos
Não carregado
💰

Financeiro

Budget, cash position, forecast e controle orçamentário

📈

Métricas do Negócio

E-commerce — GMV, transações, redirects e conversão por parceiro

⚡ Fonte de dados
Cole o link de uma planilha Google Sheets ou URL de webhook
Nenhuma atualização

Configurações

Gerencie integrações e credenciais do cockpit.

🔗 Proxy Google Sheets

Cole abaixo a URL do Google Apps Script que serve como proxy de leitura das planilhas. Todas as importações usam esta URL automaticamente — sem popup de login, sem expiração de sessão.

Como criar o Apps Script?
Configuração única (~5 min):
  1. Acesse script.google.com com a conta tulio@meliuz.com.br
  2. Clique em Novo projeto. Apague o código existente e cole o código do proxy (ver abaixo)
  3. Salve o projeto (Ctrl+S). No menu superior, clique em Implantar → Nova implantação
  4. Em "Tipo de implantação", escolha App da Web
  5. Configure: Executar como: Eu (tulio@meliuz.com.br) · Quem tem acesso: Qualquer pessoa
  6. Clique em Implantar, autorize as permissões e copie a URL gerada
  7. Cole a URL no campo acima e clique em Salvar
Qual link colar? NÃO é o link do editor (script.google.com/.../edit). É a URL gerada ao Implantar → App da Web, que termina em /exec (script.google.com/macros/s/.../exec). Se editar o código depois, use Implantar → Gerenciar implantações → Editar (✏️) → Nova versão para não trocar a URL.
Importante: Cada planilha precisa estar compartilhada com tulio@meliuz.com.br (permissão de visualização é suficiente). Não é necessário tornar as planilhas públicas. Ao adicionar novas planilhas no futuro, apenas compartilhe com essa conta — sem alterar o script.
O código abaixo está desatualizado. Ele cobre só planilhas e e-mail. A versão completa — que também lê a API do mlz-ia-conversa, a atividade do GitHub e responde as perguntas dos cards de Repositório — está em scripts/apps_script_proxy.gs, no repositório do cockpit. Use aquele arquivo; este bloco fica aqui só como referência do contrato antigo.
Código do proxy (cole no editor do Apps Script):
function doGet(e) {
  try {
    var p = (e && e.parameter) || {};
    if (!p.spreadsheetId) return json({ error: 'Parametro spreadsheetId e obrigatorio' });
    var ss = SpreadsheetApp.openById(p.spreadsheetId);
    var sheet = null;
    if (p.sheet) {
      sheet = ss.getSheetByName(p.sheet);
      if (!sheet) return json({ error: 'Aba nao encontrada: ' + p.sheet });
    } else if (p.gid) {
      var all = ss.getSheets();
      for (var i = 0; i < all.length; i++) {
        if (String(all[i].getSheetId()) === String(p.gid)) { sheet = all[i]; break; }
      }
      if (!sheet) return json({ error: 'gid nao encontrado: ' + p.gid });
    } else {
      sheet = ss.getSheets()[0];
    }
    var rows = sheet.getDataRange().getDisplayValues();
    var csv = rows.map(function (row) {
      return row.map(function (cell) {
        var s = (cell == null) ? '' : String(cell);
        return /[",\n\r]/.test(s) ? '"' + s.replace(/"/g, '""') + '"' : s;
      }).join(',');
    }).join('\n');
    return ContentService.createTextOutput(csv).setMimeType(ContentService.MimeType.CSV);
  } catch (err) {
    return json({ error: String(err) });
  }
}
// Envio de e-mail (cobranca de follow-up). O corpo chega como texto puro de
// proposito: com Content-Type JSON o navegador dispara um preflight OPTIONS,
// que o Apps Script nao responde.
function doPost(e) {
  try {
    var req = JSON.parse((e && e.postData && e.postData.contents) || '{}');
    if (req.action !== 'mail') return json({ error: 'Acao desconhecida: ' + req.action });
    // O cockpit esta publico na internet: o proxy so entrega para o dominio da
    // empresa, entao nem um login vazado o transforma em relay de spam.
    var DOMINIO = 'meliuz.com.br';
    var to = (req.to || []).filter(function (a) {
      return /@/.test(String(a)) && String(a).split('@')[1].toLowerCase() === DOMINIO;
    });
    if (!to.length) return json({ error: 'Nenhum destinatario @' + DOMINIO });
    var msg = {
      to: to.join(','),
      subject: String(req.subject || 'Cockpit Meliuz'),
      body: String(req.body || ''),
      name: 'Cockpit Meliuz'
    };
    if (req.replyTo && /@/.test(String(req.replyTo))) msg.replyTo = String(req.replyTo);
    MailApp.sendEmail(msg);
    return json({ ok: true, sent: to, quota: MailApp.getRemainingDailyQuota() });
  } catch (err) {
    return json({ error: String(err) });
  }
}
function json(obj) {
  return ContentService.createTextOutput(JSON.stringify(obj))
    .setMimeType(ContentService.MimeType.JSON);
}
Já tem o proxy rodando? Basta colar a função doPost acima no fim do script existente e publicar Nova versão (Implantar → Gerenciar implantações → ✏️). A URL não muda. Na primeira execução o Google pede uma permissão nova — a de enviar e-mail em seu nome, usada pela cobrança de follow-up. Depois, teste no botão ✉️ Testar e-mail aqui em cima.