Skip to content

Tag: nodo

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

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

脷ltima actualizaci贸n el 24 de octubre de 2023 por Rakesh Gupta Big Idea or Enduring Question: 驴C贸mo se registran los correos electr贸nicos enviados con la acci贸n ‘enviar correo electr贸nico’? Objetivos: Despu茅s de leer este blog, ser谩s capaz de: Utilizar el flujo activado por registro para enviar una alerta por correo electr贸nico. Utilizar la acci贸n de flujo “Enviar correo electr贸nico”. Utilizar

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

Las alertas de correo electr贸nico se env铆an por correo electr贸nico

Continue reading

Salesforce Velocity con Sweep: Un nuevo estado de 谩nimo operativo

Salesforce Velocity con Sweep: Un nuevo estado de 谩nimo operativo

脷ltima actualizaci贸n el 25 de octubre de 2023 por Rakesh Gupta Salesforce es la plataforma CRM l铆der en el mundo por una raz贸n: est谩 en constante evoluci贸n e innovaci贸n, impulsando un crecimiento masivo en el ecosistema. El ecosistema de servicios y productos de Salesforce ha crecido significativamente en los 煤ltimos a帽os. En 2021, IDC public贸 un estudio en el que se

The post Salesforce Velocity con Sweep: A New Operational State of Mind appeared first on Campe贸n de la Automatizaci贸n.

La velocidad de Salesforce con Sweep

Continue reading

Asigne autom谩ticamente nuevos clientes potenciales a una cadencia de compromiso de ventas

Asigne autom谩ticamente nuevos clientes potenciales a una cadencia de compromiso de ventas

脷ltima actualizaci贸n en October 29, 2023 por Rakesh Gupta Big Idea or Enduring Question: C贸mo se asignan autom谩ticamente los clientes potenciales reci茅n creados a una cadencia de compromiso de ventas? Objetivos: Despu茅s de leer este blog, ser谩s capaz de: Trabajar con el objeto ActionCadence para conocer una Cadencia. Asignar un compromiso de ventas

The post Asignar Autom谩ticamente Nuevos Leads a una Cadencia de Compromiso de Ventas appeared first on Automation Champion.

Continue reading

Nunca te pierdas el ritmo: notificaciones para la eliminaci贸n de clientes potenciales en la cadencia de participaci贸n de ventas

Nunca te pierdas el ritmo: notificaciones para la eliminaci贸n de clientes potenciales en la cadencia de participaci贸n de ventas

脷ltima actualizaci贸n el 1 de noviembre de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • 驴C贸mo se notifica al propietario del cliente potencial cuando alguien elimina un cliente potencial de la cadencia de participaci贸n de ventas?

Objetivos:

Despu茅s de leer este blog, podr谩s:

  • Comprender la captura de datos modificados
  • Comprender el objeto ActionCadenceTracker
  • Suscr铆base para cambiar eventos mediante un activador de Apex
  • Llamar a un flujo iniciado autom谩ticamente desde la clase Apex
  • Y mucho m谩s.

馃憠 Anteriormente, escrib铆 un art铆culo sobre Sales Engagement. 驴Por qu茅 no echarles un vistazo mientras lo haces?

  1. 驴Ya ha recorrido el camino de ladrillos amarillos de la cadencia de ventas?

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:

HVS.png

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?

Continue reading

Desmitificando Light DOM y sus casos de uso 鈽侊笍

Desmitificando Light DOM y sus casos de uso 鈽侊笍

Esta es una traducci贸n que desde EGA Futura ofrecemos como cortes铆a a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoam茅rica .

El enlace a la publicaci贸n original, lo encontrar谩s al final de este art铆culo.

Desmitificando Light DOM y sus casos de uso | Blog de desarrolladores de Salesforce

Light DOM es una funci贸n de Lightning Web Components que ha estado disponible de forma general en Lightning Experience, Experience Cloud, LWC OSS (c贸digo abierto) y todas las versiones de la aplicaci贸n m贸vil Salesforce desde Summer '23 .

Los componentes web Lightning, de forma predeterminada, se representan en DOM oculto , lo que proporciona una encapsulaci贸n y seguridad s贸lidas para sus componentes. Sin embargo, al mismo tiempo, evita el estilo global y bloquea las integraciones de terceros que introspeccionan el interior de sus componentes. Light DOM es una caracter铆stica que se puede habilitar de forma granular en componentes seleccionados, de modo que Shadow DOM no los afecte.

驴C贸mo funciona el DOM ligero?

Usemos un componente web Lightning muy simple como ejemplo.

holaCodey.html

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

Hello Codey!

“>

holaCodey.js

En el ejemplo anterior, el DOM oculto predeterminado del componente evita que una regla CSS definida en el componente principal o el host alcance el elemento <p> . Adem谩s, no permite que el c贸digo JavaScript externo al componente consulte el elemento <p> mediante las API de consulta del navegador.

Para activar el DOM ligero para un componente, debe especificar el renderMode ligero en su archivo JavaScript y la directiva de plantilla lwc:render-mode en la etiqueta <template> del componente. Ambos cambios son necesarios debido a la forma en que se compilan los componentes web Lightning.

holaCodey.html

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

Hello Codey!

“>

holaCodey.js

Cuando activa el DOM claro en un componente, el marcado del componente se adjunta al elemento anfitri贸n en lugar de a su 谩rbol de sombra. Luego puede acceder al marcado desde otros componentes de la p谩gina como cualquier otro contenido en el host del documento que no est茅 protegido por Shadow DOM.

Los componentes DOM ligeros permiten el uso de API de consulta de navegador est谩ndar como querySelector y querySelectorAll . En este caso, en lugar de usar this.template.querySelector , debes usar this.querySelector .

holaCodey.js

O m谩s simplemente, a menudo puedes usar la directiva lwc:ref en ambos casos (componentes DOM sombreados y claros) y omitir el querySelector .

holaCodey.html

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

Hello Codey!

“>

holaCodey.js

Cu谩ndo usarlo y cu谩ndo no usarlo

Light DOM es una opci贸n para cada componente individual. Sus efectos no se aplicar谩n a otros componentes a menos que tambi茅n opten por participar. Tenga en cuenta que los componentes base siempre se representan en DOM oculto.

Recomendamos habilitar DOM ligero si tiene bibliotecas que necesitan acceder a los componentes internos mediante API de consulta de navegador est谩ndar, aplicar estilos globales o necesita m谩s flexibilidad para implementar las mejores pr谩cticas de accesibilidad, siempre y cuando el componente no exponga datos confidenciales. Cubriremos estos casos de uso con m谩s profundidad en la siguiente secci贸n.

