Descubra cómo puede utilizar los datos de última generación y las capacidades de IA para unir a sus equipos internos y construir relaciones impulsadas por los clientes.
Seguir leyendoAutomatice su flujo de trabajo mediante flujos activados por Data Cloud y acciones invocables ☁️
Los flujos activados por Data Cloud y las acciones invocables ofrecen potentes herramientas para automatizar y agilizar los procesos en Salesforce Data Cloud.
The post Automatice su flujo de trabajo con flujos activados por Data Cloud y acciones invocables appeared first on Blog de desarrolladores de Salesforce.
Seguir leyendoUso de predicciones de modelos de IA de Data Cloud en Flow: guía paso a paso ☁️
Agilice la entrega de información sobre IA con Flow Builder y Slack. Activa el punto final de tu modelo de Einstein Studio directamente desde Flow Builder, capturando predicciones y enviándolas directamente a tus canales de Slack.
El post Información sobre la IA está disponible en inglés
The post Cómo utilizar predicciones de modelos de IA de Data Cloud en Flow appeared first on Blog de desarrolladores de Salesforce.
Seguir leyendoDentro de la integración de 100 productos dentro de Marketing Cloud Growth Edition
En esta edición de nuestra serie “Engineering Energizers” Q&A, destacamos a Jeanine Walters, arquitecta principal y arquitecta principal de Marketing Cloud Growth Edition en Salesforce. Con más de 20 años de experiencia en la creación de soluciones innovadoras en Salesforce, Jeanine ha desempeñado un papel fundamental en la creación de una aplicación de marketing revolucionaria que permite a las pequeñas y medianas empresas (PYMES) […]
La serie <a rel
El artículo Misión imposible: Inside the Unprecedented Integration of 100 Products Within Salesforce’s New Marketing Cloud Growth Edition appeared first on Blog de ingeniería de Salesforce.
La misión es imposible
Seguir leyendo30 preguntas y respuestas de entrevistas a analistas de negocio
La demanda de analistas de negocio de Salesforce ha crecido a un ritmo elevado. Las organizaciones de Salesforce han evolucionado y se han vuelto más complejas. Como resultado, existe una mayor necesidad de evaluar los cambios deseados y obtener una visión completa de la situación, para asegurarse de que todo el mundo está de acuerdo. Esta es la razón por la que las organizaciones deben buscar […]
El post 30 Business Analyst Interview Questions & Answers appeared first on Salesforce Ben.
Seguir leyendoLa vicepresidenta senior de Slack aborda de frente los nuevos retos de la IA y la automatización
Por Rukmini Reddy y Scott Nyberg En nuestra serie de preguntas y respuestas «Engineering Energizers», examinamos las trayectorias profesionales que han formado a los líderes de ingeniería de Salesforce. Conozca a Rukmini Reddy, Vicepresidenta senior de ingeniería de software de la plataforma Slack. El objetivo de su equipo es potenciar a los desarrolladores, mejorar la productividad y ampliar los límites de la innovación en IA y automatización en […]
El post Future-Driven Dev Empowerment: Slack SVP Tackles New AI and Automation Challenges Head-On appeared first on Blog de ingeniería de Salesforce.
La tecnología de Slack es la clave de la innovación
Seguir leyendoOptimice 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 leyendoEnviar, 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 leyendoAsigne automáticamente nuevos clientes potenciales a una cadencia de compromiso de ventas
Última actualización en October 29, 2023 por Rakesh Gupta Big Idea or Enduring Question: Cómo se asignan automáticamente los clientes potenciales recién creados a una cadencia de compromiso de ventas? Objetivos: Después de leer este blog, serás capaz de: Trabajar con el objeto ActionCadence para conocer una Cadencia. Asignar un compromiso de ventas
The post Asignar Automáticamente Nuevos Leads a una Cadencia de Compromiso de Ventas appeared first on Automation Champion.
Seguir leyendo🚀 Guía definitiva de 150 preguntas sobre Salesforce Service Cloud: ¡domine cada detalle! 🌟
Temas cubiertos en la entrevista de Salesforce Service Cloud:
- Conocimientos generales y características
- Gestión de casos
- Soluciones y base de conocimientos
- Consola de servicio
- Portales/comunidades de clientes y agentes
- Flujo de trabajo y automatización:
- Informes y paneles en Service Cloud
- Integración de CTI y telefonía
- Servicio al cliente en redes sociales
- Chat y mensajería
- Integración de correo electrónico
- Métricas y análisis de rendimiento
- Inteligencia artificial (IA) en la nube de servicios
- Servicio de campo
- Macros
- Preguntas basadas en escenarios
Conocimientos generales y características
1. ¿Qué es Salesforce Service Cloud?
– Imagine que dirige una empresa y tiene toneladas de clientes que hacen preguntas o tal vez tienen problemas con su producto. Ahora, desea ayudarlos de manera rápida y eficiente. ¡Ahí es donde entra Salesforce Service Cloud!
2. ¿Cómo beneficia Service Cloud a un departamento de atención al cliente?
Como empresa, usted maneja cosas agitadas que pueden ponerse cuando los clientes lo llaman, le envían correos electrónicos o le hacen ping en las redes sociales. ¡Es como hacer malabares! Service Cloud es como un asistente súper inteligente que ayuda a atrapar esas pelotas. Realiza un seguimiento de todos los problemas de los clientes (llamados "casos" en Salesforce), se asegura de que los vea la persona adecuada y proporciona respuestas que su equipo puede utilizar para responder más rápido.
¿La mejor parte? Puede conectarse con sus clientes dondequiera que estén: por teléfono, en las redes sociales, lo que sea. ¡Menos caos, más choca esos cinco en la oficina!
3. ¿Cuál es la diferencia entre Salesforce Sales Cloud y Service Cloud?
Piense en su negocio como en un automóvil. Sales Cloud es como el motor que lo impulsa hacia adelante: lo ayuda a encontrar nuevos clientes y los convence para que se sumen. Estamos hablando de gestionar contratos, realizar un seguimiento de las ventas y realizar previsiones. Ahora bien, ¿la nube de servicios? Ese es su sistema de dirección y comodidad. Una vez que los clientes están a bordo, se garantiza que estén contentos durante el viaje. Atiende sus preguntas, resuelve cualquier problema y se asegura de que disfruten tanto del viaje que querrán viajar contigo nuevamente.
4. ¿Qué es OmniCanal en el contexto de Service Cloud y cómo beneficia a una empresa?
OmniCanal es una forma para que su empresa hable con los clientes dondequiera que prefieran: redes sociales, correo electrónico, teléfono o incluso chat en vivo. Pero es inteligente; garantiza que su equipo no se sienta abrumado y que las preguntas de sus clientes lleguen a la persona adecuada que pueda responderlas mejor.
5. ¿Cómo mejora Service Cloud la satisfacción del cliente?
Conocer bien a sus clientes y satisfacer sus necesidades rápidamente no sólo los deja satisfechos; ¡Puede convertirlos en fanáticos de tu marca! Además, los clientes satisfechos a menudo significan que volverán y les dirán a sus amigos lo fantástico que eres: ¡todos ganan!
Gestión de casos
1.¿Qué es un caso en Salesforce?
– Imagínese esto: un cliente tiene una pregunta o tiene problemas con su producto. Piden ayuda. ¿Ese mensaje de ayuda? En Salesforce, a eso lo llamamos "caso".
2.¿Cómo se pueden crear casos en Salesforce?
Los casos son como boletos. En Salesforce, los casos pueden surgir de todas partes: un cliente envía un correo electrónico, completa un formulario en su sitio web, le envía un mensaje en las redes sociales o incluso llama. Cada una de estas acciones puede iniciar un caso para que su El equipo sabe que alguien necesita una mano.
3. ¿Qué es Web-to-Case y cómo se utiliza?
¿Sabes cómo puedes pedir tu café con anticipación en una aplicación y te estará esperando cuando llegues? Web-to-Case es algo así, pero para servicio al cliente. Permite a sus clientes completar un formulario en su sitio web cada vez que necesitan ayuda, y esa información se envía directamente a Salesforce como un caso. De esta manera, su equipo de servicio al cliente puede comenzar a desarrollar soluciones de inmediato.
4. ¿Explicar el correo electrónico para enviar casos?
Piense en Email-to-Case como un puente entre su bandeja de entrada de correo electrónico de servicio al cliente y Salesforce . Cuando sus clientes le envían un correo electrónico pidiéndole ayuda, Email-to-Case lo detecta y lo convierte en un caso en Salesforce.
5. ¿Qué es la escalada de casos y cómo se configura?
A veces, las cosas necesitan un poco más de urgencia, como una entrega de pizza en 30 minutos o menos. La escalada de casos ocurre cuando un caso no se ha resuelto en un cierto período de tiempo y sube en la lista de prioridades o incluso se entrega a un gerente. En Salesforce, esto se configura creando reglas de escalamiento que controlan el tiempo de los casos y activan una señal de alerta cuando uno está tardando demasiado.
6. ¿Cómo funcionan las reglas de asignación de casos?
Las reglas de asignación son como los policías de tránsito de Salesforce. Observan los nuevos casos que llegan y les indican la dirección correcta. Según los detalles del caso, como de qué se trata o de quién proviene, estas reglas los envían al departamento correcto o a la persona más adecuada para ayudar. Mantiene las cosas en movimiento sin problemas.
7. ¿Qué son las colas de casos y en qué se diferencian de las reglas de asignación?
Las reglas de asignación dirigen los casos a personas específicas de inmediato, mientras que las colas les permiten esperar en un lugar relevante para que los tome cualquier miembro disponible del equipo.
8. ¿Cómo se realiza un seguimiento del historial del caso?
Realizar un seguimiento del historial de un caso en Salesforce es como tener un mapa de dónde ha estado, a quién ha visitado y qué se ha hecho hasta el momento. Cada vez que alguien ve el caso, realiza un cambio o agrega algo, Salesforce toma nota de ello. Así, cualquiera que observe el caso podrá ponerse al día con su recorrido.
9. ¿Qué son los equipos de casos?
Los equipos de casos en Salesforce son como grupos de proyectos en la escuela. Puede formar un equipo de varios usuarios con diferentes roles para colaborar y resolver un caso de manera eficiente.
10. ¿Cómo se utilizan los feeds de casos?
Los feeds de casos son como líneas de tiempo de las redes sociales para cada caso. Muestran una vista cronológica de todas las actividades, como mensajes, cambios de estado o acciones del usuario, relacionadas con un caso.
11. ¿Puedes realizar un seguimiento del tiempo dedicado a cada caso?
Sí, con funciones de seguimiento del tiempo. Es como un cronómetro del trabajo: puede medir cuánto tiempo dedican los agentes a cada caso.
12. ¿Cómo maneja Salesforce los correos electrónicos masivos en la gestión de casos?
Salesforce le permite enviar correos electrónicos masivos para mantener actualizados a muchos clientes a la vez.
13. ¿Qué son los hitos del caso?
Los hitos son como puntos de control en una carrera. Son objetivos específicos que los agentes deben alcanzar dentro de un plazo determinado mientras resuelven un caso.
14. ¿Cuál es la diferencia entre un caso y una orden de trabajo?
Un caso es un registro de un problema de un cliente, mientras que una orden de trabajo es una solicitud de trabajo, a menudo utilizada para servicios de campo o tareas físicas.
15. ¿Cuáles son los beneficios de utilizar Chatter para los casos?
Chatter es como una sala de chat para el trabajo. Los agentes pueden discutir casos, compartir archivos y obtener comentarios de los miembros del equipo directamente en el registro del caso.
16. ¿Cuáles son los componentes de la regla de asignación de casos en Salesforce?
En Salesforce, la regla de asignación de casos giraba en torno a dos componentes principales, como la regla de caso y los criterios de caso.
Regla de caso: una regla de caso define una o más de una condición que debe cumplirse para ser asignada a un usuario específico. Podemos agregar tantas entradas de reglas como queramos a una sola regla de asignación.
Criterios de caso: Los criterios de caso son las condiciones que se basan en diferentes factores como el origen del caso, el estado, el tipo, etc.
Soluciones y base de conocimientos
1. ¿Qué es el conocimiento de Salesforce?
Salesforce Knowledge es como una carpeta para toda la información que su equipo necesita para ayudar a los clientes. Es un lugar donde puedes almacenar artículos, preguntas frecuentes, guías de solución de problemas y más, todo organizado y fácil de encontrar.
2. Explicar el proceso de creación y mantenimiento de una Base de Conocimiento en Salesforce.
Crear una base de conocimientos es como abastecer una biblioteca. Empiece por escribir artículos; pueden ser preguntas frecuentes, guías prácticas o pasos para la solución de problemas. Una vez que haya terminado, los colocará en los estantes (es decir, los publicará en Salesforce Knowledge) y así, estarán disponibles para que los lea su equipo o incluso sus clientes. Deberá revisar sus artículos con regularidad, actualizar la información anterior y seguir agregando material nuevo para mantener todo actualizado.
3. ¿Cuál es la diferencia entre Soluciones y Artículos de Conocimiento?
Las soluciones son como esas viejas enciclopedias : tienen información útil, pero son un poco básicas y solo su equipo puede leerlas. Por otro lado, los artículos de conocimiento son como tener una base de datos completa en línea. Son más dinámicos, pueden incluir videos e imágenes y puedes compartirlos no solo con tu equipo sino también con tus clientes.
4. ¿Cómo pueden los usuarios de Service Cloud aprovechar los artículos de conocimiento?
Piense en los usuarios de Service Cloud como bibliotecarios. Cuando un cliente tiene una pregunta, en lugar de hojear montones de libros o luchar para encontrar un experto, puede buscar el artículo de conocimiento correcto y tener las respuestas al alcance de su mano. Esto hace que ayudar a los clientes sea más rápido, más preciso y, sinceramente, mucho menos estresante.
5. ¿Pueden los clientes acceder a los artículos de conocimiento? ¿Si es así, cómo?
¡Por supuesto que pueden! Puede configurar una comunidad de clientes o un sitio web público donde estos artículos estén disponibles. Los clientes pueden ingresar, buscar lo que necesitan y, a menudo, resolver sus propios problemas sin tener que levantar el teléfono o enviar un correo electrónico.
Consola de servicio
1.¿Qué es la Consola de Servicio en Salesforce?
Imagínese ser chef en una cocina ocupada y bien equipada. La Consola de servicio es como su estación de cocina, donde tiene sus ingredientes (datos del cliente), utensilios (herramientas y aplicaciones) y recetas (artículos de conocimiento), todo en un solo lugar. Estás allí, cocinando varios platos (manejando varios casos de clientes) a la vez. 🍳👩🍳🔥
2. ¿Cómo mejora la Consola de servicio la productividad de los agentes?
Si eres chef en una cocina, ¿no sería más fácil cocinar si todos tus ingredientes, utensilios y recetas estuvieran en un solo lugar? Eso es lo que hace la Consola de servicio por los agentes. Pone todo lo que necesitan en un solo lugar. Pueden chatear con los clientes, echar un vistazo al historial de su cuenta y comprobar sus pedidos, todo al mismo tiempo. ¡Es como tener superpoderes, para que puedan ayudar a los clientes más rápido y mejor!
3. ¿Se puede personalizar la Consola de servicio? Si es así, ¿cómo?
¡Por supuesto! Al igual que puedes reorganizar las aplicaciones en tu teléfono, puedes modificar la Consola de servicio para adaptarla a tus necesidades. Todo esto se hace a través de algo llamado "Creador de aplicaciones", donde arrastra y suelta los componentes que desea. Es como jugar un juego en el que diseñas tu centro de mando.
Portales/comunidades de clientes y agentes:
1. ¿Qué es una comunidad de clientes en el contexto de Service Cloud?
Imagínese un centro comunitario en un vecindario. Es un lugar donde los residentes se reúnen para discutir temas, compartir noticias, pedir prestado herramientas o incluso organizar eventos. Ahora, imagine si su empresa tuviera un “centro comunitario” virtual para sus clientes. Esa es una comunidad de clientes en Salesforce. Es un espacio en línea donde sus clientes pueden reunirse para hacer preguntas, compartir ideas e incluso resolver problemas juntos. También pueden encontrar artículos o anuncios útiles que haya publicado, ¡muy parecido a un tablero de anuncios comunitario!
2. ¿En qué se diferencian los portales de agentes de los portales/comunidades de clientes?
En el centro comunitario, piense en el Portal del Cliente/Comunidad como el salón principal donde todos se reúnen, conversan y comparten. El Portal del Agente, sin embargo, es como la oficina administrativa que da al salón principal. Desde esta oficina, sus agentes de servicio al cliente pueden observar lo que sucede en la comunidad, intervenir para ayudar cuando sea necesario o proporcionar recursos.
3. ¿Cómo pueden los clientes utilizar las comunidades para autoservicio?
En una comunidad de clientes, los clientes pueden explorar los artículos que usted ha proporcionado, encontrar respuestas a preguntas comunes o hacer una nueva pregunta que cualquier miembro de la comunidad puede responder. Esto les permite encontrar soluciones en su propio tiempo y términos, sin necesidad de llamar directamente a la “oficina del administrador” (contactar con soporte).
4. ¿Cuáles son las mejores prácticas para crear una comunidad de clientes?
La comunidad de clientes de Salesforce debe ser fácil de usar y proporcionar valor real. Asegúrese de que sea de fácil acceso, con categorías claras para la discusión y una amplia base de conocimientos. Actualice y modere periódicamente el contenido para garantizar que sea relevante y apropiado. Fomente la participación reconociendo a los miembros activos u organizando eventos o desafíos comunitarios.
Flujo de trabajo y automatización
1. ¿Se puede automatizar el enrutamiento de casos? ¿Si es así, cómo?
En Service Cloud, los casos se pueden enrutar automáticamente. Puede establecer criterios, como si un caso proviene de un cliente VIP, va directamente a su mejor agente, o si es un problema común, va a cualquier agente disponible. De esta manera, todos reciben un servicio eficiente y eficaz.
2. ¿Cómo se automatiza el seguimiento del acuerdo de nivel de servicio (SLA) en Service Cloud?
Imagínese el restaurante prometiendo que cada pedido se servirá en 30 minutos o, de lo contrario, será gratis. Para cumplir esta promesa, tienen un sistema que inicia una cuenta regresiva en el momento en que se realiza un pedido y alerta al gerente si llega a los 25 minutos. Service Cloud puede realizar un seguimiento de los SLA de forma similar. Puede establecer los plazos en los que los casos deben resolverse según su nivel de prioridad y automatizar recordatorios, escalamientos u otras acciones si esos plazos se acercan o no se cumplen. ¡Mantiene al equipo responsable y a los clientes contentos!
3. ¿Podría definir la Gestión de derechos en el contexto de Salesforce Service Cloud?
La gestión de derechos en Salesforce Service Cloud es una función que ayuda a las empresas a definir, hacer cumplir y realizar un seguimiento de los acuerdos de nivel de servicio (SLA) con sus clientes. Permite a las empresas establecer el nivel de soporte al que tiene derecho un cliente, en función de factores como garantías de productos, contratos de servicio o planes de soporte. Esta característica garantiza que los clientes reciban el soporte al que tienen derecho dentro del plazo acordado.
4. ¿Puedes explicar la funcionalidad de Visual SLA Timelines?
Los cronogramas visuales de SLA en Salesforce Service Cloud ofrecen una representación gráfica de los cronogramas asociados con cada SLA. Ayudan a los agentes de servicio a visualizar el tiempo restante necesario para resolver un caso según el SLA asociado. Esto permite a los agentes priorizar su trabajo de manera efectiva y garantizar el cumplimiento de los términos del SLA.
Informes y paneles
1. ¿Cómo mejoran los informes y paneles las operaciones de servicio?
Imagínese que al final de cada día, el gerente recibe un resumen de todo lo sucedido: cuántos clientes llegaron, cuál fue el plato más popular, cuántos elogios o quejas se recibieron, etc. En Service Cloud, los informes y paneles son como este resumen diario. Ofrecen a los directivos una visión rápida pero completa de cómo van las cosas. ¿Los clientes esperan demasiado? ¿Algunos problemas se resuelven más rápido que otros? Esta información ayuda al equipo a saber qué funciona y qué no, para que puedan mejorar su "servicio".
2. ¿Se puede realizar un seguimiento del rendimiento de los agentes con Service Cloud? Si es así, ¿cómo?
Service Cloud le permite realizar un seguimiento del desempeño de sus agentes. Puede ver cuántos casos han resuelto, qué tan rápido están trabajando e incluso cómo los clientes califican su servicio. Es como un gráfico de desempeño para los camareros, pero para sus agentes de servicio.
3. ¿Cuáles son algunas métricas de servicio comunes que puede rastrear en Service Cloud?
En el mundo de Service Cloud, las métricas comunes incluyen cosas como
- tiempo promedio de resolución de casos
- puntuaciones de satisfacción del cliente
- tasas de resolución del primer contacto
- volúmenes de casos por tipo o fuente
Integración de CTI y telefonía
1. ¿Qué es la Integración Telefónica Computadora (CTI)?
Es un término para un sistema que permite que las computadoras interactúen con los teléfonos. Significa que cuando alguien llama, el sistema de atención al cliente sabe inmediatamente quién es y cuál es su historial con la empresa.
2.¿Cómo mejora CTI el servicio al cliente?
En el restaurante sin CTI, cada llamada de un cliente sería como una reunión de camareros durante la cena por primera vez. Tendrían que volver a hacer todas las preguntas básicas: "¿Tiene alguna alergia?" “¿Prefieres asiento junto a la ventana o en el pasillo?” etcétera. Con CTI, es como si el camarero ya te conociera. Te saludan por tu nombre, recuerdan que eres alérgico al maní, saben que te gusta el queso extra y tienen lista tu mesa favorita. En términos de atención al cliente, esto ahorra tiempo, personaliza la experiencia del cliente.
3. ¿Puede darnos un ejemplo de cómo se utiliza CTI en un escenario de call center?
Cuando un cliente llama, la pantalla del agente muestra inmediatamente el nombre del cliente, su historial de compras, problemas anteriores y cualquier otra información relevante. Luego, el agente puede saludar al cliente por su nombre y atender sus necesidades de manera proactiva, a veces incluso antes de que el cliente indique por qué llama. Se trata de hacer que la experiencia de servicio sea fluida y placentera, como tener la mejor mesa lista incluso antes de entrar.
Servicio al cliente en redes sociales
1. ¿Qué es el servicio al cliente social en Salesforce?
¿Sabes cómo puedes chatear con amigos y ver qué están haciendo en las redes sociales? Salesforce permite a las empresas hacer lo mismo con sus clientes. Pueden revolotear y ver lo que la gente dice sobre ellos en las redes sociales.
2. ¿Cómo pueden los agentes utilizar Salesforce para responder a las consultas de los clientes en las redes sociales?
Ya sea que los clientes tuiteen, publiquen en Facebook o compartan historias de Instagram sobre sus experiencias o problemas, los agentes no tienen que desplazarse de una plataforma a otra. Pueden responder a todas estas publicaciones sociales desde su 'colmena' de Salesforce, asegurándose de que nadie se sienta ignorado y que cada problema se resuelva rápidamente.
3. ¿Puedes realizar un seguimiento de las conversaciones de las redes sociales en Service Cloud?
¡Absolutamente! Service Cloud controla todas las conversaciones que ocurren entre la empresa y los clientes en las plataformas sociales. Recuerda quién dijo qué, almacena información sobre los problemas del cliente e incluso cómo se resolvió. De esta manera, si el cliente vuelve a comunicarse, la empresa no hace las mismas preguntas de siempre, sino que continúa la conversación justo donde la dejó, como si retrocediera en el historial de chat con un amigo.
Chat y mensajería
1. ¿Cómo funciona Live Agent en Service Cloud?
Imagínese si estuviera comprando en una gran tienda y en lugar de tener que buscar ayuda por todo el lugar, apareciera un asistente personal a su lado en el momento en que parecía confundido. Así es Live Agent en el mundo online. Es una característica de Service Cloud que permite a los agentes de servicio al cliente chatear en tiempo real con los clientes mientras están en el sitio web para responder preguntas, dar consejos o ayudarlos a encontrar lo que necesitan.
2. ¿Cuáles son los beneficios de utilizar el chat para atención al cliente?
Los clientes obtienen atención instantánea y sus preguntas pueden responderse de inmediato. Además, es muy conveniente porque pueden hacer otras cosas mientras conversan. Para las empresas, significa que pueden manejar varios chats a la vez, lo que es como poder ayudar a varios clientes al mismo tiempo en diferentes líneas de pago.
3. ¿Se pueden automatizar las respuestas en Live Agent?
Sí, si alguien dice "hola", el sistema puede decir automáticamente "¡Hola!". ¿Cómo puedo ayudarte hoy?" Está programado para reconocer palabras o preguntas específicas y luego proporcionar una respuesta preestablecida. Esto significa que el agente no tiene que escribir las mismas respuestas una y otra vez y los clientes obtienen respuestas ultrarrápidas a preguntas comunes.
4. ¿Cómo maneja Salesforce los mensajes SMS para el servicio de atención al cliente?
Salesforce aporta esa comodidad al servicio al cliente. Con las funciones de mensajería SMS, las empresas pueden enviar mensajes de texto a los clientes y los clientes pueden responder. Pueden enviar recordatorios de citas, confirmaciones, actualizaciones rápidas o incluso responder preguntas, todo a través de mensajes de texto. Todo se rastrea y almacena en Salesforce, para que la empresa no pierda la conversación.
Integración de correo electrónico
1. ¿Cómo se utiliza el correo electrónico en Service Cloud?
No se trata sólo de enviar y recibir correos electrónicos; es un sistema completo que gestiona las comunicaciones por correo electrónico con los clientes. Puede mantener un historial de todas las interacciones, para saber exactamente qué se dijo y cuándo.
2. ¿Puedes automatizar las respuestas por correo electrónico?
– ¡Absolutamente! Según ciertas palabras clave en el correo electrónico del cliente o criterios específicos, el sistema puede enviar una respuesta escrita previamente. Es instantáneo, por lo que los clientes no tienen que esperar y les da a los agentes reales más tiempo para manejar los problemas complejos que necesitan un toque humano.
3. ¿Cómo se asegura de que los correos electrónicos de los clientes se envíen a los agentes adecuados?
Utilice el enrutamiento de correo electrónico en Service Cloud. Usando las reglas que usted configura, los correos electrónicos se pueden dirigir a ciertos agentes según el contenido del correo electrónico, la información del cliente o incluso la carga de trabajo de cada agente.
Soporte Móvil
1. ¿Cómo respalda Salesforce el servicio al cliente móvil?
Con la aplicación móvil Salesforce, todo lo que puede hacer en su escritorio, ahora puede hacerlo en su teléfono: verificar los detalles del cliente, actualizar casos o incluso chatear con los clientes.
2. ¿Cuáles son las limitaciones del servicio al cliente móvil en Salesforce?
Si bien la aplicación móvil Salesforce es súper poderosa, es un poco como intentar colocar una nave espacial en un lugar de estacionamiento. Algunas tareas o informes complejos pueden resultar difíciles de navegar en una pantalla más pequeña y es posible que ciertas personalizaciones no se muestren como lo hacen en un escritorio.
Métricas y análisis de rendimiento
1. ¿Cómo se mide la satisfacción del cliente en Service Cloud?
En Service Cloud, no solo responde las consultas de los clientes y espera que estén satisfechos; lo verifica utilizando herramientas como encuestas, puntajes CSAT y Net Promoter Scores (NPS). Puede enviarlos automáticamente después de que se resuelva un caso. Es como preguntar: "¿Qué le pareció nuestro servicio?" ¡para que puedas seguir viviendo esa experiencia de servicio cinco estrellas!
2. ¿Qué es una puntuación de satisfacción del cliente (CSAT)?
CSAT es como preguntarle a sus clientes, en una escala del 1 al 5. Es una puntuación que los clientes otorgan en función de su satisfacción con una interacción específica que tuvieron con su equipo de servicio. Cuanto mayor sea la puntuación, mejor trabajo hizo para cumplir (¡o superar!) sus expectativas.
3. ¿Qué es Net Promoter Score (NPS) y cómo se utiliza en Salesforce?
NPS es como preguntar a sus comensales: "¿Recomendaría nuestro restaurante a otras personas?" y luego, dependiendo de su respuesta, se agrupan en Promotores, Pasivos o Detractores. No se trata sólo de un plato de sopa; ¡Lo importante es si toda la experiencia gastronómica les hace querer contárselo a sus amigos! En Salesforce, puede enviar encuestas NPS y luego realizar un seguimiento de su puntuación a lo largo del tiempo, con el objetivo siempre de mejorar la experiencia del curso completo.
4. ¿Se pueden integrar herramientas de encuestas externas con Salesforce?
Puede integrarlo con herramientas de encuestas externas que quizás ya esté utilizando o prefiera, como SurveyMonkey o Google Forms. De esta manera, reúne todos esos comentarios cruciales en un solo lugar, lo que facilita ver el panorama general y tomar decisiones informadas.
Inteligencia artificial (IA)
1. ¿Qué es Salesforce Einstein y cómo se aplica a Service Cloud?
Salesforce Einstein utiliza IA para analizar las diferentes interacciones y datos, predecir las necesidades de los clientes e incluso automatizar las respuestas.
2. ¿Cómo funcionan los Bots de Einstein?
Se encargan de las tareas sencillas y rutinarias del servicio de atención al cliente, como responder preguntas comunes o guiar a un usuario a través de un proceso establecido.
3. ¿Puede Einstein sugerir respuestas a los agentes?
Es como un manual dinámico e inteligente que no sólo tiene todas las respuestas sino que también sabe exactamente cuándo proporcionarlas. Analiza el problema del cliente y proporciona al agente la mejor respuesta o solución, acelerando el servicio y asegurándose de que las "comidas" de su servicio al cliente sean siempre deliciosas.
Servicio de campo
1. ¿Qué es Field Service Lightning?
Imagina que organizas un festival de camiones de comida, donde varios camiones sirven diferentes delicias por todo el lugar. Ahora, Field Service Lightning (FSL) es como tener un coordinador de eventos súper organizado que sabe qué camión de comida está dónde, qué sirven, quién está disponible para servir delicias y quién se toma un descanso. ¡Se trata de administrar su equipo sobre la marcha, asegurándose de que tengan los "ingredientes" correctos (herramientas, piezas) para resolver cualquier desafío "culinario" (problema del cliente) que encuentren en el campo!
2.¿Cómo se integra Field Service Lightning con Service Cloud?
Field Service Lightning, cuando se integra con Service Cloud, brinda información en tiempo real hacia y desde las unidades móviles (FSL), para que todos sepan lo que sucede a su alrededor.
3. ¿Puede programar y enviar agentes de servicio de campo utilizando Salesforce?
¡Absolutamente! Puede planificar horarios, asignar agentes a diferentes trabajos y asegurarse de que estén listos para mejorar sus especialidades según sea necesario. Y si hay una prisa repentina, el sistema puede redirigir a los agentes desde lugares menos concurridos para que ayuden, equilibrando la carga de trabajo y manteniendo contentos a los clientes.
Claro, profundicemos en las macros en Service Cloud de Salesforce con un enfoque conversacional fácil de recordar. ¡Imagínate que estamos charlando en tu cafetería favorita!
macros
1.¿Qué es una macro en Salesforce Service Cloud?
Es un atajo genial que realiza tareas repetitivas por ti. Entonces, si te encuentras haciendo los mismos clics una y otra vez, una macro dice: "¡Oye, ya tengo esto!". ¡Y listo!
2. ¿Todos pueden usar mis Macros?
Si los mantiene públicos, cualquiera puede usarlos. Pero si cree que su macro es secreta, puede guardársela para usted. En Salesforce, se trata de establecer permisos y compartir configuraciones.
3. ¿Pueden las macros interactuar con aplicaciones de terceros en Salesforce?
– Directamente, no. Las macros están diseñadas para automatizar las funcionalidades estándar de Salesforce.
4. ¿Es posible deshacer las acciones de una Macro una vez ejecutada?
No, no hay un botón "deshacer" para las macros. Una vez que se ejecuta una macro, sus acciones se consideran definitivas.
5. ¿Se pueden programar las macros para que se ejecuten a una hora específica?
No, las macros no se pueden programar. Son como un conjunto de herramientas manuales que requieren que alguien las utilice activamente; no funcionan con un temporizador automático.
6. ¿Qué tipo de acciones no puedes realizar con una Macro?
Las macros no pueden manejar procesos complejos de toma de decisiones, interactuar con sistemas externos ni crear registros.
7. ¿Cómo se organizan y gestionan las Macros para un equipo de agentes en Service Cloud?
Utilice carpetas para organizar y compartir colecciones de macros.
8. ¿Se puede modificar una macro activa? ¿Hay que tomar alguna precaución?
Sí, puede editar una macro y probar las modificaciones antes de su uso generalizado.
9. ¿Es posible asignar Macros específicas a usuarios o perfiles específicos?
Si bien no puede asignar una macro directamente a usuarios específicos, puede controlar el acceso utilizando las carpetas de macros y la configuración de uso compartido de Salesforce.
10. ¿Cómo se relacionan las macros con la API de Salesforce?
Las macros no interactúan directamente con la API de Salesforce. Funcionan dentro de la interfaz de usuario, automatizando las acciones manuales del usuario.
11. ¿Se pueden utilizar las macros junto con Salesforce Flows?
Las macros y los flujos tienen diferentes propósitos. Mientras que las Macros automatizan las acciones del usuario, los Flujos automatizan los procesos en el backend.
12. ¿Cómo funciona el manejo de errores con Macros?
Si una macro encuentra un problema durante la ejecución, se detiene y se muestra un mensaje de error.
13. ¿Pueden los usuarios sin privilegios de administrador crear o modificar macros?
Los usuarios pueden crear macros personales, pero crear o modificar macros compartidas normalmente requiere ciertos permisos o privilegios de administrador.
14. ¿Existe alguna forma de realizar un seguimiento de los cambios realizados por una Macro?
No existe un mecanismo de seguimiento directo para las macros, pero puede utilizar las funciones de seguimiento de auditoría estándar de Salesforce para ver los cambios en los registros.
15. ¿Cuál es el papel de las instrucciones macro en el proceso de creación?
Las instrucciones macro son el corazón de la macro y dictan qué acciones realiza. Elaborarlos es como escribir una lista detallada de tareas pendientes para otra persona; es necesario especificar cada paso de forma clara y en orden.
29. ¿Puedes usar macros para enviar correos electrónicos con archivos adjuntos?
No, las macros pueden automatizar el proceso de envío de un correo electrónico, pero no pueden agregar archivos adjuntos.
Omnicanal
1. ¿Puedes explicar qué es OmniCanal en Salesforce?
OmniCanal es una característica de Salesforce que permite la gestión de elementos de trabajo entrantes desde diferentes canales de comunicación. Se trata de dirigir el trabajo adecuado a los agentes adecuados en el momento adecuado, en función de su disponibilidad y capacidad, garantizando que las cargas de trabajo se gestionen de manera eficiente.
2: ¿Cómo beneficia OmniCanal a un equipo de servicio al cliente?
OmniChannel ayuda a los equipos de servicio al cliente al distribuir el trabajo de manera uniforme entre los agentes, reducir los tiempos de espera de los clientes y permitir que los agentes manejen el trabajo desde varios canales dentro de una sola plataforma. Este enfoque simplificado conduce a un mejor servicio al cliente y una mayor productividad de los agentes.
3. ¿Cuál es la diferencia entre OmniCanal y distribución del trabajo tradicional?
La distribución tradicional del trabajo a menudo implica una asignación manual, lo que puede llevar mucho tiempo y ser ineficiente. OmniChannel, por otro lado, dirige automáticamente el trabajo a los agentes más adecuados según criterios preestablecidos y la disponibilidad de los agentes en tiempo real, lo que hace que el proceso sea más rápido y eficiente.
4. ¿Puede explicar el “Estado de presencia” en OmniCanal?
“Estado de presencia” se refiere a la disponibilidad actual de un agente para recibir trabajo. Los agentes pueden configurar su estado para mostrar si están disponibles, ocupados o ausentes, y OmniCanal utiliza esta información para enrutarles el trabajo en consecuencia.
5. ¿Cómo garantiza OmniCanal que los casos de alta prioridad se manejen rápidamente?
OmniCanal permite a los administradores establecer niveles de prioridad para diferentes tipos de trabajo. Cuando llegan elementos de trabajo, se enrutan automáticamente según estos niveles de prioridad. Los elementos de alta prioridad se envían al principio de la cola para que se atiendan más rápido.
6. ¿Se puede integrar OmniCanal con otras funciones de Salesforce?
Sí, OmniCanal se integra perfectamente con otras funciones de Salesforce. Por ejemplo, funciona con Service Cloud para gestionar procesos de atención al cliente, Sales Cloud para procesos de ventas e incluso aplicaciones personalizadas de Salesforce.
7. ¿Cómo admite OmniCanal los diferentes canales de comunicación?
OmniCanal es versátil al admitir varios canales de comunicación como correo electrónico, chat, SMS y redes sociales. Dirige todos estos diferentes tipos de trabajo a los agentes a través de la misma plataforma, garantizando un enfoque unificado del servicio al cliente.
8. ¿Puede describir un escenario en el que el enrutamiento omnicanal podría resultar beneficioso?
Imagine un escenario en el que hay un gran volumen de solicitudes de servicio entrantes y una cantidad limitada de agentes disponibles. OmniCanal dirige eficientemente las solicitudes a los agentes disponibles según sus habilidades, carga de trabajo y prioridad de los casos, garantizando una carga de trabajo equilibrada y respuestas oportunas.
9. ¿Cuáles son los tipos de Omni Channel?
Basado en cola → Asignar agentes a la cola
Basado en habilidades → Asignar habilidades a los agentes
Enrutamiento externo → Configuración de enrutamiento de terceros
10. ¿Cómo configurar Omni Channel?
- Habilite OmniCanal.
- Crear canales de atención.
- Cree configuraciones de enrutamiento.
- Asociar configuraciones de enrutamiento y agentes con colas.
- Crear configuraciones de presencia.
- Crear estados de presencia.
- Agregue el widget omnicanal.
11. ¿Cómo crear un Canal de Atención?
Se puede crear un canal de servicio para cualquier objeto de Salesforce, como un caso, cliente potencial, sesión SOS o objeto personalizado.
12. ¿Cómo crear una configuración de enrutamiento?
Las configuraciones de enrutamiento determinan cómo se enrutan los elementos de trabajo a los agentes.
Utilícelos para priorizar la importancia relativa y el tamaño de los elementos de trabajo de sus colas.
13. ¿Explicar los ajustes de configuración de enrutamiento?
Prioridad de ruta:
El orden en el que los elementos de trabajo de la cola asociados con esta configuración de enrutamiento se enrutan a los agentes. Los objetos en colas con un número menor se enrutan primero a los agentes.
Modelo de enrutamiento:
Determina cómo se enrutan los elementos de trabajo entrantes a los agentes asignados al canal de servicio de configuración.
Tiempo de espera de empuje (segundos):
Establece un límite de tiempo para que un agente responda a un elemento antes de enviarlo a otro agente.
Unidades de Capacidad:
Cantidad de capacidad total del agente.
Preguntas basadas en escenarios
1. ¿Cómo diseñaría una solución para respaldar a un equipo de soporte multilingüe que utiliza Service Cloud?
Service Cloud de Salesforce admite equipos multilingües mediante el uso de funciones como Translation Workbench, que le permite traducir objetos estándar y personalizados, reglas de validación, etiquetas de campo y más, a cualquiera de los idiomas admitidos.
Además, los artículos de conocimiento se pueden escribir y traducir a varios idiomas, lo que permite a los agentes de soporte acceder y proporcionar información en varios idiomas.
También puede configurar OmniCanal para enrutar casos a los agentes adecuados según sus habilidades lingüísticas. De esta manera, los clientes pueden interactuar con el soporte en su idioma preferido, mejorando la satisfacción del cliente.
2. ¿Puede explicarme el proceso de diseño de una solución de Service Cloud que incorpore reglas de escalamiento de casos y SLA para garantizar una resolución oportuna del caso?
- Es necesario definir los SLA, es decir, el tiempo dentro del cual se deben resolver casos de ciertos tipos o prioridades.
- Una vez definidos, configurará los procesos de derechos para especificar el cronograma para cada etapa de resolución del caso.
- Luego, usaría Milestones dentro de estos procesos para rastrear si los casos se están resolviendo dentro de los SLA definidos.
- Las reglas de escalamiento de casos se usarían para escalar casos que estén en peligro de violar sus SLA. Estos se pueden configurar para escalar según la antigüedad del caso, la prioridad o incluso si el caso ha estado inactivo. Los casos escalados pueden luego remitirse automáticamente a agentes o supervisores con más experiencia para recibir atención urgente.
3. ¿Cómo abordaría el diseño de una solución para un centro de llamadas a gran escala que necesita gestionar grandes volúmenes de casos y llamadas?
– Para los centros de llamadas de gran volumen, le conviene aprovechar la función OmniCanal de Service Cloud, que garantiza que los casos se dirijan a los agentes adecuados según su disponibilidad y conjunto de habilidades, lo que ayuda a gestionar la carga de trabajo de manera eficiente. La integración de la telefonía mediante Open CTI permite a los agentes recibir y realizar llamadas directamente dentro de Salesforce, garantizando que tengan toda la información relevante del cliente al alcance de su mano.
4. ¿Cuál es su experiencia con la integración de aplicaciones de terceros en Service Cloud y cómo ha abordado la solución de problemas de integración en el pasado?
Mi enfoque implica primero garantizar que la aplicación de terceros tenga una documentación API sólida y cumpla con las mejores prácticas de seguridad y cumplimiento. Salesforce ofrece varias formas de integración, como mediante API REST o SOAP, servicios externos o incluso mediante aplicaciones AppExchange, si están disponibles.
5. ¿Cómo diseñaría una solución que utilice Service Cloud para rastrear la opinión del cliente e incorporar esa información en los flujos de trabajo de gestión de casos?
Service Cloud puede integrarse con herramientas que ofrecen análisis de sentimientos, incluido Einstein Sentiment de Salesforce. Al analizar el texto de las interacciones con los clientes (correos electrónicos, transcripciones de chat, publicaciones en redes sociales), se puede determinar el sentimiento (positivo, neutral, negativo). Estos datos de opinión se pueden almacenar como un campo en el objeto Caso o en un objeto personalizado relacionado.
6. ¿Puede dar un ejemplo de cómo ha utilizado Service Cloud para mejorar las capacidades de autoservicio del cliente y reducir la cantidad de solicitudes de soporte entrantes?
Una estrategia eficaz es implementar una comunidad o portal de clientes utilizando Salesforce Community Cloud, integrado con Service Cloud. Aquí se puede acceder a los artículos de la base de conocimientos, lo que permite a los clientes encontrar respuestas a sus preguntas. También se pueden crear casos directamente desde la comunidad y los clientes pueden verificar su estado sin necesidad de comunicarse con el soporte. La implementación de un chatbot a través de Einstein Bots también puede desviar consultas rutinarias al proporcionar respuestas automáticas a preguntas comunes.
7. ¿Has trabajado con Service Cloud Voice? ¿Cómo ha utilizado esta tecnología para mejorar el rendimiento del call center y la satisfacción del cliente?
Service Cloud Voice integra la telefonía en Salesforce, brindando una vista unificada del cliente y transcripción de llamadas en tiempo real. Esto permite a los agentes centrarse más en el cliente que en tomar notas. La transcripción en tiempo real, impulsada por Einstein, también puede proporcionar sugerencias para el siguiente paso, ayudando a los agentes más nuevos. La conclusión posterior a la llamada se acelera porque los datos de la llamada ya están en Salesforce, lo que reduce el trabajo posterior a la llamada y, en consecuencia, los tiempos de espera para los clientes. Los datos históricos de llamadas brindan información valiosa para el análisis de la opinión del cliente y el desempeño de los agentes, lo que impacta positivamente la capacitación y la satisfacción del cliente.
8. ¿Cómo abordaría el diseño de una solución para una empresa que opera en varios países con diferentes regulaciones de privacidad de datos?
– El cumplimiento de diversas normas de privacidad de datos se puede gestionar en Service Cloud mediante el uso de funciones como opciones de residencia de datos para almacenar datos en regiones específicas, enmascaramiento de datos, cifrado, seguridad a nivel de campo y reglas de acceso a registros para controlar quién puede acceder a qué datos.
9. ¿Cómo ha abordado los problemas de escalabilidad y rendimiento al diseñar soluciones de Service Cloud para grandes empresas?
- Para las grandes empresas, las consideraciones incluyen la gestión del volumen de datos, el uso de las herramientas de optimización del rendimiento integradas de Salesforce y la revisión periódica de la organización para eliminar configuraciones y personalizaciones obsoletas.
- También es importante diseñar con una mentalidad de “clics, no código” para minimizar el código personalizado, que puede introducir complejidad y sobrecarga de rendimiento.
- Cuando es necesario un código personalizado, es vital seguir las mejores prácticas para la masificación y las consultas SOQL eficientes. Finalmente, el monitoreo a través del Optimizador, Health Check y otras herramientas de Salesforce puede ayudar a identificar y mitigar problemas de rendimiento de manera proactiva.
10. ¿Cómo ha utilizado Service Cloud para mejorar la retención de clientes y reducir las tasas de abandono?
En Service Cloud, la retención de clientes se puede mejorar significativamente utilizando las sólidas funciones de servicio al cliente de la plataforma. Por ejemplo, aprovecho las capacidades de análisis e informes de Service Cloud para realizar un seguimiento de las puntuaciones de satisfacción del cliente e identificar problemas comunes que provocan la insatisfacción del cliente. Al integrar los comentarios directamente en el sistema de gestión de casos, los agentes pueden abordar las inquietudes de manera proactiva antes de que se intensifiquen, lo que impacta directamente en la satisfacción y retención del cliente. Además, características como la comunicación personalizada con el cliente, artículos de conocimiento para el autoservicio y la resolución eficiente de casos a través del enrutamiento y escalamiento automatizados de casos ayudan a mantener una experiencia positiva para el cliente, reduciendo así la deserción.
11. ¿Ha trabajado con la funcionalidad Live Agent de Service Cloud? ¿Cómo ha utilizado esta tecnología para mejorar las experiencias de atención al cliente?
Sí, utilicé Live Agent dentro de Service Cloud para mejorar el soporte que reciben los clientes en tiempo real. Al integrar Live Agent, los clientes pueden chatear instantáneamente con agentes de soporte, lo que reduce los tiempos de espera y mejora la satisfacción general. Descubrí que incorporar el chat de Live Agent en sitios web y aplicaciones móviles donde los clientes son más activos reduce significativamente la barrera para acceder al soporte.
12. ¿Puede describir cómo diseñaría una solución de Service Cloud que incorpore el enrutamiento automatizado de casos al agente apropiado según el problema del cliente y el conjunto de habilidades del agente?
Para lograr esto, aprovecharíamos la función OmniCanal, que permite enrutar los casos según el conjunto de habilidades, la disponibilidad y la carga de trabajo del agente.
- Comenzaría por definir varios conjuntos de habilidades de agentes dentro del sistema y asociaría estas habilidades con los agentes correspondientes.
- Luego, establecía configuraciones de enrutamiento, donde los casos entrantes se evalúan según criterios predefinidos relacionados con el problema del cliente y luego se los relaciona con un agente que posee el conjunto de habilidades requerido.
13. ¿Cómo abordaría el diseño de una solución de Service Cloud que pueda manejar grandes volúmenes de casos manteniendo tiempos de respuesta consistentes y niveles de satisfacción del cliente?
- Primero, implementaría reglas de asignación de casos para automatizar la distribución de casos a los agentes o colas correctos.
- Luego, utilizaría la función de reglas de escalamiento de casos de Service Cloud para priorizar casos urgentes o de alto impacto.
- Para mantener tiempos de respuesta constantes, se pueden utilizar funciones como reglas de respuesta automática para reconocer inmediatamente los envíos de casos.
- Además, integraría una base de conocimientos integral para facilitar las opciones de autoservicio, reduciendo así la carga de casos para los agentes.
Reúna todos los datos de sus clientes en Data Cloud ☁️
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.
…
En nuestras publicaciones de blog anteriores, exploramos a alto nivel qué es Data Cloud para los desarrolladores. También exploramos algunas características interesantes de Data Cloud para desarrolladores . Le mostramos cómocrear conocimientos calculados , cómo usar Apex y cómo cargar datos mediante programación usando la API de ingesta . En esta publicación de blog, cubriremos características aún más increíbles que Data Cloud tiene para ofrecer.
La nube de datos está activa
Data Cloud es más que un lago de datos. Es una plataforma de datos activa. Los desarrolladores pueden traer datos desde cualquier sistema, canal o flujo de datos, ya sea en flujos continuos o en lotes. Con Data Cloud, puede conectar sus datos a través de diferentes sistemas que contienen los datos de sus clientes. Data Cloud se basa en nuestra plataforma Hyperforce , lo que significa que Data Cloud puede absorber fácilmente grandes volúmenes de datos. Con Hyperforce, Data Cloud es rápido y también puede capturar eventos segundos después de que ocurran.
Si piensa en cuántos clics hace cada cliente, el volumen de datos se expande rápidamente. Por ejemplo, a medida que los clientes abren y hacen clic en los correos electrónicos, navegan por las páginas de sus aplicaciones móviles y miran los productos en su sitio web, puede capturar esos datos de participación a medida que ocurren. Cuando envía un correo electrónico u oferta y es relevante para la persona que lo recibe, es mucho más probable que haga clic. Cuando un cliente hace clic, puede capturar la interacción en Data Cloud. A continuación, puede utilizar esa información para averiguar qué les interesa y si es probable que realicen una compra o no.
La nube de datos está integrada
Tener todos estos datos en tiempo real de múltiples fuentes empresariales es excelente. Pero los datos no son significativos a menos que pueda usarlos. Data Cloud se conecta de forma nativa a muchos proveedores de nube, como Google Cloud Storage , Azure Storage y Amazon S3 . Data Cloud también se conecta de forma nativa a Salesforce . Después de solo unos pocos clics, puede conectar cualquier organización de Sandbox o de producción de Salesforce a Data Cloud. Luego, Data Cloud puede ingerir cualquier objeto de Salesforce en un flujo de datos .
Después de que sus datos se ingieran en objetos de lago de datos (DLO) y se asignen a objetos de modelo de datos (DMO), un modelo de datos como el siguiente se integra dinámicamente en Data Cloud. Esto le permite ver visualmente todos los flujos de datos que están creando la vista única de su cliente.
Atrás quedaron los días en que Data Cloud era solo una plataforma de datos para marketing. Los datos almacenados en Data Cloud ahora se pueden usar en muchos sistemas. Los datos de Data Cloud se pueden usar en Amazon Ads y Google Ads mediante activaciones y objetivos de activación . También puede usar el conector de nube de datos nativo en Tableau para obtener nuevos conocimientos. Los aceleradores de Tableau listos para usar le permiten moverse aún más rápido usando tableros y libros de trabajo prediseñados y listos para usar. Con Data Cloud más Tableau, puede cubrir fácilmente nuevos conocimientos sobre su negocio al reunir todos sus datos. Los desarrolladores ahora pueden incorporar estos conocimientos impulsados por IA en una aplicación de su elección.
La nube de datos está automatizada
Los datos de Data Cloud también se pueden enviar a Salesforce mediante acciones de datos y eventos de la plataforma y luego aprovecharse en flujos mediante una variedad de acciones de datos que están disponibles en Salesforce Flow. Los desarrolladores pueden usar Flow para publicar información y segmentos calculados, actualizar flujos de datos, ejecutar resoluciones de identidad e incluso activar modelos de predicción. El flujo también puede obtener datos de un objeto de modelo de datos y almacenar esa información en una variable de colección para usarla en otras partes del flujo.
La nube de datos está abierta
Data Cloud tiene muchas asociaciones estratégicas con empresas como Amazon, Google, Snowflake y Meta. Estas asociaciones han ampliado la plataforma para permitir mayores posibilidades y ayudar a que sus datos sean más procesables. La mejor noticia es que nuestras asociaciones están creciendo constantemente, ¡y pronto habrá nuevas!
Recursos
Sobre los autores
Muralidhar Krishnaprasad (también conocido como MK o Murali para abreviar) es el vicepresidente ejecutivo de ingeniería que ejecuta datos, ML y análisis dentro de la organización de Marketing Cloud. Se unió a Salesforce hace tres años y está a cargo de crear, integrar y hacer crecer varios productos relacionados con datos, ML y análisis. Está liderando la iniciativa para repensar nuestra estrategia general de próxima generación que reúne lo mejor de big data, ML y análisis junto con nuestra plataforma para construir la base para el futuro digital.
Danielle Larregui es promotora sénior de desarrolladores en Salesforce, donde se enfoca en la creación de contenido de Data Cloud y Marketing Cloud. Le encanta la UI/UX, el marketing digital y la codificación. Danielle también disfruta asistir a grupos de usuarios, conferencias comunitarias y eventos técnicos de Salesforce. Puede seguirla en Twitter @dnlarregui o LinkedIn para mantenerse al día con su contenido técnico.
Dianne Siebold es redactora técnica principal del equipo de Experiencia de contenido en Salesforce. Se especializa en desarrollo, inteligencia artificial y tecnologías de integración.
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
Ejecutar flujo desencadenado por programación a intervalos de repetición flexibles
Última actualización el 7 de agosto de 2023 por Rakesh Gupta
Gran idea o pregunta duradera:
- ¿Cómo se ejecuta un flujo activado por programación o iniciado automáticamente en intervalos de repetición flexibles?
Objetivos:
Después de leer este blog, podrá:
- Ejecute un flujo activado por programa en intervalos regulares (por ejemplo, cada 15 minutos, cada hora, cada cuatro horas, etc.)
- Ejecute un flujo activado por programación solo los fines de semana.
- Y mucho más
Benjamin Moore, el administrador de Salesforce en Gurukul On Cloud (GoC), implementó con éxito un flujo activado por programación para automatizar las actualizaciones de tipos de cambio de moneda en Salesforce utilizando la API de cambio de moneda . Actualmente, este flujo está configurado para ejecutarse todas las noches a las 12:54 a. m.
Sin embargo, en función de los comentarios comerciales y su satisfacción con la configuración actual, ahora existe una solicitud para que la frecuencia del flujo activado por programación se ajuste para que se ejecute cada seis horas.
Enfoque de Campeón de Automatización (I-do):
Un Evento en los datos no desencadena Flujos programados; se ejecutan cuando llega una hora programada. Los flujos programados se ejecutan de la siguiente manera:
- Una vez (En una fecha y hora en particular)
- Diariamente (En una fecha y hora en particular)
- Semanalmente (En una fecha y hora en particular)
Sin embargo, puede haber casos en los que sea necesario ejecutar un flujo de inicio automático con más frecuencia de la necesaria. Para tales escenarios, se requiere familiaridad con Apex o el uso de una aplicación de AppExchange, Schedul-o-matic 9000 .
La aplicación Schedul-o-matic 9000 ofrece la flexibilidad de intervalos de repetición personalizados. Ya sea ejecutando un trabajo una vez, cada 5 minutos indefinidamente o en cualquier período de tiempo intermedio, la elección está en sus manos.
👉 Mira el video para obtener instrucciones paso a paso.
Evaluación formativa:
¡Quiero saber de ti!
¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.
Seguir leyendoValidaciones personalizadas mediante flujos activados por registros
Última actualización el 3 de agosto de 2023 por Rakesh Gupta
Gran idea o pregunta duradera:
- ¿Cómo se escribe una regla de validación utilizando un flujo desencadenado por registros antes de guardar sin crear metadatos adicionales?
Objetivos:
Después de leer este blog, podrá:
- Comprender la regla de validación
- Flujo antes de guardar activado por registro de usuario para crear una regla de validación
- Mostrar el mensaje de error en la parte superior de la página
- Y mucho más
👉 Anteriormente, escribí varias publicaciones sobre la validación y Salesforce Flow. ¿Por qué no echarles un vistazo mientras estás en ello?
- Adición de validación a los componentes de la pantalla de flujo
- ¿Regla de validación usando un flujo antes de guardar? ¡Sí!
- Cómo corregir el error FIELD_CUSTOM_VALIDATION_EXCEPTION)
A Benjamin Moore , administrador de Salesforce en Gurukul On Cloud (GoC), se le ha encomendado un requisito específico. Debe restringir que los usuarios creen una nueva oportunidad dentro de la cuenta si existe una oportunidad abierta. El siguiente texto debe utilizarse para el mensaje de error:
Utilice la oportunidad abierta existente dentro de esta cuenta. Si necesita más ayuda o tiene preguntas sobre la gestión de oportunidades, póngase en contacto con el soporte de TI.
¿Qué es la regla de validación?
Una regla de validación permite que un administrador del sistema defina una lógica personalizada y mensajes de error para garantizar la integridad de los datos. La regla puede contener una fórmula o una expresión que evalúe los datos en uno o más campos y devuelva un valor verdadero o falso . Por ejemplo, la regla incluye un mensaje de error que se muestra cuando devuelve un valor verdadero que indica que se están ingresando datos incorrectos. Recuerde, una regla de validación solo se activa cuando se crea o edita un registro .
¿Qué es Antes de Guardar Flujo?
El flujo antes de guardar es un disparador que se realiza antes de una operación , como una inserción, actualización, eliminación, etc. Puede usar dicho flujo para verificar o cambiar valores antes de que los datos se actualicen o inserten en la base de datos. Guardar antes es mucho más rápido porque cada registro no se guarda en la base de datos nuevamente. Evitar ese procedimiento de guardado adicional significa omitir otra ronda de reglas de asignación, reglas de respuesta automática, reglas de flujo de trabajo y otras personalizaciones que tardan en ejecutarse. Use un flujo antes de guardar en los siguientes casos de uso:
- Actualizar campos en registros nuevos o modificados: significa que desea actualizar los campos en el registro que inició el Flujo
- Activar una regla de validación (no necesaria después del lanzamiento de winter'24)
Lea este artículo para obtener más información sobre cuándo usar el flujo anterior frente al flujo posterior al guardado.
Enfoque de Campeón de Automatización (I-do):
Paso 2: uso del elemento de decisión para verificar si la oportunidad se creó o actualizó
Ahora usaremos el elemento Decisión para verificar si el registro de oportunidad fue creado o actualizado.
- En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
- Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
- En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
- Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
- Fila 1:
- Recurso : {!$Record.Id}
- Operador : es nulo
- Valor : {!$ConstanteGlobal.Verdadero}
- Fila 1:
- Cuándo ejecutar el resultado : si se cumplen los requisitos de la condición
- Haz clic en la X en la parte superior para guardar tus cambios.
Paso 3: agregar un elemento Obtener registro para encontrar oportunidades abiertas relacionadas
El siguiente paso es usar el elemento Obtener registros para encontrar oportunidades abiertas relacionadas en la cuenta.
- En Flow Designer, debajo del nodo Creado , haga clic en el icono + y seleccione el elemento Obtener registros .
- Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
- Seleccione el objeto Oportunidad de la lista desplegable.
- Seleccione Se cumplen todas las condiciones (Y) .
- Establecer condiciones de filtro
- Fila 1:
- Campo : ID de cuenta
- Operador : Igual
- Valor : {!$Record.AccountId}
- Haga clic en Agregar condición
- Fila 1:
- Campo : EstáCerrado
- Operador : Igual
- Valor : {!$ConstanteGlobal.Falso}
- Fila 1:
- Fila 1:
- Cuántos registros almacenar:
- seleccione Todos los registros
- seleccione Todos los registros
- Cómo almacenar datos de registro:
- Elija la opción para Almacenar automáticamente todos los campos .
- Haz clic en la X en la parte superior para guardar tus cambios.
Paso 4: uso del elemento de decisión para verificar si se encontró o no una oportunidad abierta
Ahora, usaremos el elemento Decisión para comprobar si el elemento Obtener registros anterior devuelve un registro de oportunidades abiertas.
- En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
- Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
- En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
- Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
- Fila 1:
- Recurso: {!Get_Related_Opportunity}
- Operador: es nulo
- Valor: {!$ConstanteGlobal.Falso}
- Fila 1:
- Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
- Haga clic en Listo .
Paso 5: agregar un elemento de error personalizado para mostrar mensajes de error
- En el nodo Sí , seleccione el elemento Error personalizado .
- Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
- Establecer detalles del mensaje de error 1
- Dónde mostrar el mensaje de error : en una ventana en una página de registro
- Mensaje de error:
- Utilice la oportunidad abierta existente dentro de esta cuenta. Si necesita más ayuda o tiene preguntas sobre la gestión de oportunidades, póngase en contacto con el soporte de TI.
- Haz clic en la X en la parte superior para guardar tus cambios.
Al final, Benjamin's Flow se verá como la siguiente captura de pantalla:
Una vez que todo se vea bien, realice los siguientes pasos:
- Haga clic en Guardar .
- Ingrese la etiqueta de flujo, el nombre de la API se completará automáticamente.
- Haga clic en Mostrar avanzado .
- Versión de API para ejecutar el flujo : 59
- Etiqueta de entrevista : regla de validación personalizada mediante flujo {!$Flow.CurrentDateTime}
- Haga clic en Guardar .
¡Casi llegamos! Una vez que todo se vea bien, haga clic en el botón Activar .
👉 Mira el video para obtener instrucciones paso a paso.
Cosas para recordar
- El límite para el campo del mensaje de error es de 255 caracteres.
- Solo puede agregar un mensaje de error para una página.
- Solo puede agregar un mensaje de error por campo.
- no es posible utilizar el enlace con su mensaje de error.
- parámetro de escape Indica si cualquier marcado HTML en el mensaje de error personalizado se debe escapar ( verdadero ) o no ( falso ). Este parámetro se ignora tanto en Lightning Experience como en la aplicación móvil Salesforce, y el HTML siempre se escapa. El parámetro de escape solo se aplica en Salesforce Classic. Lea este artículo para obtener más información.
Prueba de concepto
Evaluación formativa:
¡Quiero saber de ti!
¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.
Desatando los superpoderes de administración de Salesforce: ¡Impulse la colaboración en equipo, sobrecargue la eficiencia, gestión de datos maestros!
Última actualización el 31 de julio de 2023 por Rakesh Gupta
Durante la última década, el papel de un administrador de Salesforce ha evolucionado drásticamente, manteniendo el ritmo del panorama dinámico de las ventas y la gestión de las relaciones con los clientes. Lo que alguna vez fue principalmente una posición de entrada de datos se ha convertido en un rol multifacético que abarca la planificación estratégica, el análisis y la optimización de procesos. A medida que las empresas reconozcan la importancia de Salesforce para impulsar el crecimiento y mejorar las experiencias de los clientes, los administradores proporcionarán un puente fundamental entre la tecnología y el éxito comercial.
Este artículo explorará cómo los administradores pueden aprovechar la automatización de procesos junto con el ecosistema de Salesforce para fomentar la colaboración en equipo, mejorar la eficiencia organizacional y mejorar la gestión de datos.
Uso de la automatización de correo electrónico de Salesforce para la programación
La automatización del correo electrónico se utiliza para optimizar varios aspectos de la comunicación por correo electrónico con clientes potenciales y clientes dentro de la plataforma de Salesforce para garantizar una programación de citas rápida y eficiente. Permite a las empresas administrar de manera eficiente sus campañas de marketing y ventas por correo electrónico, la participación del cliente y las reservas.
En los últimos años, la automatización revolucionó los procesos de ventas y soporte al agilizar la reserva de citas, reducir la carga de trabajo manual y brindar a los clientes opciones convenientes de autoservicio. Actualmente, los administradores de Salesforce pueden aprovechar herramientas como SUMO Scheduler junto con flujos nativos y alertas por correo electrónico para enviar automáticamente invitaciones a citas. Al crear disparadores que monitorean campos de datos específicos asociados con registros de contactos y lanzar flujos personalizados, los administradores pueden asegurarse de que los clientes potenciales siempre puedan programar citas, independientemente de la hora del día o la ubicación.
Actualizaciones automáticas de temas: haga que sus citas se destaquen
Las reuniones de cara al cliente son vitales para los equipos de ventas y soporte, y las citas perdidas o canceladas pueden afectar negativamente los objetivos estratégicos y el resultado final. Los administradores de Salesforce pueden aprovechar las actualizaciones automáticas de temas dentro de la programación de citas para reducir las cancelaciones de manera efectiva y aumentar la participación en las citas. Al implementar esta funcionalidad, los administradores pueden mejorar la comunicación, brindar claridad e infundir confianza en el proceso de citas para los clientes y la organización.
Se puede activar una actualización automática del tema para incluir detalles esenciales como la fecha, la hora, la ubicación y el propósito de la cita al programarla. Este mensaje de confirmación sirve como recordatorio para el cliente y reduce las posibilidades de cancelaciones involuntarias o de no presentarse.
Las actualizaciones automáticas de temas también se pueden personalizar para atender a clientes individuales. Los administradores pueden incluir detalles personalizados, como el nombre del cliente o referencias de citas específicas, para captar su atención y crear una sensación de personalización. Esto ayuda a fomentar una conexión con el cliente y refuerza su compromiso con la cita.
Finalmente, en caso de cambios o actualizaciones en la cita, los administradores pueden usar actualizaciones automáticas de temas para comunicar la información revisada. Esto asegura que los clientes estén informados sobre cualquier modificación en tiempo real, minimizando la confusión o la necesidad de cancelar debido a detalles desactualizados o inexactos.
Al permitir la flexibilidad en la programación y el mantenimiento de registros precisos dentro de Salesforce con la ayuda de líneas de asunto automatizadas, los administradores pueden optimizar de manera efectiva su proceso de ventas, mejorar la experiencia del usuario y fortalecer las relaciones con los clientes.
Uso de campos de correo electrónico flexibles para una mayor precisión
La flexibilidad es clave para satisfacer las necesidades únicas de los clientes, y los administradores de Salesforce pueden aprovechar el poder de los campos de correo electrónico para notificaciones personalizadas, sin importar cuán complejas sean. Esta personalización permite una experiencia más personalizada que cumple con requisitos específicos, como el cumplimiento normativo o las políticas internas.
En el contexto de Salesforce, los campos de correo electrónico se utilizan para recopilar y almacenar las direcciones de correo electrónico de los clientes. Estos campos aseguran que los datos ingresados sigan el formato adecuado, evitando entradas incorrectas o no válidas. Las direcciones de correo electrónico recopiladas a través de estos campos se pueden usar para enviar recordatorios, actualizaciones, mensajes de seguimiento y otras notificaciones relacionadas con citas. Cada campo de correo electrónico actúa como una medida confiable de capturar y utilizar información de contacto para mejorar el compromiso y mantener canales de comunicación efectivos.
Los campos de correo electrónico de Salesforce pueden mejorar la precisión al garantizar que la información de contacto almacenada en CRM esté actualizada y sea confiable. Al utilizar campos de correo electrónico dedicados dentro de Salesforce, los representantes de ventas pueden capturar y almacenar direcciones de correo electrónico específicas de personas o entidades con precisión. Esto ayuda a eliminar el riesgo de usar direcciones de correo electrónico desactualizadas o incorrectas asociadas con otros campos, como información de contacto personal o comercial, lo que da como resultado comunicaciones por correo electrónico más confiables, tasas de rebote reducidas y precisión de datos mejorada.
Automatice la creación de clientes potenciales en Salesforce en el momento de la reserva
Las herramientas de programación nativas de Salesforce permiten a los equipos de ventas automatizar la creación de clientes potenciales, lo que garantiza una captura precisa de la información y los datos demográficos de los clientes potenciales en el CRM. Al automatizar el proceso de creación de clientes potenciales tan pronto como se programa una cita, los administradores pueden ahorrar tiempo, mantener la integridad de los datos y evitar la redundancia. Los flujos automatizados agilizan el proceso y eliminan los errores de entrada manual. La precisión mejorada y la colaboración entre las partes interesadas mejoran las tasas de conversión de clientes potenciales y proporcionan datos confiables para informes y análisis.
Para automatizar rápidamente la creación de clientes potenciales en Salesforce en el momento de la reserva, puede seguir estos pasos:
- Identifique el evento desencadenante : determine el evento o la acción específicos que deben desencadenar la creación de clientes potenciales. En este caso, sería la reserva de una cita.
- Configure un flujo de Salesforce : utilice el flujo de Salesforce para crear una regla que active el proceso de creación de clientes potenciales. Especifique los criterios para cuándo debe activarse el flujo, como cuando se reserva una nueva cita.
- Definir asignación de campos : configure la asignación de campos para asegurarse de que la información relevante de la cita se transfiera correctamente al registro de clientes potenciales. Puede asignar campos como el nombre del participante, la información de contacto, los detalles de la cita y otros puntos de datos relevantes.
- Crear el registro de prospecto : configure Salesforce Flow para crear un nuevo registro de prospecto con los datos asignados. Asegúrese de que todos los campos obligatorios estén completos y que el registro de cliente potencial esté asociado con la campaña o la fuente adecuada.
- Probar y validar : pruebe el proceso automatizado de creación de clientes potenciales reservando una cita de muestra y verificando que el registro de clientes potenciales se cree con los datos esperados. Valide que el registro de prospectos aparezca en la cola de prospectos designada o en las reglas de asignación.
- Supervisar y perfeccionar : Supervise continuamente el proceso de automatización de creación de clientes potenciales para garantizar su eficacia y precisión. Realice los ajustes o mejoras necesarios en función de los comentarios, los cambios en los requisitos comerciales o los problemas de calidad de los datos.
Al automatizar la creación de clientes potenciales en Salesforce en el momento de la reserva, los representantes de ventas y los administradores pueden ahorrar tiempo, garantizar la precisión de los datos y mantener un proceso de gestión de clientes potenciales optimizado. Esta automatización facilita la captura eficiente de clientes potenciales, reduce el esfuerzo manual y mejora la productividad del equipo de ventas.
Conclusión:
Los flujos de programación automatizados, junto con las poderosas capacidades de SUMO Scheduler, simplifican y mejoran los procesos de trabajo, ahorran tiempo, reducen errores y mejoran la satisfacción del cliente. Al adoptar la automatización, los administradores de Salesforce pueden impulsar mejoras significativas en la eficiencia, la productividad y el rendimiento comercial general. La optimización de los procesos de programación y el aprovechamiento de los flujos de automatización en Salesforce con SUMO Scheduler es una combinación ganadora para las empresas que buscan optimizar sus operaciones. ¡Adopte la revolución de la automatización hoy e impulse a su equipo de ventas a nuevos niveles de éxito!
Haga clic aquí para visitar SUMO Scheduler en Salesforce AppExchange y obtener más información sobre el poder de la programación automática de autoservicio .
Evaluación formativa:
¡Quiero saber de ti!
¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.
Seguir leyendoLiberando el poder de Apex en Salesforce Data Cloud — Parte 1 ☁️
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.
…
Salesforce Data Cloud permite a los desarrolladores aprovechar el poder de los grandes datos para las empresas. Al utilizar Data Cloud, los clientes pueden consolidar los datos de clientes de múltiples sistemas en una única instancia de Salesforce, creando una vista unificada de los datos en toda la empresa. Estos datos se pueden utilizar para análisis, aprendizaje automático y acciones automatizadas. En este primer blog de nuestra serie de dos partes, exploraremos diferentes utilidades de Apex para consultar datos en Data Cloud y brindaremos orientación sobre cómo utilizarlas de manera efectiva.
Apex ofrece una variedad de utilidades para Data Cloud. Por ejemplo, permite que los desarrolladores construyan con Lightning Web Components para personalizar las experiencias de usuario estándar de Data Cloud, o que los ISV construyan su propio código para automatizar operaciones específicas de Data Cloud, como la resolución de identidades, la creación y ejecución de conocimientos calculados de Data Cloud o la segmentación.
Objetos de Salesforce Data Cloud frente a objetos estándar/personalizados
Antes de analizar cómo consultar datos de Data Cloud, comprendamos un poco acerca de los objetos de Salesforce Data Cloud y cómo difieren con respecto a los objetos estándar/personalizados de Salesforce Platform.
Salesforce Data Cloud tiene un modelo de datos canónico que incluye objetos de lago de datos (DLO) y objetos de modelo de datos (DMO). Puede leer acerca de cómo estos objetos se asignan entre sí y sus propósitos en la documentación de ayuda.
Los objetos de Data Cloud pueden ingerir y almacenar volúmenes de datos mucho más grandes (en la magnitud de miles de millones de registros) en comparación con los objetos estándar y personalizados regulares en la Plataforma de Salesforce. Los objetos estándar/personalizados están diseñados para casos de uso transaccional y no son adecuados para almacenar y procesar big data. Por otro lado, los objetos de Data Cloud agregan capacidades similares a las de un lago de datos .
Otra distinción clave es que los objetos de Data Cloud no admiten disparadores Synchronous Apex. Sin embargo, aún puede lograr la automatización de procesos suscribiéndose a Change Data Capture (CDC) y utilizando Flows o Apex. Lo que es común entre los objetos de la nube de datos y los objetos de la plataforma es que están construidos sobre la misma base impulsada por metadatos, lo que hace posible el uso de características de la plataforma, como Salesforce Flow, Apex y Platform Events.
Cómo consultar datos de Data Cloud en Apex
Antes de profundizar en algún código, exploremos un ejemplo de caso de uso de una aplicación de nube de datos.
Ejemplo de caso de uso y supuestos
Para nuestros ejemplos de código en esta publicación de blog, supongamos que estamos trabajando para una empresa ficticia llamada Solar Circles que captura datos de todos sus paneles solares instalados en Data Cloud. Cada mes, se generan decenas de millones de puntos de datos a partir de estos paneles. Al tener estos datos en Data Cloud, Solar Circles obtiene la capacidad de realizar análisis, utilizar técnicas de aprendizaje automático y obtener información procesable de los datos.
El código de Apex en esta publicación asume una condición importante: la nube de datos está habilitada y el código de Apex se ejecuta en la organización de la nube de datos y no en las organizaciones de Salesforce que están conectadas a la organización de la nube de datos.
Consultar datos de Data Cloud usando SQL
Para acceder a datos de objetos de Data Cloud (DLO o DMO), utilice la clase CdpQuery
(ver documentos ) en Apex. Esta clase está disponible en el espacio de nombres ConnectApi
(ver documentos ).
A continuación se muestra un fragmento de código de ejemplo que muestra cómo acceder a los datos de un objeto de nube de datos mediante una instrucción SQL.
<dx-code-block title language="apex" code-block="@AuraEnabled(cacheable=true)
public static void getSolarPanelData(String customerId) { List<Map> returnData = new List<Map>(); // Create input for query operation ConnectApi.CdpQueryInput queryInput = new ConnectApi.CdpQueryInput(); queryInput.sql = ‘SELECT * ‘ + ‘FROM Solar_Panel_Events_solar_panel_F4C03__dlm ‘ + ‘WHERE CustomerId__c = » + customerId + » ‘ + ‘ORDER BY date_time__c DESC LIMIT 50’; // Execute SQL ConnectApi.CdpQueryOutputV2 response = ConnectApi.CdpQuery.queryAnsiSqlV2( queryInput ); Map responseMetadata = new Map(); responseMetadata = response.metadata; // Parse response System.debug( ‘Number of rows in the result data set ‘ + response.rowCount ); System.debug(‘Next batch ID ‘ + response.nextBatchId); System.debug(‘Query Metadata’ + responseMetadata); for (ConnectApi.CdpQueryV2Row resultRow : response.data) { for (Object result : resultRow.rowData) { system.debug(result); } } «>
En el ejemplo anterior, estamos recuperando datos para un componente LWC personalizado en una página Lightning de caso de objeto estándar para un agente de servicio. El componente muestra datos de dispositivos recientes provenientes de los paneles instalados en el sitio del cliente.
Aspectos destacados del código
- El método toma un parámetro
customerId
, lo que indica que recupera los datos del panel solar para un cliente específico - Se crea una instancia de
ConnectApi.CdpQueryInput
llamadaqueryInput
para definir la operación de consulta. - La propiedad
queryInput.sql
se establece con una consulta SQL que selecciona todos los campos del objeto de datosSolar_Panel_Events_solar_panel_F4C03__dlm
, filtrado porCustomerId__c
- La consulta se ejecuta mediante
ConnectApi.CdpQuery.queryAnsiSqlV2(queryInput)
, que devuelve un objetoConnectApi.CdpQueryOutputV2
denominadoresponse
- El
response.metadata
se asigna aresponseMetadata
, que almacena los metadatos de la respuesta de la consulta.
Consideraciones importantes
- Apex tiene un límite de CPU de 10 segundos para transacciones sincrónicas. Data Cloud puede contener miles de millones de filas de datos. Al recuperar datos en Apex desde Data Cloud, asegúrese de agregar suficientes filtros y proporcionar contexto (como el
recordId
con el que está trabajando) para limitar la cantidad de filas y evitar alcanzar el límite de CPU de 10 segundos. - Si está recuperando una gran cantidad de datos, use Queueable Apex para ejecutar el proceso de forma asincrónica y aproveche el límite de CPU de 60 segundos.
- Recomendamos usar
queryAnsiSqlV2
(consulte los documentos ) en lugar dequeryAnsiSql
para aprovechar las solicitudes posteriores y los tamaños de respuesta más grandes para casos de uso en los que necesita extraer grandes volúmenes de datos. - Use
nextBatchAnsiSqlV2(nextBatchId)
(ver documentos ) para proporcionarbatchId
de la respuesta anterior para recuperar el siguiente conjunto de resultados. - También puede usar SOQL en lugar de SQL, pero asegúrese de obtener su SOQL usando el Explorador de datos , ya que hay funciones de SOQL que pueden no ser aplicables a los objetos de Data Cloud.
Cómo buscar información de perfil
Antes de analizar cómo buscar información de perfil de Data Cloud en Apex, debemos comprender qué es un perfil unificado.
Perfil unificado y resolución de identidad
Supongamos que Solar Circles, nuestro fabricante ficticio de paneles solares, tiene datos sobre un cliente llamado Martha en varios sistemas. Cada sistema tiene información diferente sobre ella, como diferentes direcciones de correo electrónico. Estos datos únicos se denominan puntos de contacto . Los clientes como Martha están representados por múltiples registros de contacto y perfiles específicos del sistema en varios sistemas. Esto es necesario para que cada nube y producto funcione de forma independiente, pero puede crear silos de datos.
Data Cloud proporciona una función de resolución de identidad para resolver este problema. Mediante el uso de reglas de identidad , el sistema crea perfiles individuales unificados que se pueden usar para segmentación y activaciones en varios otros sistemas.
Buscar información de perfil de Data Cloud
A continuación se muestra un código Apex de utilidad de ejemplo que busca información de perfil. Tenga en cuenta que se utiliza el método queryProfileApi
de la clase ConnectApi.CdpQuery
.
<dx-code-block title language="apex" code-block=" @AuraEnabled public static List
Aquí hay un fragmento de código de ejemplo que invoca el código de utilidad anterior al pasar los parámetros.
<dx-code-block title language="apex" code-block=" List
El código busca la información de perfil del cliente Martha en el objeto de modelo de datos UnifiedIndividual__dlm
.
Aspectos destacados del código
- El método utiliza
ConnectApi.CdpQuery.queryProfileApi()
para ejecutar la consulta de datos de perfil en la nube de datos - Los parámetros de consulta incluyen los nombres del objeto del modelo de datos (
dataModelName
), el objeto del modelo de datos secundario (childDataModelName
), el campo de clave de búsqueda (searchKey
) y el nombre del cliente (customerName
) - Se pueden proporcionar parámetros opcionales adicionales, como expresiones de igualdad, nombres de campos de objetos secundarios, la cantidad de elementos para devolver, la cantidad de filas para omitir y el orden de clasificación para el conjunto de resultados.
- La respuesta de la consulta se almacena en un objeto
ConnectApi.CdpQueryOutput
llamadoresponse
- El método devuelve
response.data
, que representa los datos recuperados de la consulta
Importante consideración
- Vuelva a verificar los nombres de campo y objeto antes de usarlos en el código de Apex, ya que, de lo contrario, el método puede generar excepciones y errores internos del servidor.
¿Cómo consultar datos de conocimientos calculados?
Los conocimientos calculados le permiten definir y calcular métricas multidimensionales en todo su estado digital en Data Cloud. Data Cloud genera información calculada al escribir SQL , de manera declarativa usando Insights Builder o usando Apex.
Streaming vs insights calculados
Hay dos tipos de información en Data Cloud: transmisión e información calculada.
Los conocimientos calculados son funciones que pueden calcular métricas en datos históricos. Se procesan en lotes. Por ejemplo, en nuestra aplicación Solar Circles, podemos tener una visión calculada que mide la potencia total generada por los paneles agrupados por cada cliente.
La información de transmisión se genera casi en tiempo real mediante el análisis del flujo continuo de datos entrantes. Estos conocimientos permiten la activación inmediata de acciones en los sistemas posteriores. Por ejemplo, la información de transmisión se puede utilizar para identificar a los clientes cuyos paneles solares generan una potencia mínima. Al aprovechar una acción de datos en la transmisión de conocimientos, podemos crear de manera proactiva un caso para dichos clientes en Salesforce Service Cloud.
Consultar datos a partir de una perspectiva calculada
Para consultar datos de las perspectivas calculadas, use el método queryCalculatedInsights
de la clase CdpQuery
. A continuación se muestra un fragmento de código de ejemplo que muestra cómo consultar datos de una perspectiva calculada conocida.
Aspectos destacados del código
- El método
queryCalculatedInsights
deConnectApi.CdpQuery
se usa para recuperar información calculada de Data Cloud. - El primer parámetro es el nombre de API de la información calculada, que debe terminar con
__cio
. Por ejemplo,<calculted insight api name>
podría reemplazarse portotalpowergenerated__cio
. - Los siguientes parámetros especifican dimensiones y medidas. Una dimensión representa un campo o atributo en el que se basa la información, mientras que una medida representa la métrica calculada. Proporcionar
null
para estos parámetros incluye todas las dimensiones y medidas disponibles. - Se puede especificar el orden de clasificación para el conjunto de resultados, pero en este fragmento de código, se establece en
null
. - Los parámetros opcionales adicionales incluyen filtrar el conjunto de resultados a un ámbito o tipo más específico y especificar la cantidad de elementos que se devolverán y la cantidad de filas que se omitirán antes de devolver los resultados.
- Los datos resultantes se almacenan en un objeto
ConnectApi.CdpQueryOutput
denominadoresponse
.
Importante consideración
- Asegúrese de proporcionar el nombre de API correcto para la información. Un nombre de API incorrecto da como resultado un error del sistema.
Conclusión
En esta publicación de blog, brindamos una descripción general de cómo puede aprovechar el poder de Salesforce Data Cloud y Apex para aprovechar los grandes datos para las empresas. Los ejemplos de código y los puntos destacados demuestran enfoques prácticos para acceder y consultar datos de objetos de Data Cloud.
La publicación también destaca las mejores prácticas y las limitaciones que se deben tener en cuenta al trabajar con Data Cloud y Apex, como administrar los límites de la CPU, utilizar el procesamiento asincrónico para grandes conjuntos de datos y garantizar la denominación correcta de la API para los conocimientos calculados.
En la siguiente parte de la serie, profundizaremos en las clases de Apex como CdpCalculatedInsight
(consulte los documentos ), CdpIdentityResolution
(consulte los documentos ) y CdpSegment
(consulte los documentos ) que se pueden usar para administrar información calculada, crear reglas de resolución de identidad y segmentación en Data Cloud mediante Apex.
Referencias adicionales
Sobre el Autor
Mohith Shrivastava es promotor de desarrollo en Salesforce con una década de experiencia en la creación de productos a escala empresarial en la plataforma de Salesforce. Actualmente se está enfocando en las herramientas para desarrolladores de Salesforce, Flow, Apex y Lightning Web Components en Salesforce. Mohith se encuentra actualmente entre los principales contribuyentes en Salesforce Stack Exchange, un foro de desarrolladores donde los desarrolladores de Salesforce pueden hacer preguntas y compartir conocimientos. Puedes seguirlo a través de su Twitter @msrivastav13 .
Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.
Agregar a Slack Suscríbete a RSS
Incrustar flujos de pantalla en el componente web Lightning
Última actualización el 19 de julio de 2023 por Rakesh Gupta
Gran idea o pregunta duradera:
- ¿Cómo incrusta un flujo de pantalla dentro de un componente web Lightning?
Objetivos:
Después de leer este blog, podrá:
- Incruste el flujo de pantalla dentro de un componente web Lightning
- Aplicar representación condicional en el componente web Lightning
- Use uiRecordApi para obtener el valor del campo del registro sin usar la clase de Apex
- y mucho más
En el pasado, escribí algunos artículos sobre Lightning Web Component . ¿Por qué no echarles un vistazo mientras estás en ello?
- Pasar datos del componente web Lightning al flujo de pantalla
- Uso del componente web Lightning para mostrar un banner de alerta
Janel Parrish trabaja como desarrollador junior en Gurukul on Cloud (GoC). Se le ha encomendado un requisito comercial para desarrollar un componente LWC con las siguientes funcionalidades:
- Debería mostrar un flujo de pantalla llamado 'parterFlow' cuando el tipo de cuenta es 'Socio tecnológico'.
- Debería presentar un flujo de pantalla llamado 'customerFlow' cuando el tipo de cuenta es 'Cliente – Directo'.
- El componente LWC debe diseñarse con la capacidad de incorporarse en la página de registro de rayos de la cuenta.
Enfoque de Campeón de Automatización (I-do):
Utilizaremos el componente lightning-flow para incrustar un flujo de pantalla en el componente lightning web. Para crear un flujo en el componente Lightning Web, establezca el atributo flowApiName del componente Lightning-Flow en el nombre de flujo que desea usar. El componente incluye botones de navegación (Atrás, Siguiente, Pausa y Finalizar) para que los usuarios naveguen dentro del flujo.
También usaremos un adaptador de cable uiRecordApi que nos permite interactuar con registros de Salesforce desde los componentes del componente web lightning sin escribir código Apex. Esta API le permite realizar operaciones como recuperar los datos de un registro o los detalles del diseño, crear, eliminar o actualizar un registro, etc. Estos son algunos de los métodos clave proporcionados por uiRecordApi :
- getRecord : este método le permite obtener datos de registro.
- getRecordCreateDefaults : este método proporciona los valores predeterminados que utiliza Salesforce al crear un nuevo registro.
- getRecordUi : obtiene los detalles de diseño de un registro, como qué campos se muestran, cómo se muestran, etc.
- createRecord : este método le permite crear un nuevo registro.
- deleteRecord – Le permite eliminar un registro.
- updateRecord : te permite actualizar un registro existente.
En el archivo de configuración XML, usaremos lightning__RecordPage como destino para permitir que el componente web de iluminación se use en una página de registro en Lightning App Builder.
Práctica guiada (nosotros hacemos):
Hay 3 pasos para resolver el requisito comercial de Janel utilizando Lightning Web Component y Screen Flow . Debemos:
- Cree un ScreenFlow (customerFlow) para manejar la solicitud del cliente
- Definir propiedades de flujo para el flujo de pantalla
- Agregue una variable de texto para almacenar el nombre de la cuenta
- Agregue una pantalla para mostrar el nombre de la cuenta desde una variable de texto
- Cree un ScreenFlow (partnerFlow) para manejar la solicitud del cliente
- Definir propiedades de flujo para el flujo de pantalla
- Agregue una variable de texto para almacenar el nombre de la cuenta
- Agregue una pantalla para mostrar el nombre de la cuenta desde una variable de texto
- Cree un componente web relámpago para mostrar los diferentes flujos de pantalla según el tipo de cuenta
Paso 1.1: Definir propiedades de flujo (customerFlow)
- Haga clic en Configuración .
- En el cuadro Búsqueda rápida, escriba Flujos .
- Seleccione Flujos , luego haga clic en Nuevo flujo .
- Seleccione el flujo de pantalla y haga clic en Crear y configurar el flujo.
- Se abrirá el diseñador de flujo para usted.
Paso 1.2: agregue una variable de texto al nombre de la cuenta de la tienda
- En Caja de herramientas , seleccione Administrador y, a continuación, haga clic en Nuevo recurso para almacenar el nombre de la cuenta.
- Ingrese la siguiente información :
- Tipo de recurso : Variable
- Nombre de API : nombre de cuenta
- Tipo de datos : Texto
- Valor predeterminado : {!$GlobalConstant.EmptyString}
- Comprobar disponible para entrada
- Comprobar disponible para la salida
- Haga clic en Listo.
Paso 1.3: agregue una pantalla para mostrar el nombre de la cuenta desde la variable de texto
- En Flow Designer, haga clic en el icono + y seleccione el elemento Pantalla .
- Ingrese la siguiente información :
- Ingrese la etiqueta, el nombre de la API se completará automáticamente.
- Haga clic en Listo.
Al final, Janel's Flow se verá como la siguiente captura de pantalla:
Una vez que todo se vea bien, realice los siguientes pasos:
- Haga clic en Guardar .
- Ingrese la etiqueta de flujo, el nombre de la API se completará automáticamente.
- Haga clic en Mostrar avanzado .
- Versión de API para ejecutar el flujo : 58
- Etiqueta de entrevista : customerFlow {!$Flow.CurrentDateTime}
- Haga clic en Guardar .
Paso 2.1: Definir propiedades de flujo (partnerFlow)
- Haga clic en Configuración .
- En el cuadro Búsqueda rápida, escriba Flujos .
- Seleccione Flujos , luego haga clic en Nuevo flujo .
- Seleccione el flujo de pantalla y haga clic en Crear y configurar el flujo.
- Se abrirá el diseñador de flujo para usted.
Paso 2.2: agregue una variable de texto al nombre de la cuenta de la tienda
- En Caja de herramientas , seleccione Administrador y, a continuación, haga clic en Nuevo recurso para almacenar el nombre de la cuenta.
- Ingrese la siguiente información :
- Tipo de recurso : Variable
- Nombre de API : nombre de cuenta
- Tipo de datos : Texto
- Valor predeterminado : {!$GlobalConstant.EmptyString}
- Comprobar disponible para entrada
- Comprobar disponible para la salida
- Haga clic en Listo.
Paso 2.3: agregue una pantalla para mostrar el nombre de la cuenta desde la variable de texto
- En Flow Designer, haga clic en el icono + y seleccione el elemento Pantalla .
- Ingrese la siguiente información :
- Ingrese la etiqueta, el nombre de la API se completará automáticamente.
- Haga clic en Listo.
Al final, Janel's Flow se verá como la siguiente captura de pantalla:
Una vez que todo se vea bien, realice los siguientes pasos:
- Haga clic en Guardar .
- Ingrese la etiqueta de flujo, el nombre de la API se completará automáticamente.
- Haga clic en Mostrar avanzado .
- Versión de API para ejecutar el flujo : 58
- Etiqueta de entrevista : flujo de socio { !$Flow.CurrentDateTime}
- Haga clic en Guardar .
Paso 3: cree un componente web Lightning para mostrar los diferentes flujos de pantalla según el tipo de cuenta
Debajo de la plantilla de componente web lightning, se muestra una tarjeta Lightning titulada Iniciar pedido . Dependiendo de si la propiedad isPartner o isCustomer es verdadera, se iniciará y mostrará el Lightning Flow correspondiente ("rakeshistomMVP__partnerFlow" o "rakeshistomMVP__customerFlow").
embedFlowToLWC.html
Utilizaremos el componente lightning-flow para incrustar un flujo de pantalla en el componente lightning web. Desglosemos el código:
- En LWC, el archivo HTML de cada componente debe envolverse con una etiqueta <plantilla> .
- <template if:true={isPartner}> y <template if:true={isCustomer}> : estas son plantillas condicionales que muestran contenido en función de la veracidad de las propiedades isPartner e isCustomer , respectivamente. El contenido dentro de estas plantillas solo se representará si la condición correspondiente es verdadera.
<plantilla> <div class="slds-m-alrededor_medio"> <lightning-card title="Iniciar pedido" icon-name="estándar:pedidos"> <div class="slds-m-alrededor_medio"> <template if:true={esSocio}> <lightning-flow onstatuschange={handleStatusChange} flow-api-name="rakeshistomMVP__partnerFlow" flow-input-variables={inputVariables}></lightning-flow> </plantilla> <template if:true={esCliente}> <lightning-flow onstatuschange={handleStatusChange} flow-api-name="rakeshistomMVP__customerFlow" flow-input-variables={inputVariables}></lightning-flow> </plantilla> </div> </tarjeta-relámpago> </div>
</plantilla>
embedFlowToLWC.js
Este código JavaScript de muestra usa el decorador @api para crear propiedades públicas. Por ejemplo, recordId es una propiedad reactiva pública que contiene el ID de la página de registro. Mientras que el decorador @wire lee los datos de Salesforce. getRecord es una función del módulo lightning/uiRecordApi que recupera un registro. accountType y accountName se importan del esquema de Salesforce.
- Las declaraciones de importación se utilizan para importar los módulos y las dependencias necesarios. LightningElement es el componente básico para crear componentes web Lightning.
- account({ error, data }) es una función que maneja la respuesta de la llamada getRecord . Si hay un error, asigna el error a this.error . Si se devuelven datos, establece this.accountName en el nombre de la cuenta y establece isPartner o isCustomer en verdadero según el tipo de cuenta.
- get inputVariables() es un método captador que devuelve una matriz de objetos, que representa variables de entrada para un flujo. En este caso, devuelve el nombre de la cuenta.
import { LightningElement, api, wire } de 'lwc';
importar { getRecord } desde 'lightning/uiRecordApi';
importar tipo de cuenta desde '@salesforce/schema/Account.Type';
importar nombre de cuenta desde '@salesforce/schema/Account.Name'; exportar la clase predeterminada FlowLauncher extiende LightningElement { @api recordId; nombre de la cuenta; esSocio = falso; esCliente = falso; @wire(getRecord, { recordId: '$recordId', campos: [nombre de cuenta, tipo de cuenta] }) cuenta ({ error, datos }) { si (error) { this.error = error; } más si (datos) { this.accountName = data.fields.Name.value; if(data.fields.Type.value === 'Socio tecnológico') { this.isPartner = verdadero; this.isCustomer = false; } else if(data.fields.Type.value === 'Cliente - Directo') { this.isCustomer = true; this.isPartner = false; } } } obtener variables de entrada () { devolver [ { nombre: 'nombre de cuenta', tipo: 'Cadena', valor: este.nombreDeCuenta } ]; } handleStatusChange(evento) { if(evento.detalle.estado === 'FINALIZADO') { //Acción después de que un flujo haya terminado } }
}
embedFlowToLWC.js-meta.xml
El elemento isExposed se establece en verdadero, lo que hace que el componente esté disponible para su uso en herramientas como Lightning App Builder o Flow Builder.
El elemento de objetivos se usa para especificar dónde se puede usar su componente. En este caso, la etiqueta lightning__RecordPage significa que este componente está diseñado para usarse en una página de registro en Lightning App Builder.
<?versión xml=”1.0″ codificación=”UTF-8″?><LightningComponentBundle xmlns=”http://soap.sforce.com/2006/04/metadata”><apiVersion>58.0</apiVersion><isExposed>verdadero</isExposed><target>relámpago__RecordPage</target></objetivos></LightningComponentBundle>
Prueba de concepto
Evaluación formativa:
¡Quiero saber de ti!
¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.
Seguir leyendoPasar datos del componente web Lightning al flujo de pantalla
Última actualización el 17 de julio de 2023 por Rakesh Gupta
Gran idea o pregunta duradera:
- ¿Cómo pasa datos del componente web lightning al flujo de pantalla principal?
Objetivos:
Después de leer este blog, podrá:
- Incruste un componente web relámpago dentro del flujo de pantalla
- Pase los datos del componente web lightning a una variable de flujo
- Interactuar con el componente web lightning y los elementos de flujo de pantalla en la misma pantalla
- y mucho más
En el pasado, escribí algunos artículos sobre Lightning Web Component . ¿Por qué no echarles un vistazo mientras estás en ello?
- Uso del componente web Lightning para mostrar un banner de alerta
- Obtenga el Id. de registro y el nombre de la API del objeto en el componente web Lightning
Janel Parrish trabaja como desarrollador junior en Gurukul on Cloud (GoC). Janel tiene un requisito comercial para hacer lo siguiente:
- Desarrollar un componente LWC capaz de recibir entradas de latitud y longitud.
- Pase los valores introducidos a los componentes de flujo de pantalla correspondientes.
Construir pantallas con componentes reactivos
Con la función Crear pantallas con componentes interactivos (actualmente en versión beta), ahora puede habilitar la interacción directa entre un componente web Lightning y otros elementos de flujo en la misma pantalla.
Anteriormente, no existía una disposición directa para la interacción dinámica entre un componente web Lightning y los elementos de flujo. Como resultado, los usuarios tenían que navegar a la siguiente pantalla para ver los datos pasados por el componente web Lightning en Screen Flow.
Enfoque de Campeón de Automatización (I-do):
Al crear el componente web Lightning, también utilizaremos el evento FlowAttributeChangeEvent . Esto permitirá que un componente controle la navegación del flujo y notifique al flujo los cambios en los valores de los atributos.
Los eventos FlowAttributeChangeEvent solo se admiten en componentes donde el destino es lightning__FlowScreen .
Práctica guiada (nosotros hacemos):
Hay 2 pasos para resolver el requisito empresarial de Janel utilizando Lightning Web Component y Screen Flow . Debemos:
- Cree un componente web Lightning de ubicación de entrada para Screen Flow
- Pasos de flujo de Salesforce
- Definir propiedades de flujo para el flujo de pantalla
- Agregue una pantalla para mostrar el componente personalizado de ubicación de entrada
- Agregar un componente de número de entrada para mostrar la latitud desde la ubicación de entrada Componente LWC
- Agregar un componente de número de entrada para mostrar la longitud desde la ubicación de entrada Componente LWC
Paso 1: Cree un componente web Lightning de ubicación de entrada para Screen Flow
En primer lugar, cree un componente web Lightning de ubicación de entrada con el siguiente código. El componente lightning-input-location representa un campo de geolocalización compuesto que acepta valores de latitud y longitud introducidos por el usuario, siendo ambos coordenadas geográficas expresadas en grados decimales. Le permite identificar ubicaciones utilizando estas coordenadas.
El rango aceptable para la latitud está entre -90 y 90, mientras que la longitud acepta valores de -180 a 180. Cualquier entrada más allá de estos rangos especificados genera un mensaje de error. Este ejemplo muestra un campo de geolocalización compuesto, que muestra una latitud de 27,70750 y una longitud de -122,3948370.
Si no sabe cómo crear un componente Lightning, consulte esta guía para desarrolladores, Crear un componente web Lightning .
lwcToScreenFlow.html
Utilizaremos el componente de ubicación de entrada de rayos para aceptar valores de latitud y longitud. Desglosemos el código:
- En LWC, el archivo HTML de cada componente debe envolverse con una etiqueta <plantilla> .
- latitude={latitude} :- Esto vincula la propiedad de latitud de la clase JavaScript de LWC con el atributo de latitud del componente.
- longitude={longitude} :- Similar a la latitud, esto une la propiedad de longitud de la clase JavaScript de LWC con el atributo de longitud del componente.
- onchange={handleChange} :- Esto configura un detector de eventos en el componente. Cada vez que cambia el valor del componente (ya sea latitud o longitud), se llama al método handleChange de la clase JavaScript de LWC.
<plantilla> <relámpago-entrada-ubicación etiqueta="Coordenadas predeterminadas" latitud={latitud} longitud={longitud} onchange={handleChange}> </ubicación-de-entrada-del-relámpago>
</plantilla>
lwcToScreenFlow.js
Este código JavaScript de muestra utiliza el decorador @api para crear propiedades públicas, es decir, accesibles desde otros componentes o utilizadas en plantillas HTML. Por ejemplo, @api latitude y @api longitude declaran dos propiedades públicas.
- FlowAttributeChangeEvent crea y distribuye el evento personalizado que transfiere datos del componente web Lightning a un flujo.
- handleChange(event) es un método de controlador de eventos que se llama cuando ocurre un evento de cambio en el componente lightning-input-location en la plantilla HTML de LWC.
- this.latitude = event.target.latitude y this.longitude = event.target.longitude , estas líneas actualizan las propiedades de latitud y longitud con los valores del objetivo del evento (el componente lightning-input-location).
- [“latitud”, “longitud”].forEach((loc) => this.dispatchEvent(new FlowAttributeChangeEvent(loc, this[loc]))) , esta línea recorre una matriz que contiene cadenas de latitud y longitud, y para cada uno de estos, envía un nuevo FlowAttributeChangeEvent.
importar { LightningElement, api } desde 'lwc';
importar {FlowAttributeChangeEvent} desde 'lightning/flowSupport'; exportar la clase predeterminada LwcToScreenFlow extiende LightningElement { @api latitud; @api longitud; handleChange(evento){ esta.latitud = evento.objetivo.latitud; this.longitude = event.target.longitude; ["latitud", "longitud"].forEach((loc) => this.dispatchEvent(new FlowAttributeChangeEvent(ubicación, esta[ubicación])) ); }
}
lwcToScreenFlow.js-meta.xml
El elemento isExposed se establece en verdadero, lo que hace que el componente esté disponible para su uso en herramientas como Lightning App Builder o Flow Builder. El elemento de objetivos se usa para especificar dónde se puede usar su componente. En este caso, la etiqueta lightning__FlowScreen significa que este componente está diseñado para usarse en las pantallas de Salesforce Flow.
Los elementos targetConfigs y targetConfig le permiten definir propiedades que se pueden establecer en el contexto del constructor. En este caso, las propiedades son latitud y longitud . Ambos están configurados para ser del tipo Integer y tienen la función de outputOnly , lo que significa que se pueden configurar en el flujo, pero el usuario no puede modificarlos dentro del componente. Estas propiedades se pueden usar para pasar datos del LWC al flujo.
<?versión xml="1.0" codificación="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadatos"> <apiVersion>58.0</apiVersion> <isExposed>verdadero</isExposed> <objetivos> <target>relámpago__FlowScreen</target> </objetivos> <configuraciones de destino> <targetConfig objetivos="relámpago__FlowScreen"> <property label="Latitude" name="latitude" type="Integer" role="outputOnly"/> <property label="Longitud" name="longitud" type="Integer" role="outputOnly"/> </targetConfig> </configuraciones de destino>
</LightningComponentBundle>
Paso 2.1: Definir propiedades de flujo
- Haga clic en Configuración .
- En el cuadro Búsqueda rápida, escriba Flujos .
- Seleccione Flujos , luego haga clic en Nuevo flujo .
- Seleccione el flujo de pantalla y haga clic en Crear y configurar el flujo.
- Se abrirá el diseñador de flujo para usted.
Paso 2.2: agregue una pantalla para mostrar el componente personalizado de ubicación de entrada
- En Flow Designer, haga clic en el icono + y seleccione el elemento Pantalla .
- Ingrese la siguiente información :
- Ingrese la etiqueta, el nombre de la API se completará automáticamente.
- Haga clic en Listo.
Paso 2.3: Agregue un componente de número de entrada para mostrar la latitud desde el componente LWC de ubicación de entrada
- En la sección Entrada en Elemento de pantalla , arrastre y suelte el componente Número en la pantalla.
- Ingrese la siguiente información :
- Ingrese la etiqueta, el nombre de la API se completará automáticamente.
- Valor predeterminado : {!lwcToFlow.latitude}
- Haga clic en Listo.
Paso 2.4: Agregar un componente de número de entrada para mostrar la longitud desde la ubicación de entrada Componente LWC
- En la sección Entrada en Elemento de pantalla , arrastre y suelte el componente Número en la pantalla.
- Ingrese la siguiente información :
- Ingrese la etiqueta, el nombre de la API se completará automáticamente.
- Valor predeterminado : {!lwcToFlow.longitude}
- Haga clic en Listo.
Al final, Janel's Flow se verá como la siguiente captura de pantalla:
Una vez que todo se vea bien, realice los siguientes pasos:
- Haga clic en Guardar .
- Ingrese la etiqueta de flujo, el nombre de la API se completará automáticamente.
- Haga clic en Mostrar avanzado .
- Versión de API para ejecutar el flujo : 58
- Etiqueta de entrevista : Pase de Screen Flow a LWC {!$Flow.CurrentDateTime}
- Haga clic en Guardar .
Prueba de concepto
Evaluación formativa:
¡Quiero saber de ti!
¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.
Seguir leyendoComenzando 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.
…
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
Automatización y Salesforce DevOps: una receta para el desarrollo acelerado
Última actualización el 3 de julio de 2023 por Rakesh Gupta
En el acelerado mundo empresarial actual, la eficiencia en el desarrollo de software es vital. La automatización ha surgido como una solución clave, agilizando los procesos para aumentar la productividad y liberar la innovación. Salesforce no es inmune a estos desafíos y complejidades de toda la industria.
Ingrese a DevOps. DevOps se ha convertido en un elemento esencial en el desarrollo de software, incluido Salesforce. Mediante la colaboración de desarrolladores, administradores y partes interesadas, Salesforce DevOps crea un entorno perfecto para la automatización.
La combinación de automatización y Salesforce DevOps cosecha múltiples beneficios: menos errores, preparación más rápida para el mercado, una canalización de lanzamiento optimizada, menos repeticiones, calidad de código superior y mecanismos de retroalimentación más fuertes. Mejora la eficiencia operativa y la velocidad de implementación en el ecosistema de Salesforce, fomentando un desarrollo ágil.
Este artículo explora la intersección de la automatización y Salesforce DevOps, los beneficios de su sinergia y formas prácticas de aplicarla para un desarrollo más rápido en sus operaciones de Salesforce. Tanto si es un profesional de Salesforce como un novato, este artículo ofrece información para reforzar su enfoque de DevOps de Salesforce con la automatización.
Descripción de DevOps de Salesforce
Antes de profundizar en cómo se cruzan Salesforce DevOps y la automatización, es fundamental comprender lo que implica Salesforce DevOps.
DevOps, una combinación de ' Desarrollo ' y ' Operaciones ', es un conjunto de prácticas diseñadas para fusionar el desarrollo de software, el control de calidad y las operaciones de TI en un proceso unificado y fluido. En un contexto de Salesforce , DevOps es la unión de estos principios con las sólidas capacidades de CRM de Salesforce, con el objetivo de facilitar procesos de desarrollo e implementación más fluidos y rápidos.
En esencia, Salesforce DevOps incorpora principios como:
- Integración continua y entrega continua (CI/CD),
- responsabilidades compartidas,
- Acción centrada en el cliente,
- Cultura de colaboración.
El objetivo es crear un entorno cohesivo donde los administradores, desarrolladores y otras partes interesadas puedan trabajar en armonía, lo que lleva a ciclos de desarrollo más cortos, tiempo de comercialización más rápido y software de alta calidad.
Sin embargo, a pesar de las ventajas de Salesforce DevOps, los desarrolladores a menudo enfrentan desafíos. Si bien es un activo, las características integrales y la capacidad de personalización de Salesforce pueden complicar el proceso de desarrollo e implementación .
Los desafíos difieren de un equipo a otro y de un caso de uso a otro, pero estos son algunos de los más comunes:
- Las diferencias en los entornos,
- Administrar dependencias de código,
- Manejo de metadatos,
- Alinear el trabajo de diferentes equipos
- Necesidad de mantener la calidad del código
- Estabilidad del sistema mientras entrega a gran velocidad
Aquí es donde la automatización viene al rescate. La automatización, en esencia, es el uso de la tecnología para realizar tareas con una intervención humana reducida. Cuando se aplica a Salesforce DevOps , puede aliviar significativamente estos desafíos.
Las pruebas automatizadas, por ejemplo, pueden mejorar la calidad del código al identificar errores al principio del proceso de desarrollo. Las implementaciones automatizadas pueden sincronizar metadatos y código en diferentes entornos, lo que reduce los errores de implementación. Del mismo modo, la automatización de tareas repetitivas puede liberar el tiempo de los desarrolladores, lo que les permite concentrarse en actividades que agregan más valor, como el desarrollo de funciones o el diseño de sistemas.
Además, la automatización fomenta un proceso de desarrollo más ágil, lo que permite actualizaciones periódicas e incrementales en lugar de implementaciones rígidas de Salesforce. Este aspecto acorta el ciclo de desarrollo y facilita la reversión de los cambios si algo sale mal, lo que aumenta la estabilidad general del sistema.
Aprovechamiento de la automatización para el desarrollo acelerado de Salesforce
Acelerar el desarrollo de Salesforce a través de la automatización implica identificar tareas manuales y repetitivas, implementar herramientas y marcos de automatización adecuados y perfeccionar los procesos para mejorar la eficiencia y reducir los cuellos de botella. Profundicemos en cada una de estas áreas con más detalle:
Identificación de tareas manuales y repetitivas
El primer paso hacia la automatización es reconocer qué tareas están ralentizando su velocidad de desarrollo.
Estos típicamente incluyen:
- Revisiones de código,
- Pruebas,
- Despliegue,
- Configuración,
- Migración de datos.
Suelen implicar procesos manuales tediosos que consumen tiempo y son propensos a errores. Al identificar estas tareas, puede identificar dónde la automatización proporcionará el mayor beneficio y tendrá un impacto significativo en la velocidad y la eficiencia de su desarrollo.
Implementación de herramientas y marcos de automatización
Una vez que haya identificado las áreas que podrían beneficiarse de la automatización, es hora de elegir e implementar las herramientas y los marcos adecuados. Salesforce ofrece varias funciones de automatización integradas, como Apex y Salesforce Flow .
Sin embargo, otras herramientas pueden ser más adecuadas para tareas complejas, como Salesforce DX para la gestión del ciclo de vida del desarrollo, o Jenkins y CircleCI para la integración y entrega continuas. Al seleccionar estas herramientas, asegúrese de que se alineen con las habilidades de su equipo y los requisitos específicos de su entorno de Salesforce.
Optimización de procesos para mejorar la eficiencia
La automatización no se trata solo de herramientas y tecnología. También se trata de refinar sus procesos. Revise su flujo de trabajo de desarrollo actual para identificar posibles cuellos de botella y áreas de mejora.
Por ejemplo:
- ¿Cómo se informan y rastrean los errores?
- ¿Con qué frecuencia se realizan las implementaciones y cómo se programan?
- ¿Cómo se recopilan los comentarios y cómo se actúa en consecuencia?
Simplificar estos procesos puede mejorar drásticamente la eficiencia de su equipo, permitiéndole aprovechar al máximo sus esfuerzos de automatización.
Vale la pena mencionar que los beneficios de la automatización van más allá de acelerar el desarrollo. La automatización también puede mejorar la calidad del código al detectar errores temprano a través de pruebas automatizadas. Puede reducir los errores de implementación al sincronizar el código en diferentes entornos.
Y al liberar a los desarrolladores de las tareas rutinarias, les permite concentrarse más en el desarrollo de características y el diseño del sistema, fomentando así la innovación y mejorando el valor entregado a los usuarios finales.
Pruebas automatizadas para el desarrollo acelerado de Salesforce
Las pruebas son un componente crucial de cualquier ciclo de vida de desarrollo, y su importancia se multiplica para acelerar el desarrollo de Salesforce. Las pruebas periódicas y exhaustivas ayudan a identificar errores y problemas desde el principio, lo que reduce el riesgo de reparaciones costosas y lentas en el futuro. Asegura la calidad y la confiabilidad de la aplicación, lo que a su vez contribuye a mejorar las experiencias de los usuarios y los resultados comerciales.
La automatización puede potenciar este proceso de prueba. Las pruebas automatizadas implican el uso de herramientas de software para ejecutar pruebas y comparar los resultados reales con los resultados esperados. La implementación de una estrategia de prueba automatizada para las aplicaciones de Salesforce puede acelerar drásticamente el proceso de desarrollo, lo que garantiza implementaciones más rápidas, eficientes y confiables con menos errores.
Existen numerosas herramientas disponibles para pruebas automatizadas en Salesforce. Apex proporciona soporte integrado para pruebas unitarias, mientras que herramientas como Selenium, Provar y AssureClick pueden automatizar las pruebas de IU. Jest es una excelente opción para probar Lightning Web Components (LWC). Al seleccionar una herramienta, considere las necesidades específicas de su aplicación, la experiencia de su equipo y la complejidad y frecuencia de sus requisitos de prueba.
Seguir las mejores prácticas es esencial para aprovechar todo el potencial de las pruebas automatizadas. Estas son algunas de las mejores prácticas para pruebas automatizadas eficientes y completas en el desarrollo de Salesforce:
- Apunte a una alta cobertura de prueba : asegúrese de probar todas las partes de su aplicación. Salesforce requiere una cobertura de código mínima del 75 %, pero apuntar a una mayor cobertura puede brindar más confianza en la confiabilidad de la aplicación.
- Cree pruebas repetibles y autónomas : las pruebas deben poder ejecutarse en cualquier entorno y no deben basarse en datos de pruebas anteriores. Esto garantiza que cada prueba valide una función específica de forma independiente.
- Mantenga sus conjuntos de pruebas : a medida que su aplicación evolucione, sus pruebas también deberían hacerlo. Revise y actualice regularmente sus pruebas para asegurarse de que reflejen con precisión el estado actual de su aplicación.
- Implemente diferentes niveles de prueba : combine pruebas unitarias, pruebas de integración y pruebas de interfaz de usuario para validar todos los aspectos de su aplicación. Cada nivel de prueba proporciona una perspectiva diferente sobre la funcionalidad de la aplicación.
- Priorizar la legibilidad de la prueba : las pruebas a menudo sirven como documentación, explicando lo que se supone que debe hacer una parte del código. Asegúrese de que sus pruebas estén bien estructuradas y claramente escritas para que sean fáciles de entender para los demás.
- Incorpore las pruebas al principio del proceso de desarrollo : no espere hasta el final del ciclo de desarrollo para comenzar las pruebas. La incorporación de pruebas de manera temprana y frecuente le permite detectar y solucionar problemas rápidamente.
Integración e implementación continuas con automatización
La integración continua y la implementación continua (CI/CD) forman un pilar central de Salesforce DevOps. CI/CD está diseñado para reducir errores y acelerar el desarrollo a través de la integración continua de código y procesos de implementación automatizados y consistentes.
En el contexto de Salesforce, CI fusiona periódicamente los cambios de código en un repositorio compartido, a menudo varias veces al día. Cada integración se verifica automáticamente mediante la creación de la aplicación y la ejecución de pruebas, lo que garantiza que los nuevos cambios se integren perfectamente con el código existente y no introduzcan errores.
Por otro lado, CD implementa automáticamente esos cambios en la producción, lo que garantiza que las nuevas características, configuraciones y mejoras lleguen a los usuarios finales lo más rápido posible. En Salesforce, CD puede implicar la implementación de cambios en diferentes entornos, como entornos de desarrollo, prueba, ensayo y producción.
La automatización es clave para lograr procesos impecables de CI/CD de Salesforce. A través de la automatización, puede optimizar y estandarizar los pasos involucrados en:
- Creación, prueba e implementación de aplicaciones de Salesforce,
- Reducir el potencial de error humano
- Acelerar el ciclo de desarrollo general.
La automatización del proceso de compilación garantiza que los cambios en el código se integren y validen de manera constante. Las pruebas automatizadas, como comentamos anteriormente, verifican la integridad y la calidad del nuevo código. La automatización del proceso de implementación ayuda a sincronizar el código y los cambios de configuración en diferentes entornos, lo que garantiza que todos los equipos de DevOps trabajen con la versión más reciente y precisa de la aplicación.
Control de versiones y automatización de la gestión de cambios
En el desarrollo de Salesforce, el control de versiones y la gestión de cambios son fundamentales para mantener la integridad, coherencia y calidad de su aplicación.
El control de versiones, una parte integral del desarrollo de software, implica administrar y rastrear diferentes versiones de su base de código. Le permite ver los cambios a lo largo del tiempo, volver a las versiones anteriores cuando sea necesario y administrar el código de varios desarrolladores al mismo tiempo.
La gestión de cambios se refiere a la gestión y el seguimiento de los cambios del sistema, incluidos los cambios de configuración, las modificaciones de código y las implementaciones de nuevas funciones.
La automatización de estos procesos puede mejorar su eficiencia y confiabilidad en el desarrollo de Salesforce.
- El control de versiones automatizado permite una integración de código más fluida de diferentes desarrolladores, lo que reduce el riesgo de conflictos y errores.
- La gestión de cambios automatizada asegura que todas las modificaciones a su sistema sean rastreadas y verificadas con precisión, mejorando la responsabilidad y facilitando el diagnóstico de cualquier problema que surja.
Varias herramientas pueden ayudar a automatizar el control de versiones y la gestión de cambios en Salesforce. Los sistemas de control de versiones (VCS) como Git permiten un control de versiones efectivo. Facilita el seguimiento de los cambios en la base del código, lo que ayuda a mantener la integridad del código.
Las herramientas de DevOps como Copado o Gearset pueden ayudar a automatizar el seguimiento y la implementación de cambios en diferentes entornos para la gestión de cambios. Brindan una visibilidad integral de su historial de cambios, lo que le permite administrar los cambios de manera más efectiva y mantener la estabilidad de su aplicación.
Automatización de la supervisión y el tratamiento de errores
En el ámbito vertiginoso del desarrollo de Salesforce, el papel de la automatización se extiende más allá de la creación, prueba e implementación. El monitoreo automatizado y el manejo de errores son igualmente importantes para mantener la salud de la aplicación y corregir rápidamente cualquier problema.
El monitoreo automatizado implica el uso de herramientas para realizar un seguimiento constante del rendimiento, el uso y el estado general de sus aplicaciones de Salesforce. Este enfoque proactivo permite a los equipos de desarrollo identificar y abordar posibles problemas antes de que afecten a los usuarios.
El manejo proactivo de errores va de la mano con el monitoreo automatizado. En lugar de esperar a que se informen los problemas, el manejo proactivo de errores implica el uso de sistemas automatizados para identificar y, a menudo, resolver los problemas tan pronto como ocurran. Las notificaciones de error automatizadas aseguran que su equipo esté al tanto de cualquier problema al instante, lo que permite una respuesta rápida, minimiza el tiempo de inactividad y reduce la posibilidad de errores costosos.
La implementación de estas herramientas de automatización en Salesforce DevOps implica el uso estratégico de recursos como Monitoreo de eventos de Salesforce, que proporciona un flujo de eventos de auditoría de aplicaciones de su organización, y herramientas de Monitoreo y advertencia de errores, que pueden notificarle automáticamente sobre errores o excepciones.
Conclusión
La automatización combinada con las prácticas de Salesforce DevOps ofrece una poderosa estrategia para acelerar el desarrollo y mejorar la calidad del software. Es una receta para el éxito en el vertiginoso panorama digital actual.
Para implementar la automatización en su desarrollo de Salesforce, comience por identificar las tareas repetitivas que podrían automatizarse. Luego, implemente herramientas adecuadas para tareas como integración continua, pruebas automatizadas, control de versiones y monitoreo de aplicaciones. Agilice cualquier proceso manual junto con la implementación de estas herramientas, creando un flujo de trabajo de desarrollo eficiente y efectivo.
La adopción de la automatización en Salesforce DevOps acelera el desarrollo y refuerza la confiabilidad y el valor de sus aplicaciones. A medida que el ecosistema de Salesforce continúa evolucionando, el papel de la automatización crecerá aún más, dando forma al futuro del desarrollo de Salesforce.
Este artículo fue escrito por Sam Hops. Es redactora de contenido para una revista digital que cubre temas relacionados con el diseño, el comercio electrónico, el marketing digital y el espíritu empresarial. Sam es un apasionado de todo lo relacionado con el marketing digital, pero tiene un interés particular en el diseño gráfico, el SEO y las redes sociales.
Evaluación formativa:
¡Quiero saber de ti!
¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.
Seguir leyendoIntegración de API de zona horaria de Salesforce y Google: traducción de coordenadas a información de zona horaria
Última actualización el 29 de junio de 2023 por Rakesh Gupta
Gran idea o pregunta duradera:
- ¿Cómo puede aprovechar la API de zona horaria de Google para actualizar automáticamente la información de zona horaria de un cliente potencial en función de sus coordenadas geográficas?
Objetivos:
Después de leer este blog, podrá:
Jestilla Zetkin se desempeña actualmente como arquitecta de Salesforce en Gurukul On Cloud (GoC). El Director Comercial le ha confiado a Jestilla un desafío único. El objetivo es asegurarse de que, en el momento de la creación, los prospectos de Salesforce (creados a través de Web-to-lead) reciban los detalles exactos de la zona horaria, que se determinan en función de sus respectivas coordenadas geográficas.
- El caso de uso comercial requiere que usemos la API de zona horaria de Google para actualizar automáticamente cuatro campos específicos en los clientes potenciales:
- dstOffset (la compensación del horario de verano en segundos)
- rawOffset (el desplazamiento de la hora universal coordinada para la zona horaria de la ubicación dada)
- timeZoneId (una cadena que identifica de forma única la zona horaria)
- y timeZoneName (el nombre largo de la zona horaria)
- En caso de una respuesta fallida, instituya una acción de contingencia para crear una tarea para el propietario designado del cliente potencial.
¿Qué es la API de zona horaria de Google?
Hay muchas posibilidades de que su base de clientes esté repartida en varias zonas horarias. Este factor puede influir en gran medida en sus interacciones con ellos, especialmente al programar llamadas, reuniones o enviar mensajes automáticos. La plataforma de Salesforce ofrece un entorno altamente adaptable para almacenar y administrar datos de clientes, pero de forma predeterminada, no proporciona una forma de registrar automáticamente la zona horaria del cliente potencial en función de sus coordenadas geográficas.
La API de zona horaria de Google es un servicio ofrecido por Google como parte de su plataforma Google Maps. La API proporciona datos de zona horaria para cualquier ubicación en todo el mundo en función de las coordenadas de latitud y longitud. Este servicio puede ser particularmente útil para los desarrolladores que necesitan ajustar la comunicación de acuerdo con la ubicación geográfica de un cliente potencial o contacto o para empresas que operan en diferentes zonas horarias.
La API de zona horaria proporciona la siguiente información:
- El ID de la zona horaria , según lo define la base de datos de zonas horarias de la IANA (por ejemplo, America/New_York ).
- El nombre de la zona horaria (por ejemplo, hora de verano del este ).
- La diferencia horaria con respecto a la hora universal coordinada (UTC) sin tener en cuenta el horario de verano (rawOffset).
- El desfase horario debido al horario de verano (dstOffset).
Tenga en cuenta que la API de zona horaria de Google está sujeta a cargos, por lo que es importante comprender las implicaciones de costos antes de implementarla.
¿ Cómo funciona la API de zona horaria de Google?
La API de zona horaria de Google funciona tomando coordenadas de latitud y longitud y devolviendo datos de zona horaria en formato JSON. Aquí hay un ejemplo básico de cómo usarlo.
La siguiente solicitud HTTP GET obtiene información de zona horaria para una ubicación en la latitud 40.712776 y longitud -74.005974 (ciudad de Nueva York), y asume que está realizando la solicitud en una determinada marca de tiempo (marca de tiempo UNIX).
https://maps.googleapis.com/maps/api/timezone/json?location=40.712776,-74.005974×tamp=1458000000&key=YOUR_API_KEY
En la URL de solicitud anterior, reemplace YOUR_API_KEY con su clave API real.
Aquí hay una respuesta de muestra en formato JSON que la API podría devolver:
{ "dstOffset": 3600, "compensación sin procesar": -18000, "estado": "OK", "timeZoneId": "América/Nueva_York", "timeZoneName" : "Hora de verano del Este" }
La respuesta incluye la siguiente información:
- dstOffset : La compensación del horario de verano en segundos. Será cero si la zona horaria no está en el horario de verano durante la marca de tiempo especificada.
- rawOffset : el desplazamiento de UTC (sin contar el horario de verano) en segundos.
- estado : una cadena que indica el estado de la solicitud. “OK” significa que la solicitud fue exitosa.
- timeZoneId : una cadena que contiene el ID "tz" de la zona horaria (por ejemplo, "América/Nueva_York").
- timeZoneName : una cadena que contiene el nombre de forma larga de la zona horaria (por ejemplo, "hora de verano del este").
Recuerde, en la URL de solicitud, se requiere el parámetro de marca de tiempo y el parámetro de ubicación espera coordenadas de latitud y longitud.
- Marca de tiempo : el tiempo deseado en segundos desde la medianoche del 1 de enero de 1970 UTC. La API de zona horaria utiliza la marca de tiempo para determinar si se debe aplicar o no el horario de verano, según la zona horaria de la ubicación.
- Ubicación : una tupla de latitud, longitud separada por comas, ubicación = 40.712776, -74.005974, que representa la ubicación para buscar.
Además, no olvide incluir su clave API.
Beneficios de usar la API de zona horaria de Google
La API de zona horaria de Google ofrece una serie de beneficios significativos, especialmente para desarrolladores y empresas que necesitan operar en diferentes zonas horarias. Estos son algunos de los beneficios clave:
- Precisión : la API de zona horaria de Google proporciona datos de zona horaria precisos para cualquier ubicación en todo el mundo. Tiene en cuenta tanto la zona horaria 'sin procesar' como el horario de verano, lo que garantiza que siempre tenga la hora local correcta.
- Facilidad de uso : la API es fácil de usar y solo requiere la latitud y la longitud como entradas. Devuelve datos en un formato JSON estructurado, que es fácil de analizar y usar en varias aplicaciones.
- Cobertura global : la API proporciona datos de zona horaria para ubicaciones en todo el mundo, lo que la hace útil para empresas globales y aplicaciones con bases de usuarios internacionales.
- Confiabilidad : como servicio proporcionado por Google, es altamente confiable, lo que garantiza que tenga acceso constante a los datos de la zona horaria cuando los necesite.
- Integración : se puede integrar en una variedad de aplicaciones y plataformas, incluidas aplicaciones móviles, servicios web y plataformas de CRM como Salesforce. Esto permite funcionalidades como la programación de comunicaciones en diferentes franjas horarias, etc.
- Información actualizada : Google actualiza continuamente sus bases de datos, lo que garantiza que los datos devueltos por la API de zona horaria, como los cambios de horario de verano, estén siempre actualizados.
Al aprovechar estos beneficios, las empresas pueden mejorar la experiencia del cliente, aumentar la eficiencia operativa y garantizar un registro de datos preciso, entre otras ventajas.
Antes de comenzar a usar la API de zona horaria, necesita un proyecto con una cuenta de facturación y la API de zona horaria habilitada. Aquí hay una guía paso a paso para configurar su proyecto de Google Cloud y habilitar la API de zona horaria:
Paso 1: crea o selecciona tu proyecto
- Navegue a Google Cloud Console .
- Si ha creado un proyecto anteriormente, puede seleccionarlo de la lista desplegable en la parte superior. De lo contrario, haga clic en Nuevo proyecto en la parte superior derecha.
- Asigne un nombre a su proyecto y, opcionalmente, también puede editar el ID del proyecto.
- Haga clic en Crear para crear el proyecto.
Paso 2: configurar una cuenta de facturación
Debe vincular una cuenta de facturación a su proyecto para usar la API de zona horaria de Google. Así es cómo:
- En Google Cloud Console, abra el menú del lado izquierdo de la consola y haga clic en Facturación .
- Si tiene una o más cuentas de facturación, elija una cuenta y asóciela con su proyecto. De lo contrario, haga clic en Crear cuenta , complete el formulario para crear una nueva cuenta de facturación y luego asóciela con su proyecto.
Paso 3: habilite la API de zona horaria
Una vez que haya configurado su proyecto y su cuenta de facturación, puede habilitar la API de zona horaria.
- En Google Cloud Console, abra el menú del lado izquierdo de la consola y vaya a API y servicios | biblioteca
- En la biblioteca de API, busque API de zona horaria y selecciónela.
- En la página de la API de zona horaria, haga clic en Habilitar .
Paso 4: Genere su clave API
Finalmente, necesita una clave de API para autenticar sus solicitudes en la API de zona horaria.
- En Google Cloud Console, abra el menú del lado izquierdo de la consola y vaya a API y servicios | Cartas credenciales.
- Haga clic en el botón + CREAR CREDENCIALES en la parte superior y seleccione Clave API .
- Su nueva clave de API se creará y se mostrará. Cópielo y guárdelo de forma segura. Necesitará esta clave para realizar solicitudes a la API de zona horaria.
Ahora, su proyecto de Google Cloud está todo configurado y puede comenzar a usar la API de zona horaria de Google.
👉 Si bien la API de zona horaria es compatible con OAuth 2.0 y la cuenta de servicio para la autenticación, esta guía se enfoca en el método de clave de API más simple por razones de brevedad. Si necesita un método de autenticación más seguro o complejo, consulte la documentación de autenticación oficial de Google.
Enfoque de Campeón de Automatización (I-do):
Si bien esto se puede resolver utilizando varias herramientas de automatización como Apex Trigger y otras, utilizaremos Salesforce Flow y la función de flujo HTTP Callout (GET) recientemente introducida .
HTTP Callout extrae o envía datos entre la base de datos de Salesforce y un sistema externo a través de Flow Builder sin usar código. Puede configurar integraciones directas según sea necesario sin tener que trabajar con un desarrollador o llamar a una herramienta de middleware, como Mulesoft. Después de configurar la acción de llamada HTTP en un flujo, Flow Builder genera automáticamente un registro de servicio externo , una acción invocable y una clase de Apex que puede usar para crear un recurso definido por Apex para flujos. A continuación, puede utilizar la salida de datos de la solicitud de la API como entrada en Flow Builder y en Salesforce.
Puede usar HTTP Callout para conectar un flujo a una variedad de API.
- Obtener información de direcciones usando una API de mapa
- Obtén las condiciones meteorológicas con una API de servicios meteorológicos
- Genere el código de barras con una API de servicio de código de barras
- Obtenga información de autorización de pago con una API de procesamiento de pagos
- y mucho más
Antes de discutir la solución, permítame mostrarle un diagrama del proceso a un alto nivel. Dedique unos minutos a revisar el siguiente diagrama de flujo para comprenderlo.
Comencemos a construir este proceso de automatización.
Práctica guiada (nosotros hacemos):
Hay 3 pasos para resolver el requisito empresarial de Jestilla mediante Record-Triggered After-Save Flow . Debemos:
- Cree campos personalizados en el cliente potencial para almacenar la respuesta
- Crear una credencial con nombre
- Flujo de fuerza de ventas
- Definir propiedades de flujo para el flujo desencadenado por registro
- Agregue una fórmula para calcular la marca de tiempo
- Configurar una llamada HTTP GET para la API de zona horaria
- Agregue un elemento de decisión para verificar el código de respuesta
- Agregue un elemento Actualizar registros para actualizar el prospecto
- Agregue un elemento Crear registros para crear una tarea para que el propietario del cliente potencial maneje la respuesta de error
Paso 1: Cree campos personalizados en el objeto principal para almacenar la respuesta
En este paso, hemos establecido campos personalizados dentro del objeto principal. Estos servirán como repositorios para los datos de respuesta de la API de zona horaria de Google.
Etiqueta de campo | Nombre de API de campo | Tipo de datos |
dstOffset | dstOffset __c | Número (18,0) |
rawOffset | rawOffset__c | Número (18,0) |
Posición actual | Posición_actual__c | Geolocalización |
Identificación de zona horaria | Time_Zone_Id__c | Texto (255) |
Nombre de zona horaria |
Nombre_de_la_zona_horaria__c | Texto (255) |
Paso 2: crear una credencial con nombre
- Haga clic en Configuración .
- En el cuadro Búsqueda rápida, ingrese Credenciales con nombre y luego seleccione Credenciales con nombre .
- Haga clic en Nuevo legado .
- Rellene la página con la URL y los parámetros de autenticación del extremo de la llamada.
- Haga clic en Guardar .
Paso 3.1: Definir propiedades de flujo
- Haga clic en Configuración .
- En el cuadro Búsqueda rápida, escriba Flujos .
- Seleccione Flujos , luego haga clic en Nuevo flujo .
- Seleccione la opción Flujo activado por registro , haga clic en Crear
- Objeto: Plomo
- Activar el flujo cuando: se crea un registro
- Establecer condiciones de entrada: se cumplen todas las condiciones (Y)
- Fila 1:
- Campo : Posición_Actual__Latitud__s
- Operador : es nulo
- Valor : {!$ConstanteGlobal.Falso}
- Haga clic en + Agregar condición
- Fila 2:
- Campo : Posición_Actual__Longitud__s
- Operador : es nulo
- Valor : {!$ConstanteGlobal.Falso}
- Optimizar el flujo para : acción y registros relacionados
- Elija la opción para incluir una ruta de ejecución asíncrona para acceder a un sistema externo después de que la transacción original para el registro de activación se confirme con éxito .
- Haga clic en Listo.
Paso 3.2: fórmula para calcular la marca de tiempo
- En Caja de herramientas , seleccione Administrador y luego haga clic en Nuevo recurso para calcular los segundos desde la época de Unix (1 de enero de 1970, 00:00:00).
- Ingrese la siguiente información :
- Tipo de recurso : Fórmula
- Nombre de API : forN_Timestamp
- Tipo de datos : Número
- Lugares decimales : 0
- Fórmula : RONDA((AHORA() – FECHAHORAVALUE(“1970-01-01 00:00:00”)) * 24 * 60 * 60, 0)
- Haga clic en Listo.
Paso 3.3: configurar una acción de llamada HTTP GET
HTTP Callout lo guía a través de la introducción de los detalles sobre el servicio HTTP basado en web o el punto final de la API REST al que se está conectando. Después de completar la configuración, invoca la acción en un flujo.
- En el nodo Ejecutar asincrónicamente , seleccione Acción .
- Haga clic en + Crear llamada HTTP .
- Configure el servicio externo que conecta Salesforce con la API basada en HTTP.
- Introduzca un Nombre para el servicio externo.
- Seleccione la credencial con nombre que creó en el paso 2 .
- Haga clic en Siguiente .
- El siguiente paso es configurar la acción invocable que puede usar en Flow Builder o en Salesforce.
- Para Etiqueta , ingrese la acción que realiza la llamada.
- Método : OBTENER
- Agregue el extremo de la URL para la solicitud.
- Ruta URL : /maps/api/timezone/json
- Agregue claves de parámetros de consulta si la API a la que está llamando las tiene. Cuando usa esta acción en un flujo, ingresa valores para las claves definidas.
- Haga clic en Agregar clave
- Clave : ubicación
- Tipo de datos : cadena
- Requerido : Verdadero
- Haga clic en Agregar clave
- Clave : marca de tiempo
- Tipo de datos : entero
- Requerido : Verdadero
- Clave : marca de tiempo
- Haga clic en Agregar clave
- Clave: clave
- Tipo de datos : cadena
- Requerido : Verdadero
- Haga clic en Agregar clave
- Proporcione un cuerpo de respuesta de API de muestra. Salesforce genera una estructura de datos a partir de la respuesta de muestra.
- Vaya a la sección Proporcione una respuesta de muestra .
- Haga clic en Nuevo .
- Pegue una respuesta JSON de muestra .
{ "timeZoneName": "cadena de muestra", "compensación sin procesar": 1, "timeZoneId": "cadena de muestra", "errorMessage": "cadena de muestra", "dstOffset": 1, "estado": "cadena de muestra" }
Eliminación definitiva de registros con Salesforce Flow
Última actualización el 22 de mayo de 2023 por Rakesh Gupta
Gran idea o pregunta duradera:
- ¿Cómo eliminar registros de Salesforce utilizando Flow?
Objetivos:
Después de leer este blog, podrá:
- Comprender la anotación @InvocableMethod
- Más información sobre el método database.emptyRecycleBin
- Configurar la acción de Apex para eliminar registros de forma permanente de Flow
- Configurar el flujo de pantalla con el elemento Eliminar registro
- Y mucho más
¿Qué es la eliminación completa?
La eliminación definitiva es la eliminación permanente de los registros especificados de la Papelera de reciclaje. Cuando los datos se eliminan de forma permanente, es casi imposible recuperarlos. Esto generalmente se logra a través de los métodos Database.EmptyRecycleBin .
Al vaciar los contenedores de reciclaje, tenga en cuenta las siguientes reglas y pautas:
- Una vez que los registros se eliminan de la Papelera de reciclaje mediante esta llamada, se pueden consultar mediante queryAll() durante algún tiempo. Por lo general, este tiempo es de 24 horas, pero puede ser más corto o más largo.
- Una vez que los registros se eliminan mediante la llamada Database.EmptyRecycleBin , no se pueden recuperar.
Warren Mason es administrador de sistemas en Gurukul on Cloud (GoC). En GoC están utilizando Salesforce Flow para optimizar los procesos de ventas. Warren tiene un requisito para eliminar clientes potenciales sin correo electrónico. Está construyendo un flujo de pantalla:
- Descubra todos los clientes potenciales sin correo electrónico
- Eliminar definitivamente tales clientes potenciales
Enfoque de Campeón de Automatización (I-do):
Si bien esto se puede resolver con varias herramientas de automatización como Apex Trigger y otras, usaremos Salesforce Flow y llamaremos a un método de Apex . Para llamar a un método de Apex , agregue el elemento Acción a su Flujo de Salesforce y seleccione una clase de Apex con una anotación @InvocableMethod .
En este artículo, usaremos la llamada clase de base de datos EmptyRecycleBin . Con Database.EmptyRecycleBin es posible borrar los registros de Salesforce. El método EmptyRecycleBin() elimina los registros de la papelera de reciclaje inmediatamente. A partir del lanzamiento de Summer'23 , no es posible acceder directamente al método EmptyRecycleBin desde Flow, por eso estamos usando la clase Apex Invocable.
Antes de discutir la solución, permítame mostrarle un diagrama del proceso a un alto nivel. Dedique unos minutos a revisar el siguiente diagrama de flujo para comprenderlo.
Comencemos a construir este proceso de automatización.
Práctica guiada (nosotros hacemos):
Hay 2 pasos para resolver el requisito comercial de Warren usando Screen Flow . Debemos:
- Cree una clase de Apex y una clase de prueba para eliminar registros de forma permanente de la Papelera de reciclaje.
- Flujo de fuerza de ventas
- Definir propiedades de flujo para el flujo de pantalla
- Agregue un elemento Obtener registros para encontrar todos los clientes potenciales sin dirección de correo electrónico
- Agregue un elemento de decisión para verificar los clientes potenciales encontrados o no (del paso 2)
- Agregue el elemento Eliminar registros para eliminar clientes potenciales
- Agregar acción: llame a Empty RecycleBin Invocable Apex Class
Paso 1: Cree una clase de Apex y una clase de prueba
Ahora, tenemos que comprender una nueva anotación de Apex, es decir, @InvocableMethod . Esta anotación nos permite usar un método de Apex como algo que se puede llamar desde Flow y Apex. Los métodos invocables se llaman con la API REST y se usan para invocar un solo método de Apex. Los métodos invocables tienen valores de entrada y salida dinámicos y admiten llamadas de descripción.
La anotación InvocableVariable identifica una variable de clase utilizada como parámetro de entrada o salida para la acción invocable de un método InvocableMethod. Si crea su propia clase personalizada para usarla como entrada o salida de un método invocable, puede anotar variables de miembros de clase individuales para que estén disponibles para el método.
La anotación de variable invocable admite los modificadores que se muestran en este ejemplo.
@InvocableVariable(label='variableLabel' description='variableDescription' requerido=(verdadero | falso))
La clase EmptyRecycleBin contiene dos variables, una para eliminar un solo registro y otra para manejar la eliminación de varios registros. Siéntase libre de pasar el valor a una o ambas variables según sea necesario. Cree la siguiente clase en su organización.
clase pública EmptyRecycleBin { @InvocableMethod(label='Papelera de reciclaje vacía' description='Eliminar permanentemente los registros de la Papelera de reciclaje.' iconName='slds:estándar:record_delete' categoría = 'Acciones de Apex personalizadas') ejecución de vacío estático público (Lista <Solicitudes> lista de solicitudes) { List<SObject> recordstoDelete = New List<SObject>(); para (Solicitudes req: lista de solicitudes) { if(req.obj != null){ recordstoDelete.add(req.obj); } if(req.listofSObjects != null){ recordstoDelete.addAll(req.listofSObjects); } } if(registrosparaEliminar.tamaño()>0){ Database.emptyRecycleBin(registrosparaEliminar); } } Solicitudes de clases públicas{ @InvocableVariable (descripción ='Aceptar un registro de tipo SObject.' requerido=falso) objeto público SObject; @InvocableVariable (descripción ='Aceptar múltiples registros de un tipo SObject.' requerido=falso) public List<SObject> listofSObjects; } }
Copie el código de GitHub o instálelo usando esta URL .
Paso 2.1: Definir propiedades de flujo
- Haga clic en Configuración .
- En el cuadro Búsqueda rápida, escriba Flujos .
- Seleccione Flujos y luego haga clic en Nuevo flujo .
- Seleccione el flujo de pantalla opción y haga clic en Crear y configurar el flujo.
- Se abrirá el diseñador de flujo para usted.
Paso 2.2: Adición de elementos Obtener registros para encontrar clientes potenciales sin correo electrónico
El siguiente paso es usar el objeto Prospecto para encontrar los prospectos sin dirección de correo electrónico.
- En Flow Designer, haga clic en el icono + y seleccione el elemento Obtener registros .
- Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
- Seleccione el objeto Prospecto de la lista desplegable.
- Seleccione Se cumplen todas las condiciones (Y) .
- Establecer condiciones de filtro
- Fila 1:
- Campo : Correo electrónico
- Operador : Igual
- Valor : {!$ConstanteGlobal.EmptyString}
- Fila 1:
- Cuántos registros almacenar:
- Seleccionar todos los registros
- Cómo almacenar datos de registro:
- Elija la opción para Almacenar automáticamente todos los campos .
Paso 2.3: uso del elemento de decisión para verificar la variable de recopilación de registros (del paso 2)
Ahora usaremos el elemento Decisión para comprobar la Variable de recopilación de registros del paso 2 para saber si devuelve el cliente potencial o no.
- En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
- Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
- En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
- Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
- Fila 1:
- Recurso: {!Get_Leads}
- Operador: es nulo
- Valor: {!$ConstanteGlobal.Falso}
- Haga clic en Listo .
- Fila 1:
Paso 2.4: Agregar acción: eliminar registros para eliminar clientes potenciales
El siguiente paso es eliminar los clientes potenciales que encontramos en el Paso 2.2 . Para ello utilizaremos el elemento Eliminar Registros .
- En Flow Designer, debajo del nodo Sí , haga clic en el icono + y seleccione el elemento Eliminar registros .
- Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
- Para Cómo encontrar registros para eliminar, seleccione Usar los ID almacenados en una variable de registro o una variable de colección de registros .
- Selecciona el {!Get_Leads} de la lista desplegable.
- Haga clic en Listo.
Paso 2.5: Adición de una acción para llamar a una clase de Apex invocable
- En Flow Designer, haga clic en el icono + y seleccione el elemento Acción .
- Seleccione la clase de Apex invocable EmptyRecycleBin .
- Ingrese un nombre en el campo Etiqueta : el nombre de la API se completará automáticamente.
- Establecer valores de entrada:
- Objeto para “listofSObjects” (Entrada) : Lead
- Objeto para "obj" (Entrada) : Plomo
- Objeto para “listofSObjects” (Entrada) : Lead
- Almacenar valores de entrada
- listofSObjects : {!Get_Leads}
- listofSObjects : {!Get_Leads}
- Haga clic en Listo .
Al final, Warren's Flow se verá como la siguiente captura de pantalla:
Una vez que todo se vea bien, guarde el flujo.
Prueba de concepto
- Creé 201 clientes potenciales sin una dirección de correo electrónico para probar el flujo anterior.
- Ahora ejecute el flujo de pantalla y espere a que se complete el flujo.
- Vuelva a la Papelera de reciclaje para asegurarse de que los clientes potenciales se hayan eliminado definitivamente.
Evaluación formativa:
¡Quiero saber de ti!
¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.
Seguir leyendoLista de todas las fórmulas disponibles para Salesforce Flow
Última actualización el 16 de mayo de 2023 por Rakesh Gupta
Gran idea o pregunta duradera:
- ¿Cómo averiguar todas las funciones de fórmula permitidas en un Flujo?
Objetivos:
Después de leer este blog, podrá:
- Descubra todas las funciones de fórmula admitidas en Salesforce Flow
- Ejecute SOQL para objetos de la API de herramientas
- y mucho más
Isabella Stewart trabaja como administradora de Salesforce en Gurukul On Cloud (GoC). Quiere saber cómo encontrar todas las fórmulas disponibles para Salesforce Flow.
Práctica guiada (nosotros hacemos):
Con la Fórmula, puede crear cualquier cosa, desde ecuaciones matemáticas simples hasta cálculos más complejos y avanzados. En este artículo, aprenderá cómo encontrar todas las funciones de fórmula disponibles que se pueden usar en Salesforce Flow.
Si está buscando una explicación sobre cómo usar la columna de fórmula, consulte este artículo .
Hagamos una pausa aquí, familiarícese con los objetos API de herramientas FormulaFunction y FormulaFunctionAllowedType . contiene
Nombre del objeto |
Detalles |
FórmulaFunción | Representa una función utilizada al construir una fórmula, incluidos ejemplos y usos. Este objeto está disponible en la API de herramientas versión 39.0 y posteriores. |
CustomFielFormulaFunctionAllowedTyped | Representa las funciones que se admiten en el contexto de la fórmula dada. Este objeto está disponible en la versión API 48.0 y posteriores. |
Realice los pasos a continuación para obtener una cobertura de código confiable:
- Haga clic en Configuración | Consola de desarrollador .
- En el Editor de consultas, ingrese la siguiente consulta SOQL
- SELECCIONE Function.Name, Function.Label, Function.Description, Function.ExampleString FROM FormulaFunctionAllowedType where Type='Flow'
- Seleccione la casilla de verificación Usar API de herramientas .
- Haga clic en Ejecutar .
SELECCIONE Función.Nombre, Función.Etiqueta, Función.Descripción, Función.Cadena de ejemploFROM FormulaFunctionAllowedType donde Tipo='Flujo'
Lista de todas las fórmulas disponibles para Salesforce Flow
FórmulaFunción.Nombre | FormulaFunction.Label | FormulaFunction.Descripción | FormulaFunction.ExampleString | |
---|---|---|---|---|
1 | abdominales | abdominales | Devuelve el valor absoluto de un número, un número sin su signo | ABS (número) |
2 | ACOS | ACOS | Devuelve el arcocoseno del número en radianes, si el número dado está entre -1 y 1. De lo contrario, NULL. | ACOS(número) |
3 | AGREGARMESES | AGREGARMESES | Agregue el número de meses a la fecha, usando la última fecha del mes si la fecha es el último día del mes o agregando el número de meses tiene menos días. | AGREGARMESES(fecha,num) |
4 | Y | Y | Comprueba si todos los argumentos son verdaderos y devuelve VERDADERO si todos los argumentos son verdaderos | Y (lógico1, lógico2,…) |
5 | ASCII | ASCII | Devuelve el punto de código del primer carácter de la cadena dada como un número. | ASCII(texto) |
6 | COMO EN | COMO EN | Devuelve el arcoseno del número en radianes, si el número dado está entre -1 y 1. De lo contrario, NULL. | ASIN(número) |
7 | UN BRONCEADO | UN BRONCEADO | Devuelve el arco tangente del número en radianes. | ATAN(número) |
8 | ATAN2 | ATAN2 | Devuelve el arco tangente del cociente de y y x en radianes. | ATAN2(y,x) |
9 | COMIENZA | COMIENZA | Comprueba si el texto comienza con los caracteres especificados y devuelve VERDADERO si es así. De lo contrario devuelve FALSO | COMIENZA(texto, comparar_texto) |
10 | VALOR EN BLANCO | VALOR EN BLANCO | Comprueba si la expresión está en blanco y devuelve expresión_sustituta si está en blanco. Si la expresión no está en blanco, devuelve el valor de la expresión original. | VALOR EN BLANCO (expresión, expresión_sustituta) |
11 | BR | BR | Inserta una etiqueta de interrupción HTML en fórmulas de cadena | BR() |
12 | CASO | CASO | Compara una expresión con una serie de valores. Si la expresión es igual a cualquier valor, se devuelve el resultado correspondiente. Si no es igual a ninguno de los valores, se devuelve el resultado de otra cosa | CASE(expresión, valor1, resultado1, valor2, resultado2,…,else_result) |
13 | CASESAFEID | CASESAFEID | Convierte una identificación de 15 caracteres en una identificación de 18 caracteres que no distingue entre mayúsculas y minúsculas | CASESAFEID(id) |
14 | TECHO | TECHO | Redondea un número al entero más cercano, lejos de cero si es negativo | TECHO(número) |
15 | CDH | CDH | Devuelve una cadena con el punto de código del primer carácter como el número dado. | CHR(número) |
dieciséis | CONTIENE | CONTIENE | Comprueba si el texto contiene caracteres específicos y devuelve VERDADERO si los contiene. De lo contrario, devuelve FALSO | CONTIENE(texto, comparar_texto) |
17 | porque | porque | Devuelve el coseno del número, donde el número dado en radianes | COS(número) |
18 | TAZA DE CAMBIO | TAZA DE CAMBIO | Devuelva la tasa de conversión a la moneda corporativa para el CurrencyIsoCode dado, o 1.0 si la moneda no es válida. | TIPO DE MONEDA (IsoCode) |
19 | FECHA | FECHA | Crea una fecha a partir de un año, mes y día. | FECHA (año, mes, día) |
20 | FECHAHORAVALOR | FECHAHORAVALOR | Devuelve un valor de año, mes, día y hora GMT | DATETIMEVALUE(expresión) |
21 | FECHAVALO | FECHAVALO | Crea una fecha a partir de su representación de fecha y hora o texto | FECHAVALUE(expresión) |
22 | DÍA | DÍA | Devuelve el día del mes, un número entre 1 y 31 | DÍA (fecha) |
23 | DÍA DEL AÑO | DÍA DEL AÑO | Devuelve el día del año calendario (del 1 al 366). | DÍA DEL AÑO (fecha) |
24 | DISTANCIA | DISTANCIA | Devuelve la distancia entre dos ubicaciones utilizando la unidad proporcionada. | DISTANCIA(ubicación, ubicación, unidad) |
25 | Exp | Exp | Devuelve e elevado a la potencia de un número dado | EXP(número) |
26 | ENCONTRAR | ENCONTRAR | Devuelve la posición de la cadena search_text en text | ENCONTRAR(buscar_texto, texto [, start_num]) |
27 | PISO | PISO | Redondea un número hacia abajo, hacia cero al entero más cercano | Numero de piso) |
28 | FORMATO DURACIÓN | FORMATO DURACIÓN | Formatee el número de segundos con días opcionales, o la diferencia entre horas o dateTimes como HH:MI:SS. | FORMATDURATION(numSeconds[, includeDays] | dateTime/time, dateTime/time) |
29 | DESDEUNIXTIME | DESDEUNIXTIME | Devuelve la fecha y hora que representa el número dado como los segundos transcurridos desde el 1 de enero de 1970. | DESDEUNIXTIME(número) |
30 | GEOLOCALIZACIÓN | GEOLOCALIZACIÓN | Devuelve una ubicación basada en la latitud y longitud proporcionadas. | GEOLOCALIZACIÓN (latitud, longitud) |
31 | GETSESIONID | GETSESIONID | Devuelve el ID de la sesión actual. Esto puede ser útil en los hipervínculos a otras aplicaciones que utilizan las credenciales de salesforce.com para la autenticación. | GETSESIONID() |
32 | HTMLENCODE | HTMLENCODE | Codifica texto y fusiona valores de campo para su uso en HTML | HTMLENCODE(texto) |
33 | HIPERVÍNCULO | HIPERVÍNCULO | Crea un hipervínculo | HIPERVÍNCULO (url, nombre_amistoso [, destino]) |
34 | SI | SI | Comprueba si una condición es verdadera y devuelve un valor si es VERDADERO y otro valor si es FALSO. | SI (prueba_lógica, valor_si_verdadero, valor_si_falso) |
35 | INCLUYE | INCLUYE | Determina si cualquier valor seleccionado en un campo de lista de selección múltiple es igual a un literal de texto que especifique. | INCLUYE (multiselect_picklist_field, text_literal) |
36 | INITCAP | INITCAP | Devuelve el texto en minúsculas con el primer carácter de cada palabra en mayúsculas. | INITCAP(texto) |
37 | ESTÁ EN BLANCO | ESTÁ EN BLANCO | Comprueba si una expresión está en blanco y devuelve VERDADERO o FALSO | ESBLANCO(expresión) |
38 | ES NULO | ES NULO | Comprueba si una expresión es nula y devuelve VERDADERO o FALSO | ESNULL(expresión) |
39 | ES NÚMERO | ES NÚMERO | Devuelve VERDADERO si el valor del texto es un número. De lo contrario, devuelve FALSO. | ESNUMERO(Texto) |
40 | ISOSEMANA | ISOSEMANA | Devuelva el número de semana ISO 8601 para la fecha dada (del 1 al 53) para que la primera semana comience el lunes. | ISOSEMANA(fecha) |
41 | ISOAÑO | ISOAÑO | Devuelve el año de 4 dígitos de la numeración de semanas ISO 8601 para la fecha dada, de modo que el primer día sea lunes. | ISOAÑO(fecha) |
42 | ISPICKVAL | ISPICKVAL | Comprueba si el valor de un campo de lista de selección es igual a un literal de cadena | ISPICKVAL(campo_lista_selección, literal_texto) |
43 | JSENCODE | JSENCODE | Codifica texto y valores de campo de combinación para su uso en JavaScript | JSENCODE(texto) |
44 | JSINHTMLENCODE | JSINHTMLENCODE | Codifica texto y valores de campo combinados para su uso en JavaScript dentro de etiquetas HTML | JSINHTMLENCODE(texto) |
45 | IZQUIERDA | IZQUIERDA | Devuelve el número especificado de caracteres desde el inicio de una cadena de texto | IZQUIERDA(texto, num_chars) |
46 | LARGO | LARGO | Devuelve el número de caracteres en una cadena de texto | LARGO(texto) |
47 | ENLACE A | ENLACE A | Devuelve el elemento de enlace HTML para el objetivo seleccionado con entradas opcionales expresadas como parámetros de consulta | LINKTO(etiqueta, objetivo, id, [entradas], [sin anular]) |
48 | LN | LN | Devuelve el logaritmo natural de un número | LN(número) |
49 | REGISTRO | REGISTRO | Devuelve el logaritmo en base 10 de n | REGISTRO (número) |
50 | MÁS BAJO | MÁS BAJO | Convierte todas las letras del valor a minúsculas | INFERIOR (texto) |
51 | LPAD | LPAD | Rellene el lado izquierdo del valor con espacios o la cadena de relleno opcional para que la longitud sea padded_length | LPAD(texto, padded_length [, pad_string]) |
52 | MÁX. | MÁX. | Devuelve el mayor de todos los argumentos. | MAX(número,número,…) |
53 | MCEILING | MCEILING | Redondea un número al entero más cercano, hacia cero si es negativo | MCEILING(número) |
54 | PISO | PISO | Redondea un número hacia abajo al entero más cercano, lejos de cero si es negativo | MFLOOR(número) |
55 | MEDIO | MEDIO | Devuelve un carácter desde la mitad de una cadena de texto, dada una posición inicial y una longitud | MID(texto, núm_inicio, núm_caracteres) |
56 | MÍN. | MÍN. | Devuelve el menor de todos los argumentos. | MIN(número,número,…) |
57 | MODIFICACIÓN | MODIFICACIÓN | Devuelve el resto después de dividir un número por un divisor | MOD(número,divisor) |
58 | MES | MES | Devuelve el mes, un número entre 1 (enero) y 12 (diciembre) | MES(fecha) |
59 | NO | NO | Cambia FALSO a VERDADERO o VERDADERO a FALSO | No es lógico) |
60 | AHORA | AHORA | Devuelve una fecha y hora que representa el momento actual | AHORA() |
61 | VALOR NULO | VALOR NULO | Comprueba si expresión es nula y devuelve expresión_sustituta si es nula. Si la expresión no es nula, devuelve el valor de la expresión original. | NULLVALUE(expresión, expresión_sustituta) |
62 | O | O | Comprueba si alguno de los argumentos es verdadero y devuelve VERDADERO o FALSO. Devuelve FALSO solo si todos los argumentos son falsos | O(lógico1,lógico2,…) |
63 | Pi | Pi | Devuelve pi | PI() |
64 | PICKLISTCOUNT | PICKLISTCOUNT | Devuelve el número de valores seleccionados en una lista de selección múltiple. | PICKLISTCOUNT(multiselect_picklist_field) |
sesenta y cinco | PREDECIR | PREDECIR | Devuelve una predicción de Einstein Discovery basada en un Id. de registro o una lista de campos y sus valores. | PREDICT(PredDefId, [recordId] | [campo, valor, …]) |
66 | REGEX | REGEX | Devuelve VERDADERO si Texto coincide con la expresión regular RegEx_Text. De lo contrario, devuelve FALSO. | REGEX(Texto, RegEx_Text) |
67 | CONTRARRESTAR | CONTRARRESTAR | Devuelve la cadena de texto en orden inverso | REVERSO (texto) |
68 | BIEN | BIEN | Devuelve el número especificado de caracteres desde el final de una cadena de texto | DERECHA(texto, num_chars) |
69 | REDONDO | REDONDO | Redondea un número a un número específico de dígitos | REDONDO(número,núm_dígitos) |
70 | RPAD | RPAD | Rellene el lado derecho del valor con espacios o la cadena de relleno opcional para que la longitud sea padded_length | RPAD(texto, padded_length [, pad_string]) |
71 | PECADO | PECADO | Devuelve el seno del número, donde el número dado en radianes | SIN(número) |
72 | SQRT | SQRT | Devuelve la raíz cuadrada positiva de un número | SQRT(número) |
73 | SUSTITUTO | SUSTITUTO | Sustituye texto_nuevo por texto_antiguo en una cadena de texto. Use SUSTITUIR cuando desee reemplazar texto específico en una cadena de texto | SUSTITUIR (texto, texto_antiguo, texto_nuevo) |
74 | BRONCEARSE | BRONCEARSE | Devuelve la tangente del número, donde el número dado en radianes | TAN(número) |
75 | TEXTO | TEXTO | Convierte un valor en texto usando un formato de visualización estándar | TEXTO(valor) |
76 | HOY | HOY | Devuelve la fecha actual | HOY() |
77 | RECORTAR | RECORTAR | Elimina todos los espacios de una cadena de texto excepto los espacios individuales entre palabras | RECORTAR (texto) |
78 | TRONCO | TRONCO | Trunca un número a un número específico de dígitos | TRUNC(número,núm_dígitos) |
79 | UNIXTIMESTAMP | UNIXTIMESTAMP | Devuelve la cantidad de segundos desde el 1 de enero de 1970 para la fecha dada, o la cantidad de segundos en el día para una hora. | UNIXTIMESTAMP(fecha/hora) |
80 | SUPERIOR | SUPERIOR | Convierte todas las letras del valor a mayúsculas | SUPERIOR (texto) |
81 | CÓDIGOURL | CÓDIGOURL | Codifica texto y valores de campo combinados para su uso en direcciones URL | CÓDIGOURL(texto) |
82 | URLPARA | URLPARA | Devuelve la URL del destino seleccionado con entradas opcionales expresadas como parámetros de consulta | URLFOR(objetivo, id, [entradas], [sin anular]) |
83 | VALOR | VALOR | Convierte una cadena de texto que representa un número en un número | VALOR(texto) |
84 | DÍA LABORABLE | DÍA LABORABLE | Devuelve el día de la semana para la fecha dada, usando 1 para el domingo, 2 para el lunes, hasta 7 para el sábado. | DÍA DE LA SEMANA (fecha) |
85 | AÑO | AÑO | Devuelve el año de una fecha, un número entre 1900 y 9999 | AÑO (fecha) |
Evaluación formativa:
¡Quiero saber de ti!
¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.
Seguir leyendoLas mejores formas de automatizar la gestión de proyectos en Salesforce
Administrar sus proyectos dentro de Salesforce garantiza que todos sus datos clave estén disponibles en un solo lugar, con todos los que necesitan la capacidad de acceder a ellos ya en la plataforma y familiarizados con la interfaz de usuario. Además, no es necesario que cree ni mantenga la integración con herramientas de gestión de proyectos externas de terceros. Sin embargo, si está buscando mejorar aún más su juego de gestión de proyectos en Salesforce, la mejor manera de hacerlo sería a través de la automatización. Este artículo lo guiará a través de las mejores formas de automatizar la gestión de proyectos en Salesforce.
La automatización ayuda a su organización a crear valor a través de una reducción del tiempo dedicado a realizar tareas, una reducción del riesgo relacionado con el error humano y la creación de una experiencia optimizada para sus usuarios y clientes.
Las posibilidades son infinitas cuando se utilizan herramientas de automatización de Salesforce listas para usar, como Salesforce Flow, y las aplicaciones de gestión de proyectos de Salesforce adecuadas, como Inspire Planner.
Ejemplos de cómo puede automatizar la gestión de proyectos en Salesforce
Tabla de contenido
Una vez que haya decidido automatizar la gestión de proyectos en Salesforce, la pregunta es ¿Qué automatizamos ?
A continuación se enumeran varios escenarios de automatización de la gestión de proyectos que han demostrado ahorrar tiempo y recursos a las empresas. Estos pueden darle ideas sobre lo que desea automatizar en su organización de Salesforce.
Lanzar proyectos automáticamente con un flujo de Salesforce
Es un escenario común que las empresas necesitan lanzar proyectos a partir de plantillas específicas cuando las Oportunidades pasan a la etapa Cerrado/Ganado. Hacer esto manualmente para cada oportunidad requiere una cantidad considerable de tiempo y esfuerzo. Además, también deja espacio para el error humano o para que alguien simplemente olvide o retrase un paso.
Con Inspire Planner, una aplicación de gestión de proyectos nativa de Salesforce, puede crear un flujo de Salesforce desencadenado por registro para crear automáticamente un proyecto a partir de una plantilla específica en función de diferentes criterios (por ejemplo, la etapa de oportunidad se actualiza a Cerrado/Ganado).
Este nuevo proyecto heredará de la plantilla todas sus fases y tareas, predecesores, archivos adjuntos, roles de recursos y más.
Entonces, para comenzar, su gerente de proyecto simplemente necesita actualizar la fecha de inicio de su primera tarea y asignar el equipo del proyecto (¡ambos también se pueden automatizar!).
Se puede configurar una automatización similar de Salesforce Flow para lanzar proyectos desde otras etapas de Oportunidades o para otros objetos en Salesforce, como Casos, Cuentas, Pedidos y más.
Automatice la gestión de proyectos en Salesforce con plantillas de proyectos
Si su organización entrega proyectos que siguen procesos estandarizados, puede Automatice la gestión de proyectos en Salesforce configurando plantillas de proyectos y usándolas cada vez que desee configurar un nuevo proyecto en lugar de crearlos desde cero.
Configurar plantillas de proyecto puede ser un proceso simple con la herramienta adecuada. Por ejemplo, en Inspire Planner simplemente debe marcar la casilla de verificación 'Es plantilla' al crear un nuevo proyecto para hacer una Plantilla de proyecto. Y puede crear un número ilimitado de plantillas para diferentes procesos dentro de su organización.
Las plantillas de proyecto permitirán que su software de administración de proyectos de Salesforce haga parte del trabajo más insignificante por usted, permitiéndole a usted y a su equipo concentrar sus esfuerzos en brindar un servicio de alta calidad a sus clientes.
Con Inspire Planner, sus proyectos heredarán la mayor parte de la información requerida de la plantilla, incluidas las tareas, los archivos adjuntos, la duración de las tareas, las fechas de inicio y finalización, los predecesores, los recursos asignados, la prioridad, el esfuerzo planificado, el costo presupuestado, las categorías, las notas y el diseño del proyecto. y Configuración, y más.
Automatice la gestión de proyectos en Salesforce con la asignación de tareas basada en roles
Asignar automáticamente las tareas de su proyecto a los recursos correctos es una manera fácil de automatizar la gestión de proyectos en Salesforce.
Dependiendo de la cantidad de tareas en sus proyectos, esto podría sumar una cantidad significativa del tiempo de sus gerentes de proyecto si se hace manualmente, y eso suponiendo que lo hagan bien cada vez. Si hay una herramienta a su disposición que alivia esta carga de sus gerentes de proyecto y les permite concentrarse en un trabajo más importante, ¿por qué no ponerla en práctica?
Afortunadamente, esto también es algo que Inspire Planner ofrece listo para usar. Puede predefinir qué roles serán responsables de cada tarea mientras crea sus plantillas o planes de proyecto.
Luego, simplemente necesita asignar un recurso a un rol específico, y la automatización integrada de Inspire Planner asignará inmediatamente todas las tareas de su proyecto a los miembros correctos del equipo del proyecto.
Costura de plantilla
Lanzar proyectos automáticamente desde Oportunidades basadas en plantillas es una excelente manera de automatizar la gestión de proyectos en Salesforce. Pero, ¿qué sucede cuando vendió varios productos dentro de su Oportunidad y cada producto requiere un conjunto diferente de tareas?
¿Puede automatizar dicho proceso en Salesforce dentro de un plan de proyecto en lugar de crear proyectos separados?
La buena noticia es que la respuesta es sí. Inspire Planner ofrece la funcionalidad de unión de plantillas de proyectos que le permite crear un solo proyecto a partir de una oportunidad al "unir" (combinar) diferentes plantillas relacionadas con los productos de oportunidad.
Además, puede definir una plantilla de encabezado (un conjunto de tareas que deben realizarse sin importar qué productos se seleccionaron, por ejemplo, la fase de inicio del proyecto) y definir un orden de ejecución de sus plantillas simplemente arrastrándolas a las posiciones deseadas.
Y con la configuración adicional de Salesforce, puede configurar la unión de plantillas de proyectos en Inspire Planner para trabajar con otros objetos en Salesforce en lugar de productos.
Automatice la programación de su proyecto con dependencias de tareas
Puede automatizar la Gestión de proyectos en Salesforce configurando Dependencias de tareas en el diagrama de Gantt de su proyecto. De esta manera, su proyecto y todas las tareas operarían como una unidad cohesiva en lugar de que cada tarea esté separada. Por lo tanto, actualizar cualquier tarea recalculará automáticamente todo el cronograma del proyecto, ¡sin importar cuán complejo sea su proyecto!
Inspire Planner es compatible con cuatro tipos principales de predecesores (finalización a inicio, finalización a finalización, inicio a inicio y inicio a finalización), así como múltiples dependencias de tareas. Si no está familiarizado con estos términos, un predecesor es una actividad que debe comenzar o finalizar antes de que pueda continuar una tarea sucesora, y un sucesor es una actividad que sigue a otra actividad en función de su dependencia entre sí y no necesariamente en orden cronológico. .
Además de eso, con Inspire Planner también puede agregar tiempo de adelanto o retraso a sus dependencias (por ejemplo, la tarea debe comenzar 3 días después de que finalice otra, o un día antes, etc.), e incluso funciones más avanzadas como la gestión de restricciones ( por ejemplo, una tarea debe terminar en una fecha determinada).
Una vez configuradas, los usuarios finales también pueden ver estas tareas predecesoras y sucesoras en un componente simplificado en la página de tareas. De modo que incluso si los miembros de su equipo no tienen acceso al proyecto o no están familiarizados con los diagramas de Gantt, aún pueden comprender fácilmente qué depende de ellos en este proyecto.
Automatización de Notificaciones
Otro elemento importante de la automatización de la gestión de proyectos en Salesforce son las notificaciones.
Si desea entregar sus proyectos a tiempo, deberá mantener a su equipo de proyecto actualizado sobre los próximos plazos e hitos. Para empezar, puede configurar alertas y notificaciones automáticas para las tareas del proyecto a través de Salesforce. Esto enviará a los recursos de su proyecto recordatorios por correo electrónico sobre sus tareas y también mostrará un recordatorio de notificación en Salesforce.
Por ejemplo, puede configurar notificaciones de tareas unos días antes de la fecha de vencimiento de la tarea, cuando se actualizaron las fechas de inicio/finalización de la tarea, una notificación de alerta cuando la tarea está vencida y más. Dado que Inspire Planner se integra completamente con las tareas estándar de Salesforce, algunas de estas notificaciones estarán disponibles para usted desde el primer momento.
Finalmente, puede configurar alertas en Inspire Planner para acciones como Tareas listas para comenzar. Cuando se han completado todos los predecesores, Inspire Planner marca automáticamente sus tareas como "Listo para comenzar". A continuación, puede enviar alertas a las personas asignadas a esta tarea o utilizar una vista de lista que muestre solo dichas tareas. De esta manera, su equipo de proyecto sabrá fácilmente en qué debe concentrarse a continuación.
Automatización de KPIs y Reportes
La siguiente idea para automatizar la gestión de proyectos en Salesforce es automatizar los KPI y programar la entrega de sus informes de proyectos.
Puede decidir administrar los KPI manualmente en función del estado actual de sus proyectos o automatizarlos si tiene criterios estandarizados para los KPI internamente. En cualquier caso, puedes configurar alertas para tus jefes de proyecto cuando alguno de los KPIs del proyecto pase de Verde a Ámbar o Rojo.
Al utilizar las aplicaciones de gestión de proyectos nativas de Salesforce, su equipo puede beneficiarse de los potentes informes y paneles de Salesforce. Por ejemplo, Inspire Planner ofrece una carpeta completa lista para usar con informes de proyectos, la capacidad de generar su informe de estado del proyecto con unos pocos clics y también dos paneles dinámicos para su cartera y administradores de recursos.
Salesforce luego le permite programar y suscribirse a los informes de su proyecto. De esta manera, su equipo puede recibir notificaciones sobre las métricas más importantes del proyecto sin ejecutar manualmente ni enviar informes por correo electrónico.
Una de las mejores prácticas para generar informes sobre sus proyectos es crear líneas base del proyecto en Inspire Planner. La línea de base se puede utilizar para generar informes sobre el cronograma del proyecto planificado y el rendimiento real de su proyecto. La línea de base también se puede usar para rastrear y enviar notificaciones cuando hay retrasos en el proyecto y cuando las tareas vencen. Estas notificaciones pueden llamar la atención sobre áreas del Proyecto que necesitan más atención, lo que resultará en una reducción de los retrasos.
Automatice la gestión de proyectos en Salesforce con procesos de aprobación
Los procesos de aprobación pueden ayudarlo a automatizar la gestión de proyectos en Salesforce cuando necesite obtener una aprobación para algo en su organización.
Los ejemplos típicos de procesos de aprobación en la gestión de proyectos incluyen empleados que solicitan PTO de sus gerentes, gerentes de proyecto que obtienen aprobación para cambios dentro del alcance del proyecto, aprobación de facturas y más.
Con los procesos de aprobación de Salesforce, puede definir fácilmente sus pasos de aprobación, bloquear registros, permitir la recuperación de solicitudes de aprobación, definir un aprobador, crear plantillas de notificación y más.
Para iniciar procesos de aprobación en sus proyectos en Salesforce, puede usar botones personalizados (p. ej., "Enviar para aprobación") en los que los usuarios deben hacer clic o iniciar procesos de aprobación automáticamente con un Flujo de Salesforce.
Automatizar carteras de proyectos
Las carteras de proyectos le permiten agrupar y ver un conjunto de proyectos en un único diagrama de Gantt combinado. Con Inspire Planner, puede crear un número ilimitado de Portafolios para diversas necesidades, por ejemplo, un portafolio de sus proyectos, un portafolio de proyectos para un cliente específico, etc.
Los portafolios pueden mostrar el cronograma general del proyecto, el estado general del proyecto, el porcentaje completado, los hitos del proyecto y más. Además, un proyecto puede pertenecer a varias carteras.
Con Inspire Planner, puede agregar proyectos a Portafolios o eliminarlos manualmente o con automatización a través de Salesforce Flows. Por ejemplo, cuando se completa un proyecto, puede eliminarlo automáticamente de una cartera.
Y con nuestra próxima función de carteras dinámicas con edición en línea, la gestión automática de carteras se está volviendo más fácil que nunca. Puede crear diferentes vistas de lista de Salesforce para organizar y filtrar automáticamente sus carteras de proyectos en función de varios criterios.
Calcule los niveles de prioridad de riesgos y problemas
Tener la capacidad de ver los riesgos y problemas relacionados con su proyecto significa que estos riesgos pueden mitigarse de manera oportuna durante todo el proyecto. Si busca identificar y prevenir riesgos de proyectos imprevistos, consulte nuestra guía sobre cómo reducir los riesgos de proyectos en Salesforce.
Si está buscando llevar la gestión de riesgos de su proyecto al siguiente nivel en Salesforce, puede hacerlo automatizando el cálculo de riesgos y automatizando la priorización de estos riesgos.
El registro de riesgos del proyecto es una función que ofrece Inspire Planner que le permite realizar un seguimiento de los riesgos de su proyecto y limitar sus impactos. Realiza un seguimiento tanto de los riesgos como de los problemas (los riesgos son los problemas que podrían ocurrir en el futuro y los problemas son los riesgos que han llegado a buen término y realmente sucedieron).
La Prioridad de sus riesgos se calcula automáticamente multiplicando el Impacto por la Probabilidad. De esta manera, simplemente debe asegurarse de capturar el impacto y la probabilidad de su riesgo e Inspire Planner hará el resto por usted.
Cuándo y por qué debería automatizar la gestión de proyectos en Salesforce
Si bien ahora conoce varias formas de automatizar la gestión de proyectos en Salesforce y cómo Inspire Planner puede ser potencialmente la solución que le permita hacer esto, es posible que todavía se pregunte por qué vale la pena automatizarlo.
¿Qué ganará su empresa con la automatización de la gestión de proyectos en Salesforce y qué impactos negativos mitigará? A continuación hay tres explicaciones de este valor y por qué la automatización no solo es una buena idea sino casi una necesidad.
Ahorre tiempo en tareas repetitivas
La gestión eficaz de proyectos es la diferencia entre un proyecto exitoso y uno fallido y, a menudo, lleva bastante tiempo ejecutarlo con cuidado para obtener resultados óptimos. Dado que hay una serie de tareas que se pueden realizar con su inversión en automatización de Salesforce, tiene mucho sentido liberar a su equipo para que se concentre en los problemas clave en lugar de atascarlos con tareas repetitivas manuales.
La investigación realizada por AutomationAnywhere muestra que en algunas industrias (a saber, el servicio público y la administración general) los profesionales pueden dedicar hasta 3,51 horas diarias a tareas administrativas repetitivas. ¡Estas son tareas que podrían realizarse fácilmente mediante algún tipo de automatización!
Cuando se trata de reducir el tiempo necesario para las tareas repetitivas en la gestión de proyectos, puede devolver el tiempo a su día implementando algunos de nuestros ejemplos de automatización descritos anteriormente, como plantillas de proyectos, asignación de tareas según roles de recursos y más. En última instancia, puede entregar un proyecto exitoso más rápido descargando este tipo de tareas a Salesforce.
Reducir el error humano
Si bien todos tratamos de ser completamente precisos todo el tiempo, solo somos humanos y, como tales, somos propensos a cometer errores. Salesforce, por otro lado, no es humano y no es propenso a la misma capacidad de cometer errores que los humanos. Las tareas más pequeñas pueden llamar menos la atención de un equipo de proyecto ocupado, lo que puede generar problemas mayores en el futuro debido a la naturaleza en cascada de estos errores.
Configurar su organización para automatizar su gestión de proyectos en Salesforce es la mejor manera de reducir (o eliminar efectivamente) su riesgo de error humano mientras gestiona el proyecto (suponiendo que esté configurado correctamente desde el principio, por supuesto).
Administre automáticamente varias plantillas/escenarios
Si su empresa ofrece múltiples servicios o productos diferentes, cada uno con su propio conjunto de tareas o incluso diferentes metodologías de gestión de proyectos (Waterfall vs Agile/Scrum), entonces puede encontrarse con problemas en los que un Project Manager no tiene suficiente experiencia trabajando con un tipo de producto o servicio específico y podría tener problemas para configurar el Proyecto en Salesforce.
Este problema se elimina por completo cuando su gestión de proyectos se automatiza en Salesforce utilizando varias plantillas de proyectos que sus gestores de proyectos pueden aplicar al comienzo de un proyecto. Esto no solo significa que tienen mucho menos trabajo por hacer, sino que también elimina cualquier error potencial o tareas olvidadas y brinda un grado de capacitación para los gerentes de proyecto que son nuevos en un tipo específico de proyecto.
Automatice la gestión de proyectos en Salesforce con Inspire Planner
Como puede ver, hay una cantidad insuperable de valor que se puede obtener al administrar sus proyectos dentro de Salesforce y luego aplicar capas en alguna Automatización de administración de proyectos.
Sus clientes se beneficiarán de sus esfuerzos al contar con un equipo de proyecto efectivo que pueda entregar a tiempo y garantizar que las comunicaciones sean consistentes, que los riesgos se gestionen y mitiguen, y que el equipo centre sus esfuerzos en el trabajo en lugar de las tareas administrativas.
Si está listo para automatizar la gestión de proyectos en Salesforce para su organización y reducir el trabajo manual y repetitivo, consulte Inspire Planner con nuestra prueba gratuita de 30 días hoy o solicite su demostración personal de Inspire Planner.
Seguir leyendoUse la API REST de Tableau con Postman para diseñar integraciones ☁️
La próxima vez que quiera hacer algo con Tableau, pero no pueda encontrar la manera con la interfaz de usuario, vaya a su confiable Postman Collection y pruebe algunos métodos a través de la API REST de Tableau.
La publicación Usar la API REST de Tableau con Postman para diseñar integraciones apareció primero en el blog de desarrolladores de Salesforce .
Seguir leyendo