🗄️ Leads

Tabela principal de leads do sistema OndeVou.

📋 13 colunas 🔗 4 relacionamentos 🎮 6 controles 👁️ view_leads 🔑 PRIMARY KEY 📱 GetCollector

📋 Estrutura da Tabela

A tabela leads possui 13 colunas.

🔑 Id PRIMARY KEY
🔑 PRIMARY KEY🔒 Somente leitura💾 Grava
Campo Tabela id
Campo VIEW / Exibido id_lead 🔹 Alias na VIEW: id_lead
Tipo number (readonly - PRIMARY KEY)
Data Table leads
Descrição

Campo id

🔑 PRIMARY KEY

Campo na tabela: id

Alias na VIEW: id_lead

Readonly: ✅ Gerado automaticamente pelo sistema

Formsearch: ✅ Permite busca avançada

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou id
  • Alias OndeVou id_lead
  • Tabela OndeVou leads
🔍 Formsearch
  • {
      "required": ""
    }
  • Alias: id_lead
  • Tabelas: leads ✅
  • FormSearch: ✓
  • 🔑 PRIMARY KEY
  • VIEW: id_lead
  • 📋 FormSearch
📋 Participante
🔒 Somente leitura👁️ Oculto💾 Grava
Campo Tabela participante
Campo VIEW / Exibido participante
Tipo number
Data Table leads
Descrição

Campo participante

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
⚙️ Comportamento
  • Valor padrão 1
📊 Dados
  • Campo OndeVou participante
  • Tabela OndeVou leads
  • Tabelas: leads ✅
  • Hidden: ✓ (dados ocultos)
  • Value: 1
📋 Razão Social
✅ Obrigatório💾 Grava🔗 getdata
Campo Tabela id_participante
Campo VIEW / Exibido razao_social (ID: id_participante)
Tipo number (getdata)
Data Table leads
Descrição

Campo razão social

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou razao_social
  • ID OndeVou id_participante
  • Tabela OndeVou leads
🔗 Getdata
  • {
      "view": "view_participantes_privado",
      "data": "view_participantes_privado",
      "campo-data-id": "id_participante",
      "campo-data-value-input": "id_participante,razao_social",
      "campo-data-input-select-view": "id_participante,codigo_erplinux_cliente,codigo_erplinux_fornecedor,razao_social,nome_fantasia,cnpj,cpf,cep,cep_erplinux,nome_bairro,nome_cidade,sigla_uf",
      "query": {
        "select": "* from view_participantes_privado",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_participante,` `,codigo_erplinux_cliente,` `,codigo_erplinux_fornecedor,` `,razao_social,` `,nome_fantasia,` `,cnpj,` `,cpf,` `,cep,` `,cep_erplinux,` `,nome_bairro,` `,nome_cidade,` `,sigla_uf))) ilike `%",
              "right": "%`) and (participante=`1`)"
            }
          }
        }
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_participante
  • Tabelas: leads ✅
  • FormSearch: ✓
📋 CNPJ
✅ Obrigatório💾 Grava
Campo Tabela cnpj
Campo VIEW / Exibido cnpj
Tipo text
Data Table leads
Descrição

Campo cnpj

📋 Todos os Atributos
Eventos
  • Tecla solta setInputFormatCnpj(this) 📌 setInputFormatCnpj
  • Tecla pressionada/solta return SomenteNumero(event) 📌 return
🎨 Formatacao
  • Tipo de dados text
  • Máximo de caracteres 18
  • Mínimo de caracteres 18
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou cnpj
  • Tabela OndeVou leads
  • Tabelas: leads ✅
  • Eventos: keyup
📋 Nome (Interação)
✅ Obrigatório💾 Grava
Campo Tabela nome
Campo VIEW / Exibido nome_contato
Tipo text
Data Table leads
Descrição

Campo nome (interação)

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou nome
  • Alias OndeVou nome_contato
  • Tabela OndeVou leads
🔍 Formsearch
  • {
      "required": ""
    }
  • Alias: nome_contato
  • Tabelas: leads ✅
  • FormSearch: ✓
