Ir al contenido

Los modelos de datos estándar

También en 28 idiomas

English · 日本語 · Português (Brasil) · Français · Deutsch · Italiano · 한국어 · 简体中文 · Português (Portugal) · 繁體中文 · Bahasa Indonesia · Türkçe · Polski · Tiếng Việt · ไทย · Nederlands · العربية · עברית · Українська · हिन्दी · Русский · Svenska · Dansk · Norsk bokmål · Suomi · Español (México) · Français (Canada) · Deutsch (Schweiz)

An aisle of a builders' supply warehouse, its racks stacked with ready-made standard doors, windows and stair parts, a cart waiting in the aisle.
Imagen generada con IA

Módulo 2 de 10 del capítulo Arquitectura de datos de Salesforce, capítulo 3 del curso Data Architect. Cada módulo se sostiene por sí solo. Anterior: La plataforma de datos de Salesforce: más que una base de datos · Siguiente: Construye el tuyo: objetos personalizados

La pregunta que responde este módulo: ¿Qué ya modeló Salesforce por ti, y cómo está armado?

En el módulo 1 te dije que mires a la nave nodriza: antes de inventar algo, mira cómo lo hace el propio Salesforce. En este módulo es donde de verdad miramos. Salesforce ya modeló gran parte del negocio por ti, en sus objetos estándar, y dos de esos modelos hacen la mayor parte del trabajo en la mayoría de las organizaciones en las que entro: el modelo de ventas (Sales) y el modelo de servicio (Service). Antes de poder decidir si algo merece un objeto personalizado, necesitas saber qué hay ya. De eso tratan los próximos dos módulos.

Un objeto estándar viene listo para usar. Lo construyó Salesforce, tiene un propósito definido y trae sus propios campos y relaciones. Puedes agregarle campos, construir automatizaciones a su alrededor y cambiar sus formatos de página, pero no puedes rediseñarlo: los campos y las relaciones estándar son de Salesforce.

Mira los nombres. Account, Contact, Case. Sin prefijo, sin sufijo. Es Salesforce reservándose ese espacio. Todo lo que construimos nosotros termina en __c, así que Salesforce puede agregar objetos estándar nuevos en cualquier momento sin chocar nunca con nada de tu organización. Y lo hace, en cada versión.

En algún momento del camino alguien construyó un objeto producto que no funcionó y hubo que dejarlo atrás. Por eso el nombre de API es Product2. Es mi primera prueba de fuego cuando alguien me dice que conoce Salesforce.

Empieza por la izquierda, con el prospecto (Lead): alguien que podría convertirse en cliente. Un prospecto todavía no es realmente parte del modelo. Es una zona de espera. Cuando lo conviertes, Salesforce crea los registros reales: una cuenta, un contacto y, si hay un negocio, una oportunidad. Por eso dibujo el prospecto a un lado.

La cuenta es la empresa. Sus contactos son las personas que trabajan en ella. Una oportunidad es un negocio con esa cuenta. Hasta aquí, nada que no esperaras.

Después se pone interesante. ¿Qué hay en el negocio? Cada línea es un producto de oportunidad (Opportunity Product), y un producto de oportunidad no apunta directamente a un producto. Apunta a una entrada de lista de precios (Price Book Entry): este producto, a este precio, en esta lista de precios. La entrada de lista de precios se sitúa entre el producto y la lista de precios (Price Book), así que el mismo producto puede tener un precio en la lista de precios estándar y otro en tu lista de precios para socios.

Son dos relaciones que se convirtieron en cosas, una detrás de otra. ¿Te acuerdas del Artículo de entrega del capítulo 2, entre la Entrega y el Producto, y del Truco del perro entre el Perro y el Truco? Salesforce hizo exactamente lo mismo aquí, dos veces: el producto de oportunidad entre la oportunidad y la entrada de lista de precios, y la entrada de lista de precios entre el producto y la lista de precios. Cuando sabes leer eso, sabes leer la mayor parte del modelo de datos estándar.

