Database
 sql >> Base de Dados >  >> RDS >> Database

Parte 3 – Clientes, Chamadas e Reuniões




Anteriormente nesta série, importamos o modelo de banco de dados do SuiteCRM para o Vertabelo e mostramos como usar os recursos do Vertabelo para organizá-lo. Neste artigo, veremos como os dados comuns do CRM são armazenados em seu banco de dados. Também verificaremos as suposições feitas na Parte 2 sobre as relações entre tabelas e suas funções. Se necessário, faremos modificações no modelo.

O que temos atualmente?


Na Parte 1, instalamos o SuiteCRM localmente usando o pacote de instalação Bitnami. Após o login bem-sucedido, a tela principal do SuiteCRM se parece com a abaixo:



O banco de dados SuiteCRM chamado “bitnami_suitecrm” pode ser acessado no local http://127.0.0.1/phpmyadmin. Lembre-se de que o modelo possui 201 tabelas.

Concluímos a Parte 2 desta série com o modelo organizado assim:



Requisitos básicos para um CRM


Um CRM deve nos permitir manter registros de nossos clientes e acompanhar os contatos (chamadas, reuniões, etc.) que temos com eles.

Os clientes são fundamentais para qualquer sistema de CRM. Precisamos armazenar seus dados organizacionais básicos (nome, endereço, receita, número de funcionários) e seus dados de contato (telefone, celular, e-mail, site e talvez até contas sociais). Também temos que acompanhar os dados administrativos, como quando e por quem seus registros foram adicionados ou atualizados no sistema.

Quando pensamos em ações relacionadas ao cliente, geralmente pensamos em ligações e reuniões. Também poderíamos ter algumas outras ações que não exigem contato com o cliente:verificar se um problema foi resolvido, se foi feito um pagamento, coisas assim. Queremos manter um registro das ações anteriores, mas também precisamos da capacidade de agendar eventos futuros. Além disso, armazenaremos os horários de início e término da ação, quem inseriu e atualizou os dados da ação, quem iniciou essa ação específica e quem é responsável por ela.

Claro, há um monte de outras coisas – como produtos e serviços vendidos anteriormente e novas vendas potenciais – que também podemos adicionar a um CRM. Mas neste artigo, vamos nos concentrar em como o SuiteCRM armazena dados de clientes, chamadas e reuniões.

Gerenciando clientes


As organizações clientes são chamadas de contas no SuiteCRM. Aqui está o que Criar nova conta tela se parece com:



E aqui está a tabela de “contas” no banco de dados do SuiteCRM:



Nas accounts tabela, atributos armazenam informações inseridas em Criar nova conta tela:

  • Dados básicos do cliente:name , description , industry , annual revenue ,“rating , ownership , employees , ticker symbol
  • Dados de contato:phone_fax , atributos de endereço de cobrança, atributos de endereço de entrega, phone_office , phone_alternate , website
  • Alterações nos dados do cliente dentro do CRM:created_by , modified_user_id , assigned_user_id , date_entered , date_modified e deleted .

A maioria desses atributos é do tipo varchar porque o CRM deve ser capaz de armazenar dados inseridos pelo usuário de qualquer tipo possível.

As accounts table está conectada a muitas outras tabelas no banco de dados SuiteCRM. Todas as relações são estabelecidas de acordo com as suposições relatadas na Parte 2 desta série.




As contas dentro do SuiteCRM são basicamente uma lista de clientes. Eles estão relacionados a muitas outras tabelas no sistema:contacts , opportunities , bugs , cases .

Na linguagem SuiteCRM, contatos são pessoas reais com quem falamos em nome de sua organização (lembre-se, em linguagem de CRM, essas organizações são chamadas de "contas"). Você pode atribuir um novo contato a uma conta, conforme mostrado abaixo:



Os dados do indivíduo são armazenados nos contacts tabela. Os account_contacts tabela nos permite relacionar muitos contatos a uma determinada conta.



Oportunidades dentro do SuiteCRM estão as possibilidades de vendas estimadas. Eles estão ligados à fase de vendas. As opportunities e account_opportunities as tabelas são usadas para armazenar dados sobre várias oportunidades relacionadas a uma única conta.