No recomendamos habilitar DOM ligero para un componente si ese componente aparece o funciona con datos confidenciales. El uso de DOM ligero elimina la encapsulaci贸n de DOM en sombra y expone los componentes al raspado de DOM. Por lo tanto, tenga en cuenta esta importante consideraci贸n.

Casos de uso habilitados por DOM ligero

Light DOM permite varios casos de uso que anteriormente no eran compatibles.

1) Soporte de bibliotecas que necesitan acceso a las partes internas de un componente

Light DOM permite el uso de bibliotecas que necesitan acceso a los componentes internos. Un buen ejemplo de esto son las bibliotecas de an谩lisis utilizadas en los sitios de Experience Cloud, como Google Analytics, ya que necesitan acceso a los componentes internos para obtener mejores resultados.

Podemos probar este caso de uso, incluido el componente helloCodey anterior, en un componente principal mascotChanger de la siguiente manera.

mascotChanger.html

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

mascotChanger.js

Tenga en cuenta que, aunque el p谩rrafo consultado pertenece al componente helloCodey , podemos acceder a 茅l con this.template.querySelector , porque pertenece al DOM ligero secundario. Sin embargo, si el componente helloCodey no tuviera habilitado el DOM ligero, querySelector habr铆a devuelto null .

Tambi茅n puede acceder a los componentes internos del DOM ligero desde un script que se carga como un recurso est谩tico en la p谩gina, siempre y cuando todos los componentes ancestros est茅n habilitados para el DOM ligero. Por ejemplo, en un sitio LWR Experience Cloud, que es DOM completamente ligero, puede agregar un recurso est谩tico de JavaScript que encuentre los componentes internos helloCodey de la siguiente manera.

myJSResource.js

2) Implementaci贸n m谩s sencilla de componentes profundamente anidados

Otro ejemplo en el que esto puede resultar 煤til es implementar componentes complejos y profundamente anidados. En ese caso, es posible que prefiera tener un 煤nico componente DOM de sombra en el nivel superior y componentes DOM claros dentro para evitar gastos generales. Por ejemplo, un componente de tabla de datos personalizado puede tener solo un gran componente DOM de sombra alrededor de todo, en lugar de una sombra para cada fila y celda de la tabla.

Esta implementaci贸n facilita la consulta de sus propios elementos desde el componente de nivel superior de su jerarqu铆a y tambi茅n la implementaci贸n de la accesibilidad. Adem谩s, hay una ligera mejora en el rendimiento en algunos casos de uso al usar DOM claro sobre DOM sombreado, lo que se debe principalmente a la sobrecarga de simplemente crear nodos de sombra adicionales.

3) Estilo global

Light DOM tambi茅n facilita el estilo global, ya que permite que los estilos CSS caigan en cascada en el marcado del componente. Por ejemplo, un componente DOM ligero puede establecer un estilo que se carga y luego se aplica una vez para todos los componentes DOM ligeros de la p谩gina. La inyecci贸n de estilos globales a trav茅s de DOM ligero solo se admite en sitios de Experience Cloud, editor de contenido CMS o Sales Enablement.

Por ejemplo, definamos un componente colorChanger de la siguiente manera.

colorChanger.html

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

colorChanger.js

colorChanger.css

El color de fondo azul se aplicar谩 a los p谩rrafos de todas las instancias del componente helloCodey en la p谩gina, ya que est谩 habilitado para DOM claro.

En la mayor铆a de los casos, no querr谩s que tu estilo se filtre a otros componentes. Eso todav铆a es posible para componentes DOM ligeros. Solo necesita colocar esas reglas de estilo en un archivo *.scoped.css , para que tengan como alcance el componente DOM ligero. El CSS con alcance est谩 escrito exactamente igual que el CSS normal, pero solo se aplicar谩 a ese componente sin filtrarse.

Tenga en cuenta que si las reglas de estilo se cargan globalmente como recursos est谩ticos en una p谩gina de Lightning Experience o un sitio de Experience Cloud, se les quitar谩 el alcance y se aplicar谩n tanto a los componentes DOM claros como tambi茅n a los componentes DOM de sombra, ya que la sombra sint茅tica no evitar谩 que se filtren. Esta es una limitaci贸n que se solucionar谩 una vez que la sombra nativa sea totalmente compatible (actualmente en Developer Preview ). Cuando la sombra nativa est谩 habilitada, solo los componentes habilitados para DOM claro heredar谩n los estilos globales.

4) Implementaci贸n m谩s flexible de las mejores pr谩cticas de accesibilidad

Light DOM permite que un componente haga referencia a la i d un elemento que vive en otro componente separado habilitado para Light DOM. Esto le permite vincular dos elementos utilizando los atributos i d y aria , lo que le otorga flexibilidad adicional para implementar las mejores pr谩cticas de accesibilidad en sus proyectos. Mejoremos nuestro componente mascotChanger para demostrar esto.

mascotChanger.html

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

“>

mascotChanger.js

mascotaNombreInput.html

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

“>

mascotaNombreEtiqueta.html

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

“>

Tenga en cuenta que Salesforce est谩 trabajando actualmente con el W3C para agregar nuevos est谩ndares, de modo que el DOM oculto nativo pueda participar en estos patrones de accesibilidad. Esto significa que, en el futuro, este caso de uso ligero de DOM no ser谩 necesario. Como parte de nuestros esfuerzos de accesibilidad, tambi茅n patrocinamos a Igalia para implementar parcialmente ARIA Element Reflection , que ahora es totalmente compatible con Safari y parcialmente con Chrome. Si quieres saber m谩s sobre este tema, echa un vistazo a nuestra propuesta cross-root-aria , el repositorio para el grupo de trabajo Modelo de objetos de accesibilidad .

La siguiente tabla resume los casos de uso y d贸nde se admiten.

Experiencia en la nube Experiencia rel谩mpago Aplicaciones m贸viles de Salesforce LWC OSS/LWR en Node.js*
Soporte de bibliotecas que necesitan acceso a las partes internas de los componentes. S铆 S铆 S铆 S铆
Implementaci贸n m谩s sencilla de componentes profundamente anidados S铆 S铆 S铆 S铆
Estilo global S铆 No No S铆
Implementaci贸n m谩s flexible de las mejores pr谩cticas de accesibilidad S铆 S铆 S铆 S铆