📋 E-mail (Interação)
✅ Obrigatório💾 Grava
Campo Tabela email
Campo VIEW / Exibido email
Tipo email
Data Table leads
Descrição

Campo e-mail (interação)

📋 Todos os Atributos
Eventos
  • Tecla solta setInputFormatEmail(this) 📌 setInputFormatEmail
🎨 Formatacao
  • Tipo de dados email
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou email
  • Tabela OndeVou leads
  • Tabelas: leads ✅
  • Eventos: keyup
📋 Telefone (Interação)
✅ Obrigatório💾 Grava
Campo Tabela telefone
Campo VIEW / Exibido telefone
Tipo text
Data Table leads
Descrição

Campo telefone (interação)

📋 Todos os Atributos
Eventos
  • Tecla solta setInputFormatTelefone(this) 📌 setInputFormatTelefone
  • Tecla pressionada/solta return SomenteNumero(event) 📌 return
🎨 Formatacao
  • Tipo de dados text
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou telefone
  • Tabela OndeVou leads
  • Tabelas: leads ✅
  • Eventos: keyup
📋 E-mail (Cadastro)
🔒 Somente leitura📋 Somente view
Campo Tabela email_participante
Campo VIEW / Exibido email_participante ⚠️ (somente view)
Tipo email
Data Table view_leads
Descrição

Campo e-mail (cadastro)

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados email
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou email_participante
  • Tabela OndeVou view_leads
  • Tabelas: view_leads (só view)
📋 Telefone (Cadastro)
🔒 Somente leitura📋 Somente view
Campo Tabela telefone_participante
Campo VIEW / Exibido telefone_participante ⚠️ (somente view)
Tipo text
Data Table view_leads
Descrição

Campo telefone (cadastro)

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou telefone_participante
  • Tabela OndeVou view_leads
  • Tabelas: view_leads (só view)
📋 Status
✅ Obrigatório💾 Grava🔗 getdata
Campo Tabela id_status
Campo VIEW / Exibido nome_status (ID: id_status)
Tipo number (getdata)
Data Table leads
Descrição

Campo status

Getdata🔗 leads_status
📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou nome_status
  • ID OndeVou id_status
  • Tabela OndeVou leads
🔗 Getdata
  • {
      "view": "view_leads_status",
      "data": "view_leads_status",
      "text-empty-search": "sim",
      "campo-data-id": "id_status",
      "campo-data-value-input": "nome_status",
      "campo-data-input-select-view": "nome_status",
      "query": {
        "select": "* from view_leads_status",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_status,` `,nome_status))) ilike `%",
              "right": "%`)"
            }
          }
        },
        "order": "id_status asc"
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_status
  • Tabelas: leads ✅
  • FormSearch: ✓
📋 Origem
✅ Obrigatório💾 Grava🔗 getdata
Campo Tabela id_origem
Campo VIEW / Exibido nome_origem (ID: id_origem)
Tipo number (getdata)
Data Table leads
Descrição

Campo origem

Getdata🔗 leads_origens
📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou nome_origem
  • ID OndeVou id_origem
  • Tabela OndeVou leads
🔗 Getdata
  • {
      "view": "view_leads_origens",
      "data": "view_leads_origens",
      "text-empty-search": "sim",
      "campo-data-id": "id_origem",
      "campo-data-value-input": "nome_origem",
      "campo-data-input-select-view": "nome_origem",
      "query": {
        "select": "* from view_leads_origens",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_origem,` `,nome_origem))) ilike `%",
              "right": "%`)"
            }
          }
        },
        "order": "id_origem asc"
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_origem
  • Tabelas: leads ✅
  • FormSearch: ✓
📋 Campanha
✅ Obrigatório💾 Grava🔗 getdata
Campo Tabela id_campanha
Campo VIEW / Exibido nome_campanha (ID: id_campanha)
Tipo number (getdata)
Data Table leads
Descrição

Campo campanha

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou nome_campanha
  • ID OndeVou id_campanha
  • Tabela OndeVou leads
