Ir al contenido

Steve Trucking, lo que yo diseñaría

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)

A row of plain white delivery trucks ready at the loading doors at first light, a clipboard on the front of the nearest one.
Imagen generada con IA

Módulo 6 de 6 del capítulo Datos maestros e identidad, capítulo 6 del curso Data Architect, y el final de la Parte 1. Anterior: Cuando la autoridad es compartida · Siguiente: la Parte 2 empieza con Diseñar para la escala (coming soon)

La pregunta que responde este checkpoint: ¿Puedes unir la Parte 1 en un escenario real?

Haz primero el desafío. Este es mi recorrido por el desafío del Checkpoint 1. Si todavía no has dibujado tu propio diseño, hazlo antes de seguir leyendo. El valor está en comparar tu razonamiento con el mío, no en leer la respuesta.

Esto es “Lo que yo diseñaría”: una posible solución viable, no la respuesta, con las compensaciones nombradas y mis posturas tomadas. Todavía no hemos visto grandes volúmenes de datos, diseño de consultas, patrones de integración, migración ni transacciones, y es a propósito: la arquitectura se desarrolla a medida que aprendes más. Pero la Parte 1 nos da lo suficiente para fijar el esqueleto.

Del brief: unas 3,300 entregas por día laborable, un millón al año, con un crecimiento del 30 % anual. Unas 1.6 partidas por entrega (1.6 millones al año); unos ocho cambios de estado por entrega (8 millones al año); de cuatro a cinco millones de fotos al año; unas 200,000 lecturas de GPS al día; unos 180,000 casos al año; tres socios minoristas (Retail Partners) que envían manifiestos de tres formas distintas; nueve centros de distribución; 330 camiones con equipos de dos personas. Y Steve Trucking ya tiene una org de Salesforce con Service Cloud, Field Service y un portal de socios. Cuenta los ceros antes de dibujar una sola caja. Van a decidir varias cosas más abajo.

El núcleo de las entregas: mira a la nave nodriza

Sección titulada «El núcleo de las entregas: mira a la nave nodriza »

Las entregas son el corazón de todo, y Field Service ya hace el despacho. Así que empiezo por el modelo estándar de Field Service, como hizo la porción del capítulo 3:

Concepto de negocioObjeto de SalesforcePor qué
Socio minoristaAccount (tipo de registro Retail Partner)Una empresa con la que Steve Trucking tiene contrato; lleva contratos, casos y acceso al portal
Personal del socio (gerentes de centro de distribución, personal de tienda)ContactLos usuarios del portal deben ser contactos
Una entrega: un destinatario (Recipient), una dirección, un pedido del socio, un díaWork OrderLa unidad de trabajo de Field Service; de ella dependen la programación, la app móvil y los informes de servicio
Cada artículo o servicio: el refrigerador, la instalación, el retiro del aparato viejoWork Order Line ItemDivide el trabajo, impulsa las listas de verificación y la facturación
El tipo de parada: solo entrega, con instalación, con retiroWork TypeFija la duración, las habilidades y la lista de verificación de instalación
La visita programada y su franja horariaService AppointmentLo que programa Field Service y muestra la app del equipo
Cuadrillas y camiones; áreas de despacho de los centros de distribuciónService Resource, Service Crew, Service TerritoryField Service programa un equipo como un solo recurso
Consultas de los destinatarios, reclamaciones de los sociosCaseLa consola de servicio, los derechos de soporte (entitlements), email-to-case
La lista del socio para el martes en el centro de distribución de PhoenixManifest__c (personalizado)Nada estándar representa la unidad de recepción, reconciliación y reproceso

Todo lo demás se queda estándar. Resistirse a más objetos personalizados es deliberado: la pregunta del capítulo 1 era cuándo debería un arquitecto resistirse a uno más, y aquí la respuesta es “casi siempre”. La línea del pedido del socio, por ejemplo, no es un objeto nuevo. Es la orden de trabajo, identificada por la referencia del socio.

