Database
 sql >> Datenbank >  >> RDS >> Database

Teil 3 – Kunden, Anrufe und Meetings

Zuvor haben wir in dieser Serie das Datenbankmodell von SuiteCRM in Vertabelo importiert und gezeigt, wie man die Funktionen von Vertabelo verwendet, um es zu organisieren. In diesem Artikel werden wir sehen, wie allgemeine CRM-Daten in seiner Datenbank gespeichert werden. Wir werden auch die in Teil 2 getroffenen Annahmen über die Beziehungen zwischen Tabellen und ihren Funktionen überprüfen. Bei Bedarf nehmen wir Änderungen am Modell vor.

Was haben wir derzeit?

In Teil 1 haben wir SuiteCRM lokal mit dem Bitnami-Installationspaket installiert. Nach erfolgreicher Anmeldung sieht der Hauptbildschirm von SuiteCRM wie folgt aus:

Auf die SuiteCRM-Datenbank mit dem Namen „bitnami_suitecrm“ kann unter http://127.0.0.1/phpmyadmin zugegriffen werden. Denken Sie daran, dass das Modell 201 Tabellen hat.

Wir haben Teil 2 dieser Serie mit dem folgenden Modell abgeschlossen:




Grundlegende Anforderungen an ein CRM

Ein CRM sollte es uns ermöglichen, Aufzeichnungen über unsere Kunden zu führen und die Kontakte (Anrufe, Besprechungen usw.) zu verfolgen, die wir mit ihnen haben.

Clients sind für jedes CRM-System von zentraler Bedeutung. Wir müssen ihre grundlegenden organisatorischen Daten (Name, Adresse, Umsatz, Anzahl der Mitarbeiter) und ihre Kontaktdaten (Telefon, Handy, E-Mail, Website und möglicherweise sogar soziale Konten) speichern. Wir müssen auch Verwaltungsdaten nachverfolgen, z. B. wann und von wem ihre Datensätze im System hinzugefügt oder aktualisiert wurden.

Wenn wir an kundenbezogene Aktionen denken, denken wir normalerweise an Anrufe und Meetings. Wir könnten auch einige andere Aktionen durchführen, die keinen Kontakt mit dem Kunden erfordern:Überprüfen, ob ein Problem gelöst ist, ob eine Zahlung erfolgt ist, solche Sachen. Wir möchten Aufzeichnungen über frühere Aktionen führen, aber wir brauchen auch die Möglichkeit, zukünftige Ereignisse zu planen. Darüber hinaus speichern wir die Start- und Endzeiten der Aktion, wer Aktionsdaten eingefügt und aktualisiert hat, wer diese bestimmte Aktion initiiert hat und wer dafür verantwortlich ist.

Natürlich gibt es eine Reihe anderer Dinge – wie zuvor verkaufte Produkte und Dienstleistungen und potenzielle neue Verkäufe – die wir ebenfalls zu einem CRM hinzufügen könnten. Aber in diesem Artikel konzentrieren wir uns darauf, wie SuiteCRM Kundendaten, Anrufe und Besprechungen speichert.

Kunden verwalten

Kundenorganisationen werden Konten genannt im SuiteCRM. Hier ist, was die Neues Konto erstellen Bildschirm sieht so aus:

Und so sieht die Tabelle „Konten“ in der Datenbank von SuiteCRM aus:

Innerhalb der accounts Tabelle, Attribute speichern Informationen, die in Neues Konto erstellen eingegeben wurden Bildschirm:

  • Grundlegende Kundendaten:name , description , industry , annual revenue ,“rating , ownership , employees , ticker symbol
  • Kontaktdaten:phone_fax , Attribute für Rechnungsadressen, Attribute für Lieferadressen, phone_office , phone_alternate , website
  • Änderungen an Kundendaten im CRM:created_by , modified_user_id , assigned_user_id , date_entered , date_modified und deleted .

Die meisten dieser Attribute sind vom Typ varchar, da das CRM in der Lage sein muss, vom Benutzer eingefügte Daten aller möglichen Typen zu speichern.

Die accounts Tabelle ist mit vielen anderen Tabellen in der SuiteCRM-Datenbank verbunden. Alle Beziehungen werden gemäß den in Teil 2 dieser Serie aufgezeichneten Annahmen festgelegt.

Konten in SuiteCRM sind im Grunde eine Liste von Kunden. Sie sind mit vielen anderen Tabellen im System verbunden:contacts , opportunities , bugs , cases .

In der SuiteCRM-Sprache Kontakte sind echte Personen, mit denen wir im Namen ihrer Organisation sprechen (denken Sie daran, dass diese Organisationen in der CRM-Sprache "Konten" genannt werden). Sie können einem Konto einen neuen Kontakt zuweisen, wie unten gezeigt:

Die Daten der Person werden in den contacts Tisch. Die account_contacts Tabelle ermöglicht es uns, viele Kontakte einem bestimmten Konto zuzuordnen.

Möglichkeiten Inside SuiteCRM sind geschätzte Verkaufsmöglichkeiten. Sie sind an die Verkaufsphase gebunden. Die opportunities und account_opportunities Tabellen werden verwendet, um Daten zu mehreren Opportunitys zu speichern, die sich auf einen einzelnen Account beziehen.