🔗 Getdata
  • {
      "view": "view_leads_campanhas",
      "data": "view_leads_campanhas",
      "text-empty-search": "sim",
      "campo-data-id": "id_campanha",
      "campo-data-value-input": "nome_campanha",
      "campo-data-input-select-view": "nome_campanha",
      "query": {
        "select": "* from view_leads_campanhas",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_campanha,` `,nome_campanha))) ilike `%",
              "right": "%`) and (participante=`1`)"
            }
          }
        },
        "order": "nome_campanha asc"
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_campanha
  • Tabelas: leads ✅
  • FormSearch: ✓
📋 Data criação
🔒 Somente leitura📋 Somente view
Campo Tabela data_criacao
Campo VIEW / Exibido data_criacao_lead_formatada ⚠️ (somente view)
Tipo date
Data Table view_leads
Descrição

Campo data criação

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados date
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou data_criacao
  • Alias OndeVou data_criacao_lead_formatada
  • Tabela OndeVou view_leads
  • Alias: data_criacao_lead_formatada
  • Tabelas: view_leads (só view)
📌 Legenda: 🔑 PRIMARY KEY ✅ Obrigatório 🔒 Somente leitura 👁️ Oculto 💾 Grava 📋 Somente view 🔗 getdata 📝 putdata 🔢 AutoInc 📱 QR Code 📋 Auditoria 📱 GetCollector

🔗 Relacionamentos

Tabelas relacionadas via getdata.

participantes_privado · Auxiliar: Razão Social 📄
leads_status · Auxiliar: Status 📚
leads_origens · Auxiliar: Origem 📚
leads_campanhas · Auxiliar: Campanha 📄

🔍 Filtros (formsearch)

Campos disponíveis para filtragem na busca.

Data Inicial date
Data Final date

🎮 Controles Disponíveis

Ações que o usuário pode realizar na tabela.

📂 Controle
🔘 Add add 🔘 Copy copy 🔘 Edit edit 💾 Salvar save 🔘 Delete delete 🔘 Remove remove

👁️ View Associada

Nome: view_leads

📱 GetCollector - Coleta de Dados

A tabela leads possui suporte a coleta de dados via QR Code através do sistema GetCollector.

Configuração (JSON expandido)

{
  "qrcode": {
    "qrcode-type": [
      "ven"
    ]
  },
  "table-setups": {
    "search": "nao",
    "html": "nao",
    "controls": [
      "info",
      "remove"
    ]
  }
}

Tipos de QR Code

  • ven: ven

Detalhes

  • Table Add: addTableColetar_dados_leituras

🔑 PRIMARY KEY - Campo Id

O campo Id é a chave primária da tabela leads.

Configuração

'Id': {
    'input': {
        'readonly': 'readonly',
        'data-type-ondevou': 'number',
        'data-field-ondevou': 'id',
        "data-field-alias-ondevou": "id_lead",
        'data-table-ondevou': 'leads'
    }
}

Comportamento

  • 🔒 Readonly: Campo não editável
  • 📊 Tipo: number
  • 🔹 Alias na VIEW: id_lead

💾 JSON da Tabela

Estrutura completa em JSON para integração com APIs e IAs.