*Si se utiliza DOM de sombra nativo en lugar de sombra sint茅tica . La sombra nativa es la opci贸n predeterminada para LWC OSS y LWR en Node.js.

Otras Consideraciones

Cuando se trabaja con DOM ligero, hay algunas consideraciones adicionales a tener en cuenta, entre ellas:

  • Los eventos no se reorientan con DOM ligero. Lea m谩s en la gu铆a para desarrolladores .
  • No hay soporte de navegador para espacios fuera del DOM oculto, por lo que se emula. Esto implica que algunas funciones, como los enlaces de ciclo de vida, no est谩n disponibles en ellos. Eche un vistazo a la documentaci贸n para saber m谩s.
  • Por ahora, los componentes ligeros habilitados para DOM no se pueden empaquetar.

Conclusi贸n

En esta publicaci贸n de blog, revisamos qu茅 es el DOM ligero, los casos de uso que permite y las consideraciones a tener en cuenta para decidir qu茅 componentes habilitar谩n la funci贸n. Todos los ejemplos que se muestran en este blog se encuentran en un repositorio de GitHub que puedes probar t煤 mismo.

Para obtener m谩s informaci贸n sobre DOM ligero en la plataforma Salesforce, lea la documentaci贸n o, si est谩 trabajando fuera de la plataforma, lea la documentaci贸n OSS .

Si decide seguir adelante y transformar sus componentes DOM ocultos en componentes DOM claros, consulte esta herramienta creada por Salesforce Engineering para simplificar la migraci贸n.

Sobre el Autor

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

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

A帽adir a holgura Suscr铆bete a RSS

Continue reading

Uso de prueba de flujo versus clase de prueba para flujo en Salesforce

Uso de prueba de flujo versus clase de prueba para flujo en Salesforce

Introducci贸n de la prueba de flujo

Anteriormente, si quer铆amos probar el flujo, necesit谩bamos escribir una clase de prueba de Apex para el flujo. Con la versi贸n Summer '22, Salesforce introdujo un marco de prueba para flujos activados por registros para automatizar las pruebas de flujos. Ahora podemos dejar que Salesforce pruebe el flujo, asegurarnos de que los resultados cumplan con las expectativas y resaltar cuando no lo sean. Ahora podemos crear y ejecutar pruebas dentro del propio generador de flujo, de forma declarativa sin escribir ning煤n c贸digo.

C贸mo funciona

Establecer detalles de prueba, desencadenante y ruta

Proporciona una etiqueta de prueba de flujo y una descripci贸n de la prueba. Establezca el activador de prueba en Creado/actualizado seg煤n el escenario. La ruta de la prueba est谩 configurada para Ejecutar inmediatamente.

imagen.png Establecer registro de activaci贸n inicial/actualizado

Usando la funci贸n de b煤squeda, podemos buscar el registro para usarlo como plantilla inicial. Tras la selecci贸n del registro, los campos se completan a partir del registro seleccionado. La prueba hereda los valores de campo del registro seleccionado. Sin embargo, podemos modificar los valores de estos campos antes de finalizar la prueba. La prueba no est谩 vinculada a este registro pero contiene y utiliza sus valores de campo.

imagen.png Establecer afirmaciones

La aserci贸n es una forma de comparar el resultado real con el resultado previsto. Si coinciden, entonces la afirmaci贸n se eval煤a como verdadera. De lo contrario, la afirmaci贸n falla. Escriba las siguientes afirmaciones para garantizar que se cumplan los criterios de entrada de registros para el flujo y se logre el resultado esperado.

imagen.png Ejecutar prueba y ver detalles

Haga clic en el bot贸n "Ver pruebas", seleccione el men煤 desplegable de la prueba de flujo que queremos ejecutar y seleccione Ejecutar prueba y ver detalles.

imagen.png La prueba de flujo se ejecuta y resalta el camino que tom贸 la prueba. Si necesitamos probar el flujo, simplemente podemos ejecutar la prueba. Ya no es necesario configurar los datos de prueba mediante programaci贸n. 隆Esto aumenta la eficiencia de las pruebas! Si necesitamos realizar una mejora en este flujo en el futuro, necesitaremos actualizar el registro de prueba asociado en consecuencia.

imagen.png Beneficios

  1. F谩cil y c贸modo de usar: podemos crear registros de prueba a trav茅s de la interfaz de usuario y ponerlos a prueba.
  2. Tiempo y esfuerzo: reduce el tiempo y el esfuerzo necesarios, ya que no necesitamos escribir c贸digo, solo crear registros desde la interfaz de usuario y realizar afirmaciones.
  3. No afectar谩 la cobertura del c贸digo existente a nivel de clase: si migramos cualquier funcionalidad del activador al flujo, la l贸gica subyacente del activador/clase tambi茅n se limpia manualmente como parte de este ejercicio. Esto no reducir谩 la cobertura del c贸digo de la clase ya que la l贸gica se elimina por completo.
  4. Cobertura de la prueba de flujo: el porcentaje de cobertura no se captura en la prueba de flujo como podemos hacerlo a trav茅s de la clase Apex. M谩s bien es capaz de cubrir nodos. Una vez seleccionamos 鈥淓jecutar prueba y ver detalles鈥. La ruta resaltada en amarillo representar谩 la cobertura real del flujo desde el principio hasta el final del nodo.

imagen.png

imagen.png

imagen.png Desventaja

  1. Solo puede crear pruebas de flujo para crear, actualizar o crear/actualizar flujos activados por registros. A煤n no se admite la eliminaci贸n de flujos activados por registros. 鈥 Solo para el escenario de eliminaci贸n de registros podemos escribir una clase de prueba
  2. Puede afectar la cobertura general: dado que la cobertura de prueba general se calcula en funci贸n de la cobertura de prueba de todas las clases combinadas (promedio), si migramos cualquier caracter铆stica que tenga una cobertura de prueba m谩s alta en la clase 谩pice relevante, podr铆a reducir el porcentaje de cobertura general del c贸digo. (Como actualmente solo nos estamos enfocando en migrar el activador relacionado con la cuenta para fluir, solo se ve afectada 1 clase de prueba, por lo que no hay cambios significativos en la cobertura del c贸digo Apex).
  3. Las pruebas de flujo no admiten rutas de flujo que se ejecuten de forma asincr贸nica. Sin embargo, no tenemos flujo as铆ncrono en nuestra organizaci贸n. Estamos creando flujos para cubrir escenarios que se ejecutan sincr贸nicamente.