Checkpoint 1: el núcleo de las entregas El núcleo físico del Checkpoint 1 para Steve Trucking. En el núcleo: un socio minorista, una Account con un tipo de registro, envía manifiestos, el único objeto personalizado, y cada entrega es para un socio. Un manifiesto enumera entregas. Una entrega es una Work Order que lleva al destinatario como campos; se programa como citas, Service Appointments, y contiene artículos de la entrega, Work Order Line Items, cada uno descrito por un tipo de parada, un Work Type. Un equipo, un Service Crew, se asigna a las citas y trabaja en un área de despacho de un centro de distribución, un Service Territory. Una consulta o reclamación, un Case, puede referirse a entregas. Fuera del núcleo: las señales de GPS del equipo van al almacén de datos, la entrega se vincula a las fotos de la entrega en un almacén de fotos, y cada cita publica su historial de estados como eventos en el almacén de datos. Debajo: mira a la nave nodriza: Field Service es el núcleo de las entregas. EN EL NÚCLEO FUERA DEL NÚCLEO envía es para enumera se refiere a se programa como contiene describe los equipos trabajan en asignado a emite señales se vincula a publica Socio minorista Account · tipo de registro Manifiesto Manifest__c · personalizado Consulta o reclamación Case Entrega WorkOrder · campos del destinatario Artículo de entrega WorkOrderLineItem Cita ServiceAppointment Tipo de parada WorkType Área de despacho del CD ServiceTerritory Equipo ServiceCrew Historial de estados eventos, almacén de datos Fotos de la entrega almacén de fotos, vinculado Señales de GPS almacén de datos, por referencia Mira a la nave nodriza: Field Service es el núcleo de las entregas. exactamente uno cero o uno uno o muchos cero o muchos búsqueda © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Crece a partir del diagrama final del capítulo 3 (Diseña el modelo físico de Salesforce): los mismos objetos en los mismos lugares, con el equipo, el área de despacho, el caso y lo que el Checkpoint 1 deja fuera del núcleo añadidos.

La clave que empareja el pedido de un socio con una entrega

Sección titulada «La clave que empareja el pedido de un socio con una entrega »

Cada línea del manifiesto se convierte en una orden de trabajo, vinculada a su Manifest. La clave es la pregunta que más quiero responder: ¿cómo sabemos que esta línea del socio es esa entrega? Mi respuesta: un External ID en la orden de trabajo construido a partir del socio minorista y la propia referencia de pedido y entrega del socio (algo como KEYSTONE-PHX-8843119-1), marcado como único. Un campo por fuente, uno a uno. Es el identificador del socio, no el nuestro: los “varios identificadores para una misma cosa” del capítulo 2, y el “el socio es dueño de su referencia de pedido” del módulo 1.

Por qué importa: los manifiestos llegan con uno o dos días de antelación y se revisan el mismo día. Con esa clave, cada manifiesto reenviado o revisado hace un upsert en lugar de crear duplicados. La revisión actualiza la orden de trabajo, un campo lo registra, y un cambio en una entrega ya asignada a una ruta avisa al coordinador: el cambio del socio se aplica, pero queda marcado hasta que despacho lo confirma. Esto es también lo que cambia respecto a la imagen del capítulo 4. Hoy cada manifiesto llega a RouteDesk, y los coordinadores vuelven a teclear las rutas en Salesforce y las paradas completadas de vuelta. En este diseño, los manifiestos entran directamente en Salesforce, con un upsert por la clave del socio; RouteDesk se retira y se acaba el volver a teclear. El capítulo de Integración diseña los tres formatos de entrada. La decisión de datos es la clave.

El destinatario: ¿cuenta personal, contacto o ninguno de los dos?

Sección titulada «El destinatario: ¿cuenta personal, contacto o ninguno de los dos? »

Esta es la decisión de datos más interesante de la Parte 1, así que aquí van las opciones, y luego mi elección.

Opción A: cuentas personales. Cada destinatario se convierte en una cuenta personal, vinculada a cada entrega. A favor: es estándar, funciona de forma natural con Service Cloud, la mensajería y la consola, y reconoce a los destinatarios que se repiten. En contra: unos un millón de destinatarios nuevos al año, cada uno una cuenta personal que ocupa aproximadamente el doble que una cuenta de empresa (Estimated Record Size by Object Type (opens in a new tab), en inglés), así que en dos años sería uno de los objetos más grandes de la org. Y los destinatarios no son clientes de Steve Trucking. Son clientes de cada socio minorista, y Steve Trucking nunca debe mezclar al cliente de un socio con el de otro (S2).

Opción B: contactos bajo la cuenta del socio minorista. En contra: un millón de contactos bajo tres o cuatro cuentas es un sesgo padre-hijo (skew) a una escala enorme, muy por encima de la recomendación de Salesforce de unos 10,000 hijos por padre (Considerations for Object Relationships (opens in a new tab); Parent-Child Data Skew (opens in a new tab), en inglés). Esta es la opción para mostrar, y rechazar.

