Categorías
Estrategias para Empresas

Cómo puede escribir un buen artículo de base de conocimientos

Un gran servicio al cliente no siempre involucra a un agente. Descubrimos que el 59% de los clientes prefieren herramientas de autoservicio para preguntas simples y problemas de servicio.

Sus clientes pueden obtener fácilmente las respuestas que necesitan con los artículos de la base de conocimientos, que son artículos de ayuda informativos en su sitio. Pueden encontrar lo que necesitan en cualquier momento (incluso a las 3 am), lo que libera a los agentes para que se concentren en solicitudes de servicio más complejas.

Los agentes de servicio también pueden usar los artículos de la base de conocimientos para resolver los problemas de los clientes y reducir su tiempo promedio de atención.

Proporcione las respuestas que sus clientes quieren

¿Pueden sus clientes encontrar soluciones a sus problemas sin pedir ayuda a un agente? Descubra cómo puede ofrecer una estrategia de autoservicio llena de conocimientos en Salesforce+.

Esta publicación de blog le dirá todo lo que necesita saber sobre cómo crear un artículo de la base de conocimientos. Aprenderá qué es un artículo de conocimiento, por qué son importantes, qué incluir cuando está escribiendo y consejos y trucos (como IA generativa) para ayudarlo a comenzar.

¿Qué es un artículo de la base de conocimientos?

Un artículo de la base de conocimientos es una página web que responde a una pregunta frecuente, soluciona un problema o ayuda a sus clientes a utilizar sus productos y servicios. A menudo incluyen instrucciones y respuestas escritas, pero también pueden incluir imágenes, videos, enlaces y otros elementos multimedia.

Los artículos de la base de conocimientos generalmente se encuentran en un lugar central en el sitio web o la plataforma de una empresa; esto podría ser un centro de ayuda, una página de preguntas frecuentes o un portal de soporte. Este centro debería facilitar que sus clientes encuentren las respuestas que buscan.

Si bien la estructura de este centro variará según las necesidades de su negocio y sus clientes, debe tener una función de búsqueda, etiquetas de artículos basadas en sus ofertas y títulos que dejen en claro de qué trata el artículo.

Si su centro de contacto tiene un chatbot , puede mostrar información de artículos de conocimientos en respuesta a un mensaje del cliente. Muy pronto, los chatbots con tecnología de IA generativa podrán responder preguntas de servicio y dar respuestas mejores y más personalizadas a partir de la base de conocimientos.

¿Por qué son importantes los artículos de la base de conocimientos?

Estas son las tres razones principales por las que los artículos de la base de conocimientos son importantes para su empresa:

  • Proporcionar una mejor experiencia de servicio: es 10 veces más probable que los clientes usen el autoservicio que contactar directamente a un centro de servicio. Tener un centro de conocimiento donde sus clientes puedan encontrar fácilmente las respuestas les brinda la experiencia de servicio que desean y les permite obtener servicio las 24 horas del día, los 7 días de la semana.
  • Reduzca la carga de casos en su centro de contacto: a medida que más clientes resuelven sus problemas de forma independiente, menos casos requieren el apoyo de un agente. Esto libera a los agentes para que se concentren en resolver problemas más complejos de los clientes y reduce la carga de trabajo general del centro de contacto.
  • Reduzca el tiempo promedio de manejo: a medida que los agentes resuelven casos únicos y formalizan el conocimiento institucional en artículos, más agentes pueden usar esa información para resolver sus casos más rápido y reducir el tiempo promedio de manejo. Las investigaciones muestran que el uso de artículos de la base de conocimientos puede resultar en una resolución un 33 % más rápida .

Cómo escribir un artículo de la base de conocimientos

Esta sección lo guiará a través de los pasos importantes que debe seguir antes de escribir un artículo de la base de conocimiento, qué elementos incluir y algunos consejos útiles para que sea aún más fácil escribir un artículo de conocimiento.

Antes de escribir un artículo de conocimiento

Hay algunos pasos que desea tomar antes de escribir su artículo: el primero es averiguar sobre qué tema escribir.

Considere estas tres preguntas cuando identifique el tema correcto para su artículo:

  • ¿Cuáles son las preguntas más comunes para las que recibe solicitudes de servicio?
  • ¿Cuáles son los problemas más comunes con los que sus clientes necesitan ayuda?
  • ¿Qué información ayudaría a sus clientes a aprovechar al máximo sus productos y servicios?

Una vez que haya identificado los problemas más comunes, asegúrese de no tener un artículo de conocimiento sobre este tema. Si un artículo ya existe, decida si necesita ser editado para agregar información actualizada.

Si aún no existe ningún artículo sobre ese tema, ¡es hora de comenzar a escribir!

4 componentes de un buen artículo de base de conocimiento

  • Un título claro: deja que tu cliente sepa qué cubrirá tu artículo en el título. Asegúrese de que el título sea claro, conciso y describa con precisión el contenido del artículo. Esto también hace que el artículo sea más fácil de encontrar.
  • Listas con viñetas o subtítulos: haga que su artículo de conocimiento sea fácil de hojear para que sus clientes no tengan que leer cada palabra para encontrar lo que necesitan. Cree listas con viñetas o subtítulos que muestren lo que se cubre en cada sección. Si está escribiendo un tutorial, escriba instrucciones paso a paso, incluidos los botones o elementos del menú para hacer clic, y colóquelos en orden cronológico.
  • Imágenes, enlaces o videos : brinda a tus clientes tantos detalles como puedas para que puedan resolver el problema por sí mismos. Agregue capturas de pantalla, imágenes, enlaces a otros artículos o videos a su artículo para ayudarlos.
  • Lenguaje simple: escriba de una manera que todos puedan entender fácilmente. Haga todo lo posible para evitar la jerga que se relaciona específicamente con su producto y servicio. Sus clientes no tendrán tanto conocimiento del producto como usted, así que use un lenguaje simple en cada paso de su artículo.

Aspecto de un artículo completo de la base de conocimientos

Este es un ejemplo de un artículo de la base de conocimientos que creamos para un software de pago ficticio llamado ZapPay. Este artículo de conocimientos ayudaría a los clientes de ZapPay a vincular su cuenta bancaria a su cuenta de ZapPay.

Conecta tu cuenta bancaria a tu cuenta de ZapPay

Descripción general

  • Descubra cómo conectar su cuenta ZapPay a su cuenta bancaria para enviar dinero, pagar facturas y transferir ZapCash a su cuenta bancaria.

SUGERENCIA: asegúrese de tener a mano su cuenta bancaria y números de ruta antes de comenzar este proceso.

  1. Inicie sesión en su cuenta de ZapPay.
  2. Desde el tablero, toque su nombre y luego haga clic en Perfil.
  3. Seleccione "Conectar cuenta bancaria".
  4. A partir de ahí, aparecerá una ventana emergente en su pantalla.
  5. Ingrese su número de cuenta bancaria en el cuadro de texto "Número de cuenta" y su número de ruta en el cuadro de texto "Número de ruta".
  6. Vuelva a verificar que sus datos sean correctos antes de continuar.
  7. Una vez que haya terminado, seleccione "Guardar".
  8. Dentro de las 24 horas, verá un retiro de ZapPay de diez centavos o menos en su cuenta y luego un reembolso por la misma cantidad poco después. Esto es para garantizar que pueda retirar y depositar dinero con éxito entre su cuenta de ZapPay y su cuenta bancaria.

¡Felicidades! ¡Has conectado con éxito tu ZapPay a tu cuenta bancaria! Si necesita ayuda adicional, consulte los siguientes enlaces:

  • Agregar dinero a mi cuenta de ZapPay
  • Transferir dinero de ZapPay a mi cuenta bancaria
  • Desconectar cuenta bancaria
  • Agregar tarjeta de crédito a la cuenta de ZapPay

3 consejos simples para comenzar con los artículos de la base de conocimientos (pista: IA)

Ahora que tiene lo que necesita para escribir el artículo perfecto de la base de conocimientos, así es como puede comenzar.

  • Obtenga información de registros y notas de casos antiguos para asegurarse de que está incluyendo tantos detalles como sea posible y de que está siguiendo los mismos pasos para obtener una resolución.
  • Para garantizar la precisión y la legibilidad, trabaje con un administrador para configurar un proceso de aprobación de artículos de conocimiento. Esto garantizará que la gramática y la ortografía sean correctas, que la información sea precisa y que el formato de los artículos sea uniforme en todo el centro.
  • Conecte una herramienta de IA generativa a su consola de servicio y haga que cree el primer borrador de su artículo de conocimiento basado en los detalles de la conversación y los datos de CRM para que sus agentes experimentados lo revisen. Esto le ahorrará tiempo y lo ayudará a publicar sus artículos más rápido.

Ahora sabe qué es un artículo de la base de conocimientos y por qué es importante tanto para los clientes como para los agentes. Comience a escribir artículos hoy para brindarles una excelente experiencia de servicio y aumentar la eficiencia de su centro de contacto.

Ahorre tiempo para sus clientes y agentes

Con herramientas de autoservicio como los artículos de la base de conocimientos, los clientes pueden obtener respuestas a las preguntas más frecuentes en cualquier momento, lo que libera a sus agentes. Nuestra guía muestra cómo las organizaciones de servicio de alto rendimiento facilitan el autoservicio.

Categorías
Developers

Sugar Rush of Salesforce CPQ Pricing: ¡Revelación de condiciones de precio y acciones en el país de las maravillas de las tiendas de golosinas!

¡Bienvenido al encantador Candy Store Wonderland, donde nos sumergiremos en la encantadora aventura de la magia de fijación de precios de Salesforce CPQ! Desenvolveremos la condición del precio y la acción del precio con los escenarios de la tienda de golosinas.

Exploraremos ejemplos de condiciones de precios cubiertas de dulces como "Obtenga una bolsa de regalo con la compra de deliciosos dulces de chocolate", acciones de precios dulces como "Compre uno, obtenga un dulce gratis para duplicar la dulzura" que lo dejarán con ganas de más. Descubriremos cómo se pueden personalizar las condiciones de precio y las acciones para crear promociones, descuentos y ofertas únicos que hagan que los clientes regresen para disfrutar de más aventuras llenas de dulces.

¡Despleguemos juntos la magia de los precios!

Precio Condición

Exploremos el uso del objeto Condición de precio con la ayuda de casos de uso.

1. Descuento por tipo de caramelo:

– Condición: establezca el campo en "Tipo de caramelo" y el operador en "Iguales". Especifique el valor como "Ositos de gominola".

– Resultado: cuando un cliente agrega dulces de ositos de goma a su cotización, la Condición de precio evaluará el tipo de dulce y aplicará la acción de fijación de precios definida, como un descuento o un precio ajustado.

2. Umbral de cantidad:

– Condición: Defina el Campo como “Cantidad” y el Operador como “Mayor que” o “Igual”. Establezca el Valor como un umbral de cantidad específico, como 10.

– Resultado: cuando un cliente agrega dulces a su cotización y la cantidad supera el umbral especificado, la condición de precio activará una acción de fijación de precios, como un descuento por volumen o un nivel de precios diferente.

3. Condición de atributo personalizado:

– Condición: defina un campo personalizado en la sección Campo, como “Dulces orgánicos”. Establezca el Operador en "Equals" y el Valor en "True".

– Resultado: cuando un cliente agrega dulces orgánicos a su cotización, la Condición de precio verificará el atributo personalizado y aplicará una acción de precio específica, como un precio premium o un descuento para productos orgánicos.

4. Promoción basada en fechas:

– Condición: Especifique el campo como “Fecha de cotización” Establezca el Operador en “Dentro del rango” y proporcione el rango de fechas deseado para la promoción.

– Resultado: cuando la cotización o el artículo de línea se encuentran dentro del rango de fechas especificado, la Condición de precio activará una acción de fijación de precios, como un descuento por tiempo limitado o una oferta especial.

El objeto Regla de precio y Condición de precio tienen una relación maestro-detalle.

Una captura de pantalla de una computadora Descripción generada automáticamente

Descripción de los campos en el objeto de condición de precio

Una captura de pantalla de una computadora Descripción generada automáticamente

¿Cuál es el uso del campo de regla de precio en el objeto de condición de precio?

Conecta la condición de precio con la regla de precio principal. Significa a qué regla de precio está asociada la condición de precio y determina bajo qué regla se debe evaluar la condición.

¿Cuál es el significado de Objeto y Campo en la Condición de Precio?

Fondo con rayas amarillas y blancas Descripción generada automáticamente

Al crear una Condición de precio, selecciona el objeto apropiado de las opciones disponibles en el campo "Objeto". Esto especifica el objeto relacionado al que desea hacer referencia en la condición. Una vez que seleccione el objeto, puede elegir el campo específico de ese objeto en el campo "Campo de objeto".

Por ejemplo, supongamos que tiene una Condición de precio que verifica si el campo "Sabor a caramelo" en el objeto Línea de cotización relacionado es igual a "Limón". En este caso, seleccionaría el objeto "Línea de cotización" en el campo "Objeto" y luego elegiría el campo "Sabor a caramelo".

Escenario: configure una condición de precio para verificar si el campo "Tipo" del caramelo asociado con la línea de cotización es igual a "Gummy Bear".

Así es como funciona:

1. En el registro de Condición de precio, seleccionaría el objeto "Línea de cotización" en el campo "Objeto". Esto indica que desea evaluar un campo del objeto Línea de cotización.

2. A continuación, en el campo "Object Field", elegiría el campo "Candy.Type". Esto especifica que desea hacer referencia al campo "Tipo" del objeto Candy relacionado asociado con la línea de cotización.

3. Para completar la condición, establecería el operador como "Equals" y proporcionaría el valor "Gummy Bear". Esta condición verificará si el tipo de Caramelo para la línea de cotización asociada es "Gummy Bear".

Una captura de pantalla de una computadora Descripción generada automáticamente

¿Qué es el campo variable probado en la condición de precio?

El campo "Variables probadas" en el objeto Condición de precio le permite almacenar y hacer referencia a valores intermedios durante la evaluación de la condición. Entendamos su uso con un ejemplo de caramelo.

Escenario: Desea aplicar un descuento en un tipo específico de golosina, pero solo si la cantidad total de todos los artículos de golosina en la cotización supera un límite determinado.

1. Precio Condición:

– Objeto: Línea de cotización

– Campo de objeto: Producto.Tipo (para verificar el tipo de dulce)

– Condición: Tipo de Caramelo es igual a “Barra de Chocolate”

2. Variables probadas:

– Cree una variable probada llamada "TotalCandyQty" para almacenar la cantidad total de todos los artículos de dulces en la cotización.

3. Acción del precio:

– Objeto: Cita

– Campo de objeto: Porcentaje de descuento

– Acción: Actualizar Campo

– Valor: si TotalCandyQty es mayor que 10, establezca el Porcentaje de descuento en 10 %; de lo contrario, ajústelo al 5%.

Solución

En este ejemplo, la Condición de precio verifica si el tipo de dulce es "Barra de chocolate" para cada línea de cotización. Si coincide, puede utilizar el campo "Variables probadas" para almacenar la cantidad total de todos los dulces en la cotización.

La Acción del precio luego actualiza el campo Porcentaje de descuento en la Cotización en función del valor de la variable probada "TotalCandyQty". Si la cantidad total de artículos de dulces en la cotización supera los 10, se aplica un descuento del 10%. En caso contrario, se aplica un descuento del 5%.

Al usar el campo "Variables probadas", puede calcular y almacenar la cantidad total de dulces en la cotización y usarla en acciones posteriores para determinar el porcentaje de descuento apropiado. Esto le permite aplicar diferentes descuentos en función de la cantidad total de dulces en la cotización.

¿Cuál es el uso del campo de fórmula probado en la condición de precio?

Un objeto rectangular blanco con un borde negro Descripción generada automáticamente

El campo "Fórmula probada" en una Condición de precio le permite definir una expresión de fórmula que se evalúa para determinar si la condición se cumple o no. Le permite crear condiciones dinámicas que consideran diferentes factores.

Escenario: desea aplicar un descuento en un producto solo si se cumplen las siguientes condiciones:

– El producto es una “Barra de Chocolate” o un “Osito de Gominola”.

– La cantidad del producto es mayor o igual a 10.

– El precio total del producto supera los $50.

Para configurar esta condición usando una fórmula probada:

1. Cree una Condición de Precio con los siguientes detalles:

– Objeto: Línea de cotización

– Fórmula probada: ingrese la expresión de la fórmula que combina las condiciones:

`(Tipo de producto = "Barra de chocolate" || Tipo de producto = "Osito de goma") && Cantidad >= 10 && Precio total > 50`

En este ejemplo, la fórmula probada combina múltiples condiciones usando operadores lógicos (|| para OR, && para AND). Comprueba si el tipo de producto es "Barra de chocolate" o "Gummy Bear", la cantidad es mayor o igual a 10 y el precio total es mayor a $50. Solo si todas estas condiciones son ciertas, se cumplirá la Condición de Precio.

¿Cuál es la diferencia entre la “Fórmula Probada” en una Condición de Precio y la “Condición Avanzada” en una Regla de Precio?

La "Fórmula Probada" en una Condición de Precio y la "Condición Avanzada" en una Regla de Precio le permiten definir condiciones complejas para determinar cuándo se debe aplicar una acción o ajuste específico. Sin embargo, hay algunas diferencias clave entre ellos:

Fórmula probada en condición de precio:

– Se utiliza dentro de una Condición de precio para evaluar si la condición se cumple o no para elementos de línea de cotización individuales.

– Se evalúa a nivel de línea de pedido, considerando los valores específicos de los campos en la línea de cotización.

– La fórmula puede incluir referencias de campo, operadores lógicos, comparaciones y funciones para realizar cálculos y comparaciones en función de los valores de los campos en la partida de presupuesto.

– El resultado de la fórmula determina si se cumple la condición y, de ser así, las acciones de precio asociadas se aplicarán a la línea de cotización.

Condición avanzada en la regla de precio:

– Se usa dentro de una regla de precio para definir condiciones más complejas que pueden involucrar múltiples elementos de línea de cotización u objetos relacionados.

– Se evalúa a nivel de regla, teniendo en cuenta los valores en varias partidas de cotización u objetos relacionados.

– La condición avanzada generalmente se escribe utilizando Apex o SOQL (lenguaje de consulta de objetos de Salesforce) y puede incluir lógica personalizada, consultas y cálculos.

– El resultado de la condición avanzada determina si se aplica toda la regla o se omite por completo para una cotización en particular.

En resumen, la fórmula probada en una Condición de precio se usa para evaluar las condiciones en el nivel de partida de cotización individual , mientras que la condición avanzada en una Regla de precio permite condiciones más avanzadas que involucran múltiples partidas de cotización u objetos relacionados.

Comprendamos la diferencia entre la fórmula probada en una Condición de precio y la condición avanzada en una Regla de precio con la ayuda de un ejemplo:

Guión:

Dispones de una Regla de Precio para aplicar un descuento en productos en base a las siguientes condiciones:

– Condición 1: Aplicar un 10% de descuento si la cantidad de productos es mayor o igual a 10.

– Condición 2: Aplicar un 5% de descuento si el producto pertenece a una categoría específica, “Categoría Especial”.

Fórmula probada en condición de precio:

En este enfoque, utilizará una fórmula probada dentro de cada condición de precio para evaluar la condición en el nivel de artículo de línea de cotización individual.

Precio Condición 1:

– Objeto: Línea de cotización

– Fórmula probada: `Cantidad >= 10`

Precio Condición 2:

– Objeto: Línea de cotización

– Fórmula probada: `Producto.Categoría = “Categoría especial”`

En este ejemplo, la fórmula probada se usa para verificar si cada elemento de línea de cotización cumple con la condición específica. Si la fórmula se evalúa como verdadera para un artículo de línea de cotización, la acción de precio asociada se aplicará a ese artículo.

Condición avanzada en la regla de precios:

En este enfoque, utilizará una condición avanzada dentro de la regla de precio para evaluar las condiciones a nivel de regla, considerando varios elementos de línea de cotización.

Regla de precio:

– Condición avanzada: `SUM(QuoteLine.Quantity) >= 10 && MAX(QuoteLine.Product.Category) = “Special Category”`

En este ejemplo, la condición avanzada se usa para evaluar las condiciones en todos los elementos de línea de cotización en la cotización. Si la condición avanzada se evalúa como verdadera, las acciones de precio asociadas dentro de la regla de precio se aplicarán a todos los elementos de línea de cotización elegibles.

¿Para qué sirve el campo “Operador” en una Condición de Precio?

Una captura de pantalla de una computadora Descripción generada automáticamente

Este campo determina la comparación u operación lógica a realizar al evaluar la condición.

Los operadores disponibles en el campo "Operador" pueden variar según el tipo de datos del campo que se compara. Aquí hay algunos operadores comunes que puede encontrar:

– Igual a (=): Comprueba si el valor del campo es igual al valor especificado.

– No es igual a (!=): Comprueba si el valor del campo no es igual al valor especificado.

– Mayor que (>): Comprueba si el valor del campo es mayor que el valor especificado.

– Menor que (<): Comprueba si el valor del campo es menor que el valor especificado.

– Mayor o igual que (>=): Comprueba si el valor del campo es mayor o igual que el valor especificado.

– Menor o igual que (<=): Comprueba si el valor del campo es menor o igual que el valor especificado.

– Contiene: comprueba si el valor del campo contiene una subcadena o valor específico.

Por ejemplo, si tiene una Condición de precio para aplicar un descuento cuando la cantidad de un producto es mayor a 10, utilizará el operador "Mayor que" (>) y especificará el valor 10 en la condición.

¿Qué es el campo Uso del tipo de filtro en el objeto de condición de precio?

Una captura de pantalla de una computadora Descripción generada automáticamente

1. Variable: Le permite seleccionar una variable de resumen que contiene un valor específico. Las variables de resumen se utilizan para almacenar y hacer referencia a valores calculados basados en agregaciones o lógica de fórmula.

2. Fórmula: Le permite especificar una fórmula o expresión que determina la condición para que se aplique la Regla de Precio. Puede utilizar funciones de fórmula, operadores y referencias de campo para crear condiciones complejas basadas en los valores de la partida de presupuesto u otros objetos relacionados.

3. Valor: especifica un valor específico con el que se comparará el campo de la partida de cotización. Por lo general, se usa junto con los campos "Campo" y "Operador" para definir la condición.

Juntos, la "Variable", la "Fórmula" y el "Valor" le permiten definir las condiciones que determinan cuándo se debe aplicar la regla de precio a una partida de cotización específica.

¿Qué es el campo de valor de filtro en la condición de precio?

Un rectángulo azul y blanco Descripción generada automáticamente

El valor del filtro representa el valor esperado o el umbral con el que se compara el campo de la partida de presupuesto o grupo de partidas de presupuesto. El valor del filtro puede ser un valor numérico, un valor de texto, una fecha o cualquier otro tipo de datos adecuado según el campo que se utilice en la condición.

Escenario: regla de precio que ofrece un descuento en los dulces de ositos de goma si la cantidad supera un cierto umbral. Desea solicitar un 10% de descuento cuando la cantidad es superior a 10.

Solución

En este escenario, la Condición de Precio tendrá la siguiente configuración:

– Tipo de filtro: Campo de línea de cotización

– Campo: Cantidad

– Operador: Mayor que

– Valor del filtro: 10

Aquí, el valor del filtro se establece en 10, lo que indica que la condición busca una cantidad superior a 10. Al evaluar las líneas de cotización, si la cantidad de dulces de ositos de goma supera los 10, la condición se considera verdadera y la regla de precio con se aplicará la acción asociada, como aplicar el 10% de descuento.

¿Cuál es el uso del campo variable de filtro en la condición de precio?

El campo Filtrar variable en la condición de precio le permite hacer referencia a una variable personalizada específica de una línea de cotización o un grupo de líneas de cotización y utilizarla en la evaluación de la condición.

Consideremos un ejemplo de caramelo para comprender el uso del campo de variable de filtro en la condición de precio.

Guión

Supongamos que tiene una variable personalizada llamada "MinOrderQuantity". El objetivo es aplicar un descuento cuando la cantidad supera el valor de MinOrderQuantity de 10.

Solución:

1. Defina una variable personalizada:

– Cree una variable personalizada llamada "MinOrderQuantity" para representar la cantidad mínima de dulces necesaria para calificar para un descuento.

– Establezca el valor de “MinOrderQuantity” en 10.

2. Crear una condición de precio:

– Tipo de filtro: Campo de línea de cotización

– Campo: Cantidad

– Operador: Mayor que o Igual a

– Campo de variable de filtro: MinOrderQuantity

Esta condición de precio verifica si la cantidad de artículos de dulces en la línea de cotización es mayor o igual que el valor almacenado en la variable "MinOrderQuantity".

3. Cree una acción de precio:

– Especificar la acción a realizar cuando se cumpla la Condición de Precio. Por ejemplo, puedes aplicar un descuento del 10% al Precio Unitario de los artículos de golosinas.

4. Aplicar la regla del precio:

– Conecte la Condición de precio y la Acción de precio a la Regla de precio.

– Asegúrese de que la regla de precios esté activa y configurada para activarse correctamente en su configuración de precios.

Ahora, veamos cómo funciona este ejemplo:

– Escenario 1: la cantidad es inferior a 10

– Si la cantidad de artículos de dulces en la línea de cotización es inferior a 10, la condición de precio se evalúa como falsa.

– La regla de precio no se activa y no se aplica ningún descuento.

– Escenario 2: la cantidad es 10 o más

– Si la Cantidad de artículos de dulces en la línea de cotización es igual o superior a 10, la Condición de precio se evalúa como verdadera.

– Se activa la regla de precio y se ejecuta la acción especificada, como aplicar un descuento del 10 % al precio unitario, en esos artículos de dulces.

¿Cuál es la diferencia entre el campo Variable de filtro y Variable probada en Condición de precio?

La principal diferencia entre una variable de filtro y una variable probada en Salesforce CPQ es el contexto en el que se utilizan.

Variable de filtro:

– Se utiliza una variable de filtro en la Condición de precio para definir una condición dinámica basada en un valor específico almacenado en una variable personalizada.

– Le permite hacer referencia a una variable personalizada definida dentro del contexto de la partida de cotización o grupo de partidas de cotización.

– La variable de filtro se utiliza como parte de la evaluación de la condición para compararla con otros campos o valores.

– Ayuda a determinar si se cumplen o no las condiciones especificadas en la Condición de Precio.

Variable probada:

– Una variable probada se usa en la condición avanzada de una regla de precio para evaluar una fórmula o lógica basada en valores específicos almacenados en variables personalizadas.

– Te permite crear condiciones o cálculos complejos basados en los valores de las variables personalizadas.

– La variable probada se usa en combinación con otras variables, campos o fórmulas para determinar el resultado de la condición avanzada.

Diferenciemos entre el campo Variable de filtro y Variable probada en el contexto de un ejemplo de caramelo:

Ejemplo: descuento de temporada en la tienda de golosinas

Escenario: Filtrar uso de variables

Si el cliente pide 25 dulces, la Condición de precio con la variable de filtro "MinOrderQuantity" evaluará si la cantidad es mayor o igual a 20. Si se cumple la condición, se activará la acción especificada, como aplicar un descuento. .

Solución

1. Cree una variable personalizada llamada "MinOrderQuantity"

2. Establezca el valor de "MinOrderQuantity" en 20, lo que indica que los clientes deben pedir al menos 20 dulces para ser elegibles para el descuento.

Precio Condición:

3. Cree una condición de precio en la regla de precio.

4. Seleccione el campo "Cantidad" como campo de filtro.

5. Elija el operador "Mayor o igual que".

6. Ingrese el valor del filtro como la variable "MinOrderQuantity".

7. Especifique la acción que desea realizar, como aplicar un porcentaje de descuento, cuando se cumpla la condición.

Escenario Probado Uso de variables

Ejemplo: Si el cliente tiene un nivel de lealtad de "Oro" y la variable probada "Porcentaje de descuento" se establece en 15%, la Condición avanzada evaluará si el nivel de lealtad del cliente es "Oro". Si la condición es verdadera, el porcentaje de descuento será ser ejecutado.

Solución

1. Cree una variable personalizada denominada "Porcentaje de descuento" en Salesforce CPQ.

2. Establezca el valor de "Porcentaje de descuento" en 15, lo que indica un 15% de descuento para clientes leales.

Condición avanzada:

3. Cree una Condición Avanzada en la Regla de Precio.

4. Defina la lógica utilizando variables probadas, como "Porcentaje de descuento", nivel de lealtad del cliente y otros criterios.

5. Especifique la acción que desea realizar, como aplicar el porcentaje de descuento, cuando la Condición avanzada se evalúe como verdadera.

En resumen, las variables de filtro se utilizan en Condiciones de precio para verificar si se cumplen ciertos criterios o umbrales, en función de variables, campos o valores personalizados. Las variables probadas, por otro lado, se utilizan en Condiciones Avanzadas para realizar cálculos o lógica basada en variables personalizadas , atributos del cliente u otros factores para determinar el resultado de la Regla de Precio.

¿Cómo usamos el campo Fórmula de filtro en la condición de precio?

El campo de fórmula de filtro en Condición de precio le permite definir una condición basada en fórmula para determinar si se debe aplicar la regla. Consideremos un ejemplo en el contexto de una tienda de golosinas:

Escenario: Compre uno, llévese otro gratis Promoción

Si el cliente está comprando al menos dos artículos de dulces, aplique un descuento para que uno de los artículos sea gratis como parte de la promoción "Compre uno, llévese otro gratis".

Solución

Este es un ejemplo paso a paso del uso del campo de fórmula de filtro en la Condición de precio para implementar una promoción de "Compre uno, llévese otro gratis" en el escenario de una tienda de golosinas:

1. Configure la Condición de Precio:

– Establezca el tipo de filtro en "Fórmula" en el registro de Condición de precio.

– Introduzca una fórmula en el campo de fórmula de filtro para comprobar si se cumple la condición. Cantidad >= 1.

– Esta fórmula verifica si la cantidad del artículo de dulces en la línea de cotización es mayor o igual a 1, lo que indica que el cliente está comprando al menos dos artículos.

2. Especifique la acción deseada:

– Determine la acción que desea realizar cuando la fórmula del filtro se evalúe como verdadera. En este caso, se trata de una promoción de “Compre uno, llévese otro gratis”.

¿Cuál es el uso del campo de índice en la condición de precio?

El campo "Índice" en el objeto Condición de precio se puede utilizar para definir el orden en el que se evalúan las condiciones para aplicar las reglas de precios. Consideremos un ejemplo para entender su uso:

Escenario: Descuento para barras de chocolate

1. Cree una regla de precio para aplicar un descuento a las barras de chocolate.

2. Agregue múltiples condiciones de precio dentro de la regla de precio para definir diferentes condiciones bajo las cuales se debe aplicar el descuento. Por ejemplo:

– Condición de Precio 1: Comprobar si el tipo de caramelo es “Barra de Chocolate”.

– Condición de Precio 2: Comprobar si la cantidad de barras de chocolate es mayor o igual a 10.

– Condición de precio 3: Comprobar si el cliente tiene un nivel de membresía específico.

3. Establezca los valores del índice para cada condición de precio:

– Condición de precio 1: establezca el valor del índice en 1.

– Condición de precio 2: establezca el valor del índice en 2.

– Condición de precio 3: establezca el valor del índice en 3.

Al asignar valores de índice a las condiciones de precio, está definiendo el orden en el que deben evaluarse. En este ejemplo, se evaluará primero la condición de precio 1 con un valor de índice de 1, seguida de la condición de precio 2 con un valor de índice de 2 y finalmente la condición de precio 3 con un valor de índice de 3.

————

Acción del precio

Exploremos el uso del objeto Price Action con varios ejemplos.

1. Aplicar un descuento:

– Acción de precio: establezca un objeto de acción de precio con el objeto de destino como "Línea de cotización"

– Acción: especifique un porcentaje de descuento, como un 20 % de descuento, en la Acción de precio.

– Resultado: Cuando un cliente agrega un dulce específico a su cotización, Price Action automáticamente aplicará el descuento al Precio Unitario de ese dulce, resultando en un precio reducido.

2. Precios por volumen:

– Acción de precio: Cree un objeto de Acción de precio con el Objeto de destino establecido como “Línea de cotización”.

– Acción: defina una estructura de nivel de precio en la Acción de precio basada en rangos de cantidad. Por ejemplo:

– 1-10 dulces: $1 por dulce

– 11-20 dulces: $0.90 por dulce

– 21+ dulces: $0.80 por dulce

– Resultado: cuando un cliente agrega dulces a su cotización, Price Action ajustará el precio unitario en función de la cantidad, proporcionando descuentos de precios basados en el volumen.

3. Regalo con Compra:

– Acción de precio: establezca el objeto de destino como "Cotización" para aplicar la acción en el nivel de cotización.

– Acción: Especifique una condición de que si el cliente compra una cierta cantidad de un dulce específico, recibirá un regalo.

