Database
 sql >> Base de données >  >> RDS >> Database

Partie 3 – Clients, appels et réunions

Précédemment dans cette série, nous avons importé le modèle de base de données de SuiteCRM dans Vertabelo et montré comment utiliser les fonctionnalités de Vertabelo pour l'organiser. Dans cet article, nous verrons comment les données CRM courantes sont stockées dans sa base de données. Nous vérifierons également les hypothèses faites dans la partie 2 sur les relations entre les tables et leurs fonctions. Si nécessaire, nous apporterons des modifications au modèle.

Qu'avons-nous actuellement ?

Dans la partie 1, nous avons installé SuiteCRM localement à l'aide du pack d'installation Bitnami. Une fois connecté, l'écran principal de SuiteCRM ressemble à celui ci-dessous :

La base de données SuiteCRM appelée "bitnami_suitecrm" est accessible sur l'emplacement http://127.0.0.1/phpmyadmin. Rappelons que le modèle comporte 201 tables.

Nous avons conclu la partie 2 de cette série avec le modèle organisé comme ceci :




Exigences de base pour un CRM

Un CRM doit nous permettre de garder une trace de nos clients et de garder une trace des contacts (appels, rendez-vous, etc.) que nous avons avec eux.

Les clients sont au cœur de tout système CRM. Nous devons stocker leurs données organisationnelles de base (nom, adresse, chiffre d'affaires, nombre d'employés) et leurs coordonnées (téléphone, mobile, e-mail, site Web et peut-être même comptes sociaux). Nous devons également garder une trace des données administratives, comme quand et par qui leurs dossiers ont été ajoutés ou mis à jour dans le système.

Lorsque nous pensons aux actions liées aux clients, nous pensons généralement aux appels et aux réunions. Nous pourrions également avoir d'autres actions qui ne nécessitent pas de contact avec le client :vérifier si un problème est résolu, si un paiement a été effectué, des choses comme ça. Nous voulons conserver une trace des actions précédentes, mais nous devons également pouvoir planifier des événements futurs. De plus, nous stockerons les heures de début et de fin de l'action, qui a inséré et mis à jour les données d'action, qui a initié cette action spécifique et qui en est responsable.

Bien sûr, il y a un tas d'autres choses - comme des produits et services déjà vendus, et de nouvelles ventes potentielles - que nous pourrions également ajouter à un CRM. Mais dans cet article, nous allons nous concentrer sur la façon dont SuiteCRM stocke les données, les appels et les réunions des clients.

Gestion des clients

Les organisations clientes sont appelées comptes dans SuiteCRM. Voici ce que le Créer un nouveau compte l'écran ressemble à :

Et voici à quoi ressemble la table "accounts" dans la base de données de SuiteCRM :

Dans les accounts table, les attributs stockent les informations saisies dans le champ Créer un nouveau compte écran :

  • Données client de base :name , description , industry , annual revenue ,"rating , ownership , employees , ticker symbol
  • Coordonnées :phone_fax , attributs d'adresse de facturation, attributs d'adresse de livraison, phone_office , phone_alternate , website
  • Modifications des données client dans le CRM :created_by , modified_user_id , assigned_user_id , date_entered , date_modified et deleted .

La plupart de ces attributs sont de type varchar car le CRM doit être capable de stocker des données insérées par l'utilisateur de tout type possible.

Les accounts table est connectée à de nombreuses autres tables de la base de données SuiteCRM. Toutes les relations sont définies selon les hypothèses décrites dans la partie 2 de cette série.

Les comptes dans SuiteCRM sont essentiellement une liste de clients. Ils sont liés à de nombreuses autres tables du système :contacts , opportunities , bugs , cases .

En langage SuiteCRM, contacts sont de véritables personnes à qui nous parlons au nom de leur organisation (rappelez-vous, dans le langage CRM, ces organisations sont appelées "comptes"). Vous pouvez attribuer un nouveau contact à un compte, comme indiqué ci-dessous :

Les données de l'individu sont stockées dans les contacts table. Le account_contacts table nous permet d'associer de nombreux contacts à un compte donné.

Opportunités à l'intérieur de SuiteCRM sont estimées les possibilités de vente. Ils sont liés à la phase de vente. Les opportunities et account_opportunities les tables sont utilisées pour stocker des données sur plusieurs opportunités liées à un seul compte.