Opción C: el destinatario vive en la entrega. El nombre, el teléfono, el correo, la dirección y las notas de entrega del destinatario son campos de la orden de trabajo (los campos de dirección ya son estándar ahí), capturados del manifiesto. A favor: ningún objeto grande nuevo; los datos viven exactamente lo que la entrega los necesita; la eliminación ocurre por entrega, según el calendario del socio; y el aislamiento entre socios sale gratis, porque cada entrega pertenece a un socio. En contra: un destinatario que se repite no se reconoce como la misma persona.

Ese es el equilibrio que hay que encontrar. ¿Alguna vez va a hacer falta reconocer varias entregas como la misma persona, en el mismo lugar? ¿Darle a esa persona un inicio de sesión? Esa es la línea entre un destinatario que necesita un registro propio y unos datos del destinatario que son simplemente datos sobre la entrega. Y hay un camino intermedio. Lleva el propio ID de cliente del socio minorista como un campo de la entrega, un Retail Partner Customer ID. No crea un registro de destinatario, pero une las entregas que un socio envía para el mismo cliente, que es el comienzo de una experiencia del cliente más unificada, y lleva directamente de vuelta al sistema del socio minorista, donde ese cliente vive de verdad. Es su identificador, así que solo significa algo junto con el socio: el cliente 4417 de un socio no tiene nada que ver con el de otro.

En mi opinión profesional, la opción C es la elección correcta. Lo de no reconocerlo es aceptable, incluso deseable: Steve Trucking no tiene ninguna relación con estas personas más allá de la entrega. Es otra vez el módulo 1: el destinatario es cliente del socio, y el socio es la autoridad sobre quién es. Y es el capítulo 5: los datos personales que llegan a un solo lugar, ligados a una sola entrega, son mucho más fáciles de proteger, conservar y eliminar. Y resiste las formas normales del capítulo 2: los datos del destinatario son uno a uno con la entrega, así que pertenecen a ella. Un hijo Recipient aparte ahorraría unos pocos valores repetidos a costa de otro objeto, otra relación y su carga, y la única forma de que ahorrara más sería tratar a la misma persona como una sola entre socios minoristas, cosa que no vamos a hacer. Así que la entrega lleva al destinatario, con el Retail Partner Customer ID como camino de vuelta al propio sistema del socio.

¿Quién es el destinatario? Tres opciones para el destinatario, cada una con sus argumentos a favor y en contra. Opción A, una cuenta personal por destinatario: falla en la relación, porque el destinatario es cliente del socio; falla en el volumen, alrededor de un millón al año al doble del almacenamiento de una cuenta de empresa; pasa en el skew, porque cada uno es su propia cuenta; falla en el aislamiento entre socios, porque mezcla a los clientes de distintos socios; falla en la eliminación, porque sobrevive a la entrega; pasa en el reconocimiento de los que se repiten. Rechazada. Opción B, contactos bajo el socio minorista: falla en la relación, porque no son personal del socio; falla en el volumen; falla en el skew, un millón bajo tres o cuatro cuentas; pasa en el aislamiento, bajo la cuenta de un solo socio; falla en la eliminación; reconoce repeticiones dentro de un socio. Mostrar y rechazar. Opción C, campos del destinatario en la Work Order, resaltada como la elección del Checkpoint 1: la única relación es la entrega; ningún objeto nuevo; ningún padre nuevo; un socio por entrega; se elimina según el calendario del socio; y un destinatario que se repite no se reconoce, lo cual está bien. Debajo: modela a la persona según la relación que tienes realmente. A: Cuenta personal rechazada A FAVOR Reconoce a un destinatario que se repite Sin skew de padre: cada uno es su propia cuenta EN CONTRA El cliente del socio, no el nuestro Alrededor de 1M al año, al doble de almacenamiento Mezcla clientes de distintos socios (S2) Sobrevive a la entrega B: Contacto bajo el socio minorista: mostrar y rechazar A FAVOR Se mantiene bajo un solo socio (S2) Reconoce repeticiones dentro de un socio EN CONTRA No son personal del socio 1M bajo 3 o 4 cuentas: skew Sobrevive a la entrega C: En la entrega campos en la Work Order: la elección A FAVOR La única relación es la entrega Ningún objeto nuevo, ningún padre nuevo Un socio por entrega (S2) Se elimina según el calendario del socio EN CONTRA Un destinatario que se repite no se reconoce: está bien Modela a la persona según la relación que tienes realmente. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

¿Unificaría a los destinatarios entre socios?

Sección titulada «¿Unificaría a los destinatarios entre socios? »