Recomendaci贸n

  • Podemos comenzar a dar pasos para pasar a la prueba de flujo a medida que Salesforce realiza mejoras continuas en el flujo, por lo que en versiones futuras, podemos esperar que la prueba de flujo incluya m谩s mejoras y reduzca las limitaciones.
  • Podemos comenzar escribiendo una prueba de flujo para las actualizaciones r谩pidas de campos (antes) de los flujos de activaci贸n de registros.
  • Mejorar la cobertura de prueba de las clases que tienen menos cobertura para que podamos usar la prueba de flujo.

Preguntas m谩s frecuentes

驴Cu谩l es el porcentaje de cobertura para implementar Flow?

En relaci贸n con las pruebas de Apex, las pruebas de flujo no se consideran parte de la cobertura de pruebas como en el 75%+ para el despliegue de productos.

驴Brindan cobertura de c贸digo como lo hace la clase de prueba? Si no, 驴debemos pensar en eliminar el flujo de la cobertura de prueba?

S铆, cubren resaltando nodo por nodo.

驴Puede confirmar si la prueba de flujo permite ejecutar pruebas masivas?

No, no admite pruebas de registros masivos. En la mayor铆a de los escenarios relacionados con desencadenantes, hemos creado un registro individual en la clase de prueba y verificamos los escenarios de prueba. Si reemplazamos esos desencadenantes con flujos, no habr谩 una gran diferencia en los casos de prueba.

驴La prueba de flujo admite la asincron铆a?

Las pruebas de flujo no admiten rutas de flujo que se ejecuten de forma asincr贸nica. Sin embargo, no tenemos flujo as铆ncrono en nuestra organizaci贸n. Estamos creando flujos para cubrir escenarios que se ejecutan sincr贸nicamente.

驴Cu谩l es el rendimiento de las pruebas de flujo en comparaci贸n con las clases de prueba?

No veo ninguna documentaci贸n oficial, pero creo que la prueba de flujo ser谩 m谩s r谩pida en comparaci贸n con la clase de prueba porque cuando ejecutamos una prueba crear谩 una instancia de la clase y llamar谩 a m茅todos individuales. Podemos ejecutar casos de prueba individuales utilizando una prueba de flujo, pero no es posible ejecutar un solo m茅todo individual desde la clase de prueba, lo que lleva mucho tiempo.

Referencia

Prueba de flujo (beta)

Consideraciones para probar el flujo

50% Me gusta VS
50% No me gusta
Continue reading

Validaciones personalizadas mediante flujos activados por registros

Validaciones personalizadas mediante flujos activados por registros

脷ltima actualizaci贸n el 3 de agosto de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • 驴C贸mo se escribe una regla de validaci贸n utilizando un flujo desencadenado por registros antes de guardar sin crear metadatos adicionales?

Objetivos:

Despu茅s de leer este blog, podr谩:

  • Comprender la regla de validaci贸n
  • Flujo antes de guardar activado por registro de usuario para crear una regla de validaci贸n
  • Mostrar el mensaje de error en la parte superior de la p谩gina
  • Y mucho m谩s

馃憠 Anteriormente, escrib铆 varias publicaciones sobre la validaci贸n y Salesforce Flow. 驴Por qu茅 no echarles un vistazo mientras est谩s en ello?

  1. Adici贸n de validaci贸n a los componentes de la pantalla de flujo
  2. 驴Regla de validaci贸n usando un flujo antes de guardar? 隆S铆!
  3. C贸mo corregir el error FIELD_CUSTOM_VALIDATION_EXCEPTION)

A Benjamin Moore , administrador de Salesforce en Gurukul On Cloud (GoC), se le ha encomendado un requisito espec铆fico. Debe restringir que los usuarios creen una nueva oportunidad dentro de la cuenta si existe una oportunidad abierta. El siguiente texto debe utilizarse para el mensaje de error:

Utilice la oportunidad abierta existente dentro de esta cuenta. Si necesita m谩s ayuda o tiene preguntas sobre la gesti贸n de oportunidades, p贸ngase en contacto con el soporte de TI.

驴Qu茅 es la regla de validaci贸n?

Una regla de validaci贸n permite que un administrador del sistema defina una l贸gica personalizada y mensajes de error para garantizar la integridad de los datos. La regla puede contener una f贸rmula o una expresi贸n que eval煤e los datos en uno o m谩s campos y devuelva un valor verdadero o falso . Por ejemplo, la regla incluye un mensaje de error que se muestra cuando devuelve un valor verdadero que indica que se est谩n ingresando datos incorrectos. Recuerde, una regla de validaci贸n solo se activa cuando se crea o edita un registro .

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:

  1. Actualizar campos en registros nuevos o modificados: significa que desea actualizar los campos en el registro que inici贸 el Flujo
  2. Activar una regla de validaci贸n (no necesaria despu茅s del lanzamiento de winter'24)

Lea este art铆culo para obtener m谩s informaci贸n sobre cu谩ndo usar el flujo anterior frente al flujo posterior al guardado.

Enfoque de Campe贸n de Automatizaci贸n (I-do):

Paso 2: uso del elemento de decisi贸n para verificar si la oportunidad se cre贸 o actualiz贸

Ahora usaremos el elemento Decisi贸n para verificar si el registro de oportunidad fue creado o actualizado.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisi贸n .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completar谩 autom谩ticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completar谩 autom谩ticamente.
  4. Requisitos de condici贸n para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso : {!$Record.Id}
      2. Operador : es nulo
      3. Valor : {!$ConstanteGlobal.Verdadero}
  5. Cu谩ndo ejecutar el resultado : si se cumplen los requisitos de la condici贸n
  6. Haz clic en la X en la parte superior para guardar tus cambios.

Paso 3: agregar un elemento Obtener registro para encontrar oportunidades abiertas relacionadas

El siguiente paso es usar el elemento Obtener registros para encontrar oportunidades abiertas relacionadas en la cuenta.

  1. En Flow Designer, debajo del nodo Creado , haga clic en el icono + y seleccione el elemento Obtener registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completar谩 autom谩ticamente.
  3. Seleccione el objeto Oportunidad de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : ID de cuenta
      2. Operador : Igual
      3. Valor : {!$Record.AccountId}
    2. Haga clic en Agregar condici贸n
      1. Fila 1:
        1. Campo : Est谩Cerrado
        2. Operador : Igual
        3. Valor : {!$ConstanteGlobal.Falso}
  6. Cu谩ntos registros almacenar:
    1. seleccione Todos los registros
  7. C贸mo almacenar datos de registro:
    1. Elija la opci贸n para Almacenar autom谩ticamente todos los campos .
  8. 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.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisi贸n .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completar谩 autom谩ticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completar谩 autom谩ticamente.
  4. Requisitos de condici贸n para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!Get_Related_Opportunity}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.Falso}
  5. Cu谩ndo ejecutar Resultado : Si se cumplen los requisitos de la condici贸n .
  6. Haga clic en Listo .