Comme vous pouvez le deviner d'après leur nom, les bugs et accounts_bugs les tables stockent des données sur les problèmes liés à certains comptes. Le module SuiteCRM nous permet également de saisir des solutions et de suivre l'historique des bogues. Les bogues sont liés aux calls , contact , cases et d'autres tableaux.

Le module «cas» est utilisé pour saisir et suivre les problèmes liés au service. Après avoir ajouté un nouveau cas, nous pouvons ajouter des bogues liés à ce cas.

Appels

Tout système CRM stockera des informations sur les appels aux clients ; SuiteCRM n'est pas différent. Pour ajouter un nouvel appel, nous cliquons sur Activités --> Appels et remplissez les données nécessaires. Nous ajouterons un nouvel appel et l'associerons à un compte et à un utilisateur existants dans notre système.

Voici ce que les appels section à l'intérieur de la base de données ressemble à :

Dans les calls tableau, nous pouvons voir certains des mêmes attributs que dans les accounts table. Les attributs created_by , modified_user_id et assigned_user_id font référence au(x) utilisateur(s) qui ont entré cet appel, l'ont modifié ou sont affectés à l'appel. Le parent_type et parent_id pair indique quelle table est référencée et la valeur de la clé primaire pour cette table. La plupart des autres attributs sont explicites.

La même structure, utilisant une relation plusieurs-à-plusieurs, est utilisée pour connecter les appels avec les utilisateurs, les pistes et les contacts.

Après avoir cliqué sur Enregistrer bouton, nous pouvons voir un nouvel enregistrement d'appel dans nos Appels liste. Nous allons maintenant jeter un coup d'œil dans la base de données, en particulier dans les calls et calls_users tableaux.



Dans les calls tableau, nous pouvons voir que "parent_type" =Comptes et que l'id dans le parent_id le champ est l'identifiant du compte. À l'intérieur de la base de données, quelques tables utilisent le même attribut pour se connecter à l'une des quelques autres tables. Tandis que parent_id contiendra la valeur de la clé primaire dans la table référencée, parent_type indique à quelle table nous allons nous connecter.

Bien sûr, dans le calls_users table, nous associerons cet appel à un utilisateur assigné.


Réunions

Les "Réunions et leads ” est le groupe de tables utilisées pour stocker les données relatives aux réunions et aux prospects. Bien qu'il soit évident de savoir quelles pourraient être les données de la réunion, prospects faire référence à l'intérêt potentiel des clients pour nos produits et services. Plus tard, nous utiliserons ces pistes et les mettrons en relation avec des opportunités, des appels et des réunions.

Nous remarquerons que certaines règles générales pour nommer les champs dans les meetings tableau et pour connecter des réunions avec des contacts, des prospects et des utilisateurs sont appliqués dans cette section.

Comme pour les appels, les réunions peuvent également être attribuées aux utilisateurs et liées aux clients. Nous entrerons dans une nouvelle réunion en cliquant sur Activités --> Réunions --> Programmer une réunion .

Les données de la réunion, une fois saisies, sont stockées dans SuiteCRM ; nous pouvons le voir dans la liste des réunions. Comme pour les appels, les réunions peuvent être attribuées à des comptes, des contacts, des tâches, des opportunités, des bogues, des requêtes, des pistes, des projets, des tâches de projet et des cibles.

Dans la base de données, la meeting table contient des données sur la réunion nouvellement ajoutée. Le parent_type et le parent_id les attributs sont utilisés de la même manière et dans le même but que les calls données.



Les meetings_users table stocke des informations sur les utilisateurs qui sont affectés à une certaine réunion.



Les clés primaires sont des valeurs de hachage générées aléatoirement. Cela nous permet d'avoir des valeurs uniques pour chaque clé primaire dans l'ensemble de la base de données, pas seulement dans chaque table. Ceci est particulièrement pratique lorsque nous utilisons le même attribut comme clé étrangère pour de nombreuses tables différentes. Un attribut contient la valeur de la clé, tandis qu'un autre contient le nom de la table référencée. Cela offre beaucoup plus de flexibilité - plus que les systèmes couvrant plusieurs situations professionnelles réelles n'en ont généralement besoin.

Dans la partie 4, qui clôturera cette série, nous examinerons de plus près le reste de SuiteCRM, y compris les campagnes, les projets, les opportunités et l'administration des documents.