Ú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
Última actualización el 15 de noviembre de 2023 por Rakesh Gupta Big Idea or Enduring Question: ¿Cómo evitar la descarga de datos críticos a través de informes? Objetivos: Después de leer este blog, serás capaz de: Entender la Clasificación de Datos Configurar la Clasificación de Datos para Campos Entender la Seguridad de Transacciones Crear una Seguridad de Transacciones
El post El escudo de la seguridad: Prevenir la Descarga de Datos con la Clasificación de Datos appeared first on Campeón de la Automatización.
A Benjamin Moore , administrador de Salesforce en Gurukul On Cloud (GoC), se le ha asignado una tarea específica. Siempre que un vendedor por teléfono o el equipo de ventas internas elimine un cliente potencial (cliente potencial) de la cadencia de participación de ventas, asegúrese de la creación automática de una tarea con estos detalles:
Asunto : – Cliente potencial eliminado de la cadencia de participación en ventas
Estado : – No iniciado
Prioridad :- Alta
Fecha de vencimiento : – Hoy
Relacionado con : – Plomo
Asignado a : – Propietario principal
¿Qué es la cadencia de participación en ventas?
La adquisición de clientes potenciales es un paso importante en cualquier esfuerzo de marketing. Una vez que los equipos de ventas internas tienen una lista de clientes potenciales, están listos para emprender actividades de divulgación. ¡Pero espera! Demos un paso atrás y reflexionemos sobre las siguientes preguntas como preámbulo para comprender la cadencia de ventas: (1) ¿Con qué frecuencia desea que sus representantes se comuniquen con los clientes potenciales? (2) ¿Cómo le gustaría que se comunicaran con el cliente potencial, mediante llamada o correo electrónico? (2) ¿Cómo desea capturar la disposición de las llamadas? (3) etcétera.
La cadencia de participación de ventas es una línea de tiempo de las actividades y métodos de ventas que siguen los representantes de ventas para atraer clientes potenciales. El propósito de una cadencia es facilitar que el representante de ventas interno cumpla con el cronograma y garantice que los prospectos no sean olvidados, es decir, que nada se pierda. Por ejemplo, si ofrece una consulta gratuita en su sitio web y alguien completa un formulario, la cadencia incluiría una lista de las cosas que hace para programar la primera reunión.
Una cadencia de ventas normalmente incluye tres puntos de contacto diferentes: correo electrónico , redes sociales y llamadas/correos de voz . La cadencia, para diferentes embudos de ventas, puede diferir, pero siempre debe incluir una combinación de las tres formas de comunicación mencionadas.
Una cadencia de participación de ventas se parece a esto:
En otras palabras, las cadencias de participación de ventas difieren de un tipo de proceso de ventas a otro, pero la idea básica sigue siendo la misma: toques consistentes y secuenciales.
¿Qué es la captura de datos modificados?
La captura de datos modificados (CDC) es una técnica utilizada en bases de datos y sistemas de procesamiento de datos para identificar y capturar los cambios realizados en los datos. El objetivo principal de CDC es garantizar que los cambios en los datos de origen (como inserciones, actualizaciones y eliminaciones) puedan detectarse y procesarse fácilmente en sistemas posteriores.
La captura de datos de cambios (CDC) en Salesforce es una función que le permite realizar un seguimiento y capturar los cambios realizados en los datos de Salesforce. Proporciona una manera de capturar y entregar cambios en los datos, tanto en tiempo real como de manera histórica, lo que facilita la sincronización de datos entre sistemas y mantiene una copia actualizada de los datos de Salesforce en almacenes de datos externos. Aquí hay un desglose de de qué se trata la captura de datos modificados en Salesforce:
Actualizaciones en tiempo real : CDC proporciona un flujo de cambios en tiempo real, lo que significa que tan pronto como se realiza un cambio en Salesforce, se captura y se puede actuar de inmediato.
Captura integral de datos : CDC captura no solo los datos modificados sino también los metadatos sobre el cambio, como cuándo ocurrió el cambio y qué tipo de cambio fue (por ejemplo, crear, actualizar, eliminar).
Objetos estándar y personalizados : puede habilitar CDC tanto para objetos estándar de Salesforce (como Cuenta, Contacto) como para objetos personalizados.
Arquitectura basada en eventos : los cambios se entregan como eventos. Las aplicaciones pueden suscribirse a estos eventos y tomar medidas cada vez que haya un cambio. Esto permite una integración más dinámica y con mayor capacidad de respuesta entre Salesforce y los sistemas externos.
Integración simplificada : CDC puede simplificar los desafíos de integración. En lugar de sondear frecuentemente a Salesforce en busca de cambios, los sistemas externos pueden simplemente escuchar los eventos de cambio y actuar en consecuencia.
Alto volumen : está diseñado para manejar un gran volumen de eventos de cambio, lo que garantiza que incluso las empresas con cantidades masivas de datos puedan utilizar CDC de manera efectiva.
API y eventos de plataforma : Salesforce proporciona API que permiten que los sistemas externos se suscriban a estos eventos de cambio. Además, estos eventos de cambio se basan en Salesforce Platform Events, lo que facilita el trabajo dentro del ecosistema de Salesforce.
Canales de eventos: los eventos de cambio se envían a canales de eventos que tienen una convención de nomenclatura como data/ObjectNameChangeEvent , donde ObjectName es el nombre del objeto de Salesforce, como Account o Contact .
Detalles del evento: cada evento de cambio contiene información sobre el cambio, como el tipo de cambio (crear, actualizar, eliminar, recuperar), el ID del registro, los nombres de los campos modificados y los nuevos valores de esos campos.
Salesforce retiene los eventos de cambio durante 72 horas, lo que permite que los sistemas se pongan al día si se retrasan en el procesamiento de eventos.
Los administradores pueden habilitar la captura de datos modificados para objetos específicos en Salesforce a través del menú de configuración. Una vez habilitados, los cambios en esos objetos comenzarán a generar eventos de cambio.
Change Data Capture en Salesforce proporciona una manera poderosa de mantener los sistemas externos sincronizados con los datos de Salesforce sin la necesidad de una lógica de integración compleja o sondeos frecuentes. Es especialmente útil para análisis en tiempo real, sistemas de respaldo y otras aplicaciones que requieren datos actualizados de Salesforce.
Posible solución I: flujo activado por registro en el cliente potencial
Antes de profundizar en la solución funcional real, permítame guiarlo a través de algunas soluciones potenciales que pueden parecer las rutas más fáciles y rápidas a primera vista. Sin embargo, existen razones específicas por las que estas soluciones no serán viables.
Si tiene experiencia en la gestión de clientes potenciales y cadencias de participación de ventas, es posible que haya notado que Salesforce almacena ActionCadenceId (el ID de la cadencia asignada al cliente potencial) en el registro del cliente potencial. En particular, Salesforce establece ActionCadenceId en nulo cuando un cliente potencial se elimina/completa manualmente de la cadencia de participación de ventas.
Es posible que esté contemplando la idea de implementar un flujo posterior al guardado activado por registro (no conozco el flujo posterior al guardado, consulte este artículo) en el objeto principal y aplicando las siguientes condiciones:
ActionCadenceId no es nulo {!$GlobalConstant.False}
Con la condición "Solo si el registro que desencadenó la ejecución del flujo se actualiza para cumplir con los requisitos de la condición".
Luego consulte el objeto ActionCadenceTracker para averiguar el estado y CompletionReason = ' ManuallyRemoved '
Sin embargo, encontrará un obstáculo al intentar guardar el flujo. Resultaría en un mensaje de error que indica:
Sí (resultado de la decisión): el campo $Record.ActionCadenceId contiene un valor derivado que no se admite. En un flujo programado o activado por registro, $Record no admite algunos campos estándar cuyos valores se derivan. Elimine el campo $Record.ActionCadenceId.
Ahora comprende por qué no podemos utilizar este enfoque para abordar el caso de uso empresarial mencionado anteriormente.
Nota : Los campos Cadencia y Cadencia asignado en registros de clientes potenciales, contactos y cuentas personales no se pueden utilizar como criterios de campo en reglas de flujo de trabajo, flujos y Generador de procesos.
Posible solución II: flujo activado por registro en ActionCadenceTracker
Inicialmente, esta solución puede parecer una opción más prometedora que la anterior, y quizás se pregunte por qué no se consideró antes. Desafortunadamente, Salesforce impone restricciones, lo que impide el uso de flujos activados por registros y activadores de Apex en este tipo de SObject en particular ( ActionCadenceTracker ).
Lamentablemente, esto marca el final de esta solución.
Posible solución III: flujo activado por programación en ActionCadenceTracker
La tercera opción es crear un flujo activado por programación para el objeto ActionCadenceTracker , lo cual ciertamente es factible. Sin embargo, es fundamental tener en cuenta que esta solución no es en tiempo real.
Puede configurar el flujo activado por programación para que se ejecute a intervalos , como cada minuto o cada hora, pero tiene sus limitaciones. Recomiendo encarecidamente considerar la escalabilidad al optar por esta solución.
Si bien este enfoque puede ser adecuado para ciertos escenarios, no sirve como una solución viable para el caso de uso empresarial específico mencionado, que requiere notificaciones en tiempo real.
La pregunta ahora es: ¿Cuál es la mejor solución para el caso de uso empresarial mencionado anteriormente? Empecemos.
Enfoque de campeón de automatización (Sí, quiero):
La mejor solución para el caso de uso empresarial determinado es utilizar Change Data Capture (CDC) en el objeto ActionCadenceTrackerChangeEvent . Si no está familiarizado con Change Data Capture (CDC), le recomiendo encarecidamente hacer una pausa aquí y completar este módulo de Trailhead.
Antes de continuar, debes familiarizarte con el objeto ActionCadenceTracker en Salesforce. Representa un objetivo de cadencia activa.
Se crea un registro ActionCadenceTracker cuando agrega un objetivo a una cadencia. Utilice ActionCadenceTracker para obtener información sobre un objetivo de cadencia de carrera, incluido su estado, paso actual, cliente potencial asignado y motivo de finalización.
Nombre del campo
Detalles
Razón de finalización
El motivo por el que el objetivo completó la cadencia. Este campo contiene un valor si el estado del objetivo es Completo. Los valores posibles son:
Salida automática: el objetivo se completó porque se produjo una condición de salida global. Este valor está disponible en la versión API 49.0 y posteriores.
AutomáticamenteSalidoEliminadoPaso
Salida automáticaPaso principal no válido
DaisyChained: el objetivo se completó porque está conectado a otra cadencia de acción.
LeadConverted: el objetivo se completó porque el cliente potencial se convirtió.
Eliminado manualmente: el objetivo se completó porque el representante de ventas lo eliminó de la cadencia.
ManuallyRemovedNoAccess: reservado para uso futuro.
NoMoreSteps: el objetivo completó la cadencia de acción porque se completaron todos los pasos de la cadencia de acción.
Estado
El estado del rastreador de cadencia de acción actual. Los valores posibles son:
Completo
Error
Inicializando
En pausa
Procesamiento: Salesforce está trabajando para cambiar el estado de este rastreador de cadencia de acción. Le recomendamos que filtre los pasos que tienen este estado en sus paneles.
Correr
ID de destino
El ID del objetivo (Contacto, Cliente potencial) que está asignado a esta cadencia de acción.
Para resolver este requisito, utilizaremos Change Data Capture (CDC), un Apex Trigger para suscribirnos a eventos de CDC y un flujo de inicio automático para gestionar la creación de tareas.
Antes de discutir la solución, permítanme mostrarles un diagrama del proceso a 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 tres pasos para resolver los requisitos comerciales de Benjamin utilizando Change Data Capture (CDC), un Apex Triggeryun flujo de inicio automático . Debemos:
Habilite el objeto ActionCadenceTracker para notificaciones de cambios
Flujo iniciado automáticamente
Definir propiedades de flujo
Cree una variable de colección de registros para almacenar clientes potenciales
Agregue un elemento Loop para recuperar los registros de la variable de colección de registros
Agregue un elemento de Asignación para asignar valores a una Variable de registro (Tarea)
Agregue un elemento de Asignación para agregar la Variable de registro a una Variable de colección de registros .
Agregue un elemento Crear registros para crear tareas
Desencadenadores asincrónicos de Apex para eventos de cambio
Paso 1: habilite el objeto ActionCadenceTracker para notificaciones de cambios
Haga clic en Configuración .
En el cuadro Búsqueda rápida, escriba Cambiar captura de datos y seleccione Cambiar captura de datos.
En Entidades disponibles, seleccione Rastreador de cadencia ( ActionCadenceTracker ) y haga clic en la flecha > .
Haga clic en Guardar .
Paso 2.1: Definir las propiedades del 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 iniciado automáticamente (sin activación) opción.
Haga clic en Crear .
Paso 2.2: Agregar una variable de recopilación de registros para almacenar clientes potenciales
En Caja de herramientas , seleccione Administrador y luego haga clic en Nuevo recurso para almacenar los clientes potenciales.
Introduzca la siguiente información:
Tipode recurso : variable
Nombre de API : varR_Leads
Tipo de datos : Registro
Objeto : Plomo
Marque Permitir múltiples valores (colección)
Marque disponible para entrada
Verificar disponible para salida
Haga clic en Listo.
Paso 2.3: Agregar un elemento de bucle para recuperar los registros de la variable de colección de registros
En Flow Designer, haga clic en el icono + y seleccione el elemento Bucle .
Ingrese un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
ParaVariable de colección,seleccione{!varR_Leads}.
Para especificar la dirección para iterar sobre la colección seleccione la opciónDesde el primer elemento hasta el último elemento.
Haga clic enListo .
Paso 2.4: Agregar un elemento de asignación para asignar los valores a una variable de registro (tarea)
Cree una tareade tipovarR_Task de variable de registro para crear una tarea para el propietario del cliente potencial.
En Flow Designer, debajo del nodo Para cada , haga clic en el icono + y seleccione el elemento Asignación .
Ingrese un nombre en laetiqueta ; el nombre de API se completará automáticamente.
Establecer valores de variables
Fila 1 :
Campo : Asunto
Valor : Cliente potencial eliminado de la cadencia de participación en ventas
Haga clic enAgregar tarea
Fila 2 :
Campo : Estado
Valor : No iniciado
Haga clic enAgregar tarea
Fila 3 :
Campo : Prioridad
Valor : Alto
Haga clic en Agregar tarea
Fila 4 :
Campo : Fecha de actividad
Valor : {!$Flujo.FechaActual}
Haga clic enAgregar tarea
Fila 5 :
Campo : WhoId
Valor : {!Loop_Through_Leads.Id}
Haga clic enAgregar tarea
Fila 6 :
Campo : ID de propietario
Valor : {!Loop_Through_Leads.OwnerId}
Haga clic en Listo.
Paso 2.5: Agregar un elemento de asignación para agregar la variable de registro a la variable de colección de registros
Cree una tareade tipovarR_Tasks de recopilación de registros para almacenar la variable de registro (creada en el paso 2.4) para el proceso masivo.
En Flow Designer, haga clic en el icono + y seleccione el elemento Asignación .
Ingrese un nombre en laetiqueta ; el nombre de API se completará automáticamente.
Establecer valores de variables
Fila 1:
Campo:{!varR_Tasks}
Operador:Agregar
Valor:{!varR_Task}
Haga clic en Listo.
Paso 2.6: Agregar un elemento Crear registros para crear tareas
En Flow Designer, debajo del nodo Después del último , haga clic en el icono + y seleccione el elemento Crear registros .
Ingrese un nombre en laetiqueta ; el nombre de API se completará automáticamente.
Para Cuántos registros crear, seleccione Múltiples.
Colección de registros de mapas: {!varR_Tasks}
Haga clic en la X en la parte superior para guardar los cambios.
Al final, Benjamin'sFlowse verá como la siguiente captura de pantalla:
Una vez que todo se vea bien, realice los pasos a continuación:
Haga clic enGuardar.
Ingrese la etiqueta de flujo(CadenceTracker); el nombre de la API se completará automáticamente.
Versión API para ejecutar el flujo : 59
Etiqueta de la entrevista : CadenceTracker{!$Flow.CurrentDateTime}
Haga clic enGuardar.
¡Casi llegamos! Una vez que todo se vea bien, haga clic en el botón Activar .
Paso 3: Activadores asincrónicos de Apex para eventos de cambio
Tiene la opción de recibir notificaciones de cambios en la plataforma Lightning suscribiéndose para cambiar eventos a través de activadores de Apex. Si bien los activadores de Apex para eventos de cambio comparten similitudes con los de los objetos estándar de Salesforce, también existen distinciones notables. Al igual que los activadores de Apex tradicionales para objetos de Salesforce, usted crea un activador de evento de cambio para el evento de cambio específico asociado con el objeto de Salesforce. Vale la pena señalar que en este contexto solo se admiten activadores posteriores a la inserción.
El desencadenador de evento de cambio se activa cuando se recibe uno o un lote de eventos de cambio. A diferencia de los activadores de objetos, los activadores de eventos de cambio se ejecutan de forma asincrónica una vez completada la transacción de la base de datos. La ejecución asincrónica hace que los desencadenadores de eventos de cambio sean ideales para procesar la lógica empresarial que consume muchos recursos y al mismo tiempo mantener la lógica basada en transacciones en el desencadenador de objetos. Al desacoplar el procesamiento de cambios, los desencadenantes de eventos de cambio pueden ayudar a reducir el tiempo de procesamiento de las transacciones.
Los desencadenantes de eventos de cambio tienen estas características.
Se ejecutan bajo la entidad Proceso Automatizado. Como tal, los registros de depuración para el desencadenador son creados por la entidad de proceso automatizado y los campos del sistema, como CreadoById y OwnerId, hacen referencia al proceso automatizado.
Están sujetos a los límites del gobernador síncrono de Apex.
Tienen un tamaño de lote máximo de 2000 mensajes de eventos (la cantidad de elementos en Trigger.New).
Cree un desencadenador de Apex en el objeto ActionCadenceTrackerChangeEvent .
desencadenar ActionCadenceTrackerAsyncTrigger en ActionCadenceTrackerChangeEvent (después de insertar) { ActionCadenceTrackerAsyncTriggerHandler.handleChangeEvent(Trigger.new);
}
Cree una clase de Apex ActionCadenceTrackerAsyncTriggerHandler , como se muestra a continuación.
clase pública ActionCadenceTrackerAsyncTriggerHandler { handleChangeEvent vacío estático público (List<ActionCadenceTrackerChangeEvent> changeEvents) { Set<Id> actionCadenceTrackerIds = nuevo Set<Id>(); for(evento ActionCadenceTrackerChangeEvent: eventos de cambio) { encabezado EventBus.ChangeEventHeader = evento.ChangeEventHeader; if (header.changetype == 'ACTUALIZAR' && event.CompletionReason == 'Manualmente eliminado') { Lista<Id> recordIds = header.getRecordIds(); actionCadenceTrackerIds.addAll(recordIds); } } if(!actionCadenceTrackerIds.isEmpty()) { encontrarRelatedLeads(actionCadenceTrackerIds); } } findRelatedLeads vacío estático privado (Set<Id> actionCadenceTrackerIds) { Lista<Lead> AssociatedLeads = [Seleccione ID, OwnerId de plomo donde Id IN (SELECCIONAR targetId DESDE ActionCadenceTracker DÓNDE ID EN: actionCadenceTrackerIds AND Target.Type = 'Cliente')]; if(!asociadosLeads.isEmpty()) { runFlow (líderes asociados); } } runFlow vacío estático privado (List<Lead> leads) { Mapa<Cadena, Objeto> params = nuevo Mapa<Cadena, Objeto>(); params.put('varR_Leads', clientes potenciales); Flow.Interview.CadenceTracker myFlow = nuevo Flow.Interview.CadenceTracker(params); miFlow.start(); }
}
Prueba de concepto
De ahora en adelante, si un usuario elimina un cliente potencial de la cadencia de participación de ventas, Change Data Capture (CDC) publicará un evento. Más adelante, un activador de Apex y un flujo crearán una tarea para el propietario principal.
El primer paso es asignar la cadencia de participación de ventas a un cliente potencial.
El siguiente paso es eliminar manualmente el cliente potencial de la cadencia de participación en ventas.
Tarea creada por automatización.
Evaluación formativa:
¡Quiero saber de ti!
¿Qué es lo que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntete libre de compartir en los comentarios a continuación.
Última actualización el 8 de septiembre de 2023 por Rakesh Gupta
Salesforce es la solución CRM basada en ventas, marketing y operaciones más sólida y completa disponible. Los límites de lo que puede hacer con los datos de sus clientes (una vez que están en Salesforce) están limitados únicamente por su imaginación y habilidad para navegar por el ecosistema.
Pero no hay dos organizaciones iguales. Cada uno tiene sus propias necesidades, desde simples hasta complejas, desde la captura de clientes potenciales hasta la coordinación de eventos. Y la forma en que ingresa sus datos en Salesforce (tipo de integración, creación de objetos, coincidencia de campos, llenado previo, etc.) puede marcar la diferencia en cuanto a si sus flujos de trabajo de CRM realmente automatizan su trabajo pesado y le ahorran tiempo valioso o lo atascan con tareas manuales.
Es un motivo de orgullo para nosotros que miles de organizaciones sin fines de lucro, proveedores de servicios, empresas de atención médica y más hayan confiado en Jotform para canalizar los datos de sus clientes a Salesforce a lo largo de los años.
Jotform ahora está disponible enAppExchange de Salesforcepara una experiencia de creación de formularios completamente nueva e intuitiva.
Beneficios de Jotform para Salesforce de un vistazo
Con Jotform en Salesforce AppExchange, sus flujos de trabajo experimentarán una verdadera automatización de extremo a extremo, lo que ayudará a su organización a lograr sus objetivos más rápido.
He aquí por qué le encantará Jotform para Salesforce:
Esta nueva solución de formulario, integrada automáticamente con sus objetos y campos de Salesforce, elimina el cambio de plataforma.
Con las automatizaciones líderes en la industria de Jotform directamente en su entorno Salesforce, puede crear flujos de trabajo más confiables y productivos.
La integración de datos automatizada entre sus formularios de cara al cliente y su base de datos de Salesforce garantiza precisión y ahorro de tiempo (lo que significa ahorro de dinero).
La aplicación de Jotform se alinea con los estándares de seguridad de Salesforce y juntos ofrecemos cumplimiento normativo y seguridad de datos de CRM y formularios líderes en la industria.
¡Puedes probar la aplicación Jotform para Salesforce gratis!
Si usted es una organización sin fines de lucro que digitaliza aplicaciones de quienes las necesitan, un B2B que recopila clientes potenciales y activos de video, un proveedor de atención médica que registra información de pedidos y facturas de consultorios médicos, o una empresa líder con más de 50,000 clientes, Jotform para Salesforce está diseñado para escale con sus necesidades.
¿Quién debería utilizar Jotform para Salesforce?
Insinuamos que industrias como las organizaciones sin fines de lucro y la atención médica son grandes usuarios de la integración heredada de Salesforce de Jotform. Pero realmente cualquier persona en cualquier industria que ya use Salesforce debería usar esta versión mejorada de la integración.
Además de sincronizar contactos y clientes potenciales estándar , a continuación se muestran algunos casos de uso de muestra.
Industria
Usos de Jotform y Salesforce
Sin ánimo de lucro
Las organizaciones sin fines de lucro pueden sincronizar donaciones, solicitudes, registros de programas y material adicional de eventos que recopilan a través de Jotform con Salesforce. También pueden utilizar las aplicaciones de donación de Jotform y las automatizaciones del flujo de trabajo de aprobación dentro de Salesforce.
Cuidado de la salud
Tanto los profesionales de la salud como los proveedores utilizan Jotform para crear facturas y formularios de citas compatibles con HIPAA. Pueden sincronizar datos de contactos relacionados con objetos personalizados en Salesforce.
Ventas
Un flujo de trabajo automatizado de Jotform y Salesforce para clientes potenciales es fundamental para cualquier equipo de ventas. Además, Ventas recibe propuestas de presupuestos así como formularios de pedido de nuevos clientes. Pueden volver a atraer a su base de clientes actual con formularios precargados.
Servicios financieros
Las empresas de servicios financieros utilizan ambas soluciones para calificar y gestionar la creación de préstamos y actualizar la información existente de los clientes, utilizando lógica condicional y formularios PDF inteligentes.
B2B/gestión de eventos
Las empresas orientadas a servicios asignan envíos de registro a objetos personalizados y registran comentarios de encuestas en Salesforce.
Consultores
Los usos aquí van desde la creación de formularios que pueden integrarse en un sitio web hasta soluciones de firma electrónica y el llenado previo de datos utilizando información de Salesforce.
Agencias y mesas comerciales
Estas empresas venden servicios, cobran pagos y solicitudes y luego mapean y rastrean a sus solicitantes en Salesforce.
Creando su primer formulario de Salesforce
No solo todas sus automatizaciones de Jotform están disponibles dentro de su instancia de Salesforce, sino que una gran característica nueva de Jotform para Salesforce es el tipo de formulario único de Salesforce dentro de la aplicación.
Desde la página de inicio de Mis formularios , haga clic en el botón Crear formulario como lo haría normalmente. Ahora verá la opción Crear formulario de Salesforce , que le permite crear un formulario que se integra automáticamente con sus objetos de Salesforce.
Esta nueva opción es perfecta para asignar de manera eficiente sus campos de Salesforce a sus formularios. Permite una sincronización de campos más sencilla desde sus formularios con clientes potenciales, contactos, cuentas u otros objetos/registros personalizados, dejando atrás conexiones de integración complejas.
Simplemente seleccione los objetos que se adapten a sus necesidades y agréguelos a su nuevo formulario. Los objetos son básicamente mini bases de datos. Cada base de datos contiene campos relevantes para el objeto.
En este formulario de ejemplo de Salesforce, seleccioné tres objetos: Cliente potencial , Evento y Adjunto . No hay límite para la cantidad de objetos que puede seleccionar para satisfacer sus necesidades de datos.
Una vez que haya seleccionado todos sus objetos (y haya verificado los campos dentro de ellos para obtener los datos que desea en su formulario), haga clic en Crear formulario . Su nuevo formulario mostrará todos los campos que ha seleccionado.
Por ejemplo, cuando alguien envía mi nuevo formulario de cliente potencial, sus detalles completarán automáticamente los objetos en mi base de datos de Salesforce.
¿Necesita actualizar o editar su formulario? Utilice el nuevo ícono de Salesforce dentro del creador de formularios para actualizar sus objetos. Puede cambiar o agregar campos dentro de sus objetos existentes o agregar otros nuevos.
Cuando haga clic en Siguiente , tendrá la opción de activar Actualizar registro para evitar duplicados en su base de datos.
También puede hacer clic en el botón Agregar acción para crear un nuevo registro, actualizar uno existente o buscar un registro existente.
La ventaja de Jotform, ahora en Salesforce
Si bien otras soluciones de AppExchange pueden ayudarlo a importar datos a Salesforce, creemos que la calidad y el alcance de nuestras automatizaciones de flujo de trabajo marcan la diferencia.
Por ejemplo, ahora es fácil completar previamente sus formularios de forma segura dentro de la interfaz de Salesforce.
Simplemente vaya a la pestaña Publicar , acceda a Precompletar desde el menú de la izquierda, elija Salesforce Precompletar y cargue la información de contacto y cliente potencial que necesita en sus formularios. Como ya está en Salesforce, no es necesaria ninguna autenticación de cuenta.
Se ha demostrado que rellenar previamente formularios ofrece mayores tasas de conversión de formularios y una mayor precisión de los clientes potenciales (además de actualizar sus contactos de Salesforce o los detalles de su empresa con nueva información).
Para profundizar más,obtenga más información sobre cómo completar previamente formularios con sus objetos de Salesforce.
Si está cobrando pagos, puede agregar una de las más de 40 integraciones de pagos a sus formularios de Salesforce. Personalice los campos en sus objetos para indicar si se ha cobrado una tarifa al enviar el formulario o registre el monto pagado en los campos de su objeto.
Cree un acuerdo de Jotform Sign dentro de Salesforce que se configure automáticamente para la aprobación de las partes interesadas internas. Recopilará documentos firmados que mantendrán el trabajo en movimiento y la productividad en sus niveles más altos.
Estas y otras automatizaciones basadas en formularios, como la generación de PDF, Jotform Approvals, Jotform Apps y Report Builder, junto con los nuevos formularios de Salesforce, continúan optimizando sus flujos de trabajo mientras se adaptan a sus necesidades únicas de Salesforce de maneras innovadoras.
¿Nuevo en Salesforce? Esta potente solución puede ayudar a su organización a gestionar los procesos y la participación de los clientes de muchas maneras, pero empezar puede resultar desalentador.
A continuación se ofrecen algunos consejos útiles que debe tener en cuenta si recién está comenzando:
Fijación de objetivos . Defina cómo se ve el éxito para sus necesidades y flujos de trabajo. Catalogue los datos que está importando y mapee cómo le gustaría administrarlos. Esto le brindará una visión integral de sus flujos de trabajo ideales para que pueda separar las necesidades de los deseos.
Considere un consultor . No todo el mundo tiene el presupuesto para una consultoría. Pero si lo hace, tener un asesora mano puede ahorrarle mucho tiempo. Además, pueden capacitar a sus partes interesadas para que el conocimiento pueda transmitirse en el futuro.
Entrena . Cada organización tiene expertos en la materia, así que ¿por qué no crear sus propios gurús de Salesforce? Haga que aquellos que quieran aprender nuevas habilidades comiencen con recursos gratuitos disponibles enTrailblazer Community , YouTube, TikTok y más.
Conclusión
Jotform para Salesforce mejora su experiencia ofreciendo
Captura de datos perfecta a través de formularios dentro de la interfaz de Salesforce. Esto facilita el mapeo de campos y la transferencia de datos a clientes potenciales, contactos y objetos personalizados.
Generación de leads mejorada . Simplemente inserte sus formularios de Salesforce en el sitio web de su empresa (o en las redes sociales). Su equipo de ventas puede realizar un seguimiento fácil de los flujos de datos en tiempo real.
Calidad de datos mejorada a través de un mapeo de campo preciso a través de la aplicación Jotform. Sus equipos ya no necesitarán ingresar datos manualmente.
Una experiencia de usuario integrada . Tener acceso a todas las funciones de Jotform dentro de Salesforce elimina la necesidad de cambiar de plataforma, lo que simplifica el proceso.
Si ya es cliente pago de Jotform con una integración de Salesforce, podrá instalar Jotform en AppExchange y comenzar a usarlo ahora (los consultores son una excepción).
Para aquellos con un plan Jotform Starter, pueden disfrutar de hasta cinco formularios y 100 envíos mensuales por nuestra cuenta; sin embargo, deberá actualizar a un plan pago si desea aumentar el uso, el espacio de almacenamiento o la cantidad de usuarios.
Si sus necesidades exceden lo disponible con el plan Starter, puede unirse a cualquiera de los siguientes planes para un solo usuario:
Bronce: $39/mes
Plata: $49/mes
Oro: $129/mes
Las organizaciones sin fines de lucro califican automáticamente para descuentos. Y para aquellos que requieren acceso a toda la empresa o un enfoque personalizado, Jotform ofrece soluciones empresariales;Hable con alguienhoy para obtener más información.
Pruebe Jotform para Salesforce hoy y díganos cómo se siente al respecto. Además, no dude encomentarnosen AppExchange.
Chris es creador y comercializador de contenidos en Jotform y cree en la escritura creativa como fuerza para el cambio positivo. Al poseer una experiencia profesional y un conjunto de habilidades diversas, Chris produce un liderazgo intelectual galardonado. El cine, los viajes, el diseño y la buena comida y vino con amigos se encuentran entre sus amores.
Evaluación formativa:
¡Quiero saber de ti!
¿Qué es lo que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntete libre de compartir en los comentarios a continuación.
Última actualización el 22 de septiembre de 2023 por Rakesh Gupta
Gran idea o pregunta duradera:
¿Cuáles son las mejores alternativas a Experience Cloud del mercado? ¿Y es posible encontrar una herramienta sin código que le permita crear portales y aplicaciones totalmente personalizables?
Objetivos:
Después de leer este blog, tendrás:
Comprensión de Salesforce Experience Cloud, incluidas sus fortalezas y debilidades.
Conocimiento de los pros y los contras de utilizar desarrollo personalizado para crear portales y aplicaciones web.
Una introducción a Titan Web, con una explicación de cómo esta herramienta de código cero puede brindarle la libertad de crear cualquier aplicación web o portal que desee.
El director de ventas Eric Brown se acercó a Isabella Stewart , administradora de Salesforce en Gurukul On Cloud (GoC). Eric quiere un sistema totalmente digitalizado para gestionar los procesos internos de recursos humanos. La directora de recursos humanos y su equipo están muy ocupados utilizando procesos manuales y parcialmente digitalizados para contratar, gestionar nóminas y cuidar el bienestar de los empleados. ¡Asegurarse de que todo el papeleo y la administración estén actualizados es una pérdida de hasta 12 horas cada semana! Está empezando a ser abrumador.
La empresa quiere un portal para empleados rentable y totalmente personalizable, integrado con Salesforce, que no requiera codificación ni conocimientos técnicos especiales para su implementación. Saben que Salesforce Experience Cloud es una posible solución, pero también les preocupa que sea costoso y no lo suficientemente flexible para sus necesidades. Entonces, ¿cuáles son las alternativas de Experience Cloud ?
Experiencia en la nube
Salesforce Experience Cloud, anteriormente conocida como Salesforce Community, se introdujo en 2013 como una plataforma para crear comunidades en línea de marca. A lo largo de los años, Salesforce Experience Cloud evolucionó con actualizaciones y mejoras. Hoy en día, sirve como una solución integral para crear portales atractivos, aplicaciones web, comunidades y experiencias de autoservicio, lo que permite a las organizaciones ofrecer interacciones fluidas e impulsar el compromiso de clientes, socios y empleados.
La creación de aplicaciones web y portales de autoservicio con Experience Cloud puede mejorar la experiencia de sus empleados en el lugar de trabajo y aliviar la presión de su departamento de recursos humanos. Un portal de autoservicio o una aplicación web creada con Experience Cloud proporciona a los empleados acceso directo a su información personal y profesional, lo que facilita la actualización de información y registros en cualquier momento o lugar.
Echemos un vistazo más de cerca a algunas de las ventajas y desventajas de utilizar Experience Cloud para crear portales para su organización.
Las mayores ventajas de Experience Cloud:
Plantillas listas para usar para impulsar su implementación
Soluciones Lightning Bolt disponibles de forma gratuita o compradas en Salesforce AppExchange
Acceso completo a los datos de Customer 360 guardados en Salesforce
Salesforce Experience Cloud funciona a través de un software intuitivo de arrastrar y soltar, por lo que no es necesario tener ninguna experiencia técnica especial ni conocimientos de codificación.
Dado que Experience Cloud es nativo de Salesforce, no es necesario realizar ningún trabajo de integración adicional. El software ya habla el idioma de los administradores de Salesforce y tiene la interfaz de usuario con la que estarían familiarizados.
Puedes crear páginas públicas y privadas. La ventaja de esto es que sólo los usuarios con los permisos de acceso adecuados podrán visitar espacios específicos.
Las opciones listas para usar de Experience Cloud le brindan G2M rápido y lo más probable es que pueda crear su portal o sitio en uno o dos días.
También tiene la opción de diseñar su portal o sitio web de la manera que desee utilizando imágenes y colores personalizados para que coincidan con la apariencia de su marca.
Listo para dispositivos móviles
Contras de Experience Cloud:
Las opciones listas para usar no le brindan mucha flexibilidad para personalizar y ajustar el diseño de su página para satisfacer sus necesidades.
Experience Cloud es algo limitado desde la perspectiva de la experiencia del usuario; por ejemplo, no puede utilizar elementos repetidos, edición en línea de tablas, pantallas modales y otros elementos atractivos. Por ejemplo, es posible que desee crear un elemento que abra la biblioteca de cámaras del usuario al hacer clic en él, pero con Salesforce Experience Cloud esto es imposible.
Salesforce Experience Cloud es definitivamente caro, por lo que si desea optar por esta solución, prepárese para pagar
No se puede diferenciar entre la experiencia del usuario de escritorio y móvil usando opciones listas para usar. Para ello es necesario recurrir al desarrollo personalizado.
Sin validaciones de entrada en tiempo real. Primero debes hacer clic en el botón “Guardar”.
Las integraciones fuera de Salesforce son tareas complejas y requieren un desarrollo extenso
Hay una cantidad limitada deplantillasdisponibles y estas solo cubren casos de uso específicos. Esto significa que es posible que no encuentre la plantilla adecuada para las necesidades de su negocio.
¿Puede el desarrollo personalizado superar las limitaciones de Experience Cloud?
Aprovechar los recursos del desarrollo personalizado es otra forma de crear un portal o sitio web que se adapte a las necesidades de su negocio. Y en muchos sentidos, esta opción le ayuda a superar las limitaciones de Experience Cloud. Estas son algunas de las principales razones para utilizar el desarrollo personalizado, así como sus inconvenientes:
Ventajas del desarrollo personalizado:
Lo bueno de utilizar el desarrollo personalizado para crear sus aplicaciones y portales es que puede hacer lo que quiera con su lienzo en blanco, por ejemplo, integrarlo con múltiples sistemas externos a Salesforce.
Puede emplear desarrolladores para crear cualquier UX que desee, de modo que no esté limitado a Salesforce UX al determinar la experiencia que tienen los clientes cuando visitan su sitio.
Puedes crear diseños dinámicos para cualquier dispositivo, por ejemplo, portátil o móvil, sin restricciones.
Su portal o sitio puede personalizarse para cualquier caso de uso que se le ocurra. ¡Si puedes soñarlo puedes hacerlo!
Proporciona mayor control y propiedad: con un portal o sitio web de desarrollo propio, las organizaciones tienen total propiedad y control sobre la propiedad intelectual, el código fuente y las mejoras futuras.
El desarrollo personalizado ofrece la gran ventaja de brindarle libertad absoluta para crear el portal de sus sueños sin barreras, restricciones ni compromisos. Pero este método no está exento de desventajas. Vea a continuación algunos de los principales puntos débiles:
Desventajas del desarrollo personalizado:
Falta de experiencia técnica: desarrollar un portal o una aplicación web requiere habilidades y recursos técnicos especializados
Limitaciones de tiempo y recursos: crear una aplicación o un portal web puede ser un proceso que requiere mucho tiempo y una inversión significativa.
La salida al mercado puede verse seriamente retrasada, lo que podría afectar negativamente a sus objetivos comerciales.
Rápidos avances tecnológicos: el panorama tecnológico evoluciona continuamente y periódicamente surgen nuevas características, marcos y plataformas. Desarrollar una aplicación web o un portal internamente requiere mantenerse actualizado con las últimas tecnologías y mejores prácticas.
Desafíos de mantenimiento y soporte: una vez que se desarrolla un portal de autoservicio o una aplicación web, el mantenimiento y el soporte continuos son esenciales para su buen funcionamiento.
Básicamente, dependerá de los recursos de desarrollo y se verá paralizado cuando desee realizar actualizaciones simples. ¡No suena divertido!
Problemas de integración: desarrollar una aplicación web o un portal internamente puede plantear conflictos de integración con sistemas, bases de datos o servicios de terceros existentes.
Consideraciones de seguridad y cumplimiento: crear una aplicación o un portal seguro implica implementar medidas de seguridad sólidas y garantizar el cumplimiento de las normas de protección de datos.
Centrarse en las competencias básicas: las organizaciones deben evaluar si el desarrollo de una aplicación o portal se alinea con sus competencias básicas y prioridades estratégicas.
¡Dinero dinero dinero! Esta es definitivamente tu opción más cara, así que prepárate para acumular una factura.
¡Haciéndolo todo con la plataforma de experiencia digital de Titan!
Titan es una plataforma de experiencia completa que le brinda la libertad de crear sus propios portales, sitios de autoservicio, formularios de Salesforce , encuestas y mucho más. Y es una de las mejores alternativas a Experience Cloud del mercado.
Titan es una plataforma sin código con una interfaz intuitiva de arrastrar y soltar que permite a los administradores de Salesforce crear y configurar sitios web potentes para cualquier industria y caso de uso. Entonces, la verdadera pregunta es: ¿cómo se compara Titan con Experience Cloud? ¿Tiene también ventaja sobre el desarrollo personalizado? A continuación, detallamos cómo Titan Web puede permitirle crear sitios web impresionantes y portales personalizados:
Puntos ganadores de Titán:
Plataforma de código cero con una interfaz sencilla de arrastrar y soltar, por lo que no necesita gastar dinero en desarrollos costosos
Integración bidireccional en tiempo real con Salesforce y acceso completo a Customer 360
Plantillas listas para usar para acelerar su comercialización
Experiencia de usuario 100 % flexible por dispositivo para viajes de cliente personalizados
Totalmente de marca para que coincida con la apariencia de su organización.
El enfoque móvil primero le brinda la capacidad de escalar
Totalmente seguro y compatible con los principales marcos regulatorios como GDPR, SOC 2 e HIPAA
Cree perfiles personalizados para clientes y socios que sean fáciles de implementar
Genere documentos y fírmelos desde su aplicación o portal
Capacidades sin conexión para que pueda utilizar esta herramienta incluso cuando esté fuera del alcance de Internet
Compatible con múltiples idiomas y monedas
Integraciones integradas de terceros
Capacidades completas de gestión de versiones
Rentable en comparación con la competencia
Ahora, echemos un vistazo a las desventajas de Titan:
El tiempo de incorporación puede variar entre 4 y 20 horas, según la complejidad de su caso de uso.
Ocasionalmente, para una lógica o un diseño de diseño muy complejos, una organización necesitará agregar código JS y/o CSS para ajustarse a sus necesidades.
El dominio/subdominio del sitio web está limitado a uno por cliente. Se pueden comprar dominios adicionales por un costo adicional
El arma secreta de Titan es su poder para crear aplicaciones web totalmente personalizables sin tener que escribir una sola línea de código. Sin concesiones ni agendas ocultas para que pueda acelerar su comercialización.
Comparación de Experience Cloud frente a la competencia
Arriba, profundizamos en Salesforce Experience Cloud y sus principales alternativas. Pero, ¿cuál es el resultado final y quién sale como el verdadero ganador? Eche un vistazo a nuestra tabla comparativa a continuación para descubrirlo:
Experiencia en la nube
Desarrollo a la medida
Plataforma Titán
Costo
Medio
Muy caro
Medio
Hora de comprar
Corto
Largo
Muy corto
Esfuerzo de mantenimiento prolongado
Bajo
Muy alto
Bajo
Recursos necesarios para el proyecto
Administrador de SF
Desarrolladores
Administrador de SF
Flexibilidad de diseño
Muy poco
Lleno
Lleno
Experiencia de usuario
Lo mismo que Salesforce. No puedes crear tu propia experiencia de usuario
Puedes desarrollar cualquier cosa que puedas soñar.
Casi todo lo que puedas soñar
Marca
Sí con temas personalizados
Sí
Sí con temas personalizados
Integración de Salesforce
Sí
Requiere desarrollo por integración.
Sí
Integraciones de terceros
Requiere complementos pagos o desarrollo
Requiere complementos pagos o desarrollo
Sí
Validaciones de datos en tiempo real
No
Sí
Sí
Flujo de trabajo y automatización
Sí
No
Sí
Móvil
Listo para dispositivos móviles
Diseño completamente dinámico por dispositivo
Diseño completamente dinámico por dispositivo
Conocimiento de Salesforce
Compatible
Requiere desarrollo
Compatible
Compromiso digital de Salesforce
Compatible
Requiere desarrollo
Compatible
Depende 100% de usted decidir las funciones y capacidades que necesita para crear los sitios web y portales de sus sueños. Pero está claro que si está buscando una herramienta web sin código, ultraflexible y rentable que mejore la experiencia del usuario, Titan es una excelente opción.
Quizás recuerde que anteriormente en este artículo una empresa estaba buscando una solución flexible y sin código para crear un portal de recursos humanos para los empleados. Eligieron utilizar Titan y estos son los resultados:
Los empleados inician sesión en el portal:
Reciben una autenticación de dos factores enviada a su correo electrónico para que puedan iniciar sesión en el portal sin administrar ninguna otra contraseña.
Las páginas web y los portales se muestran dinámicamente según la autenticación del usuario, proporcionando una experiencia de usuario dinámica con cada clic.
Todo está construido sólo con herramientas de arrastrar y soltar. No es necesaria ninguna codificación, ya que todos los datos fluyen hacia y desde Salesforce en tiempo real.
El Portal de Recursos Humanos brinda a los empleados un fácil acceso a información personal y profesional, lo que hace que sea muy conveniente actualizar registros y sus propios datos personales:
Los formularios digitales personalizados han eliminado los errores de entrada y las imprecisiones de los datos con el precompletado dinámico utilizando datos de Salesforce.
En el pasado, cada vez que un empleado quería reservar sus días de vacaciones, tenía que completar un formulario de licencia manual, escanearlo y enviarlo por correo electrónico a Recursos Humanos para su aprobación. Ahora simplemente hacen clic en la pestaña de días de vacaciones para gestionar las solicitudes de licencia.
El Portal de Recursos Humanos del Empleado permite a los empleados registrar pedidos de equipos de TI directamente desde sus dispositivos móviles, computadoras portátiles y de escritorio.
Los empleados pueden presentar solicitudes de gastos de la empresa antes de que se procesen para la nómina y pueden presentar las solicitudes para recibir el pago antes de la fecha límite de nómina. Esto significa que no hay que esperar a que se paguen las reclamaciones de gastos.
Incluso hay un Centro de conocimiento donde los empleados pueden obtener respuestas a todas sus preguntas frecuentes y solucionar problemas rápidamente:
Recursos Humanos ahorra 40 horas al mes en trabajo manual (¡incluida la nómina!) y los empleados están más comprometidos.
La empresa logró hacer todo esto dentro del presupuesto y en un tiempo récord, sin tener que implementar ningún código ni desarrollo personalizado.
Prueba de concepto
Consulte este portal de recursos humanos sin código donde los empleados pueden iniciar sesión y realizar diversas acciones de autoservicio:
[contenido incrustado]
Salesforce Experience Cloud es una solución conocida con un historial decente en permitir a las empresas crear aplicaciones y portales para mejorar la experiencia del cliente. Aun así, no está exento de limitaciones: falta de flexibilidad en lo que respecta a la experiencia del usuario, ninguna opción real para diferenciar entre la experiencia de escritorio y móvil, y dificultad para integrarse con herramientas fuera de Salesforce, ¡por nombrar solo algunas!
Utilizar el desarrollo personalizado para crear su propia aplicación o portal personalizado resolverá la mayoría de los mayores problemas de Experience Cloud. Con el desarrollo personalizado, obtienes total libertad para crear cualquier portal o aplicación que puedas soñar y obtener diseños dinámicos para cualquier dispositivo. Si bien el desarrollo personalizado mitiga los puntos débiles de Experience Cloud, esta solución presenta sus propios desafíos, que incluyen trabajo y mantenimiento de desarrollo complicados, gastos adicionales y una comercialización más lenta.
Titan gana a lo grande al brindarle lo mejor de ambos mundos: obtiene software de arrastrar y soltar combinado con la libertad y flexibilidad que brinda el desarrollo personalizado. Si está buscando la alternativa líder a Experience Cloud y le gustó lo que leyó, ¡póngase en contacto hoy!
Evaluación formativa
¿Qué es lo que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntete libre de compartir en los comentarios a continuación.
Última actualización el 2 de octubre de 2023 por Rakesh Gupta
Los datos no son sólo un buen extra; es esencial. Especialmente ahora, cuando las empresas operan en gran medida en espacios digitales, la necesidad de un buen uso de los datos es clara. El papel del análisis de datos se ha vuelto crucial para impulsar el éxito de una empresa. Es importante que los líderes de las empresas tengan un plan de datos sólido, uno que permita que sus negocios avancen rápidamente y enfrenten desafíos difíciles.
Los equipos se benefician enormemente de un análisis de datos sólido. Pueden tomar decisiones inteligentes más rápido que antes y también con mayor precisión. Este tipo de uso de datos también ayuda a los equipos a trabajar mejor juntos al eliminar cosas que obstaculizan un buen trabajo en equipo. Los líderes de TI tienen un papel especial aquí. Tienen las habilidades para hacer que los datos sean útiles de nuevas maneras, transformando el trabajo de los equipos y mejorando la experiencia de los clientes.
¿Qué es Salesforce Data Cloud y por qué debería implementarlo?
Salesforce Data Cloudestá diseñada para cambiar la forma en que las empresas interactúan con los clientes. Es bueno para recopilar datos de diferentes lugares. Estos datos van a una gran área de almacenamiento llamada lago de datos. Luego utiliza un análisis preciso para explicar lo que significan los datos.
Salesforce Data Cloud ayuda a vincular varias fuentes y nubes más rápidamente en toda la plataforma. Sin embargo, Data Cloud también es un artículo que se puede pedir. Aunque no todos los clientes de Salesforce han comprado Data Cloud, aunque se encuentran en el punto de partida, todavía utilizan Data Cloud hasta cierto nivel. Sin embargo, todo esto se fortalece cuando se utiliza la Nube de Datos como plataforma de personalización y unificación de datos.
¿Por qué necesito implementar una nube de datos ahora?
Imagínese cómo el volumen de datos crece rápidamente cuando piensa en la cantidad de clics que hace cada cliente. Puede realizar un seguimiento de dichos datos de participación a medida que ocurren, por ejemplo, cuando los usuarios abren y hacen clic en correos electrónicos, exploran páginas en sus aplicaciones móviles y miran artículos en su tienda en línea. Es mucho más probable que las personas hagan clic cuando les envías un correo electrónico o una oferta que les resulta útil. Puede capturar la interacción cuando un consumidor hace clic en Data Cloud. Cuando sepa qué les interesa y si es probable que compren algo o no, podrá aprovechar esta información a su favor.
Para cada sector o puesto, la Nube de Datos puede generar experiencias y oportunidades de negocio potentes.
Para analizar cuentas integradas y adquirir información rápida y fácilmente sobre sus clientes y los efectos comerciales, los analistas pueden conectar Data Cloud aTableau o QlikView . Cuando una empresa puede identificar a sus consumidores en función de la cantidad y el tema de sus tickets de soporte, puede desarrollar y llevar a cabo un plan para reducir esos tickets. Verifique los datos nuevamente para asegurarse de que el plan haya tenido éxito.
Los desarrolladores pueden crear software utilizando datos de Data Cloud, como un sistema de puntuación de salud que mide la puntuación de salud de un paciente utilizando objetos e información prediseñados. Cuando una actividad de datos inicia un flujo para enviar notificaciones a los médicos cuando una puntuación cae por debajo de un nivel específico, esa puntuación y su uso se convierten en una experiencia que salva vidas.
Según la probabilidad de conversión de un cliente, los vendedores pueden obtener información sobre sus clientes potenciales y sus ventas potenciales. Según los hábitos de navegación de los usuarios y los niveles actuales de oferta de productos, la gestión del comercio electrónico puede utilizar datos para personalizar su sitio web.
¿Cómo funciona la nube de datos de Salesforce?
En pocas palabras, Data Cloud permite a los administradores de Salesforce realizar una variedad de acciones, que incluyen, entre otras:
Vincula tus fuentes de datos por lotes y de streaming.
Refine los datos entrantes empleando métodos de transformación y adhiriéndose a protocolos de gobernanza.
Estandariza tus datos conformándolos a un modelo establecido.
Fusione diferentes elementos de datos mediante la aplicación de reglas de coincidencia de identidades.
Explore su conjunto de datos para obtener información mediante consultas y análisis en profundidad.
Implementar algoritmos de inteligencia artificial para pronosticar comportamientos.
Divida y fragmente sus datos y luego impleméntelos en múltiples plataformas para crear experiencias personalizadas.
Evalúe sus datos a través de soluciones de análisis compatibles.
Exporte estos datos a diversos destinos, alineando acciones con objetivos comerciales específicos.
Vuelva a evaluar, cuantifique y ajuste periódicamente sus activos de datos.
Cómo empezar con la nube de datos
Se puede utilizar una estructura similar a un lago de datos para describir Salesforce Data Cloud. Como ejemplo, recopilando todos los datos de la plataforma Salesforce. Sin embargo, también es capaz de importar datos de otras fuentes externas, como lagos de datos.
Perspectiva :
Un lago de datos es una ubicación concentrada para almacenar datos no procesados. Las empresas utilizan este sistema de almacenamiento enorme, adaptable y asequible para recopilar y guardar grandes cantidades de datos organizados, no estructurados y semiestructurados en su formato original. Las publicaciones en redes sociales, los registros de sensores y los datos de ubicación son solo algunos ejemplos de los datos no estructurados que recopilan los lagos de datos.
Lo que indica para los usuarios : las marcas son más capaces de predecir los requisitos y necesidades de los consumidores debido a la gran cantidad de información accesible en un lago de datos.
Cómo afecta a los equipos : Los equipos pueden acceder a enormes cantidades de datos en una ubicación, lo que les permite moverse más rápidamente y mantenerse al día con (o superar) a los oponentes.
Pasos de implementación
Revise esta lista de verificación sugerida antes de comenzar a utilizar Data Cloud. Confirme que su equipo esté configurado antes de implementar Data Cloud, verifique estos puntos:
El equipo comprende los principales conceptos y restricciones que pueden afectar la facturación.
Analiza la gestión de la marca y la estructura organizacional.
Examina los principios del modelo de datos antes de acordar una estrategia de datos.
Analice los datos que ya tiene y las fuentes de datos.
Reconoce a un administrador de Salesforce para configurar Salesforce Data Cloud.
Enumera los usuarios además de los permisos que requieren.
Establece objetivos de segmentación.
Costo y disponibilidad de Salesforce Data Cloud
Salesforce Data Cloud es costoso. Es una inversión que requiere una planificación meticulosa porquecomienza en $10 milpor organización, mensualmente. De manera realista, dependiendo de los valores de sus datos, es posible que su empresa ya necesite gastar más en Data Cloud. Como tus datos crecen constantemente, es importante tenerlo presente todo el tiempo, pero…
… En el último evento de Dreamforce, Salesforce anunció que las licencias gratuitas de Data Cloud ya están disponibles. Los clientes que tengan Enterprise Edition o superior ahora pueden acceder a Data Cloud sin costo alguno. En esta oferta se incluyen dos licencias de Tableau Creator, que permiten a las empresas conectar hasta 10 000 perfiles de clientes y comenzar sus exploraciones.
En conclusión
Los datos son más cruciales que nunca y supervisar el flujo de datos en constante crecimiento es un trabajo increíble. Sin embargo, los datos tienen una enorme influencia. El potencial de obtener conocimientos empresariales que puedan fundamentar decisiones y producir experiencias sorprendentes para los clientes crece a medida que aumenta el acceso a los datos y la alfabetización sobre datos para las personas de toda su empresa. La IA y el CRM se pueden utilizar para impulsar actividades inteligentes y proporcionar servicios personalizados a escala cuando se combinan con datos procesables en tiempo real.
Ahora, con Data Cloud y Einstein AI nativos en la plataforma Einstein 1, las empresas pueden crear fácilmente aplicaciones y flujos de trabajo impulsados por AI que potencian la productividad, reducen costos y brindan increíbles experiencias a los clientes. – Parker Harris, cofundador y director de tecnología, Salesforce
Los datos del cliente, el contenido empresarial, los datos de telemetría, los chats de Slack, los datos parcialmente estructurados y otros datos estructurados y no estructurados se fusionan y conectan mediante Data Cloud, la plataforma de datos a hiperescala de Salesforce que funciona en tiempo real, para generar un perfil único del cliente. La plataforma ya vincula e integra 100 mil millones de registros diariamente y procesa 30 billones de transacciones mensuales.
Las empresas ahora pueden crear perfiles de clientes completos y unificados, ofrecer nuevas experiencias de CRM y acceder a datos fragmentados de formas completamente nuevas gracias a la integración completa de la nueva Nube de Datos con la Plataforma Einstein 1.
Referencias:
Dorian es un administrador y desarrollador certificado 4x de Salesforce con amplia experiencia en la personalización de Salesforce según las necesidades del cliente. Comenzó su trayectoria en TI como administrador de CRM y mantuvo su enfoque en el ecosistema de Salesforce. Le encanta explorar nuevas integraciones en Salesforce y detectar formas alternativas de optimizar los procesos comerciales dentro del CRM. Actualmente trabaja como desarrollador de Salesforce a tiempo completo y contribuye con contenido al portal educativo SFApps.info.
Evaluación formativa:
¡Quiero saber de ti!
¿Qué es lo que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntete libre de compartir en los comentarios a continuación.
Última actualización el 18 de agosto de 2023 por Rakesh Gupta
La seguridad de los datos debe ser una de sus principales prioridades si recopila, almacena y administra información personal. La protección de datos es especialmente importante si sus flujos de trabajo de recopilación de datos de Salesforce se integran con varias herramientas, como un generador de formularios web o un sistema de pago.
Muchas regiones e industrias tienen leyes estrictas de privacidad de datos, que incluyen GDPR, GLBA, HIPAA y otras, que rigen la forma en que las organizaciones manejan los datos. Puede garantizarla seguridad y el cumplimiento de los datosa lo largo de sus flujos de trabajo de recopilación de datos de Salesforce de varias maneras, incluido el enmascaramiento y el cifrado de datos, el control y los permisos de acceso, y el monitoreo regular.
Comprender la importancia de mantener los datos seguros
Los datos confidenciales son todos los datos que se pueden usar para identificar a una persona o dañarlos si se pierden o son robados. Los tipos de datos confidenciales incluyen:
Información de identificación personal
información de salud protegida
Registros financieros o educativos
Datos étnicos, políticos y biométricos
Mantener la seguridad de los datos personalesayuda a generar confianza con las personas que comparten su información personal con usted. También garantiza que su organización evite sanciones por incumplimiento de las leyes de privacidad de datos.
Prácticas recomendadas de seguridad al recopilar datos
Su organización es responsable de asegurarse de que las herramientas de recopilación de datos que utiliza tenganimplementadas las medidas de seguridad adecuadas. Podrá proteger mejor los datos confidenciales desde el momento en que se recopilan, a medida que se mueven a través de sus flujos de trabajo y cuando se trasladan a Salesforce.
Enmascarar campos sensibles
El enmascaramiento de campo ayuda a garantizar que los datos confidenciales se mantengan confidenciales y no se expongan innecesariamente a usuarios no autorizados.
Cifrar datos
El cifrado de datos ayuda a proteger los datos confidenciales contra el acceso, uso o robo no autorizados, ya sea que estos datos estén en reposo o en tránsito.
Limite el acceso a los datos
La implementación de control de acceso y permisos garantiza que solo los usuarios autorizados puedan acceder o modificar los datos.
Supervisar y auditar flujos de trabajo
La vigilancia constante ayuda a garantizar que los flujos de trabajo de recopilación de datos mantengan el nivel adecuado de seguridad para mantener seguros los datos confidenciales.
2 formas de mejorar la seguridad en los flujos de trabajo de recopilación de datos de Salesforce
Un flujo de trabajo de recopilación de datos de varios pasos tendrá diferentes puntos de entrada con posibles riesgos de seguridad, como formularios, correos electrónicos y cargas de archivos. Es importante que en cada paso de sus procesos de datos, tenga medidas de seguridad para garantizar que personas no autorizadas no accedan a datos o archivos.
Asegúrese también de probar continuamente sus flujos de trabajo de recopilación de datos de Salesforce en busca de vulnerabilidades de seguridad. La detección temprana de amenazas disminuirá la posibilidad de una violación de datos u otras consecuencias graves.
Implementar reglas de retención de datos
La creación de una política clara de retención de datos es fundamental para definir cómo su organización maneja los datos con fines de cumplimiento. Es importante establecer reglas sobre qué datos deben conservarse y durante cuánto tiempo, así como reglas sobre quién tiene acceso y cómo deshacerse de los datos correctamente una vez que ya no se necesitan.
Acceso a los datos
Establecer reglas de acceso a datos como parte de su política de retención de datos garantizará que solo los usuarios autorizados en un flujo de trabajo tengan acceso a datos confidenciales. Los controles administrativos también pueden incluir el requisito de que los usuarios inicien sesión para ver o modificar las listas de respuestas del flujo de trabajo.
Purga de datos
Dentro de su flujo de trabajo, la configuración dereglas de depuración de datospuede garantizar que los datos de respuesta se eliminen de forma permanente una vez que ya no los utilice. Personalice esta configuración de depuración de datos, como la frecuencia con la que se completa una depuración, según sus requisitos de retención de datos.
Aproveche las aprobaciones del flujo de trabajo
Establecer pasos de aprobación dentro de los flujos de trabajo es importante para garantizar la responsabilidad durante el proceso de recopilación de datos. Los pasos de aprobación dentro de un flujo de trabajo significan que ningún usuario tiene control total sobre los cambios o decisiones de datos, lo que ayuda a mejorar la seguridad y la confidencialidad.
Detección de errores
Los pasos de aprobación en un flujo de trabajo proporcionan un proceso de revisión de datos estándar antes de que los datos se acepten o utilicen oficialmente. Esto ayuda a reducir las incoherencias y los errores, así como a garantizar el cumplimiento de las normas de privacidad de datos pertinentes.
Pista de auditoría
Los registros de auditoría para las aprobaciones de flujos de trabajo simplifican el proceso al registrar cada paso de aprobación y crear un registro histórico de los cambios realizados en los datos. También se pueden utilizar durante las investigaciones en caso de brechas de seguridad o problemas de datos.
Simplificación de los flujos de trabajo de recopilación de datos de Salesforce con FormAssembly
Cuando se trata de proteger los flujos de trabajo de datos, es fundamental contar con políticas de privacidad y seguridad de datos. Su organización puede beneficiarse del uso de una única plataforma de flujo de trabajo y recopilación de datos como FormAssembly, que facilita la centralización de la protección contra amenazas y garantiza el cumplimiento. Este enfoque le permite escalar más fácilmente, auditar los flujos de datos de forma centralizada y aumentar la eficiencia, al mismo tiempo que maximiza la seguridad en todos sus flujos de trabajo de recopilación de datos de Salesforce.
La potente plataforma conectada a Salesforce de FormAssembly combina la recopilación de datos segura y compatible con un generador de procesos visual e inteligente que le permite crear procesos complejos que incluyen formularios, correos electrónicos, integraciones y más, todo sin código.
Descubra cómo FormAssembly puede ayudarlo a optimizar sus flujos de trabajo de recopilación de datos de Salesforce mientras mantiene seguros los datos confidenciales.
¿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.
Última actualización el 14 de agosto de 2023 por Rakesh Gupta
Gran idea o pregunta duradera:
¿Cómo se puede transferir la propiedad de Lightning Dashboards en Salesforce?
Objetivos:
Después de leer este blog, podrá:
Transferir la propiedad de los tableros Lightning
y mucho más
Isabella Stewart , administradora de Salesforce en Gurukul On Cloud (GoC), fue contactada por el director de ventas Eric Brown. Le pidió que cambiara el propietario de Opportunity Pipeline de 'Sarika Gupta' a 'Rakesh Gupta'.
Enfoque de Campeón de Automatización (I-do):
Después del lanzamiento de Winter'24 , ahora es posible actualizar los tableros Lightning transfiriendo la propiedad del tablero cuando cambian las responsabilidades o el creador del tablero deja su organización. El nuevo propietario tiene control total sobre el contenido del tablero. Anteriormente, tenía que clonar o volver a crear el tablero cuando el creador pasó a otras responsabilidades.
Para iniciar la transferencia de la propiedad del tablero, el usuario debe tener lo siguiente:
Ver todos los datos o Ver el panel de control de mi equipo
Ver todos los datos le permite cambiar el propietario a cualquier persona de su organización
Ver los paneles de mi equipo le permite cambiar el propietario de y a cualquier persona que aparezca en la jerarquía de roles de su equipo.
Edite o administre el acceso a la carpeta que contiene el tablero. Al nuevo propietario se le concede acceso de edición a la carpeta del panel.
El nuevo propietario debe tener acceso para editar el tablero transferido.
Siga los pasos a continuación para transferir la propiedad del panel Lightning:
Paso 1: Habilite Permitir que los usuarios cambien la configuración del propietario del tablero (solo Lightning Experience)
Haga clic en Configuración .
En el cuadro Búsqueda rápida, ingrese Configuración de informes y tableros y luego seleccione Configuración de informes y tableros .
Seleccione Permitir que los usuarios cambien el propietario del tablero (solo Lightning Experience).
Haga clic en Guardar .
Paso 1: cambiar el propietario del panel Lightning
Vaya a la pestaña Paneles .
Abra el panel Canal de oportunidades .
Seleccione Cambiar propietario.
Seleccione un nuevo propietario, es decir, Rakesh Gupta en este escenario.
Haga clic en Guardar .
Prueba de concepto
La propiedad de la cartera de oportunidades se transfirió con éxito a Rakesh Gupta.
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.
Última actualización el 8 de agosto de 2023 por Rakesh Gupta
Gran idea o pregunta duradera:
¿Cómo puede crear una cotización sin asociarla con una oportunidad?
Objetivos:
Después de leer este blog, podrá:
Crear una cotización sin oportunidad relacionada
y mucho más
Isabella Stewart , administradora de Salesforce en Gurukul On Cloud (GoC), fue contactada por el director de ventas Eric Brown. Le pidió que permitiera a los representantes crear presupuestos sin vincularlos a una oportunidad para acelerar los tratos.
Enfoque de Campeón de Automatización (I-do):
Una cotización de venta, a menudo denominada cotización de venta o cotización de precio, representa la propuesta de un vendedor a un posible comprador, que detalla el costo y las condiciones de una posible venta. Sirviendo como una herramienta fundamental en las interacciones de empresa a empresa (B2B) y de empresa a consumidor (B2C), una cotización de ventas varía en su aplicación en estos dos sectores.
Dentro del ámbito B2B, una cotización de venta a menudo actúa como el paso inicial, ofreciendo a los compradores potenciales una idea del costo anticipado, evaluando así su interés en un producto o servicio. Si el comprador está interesado, suele pedir una propuesta formal.
Por el contrario, en el sector B2C, la cotización de ventas a menudo surge después del viaje de ventas. El comprador ya ha decidido que quiere comprar el producto o servicio, y simplemente está solicitando una cotización por escrito para poder compararla con otras ofertas.
Siga los pasos a continuación para crear una cotización sin vincularla a una oportunidad:
Haga clic en Configuración .
En el cuadro Búsqueda rápida, ingrese Configuración de cotizaciones y luego seleccione Configuración de cotizaciones .
Seleccione Crear cotizaciones sin una oportunidad relacionada.
Haga clic en Guardar .
Prueba de concepto
A partir de ahora, un representante puede crear una cotización sin asociarla a una oportunidad 😀.
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.
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.
[contenido incrustado]
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.
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 abiertaexistente 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 .
En este artículo, hablé sobre muchos hechos ocultos que no son muy conocidos sobre la regla de validación . Por ejemplo, mostré cómo usar una regla de validación para administrar requisitos usando tipos de metadatos personalizados.
¿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
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ónpara 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}
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 registrospara 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 elobjeto Oportunidad de la lista desplegable.
SeleccioneSe 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}
Cuántos registros almacenar:
seleccioneTodos 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}
Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición.
Haga clic enListo .
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.
[contenido incrustado]
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. Leaeste artículo para obtener más información.
Prueba de concepto
A partir de ahora, si un usuario intenta crear una nueva oportunidad en una cuenta que ya tiene una oportunidad abierta, se activará el flujo activado por registro antes de guardar que hemos creado y mostrará un mensaje de error.
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.
Ú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 comoSUMO Schedulerjunto 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.
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__RecordPagecomo 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 ScreenFlow . 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 :
Tipode 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 :
Tipode 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-flowpara 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.
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 isExposedse 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__RecordPagesignifica que este componente está diseñado para usarse en una página de registro en Lightning App Builder.
¿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.
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 ScreenFlow . 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.
Utilizaremos el componente de ubicación de entrada de rayospara 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.
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 longitudedeclarandos 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,ypara 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 isExposedse 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__FlowScreensignifica 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.
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 Elementode 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 Elementode 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.
Última actualización el 6 de julio de 2023 por Rakesh Gupta
Gran idea o pregunta duradera:
Cómo monitorear el consumo de eventos de la plataforma según el nombre del evento, el ID del cliente, el tipo de evento y el tipo de uso
Objetivos:
Después de leer este blog, podrá:
Obtenga una comprensión integral de los eventos de la plataforma
Descubra las ventajas de monitorear los patrones de consumo para la optimización del rendimiento del sistema y la identificación de tendencias de uso
Implemente métricas de uso mejoradas para eventos de plataforma a través de una guía paso a paso
Explore los beneficios de monitorear patrones de consumo para optimizar el rendimiento del sistema e identificar tendencias de uso
y mucho más
Jestilla Zetkin trabaja como arquitecta de Salesforce en Gurukul On Cloud (GoC), recientemente se encontró con una publicación de blog titulada Monitoreo de publicación de eventos y uso de entrega de la plataforma . Esta publicación proporcionó información sobre cómo varias formas de monitorear el uso de la publicación y entrega de eventos de la plataforma.
A medida que se expande el negocio de GoC, la afluencia de datos ha llevado a casos frecuentes de alcanzar los límites diarios para los eventos de la plataforma. En consecuencia, Jestilla está buscando una solución para monitorear el consumo de eventos de la plataforma según el nombre del evento, la identificación del cliente o el tipo. Esta capacidad de monitoreo le permitirá analizar qué evento está consumiendo una parte significativa de la asignación, lo que le permitirá tomar las medidas adecuadas en consecuencia.
¿Qué es Plataforma de Eventos?
Las arquitecturas basadas en eventos se han vuelto muy populares en los últimos años y por una buena razón. Se basa en el patrón de fuego y olvido . Activar un evento y dejar que cada sistema maneje la lógica empresarial le permite mantener los sistemas no relacionados desacoplados y puede ayudar a simplificar la arquitectura.
Los eventos de la plataforma le permiten entregar notificaciones de eventos seguras, escalables y personalizables dentro de Salesforce o desde fuentes externas. Las aplicaciones pueden publicar y suscribirse a eventos de plataforma en la plataforma de Salesforce mediante Apex, Flow o en un sistema externo mediante CometD. Si desea obtener más información sobre el evento de plataforma, consulte elmódulo de Trailhead .
Contiene datos de uso para la publicación y entrega de eventos a clientes CometD y Pub/Sub API, componentes empApi Lightning y retransmisiones de eventos. Si las métricas de uso mejoradas están habilitadas, los datos de uso están disponibles para las últimas 24 horas, hasta la última hora y para el uso diario histórico.
En API 58.0 y versiones posteriores, puede habilitar Métricas de uso mejoradas para obtener datos de uso por nombre de evento y cliente para intervalos de tiempo granulares. PlatformEventUsageMetric contiene métricas de uso separadas para eventos de plataforma y eventos de captura de datos modificados.
Nombre del campo
Detalles
Tipo de evento
El tipo de evento para el que le gustaría consultar las métricas de uso, como un evento de cambio o un evento de plataforma personalizado. Este campo está disponible cuando las métricas de uso mejoradas están habilitadas.
Segmento de tiempo
El intervalo de tiempo utilizado para agregar los datos de uso devueltos en los resultados de la consulta. Este campo está disponible cuando las métricas de uso mejoradas están habilitadas.
Tipo de uso
Este campo está disponible cuando las métricas de uso mejoradas están habilitadas. El tipo de métricas de uso de eventos para consultar, como publicación de eventos o entrega de eventos. Utilice este campo con los campos EventName o EventType. Los valores posibles son:
PUBLISH —Métricas de uso para eventos publicados.
ENTREGA —Métricas de uso para eventos que se entregaron a los suscriptores.
Valor
El valor de uso para la métrica y el intervalo de fechas especificados.
Para obtener datos de uso completos para cada evento, aprovecharemos las métricas de uso de eventos mejoradas. Esta función nos permitirá recopilar información agregada e identificar los eventos específicos que consumen una parte importante de la asignación.
Mientras que PlatformEventSettings representa configuraciones para eventos de plataforma y eventos de captura de datos modificados.
Nombre del campo
Detalles
enableEnhancedUsageMetrics
Habilita métricas de uso mejoradas para consultas ejecutadas en PlatformEventUsageMetric. Las métricas de uso mejoradas proporcionan campos adicionales para las consultas y segmentos de tiempo granulares. Para obtener más información, consulte Métricas de uso mejoradas en la Guía para desarrolladores de eventos de plataforma. El valor predeterminado es falso.
Práctica guiada (nosotros hacemos):
Antes de que pueda obtener más métricas de uso, debe habilitar las Métricas de uso mejoradas en la API de metadatos . Para hacer esto, establezca el valor del campo enableEnhancedUsageMetrics en verdadero en PlatformEventSettings . Una vez hecho esto, podrá obtener métricas de uso detalladas para el consumo de eventos de la plataforma.
Paso 1: habilite las métricas de uso mejoradas
Asegúrese de que Visual Studio Code esté correctamente configurado y que su organización de Salesforce esté conectada a él.
Modifique el paquete.xml para recuperar los metadatos relacionados con los eventos de la plataforma.
Ejemplo de paquete.xml para recuperar la configuración de PlatformEvent.
El siguiente paso es modificar PlatformEventSettings .
Proceda a modificar PlatformEventSettings, cuyos valores se almacenan en el archivo PlatformEvent.settings en la carpeta de configuración .
En PlatformEventSettings, establezca el campo enableEnhancedUsageMetrics en true .
Guarde los cambios en el archivo PlatformEvent.settings-meta.xml .
Finalmente, haga clic con el botón derecho en el archivo de su paquete en el Explorador y seleccione SFDX: Implementar origen en el manifiesto en la organización .
Paso 2.1: obtenga métricas de uso diario agregadas por nombre de evento
Haga clic en Configuración | Consola de desarrollador .
En el Editor de consultas, ejecute la siguiente consulta SOQL
SELECCIONE EventName, EventType, UsageType, Value, StartDate, EndDate FROM PlatformEventUsageMetric WHERE TimeSegment='Diario'
Ú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ómofunciona 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).
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:
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 aAPI 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-SaveFlow . 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).
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
Haga clic en Agregar clave
Clave: clave
Tipo de datos : cadena
Requerido : Verdadero
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ónProporcione 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"
}
Última actualización el 19 de junio de 2023 por Rakesh Gupta
Atrás quedaron los días en que la creación, generación y gestión de documentos eran producto de tediosos procesos manuales. Hoy en día, DocGen se puede optimizar fácilmente mediantela integración nativa de airSlate con Salesforce .
En pocas palabras, DocGen es una forma de crear documentos con contenido dinámico. Permite agregar lógica condicional e insertar fragmentos de datos de tamaño variable para generar un documento. Simplemente escriba la sintaxis utilizandoel generador de etiquetas incorporado deairSlate y no tendrá ningún problema con el formato o la creación de plantillas para otros casos más adelante.
Por ejemplo, el equipo de ventas no sabe qué producto específico comprará un cliente, por lo que puede agregar varias condiciones en su formulario de pedido que se mostrarán según el producto. Esto permite crear un formulario de pedido una vez, lo que reduce la cantidad de procesamiento manual.
Generación de documentos con contenido dinámico precargado desde Salesforce
Imagine que puede generar un informe que incluya datos sobre Oportunidades que no están cerradas, o solo aquellas creadas después de una fecha específica, o cualquier otro criterio de su elección con un solo clic del botón. Más tarde, puede adjuntar estos informes a los registros de Salesforce, cargarlos en un almacenamiento externo o enviarlos por correo electrónico a los clientes si es necesario.
Para hacerlo, deberá crear tablas con un número dinámico de filas agregando etiquetas de tabla a la plantilla DOCX.
Para comenzar, seleccione el flujo en el que está trabajando actualmente en airSlate o cree un nuevo flujo si aún no tiene uno. Elija Generación de documentos en el bloque Documento . Cree o cargue el documento DOCX de su elección.
Luego cree o inserte una tabla simple con la siguiente sintaxis de etiquetas o simplemente copie y pegue la tabla a continuación:
Nombre
Cantidad
{{tabla(Productos)}}
{{OpportunityName}}
{{Cantidad de oportunidad}}
{{mesa final}}
Tome nota: {{table(Products)}} {{endtable}} son las filas entre la fila del elemento de apertura.
Cuando haya terminado, haga clic en Completar .
Cómo funciona DocGen en airSlate para Salesforce: agregar documentos y formularios
Vaya a la pestaña Bots y haga clic en Agregar bot .
Elija Precompletar desde el registro de Salesforce en la categoría de Salesforce. Este airSlate Bot precarga automáticamente un documento con datos tomados de un registro de Salesforce, objetos secundarios y archivos PNG y JPEG.
Haga clic en Instalar Bot para agregarlo a su flujo de trabajo, luego se abrirá la ventana de configuración de Bot.
Conecte su cuenta de Salesforce y elija el objeto base de Salesforce que contiene el registro que necesita (por ejemplo, Cuenta ). Seleccione Oportunidad como objeto relacionado.
Seleccione Tabla para el tipo de datos que desea mapear
Asignar campos de objetos de Salesforce a campos de documentos
A continuación, ajuste las condiciones de búsqueda para el registro inicial
El registro inicial es un registro en Salesforce que usamos para extraer datos. Si ejecuta el Flujo desde Salesforce, a través de un botón personalizado , use ese registro donde se hizo clic en el botón personalizado, como el registro de inicio. Si el Flujo no se ejecuta desde Salesforce, simplemente agregue algunos criterios de búsqueda para encontrar el registro que contiene los datos que necesita.
Seleccione el registro inicial de Salesforce para completar previamente los campos del documento. Seleccione un campo de objeto de Salesforce y asígnelo a un campo en el documento (por ejemplo, ID de cuenta ). Cuando un destinatario agrega datos, el Bot encontrará e insertará otros datos para este registro en los campos que ha asignado.
Establezca condiciones si desea ajustar cómo y cuándo actuará el Bot. Las condiciones son opcionales y pueden basarse en un documento , destinatario , fecha ,flujo o etapa del contrato ,número de campos completados . Puede agregar más de una condición, así como especificar cualquier cantidad de condiciones para activar el Bot.
Si es necesario, puede personalizar la configuración avanzada , configurar cuándo actuará el bot y agregar etiquetas personalizadas.
Después de eso, haga clic en Aplicar configuración para habilitar el Bot.
[contenido incrustado]
Cómo funciona DocGen en airSlate para Salesforce: agregar un bot de Salesforce
DocGen en airSlate para Salesforce funciona a la perfección con la adición de Salesforce Bot. Esta poderosa integración agiliza el proceso de generación de documentos dentro del ecosistema de Salesforce. Al aprovechar el bot de Salesforce, los usuarios pueden automatizar fácilmente la creación y distribución de documentos, ahorrando un tiempo valioso y aumentando la productividad. Con solo unos pocos clics, el bot extrae datos relevantes de los registros de Salesforce y los fusiona con plantillas personalizables, generando documentos pulidos y sin errores.
[contenido incrustado]
Agregar lógica condicional a sus plantillas DOCX
Agregar etiquetas condicionales a sus plantillas DOCX le permite mostrar bloques de texto según ciertas condiciones.
La sintaxis básica de las etiquetas condicionales aparece de la siguiente manera:
{{if(ConditionFieldName='Valor1')}}
{{else((ConditionFieldName='Value2')}}
{{terminara si}}
Veamos cada pieza por separado.
{{if(ConditionFieldName}} acción exitosa, si la condición 1 es verdadera
{{else((ConditionFieldName}} acción exitosa, si la condición 2 es verdadera
{{endif}} condición es cualquier expresión, variable o valor de una función, cálculo o fuente de datos.
Usando condiciones, puede mostrar u ocultar párrafos de texto. Para crear una condición, puede usar un Campo o Variable (para casos más complejos) con operadores como = , != , > , < .
Para los valores de condición, puede utilizar valores establecidos, valores de campo o variables.
Veamos un caso en el que, según el destinatario, el administrador de la cuenta deja una nota para aprobar o revisar el informe mensual.
A continuación, encontrará una guía paso a paso sobre cómo agregar etiquetas condicionales a sus plantillas DOCX:
Cargue el documento que necesita y haga clic en Editar junto a él .
Agregue la etiqueta condicional de su elección a su plantilla DOCX. Por ejemplo, insertaremos la etiqueta con condiciones basadas en la etapa de oportunidad. {{if(AccountSite='Legal')}} ¡Felicitaciones por cerrar los tratos!
{{else(AccountSite='Sales')}} Verifique las cantidades.
{{terminara si}}
Después de esto, haga clic en Completar .
Cómo funciona DocGen en airSlate para Salesforce: configuración de la lógica condicional (parte 1)
Muévase a la pestaña Bots , haga clic en Agregar bot , busque e instale el prerrelleno desde el registro de Salesforce desde la categoría de Salesforce.
Una vez que se abra la ventana de configuración del Bot, configure los ajustes de Conexión .
A continuación, seleccione objetos y campos de mapa . Elija el objeto base de Salesforce que contiene el registro que necesita (por ejemplo, Cuenta ).
El tipo de datos que va a asignar está configurado como Único de forma predeterminada.
Asigne campos de objetos de Salesforce a campos de documentos: Nombre de cuenta y Sitio de cuenta en nuestro caso.
Luego, seleccione el registro inicial de Salesforce para completar previamente los campos del documento y decida cuándo actuará el Bot.
Si es necesario, vaya a la configuración avanzada para establecer la frecuencia con la que actuará el bot, qué hacer con una revisión en caso de que el bot falle y agregue etiquetas para buscar flujos.
Haga clic en Aplicar configuración para habilitar el Bot.
[contenido incrustado]
Cómo funciona DocGen en airSlate para Salesforce: configuración de la lógica condicional (parte 2)
Con DocGen, puede automatizar la generación de documentos en función de condiciones específicas, agilizando su flujo de trabajo y eliminando errores manuales. Al configurar la lógica condicional, puede controlar dinámicamente el contenido, el formato y la distribución de sus documentos, asegurando la personalización. Descubra cómo DocGen de airSlate revoluciona la generación de documentos, haciendo que su experiencia con Salesforce sea aún más eficiente y efectiva.
[contenido incrustado]
Una vez que haya terminado la configuración del bot, puede activar su flujo de trabajo con elbotón personalizado .
Cómo funciona DocGen en airSlate para Salesforce: botón personalizado
Para ver si se ejecutó el flujo, regrese a su cuenta de airSlate y continúe con todos los flujos haciendo clic en Cerrar en la parte superior de la página.
Junto al Flujo, haga clic en Revisar . Elija el Paso para revisar el Flujo y haga clic en Revisar una vez más.
Una vez que se ejecuta el Flujo, el documento se completará automáticamente con los valores de los registros de Salesforce y, luego, partes del texto se representarán condicionalmente en función de estos valores.
[contenido incrustado]
Cómo funciona DocGen en airSlate para Salesforce: revisión del flujo de trabajo
Con DocGen, puede revisar sin esfuerzo sus flujos de trabajo, mejorando la colaboración y la productividad. Esta poderosa herramienta le permite realizar cambios en tiempo real en sus documentos, realizar un seguimiento de las revisiones y recopilar comentarios de las partes interesadas, lo que garantiza una gestión de documentos sin inconvenientes. Diga adiós a las revisiones manuales que consumen mucho tiempo y adopte la eficiencia de DocGen for Salesforce de airSlate, transformando su flujo de trabajo en un proceso optimizado y sin errores.
[contenido incrustado]
La línea de fondo
En esta publicación de blog, hemos explorado el proceso de generar documentos con contenido dinámico precargado desde Salesforce e incorporar lógica condicional en sus plantillas DOCX. Sin embargo, creemos que solo hemos tocado las posibilidades ilimitadas que ofrece airSlate para Salesforce . Si está intrigado por las capacidades deairSlate, le recomendamos que solicite una demostración para presenciar todo su potencial en acción.
Evaluación formativa:
¡Quiero saber de ti!
¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.
Isabella Stewart trabaja como administradora de Salesforce en Gurukul On Cloud (GoC). Aunque es relativamente nueva en la programación de Apex, está ansiosa por explorar diferentes métodos para programar clases por lotes en Salesforce y ampliar su conocimiento en esta área.
¿Qué es un trabajo programado?
En Salesforce, un trabajo programado se refiere a una función que permite a los administradores y desarrolladores programar la ejecución automática de clases de Batch en momentos o intervalos específicos.
Los trabajos programados en Salesforce generalmente se usan para realizar varias acciones, como actualizaciones de datos, procesamiento de registros, envío de notificaciones por correo electrónico, generación de archivos PDF e integración con sistemas externos. Pueden ser particularmente útiles para tareas que deben realizarse a intervalos regulares, como por hora, día, semana o mes.
👉 Para programar una clase de Apex para que se ejecute a intervalos regulares, primero escriba una clase de Apex que implemente la interfaz Schedulable proporcionada por Salesforce.
la clase global ScheduleAccountSync implementa Programable { ejecución de vacío global (Contexto programable SC) { AccounSync ASync = new AccounSync(); }
}
Enfoque de Campeón de Automatización (I-do):
Para crear un trabajo programado en Salesforce, puede usar Apex Scheduler a través de la configuración de Salesforce o el método System.schedule desde Developer Console (Ejecutar anónimo).
Programar trabajos con el programador de Apex
Salesforce Apex Scheduler es una función de la plataforma de Salesforce que le permite programar la ejecución de clases de Apex que implementa la interfaz programable en momentos específicos, como diario, semanal o mensual.
Para programar una clase con Apex Scheduler, siga los pasos que se describen a continuación:
Haga clic en Configuración .
En el cuadro Búsqueda rápida, escriba Clases de Apex .
Seleccione Clases de Apex y luego haga clic en Programar Apex .
Ingrese la siguiente informacion:
Nombre : Sincronizar cuenta con SAP
Clase de Apex : ScheduleAccountSync
Frecuencia : Para configurar como un trabajo diario, elija la opción Semanal y luego seleccione todos los días de la semana.
Inicio : la fecha y la hora en que comenzó la iteración más reciente del trabajo programado.
Fin : la fecha y la hora en que el trabajo terminó o terminará.
Hora de inicio preferida : la fecha y la hora en que está programada la ejecución del trabajo
Haga clic en Guardar .
👉 Puede monitorear el progreso del trabajo en la página Todos los trabajos programados .
Una limitación clave de Apex Scheduler radica en su incapacidad para ejecutar una tarea cada pocos minutos, cada seis horas o en días específicos, como el primer lunes o el último día hábil del mes. Para abordar esto, podemos utilizar el método System.schedule a través de la consola del desarrollador, que permite escenarios de programación más complejos.
Programar trabajos usando el método System.Schedule
Cuando una clase se implementa con la interfaz Schedulable , se puede usar el método System.schedule para ejecutarla. En particular, el programador opera a nivel del sistema, lo que garantiza que todas las clases se ejecuten independientemente de los permisos de los usuarios individuales.
El método System.schedule toma tres parámetros: el nombre del trabajo, una expresión que indica la hora y la fecha programadas para la ejecución del trabajo y el nombre de la clase. La estructura de la expresión cron es la siguiente:
Segundos Minutos Horas Día_de_mes Mes Día_de_semana Opcional_año
Los siguientes son los valores de la expresión:
Nombre
Valores
Caracteres especiales
Segundos
0–59
Ninguno
Minutos
0–59
Ninguno
Horas
0–23
, – * /
Dia del mes
1–31
, – * ? / LW
Mes
1–12 o lo siguiente:
ENE
FEB
MAR
ABR
PUEDE
JUN
JUL
AGO
SEP
OCT
NOV
DIC
, – * /
Día de la semana
1–7 o lo siguiente:
SOL
LUN
MAR
CASARSE
JUE
VIE
SE SENTÓ
, – * ? / L #
año_opcional
nulo o 1970–2099
, – * /
Lea esta guía para desarrolladores de Salesforce para obtener más información sobre el método System.Schedule. No es posible actualizar los trabajos programados. Debe eliminar el trabajo existente y luego programarlo nuevamente.
Por ejemplo, si desea ejecutar la clase de Apex ScheduledAccountSync cada hora, específicamente cinco minutos después de cada hora, ejecute la siguiente declaración a través de Ejecutar de forma anónima en Developer Console.
System.schedule('AccountSyncJob', '0 5 * * * ?', new ScheduleAccountSync());
//AccountSyncJob = Nombre del trabajo
//0 5 * * * ? = Expresión cron
//ScheduleAccountSync = Clase de Apex con interfaz programable
También puede usar CronMaker, una aplicación simple que lo ayuda a crear expresiones cron para su escenario.
Aquí hay varios ejemplos que ilustran cómo utilizar la expresión cron.
Programe un trabajo para ejecutar cada seis horas de lunes a viernes
Para programar un trabajo para que se ejecute cada seis horas de lunes a viernes, ejecute la siguiente expresión cron:
System.schedule('AccountSyncJobWeekDayPerSixHour', '0 0 0,6,12,18 ? * MON-FRI', new ScheduleAccountSync());
Programar un trabajo para que se ejecute cada cuatro horas diariamente
Para programar un trabajo para que se ejecute cada cuatro horas diariamente, ejecute la siguiente expresión cron:
System.schedule('AccountSyncJobEveryFourHour', '0 0 0/4 * * ? *', new ScheduleAccountSync());
Programe un trabajo que se ejecute cada hora diariamente
Para programar un trabajo que se ejecuta cada hora a lo largo de cada día, utilice la siguiente expresión cron:
System.schedule('AccountSyncJobEveryHour', '0 0 0/1 * * ? *', new ScheduleAccountSync());
Programe un trabajo para que se ejecute cada 30 minutos diariamente
Para programar un trabajo que se ejecuta cada media hora todos los días, utilice la siguiente expresión cron:
System.schedule('AccountSyncJob0', '0 0 * * * ? *', new ScheduleAccountSync());
System.schedule('AccountSyncJob30', '0 30 * * * ? *', new ScheduleAccountSync());
Programe un trabajo para que se ejecute una vez al día a las 10:00 p. m.
Para programar un trabajo que se ejecute una vez al día a las 22:00, utilice la siguiente expresión cron:
System.schedule('AccountSyncJobOnceInADay', '0 0 22 * * ?', new ScheduleAccountSync());
Programe un trabajo para ejecutar el viernes y el sábado a las 11:00 p. m.
Para programar un trabajo que se ejecute los viernes y sábados a las 11:00 p. m., utilice la siguiente expresión cron:
System.schedule('AccountSyncJobVie-Sat', '0 0 23 ? * FRI,SAT *', new ScheduleAccountSync());
Programe un trabajo para ejecutar el viernes a las 11:00 p. m.
Para programar un trabajo que se ejecute el viernes a las 11:00 a. m., utilice la siguiente expresión cron:
System.schedule('AccountSyncJobFriOnly', '0 0 23 ? * VIE *', new ScheduleAccountSync());
Programe un trabajo para ejecutar el primer día de cada año a la 01:00 a. m.
Para programar un trabajo que se ejecuta el primer día de cada año, utilice la siguiente expresión cron:
System.schedule('AccountSyncJob-1er día del año', '0 0 1 1 1 ? *', new ScheduleAccountSync());
Programe un trabajo para ejecutar el último día de cada mes a la 01:00 a. m.
Para programar un trabajo que se ejecute el último día de cada mes, utilice la siguiente expresión cron:
System.schedule('AccountSyncJob-Último día del mes', '0 0 1 L * ? *', new ScheduleAccountSync());
Programe un trabajo para ejecutar el último viernes de cada mes a la 01:00 a. m.
Para programar un trabajo que se ejecute el último viernes de cada mes, utilice la siguiente expresión cron:
¿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.
Ben Halpern es un desarrollador Jr. de Salesforce en Gurukul On Cloud (GoC) . Creó un disparador de Apex para el objeto Lead.
desencadenar LeadTrigger en Lead (antes de la actualización) { if(Desencadenador.esAntes){ si (Desencadenador.Isupdate){ para (Lead myLead:trigger.new){ if(myLead.LeadSource==null && myLead.createddate== Fecha.hoy().addDays(-1)){ //hacer algo } } } }
}
Sabe cómo escribir la clase de prueba para el código anterior. Necesita ayuda para crear un registro con una fecha pasada dentro de la clase de prueba.
Enfoque de Campeón de Automatización (I-do):
Para establecer la fecha de creación de un sObject en una clase de prueba de Apex, puede utilizar el método Test.setCreatedDate(recordId, createdDatetime) . Esto le permite especificar una fecha y hora deseadas para el campo Fecha de creación del registro de sObject dentro de la clase de prueba.
A continuación se muestran detalles sobre los parámetros setCreatedDate .
Nombre de los parámetros
Detalles
ID de registro
Representa el ID de un sObject.
Fecha y hora de creación
Representa el valor para asignar al campo Fecha de creación del sObject.
Además, es importante tener en cuenta que el método setCreatedDate no se puede utilizar dentro de los métodos anotados con @isTest(SeeAllData=true). Hagamos una pausa aquí, familiarícese con el método de prueba s etCreatedDate Apex.
Práctica guiada (nosotros hacemos):
Con estos métodos, puede determinar de forma eficaz si un campo de texto es nulo, está vacío o está en blanco en Apex. Veamos esto en acción:
Haga clic en Configuración | Consola de desarrollador .
Para crear una clase de prueba de Apex, haga clic en Archivo | Nuevo | Clase ápice.
@esPrueba clase privada LeadTrigger_Test { static testMethod void testSetCreatedDate() { Lead l = new Lead(LastName='myLastname', Company='myCompany'); insertar l; Test.setCreatedDate(l.Id, Date.today().addDays(-1)); Prueba.startTest(); Lead myLead = [SELECCIONE Id, Nombre, Apellido, Empresa, Fecha de creación FROM Lead WHERE Apellido ='miApellido' límite 1]; myLead.FirstName = 'myFirstname'; actualizar myLead;
System.assertEquals(myLead.CreatedDate, Date.today().addDays(-1)); Prueba.detenerPrueba(); }
}
Última actualización el 3 de junio de 2023 por Rakesh Gupta
Gran idea o pregunta duradera:
¿Cómo verificar en Apex si un campo de Texto es nulo, vacío o en blanco?
Objetivos:
Después de leer este blog, podrá:
Diferenciar entre nulo, vacío y en blanco
Comprobar si un campo de campo de texto es nulo
Comprobar si un campo de campo de texto está vacío
Comprobar si un campo de campo de texto está en blanco
y mucho más
Ben Halpern es un desarrollador Jr. de Salesforce en Gurukul On Cloud (GoC) . Ben quiere aprender a verificar si un campo de texto es nulo, está vacío o está en blanco en Apex.
Enfoque de Campeón de Automatización (I-do):
Es muy fácil confundir una cadena nula, vacía o en blanco para los principiantes. Sin embargo, vayamos por la definición de cada uno para trazar una línea de diferencia.
Nulo : Significa que una variable o campo no tiene un valor asignado. Por ejemplo:
String myStr1 = null;
Vacío : Significa que a una variable o campo se le ha asignado un valor, pero ese valor es una cadena vacía con cero caracteres. Por ejemplo:
Ú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 mediantequeryAll()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
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 ScreenFlow . 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.
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 deGitHubo instálelo usandoesta 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 elobjeto Prospecto de la lista desplegable.
SeleccioneSe cumplen todas las condiciones (Y).
Establecer condiciones de filtro
Fila 1:
Campo : Correo electrónico
Operador : Igual
Valor : {!$ConstanteGlobal.EmptyString}
Cuántos registros almacenar:
Seleccionartodos 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ónpara comprobar la Variable de recopilación de registros del paso 2para 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 enListo .
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 invocableEmptyRecycleBin .
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
Almacenar valores de entrada
listofSObjects : {!Get_Leads}
Haga clic enListo .
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.
Última actualización el 23 de mayo de 2023 por Rakesh Gupta
Gran idea o pregunta duradera:
¿Cómo acceder dinámicamente a la etiqueta personalizada en Apex?
Objetivos:
Después de leer este blog, podrá:
Acceda a la etiqueta personalizada en Apex dinámicamente
Acceda a la etiqueta personalizada en Apex de forma dinámica para un idioma
y mucho más
Ben Halpern es un desarrollador Jr. de Salesforce en Gurukul On Cloud (GoC) . Ben está escribiendo código Apex para una historia de usuario que requiere obtener la siguiente etiqueta personalizada en alemán e hindi.
Enfoque de Campeón de Automatización (I-do):
Después del lanzamiento de S ummer'23 , puede usar el método System.Label.get(namespace, label, language) para obtener una etiqueta personalizada, especificando opcionalmente un idioma . La función ahora permite la resolución dinámica de nombres de etiquetas en tiempo de ejecución, incluida la anulación del idioma actual del usuario si existe una traducción para el idioma solicitado.
También puede comprobar si existe una traducción para una etiqueta y un idioma en un espacio de nombres mediante Label.translationExists(namespace, label, language) . No puede acceder a las etiquetas que están protegidas en un espacio de nombres diferente.
Práctica guiada (nosotros hacemos):
Hay 3 pasos para resolver el requisito comercial de Ben usando Apex y Custom Label . Debemos:
Configuración del banco de trabajo de traducción
Crear etiquetas personalizadas
Script de Apex para acceder dinámicamente a etiquetas personalizadas
Paso 1: configurar el banco de trabajo de traducción
Este paso es opcional; sin embargo, debemos asegurarnos de que el banco de trabajo de traducción esté configurado correctamente para los requisitos actuales. Leaesteartículo de ayuda para obtener instrucciones paso a paso.
Asegúrese de agregar idiomas para la traducción, asignar traductores para cada idioma y activar o desactivar las traducciones de un idioma. Agregaré mi cuenta de usuario a hindi y alemán para el caso de uso comercial actual.
Paso 2: crea etiquetas personalizadas
Haga clic en Configuración .
En el cuadro Búsqueda rápida, escriba Etiquetas personalizadas .
Seleccione Etiquetas personalizadas y luego haga clic en Nueva etiqueta personalizada .
Cree la etiqueta personalizada como se muestra en la siguiente captura de pantalla:
Haga clic enEjecutar .
Paso 2: Script de Apex para acceder dinámicamente a etiquetas personalizadas
Haga clic en Configuración | Consola de desarrollador .
Usaré la herramienta Ejecutar Apex anónimo en Developer Console para ejecutar el código Apex.
Un bloque anónimo es un código Apex que no se almacena en los metadatos, pero se puede compilar y ejecutar. Los bloques anónimos se ejecutan como el usuario actual y pueden fallar al compilarse si el código viola los permisos de objeto y de nivel de campo del usuario.
Para abrir la ventana Ejecutar anónimo, haga clic enDepurar | Abra la ventana Ejecutar anónimo .
Ú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, consulteeste artículo .
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 ejemplo
FROM 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
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.
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.
Última actualización el 12 de mayo de 2023 por Rakesh Gupta
Gran idea o pregunta duradera:
¿Cómo calcular la cobertura general del código en Salesforce?
Objetivos:
Después de leer este blog, podrá:
Compilar todas las clases de prueba
Calcule la cobertura de código de su organización
Use SOQL a través de la API de herramientas para calcular la cobertura del código
y mucho más
Isabella Stewart trabaja como administradora de Salesforce en Gurukul On Cloud (GoC). GoC está trabajando con un proveedor externo para implementar Field Service Lightning para mejorar la experiencia del cliente. Isabella recibió una tarea de su gerente para calcular la cobertura de código en PROD.
Práctica guiada (nosotros hacemos):
La cobertura de código es una técnica de prueba que determina qué código se está probando y qué no se está probando. A menudo se representa como un porcentaje de la cantidad de líneas de código probadas para una clase o desencadenador de Apex.
Realice los pasos a continuación para obtener una cobertura de código confiable:
Paso 1: compilar todas las clases de prueba
Vaya aConfiguración | Código personalizado | Ejecución de pruebas de Apex .
Desmarque Cobertura de código agregado de solo tienda .
Luego, borre el historial de pruebas navegando a Ver historial de pruebas | Borrar datos de prueba.
El último paso es compilar todas las clases de prueba. Al navegar a Configuración | Código personalizado | Clases de Apex .
Paso 2: verifique la cobertura general del código
Una vez que se completen las pruebas unitarias de Apex, verifique la cobertura general del código para su organización siguiendo las instrucciones a continuación:
Vaya a Configuración | Código personalizado | Clases de Apex .
Haga clic en Estimar la cobertura de código de su organización .
También puede ejecutar la siguiente consulta para averiguar la cobertura de toda la organización. Si consulta desde Developer Console Query Editor, asegúrese de seleccionar Use Tooling API .
ApexOrgWideCoverage representa los resultados de las pruebas de cobertura de código para toda una organización.
SELECCIONE Porcentaje cubierto DESDE ApexOrgWideCoverage
El siguiente ejemplo de consulta SOQL recupera resultados de cobertura de código para una clase o activador específico:
SELECCIONE TestMethodName, NumLinesCovered, NumLinesUncovered FROM ApexCodeCoverage DONDE ApexClassOrTrigger.Name='AccountTrigger'
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.