Paso 5: agregar un elemento de error personalizado para mostrar mensajes de error

  1. En el nodo S铆 , seleccione el elemento Error personalizado .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completar谩 autom谩ticamente.
  3. Establecer detalles del mensaje de error 1
    1. D贸nde mostrar el mensaje de error : en una ventana en una p谩gina de registro
    2. Mensaje de error:
      1. 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.
  4. 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:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo, el nombre de la API se completar谩 autom谩ticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versi贸n de API para ejecutar el flujo : 59
  5. Etiqueta de entrevista : regla de validaci贸n personalizada mediante flujo {!$Flow.CurrentDateTime}
  6. 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
  1. El l铆mite para el campo del mensaje de error es de 255 caracteres.
  2. Solo puede agregar un mensaje de error para una p谩gina.
  3. Solo puede agregar un mensaje de error por campo.
  4. no es posible utilizar el enlace con su mensaje de error.
    1. par谩metro de escape Indica si cualquier marcado HTML en el mensaje de error personalizado se debe escapar ( verdadero ) o no ( falso ). Este par谩metro se ignora tanto en Lightning Experience como en la aplicaci贸n m贸vil Salesforce, y el HTML siempre se escapa. El par谩metro de escape solo se aplica en Salesforce Classic. Lea este art铆culo para obtener m谩s informaci贸n.

Prueba de concepto

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.

Continue reading

Integraci贸n de API de zona horaria de Salesforce y Google: traducci贸n de coordenadas a informaci贸n de zona horaria

Integraci贸n de API de zona horaria de Salesforce y Google: traducci贸n de coordenadas a informaci贸n de zona horaria

脷ltima actualizaci贸n el 29 de junio de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • 驴C贸mo puede aprovechar la API de zona horaria de Google para actualizar autom谩ticamente la informaci贸n de zona horaria de un cliente potencial en funci贸n de sus coordenadas geogr谩ficas?

Objetivos:

Despu茅s de leer este blog, podr谩:

Jestilla Zetkin se desempe帽a actualmente como arquitecta de Salesforce en Gurukul On Cloud (GoC). El Director Comercial le ha confiado a Jestilla un desaf铆o 煤nico. El objetivo es asegurarse de que, en el momento de la creaci贸n, los prospectos de Salesforce (creados a trav茅s de Web-to-lead) reciban los detalles exactos de la zona horaria, que se determinan en funci贸n de sus respectivas coordenadas geogr谩ficas.

  1. 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:
    1. dstOffset (la compensaci贸n del horario de verano en segundos)
    2. rawOffset (el desplazamiento de la hora universal coordinada para la zona horaria de la ubicaci贸n dada)
    3. timeZoneId (una cadena que identifica de forma 煤nica la zona horaria)
    4. y timeZoneName (el nombre largo de la zona horaria)
  2. En caso de una respuesta fallida, instituya una acci贸n de contingencia para crear una tarea para el propietario designado del cliente potencial.

驴Qu茅 es la API de zona horaria de Google?

Hay muchas posibilidades de que su base de clientes est茅 repartida en varias zonas horarias. Este factor puede influir en gran medida en sus interacciones con ellos, especialmente al programar llamadas, reuniones o enviar mensajes autom谩ticos. La plataforma de Salesforce ofrece un entorno altamente adaptable para almacenar y administrar datos de clientes, pero de forma predeterminada, no proporciona una forma de registrar autom谩ticamente la zona horaria del cliente potencial en funci贸n de sus coordenadas geogr谩ficas.

La API de zona horaria de Google es un servicio ofrecido por Google como parte de su plataforma Google Maps. La API proporciona datos de zona horaria para cualquier ubicaci贸n en todo el mundo en funci贸n de las coordenadas de latitud y longitud. Este servicio puede ser particularmente 煤til para los desarrolladores que necesitan ajustar la comunicaci贸n de acuerdo con la ubicaci贸n geogr谩fica de un cliente potencial o contacto o para empresas que operan en diferentes zonas horarias.

La API de zona horaria proporciona la siguiente informaci贸n:

  • El ID de la zona horaria , seg煤n lo define la base de datos de zonas horarias de la IANA (por ejemplo, America/New_York ).
  • El nombre de la zona horaria (por ejemplo, hora de verano del este ).
  • La diferencia horaria con respecto a la hora universal coordinada (UTC) sin tener en cuenta el horario de verano (rawOffset).
  • El desfase horario debido al horario de verano (dstOffset).

Tenga en cuenta que la API de zona horaria de Google est谩 sujeta a cargos, por lo que es importante comprender las implicaciones de costos antes de implementarla.

C贸mo funciona la API de zona horaria de Google?

La API de zona horaria de Google funciona tomando coordenadas de latitud y longitud y devolviendo datos de zona horaria en formato JSON. Aqu铆 hay un ejemplo b谩sico de c贸mo usarlo.

La siguiente solicitud HTTP GET obtiene informaci贸n de zona horaria para una ubicaci贸n en la latitud 40.712776 y longitud -74.005974 (ciudad de Nueva York), y asume que est谩 realizando la solicitud en una determinada marca de tiempo (marca de tiempo UNIX).

 https://maps.googleapis.com/maps/api/timezone/json?location=40.712776,-74.005974&timestamp=1458000000&key=YOUR_API_KEY

En la URL de solicitud anterior, reemplace YOUR_API_KEY con su clave API real.

Aqu铆 hay una respuesta de muestra en formato JSON que la API podr铆a devolver:


{ "dstOffset": 3600, "compensaci贸n sin procesar": -18000, "estado": "OK", "timeZoneId": "Am茅rica/Nueva_York", "timeZoneName" : "Hora de verano del Este"
}