El modelo de ventas El modelo de ventas. Un prospecto, a la izquierda, se convierte en una cuenta. Una cuenta tiene contactos y oportunidades. Una oportunidad usa una lista de precios y contiene productos de oportunidad. Cada producto de oportunidad toma su precio de una entrada de lista de precios. Una lista de precios enumera entradas de lista de precios, y un producto aparece en entradas de lista de precios, así que cada entrada de lista de precios une un producto y una lista de precios. se convierte en tiene tiene usa contiene toma su precio de enumera aparece en Prospecto Cuenta Contacto Oportunidad Lista de precios Producto de oportunidad Entrada de lista de precios Producto exactamente uno cero o uno uno o muchos cero o muchos © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Aquí está esa cadena de cerca, con los campos que la mantienen unida:

La cadena de precios de cerca La cadena de precios como modelo de datos detallado. Un producto de oportunidad lleva su ID de oportunidad, su ID de entrada de lista de precios, una cantidad y un precio de venta, y toma su precio de una entrada de lista de precios. La entrada de lista de precios lleva su ID de lista de precios, su ID de producto, un precio de lista y un indicador Usar precio estándar. Una lista de precios tiene un nombre y un indicador Es estándar; un producto tiene un nombre y un código de producto. toma su precio de enumera aparece en Lista de precios ID de lista de precios ID DE REGISTRO Nombre Es estándar Producto de oportunidad ID de producto de oportunidad ID DE REGISTRO ID de oportunidad ID de entrada de lista de precios Cantidad Precio de venta Entrada de lista de precios ID de entrada de lista de precios ID DE REGISTRO ID de lista de precios ID de producto Precio de lista Usar precio estándar Producto ID de producto ID DE REGISTRO Nombre Código de producto exactamente uno cero o uno uno o muchos cero o muchos © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Una regla con la que la gente tropieza: hay una lista de precios estándar, y una entrada de lista de precios en cualquier otra lista de precios puede simplemente usar el precio estándar del producto. Ten claro qué lista de precios usa una oportunidad antes de cargar sus productos.

Ahora el otro lado de la casa. La misma cuenta, los mismos contactos. Cuando algo sale mal, el cliente abre un caso.

El caso normalmente trata sobre algo que el cliente tiene, y Salesforce tiene un objeto para eso: el activo (Asset). En el módulo 5 lo llamaré el objeto estándar que la gente pasa por alto. Es una cosa que el cliente tiene, la haya comprado a ti o no.

¿Y a qué tiene derecho el cliente? Eso es el derecho (Entitlement): el soporte que una cuenta puede recibir, a menudo ligado a un activo, a un producto o a un contrato de servicio. Pon un derecho en un caso, y ahora el caso sabe qué nivel de soporte se supone que debe recibir.

El modelo de servicio El modelo de servicio. Una cuenta tiene contactos, casos y activos. Un contacto reporta casos. Un caso puede tratar sobre un activo, y un derecho, que pertenece a una cuenta, cubre casos. Una línea que sale del caso y vuelve a él, rodeando su esquina, es el caso principal (Parent Case): un caso es el principal de cero o muchos casos, y cada caso tiene cero o un caso principal. tiene tiene reporta posee trata sobre cubre principal de Cuenta Contacto Activo Caso Derecho exactamente uno cero o uno uno o muchos cero o muchos © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Mira la línea que va del caso de vuelta a sí mismo. Cada caso tiene un campo Caso principal (Parent Case), y apunta a otro caso. Eso es una búsqueda a sí mismo (self-lookup): una relación de un objeto consigo mismo. Confunde a mucha gente la primera vez que la ve, así que aquí van las dos razones por las que la uso.

Una: un problema grande que se divide en otros más pequeños. El cliente reporta que toda la instalación está caída. Abrimos subcasos para la red, el hardware y la configuración, cada uno trabajado por separado, y todos se resuelven hacia arriba: el caso principal no está terminado hasta que lo estén ellos.

