¿Cómo puede ofrecer siempre un servicio al cliente increíble? Aprenda cómo las personas, los procesos y la tecnología trabajando juntos pueden ayudarle a obtener constantemente reseñas de cinco estrellas.

¿Cómo puede ofrecer siempre un servicio al cliente increíble? Aprenda cómo las personas, los procesos y la tecnología trabajando juntos pueden ayudarle a obtener constantemente reseñas de cinco estrellas.
Hay una pequeña pero poderosa nueva característica lanzada en Invierno â24 que ha pasado desapercibida, ¡a pesar de lo ingeniosa que es! La vista de inteligencia para clientes potenciales y contactos es una gran manera para que los usuarios identifiquen de forma sencilla y fácil los clientes potenciales y clientes que necesitan atención. Esto les ahorrará tiempo, con menos necesidad de vadear […]
The post La vista de inteligencia para clientes potenciales y contactos de Salesforce appeared first on Salesforce Ben.
La vista de inteligencia para clientes potenciales y contactos de Salesforce appeared first on Salesforce Ben
Última actualización en October 29, 2023 por Rakesh Gupta Big Idea or Enduring Question: Cómo se asignan automáticamente los clientes potenciales recién creados a una cadencia de compromiso de ventas? Objetivos: Después de leer este blog, serás capaz de: Trabajar con el objeto ActionCadence para conocer una Cadencia. Asignar un compromiso de ventas
The post Asignar Automáticamente Nuevos Leads a una Cadencia de Compromiso de Ventas appeared first on Automation Champion.
La gestión de múltiples instancias de Salesforce es un escenario que podría enfrentar una empresa en crecimiento. Aquí, cada instancia de Salesforce contiene datos y procesos comerciales cruciales que pueden requerir consolidación. La situación más común en la que se requiere consolidación es el resultado de fusiones y adquisiciones. Aparte de las fusiones, las organizaciones pueden adoptar Salesforce en distintas etapas de crecimiento […]
La publicación Planificación de una fusión de organizaciones de Salesforce: los tres riesgos principales que se deben evitar apareció por primera vez en Salesforce Ben .
8256706222173 administradores, arquitectos, analistas de negocios, consultores
Seamos empleados por cuenta propia que exponemos una nueva idea a nuestros clientes, emprendedores que tratamos de atraer a nuevos inversores, o padres o maestros que tratamos que los niños estudien más, estamos siempre tratando de convencer a los demás. Es por eso que hoy más que nunca, hay que revisar todo lo que creemos […]
La inteligencia es por lo general vista como la habilidad para pensar y aprender, pero en un mundo rápidamente cambiante puede importar mas aquello que podamos repensar y desaprender. El psicólogo empresaria Adam Grant es un experto en abrir las mentes de otras personas y la propia. En el siguiente articulo basado en el libro […]
Ya sea que estés tratando de cambiar a una persona, transformar una empresa, o cambiar el modo en el que una industria en su totalidad opera, este es el articulo para ti, ya que te brindara un modo poderoso de pensar y ciertas técnicas que pueden conducirte a resultados extraordinarios, convirtiéndote en un catalizador. Todos […]
Todos nosotros excluimos, subestimados a un gran numero de personas en el trabajo incluso mientas sobrestimamos y promocionamos a otros, por encima de su novel de competencia. No solo es esto inmoral e injusto sino que es malo para la empresa. En este articulo encontraras la solución, en donde aprenderás el marco practico para la […]
La dirección y motivación en este artículo te ayudará a encontrar a un mentor, construir una red, establecer una reputación, destacarte de tu competidor e ir más allá para llegar a una carrera profesional y rentable. No necesitas tener un MBA para llevar adelante una empresa. No necesitas un título universitario. Todo lo que necesitas […]
La cultura de grupo es una de las mayores fuerzas que existen. Podemos percibir su presencia en los negocios de éxito, en los equipos que lideran los campeonatos y en las familias más prósperas, y enseguida notamos cuándo falta y cuándo se ha vuelto tóxica. Todos queremos implantar una cultura fuerte en nuestras respectivas organizaciones, […]
¿Qué hacen concretamente los mejores equipos, y qué hacen los responsables de dichos equipos para precisamente liderar y conseguir sostener esos altos niveles de rendimiento? Daniel Coyle, autor del libro The Culture Code, es uno de esos expertos, investigadores, asesores y divulgadores que acierta especialmente en la forma de concebir un modelo de trabajo. Daniel […]
¿Como podemos tomar mejores decisiones?. ¿Porque es que nos puede agradar o desagradar alguien mucho antes de llegar a conocerlo? ¿Porque desconfiamos de los extraños sin saber la razón? ¿Porque por otro lado damos mucho peso a la información que está frente nuestro mientras que no logramos considerar la información que está fuera de nuestro […]
Si el mundo ha cambiado, la forma de trabajar tampoco puede seguir siendo la que era antes de la revolución digital. El mundo de hoy no tiene nada que ver con el mundo en que vivieron los grandes creativos que admiramos. Para ellos era más sencillo evitar las distracciones y trabajar en relativa paz y concentración. En […]
¿Tú y tu pareja pelean sobre las mismas cosas una y otra vez? ¿Eres la clase de persona que evade los conflictos? De cualquier modo, no has aprendido el arte de la discusión productiva. La pelea no siempre tiene que ser mala. Si lo haces bien, pelear puede realmente unir más a ti y a […]
`The Power of When” apunta a enseñarte cuando es el mejor momento para ti de hacer algo, ya sea que estés tomando el café de la mañana, dándote una ducha o comiendo tu almuerzo. No hagas el error: Michael Breus no es ni físico ni mago; es un psicólogo con especialidad en desórdenes del sueño. […]
En un estudio de investigación realizado por alumnos universitarios una década atrás, más de un tercio de los participantes contestaron que casi nunca o nunca negociaban con otras personas. Sin embargo, la verdad es completamente diferente. Todo en la vida es negociable, bajo cualquier condición, en todo momento, argumentan Peter B. Stark y Jane Flaherty. […]
Criar niños es fácil, hasta que finalmente decides tener uno. Luego es una experiencia muy diferente: de repente te das cuenta que nunca fuiste realmente el espero que pensase serias y que el consejo que le habías dado a tus amigos durante años en la teoría realmente no funciona en la práctica. Las razones para […]
A medida que crece la economía mundial más empresas están ayudando a la expansión internacional. Esto se refiere a la confianza en la fuerza de trabajo dispersa. Se ha transformado en algo muy común el tener empleados remotos en diferentes lugares. La mayoría de los empleados prefieren trabajar con empresas que ofrezcan trabajo remoto. Considerando […]
¿Recuerdas a la persona que Leonardo Dicaprio interpretó en la película de Hollywood The Wolf of Wall Street’? Aquel que ayudaba a miles de jóvenes niños a convertirse en hombres de ventas mundiales? En Way of the Wolf, revela lo que se trata su sistema de entrenamiento mágico The Straight Line, y cómo puede brindarte […]
Última actualización el 1 de noviembre de 2023 por Rakesh Gupta
Después de leer este blog, podrás:
👉 Anteriormente, escribí un artículo sobre Sales Engagement. ¿Por qué no echarles un vistazo mientras lo haces?
A Benjamin Moore , administrador de Salesforce en Gurukul On Cloud (GoC), se le ha asignado una tarea específica. Siempre que un vendedor por teléfono o el equipo de ventas internas elimine un cliente potencial (cliente potencial) de la cadencia de participación de ventas, asegúrese de la creación automática de una tarea con estos detalles:
La adquisición de clientes potenciales es un paso importante en cualquier esfuerzo de marketing. Una vez que los equipos de ventas internas tienen una lista de clientes potenciales, están listos para emprender actividades de divulgación. ¡Pero espera! Demos un paso atrás y reflexionemos sobre las siguientes preguntas como preámbulo para comprender la cadencia de ventas: (1) ¿Con qué frecuencia desea que sus representantes se comuniquen con los clientes potenciales? (2) ¿Cómo le gustaría que se comunicaran con el cliente potencial, mediante llamada o correo electrónico? (2) ¿Cómo desea capturar la disposición de las llamadas? (3) etcétera.
La cadencia de participación de ventas es una línea de tiempo de las actividades y métodos de ventas que siguen los representantes de ventas para atraer clientes potenciales. El propósito de una cadencia es facilitar que el representante de ventas interno cumpla con el cronograma y garantice que los prospectos no sean olvidados, es decir, que nada se pierda. Por ejemplo, si ofrece una consulta gratuita en su sitio web y alguien completa un formulario, la cadencia incluiría una lista de las cosas que hace para programar la primera reunión.
Una cadencia de ventas normalmente incluye tres puntos de contacto diferentes: correo electrónico , redes sociales y llamadas/correos de voz . La cadencia, para diferentes embudos de ventas, puede diferir, pero siempre debe incluir una combinación de las tres formas de comunicación mencionadas.
Una cadencia de participación de ventas se parece a esto:
En otras palabras, las cadencias de participación de ventas difieren de un tipo de proceso de ventas a otro, pero la idea básica sigue siendo la misma: toques consistentes y secuenciales.
La captura de datos modificados (CDC) es una técnica utilizada en bases de datos y sistemas de procesamiento de datos para identificar y capturar los cambios realizados en los datos. El objetivo principal de CDC es garantizar que los cambios en los datos de origen (como inserciones, actualizaciones y eliminaciones) puedan detectarse y procesarse fácilmente en sistemas posteriores.
La captura de datos de cambios (CDC) en Salesforce es una función que le permite realizar un seguimiento y capturar los cambios realizados en los datos de Salesforce. Proporciona una manera de capturar y entregar cambios en los datos, tanto en tiempo real como de manera histórica, lo que facilita la sincronización de datos entre sistemas y mantiene una copia actualizada de los datos de Salesforce en almacenes de datos externos. Aquí hay un desglose de de qué se trata la captura de datos modificados en Salesforce:
data/ObjectNameChangeEvent
, donde ObjectName
es el nombre del objeto de Salesforce, como Account
o Contact
.Los administradores pueden habilitar la captura de datos modificados para objetos específicos en Salesforce a través del menú de configuración. Una vez habilitados, los cambios en esos objetos comenzarán a generar eventos de cambio.
Change Data Capture en Salesforce proporciona una manera poderosa de mantener los sistemas externos sincronizados con los datos de Salesforce sin la necesidad de una lógica de integración compleja o sondeos frecuentes. Es especialmente útil para análisis en tiempo real, sistemas de respaldo y otras aplicaciones que requieren datos actualizados de Salesforce.
Antes de profundizar en la solución funcional real, permítame guiarlo a través de algunas soluciones potenciales que pueden parecer las rutas más fáciles y rápidas a primera vista. Sin embargo, existen razones específicas por las que estas soluciones no serán viables.
Si tiene experiencia en la gestión de clientes potenciales y cadencias de participación de ventas, es posible que haya notado que Salesforce almacena ActionCadenceId (el ID de la cadencia asignada al cliente potencial) en el registro del cliente potencial. En particular, Salesforce establece ActionCadenceId en nulo cuando un cliente potencial se elimina/completa manualmente de la cadencia de participación de ventas.
Es posible que esté contemplando la idea de implementar un flujo posterior al guardado activado por registro (no conozco el flujo posterior al guardado, consulte este artículo) en el objeto principal y aplicando las siguientes condiciones:
Sin embargo, encontrará un obstáculo al intentar guardar el flujo. Resultaría en un mensaje de error que indica:
Sí (resultado de la decisión): el campo $Record.ActionCadenceId contiene un valor derivado que no se admite. En un flujo programado o activado por registro, $Record no admite algunos campos estándar cuyos valores se derivan. Elimine el campo $Record.ActionCadenceId.
Ahora comprende por qué no podemos utilizar este enfoque para abordar el caso de uso empresarial mencionado anteriormente.
Nota : Los campos Cadencia y Cadencia asignado en registros de clientes potenciales, contactos y cuentas personales no se pueden utilizar como criterios de campo en reglas de flujo de trabajo, flujos y Generador de procesos.
Inicialmente, esta solución puede parecer una opción más prometedora que la anterior, y quizás se pregunte por qué no se consideró antes. Desafortunadamente, Salesforce impone restricciones, lo que impide el uso de flujos activados por registros y activadores de Apex en este tipo de SObject en particular ( ActionCadenceTracker ).
Lamentablemente, esto marca el final de esta solución.
La tercera opción es crear un flujo activado por programación para el objeto ActionCadenceTracker , lo cual ciertamente es factible. Sin embargo, es fundamental tener en cuenta que esta solución no es en tiempo real.
Puede configurar el flujo activado por programación para que se ejecute a intervalos , como cada minuto o cada hora, pero tiene sus limitaciones. Recomiendo encarecidamente considerar la escalabilidad al optar por esta solución.
Si bien este enfoque puede ser adecuado para ciertos escenarios, no sirve como una solución viable para el caso de uso empresarial específico mencionado, que requiere notificaciones en tiempo real.
La pregunta ahora es: ¿Cuál es la mejor solución para el caso de uso empresarial mencionado anteriormente? Empecemos.
La mejor solución para el caso de uso empresarial determinado es utilizar Change Data Capture (CDC) en el objeto ActionCadenceTrackerChangeEvent . Si no está familiarizado con Change Data Capture (CDC), le recomiendo encarecidamente hacer una pausa aquí y completar este módulo de Trailhead.
Antes de continuar, debes familiarizarte con el objeto ActionCadenceTracker en Salesforce. Representa un objetivo de cadencia activa.
Se crea un registro ActionCadenceTracker cuando agrega un objetivo a una cadencia. Utilice ActionCadenceTracker para obtener información sobre un objetivo de cadencia de carrera, incluido su estado, paso actual, cliente potencial asignado y motivo de finalización.
Nombre del campo | Detalles |
Razón de finalización | El motivo por el que el objetivo completó la cadencia. Este campo contiene un valor si el estado del objetivo es Completo. Los valores posibles son:
|
Estado | El estado del rastreador de cadencia de acción actual. Los valores posibles son:
|
ID de destino | El ID del objetivo (Contacto, Cliente potencial) que está asignado a esta cadencia de acción. |
Hay tres pasos para resolver los requisitos comerciales de Benjamin utilizando Change Data Capture (CDC), un Apex Trigger y un flujo de inicio automático . Debemos:
Al final, Benjamin's Flow se verá como la siguiente captura de pantalla:
Una vez que todo se vea bien, realice los pasos a continuación:
¡Casi llegamos! Una vez que todo se vea bien, haga clic en el botón Activar .
Tiene la opción de recibir notificaciones de cambios en la plataforma Lightning suscribiéndose para cambiar eventos a través de activadores de Apex. Si bien los activadores de Apex para eventos de cambio comparten similitudes con los de los objetos estándar de Salesforce, también existen distinciones notables. Al igual que los activadores de Apex tradicionales para objetos de Salesforce, usted crea un activador de evento de cambio para el evento de cambio específico asociado con el objeto de Salesforce. Vale la pena señalar que en este contexto solo se admiten activadores posteriores a la inserción.
El desencadenador de evento de cambio se activa cuando se recibe uno o un lote de eventos de cambio. A diferencia de los activadores de objetos, los activadores de eventos de cambio se ejecutan de forma asincrónica una vez completada la transacción de la base de datos. La ejecución asincrónica hace que los desencadenadores de eventos de cambio sean ideales para procesar la lógica empresarial que consume muchos recursos y al mismo tiempo mantener la lógica basada en transacciones en el desencadenador de objetos. Al desacoplar el procesamiento de cambios, los desencadenantes de eventos de cambio pueden ayudar a reducir el tiempo de procesamiento de las transacciones.
Los desencadenantes de eventos de cambio tienen estas características.
desencadenar ActionCadenceTrackerAsyncTrigger en ActionCadenceTrackerChangeEvent (después de insertar) { ActionCadenceTrackerAsyncTriggerHandler.handleChangeEvent(Trigger.new); }
clase pública ActionCadenceTrackerAsyncTriggerHandler { handleChangeEvent vacío estático público (List<ActionCadenceTrackerChangeEvent> changeEvents) { Set<Id> actionCadenceTrackerIds = nuevo Set<Id>(); for(evento ActionCadenceTrackerChangeEvent: eventos de cambio) { encabezado EventBus.ChangeEventHeader = evento.ChangeEventHeader; if (header.changetype == 'ACTUALIZAR' && event.CompletionReason == 'Manualmente eliminado') { Lista<Id> recordIds = header.getRecordIds(); actionCadenceTrackerIds.addAll(recordIds); } } if(!actionCadenceTrackerIds.isEmpty()) { encontrarRelatedLeads(actionCadenceTrackerIds); } } findRelatedLeads vacío estático privado (Set<Id> actionCadenceTrackerIds) { Lista<Lead> AssociatedLeads = [Seleccione ID, OwnerId de plomo donde Id IN (SELECCIONAR targetId DESDE ActionCadenceTracker DÓNDE ID EN: actionCadenceTrackerIds AND Target.Type = 'Cliente')]; if(!asociadosLeads.isEmpty()) { runFlow (líderes asociados); } } runFlow vacío estático privado (List<Lead> leads) { Mapa<Cadena, Objeto> params = nuevo Mapa<Cadena, Objeto>(); params.put('varR_Leads', clientes potenciales); Flow.Interview.CadenceTracker myFlow = nuevo Flow.Interview.CadenceTracker(params); miFlow.start(); } }
De ahora en adelante, si un usuario elimina un cliente potencial de la cadencia de participación de ventas, Change Data Capture (CDC) publicará un evento. Más adelante, un activador de Apex y un flujo crearán una tarea para el propietario principal.
¡Quiero saber de ti!
¿Qué es lo que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntete libre de compartir en los comentarios a continuación.
Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .
El enlace a la publicación original, lo encontrarás al final de este artículo.
…
Model Builder, parte de Einstein Copilot Studio, es una plataforma fácil de usar que le permite crear y poner en funcionamiento modelos de IA en Salesforce. Model Builder es capaz de integrarse profundamente con plataformas de IA externas, como Google Cloud Vertex AI y Amazon SageMaker, para que pueda crear, entrenar e implementar modelos de IA personalizados de forma externa utilizando datos de Salesforce Data Cloud.
Salesforce anunció previamente el lanzamiento de Model Builder con Amazon SageMaker en agosto de 2023. Hoy, nos complace anunciar que los modelos de Google Vertex AI ahora están disponibles de forma general en Model Builder. Como parte de esta última versión, Model Builder ahora admite la autenticación mediante las credenciales de la cuenta del servicio de Google, así como la ingestión de datos en streaming.
Estamos entusiasmados con esta nueva innovación de la asociación ampliada de Salesforce con Google Cloud, que consideramos que tiene un enorme potencial para los desarrolladores. Como enfatizó Kaushal Kurapati, vicepresidente senior de Producto, IA y Búsqueda de Salesforce:
“Con esta asociación con Google Cloud, Model Builder ofrece una manera conveniente para que los clientes aprovechen sus modelos Vertex AI en sus fuentes de datos, flujos de trabajo y aplicaciones de Salesforce y brinden experiencias personalizadas, continuando con la visión de construir una plataforma abierta de Salesforce AI con un ecosistema modelo robusto”.
Model Builder le permite conectarse fácilmente a modelos predictivos externos, como los de un proveedor de modelos externo o su propio modelo propietario, y utilizarlos en el flujo de trabajo en Salesforce. Por ejemplo, puede utilizar modelos predictivos para calificar clientes potenciales, recomendar productos o detectar la deserción.
La capacidad BYOM de Model Builder le permite integrar fácilmente su modelo con Data Cloud para acceder a predicciones e información en tiempo real, y utilizar esa información de varias maneras, como enriquecer perfiles de clientes, crear segmentos y personalizar la experiencia del usuario final en diferentes canales.
Estos son algunos de los beneficios de usar un modelo de Google Cloud Vertex AI con datos de Data Cloud en Model Builder:
Para obtener más información, mire nuestro breve vídeo .
En esta sección, analizamos brevemente el flujo de trabajo de la aplicación utilizando Model Builder.
En el flujo de trabajo que se muestra arriba, el conector Python brinda a Vertex AI acceso seguro a los objetos de Salesforce Data Cloud. Después de la autenticación, los especialistas en datos pueden explorar y preparar datos, y realizar tareas de ingeniería de características para el desarrollo y la inferencia de modelos de IA utilizando la plataforma Vertex AI.
Tenga en cuenta que si se realiza una autenticación basada en clave API, se necesita una puerta de enlace API delante del punto final de Vertex AI.
La versión más reciente de Model Builder ahora permite utilizar las credenciales de la cuenta del servicio de Google para la autenticación. Esto se suma a los métodos de autenticación JWT y basados en claves existentes. Para utilizar un flujo de token al portador JWT, ingrese su correo electrónico de la cuenta de servicio, ID de clave privada y clave privada de su cuenta de Google Cloud como se muestra a continuación.
La última versión de Model Builder le permite activar automáticamente una inferencia cuando los datos asignados a la variable de entrada del modelo se cambian en el objeto del modelo de datos de origen (DMO). También ofrecemos inferencia por lotes, pero debe hacer clic en el botón Actualizar manualmente para activar nuevas inferencias. Con la inferencia de transmisión, las nuevas inferencias se activan solo cuando hay un cambio en la variable de entrada.
Para habilitar la inferencia de transmisión, deberá marcar la casilla Sí en ¿Actualizar modelo cuando se actualizan los datos? Como se muestra abajo.
También puede especificar cuáles de las funciones de entrada deben actualizarse seleccionando Sí en el menú desplegable Actualizar puntuación .
Hay dos formas de consumir predicciones: usar acciones invocables en Flow y Apex, o usar Query API para realizar análisis ad hoc.
A continuación se muestra un ejemplo de cómo utilizar acciones invocables para modelos de Model Builder en Flow. Una vez que tenga un modelo activado en Model Builder, seleccione Nueva acción → Nube de datos y luego haga clic en el nombre del modelo deseado.
La captura de pantalla siguiente muestra un flujo de ejemplo que utiliza una acción invocable para crear recomendaciones de productos para un cliente. Aquí, un administrador usa Flow Builder para recorrer los registros individuales unificados y verificar si se realizó una compra reciente. Si se realizó la compra, la acción invocable obtiene la inferencia del modelo de Model Builder y recomienda el siguiente mejor producto a un cliente.
Esta acción invocable también se puede invocar en Apex. Vea el ejemplo a continuación.
<dx-code-block title language="apex" code-block="Invocable.Action action = Invocable.Action.createCustomAction('cdpGetMlPrediction', 'EinsteinStudio_model_name');
action.setInvocationParameter('param_variable_1', '10');
action.setInvocationParameter('param_variable_2', '20');
action.setInvocationParameter('param_variable_3', '30');
List results = action.invoke();
if (results.size() > 0 && results[0].isSuccess()) { System.debug(‘Result is: ‘ + results[0].getOutputParameters().get(‘param_score’));
} else { System.debug(‘Error message’ + results[0].getErrors());
} «>
Para obtener instrucciones sobre el uso de acciones invocables en Flow y Apex, consulte la Ayuda de Salesforce .
Query API es otra forma rápida de obtener puntuaciones de predicción para datos que residen en Data Cloud. Con Query API, puede utilizar el punto final de inferencia y llamar a funciones de predicción para probar el punto final. Vea el ejemplo a continuación.
Para obtener instrucciones sobre el uso de acciones invocables en QueryAPI, consulte la Ayuda de Salesforce .
Model Builder es una plataforma de IA fácil de usar que permite a los equipos de ingeniería y ciencia de datos crear, entrenar e implementar modelos de IA utilizando plataformas y datos externos en Data Cloud. Las plataformas externas incluyen Google Cloud Vertex AI, Amazon SageMaker y otros servicios de IA predictivos o generativos. Una vez que esté listo, podrá utilizar los modelos de IA en tiempo real para impulsar cualquier aplicación de ventas, servicios, marketing, comercio y otras aplicaciones en Salesforce.
Para obtener más información sobre cómo puede mejorar su estrategia de IA utilizando Model Builder, asista a nuestro seminario web gratuito con expertos en IA de Salesforce y Google Cloud.
Daryl Martis es el director de producto de Salesforce de Einstein. Tiene más de 10 años de experiencia en planificación, creación, lanzamiento y gestión de soluciones de clase mundial para clientes empresariales, incluidas AI/ML y soluciones en la nube. Síguelo en LinkedIn o Twitter .
Ashish Thapliyal es director sénior de producto en Salesforce y actualmente dirige varias áreas de productos de la plataforma Einstein AI. Síguelo en LinkedIn o Twitter .
Añadir a holgura Suscríbete a RSS
Enlace de Whatsapp para el grupo Salesforce CPQ
¿Está listo para profundizar en los métodos de fijación de precios de Salesforce CPQ, el modelo de cascada de precios y los descuentos de CPQ? Entenderemos los precios de Salesforce CPQ y abordaremos las preguntas de la entrevista con la ayuda de las deliciosas ofertas de Domino. 🤤📊🍕
¿Cuáles son los métodos de fijación de precios en Salesforce CPQ?
¿Cuál es el precio de lista en Salesforce CPQ?
El precio de lista es el precio que se recupera de la entrada del libro de precios. Una parte importante del precio de lista es la entrada en el libro de precios, ya que los precios se invocan desde el libro de precios. Cada producto debe tener una entrada en el libro de precios; de lo contrario, el producto no aparecerá en la página de selección del editor de líneas de cotización.
Por ejemplo, Domino's tiene su nueva pizza “AI Extravaganza”, con un precio de $24 en su lista de precios CPQ. Ese es nuestro precio de lista. Ahora, en “Techie Night”, ofrecen un 20% de descuento para todos los entusiastas de la tecnología. Salesforce CPQ toma el precio de lista de $24, calcula el descuento del 20 % y al cliente se le ofrece la pizza a $19,20. Pero sin que la entrada del libro de precios de lista establezca el precio de lista.
¿Cuál es el precio de costo?
El precio de costo se utiliza cuando un producto cuesta una cantidad específica para obtenerlo, luego puede agregar el precio de costo y agregar el precio de margen al producto. El margen de beneficio se puede negociar entre los representantes de ventas y el cliente. El precio de costo es el precio que se completa en el precio especial. campo.
Imagine la nueva pizza “AI Extravaganza” de Domino's. Los ingredientes, la mano de obra y los costos generales suman hasta $15 por pizza: ese es nuestro precio de costo. Ahora, Domino's quiere una parte de las ganancias, por lo que añaden un margen de beneficio. Digamos que lo aumentan en $9, lo que hace que el precio de lista sea de $24 (el precio que ves en el menú).
¿Qué es el precio por bloque?
Los precios en bloque son los precios que se actualizan en función de las cantidades del producto comprado. Por ejemplo, un paquete de 1 a 10 unidades costará 10 $, 10 a 20 unidades costará 18 $ y así sucesivamente.
Para configurar el precio por bloque necesitamos actualizar los 4 datos.
Nombre: establezca el nombre para bloquear el método de fijación de precios.
Límite inferior: la cantidad más baja para el rango de cantidades.
Límite superior: la cantidad más alta para el rango de cantidades.
Precio: Precio que se configurará para el rango de cantidad determinado.
Nota: El límite superior del precio de un bloque y el límite inferior del precio del siguiente bloque deben ser iguales.
Entendamos con la ayuda del escenario de Dominos, imaginemos el precio en bloque como la oferta especial de Domino's en sus pizzas, pero en lugar de "Compre 1, obtenga 1 gratis", es más como "¡Compre más, ahorre más!". Este enfoque se utiliza en Salesforce CPQ para alentar a los clientes a comprar en mayores volúmenes reduciendo el precio unitario a medida que aumenta la cantidad.
Digamos que Domino's está vendiendo su pizza "AI Extravaganza" e introduce una estrategia de precios en bloque para impulsar las ventas:
– **Nombre**: “Acuerdo en bloque de extravagancia de IA”
– **Límite inferior**: 1 (número mínimo de pizzas)
– **Límite superior**: 10 (número máximo de pizzas antes del siguiente bloque)
– **Precio**: $24 por pizza
Entonces, si pides entre 1 y 10 pizzas “AI Extravaganza”, cada una te costará $24. Pero Domino's quiere incentivarlo a pedir más para sus reuniones tecnológicas o noches de juegos, por lo que presenta lo siguiente:
– **Límite inferior del siguiente bloque**: 11
– **Límite superior del siguiente bloque**: 20
– **Precio del siguiente bloque**: $22 por pizza
Con esta oferta, si pides de 11 a 20 pizzas, el precio baja a $22 cada una. Los asistentes están contentos porque hay mucha pizza y Domino's está encantado con el pedido más grande. ¡Es beneficioso para todos!
Entonces, el precio por bloque es como desbloquear descuentos por volumen: cuanto más pides, más barata se vuelve cada pizza.
¿Qué es el porcentaje del total?
El porcentaje del total se calcula en función del porcentaje de la suma de todos los demás productos que se compran. Por ejemplo, la propina por una cuenta en un restaurante se calcularía en esta categoría.
Para implementar el porcentaje del total, necesitamos actualizar los siguientes campos en los productos:
Método de fijación de precios: configúrelo en "Porcentaje del total"
Porcentaje de la base total: este campo dice en qué campo de precio debemos implementar el porcentaje del total.
Anulación de precio de opción: este precio funcionará solo en el producto del paquete. Las opciones del producto son la opción del paquete. Puede anular el precio del producto si se vende de forma independiente y junto con el paquete.
¡Sumerjámonos en el concepto de “porcentaje del total” con un delicioso escenario de Domino!
Imagina que estás organizando una gran noche de juegos. Entonces, pides una variedad de pizzas, guarniciones y postres, suficiente para satisfacer los diversos antojos de tus amigos. Aquí hay un desglose de su pedido:
5 pizzas a $15 cada una | $75 |
4 órdenes de pan de ajo a $5 cada una | $20 |
3 pasteles de lava a $6 cada uno | $18 |
Total | $118 |
Las bebidas son una entidad separada. | |
6 botellas de refresco a $2.50 cada una | %15 |
Así es como se integra en Salesforce CPQ:
Método de fijación de precios: seleccionaron "Porcentaje del total". Es dinámico y cambia con sus opciones y porciones de alimentos.
Porcentaje de la base total: se define como la “factura total de alimentos”, que es el costo de pizzas, guarniciones y postres, por un total de $113. Tus refrescos están fuera de esto.
Anulación de precio de opción: normalmente, una botella de cola de Domino's cuesta $2,50, pero usted pidió el "¡Combo!" ¡Este privilegio combinado reduce el costo de los refrescos a $1.80 por botella, lo que le permite ahorrar $4.20 en bebidas!
Total
El “impuesto de fiesta” es el 10% de $113, por lo que son $11,30. El costo total de la comida fue de $113, las bebidas fueron de $15 y con el descuento en bebidas debido a la oferta "Combo", restas $4.20 y luego sumas tu "Impuesto de fiesta" de $11.30. Entonces, ¡el total general de la noche es $135,10!
¿Explica el concepto de “precio de opciones”?
Imagina que estás organizando una fiesta de pizza y Domino's tiene esta oferta llamada "Paquete de fiesta de pizza", que incluye pizzas, guarniciones y bebidas.
Así es como funciona:
Precio opcional: en el “Paquete para fiestas de pizza”, el pan con ajo no cuesta $5; ¡cuesta solo $ 3,75! Obtiene un recorte de precio porque está en un paquete.
Pasos:
1. Primero, agrega pan de ajo a su carrito; sigue siendo $5.
2. Luego, eliges el “Paquete Pizza Party” y el pan de ajo en tu paquete ahora tiene un precio de $3.75.
Lo que sucede aquí, debido al concepto de Precio de Opción, es que el sistema verifica si el pan con ajo es parte del “Paquete de Pizza Party”. entra en vigor el precio con descuento de $ 3,75, como se especifica en la opción del paquete.
¿Explicar las limitaciones en el precio de las opciones?
El precio de la opción no admite monedas múltiples, por lo que solo es posible definir el precio de anulación en una sola moneda.
¿Explicar los precios contratados en Salesforce CPQ?
Imagine que Domino's tiene una empresa cliente leal, “Pizza Lovers Texas Inc.”, una empresa local que pide pizzas para su personal todos los viernes. Dado que realizan pedidos con tanta frecuencia y al por mayor, Domino's quiere ofrecerles una oferta especial.
Así es como funciona:
1. Normalmente, una pizza vegetariana grande cuesta $15. Pero para Pizza Lovers Texas, Domino's establece un precio contratado de 12 dólares por pizza, un gesto de lealtad.
¡Consejos profesionales sobre precios contratados! 🍕✨
1. No hay ofertas dobles: si Pizza Lovers Texas Inc. tuviera dos precios contratados diferentes para la misma pizza vegetariana, un contrato la ofrece a $12 y otro anterior a $14. El sistema Salesforce de Domino no sabría cuál debo elegir. Para evitar esto, CPQ se asegura de tener solo UN precio contratado por producto para cada cuenta.
2. Excepciones de precios especiales: los productos que utilizan métodos de fijación de precios, precios en bloque o porcentaje del precio total, no funcionan con el precio contratado.
3 Asuntos familiares: si las Cuentas están vinculadas por una relación padre-hijo, entonces, de forma predeterminada, todos los hijos heredan el Precio Contratado creado en la Cuenta Padre.
Digamos que PizzaLovers Texas Inc. es parte de un imperio más grande, "PizzaLovers Universe", con subsidiarias como "PizzaLovers Chicago" y "PizzaLovers Bay" instaladas en diferentes ubicaciones. Domino's establece un precio contratado con la empresa matriz, "PizzaLovers Universe". Salesforce CPQ aplica automáticamente este precio contratado a todas las subsidiarias de PizzaLovers porque, en el mundo de la pizza, la familia está unida.
¿Explique el caso de uso de 'Ignorar precios contratados por los padres'?
¿Qué pasa si “PizzaLovers Chicago” negocia un trato exclusivo y diferente porque piden el doble cada viernes? Domino's simplemente cambia la opción "Ignorar precios contratados de la empresa matriz" a verdadero en esa cuenta, asegurando que "PizzaLovers Chicago" obtenga su oferta única, mientras que el resto aún se beneficia del precio contratado de la empresa matriz.
¿Explicar el precio “Anulación manual” en los precios de Salesforce CPQ? 🍕🔥
1.Crea tu propia pizza:
Dominos sabe que a veces quieres crear tu propia pizza. Por lo tanto, establecieron el campo "Precio editable" en verdadero en el producto "Crea tu propia pizza". Ingresa al Editor de líneas de cotización y puede ajustar el precio de lista según la cantidad y el tipo de ingredientes que elija para esa pizza.
2. Flexibilidad:
Domino's ofrece conexión Wi-Fi gratuita en sus restaurantes. El Wi-Fi normalmente se "vende" usando el "Método de precio = Lista", pero para reservas de grupos grandes, lo ofrecen como un beneficio, parte del "Método de precio = Porcentaje del total" con la factura total. Para cambiar entre estos métodos, hacen que el campo "Método de fijación de precios" sea editable en el Editor de líneas de cotización configurando "Método de fijación de precios editable" en verdadero para el producto (en este caso, Wi-Fi).
3. Ofertas personalizadas para comidas personalizadas:
A veces, un cliente negocia un trato que no se ajusta a los métodos de fijación de precios habituales. Domino's responde configurando 'Método de fijación de precios = Personalizado' en el Editor de líneas de cotización. Luego, el personal puede establecer manualmente un precio personalizado.
4. El lado sorpresa:
¿Alguna vez el personal de Domino's te recomendó pan de ajo con queso para pedir? A veces, lo agregan a su pedido como un artículo "Opcional" configurando el campo "Opcional" en verdadero en el Editor de líneas de cotización. No sumará su total, pero está ahí para que lo considere.
¿Explicar la cascada de precios?
¡Profundicemos en el concepto de cascada de precios en Salesforce CPQ! 💦
La cascada de precios de CPQ es un proceso/secuencia de varios pasos que utiliza diferentes precios y descuentos para llegar al precio neto (este es el campo de precio para el total de la línea de cotización/cotización).
Se describe como una cascada que se abre camino de arriba a abajo a través de los diferentes precios y descuentos/ajustes.
1. Precio de lista:
Este es el punto de partida: el precio del menú. Digamos que el precio de lista de la pizza grande “ExtravaganZZa” de Domino's es de $20, como figura en su Libro de precios.
2. Precio Contratado:
Domino's tiene clientes leales, como el "Pizza Club", que cenan todos los martes. Han negociado un 5% de descuento en todas las pizzas a través de un programa de fidelización. Entonces, para ellos, el precio contratado para “ExtravaganZZa” no es $20 sino que baja a $19 ($20 menos 5%).
3. Precio especial:
En ocasiones, Domino's ofrece una promoción especial de un día, como “Cheesy Thursday”, donde todas las pizzas tienen un 10% de descuento adicional. Esta promoción se aplica sobre el Precio Contratado o el Precio de Lista. Para el leal “Pizza Club”, esto reduce su pizza de $19 a $17,10 para ese día.
4. Precio prorrateado:
Supongamos que un miembro del club quiere comprar la mitad de un “ExtravaganZZa” y la mitad de un “Veggie Delight” (también con un precio de 20 dólares). Dominos calcula un Precio Prorrateado, donde toman el Precio Especial ($17.10) y lo multiplican por un factor considerando el escenario de mitad y mitad, digamos 0.5 por cada mitad, lo que equivale a $8.55 por cada porción de media pizza.
5. Precio Regular:
Si no hay un escenario especial, se aplica el Precio Regular. Es el Precio Prorrateado o vuelve al Precio de Lista original. Entonces $19 por “ExtravaganZZa”.
En el contexto del escenario de Domino's pizza con Salesforce CPQ, analicemos en detalle el precio para el cliente, el precio para el socio y el precio neto.
6. Precio al cliente:
Es el precio final que paga un consumidor directo después de considerar todos los descuentos aplicables y precios especiales. Para los miembros del “Pizza Club” que cenen un “Cheesy Thursday”, el precio al cliente por un “ExtravaganZZa” sería la tarifa especial de $17,10.
7. Precio del socio:
El Precio de Socio es una tarifa especial que se ofrece a los socios comerciales, generalmente más baja que la tarifa estándar, para adaptarse a los márgenes de beneficio de los socios. Por ejemplo, una aplicación de entrega de alimentos 'Uber' podría recibir el "ExtravaganZZa" a un precio de socio de $16, lo que les permitirá aumentarlo para sus clientes.
8. Precio Neto:
Son los ingresos que el vendedor se queda con la venta después de deducir todos los descuentos, bonificaciones o rebajas. El precio neto refleja los ingresos reales que obtiene el vendedor por el producto antes de restar sus costos internos.
En el caso de Domino's, el precio neto es la cantidad que Domino's registra como ingreso por la pizza "ExtravaganZZa" vendida al miembro del club el "Cheesy Thursday".
¿Cómo puede Salesforce CPQ ayudar a una empresa a gestionar la complejidad de los precios de manera más eficiente?
Con Salesforce CPQ, en lugar de crear múltiples libros de precios, la empresa puede tener un libro de precios estándar y aplicar excepciones y ajustes de precios según sea necesario. Por ejemplo, si hay un descuento del 20 % a nivel nacional en la pizza "Veg Extravaganza", esto se puede aplicar además del libro de precios estándar sin crear uno nuevo.
¿Pueden los representantes de ventas ofrecer productos como parte de un paquete a un precio diferente con Salesforce CPQ, aunque sea el mismo producto que figura en el libro de precios?
¡Sí! Salesforce CPQ permite configuraciones de precios avanzadas. Por ejemplo, una botella de “Coca-Cola” podría tener un precio de 2 dólares si se vende individualmente. Aún así, cuando forma parte del paquete “Family Feast” (que incluye pizzas, guarniciones y una bebida), el precio efectivo de la “Coca-Cola” dentro del paquete podría ser de solo $1,50. Este precio diferencial es posible dentro del mismo libro de precios debido a la flexibilidad de Salesforce CPQ.
¿Los representantes de ventas todavía necesitan libros de precios si utilizan Salesforce CPQ?
Sí, los libros de precios siguen siendo un elemento fundamental en Salesforce CPQ. Proporcionan los precios de referencia a partir de los cuales se derivan todos los ajustes, descuentos o precios especiales. Si un producto no tiene una entrada en el libro de precios, no aparecerá en la página de selección de productos y no se podrá agregar a una cotización. Incluso una entrada de $0 puede ser significativa, ya que puede indicar un artículo complementario o un producto cuyo precio final se determinará mediante los métodos de fijación de precios de Salesforce CPQ.
¿Qué deben recordar los representantes de ventas al crear nuevos productos en su sistema?
Domino's siempre debe asegurarse de que cualquier producto que introduzca tenga una entrada en el libro de precios asociada. Esta inclusión es crucial porque, sin ella, el producto no estará disponible para su selección al crear cotizaciones, incluso si está destinado a ser un artículo promocional con un valor de cero dólares.
Analicemos cómo funcionan los métodos de fijación de precios de Salesforce CPQ, centrándonos particularmente en la fijación de precios de opciones y su interacción con otros métodos, utilizando Domino's como nuestro escenario de ejemplo.
¿Para qué sirve la casilla de verificación incluida?
Si Domino's decide que el "Combo de fiesta" es una promoción especial y los artículos individuales que contiene (las opciones) no deben tener el precio habitual cuando se venden por separado, marcarán la casilla "Combinado" en Salesforce CPQ para este combo.
Esto significa que aunque una “Pizza Vegetariana” por sí sola suele costar $18, dentro del “Combo de Fiesta” tiene un precio de $0.00, al igual que los demás artículos del combo.
Descuentos en Salesforce CPQ
¿Qué es el descuento opcional en CPQ?
Domino's ofrece un paquete de productos, similar a una oferta combinada, llamado "Pizza Fiesta". Este paquete incluye una pizza grande “Veggie Extravaganza”, “Cheesy Bread” y un refresco.
¿Cómo configurar el descuento opcional en CPQ?
2. Identificación del artículo con descuento: Domino's decide que el “Cheesy Bread” será un 10% más barato si se pide como parte del paquete “Pizza Fiesta”, en comparación con su precio regular a la carta.
3. Configuración del descuento en Salesforce CPQ: el administrador de Domino's ingresa a Salesforce CPQ y navega hasta el producto del paquete principal "Pizza Fiesta" en el sistema. En la pestaña Relacionados, encontrarán todos los productos que forman parte de este paquete enumerados como Opciones de producto.
4. Aplicación del descuento opcional: el administrador ubica el “Pan con queso” dentro de la lista de Opciones de producto para el paquete “Pizza Fiesta”. Luego establecieron un precio específico que indica que cuando el “Cheesy Bread” es parte del paquete “Pizza Fiesta”, genera un descuento del 10% en este artículo en particular.
¿Explicar la función de descuento manual en Salesforce CPQ?
Imagine que un cliente habitual realiza un pedido al por mayor para una próxima fiesta. Pidieron 20 pizzas “vegetarianas”, cada una con un precio original de $10. Para premiar esta compra al por mayor, el responsable comercial ha decidido ofrecer un descuento especial. En lugar del precio normal, quieren que el costo total de las 20 pizzas sea de $150, en lugar de $200.
¿Qué es un campo no descontable en Salesforce CPQ?
Domino's está realizando una promoción especial en pizzas "Veggie Delight", y estas no son elegibles para más descuentos. El campo "No descontable" se marcaría para este producto en Salesforce CPQ, evitando cualquier descuento manual adicional en este artículo, independientemente del tamaño del pedido.
¿Cómo agregar valores de Unidad y Total a la lista de selección?
Nos dirigimos al objeto Línea de Cotización y creamos un nuevo campo de tipo lista de selección con el nombre AdditionalDiscountUnit y los valores que se muestran a continuación.
Ahora podemos elegir valores adicionales.
¿Explicar el descuento para socios y distribuidores en Salesforce CPQ?
Este método se utiliza cuando queremos darle un descuento de socio adicional al cliente. Los valores de estos descuentos se muestran en los campos Descuento de distribuidor y Precio unitario neto en el objeto Línea de cotización. Se calculan mediante las siguientes fórmulas:
Precio para socios = Precio para clientes – Descuento para socios
Precio neto = Precio de socio – Descuento de distribuidor
¿Explicar el descuento basado en el volumen?
Domino's quiere dar un incentivo a los clientes para que pidan más pizzas durante una copa mundial de cricket ofreciendo descuentos basados en el volumen.
1. Configuración del programa de descuentos:
El administrador de Domino's navega a la pestaña "Programaciones de descuentos" dentro de Salesforce CPQ y crea una nueva programación denominada "Especial del día del juego".
– Luego hacen clic en “Editar niveles” y configuran los niveles de volumen de la siguiente manera:
– 1-10 pizzas: 0% de descuento
– 11-20 pizzas: 10% de descuento
– 21-30 pizzas: 15% de descuento
– 31+ pizzas: 20% de descuento
– Guardan esta estructura de niveles, que dictará el descuento aplicado en función de la cantidad de pizzas solicitadas.
2. Aplicación del Programa de Descuentos a los Productos:
Luego, el administrador va a la pestaña "Productos" y selecciona las pizzas elegibles para esta promoción, como "Cheesy Extravaganza" y "Veggie Feast".
– En el campo “Programa de descuentos” de cada producto, seleccionan el programa “Especial del día del juego” que crearon previamente.
3. Realización de pedidos y cálculo de descuentos:
– Un cliente hace un pedido de 25 pizzas “Cheesy Extravaganza” durante el fin de semana del evento de cricket.
– Cuando el pedido ingresa al sistema, el comercial crea una nueva cotización y le agrega las 25 pizzas.
– Al hacer clic en “Calcular” en Salesforce CPQ, el sistema reconoce automáticamente que la cantidad cae en el nivel 21-30, aplicando así un descuento del 15% al pedido.
– El representante de ventas ve el precio regular y el precio con descuento uno al lado del otro, confirmando que el descuento por volumen se aplicó correctamente.
4. Verificación de los detalles del descuento:
Junto a la pizza "Cheesy Extravaganza" en la cotización, aparece un signo "$" para indicar que se aplica un programa de descuentos.
Al hacer clic en él, el representante de ventas (y cualquier otro usuario con los permisos necesarios) puede ver los niveles de descuento, lo que brinda transparencia sobre cómo se calculó el precio final.
¿Cuál es la estructura del programa de descuentos?
La estructura típica de un programa de descuentos implica la definición de niveles específicos. Cada nivel incluye el nombre del nivel, el límite inferior, el límite superior y el descuento (porcentaje/monto) aplicable en ese nivel.
Hay dos formas en que funciona el programa de descuentos: –
1. Programa de descuentos de losa:
Domino's quiere ofrecer un descuento de Slab durante un festival local. Establecieron los siguientes niveles:
– 1-5 pizzas: 0% de descuento
– 6-10 pizzas: 5% de descuento
– 11+ pizzas: 10% de descuento
Utilizando el método Slab, Salesforce CPQ calcula el descuento de la siguiente manera:
Las primeras 5 pizzas obtienen un 0% de descuento.
Las siguientes 5 pizzas (pizzas 6 a 10) reciben un 5% de descuento.
Las 2 pizzas finales (pizzas 11 y 12) reciben un 10% de descuento.
Cada “losa” o nivel de pizzas se descuenta según su respectivo tramo, no según la cantidad total del pedido.
2. Programa de descuentos por rango:
Domino's decide ofrecer un descuento de gama durante un evento deportivo importante. Establecieron los siguientes niveles:
– 1-7 pizzas: 0% de descuento
– 8-14 pizzas: 7% de descuento
– 15+ pizzas: 15% de descuento
Utilizando el método Rango, Salesforce CPQ calcula el descuento de la siguiente manera:
– El total de 10 pizzas se encuentran dentro del rango de 8 a 14.
– Por tanto, las 10 pizzas reciben un 7% de descuento.
El descuento se aplica al pedido total según el rango en el que se encuentra la cantidad total.
¿Cuáles son los pasos para configurar un programa de descuentos?
¿Cuáles son los pasos para crear niveles de descuento y asociar el programa de descuentos con el producto?
9. Haga clic en Guardar.
10. Abra la pestaña Producto desde la barra de navegación y seleccione el producto al que queremos asociar el Programa de Descuentos.
11. Haga clic en el botón 'Editar'.
12. En el campo Programación de descuentos, ingrese el nombre del programa de descuentos creado.
13. Haga clic en el botón 'Guardar'
Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .
El enlace a la publicación original, lo encontrarás al final de este artículo.
…
Light DOM es una función de Lightning Web Components que ha estado disponible de forma general en Lightning Experience, Experience Cloud, LWC OSS (código abierto) y todas las versiones de la aplicación móvil Salesforce desde Summer '23 .
Los componentes web Lightning, de forma predeterminada, se representan en DOM oculto , lo que proporciona una encapsulación y seguridad sólidas para sus componentes. Sin embargo, al mismo tiempo, evita el estilo global y bloquea las integraciones de terceros que introspeccionan el interior de sus componentes. Light DOM es una característica que se puede habilitar de forma granular en componentes seleccionados, de modo que Shadow DOM no los afecte.
Usemos un componente web Lightning muy simple como ejemplo.
<dx-code-block title language="html" code-block="
Hello Codey!
«>
En el ejemplo anterior, el DOM oculto predeterminado del componente evita que una regla CSS definida en el componente principal o el host alcance el elemento <p>
. Además, no permite que el código JavaScript externo al componente consulte el elemento <p>
mediante las API de consulta del navegador.
Para activar el DOM ligero para un componente, debe especificar el renderMode
ligero en su archivo JavaScript y la directiva de plantilla lwc:render-mode
en la etiqueta <template>
del componente. Ambos cambios son necesarios debido a la forma en que se compilan los componentes web Lightning.
<dx-code-block title language="html" code-block="
Hello Codey!
«>
Cuando activa el DOM claro en un componente, el marcado del componente se adjunta al elemento anfitrión en lugar de a su árbol de sombra. Luego puede acceder al marcado desde otros componentes de la página como cualquier otro contenido en el host del documento que no esté protegido por Shadow DOM.
Los componentes DOM ligeros permiten el uso de API de consulta de navegador estándar como querySelector
y querySelectorAll
. En este caso, en lugar de usar this.template.querySelector
, debes usar this.querySelector
.
O más simplemente, a menudo puedes usar la directiva lwc:ref
en ambos casos (componentes DOM sombreados y claros) y omitir el querySelector
.
<dx-code-block title language="html" code-block="
Hello Codey!
«>
Light DOM es una opción para cada componente individual. Sus efectos no se aplicarán a otros componentes a menos que también opten por participar. Tenga en cuenta que los componentes base siempre se representan en DOM oculto.
Recomendamos habilitar DOM ligero si tiene bibliotecas que necesitan acceder a los componentes internos mediante API de consulta de navegador estándar, aplicar estilos globales o necesita más flexibilidad para implementar las mejores prácticas de accesibilidad, siempre y cuando el componente no exponga datos confidenciales. Cubriremos estos casos de uso con más profundidad en la siguiente sección.
No recomendamos habilitar DOM ligero para un componente si ese componente aparece o funciona con datos confidenciales. El uso de DOM ligero elimina la encapsulación de DOM en sombra y expone los componentes al raspado de DOM. Por lo tanto, tenga en cuenta esta importante consideración.
Light DOM permite varios casos de uso que anteriormente no eran compatibles.
Light DOM permite el uso de bibliotecas que necesitan acceso a los componentes internos. Un buen ejemplo de esto son las bibliotecas de análisis utilizadas en los sitios de Experience Cloud, como Google Analytics, ya que necesitan acceso a los componentes internos para obtener mejores resultados.
Podemos probar este caso de uso, incluido el componente helloCodey
anterior, en un componente principal mascotChanger
de la siguiente manera.
<dx-code-block title language="html" code-block="
«>
Tenga en cuenta que, aunque el párrafo consultado pertenece al componente helloCodey
, podemos acceder a él con this.template.querySelector
, porque pertenece al DOM ligero secundario. Sin embargo, si el componente helloCodey
no tuviera habilitado el DOM ligero, querySelector
habría devuelto null
.
También puede acceder a los componentes internos del DOM ligero desde un script que se carga como un recurso estático en la página, siempre y cuando todos los componentes ancestros estén habilitados para el DOM ligero. Por ejemplo, en un sitio LWR Experience Cloud, que es DOM completamente ligero, puede agregar un recurso estático de JavaScript que encuentre los componentes internos helloCodey
de la siguiente manera.
Otro ejemplo en el que esto puede resultar útil es implementar componentes complejos y profundamente anidados. En ese caso, es posible que prefiera tener un único componente DOM de sombra en el nivel superior y componentes DOM claros dentro para evitar gastos generales. Por ejemplo, un componente de tabla de datos personalizado puede tener solo un gran componente DOM de sombra alrededor de todo, en lugar de una sombra para cada fila y celda de la tabla.
Esta implementación facilita la consulta de sus propios elementos desde el componente de nivel superior de su jerarquía y también la implementación de la accesibilidad. Además, hay una ligera mejora en el rendimiento en algunos casos de uso al usar DOM claro sobre DOM sombreado, lo que se debe principalmente a la sobrecarga de simplemente crear nodos de sombra adicionales.
Light DOM también facilita el estilo global, ya que permite que los estilos CSS caigan en cascada en el marcado del componente. Por ejemplo, un componente DOM ligero puede establecer un estilo que se carga y luego se aplica una vez para todos los componentes DOM ligeros de la página. La inyección de estilos globales a través de DOM ligero solo se admite en sitios de Experience Cloud, editor de contenido CMS o Sales Enablement.
Por ejemplo, definamos un componente colorChanger
de la siguiente manera.
<dx-code-block title language="html" code-block="
«>
El color de fondo azul se aplicará a los párrafos de todas las instancias del componente helloCodey
en la página, ya que está habilitado para DOM claro.
En la mayoría de los casos, no querrás que tu estilo se filtre a otros componentes. Eso todavía es posible para componentes DOM ligeros. Solo necesita colocar esas reglas de estilo en un archivo *.scoped.css
, para que tengan como alcance el componente DOM ligero. El CSS con alcance está escrito exactamente igual que el CSS normal, pero solo se aplicará a ese componente sin filtrarse.
Tenga en cuenta que si las reglas de estilo se cargan globalmente como recursos estáticos en una página de Lightning Experience o un sitio de Experience Cloud, se les quitará el alcance y se aplicarán tanto a los componentes DOM claros como también a los componentes DOM de sombra, ya que la sombra sintética no evitará que se filtren. Esta es una limitación que se solucionará una vez que la sombra nativa sea totalmente compatible (actualmente en Developer Preview ). Cuando la sombra nativa está habilitada, solo los componentes habilitados para DOM claro heredarán los estilos globales.
Light DOM permite que un componente haga referencia a la i
d
un elemento que vive en otro componente separado habilitado para Light DOM. Esto le permite vincular dos elementos utilizando los atributos i d
y aria
, lo que le otorga flexibilidad adicional para implementar las mejores prácticas de accesibilidad en sus proyectos. Mejoremos nuestro componente mascotChanger
para demostrar esto.
<dx-code-block title language="html" code-block="
«>
<dx-code-block title language="html" code-block="
«>
<dx-code-block title language="html" code-block="
«>
Tenga en cuenta que Salesforce está trabajando actualmente con el W3C para agregar nuevos estándares, de modo que el DOM oculto nativo pueda participar en estos patrones de accesibilidad. Esto significa que, en el futuro, este caso de uso ligero de DOM no será necesario. Como parte de nuestros esfuerzos de accesibilidad, también patrocinamos a Igalia para implementar parcialmente ARIA Element Reflection , que ahora es totalmente compatible con Safari y parcialmente con Chrome. Si quieres saber más sobre este tema, echa un vistazo a nuestra propuesta cross-root-aria , el repositorio para el grupo de trabajo Modelo de objetos de accesibilidad .
La siguiente tabla resume los casos de uso y dónde se admiten.
Experiencia en la nube | Experiencia relámpago | Aplicaciones móviles de Salesforce | LWC OSS/LWR en Node.js* | |
Soporte de bibliotecas que necesitan acceso a las partes internas de los componentes. | Sí | Sí | Sí | Sí |
Implementación más sencilla de componentes profundamente anidados | Sí | Sí | Sí | Sí |
Estilo global | Sí | No | No | Sí |
Implementación más flexible de las mejores prácticas de accesibilidad | Sí | Sí | Sí | Sí |
*Si se utiliza DOM de sombra nativo en lugar de sombra sintética . La sombra nativa es la opción predeterminada para LWC OSS y LWR en Node.js.
Cuando se trabaja con DOM ligero, hay algunas consideraciones adicionales a tener en cuenta, entre ellas:
En esta publicación de blog, revisamos qué es el DOM ligero, los casos de uso que permite y las consideraciones a tener en cuenta para decidir qué componentes habilitarán la función. Todos los ejemplos que se muestran en este blog se encuentran en un repositorio de GitHub que puedes probar tú mismo.
Para obtener más información sobre DOM ligero en la plataforma Salesforce, lea la documentación o, si está trabajando fuera de la plataforma, lea la documentación OSS .
Si decide seguir adelante y transformar sus componentes DOM ocultos en componentes DOM claros, consulte esta herramienta creada por Salesforce Engineering para simplificar la migración.
Alba Rivas trabaja como Principal Developer Advocate en Salesforce. Puedes seguirla en Linkedin , Twitter o GitHub .
Añadir a holgura Suscríbete a RSS
Escenario de activación de registro 2
Su organización administra cuentas, contactos y oportunidades para operaciones de ventas. Desea automatizar el proceso de notificación al propietario de la cuenta cuando el campo personalizado 'Cambio de estado' de un contacto cambia a 'Inactivo'. Además, desea actualizar la 'Etapa de oportunidad' de todas las oportunidades relacionadas a 'En espera' cuando cambie el estado de este contacto. Explique cómo diseñaría un Flujo para lograr esto.
Respuesta
Centrémonos en el patrón para resolver este escenario de modo que podamos resolver preguntas de flujo de manera efectiva.
1. Comprenda el requisito:
– Punto de activación: cuando el 'Cambio de estado' de un contacto cambia a 'Inactivo'.
– Resultado: Automatizar la notificación al propietario de la cuenta y actualizar las etapas de la oportunidad.
2. Desglosarlo:
– Recuperación de datos: Identificar la Cuenta del Contacto y las Oportunidades relacionadas.
– Notificaciones: envía una notificación al propietario de la cuenta.
– Actualización: actualice las etapas de la oportunidad según el cambio de estado del contacto.
3. Visualice el flujo:
– Secuencia:
– Iniciar el flujo cuando el 'Estado' de un contacto cambie a 'Inactivo'.
– Recuperar la cuenta del contacto y las oportunidades relacionadas.
– Enviar una notificación al propietario de la cuenta.
– Actualizar la 'Etapa de Oportunidad' en Oportunidades relacionadas.
4. Diseñe el flujo:
– Elementos:
– “Registrar flujo activado” para iniciar el cambio de estado de flujo en contacto. Seleccionaremos cuándo se actualiza el registro, ya que el flujo debe ejecutarse cuando el campo 'cambio de estado' del contacto se cambia a inactivo.
– El “Elemento de decisión” comprueba si el campo de estado del caso está activo o no
– Elemento “Obtener registros” para recuperar la cuenta del contacto. Para este filtro se debe buscar la cuenta que tenga el mismo ID que el ID de cuenta del contacto.
– Enviar notificación por correo electrónico al propietario de la cuenta.
—
Escribe el correo electrónico. A la hora de redactar el contenido de tu correo electrónico, tienes tres opciones disponibles:
Opción 1: a partir del lanzamiento Summer '23 de Salesforce, puede utilizar plantillas de correo electrónico con la acción Enviar correo electrónico. Puede hacer esto activando el ID de plantilla de correo electrónico e ingresando el ID de la plantilla de correo electrónico que desea usar. Para encontrar esta ID, navegue hasta su plantilla de correo electrónico desde las Plantillas de correo electrónico Lightning en sus aplicaciones o la página Plantilla de correo electrónico clásica en la configuración. Luego copie la cadena de 15 caracteres de la URL y péguela en su flujo como ID de plantilla de correo electrónico.
Opción 2: almacena el cuerpo de tu correo electrónico en una plantilla de texto . Para hacer esto, active el interruptor Cuerpo . A continuación, seleccione Nuevo recurso en el menú y elija Plantilla de texto . Asigne a la plantilla un nombre API y escriba el cuerpo de su correo electrónico . Puede ingresar recursos personalizados desde el menú encima del cuadro de texto. De esta manera, puedes incluir tanto texto estático como información personalizada para el cliente potencial. Una vez que su plantilla esté completa, haga clic en Listo .
A continuación, active Cuerpo con formato de texto enriquecido. En el menú desplegable, seleccione {!$GlobalConstant.True}. Esto garantiza que el formato de nuestro correo electrónico siga siendo consistente.
Por último, cambie el valor de Asunto a Activado y escriba su asunto en el cuadro. Puede omitir este paso si está utilizando una ID de plantilla de correo electrónico.
– Elemento “Actualizar Registros” para actualizar Etapas de Oportunidad.
5. Escenario de prueba:
– Cambie el 'Cambio de estado' de un contacto a 'Inactivo' y verifique que el flujo notifique correctamente al propietario de la cuenta y actualice las Etapas de la oportunidad a 'En espera'.
Producción