code Clique para ver o JSON completo 19 KB
{
  "table-id": "leads",
  "data-table-ondevou": "leads",
  "table-class": "highlight",
  "readonly": "nao",
  "controls": [
    "add",
    "copy",
    "edit",
    "save",
    "delete",
    "remove"
  ],
  "html": {
    "div": {
      "before": "",
      "after": ""
    }
  },
  "routines": {
    "add": "773",
    "edit": "774"
  },
  "pdf": {
    "format": "a3",
    "orientation": "landscape"
  },
  "search": {
    "id_search_lead": {
      "data-type-ondevou": "number",
      "texto_label": "Lead",
      "title": "Digite o lead",
      "data-field-ondevou": "id_search_lead",
      "data-table-ondevou": "view_leads",
      "getcollector": "{\"qrcode\":\"{\\\"qrcode-type\\\":[\\\"ven\\\"]}\",\"table-setups\":\"{\\\"search\\\":\\\"nao\\\",\\\"html\\\":\\\"nao\\\",\\\"controls\\\":[\\\"info\\\",\\\"remove\\\"]}\"}",
      "getdata": "{\"view\":\"view_leads\",\"data\":\"view_leads\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_lead\",\"campo-data-value-input\":\"razao_social\",\"campo-data-input-select-view\":\"razao_social,nome_contato,email,telefone_formatado,nome_campanha\",\"query\":{\"select\":\"* from view_leads\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_lead,` `,nome_campanha,` `,razao_social,` `,nome_contato,` `,email,` `,telefone_formatado))) ilike `%\",\"right\":\"%`) and (participante=`1`)\"}}},\"order\":\"id_lead desc\"}}"
    }
  },
  "headers": {
    "Id": {
      "width": "5%"
    },
    "Participante": {
      "type": "hidden"
    },
    "Razão Social": {
      "width": "18%"
    },
    "CNPJ": {
      "width": "14%"
    },
    "Nome (Interação)": {
      "width": "12%"
    },
    "E-mail (Interação)": {
      "width": "14%"
    },
    "Telefone (Interação)": {
      "width": "12%"
    },
    "E-mail (Cadastro)": {
      "width": "14%"
    },
    "Telefone (Cadastro)": {
      "width": "12%"
    },
    "Status": {
      "width": "10%"
    },
    "Origem": {
      "width": "8%"
    },
    "Campanha": {
      "width": "10%"
    },
    "Data criação": {
      "width": "10%"
    }
  },
  "columns": {
    "Id": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "id",
        "data-field-alias-ondevou": "id_lead",
        "data-table-ondevou": "leads",
        "formsearch": {
          "required": ""
        }
      }
    },
    "Participante": {
      "input": {
        "readonly": "readonly",
        "value": "1",
        "data-type-ondevou": "number",
        "data-field-ondevou": "participante",
        "data-table-ondevou": "leads"
      }
    },
    "Razão Social": {
      "input": {
        "required": "required",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_participante",
        "data-field-ondevou": "razao_social",
        "data-table-ondevou": "leads",
        "getdata": "{\"view\":\"view_participantes_privado\",\"data\":\"view_participantes_privado\",\"campo-data-id\":\"id_participante\",\"campo-data-value-input\":\"id_participante,razao_social\",\"campo-data-input-select-view\":\"id_participante,codigo_erplinux_cliente,codigo_erplinux_fornecedor,razao_social,nome_fantasia,cnpj,cpf,cep,cep_erplinux,nome_bairro,nome_cidade,sigla_uf\",\"query\":{\"select\":\"* from view_participantes_privado\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_participante,` `,codigo_erplinux_cliente,` `,codigo_erplinux_fornecedor,` `,razao_social,` `,nome_fantasia,` `,cnpj,` `,cpf,` `,cep,` `,cep_erplinux,` `,nome_bairro,` `,nome_cidade,` `,sigla_uf))) ilike `%\",\"right\":\"%`) and (participante=`1`)\"}}}}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "CNPJ": {
      "input": {
        "required": "required",
        "data-type-ondevou": "text",
        "data-field-ondevou": "cnpj",
        "maxlength": "18",
        "minlength": "18",
        "onkeypress": "return SomenteNumero(event)",
        "onkeyup": "setInputFormatCnpj(this)",
        "data-table-ondevou": "leads"
      }
    },
    "Nome (Interação)": {
      "input": {
        "required": "required",
        "data-type-ondevou": "text",
        "data-field-ondevou": "nome",
        "data-field-alias-ondevou": "nome_contato",
        "data-table-ondevou": "leads",
        "formsearch": {
          "required": ""
        }
      }
    },
    "E-mail (Interação)": {
      "input": {
        "required": "required",
        "data-type-ondevou": "email",
        "data-field-ondevou": "email",
        "onkeyup": "setInputFormatEmail(this)",
        "data-table-ondevou": "leads"
      }
    },
    "Telefone (Interação)": {
      "input": {
        "required": "required",
        "data-type-ondevou": "text",
        "data-field-ondevou": "telefone",
        "onkeypress": "return SomenteNumero(event)",
        "onkeyup": "setInputFormatTelefone(this)",
        "data-table-ondevou": "leads"
      }
    },
    "E-mail (Cadastro)": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "email",
        "data-field-ondevou": "email_participante",
        "data-table-ondevou": "view_leads"
      }
    },
    "Telefone (Cadastro)": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "text",
        "data-field-ondevou": "telefone_participante",
        "data-table-ondevou": "view_leads"
      }
    },
    "Status": {
      "input": {
        "required": "required",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_status",
        "data-field-ondevou": "nome_status",
        "data-table-ondevou": "leads",
        "getdata": "{\"view\":\"view_leads_status\",\"data\":\"view_leads_status\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_status\",\"campo-data-value-input\":\"nome_status\",\"campo-data-input-select-view\":\"nome_status\",\"query\":{\"select\":\"* from view_leads_status\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_status,` `,nome_status))) ilike `%\",\"right\":\"%`)\"}}},\"order\":\"id_status asc\"}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "Origem": {
      "input": {
        "required": "required",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_origem",
        "data-field-ondevou": "nome_origem",
        "data-table-ondevou": "leads",
        "getdata": "{\"view\":\"view_leads_origens\",\"data\":\"view_leads_origens\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_origem\",\"campo-data-value-input\":\"nome_origem\",\"campo-data-input-select-view\":\"nome_origem\",\"query\":{\"select\":\"* from view_leads_origens\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_origem,` `,nome_origem))) ilike `%\",\"right\":\"%`)\"}}},\"order\":\"id_origem asc\"}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "Campanha": {
      "input": {
        "required": "required",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_campanha",
        "data-field-ondevou": "nome_campanha",
        "data-table-ondevou": "leads",
        "getdata": "{\"view\":\"view_leads_campanhas\",\"data\":\"view_leads_campanhas\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_campanha\",\"campo-data-value-input\":\"nome_campanha\",\"campo-data-input-select-view\":\"nome_campanha\",\"query\":{\"select\":\"* from view_leads_campanhas\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_campanha,` `,nome_campanha))) ilike `%\",\"right\":\"%`) and (participante=`1`)\"}}},\"order\":\"nome_campanha asc\"}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "Data criação": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "date",
        "data-field-ondevou": "data_criacao",
        "data-field-alias-ondevou": "data_criacao_lead_formatada",
        "data-table-ondevou": "view_leads"
      }
    }
  },
  "formsearch": {
    "data-table-ondevou": "view_leads",
    "data-view-ondevou": "view_leads",
    "data-where-limit": "N",
    "data-where-order": "order by id_lead desc",
    "data-where-fixed": "participante = 1",
    "input": {
      "data_inicial": {
        "data-field-ondevou": "data_inicial",
        "data-type-ondevou": "date",
        "type": "date",
        "class": "datepicker",
        "texto_label": "Data Inicial",
        "data-field-where": "data"
      },
      "data_final": {
        "data-field-ondevou": "data_final",
        "data-type-ondevou": "date",
        "type": "date",
        "class": "datepicker",
        "texto_label": "Data Final",
        "data-field-where": "data"
      }
    }
  },
  "dashboard": {
    "enabled": true,
    "theme": "modern",
    "layout": "free",
    "auto_refresh": false,
    "header": {
      "logo": {
        "src": "img/ondevou_plataforma.png",
        "alt": "OndeVou Plataforma",
        "class": "dashboard-logo-img"
      },
      "title": "LEADS - GESTÃO DE LEADS",
      "subtitle": "Visão executiva dos leads capturados",
      "filters_area": {
        "container_id": "dashboard-filters-area",
        "empty_message": "Sem filtros"
      },
      "actions": [
        {
          "type": "button",
          "container_id": "dashboard-atualizar-dados",
          "class": "dashboard-btn dashboard-btn-sm dashboard-btn-primary",
          "icon": "fas fa-sync-alt",
          "text": "Atualizar",
          "action": "dashboard_refreshData",
          "title": "Atualizar Dados"
        },
        {
          "type": "button",
          "container_id": "dashboard-voltar-dados",
          "class": "dashboard-btn dashboard-btn-sm dashboard-btn-outline",
          "icon": "fas fa-table",
          "text": "Voltar para dados",
          "action": "voltarParaDadosFromDashboard",
          "title": "Voltar para dados"
        },
        {
          "type": "button",
          "container_id": "dashboard-auto-refresh",
          "class": "dashboard-btn dashboard-btn-sm dashboard-btn-info",
          "icon": "fas fa-clock",
          "text": "Auto-Refresh",
          "action": "dashboard_toggleAutoRefresh",
          "title": "Alternar escuta automática de dados"
        }
      ]
    },
    "sections": {
      "bloco1_resumo_executivo": {
        "type": "summary_cards_full",
        "title": "RESUMO EXECUTIVO",
        "class": "dashboard-section dashboard-section-full-width",
        "icon": "📊",
        "config": {
          "container_id": "cards-resumo-leads",
          "size": "full",
          "cards": [
            {
              "title": "Total de Leads",
              "value": "COUNT:id_lead",
              "format": "numero",
              "decimals": 0,
              "suffix": " leads",
              "icon": "👤",
              "color": "#3b82f6"
            },
            {
              "title": "Leads com Interação",
              "value": "COUNT:id_lead",
              "filters": "total_interacoes > 0",
              "format": "numero",
              "decimals": 0,
              "suffix": " leads",
              "icon": "💬",
              "color": "#22c55e"
            },
            {
              "title": "Leads sem Interação",
              "value": "COUNT:id_lead",
              "filters": "total_interacoes = 0",
              "format": "numero",
              "decimals": 0,
              "suffix": " leads",
              "icon": "⚠️",
              "color": "#ef4444"
            },
            {
              "title": "Leads Cadastrados",
              "value": "COUNT:id_lead",
              "filters": "id_participante IS NOT NULL",
              "format": "numero",
              "decimals": 0,
              "suffix": " leads",
              "icon": "✅",
              "color": "#8b5cf6"
            },
            {
              "title": "Leads não Cadastrados",
              "value": "COUNT:id_lead",
              "filters": "id_participante IS NULL",
              "format": "numero",
              "decimals": 0,
              "suffix": " leads",
              "icon": "📌",
              "color": "#f97316"
            },
            {
              "title": "Média de Interações",
              "value": "AVG:total_interacoes",
              "format": "numero",
              "decimals": 1,
              "suffix": " interações",
              "icon": "📊",
              "color": "#06b6d4"
            }
          ]
        }
      },
      "bloco2_ranking_leads": {
        "type": "charts_grid_section",
        "title": "RANKING DE LEADS",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-2",
        "icon": "🏆",
        "config": {
          "container_id": "ranking-leads-grid",
          "charts": [
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "ranking-leads-por-campanha",
                "data_config": {
                  "group_by": "nome_campanha",
                  "operation": "COUNT:id_lead"
                },
                "display_config": {
                  "title": "Leads por Campanha",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " leads",
                  "height": "400px",
                  "color": "#3b82f6",
                  "sort_by": "value",
                  "sort_order": "DESC",
                  "limit": 10
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "ranking-leads-por-status",
                "data_config": {
                  "group_by": "nome_status",
                  "operation": "COUNT:id_lead"
                },
                "display_config": {
                  "title": "Leads por Status",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " leads",
                  "height": "400px",
                  "color": "#8b5cf6",
                  "sort_by": "value",
                  "sort_order": "DESC",
                  "limit": 10
                }
              }
            }
          ]
        }
      },
      "bloco3_distribuicao": {
        "type": "charts_grid_section",
        "title": "DISTRIBUIÇÃO",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-2",
        "icon": "🥧",
        "config": {
          "container_id": "distribuicao-leads-grid",
          "charts": [
            {
              "type": "chart_pie",
              "config": {
                "container_id": "pie-status-leads",
                "data_config": {
                  "group_by": "nome_status",
                  "operation": "COUNT:id_lead"
                },
                "display_config": {
                  "title": "Leads por Status",
                  "donut": true,
                  "show_percentages": true,
                  "show_values": true,
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " leads",
                  "height": "350px"
                }
              }
            },
            {
              "type": "chart_pie",
              "config": {
                "container_id": "pie-origem-leads",
                "data_config": {
                  "group_by": "nome_origem",
                  "operation": "COUNT:id_lead"
                },
                "display_config": {
                  "title": "Leads por Origem",
                  "donut": true,
                  "show_percentages": true,
                  "show_values": true,
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " leads",
                  "height": "350px"
                }
              }
            }
          ]
        }
      },
      "bloco4_cadastro": {
        "type": "charts_grid_section",
        "title": "CADASTRO DE LEADS",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-2",
        "icon": "📋",
        "config": {
          "container_id": "cadastro-leads-grid",
          "charts": [
            {
              "type": "chart_pie",
              "config": {
                "container_id": "pie-cadastro",
                "data_config": {
                  "group_by": "id_participante",
                  "operation": "COUNT:id_lead"
                },
                "display_config": {
                  "title": "Cadastrados vs Não Cadastrados",
                  "donut": true,
                  "show_percentages": true,
                  "show_values": true,
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " leads",
                  "height": "350px"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "ranking-empresas",
                "data_config": {
                  "group_by": "razao_social",
                  "operation": "COUNT:id_lead",
                  "filters": "razao_social IS NOT NULL"
                },
                "display_config": {
                  "title": "Top 10 Empresas",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " leads",
                  "height": "350px",
                  "color": "#f97316",
                  "sort_by": "value",
                  "sort_order": "DESC",
                  "limit": 10
                }
              }
            }
          ]
        }
      },
      "bloco5_evolucao_temporal": {
        "type": "charts_grid_section",
        "title": "EVOLUÇÃO TEMPORAL",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-2",
        "icon": "📈",
        "config": {
          "container_id": "evolucao-leads-grid",
          "charts": [
            {
              "type": "chart_bar_aggregated_evolution",
              "config": {
                "container_id": "evolucao-leads-criacao",
                "data_config": {
                  "campo_data": "data_granulidade",
                  "operation": "COUNT:id_lead",
                  "granularidade": "mensal"
                },
                "display_config": {
                  "title": "Leads Criados",
                  "layout": "vertical",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " leads",
                  "height": "350px",
                  "color": "#3b82f6"
                }
              }
            },
            {
              "type": "chart_bar_aggregated_evolution",
              "config": {
                "container_id": "evolucao-interacoes-leads",
                "data_config": {
                  "campo_data": "data_granulidade",
                  "operation": "SUM:total_interacoes",
                  "granularidade": "mensal"
                },
                "display_config": {
                  "title": "Interações",
                  "layout": "vertical",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " interações",
                  "height": "350px",
                  "color": "#8b5cf6"
                }
              }
            }
          ]
        }
      }
    }
  },
  "url_documentacao": "/docs/ondevou-db-leads.html",
  "nome_tabela": "leads"
}