Dos: el historial. Un caso se cerró el mes pasado, y ahora el mismo problema volvió. El caso nuevo apunta al original, así que cualquiera que lo abra puede ver que esto ya pasó antes, y qué se hizo al respecto.

Volveremos a las búsquedas a sí mismo cuando lleguemos a las relaciones en el módulo 7.

Fíjate en que la cuenta y el contacto están en el mismo lugar en los dos diagramas. Son los mismos registros. Un representante de ventas y un agente de servicio miran al mismo cliente, desde lados distintos de la casa. Ese es uno de los argumentos más fuertes para quedarse con lo estándar: los modelos se construyeron para encontrarse.

No todo lo que hay en un registro es un campo. Los contratos, las fotos, los PDF y las hojas de cálculo son archivos, y pertenecen a Salesforce Files, no al viejo modelo de datos adjuntos (Attachments), que es heredado. Si el documento ya vive en SharePoint Online, OneDrive, Google Drive o Box, Files Connect permite que los usuarios lleguen a él desde Salesforce sin copiarlo.

Los archivos se cuentan de forma distinta a los registros. Salesforce divide el almacenamiento en dos: el almacenamiento de archivos guarda los datos adjuntos, Files, Salesforce CRM Content, los archivos de Chatter y similares, y el almacenamiento de datos guarda tus registros. El almacenamiento de archivos sube rápido cuando cada registro recibe fotos o escaneos, así que los grandes volúmenes de imágenes, como las fotos de una aplicación de campo, a menudo pertenecen por completo fuera de Salesforce, y Salesforce guarda solo un enlace. El módulo 4 vuelve sobre eso.

El almacenamiento de datos también se cuenta de forma distinta a una base de datos. En una base de datos normal, una tabla con dos columnas y un millón de filas es pequeña, y una tabla con cien columnas y un millón de filas es un elefante. Salesforce las pesa igual: la mayoría de los registros cuentan como unos 2 KB, sin importar cuántos campos tengan. Hay excepciones. Una campaña cuenta más, un mensaje de correo electrónico cuenta por su tamaño real, y una cuenta personal cuenta como unos 4 KB, porque es una cuenta y un contacto.

Un consejo. Cada vez que entro en una organización nueva, uno de los primeros lugares a los que voy es Setup → Storage Usage (Uso del almacenamiento). Hasta le pido una captura de pantalla al cliente en la primera llamada. Esa pantalla no miente. Te dice qué objetos están creciendo, y cuáles ya son los elefantes.

Cuentas personales: cuando el cliente es una persona

Sección titulada «Cuentas personales: cuando el cliente es una persona »

El modelo de cuenta y contacto funciona de maravilla para una empresa y las personas que trabajan en ella. ¿Pero qué pasa si tu cliente no es una empresa? ¿Qué pasa si es una persona?

Eso es la cuenta personal: una cuenta y un contacto combinados en un solo registro, para personas individuales. Sus campos de contacto vienen con ella, y los personalizados aparecen con su propio sufijo, __pc. Cada una cuenta tanto para el almacenamiento de cuentas como para el de contactos, porque por debajo es las dos cosas.

Una advertencia antes de activarlas: una vez habilitadas las cuentas personales, no se pueden deshabilitar. Esa es la Prueba de Reversibilidad del capítulo 1 en su forma más pura. El módulo 5 te da mi postura sobre cuándo valen la pena.

  • Qué partes del negocio ya modeló Salesforce, antes de diseñar nada nuevo.
  • Si un concepto cae en el modelo de ventas, en el de servicio o en los dos, sabiendo que comparten la cuenta y el contacto.
  • Dónde viven los documentos y las imágenes: Salesforce Files, un sistema de archivos conectado, o fuera de la plataforma con un enlace.
  • Cuánto costarán los datos en almacenamiento, contados como los cuenta Salesforce: registros, no columnas.
  • Si el cliente es una empresa o una persona, antes de activar algo que no se puede desactivar.

¿Y cuando Salesforce no tiene lo que necesitas? Lo construyes. Eso viene a continuación.