Docs

Modelo de dados

Os objetos do Ailove CRM, seus campos e como se relacionam. Gerado direto do código.

Esta página é gerada a partir do esquema do banco a cada versão publicada, então sempre corresponde ao sistema no ar. Objetos marcados com 🔒 têm isolamento por empresa: o próprio banco de dados só devolve as linhas da empresa de quem está consultando.

Empresa 🔒

Cada cliente do Ailove CRM. Tudo o que pertence a uma empresa fica isolado das demais.

Tabela: organizacoes

CampoTipoObrigatórioDescrição
iduuidsimIdentificador.
nometextsimNome para exibição.
slugtextsimIdentificador curto e único, usado em endereços.
fusotextsimFuso horário da empresa; toda data é mostrada nele.
planotextsimPlano contratado.
criado_emtimestamp with time zonesimQuando foi criado.

Usuário

Pessoa que entra no sistema. Pode participar de mais de uma empresa.

Tabela: usuarios

CampoTipoObrigatórioDescrição
iduuidsimIdentificador.
emailtextsimE-mail (único, sem diferenciar maiúsculas).
nometextsimNome para exibição.
senha_hashtextnãoSenha guardada só como hash (bcrypt); nunca é exposta.
ativobooleansimUsuário desativado não entra.
dono_plataformabooleansimUso interno da Ailove.
ultimo_login_emtimestamp with time zonenãoÚltimo acesso.
criado_emtimestamp with time zonesimQuando foi criado.
atualizado_emtimestamp with time zonesimÚltima alteração.

Membro 🔒

Liga um usuário a uma empresa, com o papel dele nela (administrador ou usuário).

Tabela: membros

CampoTipoObrigatórioDescrição
organizacao_iduuidsimEmpresa dona do registro. → organizacoes
usuario_iduuidsimUsuário. → usuarios
papeltextsimadmin (gerencia a empresa) ou usuario.
criado_emtimestamp with time zonesimQuando foi criado.

Empresa (cliente) 🔒

Empresa com quem você se relaciona (cliente ou cliente em potencial). Deduplicada pelo domínio.

Tabela: empresas

CampoTipoObrigatórioDescrição
iduuidsimIdentificador.
organizacao_iduuidsimEmpresa dona do registro. → organizacoes
nometextsimNome para exibição.
dominiotextnãoDomínio do site/e-mail; não se repete dentro da sua conta.
telefonetextnãoTelefone.
cidadetextnãoCidade.
uftextnãoEstado (UF).
responsavel_iduuidnãoUsuário responsável → usuarios. → usuarios
origemtextsimDe onde veio: manual, planilha, prospeccao, formulario, api, resposta.
origem_detalhejsonbnãoDetalhe da origem (ex.: nome do arquivo importado).
camposjsonbsimValores dos campos personalizados.
criado_poruuidnãoQuem criou. → usuarios
criado_emtimestamp with time zonesimQuando foi criado.
atualizado_emtimestamp with time zonesimÚltima alteração.
arquivado_emtimestamp with time zonenãoArquivada (não aparece nas listas).

Contato 🔒

Pessoa com quem você fala. Pode pertencer a uma empresa. Deduplicado pelo e-mail.

Tabela: contatos

CampoTipoObrigatórioDescrição
iduuidsimIdentificador.
organizacao_iduuidsimEmpresa dona do registro. → organizacoes
empresa_iduuidnãoEmpresa da pessoa. → empresas
nometextsimNome para exibição.
emailtextnãoE-mail (único, sem diferenciar maiúsculas).
telefonetextnãoTelefone.
cargotextnãoCargo.
responsavel_iduuidnãoUsuário responsável. → usuarios
origemtextsimDe onde veio (ver Empresa).
origem_detalhejsonbnãoDetalhe da origem.
camposjsonbsimValores dos campos personalizados.
criado_poruuidnãoQuem criou. → usuarios
criado_emtimestamp with time zonesimQuando foi criado.
atualizado_emtimestamp with time zonesimÚltima alteração.
arquivado_emtimestamp with time zonenãoArquivado.