📝 SQL CREATE TABLE - Estrutura Completa

Comando SQL COMPLETO para criar a tabela leads no PostgreSQL. Esta estrutura foi extraída DIRETAMENTE do banco de dados.

🏗️ Estrutura Completa

📋 28 colunas 🔗 5 constraints 📑 1 índices ⚡ 0 triggers
code Clique para ver o SQL completo ✅ COMPLETO
-- ============================================================
-- ESTRUTURA COMPLETA DA TABELA leads
-- Fonte: PostgreSQL - 12/08/2026 10:24:26
-- ============================================================

CREATE TABLE public.leads (
    id integer NOT NULL DEFAULT nextval('leads_id_seq'::regclass),
    participante integer NOT NULL,
    id_campanha integer,
    id_produto integer,
    nome varchar(255) NOT NULL,
    email varchar(255) NOT NULL,
    telefone varchar(20),
    telefone_formatado varchar(20),
    dados_json jsonb,
    id_origem integer,
    url_origem text,
    user_agent text,
    ip_address inet,
    thread_id varchar(255),
    id_status integer,
    status_data timestamp,
    data_criacao timestamp DEFAULT now(),
    data_atualizacao timestamp DEFAULT now(),
    data_contato timestamp,
    data_agendamento timestamp,
    data_conversao timestamp,
    responsavel_nome varchar(255),
    responsavel_email varchar(255),
    observacoes text,
    anotacoes_internas text,
    id_participante integer,
    cnpj varchar(255),
    data timestamp DEFAULT now(),
    CONSTRAINT leads_pkey PRIMARY KEY (id),
    CONSTRAINT 2200_221463_1_not_null CHECK (id IS NOT NULL),
    CONSTRAINT 2200_221463_2_not_null CHECK (participante IS NOT NULL),
    CONSTRAINT 2200_221463_5_not_null CHECK (nome IS NOT NULL),
    CONSTRAINT 2200_221463_6_not_null CHECK (email IS NOT NULL)
);

