sql >> Base de Datos >  >> RDS >> Database

Parte 3:Clientes, llamadas y reuniones

Anteriormente en esta serie, importamos el modelo de base de datos de SuiteCRM a Vertabelo y mostramos cómo usar las funciones de Vertabelo para organizarlo. En este artículo, veremos cómo se almacenan los datos comunes de CRM en su base de datos. También revisaremos las suposiciones hechas en la Parte 2 sobre las relaciones entre las tablas y sus funciones. Si es necesario, haremos modificaciones al modelo.

¿Qué tenemos actualmente?

En la Parte 1, instalamos SuiteCRM localmente usando el paquete de instalación de Bitnami. Después de iniciar sesión con éxito, la pantalla principal de SuiteCRM se parece a la siguiente:

Se puede acceder a la base de datos de SuiteCRM llamada "bitnami_suitecrm" en la ubicación http://127.0.0.1/phpmyadmin. Recordemos que el modelo tiene 201 tablas.

Concluimos la Parte 2 de esta serie con el modelo organizado así:




Requisitos básicos para un CRM

Un CRM debe permitirnos llevar un registro de nuestros clientes y hacer un seguimiento de los contactos (llamadas, reuniones, etc.) que tenemos con ellos.

Los clientes son fundamentales para cualquier sistema de CRM. Necesitamos almacenar sus datos organizativos básicos (nombre, dirección, ingresos, número de empleados) y sus datos de contacto (teléfono, móvil, correo electrónico, sitio web y quizás incluso cuentas sociales). También debemos realizar un seguimiento de los datos administrativos, como cuándo y quién agregó o actualizó sus registros en el sistema.

Cuando pensamos en acciones relacionadas con el cliente, solemos pensar en llamadas y reuniones. También podríamos tener algunas otras acciones que no requieren contacto con el cliente:verificar si se resolvió un problema, si se realizó un pago, cosas así. Queremos mantener un registro de acciones anteriores, pero también necesitamos la capacidad de programar eventos futuros. Además, almacenaremos las horas de inicio y finalización de la acción, quién insertó y actualizó los datos de la acción, quién inició esa acción específica y quién está a cargo de ella.

Por supuesto, hay muchas otras cosas, como productos y servicios vendidos anteriormente y nuevas ventas potenciales, que también podríamos agregar a un CRM. Pero en este artículo, nos centraremos en cómo SuiteCRM almacena los datos, las llamadas y las reuniones de los clientes.

Gestión de clientes

Las organizaciones cliente se denominan cuentas en Suite CRM. Esto es lo que Crear nueva cuenta la pantalla se parece a:

Y así es como se ve la tabla de "cuentas" en la base de datos de SuiteCRM:

Dentro de las accounts tabla, información de la tienda de atributos ingresada en Crear nueva cuenta pantalla:

  • Datos básicos del cliente:name , description , industry , annual revenue ,“rating , ownership , employees , ticker symbol
  • Datos de contacto:phone_fax , atributos de dirección de facturación, atributos de dirección de envío, phone_office , phone_alternate , website
  • Cambios en los datos del cliente dentro del CRM:created_by , modified_user_id , assigned_user_id , date_entered , date_modified y deleted .

La mayoría de estos atributos son del tipo varchar porque el CRM debe poder almacenar datos insertados por el usuario de cualquier tipo posible.

Las accounts La tabla está conectada a muchas otras tablas en la base de datos de SuiteCRM. Todas las relaciones se establecen de acuerdo con los supuestos descritos en la Parte 2 de esta serie.

Las cuentas dentro de SuiteCRM son básicamente una lista de clientes. Están relacionados con muchas otras tablas del sistema:contacts , opportunities , bugs , cases .

En SuiteCRM-speak, contactos son personas reales con las que hablamos en nombre de su organización (recuerde, en la jerga de CRM, estas organizaciones se denominan "cuentas"). Puede asignar un nuevo contacto a una cuenta, como se muestra a continuación:

Los datos de la persona se almacenan en los contacts mesa. Los account_contacts table nos permite relacionar muchos contactos a una cuenta dada.

Oportunidades dentro de SuiteCRM se encuentran las posibilidades de venta estimadas. Están ligados a la etapa de ventas. Las opportunities y account_opportunities Las tablas se utilizan para almacenar datos sobre múltiples oportunidades relacionadas con una sola cuenta.