John Smith, 123 Main Street, aparece en el manifiesto de Redrock y en el de Brightwave. Probablemente sea la misma persona. ¿Debería Steve Trucking unificarlos? No, deliberadamente no. Unificar destinatarios entre socios minoristas violaría S2: un socio nunca debe ver los destinatarios de otro, y una identidad unificada es justo el puente por donde se filtran. Es la postura de este capítulo aplicada: empareja de menos donde mezclar sale caro, y aquí mezclar sale muy caro.

Si más adelante un socio minorista quiere reconocer a los destinatarios que se repiten dentro de sus propias entregas, ese es un trabajo para una herramienta de resolución de identidades, como la de Data 360, limitada a ese socio: un mapa de estilo registro, no una cuenta personal, y nunca entre socios. Un mapa de quién es quién no otorga la propiedad, y no otorga el acceso.

El capítulo 3 preguntó dónde deberían vivir los datos. Aquí lo responden los ceros:

  • El estado actual vive en la cita de servicio y la orden de trabajo. El historial de cambios de estado, unos 8 millones al año y en aumento, no necesita vivir en la org principal. Cada cambio se publica como un evento y se guarda en el almacén de datos, Snowflake. La org conserva el estado actual; el historial sigue disponible para servicio, operaciones y análisis, solo que no en la base de datos operativa.
  • Las fotos (de cuatro a cinco millones al año, algunas con personas o con el interior de una casa) viven fuera del núcleo, en un almacenamiento pensado para ese volumen, subidas directamente desde la app del equipo. La org conserva solo lo que necesita: un pequeño registro de índice por foto, o solo un recuento y un indicador de “fotos de instalación obligatorias completas”. Mi preferencia es la opción más ligera: mantener la org ligera, y dejar que el almacén de fotos sea dueño de su índice y su retención.
  • Las lecturas de GPS (200,000 al día) se quedan en FleetLink y van a Snowflake; la org solo necesita la última posición para la página de seguimiento y el mapa del despachador.
  • Los ocho años de historial de RouteDesk (unos 5 millones de entregas) van al almacén de datos o a un archivo, accesibles para las reclamaciones. Qué entra en la org, si algo entra, es una decisión de migración para la Parte 2.
Checkpoint 1: lo que yo diseñaría El panorama del Checkpoint 1, lo que yo diseñaría, en los mismos lugares que el panorama actual del capítulo 4. Las personas a la izquierda: 45 coordinadores de despacho en 9 centros de distribución de los socios, unos 700 miembros de los equipos de entrega en 330 camiones y 100 personas de atención y de oficina, todos usando Salesforce; unos 300 usuarios de los socios minoristas en 3 socios, que usan el portal de socios minoristas; y alrededor de un millón de destinatarios al año, que abren una página de seguimiento mediante un enlace, sin inicio de sesión, y llaman por teléfono a los agentes de atención. En el centro, una org de Salesforce en EE. UU. con Field Service, el proveedor de identidad corporativo encima, solo para el personal de oficina, y email-to-case, que trae los casos. Los tres socios minoristas, abajo a la derecha (Redrock por API REST y webhooks, Keystone por CSV por SFTP y Brightwave por EDI a través de una red de terceros), envían manifiestos a una sola capa de integración, que se diseña en la Parte 2, que hace un upsert en Salesforce por la clave del socio y devuelve el estado a cada socio. A la derecha: Salesforce envía eventos de estado a Snowflake, que guarda el historial de estados y los análisis; FleetLink, donde se queda el GPS en bruto, envía a Salesforce solo la última posición; Salesforce envía los recuentos de entregas a través de la integración al ERP de finanzas, que factura a los socios y paga a los equipos; las fotos, de 4 a 5 millones al año, van de la app de los equipos a un almacenamiento de fotos fuera del núcleo; y RouteDesk se retira a un archivo con sus 8 años de historial. Salesforce envía el mensaje del día anterior, con un enlace, a través del proveedor de SMS y correo. Debajo: la misma empresa que en el capítulo 4; se acabaron el volver a teclear y la hoja de cálculo; el historial y las fotos viven fuera del núcleo. ARRIBA: IDENTIDAD, APPEXCHANGE, WEB PERSONAS DERECHA: SISTEMAS INTERNOS ABAJO: CANALES DE CLIENTES ABAJO A LA DERECHA: SOCIOS Y PROVEEDORES Coordinadores de despacho 45, en 9 CD de los socios Equipos de entrega ~700 en 330 camiones Personal de atención y de oficina 100: servicio, operaciones, finanzas Usuarios de los socios minoristas ~300 en 3 socios Destinatarios ~1 millón al año IdP corporativo SSO solo para el personal de oficina Portal de socios minoristas Página de seguimiento INTEGRACIÓN Snowflake historial de estados, análisis FleetLink el GPS en bruto se queda aquí ERP de finanzas factura a los socios, paga a los equipos Almacenamiento de fotos 4–5 millones al año, fuera del núcleo Archivo de RouteDesk retirado; 8 años de historial Teléfono agentes de atención Correo electrónico email-to-case Proveedor de SMS y correo mensaje del día anterior, con un enlace Redrock API REST, webhooks Keystone CSV por SFTP Brightwave EDI a través de una red de terceros Salesforce Field Service, una org en EE. UU. un enlace, sin inicio de sesión solo personal de oficina llamadas casos entrantes manifiestos entrantes estado saliente manifiestos entrantes estado saliente manifiestos entrantes estado saliente upserts, clave del socio eventos de estado solo la última posición recuentos de entregas recuentos de entregas fotos, desde la app de los equipos día anterior, con un enlace Salesforce una comunidad personas identidad, apps, web un sistema interno un canal de clientes la capa de integración parte del sistema que abre la conexión; la etiqueta dice qué se mueve un certificado compartido: confianza, sin llamada directa La misma empresa que en el capítulo 4. Se acabaron el volver a teclear y la hoja de cálculo; el historial y las fotos viven fuera del núcleo. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Checkpoint 1: lo que yo diseñaría. Los mismos lugares que el panorama del capítulo 4 (El panorama de Steve Trucking), sin el volver a teclear ni la hoja de cálculo.