-- ============================================================
-- ÍNDICES
-- ============================================================
CREATE UNIQUE INDEX leads_pk_id ON public.leads USING btree (id);

SQL extraído DIRETAMENTE do banco de dados

📊 Comparação: JSON Config vs Banco Real

Verifique se a configuração JSON está sincronizada com a estrutura do banco de dados.

Campo Tipo (JSON) Tipo (Banco) Status
anotacoes_internas - text ❌ Só no banco
cnpj text character varying ✅ OK
dados_json - jsonb ❌ Só no banco
data - timestamp without time zone ❌ Só no banco
data_agendamento - timestamp without time zone ❌ Só no banco
data_atualizacao - timestamp without time zone ❌ Só no banco
data_contato - timestamp without time zone ❌ Só no banco
data_conversao - timestamp without time zone ❌ Só no banco
data_criacao date timestamp without time zone ✅ OK
email email character varying ✅ OK
email_participante email - ⚠️ Só no JSON
id number integer ✅ OK
id_campanha - integer ❌ Só no banco
id_origem - integer ❌ Só no banco
id_participante - integer ❌ Só no banco
id_produto - integer ❌ Só no banco
id_status - integer ❌ Só no banco
ip_address - inet ❌ Só no banco
nome text character varying ✅ OK
nome_campanha number - ⚠️ Só no JSON
nome_origem number - ⚠️ Só no JSON
nome_status number - ⚠️ Só no JSON
observacoes - text ❌ Só no banco
participante number integer ✅ OK
razao_social number - ⚠️ Só no JSON
responsavel_email - character varying ❌ Só no banco
responsavel_nome - character varying ❌ Só no banco
status_data - timestamp without time zone ❌ Só no banco
telefone text character varying ✅ OK
telefone_formatado - character varying ❌ Só no banco
telefone_participante text - ⚠️ Só no JSON
thread_id - character varying ❌ Só no banco
url_origem - text ❌ Só no banco
user_agent - text ❌ Só no banco