– Resultado: cuando se cumple la condición especificada, Price Action agregará automáticamente el obsequio a la cotización, mejorando la experiencia del cliente.

4. Precios especiales para clientes VIP:

– Acción de precio: cree un objeto de acción de precio con el objeto de destino como "Cotización" o "Línea de cotización" según sus requisitos.

– Acción: defina un campo personalizado que identifique a los clientes VIP. Establezca la Acción de precio para aplicar un descuento específico para esos clientes.

– Resultado: Cuando un cliente VIP agregue dulces a su cotización, Price Action reconocerá su estado y aplicará el descuento exclusivo automáticamente.

Estos ejemplos demuestran cómo el objeto Price Action le permite definir acciones específicas, como aplicar descuentos, ajustar precios en función de la cantidad, ofrecer obsequios o proporcionar precios especiales para segmentos de clientes específicos. El objeto Price Action le permite automatizar estas acciones.

La regla de precio y el objeto de acción de precio tienen una relación maestro-detalle.

Una captura de pantalla de una computadora Descripción generada automáticamente

Comprensión de los campos en el objeto de acción del precio

Una captura de pantalla de una computadora Descripción generada automáticamente

¿Cuál es el uso del campo de regla de precio en el objeto de acción de precio?

Conecta la acción del precio con la regla de precio principal. Indica a qué regla de precio está asociada la acción de precio y determina bajo qué regla debe evaluarse la condición.

¿Cuál es la importancia del objeto objetivo en la acción del precio?

Una captura de pantalla de una computadora Descripción generada automáticamente

El objeto de destino en la acción del precio determina dónde se aplicarán los cambios de precios especificados en la acción del precio.

Suponga que tiene una acción de precio que aplica un descuento del 10 % al precio unitario de los dulces de ositos de goma cuando la cantidad supera los 100. El campo Objeto de destino en la acción de precio determina qué registros recibirán este descuento.

En este caso, seleccionaría el objeto "Línea de cotización" como el Objeto de destino en la Acción del precio. Esto significa que el descuento se aplicará a los registros de línea de cotización que representan los dulces de ositos de goma en la cotización.

¿Importancia del campo Valor en Price Action?

El campo Valor en el objeto Acción del precio se usa para especificar el valor específico o los datos que deben establecerse en el campo del objeto de destino. Define el resultado de la acción del precio, indicando el resultado deseado o el cambio que debe ocurrir.

Escenario: cuando un cliente agrega un osito de gominola con sabor a fresa a su cotización, Price Action actualizará el campo Precio de ese dulce al valor especificado de $2.50.

Solución:

– Acción de precio: Cree un objeto de Acción de precio con el Objeto de destino establecido como “Línea de cotización”.

– Campo: elija el campo “Precio” en el objeto de destino que desea actualizar con un nuevo valor

– Valor: Especifique el precio deseado para el sabor del caramelo en el campo Valor. Si el dulce es un osito de goma con sabor a fresa, establezca el campo Valor en $2,50.

¿Cuál es el uso del campo Fórmula en el objeto Acción de precio y el campo Fórmula en el objeto Condición de precio?

Comprendamos cuándo usar el campo Fórmula en cada objeto.

  • El campo Fórmula en la Acción del precio se usa para calcular y aplicar directamente el monto del descuento o el valor del campo según ciertos criterios.
  • El campo Fórmula en la Condición de precio establece condiciones o calcula valores que determinan cuándo debe ejecutarse la Acción de precio.

Suponga que desea ofrecer un 10 % de descuento en un dulce de sabor a “chocolate”, pero el monto del descuento varía según la cantidad pedida del sabor de dulce de chocolate en la cotización.

Uso de la fórmula en la acción del precio:

En este escenario, puede agregar un campo Fórmula directamente al objeto Acción del precio. La fórmula calcularía el monto del descuento en función de la cantidad del sabor del caramelo "chocolate".

Uso de fórmula en condición de precio:

En algunos casos, es posible que desee aplicar el descuento solo si la cantidad del sabor de caramelo específico supera cierto umbral.

“SI (Cantidad > 10, 0,2, 0,1)” que establece el porcentaje de descuento en un 20% si la cantidad es superior a 10 y en un 10% en caso contrario. La condición de precio comprueba esta fórmula y evalúa si se cumple la condición. Si se cumple la condición, activa la Price Action asociada con el porcentaje de descuento definido.

Razones para usar fórmulas en condiciones de precio:

1. Lógica condicional: el campo Fórmula en la Condición de precio le permite definir la lógica condicional en función de criterios específicos. Puede configurar condiciones complejas que involucren múltiples campos o cálculos para determinar si se debe activar la acción del precio.

2. Filtrado avanzado: la condición de precio puede evaluar varios factores, como cantidad, precio, rango de fechas o cualquier otro campo relevante antes de decidir aplicar la acción de precio.

Razones para usar fórmulas en la acción del precio:

1. Actualizaciones directas de campo: si el cálculo del descuento es sencillo y no requiere condiciones complejas o filtrado, puede calcular y actualizar directamente el valor del campo en la acción del precio.

¿Cuál es la importancia del campo fuente en la acción del precio?

El "Campo de origen" en Price Action especifica el campo desde el cual se obtendrá el valor y se utilizará en Price Action.

Guión:

Para un producto de golosina en particular, el campo "Precio original" en el objeto Producto es $10.

Cuando se activa la Acción de precio, obtendrá el valor de $10 del campo "Precio original" en el objeto Producto.

La acción del precio luego actualizará el campo "Precio con descuento" en la línea de cotización con el valor obtenido. Digamos que tienes un porcentaje de descuento del 20%. En este caso, el cálculo sería:

Precio con descuento = Precio original – (Precio original * Porcentaje de descuento)

= $10 – ($10 * 0.20)

= $10 – $2

= $8

Después de ejecutar la acción de precio, el campo "Precio con descuento" en la línea de cotización se actualizará con el valor calculado de $8.

Solución:

Los siguientes detalles se completarán en el objeto de acción del precio:

– Objeto de origen: Producto

– Campo de origen: precio original

– Objeto de destino: línea de cotización

– Campo objetivo: Precio con descuento

¿Diferencia entre el campo de origen y el campo de búsqueda de origen en la acción del precio?

Objeto rectangular blanco con fondo blanco Descripción generada automáticamente

Campo de origen:

– El campo de origen hace referencia a un campo específico en el objeto de origen del que se obtienen los datos y se utilizan en la acción del precio.

Campo de búsqueda de fuente:

– El campo de búsqueda de origen, por otro lado, se usa cuando desea obtener el valor de campo de un registro relacionado a través de una relación de búsqueda. Le permite atravesar un campo de búsqueda para acceder a campos en el objeto relacionado y usarlos en la acción del precio.

Para entender la diferencia, consideremos un ejemplo con una tienda de golosinas:

Suponga que tiene un campo personalizado denominado "Precio original" en el objeto Producto y una relación de búsqueda entre los objetos Producto y Fabricante. El objeto Fabricante tiene un campo llamado "Nombre del fabricante".

Si desea buscar y usar el valor del campo "Precio original" directamente, usaría el Campo de origen. Sin embargo, si desea acceder al valor del campo "Nombre del fabricante" a través de la relación de búsqueda, debe utilizar el Campo de búsqueda de origen.

Aquí hay una comparación entre los dos:

Campo de origen:

– Ejemplo: Producto.Precio_Original__c

– Hace referencia directa al campo en el objeto de origen.

– Obtiene y utiliza el valor del campo especificado tal cual.

Campo de búsqueda de fuente:

– Ejemplo: Producto.Fabricante__r.Nombre_Fabricante__c

– Recorre una relación de búsqueda para acceder al valor de campo del objeto relacionado.

– Obtiene y usa el valor del campo especificado en el objeto relacionado.

En resumen, el campo de origen se usa para hacer referencia directamente a un campo en el objeto de origen, mientras que el campo de búsqueda de origen se usa para obtener el valor de campo de un registro relacionado a través de una relación de búsqueda. La elección depende de los datos específicos que desea recuperar y utilizar en la acción del precio.

¿Cuál es el uso del campo Variable de origen en la regla de precio?

Continuemos con nuestro ejemplo de la tienda de golosinas para ilustrar el uso del campo variable de origen en una acción de precio.

El campo Variable de origen en la Acción de precio le permite obtener el valor de la variable personalizada, digamos "Porcentaje de descuento" de la Regla de precio asociada. Esto permite que Price Action aplique dinámicamente el porcentaje de descuento correcto al campo "Precio con descuento".

1. Configure los siguientes detalles para la acción del precio:

– Objeto de origen: línea de cotización

– Objeto de destino: línea de cotización

– Campo objetivo: Precio con descuento

– Campo de variable de origen: Porcentaje de descuento

3. Digamos que la regla de precio determinó que el porcentaje de descuento aplicable es del 15 % en función de la cantidad de dulces en la cotización.

4. La acción del precio usará el valor obtenido del 15 % y lo aplicará al campo "Precio con descuento" en la línea de cotización. Supongamos que el precio original de los dulces es de $10.

Precio con descuento = Precio original – (Precio original * Porcentaje de descuento)

= $10 – ($10 * 0,15)

= $10 – $1.50

= $8.50

5. Después de ejecutar la acción de precio, el campo "Precio con descuento" en la línea de cotización se actualizará con el valor calculado de $8,50.

50% Me gusta VS
50% No me gusta

Categorías
Developers

Salesforce CPQ cubierto de azúcar: ¡Desentrañando las reglas de precios en el mundo de las tiendas de golosinas!

Imagine que está creando un sistema Salesforce CPQ para una tienda de golosinas. Vaya, será muy divertido. ¿Cómo usaría las reglas de precios para manejar promociones especiales, como una oferta de "Compre uno, llévese otro gratis" para un dulce específico? En el escenario de la tienda de golosinas, ¿cómo crearía una regla de precio para aplicar un descuento del 20 % a todos los chocolates durante el Día de San Valentín?

Entonces, ¡saltemos y exploremos las reglas de precios en el universo de Salesforce CPQ cubierto de azúcar! Yay 😊

¿Regla de precios en Salesforce CPQ?

Imagina que tienes una tienda de dulces con diferentes tipos de dulces como piruletas, ositos de goma y barras de chocolate. Cada caramelo tiene un precio diferente. Ahora, hablemos de la regla del precio:

La regla del precio es como una regla especial que creas para tu tienda de golosinas. Te ayuda a decidir cómo fijar los precios o aplicar descuentos a diferentes dulces en función de determinadas condiciones.

Por ejemplo, supongamos que desea tener una oferta de "Compre uno, llévese otro gratis" para dulces de ositos de goma. Puede crear una regla de precios que diga que cada vez que alguien compra un paquete de ositos de goma, obtiene otro paquete gratis. ¡Es como una oferta especial solo para los amantes de los ositos de goma!

O tal vez quieras tener un descuento en piruletas por tiempo limitado. Puede crear una regla de precio llamada "Venta de piruletas" que reduce el precio de las piruletas en un 20 % durante una semana. Esto hace que las piruletas sean más asequibles y anima a más personas a comprarlas.

La regla de precios le permite establecer diferentes acciones y condiciones de precios para cada tipo de dulce. Puede definir descuentos, ofertas especiales o incluso ajustar los precios en función de condiciones específicas, como la cantidad comprada o el estado de membresía del cliente.

Al crear Reglas de precios, puede hacer que su tienda de golosinas sea más emocionante y atraer a más clientes. Te ayuda a establecer precios y aplicar descuentos de una manera que hace felices a las personas y las alienta a comprar sus dulces favoritos.

Imagen

¿Cuál es la estructura de la Regla de Precios?

La regla de precios incluía tres registros relacionados:

  1. Regla de precio
  2. Precio Condición
  3. Acción del precio

La Regla de precio tiene una relación Maestro-Detalle con la Condición de precio y la Acción de precio.

Al conectar la regla de precios con las condiciones de precios secundarias relevantes, el sistema de precios garantiza que se apliquen las reglas apropiadas en función de condiciones específicas. Price Action define las acciones que se deben tomar cuando se cumplen las condiciones de precio asociadas. Especifica cómo se deben modificar los precios u otros valores de campo en función de los criterios de la regla.

1. Regla de precio: La regla de precio contiene todas las reglas específicas para la fijación de precios en la tienda de golosinas. Le dice a la tienda cómo manejar diferentes situaciones al establecer los precios de los dulces.

2. Condición de precio: Hay alguien en la tienda que verifica el tipo de dulces que desea comprar. Se aseguran de que cumpla ciertas condiciones, como ser un “Gummy Bear” o tener un sabor específico.

3. Acción del precio: una vez que el dulce pasa la inspección, hay alguien que ajusta el precio según las reglas de precios. Pueden ofrecer un descuento, cambiar la cantidad o hacer algo especial para que el precio sea más atractivo.

Importancia de los campos en la regla de precios

Los campos juegan un papel importante en las reglas de precios dentro de Salesforce CPQ. Las reglas de precios usan campos para definir condiciones, acciones y criterios que determinan cómo se aplican los cálculos de precios y los descuentos. Por lo tanto, comprenderemos cada campo en el objeto Regla de precio y su importancia con la ayuda del Ejemplo de tienda de golosinas.

Una captura de pantalla de una computadora Descripción generada automáticamente

¿Diferencia entre Calculator y Configurator Evaluation Scope en la regla de precio en Salesforce CPQ?

Un rectángulo blanco y azul con una línea azul Descripción generada automáticamente

El campo Alcance de la evaluación es como usar esa calculadora mágica. Cuando tiene reglas de precios con el Ámbito de evaluación de la calculadora, la calculadora las utiliza para decidir cuánto debería costar algo. Tiene dos valores de lista de selección:

  • Ámbito de evaluación de la calculadora: el ámbito se trata de usar reglas especiales para calcular precios.
  • Ámbito de evaluación del configurador: seguir las reglas cuando elige diferentes opciones.

Expliquemos la diferencia entre los ámbitos de evaluación de Calculadora y Configurador en Salesforce CPQ con un ejemplo en tiempo real:

Imagina que vas a una tienda de dulces a comprar unos deliciosos dulces. Tienes un presupuesto de $10 y quieres comprar diferentes tipos de dulces según sus sabores.

Exploremos cómo entran en juego los ámbitos de evaluación de la calculadora y el configurador:

1. Ámbito de evaluación de la calculadora:

– Imagina que hay una oferta especial en la que si compras más de 5 caramelos, obtienes un 20% de descuento sobre el precio total.

– Esta oferta es un ejemplo de una regla de precio con el Ámbito de evaluación de la calculadora. La regla calcula el precio con descuento en función de la cantidad de dulces que está comprando.

– Entonces, si agrega 7 dulces a su carrito, la Calculadora evalúa la regla del precio y aplica el descuento, reduciendo el costo total.

2. Alcance de la evaluación del configurador:

– Ahora, consideremos los sabores de dulces disponibles en la tienda: fresa, chocolate y limón.

– Existe una regla que dice que si elige dulces con sabor a fresa, no puede elegir dulces con sabor a limón porque no combinan bien.

– Esta regla es un ejemplo de una regla de precio con el alcance de evaluación del configurador. Controla la disponibilidad de ciertas opciones en función de sus elecciones anteriores.

– Si ya tienes caramelos de fresa en tu carrito, el Configurador evalúa la regla y evita que selecciones caramelos de limón, asegurando que no termines con una combinación incompatible.

En este ejemplo anterior

El Ámbito de evaluación de la calculadora ayuda a calcular el precio total de sus dulces en función de ofertas especiales, descuentos y cantidad.

El Ámbito de evaluación del configurador garantiza que siga ciertas reglas al seleccionar diferentes opciones, como sabores, para evitar opciones incompatibles.

¿Explicar el evento de evaluación de la calculadora?

Una captura de pantalla de una computadora Descripción generada automáticamente

Expliquemos los eventos de evaluación de la calculadora de "Al iniciar", "Al calcular", "Antes de calcular" y "Después de calcular" con un ejemplo en tiempo real utilizando el escenario de la tienda de golosinas:

En breve:

“On Initiate” marca el comienzo del proceso de cálculo de caramelos.

“On Calculate” realiza el cálculo del precio real de los dulces.

"Antes de calcular" aplica cualquier verificación o regla final justo antes del cálculo.

"Después de calcular" permite acciones adicionales o sorpresas después de que se hayan determinado los precios.

Entendamos con más detalle:

1. Al iniciar:

– Suponga que tiene una regla de precio que establece que si el cliente es un miembro leal, obtiene un 5 % de descuento en todas las compras de golosinas.

– Esta regla de precio tendría el evento de evaluación establecido en "Al iniciar".

– Cuando el cliente inicia el proceso de cálculo del precio, como por ejemplo al comenzar una nueva cotización, el sistema verifica si es un miembro fiel y aplica el 5% de descuento a todos los dulces en su carrito desde el principio.

2. En Calcular:

– Imagine que tiene una regla de precio que ofrece un descuento por volumen si el cliente compra más de 10 dulces de cualquier sabor.

– Esta regla de precio tendría el evento de evaluación establecido en "Al calcular".

– A medida que el cliente agrega dulces a su carrito, el sistema calcula continuamente la cantidad total de dulces. Cuando alcanza o supera los 10, se activa la regla de precio y se aplica un descuento por volumen a todos los dulces del carrito.

3. Antes de calcular:

– Supongamos que tiene una regla de precio que establece que si el cliente ha seleccionado dulces con un precio total superior a $30, recibe una bolsa de dulces de cortesía.

– Esta regla de precio tendría el evento de evaluación establecido en "Antes de calcular".

– Justo antes de realizar el cálculo final, el sistema verifica si el precio total de los dulces supera los $30. Si es así, se activa la regla de precio y se agrega una bolsa de dulces de cortesía al carrito.

4. Después de calcular:

– Suponga que tiene una regla de precio que ofrece una oferta promocional especial de "Compre 2, obtenga 1 gratis" para un sabor de dulce específico.

– Esta regla de precio tendría el evento de evaluación establecido en "Después de calcular".

– Una vez que se completa el cálculo final, el sistema revisa los dulces seleccionados por el cliente e identifica si califican para la oferta "Compre 2, obtenga 1 gratis". Si lo hacen, se activa la regla de precio y el sistema agrega los dulces gratis al carrito.

Mediante el uso de estos diferentes eventos de evaluación de la calculadora, puede aplicar descuentos, ofertas o modificaciones específicas en diferentes etapas del proceso de cálculo en Salesforce CPQ.

¿Cuál es el significado del campo "Condición cumplida" en una regla de precios?

Una captura de pantalla de una computadora Descripción generada automáticamente

Expliquemos los conceptos de "Condición cumplida – Todas" y "Condición cumplida – Cualquiera" usando nuestro ejemplo de tienda de golosinas:

1. Condición cumplida – Todas:

– Imagina que tienes una tienda de golosinas con una promoción especial: si un cliente compra al menos 5 golosinas y el precio total supera los $10, recibe una bolsa de golosinas gratis.

– Esta regla de precio tendría la condición cumplida establecida en “Todos”.

– Cuando un cliente agrega 5 o más dulces a su carrito y el precio total de esos dulces supera los $10, ¡se cumplen todas las condiciones!

– Como resultado, el sistema reconoce que el cliente califica para la promoción y se agrega automáticamente una bolsa de dulces gratis a su pedido al finalizar la compra.

2. Condición cumplida – Cualquiera:

– Ahora, considere una regla de precio diferente: si un cliente compra cualquier dulce con un sabor específico (por ejemplo, “Cereza”), o si compra más de 10 dulces en total, recibe un descuento del 20%.

– Esta regla de precio tendría la condición cumplida establecida en "Cualquiera".

– Cuando un cliente selecciona un dulce con sabor a “Cereza” o agrega más de 10 dulces a su carrito, ¡cualquiera de las condiciones se cumple!

– Como resultado, el sistema aplica el 20% de descuento a los dulces que califican, independientemente de la condición que activó el descuento.

En ambos escenarios, la "Condición cumplida: todas" requiere que se cumplan todas las condiciones especificadas, mientras que la "Condición cumplida: cualquiera" solo requiere que se cumpla al menos una condición. Estos diferentes enfoques le permiten crear estrategias de precios personalizadas basadas en combinaciones específicas o criterios individuales.

¿Puede explicar el campo de objeto de búsqueda en una regla de precio con la ayuda del escenario?

Un rectángulo negro con borde azul Descripción generada automáticamente

En tu tienda de golosinas tienes diferentes tipos de golosinas con características únicas. El campo Objeto de búsqueda en el objeto Regla de precio es como una conexión especial que lo ayuda a aplicar reglas específicas a ciertos tipos de dulces.

Imagina que tienes un caramelo llamado "Rainbow Lollipop" y quieres crear una regla de precio especial para él. Así es como funciona:

1. Relación de objetos de búsqueda:

– El campo Objeto de búsqueda es como un puente que conecta la regla de precio con el caramelo “Rainbow Lollipop”.

– Te ayuda a establecer una relación especial entre la Regla de Precio y este tipo de dulce específico.

2. Acceder a la información de dulces:

– Una vez que se establece la relación de búsqueda, puede acceder a la información sobre el caramelo “Rainbow Lollipop” dentro de la regla de precio.

– Podrás conocer detalles sobre el dulce, como su sabor, color

3. Aplicación de reglas especiales:

– Al usar el campo Objeto de búsqueda, puede crear reglas especiales que solo se aplican al caramelo “Rainbow Lollipop”.

– Por ejemplo, puede crear una regla que ofrezca un descuento del 20% por cada “Rainbow Lollipop” comprado.

Al tener esta conexión especial entre la Regla de precio y el caramelo “Rainbow Lollipop” a través del campo Objeto de búsqueda, puede crear reglas únicas y personalizadas solo para ese tipo de caramelo. Te permite aplicar ofertas especiales, descuentos u otras acciones específicas al “Rainbow Lollipop” que lo hacen destacar entre otros dulces en tu tienda.

Vamos a entender con más profundidad:

El campo Objeto de búsqueda en el objeto Regla de precios es una función que le permite establecer una relación entre la Regla de precios y otro objeto en su organización de Salesforce.

1. Establecimiento de la relación de búsqueda:

– Al crear una regla de precios, puede seleccionar un objeto relacionado en el campo Objeto de búsqueda.

– Esto establece una relación de búsqueda entre la regla de precio y el objeto elegido.

– El objeto relacionado puede ser un objeto de Salesforce estándar (como Producto o Cuenta) o un objeto personalizado específico para sus necesidades comerciales.

2. Acceso a datos relacionados:

– Una vez que se establece la relación de búsqueda, puede acceder a los datos relacionados del objeto elegido dentro de la regla de precio.

– Esto significa que puede recuperar información de campos específicos en el objeto relacionado y usarla en su lógica de reglas de precios.

– Por ejemplo, si el objeto de búsqueda se establece en "Producto", puede acceder a los campos del objeto Producto, como Nombre del producto, Precio o cualquier campo personalizado relacionado con el producto.

3. Utilización del objeto de búsqueda en la lógica de la regla de precios:

– Con el campo Objeto de búsqueda, puede aprovechar los datos relacionados del objeto elegido para impulsar las condiciones y acciones de la regla de precios.

– Por ejemplo, puede crear una regla de precio que aplique un descuento basado en el valor de un campo en el objeto relacionado.

– Al hacer referencia a los campos en el objeto relacionado, puede definir condiciones y acciones que son dinámicas y adaptables en función de los valores almacenados en el objeto relacionado.

En resumen, el campo Objeto de búsqueda en la Regla de precios le permite establecer una relación con otro objeto, recuperar datos de ese objeto y usarlos en la lógica de su regla de precios.

Si no ponemos ningún nombre de objeto en el campo de objeto de búsqueda, ¿significa que no obtendrá datos de ese objeto y no podemos establecer una condición basada en un registro en particular?

Eso es correcto. Si no especifica un nombre de objeto en el campo Objeto de búsqueda de la Regla de precio, significa que la regla de precio no obtendrá datos de ningún objeto específico . Sin un objeto de búsqueda especificado, no podrá establecer condiciones ni realizar acciones basadas en un registro particular o datos de otro objeto.

El campo Objeto de búsqueda es fundamental para establecer una relación entre la regla de precios y un objeto específico. Le permite acceder y aprovechar los datos de ese objeto en la lógica de su regla de precios. Si deja el campo Objeto de búsqueda en blanco, la regla de precio no tendrá una conexión con ningún objeto, lo que limitará su capacidad para hacer referencia a datos de otros registros o aplicar condiciones basadas en valores específicos .

¿Cuál es el significado de la casilla de verificación Activa en la regla de precios?

Una captura de pantalla de una computadora Descripción generada automáticamente

Cuando la casilla de verificación "Activo" está marcada, indica que la regla de precios está activa y solo entonces se evaluará durante el proceso de cálculo de precios. Las reglas de precio inactivas no se evalúan y sus condiciones y acciones se ignoran.

¿Cómo afecta el campo Orden de evaluación a la aplicación de las Reglas de precios?

Un rectángulo blanco con líneas negras Descripción generada automáticamente

El “Orden de Evaluación” en una Regla de Precios es fundamental para definir la secuencia en la que se evalúan las reglas durante el proceso de cálculo de precios. Ayuda a establecer la prioridad y la jerarquía de las reglas cuando se aplican varias reglas. Las reglas con valores de orden de evaluación más bajos se evalúan primero.

Ejemplo de Orden de Evaluación:

Regla 1: Descuento para barras de chocolate

Orden de evaluación: 1

Condición: Tipo de Caramelo es igual a “Barra de Chocolate”

Acción: Aplicar un 10% de descuento sobre el precio de la barra de chocolate.

Regla 2: compre uno, llévese otro gratis

Orden de evaluación: 2

Condición: la cantidad es mayor o igual a 2

Acción: Proporcionar un dulce gratis por cada dos dulces comprados.

En este ejemplo, la regla 1 tiene un orden de evaluación de 1, mientras que la regla 2 tiene un orden de evaluación de 2.

La regla 1 se evaluará primero, seguida de la regla 2.

Ahora, veamos cómo la Orden de Evaluación impacta el cálculo de precios:

Supongamos que un cliente agrega dos barras de chocolate a su carrito. La Orden de Evaluación dicta la secuencia de ejecución de la regla. La regla 1, con un Orden de Evaluación inferior a 1, se evaluará primero.

Regla 1 (Orden de evaluación 1):

Dado que el tipo de caramelo es una “Barra de Chocolate” (condición cumplida), se aplica un descuento del 10% sobre el precio de cada barra de chocolate.

Regla 2 (Orden de Evaluación 2):

La cantidad es 2 (condición cumplida), pero la regla 2 no se evaluará porque la regla 1 ya se aplicó.

Como resultado, el cliente recibe un 10% de descuento en cada barra de chocolate y no hay cambios debido a la Regla 2.

Nota: La regla 1 se evalúa primero y la regla 2 se omite porque la regla 1 ya se ha aplicado. Sólo se aplicará la primera regla. Esto se debe a que el Orden de evaluación determina la secuencia en la que se evalúan las reglas y, una vez que se aplica una regla, se omiten las reglas posteriores con valores de Orden de evaluación más altos.

¿Qué sucede si queremos que se apliquen las reglas de precios y que no se omita ninguna según el Orden de evaluación?

Si desea que se apliquen ambas reglas sin omitir ninguna de ellas, deberá asegurarse de que ambas reglas tengan el mismo valor de Orden de evaluación. Al asignar el mismo Orden de Evaluación a ambas reglas, indica que tienen la misma prioridad, y ambas serán evaluadas y aplicadas si se cumplen sus respectivas condiciones.

Modifiquemos el ejemplo para ilustrar esto:

1. Regla 1: Descuento para barras de chocolate

– Orden de Evaluación: 1

– Condición: Tipo de Caramelo es igual a “Barra de Chocolate”

– Acción: Aplicar un 10% de descuento sobre el precio de la tableta de chocolate.

2. Regla 2: compre uno, llévese otro gratis

– Orden de Evaluación: 1

– Condición: La cantidad es mayor o igual a 2

– Acción: Proporcionar un caramelo gratis por cada dos caramelos comprados.

Con esta modificación, ambas reglas tienen un Orden de Evaluación de 1, lo que indica que tienen la misma prioridad.

Supongamos que un cliente agrega dos barras de chocolate a su carrito: la regla 1 y la regla 2, ambas con el orden de evaluación 1, se evaluarán en el orden en que aparecen.

– Regla 1 (Orden de Evaluación 1):

– Dado que el tipo de caramelo es una “Barra de Chocolate” (condición cumplida), se aplica un 10% de descuento sobre el precio de cada barra de chocolate.

– Regla 2 (Orden de Evaluación 1):

– La cantidad es 2 (condición cumplida), y como ambas reglas tienen el mismo Orden de Evaluación, también se evalúa la Regla 2.

– Se ejecuta la acción de la Regla 2, entregando un caramelo gratis por cada dos caramelos comprados.

En este escenario, dado que ambas reglas tienen el mismo Orden de Evaluación, se evalúan en el orden en que aparecen y ambas reglas se aplican si se cumplen sus condiciones. El cliente recibe un 10% de descuento en cada barra de chocolate y recibe un dulce gratis debido a la Regla 2.

¿Cómo puede definir condiciones complejas usando la función de Condición avanzada en una regla de precio?

Una captura de pantalla de una computadora Descripción generada automáticamente

Expliquemos la Condición Avanzada en una Regla de Precio usando un ejemplo de caramelo:

Escenario de regla:

– Desea crear una regla de precio para los dulces que son del tipo “Gummy Bear”, tienen un sabor a “Fresa” o se encuentran dentro de un rango de precios de $1 a $5.

Creando la Condición Avanzada:

– Con la función Condición avanzada, puede definir una condición compleja que involucre múltiples campos y valores de comparación.

– En este caso, configuraría la Condición de precio asociada con la regla de precio con los siguientes componentes:

– Condición 1: Tipo de Caramelo es igual a “Osito de Gominola”

– Condición 2: Sabor igual a “Fresa”

– Condición 3: El precio está entre $1 y $5

(Candy_Type__c = 'Gummy Bear' && Flavor__c = 'Fresa') || (Precio__c >= 1 && Precio__c <= 5)

Tal como es (1 Y 2) O 3, implementaremos esta lógica utilizando la condición avanzada

¿Qué es el campo Producto en la regla de precio?

Un rectángulo blanco con líneas negras Descripción generada automáticamente

Expliquemos el campo “Producto” en una Regla de Precio usando un ejemplo de dulces de una manera simple y fácil de entender:

Imagina que tienes una tienda de dulces con una variedad de dulces, como piruletas, barras de chocolate y ositos de goma. Cada caramelo tiene su propio precio. Ahora, hablemos del campo “Producto” en una regla de precio:

1. Selección de un producto de caramelo:

– El campo “Producto” en una regla de precio le permite elegir un dulce específico del inventario de su tienda.

– Por ejemplo, puede seleccionar el caramelo “Gummy Bears” como el producto de destino para la regla de precio.

2. Aplicar acciones de fijación de precios a los dulces seleccionados:

– Una vez que haya seleccionado el caramelo "Gummy Bears" en el campo "Producto", puede definir las acciones de fijación de precios que se aplicarán específicamente a ese caramelo.

– Las acciones de fijación de precios pueden incluir cosas como descuentos u ofertas especiales.

– Por ejemplo, puede crear una regla de precio que proporcione un 10 % de descuento en el precio de los dulces “Gummy Bears”.

3. Creación de condiciones divertidas (opcional):

También puede establecer condiciones divertidas en función de las características de los dulces seleccionados.

Por ejemplo, puede crear una condición que aplique la regla del precio solo si el caramelo "Gummy Bears" es de color rojo.

Podemos agregar el producto en el campo de objeto de búsqueda en lugar del campo de producto en Salesforce, ¿cuál es la diferencia?

¡Estás en lo correcto! Además de seleccionar el producto directamente en el campo "Producto" de una regla de precios, también tiene la opción de hacer referencia al producto a través de un campo de relación de búsqueda utilizando un objeto de búsqueda. Exploremos la diferencia entre los dos enfoques:

1. Campo de producto:

– Cuando selecciona el producto directamente en el campo “Producto” de la Regla de precio, está asociando la regla de precio directamente con un producto específico.

– Este enfoque es útil cuando desea definir acciones o condiciones de fijación de precios que se aplican a un producto o grupo de productos en particular.

– Es una forma sencilla de orientar productos específicos dentro de su catálogo y definir reglas exclusivamente para esos productos.

2. Objeto de búsqueda:

– Con un objeto de búsqueda, puede establecer una relación entre la Regla de precio y otro objeto en Salesforce, como un objeto personalizado o un objeto estándar como una Cuenta u Oportunidad.

– Esto le permite hacer referencia al producto indirectamente a través del objeto relacionado.

– Mediante el uso de una relación de búsqueda, puede definir acciones o condiciones de fijación de precios en función de los datos tanto del objeto relacionado como del producto asociado.

– Este enfoque proporciona más flexibilidad en la creación de reglas que dependen de la información de otros objetos además del propio producto.