Quién ve qué, y quién necesita una licencia

Sección titulada «Quién ve qué, y quién necesita una licencia »
  • Los socios minoristas ven solo sus propias entregas (S2). Cada orden de trabajo lleva su socio minorista; los usuarios del portal ven las entregas de su socio, y los gerentes de centro de distribución solo las de su centro.
  • Los usuarios de los socios necesitan una licencia de portal que admita reglas de uso compartido y funciones: Customer Community Plus o Partner Community. Los asientos del estadio del capítulo 3: los asientos más baratos no tienen el uso compartido que necesita este diseño. Las dos licencias necesitan funciones para los usuarios externos, y Salesforce advierte que más funciones hacen más lenta la org (Experience Cloud User Licenses (opens in a new tab), en inglés). Una función por socio y por centro de distribución está bien; una función para cada tienda, no.

Conocimiento para el examen. Conoce qué licencias externas incluyen el uso compartido estándar: Customer Community Plus y Partner Community (con funciones para los usuarios externos), no Customer Community, que usa conjuntos de uso compartido (sharing sets).

  • Los destinatarios no necesitan licencia. La página de seguimiento muestra una entrega mediante un enlace con un token que caduca (S3), no con un inicio de sesión.
  • Vigila el sesgo (skew). Cientos de miles de órdenes de trabajo al año apuntando a tres o cuatro cuentas de socios es un sesgo de datos de cuenta. Una opción es una cuenta hija por centro de distribución bajo cada socio, lo que reparte los hijos en nueve o más; archivar las entregas completadas después del plazo de reclamaciones mantiene bajo el número de hijos activos por padre. La Parte 2 se ocupa de eso.

No crearía una cuenta personal para cada destinatario solo porque un destinatario es una persona. No colgaría un millón de contactos de tres cuentas. No construiría un objeto Delivery personalizado junto a la orden de trabajo de Field Service. No unificaría a los destinatarios entre socios. No pondría millones de fotos ni de lecturas de GPS en el almacenamiento principal. Y no llamaría golden record a un destinatario unificado a menos que de verdad hubiéramos tomado una decisión de datos maestros.

La Parte 1 fijó el esqueleto; la Parte 2 lo pone a prueba. La regla de LDV en el tercer año (las órdenes de trabajo, las citas de servicio y las partidas entran todos en territorio de gran volumen en dos o tres años), el diseño de consultas para las vistas de lista limitadas a cada socio, las tres integraciones de entrada y los tres flujos de estado, la migración de RouteDesk, las transacciones del día, y el diseño de seguridad detrás del portal. Steve Trucking también va a cambiar. Guarda este diseño; vas a volver a él.

  • Qué objetos estándar llevan el núcleo (aquí, los de Field Service), y qué objetos personalizados están de verdad justificados (aquí, uno).
  • La clave que empareja la línea de pedido de cada socio con una entrega, y por qué pertenece al socio.
  • Qué es el destinatario, según la relación que Steve Trucking tiene realmente con él.
  • Si unificar identidades, y dónde mezclar sale demasiado caro como para arriesgarse.
  • Qué se queda en la org, qué vive fuera del núcleo, y de qué licencias depende el diseño.