Campo personalizado 🔒

Campo criado pela sua empresa para contatos, empresas ou negócios.

Tabela: campos_personalizados

CampoTipoObrigatórioDescrição
iduuidsimIdentificador.
organizacao_iduuidsimEmpresa dona do registro. → organizacoes
entidadetextsimcontato, empresa ou negocio.
nometextsimNome para exibição.
tipotextsimtexto, numero, data ou lista.
opcoestext[]nãoOpções, quando o tipo é lista.
ordemintegersimOrdem de exibição.
criado_emtimestamp with time zonesimQuando foi criado.
arquivado_emtimestamp with time zonenãoArquivado.

Funil 🔒

Um processo de vendas (ex.: Vendas, Renovação). A empresa pode ter vários.

Tabela: funis

CampoTipoObrigatórioDescrição
iduuidsimIdentificador.
organizacao_iduuidsimEmpresa dona do registro. → organizacoes
nometextsimNome para exibição.
ordemintegersimOrdem entre os funis.
campos_no_carduuid[]simAté 3 campos personalizados mostrados no card do negócio.
criado_emtimestamp with time zonesimQuando foi criado.
arquivado_emtimestamp with time zonenãoArquivado.

Etapa 🔒

Uma coluna do funil.

Tabela: etapas

CampoTipoObrigatórioDescrição
iduuidsimIdentificador.
organizacao_iduuidsimEmpresa dona do registro. → organizacoes
funil_iduuidsimFunil. → funis
nometextsimNome para exibição.
ordemintegersimPosição no funil.
tipotextsimaberta, ganho ou perdido (as duas últimas encerram o negócio).
arquivado_emtimestamp with time zonenãoArquivada.

Motivo de perda 🔒

Lista configurável de motivos para marcar um negócio como perdido.

Tabela: motivos_perda

CampoTipoObrigatórioDescrição
iduuidsimIdentificador.
organizacao_iduuidsimEmpresa dona do registro. → organizacoes
nometextsimNome para exibição.
ordemintegersimOrdem na lista.
arquivado_emtimestamp with time zonenãoArquivado.

Negócio 🔒

Uma oportunidade de venda, que anda pelas etapas de um funil.

Tabela: negocios

CampoTipoObrigatórioDescrição
iduuidsimIdentificador.
organizacao_iduuidsimEmpresa dona do registro. → organizacoes
funil_iduuidsimFunil. → funis
etapa_iduuidsimEtapa atual. → etapas
titulotextsimTítulo.
contato_iduuidnãoContato principal. → contatos
empresa_iduuidnãoEmpresa. → empresas
valornumeric(14, 2)nãoValor em reais.
previsaodatenãoPrevisão de fechamento.
responsavel_iduuidnãoUsuário responsável. → usuarios
posicaodouble precisionsimOrdem dentro da etapa.
motivo_perda_iduuidnãoMotivo, quando perdido. → motivos_perda
motivo_perda_textotextnãoDetalhe do motivo.
encerrado_emtimestamp with time zonenãoQuando foi ganho ou perdido.
origemtextsimDe onde veio.
criado_pela_iabooleansimCriado pela Prospecção Automática.
conferido_emtimestamp with time zonenãoQuando alguém conferiu o negócio criado pela IA.
camposjsonbsimValores dos campos personalizados.
criado_poruuidnãoQuem criou. → usuarios
criado_emtimestamp with time zonesimQuando foi criado.
atualizado_emtimestamp with time zonesimÚltima alteração.
arquivado_emtimestamp with time zonenãoArquivado.

Tarefa 🔒

Algo a fazer: ligar, reunião, e-mail ou tarefa, com data e responsável.

Tabela: tarefas