La elección entre usar el campo directo "Producto" o un objeto de búsqueda depende de su caso de uso y requisitos específicos. Si solo necesita segmentar y definir reglas para productos específicos, el uso del campo "Producto" suele ser suficiente. Sin embargo, si su lógica de precios involucra datos de objetos relacionados o requiere relaciones más complejas, puede ser beneficioso utilizar un objeto de búsqueda.

¿Cómo se especifican los grupos de productos a los que se aplica la regla de precios?

Expliquemos la implementación de grupos de productos en Reglas de precios usando un ejemplo de dulces:

1. Definir grupos de productos:

-Cree un campo personalizado de "Grupo de productos" en el objeto del producto. Establecer el valor del campo con

  • Caramelos Gomosos
  • Caramelos De Chocolate

2. Asignar atributos del producto:

– Establezca el campo "Grupo de productos" en el objeto del producto en "Caramelos de goma" para los productos de ositos de goma y gusanos de goma.

– Establezca el campo "Grupo de productos" en el objeto de producto en "Caramelos de chocolate" para barras de chocolate y productos de frutos secos cubiertos de chocolate.

3. Cree o edite una regla de precios:

– Cree una nueva regla de precios o edite una existente haciendo clic en el botón "Nuevo" o seleccionando la regla de precios deseada.

4. Asociar con el Objeto Producto:

– En el registro de Regla de precio, localice el campo de búsqueda o el campo de producto que le permite asociar la Regla de precio con el objeto que contiene el campo “Grupo de productos” (en este caso, el objeto Producto).

5. Definir condiciones:

– Dentro de la Regla de Precio, defina las condiciones de precio que especifican los grupos de productos.

– Elija el campo que representa el grupo de productos, como el campo “Grupo de productos” en el objeto asociado (objeto Producto).

– Configure el operador adecuado (p. ej., “Es igual a”) y el valor deseado para el grupo de productos (p. ej., “Caramelos de goma”).

Ejemplo: Condición 1

– Campo: Producto: Grupo de productos

– Operador: Igual

– Valor: “Caramelos de goma”

Ejemplo: Condición 2

– Campo: Producto: Grupo de productos

– Operador: Igual

– Valor: “Caramelos de Chocolate”

6. Especificar acciones de fijación de precios:

– Una vez que se cumplan las condiciones, defina las acciones de fijación de precios que desea aplicar a los productos en los grupos de productos específicos.

– Configure las acciones de fijación de precios en función de sus requisitos, como establecer descuentos, ajustar precios o aplicar cualquier otra lógica de fijación de precios que desee.

Ejemplo: Precio Acción 1

– Si se cumple la Condición 1 (Grupo de productos es igual a “Caramelos de gominola”), establezca un 10% de descuento en los productos afectados.

Ejemplo: Precio Acción 2

– Si se cumple la Condición 2 (Grupo de Producto es igual a “Dulces de Chocolate”), establecer un precio especial en los productos afectados.

¿Cuáles son algunas de las mejores prácticas para diseñar y configurar reglas de precios en Salesforce CPQ?

1. Definir requisitos claros de fijación de precios:

– Defina claramente sus requisitos de precios y comprenda el comportamiento de precios deseado.

– Identificar las estrategias de precios, las reglas de descuento y los cálculos personalizados necesarios.

2. Estructura de las reglas de precios del plan:

– Planifica la estructura de tus Reglas de Precios de forma lógica y organizada.

– Dividir escenarios de precios complejos en reglas de precios más pequeñas y manejables.

– Esto mejora la capacidad de mantenimiento y facilita la resolución de problemas y las modificaciones.

3. Use nombres de reglas descriptivos:

– Asigne nombres significativos y descriptivos a sus Reglas de precios.

– Esto ayuda a identificar y comprender el propósito de cada regla, especialmente cuando se trata de muchas reglas de precios.

4. Establecer orden de evaluación lógica:

– Establezca el campo Orden de evaluación en el objeto Regla de precio de forma adecuada.

– Controlar la secuencia en la que se evalúan y aplican las Reglas de Precios.

– Asegúrese de que el orden de evaluación se alinee con la lógica y los requisitos de precios previstos.

5. Probar y validar reglas de precios:

– Pruebe y valide exhaustivamente sus reglas de precios con varios escenarios de prueba.

– Verificar que los resultados de la fijación de precios se alineen con los resultados esperados.

– Probar diferentes combinaciones de condiciones, configuraciones de productos y escenarios de precios.

6. Aproveche las condiciones avanzadas:

– Utilice la función Condiciones avanzadas para implementar criterios de reglas complejos.

– Combinar múltiples condiciones utilizando operadores lógicos (AND, OR) y funciones.

– Esto permite una lógica de reglas más compleja y un control más detallado.

7. Reglas de revisión y actualización periódicas:

– Revise periódicamente sus reglas de precios para asegurarse de que se mantengan alineadas con las estrategias de precios en evolución y los requisitos comerciales.

– Actualice las reglas según sea necesario para reflejar los cambios en los productos, los modelos de precios o las estrategias de descuento.

8. Lógica de la regla de precio del documento:

– Documente la lógica y el razonamiento detrás de sus Reglas de precios.

– Esto sirve como referencia para futuras modificaciones y ayuda con la transferencia de conocimiento dentro del equipo.

¿Se pueden usar reglas de precios para actualizar valores de campo en un registro? Explicar.

No, las reglas de precios en Salesforce CPQ se utilizan principalmente para los cálculos y ajustes de precios en lugar de actualizar directamente los valores de los campos en un registro.

Si bien las reglas de precios pueden afectar los resultados y resultados de la fijación de precios, no están diseñadas para actualizar directamente los valores de campo en un registro fuera del contexto de fijación de precios.

¿Cuál es la diferencia entre una regla de precio y un programa de descuento?

Las reglas de precios se utilizan para definir una lógica de precios dinámica y condicional, lo que permite cálculos y acciones complejos basados en condiciones específicas. Por otro lado, los Programas de descuento proporcionan un enfoque estandarizado para aplicar descuentos predefinidos de manera uniforme en múltiples productos o escenarios de precios. Las reglas de precios ofrecen más flexibilidad y opciones de personalización, mientras que los calendarios de descuentos ofrecen una forma coherente y optimizada de gestionar los descuentos.

Expliquemos la diferencia entre una regla de precio y un programa de descuento usando un ejemplo de dulces:

Regla de precio:

– Una regla de precios le permite definir acciones o ajustes de precios específicos basados en ciertas condiciones para dulces individuales o grupos de dulces.

– Por ejemplo, puede crear una regla de precios que aplique un descuento del 10 % a todos los dulces de ositos de goma durante un período promocional.

– Las reglas de precios brindan flexibilidad para aplicar diferentes lógicas de precios, descuentos o ajustes basados en diversas condiciones para dulces o grupos de dulces específicos.

Horario de descuento:

– En el mismo escenario de la tienda de golosinas, se usaría un programa de descuentos para administrar los descuentos estandarizados que se aplican a varios dulces.

– Un calendario de descuentos proporciona un enfoque consistente para aplicar descuentos predefinidos de manera uniforme.

– Por ejemplo, puede crear un programa de descuento llamado "10 % de descuento" que ofrece un 10 % de descuento en todos los dulces en toda la tienda.

– Los Programas de descuento ayudan a mantener precios consistentes en diferentes dulces o niveles de precios, lo que garantiza que se aplique el mismo descuento a varios productos sin necesidad de Reglas de precios individuales.

50% Me gusta VS
50% No me gusta

Categorías
Developers Salesforce

Las extensiones Open VSX ahora son compatibles con Code Builder ☁️

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.

Las extensiones Open VSX ahora son compatibles con Code Builder | Blog de desarrolladores de Salesforce

Nos complace anunciar que Code Builder ahora le permite agregar extensiones desde Open VSX Registry , que brinda acceso de código abierto a las extensiones de VS Code. Con esta nueva funcionalidad, puede personalizar Code Builder con extensiones de la comunidad y de terceros para satisfacer sus necesidades más rápido y ser más productivo. En esta publicación de blog, aprenderá sobre los beneficios que Open VSX aporta a Code Builder, cómo usarlo y cómo compartir sus comentarios con nosotros.

¿Qué es el generador de código?

Code Builder es un entorno de desarrollo moderno basado en la web que está optimizado para Salesforce. Actualmente en Beta, Code Builder le permite implementar un entorno de desarrollo integrado (IDE) con todas las funciones en su navegador desde su organización de Salesforce, con solo presionar un botón.

Las funciones clave, como la finalización y refactorización de código, ayudan a aumentar la productividad del desarrollador, mientras que las herramientas de apuntar y hacer clic dentro de Code Builder, como SOQL Builder, y la compatibilidad con todos los lenguajes y marcos de trabajo de Salesforce, facilitan el desarrollo de cualquier forma que desee. me gusta

Finalmente, con Code Builder, que se basa en AWS, puede acceder a las mismas extensiones de Salesforce y CLI que están disponibles en el escritorio.

Mejor juntos: Code Builder + Open VSX

Cuando inicia Code Builder desde una organización, viene precargado con las herramientas de Salesforce que necesita, incluido todo el paquete de extensiones de Salesforce y la CLI de Salesforce. Sin embargo, como parte del proceso de su equipo, es posible que necesite otras herramientas para realizar el trabajo. Ahí es donde Open VSX Registry puede ayudar.

Por ejemplo, tomemos el control de fuente. Code Builder ya tiene acceso a Git y GitHub, pero quizás su equipo use algo diferente. Si su equipo trabaja con Jira y BitBucket, puede agregar las extensiones de Jira y Bitbucket en su entorno personal de Code Builder, lo que le permite trabajar con historias y control de fuente sin problemas dentro de Code Builder.

Con casi 3000 extensiones y 1600 editores diferentes en Open VSX, hay muchos otros complementos para elegir para personalizar su entorno Code Builder.

Salesforce y Open VSX

En Salesforce, estamos comprometidos con el código abierto . Dentro de las organizaciones que fomentan y adoptan el código abierto, los beneficios para los desarrolladores son claros:

  • Código de mayor calidad: el código fuente abierto generalmente exhibe las mejores prácticas de diseño de software; está escrito de forma modular y limpia, y también está bien documentado, ya que los desarrolladores de todo el mundo necesitan entender cómo funciona.
  • Mejora de habilidades blandas: trabajar en código abierto lo lleva a aprender naturalmente cómo ser un gran compañero de equipo y colaborador. También aprende de otros desarrolladores expertos siguiendo las pautas de contribución y revisando el código.
  • Innovación: La inteligencia colectiva es extremadamente poderosa. Al tener diferentes cerebros con diferentes antecedentes y mentalidades trabajando juntos, nuevas funciones e ideas innovadoras pueden surgir rápidamente.

Open VSX es una gran representación de la colaboración de código abierto. Dado su continuo crecimiento, la Fundación Eclipse ha formado un grupo de trabajo para guiar la evolución del Registro Open VSX . Salesforce es patrocinador y miembro del grupo de trabajo para ayudar a garantizar que nuestros usuarios tengan las herramientas y funciones necesarias para construir en nuestra plataforma.

Próximos pasos

Code Builder se encuentra actualmente en versión beta abierta y está disponible para que cualquiera lo pruebe. Si desea encontrar más recursos, o si tiene preguntas o comentarios, consulte el grupo de la comunidad Code Builder Trailblazer . ¡Esperamos sus comentarios!

Tenga en cuenta que también puede acceder a las extensiones de Salesforce en Open VSX, por lo que están disponibles en cualquier lugar donde las necesite.

Sobre los autores

Stephanie Maddox es directora del equipo de gestión de productos de Salesforce. Puedes seguirla en LinkedIn o Twitter .

Alba Rivas trabaja como Principal Developer Advocate en Salesforce. Puedes seguirla en Linkedin , Twitter o GitHub .

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Categorías
Estrategias para Empresas

¿Intenta ganar clientes de Internet de fibra? 3 formas en que la IA puede ayudar

A medida que más empresas y personas buscan una conectividad a Internet más rápida que la que pueden proporcionar los cables, la fibra es una inversión popular. Dado que se espera que el mercado mundial de la fibra alcance los 31 300 millones de USD para 2030 , está claro que el auge de la fibra hasta el hogar está aquí.

La IA puede ayudarlo a capitalizar esto, escalando sus esfuerzos para obtener nuevos clientes y ayudándolo a brindar un mejor servicio a los actuales .

Adquirir la mayor cantidad de clientes lo más rápido posible es el nombre del juego para los proveedores de fibra hasta el hogar. Las enormes inversiones en infraestructura están presionando aún más a las empresas de telecomunicaciones para que hagan precisamente eso.

Modernice el servicio con la automatización

Aproveche la IA y la automatización para liberar a los equipos de servicio al cliente de tareas mundanas, brindar un servicio de calidad y ser más eficientes.

Sin embargo, la cantidad de nuevos clientes que puede atraer disminuye cada vez que se retrasa un nuevo proyecto, ya sean instalaciones de infraestructura más amplias o viviendas individuales. Eso perjudica su resultado final y la satisfacción del cliente .

Entonces, ¿cómo puede agregar más eficiencia al proceso sin acumular inversiones más significativas? Ahí es donde entran la IA y la automatización. La IA generativa puede ayudar a los proveedores de comunicaciones a optimizar sus inversiones, y eso incluye ayudar a capitalizar el auge de la fibra.

Las implementaciones de IA generativa pueden permitirle hacer preguntas específicas basadas en los datos de CRM de su empresa, ayudándole a tomar decisiones más informadas, lo que lleva a mejores resultados comerciales.

La tecnología de inteligencia artificial generativa que es segura, confiable y se basa en la amplitud de los datos de su cliente puede optimizar su inversión en fibra en cada paso del camino. Desde la identificación de vecindarios para proyectos de infraestructura hasta la optimización de las instalaciones de hogares individuales, así es como puede ayudar.

1. Identificar ubicaciones para la inversión de fibra hasta el hogar

Para capitalizar el auge de la fibra hasta el hogar, el uso de la IA generativa comienza desde el inicio del proceso, identificando en qué vecindarios colocar la fibra.

La tecnología de IA generativa puede analizar datos históricos, datos demográficos y tendencias del mercado para identificar dónde invertir en implementaciones o actualizaciones de infraestructura, por ejemplo. Junto con sus propios puntos de datos seguros, como la tasa de ganancia de su empresa en varios vecindarios, la IA generativa lo ayudará a encontrar las soluciones de diseño de red más rentables y eficientes.

También puede ayudar a los proveedores de fibra a identificar las comunidades con el mayor nivel de interés en la fibra, así como a crear flujos de trabajo inteligentes para aumentar los ingresos por registro e instalación más rápidamente.

2. Escale sus ventas de fibra de alto rendimiento

Tenga en cuenta que la IA que implementa es tan buena como los datos en los que se basa . Puede usar IA con sus datos protegidos para adaptar sus esfuerzos de marketing, como diseñar anuncios personalizados visualmente atractivos para dirigirse a audiencias específicas en función del historial de navegación y compras, creando modelos predictivos para pronosticar el comportamiento de compra de los clientes.

La IA generativa junto con las capacidades de IA basadas en el aprendizaje automático de larga data es el "santo grial" para escalar su alcance, según Vala Afshar, evangelista digital jefe de Salesforce. Eso también se aplica al despliegue de fibra en tantos hogares y empresas como sea posible.

Puede ayudar a optimizar sus ventas y marketing a través de otros beneficios, como:

  • Puntuación de clientes potenciales : use IA para analizar y priorizar automáticamente los clientes potenciales de instalación de fibra en función de su probabilidad de conversión.
  • Perspectivas de cuentas y oportunidades : la IA y los algoritmos de aprendizaje automático pueden recopilar y analizar datos de fuentes internas y externas para proporcionar una visión holística de posibles cuentas de fibra y oportunidades de ventas.
  • Pronóstico predictivo : con el análisis predictivo, la IA puede extraer datos históricos, patrones y otras correlaciones para brindarles a los proveedores de fibra la capacidad de anticipar el comportamiento del cliente, predecir tendencias de ventas y tomar otras decisiones basadas en datos.

Yendo un paso más allá, la IA generativa predice las tendencias de ventas futuras, analiza los datos de ventas y crea una comunicación personalizada, lo que lo ayuda a aprovechar al máximo la tendencia de fibra hasta el hogar.

La IA generativa también puede ayudar a su equipo de ventas a cerrar y optimizar nuevos acuerdos de fibra.

Puede crear propuestas y contratos a partir de datos de clientes, agilizando la creación, mejorando la personalización, la eficiencia y la precisión en todo el proceso.

El análisis de gestión de pedidos, en todo, desde métricas de rendimiento de pedidos, seguimiento y gestión de inventario, puede ayudar a identificar oportunidades de ventas adicionales y recomendaciones de productos, ahorrando horas de trabajo en tareas administrativas.

3. Mejore su proceso de instalación para trabajadores y clientes

La IA tampoco se detiene una vez que sus técnicos están en el campo.

Brinda a los despachadores una visibilidad completa para hacer coincidir los trabajadores y las asignaciones, y asigna proyectos de manera consistente en función de las habilidades, la ubicación, el inventario y las reglas comerciales. Les permite ver la fuerza de trabajo móvil y cada trabajo en una sola pantalla.

Los chatbots o asistentes virtuales con tecnología de IA pueden proporcionar actualizaciones en tiempo real sobre instalaciones o solicitudes de servicio que reducen el tiempo de intervención humana.

Puede ofrecer las siguientes mejores acciones y resolución de problemas para los técnicos de servicio de campo durante la instalación. Por ejemplo, los algoritmos de visión por computadora pueden analizar imágenes o videos de los sitios de instalación para guiar a los técnicos a través del proceso y garantizar la precisión en el camino e identificar cualquier problema que deba abordarse.

Esto crea un proceso de instalación simplificado y le permite entrar y salir de más hogares y negocios más rápido. AI lo ayuda a brindar el excelente servicio que los clientes esperan, brindándole una ventaja en la carrera de fibra hasta el hogar.

Uniéndolo todo con IA generativa

Veamos un ejemplo de un proveedor de fibra que utiliza IA generativa para convertir una simple solicitud de servicio de un cliente de banda ancha comercial en una posible instalación significativa de fibra para varias oficinas. Supongamos que un cliente se pone en contacto con el centro de servicio por inquietudes sobre videoconferencias nerviosas entre sus seis oficinas.

En el pasado, después de enterarse del problema, un representante de ventas regresaba e investigaba las ubicaciones de sus oficinas, cuántos empleados y el tipo de negocio. Luego usarían esa información para predecir el ancho de banda, o incluso si está disponible en las ubicaciones, necesario para una solución. El representante, junto con los arquitectos técnicos, establecería cuál es la solución, pensaría en una venta adicional y redactaría una propuesta y un contrato.

Eso podría tomar semanas o meses en completarse.

En su lugar, la IA puede tomar la indicación del cliente (arreglando videoconferencias sin fluctuaciones entre seis ubicaciones) y proporcionar instantáneamente las respuestas a todas las preguntas necesarias para resolver el problema.

Esta tecnología puede extraer datos seguros de sus clientes e identificar información relevante, como dónde se encuentran esas seis ubicaciones y el número de empleados por ubicación. Al leer los datos que ya tiene, la IA generativa puede informarle si la tecnología mejorada está disponible para esas ubicaciones.

También puede incorporar una recomendación de venta adicional instantánea, que en este caso, por ejemplo, sería instalar fibra en las ubicaciones para aumentar el ancho de banda y la mejor velocidad y calidad posibles para videoconferencias.

Luego, la IA generativa entrega una propuesta y un contrato utilizando toda esa información privada dentro de su dominio. Un representante de ventas y un ingeniero de red están en todo momento para proporcionar retroalimentación humana para ajustar o adaptar la respuesta, brindando el toque personal necesario para que todo funcione bien.

Pero gran parte del trabajo manual, el trabajo administrativo, lo realiza la IA. Reduce el proceso que habría tomado semanas o meses manualmente a solo unos pocos días, mientras libera los recursos de su empresa para enfocarse en tareas de mayor nivel, como enfocarse en expandir la fibra al hogar y la oficina.

Ya sea identificando ubicaciones para instalar fibra o alertando a los representantes sobre una oportunidad de venta adicional, la IA generativa y la automatización pueden ayudar a potenciar la carrera de su empresa para adquirir clientes de fibra y optimizar esas fuertes inversiones.

Gana ventaja en el auge de la fibra

Descubra las estrategias y tecnologías fundamentales necesarias para iluminar las experiencias de sus suscriptores de fibra.

Categorías
Estrategias para Empresas

3 pasos para la adopción estratégica de IA

En el mundo empresarial actual, que cambia rápidamente, la IA tiene el potencial de transformar las industrias y desbloquear oportunidades sin precedentes. Sin embargo, muchos líderes de la industria no están seguros de cómo adoptar esta adopción dentro de sus organizaciones. Se preguntan si reemplazará las capacidades humanas o agregará complejidad sin brindar beneficios tangibles.

Imagine las posibilidades de una adopción estratégica de IA. Un asombroso 79% de las empresas ya han experimentado una reducción significativa de costos a través de la implementación. Pero, sin una estrategia bien definida adaptada a sus necesidades únicas, las empresas corren el riesgo de perderse los beneficios de estas herramientas transformadoras.

Comience con AI Cloud

Los servicios profesionales de Salesforce pueden ayudarlo a establecer la base adecuada para el éxito con nuestro nuevo paquete, AI Coach.

¿Está listo para navegar por el complejo mundo de la IA y aprender cómo puede integrarse en su negocio? Profundicemos y descubramos tres pasos prácticos para la adopción e implementación exitosas de IA , y la importancia de usar esta tecnología de una manera en la que pueda confiar con AI Cloud .

1. Evalúe su preparación para la adopción de IA

Una de las preguntas que suelen hacer los clientes cuando se embarcan en su viaje de IA es: "¿Por dónde empiezo?" Con el gran potencial de la tecnología de IA generativa , los líderes de la industria pueden sentirse abrumados o inseguros sobre cuál es el mejor camino a seguir. Para navegar este mar de posibilidades, es crucial hacer las preguntas correctas y evaluar la preparación de su organización para adoptar la IA.

  • Identifique el valor empresarial : analice sus procesos, las interacciones con los clientes y los activos de datos para identificar las áreas en las que la IA puede crear el mayor valor. Podrá concentrar sus esfuerzos en áreas de alto impacto que ofrecen retornos óptimos.
  • Visualice cómo aprovechar el poder de la IA : Considere cómo la IA puede potenciar los objetivos de su empresa. Explore casos de uso, aplicaciones y resultados deseados específicos para crear una visión convincente.
  • Evalúe su preparación : luego, confirme que su organización está lista para adoptar la IA. Analice su infraestructura tecnológica, capacidades de datos y habilidades de la fuerza laboral para identificar brechas y áreas de mejora. Determine si tiene los recursos, la experiencia y los sistemas de soporte necesarios para implementar y administrar estas soluciones.

Al tomarse el tiempo para evaluar la preparación, puede abordar las barreras comunes para una adopción exitosa de la IA. Este proceso le permite tomar decisiones informadas, dividir recursos y desarrollar una hoja de ruta realista.

2. Cree una prueba de tecnología

Para garantizar una integración exitosa de la IA en su organización, debe desarrollar un plan práctico que aborde las preguntas comerciales clave . Un componente crucial de este plan es crear una prueba de tecnología , que determina si la solución o tecnología propuesta se integrará en su entorno existente y, por lo tanto, demostrará compatibilidad.

Hay varios pasos importantes para ayudarlo a evaluar la viabilidad, demostrar las capacidades del producto y validar la relevancia de los casos de uso. Al seguir estos pasos, puede posicionar a su equipo para el éxito y obtener el apoyo de las partes interesadas para la adopción de IA.

  • Identifique casos de uso : perfeccione los casos de uso de IA mediante la recopilación de información de toda su organización. Concéntrese en las áreas donde la IA puede tener el mayor impacto y alinee sus iniciativas con los objetivos de la empresa.
  • Implemente la prueba de tecnología de AI Cloud : evalúe la viabilidad implementando herramientas de IA en un entorno controlado. Pruebe el rendimiento, la escalabilidad y la integración con los sistemas existentes para abordar cualquier problema desde el principio y garantizar una transición sin problemas.
  • Demuestre las capacidades del producto : Muestre la transformación potencial a través de escenarios de práctica o proyectos piloto. Obtenga la aceptación y el apoyo de las partes interesadas al ilustrar cómo la IA aborda desafíos específicos y brinda los resultados deseados.
  • Valide el valor comercial : antes de la implementación, confirme la relevancia de sus casos de uso. Pruebe los beneficios no realizados, como mejoras en la eficiencia, mejores experiencias de los clientes y una mejor toma de decisiones, asegurándose de que sus iniciativas de IA se alineen con sus objetivos comerciales.

Al crear una prueba integral de la tecnología, sienta las bases para una adopción exitosa de la IA. Esta será su hoja de ruta para navegar por los posibles desafíos y aprovechar al máximo las oportunidades futuras.

Impulse la transformación continua con
La Oficina de Innovación Continua

Los servicios profesionales de Salesforce pueden ayudarlo a elevar sus capacidades para obtener el máximo valor de su inversión en Salesforce.

3. Transformar la visión en acción

Si bien la planificación es esencial, es crucial conectar los puntos entre la visión y la ejecución. Así es como puede transformar su plan bien elaborado en una realidad, superando futuros escollos en el camino:

  • Involucrar a diversas partes interesadas : involucrar una variedad de perspectivas e intereses a través de una colaboración inclusiva. Busque aportes de empleados, clientes y socios para dar forma a la estrategia de implementación.
  • Promueva la transparencia : mantenga su plan visible, claro y actualizado. Comparta el progreso y los hitos para fomentar la confianza, la propiedad colectiva y la responsabilidad.
  • Adopte una mentalidad de aprendizaje : manténgase abierto a nuevos conocimientos y perfeccione su plan a medida que avanza.
  • Tome decisiones informadas más fácilmente : proporcione estrategias prácticas y una visión clara para garantizar que sus elecciones estén alineadas con los resultados deseados.
  • Capacite a su gente : reconozca que el poder de la IA radica en las capacidades colectivas de su fuerza laboral. Aproveche sus conocimientos, habilidades y creatividad para desbloquear todo el potencial de la IA e impulsar un cambio significativo.

Recuerde que el verdadero poder de la IA no radica en la tecnología en sí, sino en su gente. Al seguir estas pautas, puede cerrar la brecha entre la visión y la acción, transformando las aspiraciones de su organización en resultados concretos.

Aproveche las oportunidades que se avecinan

Abraza el futuro con confianza. Descubra el poder transformador de la IA con AI Coach de Salesforce Professional Services . Nuestro equipo de expertos lo ayudará a evaluar la preparación para la IA de su organización. Desde la adopción de IA hasta la implementación de pruebas de tecnología que demuestren el valor comercial y la planificación estratégica de cómo puede establecer la base adecuada para el éxito a largo plazo con la Fase 0.

Juntos, navegaremos las complejidades de la implementación de IA. Al mismo tiempo, nos aseguraremos de que sus iniciativas funcionen hacia sus objetivos comerciales. Dé el primer paso para liberar todo el potencial de la IA en su organización. Póngase en contacto con los servicios profesionales de Salesforce hoy mismo.

Categorías
Developers Salesforce

Presentamos apex-mockery, una biblioteca de simulación de pruebas unitarias ☁️

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.

Presentamos apex-mockery, una biblioteca de simulación de pruebas unitarias | Blog de desarrolladores de Salesforce

Escribir pruebas sólidas es crucial para crear aplicaciones comerciales confiables y eficientes. En esta publicación, haremos un repaso de las pruebas unitarias y presentaremos apex-mockery , una biblioteca liviana de pruebas unitarias de Apex que lo ayuda a escribir pruebas unitarias de Apex verdaderamente desacopladas usando simulacros y aserciones. Compartiremos ejemplos de código para ayudarlo a comprender cómo puede usar la biblioteca para crear pruebas unitarias fáciles de entender y de ejecución rápida.

Un repaso a las pruebas unitarias

Antes de echar un vistazo a la biblioteca de Apex-Mockery, demos un paso atrás y analicemos algunos de los conceptos básicos de las pruebas unitarias desde un punto de vista independiente de la tecnología. Luego, veremos Apex y discutiremos por qué la mayoría de nosotros debería escribir pruebas unitarias en lugar de pruebas de integración.

Las pruebas unitarias están en la base de la pirámide de prueba.

La ingeniería de software abarca múltiples tipos de pruebas: unidad, integración, servicio, interfaz de usuario funcional, de extremo a extremo, aceptación del usuario y más. Como dice Martin Fowler , podemos representar un buen equilibrio entre estos tipos de pruebas dentro del alcance de un proyecto representándolos como una pirámide.

Las etiquetas (tipos de prueba) pueden cambiar, pero el principio clave aquí es que las pruebas que se ejecutan rápido y con frecuencia deben estar en la parte inferior de la pirámide. Estos son los más fáciles de implementar y mantener (por lo que cuestan menos). Luego, a medida que subimos a la cima, aumentamos la complejidad y el costo: las pruebas se ejecutan más lentamente y se vuelven más difíciles de implementar y mantener.

En el contexto de esta publicación y en aras de la brevedad, nos centraremos únicamente en las pruebas unitarias. Estos son los primeros que debe implementar en cualquier proyecto, y deben ser una prioridad en su estrategia de prueba.

Por definición, las pruebas unitarias están destinadas a probar la menor cantidad de código (una unidad) de un proyecto. Las pruebas unitarias solo deben basarse en la lógica pura y estar completamente desvinculadas de sus dependencias (otras clases) y límites (otros servicios, como almacenamiento de datos o servicios web). Las pruebas unitarias deben ejecutarse rápido; no requieren una configuración de prueba particular, como la inserción de datos en la base de datos, y requieren que simule las dependencias de la clase bajo prueba.

Escribir pruebas unitarias de Apex en lugar de pruebas de integración

Apex se beneficia de una estrecha integración con la Plataforma de Salesforce y, si bien esta característica es excelente para cosas como acceder rápida y fácilmente a la base de datos, difumina las líneas de separación de preocupaciones entre la lógica y los servicios. Como consecuencia, es muy fácil escribir pruebas de integración de Apex en lugar de pruebas unitarias. Por ejemplo, el código de Apex a menudo se prueba junto con la base de datos utilizando declaraciones @TestSetup y DML. Si bien estas pruebas de integración ayudan a lograr la cobertura, se basan en la base de datos y, por lo tanto, requieren más tiempo para ejecutarse que las pruebas unitarias "puras".

Como compartió Mitch Spano en su presentación de pruebas unitarias puras de Apex , la mayoría de las veces, no es necesario confiar en las pruebas de integración para probar capas de software de alto nivel, como controladores LWC, servicios y capas de aplicación. Gracias a la API de Stub de Apex lanzada en Spring '17, los desarrolladores pueden romper con esas dependencias en el contexto de las pruebas mediante la creación de su propia biblioteca/marco de pruebas unitarias o el uso de uno existente como apex-mockery.

Presentamos la burla del ápice

Como parte del trabajo de ingeniería de Salesforce, estábamos desarrollando un paquete administrado internamente y necesitábamos una biblioteca para escribir pruebas unitarias. Queríamos escribir pasos simples de "arreglar" (como en el patrón Arrange-Act-Assert ), escribir afirmaciones comprensibles y burlarnos de nuestras dependencias. Buscamos en todo el ecosistema una biblioteca fácil de leer y bien probada que pudiéramos usar para crear nuestro producto, pero no encontramos una combinación perfecta, por lo que decidimos escribir la nuestra. Estábamos tan contentos con la implementación final de la biblioteca que decidimos lanzarla como código abierto con el nombre apex-mockery .

La biblioteca apex-mockery proporciona una biblioteca de simulación simple, liviana y fácil de leer para Apex creada con la API Stub. La biblioteca está diseñada para que sea fácil de usar y brinde la mejor experiencia de desarrollador posible al generar simulacros y apéndices, configurar espías y escribir aserciones.

Lo guiaremos a través de un escenario de muestra para que pueda comprender el poder de la biblioteca con algunos ejemplos prácticos. Luego, le mostraremos cómo puede escribir pruebas para este proyecto de muestra en tres pasos:

  1. Crear simulacros y espías de métodos.
  2. Métodos de espionaje de trozo
  3. escribir afirmaciones

Ejemplo de escenario: pedidos de panadería y entrega

Considere el siguiente escenario de ejemplo: una panadería toma pedidos de pastelería y planifica las entregas utilizando un servicio dedicado. Los únicos datos que estamos considerando en el contexto de este escenario son los nombres de los pasteles y su fecha de entrega.

A continuación se muestra la implementación básica de nuestro escenario de panadería (el código completo está disponible en el repositorio del proyecto ).

Pastelería.cls

DeliveryService.cls

DeliveryServiceImpl.cls

Confirmación de pedido.cls

Panadería.cls