Wie der Name schon vermuten lässt, sind die bugs und accounts_bugs Tabellen speichern Daten über Probleme im Zusammenhang mit bestimmten Konten. Das SuiteCRM-Modul ermöglicht uns auch, Lösungen einzugeben und Fehlerhistorien zu verfolgen. Fehler beziehen sich auf calls , contact , cases und andere Tabellen.

Das Modul „Fälle“ dient der Erfassung und Verfolgung servicebezogener Probleme. Nachdem wir einen neuen Fall hinzugefügt haben, können wir Fehler im Zusammenhang mit diesem Fall hinzufügen.

Anrufe

Jedes CRM-System speichert Informationen über Anrufe bei Kunden; SuiteCRM ist da nicht anders. Um einen neuen Anruf hinzuzufügen, klicken wir auf Aktivitäten --> Anrufe und füllen Sie die erforderlichen Daten aus. Wir fügen einen neuen Anruf hinzu und verknüpfen ihn mit einem bestehenden Konto und Benutzer in unserem System.

Hier ist, was die Anrufe Abschnitt innerhalb der Datenbank sieht folgendermaßen aus:

In den calls Tabelle sehen wir einige der gleichen Attribute wie in den accounts Tisch. Die Attribute created_by , modified_user_id und assigned_user_id beziehen sich auf den/die Benutzer, der/die diesen Anruf eingegeben, geändert oder dem Anruf zugewiesen hat/haben. Der parent_type und parent_id Paar gibt an, auf welche Tabelle verwiesen wird, und den Primärschlüsselwert für diese Tabelle. Die meisten anderen Attribute sind selbsterklärend.

Dieselbe Struktur, die eine Viele-zu-Viele-Beziehung verwendet, wird verwendet, um Anrufe mit Benutzern, Leads und Kontakten zu verbinden.

Nachdem Sie auf Speichern geklickt haben Schaltfläche können wir einen neuen Anrufeintrag in unseren Anrufen sehen aufführen. Jetzt werfen wir einen Blick in die Datenbank, insbesondere in die calls und calls_users Tabellen.



In den calls Tabelle können wir sehen, dass "parent_type" =Accounts und dass die id in der parent_id Feld ist die Konto-ID. Innerhalb der Datenbank gibt es einige Tabellen, die dasselbe Attribut verwenden, um eine Verbindung zu einer von wenigen anderen Tabellen herzustellen. Während parent_id enthält den Wert des Primärschlüssels in der referenzierten Tabelle, parent_type gibt an, mit welcher Tabelle wir eine Verbindung herstellen.

Natürlich in den calls_users Tabelle ordnen wir diesen Anruf einem zugewiesenen Benutzer zu.


Treffen

Die „Meetings und Leads ”-Abschnitt ist die Gruppe von Tabellen, in denen Daten zu Meetings und Leads gespeichert werden. Es ist zwar offensichtlich, was die Besprechungsdaten sein könnten, aber Leads beziehen sich auf das potenzielle Interesse der Kunden an unseren Produkten und Dienstleistungen. Später verwenden wir diese Leads und verknüpfen sie mit Verkaufschancen, Anrufen und Besprechungen.

Wir werden einige allgemeine Regeln für die Benennung von Feldern in den meetings Tabelle und zum Verbinden von Meetings mit Kontakten, Leads und Benutzern werden in diesem Abschnitt angewendet.

Wie bei Anrufen können auch Besprechungen Benutzern zugewiesen und Kunden zugeordnet werden. Wir betreten ein neues Meeting, indem wir auf Aktivitäten --> Meetings --> Meeting planen klicken .

Die einmal eingegebenen Besprechungsdaten werden in SuiteCRM gespeichert; Wir können es in der Besprechungsliste anzeigen. Wie bei Anrufen können Besprechungen Accounts, Kontakten, Aufgaben, Opportunities, Fehlern, Fällen, Leads, Projekten, Projektaufgaben und Zielen zugewiesen werden.

In der Datenbank das meeting Tabelle enthält Daten über das neu hinzugefügte Meeting. Der parent_type und die parent_id Attribute werden auf dieselbe Weise und für denselben Zweck wie die calls verwendet Daten.



Die meetings_users Tabelle speichert Informationen über die Benutzer, die einem bestimmten Meeting zugewiesen sind.



Primärschlüssel sind zufällig generierte Hashwerte. Dies ermöglicht es uns, eindeutige Werte für jeden Primärschlüssel in der gesamten Datenbank zu haben, nicht nur in jeder Tabelle. Dies ist besonders praktisch, wenn wir dasselbe Attribut als Fremdschlüssel für viele verschiedene Tabellen verwenden. Ein Attribut enthält den Schlüsselwert, während ein anderes den Namen der referenzierten Tabelle enthält. Dies bietet viel mehr Flexibilität – mehr als Systeme, die mehrere reale Geschäftssituationen abdecken, im Allgemeinen benötigen.

In Teil 4, der diese Serie abschließt, werfen wir einen genaueren Blick auf den Rest von SuiteCRM, einschließlich Kampagnen, Projekte, Verkaufschancen und Dokumentenverwaltung.