La respuesta incluye la siguiente informaci贸n:

  1. 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.
  2. rawOffset : el desplazamiento de UTC (sin contar el horario de verano) en segundos.
  3. estado : una cadena que indica el estado de la solicitud. 鈥淥K鈥 significa que la solicitud fue exitosa.
  4. timeZoneId : una cadena que contiene el ID "tz" de la zona horaria (por ejemplo, "Am茅rica/Nueva_York").
  5. 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.

  1. 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.
  2. 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. Informaci贸n actualizada : Google actualiza continuamente sus bases de datos, lo que garantiza que los datos devueltos por la API de zona horaria, como los cambios de horario de verano, est茅n siempre actualizados.

Al aprovechar estos beneficios, las empresas pueden mejorar la experiencia del cliente, aumentar la eficiencia operativa y garantizar un registro de datos preciso, entre otras ventajas.

Antes de comenzar a usar la API de zona horaria, necesita un proyecto con una cuenta de facturaci贸n y la API de zona horaria habilitada. Aqu铆 hay una gu铆a paso a paso para configurar su proyecto de Google Cloud y habilitar la API de zona horaria:

Paso 1: crea o selecciona tu proyecto

  1. Navegue a Google Cloud Console .
  2. 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.
  3. Asigne un nombre a su proyecto y, opcionalmente, tambi茅n puede editar el ID del proyecto.
  4. 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:

  1. En Google Cloud Console, abra el men煤 del lado izquierdo de la consola y haga clic en Facturaci贸n .
  2. 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.

  1. En Google Cloud Console, abra el men煤 del lado izquierdo de la consola y vaya a API y servicios | biblioteca
  2. En la biblioteca de API, busque API de zona horaria y selecci贸nela.
  3. 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.

  1. En Google Cloud Console, abra el men煤 del lado izquierdo de la consola y vaya a API y servicios | Cartas credenciales.
  2. Haga clic en el bot贸n + CREAR CREDENCIALES en la parte superior y seleccione Clave API .
  3. Su nueva clave de API se crear谩 y se mostrar谩. C贸pielo y gu谩rdelo de forma segura. Necesitar谩 esta clave para realizar solicitudes a la API de zona horaria.

Ahora, su proyecto de Google Cloud est谩 todo configurado y puede comenzar a usar la API de zona horaria de Google.

馃憠 Si bien la API de zona horaria es compatible con OAuth 2.0 y la cuenta de servicio para la autenticaci贸n, esta gu铆a se enfoca en el m茅todo de clave de API m谩s simple por razones de brevedad. Si necesita un m茅todo de autenticaci贸n m谩s seguro o complejo, consulte la documentaci贸n de autenticaci贸n oficial de Google.

Enfoque de Campe贸n de Automatizaci贸n (I-do):

Si bien esto se puede resolver utilizando varias herramientas de automatizaci贸n como Apex Trigger y otras, utilizaremos Salesforce Flow y la funci贸n de flujo HTTP Callout (GET) recientemente introducida .

HTTP Callout extrae o env铆a datos entre la base de datos de Salesforce y un sistema externo a trav茅s de Flow Builder sin usar c贸digo. Puede configurar integraciones directas seg煤n sea necesario sin tener que trabajar con un desarrollador o llamar a una herramienta de middleware, como Mulesoft. Despu茅s de configurar la acci贸n de llamada HTTP en un flujo, Flow Builder genera autom谩ticamente un registro de servicio externo , una acci贸n invocable y una clase de Apex que puede usar para crear un recurso definido por Apex para flujos. A continuaci贸n, puede utilizar la salida de datos de la solicitud de la API como entrada en Flow Builder y en Salesforce.

Puede usar HTTP Callout para conectar un flujo a una variedad de API.

  • Obtener informaci贸n de direcciones usando una API de mapa
  • Obt茅n las condiciones meteorol贸gicas con una API de servicios meteorol贸gicos
  • Genere el c贸digo de barras con una API de servicio de c贸digo de barras
  • Obtenga informaci贸n de autorizaci贸n de pago con una API de procesamiento de pagos
  • y mucho m谩s

Antes de discutir la soluci贸n, perm铆tame mostrarle un diagrama del proceso a un alto nivel. Dedique unos minutos a revisar el siguiente diagrama de flujo para comprenderlo.

Comencemos a construir este proceso de automatizaci贸n.

Pr谩ctica guiada (nosotros hacemos):

Hay 3 pasos para resolver el requisito empresarial de Jestilla mediante Record-Triggered After-Save Flow . Debemos:

  1. Cree campos personalizados en el cliente potencial para almacenar la respuesta
  2. Crear una credencial con nombre
  3. Flujo de fuerza de ventas
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Agregue una f贸rmula para calcular la marca de tiempo
    3. Configurar una llamada HTTP GET para la API de zona horaria
    4. Agregue un elemento de decisi贸n para verificar el c贸digo de respuesta
    5. Agregue un elemento Actualizar registros para actualizar el prospecto
    6. 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

  1. Haga clic en Configuraci贸n .
  2. En el cuadro B煤squeda r谩pida, ingrese Credenciales con nombre y luego seleccione Credenciales con nombre .
  3. Haga clic en Nuevo legado .
  4. Rellene la p谩gina con la URL y los par谩metros de autenticaci贸n del extremo de la llamada.
  5. Haga clic en Guardar .

Paso 3.1: Definir propiedades de flujo

  1. Haga clic en Configuraci贸n .
  2. En el cuadro B煤squeda r谩pida, escriba Flujos .
  3. Seleccione Flujos , luego haga clic en Nuevo flujo .
  4. Seleccione la opci贸n Flujo activado por registro , haga clic en Crear
    1. Objeto: Plomo
    2. Activar el flujo cuando: se crea un registro
    3. Establecer condiciones de entrada: se cumplen todas las condiciones (Y)
    4. Fila 1:
      1. Campo : Posici贸n_Actual__Latitud__s
      2. Operador : es nulo
      3. Valor : {!$ConstanteGlobal.Falso}
    5. Haga clic en + Agregar condici贸n
    6. Fila 2:
      1. Campo : Posici贸n_Actual__Longitud__s
      2. Operador : es nulo
      3. Valor : {!$ConstanteGlobal.Falso}
    7. Optimizar el flujo para : acci贸n y registros relacionados
    8. 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 .
  5. Haga clic en Listo.