💡 Dica: Use esta comparação para garantir que a configuração JSON está atualizada com a estrutura do banco.
📌 Legenda: ✅ OK = presente em ambos | ⚠️ Só no JSON = pode ser um campo virtual | ❌ Só no banco = falta adicionar ao JSON

💡 Como Popular a Tabela

Exemplo prático usando o padrão OndeVou.

📋 Fluxo completo padrão

// 1. Buscar dados com getData
var dados_retorno = getData({
    'query': `SELECT * FROM view_leads WHERE participante = ${globais.dados_fixo.participante}`,
    'view': 'view_leads'
});

// 2. Definir painel e slide
var painel = globais.dados_pagina.visivel.painel;
var slide = globais.dados_pagina.visivel.slide;

// 3. Encontrar a tabela no DOM
var idTable = getIdTableFromSlide({ 'table-id': 'leads' });

// 4. Resetar a tabela
setTableControlsReset(idTable);

// 5. Popular a tabela
setTableControlsSetValue(idTable, dados_retorno);

🏆 Propriedade Intelectual

OndeVou.com Marca Registrada

Marca Registrada

OndeVou.com®

Propriedade Intelectual Assegurada

Processo INPI:
908765967
Titular:
ONDEVOU.COM TECNOLOGIA LTDA
CNPJ:
17.058.605/0001-36
Classificação:
Classe 42 - Serviços de TI