CampoTipoObrigatórioDescrição
iduuidsimIdentificador.
organizacao_iduuidsimEmpresa dona do registro. → organizacoes
tipotextsimtarefa, ligar, reuniao ou email.
titulotextsimO que fazer.
vence_emtimestamp with time zonenãoQuando vence.
dia_inteirobooleansimVale o dia todo (sem horário).
responsavel_iduuidnãoQuem faz. → usuarios
contato_iduuidnãoContato relacionado. → contatos
empresa_iduuidnãoEmpresa relacionada. → empresas
negocio_iduuidnãoNegócio relacionado. → negocios
concluida_emtimestamp with time zonenãoQuando foi concluída.
nota_conclusaotextnãoAnotação ao concluir.
criado_poruuidnãoQuem criou. → usuarios
criado_emtimestamp with time zonesimQuando foi criado.
atualizado_emtimestamp with time zonesimÚltima alteração.

Anotação 🔒

Texto livre registrado num contato, empresa ou negócio.

Tabela: anotacoes

CampoTipoObrigatórioDescrição
iduuidsimIdentificador.
organizacao_iduuidsimEmpresa dona do registro. → organizacoes
textotextsimConteúdo.
contato_iduuidnãoContato. → contatos
empresa_iduuidnãoEmpresa. → empresas
negocio_iduuidnãoNegócio. → negocios
autor_iduuidnãoQuem escreveu. → usuarios
criado_emtimestamp with time zonesimQuando foi criado.
editado_emtimestamp with time zonenãoÚltima edição.

Evento da linha do tempo 🔒

Tudo o que acontece com um contato, empresa ou negócio. Só cresce.

Tabela: eventos

CampoTipoObrigatórioDescrição
iduuidsimIdentificador.
organizacao_iduuidsimEmpresa dona do registro. → organizacoes
tipotextsimTipo do evento (ex.: negocio.etapa).
contato_iduuidnãoContato. → contatos
empresa_iduuidnãoEmpresa. → empresas
negocio_iduuidnãoNegócio. → negocios
autor_iduuidnãoQuem fez (vazio = sistema). → usuarios
autor_tipotextsimusuario, ia ou sistema.
dadosjsonbsimDetalhes do evento.
emtimestamp with time zonesimQuando.

Conexão 🔒

Um serviço externo ligado pela empresa (ex.: a caixa de e-mail). Credenciais ficam cifradas e nunca são devolvidas.

Tabela: conexoes

CampoTipoObrigatórioDescrição
iduuidsimIdentificador.
organizacao_iduuidsimEmpresa dona do registro. → organizacoes
conectortextsimQual integração (ex.: email_proprio, gmail).
contatextsimConta conectada, normalmente o e-mail.
configjsonbsimConfiguração não secreta: servidores, portas, provedor.
credencial_cifradatextsimSenha ou token, cifrado (AES-256-GCM) e amarrado à empresa. Nunca exposto.
estadotextsimconectado, atencao ou desconectado.
verificacaojsonbnãoResultado da última verificação (login, envio, domínio).
ultimo_teste_emtimestamp with time zonenãoQuando foi verificada pela última vez.
ultimo_errotextnãoÚltimo problema encontrado, em português.
criado_poruuidnãoQuem conectou. → usuarios
criado_emtimestamp with time zonesimQuando foi criado.
atualizado_emtimestamp with time zonesimÚltima alteração.

Registro de auditoria 🔒

Histórico de ações sensíveis (conectar, desconectar, trocar credencial…). Só cresce.

Tabela: auditoria

CampoTipoObrigatórioDescrição
iduuidsimIdentificador.
organizacao_iduuidsimEmpresa dona do registro. → organizacoes
usuario_iduuidnãoQuem fez. → usuarios
acaotextsimO que foi feito.
alvotextnãoEm quê.
detalhesjsonbnãoContexto, sem segredos.
emtimestamp with time zonesimQuando.

Nesta página