Ahora que hemos echado un vistazo a nuestro proyecto de muestra, echemos un vistazo a cómo podríamos escribir pruebas para el método Bakery.order .

Paso 1: crea simulacros y espías de métodos

Para funcionar, la clase Bakery necesita que se pase una instancia DeliveryService en su constructor. En un contexto de producción, el servicio se proporciona con una instancia concreta DeliveryServiceImpl de la siguiente manera:

Sin embargo, en el contexto de las pruebas unitarias, no debe usar una instancia de servicio real para garantizar el desacoplamiento. En otras palabras, DelivertServiceImpl se probará unitariamente por sí solo, por lo que no es necesario que pruebe las dos clases integradas juntas. Puede reemplazar la dependencia del servicio con un simulacro que implemente la interfaz DeliverService .

Así es como puede crear e inyectar fácilmente un simulacro de este tipo, gracias a apex-mockery:

Luego, su prueba necesita un espía, para que pueda controlar el comportamiento del método planDelivery y ejecutar aserciones en sus llamadas.

Ahora que tiene un servicio simulado y un espía en su método planDelivery , veamos cómo puede configurar su espía y ejecutar aserciones en él.

Paso 2: métodos de espionaje de trozo

Una vez que tenga una instancia simulada, puede controlar cómo se comportan sus métodos controlando sus valores de retorno y lanzando excepciones.

Utilice los métodos returns y throwsException para especificar un comportamiento predeterminado que se aplica a todas las llamadas a los métodos auxiliares. Luego, si es necesario, usa una combinación de whenCalledWith(<args>).thenReturn y whenCalledWith(<args>).thenThrow para aplicar comportamientos específicos a las llamadas a métodos que coincidan con los argumentos especificados.

Durante la ejecución de la prueba, apex-mockery comienza buscando una coincidencia en la configuración proporcionada por whenCalledWith . Si no se encuentra ninguno, vuelve a la configuración predeterminada ( returns o throwException ).

Veamos algunas situaciones comunes de configuración de stubs (ver más recetas ).

  • Devolver algo cada vez que se llame planDelivery
  • Lanza una excepción cada vez que se llama planDelivery
  • Devuelve algo cuando se llama con un argumento específico
  • Lanza una excepción cuando se llama con un argumento específico

Ahora que sabe cómo impulsar el comportamiento de su simulacro, puede agregar aserciones para probar su código.

Paso 3: Escribe afirmaciones

apex-mockery proporciona una API de afirmaciones fluidas. Tan pronto como comience su expectativa con Expect.that(mySpy) , tendrá acceso a varios métodos de afirmación. La biblioteca viene con una serie de afirmaciones de comportamiento fáciles de usar, como:

Si los comparadores de argumentos básicos no son suficientes para sus necesidades, también puede crear sus propios comparadores de argumentos personalizados .

Uniendo el ejemplo completo

Ahora que vimos los pasos individuales, terminemos y echemos un vistazo a nuestra prueba para el método Bakery.order . Observe cómo puede usar aserciones de burla de Apex, junto con las aserciones estándar de Apex de la clase system.Assert , en sus pruebas.

palabras de cierre

Esto concluye nuestro recorrido por las pruebas unitarias y la biblioteca de Apex-Mockery. Aprendió cómo las pruebas unitarias desacopladas son más fáciles de escribir y ejecutar mucho más rápido. Tener pruebas rápidas acorta el ciclo de retroalimentación del ciclo de vida del desarrollo, reduce la duración de la ejecución del flujo de trabajo de CI y acelera las implementaciones. Estos factores permiten a los desarrolladores implementar y ejecutar pruebas con frecuencia, mejorando así la calidad.

apex-mockery lo ayuda a dirigir su proyecto en esta dirección. Consulte el repositorio del proyecto para comenzar. Encontrará la documentación de la biblioteca con las opciones de instrucciones de instalación (instalación de fuente o paquete desbloqueado), algunas recetas de muestra y una guía de migración. ¡Feliz prueba unitaria!

Sobre los autores

Ludovic Meurillon es ingeniero de software en el equipo de Service Cloud en Grenoble, Francia. Empujó el código a la producción durante años, disfruta eliminando más líneas de código de las que agrega y prefiere la programación en pares sobre las revisiones de código y los productos de trabajo sobre el diseño perfecto. Sígalo en Twitter @LudoMeurillon o consulte sus proyectos de GitHub @ludomeurillon .

Sébastien Colladon es CTA e ingeniero de software en el equipo de Service Cloud en París, Francia. Le encanta contribuir a hacer del ecosistema de Salesforce un lugar mejor y disfruta aprender y trabajar con otros. Consulte sus proyectos de GitHub @ scolladon .

Philippe Ozil es un defensor principal de desarrolladores en Salesforce, donde se enfoca en la plataforma de Salesforce. Escribe contenido técnico y habla con frecuencia en conferencias. Es un desarrollador full-stack y disfruta trabajar en proyectos DevOps, robótica y VR. Sígalo en Twitter @PhilippeOzil o consulte sus proyectos de GitHub @pozil .

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Categorías
Developers

Potenciando su experiencia de Salesforce: Explorando las funciones de DocGen de airSlate para Salesforce

Última actualización el 19 de junio de 2023 por Rakesh Gupta

Atrás quedaron los días en que la creación, generación y gestión de documentos eran producto de tediosos procesos manuales. Hoy en día, DocGen se puede optimizar fácilmente mediante la integración nativa de airSlate con Salesforce .

En pocas palabras, DocGen es una forma de crear documentos con contenido dinámico. Permite agregar lógica condicional e insertar fragmentos de datos de tamaño variable para generar un documento. Simplemente escriba la sintaxis utilizando el generador de etiquetas incorporado de airSlate y no tendrá ningún problema con el formato o la creación de plantillas para otros casos más adelante.

Por ejemplo, el equipo de ventas no sabe qué producto específico comprará un cliente, por lo que puede agregar varias condiciones en su formulario de pedido que se mostrarán según el producto. Esto permite crear un formulario de pedido una vez, lo que reduce la cantidad de procesamiento manual.

Generación de documentos con contenido dinámico precargado desde Salesforce

Imagine que puede generar un informe que incluya datos sobre Oportunidades que no están cerradas, o solo aquellas creadas después de una fecha específica, o cualquier otro criterio de su elección con un solo clic del botón. Más tarde, puede adjuntar estos informes a los registros de Salesforce, cargarlos en un almacenamiento externo o enviarlos por correo electrónico a los clientes si es necesario.

Para hacerlo, deberá crear tablas con un número dinámico de filas agregando etiquetas de tabla a la plantilla DOCX.

  1. Para comenzar, seleccione el flujo en el que está trabajando actualmente en airSlate o cree un nuevo flujo si aún no tiene uno. Elija Generación de documentos en el bloque Documento . Cree o cargue el documento DOCX de su elección.
  2. Luego cree o inserte una tabla simple con la siguiente sintaxis de etiquetas o simplemente copie y pegue la tabla a continuación:

    Nombre Cantidad
    {{tabla(Productos)}}  
    {{OpportunityName}} {{Cantidad de oportunidad}}
    {{mesa final}}  
  3. Tome nota : {{table(Products)}} {{endtable}} son las filas entre la fila del elemento de apertura.
  4. Cuando haya terminado, haga clic en Completar .

Cómo funciona DocGen en airSlate para Salesforce: agregar documentos y formularios

  1. Vaya a la pestaña Bots y haga clic en Agregar bot .
  2. Elija Precompletar desde el registro de Salesforce en la categoría de Salesforce. Este airSlate Bot precarga automáticamente un documento con datos tomados de un registro de Salesforce, objetos secundarios y archivos PNG y JPEG.
  3. Haga clic en Instalar Bot para agregarlo a su flujo de trabajo, luego se abrirá la ventana de configuración de Bot.
  4. Conecte su cuenta de Salesforce y elija el objeto base de Salesforce que contiene el registro que necesita (por ejemplo, Cuenta ). Seleccione Oportunidad como objeto relacionado.
    1. Seleccione Tabla para el tipo de datos que desea mapear
    2. Asignar campos de objetos de Salesforce a campos de documentos
    3. A continuación, ajuste las condiciones de búsqueda para el registro inicial
  5. El registro inicial es un registro en Salesforce que usamos para extraer datos. Si ejecuta el Flujo desde Salesforce, a través de un botón personalizado , use ese registro donde se hizo clic en el botón personalizado, como el registro de inicio. Si el Flujo no se ejecuta desde Salesforce, simplemente agregue algunos criterios de búsqueda para encontrar el registro que contiene los datos que necesita.
  6. Seleccione el registro inicial de Salesforce para completar previamente los campos del documento. Seleccione un campo de objeto de Salesforce y asígnelo a un campo en el documento (por ejemplo, ID de cuenta ). Cuando un destinatario agrega datos, el Bot encontrará e insertará otros datos para este registro en los campos que ha asignado.
  7. Establezca condiciones si desea ajustar cómo y cuándo actuará el Bot. Las condiciones son opcionales y pueden basarse en un documento , destinatario , fecha , flujo o etapa del contrato , número de campos completados . Puede agregar más de una condición, así como especificar cualquier cantidad de condiciones para activar el Bot.
  8. Si es necesario, puede personalizar la configuración avanzada , configurar cuándo actuará el bot y agregar etiquetas personalizadas.
  9. Después de eso, haga clic en Aplicar configuración para habilitar el Bot.
[contenido incrustado]

Cómo funciona DocGen en airSlate para Salesforce: agregar un bot de Salesforce

DocGen en airSlate para Salesforce funciona a la perfección con la adición de Salesforce Bot. Esta poderosa integración agiliza el proceso de generación de documentos dentro del ecosistema de Salesforce. Al aprovechar el bot de Salesforce, los usuarios pueden automatizar fácilmente la creación y distribución de documentos, ahorrando un tiempo valioso y aumentando la productividad. Con solo unos pocos clics, el bot extrae datos relevantes de los registros de Salesforce y los fusiona con plantillas personalizables, generando documentos pulidos y sin errores.

[contenido incrustado]

Agregar lógica condicional a sus plantillas DOCX

Agregar etiquetas condicionales a sus plantillas DOCX le permite mostrar bloques de texto según ciertas condiciones.