Paso 3.2: f贸rmula para calcular la marca de tiempo

  1. 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).
  2. Ingrese la siguiente informaci贸n :
    1. Tipo de recurso : F贸rmula
    2. Nombre de API : forN_Timestamp
    3. Tipo de datos : N煤mero
    4. Lugares decimales : 0
    5. F贸rmula : RONDA((AHORA() 鈥 FECHAHORAVALUE(鈥1970-01-01 00:00:00鈥)) * 24 * 60 * 60, 0)
  3. Haga clic en Listo.

Paso 3.3: configurar una acci贸n de llamada HTTP GET

HTTP Callout lo gu铆a a trav茅s de la introducci贸n de los detalles sobre el servicio HTTP basado en web o el punto final de la API REST al que se est谩 conectando. Despu茅s de completar la configuraci贸n, invoca la acci贸n en un flujo.

  1. En el nodo Ejecutar asincr贸nicamente , seleccione Acci贸n .
  2. Haga clic en + Crear llamada HTTP .
  3. Configure el servicio externo que conecta Salesforce con la API basada en HTTP.
    1. Introduzca un Nombre para el servicio externo.
    2. Seleccione la credencial con nombre que cre贸 en el paso 2 .
    3. Haga clic en Siguiente .
  4. El siguiente paso es configurar la acci贸n invocable que puede usar en Flow Builder o en Salesforce.
    1. Para Etiqueta , ingrese la acci贸n que realiza la llamada.
    2. M茅todo : OBTENER
    3. Agregue el extremo de la URL para la solicitud.
      1. Ruta URL : /maps/api/timezone/json
    4. 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.
      1. Haga clic en Agregar clave
        1. Clave : ubicaci贸n
        2. Tipo de datos : cadena
        3. Requerido : Verdadero
      2. Haga clic en Agregar clave
        1. Clave : marca de tiempo
        2. Tipo de datos : entero
        3. Requerido : Verdadero
      3. Haga clic en Agregar clave
        1. Clave: clave
        2. Tipo de datos : cadena
        3. Requerido : Verdadero
  5. Proporcione un cuerpo de respuesta de API de muestra. Salesforce genera una estructura de datos a partir de la respuesta de muestra.
    1. Vaya a la secci贸n Proporcione una respuesta de muestra .
    2. Haga clic en Nuevo .
    3. 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"
      }
Continue reading

Herramientas para desarrolladores desde cero (Parte 1 de 2) 鈽侊笍

Herramientas para desarrolladores desde cero (Parte 1 de 2) 鈽侊笍

Esta es una traducci贸n que desde EGA Futura ofrecemos como cortes铆a a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoam茅rica .

El enlace a la publicaci贸n original, lo encontrar谩s al final de este art铆culo.

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

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

Antes de que empieces

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

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

Instalaci贸n de las herramientas de desarrollador

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

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

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

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

Creaci贸n de un proyecto de Salesforce DX

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

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

sf project generate -n myProject

Nota: la CLI de Salesforce contiene dos ejecutables, sfdx y sf . En este blog, escribiremos los comandos utilizando el ejecutable y la sintaxis m谩s modernos, que es sf .

El indicador -n indica el nombre del proyecto. La CLI de Salesforce aplicar谩 scaffolding a un proyecto en una carpeta con ese nombre. Una vez que se crea el proyecto, puede abrirlo en VS Code, con File 鈫 Open Folder .

Gracias a las extensiones de Salesforce para VS Code, existe una forma sin escribir para ejecutar los comandos de la CLI de Salesforce. Simplemente abra la paleta de comandos de VS Code con View 鈫 Command Palette y escriba SFDX para ver todos los comandos disponibles. Tambi茅n podr铆amos haber creado el proyecto con SFDX: Create Project en lugar de escribir el comando.

Autorizar y establecer una organizaci贸n como predeterminada

Una vez que su proyecto est茅 configurado, el siguiente paso es autorizar la CLI de Salesforce para que funcione con su organizaci贸n. Comencemos esta vez con la forma de hacerlo sin escribir. Cuando abra el proyecto por primera vez, simplemente haga clic en el bot贸n Sin conjunto de organizaciones predeterminado y aparecer谩 la paleta de comandos, sugiriendo que autorice una organizaci贸n. Proceda siguiendo las instrucciones del comando.

Otra forma de hacerlo es ejecutar un comando CLI de Salesforce. Esta vez, y de ahora en adelante, le recomiendo que use el terminal integrado de VS Code para ejecutar comandos, ya que tener todas las herramientas en la misma pantalla reduce el cambio de contexto. Puede abrirlo en Terminal 鈫 New Terminal .

El comando CLI de Salesforce utilizado para autorizar una organizaci贸n es:

sf org login web -s

Luego, siga las instrucciones dadas por el comando. El indicador -s configurar谩 esa organizaci贸n como su organizaci贸n predeterminada para este proyecto. Puede ver la organizaci贸n predeterminada de su proyecto en la barra inferior de VS Code.

Todos los comandos de la CLI de Salesforce tienen varios indicadores disponibles. Por ejemplo, si desea conectarse a una zona de pruebas, puede pasar la URL de la instancia de la zona de pruebas a sf org login web usando -r . Para ver la ayuda del comando y todos sus indicadores disponibles, ejecute el comando agregando --help al final.

Cuando trabaja con varias organizaciones, ser谩 com煤n autorizar la CLI de Salesforce con varias organizaciones. Puede ver las organizaciones a las que la CLI de Salesforce tiene autorizaci贸n para acceder ejecutando sf org list . Puede cambiar la organizaci贸n predeterminada de un proyecto haciendo clic en el nombre de la organizaci贸n en la barra inferior de VS Code, como hicimos para autorizar por primera vez, o ejecutando:

sf config set target-org=your-org-username@sf.com

Perm铆tanme compartir con ustedes un 煤ltimo consejo. Las organizaciones pueden tener alias. Esto es 煤til cuando no desea recordar nombres de usuario largos o complejos. Para establecer un alias, escriba el siguiente comando.

sf alias set myalias=your-org-username@sf.com

Cuando se establece un alias, puede utilizar el alias en lugar del nombre de usuario de la organizaci贸n en cualquiera de los comandos de la CLI de Salesforce.

Implementaci贸n de metadatos en la organizaci贸n

Una vez que la CLI de Salesforce y su IDE est茅n autorizados con su organizaci贸n, y la organizaci贸n est茅 configurada como la organizaci贸n predeterminada para su proyecto, puede comenzar a desarrollar e implementar cambios. Por ejemplo, digamos que queremos crear una clase de Apex. Puede crear el archivo de metadatos que representa la clase de Apex manualmente en la carpeta classes . Sin embargo, es mucho m谩s efectivo crear la clase desde la paleta de comandos.