Como você pode adivinhar pelo nome, os bugs e accounts_bugs as tabelas armazenam dados sobre problemas relacionados a determinadas contas. O módulo SuiteCRM também nos permite inserir soluções e rastrear históricos de bugs. Os bugs estão relacionados a calls , contact , cases e outras tabelas.

O módulo “cases” é usado para inserir e rastrear problemas relacionados ao serviço. Depois de adicionarmos um novo caso, podemos adicionar bugs relacionados a esse caso.

Chamadas


Qualquer sistema de CRM armazenará informações sobre chamadas para clientes; SuiteCRM não é diferente. Para adicionar uma nova chamada, clicamos em Atividades --> Chamadas e preencha os dados necessários. Adicionaremos uma nova chamada e a relacionaremos com uma conta e usuário existente em nosso sistema.



Aqui está o que as Chamadas seção dentro do banco de dados se parece com:



Nas calls tabela, podemos ver alguns dos mesmos atributos que nas accounts tabela. Os atributos created_by , modified_user_id e assigned_user_id referem-se aos usuários que entraram nesta chamada, a modificaram ou foram atribuídos à chamada. O parent_type e parent_id pair denota qual tabela é referenciada e o valor da chave primária para essa tabela. A maioria dos outros atributos são autoexplicativos.

A mesma estrutura, usando uma relação muitos-para-muitos, é usada para conectar chamadas com usuários, leads e contatos.

Depois de clicar no botão Salvar botão, podemos ver um novo registro de chamada em nossas Chamadas Lista. Agora vamos dar uma olhada no banco de dados, especificamente nas calls e calls_users mesas.




Nas calls podemos ver que “parent_type” =Contas e que o id no parent_id campo é o ID da conta. Dentro do banco de dados existem algumas tabelas que usam o mesmo atributo para se conectar a uma das poucas outras tabelas. Enquanto parent_id conterá o valor da chave primária na tabela referenciada, parent_type denota a qual tabela vamos conectar.

Claro, no calls_users tabela, relacionaremos essa chamada a um usuário atribuído.


Reuniões


As “Reuniões e leads ” é o grupo de tabelas usado para armazenar dados relacionados a reuniões e leads. Embora seja óbvio quais podem ser os dados da reunião, leads referem-se ao interesse potencial dos clientes em nossos produtos e serviços. Mais tarde, usaremos esses leads e os relacionaremos a oportunidades, ligações e reuniões.

Notaremos algumas regras gerais para nomear campos nas meetings tabela e para conectar reuniões com contatos, leads e usuários são aplicados nesta seção.



Assim como nas chamadas, as reuniões também podem ser atribuídas a usuários e relacionadas a clientes. Entraremos em uma nova reunião clicando em Atividades --> Reuniões --> Agendar reunião .



Os dados da reunião, uma vez inseridos, são armazenados no SuiteCRM; podemos visualizá-lo na lista de reuniões. Assim como nas chamadas, as reuniões podem ser atribuídas a contas, contatos, tarefas, oportunidades, bugs, casos, leads, projetos, tarefas e metas do projeto.

No banco de dados, a meeting tabela contém dados sobre a reunião recém-adicionada. O parent_type e o parent_id atributos são usados ​​da mesma maneira e para o mesmo propósito que as calls dados.




Os meetings_users table armazena informações sobre os usuários atribuídos a uma determinada reunião.




As chaves primárias são valores de hash gerados aleatoriamente. Isso nos permite ter valores exclusivos para cada chave primária em todo o banco de dados, não apenas em cada tabela. Isso é especialmente útil quando estamos usando o mesmo atributo como chave estrangeira para muitas tabelas diferentes. Um atributo contém o valor da chave, enquanto outro contém o nome da tabela referenciada. Isso oferece muito mais flexibilidade – mais do que os sistemas que cobrem várias situações de negócios da vida real geralmente precisam.

Na Parte 4, que encerrará esta série, veremos mais de perto o restante do SuiteCRM, incluindo campanhas, projetos, oportunidades e administração de documentos.