La sintaxis básica de las etiquetas condicionales aparece de la siguiente manera:

  • {{if(ConditionFieldName='Valor1')}}
  • {{else((ConditionFieldName='Value2')}}
  • {{terminara si}}

Veamos cada pieza por separado.

  • {{if(ConditionFieldName}} acción exitosa, si la condición 1 es verdadera
  • {{else((ConditionFieldName}} acción exitosa, si la condición 2 es verdadera
  • {{endif}} condición es cualquier expresión, variable o valor de una función, cálculo o fuente de datos.

Usando condiciones, puede mostrar u ocultar párrafos de texto. Para crear una condición, puede usar un Campo o Variable (para casos más complejos) con operadores como = , != , > , < .

Para los valores de condición, puede utilizar valores establecidos, valores de campo o variables.

Veamos un caso en el que, según el destinatario, el administrador de la cuenta deja una nota para aprobar o revisar el informe mensual.

A continuación, encontrará una guía paso a paso sobre cómo agregar etiquetas condicionales a sus plantillas DOCX:

  1. Cargue el documento que necesita y haga clic en Editar junto a él .
  2. Agregue la etiqueta condicional de su elección a su plantilla DOCX. Por ejemplo, insertaremos la etiqueta con condiciones basadas en la etapa de oportunidad. {{if(AccountSite='Legal')}} ¡Felicitaciones por cerrar los tratos!
  3. {{else(AccountSite='Sales')}} Verifique las cantidades.
  4. {{terminara si}}
  5. Después de esto, haga clic en Completar .

Cómo funciona DocGen en airSlate para Salesforce: configuración de la lógica condicional (parte 1)

  1. Muévase a la pestaña Bots , haga clic en Agregar bot , busque e instale el prerrelleno desde el registro de Salesforce desde la categoría de Salesforce.
  2. Una vez que se abra la ventana de configuración del Bot, configure los ajustes de Conexión .
  3. A continuación, seleccione objetos y campos de mapa . Elija el objeto base de Salesforce que contiene el registro que necesita (por ejemplo, Cuenta ).
  4. El tipo de datos que va a asignar está configurado como Único de forma predeterminada.
  5. Asigne campos de objetos de Salesforce a campos de documentos: Nombre de cuenta y Sitio de cuenta en nuestro caso.
  6. Luego, seleccione el registro inicial de Salesforce para completar previamente los campos del documento y decida cuándo actuará el Bot.
  7. Si es necesario, vaya a la configuración avanzada para establecer la frecuencia con la que actuará el bot, qué hacer con una revisión en caso de que el bot falle y agregue etiquetas para buscar flujos.
  8. Haga clic en Aplicar configuración para habilitar el Bot.
[contenido incrustado]

Cómo funciona DocGen en airSlate para Salesforce: configuración de la lógica condicional (parte 2)

Con DocGen, puede automatizar la generación de documentos en función de condiciones específicas, agilizando su flujo de trabajo y eliminando errores manuales. Al configurar la lógica condicional, puede controlar dinámicamente el contenido, el formato y la distribución de sus documentos, asegurando la personalización. Descubra cómo DocGen de airSlate revoluciona la generación de documentos, haciendo que su experiencia con Salesforce sea aún más eficiente y efectiva.

[contenido incrustado]

Una vez que haya terminado la configuración del bot, puede activar su flujo de trabajo con el botón personalizado .

Cómo funciona DocGen en airSlate para Salesforce: botón personalizado

Para ver si se ejecutó el flujo, regrese a su cuenta de airSlate y continúe con todos los flujos haciendo clic en Cerrar en la parte superior de la página.

Junto al Flujo, haga clic en Revisar . Elija el Paso para revisar el Flujo y haga clic en Revisar una vez más.

Una vez que se ejecuta el Flujo, el documento se completará automáticamente con los valores de los registros de Salesforce y, luego, partes del texto se representarán condicionalmente en función de estos valores.

[contenido incrustado]

Cómo funciona DocGen en airSlate para Salesforce: revisión del flujo de trabajo

Con DocGen, puede revisar sin esfuerzo sus flujos de trabajo, mejorando la colaboración y la productividad. Esta poderosa herramienta le permite realizar cambios en tiempo real en sus documentos, realizar un seguimiento de las revisiones y recopilar comentarios de las partes interesadas, lo que garantiza una gestión de documentos sin inconvenientes. Diga adiós a las revisiones manuales que consumen mucho tiempo y adopte la eficiencia de DocGen for Salesforce de airSlate, transformando su flujo de trabajo en un proceso optimizado y sin errores.

[contenido incrustado]

La línea de fondo

En esta publicación de blog, hemos explorado el proceso de generar documentos con contenido dinámico precargado desde Salesforce e incorporar lógica condicional en sus plantillas DOCX. Sin embargo, creemos que solo hemos tocado las posibilidades ilimitadas que ofrece airSlate para Salesforce . Si está intrigado por las capacidades de airSlate , le recomendamos que solicite una demostración para presenciar todo su potencial en acción.

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Categorías
Developers Salesforce

Aumente el compromiso de la API con Anypoint API Experience Hub ☁️

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.

Aumente el compromiso de la API con Anypoint API Experience Hub | Blog de desarrolladores de Salesforce

¿Alguna vez trabajó en un proyecto el 90% del camino, solo para descubrir que alguien más ya lo había hecho? El uso de API es una forma común de integrar varios sistemas y crear aplicaciones modernas. Las API son bloques de construcción componibles que ayudan a brindar servicios digitales más rápido. Pero, la realidad es que las API creadas dentro de una organización a menudo carecen de visibilidad y documentación relevante para promover su reutilización por parte de otros equipos. ¿Qué sucede si puede tener una única fuente de verdad que le permita encontrar, ver e interactuar con las API?

Nos complace anunciar el lanzamiento de Anypoint API Experience Hub , la solución de portal de API personalizable de MuleSoft que ayuda a las organizaciones a administrar mejor su cartera de API y maximizar sus inversiones en API. En esta publicación de blog, profundizaremos en las funciones y los beneficios de la nueva solución para desarrolladores y organizaciones.

¿Qué es un portal API?

Un portal de API es una interfaz integral que ayuda a los proveedores de API a exponer y publicitar sus API, educar a las comunidades de desarrolladores sobre ellas, compartir documentación y proporcionar acceso de autoservicio a los consumidores de API . Algunos portales de API tienen capacidades adicionales, como un servicio de simulación, que permite a los desarrolladores probar una API, ver respuestas de ejemplo y analizar si la API cumple con sus requisitos, lo que ahorra tiempo general al desarrollador. Los portales de API se pueden crear tanto para desarrolladores internos como externos, lo que brinda oportunidades para aumentar el valor comercial de sus API.

En el backend, un buen portal de API también requiere administración de usuarios y API, seguridad integrada y la capacidad de realizar cambios rápidamente en el portal cuando sea necesario. Con todos estos factores en mente, MuleSoft ha creado una solución que permite a las organizaciones crear portales de API de marca que aumentan la visibilidad de la API y la participación de los desarrolladores.

Centro de experiencia de la API Anypoint

Hoy, MuleSoft lanzó Anypoint API Experience Hub , una nueva solución que permite a las organizaciones crear portales para desarrolladores para sus productos API. Con API Experience Hub, los gerentes de productos de API pueden crear portales de desarrolladores personalizados en cuestión de minutos utilizando una plantilla lista para usar que los ayuda a producir, publicar e interactuar con las API creadas en cualquier tecnología o plataforma.

API Experience Hub está impulsado por Salesforce Experience Cloud y es parte de la solución Universal API Management de MuleSoft , que permite a las organizaciones descubrir, controlar, publicar e interactuar con cualquier API creada en cualquier puerta de enlace o entorno.

Como desarrollador, podrá aprovechar los siguientes beneficios con Anypoint API Experience Hub :

  • Cree portales de API en cuestión de minutos
  • Descubra y reutilice las API fácilmente
  • Ahorre tiempo en la documentación
  • Colaborar con otros desarrolladores

Echemos un vistazo a cada beneficio en detalle.

Cree portales de API en cuestión de minutos

Con API Experience Hub, no necesita experiencia en desarrollo web para crear un portal de API, lo que le ahorra semanas de creación y resolución de problemas de un sitio web desde cero. Se le guiará a lo largo del proceso sin necesidad de alternar entre la documentación y las páginas de configuración del portal. Puede personalizar la marca y los colores de su organización con clics, lo que le permite crear su portal API en cuestión de minutos.

¿Quiere hacer cambios en la plantilla base? Puede personalizar aún más a través de Salesforce Experience Builder y arrastrar y soltar varios componentes. Aprovechando las capacidades de Experience Cloud, incluso puede desarrollar y agregar componentes web de iluminación personalizados para mejorar aún más la experiencia del usuario.

Descubra y reutilice las API fácilmente

Dado que API Experience Hub es parte de Anypoint Platform, cualquier API dentro de su organización que esté catalogada en Anypoint Exchange puede estar disponible en su portal de API. Anypoint Exchange es un mercado interno para su organización donde puede compartir especificaciones de API, fragmentos, conectores, plantillas de integración y más. Sin embargo, con API Experience Hub, los desarrolladores pueden seleccionar y compartir las API más consumibles para consumo interno y externo. Además, Experience Hub viene con capacidades de búsqueda integradas que le permitirán encontrar API específicas rápida y fácilmente para su reutilización.

También hay una página de detalles de API incorporada que le brinda información sobre cada API y le permite descargar o solicitar acceso a las API.

Ahorre tiempo en la documentación

Entonces, quizás se pregunte, ¿cómo funciona la documentación? Cuando su especificación de API esté lista para compartirse en el portal de API, ¡no necesitará documentar todo desde cero! Con capacidades de documentación autogenerativa, Experience Hub completa la documentación y los ejemplos según la especificación de su API. Esto te beneficia de dos maneras enormes:

  1. Ahorre tiempo al crear la documentación de especificación de su API. Por supuesto, puede agregar documentación personalizada o agregar más contexto, pero Experience Hub hará la mayor parte del trabajo por usted.
  2. Cuando busque API para incorporar a su proyecto, puede ir al portal de API sabiendo que hay documentación y ejemplos disponibles.

Por último, Experience Hub viene con una función Pruébelo que le permite realizar llamadas simuladas a una API para averiguar cómo sería una respuesta de ejemplo.

Colaborar con otros desarrolladores

Como se mencionó anteriormente, Anypoint API Experience Hub se basa en Salesforce Experience Cloud , un sistema de publicación web de clase empresarial. Esto significa que cuando crea un portal de API a través de Experience Hub, puede aprovechar numerosas capacidades listas para usar para comunidades, foros y soporte. Para obtener más información sobre Experience Cloud, consulte esta ruta .

El portal de API personalizado ayuda a mejorar el compromiso con las API al permitir que los desarrolladores internos y externos colaboren de manera efectiva para mejorar una API, todo dentro de una única plataforma unificada sin silos de conocimiento.

Conclusión

Con Anypoint API Experience Hub, puede crear un portal de API rápidamente, descubrir y reutilizar API, ahorrar tiempo en la documentación y colaborar fácilmente con otros desarrolladores. Su organización puede poner en funcionamiento un portal API en cuestión de minutos a través de un proceso de configuración simple y una plantilla de portal.

Si desea obtener más información sobre Anypoint API Experience Hub, consulte nuestro video de presentación de productos .

Sumérjase aún más en Anypoint API Experience Hub viendo nuestro seminario web, Cree ecosistemas de API más rápido en la plataforma Anypoint de MuleSoft . En este seminario web, aprenderá cómo el nuevo Anypoint API Experience Hub, creado en Salesforce Experience Cloud, le permite crear rápidamente experiencias de API atractivas utilizando las API catalogadas en Anypoint Exchange.

Sobre el Autor

Sue Siao es directora técnica de marketing de productos en Salesforce. Es una creadora de contenido que da vida a los productos a través de demostraciones técnicas. Fuera del horario laboral, es mentora de jóvenes en el Área de la Bahía de San Francisco y practica boulder.

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Categorías
Developers Salesforce

Presentamos las mejoras de la beta abierta de Anypoint Code Builder ☁️

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.

Presentamos las mejoras de la versión beta abierta de Anypoint Code Builder | Blog de desarrolladores de Salesforce

¡Nos complace anunciar el lanzamiento en junio de la versión beta abierta de Anypoint Code Builder! Anypoint Code Builder es el IDE (Entorno de desarrollo integrado) de próxima generación de MuleSoft, para que los desarrolladores diseñen, desarrollen e implementen API e integraciones. Desde su lanzamiento Open Beta en febrero de 2023, el equipo ha estado agregando mejoras regularmente en una cadencia bimensual. Mientras que el lanzamiento de abril se centró en capacidades de IU adicionales, el lanzamiento de junio se centra en una mayor accesibilidad para los usuarios y la flexibilidad en la forma en que los usuarios pueden diseñar e implementar sus API.

Disponibilidad de Open Beta en el plano de control de la UE

Desde su lanzamiento, la versión beta abierta de Anypoint Code Builder solo ha estado disponible en el plano de control de EE. UU. Nos complace decir que esta restricción ya no existe. ¡La versión beta abierta de Anypoint Code Builder ahora está disponible para todos los usuarios en el plano de control de la UE! Esto significa que los usuarios de la UE ya no necesitarán crear nuevas cuentas de prueba en el plano de control de NA para acceder a una instancia de IDE en la nube y experimentar una latencia mucho menor a medida que diseñan y desarrollan. En el futuro, todas las versiones y mejoras futuras de Anypoint Code Builder estarán disponibles para los aviones de control de EE. UU. y la UE simultáneamente.

Entonces, ¿cómo pueden comenzar los usuarios de la UE? Simplemente haga que el administrador de su organización acepte los Términos y condiciones de la versión Beta y le otorgue permisos, luego diríjase a Anypoint Code Builder Central , donde puede crear una nueva instancia de su IDE en minutos. Y dado que es un IDE basado en la nube, seleccionaremos automáticamente el plano de control adecuado para su instancia. ¡Es fácil!

Diseño e implementación de API iterativas

Con Anypoint Code Builder, a los usuarios se les ofrecen tres recorridos principales para comenzar: diseñar especificaciones de API , implementar especificaciones de API y desarrollar integraciones . Tradicionalmente, la única forma de implementar una especificación de API era terminar por completo la fase de diseño y publicarla en nuestro mercado público, Anypoint Exchange . Sin embargo, no existe una regla que diga que el diseño y la implementación de la API deben estar aislados (después de todo, todos somos Trailblazers aquí, ¿no?). Es por eso que presentamos el diseño e implementación de API iterativas en Anypoint Code Builder. Esto le permite comenzar a diseñar la especificación de su API y luego saltar directamente a la fase de implementación para comenzar a agregar lógica empresarial antes de completar la fase de diseño. El resultado final es una experiencia optimizada que permite a los usuarios flexibilizarse entre las fases de diseño e implementación, abordando todo el proyecto en secciones en lugar de todo a la vez. Y para colmo, hemos hecho que toda esta experiencia sea perfecta al proporcionar una vista única para ambas fases directamente desde su navegador.

Se agregó soporte de interfaz de usuario para fragmentos

Cuando se lanzó por primera vez Open Beta para Anypoint Code Builder, la interfaz de usuario era de solo lectura. Los desarrolladores podían usarlo para visualizar su trabajo, pero no había forma de desarrollarlo activamente. Sin embargo, este siempre fue un plan temporal y el objetivo final es brindar a los usuarios dos opciones sólidas para la integración y el desarrollo de API: código bajo y código profesional. Durante los últimos seis meses, hemos estado trabajando para lograr esta visión agregando formas de interactuar con la interfaz de usuario. Por ejemplo, en nuestro lanzamiento de abril, introdujimos la capacidad de agregar nuevos componentes a sus flujos simplemente usando el símbolo "+".

En nuestro lanzamiento de junio, presentamos dos mejoras más en la interfaz de usuario para mejorar la experiencia de código bajo. La primera es la capacidad de seleccionar conectores directamente desde Anypoint Exchange mientras se agregan componentes. Esto proporciona a los desarrolladores una alternativa de interfaz de usuario a la paleta de comandos, al mismo tiempo que les brinda una forma más limpia de clasificar todas las versiones y operaciones del conector que están disponibles. El segundo es la capacidad de agregar fragmentos de la interfaz de usuario.

Los fragmentos son bloques de código preempaquetados que los desarrolladores pueden reutilizar en varios proyectos. Hay algunos que vienen preconstruidos con Anypoint Code Builder, pero los desarrolladores también pueden crearlos personalizados. Esto acelera el desarrollo al facilitar la replicación de tareas repetitivas. Por ejemplo, supongamos que con frecuencia necesita obtener información de contacto de una organización específica en Salesforce. La primera vez que haga esto, escribirá el XML con toda la configuración necesaria. Una vez escrito, puede empaquetar ese código en un fragmento. La próxima vez que necesite obtener información de contacto de esa organización, simplemente puede seleccionar ese fragmento de la interfaz de usuario en lugar de codificarlo todo nuevamente. A medida que los desarrolladores comienzan a crear bibliotecas de fragmentos, vemos que se trata de una herramienta increíblemente poderosa que ayudará a promover la reutilización en toda la organización.

Conclusión

El lanzamiento en junio de la versión beta abierta de Anypoint Code Builder es un hito fundamental en nuestro camino hacia la disponibilidad general. Con la expansión al plano de control de la UE, estamos entusiasmados de brindarles a más desarrolladores la oportunidad de tener en sus manos el producto. Y esperamos continuar introduciendo capacidades de interfaz de usuario adicionales junto con algunas funcionalidades de inteligencia artificial emocionantes a finales de este año. Si desea obtener una descripción general más detallada de las mejoras de junio, consulte la descripción general completa del video .

Más recursos

Sobre el Autor

Rohan Vettiankal es gerente de marketing de productos en MuleSoft, donde dirige su cartera de integración. A lo largo de su carrera, ayudó a llevar una variedad de productos al mercado, incluida una herramienta de visualización de datos basada en la web, una plataforma de infraestructura de datos local y un producto PaaS en la nube. En su tiempo libre, Rohan disfruta de actividades al aire libre como el senderismo, el snowboard y la escalada en roca. También le encanta la música y ha estado tocando el piano desde que tenía 12 años y recientemente ha estado aprendiendo guitarra. Siga a Rohan en LinkedIn .

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Categorías
Developers Salesforce

Explore el adaptador de cable GraphQL, ahora en versión beta ☁️

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.

Explore el adaptador de cable GraphQL, ahora en versión beta | Blog de desarrolladores de Salesforce

¡Atención, desarrolladores de Salesforce! Hemos estado incursionando en GraphQL durante algún tiempo y estamos llevando las cosas al siguiente nivel. Hace unos meses, anunciamos el lanzamiento piloto del adaptador de cable GraphQL. Mantenga sus soportes porque estamos implementando la versión beta del adaptador de cable GraphQL de Salesforce en nuestro lanzamiento de verano '23. En este blog, exploraremos las novedades de la versión Beta y cómo utilizar Recetas de LWC para crear fácilmente su aplicación Salesforce con la tecnología de GraphQL.

La versión Beta del GraphQL Wire Adapter es un avance significativo en la gestión de datos de Salesforce en LWC. Con la introducción de nuevas funciones, como Recetas LWC, Actualización de datos e Integridad referencial, el proceso de desarrollo se ha vuelto más ágil y eficiente.

El adaptador de cable GraphQL permite consultar datos de Salesforce mediante consultas expresivas con funcionalidades como filtrado, clasificación, paginación y seguimiento de relaciones padre/hijo. También incluye una capa de gestión de datos y almacenamiento en caché del lado del cliente de Lightning Data Service. Estas funciones mejoran la eficiencia y la velocidad del acceso a los datos de Salesforce desde sus aplicaciones web y móviles de LWC.

El adaptador de cable GraphQL interactúa con la API de Salesforce GraphQL, que expone todos los objetos estándar y personalizados disponibles a través de la API de la interfaz de usuario, junto con los metadatos de los objetos. La API también mantiene la seguridad a nivel de objeto y de campo del usuario actual durante la ejecución de la consulta.

Para familiarizarse con el esquema de la API de GraphQL, sugerimos revisar la documentación del esquema utilizando el cliente de Altair GraphQL . Las herramientas disponibles en este cliente facilitan la redacción de su consulta GraphQL y su validación. Luego puede copiar y pegar su consulta directamente en su código JavaScript en Visual Studio Code.

Novedades en Beta:

  1. Recetas LWC: estos son componentes listos para usar que muestran varios casos de uso de GraphQL
  2. Actualización de datos: un mecanismo para actualizar los datos devueltos por su consulta de GraphQL
  3. Integridad referencial: este mecanismo garantiza la coherencia de los datos y las referencias a los recursos de Salesforce, como entidades y campos, son sólidas.

Analicemos cada una de estas características en detalle.

Recetas LWC

LWC Recipes es un repositorio de GitHub con una colección de ejemplos de código disponibles públicamente para componentes web Lightning. Incluye tres recetas GraphQL para ayudarlo a comenzar rápidamente a crear su aplicación Salesforce con GraphQL.

El repositorio proporciona instrucciones sobre cómo configurar su entorno, crear su organización de Salesforce, clonar el repositorio en su máquina local e implementar la aplicación en su organización. El código fuente se puede importar directamente a su Visual Studio Code como un proyecto que puede personalizar según sus necesidades.

Una vez que implemente la aplicación Recetas de LWC en su organización de Salesforce, es posible que vea los siguientes componentes mediante consultas de GraphQL.

Aquí hay una descripción general de los cuatro componentes de LWC que usan consultas GraphQL:

  • graphqlContacts : obtiene contactos que cumplen ciertos criterios, ordenados por nombre y limitados a los primeros cinco registros
  • graphqlVariables : captura la entrada del usuario en una barra de búsqueda en una variable y compone una consulta para devolver contactos cuyo nombre coincide parcialmente con la cadena de entrada
  • graphqlRefresh : obtiene una cantidad de empleados en una cuenta y actualiza los datos al hacer clic en el usuario
  • graphqlPagination : Habilita la paginación a través de una lista de contactos

Dado que muchos de nuestros clientes preguntan sobre la paginación, profundicemos un poco más. El adaptador de cable GraphQL es compatible con la paginación basada en cursores de GraphQL. Puede recorrer las páginas de los resultados de su consulta y controlar la cantidad de resultados que desea obtener cada vez. Para especificar el número de registros a devolver, utilice el first argumento. El número predeterminado es 10.

Si hasNextPage es verdadero, puede proporcionar el valor de endCursor al argumento after de una consulta posterior para solicitar la siguiente página de resultados.

Aquí hay una captura de pantalla de cómo podría verse el proyecto Recetas de LWC en Visual Studio Code. Puede ver un código de ejemplo para la implementación de la paginación.

Actualización de datos

En el mundo del desarrollo de aplicaciones, mostrar datos actualizados es fundamental para una buena experiencia de usuario y para generar confianza. Por lo tanto, en la versión Beta del GraphQL Wire Adapter, presentamos la función refreshGraphQL .

Esta función permite a los desarrolladores activar manualmente una repetición de la consulta. ¿El resultado? Una actualización de los datos proporcionados por el adaptador de cable GraphQL, lo que garantiza que los usuarios siempre vean los datos más actualizados.

Esta actualización se puede activar a pedido, como un clic de botón de un usuario o un evento de JavaScript específico. Esto significa que puede optimizar su aplicación para que se actualice solo cuando sea necesario, lo que proporciona una manera eficiente de mantener los datos actualizados y maximizar el rendimiento de la aplicación. En pocas palabras, la función refreshGraphQL ofrece un método amigable con el rendimiento para mantener los datos actualizados, mejorando la experiencia del usuario y aumentando la confiabilidad de la aplicación.

Aquí hay un ejemplo de uso:

Consulte el componente graphqlRefresh en las recetas de LWC para ver otro ejemplo del uso de la función de actualización de datos.

Integridad referencial

La versión Beta del adaptador de cable GraphQL presenta integridad referencial. He aquí una breve descripción de sus beneficios e implicaciones.

Lightning Data Service (LDS), la capa de administración de datos del lado del cliente de Salesforce, mejora la eficiencia de la aplicación al permitir que los componentes compartan datos, reducir las llamadas al servidor y mantener la coherencia de los datos. También garantiza referencias sólidas a los recursos de Salesforce, propagando cambios de nombre y evitando eliminaciones cuando las referencias persisten.

En la versión piloto del adaptador, requerimos el uso de directivas @category para ayudar a LDS a comprender el esquema de datos y normalizar sus datos de GraphQL.

Sin embargo, en la versión Beta, estas directivas ya no se requieren manualmente. Si se usaron anteriormente, ahora se pueden eliminar de sus consultas de GraphQL. El compilador gestiona de forma autónoma estas directivas, agilizando su proceso de código y reduciendo posibles errores manuales.

¿Qué sigue para GraphQL?

Recordatorio: Salesforce es una empresa que cotiza en bolsa y los clientes deben basar sus decisiones de compra en los productos y servicios que están disponibles actualmente.

Estamos comprometidos a continuar invirtiendo en GraphQL. Esto es lo que puede esperar en los próximos lanzamientos (se aplica la declaración prospectiva):

Invierno '24:

  • Adaptador de cable GraphQL (GA)
  • Compatibilidad con mutaciones en la API de GraphQL
  • Compatibilidad con consultas agregadas en GraphQL Adapter
  • Capacidad de consulta de tareas y eventos en GraphQL API (Beta)

Primavera 24 y más allá:

  • Compatibilidad con mutaciones en GraphQL Adapter
  • Funciones avanzadas de paginación
  • Soporte de campos opcionales

Recursos para desarrolladores

Sobre el Autor

Suvda Myagmar es directora de gestión de productos en Salesforce y le apasionan las plataformas de datos e IA. Le encantan las carreras largas mientras escucha audiolibros.

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Categorías
Developers Salesforce

5 pasos para la IA generativa confiable para desarrolladores de Salesforce ☁️

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.

5 pasos para la IA generativa confiable para desarrolladores de Salesforce | Blog de desarrolladores de Salesforce

La IA generativa se ha convertido en el factor de cambio para las empresas innovadoras y orientadas al cliente. Impulsada por algoritmos avanzados y aprendizaje automático, la IA generativa puede impulsar la innovación, optimizar los procesos y acelerar las empresas en todas partes al proporcionar experiencias y soluciones personalizadas adaptadas a las necesidades únicas de los clientes.

Igualmente importante para las experiencias poderosas dirigidas por el cliente es la protección de los datos críticos para el negocio. Los sistemas de IA procesan y generan contenido basado en grandes conjuntos de datos y, lamentablemente, los modelos de lenguaje extenso (LLM) no están poniendo su negocio en primer lugar. Mientras se prepara para implementar capacidades de IA generativa, es fundamental priorizar la privacidad de los datos. Al implementar medidas sólidas de protección de datos, no solo mantiene el cumplimiento de las regulaciones pertinentes, sino que también mantiene la confianza del cliente, su activo más valioso.

Con los cinco pasos que se describen a continuación, puede innovar rápidamente, aumentar la productividad y mejorar las experiencias personalizadas, al mismo tiempo que garantiza la seguridad y la privacidad de los datos de sus clientes.

Paso 1: comprender y auditar sus datos

Para asegurarse de tener las protecciones de seguridad, privacidad y gobernanza correctas, querrá comprender qué datos usará para crear avisos, plantillas y modelos de capacitación. Comprender los datos a los que permite que accedan los modelos de IA ayudará a evitar que se compartan inadvertidamente los datos personales o confidenciales de los clientes.

Entonces, ¿cómo empezar? Primero, anonimice y agregue los datos de los clientes antes de usarlos con fines de IA generativa. Elimine la información de identificación personal (PII) y cualquier otro dato confidencial que pueda identificar a las personas.

Una manera fácil de hacer esto en Salesforce es usar Data Detect , un producto que le permite revisar objetos y campos antes de permitir que los procesos de IA accedan a ellos para recibir indicaciones y capacitación. Una vez que los datos se han escaneado a través de Data Detect, puede confirmar que no hay sorpresas en esos datos, como números de tarjetas de crédito o direcciones de correo electrónico en campos donde ese tipo de datos no debería existir.

Data Detect también puede ayudar a recomendar un nivel de clasificación, como "Confidencial" o "PII" para datos personales, y proporcionar detalles sobre el contenido de un objeto, así como encontrar datos confidenciales generados por chatbots, casos y transcripciones de llamadas registradas automáticamente. por IA.

Paso 2: configure la protección de la privacidad de los datos para sus procesos generativos de IA

Respetar la privacidad del cliente y proteger los datos a lo largo de sus procesos de IA es crucial para establecer y mantener la confianza. A medida que confía más en la IA para comprender y tomar decisiones a partir de sus datos, ¿cómo protege también esos datos, especialmente la PII?

Para los procesos de IA que usan datos personales, como aumentar los registros de contacto u orquestar ofertas de marketing dinámicas 1:1, querrá desarrollar políticas de uso de datos claras y transparentes que describan cómo se manejarán los datos de los clientes, incluido su uso en sistemas de IA generativos. . Comunique estas políticas a sus clientes y bríndeles la oportunidad de optar por no participar o elegir el nivel adecuado de uso de datos. Además, cree una política para eliminar y ofuscar los datos que ya no son útiles o relevantes, para que sus clientes permanezcan protegidos y sus procesos de IA generativa permanezcan precisos.

Centro de privacidad puede ayudar a verificar que sus procesos de IA estén autorizados para su uso en capacitación y avisos. El Centro de privacidad también puede ayudarlo a crear políticas de retención para administrar el ciclo de vida de los datos utilizados y generados por la IA, incluidas las transcripciones de llamadas, los chatbots y los casos registrados automáticamente por la IA.

Paso 3: configure su organización para administrar la IA generativa

Tanto para proteger los datos utilizados en los procesos de IA como para confirmar que sus integraciones se mantienen dentro de los límites de los datos que desea utilizar, deberá implementar controles para proteger los datos de los clientes frente a accesos no autorizados o infracciones.

Los controles de acceso le permiten restringir el acceso a los datos del cliente solo al personal autorizado. Al otorgar acceso según sea necesario, reduce el riesgo de que los modelos de IA y las personas no autorizadas accedan a datos confidenciales. Esto protege contra el posible uso indebido de esos datos al tiempo que garantiza la privacidad del cliente.

Security Center puede ayudarlo a administrar de manera centralizada los permisos de usuario y las configuraciones de la organización para los datos que se usan y se obtienen de los procesos de IA.

Ahora preparémonos para implementar la IA de manera segura en toda su organización.

Paso 4: pruebe sus procesos para la implementación

Las pruebas en un entorno de espacio aislado son primordiales cuando se trata de IA generativa. Esto tiene dos propósitos fundamentales: probar los procesos de IA y capacitar a los empleados sobre el uso seguro y responsable de la IA generativa. Al realizar pruebas exhaustivas en un entorno de espacio aislado controlado, las organizaciones pueden evaluar y refinar el rendimiento y el comportamiento de sus modelos generativos de IA antes de implementarlos en escenarios del mundo real. Las pruebas permiten la identificación y mitigación de posibles problemas, como sesgos, errores o consecuencias no deseadas que pueden surgir durante un proceso de IA generativa.

Además, un entorno de sandbox proporciona un espacio seguro para que los empleados adquieran experiencia práctica y capacitación en el uso de herramientas y sistemas de IA generativa. Les permite explorar capacidades e identificar consideraciones éticas mientras toman decisiones informadas al usar la tecnología de manera responsable en sus operaciones diarias. Al aprovechar las pruebas de sandbox, las organizaciones pueden garantizar la confiabilidad, la eficacia y la aplicación ética de la IA generativa al tiempo que capacitan a su fuerza laboral para adoptar y utilizar esta tecnología transformadora con confianza.

Asegúrese de que, cuando utilice un espacio aislado para el entrenamiento de IA, haya eliminado todos los datos personales para crear sus indicaciones o entrenar un modelo de IA; puede eliminar u ofuscar fácilmente cualquier dato que no deba incluirse con Data Mask .

Paso 5: Supervise y proteja sus procesos de IA

Garantizar que la integración de IA no acceda a los datos ni modifique los sistemas más allá del alcance previsto es crucial para mantener la seguridad de los datos y la integridad del sistema. Como describimos anteriormente, los controles de acceso y los permisos de los usuarios deben definirse cuidadosamente, otorgando a los sistemas de IA solo los privilegios necesarios y limitando su acceso a fuentes o sistemas de datos específicos. Además, se deben realizar pruebas y validaciones exhaustivas de la integración de la IA para verificar que funcione según lo previsto y que no tenga consecuencias ni vulnerabilidades no deseadas.

Finalmente, implementar mecanismos de monitoreo robustos puede ayudar a detectar y alertar cualquier intento de acceso no autorizado o comportamiento anormal por parte del sistema de IA. Las auditorías y revisiones periódicas de los procesos de integración de IA y los registros de acceso pueden ayudar a identificar cualquier desviación o posibles riesgos de seguridad.

Event Monitoring ayuda a que el proceso de monitoreo y detección sea más fácil al permitir la configuración de capacidades, como la seguridad de transacciones, para enviar alertas o bloquear acciones más allá de lo que se pretendía inicialmente para su proceso de IA.

Finalmente, a medida que se adentra más en su viaje de IA, es fundamental que sus datos estén respaldados y puedan restaurarse hasta el nivel de registro en el caso poco probable de que los datos utilizados y aumentados por IA estén mal configurados o sincronizados incorrectamente. Haga una copia de seguridad de sus datos para ver cada versión de los registros utilizados y tocados por AI, y restaure cualquier error.

Conclusión

Al adoptar un enfoque que prioriza la privacidad e implementar medidas sólidas de protección de datos, puede crear una base confiable para prácticas de IA generativas responsables, sostenibles y éticas, todo mientras impulsa una innovación más eficiente y efectiva e interacciones más personalizadas con los clientes. Para obtener más información sobre cómo comenzar con la IA generativa, consulte nuestra Guía de introducción a la IA.

Recursos

Sobre el Autor

Marla Hay Vicepresidenta de Seguridad, Privacidad y Gestión de Datos en Salesforce y dirige la organización de productos de Servicios de confianza. Se unió a Salesforce en 2017 después de liderar productos en una empresa de gestión de identidad de consumidores. Marla tiene una licenciatura en Ciencias de la Computación de la Universidad de Cornell y una maestría en Ciencias de la Computación de la Universidad Johns Hopkins.

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Categorías
Developers Salesforce

Uso de FileEvents para fortalecer la seguridad de los archivos ☁️

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.

Uso de FileEvents para fortalecer la seguridad de los archivos | Blog de desarrolladores de Salesforce

Siempre que un usuario de Salesforce intente cargar, obtener una vista previa o descargar un archivo a través de la interfaz de usuario o la API, se producirá un FileEvent en el backend. Este evento está incluido en la función Supervisión de eventos en tiempo real de Salesforce, y los desarrolladores de Salesforce pueden optar por habilitar la transmisión o el almacenamiento para FileEvents como cualquier otro evento asociado con la Supervisión de eventos en tiempo real. Además, los desarrolladores pueden configurar una política de seguridad de transacciones para FileEvents, lo que les permite realizar un seguimiento y tomar medidas en función de las acciones del usuario en los archivos.

Estamos emocionados de ver que FileEvents se convierte en GA en el lanzamiento de Summer '23 . En esta publicación, le mostraremos cómo puede crear una política de seguridad de transacciones sobre un FileEvent y fortalecer la seguridad de los archivos.

Nota: FileEvents está disponible para los clientes que compraron suscripciones complementarias de Salesforce Shield o Salesforce Event Monitoring.

¿Por qué es importante la seguridad de archivos de Salesforce?

Para comprender FileEvents, es importante comprender primero la importancia de la seguridad de archivos en la organización de Salesforce. Salesforce almacena una amplia gama de información como archivos, incluidos los datos de contacto del cliente, los datos de ventas, las notas de las interacciones con los clientes y las solicitudes de servicio, así como documentos internos como contratos, materiales de marketing y especificaciones de productos. Además, el sistema puede almacenar archivos relacionados con transacciones financieras como facturas u órdenes de compra.

El propósito de Salesforce Files es mantener todos estos datos en una ubicación central, para que varios usuarios puedan acceder a ellos fácilmente a la vez, mejorando así la colaboración y la productividad. Es fundamental priorizar la protección de estos archivos para garantizar la seguridad de la información confidencial en su organización de Salesforce. Esto no puede ser enfatizado suficientemente.

¿Qué puede hacer FileEvents?

Cuando los empleados renuncian a su trabajo, normalmente continúan trabajando durante un breve período de tiempo antes de abandonar la empresa. En esta situación, muchas empresas restringen el acceso a archivos confidenciales durante este período previo a la salida. Se puede implementar una política de seguridad de transacciones utilizando FileEvents para evitar que los empleados descarguen archivos etiquetados como "legales" con fines de cumplimiento.

Suposición

  • Su organización tiene una licencia complementaria de Salesforce Shield o Event Monitoring
  • Los archivos que los usuarios intentan descargar tienen una etiqueta legal

Veamos cómo puede implementar una política de seguridad de transacciones utilizando eventos de archivo.

  • Configuración → Políticas de seguridad de transacciones
  • Haga clic en Nuevo y seleccione Apex

En el menú desplegable "Evento", seleccione FileEvent . Y en el menú desplegable Clase de Apex, seleccione Nueva clase de Apex vacía y luego haga clic en el botón Siguiente .

En la selección Acciones , podemos elegir Mensaje predeterminado o Mensaje de bloqueo personalizado. Lo mismo se aplica al contenido de las notificaciones por correo electrónico. Asegúrese de que el estado de la política esté habilitado.

Ahora, la clase estándar de Apex se ha creado automáticamente.

El fragmento de código siguiente incluye lógica para satisfacer las necesidades de cumplimiento. Actualice la clase con este fragmento de código.

¡Gran trabajo! Veámoslo todo en acción

Inicie sesión como usuario e intente descargar el archivo que está etiquetado como "Legal".

La capacidad de descargar los archivos se ha restringido debido a la política que creamos.

Conclusión

Ahora que FileEvents está disponible en general, es más fácil que nunca configurar políticas de seguridad de transacciones para administrar archivos. Al aprovechar estos eventos, puede monitorear y responder a la actividad en tiempo real, detectar comportamientos sospechosos rápidamente e identificar con precisión amenazas potenciales antes de que se conviertan en un problema.

Además, aprovechar las capacidades de automatización, como alertas o notificaciones automáticas cuando ocurren ciertas actividades en archivos dentro de su organización, ayudará a garantizar que cualquier actividad maliciosa se identifique de inmediato para que se puedan tomar las contramedidas adecuadas de inmediato.

Está claro por qué mantener seguros los documentos confidenciales dentro de un sistema de archivo seguro debe ser una prioridad para cualquier empresa que utilice una plataforma de CRM como Salesforce. En conclusión, comprender FileEvents es esencial para mejorar la seguridad de su organización de Salesforce.

Sobre el Autor

Jagan Padmanabhan es Arquitecto Técnico (Grupo de Éxito del Cliente) en Salesforce con un enfoque especial en la creación de aplicaciones seguras a gran escala. Le apasiona desarrollar aplicaciones utilizando productos basados en la seguridad como Salesforce Shield y Event Monitoring. Además, contribuye activamente a la seguridad de la plataforma como investigador de seguridad. Síguelo en LinkedIn .

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Categorías
Developers Salesforce

Preparando tu aplicación para la actualización de color del Lightning Design System ☁️

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.

Preparación de su aplicación para la actualización de color de Lightning Design System | Blog de desarrolladores de Salesforce

En 2023, Salesforce planea actualizar los colores en nuestra interfaz de usuario de iluminación para que sean más accesibles para las personas con baja visión y para cumplir con las Pautas de accesibilidad de contenido web (WCAG) para el contraste de color que no es de texto y el contraste de color de texto. WCAG es un estándar de accesibilidad moderno requerido por numerosos órganos de gobierno de todo el mundo.

Para hacer esto, actualizaremos las plataformas en las que se crea nuestra interfaz de usuario Lightning: Salesforce Lightning Design System (SLDS) y Base Lightning Components (ambas versiones, Aura y Lightning Web Component). En estas plataformas, actualizaremos componentes, tokens de diseño, ganchos de estilo e íconos. Estos cambios no solo aparecerán en los productos de Salesforce, como Sales Cloud y Service Cloud, sino que también aparecerán en cualquier interfaz de usuario personalizada que haya creado con SLDS o Base Lightning Components.

Para obtener más detalles y ejemplos visuales de las actualizaciones, eche un vistazo a las publicaciones del blog de administración y noticias de Salesforce.

¿Cuál es el motivo de la actualización?

Con los colores actuales en Salesforce, los usuarios con problemas de visión tienen dificultades para reconocer los elementos clave de la interfaz de usuario, lo que no solo los frustra, sino que también les impide adoptar Salesforce. Además, Salesforce y sus clientes enfrentan problemas de cumplimiento clave debido a que un número cada vez mayor de gobiernos en todo el mundo, incluida la Unión Europea (UE) , requieren contraste de color de acuerdo con WCAG 2.1 . WCAG 2.1 ha requerido que los sitios web de las empresas usen texto que cumpla con un contraste de color de 4.5: 1 de su fondo y elementos funcionales que no sean texto que cumplan con un contraste de color de 3: 1 . Aumentar nuestro contraste de color para cumplir con estos estándares nos permitirá brindar una mejor experiencia a los usuarios con baja visión y permitirá a las empresas que usan nuestros productos evitar fuertes multas por accesibilidad.

¿Cuándo está ocurriendo la actualización?

Todos los íconos se actualizarán como parte del lanzamiento de Summer '23. Las páginas de inicio de registros seleccionados, incluidos los LWC incrustados en las páginas, se actualizarán como parte del lanzamiento de Summer '23. Todas las demás páginas, SLDS y los componentes básicos de Lightning se actualizarán como parte de la versión Winter '24.

¿Qué es lo que hay que hacer?

Si descargó íconos de Salesforce y seleccionó íconos específicos para usarlos como recursos estáticos, asegúrese de actualizarlos con los nuevos íconos . Si está utilizando nuestro paquete SLDS NPM , actualice ese paquete a la última versión para ver los cambios. Si tiene páginas personalizadas desarrolladas con SLDS, vea cuáles de los siguientes escenarios se aplican a su base de código y realice los cambios correspondientes.

1. Componente base Lightning/Aura

Utiliza un componente Lightning sin anulaciones adicionales. Su código podría verse como el Ejemplo 1 a continuación.

¿Qué es lo que hay que hacer?

  1. Nada. Las actualizaciones de color se realizan de forma gratuita a medida que Lightning Base Components implementa un plan SLDS .
  2. Se aplican excepciones a algunos componentes a continuación.

Ejemplo 1

<dx-code-block title language="html" code-block="
Save
«>

2. Componente personalizado con plano SLDS

Utiliza un componente personalizado que implementa un modelo SLDS y solo usa clases SLDS para diseñar. Su código podría verse como el Ejemplo 2 a continuación.

¿Qué es lo que hay que hacer?

  1. Nada. Las actualizaciones de color se realizan de forma gratuita si su componente implementa exactamente un modelo SLDS .

Ejemplo 2

<dx-code-block title language="html" code-block="

«>

3. Componente personalizado con plano parcial de SLDS

Similar a 2. Componente personalizado con modelo SLDS , pero en este caso, usa un componente personalizado que implementa parcialmente un modelo SLDS o usa más clases de SLDS para diseñar. Su código podría verse como el Ejemplo 3 a continuación.

¿Qué es lo que hay que hacer?

  1. Es posible que deba actualizar los colores en su CSS personalizado si ve regresiones visuales.
    1. Si existe un componente base Lightning para ese modelo y variante, recomendamos reemplazar su componente personalizado con el componente base Lightning.
      1. Si necesita personalizar el estilo de los componentes, le recomendamos que utilice los nuevos ganchos de estilo --slds para cualquier valor de color codificado. Si el valor de color codificado no tiene una coincidencia exacta en términos de ganchos de estilo, querrá considerar usar el gancho de estilo más parecido.
    2. Es posible que desee verificar si hay suficiente contraste de color para el componente antes de actualizar el valor codificado a un gancho de estilo.
  2. Los cambios de color en las clases de SLDS se realizan de forma gratuita. Debido a que los cambios se limitan al color, estas clases deberían continuar funcionando como se esperaba.

Ejemplo 3

<dx-code-block title language="html" code-block="

«><dx-code-block title language="css" code-block="/* CSS */
.my-class { color: #ccc;

En este caso, la clase de CSS personalizada .my-class anula un valor de .slds-button_neutral . Este valor no solo debe actualizarse para tener un mejor contraste, sino que toda la implementación también sería más fácil de mantener si se reemplazara con un componente base Lightning y luego se usara el enlace de estilo --slds-c-button-text-color para hacer una anulación accesible.

Nota: Si no existe un gancho de estilo para el valor codificado, recomendamos usar el gancho de estilo más cercano disponible.

<dx-code-block title language="html" code-block="
Save
«>

4. Componente personalizado con tokens o clases SLDS

Está usando un componente personalizado que usa directamente tokens SLDS dentro de CSS personalizado o usa clases SLDS en el marcado. Su código podría verse como el Ejemplo 4 a continuación.

¿Qué es lo que hay que hacer?

  1. Es posible que deba reemplazar los tokens que está utilizando en CSS personalizado con los ganchos de estilo global relevantes según sea necesario.
    1. Consulte el ejemplo 4 a continuación.

Ejemplo 4

<dx-code-block title language="html" code-block="

«>

En este ejemplo, el token t(colorBorder) está diseñado para bordes decorativos como tarjetas y divisores. Debe reemplazarse con un gancho de estilo que esté alineado con el plano del botón SLDS.

5. Componente personalizado con fichas personalizadas

Está usando un componente personalizado que usa tokens personalizados. Su código podría verse como el Ejemplo 5 a continuación.

¿Qué es lo que hay que hacer?

Recomendamos reemplazar tokens personalizados con ganchos de estilo SLDS cuando sea posible. Cuando use ganchos de estilo, asegúrese de usar ganchos que tengan el contexto semántico correcto. Por ejemplo, un gancho como --slds-g-color-border-base-1 solo debe usarse para bordes. Esto ayudará a garantizar que su producto siga siendo coherente con el estilo de Salesforce a medida que se produzcan futuras actualizaciones de color.

Si debe mantener su token personalizado por cualquier motivo, vuelva a verificar que su token personalizado no haya experimentado ninguna regresión visual.

Ejemplo 5

<dx-code-block title language="html" code-block="

«><dx-code-block title language="html" code-block="

«>

En este ejemplo, el token t(myBackgroundColor) usa un valor de color desactualizado de SLDS. El lenguaje visual Lightning actual ya no usa este color. El token personalizado debe reemplazarse con el color más parecido de la lista de ganchos de estilo. En este ejemplo, —slds-g-color-neutral-base-95: #f3f3f3 es el gancho de estilo SLDS más parecido.

6. Componente personalizado con valores codificados

Está usando un componente personalizado que usa un valor de color codificado como #444 o rgb(68,68,68) . Su código podría parecerse al Ejemplo 3 anterior.

¿Qué es lo que hay que hacer?

  1. Recomendamos reemplazar los colores codificados con ganchos de estilo si existe un color análogo. Al seleccionar tokens, asegúrese de usar tokens semánticos de manera que conserven su significado. Por ejemplo, --slds-g-color-border-base-1 solo debe usarse como el color del borde de los elementos del formulario. Si desea mantener su valor de color codificado, verifique que estos colores no hayan experimentado ninguna regresión visual.
    Nota: Los valores alternativos pueden permanecer como valores de color codificados.

7. Componente base con anulación --lwc

Está utilizando un componente Lightning o Aura base y está anulando un token --lwc para personalizar el estilo de uno o más componentes. Su código podría verse como el Ejemplo 7.

NOTA: Esta no es una forma recomendada de personalizar componentes y no hay garantía de que las personalizaciones realizadas de esta manera continúen funcionando.

¿Qué es lo que hay que hacer?

  1. Verifique si está anulando y --lwc tokens para cualquiera de estos componentes .
    1. Reemplace el token --lwc que se anula con el enlace de estilo actualizado --slds introducido.

Ejemplo 7

<dx-code-block title language="html" code-block="

«>

En este ejemplo, al anular —lwc-colorBorder a rojo, todos los bordes de los botones se vuelven rojos. El equipo de SLDS actualizó esta variante de componente para usar un enlace de estilo global, por lo que esta anulación dejará de funcionar. En este caso, simplemente use --slds-g-color-border-base-4 en el ámbito del selector para anular el color del borde.

Mejores prácticas

  • Reemplace los valores de color codificados de forma rígida con ganchos de estilo globales cuando sea posible (los valores de colores codificados de forma rígida están bien como valores alternativos).
  • Reemplace los tokens de diseño con ganchos de estilo global donde sea posible.
  • Reemplace los ganchos de estilo --lwc con ganchos de estilo globales.
  • Elija ganchos de estilo que correspondan al contexto de uso. Por ejemplo, al reemplazar el valor codificado de #747474 que se usa para un borde con un gancho de estilo, hay dos alternativas para elegir: --slds-g-color-border-base-4 o --slds-g-color-neutral-base-50 . Se recomienda usar --slds-g-color-border-base-4 para el contexto de estilo CSS de "border" en lugar de --slds-g-color-neutral-base-50 .
  • Use declaraciones var(..) y coloque valores de color codificados como respaldo en caso de que un navegador heredado no pueda leer el enlace de estilo o el token de diseño. Esto es opcional.
    • background: var(—slds-g-color-neutral-base-50, #747474);
  • Intente que sus personalizaciones de color cumplan con los estándares de contraste de color de texto y no texto de WCAG 2.1.

Más recursos

Sobre el Autor

Timothy Yeh es Gerente de Producto para Sistemas de Diseño en Salesforce, enfocado en ayudar a los clientes a construir una interfaz de usuario de mayor calidad más rápido al proporcionar sistemas sólidos de patrones.

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Categorías
Developers Salesforce

Herramientas para desarrolladores desde cero (Parte 1 de 2) ☁️

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.

Herramientas para desarrolladores desde cero (Parte 1 de 2) | Blog de desarrolladores de Salesforce

Tanto si es un nuevo desarrollador que acaba de empezar su carrera en el ecosistema de Salesforce como si es un desarrollador experimentado de Salesforce que aún no se ha cambiado a nuestras nuevas herramientas para desarrolladores, esta serie de publicaciones de blog es para usted. Le mostraremos cómo configurar y utilizar las herramientas que pueden ayudar a todos los desarrolladores de Salesforce a ser mucho más productivos y felices.

Antes de que empieces

Si es nuevo en Salesforce y no tiene una organización (instancia de Salesforce) disponible para practicar, regístrese en una organización Developer Edition . Es completamente gratis y tiene la mayoría de las funciones de Salesforce preinstaladas para que pruebe y aprenda. Deberá proporcionar un nombre de usuario en forma de dirección de correo electrónico, pero no es necesario que sea uno real. Es solo un nombre de usuario que debe ser único en todos los productos de Salesforce. Después de solicitar una organización, recibirá un correo electrónico con los pasos para iniciar sesión. Tome nota del nombre de usuario de la organización que proporcionó, ya que tendrá que usarlo más adelante.

Si es un desarrollador de Salesforce establecido y un usuario de Developer Console, este es el momento adecuado para adoptar las nuevas herramientas de desarrollador. Si bien Developer Console puede ser una forma rápida de cambiar algunas líneas de código, usar las herramientas más modernas cambiará las reglas del juego, ya que incluyen un montón de capacidades que simplificarán su trabajo. Usar las nuevas herramientas requiere un cambio de hábitos al principio, pero te prometo que muy pronto entenderás sus beneficios. Además, tenga en cuenta que ya no estamos invirtiendo en Developer Console, y problemas como la falta de soporte para Lightning Web Components son algo que no abordaremos.

Instalación de las herramientas de desarrollador

Los metadatos de su organización están en la nube, pero para desarrollarse de una manera más productiva, desarrollará localmente. El modus operandi será trabajar con los metadatos en su máquina local y sincronizarlos con su organización, lo que significa recuperarlos o implementarlos cuando sea necesario.

Una alternativa al desarrollo local es usar Code Builder (Beta) , un IDE basado en web que puede iniciar desde su organización y que tiene las herramientas de desarrollador instaladas. Sin embargo, en este blog, nos centraremos en el flujo de trabajo de desarrollo local.

El primer paso es instalar las siguientes herramientas en su máquina:

  • CLI de Salesforce : esta es la herramienta de interfaz de línea de comandos que utilizará para escribir comandos para mover su código entre su entorno local y su organización, ejecutar pruebas, implementar datos de muestra y mucho más. Si no le gusta escribir comandos en una terminal, no tema, ya que tenemos opciones alternativas como se describe en esta publicación de blog.
  • Código VS : este es el IDE que usará para desarrollar en su máquina local.
  • Java : algunas funciones en las extensiones de Salesforce para VS Code dependen de la plataforma Java, kit de desarrollo de edición estándar (JDK). Instálelo siguiendo las instrucciones vinculadas.
  • Extensiones de Salesforce para VS Code : Este es un grupo de extensiones de VS Code que aumentan las capacidades de VSCode, exponiendo la mayoría de los comandos de la CLI de Salesforce en la interfaz de usuario de VS Code, para que pueda ejecutarlos con clics. Las extensiones también agregan funciones para habilitar la depuración, facilitar las pruebas, permitirle explorar los metadatos en su organización y más.

Creación de un proyecto de Salesforce DX

Cuando trabaja con los metadatos de una organización localmente, los archivos de metadatos deben almacenarse en una carpeta de proyecto, siguiendo una estructura determinada. Eso es lo que llamamos un proyecto de Salesforce DX.

Una vez instaladas las herramientas para desarrolladores, puede continuar y crear un proyecto de Salesforce DX que luego conectará a su organización. Una forma de hacerlo es escribir un comando que utilice la CLI de Salesforce para crear el proyecto. Puede escribir ese comando en una terminal normal.

sf project generate -n myProject

Nota: la CLI de Salesforce contiene dos ejecutables, sfdx y sf . En este blog, escribiremos los comandos utilizando el ejecutable y la sintaxis más modernos, que es sf .

El indicador -n indica el nombre del proyecto. La CLI de Salesforce aplicará scaffolding a un proyecto en una carpeta con ese nombre. Una vez que se crea el proyecto, puede abrirlo en VS Code, con File → Open Folder .

Gracias a las extensiones de Salesforce para VS Code, existe una forma sin escribir para ejecutar los comandos de la CLI de Salesforce. Simplemente abra la paleta de comandos de VS Code con View → Command Palette y escriba SFDX para ver todos los comandos disponibles. También podríamos haber creado el proyecto con SFDX: Create Project en lugar de escribir el comando.

Autorizar y establecer una organización como predeterminada

Una vez que su proyecto esté configurado, el siguiente paso es autorizar la CLI de Salesforce para que funcione con su organización. Comencemos esta vez con la forma de hacerlo sin escribir. Cuando abra el proyecto por primera vez, simplemente haga clic en el botón Sin conjunto de organizaciones predeterminado y aparecerá la paleta de comandos, sugiriendo que autorice una organización. Proceda siguiendo las instrucciones del comando.

Otra forma de hacerlo es ejecutar un comando CLI de Salesforce. Esta vez, y de ahora en adelante, le recomiendo que use el terminal integrado de VS Code para ejecutar comandos, ya que tener todas las herramientas en la misma pantalla reduce el cambio de contexto. Puede abrirlo en Terminal → New Terminal .

El comando CLI de Salesforce utilizado para autorizar una organización es:

sf org login web -s

Luego, siga las instrucciones dadas por el comando. El indicador -s configurará esa organización como su organización predeterminada para este proyecto. Puede ver la organización predeterminada de su proyecto en la barra inferior de VS Code.

Todos los comandos de la CLI de Salesforce tienen varios indicadores disponibles. Por ejemplo, si desea conectarse a una zona de pruebas, puede pasar la URL de la instancia de la zona de pruebas a sf org login web usando -r . Para ver la ayuda del comando y todos sus indicadores disponibles, ejecute el comando agregando --help al final.

Cuando trabaja con varias organizaciones, será común autorizar la CLI de Salesforce con varias organizaciones. Puede ver las organizaciones a las que la CLI de Salesforce tiene autorización para acceder ejecutando sf org list . Puede cambiar la organización predeterminada de un proyecto haciendo clic en el nombre de la organización en la barra inferior de VS Code, como hicimos para autorizar por primera vez, o ejecutando:

sf config set [email protected]

Permítanme compartir con ustedes un último consejo. Las organizaciones pueden tener alias. Esto es útil cuando no desea recordar nombres de usuario largos o complejos. Para establecer un alias, escriba el siguiente comando.

sf alias set [email protected]

Cuando se establece un alias, puede utilizar el alias en lugar del nombre de usuario de la organización en cualquiera de los comandos de la CLI de Salesforce.

Implementación de metadatos en la organización

Una vez que la CLI de Salesforce y su IDE estén autorizados con su organización, y la organización esté configurada como la organización predeterminada para su proyecto, puede comenzar a desarrollar e implementar cambios. Por ejemplo, digamos que queremos crear una clase de Apex. Puede crear el archivo de metadatos que representa la clase de Apex manualmente en la carpeta classes . Sin embargo, es mucho más efectivo crear la clase desde la paleta de comandos.

También puede crear una clase escribiendo el siguiente comando de la CLI de Salesforce:

sf apex generate class -n myClass -d force-app/main/default/classes

Una vez que su clase esté lista para implementarse en su organización, hay varias formas de hacerlo. Una forma es especificar los metadatos en el comando.

sf project deploy start -m ApexClass

Una segunda forma es especificar una carpeta para implementar.

sf project deploy start -p force-app/main/default/classes

Y una tercera forma, disponible gracias a Salesforce Extensions for VS Code, es hacer clic con el botón derecho en el archivo y hacer clic en Deploy This Source to Org .

Todas esas opciones le permiten ejecutar las implementaciones usted mismo. Si desea automatizar este paso e implementar un archivo cada vez que se guarda, puede establecer la configuración Implementar al guardar VS Code en "Verdadero" y ahorrar algo de tiempo.

Cuando se implementan sus metadatos, normalmente querrá abrir su organización para realizar pruebas. Puede iniciar sesión utilizando su navegador como de costumbre. Pero para los desarrolladores, es más eficiente hacer clic en el botón de abrir organización en la barra inferior de VS Code.

Conclusión

En esta publicación de blog, aprendió cómo obtener una organización gratuita para el desarrollo y cómo instalar las herramientas de desarrollo que todo desarrollador de Salesforce debería usar hoy. Ha entendido cómo crear un proyecto y autorizarlo con su organización y, por último, cómo implementar metadatos mediante la CLI de Salesforce o VS Code. En la Parte 2 de esta serie, aprenderá cómo recuperar metadatos, trabajar con organizaciones con seguimiento de origen y usar bibliotecas de Node para cuidar la calidad de su código. Además, compartiremos otras gemas ocultas de las extensiones de Salesforce para VS Code. Si te gusta un formato de video, mira nuestro episodio de codeLive . Y si tiene preguntas, no dude en hacerlas en Salesforce Developers Trailblazer Community . ¡Estén atentos para la segunda publicación de blog de esta serie mañana!

Sobre el Autor

Alba Rivas trabaja como Principal Developer Advocate en Salesforce. Puedes seguirla en Linkedin , Twitter o GitHub .

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Categorías
Developers Salesforce

Aspectos destacados de la versión para desarrolladores | Aprende Moar Verano '23 ☁️

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.

Aspectos destacados de la versión para desarrolladores | Aprende Moar Verano '23 | Blog de desarrolladores de Salesforce

¡Haz un gran revuelo con el lanzamiento de Summer '23!

Sabemos que cada versión trae consigo muchas funciones nuevas y sorprendentes, y puede haber mucho que digerir. Con Learn MOAR, empaquetamos el lanzamiento y se lo ofrecemos en un formato fácil de digerir con blogs, videos y más.

¡Es fácil empezar!

  • ¡Explore los trailmixes de Trailhead con aspectos destacados de lanzamiento clave para desarrolladores o administradores, o ambos!
  • ¡Únase a nosotros para Release Readiness Live ! Los expertos en productos y los defensores de los desarrolladores analizarán y demostrarán las nuevas funciones en el lanzamiento de Summer '23 y, al final de nuestra transmisión, responderemos sus preguntas. Sintonice a las 9 am PT el 19 de mayo para la sesión de desarrolladores. ¿No puedes unirte a nosotros en vivo? La grabación se publicará unas horas después de que finalice la transmisión.

Siga y complete un trailmix de Learn MOAR Summer '23 para administradores o desarrolladores para obtener una insignia exclusiva de la comunidad.

Introducción

¡El lanzamiento de Summer '23 está aquí y está repleto de funciones para desarrolladores! En esta publicación de blog, resumiremos los aspectos más destacados, para que pueda obtener una descripción general de las novedades y decidir qué es lo más interesante para usted. En publicaciones posteriores de Learn MOAR, profundizaremos en algunos de estos aspectos destacados, para que pueda explorarlos con mayor detalle. Mantenerse actualizado con las últimas innovaciones lo ayudará a aumentar su experiencia y convertirse en un desarrollador más exitoso.

Componentes web Lightning

Comencemos hablando de Lightning Web Components, que presentará una gran cantidad de nuevas funciones en Summer '23.

Un par de funciones que estaban en Beta ahora estarán disponibles de forma general (GA). Esto incluye DOM ligero , que permite integraciones de terceros y estilo global, Lightning Web Security para LWC y Aura , que facilita el uso de bibliotecas de JavaScript de terceros en LWC. La API RefreshView , que le permite actualizar la vista de un componente, también será GA. Además, el adaptador de cable GraphQL se está moviendo a Beta, lo que significa que puede probarlo de inmediato, sin tener que registrarse para el programa piloto. Esto cambiará las reglas del juego sobre cómo se leen los datos en Lightning Web Components.

Hay varias mejoras en la sintaxis de LWC que facilitarán la escritura de sus componentes. Se está lanzando una nueva directiva de plantilla lwc:spread (consulte los documentos ), que le permite distribuir propiedades de objetos a un componente secundario, lo que reduce significativamente la cantidad de código que necesita escribir. A partir de Summer '23, podrá establecer un valor dinámico para el atributo de ranura de un elemento HTML. Además, se habilitará la inyección programática de hojas de estilo, lo que le permitirá establecer la propiedad estática de las hojas de estilo para un componente.

¿Ha comenzado a escribir pruebas de extremo a extremo con UTAM? Esta versión también trae mejoras a las capacidades de manejo de errores de UTAM y una extensión de Chrome para identificar objetos de página de UTAM (en Beta).

Móvil sin conexión

Salesforce Mobile App Plus (Salesforce App+) es una versión de la aplicación Salesforce Mobile que habilita LWC Offline. LWC Offline es un entorno de tiempo de ejecución avanzado para componentes web Lightning que aumenta el tiempo de ejecución estándar con funciones diseñadas específicamente para uso móvil y sin conexión. Si bien LWC Offline anteriormente solo estaba disponible en la aplicación móvil Salesforce Field Service, Salesforce App+ le permite usarlo en un contexto más genérico. Salesforce App+ se cerró en Beta en Spring '23 y se trasladará a GA en Summer '23. Salesforce App+ está disponible bajo la licencia Salesforce Mobile Plus.

Integración de plataforma

Tener una plataforma robusta es tan importante como tener capacidades de integración sólidas. Es por eso que la versión Summer '23 trae muchas funciones de integración nuevas.

En esta versión, ampliamos la API REST de Salesforce para admitir la recuperación de elementos secundarios mediante la definición de hasta cinco niveles de consultas SOQL anidadas . También ampliamos la API REST de Connect y la API de Connect (Connect in Apex) para permitir que los desarrolladores creen y administren credenciales con nombre mediante programación. Además, la API GraphQL, que se hizo GA en Spring, ahora admitirá consultas con funciones agregadas y mejorará sus capacidades de manejo de errores . Los eventos de la plataforma también incluyen nuevas funciones, como la capacidad de agregar una clase de devolución de llamada a su código de publicación de Apex , que proporcionará una confirmación cuando el evento de la plataforma se publique correctamente. Además, podrá obtener métricas de uso de eventos de la plataforma consultando el objeto PlatformEventUsageMetric .

También se están mejorando las capacidades de integración en Flow. Flow Builders ahora podrá configurar llamadas HTTP GET a sistemas externos que no tienen una especificación de API abierta a través de la función Servicios externos. Las llamadas HTTP POST están en Beta. Si es un Muley , puede leer más sobre las innovaciones de Flow plus MuleSoft en la siguiente sección.

Además de todo esto, el adaptador GraphQL de Salesforce Connect que anunciamos en febrero se mudará a GA, y Event Relay ahora admitirá Shield Platform Encryption y tendrá una nueva interfaz de usuario de configuración fácil de usar.

Innovaciones entre nubes

Aunque MuleSoft, Tableau y Slack siguen sus propios ciclos de lanzamiento, son partes integrales del ecosistema de Salesforce y de vital importancia para los desarrolladores.

Mula Suave

Una de las innovaciones más recientes de MuleSoft es Anypoint Code Builder (Beta), el IDE de próxima generación de MuleSoft para diseñar, desarrollar e implementar API, integraciones y automatización desde un solo entorno. ¡Compruébalo si aún no lo has hecho!

Si leyó la sección "Integración de la plataforma" anterior, es posible que haya recibido un spoiler: MuleSoft se está integrando en Flow más que nunca. En Summer '23, habrá una nueva sección en la interfaz de usuario de configuración de Salesforce Platform, desde la cual podrá configurar y administrar los servicios de MuleSoft , que luego se pueden usar en Flow Builder. Además, el soporte de MuleSoft se está agregando a Flow Orchestrator , lo que facilita la creación de procesos comerciales automatizados de varios pasos que utilizan los servicios de MuleSoft.

Por último, se lanzará Anypoint Experience Hub . Es la próxima evolución de Anypoint API Community Manager y permite a los clientes crear portales de API en minutos para una mejor participación de API.

Cuadro

Si trabaja con API, es posible que esté familiarizado con la colección Postman de API de Salesforce . Esta colección se ha vuelto muy popular y es ampliamente adoptada en el ecosistema de Salesforce, con actualmente más de 500 bifurcaciones y más de 800 estrellas. Tableau recientemente se subió al carro al agregar sus propias muestras de la API REST de Tableau a la colección. Para obtener más información, lea nuestra entrada de blog .

Si le gustó la colección, le encantará la innovación más reciente de Tableau, cuya vista previa pública se anunció en la Conferencia de Tableau (TC) 2023 del 9 al 11 de mayo. El nuevo Tableau Embedding Playground ofrece a los desarrolladores un entorno de aprendizaje interactivo para desarrollar rápidamente soluciones de análisis integradas. Integre visualizaciones de Tableau y agregue rápidamente interacciones que establezcan filtros y parámetros, obtengan marcas y datos seleccionados, utilizando los componentes básicos de los métodos y las propiedades de la API de incorporación. En el futuro, use sus propias visualizaciones en Tableau Cloud, Tableau Server o Tableau Public para desarrollar sus aplicaciones personalizadas con código que puede exportar y ejecutar en cualquier lugar.

La diversión no se detiene ahí. Para admitir análisis integrados personalizados y seguros, Tableau introdujo recientemente dos nuevas funciones de usuario que permiten a los desarrolladores y administradores pasar cualquier atributo de usuario en tiempo de ejecución dentro del flujo de autenticación integrado. Para obtener más información, leanuestra entrada de blog .

Flojo

Finalmente, nos complace compartir que Slack acaba de anunciar la disponibilidad general de su plataforma Slack de próxima generación. En la nueva plataforma, puede crear aplicaciones modulares mediante el desarrollo de componentes básicos, como funciones, flujos de trabajo y activadores, mediante TypeScript y Deno . Ahora puede implementar en la infraestructura administrada por Slack, ahorrando tiempo y aumentando la eficiencia. En el futuro, los usuarios de Slack podrán aprovechar cada capacidad que ofrece y combinarlas con otras funciones, servicios y proveedores de software para crear automatizaciones potentes y personalizadas. La plataforma también incluye una CLI, que puede usar para desarrollar, probar e implementar sus funciones y flujos de trabajo. Para obtener más información al respecto y obtener experiencia práctica, diríjase a la guía de inicio rápido .

Aprende MOAR

Nuestros gerentes de producto y defensores de desarrolladores están de vuelta para compartir las últimas características y funcionalidades que llegarán en Summer '23. Para ayudarlo a desarrollarse más rápido, hay una gran cantidad de contenido nuevo del equipo de relaciones con desarrolladores que cubre sus nuevas características favoritas. ¡Asegúrese de consultar Release Readiness Live el viernes 19 de mayo a las 9:00 a. m. PST, y lea lo último en el blog de desarrolladores de Salesforce para conocer más innovaciones relacionadas con desarrolladores en el lanzamiento de Summer '23!

Sobre el Autor

Alba Rivas trabaja como Principal Developer Advocate en Salesforce. Actualmente se enfoca en el desarrollo de Lightning Web Components y Slack. Puedes seguirla en Twitter o Linkedin .

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Categorías
Developers Salesforce

Cambios en la estructura del DOM interno del componente Lightning base para compatibilidad futura con sombras nativas ☁️

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.

Cambios en la estructura del DOM interno del componente Lightning base para la futura compatibilidad con sombras nativas | Blog de desarrolladores de Salesforce

Salesforce está preparando los componentes base de Lightning para adoptar Shadow DOM nativo , lo que mejorará el rendimiento de los componentes y los alineará mejor con los estándares de los componentes web. Como parte de esta fase de preparación, hemos cambiado la estructura DOM interna de algunos de nuestros componentes. Recién comenzamos y continuaremos modificando las partes internas de los componentes en versiones posteriores. En esta publicación, discutiremos qué cambiará y cómo puede prepararse para ello.

¿Qué es el DOM de sombra nativo?

Shadow DOM es un estándar web que encapsula la estructura del modelo de objeto de documento (DOM) interno de un componente web. Esto nos da la capacidad de proporcionarle componentes robustos y seguros protegiéndolos de ser manipulados por HTML, CSS y JavaScript arbitrarios.

Actualmente, Salesforce mantiene un polyfill de sombra sintético para navegadores heredados, como versiones anteriores de Microsoft Edge, pero ahora que todos los principales navegadores admiten DOM de sombra nativo, estamos preparando nuestros componentes para hacer lo mismo.

Con la introducción del shadow DOM nativo, mejoraremos la encapsulación de los componentes, haciéndolos más consistentes y seguros, y brindaremos una forma más predecible de diseñarlos. Esto resolverá una gran cantidad de problemas de compatibilidad con versiones anteriores y alineará los componentes web Lightning con los estándares web.

Sin embargo, puede provocar una fase de adaptación a medida que hacemos el cambio.

La implementación interna de los componentes básicos está cambiando

Hemos estado trabajando en la preparación de nuestros componentes base para adoptar el shadow DOM nativo. Los escenarios específicos en los que se rompía la encapsulación de los componentes base requerían que creáramos un nuevo elemento contenedor dentro del límite de la sombra. Para ayudar a ilustrar esto, veamos un componente base de ejemplo llamado lightning-foo . Antes, el componente se veía así:

<dx-code-block title language code-block="

Example base component

«>

A partir de Summer '23, se verá así:

<dx-code-block title language code-block="

Example base component

«>

La mecánica interna de los componentes básicos no se diseñó para acceder directamente y tratarse como una API confiable para su uso. En cambio, nuestros componentes preempaquetados estaban destinados a usarse tal como son, utilizando las API públicas oficiales que hemos compartido abiertamente. Sin embargo, sabemos que algunos clientes están utilizando componentes internos de manera no documentada. Si está accediendo a los elementos internos de un componente base con fines de personalización y prueba, tenga en cuenta estos cambios.

¿Cómo puede arreglar su código personalizado y sus pruebas?

Al probar manualmente sus aplicaciones, es posible que detecte un componente personalizado que funcionaba anteriormente y que no tiene el aspecto esperado. Debido a estos cambios, sus pruebas automatizadas de un extremo a otro también pueden fallar. En ambos casos, puede significar que su código personalizado o código de prueba depende de las partes internas de un componente base que ha cambiado . Exploremos estos dos problemas con más profundidad:

Un componente no se ve como se esperaba:

  • Problema: Intentar diseñar el elemento o las clases personalizadas dentro de un componente base puede generar resultados imprevistos.
  • Solución: El cambio de sombra sintética a componentes totalmente encapsulados con DOM de sombra nativo puede cambiar su estrategia de CSS. Al migrar sus personalizaciones de estilo a la sombra nativa, siga estos pasos:
    • Consulte la disponibilidad de un gancho para peinar . Ofrecen un excelente método para adaptar un componente sin profundizar en las complejidades del CSS subyacente o el shadow DOM.
    • Asegúrese de que el valor que está aplicando al gancho de estilo esté vinculado a su sistema de diseño en lugar de un valor fijo y predefinido. Evite usar un valor codificado.

Una prueba de extremo a extremo falla:

  • Problema: Cualquier implementación que use combinadores CSS fallará. Por ejemplo, lightning-foo > p no coincidirá con nuestro marcado actualizado.
  • Solución: Los combinadores hacen que el CSS sea frágil y deben evitarse a menos que se usen por una buena razón. La mayoría de las veces, los combinadores se pueden eliminar sin ninguna regresión. Si se desea un elemento específico, se pueden usar otros métodos de orientación que no se basen en el marcado que nunca cambia. Es decir, evite apuntar explícitamente a elementos HTML siempre que sea posible. Use otros selectores disponibles, como clases que permiten que su uso de CSS sea abstracto, modular y separado del elemento HTML. Si sus pruebas se basan en combinadores de CSS, le recomendamos que adopte el Modelo de automatización de pruebas de interfaz de usuario (UTAM) para evitar cambios importantes en el futuro, ya que los objetos de la página se mantienen actualizados con todos los cambios de componentes.

Conclusión

En resumen, estamos logrando avances significativos al preparar los componentes base de Lightning para adoptar Shadow DOM nativo, lo que garantizará un mejor rendimiento y la alineación con los estándares de los componentes web, además de mejorar la seguridad y la confiabilidad de los componentes. Al encapsular la estructura DOM interna, nos esforzamos por brindar una experiencia más sólida y predecible tanto para los desarrolladores como para los usuarios.

Si bien estos cambios pueden presentar algunos desafíos iniciales, son pasos necesarios hacia un sistema más estandarizado y preparado para el futuro. Seguimos comprometidos a informar y apoyar a los desarrolladores durante esta transición.

En preparación para estos cambios, recomendamos adoptar ganchos de estilo y métodos de orientación como clases para garantizar que el uso de CSS siga siendo modular y adaptable. Además, recomendamos enfáticamente adoptar UTAM como su solución de prueba de extremo a extremo.

Estén atentos a más actualizaciones y cambios a medida que Salesforce continúa optimizando y mejorando el marco de componentes Lightning. Al adoptar estas próximas mejoras, los desarrolladores pueden esperar una experiencia de desarrollo más fluida y eficiente mientras crean aplicaciones poderosas en la Plataforma Salesforce.

Más recursos

Sobre los autores

Maeve Tuntivate es Gerente sénior en el equipo de Gestión de productos en Salesforce.

Jesse Brack es ingeniero principal de UX en el equipo de ingeniería de sistemas de diseño de Salesforce.

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Categorías
Developers Salesforce

Actualizaciones de integración de plataforma para desarrolladores | Aprende Moar Verano '23 ☁️

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.

Actualizaciones de integración de plataforma para desarrolladores | Aprende Moar Verano '23 | Blog de desarrolladores de Salesforce

¡Únase a nosotros para Release Readiness Live esta semana! Los expertos en productos y los defensores de los desarrolladores analizarán y demostrarán las nuevas funciones en el lanzamiento de Summer '23 y, al final de nuestra transmisión, responderemos sus preguntas. Sintonice a las 9 am PT el 19 de mayo para la sesión de desarrolladores. ¿No puedes unirte a nosotros en vivo? La grabación se publicará unas horas después de que finalice la transmisión.

Introducción

El verano finalmente está aquí, y para nosotros los desarrolladores, ¡eso significa un nuevo y emocionante lanzamiento! Exploremos las próximas características que trae la versión Summer '23 para los desarrolladores centrados en la integración de plataformas.

Consultas SOQL anidadas en API

A partir de la API de la plataforma de Salesforce v58.0, SOQL ahora admite consultas de relación que atraviesan hasta cinco niveles de registros primarios y secundarios . Anteriormente, solo se admitía un nivel. Esta característica está disponible para objetos estándar y personalizados, y está limitada a consultas realizadas a través de llamadas de consulta REST y SOAP.

Probémoslo probando una relación padre-hijo de cuatro niveles usando la API REST con la siguiente consulta:

La llamada API ahora devuelve los registros anidados solicitados en la siguiente jerarquía: Cuenta (Nivel 1) → Contacto (Nivel 2) → Caso (Nivel 3) → Comentarios del caso (Nivel 4).

Credenciales con nombre en Connect API

Otra característica útil introducida en esta versión es la capacidad de administrar credenciales con nombre tanto desde la API REST de Connect como desde la API de Connect . Ya no necesita interrumpir su configuración para crear credenciales a través de la interfaz de usuario; ahora, se puede hacer programáticamente,

Por ejemplo, puede recuperar la lista de todas las credenciales con nombre existentes realizando la siguiente llamada a la API:

GET /services/data/v58/named-credentials/named-credential-setup

Alternativamente, puede usar Apex con lo siguiente:

También puede crear credenciales con nombre mediante programación con la API y Apex. Este es un ejemplo de cómo hacerlo con Apex:

Consulte nuestra colección Postman para desarrolladores de Salesforce que presenta las nuevas API de Named Credentials y consulte la documentación de la clase NamedCredentials Apex para obtener más información.

Consultas API de GraphQL con funciones agregadas

Nuestra API GraphQL sigue mejorando y, con esta versión, estamos agregando soporte para registros de consulta que usan funciones agregadas con o sin agrupación .

Podrá contar la cantidad de registros que coinciden con ciertos criterios, calcular el ingreso promedio en todas las cuentas o ver la cantidad total de todas las oportunidades.

Se admiten las siguientes funciones agregadas:

  • avg : devuelve el valor promedio de un campo numérico
  • count : devuelve el número de resultados que coinciden con los criterios de consulta
  • countDistinct : devuelve el número de valores de campo distintos y no nulos que coinciden con los criterios de consulta
  • grouping : especifica si se utiliza un campo al componer el grupo; usar con el argumento de consulta groupBy y el tipo ROLLUP o CUBE
  • max – Devuelve el valor máximo de un campo
  • min – Devuelve el valor mínimo de un campo
  • sum : devuelve la suma total de un campo numérico

Echemos un vistazo a una consulta de ejemplo. La siguiente consulta calcula el ingreso anual promedio de todas las cuentas, agrupadas por industria. Tenga en cuenta que estamos usando el campo aggregate en uiapi en lugar de query , lo que nos permite aprovechar las funciones agregadas.

A continuación, una consulta de GraphQL utilizando la función de agregado promedio y la función de agrupación.

También puede realizar consultas tradicionales dentro de la misma solicitud:

Si desea probarlo, puede usar el cliente Altair GraphQL o nuestra colección Postman de desarrolladores de Salesforce .

Adaptador GraphQL de Salesforce Connect

En febrero de 2023, anunciamos la versión piloto de nuestro adaptador GraphQL de Salesforce Connect y ahora nos complace anunciar que estará disponible de forma general en esta versión de verano de 2023.

El nuevo adaptador de Salesforce Connect para GraphQL actúa como un cliente para integrar datos de fuentes externas que exponen sus capacidades a través de GraphQL. Lo hace de una manera de copia cero al hacer llamadas en vivo a los puntos finales de la API cuando una acción del usuario o del sistema requiere registros específicos. Solo los datos necesarios para esa acción en particular se consultan a través de GraphQL y Salesforce Connect no almacena ni almacena en caché los registros devueltos por el servidor. Además, este adaptador incluye extensiones especiales para AWS AppSync y brinda acceso sin inconvenientes a Amazon RDS.

Para aprovechar este nuevo adaptador, simplemente cree una nueva fuente de datos externa y seleccione el tipo GraphQL .

Apex publica devoluciones de llamada en eventos de la plataforma

Con el lanzamiento de Summer '23, ahora puede realizar un seguimiento de la publicación de eventos de la plataforma utilizando Apex Publish Callbacks . Con esta nueva versión, puede obtener el resultado final de una llamada EventBus.publish a través de una devolución de llamada de publicación de Apex que implemente. Esto le da la opción de realizar un seguimiento de los errores o los éxitos para recibir el resultado final de la publicación. En función de ese resultado, puede decidir qué acción tomar, como intentar volver a publicar eventos fallidos, por ejemplo.

Para realizar un seguimiento de un evento fallido publicado, escriba una clase de Apex e implemente la interfaz EventBus.EventPublishFailureCallback . Si la operación asincrónica falla, se invocará el método onFailure . El parámetro result contiene los valores del campo EventUuid para cada evento fallido, pero no incluye los datos del evento en sí.

Para realizar un seguimiento de las publicaciones de eventos exitosas, escriba una clase de Apex e implemente la interfaz EventBus.EventPublishSuccessCallback . Debido a que la mayoría de las llamadas de publicación suelen tener éxito, el procesamiento de publicaciones de eventos exitosas probablemente no sea una preocupación. Observe siempre los límites de rendimiento y del gobernador de Apex cuando procese este tipo de resultado.

Como práctica recomendada, siempre cree eventos usando sObjectType.newSObject , ya que esto incluye un EventUuid que puede usar para rastrear el evento. Al crear eventos con este enfoque, recomendamos no publicar el mismo evento más de una vez para evitar duplicaciones EventUuid .

Métricas mejoradas para eventos de plataforma

Con esta actualización, ahora puede obtener métricas de uso de eventos mejoradas para eventos de plataforma consultando el objeto PlatformEventUsageMetric . Esto le permite agregar datos de uso por nombre de evento y determinar qué evento consume más de sus asignaciones. Además, puede agrupar el uso por cliente para descubrir cuántos clientes se suscribieron a un evento en particular y cómo se distribuye el uso de entrega de eventos entre los clientes. Además, utilice agregaciones granulares de tiempo de períodos diarios, por hora y de 15 minutos para segmentar los datos de uso para obtener información más detallada.

Cuando consulta PlatformEventUsageMetric , puede usar estos nuevos campos: EventName , Client , EventType y UsageType .

La siguiente consulta de ejemplo devuelve el uso de eventos por hora para eventos entregados entre el 1 y el 2 de abril en horario UTC. También agrega los resultados en intervalos de una hora según lo especificado por el campo TimeSegment . Dado que los campos EventName y Client se especifican en la consulta, los resultados se agruparán por evento y cliente.

= 2023-04-01T00:00:00.000Z AND EndDate

Un resultado de muestra de la consulta anterior sería similar al siguiente, incluirá datos de uso para todos los eventos, Order_Event__e y AccountChangeEvent .

Para obtener más información sobre esta función, consulte la documentación .

Acción HTTP en flujo: GET es GA, POST es Beta

HTTP Callout ahora está generalmente disponible para solicitudes GET , lo que le permite traer datos externos a Flow Builder sin ningún código. Usted crea una acción de Llamada HTTP desde dentro de Flow, que puede llamar a cualquier API de servicio basado en la web. Después de agregar los detalles de la API, Flow Builder genera una acción de llamada reutilizable que puede usar para diferentes flujos y en todo Salesforce.

Para ponerlo en uso, desde el elemento Acciones, seleccione Crear llamada HTTP .

Junto con GA, hemos incluido algunos cambios desde la última versión que agilizan el proceso de configuración.

Ahora puede editar una acción de llamada HTTP de forma declarativa. Las API cambian regularmente, por ejemplo, cuando se agrega un nuevo campo obligatorio a un sistema externo. Anteriormente, para editar la acción de llamada HTTP reutilizable, modificó la especificación de API generada automáticamente, lo que requería conocimientos de JSON. Ahora, puede editar la acción con clics en el menú de configuración de Servicios externos.

También se simplificó la configuración de la estructura de datos de la respuesta de la API. Proporciona una respuesta de API de muestra y Flow infiere los tipos de datos y analiza el JSON para que los datos se puedan utilizar en los flujos. Anteriormente, si necesitaba cambiar los tipos de datos inferidos, editaba el propio JSON. Ahora, selecciona los tipos de datos del campo con clics. Ahora también se admiten los tipos de datos de fecha, fecha/hora y booleano.

Como bonificación adicional, obtiene mensajes de error más intuitivos al crear su acción de llamada HTTP para ayudar a resolver el error y evitar problemas en el tiempo de ejecución.

Y si no puede OBTENER suficiente con HTTP Callout, ahora puede usar el método POST (Beta) para enviar datos de Salesforce a un servidor externo en Flow Builder. Por ejemplo, una nueva cuenta en Salesforce activa un flujo que crea una factura en un sistema externo. Seleccione POST (Beta) , ingrese un cuerpo de solicitud JSON de muestra que la API espera al configurar la llamada HTTP, y Flow infiere la estructura de datos externos.

Aprende MOAR

Guau, ¡son bastantes nuevas características de integración de plataforma para probar! Confío en que facilitarán la vida de muchos desarrolladores. ¡Pero hay más por descubrir! Lo invito a explorar nuestras otras publicaciones de blog para conocer las últimas actualizaciones de LWC, Mobile, MuleSoft y Tableau.

Nuestros gerentes de producto y defensores de desarrolladores están de vuelta para compartir las últimas características y funcionalidades que llegarán en Summer '23. Para ayudarlo a desarrollarse más rápido, hay una gran cantidad de contenido nuevo del equipo de relaciones con desarrolladores que cubre sus nuevas funciones favoritas. ¡Asegúrese de consultar Release Readiness Live el viernes 19 de mayo a las 9:00 a. m. PST, y lea lo último en el blog de desarrolladores de Salesforce para conocer más innovaciones relacionadas con desarrolladores en el lanzamiento de Summer '23!

¡Explore los trailmixes de Trailhead con aspectos destacados de lanzamiento clave para desarrolladores o administradores, o ambos! Siga y complete un trailmix de Learn MOAR Summer '23 para administradores o desarrolladores para obtener una insignia exclusiva de la comunidad.

Otras lecturas

Sobre el Autor

Julián Duque es un defensor principal de desarrolladores en Salesforce, donde se enfoca en Node.js, JavaScript y desarrollo backend. Le apasiona la educación y el intercambio de conocimientos y ha estado involucrado en la organización de comunidades tecnológicas y de desarrolladores desde 2001.

Sígalo en Twitter @julian_duque , @julianduque.co en Bluesky o LinkedIn .

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Categorías
Developers Salesforce

Muévete a 2GP Administrado con Migraciones de Paquetes ☁️

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.

Pasar a 2GP administrado con migraciones de paquetes | Blog de desarrolladores de Salesforce

Han pasado casi cuatro años desde que lanzamos por primera vez el paquete administrado de segunda generación (2GP) , que permite a nuestros socios de AppExchange crear y distribuir soluciones utilizando un modelo de desarrollo basado en CLI, basado en fuente y fácil de automatizar.

Desde entonces, recibimos una gran cantidad de excelentes comentarios de nuestra comunidad de desarrolladores, y continuamos innovando en múltiples áreas relacionadas con la experiencia del desarrollador, el rendimiento, la paridad del tipo de metadatos con el paquete administrado de primera generación (1GP), etc. Cada vez que nos reunimos con desarrolladores de ISV, constantemente escuchamos sobre la necesidad de que Salesforce los ayude a ellos y a sus clientes a pasarse al mundo de 2GP.

¡Hoy, tengo algunas noticias emocionantes para compartir con todos ustedes! Estamos abordando la pregunta n.º 1 de nuestros desarrolladores de ISV al presentar una nueva función: Migraciones de paquetes . En pocas palabras, Package Migrations automatiza por completo el proceso de convertir paquetes 1GP a 2GP y migra sin problemas a los clientes con paquetes instalados a 2GP. Si es un socio ISV que crea paquetes administrados, ¡esta publicación de blog es para usted!

Antes de sumergirnos en los detalles de las migraciones de paquetes, echemos un vistazo a algunos beneficios de usar 2GP para el desarrollo de paquetes.

Beneficios de usar 2GP para el desarrollo de paquetes

En el corazón de 2GP se encuentra un modelo de desarrollo basado en fuente, donde un repositorio de código fuente como Git representa la fuente de la verdad para su paquete. Esto es fundamentalmente diferente del mundo de 1GP, donde utiliza una organización de empaquetado para mantener todos los metadatos que desea empaquetar y distribuir a sus clientes.

Este modelo de desarrollo impulsado por la fuente, impulsado por la CLI de Salesforce , puede aumentar drásticamente la productividad y la colaboración de su equipo. Los desarrolladores pueden usar Dev Hub para activar rápidamente organizaciones temporales , crear una función de forma conjunta y comprometerla con el control de código fuente. Cuando esté listo para distribuir una nueva versión de su 2GP, simplemente extraiga la rama correspondiente a una máquina local y use la CLI para crear su nueva versión del paquete.

Es importante destacar que este enfoque basado en CLI también significa que puede integrar fácilmente su proceso de empaque por completo en CI/CD, lo que facilita la automatización completa de su flujo de trabajo. Puede, por ejemplo, ejecutar automáticamente Salesforce Code Analyzer en una base de código y, siempre que no se encuentren problemas, crear una nueva versión del paquete.

En el mundo de 1GP, estabas atrapado usando un espacio de nombres diferente para cada uno de tus paquetes. En 2GP, todos sus paquetes pueden compartir el mismo espacio de nombres, lo que le permite aprovechar un enfoque verdaderamente modular para el desarrollo de paquetes para mantener sus paquetes bien organizados. También es posible declarar explícitamente dependencias entre paquetes , asegurando que todo funcione en conjunto sin problemas.

Con 2GP, también obtiene un control de versiones flexible, lo que le permite abandonar versiones de paquetes que ya no desea utilizar. En su lugar, puede especificar un ancestro de la versión del paquete y crear efectivamente una nueva rama en la que desee continuar con su desarrollo.

Finalmente, apoyar a los clientes nunca ha sido tan fácil con 2GP. En el mundo de 1GP, los parches solo se pueden crear desde una organización de parches. Con el modelo de desarrollo basado en el código fuente de 2GP, puede simplemente crear una versión del paquete de parches directamente desde la CLI y, siempre que el parche cumpla con los requisitos relacionados con los cambios menores y la ascendencia del paquete, se crea y está listo para instalarse en la organización de su cliente.

Dicho todo esto, 2GP puede agregar mucho valor a su proceso de desarrollo. ¡Ahora, averigüemos cómo las Migraciones de paquetes pueden ayudarlo a llegar al mundo de 2GP!

Introducción a las migraciones de paquetes

Package Migrations amplía la funcionalidad de 2GP con comandos CLI adicionales y capacidades adicionales para ayudar a los desarrolladores de ISV a realizar una transición completa al mundo de 2GP. Actualmente se encuentra en Developer Preview y está abierto para que todos los desarrolladores de ISV lo prueben en sus paquetes 1GP existentes. ¡Siga leyendo para saber cómo participar en la versión preliminar para desarrolladores!

Hay dos elementos para las migraciones de paquetes: conversión de paquetes y migración de paquetes.

La conversión de paquetes se inicia a través del nuevo comando sf package convert . Toma una versión específica de su paquete 1GP existente (Acme v1.0 en este ejemplo) y usa algo de magia detrás de escena para convertirlo en una versión de paquete 2GP correspondiente (Acme v1.0.0.1 usando la numeración de versión 2GP).

Una vez que tenga una versión de paquete 2GP convertida, puede migrar clientes a 2GP. Si tiene un suscriptor con Acme v1.0 instalado, iniciaría el proceso tratándolo como una actualización de paquete normal: a través de la CLI con sf package install (ver documentos ), instalación de URL o actualizaciones automáticas.

Mientras intenta instalar su paquete 2GP convertido v1.0.0.1, que coincide con la versión mayor.menor del paquete 1GP instalado en el suscriptor A, ejecutamos una nueva lógica que inicia el proceso de migración del paquete . Sin cambiar ningún metadato en la organización del cliente, y sin requerir la intervención del usuario si usa actualizaciones automáticas, simplemente cambiamos las referencias del paquete para que apunten al nuevo paquete 2GP.

Una vez que un cliente migre a 2GP, cualquier parche o actualización del paquete de este cliente deberá usar 2GP.

Participación en la versión preliminar para desarrolladores de migraciones de paquetes

Para probar las migraciones de paquetes, debe ser un socio ISV con acceso a la comunidad de socios de Salesforce .

En la Comunidad de socios, encontrará un canal exclusivo para esta versión preliminar para desarrolladores. Le recomendamos que se una a este canal y configure las notificaciones para enviar por correo electrónico cada publicación para recibir las últimas actualizaciones del equipo de Migraciones de paquetes.

En este canal, encontrará una serie de enlaces útiles, incluido un formulario para registrarse en Developer Preview. Necesitaremos algunos detalles, como su ID de organización de empaquetado, para que podamos activar la función Migraciones de paquetes.

Es importante destacar que participar en Developer Preview no tendrá ningún impacto en su paquete de 1GP. Por lo tanto, no se preocupe y participe, ya que sus comentarios son esenciales para ayudarnos a identificar y resolver problemas lo antes posible.

Una vez que esté activado, puede comenzar a probar las migraciones de paquetes.

Probar la conversión de un paquete administrado de primera generación

Muy bien, ¡comencemos! En primer lugar, asegúrese de haber instalado la CLI de Salesforce.

Si lo instaló anteriormente, asegúrese de estar usando la última versión:

sf update

Ahora asegúrese de que está ejecutando dentro del contexto de un proyecto de SalesforceDX. Puedes crear un nuevo proyecto usando:

sf project generate --name <Your project name>

Vincule el espacio de nombres de su 1GP administrado iniciando sesión en su DevHub y siga los pasos .

¡Eso es todo para la configuración! Ahora puede continuar e intentar convertir su paquete.

sf package convert --installation-key mdpTest --package 033xxx --wait 20

Repasemos los parámetros. Estamos utilizando la clave de instalación mdpTest . Será necesario cada vez que intente instalar esta versión del paquete en el futuro. Alternativamente, puede usar --installation-key-bypass para omitir la clave de instalación. Deberá ingresar su ID de paquete 1GP completo comenzando con 033 después de --package . El proceso de conversión puede demorar un poco y, por lo tanto, agregamos la opción --wait para esperar 20 minutos.

A medida que se ejecuta el proceso de conversión, obtendrá una actualización de su estado. Suponiendo que todo salió bien, recibirá un mensaje de éxito con la ID y la URL de instalación para la versión del paquete 2GP recién convertida.

Converting Package... ... Successfully created the package version [08cxxx00000KzFSAA0]. Subscriber Package Version Id: 04txxx00000u1cqAAA
Package Installation URL: https://login.salesforce.com/packaging/installPackage.apexp?p0=04txxx00000u1cqAAA
As an alternative, you can use the "sfdx package:install" command.

¡Felicitaciones, su paquete ahora está convertido a 2GP! Si encontró algún problema en el camino, infórmenos utilizando el formulario en el grupo Comunidad de socios .

Nota: Al momento de escribir esta publicación de blog, este comando convertirá la última versión administrada y lanzada de su paquete. Estamos trabajando para permitirle convertir versiones de paquetes Beta y anteriores. Por otro lado, durante Developer Preview, no es posible promocionar paquetes 2GP convertidos al estado Lanzado.

Ahora que su paquete está convertido, probemos la migración de una organización suscriptora.

Probar la migración de un paquete administrado de primera generación instalado

Para probar la migración de un suscriptor, deberá crear una organización borrador ya que, durante la versión preliminar para desarrolladores, solo admitimos organizaciones borrador. Puede configurar una nueva organización borrador como esta:

sf org create scratch -f project-scratch-def.json -a MyScratchOrg

En el código anterior, -f apunta a su archivo de definición de organización borrador . Debe asegurarse de que su archivo de definición de organización borrador incluya cualquier función de Salesforce de la que pueda depender su paquete. Finalmente, estamos usando MyScratchOrg como el alias de esta organización.

Con la configuración de la organización borrador, continúe e instale la versión del paquete 1GP que convirtió anteriormente utilizando la URL de instalación que obtiene de su organización de empaquetado 1GP. Esta debería ser su última versión administrada y lanzada en este momento.

Puede confirmar que el paquete se instaló correctamente durante la pantalla de instalación. Vea el ejemplo a continuación.

Y consulte la sección Paquetes instalados del menú Configuración.

Ahora que instaló su 1GP en la organización borrador, está listo para la migración.

Inicie el proceso de migración utilizando la URL de instalación que recibió al final del proceso de conversión del paquete:

https://login.salesforce.com/packaging/installPackage.apexp?p0=04txxx00000u1cqAAA

Ahora pasará por el mismo conjunto de pantallas que el anterior, pero esta vez para su paquete 2GP convertido.

Actualmente, la interfaz de usuario muestra que la "instalación" se ha completado. En realidad, lo que hicimos fue una migración de paquetes que se completó con éxito.

Tenga en cuenta que en este ejemplo, he usado la segunda compilación Beta para la versión 1.7, que corresponde a la misma versión mayor.menor que la versión del paquete 1GP instalada anteriormente. Como el 2GP convertido, durante la Vista previa del desarrollador, se crea como una versión Beta, se muestra como tal.

Una vez más, puede confirmar la versión del paquete actualizado en la sección Paquetes instalados del menú Configuración, que también muestra, en este ejemplo, que el número de versión es 1.7 (Beta 2).

Una vez que haya migrado el paquete en su organización borrador, le recomendamos que lo pruebe para asegurarse de que funciona como se esperaba.

También debe aprovechar la oportunidad para verificar si las aplicaciones, como la aplicación de administración de licencias o la aplicación de administración de funciones, muestran la información correcta para su paquete migrado. Si encuentra algo que no está bien, por favor plantéelo como un problema y lo investigaremos.

Mientras tanto …

Se necesitarán algunos lanzamientos para que las migraciones de paquetes estén disponibles de forma general. Su participación en Developer Preview, probando sus paquetes y brindándonos comentarios, es esencial para ayudarnos a identificar y resolver problemas antes.

Mientras tanto, ¿qué más puedes hacer? Le recomendamos que experimente con el uso de paquetes de segunda generación como parte de su modelo de desarrollo actual basado en 1GP. ¿Confundido? Dejame explicar.

Como mencioné anteriormente, hay una serie de ventajas específicas de 2GP. De estos, hay algunos de los que puede comenzar a beneficiarse hoy. Estos son los pasos que puede seguir:

  1. Puede configurar su control de código fuente y alimentarlo con metadatos extraídos de su organización de empaquetado.
  2. Puede crear un DevHub y organizaciones borrador derivadas para el desarrollo utilizando metadatos de su control de código fuente.
  3. Puede crear un paquete 2GP para desarrollo interno y pruebas que reflejen su paquete 1GP, pero usando un espacio de nombres solo interno o el mismo que su paquete 1GP. Las colisiones de espacios de nombres evitarán que los paquetes 1GP y 2GP con el mismo espacio de nombres se instalen en el mismo entorno.
  4. Una vez que esté satisfecho con el contenido de su paquete 2GP, puede migrar los metadatos desde la rama de control de fuente correspondiente a su organización de empaquetado y emitir una nueva versión de su paquete para distribuir a los clientes.

Esto lo ayudará a sumergirse en el mundo de 2GP y, una vez que Package Migrations esté disponible de forma general, podrá abandonar su modelo de desarrollo de 1GP por completo y pasar por completo a un modelo de desarrollo de 2GP.

Conclusión

Estamos muy entusiasmados con las migraciones de paquetes, pero necesitamos su ayuda para asegurarnos de que sea lo mejor posible. Si es un desarrollador de ISV, continúe y regístrese para la Vista previa para desarrolladores en la Comunidad de socios.

¡Estamos ansiosos por recibir sus comentarios!

Más recursos

Grupo de vista previa para desarrolladores en la comunidad de socios

Embalaje gestionado de segunda generación (documentación)

Sobre el Autor

John Belo es director de gestión de productos para productos de experiencia de desarrollador y se centra en migraciones de paquetes, analizador de código de Salesforce y análisis de aplicaciones de AppExchange. Ha estado en Salesforce durante más de siete años y pasó la mayor parte de este tiempo en el equipo de AppExchange. Comenzó liderando un equipo de evangelistas técnicos de ISV en EMEA y ahora es parte del equipo de gestión de productos de experiencia de desarrollador, siempre con la intención de ayudar a los ISV a tener el mayor éxito posible.

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Categorías
Estrategias para Empresas

Contact Centers vs. Call Centers: ¿Cuál es la diferencia?

Los términos centro de llamadas y centro de contacto a menudo se usan indistintamente y, aunque ambos son centros de atención al cliente, no son exactamente lo mismo. Los centros de llamadas se enfocan únicamente en las comunicaciones telefónicas, mientras que los centros de contacto modernos brindan soporte a través de una variedad de canales, que incluyen teléfono, correo electrónico, chat en vivo, artículos de conocimiento de autoservicio y chatbots. Profundicemos en las diferencias entre un centro de contacto y un centro de llamadas, para que pueda decidir el mejor enfoque de servicio al cliente para su negocio.

Los clientes de hoy tienen grandes expectativas para las empresas con las que hacen negocios. Descubrimos que el 94% de los clientes dicen que una experiencia positiva de servicio al cliente los hace más propensos a realizar una compra nuevamente. Sin embargo, solo el 13% de los clientes dicen que pueden resolver sus problemas con poco esfuerzo.

¿Cómo es una experiencia positiva del cliente? Se trata de reunirse con los clientes donde están, utilizando los métodos de comunicación y la tecnología que prefieren, y brindando una variedad de opciones de servicio, en lugar de limitar el servicio solo por teléfono. A medida que las preferencias de los clientes evolucionan con la tecnología, más centros de llamadas se están transformando en centros de contacto .

Modernice su centro de contacto

La combinación correcta de canales y herramientas de servicio al cliente puede ayudarlo a ser más eficiente y mejorar la satisfacción del cliente. Nuestra guía revela cómo las organizaciones de servicio de alto rendimiento lo hacen posible.

¿Qué es un centro de llamadas?

Un centro de llamadas es un grupo de servicio al cliente remoto o local que brinda servicio al cliente por teléfono. Los centros de llamadas pueden emplear desde unos pocos agentes para pequeñas y medianas empresas hasta cientos para grandes corporaciones.

Cada agente generalmente maneja varias llamadas telefónicas por día para ayudar con los problemas de los clientes, desde consultas de facturación hasta problemas técnicos complejos. Algunos centros de llamadas utilizan software de administración de relaciones con los clientes (CRM) para resolver problemas más rápido y proporcionar a los agentes datos de clientes, pero muchos centros de llamadas todavía están trabajando para adoptar esta tecnología.

Un centro de contacto es un centro de servicio al cliente que proporciona una variedad de canales de comunicación, incluidos teléfono, correo electrónico, redes sociales, chat, SMS y mensajería, videoconferencia , uso compartido de pantalla y más. Los agentes suelen tener la experiencia para trabajar en todos estos canales o en un subconjunto especializado según la estructura de su equipo.

Un centro de contacto también utiliza la tecnología CRM para capacitar a los agentes para ayudar a los clientes, acelerar los tiempos de respuesta y brindar interacciones y ofertas personalizadas.

Las preferencias de comunicación del cliente varían ampliamente. Alguien que está en movimiento puede marcar una línea de servicio al cliente, mientras que alguien en su escritorio puede comunicarse con un agente a través del chat en vivo.

Cuando los centros de contacto enrutan las solicitudes de múltiples canales a los agentes de servicio en función de su disponibilidad y conjunto de habilidades, los agentes de servicio pueden realizar múltiples tareas y aumentar su eficiencia.

Una métrica clave para el éxito del centro de contacto es la reducción del trabajo manual de los agentes. Los agentes tienen tareas como notas de casos, transferencias de datos y enrutamiento de llamadas, lo que puede reducir la velocidad y la eficiencia del servicio que brindan.

Los centros de contacto utilizan la automatización y la inteligencia artificial (IA) para reducir estas tareas de la carga de trabajo de sus agentes para que puedan concentrarse en resolver los problemas de los clientes y brindar una experiencia de servicio perfecta. Estas tecnologías pueden hacer cosas como transcribir automáticamente llamadas telefónicas, sugerir respuestas de chat en vivo o encontrar artículos de ayuda para que los agentes los compartan con los clientes.

La IA generativa está facilitando aún más la eficiencia. Cuando se aplica al servicio, la IA generativa puede tomar datos del cliente, como una consulta del cliente o información de la cuenta, y crear algo nuevo a partir de ellos. Algunos ejemplos de estos poderosos casos de uso incluyen la generación automática de artículos de conocimientos basados en datos de resolución de casos, brindar respuestas personalizadas a preguntas de chat en vivo y extraer datos en tiempo real para ayudar a los agentes a resolver los problemas de los clientes rápidamente.

Los centros de llamadas tienen un enfoque singular: brindar un servicio de calidad por teléfono. Los centros de contacto adoptan un enfoque omnicanal que muchos consumidores encuentran más conveniente (ya no hay que esperar en la línea telefónica ni escuchar la serenata de la música del ascensor).

Elección de canal

Sus clientes solo quieren que sus problemas se resuelvan lo más rápido posible. Al final del día, debe reunirse con ellos donde están a través de sus canales de comunicación preferidos, que variarán según el tipo de servicio o producto que ofrezca.

Con un centro de contacto, puede llegar a los clientes en estos canales:

  • Teléfono
  • Correo electrónico
  • Medios de comunicación social
  • Formularios en línea
  • Bases de conocimiento
  • Portales de autoservicio para clientes
  • Chat en línea/soporte en vivo
  • aplicaciones de mensajería
  • Texto/SMS
  • Aplicaciones móviles
  • Comunidades y foros de discusión
  • Soporte de vídeo

Su industria influirá en gran medida en los canales de servicio al cliente que brinda su empresa. ¿Eres una empresa de servicios públicos? Entonces, el autoservicio , los SMS y el teléfono son fundamentales para su centro de contacto. ¿Qué tal un minorista de comercio electrónico? Sus clientes ya están comprando en línea; poder comunicarse con usted a través de la web o el chat móvil probablemente sea importante para ellos.

A pesar de la expansión y aceptación de los canales digitales y la variedad de preferencias de los clientes, el 81 % de los profesionales de servicios dicen que el teléfono es un canal preferido para problemas complejos, por lo que incluso los centros de contacto digitales deben mantener abiertas las líneas telefónicas.

Servicio al cliente personalizado

Una diferencia importante entre un centro de llamadas y un centro de contacto es el uso de los datos del cliente y la tecnología CRM para brindar un servicio al cliente personalizado.

Cuando el teléfono es la única opción para ponerse en contacto con una empresa, las interacciones tienden a ser simples, como restablecer la contraseña de una cuenta o hacer una pregunta, y menos frecuentes con el mismo cliente. Y dado que la tecnología CRM solo la utilizan algunos centros de llamadas, los agentes pueden tener información limitada sobre un cliente y sus preferencias.

Los centros de contacto tienden a manejar tareas más complejas. Los problemas más simples de los clientes generalmente se resuelven a través de canales de bajo contacto (piense en artículos de autoservicio, chatbots , SMS o chat en vivo), mientras que los problemas más complejos se manejan por teléfono.

Un agente de servicio en un centro de contacto usa la instancia de CRM de la empresa para hacer referencia a interacciones pasadas , ver qué productos o paquetes tiene actualmente el cliente y brindar opciones personalizadas de ventas cruzadas o adicionales. Esto es posible gracias a la integración de los datos de ventas, servicios, marketing y comercio, todos canalizados a través de una única plataforma de CRM.

Habilidades de agente

Su elección de centro de contacto frente a centro de llamadas también se reducirá a las habilidades de sus agentes y al presupuesto y los recursos disponibles para la capacitación de agentes.

Dado que los agentes del centro de contacto utilizan más canales digitales y asincrónicos que los centros de llamadas, deben poder realizar múltiples tareas y deben sentirse cómodos con la tecnología digital. Los agentes del centro de llamadas, por otro lado, deben pensar rápidamente y mantener la calma para reducir las situaciones en tiempo real.

Los agentes de servicio al cliente deben tener la combinación correcta de habilidades blandas y duras para cumplir con las expectativas del cliente. Cuando se trata de habilidades blandas, deben ser comunicadores y oyentes competentes, buenos pensadores críticos y solucionadores de problemas, y ser capaces de resolver conflictos en situaciones tensas. Cuando se trata de habilidades duras, necesitan saber cómo usar tableros, herramientas de servicio, consolas, herramientas de automatización y acceso a datos de clientes para hacer bien su trabajo y hacer recomendaciones más personalizadas a los clientes en tiempo real.

Los centros de llamadas son más sencillos de operar, con altos costos operativos provenientes de la plantilla y los sistemas telefónicos o el software. Su simplicidad puede ser atractiva para las empresas que desean evitar complicar demasiado su estrategia de servicio al cliente, especialmente si tienen una base de clientes pequeña y conocida que prefiere obtener el servicio por teléfono.

Por el contrario, los centros de contacto personalizan la experiencia del cliente al proporcionar varios canales de servicio según las preferencias del cliente. Esto facilita que los problemas se resuelvan de forma asincrónica y los problemas más complejos se resuelvan por teléfono. Este enfoque rentable es lo que llamamos " Cambio a escala ".

El 48% de los clientes han cambiado de marca para un mejor servicio al cliente.

Informe de estado del cliente conectado de Salesforce

Si bien los centros de contacto generalmente tienen costos continuos más altos debido a las licencias de software, sus clientes tienen una mejor experiencia de servicio cuando pueden elegir cómo interactúan con su negocio. Esto significa que sus clientes se sienten satisfechos o incluso encantados después de una interacción de servicio, lo que conducirá a una puntuación CSAT más alta , una mayor lealtad del cliente y generará más ingresos de clientes repetidos y renovados.

Estrategia de call center vs. contact center

Si no está seguro de qué estrategia de servicio al cliente es adecuada para usted, hágase las siguientes preguntas:

  • ¿Qué tan grande es la base de clientes que atiendes?
    • R: Daremos servicio a un grupo demográfico de nicho pequeño
    • B: Tendremos una base de clientes amplia y diversa
  • ¿Qué tan difícil será resolver estos problemas para sus clientes?
    • R: La mayoría de los problemas son fáciles de resolver.
    • B: Los problemas variarán en complejidad
  • ¿Qué tan importante es para su empresa brindar un servicio personalizado al cliente?
    • R: El servicio personalizado no es una prioridad para mi negocio
    • B: El servicio personalizado es una prioridad para mi negocio
  • ¿Qué tan importante es para su negocio ofrecer múltiples canales de soporte?
    • R: Tener múltiples canales de soporte no es muy importante para mi negocio
    • B: Tener múltiples canales de soporte es importante para mi negocio
  • ¿Su empresa tiene un presupuesto de servicio limitado o puede admitir múltiples licencias de software y tecnología?
    • R: Mi negocio tiene un presupuesto limitado para servicio al cliente
    • B: Mi empresa tiene presupuesto para admitir múltiples licencias de software y tecnologías

Si respondió en su mayoría con A, entonces una estrategia de centro de llamadas puede ser la mejor opción para su negocio. Si respondió con B en su mayoría, entonces un centro de contacto es la mejor estrategia para usted.

El 94% de los clientes dice que un buen servicio al cliente los hace más propensos a realizar otra compra.

Informe de estado del cliente conectado de Salesforce

El servicio al cliente es el negocio de asegurarse de que sus clientes se mantengan felices y leales. Los centros de llamadas siguen siendo relevantes en ciertos contextos, pero el mundo está cambiando; asegúrese de que sus modelos de atención al cliente cambien con él.

Cree una mejor experiencia de centro de contacto

Vea cómo puede combinar IA, datos y CRM para conectarse en el canal correcto, personalizar cada conversación y escalar su servicio al cliente.

Categorías
Developers Salesforce

Innovaciones de MuleSoft para desarrolladores | Aprende Moar Verano '23 ☁️

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.

Innovaciones de MuleSoft para desarrolladores | Aprende Moar Verano '23 | Blog de desarrolladores de Salesforce

¡Únase a nosotros para Release Readiness Live esta semana! Los expertos en productos y los defensores de los desarrolladores analizarán y demostrarán las nuevas funciones en el lanzamiento de Summer '23 y, al final de nuestra transmisión, responderemos sus preguntas. Sintonice a las 9 am PT el 19 de mayo para la sesión de desarrolladores. ¿No puedes unirte a nosotros en vivo? La grabación se publicará unas horas después de que finalice la transmisión.

Introducción

Con la digitalización y la adopción de la nube, estamos cobrando impulso en el espacio de integración. Para acelerar las innovaciones en el mundo digital, veamos qué emocionantes funciones y lanzamientos MuleSoft tiene para ofrecer en Summer '23 a los desarrolladores.

Anypoint Code Builder: nuevas funciones beta en junio de 23

Anypoint Code Builder , o ACB para abreviar, es el IDE de última generación de MuleSoft. Brinda a los usuarios una experiencia de desarrollo moderna y liviana para integraciones, API y automatización, todo empaquetado en una sola herramienta unificada. Los desarrolladores pueden usar ACB en todo el ciclo de vida de API e integración, desde el diseño e implementación de API hasta la creación de integraciones e incluso la depuración, prueba e implementación de aplicaciones MuleSoft.

Debe preguntarse qué tan diferente es de nuestro Anypoint Studio existente. En primer lugar, adoptamos VS Code como nuestra infraestructura de back-end con recomendaciones de tiempo de diseño basadas en IA. Y estamos llevando la reutilización a un nivel completamente nuevo, con capacidades de bloques de construcción que permiten muchos tipos de reutilización en aplicaciones futuras.

Como muchos de ustedes ya sabrán, Anypoint Code Builder lanzó su Open Beta en enero de 2023. Desde entonces, el equipo ha estado trabajando diligentemente para implementar nuevas funciones para sus usuarios de Open Beta, comenzando con un lanzamiento en abril.

¡Estamos encantados de decir que no estamos disminuyendo la velocidad! Tenemos planeado un calendario de lanzamiento de verano emocionante con muchas características nuevas y mejoras para que exploren nuestros usuarios de Open Beta.

Entonces, ¿cuáles son las nuevas funciones que puede esperar en el lanzamiento de verano del 23 de junio?

  • Soporte extendido al avión de control de la UE
  • Acceso a fragmentos globales y preempaquetados en la interfaz de usuario de Canvas
  • Busque conectores en Anypoint Exchange desde la interfaz de usuario de ACB Canvas
  • La capacidad de diseñar e implementar API de forma iterativa

Se espera que la extensión de escritorio del mercado de VS esté disponible para los desarrolladores en agosto de 2023.

Nuestro lanzamiento de verano es el siguiente paso en nuestro camino hacia GA, que actualmente está planificado para la segunda mitad de 2023.

Anypoint API Experience Hub: GA en junio de 23

Anypoint API Experience Hub permite a las empresas crear portales de API personalizados en minutos utilizando plantillas listas para usar para simplificar el acceso a las API y aumentar su uso y adopción.

Con API Experience Hub, los administradores y desarrolladores de productos API pueden:

  • Cree y comparta portales de API sencillos utilizando plantillas prediseñadas
  • Cree portales de API de marca utilizando capacidades avanzadas de creación de portales con tecnología de Salesforce Experience Cloud
  • Aumente la adopción de API en las comunidades internas y de socios con el consumo de API de autoservicio
  • Documente, gobierne y publique cualquier API en la empresa creada en cualquier puerta de enlace o entorno
  • Acceda a información sobre el uso, la calidad y el cumplimiento de las API con análisis contextuales

Los clientes podrán impulsar la adopción de API y crear un ecosistema de API vibrante al proporcionar un único punto de acceso a todas las API empresariales (construidas en MuleSoft o de otro modo) en una experiencia atractiva.

API Experience Hub está planeado para GA en junio de 2023.

Nuevas funciones de gobernanza de API: GA en julio de 2023

En 2022, se lanzó Anypoint API Governance. Nos ayudó a crear API de calidad mientras cumplíamos con los protocolos de seguridad y gobernanza. Actualmente, podemos identificar si la especificación API es conforme o no conforme y alertar a los usuarios si hay algún problema de conformidad.

En Summer '23, ampliaremos aún más las capacidades de API Governance a todos los aspectos del ciclo de vida de la API, desde el diseño de la API en el Centro de diseño hasta la implementación y administración de la API en API Manager. Con un gobierno de extremo a extremo, las organizaciones podrán garantizar que las API cumplan con las normas de cumplimiento y de la industria.

Nuevas funciones de Anypoint Studio 7.15: disponibilidad general en mayo de 2023

Con el fin de optimizar el rendimiento de Anypoint Studio y ofrecer una experiencia de integración perfecta, las siguientes funciones nuevas estarán disponibles para los desarrolladores. Le recomendamos que descargue la última versión de Anypoint Studio y pruebe las nuevas funciones:

  • Soporte ARM nativo: rendimiento más rápido para usuarios en macOS
  • Opciones para excluir archivos de Studio de Windows Defender: rendimiento y estabilidad más rápidos para los usuarios de Windows
  • Implementación mejorada a CloudHub 2.0
  • Experiencia de importación mejorada desde Design Center

Conclusión

¡Esperamos que esté tan entusiasmado como nosotros con estas funciones! Si desea tenerlos en sus manos, simplemente inicie sesión en la cuenta de prueba gratuita de 30 días de Anypoint Platform y vea estos nuevos lanzamientos y herramientas.

Aprende MOAR

Nuestros gerentes de producto y defensores de desarrolladores están de vuelta para compartir las últimas características y funcionalidades que llegarán en Summer '23. Para ayudarlo a desarrollarse más rápido, hay una gran cantidad de contenido nuevo del equipo de relaciones con desarrolladores que cubre sus nuevas funciones favoritas. ¡Asegúrese de consultar Release Readiness Live el viernes 19 de mayo a las 9:00 a. m. PST, y lea lo último en el blog de desarrolladores de Salesforce para conocer más innovaciones relacionadas con desarrolladores en el lanzamiento de Summer '23!

¡Explore los trailmixes de Trailhead con aspectos destacados de lanzamiento clave para desarrolladores o administradores, o ambos! Siga y complete un trailmix de Learn MOAR Summer '23 para administradores o desarrolladores para obtener una insignia exclusiva de la comunidad.

Otras lecturas

Sobre el Autor

Akshata Sawant es promotora sénior de desarrolladores en Salesforce. Es autora, bloguera y oradora, y coautora del título, MuleSoft for Salesforce Developers . Akshata es un miembro activo de la comunidad de MuleSoft y ex embajador de MuleSoft. Le encanta leer, bailar, viajar y la fotografía, y es una gran entusiasta de la comida. Síguela en Twitter y LinkedIn.

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Categorías
Developers Salesforce

Innovaciones de Tableau para desarrolladores | Aprende Moar Verano '23 ☁️

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.

Innovaciones de Tableau para desarrolladores | Aprende Moar Verano '23 | Blog de desarrolladores de Salesforce

¡Únase a nosotros para Release Readiness Live esta semana! Los expertos en productos y los defensores de los desarrolladores analizarán y demostrarán las nuevas funciones en el lanzamiento de Summer '23 y, al final de nuestra transmisión, responderemos sus preguntas. Sintonice a las 9 am PT el 19 de mayo para la sesión de desarrolladores. ¿No puedes unirte a nosotros en vivo? La grabación se publicará unas horas después de que finalice la transmisión.

Introducción

Tableau lanzará muchas innovaciones nuevas e interesantes para los desarrolladores en Summer '23, incluido Tableau Embedding Playground, una colección de Postman para la API REST de Tableau y una nueva forma de personalizar y personalizar las vistas integradas en función de los atributos del usuario para las aplicaciones integradas.

Comience con el análisis incorporado

Si conoce Tableau, entonces sabe que puede crear visualizaciones poderosas (visualizaciones, para abreviar) que ayudan a las personas a ver y comprender sus datos. Si está creando una aplicación web, es posible que desee agregar visualizaciones relevantes de Tableau a su aplicación para mejorar la información que ofrece a sus clientes.

Tableau facilita la inserción de visualizaciones al proporcionar un botón Copiar código incrustado , que está disponible al hacer clic en el botón Compartir en la barra de herramientas de Tableau. Puede usar ese código para insertar una visualización de Tableau en una página web.

El código que obtiene del botón Copiar código incrustado es solo un punto de partida. ¿Qué sucede si desea filtrar la visualización en función de quién está viendo la página? Para crear una rica experiencia de análisis integrado para sus usuarios, debe usar Tableau Embedding API v3 . Con la API de inserción, puede aplicar filtros, establecer parámetros, recopilar datos que utiliza para impulsar otras acciones o agregar interfaces personalizadas para interactuar con la visualización.

OK, así que le gustaría ver lo que es posible. Pero si no está familiarizado con la API de incrustación, esto podría significar aprender una nueva biblioteca de JavaScript, leer páginas de material de referencia de la API y otra documentación, y luego configurar un entorno de desarrollo, solo para verificar algunas cosas. Ahora, hay una manera más fácil.

Bienvenido al patio de recreo

Tableau Embedding Playground le facilita el aprendizaje y la exploración de análisis integrados y la API de integración de Tableau. Todo lo que tiene que hacer es proporcionar la URL de la vista de Tableau que desea incrustar, personalizar la visualización, agregar las interacciones que desea probar y luego hacer clic en Ejecutar .

Nota: esta versión de acceso anticipado de Embedding Playground utiliza un libro de trabajo de muestra. Los fragmentos de código que agregan interacciones a la visualización integrada están optimizados para funcionar con esta muestra. Se han completado los nombres de las hojas de trabajo y las variables. Puede usar el Editor de código para editar el código JavaScript. Para esta versión, el panel HTML es de solo lectura, por lo que puede concentrarse por completo en personalizar y agregar interactividad a la visualización en Playground, sin tener que preocuparse por el estilo y el CSS.

El Embedding Playground tiene tres secciones principales:

  • El panel Vista previa , donde puede ver la visualización incrustada y los resultados de su código cambian cuando hace clic en Ejecutar
  • La vista Código , donde puede ver el código JavaScript y HTML que incrusta la visualización de Tableau.
  • El panel de control de la izquierda , donde configura la URL para la vista incrustada y sus propiedades de visualización, como el tamaño y la posición de la barra de herramientas, y donde también puede agregar interacciones, que vienen en forma de fragmentos de código que arrastra y suelta en el Panel JavaScript.

Personaliza el código

Embedding Playground usa Tableau Embedding API v3 para insertar la visualización en el panel de vista previa. La API de incrustación utiliza componentes web y proporciona un elemento HTML que representa la visualización de Tableau. Puede colocar este componente web ( <tableau-viz> ) en su página web como lo haría con cualquier elemento HTML, como una etiqueta <div> o <p> . El panel HTML en la vista Código muestra este componente web.

Este código HTML y un enlace a la biblioteca de la API de incrustación son todo lo que necesita para colocar una visualización de Tableau en una página web. Esto es esencialmente lo que obtiene si usa el botón Copiar código incrustado en Tableau Cloud. Pero hay mucho más que puede hacer, y Embedding Playground lo hace fácil.

<dx-code-block title language code-block="

 
 

«>

Supongamos que queremos aplicar un filtro a la visualización, de modo que solo muestre información que sea de interés para un conjunto específico de usuarios, o que destaque un punto que está tratando de resaltar (como mostrar ciertos lugares en un mapa, o conjuntos particulares de datos).

Con el componente web <tableau-viz> , tenemos acceso a la vista integrada de Tableau, o lo que llamamos el objeto Tableau viz. Si está familiarizado con Tableau, sabrá que un libro de trabajo de Tableau consta de hojas de trabajo, tableros e historias. O más exactamente, un libro de trabajo contiene un montón de hojas, algunas de las cuales son hojas de trabajo, algunas son tableros y otras son historias. Desde el objeto de visualización, podemos acceder al libro de trabajo y a todas las hojas de trabajo y tableros dentro del libro de trabajo. Para cada tipo de hoja, ciertas propiedades están disponibles y hay API (o métodos) específicos a los que puede llamar.

Usando el Embedding Playground, no tienes que memorizar todo eso. Digamos que su vista incrustada es un tablero. Si desea aplicar un filtro a la vista, simplemente haga clic en Agregar interacciones , haga clic en Tablero , haga clic en Filtros y luego arrastre y suelte la tarjeta Aplicar filtro en el panel de JavaScript, justo debajo de *** ¡Inserte su código a continuación! *** comentario.

En esta versión de acceso anticipado, el fragmento de código Aplicar filtro tiene el siguiente aspecto, con el nombre del filtro y sus valores ya completados. Cuando se publique Embedding Playground, los fragmentos de código tendrán marcadores de posición que se reemplazan con los nombres de filtro y valores para su viz. Tenga en cuenta que el Editor de código está en pleno funcionamiento, por lo que puede modificar los valores (cambiar o agregar diferentes estados). Darle una oportunidad. Haga clic en Ejecutar y vea los resultados.

Ven al Playground para enterarte de las novedades

Los desarrolladores de Tableau están ocupados trabajando en nuevas funciones para mejorar el análisis integrado. A medida que se introduzcan nuevos métodos y propiedades, primero se anunciarán en el Programa para desarrolladores y se resaltarán en el Área de juegos de incrustación. Si es un desarrollador experimentado, Embedding Playground podría ser un útil borrador para probar nuevas ideas y trabajar con nuevas API a medida que se presentan. Con Playground, puede probar rápidamente métodos nuevos y existentes y verificar su código sin la sobrecarga de iniciar un nuevo proyecto.

En versiones futuras de Embedding Playground, podrá proporcionar las URL para sus propias visualizaciones y usar Playground como una aplicación conectada , que ofrece una experiencia de autenticación segura y sin problemas basada en relaciones de confianza y con creación web integrada. Además, agregaremos nuevos fragmentos de código para proporcionar plantillas para las interacciones.

Use el código de Playground para impulsar el desarrollo

Puede usar la barra de menú de botones para descargar o copiar el código. El código descargado o copiado está contenido en un solo archivo HTML. Este archivo contiene el código HTML que define el componente web <tableau-viz> y el código JavaScript que agregó cuando agregó interacciones. Puede utilizar este código como punto de partida para desarrollar sus aplicaciones integradas. O copie el código para su necesidad de interacciones específicas, como filtrar la visualización, establecer parámetros o agregar menús contextuales personalizados. Para obtener más información sobre el uso del código para incrustar, consulte los documentos de Tableau Embedding API v3 .

¿Ya leíste lo suficiente? ¡Pruebe Tableau Embedding Playground ahora y permanezca atento a más información!

Colección Tableau Postman (API REST)

Si alguna vez usó la API REST de Tableau , sabe que es una parte esencial de la gestión y administración de usuarios y contenido en Tableau Cloud y Tableau Server. Con la API REST de Tableau, puede hacer mediante programación todo lo que puede hacer con la interfaz de usuario en los sitios de Tableau Server y Tableau Cloud. La API utiliza el conocido protocolo de comunicaciones cliente-servidor a través de HTTP, utilizando solicitudes web estándar. Puede consultar y configurar recursos, establecer permisos y controlar el acceso.

Probablemente también sepa que configurar una sesión para enviar esas solicitudes no siempre es fácil. Conectarse al servidor, autenticarse y adquirir los tokens de acceso para comunicarse con Tableau Server o el sitio de Tableau Cloud puede ser algo complicado. Particularmente si solo está interesado en encontrar rápidamente el nombre de una fuente de datos o buscar un identificador de recurso. Una de las herramientas a las que recurren las personas para generar solicitudes HTTP para puntos finales REST es Postman, una aplicación que puede descargar o usar en un navegador que facilita la creación de solicitudes y el almacenamiento de esas solicitudes en colecciones. La buena noticia es que ahora no necesitas empezar de cero.

Los desarrolladores de Tableau han creado una colección de Postman para la API de REST de Tableau que está disponible junto con las otras colecciones para las API de Salesforce en el espacio de trabajo de Postman del desarrollador de Salesforce . Ya no necesita buscar en la documentación de la API ni recurrir a prueba y error para crear sus propias solicitudes. El espacio de trabajo del cartero del desarrollador de Salesforce tiene el conjunto completo de puntos finales de la API REST de Tableau por los que puede navegar y elegir los que necesita usar. Postman te permite definir y guardar las variables que necesitas para tu conexión. También puede usar Postman para generar las solicitudes en diferentes lenguajes de programación como Python, JavaScript y cURL, de modo que pueda incorporar la solicitud en scripts o en sus aplicaciones integradas.

Puede encontrar más información sobre la API REST de Tableau y lo que la colección Postman puede hacer por usted en la publicación de blog de Stephen Price, Use la API REST de Tableau con Postman para diseñar integraciones.

Funciones de atributo de usuario

La entrega de información personalizada y personalizada es uno de los principales objetivos cuando se integran visualizaciones de Tableau en aplicaciones web. Desea asegurarse de que los usuarios que usan su aplicación tengan la mejor experiencia posible y tengan acceso a la información que no solo es relevante para sus necesidades, sino que también son datos que pueden ver.

Con ese fin, Tableau introdujo dos nuevas funciones de usuario ( USERATTRIBUTE y USERATTRIBUTEINCLUDES ) que brindan un nuevo nivel de personalización y control cuando crea aplicaciones integradas que usan aplicaciones conectadas a Tableau para la integración de aplicaciones. A partir de Tableau 2023.1, cuando autoriza el acceso a contenido incrustado mediante aplicaciones conectadas, ahora puede pasar atributos de usuario en el token web JSON (JWT). Para obtener más información, consulte: Controlar y personalizar el acceso a datos mediante atributos de usuario .

Usted define cuáles son estos atributos de usuario y, según su organización, podrían ser atributos basados en roles de trabajo, departamentos, nivel de gestión, autorización de seguridad, pertenencia a grupos, etc. Estos atributos de usuario siguen el modelo de control de acceso basado en atributos (ABAC), que le brinda flexibilidad en la forma en que diseña sus aplicaciones web. Por ejemplo, podría crear un único portal web que sirva a diferentes grupos proporcionando diferentes vistas de esos datos en función de los atributos. Para ver cómo puede aplicar estos atributos en los libros de trabajo de Tableau, consulte Funciones de usuario: solo para incrustar flujos de trabajo en la nube . Cuando crea vistas en Tableau, los atributos de usuario le dan la opción de agregar filtros de seguridad de nivel de fila a las vistas que incrusta en las aplicaciones web.

Para obtener una excelente descripción general de cómo puede utilizar los atributos, consulte la publicación de blog:Desbloquee el poder de los análisis personalizados con funciones de atributos de usuario. Y para obtener experiencia práctica, consulte el tutorial: Tutorial de funciones de atributos de usuario .

Conclusión

Desde usuarios nuevos hasta desarrolladores experimentados, Tableau Embedded Playground facilita que todos desarrollen código para soluciones de análisis integradas. La colección de Postman para la API REST de Tableau puede ahorrarle tiempo y esfuerzo al encapsular el conjunto completo de terminales REST de Tableau en una interfaz fácil de usar y agregar atributos de usuario a sus aplicaciones integradas para brindar una experiencia más personalizada y segura para su usuarios

Únase al programa para desarrolladores de Tableau

Haga que Tableau trabaje para usted. Únase al Programa para desarrolladores de Tableau y descubra las últimas herramientas y funciones. Obtenga acceso a versiones preliminares y acceso anticipado a nuevas API y bibliotecas mientras aún están en desarrollo. Proporcione comentarios y ayude a dar forma a lo que está por venir.

Aprende MOAR

Nuestros gerentes de producto y defensores de desarrolladores están de vuelta para compartir las últimas características y funcionalidades que llegarán en Summer '23. Para ayudarlo a desarrollarse más rápido, hay una gran cantidad de contenido nuevo del equipo de relaciones con desarrolladores que cubre sus nuevas características favoritas. ¡Asegúrese de consultar Release Readiness Live el viernes 19 de mayo a las 9:00 a. m. PST, y lea lo último en el blog de desarrolladores de Salesforce para conocer más innovaciones relacionadas con desarrolladores en el lanzamiento de Summer '23!

¡Explore los trailmixes de Trailhead con aspectos destacados de lanzamiento clave para desarrolladores o administradores, o ambos! Siga y complete un trailmix de Learn MOAR Summer '23 para administradores o desarrolladores para obtener una insignia exclusiva de la comunidad.

Más recursos

Otras lecturas

Sobre el Autor

Dave Hagen trabaja como redactor técnico en el equipo de experiencia de contenido de Salesforce. Escribe documentación para la plataforma de desarrollo de Tableau y el análisis integrado. Puedes encontrarlo en LinkedIn .

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Categorías
Developers Salesforce

Escriba Apex simplificado y seguro con las actualizaciones de Spring '23 ☁️

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.

Escriba Apex simplificado y seguro con las actualizaciones de Spring '23 | Blog de desarrolladores de Salesforce

La versión Spring '23 de Salesforce Platform, disponible en general a partir del 13 de febrero, agregó algunas actualizaciones fantásticas al lenguaje de Apex. Hemos implementado algunas de las actualizaciones de Spring '23 en la aplicación de ejemplo Apex-Recipes , lo que ha simplificado significativamente la base de código existente.

En esta publicación de blog, revisaremos las actualizaciones en Spring '23 para Apex con ejemplos de código. Estas actualizaciones ayudan a los desarrolladores a crear aplicaciones más seguras para sus organizaciones.

1. Operaciones de base de datos en modo usuario

Apex, de forma predeterminada, se ejecuta en modo Sistema con permisos elevados, lo que significa que los desarrolladores pueden pasar por alto los controles de seguridad sin darse cuenta al escribir código.

Antes de continuar, revisemos rápidamente los controles de seguridad que los administradores de Salesforce pueden colocar para garantizar que los usuarios solo puedan acceder y manipular los datos para los que están autorizados a ver o editar. Las viñetas a continuación resumen diferentes mecanismos para aplicar un modelo de seguridad detallado para sus datos de Salesforce.

  • CRUD significa "Crear, Leer, Actualizar y Eliminar", las cuatro operaciones básicas que un usuario puede realizar en un registro en Salesforce
  • FLS significa "Seguridad de nivel de campo", que determina qué campos dentro de un registro que un usuario puede ver o editar
  • El uso compartido de registros permite al administrador configurar reglas sobre quién puede ver o editar un registro en función de varios criterios.

Con las operaciones de base de datos en modo usuario , los desarrolladores pueden optar por ejecutar Apex en el contexto del usuario, lo que garantiza que se apliquen las reglas CRUD/FLS y de uso compartido del usuario configuradas. Veamos esto en acción con ejemplos de código detallados.

Aplicar CRUD/FLS y reglas de uso compartido para SOQL estático

Puede indicar el modo de operación usando la palabra clave WITH USER_MODE para el modo de usuario y WITH SYSTEM_MODE para el modo de sistema en su consulta SOQL. Vea el ejemplo a continuación.

<dx-code-block title language code-block="List accounts = [SELECT Name, ShippingCity, ShippingStreet FROM Account WITH USER_MODE];»>

En el ejemplo anterior, al usar la palabra clave WITH USER_MODE , la consulta respeta estas restricciones de seguridad:

  • Permisos de lectura en el objeto Cuenta (configurado para Perfil/Conjunto de permisos) para el usuario
  • Permisos de campo (FLS) para Nombre, Calle de envío y Ciudad de envío para el usuario
  • Configuración de nivel de registro (como valores predeterminados de toda la organización y reglas de colaboración) para el objeto Cuenta para el usuario

El WITH USER_MODE la palabra clave también es compatible con agregar SOQL para hacer cumplir CRUD/FLS y reglas de uso compartido de registros.

<dx-code-block title language code-block="List groupedResults = [SELECT SUM(AMOUNT) total FROM Opportunity WHERE AccountId = :accountId WITH USER_MODE];»>

En el ejemplo anterior, al usar la palabra clave WITH USER_MODE , la consulta respeta estas restricciones de seguridad:

  • Permisos de lectura en el objeto Oportunidad para el usuario
  • Permisos de campo (FLS) para Amount y AccountId (sí, incluso los campos utilizados en la cláusula SOQL WHERE se verifican para FLS) para el usuario
  • Acceso a nivel de registro (como valores predeterminados de toda la organización y reglas de colaboración) en el objeto Oportunidad para el usuario

Para obtener más ejemplos, consulte la clase SOQLRecipes de la aplicación apex-recipes.

Aplicar CRUD/FLS y reglas de uso compartido para SOQL dinámico

Los nuevos métodos Database (ver documentos ) ahora admiten un parámetro AccessLevel que le permite ejecutar operaciones de base de datos en modo de usuario en lugar de en el modo de sistema predeterminado. Veamos un código de ejemplo para ejecutar un SOQL dinámico en el modo de usuario.

<dx-code-block title language code-block="String query = 'SELECT ID, Name FROM Account LIMIT 1';
List lstAccounts = Database.query(query, AccessLevel.USER_MODE);»>

En el ejemplo anterior, el modo de usuario se aplicará de manera similar al ejemplo de SOQL estático que vimos en la sección anterior.

Para obtener más ejemplos, consulte la clase DynamicSOQLRecipes de apex-recipes. Hemos actualizado todos los métodos de la clase para usar el parámetro AccessLevel .

Hacer cumplir CRUD/FLS y reglas de uso compartido para SOSL

WITH USER_MODE o WITH SYSTEM_MODE también son compatibles con declaraciones SOSL (Lenguaje de búsqueda de objetos de Salesforce).

Veamos un ejemplo de una instrucción SOSL estática.

<dx-code-block title language code-block="String keyword = 'Alaska';
List<List> searchResults = [ FIND :keyword IN Name FIELDS RETURNING Account(Name), Contact(LastName, Account.Name) WITH USER_MODE ];»>

En el ejemplo anterior, al usar la palabra clave WITH USER_MODE , la consulta respeta estas restricciones de seguridad:

  • Permisos de lectura en los objetos Cuenta y Contacto para el usuario
  • Permisos de campo (FLS) para el campo Nombre en Cuenta y campo Apellido en Contacto para el usuario
  • Acceso a nivel de registro (como valores predeterminados de toda la organización y reglas de colaboración) en los objetos Cuenta y Contacto para el usuario

Para Dynamic SOSL, los nuevos métodos Search (ver documentos ) también admiten el parámetro AccessLevel similar a los nuevos métodos Database . A continuación se muestra un ejemplo de cómo usar el parámetro AccessLevel para ejecutar SOSL en el contexto de los usuarios.

<dx-code-block title language code-block="String query = 'FIND 'Edge*' IN ALL FIELDS RETURNING Account(ID,Name), Contact, Lead'; List<List> searchResults = Search.query(query, AccessLevel.USER_MODE);»>

Hacer cumplir CRUD/FLS y reglas de uso compartido para DML

Las operaciones de la base de datos pueden especificar el modo de usuario o sistema utilizando las palabras clave as user o as system .

El siguiente es un código de ejemplo que ejecuta DML en el modo de usuario aplicando CRUD/FLS y reglas de uso compartido.

Para Dynamic DML, los desarrolladores pueden utilizar el parámetro AccessLevel para ejecutar operaciones de base de datos en el modo de usuario o en el modo de sistema.

Echemos un vistazo a un ejemplo de la aplicación apex-recipes para ver cómo puede diseñar métodos para que sean genéricos, de modo que el consumidor del método pueda decidir ejecutar el código en el modo de usuario o de sistema.

El fragmento de código siguiente muestra cómo invocar este método en el modo de usuario.

El siguiente fragmento de código muestra cómo invocar este método en el modo de sistema.

Para obtener más ejemplos, consulte la clase DMLRecipes de la aplicación apex-recipes.

Consideraciones importantes

  1. Las operaciones de la base de datos en modo usuario generan excepciones de seguridad si se encuentra una infracción CRUD/FLS. Si tiene un requisito para evitar excepciones y aún aplicar la seguridad, use el método Security.stripInaccessible() (consulte los documentos ). Consulte la clase StripInaccessibleRecipes (ver documentos ) de la aplicación apex-recipes para ver ejemplos de código.
  2. Si usa la palabra clave WITH SECURITY_ENFORCED en sus declaraciones SOQL para hacer cumplir CRUD/FLS, ahora le recomendamos que use la palabra clave WITH USER_MODE en su lugar debido a las siguientes razones:
    1. La consulta SOQL que usa la palabra clave WITH USER_MODE admite muchas innovaciones nuevas, como reglas de restricción, reglas de alcance y cualquier otra operación de seguridad para el acceso a datos y CRUD/FLS, que la plataforma puede agregar en el futuro, por lo que es una especie de prueba del futuro
    2. La consulta SOQL que usa la palabra clave WITH USER_MODE maneja casos de uso de seguridad complejos mucho mejor. Por ejemplo, WITH USER_MODE es compatible con SOSL y consultas polimórficas .
    3. Las declaraciones SOQL que usan la palabra clave WITH USER_MODE manejan CRUD/FLS para los campos usados en la cláusula where y order by o campos usados en la consulta de relación o búsqueda polimórfica
    4. Las consultas SOQL que utilizan la palabra clave WITH USER_MODE funcionan mucho mejor en comparación con el uso WITH SECURITY_ENFORCED
  3. El modo de usuario anula la configuración de nivel de clase para la consulta SOQL o DML escrita en modo de usuario. Exploremos esto con el siguiente código de ejemplo.

<dx-code-block title language code-block="public without sharing ExampleCls { public static List getAccount() { String query = ‘SELECT Id FROM Account Limit 1’; return Database.query(query, AccessLevel.USER_MODE); } }»>

En el ejemplo anterior, aunque la clase Apex está configurada para ejecutarse en el contexto del sistema (sin la palabra clave compartida), la consulta SOQL se ejecuta en el modo de usuario, lo que refuerza la seguridad. El modo de usuario para la operación (SOQL/SOSL o DML) anula el uso compartido a nivel de clase.

2. Pasar dinámicamente variables de vinculación a consultas SOQL

Spring '23 agregó nuevos métodos como Database.queryWithBinds , Database.getQueryLocatorWithBinds y Database.countQueryWithBinds .

Estos métodos proporcionan los siguientes beneficios:

  • Anteriormente, si los desarrolladores usaban variables de vinculación en SOQL dinámico (usando el método Database.query ) que están fuera de contexto, la consulta no podía resolver las variables. Con queryWithBinds , las variables de vinculación de la consulta se resuelven directamente desde un parámetro Map con una clave en lugar de variables de código de Apex.
  • Con Database.queryWithBinds , los ataques de inyección SOQL se evitan automáticamente.

Echemos un vistazo a un ejemplo de código para comprender el segundo punto con más profundidad.

<dx-code-block title language code-block="public static List simpleBindingSoqlQuery(Map bindParams) { String query = ‘SELECT Id, Name ‘ + ‘FROM Account ‘ + ‘WHERE name = :name’; return Database.queryWithBinds( query, bindParams, AccessLevel.USER_MODE );
}»>

El código anterior ejecuta un SOQL dinámico en el modo de usuario. El método acepta un parámetro Map y se puede llamar usando el código a continuación.

<dx-code-block title language code-block="String accountName = 'Codey And Co';
Map nameBind = new Map{‘name’ => accountName};
List accounts = simpleBindingSoqlQuery(nameBind);
System.debug(accounts);»>

Tenga en cuenta que no es necesario que nos aseguremos de que el nombre de la variable esté en el mismo ámbito de método que la consulta dinámica. Además, no es necesario usar el método String.escapeSingleQuotes para el valor en la variable name cuando se usa queryWithBinds .

Para obtener más ejemplos de código, consulte esta solicitud de incorporación de cambios en nuestro repositorio de GitHub apex-recipes.

3. Especifique un retraso en la programación de trabajos en cola

Otra característica importante que lanzamos en Spring '23 es la capacidad de especificar demoras para trabajos programados que se pueden poner en cola.

Puede ser beneficioso ajustar el tiempo antes de que se ejecute el trabajo en cola en los siguientes casos de uso:

  • Si el sistema externo tiene una velocidad limitada y puede sobrecargarse con trabajos en cola encadenados que realizan llamadas rápidas
  • Al sondear los resultados, y ejecutar demasiado rápido puede provocar el uso desperdiciado de los límites diarios de Apex asíncrono

Usa el método System.enqueue(queueable, delay) (ver docs ) para especificar retrasos. Los retrasos pueden variar de cero a 10 minutos. Veamos un ejemplo para comprender mejor esta función.

El ejemplo anterior agrega un trabajo para la ejecución asincrónica retrasada al pasar una instancia de la implementación de su clase de la interfaz Queueable para la ejecución. Hay un retraso mínimo de cinco minutos antes de que se ejecute el trabajo.

Especificar un retraso predeterminado en toda la organización en la programación de trabajos en cola

Actualmente, si tiene un trabajo en cola de Apex, utiliza el tiempo estándar en cola sin demoras adicionales. Los administradores pueden definir un retraso predeterminado en toda la organización para todos los trabajos en cola que no especifican retraso usando
System.enqueue(queueable, delay) . Este es principalmente un mecanismo para manejar trabajos fuera de control que podrían estar ejecutándose demasiado rápido.

Importante consideración

Cuando establece el retraso en 0 (cero), el trabajo en cola se ejecuta lo más rápido posible. Con trabajos en cola encadenados, implemente un mecanismo para ralentizar o detener el trabajo si es necesario. Sin un mecanismo a prueba de fallas de este tipo, puede alcanzar rápidamente el límite de Apex asíncrono diario.

También hay una próxima función Beta en la versión Summer '23 (planificada para estar disponible el 10 de junio de 2023 en todas las organizaciones) que permite a los desarrolladores controlar la profundidad de los trabajos en cola encadenados.

4. Obtenga el SObject de origen de una instancia DescribeFieldResult usando el nuevo método getSObjectType

El método getSObjectType (ver documentos ) en el objeto DescribeFieldResult (ver documentos ) es un método de mejora de la calidad de vida del desarrollador que se implementó en Spring '23.

Anteriormente, los desarrolladores tenían que hackear y escribir código adicional para obtener el objeto de origen de la información del esquema de campos obtenida a través de la descripción del campo. Puede consultar las soluciones anteriores a través de esta publicación de stackexchange .

A continuación se muestra un ejemplo de código de cómo usar el nuevo método getSObjectType .

Con el método getSObjectType , los desarrolladores ya no tienen que pasar el nombre del objeto como una cadena. Consulte un ejemplo más completo en las notas de la versión de Spring '23.

Actualizaciones de herramientas

Hemos actualizado el servidor de idioma de Apex para admitir las últimas adiciones de sintaxis, como insert as user, insert as system y mucho más. Y ahora admitimos las últimas adiciones de sintaxis en el lanzamiento reciente de las Extensiones de Salesforce para VSCode .

También quiero agradecer a Dang Mai por actualizar el complemento más bonito para Apex (usado para formatear el código Apex automáticamente) para admitir todas las palabras clave introducidas para las operaciones de la base de datos en modo usuario.

Conclusión

En conclusión, la versión Spring '23 de Salesforce incluye varias actualizaciones. Mediante el uso de estas nuevas funciones, los desarrolladores pueden crear aplicaciones más eficaces y seguras para sus organizaciones.

Los equipos de productos de Apex no se detienen ahí y hay más innovaciones en la hoja de ruta. Puede obtener una vista previa de lo que viene para Apex en Summer '23 (nuestro próximo lanzamiento) en la vista previa de las notas de la versión . También recomiendo ver la grabación de la sesión TrailblazerDX '23, Apex: What's New and What's Coming , para aprender más sobre lo que se está cocinando.

Referencias adicionales

Sobre el Autor

Mohith Shrivastava es promotor de desarrollo en Salesforce con una década de experiencia en la creación de productos a escala empresarial en la plataforma de Salesforce. Actualmente se está enfocando en las herramientas para desarrolladores de Salesforce, Flow, Apex y Lightning Web Components en Salesforce. Mohith se encuentra actualmente entre los principales contribuyentes en Salesforce Stack Exchange, un foro de desarrolladores donde los desarrolladores de Salesforce pueden hacer preguntas y compartir conocimientos. Puedes seguirlo a través de su Twitter @msrivastav13 .

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Categorías
Developers

Generar código de barras y código QR en Salesforce

Última actualización el 12 de mayo de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo generar código de barras y código QR en Salesforce?

Objetivos:

Después de leer este blog, podrá:

  • Comprender la diferencia entre código de barras y código QR
  • Beneficios de usar Código de Barras y Código QR
  • Genere un código de barras y muéstrelo en un campo
  • Cargar el código de barras en el archivo de Salesforce y asociarlo con el producto
  • y mucho más

Jestilla Zetkin trabaja como arquitecta de Salesforce en Gurukul On Cloud (GoC) . Mientras trabajaba en la implementación de Sales Cloud, obtuvo el requisito de generar códigos de barras. A continuación se detalla el requisito:

  1. Generar un código de barras para el código del producto
  2. Mostrar el código de barras en la página de detalles del producto
  3. Adjunte automáticamente el código de barras a la lista relacionada con el archivo en el producto.

¿Qué son el código de barras y el código QR?

Un código de barras y un código QR son tipos de códigos legibles por máquina que se utilizan para almacenar y recuperar información.

Un código de barras es una imagen cuadrada o rectangular compuesta de líneas paralelas negras y espacios en blanco. Se utiliza en tiendas para rastrear el inventario de productos, en hospitales para rastrear registros de pacientes y en el rastreo de equipaje de aerolíneas, etc.

Un código de respuesta rápida, también conocido como código QR, es un tipo de código de barras que incluye detalles legibles por máquina sobre el elemento al que está adjunto. Se utiliza para compartir datos como videos, fotos, URL web, contactos, etc.

La distinción principal entre un código de barras y un código QR es que un código de barras solo puede almacenar datos en una dimensión, mientras que un código QR puede almacenar datos en dos dimensiones.

¿Beneficios de usar código de barras y código QR?

El código de barras y el código QR brindan varias ventajas en el proceso de ventas, incluida una precisión mejorada, disponibilidad de fecha inmediata, implicaciones de bajo costo y mejor control de inventario. Beneficios de usar códigos de barras y códigos QR:

  1. Entrada de datos eficiente : los códigos de barras y los códigos QR eliminan la necesidad de la entrada manual de datos, lo que reduce los errores y aumenta la eficiencia.
  2. Gestión de inventario : ayudan a agilizar el seguimiento y la gestión del inventario al proporcionar información precisa y en tiempo real.
  3. Transacciones más rápidas : escanear códigos de barras y códigos QR acelera las transacciones en el punto de venta, lo que reduce los tiempos de espera.
  4. Fácil implementación : los códigos de barras y los códigos QR se pueden generar e imprimir fácilmente, y su escaneo se puede realizar con teléfonos inteligentes estándar o escáneres dedicados.
  5. Oportunidades de marketing mejoradas : los códigos QR, en particular, se pueden usar para atraer a los clientes con contenido interactivo, promociones y anuncios.

¿Cómo generar código de barras y código QR?

Para generar un código de barras, puede utilizar varios generadores de códigos de barras en línea o bibliotecas de programación que ofrecen funcionalidades de creación de códigos de barras.

En este artículo usaremos la API de código de barras bwip-js . La API en línea de bwip-js está alojada en una instancia Amazon AWS EC2 mediante una aplicación node.js. Puede usar esta API para generar dinámicamente imágenes de códigos de barras desde cualquier lugar de la web. La imagen devuelta está en formato PNG. No hay cargos por usar esta API y no pude encontrar ningún límite de uso.

Los dos parámetros requeridos son el tipo de código de barras y el valor a codificar. También puede agregar parámetros adicionales para rotar (permite rotar la imagen a una de las cuatro orientaciones ortogonales) e incluir texto .

Práctica guiada (nosotros hacemos):

Realice los pasos a continuación para generar un código de barras para el código del producto:

Paso 1: cree un campo de fórmula personalizada en el producto para generar y mostrar un código de barras

Ahora generaremos la imagen del código de barras usando un generador de código de barras bwip-js y mostraremos la imagen en un campo de fórmula usando la etiqueta de imagen.

  1. Haga clic en Configuración .
  2. En el Administrador de objetos, escriba Producto .
  3. Seleccione Campos y relaciones , luego haga clic en Nuevo .
  4. Seleccione Fórmula como Tipo de datos, luego haga clic en Siguiente.
  5. Ingrese la etiqueta del campo : código de barras (código del producto) y haga clic en la tecla de tabulación, se completará el nombre del campo .
    1. Tipo de devolución de fórmula : Texto
  6. Haga clic en el botón Siguiente .
    1. URL de la fórmula : IMAGEN(“ https://bwipjs-api.metafloor.com/?bcid=code39&text=”+ ProductCode +”&scale=2&rotate=N&includetext&backgroundcolor=ffffff”,”Barcode”)
  7. Establezca la seguridad a nivel de campo para los perfiles .
  8. Agregue este campo a Diseño de página .
  9. Haga clic en Guardar .

Paso 2: asociar la imagen del código de barras al archivo de Salesforce

Ahora ya sabe cómo generar la imagen del código de barras sin ningún código. El siguiente paso es cargar la imagen del código de barras en el archivo de Salesforce para generar o imprimir un PDF.

  1. La imagen devuelta de la API de código de barras bwip-js está en formato PNG. Necesitamos un código apex para recuperar el cuerpo de esta solicitud como un blob.
     Solicitud HttpRequest = new HttpRequest();
    solicitud.setEndpoint(r.imagenURL);
    solicitud.setMethod('GET');
    Enlace Http = nuevo Http();
    Respuesta HttpResponse = vinculante. enviar (solicitud);
    Imagen de blob = respuesta.getBodyAsBlob();