Tambi茅n puede crear una clase escribiendo el siguiente comando de la CLI de Salesforce:

sf apex generate class -n myClass -d force-app/main/default/classes

Una vez que su clase est茅 lista para implementarse en su organizaci贸n, hay varias formas de hacerlo. Una forma es especificar los metadatos en el comando.

sf project deploy start -m ApexClass

Una segunda forma es especificar una carpeta para implementar.

sf project deploy start -p force-app/main/default/classes

Y una tercera forma, disponible gracias a Salesforce Extensions for VS Code, es hacer clic con el bot贸n derecho en el archivo y hacer clic en Deploy This Source to Org .

Todas esas opciones le permiten ejecutar las implementaciones usted mismo. Si desea automatizar este paso e implementar un archivo cada vez que se guarda, puede establecer la configuraci贸n Implementar al guardar VS Code en "Verdadero" y ahorrar algo de tiempo.

Cuando se implementan sus metadatos, normalmente querr谩 abrir su organizaci贸n para realizar pruebas. Puede iniciar sesi贸n utilizando su navegador como de costumbre. Pero para los desarrolladores, es m谩s eficiente hacer clic en el bot贸n de abrir organizaci贸n en la barra inferior de VS Code.

Conclusi贸n

En esta publicaci贸n de blog, aprendi贸 c贸mo obtener una organizaci贸n gratuita para el desarrollo y c贸mo instalar las herramientas de desarrollo que todo desarrollador de Salesforce deber铆a usar hoy. Ha entendido c贸mo crear un proyecto y autorizarlo con su organizaci贸n y, por 煤ltimo, c贸mo implementar metadatos mediante la CLI de Salesforce o VS Code. En la Parte 2 de esta serie, aprender谩 c贸mo recuperar metadatos, trabajar con organizaciones con seguimiento de origen y usar bibliotecas de Node para cuidar la calidad de su c贸digo. Adem谩s, compartiremos otras gemas ocultas de las extensiones de Salesforce para VS Code. Si te gusta un formato de video, mira nuestro episodio de codeLive . Y si tiene preguntas, no dude en hacerlas en Salesforce Developers Trailblazer Community . 隆Est茅n atentos para la segunda publicaci贸n de blog de esta serie ma帽ana!

Sobre el Autor

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

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

Agregar a Slack Suscr铆bete a RSS

Continue reading

Agregar productos autom谩ticamente a la nueva oportunidad

脷ltima actualizaci贸n el 30 de marzo de 2022 por Rakesh Gupta Gran idea o pregunta duradera: 驴C贸mo se agregan autom谩ticamente productos a una nueva oportunidad? Objetivos: esta publicaci贸n de blog nos ayudar谩 a comprender lo siguiente Usar el generador de flujo de salesforce para asignar autom谩ticamente el producto a una oportunidad Usar elementos get para evitar

La publicaci贸n Agregar productos autom谩ticamente a la nueva oportunidad apareci贸 primero en Automation Champion .

Continue reading

隆Elimine autom谩ticamente la licencia del paquete administrado de un usuario desactivado!

脷ltima actualizaci贸n el 29 de marzo de 2022 por Rakesh GuptaSalesforce Flow es una forma fant谩stica de automatizar varios procesos comerciales. Le permite crear un flujo basado en ciertos criterios que establezca. El flujo de Salesforce puede hacer muchas cosas: crear un registro, actualizar registros, publicar en Chatter, enviar un correo electr贸nico, etc.

隆La licencia de paquete administrado posterior a la eliminaci贸n autom谩tica de un usuario desactivado! apareci贸 por primera vez en Automation Champion .

Continue reading

Licencia de paquete de asignaci贸n autom谩tica a nuevos usuarios

脷ltima actualizaci贸n el 17 de marzo de 2022 por Rakesh GuptaGran idea o pregunta duradera: 驴C贸mo puede asignar autom谩ticamente una licencia de paquete administrado a nuevos usuarios? Objetivos: despu茅s de leer esta publicaci贸n de blog, el lector podr谩: Usar Flow para agregar autom谩ticamente una licencia de paquete a nuevos usuarios Usar obtener

La licencia de paquete de asignaci贸n autom谩tica posterior a nuevos usuarios apareci贸 primero en Automation Champion .

Continue reading

Agregar usuario de socio autom谩ticamente al grupo p煤blico

脷ltima actualizaci贸n el 11 de marzo de 2022 por Rakesh GuptaGran idea o pregunta duradera: 驴C贸mo se agregan autom谩ticamente usuarios asociados a un grupo p煤blico? Esta es una continuaci贸n de mi 煤ltimo art铆culo Primeros pasos con Process Builder – Parte 56 (Creaci贸n autom谩tica de un grupo p煤blico para una cuenta nueva). En mi art铆culo anterior,

La publicaci贸n Agregar autom谩ticamente un usuario de socio a un grupo p煤blico apareci贸 por primera vez en Automation Champion .

Continue reading

Eliminaci贸n autom谩tica de publicaciones de Chatter generadas por el sistema

脷ltima actualizaci贸n el 3 de marzo de 2022 por Rakesh Gupta Gran idea o pregunta duradera: 驴C贸mo se eliminan las publicaciones de Chatter generadas por el sistema? Objetivos: despu茅s de leer esta publicaci贸n de blog, el lector podr谩: Asignar un campo personalizado de prospecto a un campo personalizado de cuenta Crear un flujo activado por registro para eliminar registros y mucho m谩s

La publicaci贸n Eliminaci贸n autom谩tica de publicaciones de Chatter generadas por el sistema apareci贸 primero en Automation Champion .

Continue reading

Introducci贸n a Salesforce Flow – Parte 62 (Asignar autom谩ticamente o quitar conjunto de permisos a varios usuarios)

脷ltima actualizaci贸n el 27 de abril de 2021 por Rakesh Gupta Gran idea o pregunta duradera: los conjuntos de permisos son 煤tiles para proporcionar un conjunto particular de funcionalidades a un usuario adem谩s de los permisos proporcionados por su perfil. Por ejemplo, puede鈥 Continuar leyendo

La publicaci贸n Getting Started with Salesforce Flow – Part 62 (Auto Assign or Remove Permission Set to Multiple Users) apareci贸 primero en Automation Champion .

Continue reading