Como puede adivinar por su nombre, los bugs y accounts_bugs las tablas almacenan datos sobre problemas relacionados con ciertas cuentas. El módulo SuiteCRM también nos permite ingresar soluciones y rastrear historiales de errores. Los errores están relacionados con calls , contact , cases y otras mesas.

El módulo de "casos" se utiliza para ingresar y rastrear problemas relacionados con el servicio. Después de agregar un nuevo caso, podemos agregar errores relacionados con ese caso.

Llamadas

Cualquier sistema de CRM almacenará información sobre las llamadas a los clientes; SuiteCRM no es diferente. Para agregar una nueva llamada, hacemos clic en Actividades --> Llamadas y rellene los datos necesarios. Agregaremos una nueva llamada y la relacionaremos con una cuenta y un usuario existentes en nuestro sistema.

Esto es lo que Llamadas La sección dentro de la base de datos se parece a:

En las calls tabla, podemos ver algunos de los mismos atributos que en las accounts mesa. Los atributos created_by , modified_user_id y assigned_user_id se refiere a los usuarios que ingresaron a esta llamada, la modificaron o están asignados a la llamada. El parent_type y parent_id par indica a qué tabla se hace referencia y el valor de clave principal para esa tabla. La mayoría de los demás atributos se explican por sí mismos.

La misma estructura, usando una relación de muchos a muchos, se usa para conectar llamadas con usuarios, prospectos y contactos.

Después de hacer clic en Guardar botón, podemos ver un nuevo registro de llamadas en nuestro Llamadas lista. Ahora echaremos un vistazo a la base de datos, específicamente a las calls y calls_users mesas.



En las calls tabla podemos ver que “parent_type” =Cuentas y que el id en el parent_id el campo es la identificación de la cuenta. Dentro de la base de datos hay algunas tablas que usan el mismo atributo para conectarse a una de las pocas tablas. Mientras que parent_id contendrá el valor de la clave principal en la tabla a la que se hace referencia, parent_type indica a qué tabla nos conectaremos.

Por supuesto, en el calls_users table relacionaremos esa llamada con un usuario asignado.


Reuniones

Las "Reuniones y contactos La sección ” es el grupo de tablas utilizadas para almacenar datos relacionados con reuniones y clientes potenciales. Si bien es obvio cuáles podrían ser los datos de la reunión, clientes potenciales hacer referencia al interés potencial de los clientes en nuestros productos y servicios. Más tarde, usaremos esos clientes potenciales y los relacionaremos con oportunidades, llamadas y reuniones.

Notaremos que algunas reglas generales para nombrar campos en las meetings tabla y para conectar reuniones con contactos, clientes potenciales y usuarios se aplican en esta sección.

Al igual que con las llamadas, las reuniones también pueden asignarse a usuarios y relacionarse con clientes. Ingresaremos a una nueva reunión haciendo clic en Actividades --> Reuniones --> Programar reunión .

Los datos de la reunión, una vez ingresados, se almacenan dentro de SuiteCRM; podemos verlo en la lista de reuniones. Al igual que con las llamadas, las reuniones se pueden asignar a cuentas, contactos, tareas, oportunidades, errores, casos, clientes potenciales, proyectos, tareas de proyectos y objetivos.

En la base de datos, la meeting La tabla contiene datos sobre la reunión recién agregada. El parent_type y el parent_id los atributos se usan de la misma manera y con el mismo propósito que las calls datos.



Los meetings_users La tabla almacena información sobre los usuarios que están asignados a una determinada reunión.



Las claves primarias son valores hash generados aleatoriamente. Esto nos permite tener valores únicos para cada clave principal en toda la base de datos, no solo en cada tabla. Esto es especialmente útil cuando usamos el mismo atributo como clave externa para muchas tablas diferentes. Un atributo contiene el valor clave, mientras que otro contiene el nombre de la tabla a la que se hace referencia. Esto proporciona mucha más flexibilidad, más de lo que generalmente necesitan los sistemas que cubren varias situaciones comerciales de la vida real.

En la Parte 4, que cerrará esta serie, veremos más de cerca el resto de SuiteCRM, incluidas las campañas, los proyectos, las oportunidades y la administración de documentos.