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.
…
Lleve sus propios modelos de IA a la nube de datos | Blog de desarrolladores de Salesforce
Einstein Studio es una plataforma fácil de usar que le permite crear y poner en funcionamiento la IA en Salesforce. La plataforma aprovecha el poder de otras plataformas de IA, como Amazon SageMaker y Google Cloud Vertex AI, para que pueda crear, entrenar e implementar modelos de IA personalizados de forma externa utilizando datos en Salesforce. En este blog, presentamos Einstein Studio y exploramos cómo la capacidad de traer su propio modelo (BYOM) generalmente disponible puede generar resultados para su negocio.
Presentamos Traiga su propio modelo (BYOM)
Einstein Studio le permite conectarse fácilmente a modelos predictivos o generativos y usarlos en el flujo de trabajo en Salesforce. Por ejemplo, los modelos predictivos se pueden usar para puntuar clientes potenciales, recomendar productos o detectar abandonos. Con modelos generativos, puede crear contenido como resúmenes de casos, respuestas de correo electrónico y descripciones de productos. Para obtener más información sobre la IA generativa y los modelos de lenguaje extenso (LLM), consulte el blog de Salesforce 360 .
Conectar un modelo con Einstein Studio es simple. Puede integrar fácilmente su modelo con Data Cloud para acceder a predicciones e información en tiempo real y usar la información de varias maneras. Por ejemplo, para enriquecer los perfiles de los clientes, crear segmentos y personalizar la experiencia del usuario final en diferentes canales. También puede usar un modelo generativo para crear campañas de correo electrónico personalizadas basadas en las preferencias de un cliente y su comportamiento de compra.
¿Por qué traer su propio modelo?
Estos son algunos de los beneficios de usar un modelo de Amazon SageMaker con datos de Data Cloud en Einstein Studio.
Acceda a datos altamente seleccionados, armonizados y casi en tiempo real en Customer 360 en SageMaker.
Elimina la necesidad de trabajos ETL tediosos, costosos y propensos a errores. Este enfoque de federación de copia cero para los datos reduce la sobrecarga para administrar las copias de datos, los costos de almacenamiento y mejora la eficiencia.
Crea modelos rápidamente en SageMaker y conecta los modelos en Data Cloud para consumir predicciones para la optimización de procesos comerciales.
Admite la ingesta de datos en tiempo real, en streaming y por lotes para impulsar los resultados de IA relevantes.
Permite el uso sin inconvenientes de modelos y predicciones de SageMaker en Salesforce mediante Flow, un paquete de automatización de flujos de trabajo. Flow permite la toma de decisiones impulsada por IA que puede evolucionar en función de actualizaciones de datos en tiempo real.
Casos de uso
Estos son algunos casos de uso en los que Einstein Studio puede mejorar la experiencia del cliente y agregar un toque personal.
Caso de uso minorista
Un minorista puede crear un modelo de IA personalizado para predecir la probabilidad de que un cliente compre atuendos específicos en función de los datos de compromiso, como su historial de compras o actividad en línea. Luego pueden implementar el modelo y utilizar Einstein Studio para ofrecer recomendaciones de productos hiperpersonalizados a los clientes a través del canal más apropiado, incluido el correo electrónico, una aplicación móvil o las redes sociales.
Caso de uso de viaje
Una agencia de viajes puede conectar los datos de CRM, como el historial de reservas del cliente y las preferencias de viaje, con datos que no son de CRM, como reseñas de destinos y previsiones meteorológicas. Luego pueden implementar modelos de IA predictivos y generativos para predecir qué destinos atraen a clientes específicos y generar recomendaciones de correo electrónico personalizadas para ellos.
Caso de uso automotriz
Una marca automotriz puede usar inteligencia artificial predictiva para determinar cuándo es probable que un automóvil necesite mantenimiento y detectar reclamos de seguros fraudulentos. Luego, la IA generativa se puede utilizar para personalizar las campañas de marketing de los clientes en función de las necesidades y preferencias individuales.
Flujo de trabajo de la aplicación para usar Einstein Studio con AWS SageMaker
En esta sección, analizamos brevemente el flujo de trabajo de la aplicación con Einstein Studio.
En este flujo de trabajo, el conector de Python otorga a SageMaker acceso seguro a los objetos de Salesforce Data Cloud. Después de la autenticación, los especialistas en datos pueden explorar y preparar los datos, y realizar tareas de ingeniería de funciones para el desarrollo y la inferencia de modelos de IA mediante la interfaz visual interactiva de SageMaker Data Wrangler .
El flujo de trabajo anterior es específico de Data Wrangler. Pero, ¿qué sucede si es un científico de datos y planea usar los cuadernos de SageMaker Studio para desarrollar y preparar sus modelos personalizados? Una vez que se aprueba un modelo en el registro de SageMaker, simplificamos el proceso con una plantilla de proyecto de SageMaker para Salesforce para automatizar la implementación en un extremo de invocación.
Este extremo de invocación se configura como destino en Einstein Studio y se integra con las aplicaciones de Salesforce Customer 360. Para obtener más información sobre este flujo de trabajo, consulte el blog de AWS .
Cómo consumir predicciones de su modelo en Salesforce
Hay dos formas de consumir predicciones. Usando acciones invocables en Flow y Apex, o con análisis ad hoc.
Use Flow Builder y Apex para obtener predicciones
Aquí hay un flujo que usa una acción invocable para crear recomendaciones de productos para un cliente.
En este ejemplo, un administrador usa Flow Builder para separar los registros de individuos unificados para verificar si se realizó una compra reciente. Si se realizó la compra, la acción invocable obtiene la inferencia del modelo de Einstein Studio y recomienda el siguiente mejor producto a un cliente.
Esta acción invocable también se puede llamar en Apex. Vea el ejemplo a continuación.
<dx-code-block title language="apex" code-block="Invocable.Action action = Invocable.Action.createCustomAction('cdpGetMlPrediction', 'EinsteinStudio_model_name');
action.setInvocationParameter('variable_1', '10');
action.setInvocationParameter('variable2', '20');
action.setInvocationParameter('variable3', '30');
List results = action.invoke();
if (results.size() > 0 && results[0].isSuccess()) { System.debug(‘Result is: ‘ + results[0].getOutputParameters().get(‘param_score’));
} else { System.debug(‘Error message’ + results[0].getErrors());
} «>
Para obtener instrucciones sobre el uso de acciones invocables en Flow y Apex, consulte la Ayuda de Salesforce .
Utilice análisis ad hoc para obtener predicciones
Query API es otra forma rápida de obtener puntajes de predicción para los datos que residen en Data Cloud. Con Query API, puede usar el punto final de inferencia y funciones de predicción de llamadas para probar el punto final.
Para obtener instrucciones sobre el uso de acciones invocables en QueryAPI, consultela Ayuda de Salesforce.
Conclusión
Einstein Studio es una plataforma de IA fácil de usar que permite a los equipos de ciencia e ingeniería de datos crear, entrenar e implementarmodelos de IA utilizando plataformas externas y datos en Data Cloud. Las plataformas externas incluyen Amazon SageMaker, Google Cloud Vertex AI y otros servicios de IA predictivos o generativos. Una vez que esté listo, puede utilizar los modelos de IA en tiempo real para impulsar cualquier aplicación de ventas, servicios, marketing, comercio y otrasenSalesforce.
Recursos adicionales
Sobre el Autor
Daryl Martis es el Director de Producto de Salesforce para Einstein. Tiene más de 10 años de experiencia en la planificación, creación, lanzamiento y gestión de soluciones de clase mundial para clientes empresariales, incluidas soluciones de inteligencia artificial y aprendizaje automático y en la nube. Anteriormente trabajó en la industria de servicios financieros en la ciudad de Nueva York. Síguelo enLinkedInoTwitter .
Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.
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.
…
¡Ya está aquí la CLI sf (v2) de Salesforce! — Parte 2 | Blog de desarrolladores de Salesforce
La CLI (interfaz de línea de comandos) de Salesforce es la piedra angular del desarrollo de Salesforce y, como cualquier otra herramienta, evoluciona con el tiempo. Esta publicación es la segunda de una serie de blogs de dos partes sobre sf (v2), la nueva y mejorada CLI de Salesforce. En la Parte 1 , echamos un vistazo a las novedades de sf (v2) y, en esta parte final, exploraremos los nuevos comandos de estilo sf y patrones de banderas y compartiremos cómo puede migrar desde comandos de estilo sfdx y patrones basados en banderas. en nuestra experiencia con aplicaciones de muestra . Si bien la migración puede parecer intimidante a primera vista, compartiremos algunos consejos sobre cómo facilitar la transición.
Conozca los comandos de estilo sf
Si ha estado usando la CLI durante algún tiempo, probablemente comenzó a notar una serie de advertencias en los comandos que usa con frecuencia, como este:
sfdx force:source:push
Warning: We plan to deprecate this command in the future. Try using the "project deploy start" command instead.»>
Estos cambios son el resultado del trabajo continuo en Salesforce CLI Unification que comenzó hace varios lanzamientos (más detalles en la primera parte de esta serie).
Desde entonces, cada vez que instala la CLI de Salesforce, obtiene los dos ejecutables ( sfdx y sf ). Puede usar cualquiera de estos ejecutables ya que la mayoría de los comandos son interoperables, pero le recomendamos que comience a usar sf en su trabajo diario para prepararse para el futuro.
Debido a que sf cubre más que solo el desarrollo de la plataforma central, ofrece una nueva taxonomía de comandos simplificada que refleja el flujo de trabajo de un desarrollador típico en lugar de las marcas, productos o funciones de Salesforce.
Un ejemplo práctico de esto es el comando sf org create . Con este nuevo comando, la intención es más clara: llamas a la misma base de comandos con scratch , sandbox , shape , snapshot o user , mientras que en sfdx tenías que usar una combinación de diferentes comandos ( force:org:create , force:user:create ) y flags ( --type=scratch o --type=sandbox ) para obtener el mismo resultado.
Otra característica interesante de sf es que incluye más comandos visuales e interactivos, como la creación de organizaciones con la capacidad de reanudar operaciones de larga duración en caso de tiempo de espera.
Migrar al ejecutable sf
Además de simplemente cambiar el nombre del ejecutable de sfdx a sf , hay una serie de cambios que se aplican a los comandos CLI al actualizar sus proyectos. La documentación de la CLI de Salesforce proporciona una buena descripción general de estos cambios, pero destacaremos los que nos afectaron durante la actualización de nuestras aplicaciones de muestra.
Comandos sfdx comunes y sus equivalentes sf
En primer lugar, el tema force se eliminó de la mayoría de los comandos, lo cual es una buena noticia, ya que acorta los comandos. El otro cambio importante es que los temas, comandos y subcomandos, que antes estaban separados por dos puntos como en sfdx force:org:list , ahora están separados por espacios, como en sf org list .
Mirando más de cerca los comandos que usamos a diario cuando trabajamos en aplicaciones de muestra, aplicamos los siguientes cambios:
Comando sfdx heredado
Comando sf equivalente
Migración Comentarios
sfdx force:org:delete -p -u recipes
sf org delete scratch -p -o recipes
Se debe agregar el subcomando scratch . El indicador de la organización de destino cambia de -u a -o .
sfdx force:org:create -s -f config/project-scratch-def.json -d 30 -a recipes
sf org create scratch -d -f config/project-scratch-def.json -y 30 -a recipes
Se debe agregar el subcomando scratch . El indicador "asignar organización predeterminada" cambia de -s a -d . El indicador de duración de la organización borrador cambia de -d a -y .
sfdx force:source:push
sf project deploy start
Este es un cambio significativo, pero el nuevo comando funciona para todos los formatos de proyecto (fuente o metadatos). Anteriormente, necesitaba comandos distintos.
sfdx force:user:permset:assign -n recipes
sf org assign permset -n recipes
El tema cambia de user a org y cambia el orden de los subcomandos.
Si está buscando otros comandos, la documentación de CLI proporciona una lista completa de comandos sfdx con sus equivalentes sf . Cada vez que reemplace un comando, asegúrese de revisar sus banderas en busca de cambios, especialmente si usa las banderas de formato corto (un solo carácter) ( -o en lugar de --target-org por ejemplo). Puede ejecutar cualquier comando con el indicador -h o --help para obtener su descripción.
Automatice parte de la migración con expresiones regulares
ℹ️ Edición del 27 de julio de 2023: en lugar de expresiones regulares, puede usar un script de migración como se documenta aquí .
Cuando analizamos la migración de nuestros proyectos de aplicaciones de muestra , sabíamos que necesitaríamos automatizar parte del proceso, ya que había cerca de 1700 referencias a sfdx en más de 200 archivos. Para obtener los resultados más precisos aquí, asegúrese de agregar un espacio después de sfdx en su término de búsqueda y excluya la carpeta node_modules de su búsqueda, como hicimos aquí:
Comenzar con una búsqueda es un buen primer paso. Le ayuda a darse cuenta de que tendrá que migrar sus comandos en un par de lugares, como:
Scripts de integración continua
Guiones de desarrollo local
Documentación
Luego puede ir más allá experimentando con una búsqueda y reemplazo de expresiones regulares (RegEx) en VS Code. Este enfoque es una forma rápida de iniciar la migración. Funciona bien para la búsqueda, pero no es perfecto como reemplazo, ya que algunos comandos requieren actualizaciones manuales. En cualquier caso, siempre pruebe el resultado de sus cambios antes de enviarlos a producción.
Comience ejecutando esta búsqueda RegEx y reemplace:
Tenga en cuenta el uso de tres grupos de captura encerrados entre paréntesis en la expresión de búsqueda y representados por signos de dólar seguidos de un número en la expresión de reemplazo. Los grupos de captura le permiten retener dinámicamente ciertos valores (palabras como temas, comandos y subcomandos en nuestro caso) mientras realiza cambios en el resto de la línea (reemplazando los separadores de dos puntos con espacios en nuestro caso).
Si desea obtener más información sobre este RegEx u otros, le recomiendo que consulte regex101.com , ya que proporciona una explicación de la sintaxis y un campo de juego para probar expresiones.
Aquí hay un ejemplo de la entrada y salida en VS Code de la expresión anterior (no olvide activar el modo RegEx como lo indica la flecha roja):
Notará que esta primera ronda de búsqueda y reemplazo no es perfecta ya que obtiene algunos caracteres de espacio adicionales en el texto reemplazado. Puede arreglar esto fácilmente ejecutando una segunda operación RegEx de búsqueda y reemplazo como esta:
Una vez que ejecute este último RegEx, todavía hay un par de cambios manuales que necesitará para operar. Como vimos anteriormente en la tabla de equivalencia de comandos, estas son las cosas clave a tener en cuenta:
Algunos comandos usan diferentes temas y subcomandos. Por ejemplo, sf user assign permset es incorrecto: user debe ser reemplazado por org .
Algunas banderas necesitan ser cambiadas. Por ejemplo, sf org create scratch -s -f config/project-scratch-def.json -d 30 -a recipes es incorrecto: el indicador -d debe reemplazarse por -y y el indicador -s debe reemplazarse por -d .
Afortunadamente, la mayoría de estos cambios no son demasiado difíciles de aplicar y puede migrar con bastante rapidez a los comandos de estilo sf . Lo dejaremos con una vista de diferencias de GitHub que resume todos los cambios que fueron necesarios para migrar una de nuestras aplicaciones de muestra.
palabras de cierre
Eso es un resumen de esta breve descripción general de la migración de los comandos sfdx -style a los comandos sf -style. Vislumbró el beneficio del ejecutable sf y su nueva sintaxis. Esperamos que se beneficie de nuestra experiencia de migración y de nuestros consejos al actualizar sus proyectos.
Recursos
Sobre el Autor
Philippe Ozil es un defensor principal de desarrolladores en Salesforce, donde se enfoca en la plataforma de Salesforce. Escribe contenido técnico y habla con frecuencia en conferencias. Es un desarrollador full-stack y disfruta trabajar en proyectos DevOps, robótica y VR. Sígalo en Twitter @PhilippeOzil o consulte sus proyectos de GitHub @pozil .
Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.
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.
…
Libere el poder de Apex en Salesforce Data Cloud — Parte 1 | Blog de desarrolladores de Salesforce
Trailblazer.me estará fuera de línea por mantenimiento programado a partir del 21 de julio de 2023 a las 6 p. m. (hora del Pacífico) hasta el 22 de julio de 2023 mientras transformamos Trailblazer.me en la nueva cuenta de Trailblazer. Durante este tiempo de inactividad, no podrá iniciar sesión en ninguna aplicación relacionada, incluidas Ayuda y capacitación, AppExchange, Trailhead y Trailblazer Community, y más.
Salesforce Data Cloud permite a los desarrolladores aprovechar el poder de los grandes datos para las empresas. Al utilizar Data Cloud, los clientes pueden consolidar los datos de clientes de múltiples sistemas en una única instancia de Salesforce, creando una vista unificada de los datos en toda la empresa. Estos datos se pueden utilizar para análisis, aprendizaje automático y acciones automatizadas. En este primer blog de nuestra serie de dos partes, exploraremos diferentes utilidades de Apex para consultar datos en Data Cloud y brindaremos orientación sobre cómo utilizarlas de manera efectiva.
Apex ofrece una variedad de utilidades para Data Cloud. Por ejemplo, permite que los desarrolladores construyan con Lightning Web Components para personalizar las experiencias de usuario estándar de Data Cloud, o que los ISV construyan su propio código para automatizar operaciones específicas de Data Cloud, como la resolución de identidades, la creación y ejecución de conocimientos calculados de Data Cloud o la segmentación.
Objetos de Salesforce Data Cloud frente a objetos estándar/personalizados
Antes de analizar cómo consultar datos de Data Cloud, comprendamos un poco acerca de los objetos de Salesforce Data Cloud y cómo difieren con respecto a los objetos estándar/personalizados de Salesforce Platform.
Salesforce Data Cloud tiene un modelo de datos canónico que incluye objetos de lago de datos (DLO) y objetos de modelo de datos (DMO). Puede leer acerca de cómo estos objetos se asignan entre sí y sus propósitos en la documentación de ayuda.
Los objetos de Data Cloud pueden ingerir y almacenar volúmenes de datos mucho más grandes (en la magnitud de miles de millones de registros) en comparación con los objetos estándar y personalizados regulares en la Plataforma de Salesforce. Los objetos estándar/personalizados están diseñados para casos de uso transaccional y no son adecuados para almacenar y procesar big data. Por otro lado, los objetos de Data Cloud agregan capacidades similares a las de un lago de datos .
Otra distinción clave es que los objetos de Data Cloud no admiten disparadores Synchronous Apex. Sin embargo, aún puede lograr la automatización de procesos suscribiéndose a Change Data Capture (CDC) y utilizando Flows o Apex. Lo que es común entre los objetos de la nube de datos y los objetos de la plataforma es que están construidos sobre la misma base impulsada por metadatos, lo que hace posible el uso de características de la plataforma, como Salesforce Flow, Apex y Platform Events.
Cómo consultar datos de Data Cloud en Apex
Antes de profundizar en algún código, exploremos un ejemplo de caso de uso de una aplicación de nube de datos.
Ejemplo de caso de uso y supuestos
Para nuestros ejemplos de código en esta publicación de blog, supongamos que estamos trabajando para una empresa ficticia llamada Solar Circles que captura datos de todos sus paneles solares instalados en Data Cloud. Cada mes, se generan decenas de millones de puntos de datos a partir de estos paneles. Al tener estos datos en Data Cloud, Solar Circles obtiene la capacidad de realizar análisis, utilizar técnicas de aprendizaje automático y obtener información procesable de los datos.
El código de Apex en esta publicación asume una condición importante: la nube de datos está habilitada y el código de Apex se ejecuta en la organización de la nube de datos y no en las organizaciones de Salesforce que están conectadas a la organización de la nube de datos.
Consultar datos de Data Cloud usando SQL
Para acceder a datos de objetos de Data Cloud (DLO o DMO), utilice la clase CdpQuery (ver documentos ) en Apex. Esta clase está disponible en el espacio de nombres ConnectApi (ver documentos ).
A continuación se muestra un fragmento de código de ejemplo que muestra cómo acceder a los datos de un objeto de nube de datos mediante una instrucción SQL.
<dx-code-block title language="apex" code-block="@AuraEnabled(cacheable=true)
public static void getSolarPanelData(String customerId) { List<Map> returnData = new List<Map>(); // Create input for query operation ConnectApi.CdpQueryInput queryInput = new ConnectApi.CdpQueryInput(); queryInput.sql = ‘SELECT * ‘ + ‘FROM Solar_Panel_Events_solar_panel_F4C03__dlm ‘ + ‘WHERE CustomerId__c = » + customerId + » ‘ + ‘ORDER BY date_time__c DESC LIMIT 50’; // Execute SQL ConnectApi.CdpQueryOutputV2 response = ConnectApi.CdpQuery.queryAnsiSqlV2( queryInput ); Map responseMetadata = new Map(); responseMetadata = response.metadata; // Parse response System.debug( ‘Number of rows in the result data set ‘ + response.rowCount ); System.debug(‘Next batch ID ‘ + response.nextBatchId); System.debug(‘Query Metadata’ + responseMetadata); for (ConnectApi.CdpQueryV2Row resultRow : response.data) { for (Object result : resultRow.rowData) { system.debug(result); } } «>
En el ejemplo anterior, estamos recuperando datos para un componente LWC personalizado en una página Lightning de caso de objeto estándar para un agente de servicio. El componente muestra datos de dispositivos recientes provenientes de los paneles instalados en el sitio del cliente.
Aspectos destacados del código
El método toma un parámetro customerId , lo que indica que recupera los datos del panel solar para un cliente específico
Se crea una instancia de ConnectApi.CdpQueryInput llamada queryInput para definir la operación de consulta.
La propiedad queryInput.sql se establece con una consulta SQL que selecciona todos los campos del objeto de datos Solar_Panel_Events_solar_panel_F4C03__dlm , filtrado por CustomerId__c
La consulta se ejecuta mediante ConnectApi.CdpQuery.queryAnsiSqlV2(queryInput) , que devuelve un objeto ConnectApi.CdpQueryOutputV2 denominado response
El response.metadata se asigna a responseMetadata , que almacena los metadatos de la respuesta de la consulta.
Consideraciones importantes
Apex tiene un límite de CPU de 10 segundos para transacciones sincrónicas. Data Cloud puede contener miles de millones de filas de datos. Al recuperar datos en Apex desde Data Cloud, asegúrese de agregar suficientes filtros y proporcionar contexto (como el recordId con el que está trabajando) para limitar la cantidad de filas y evitar alcanzar el límite de CPU de 10 segundos.
Si está recuperando una gran cantidad de datos, use Queueable Apex para ejecutar el proceso de forma asincrónica y aproveche el límite de CPU de 60 segundos.
Recomendamos usar queryAnsiSqlV2 (consulte los documentos ) en lugar de queryAnsiSql para aprovechar las solicitudes posteriores y los tamaños de respuesta más grandes para casos de uso en los que necesita extraer grandes volúmenes de datos.
Use nextBatchAnsiSqlV2(nextBatchId) (ver documentos ) para proporcionar batchId de la respuesta anterior para recuperar el siguiente conjunto de resultados.
También puede usar SOQL en lugar de SQL, pero asegúrese de obtener su SOQL usando el Explorador de datos , ya que hay funciones de SOQL que pueden no ser aplicables a los objetos de Data Cloud.
Cómo buscar información de perfil
Antes de analizar cómo buscar información de perfil de Data Cloud en Apex, debemos comprender qué es un perfil unificado.
Perfil unificado y resolución de identidad
Supongamos que Solar Circles, nuestro fabricante ficticio de paneles solares, tiene datos sobre un cliente llamado Martha en varios sistemas. Cada sistema tiene información diferente sobre ella, como diferentes direcciones de correo electrónico. Estos datos únicos se denominan puntos de contacto . Los clientes como Martha están representados por múltiples registros de contacto y perfiles específicos del sistema en varios sistemas. Esto es necesario para que cada nube y producto funcione de forma independiente, pero puede crear silos de datos.
A continuación se muestra un código Apex de utilidad de ejemplo que busca información de perfil. Tenga en cuenta que se utiliza el método queryProfileApi de la clase ConnectApi.CdpQuery .
<dx-code-block title language="apex" code-block=" @AuraEnabled public static List
Aquí hay un fragmento de código de ejemplo que invoca el código de utilidad anterior al pasar los parámetros.
<dx-code-block title language="apex" code-block=" List
El código busca la información de perfil del cliente Martha en el objeto de modelo de datos UnifiedIndividual__dlm .
Aspectos destacados del código
El método utiliza ConnectApi.CdpQuery.queryProfileApi() para ejecutar la consulta de datos de perfil en la nube de datos
Los parámetros de consulta incluyen los nombres del objeto del modelo de datos ( dataModelName ), el objeto del modelo de datos secundario ( childDataModelName ), el campo de clave de búsqueda ( searchKey ) y el nombre del cliente ( customerName )
Se pueden proporcionar parámetros opcionales adicionales, como expresiones de igualdad, nombres de campos de objetos secundarios, la cantidad de elementos para devolver, la cantidad de filas para omitir y el orden de clasificación para el conjunto de resultados.
La respuesta de la consulta se almacena en un objeto ConnectApi.CdpQueryOutput llamado response
El método devuelve response.data , que representa los datos recuperados de la consulta
Importante consideración
Vuelva a verificar los nombres de campo y objeto antes de usarlos en el código de Apex, ya que, de lo contrario, el método puede generar excepciones y errores internos del servidor.
¿Cómo consultar datos de conocimientos calculados?
Los conocimientos calculados le permiten definir y calcular métricas multidimensionales en todo su estado digital en Data Cloud. Data Cloud genera información calculada al escribir SQL , de manera declarativa usando Insights Builder o usando Apex.
Streaming vs insights calculados
Hay dos tipos de información en Data Cloud: transmisión e información calculada.
Los conocimientos calculados son funciones que pueden calcular métricas en datos históricos. Se procesan en lotes. Por ejemplo, en nuestra aplicación Solar Circles, podemos tener una visión calculada que mide la potencia total generada por los paneles agrupados por cada cliente.
La información de transmisión se genera casi en tiempo real mediante el análisis del flujo continuo de datos entrantes. Estos conocimientos permiten la activación inmediata de acciones en los sistemas posteriores. Por ejemplo, la información de transmisión se puede utilizar para identificar a los clientes cuyos paneles solares generan una potencia mínima. Al aprovechar una acción de datos en la transmisión de conocimientos, podemos crear de manera proactiva un caso para dichos clientes en Salesforce Service Cloud.
Consultar datos a partir de una perspectiva calculada
Para consultar datos de las perspectivas calculadas, use el método queryCalculatedInsights de la clase CdpQuery . A continuación se muestra un fragmento de código de ejemplo que muestra cómo consultar datos de una perspectiva calculada conocida.
Aspectos destacados del código
El método queryCalculatedInsights de ConnectApi.CdpQuery se usa para recuperar información calculada de Data Cloud.
El primer parámetro es el nombre de API de la información calculada, que debe terminar con __cio . Por ejemplo, <calculted insight api name> podría reemplazarse por totalpowergenerated__cio .
Los siguientes parámetros especifican dimensiones y medidas. Una dimensión representa un campo o atributo en el que se basa la información, mientras que una medida representa la métrica calculada. Proporcionar null para estos parámetros incluye todas las dimensiones y medidas disponibles.
Se puede especificar el orden de clasificación para el conjunto de resultados, pero en este fragmento de código, se establece en null .
Los parámetros opcionales adicionales incluyen filtrar el conjunto de resultados a un ámbito o tipo más específico y especificar la cantidad de elementos que se devolverán y la cantidad de filas que se omitirán antes de devolver los resultados.
Los datos resultantes se almacenan en un objeto ConnectApi.CdpQueryOutput denominado response .
Importante consideración
Asegúrese de proporcionar el nombre de API correcto para la información. Un nombre de API incorrecto da como resultado un error del sistema.
Conclusión
En esta publicación de blog, brindamos una descripción general de cómo puede aprovechar el poder de Salesforce Data Cloud y Apex para aprovechar los grandes datos para las empresas. Los ejemplos de código y los puntos destacados demuestran enfoques prácticos para acceder y consultar datos de objetos de Data Cloud.
La publicación también destaca las mejores prácticas y las limitaciones que se deben tener en cuenta al trabajar con Data Cloud y Apex, como administrar los límites de la CPU, utilizar el procesamiento asincrónico para grandes conjuntos de datos y garantizar la denominación correcta de la API para los conocimientos calculados.
En la siguiente parte de la serie, profundizaremos en las clases de Apex como CdpCalculatedInsight (consulte los documentos ), CdpIdentityResolution (consulte los documentos ) y CdpSegment (consulte los documentos ) que se pueden usar para administrar información calculada, crear reglas de resolución de identidad y segmentación en Data Cloud mediante Apex.
Referencias adicionales
Sobre el Autor
Mohith Shrivastava es promotor de desarrollo en Salesforce con una década de experiencia en la creación de productos a escala empresarial en la plataforma de Salesforce. Actualmente se está enfocando en las herramientas para desarrolladores de Salesforce, Flow, Apex y Lightning Web Components en Salesforce. Mohith se encuentra actualmente entre los principales contribuyentes en Salesforce Stack Exchange, un foro de desarrolladores donde los desarrolladores de Salesforce pueden hacer preguntas y compartir conocimientos. Puedes seguirlo a través de su Twitter @msrivastav13 .
Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.
Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .
El enlace a la publicación original, lo encontrarás al final de este artículo.
…
Introducción a las acciones externas | Blog de desarrolladores de Salesforce
Tuve excelentes conversaciones con clientes y socios en Connections este año, así como a través de la comunidad Trailblazer de MC Account Engagement , con respecto a las acciones externas de Account Engagement . Seguía surgiendo una pregunta: "¿Cómo empiezo con las acciones externas?" En esta publicación, aprenderá qué son las acciones externas, cómo configurarlas y cómo probarlas. Además, sintonice una próxima sesión de codeLive el 20 de julio a las 10 a. m. PT , donde realizaré una demostración de codificación en vivo para mostrarle cómo crear una acción externa y responder sus preguntas.
¿Qué son las Acciones Externas?
Las acciones externas son una parte clave deMarketing App Extensions , ya que proporcionan una forma de desencadenar una acción en un sistema externo. El otro componente es Actividades externas, que proporciona una forma de activar la automatización de la participación de la cuenta en función de un evento de participación que ocurre en un sistema externo. Piense en ello como las dos caras de una moneda, las acciones se activan, las actividades se activan. Combinadas, forman una aplicación de extensibilidad de automatización para un servicio, por lo que puede tener una extensión de aplicación de marketing por SMS, por ejemplo.
Por este motivo, las acciones externas se empaquetan en una extensión de aplicación de marketing. En el momento de escribir este artículo, las actividades externas aún no se pueden empaquetar, pero eventualmente también se empaquetarán en la extensión de la aplicación de marketing.
Si desea conectar una aplicación de terceros para automatizar la ejecución de una acción de prospecto en ese sistema, entonces esta es definitivamente la función para usted. En esta publicación, profundizaremos en el lado de la acción externa de las extensiones de aplicaciones de marketing.
¿Cuáles son algunos buenos casos de uso para las acciones externas?
Bueno, si me preguntan, ¡diría absolutamente todo! Puede que estés pensando: “¡Claro, todo el mundo dice eso!”. Sin embargo, las posibilidades que desbloquean las acciones externas son realmente amplias. Si alguna vez ha dicho: "Me gustaría que cuando un prospecto llegue a este paso, yo pudiera <insertar deseo aquí>", entonces deseaba una acción externa.
Puede usar una acción externa para registrarse en un seminario web de Zoom desde Account Engagement (consulte el ejemplo en GitHub ). También puede usar una acción externa para enviar un mensaje SMS a través de Twilio, que presentamos en una publicación de blog anterior . Incluso puedes usar acciones externas con webhooks; Usé la función de captura de webhook de Zapier para crear una acción externa que usaba un cliente potencial como desencadenante de un Zap.
¿Qué constituye una acción externa?
Una acción externa consta de una acción invocable de Apex, metadatos de la extensión de la aplicación de marketing, metadatos de una acción externa y una forma de gestionar la autenticación. Los metadatos para las extensiones de la aplicación de marketing y las actividades externas conectan la acción invocable con la participación de la cuenta. Los componentes que se usarán para la autenticación pueden variar según el tipo de autenticación que admita el servicio. Como OAUTH 2.0 es bastante común, el componente que uso más es un proveedor de autorización y Credenciales con nombre . Las credenciales con nombre también facilitan la administración de la autenticación en mi código, y el sistema hace la mayor parte del trabajo.
¿Qué habilidades necesito para trabajar con Acciones Externas?
Con una gran flexibilidad viene la complejidad, por lo que necesitará algunas habilidades en ciertas áreas para construir con éxito una acción externa. Los siguientes son temas clave de los que necesitará una comprensión básica antes de abordar su propia acción externa.
SLDC de Salesforce
Comprender el ciclo de vida del desarrollo de Salesforce es muy importante para tener éxito en general. Recomiendo aprender Visual Studio y el proceso de implementación de la CLI. No se necesita maestría, solo lo básico para poder empezar. Trailhead ofrece una ruta para ayudarlo a configurar su espacio de trabajo .
Documentación de la API REST
El patrón del que hablamos en este artículo se basa en las API REST JSON. Para comprender lo que es posible y recopilar las entradas pertinentes para una acción externa, debe poder leer una especificación API. Consulte las especificaciones de la API de Account Engagement y Twilio .
Implementación de Apex y Apex
Apex Invocable Actions es mi forma preferida de codificar mis acciones externas, ya que me permite la mayor flexibilidad y control. Recomendaría, como mínimo, familiarizarse con la compilación y la implementación de código Apex mediante el proyecto Quick Start: Apex de Trailhead. Para obtener más información, encontré útil el trailmix de Apex Basics . No necesita convertirse en un experto, pero al menos debe estar lo suficientemente informado como para poder leer el código de la aplicación de referencia .
Flujo de Salesforce (opcional)
No necesita conocer Salesforce Flow para aprender Acciones externas. Sin embargo, es una herramienta de prueba muy poderosa para sus acciones externas, lo que facilita la creación de una interfaz de usuario para controlar las entradas durante la prueba. Si está familiarizado con Engagement Studio, Flow será bastante fácil ya que tiene muchos de los mismos conceptos. Utilicé la ruta Crear flujos con Flow Builder para ponerme al día. Otro beneficio de aprender Salesforce Flow es que abre la puerta a la creación de todo tipo de automatización de procesos comerciales.
¿Cómo debo configurar mi entorno de desarrollador?
Es importante configurar sus entornos de desarrollador y contar con las herramientas adecuadas antes de comenzar con las acciones externas. Yo uso las siguientes herramientas.
Postman : utilizo Postman para explorar una nueva API, por lo que puedo aprender a realizar una solicitud y responder de forma sencilla. Postman también proporciona una manera fácil de generar ejemplos.
CLI de Visual Studio + Salesforce— Uso Visual Studio para codificar mi acción invocable y la implemento en mi organización de desarrollador. La mayoría de las veces, es simplemente copiar y pegar un ejemplo anterior y editarlo para mi nuevo caso de uso.
Entorno de desarrollador/sandbox : este es un entorno seguro para construir, desarrollar y empaquetar sus acciones externas. Tenga en cuenta que, en el momento de escribir este artículo, solo admitimos paquetes de primera generación (1GP) , por lo tanto, no configure su organización de desarrollador como Dev Hub.
Salesforce Flow : personalmente me gusta usar ScreenFlows para probar una acción invocable. Es bueno poder controlar completamente la entrada antes de conectarla a acciones externas y programas ES.
Consola de desarrollador de Salesforce : esto le permite ver rápidamente el código o ver los registros de sus pruebas de flujo de pantalla.
Patrón básico para llamadas API REST con acciones externas
Si bien puede codificar acciones externas de muchas maneras, existe un patrón básico que recomiendo al realizar llamadas a la API REST.
Las dos etiquetas que debe recordar son InvocableVariable , que define las entradas y salidas de la acción invocable, e InvocableMethod , que es el método a llamar al ejecutar la acción invocable. Puede ver cómo se aplican en el siguiente código de ejemplo.
Normalmente creo dos clases, una para la entrada y otra para la solicitud de API. Separar mi código en dos clases facilita jsonificar la carga útil. Mi clase de entrada contiene todos los campos de variables invocables que la acción invocable necesita en la entrada. Mi solicitud de API contiene los campos de la solicitud JSON.
InvocableMethod construirá la carga útil a partir de la entrada, la convertirá a JSON y luego la agregará a la solicitud HTTP. A continuación, configura el resto de la solicitud HTTP agregando la URL, los encabezados y el método. Finalmente, realiza la llamada a la API y comprueba si el resultado es correcto o, de lo contrario, genera un error útil para diagnosticar un problema.
Consideración importante: el marco de acción externa espera que se devuelva un error si hay una falla en lugar de detectar el error y luego devolver el éxito. Si se devuelve un error, se informará en la tabla de errores.
Poniendo a prueba tus acciones externas
De vez en cuando, mientras crea una acción externa, encontrará errores. Cuanto más pueda probar sobre la marcha, más fácil será descubrir dónde radica el problema. Es por eso que recomiendo agregar un paso de prueba para probar en Salesforce Flow antes de probar en Engagement Studio. Elimina la configuración de la acción externa de la imagen, por lo que si la verifica aquí, pero no funciona en Engagement Studio, sabrá que el problema radica en la configuración de la acción externa.
Las pruebas lo ayudan a identificar errores, pero determinar la causa raíz y corregirlos es otra cosa. A continuación se presentan algunas de las técnicas que utilizo para diagnosticar las causas fundamentales.
Consola de desarrollador de Salesforce : utilizo la consola de desarrollo para ejecutar mis casos de prueba y confirmar la cobertura de mi código. Durante las pruebas exploratorias en Flow, mantengo abierta mi consola de desarrollo, por lo que genera registros para usar en la investigación de errores.
Rastreos de registro de Salesforce : si el error ocurre durante mi prueba de Engagement Studio, coloco un rastreo de usuario en el usuario de integración B2BMA, para poder ver mis registros de Apex y diagnosticar el problema más a fondo. Tenga cuidado, podría terminar con una gran cantidad de datos. El Usuario de Integración B2BMA es el usuario que ejecuta acciones externas.
Errores de acción externa de compromiso de cuenta : la tabla proporciona cualquier error devuelto por la acción externa que resultó en una falla. Es útil ver lo que sucedió durante una ejecución de ES.
SUGERENCIA: si tiene una cuenta de Gmail, puede usar un "+" para crear varios registros con su dirección de correo electrónico. Por ejemplo, puedo registrar tanto "ejemplo@ejemplo.com" como "ejemplo+usuario2@ejemplo.com" como prospecto, y cualquier correo enviado a esas direcciones iría al buzón de correo de ejemplo@ejemplo.com. Por ejemplo, usé esto para probar el ejemplo de registro de Zoom porque no quería que el correo electrónico registrado rebotara.
Errores comunes
Los errores van a suceder, así es la vida. Me he encontrado con algunos escenarios que me han hecho casi tirarme de los pelos.
El primero es garantizar que la acción exterior sea activa. Si la acción no aparece en Engagement Studio, es probable que esta sea la causa. Recuerde, debe activar tanto la extensión de la aplicación de marketing como la acción externa, además de asignarla a esa unidad comercial.
El siguiente es asegurarse de que su clase de Apex esté activa. La mayoría de las veces ya estará marcado como activo, es el estado predeterminado cuando creas una nueva clase. Es exactamente por eso que es fácil pasarlo por alto.
Otro es buscar extensiones de aplicaciones de marketing al empaquetar. No puedo decirte cuántas veces busco acciones externas, solo para tener un momento de confusión antes de recordar.
Finalmente, si su acción externa no funciona, pero no ve errores, verifique que la acción invocable fue diseñada para generar un error en caso de falla.
Lo anterior no es de ninguna manera exhaustivo, y es probable que encuentre sus propias alegrías. Sin embargo, recomiendo compartirlos con la comunidad si encuentra algunos buenos.
¿Que estas esperando? ¡Empiece hoy!
Ahora sabe casi todo lo que hago sobre las acciones externas, desde cómo funciona la función hasta los errores comunes. Recuerde que Acciones externas es su herramienta siempre que se encuentre diciendo: "Me gustaría hacer algo cuando el cliente potencial haga esto", y lo ayudará a automatizar esa acción.
Entonces, configure su entorno de desarrollador, revise la aplicación de referencia y comience a construir su acción externa hoy. El 20 de julio a las 10 a. m. (hora del Pacífico) , realizaremos una sesión de CodeLive en nuestro canal de YouTube para desarrolladores de Salesforce , así que únase y síganos mientras construimos una extensión de la aplicación de marketing de Twilio.
Recursos
Sobre el Autor
Christopher Cornett es gerente sénior de productos en Salesforce, responsable de la experiencia del desarrollador de Account Engagement. Ha trabajado para Salesforce durante más de cuatro años y tiene más de 13 años de experiencia en gestión de productos, trabajando principalmente en plataformas que van desde la atribución de big data hasta el fraude. Christopher ha ayudado a ofrecer API V5 y extensiones de aplicaciones de marketing, ayudando a los clientes a crear integraciones personalizadas para que su pila de marketing funcione para ellos. Le apasiona la experiencia del desarrollador y le encanta jugar con todas las excelentes funciones para ver qué es posible.
Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.
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.
…
¡Ya está aquí la CLI sf (v2) de Salesforce! — Parte 1 | Blog de desarrolladores de Salesforce
La CLI de Salesforce es una de las herramientas de desarrollo más importantes de nuestro ecosistema. La CLI es el compañero diario de los desarrolladores de Salesforce para crear, probar, implementar y más. Además, la CLI es fundamental para las prácticas de DevOps, como la integración continua, donde la automatización es clave. Después de siete años de disponibilidad general, ahora estamos entrando en un nuevo capítulo para la CLI de Salesforce.
Esta publicación es la primera de una serie de blogs de dos partes sobre sf (v2), la nueva y mejorada CLI de Salesforce. En la Parte 1, veremos las novedades de Salesforce CLI sf (v2). Luego, en la segunda parte de la serie, nos sumergiremos en cómo puede migrar de comandos y banderas de estilo sfdx a los nuevos comandos y patrones de bandera de estilo sf .
Anuncio de disponibilidad general (GA) de sf (v2)
Hace aproximadamente dos años, el equipo de CLI de Salesforce se embarcó en una iniciativa de unificación con la visión de unificar las diversas experiencias de CLI en todo el ecosistema de Salesforce. Anunciamos la próxima evolución de nuestra CLI de Salesforce con un nuevo ejecutable llamado sf . La creación de sf como una CLI separada nos dio la oportunidad de diseñar, probar y lanzar no solo una nueva estructura de comando para un rápido desarrollo entre nubes, sino también una CLI más intuitiva, eficaz y fácil de usar.
Hoy, nos complace anunciar la disponibilidad general (GA) de la segunda versión (v2) de sf . Esta es una versión principal de sf CLI que es lo suficientemente inteligente como para comprender todos sus comandos sfdx , así como los comandos sf , con tiempos de instalación y actualización mucho más rápidos. La CLI sf (v2) es todo lo que es sf y sfdx . Después de instalar sf (v2), tendrá acceso a todos los comandos sfdx y sf , y podrá continuar ejecutando cualquiera de ellos.
Adopte el futuro del desarrollo de Salesforce
La CLI sf (v2) es nuestro camino a seguir. Le permite experimentar actualizaciones e instalaciones más rápidas ya que el tamaño de instalación/descarga se ha reducido considerablemente.
Esto significa que todas las capacidades nuevas vendrán solo a través de sf (v2) y dejaremos de publicar actualizaciones en sfdx (excepto las correcciones relacionadas con la seguridad). Además, todas las nuevas correcciones y características del complemento CLI solo entrarán en sf (v2).
Después de una importante investigación de UX, hemos introducido nuevos comandos de estilo sf y patrones de bandera para brindar una mejor experiencia de usuario. Sin embargo, si le preocupan los esfuerzos necesarios para migrar de sfdx a sf , ¡tenemos buenas noticias para usted! Todavía puede usar los comandos sfdx y la CLI sf seguirá respondiendo de la misma manera. Además, solo tendrá un conjunto de complementos CLI en lugar de uno para sfdx y otro para sf (v1). (Nota: si ha instalado complementos, todos los complementos en sf estarán disponibles en sf (v2). Sin embargo, los complementos en sfdx no están disponibles automáticamente en sf (v2). Instale los que necesita usando sf plugins install ) .
Comience con la CLI de Salesforce sf (v2)
Para familiarizarse con sf (v2), siga las instrucciones de instalación , que le mostrarán cómo pasar a sf (v2) y cómo volver a su instalación CLI actual si es necesario.
Nota sobre la instalación de Salesforce CLI sf (v2):
Creamos un alias para sfdx dentro de sf (v2), para que no necesite actualizar sus scripts de sfdx a sf . Dado que sf (v2) utilizará el alias sfdx, deberá desinstalar sfdx para que ese nombre esté disponible para sf (v2)
La CLI sf (v2) no se puede instalar en una máquina que tenga sfdx instalado. Según las instrucciones de instalación de sf (v2), primero debe desinstalar sfdx . Si no desinstala primero sfdx y, en su lugar, intenta instalar sf a través del paquete npm @salesforce/cli , que ahora alberga sf (v2), la instalación fallará. Tenga en cuenta que su CI no debe instalar sfdx , solo sf(v2) .
¿Que sigue?
Estén atentos para obtener más información sobre cómo pasar de los comandos sfdx -style a los comandos sf -style en la parte final de esta serie de blogs.
Mientras explora sf (v2), recuerde informar cualquier error, solicitud de función o comportamiento sorprendente a través del repositorio CLI GitHub . ¡Estamos emocionados de saber de usted y, como siempre, le agradecemos su apoyo!
Recursos
Sobre los autores
Pooja Reddivari es gerente sénior de gestión de productos en la organización Herramientas y experiencia para desarrolladores de plataformas en Salesforce. Le apasiona crear productos escalables y resistentes que deleiten a desarrolladores y clientes. Pooja ha trabajado en las verticales de empresa, educación y fintech con más de 12 años de experiencia como profesional de ingeniería y gestión de productos. Sígala en Twitter @poojasalesforc1 y en LinkedIn .
Philippe Ozil es un defensor principal de desarrolladores en Salesforce, donde se enfoca en la plataforma de Salesforce. Escribe contenido técnico y habla con frecuencia en conferencias. Es un desarrollador full-stack y disfruta trabajar en proyectos DevOps, robótica y VR. Sígalo en Twitter @PhilippeOzil o consulte sus proyectos de GitHub @pozil .
Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.
Sus clientes pueden obtener fácilmente las respuestas que necesitan con los artículos de la base de conocimientos, que son artículos de ayuda informativos en su sitio. Pueden encontrar lo que necesitan en cualquier momento (incluso a las 3 am), lo que libera a los agentes para que se concentren en solicitudes de servicio más complejas.
Los agentes de servicio también pueden usar los artículos de la base de conocimientos para resolver los problemas de los clientes y reducir su tiempo promedio de atención.
Proporcione las respuestas que sus clientes quieren
¿Pueden sus clientes encontrar soluciones a sus problemas sin pedir ayuda a un agente? Descubra cómo puede ofrecer una estrategia de autoservicio llena de conocimientos en Salesforce+.
Esta publicación de blog le dirá todo lo que necesita saber sobre cómo crear un artículo de la base de conocimientos. Aprenderá qué es un artículo de conocimiento, por qué son importantes, qué incluir cuando está escribiendo y consejos y trucos (como IA generativa) para ayudarlo a comenzar.
¿Qué es un artículo de la base de conocimientos?
Un artículo de la base de conocimientos es una página web que responde a una pregunta frecuente, soluciona un problema o ayuda a sus clientes a utilizar sus productos y servicios. A menudo incluyen instrucciones y respuestas escritas, pero también pueden incluir imágenes, videos, enlaces y otros elementos multimedia.
Los artículos de la base de conocimientos generalmente se encuentran en un lugar central en el sitio web o la plataforma de una empresa; esto podría ser un centro de ayuda, una página de preguntas frecuentes o un portal de soporte. Este centro debería facilitar que sus clientes encuentren las respuestas que buscan.
Si bien la estructura de este centro variará según las necesidades de su negocio y sus clientes, debe tener una función de búsqueda, etiquetas de artículos basadas en sus ofertas y títulos que dejen en claro de qué trata el artículo.
Si su centro de contacto tiene un chatbot , puede mostrar información de artículos de conocimientos en respuesta a un mensaje del cliente. Muy pronto, los chatbots con tecnología de IA generativa podrán responder preguntas de servicio y dar respuestas mejores y más personalizadas a partir de la base de conocimientos.
Obtenga artículos seleccionados solo para usted, en su bandeja de entrada
¿Por qué son importantes los artículos de la base de conocimientos?
Estas son las tres razones principales por las que los artículos de la base de conocimientos son importantes para su empresa:
Proporcionar una mejor experiencia de servicio: es 10 veces más probable que los clientes usen el autoservicio que contactar directamente a un centro de servicio. Tener un centro de conocimiento donde sus clientes puedan encontrar fácilmente las respuestas les brinda la experiencia de servicio que desean y les permite obtener servicio las 24 horas del día, los 7 días de la semana.
Reduzca la carga de casos en su centro de contacto: a medida que más clientes resuelven sus problemas de forma independiente, menos casos requieren el apoyo de un agente. Esto libera a los agentes para que se concentren en resolver problemas más complejos de los clientes y reduce la carga de trabajo general del centro de contacto.
Reduzca el tiempo promedio de manejo: a medida que los agentes resuelven casos únicos y formalizan el conocimiento institucional en artículos, más agentes pueden usar esa información para resolver sus casos más rápido y reducir el tiempo promedio de manejo. Las investigaciones muestran que el uso de artículos de la base de conocimientos puede resultar en una resolución un 33 % más rápida .
Cómo escribir un artículo de la base de conocimientos
Esta sección lo guiará a través de los pasos importantes que debe seguir antes de escribir un artículo de la base de conocimiento, qué elementos incluir y algunos consejos útiles para que sea aún más fácil escribir un artículo de conocimiento.
Antes de escribir un artículo de conocimiento
Hay algunos pasos que desea tomar antes de escribir su artículo: el primero es averiguar sobre qué tema escribir.
Considere estas tres preguntas cuando identifique el tema correcto para su artículo:
¿Cuáles son las preguntas más comunes para las que recibe solicitudes de servicio?
¿Cuáles son los problemas más comunes con los que sus clientes necesitan ayuda?
¿Qué información ayudaría a sus clientes a aprovechar al máximo sus productos y servicios?
Una vez que haya identificado los problemas más comunes, asegúrese de no tener un artículo de conocimiento sobre este tema. Si un artículo ya existe, decida si necesita ser editado para agregar información actualizada.
Si aún no existe ningún artículo sobre ese tema, ¡es hora de comenzar a escribir!
4 componentes de un buen artículo de base de conocimiento
Un título claro: deja que tu cliente sepa qué cubrirá tu artículo en el título. Asegúrese de que el título sea claro, conciso y describa con precisión el contenido del artículo. Esto también hace que el artículo sea más fácil de encontrar.
Listas con viñetas o subtítulos: haga que su artículo de conocimiento sea fácil de hojear para que sus clientes no tengan que leer cada palabra para encontrar lo que necesitan.Cree listas con viñetas o subtítulos que muestren lo que se cubre en cada sección. Si está escribiendo un tutorial, escriba instrucciones paso a paso, incluidos los botones o elementos del menú para hacer clic, y colóquelos en orden cronológico.
Imágenes, enlaces o videos : brinda a tus clientes tantos detalles como puedas para que puedan resolver el problema por sí mismos. Agregue capturas de pantalla, imágenes, enlaces a otros artículos o videos a su artículo para ayudarlos.
Lenguaje simple: escriba de una manera que todos puedan entender fácilmente. Haga todo lo posible para evitar la jerga que se relaciona específicamente con su producto y servicio. Sus clientes no tendrán tanto conocimiento del producto como usted, así que use un lenguaje simple en cada paso de su artículo.
Aspecto de un artículo completo de la base de conocimientos
Este es un ejemplo de un artículo de la base de conocimientos que creamos para un software de pago ficticio llamado ZapPay. Este artículo de conocimientos ayudaría a los clientes de ZapPay a vincular su cuenta bancaria a su cuenta de ZapPay.
Conecta tu cuenta bancaria a tu cuenta de ZapPay
Descripción general
Descubra cómo conectar su cuenta ZapPay a su cuenta bancaria para enviar dinero, pagar facturas y transferir ZapCash a su cuenta bancaria.
SUGERENCIA: asegúrese de tener a mano su cuenta bancaria y números de ruta antes de comenzar este proceso.
Inicie sesión en su cuenta de ZapPay.
Desde el tablero, toque su nombre y luego haga clic en Perfil.
Seleccione "Conectar cuenta bancaria".
A partir de ahí, aparecerá una ventana emergente en su pantalla.
Ingrese su número de cuenta bancaria en el cuadro de texto "Número de cuenta" y su número de ruta en el cuadro de texto "Número de ruta".
Vuelva a verificar que sus datos sean correctos antes de continuar.
Una vez que haya terminado, seleccione "Guardar".
Dentro de las 24 horas, verá un retiro de ZapPay de diez centavos o menos en su cuenta y luego un reembolso por la misma cantidad poco después. Esto es para garantizar que pueda retirar y depositar dinero con éxito entre su cuenta de ZapPay y su cuenta bancaria.
¡Felicidades! ¡Has conectado con éxito tu ZapPay a tu cuenta bancaria! Si necesita ayuda adicional, consulte los siguientes enlaces:
Agregar dinero a mi cuenta de ZapPay
Transferir dinero de ZapPay a mi cuenta bancaria
Desconectar cuenta bancaria
Agregar tarjeta de crédito a la cuenta de ZapPay
3 consejos simples para comenzar con los artículos de la base de conocimientos (pista: IA)
Ahora que tiene lo que necesita para escribir el artículo perfecto de la base de conocimientos, así es como puede comenzar.
Obtenga información de registros y notas de casos antiguos para asegurarse de que está incluyendo tantos detalles como sea posible y de que está siguiendo los mismos pasos para obtener una resolución.
Para garantizar la precisión y la legibilidad, trabaje con un administrador para configurar un proceso de aprobación de artículos de conocimiento. Esto garantizará que la gramática y la ortografía sean correctas, que la información sea precisa y que el formato de los artículos sea uniforme en todo el centro.
Conecte una herramienta de IA generativa a su consola de servicio y haga que cree el primer borrador de su artículo de conocimiento basado en los detalles de la conversación y los datos de CRM para que sus agentes experimentados lo revisen. Esto le ahorrará tiempo y lo ayudará a publicar sus artículos más rápido.
Ahora sabe qué es un artículo de la base de conocimientos y por qué es importante tanto para los clientes como para los agentes. Comience a escribir artículos hoy para brindarles una excelente experiencia de servicio y aumentar la eficiencia de su centro de contacto.
Ahorre tiempo para sus clientes y agentes
Con herramientas de autoservicio como los artículos de la base de conocimientos, los clientes pueden obtener respuestas a las preguntas más frecuentes en cualquier momento, lo que libera a sus agentes. Nuestra guía muestra cómo las organizaciones de servicio de alto rendimiento facilitan el autoservicio.
Ú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"
}
Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .
El enlace a la publicación original, lo encontrarás al final de este artículo.
…
Presentamos apex-mockery, una biblioteca de simulación de pruebas unitarias | Blog de desarrolladores de Salesforce
Escribir pruebas sólidas es crucial para crear aplicaciones comerciales confiables y eficientes. En esta publicación, haremos un repaso de las pruebas unitarias y presentaremos apex-mockery , una biblioteca liviana de pruebas unitarias de Apex que lo ayuda a escribir pruebas unitarias de Apex verdaderamente desacopladas usando simulacros y aserciones. Compartiremos ejemplos de código para ayudarlo a comprender cómo puede usar la biblioteca para crear pruebas unitarias fáciles de entender y de ejecución rápida.
Un repaso a las pruebas unitarias
Antes de echar un vistazo a la biblioteca de Apex-Mockery, demos un paso atrás y analicemos algunos de los conceptos básicos de las pruebas unitarias desde un punto de vista independiente de la tecnología. Luego, veremos Apex y discutiremos por qué la mayoría de nosotros debería escribir pruebas unitarias en lugar de pruebas de integración.
Las pruebas unitarias están en la base de la pirámide de prueba.
La ingeniería de software abarca múltiples tipos de pruebas: unidad, integración, servicio, interfaz de usuario funcional, de extremo a extremo, aceptación del usuario y más. Como dice Martin Fowler , podemos representar un buen equilibrio entre estos tipos de pruebas dentro del alcance de un proyecto representándolos como una pirámide.
Las etiquetas (tipos de prueba) pueden cambiar, pero el principio clave aquí es que las pruebas que se ejecutan rápido y con frecuencia deben estar en la parte inferior de la pirámide. Estos son los más fáciles de implementar y mantener (por lo que cuestan menos). Luego, a medida que subimos a la cima, aumentamos la complejidad y el costo: las pruebas se ejecutan más lentamente y se vuelven más difíciles de implementar y mantener.
En el contexto de esta publicación y en aras de la brevedad, nos centraremos únicamente en las pruebas unitarias. Estos son los primeros que debe implementar en cualquier proyecto, y deben ser una prioridad en su estrategia de prueba.
Por definición, las pruebas unitarias están destinadas a probar la menor cantidad de código (una unidad) de un proyecto. Las pruebas unitarias solo deben basarse en la lógica pura y estar completamente desvinculadas de sus dependencias (otras clases) y límites (otros servicios, como almacenamiento de datos o servicios web). Las pruebas unitarias deben ejecutarse rápido; no requieren una configuración de prueba particular, como la inserción de datos en la base de datos, y requieren que simule las dependencias de la clase bajo prueba.
Escribir pruebas unitarias de Apex en lugar de pruebas de integración
Apex se beneficia de una estrecha integración con la Plataforma de Salesforce y, si bien esta característica es excelente para cosas como acceder rápida y fácilmente a la base de datos, difumina las líneas de separación de preocupaciones entre la lógica y los servicios. Como consecuencia, es muy fácil escribir pruebas de integración de Apex en lugar de pruebas unitarias. Por ejemplo, el código de Apex a menudo se prueba junto con la base de datos utilizando declaraciones @TestSetup y DML. Si bien estas pruebas de integración ayudan a lograr la cobertura, se basan en la base de datos y, por lo tanto, requieren más tiempo para ejecutarse que las pruebas unitarias "puras".
Como compartió Mitch Spano en su presentación de pruebas unitarias puras de Apex , la mayoría de las veces, no es necesario confiar en las pruebas de integración para probar capas de software de alto nivel, como controladores LWC, servicios y capas de aplicación. Gracias a la API de Stub de Apex lanzada en Spring '17, los desarrolladores pueden romper con esas dependencias en el contexto de las pruebas mediante la creación de su propia biblioteca/marco de pruebas unitarias o el uso de uno existente como apex-mockery.
Presentamos la burla del ápice
Como parte del trabajo de ingeniería de Salesforce, estábamos desarrollando un paquete administrado internamente y necesitábamos una biblioteca para escribir pruebas unitarias. Queríamos escribir pasos simples de "arreglar" (como en el patrón Arrange-Act-Assert ), escribir afirmaciones comprensibles y burlarnos de nuestras dependencias. Buscamos en todo el ecosistema una biblioteca fácil de leer y bien probada que pudiéramos usar para crear nuestro producto, pero no encontramos una combinación perfecta, por lo que decidimos escribir la nuestra. Estábamos tan contentos con la implementación final de la biblioteca que decidimos lanzarla como código abierto con el nombre apex-mockery .
La biblioteca apex-mockery proporciona una biblioteca de simulación simple, liviana y fácil de leer para Apex creada con la API Stub. La biblioteca está diseñada para que sea fácil de usar y brinde la mejor experiencia de desarrollador posible al generar simulacros y apéndices, configurar espías y escribir aserciones.
Lo guiaremos a través de un escenario de muestra para que pueda comprender el poder de la biblioteca con algunos ejemplos prácticos. Luego, le mostraremos cómo puede escribir pruebas para este proyecto de muestra en tres pasos:
Crear simulacros y espías de métodos.
Métodos de espionaje de trozo
escribir afirmaciones
Ejemplo de escenario: pedidos de panadería y entrega
Considere el siguiente escenario de ejemplo: una panadería toma pedidos de pastelería y planifica las entregas utilizando un servicio dedicado. Los únicos datos que estamos considerando en el contexto de este escenario son los nombres de los pasteles y su fecha de entrega.
A continuación se muestra la implementación básica de nuestro escenario de panadería (el código completo está disponible en el repositorio del proyecto ).
Pastelería.cls
DeliveryService.cls
DeliveryServiceImpl.cls
Confirmación de pedido.cls
Panadería.cls
Ahora que hemos echado un vistazo a nuestro proyecto de muestra, echemos un vistazo a cómo podríamos escribir pruebas para el método Bakery.order .
Paso 1: crea simulacros y espías de métodos
Para funcionar, la clase Bakery necesita que se pase una instancia DeliveryService en su constructor. En un contexto de producción, el servicio se proporciona con una instancia concreta DeliveryServiceImpl de la siguiente manera:
Sin embargo, en el contexto de las pruebas unitarias, no debe usar una instancia de servicio real para garantizar el desacoplamiento. En otras palabras, DelivertServiceImpl se probará unitariamente por sí solo, por lo que no es necesario que pruebe las dos clases integradas juntas. Puede reemplazar la dependencia del servicio con un simulacro que implemente la interfaz DeliverService .
Así es como puede crear e inyectar fácilmente un simulacro de este tipo, gracias a apex-mockery:
Luego, su prueba necesita un espía, para que pueda controlar el comportamiento del método planDelivery y ejecutar aserciones en sus llamadas.
Ahora que tiene un servicio simulado y un espía en su método planDelivery , veamos cómo puede configurar su espía y ejecutar aserciones en él.
Paso 2: métodos de espionaje de trozo
Una vez que tenga una instancia simulada, puede controlar cómo se comportan sus métodos controlando sus valores de retorno y lanzando excepciones.
Utilice los métodos returns y throwsException para especificar un comportamiento predeterminado que se aplica a todas las llamadas a los métodos auxiliares. Luego, si es necesario, usa una combinación de whenCalledWith(<args>).thenReturn y whenCalledWith(<args>).thenThrow para aplicar comportamientos específicos a las llamadas a métodos que coincidan con los argumentos especificados.
Durante la ejecución de la prueba, apex-mockery comienza buscando una coincidencia en la configuración proporcionada por whenCalledWith . Si no se encuentra ninguno, vuelve a la configuración predeterminada ( returns o throwException ).
Veamos algunas situaciones comunes de configuración de stubs (ver más recetas ).
Devolver algo cada vez que se llame planDelivery
Lanza una excepción cada vez que se llama planDelivery
Devuelve algo cuando se llama con un argumento específico
Lanza una excepción cuando se llama con un argumento específico
Ahora que sabe cómo impulsar el comportamiento de su simulacro, puede agregar aserciones para probar su código.
Paso 3: Escribe afirmaciones
apex-mockery proporciona una API de afirmaciones fluidas. Tan pronto como comience su expectativa con Expect.that(mySpy) , tendrá acceso a varios métodos de afirmación. La biblioteca viene con una serie de afirmaciones de comportamiento fáciles de usar, como:
Ahora que vimos los pasos individuales, terminemos y echemos un vistazo a nuestra prueba para el método Bakery.order . Observe cómo puede usar aserciones de burla de Apex, junto con las aserciones estándar de Apex de la clasesystem.Assert , en sus pruebas.
palabras de cierre
Esto concluye nuestro recorrido por las pruebas unitarias y la biblioteca de Apex-Mockery. Aprendió cómo las pruebas unitarias desacopladas son más fáciles de escribir y ejecutar mucho más rápido. Tener pruebas rápidas acorta el ciclo de retroalimentación del ciclo de vida del desarrollo, reduce la duración de la ejecución del flujo de trabajo de CI y acelera las implementaciones. Estos factores permiten a los desarrolladores implementar y ejecutar pruebas con frecuencia, mejorando así la calidad.
apex-mockery lo ayuda a dirigir su proyecto en esta dirección. Consulte el repositorio del proyecto para comenzar. Encontrará la documentación de la biblioteca con las opciones de instrucciones de instalación (instalación de fuente o paquete desbloqueado), algunas recetas de muestra y una guía de migración. ¡Feliz prueba unitaria!
Sobre los autores
Ludovic Meurillon es ingeniero de software en el equipo de Service Cloud en Grenoble, Francia. Empujó el código a la producción durante años, disfruta eliminando más líneas de código de las que agrega y prefiere la programación en pares sobre las revisiones de código y los productos de trabajo sobre el diseño perfecto. Sígalo en Twitter @LudoMeurillon o consulte sus proyectos de GitHub @ludomeurillon .
Sébastien Colladon es CTA e ingeniero de software en el equipo de Service Cloud en París, Francia. Le encanta contribuir a hacer del ecosistema de Salesforce un lugar mejor y disfruta aprender y trabajar con otros. Consulte sus proyectos de GitHub @scolladon .
Philippe Ozil es un defensor principal de desarrolladores en Salesforce, donde se enfoca en la plataforma de Salesforce. Escribe contenido técnico y habla con frecuencia en conferencias. Es un desarrollador full-stack y disfruta trabajar en proyectos DevOps, robótica y VR. Sígalo en Twitter @PhilippeOzil o consulte sus proyectos de GitHub @pozil .
Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.
Ú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.
Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .
El enlace a la publicación original, lo encontrarás al final de este artículo.
…
Cambios en la estructura del DOM interno del componente Lightning base para la futura compatibilidad con sombras nativas | Blog de desarrolladores de Salesforce
Salesforce está preparando los componentes base de Lightning para adoptar Shadow DOM nativo , lo que mejorará el rendimiento de los componentes y los alineará mejor con los estándares de los componentes web. Como parte de esta fase de preparación, hemos cambiado la estructura DOM interna de algunos de nuestros componentes. Recién comenzamos y continuaremos modificando las partes internas de los componentes en versiones posteriores. En esta publicación, discutiremos qué cambiará y cómo puede prepararse para ello.
¿Qué es el DOM de sombra nativo?
Shadow DOM es un estándar web que encapsula la estructura del modelo de objeto de documento (DOM) interno de un componente web. Esto nos da la capacidad de proporcionarle componentes robustos y seguros protegiéndolos de ser manipulados por HTML, CSS y JavaScript arbitrarios.
Actualmente, Salesforce mantiene un polyfill de sombra sintético para navegadores heredados, como versiones anteriores de Microsoft Edge, pero ahora que todos los principales navegadores admiten DOM de sombra nativo, estamos preparando nuestros componentes para hacer lo mismo.
Con la introducción del shadow DOM nativo, mejoraremos la encapsulación de los componentes, haciéndolos más consistentes y seguros, y brindaremos una forma más predecible de diseñarlos. Esto resolverá una gran cantidad de problemas de compatibilidad con versiones anteriores y alineará los componentes web Lightning con los estándares web.
Sin embargo, puede provocar una fase de adaptación a medida que hacemos el cambio.
La implementación interna de los componentes básicos está cambiando
Hemos estado trabajando en la preparación de nuestros componentes base para adoptar el shadow DOM nativo. Los escenarios específicos en los que se rompía la encapsulación de los componentes base requerían que creáramos un nuevo elemento contenedor dentro del límite de la sombra. Para ayudar a ilustrar esto, veamos un componente base de ejemplo llamado lightning-foo . Antes, el componente se veía así:
<dx-code-block title language code-block="
Example base component
«>
A partir de Summer '23, se verá así:
<dx-code-block title language code-block="
Example base component
«>
La mecánica interna de los componentes básicos no se diseñó para acceder directamente y tratarse como una API confiable para su uso. En cambio, nuestros componentes preempaquetados estaban destinados a usarse tal como son, utilizando las API públicas oficiales que hemos compartido abiertamente. Sin embargo, sabemos que algunos clientes están utilizando componentes internos de manera no documentada. Si está accediendo a los elementos internos de un componente base con fines de personalización y prueba, tenga en cuenta estos cambios.
¿Cómo puede arreglar su código personalizado y sus pruebas?
Al probar manualmente sus aplicaciones, es posible que detecte un componente personalizado que funcionaba anteriormente y que no tiene el aspecto esperado. Debido a estos cambios, sus pruebas automatizadas de un extremo a otro también pueden fallar. En ambos casos, puede significar que su código personalizado o código de prueba depende de las partes internas de un componente base que ha cambiado . Exploremos estos dos problemas con más profundidad:
Un componente no se ve como se esperaba:
Problema: Intentar diseñar el elemento o las clases personalizadas dentro de un componente base puede generar resultados imprevistos.
Solución: El cambio de sombra sintética a componentes totalmente encapsulados con DOM de sombra nativo puede cambiar su estrategia de CSS. Al migrar sus personalizaciones de estilo a la sombra nativa, siga estos pasos:
Consulte la disponibilidad de un gancho para peinar . Ofrecen un excelente método para adaptar un componente sin profundizar en las complejidades del CSS subyacente o el shadow DOM.
Asegúrese de que el valor que está aplicando al gancho de estilo esté vinculado a su sistema de diseño en lugar de un valor fijo y predefinido. Evite usar un valor codificado.
Una prueba de extremo a extremo falla:
Problema: Cualquier implementación que use combinadores CSS fallará. Por ejemplo, lightning-foo > p no coincidirá con nuestro marcado actualizado.
Solución: Los combinadores hacen que el CSS sea frágil y deben evitarse a menos que se usen por una buena razón. La mayoría de las veces, los combinadores se pueden eliminar sin ninguna regresión. Si se desea un elemento específico, se pueden usar otros métodos de orientación que no se basen en el marcado que nunca cambia. Es decir, evite apuntar explícitamente a elementos HTML siempre que sea posible. Use otros selectores disponibles, como clases que permiten que su uso de CSS sea abstracto, modular y separado del elemento HTML. Si sus pruebas se basan en combinadores de CSS, le recomendamos que adopte el Modelo de automatización de pruebas de interfaz de usuario (UTAM) para evitar cambios importantes en el futuro, ya que los objetos de la página se mantienen actualizados con todos los cambios de componentes.
Conclusión
En resumen, estamos logrando avances significativos al preparar los componentes base de Lightning para adoptar Shadow DOM nativo, lo que garantizará un mejor rendimiento y la alineación con los estándares de los componentes web, además de mejorar la seguridad y la confiabilidad de los componentes. Al encapsular la estructura DOM interna, nos esforzamos por brindar una experiencia más sólida y predecible tanto para los desarrolladores como para los usuarios.
Si bien estos cambios pueden presentar algunos desafíos iniciales, son pasos necesarios hacia un sistema más estandarizado y preparado para el futuro. Seguimos comprometidos a informar y apoyar a los desarrolladores durante esta transición.
En preparación para estos cambios, recomendamos adoptar ganchos de estilo y métodos de orientación como clases para garantizar que el uso de CSS siga siendo modular y adaptable. Además, recomendamos enfáticamente adoptar UTAM como su solución de prueba de extremo a extremo.
Estén atentos a más actualizaciones y cambios a medida que Salesforce continúa optimizando y mejorando el marco de componentes Lightning. Al adoptar estas próximas mejoras, los desarrolladores pueden esperar una experiencia de desarrollo más fluida y eficiente mientras crean aplicaciones poderosas en la Plataforma Salesforce.
Más recursos
Sobre los autores
Maeve Tuntivate es Gerente sénior en el equipo de Gestión de productos en Salesforce.
Jesse Brack es ingeniero principal de UX en el equipo de ingeniería de sistemas de diseño de Salesforce.
Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.
Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .
El enlace a la publicación original, lo encontrarás al final de este artículo.
…
Innovaciones de Tableau para desarrolladores | Aprende Moar Verano '23 | Blog de desarrolladores de Salesforce
¡Únase a nosotros para Release Readiness Live esta semana! Los expertos en productos y los defensores de los desarrolladores analizarán y demostrarán las nuevas funciones en el lanzamiento de Summer '23 y, al final de nuestra transmisión, responderemos sus preguntas. Sintonice a las 9 am PT el 19 de mayo para la sesión de desarrolladores. ¿No puedes unirte a nosotros en vivo? La grabación se publicará unas horas después de que finalice la transmisión.
Introducción
Tableau lanzará muchas innovaciones nuevas e interesantes para los desarrolladores en Summer '23, incluido Tableau Embedding Playground, una colección de Postman para la API REST de Tableau y una nueva forma de personalizar y personalizar las vistas integradas en función de los atributos del usuario para las aplicaciones integradas.
Comience con el análisis incorporado
Si conoce Tableau, entonces sabe que puede crear visualizaciones poderosas (visualizaciones, para abreviar) que ayudan a las personas a ver y comprender sus datos. Si está creando una aplicación web, es posible que desee agregar visualizaciones relevantes de Tableau a su aplicación para mejorar la información que ofrece a sus clientes.
Tableau facilita la inserción de visualizaciones al proporcionar un botón Copiarcódigo incrustado , que está disponible al hacer clic en el botón Compartir en la barra de herramientas de Tableau. Puede usar ese código para insertar una visualización de Tableau en una página web.
El código que obtiene del botón Copiarcódigo incrustado es solo un punto de partida. ¿Qué sucede si desea filtrar la visualización en función de quién está viendo la página? Para crear una rica experiencia de análisis integrado para sus usuarios, debe usar Tableau Embedding API v3 . Con la API de inserción, puede aplicar filtros, establecer parámetros, recopilar datos que utiliza para impulsar otras acciones o agregar interfaces personalizadas para interactuar con la visualización.
OK, así que le gustaría ver lo que es posible. Pero si no está familiarizado con la API de incrustación, esto podría significar aprender una nueva biblioteca de JavaScript, leer páginas de material de referencia de la API y otra documentación, y luego configurar un entorno de desarrollo, solo para verificar algunas cosas. Ahora, hay una manera más fácil.
Bienvenido al patio de recreo
Tableau Embedding Playground le facilita el aprendizaje y la exploración de análisis integrados y la API de integración de Tableau. Todo lo que tiene que hacer es proporcionar la URL de la vista de Tableau que desea incrustar, personalizar la visualización, agregar las interacciones que desea probar y luego hacer clic en Ejecutar .
Nota: esta versión de acceso anticipado de Embedding Playground utiliza un libro de trabajo de muestra. Los fragmentos de código que agregan interacciones a la visualización integrada están optimizados para funcionar con esta muestra. Se han completado los nombres de las hojas de trabajo y las variables. Puede usar el Editor de código para editar el código JavaScript. Para esta versión, el panel HTML es de solo lectura, por lo que puede concentrarse por completo en personalizar y agregar interactividad a la visualización en Playground, sin tener que preocuparse por el estilo y el CSS.
El Embedding Playground tiene tres secciones principales:
El panelVista previa , donde puede ver la visualización incrustada y los resultados de su código cambian cuando hace clic en Ejecutar
La vistaCódigo , donde puede ver el código JavaScript y HTML que incrusta la visualización de Tableau.
El panel de control de la izquierda , donde configura la URL para la vista incrustada y sus propiedades de visualización, como el tamaño y la posición de la barra de herramientas, y donde también puede agregar interacciones, que vienen en forma de fragmentos de código que arrastra y suelta en el Panel JavaScript.
Personaliza el código
Embedding Playground usa Tableau Embedding API v3 para insertar la visualización en el panel de vista previa. La API de incrustación utiliza componentes web y proporciona un elemento HTML que representa la visualización de Tableau. Puede colocar este componente web ( <tableau-viz> ) en su página web como lo haría con cualquier elemento HTML, como una etiqueta <div> o <p> . El panel HTML en la vista Código muestra este componente web.
Este código HTML y un enlace a la biblioteca de la API de incrustación son todo lo que necesita para colocar una visualización de Tableau en una página web. Esto es esencialmente lo que obtiene si usa el botón Copiar código incrustado en Tableau Cloud. Pero hay mucho más que puede hacer, y Embedding Playground lo hace fácil.
<dx-code-block title language code-block="
«>
Supongamos que queremos aplicar un filtro a la visualización, de modo que solo muestre información que sea de interés para un conjunto específico de usuarios, o que destaque un punto que está tratando de resaltar (como mostrar ciertos lugares en un mapa, o conjuntos particulares de datos).
Con el componente web <tableau-viz> , tenemos acceso a la vista integrada de Tableau, o lo que llamamos el objeto Tableau viz. Si está familiarizado con Tableau, sabrá que un libro de trabajo de Tableau consta de hojas de trabajo, tableros e historias. O más exactamente, un libro de trabajo contiene un montón de hojas, algunas de las cuales son hojas de trabajo, algunas son tableros y otras son historias. Desde el objeto de visualización, podemos acceder al libro de trabajo y a todas las hojas de trabajo y tableros dentro del libro de trabajo. Para cada tipo de hoja, ciertas propiedades están disponibles y hay API (o métodos) específicos a los que puede llamar.
Usando el Embedding Playground, no tienes que memorizar todo eso. Digamos que su vista incrustada es un tablero. Si desea aplicar un filtro a la vista, simplemente haga clic en Agregar interacciones , haga clic en Tablero , haga clic en Filtros y luego arrastre y suelte la tarjeta Aplicar filtro en el panel de JavaScript, justo debajo de *** ¡Inserte su código a continuación! *** comentario.
En esta versión de acceso anticipado, el fragmento de código Aplicar filtro tiene el siguiente aspecto, con el nombre del filtro y sus valores ya completados. Cuando se publique Embedding Playground, los fragmentos de código tendrán marcadores de posición que se reemplazan con los nombres de filtro y valores para su viz. Tenga en cuenta que el Editor de código está en pleno funcionamiento, por lo que puede modificar los valores (cambiar o agregar diferentes estados). Darle una oportunidad. Haga clic en Ejecutar y vea los resultados.
Ven al Playground para enterarte de las novedades
Los desarrolladores de Tableau están ocupados trabajando en nuevas funciones para mejorar el análisis integrado. A medida que se introduzcan nuevos métodos y propiedades, primero se anunciarán en el Programa para desarrolladores y se resaltarán en el Área de juegos de incrustación. Si es un desarrollador experimentado, Embedding Playground podría ser un útil borrador para probar nuevas ideas y trabajar con nuevas API a medida que se presentan. Con Playground, puede probar rápidamente métodos nuevos y existentes y verificar su código sin la sobrecarga de iniciar un nuevo proyecto.
En versiones futuras de Embedding Playground, podrá proporcionar las URL para sus propias visualizaciones y usar Playground como una aplicación conectada , que ofrece una experiencia de autenticación segura y sin problemas basada en relaciones de confianza y con creación web integrada. Además, agregaremos nuevos fragmentos de código para proporcionar plantillas para las interacciones.
Use el código de Playground para impulsar el desarrollo
Puede usar la barra de menú de botones para descargar o copiar el código. El código descargado o copiado está contenido en un solo archivo HTML. Este archivo contiene el código HTML que define el componente web <tableau-viz> y el código JavaScript que agregó cuando agregó interacciones. Puede utilizar este código como punto de partida para desarrollar sus aplicaciones integradas. O copie el código para su necesidad de interacciones específicas, como filtrar la visualización, establecer parámetros o agregar menús contextuales personalizados. Para obtener más información sobre el uso del código para incrustar, consulte los documentos de Tableau Embedding API v3 .
Si alguna vez usó la API REST de Tableau , sabe que es una parte esencial de la gestión y administración de usuarios y contenido en Tableau Cloud y Tableau Server. Con la API REST de Tableau, puede hacer mediante programación todo lo que puede hacer con la interfaz de usuario en los sitios de Tableau Server y Tableau Cloud. La API utiliza el conocido protocolo de comunicaciones cliente-servidor a través de HTTP, utilizando solicitudes web estándar. Puede consultar y configurar recursos, establecer permisos y controlar el acceso.
Probablemente también sepa que configurar una sesión para enviar esas solicitudes no siempre es fácil. Conectarse al servidor, autenticarse y adquirir los tokens de acceso para comunicarse con Tableau Server o el sitio de Tableau Cloud puede ser algo complicado. Particularmente si solo está interesado en encontrar rápidamente el nombre de una fuente de datos o buscar un identificador de recurso. Una de las herramientas a las que recurren las personas para generar solicitudes HTTP para puntos finales REST es Postman, una aplicación que puede descargar o usar en un navegador que facilita la creación de solicitudes y el almacenamiento de esas solicitudes en colecciones. La buena noticia es que ahora no necesitas empezar de cero.
Los desarrolladores de Tableau han creado una colección de Postman para la API de REST de Tableau que está disponible junto con las otras colecciones para las API de Salesforce en el espacio de trabajo de Postman del desarrollador de Salesforce . Ya no necesita buscar en la documentación de la API ni recurrir a prueba y error para crear sus propias solicitudes. El espacio de trabajo del cartero del desarrollador de Salesforce tiene el conjunto completo de puntos finales de la API REST de Tableau por los que puede navegar y elegir los que necesita usar. Postman te permite definir y guardar las variables que necesitas para tu conexión. También puede usar Postman para generar las solicitudes en diferentes lenguajes de programación como Python, JavaScript y cURL, de modo que pueda incorporar la solicitud en scripts o en sus aplicaciones integradas.
La entrega de información personalizada y personalizada es uno de los principales objetivos cuando se integran visualizaciones de Tableau en aplicaciones web. Desea asegurarse de que los usuarios que usan su aplicación tengan la mejor experiencia posible y tengan acceso a la información que no solo es relevante para sus necesidades, sino que también son datos que pueden ver.
Usted define cuáles son estos atributos de usuario y, según su organización, podrían ser atributos basados en roles de trabajo, departamentos, nivel de gestión, autorización de seguridad, pertenencia a grupos, etc. Estos atributos de usuario siguen el modelo de control de acceso basado en atributos (ABAC), que le brinda flexibilidad en la forma en que diseña sus aplicaciones web. Por ejemplo, podría crear un único portal web que sirva a diferentes grupos proporcionando diferentes vistas de esos datos en función de los atributos. Para ver cómo puede aplicar estos atributos en los libros de trabajo de Tableau, consulte Funciones de usuario: solo para incrustar flujos de trabajo en la nube . Cuando crea vistas en Tableau, los atributos de usuario le dan la opción de agregar filtros de seguridad de nivel de fila a las vistas que incrusta en las aplicaciones web.
Desde usuarios nuevos hasta desarrolladores experimentados, Tableau Embedded Playground facilita que todos desarrollen código para soluciones de análisis integradas. La colección de Postman para la API REST de Tableau puede ahorrarle tiempo y esfuerzo al encapsular el conjunto completo de terminales REST de Tableau en una interfaz fácil de usar y agregar atributos de usuario a sus aplicaciones integradas para brindar una experiencia más personalizada y segura para su usuarios
Únase al programa para desarrolladores de Tableau
Haga que Tableau trabaje para usted. Únase al Programa para desarrolladores de Tableau y descubra las últimas herramientas y funciones. Obtenga acceso a versiones preliminares y acceso anticipado a nuevas API y bibliotecas mientras aún están en desarrollo. Proporcione comentarios y ayude a dar forma a lo que está por venir.
Aprende MOAR
Nuestros gerentes de producto y defensores de desarrolladores están de vuelta para compartir las últimas características y funcionalidades que llegarán en Summer '23. Para ayudarlo a desarrollarse más rápido, hay una gran cantidad de contenido nuevo del equipo de relaciones con desarrolladores que cubre sus nuevas características favoritas. ¡Asegúrese de consultar Release Readiness Live el viernes 19 de mayo a las 9:00 a. m. PST, y lea lo último en el blog de desarrolladores de Salesforce para conocer más innovaciones relacionadas con desarrolladores en el lanzamiento de Summer '23!
¡Explore los trailmixes de Trailhead con aspectos destacados de lanzamiento clave para desarrolladores o administradores, o ambos!Siga y complete un trailmix de Learn MOAR Summer '23 para administradores o desarrolladores para obtener una insignia exclusiva de la comunidad.
Más recursos
Otras lecturas
Sobre el Autor
Dave Hagen trabaja como redactor técnico en el equipo de experiencia de contenido de Salesforce. Escribe documentación para la plataforma de desarrollo de Tableau y el análisis integrado. Puedes encontrarlo en LinkedIn .
Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.
Administrar sus proyectos dentro de Salesforce garantiza que todos sus datos clave estén disponibles en un solo lugar, con todos los que necesitan la capacidad de acceder a ellos ya en la plataforma y familiarizados con la interfaz de usuario. Además, no es necesario que cree ni mantenga la integración con herramientas de gestión de proyectos externas de terceros. Sin embargo, si está buscando mejorar aún más su juego de gestión de proyectos en Salesforce, la mejor manera de hacerlo sería a través de la automatización. Este artículo lo guiará a través de las mejores formas de automatizar la gestión de proyectos en Salesforce.
La automatización ayuda a su organización a crear valor a través de una reducción del tiempo dedicado a realizar tareas, una reducción del riesgo relacionado con el error humano y la creación de una experiencia optimizada para sus usuarios y clientes.
Las posibilidades son infinitas cuando se utilizan herramientas de automatización de Salesforce listas para usar, como Salesforce Flow, y las aplicaciones de gestión de proyectos de Salesforce adecuadas, como Inspire Planner.
Ejemplos de cómo puede automatizar la gestión de proyectos en Salesforce
Tabla de contenido
Una vez que haya decidido automatizar la gestión de proyectos en Salesforce, la pregunta es ¿Qué automatizamos ?
A continuación se enumeran varios escenarios de automatización de la gestión de proyectos que han demostrado ahorrar tiempo y recursos a las empresas. Estos pueden darle ideas sobre lo que desea automatizar en su organización de Salesforce.
Lanzar proyectos automáticamente con un flujo de Salesforce
Es un escenario común que las empresas necesitan lanzar proyectos a partir de plantillas específicas cuando las Oportunidades pasan a la etapa Cerrado/Ganado. Hacer esto manualmente para cada oportunidad requiere una cantidad considerable de tiempo y esfuerzo. Además, también deja espacio para el error humano o para que alguien simplemente olvide o retrase un paso.
Con Inspire Planner, una aplicación de gestión de proyectos nativa de Salesforce, puede crear un flujo de Salesforce desencadenado por registro para crear automáticamente un proyecto a partir de una plantilla específica en función de diferentes criterios (por ejemplo, la etapa de oportunidad se actualiza a Cerrado/Ganado).
Este nuevo proyecto heredará de la plantilla todas sus fases y tareas, predecesores, archivos adjuntos, roles de recursos y más.
Entonces, para comenzar, su gerente de proyecto simplemente necesita actualizar la fecha de inicio de su primera tarea y asignar el equipo del proyecto (¡ambos también se pueden automatizar!).
Se puede configurar una automatización similar de Salesforce Flow para lanzar proyectos desde otras etapas de Oportunidades o para otros objetos en Salesforce, como Casos, Cuentas, Pedidos y más.
Automatice la gestión de proyectos en Salesforce con plantillas de proyectos
Si su organización entrega proyectos que siguen procesos estandarizados, puede Automatice la gestión de proyectos en Salesforce configurando plantillas de proyectos y usándolas cada vez que desee configurar un nuevo proyecto en lugar de crearlos desde cero.
Configurar plantillas de proyecto puede ser un proceso simple con la herramienta adecuada. Por ejemplo, en Inspire Planner simplemente debe marcar la casilla de verificación 'Es plantilla' al crear un nuevo proyecto para hacer una Plantilla de proyecto. Y puede crear un número ilimitado de plantillas para diferentes procesos dentro de su organización.
Las plantillas de proyecto permitirán que su software de administración de proyectos de Salesforce haga parte del trabajo más insignificante por usted, permitiéndole a usted y a su equipo concentrar sus esfuerzos en brindar un servicio de alta calidad a sus clientes.
Con Inspire Planner, sus proyectos heredarán la mayor parte de la información requerida de la plantilla, incluidas las tareas, los archivos adjuntos, la duración de las tareas, las fechas de inicio y finalización, los predecesores, los recursos asignados, la prioridad, el esfuerzo planificado, el costo presupuestado, las categorías, las notas y el diseño del proyecto. y Configuración, y más.
Automatice la gestión de proyectos en Salesforce con la asignación de tareas basada en roles
Asignar automáticamente las tareas de su proyecto a los recursos correctos es una manera fácil de automatizar la gestión de proyectos en Salesforce.
Dependiendo de la cantidad de tareas en sus proyectos, esto podría sumar una cantidad significativa del tiempo de sus gerentes de proyecto si se hace manualmente, y eso suponiendo que lo hagan bien cada vez. Si hay una herramienta a su disposición que alivia esta carga de sus gerentes de proyecto y les permite concentrarse en un trabajo más importante, ¿por qué no ponerla en práctica?
Afortunadamente, esto también es algo que Inspire Planner ofrece listo para usar. Puede predefinir qué roles serán responsables de cada tarea mientras crea sus plantillas o planes de proyecto.
Luego, simplemente necesita asignar un recurso a un rol específico, y la automatización integrada de Inspire Planner asignará inmediatamente todas las tareas de su proyecto a los miembros correctos del equipo del proyecto.
Costura de plantilla
Lanzar proyectos automáticamente desde Oportunidades basadas en plantillas es una excelente manera de automatizar la gestión de proyectos en Salesforce. Pero, ¿qué sucede cuando vendió varios productos dentro de su Oportunidad y cada producto requiere un conjunto diferente de tareas?
¿Puede automatizar dicho proceso en Salesforce dentro de un plan de proyecto en lugar de crear proyectos separados?
La buena noticia es que la respuesta es sí. Inspire Planner ofrece la funcionalidad de unión de plantillas de proyectos que le permite crear un solo proyecto a partir de una oportunidad al "unir" (combinar) diferentes plantillas relacionadas con los productos de oportunidad.
Además, puede definir una plantilla de encabezado (un conjunto de tareas que deben realizarse sin importar qué productos se seleccionaron, por ejemplo, la fase de inicio del proyecto) y definir un orden de ejecución de sus plantillas simplemente arrastrándolas a las posiciones deseadas.
Y con la configuración adicional de Salesforce, puede configurar la unión de plantillas de proyectos en Inspire Planner para trabajar con otros objetos en Salesforce en lugar de productos.
Automatice la programación de su proyecto con dependencias de tareas
Puede automatizar la Gestión de proyectos en Salesforce configurando Dependencias de tareas en el diagrama de Gantt de su proyecto. De esta manera, su proyecto y todas las tareas operarían como una unidad cohesiva en lugar de que cada tarea esté separada. Por lo tanto, actualizar cualquier tarea recalculará automáticamente todo el cronograma del proyecto, ¡sin importar cuán complejo sea su proyecto!
Inspire Planner es compatible con cuatro tipos principales de predecesores (finalización a inicio, finalización a finalización, inicio a inicio y inicio a finalización), así como múltiples dependencias de tareas. Si no está familiarizado con estos términos, un predecesor es una actividad que debe comenzar o finalizar antes de que pueda continuar una tarea sucesora, y un sucesor es una actividad que sigue a otra actividad en función de su dependencia entre sí y no necesariamente en orden cronológico. .
Además de eso, con Inspire Planner también puede agregar tiempo de adelanto o retraso a sus dependencias (por ejemplo, la tarea debe comenzar 3 días después de que finalice otra, o un día antes, etc.), e incluso funciones más avanzadas como la gestión de restricciones ( por ejemplo, una tarea debe terminar en una fecha determinada).
Una vez configuradas, los usuarios finales también pueden ver estas tareas predecesoras y sucesoras en un componente simplificado en la página de tareas. De modo que incluso si los miembros de su equipo no tienen acceso al proyecto o no están familiarizados con los diagramas de Gantt, aún pueden comprender fácilmente qué depende de ellos en este proyecto.
Automatización de Notificaciones
Otro elemento importante de la automatización de la gestión de proyectos en Salesforce son las notificaciones.
Si desea entregar sus proyectos a tiempo, deberá mantener a su equipo de proyecto actualizado sobre los próximos plazos e hitos. Para empezar, puede configurar alertas y notificaciones automáticas para las tareas del proyecto a través de Salesforce. Esto enviará a los recursos de su proyecto recordatorios por correo electrónico sobre sus tareas y también mostrará un recordatorio de notificación en Salesforce.
Por ejemplo, puede configurar notificaciones de tareas unos días antes de la fecha de vencimiento de la tarea, cuando se actualizaron las fechas de inicio/finalización de la tarea, una notificación de alerta cuando la tarea está vencida y más. Dado que Inspire Planner se integra completamente con las tareas estándar de Salesforce, algunas de estas notificaciones estarán disponibles para usted desde el primer momento.
Finalmente, puede configurar alertas en Inspire Planner para acciones como Tareas listas para comenzar. Cuando se han completado todos los predecesores, Inspire Planner marca automáticamente sus tareas como "Listo para comenzar". A continuación, puede enviar alertas a las personas asignadas a esta tarea o utilizar una vista de lista que muestre solo dichas tareas. De esta manera, su equipo de proyecto sabrá fácilmente en qué debe concentrarse a continuación.
Automatización de KPIs y Reportes
La siguiente idea para automatizar la gestión de proyectos en Salesforce es automatizar los KPI y programar la entrega de sus informes de proyectos.
Puede decidir administrar los KPI manualmente en función del estado actual de sus proyectos o automatizarlos si tiene criterios estandarizados para los KPI internamente. En cualquier caso, puedes configurar alertas para tus jefes de proyecto cuando alguno de los KPIs del proyecto pase de Verde a Ámbar o Rojo.
Al utilizar las aplicaciones de gestión de proyectos nativas de Salesforce, su equipo puede beneficiarse de los potentes informes y paneles de Salesforce. Por ejemplo, Inspire Planner ofrece una carpeta completa lista para usar con informes de proyectos, la capacidad de generar su informe de estado del proyecto con unos pocos clics y también dos paneles dinámicos para su cartera y administradores de recursos.
Salesforce luego le permite programar y suscribirse a los informes de su proyecto. De esta manera, su equipo puede recibir notificaciones sobre las métricas más importantes del proyecto sin ejecutar manualmente ni enviar informes por correo electrónico.
Una de las mejores prácticas para generar informes sobre sus proyectos es crear líneas base del proyecto en Inspire Planner. La línea de base se puede utilizar para generar informes sobre el cronograma del proyecto planificado y el rendimiento real de su proyecto. La línea de base también se puede usar para rastrear y enviar notificaciones cuando hay retrasos en el proyecto y cuando las tareas vencen. Estas notificaciones pueden llamar la atención sobre áreas del Proyecto que necesitan más atención, lo que resultará en una reducción de los retrasos.
Automatice la gestión de proyectos en Salesforce con procesos de aprobación
Los procesos de aprobación pueden ayudarlo a automatizar la gestión de proyectos en Salesforce cuando necesite obtener una aprobación para algo en su organización.
Los ejemplos típicos de procesos de aprobación en la gestión de proyectos incluyen empleados que solicitan PTO de sus gerentes, gerentes de proyecto que obtienen aprobación para cambios dentro del alcance del proyecto, aprobación de facturas y más.
Con los procesos de aprobación de Salesforce, puede definir fácilmente sus pasos de aprobación, bloquear registros, permitir la recuperación de solicitudes de aprobación, definir un aprobador, crear plantillas de notificación y más.
Para iniciar procesos de aprobación en sus proyectos en Salesforce, puede usar botones personalizados (p. ej., "Enviar para aprobación") en los que los usuarios deben hacer clic o iniciar procesos de aprobación automáticamente con un Flujo de Salesforce.
Automatizar carteras de proyectos
Las carteras de proyectos le permiten agrupar y ver un conjunto de proyectos en un único diagrama de Gantt combinado. Con Inspire Planner, puede crear un número ilimitado de Portafolios para diversas necesidades, por ejemplo, un portafolio de sus proyectos, un portafolio de proyectos para un cliente específico, etc.
Los portafolios pueden mostrar el cronograma general del proyecto, el estado general del proyecto, el porcentaje completado, los hitos del proyecto y más. Además, un proyecto puede pertenecer a varias carteras.
Con Inspire Planner, puede agregar proyectos a Portafolios o eliminarlos manualmente o con automatización a través de Salesforce Flows. Por ejemplo, cuando se completa un proyecto, puede eliminarlo automáticamente de una cartera.
Y con nuestra próxima función de carteras dinámicas con edición en línea, la gestión automática de carteras se está volviendo más fácil que nunca. Puede crear diferentes vistas de lista de Salesforce para organizar y filtrar automáticamente sus carteras de proyectos en función de varios criterios.
Calcule los niveles de prioridad de riesgos y problemas
Tener la capacidad de ver los riesgos y problemas relacionados con su proyecto significa que estos riesgos pueden mitigarse de manera oportuna durante todo el proyecto. Si busca identificar y prevenir riesgos de proyectos imprevistos, consulte nuestra guía sobre cómo reducir los riesgos de proyectos en Salesforce.
Si está buscando llevar la gestión de riesgos de su proyecto al siguiente nivel en Salesforce, puede hacerlo automatizando el cálculo de riesgos y automatizando la priorización de estos riesgos.
El registro de riesgos del proyecto es una función que ofrece Inspire Planner que le permite realizar un seguimiento de los riesgos de su proyecto y limitar sus impactos. Realiza un seguimiento tanto de los riesgos como de los problemas (los riesgos son los problemas que podrían ocurrir en el futuro y los problemas son los riesgos que han llegado a buen término y realmente sucedieron).
La Prioridad de sus riesgos se calcula automáticamente multiplicando el Impacto por la Probabilidad. De esta manera, simplemente debe asegurarse de capturar el impacto y la probabilidad de su riesgo e Inspire Planner hará el resto por usted.
Cuándo y por qué debería automatizar la gestión de proyectos en Salesforce
Si bien ahora conoce varias formas de automatizar la gestión de proyectos en Salesforce y cómo Inspire Planner puede ser potencialmente la solución que le permita hacer esto, es posible que todavía se pregunte por qué vale la pena automatizarlo.
¿Qué ganará su empresa con la automatización de la gestión de proyectos en Salesforce y qué impactos negativos mitigará? A continuación hay tres explicaciones de este valor y por qué la automatización no solo es una buena idea sino casi una necesidad.
Ahorre tiempo en tareas repetitivas
La gestión eficaz de proyectos es la diferencia entre un proyecto exitoso y uno fallido y, a menudo, lleva bastante tiempo ejecutarlo con cuidado para obtener resultados óptimos. Dado que hay una serie de tareas que se pueden realizar con su inversión en automatización de Salesforce, tiene mucho sentido liberar a su equipo para que se concentre en los problemas clave en lugar de atascarlos con tareas repetitivas manuales.
La investigación realizada por AutomationAnywhere muestra que en algunas industrias (a saber, el servicio público y la administración general) los profesionales pueden dedicar hasta 3,51 horas diarias a tareas administrativas repetitivas. ¡Estas son tareas que podrían realizarse fácilmente mediante algún tipo de automatización!
Cuando se trata de reducir el tiempo necesario para las tareas repetitivas en la gestión de proyectos, puede devolver el tiempo a su día implementando algunos de nuestros ejemplos de automatización descritos anteriormente, como plantillas de proyectos, asignación de tareas según roles de recursos y más. En última instancia, puede entregar un proyecto exitoso más rápido descargando este tipo de tareas a Salesforce.
Reducir el error humano
Si bien todos tratamos de ser completamente precisos todo el tiempo, solo somos humanos y, como tales, somos propensos a cometer errores. Salesforce, por otro lado, no es humano y no es propenso a la misma capacidad de cometer errores que los humanos. Las tareas más pequeñas pueden llamar menos la atención de un equipo de proyecto ocupado, lo que puede generar problemas mayores en el futuro debido a la naturaleza en cascada de estos errores.
Configurar su organización para automatizar su gestión de proyectos en Salesforce es la mejor manera de reducir (o eliminar efectivamente) su riesgo de error humano mientras gestiona el proyecto (suponiendo que esté configurado correctamente desde el principio, por supuesto).
Administre automáticamente varias plantillas/escenarios
Si su empresa ofrece múltiples servicios o productos diferentes, cada uno con su propio conjunto de tareas o incluso diferentes metodologías de gestión de proyectos (Waterfall vs Agile/Scrum), entonces puede encontrarse con problemas en los que un Project Manager no tiene suficiente experiencia trabajando con un tipo de producto o servicio específico y podría tener problemas para configurar el Proyecto en Salesforce.
Este problema se elimina por completo cuando su gestión de proyectos se automatiza en Salesforce utilizando varias plantillas de proyectos que sus gestores de proyectos pueden aplicar al comienzo de un proyecto. Esto no solo significa que tienen mucho menos trabajo por hacer, sino que también elimina cualquier error potencial o tareas olvidadas y brinda un grado de capacitación para los gerentes de proyecto que son nuevos en un tipo específico de proyecto.
Automatice la gestión de proyectos en Salesforce con Inspire Planner
Como puede ver, hay una cantidad insuperable de valor que se puede obtener al administrar sus proyectos dentro de Salesforce y luego aplicar capas en alguna Automatización de administración de proyectos.
Sus clientes se beneficiarán de sus esfuerzos al contar con un equipo de proyecto efectivo que pueda entregar a tiempo y garantizar que las comunicaciones sean consistentes, que los riesgos se gestionen y mitiguen, y que el equipo centre sus esfuerzos en el trabajo en lugar de las tareas administrativas.
Si está listo para automatizar la gestión de proyectos en Salesforce para su organización y reducir el trabajo manual y repetitivo, consulte Inspire Planner con nuestra prueba gratuita de 30 días hoy o solicite su demostración personal de Inspire Planner.
La próxima vez que quiera hacer algo con Tableau, pero no pueda encontrar la manera con la interfaz de usuario, vaya a su confiable Postman Collection y pruebe algunos métodos a través de la API REST de Tableau.
Última actualización el 15 de marzo de 2023 por Rakesh Gupta Durante la última década, Salesforce AppExchange ha tenido un gran éxito debido a su capacidad para ayudar a las empresas a impulsar el éxito y el crecimiento. Hoy en día, hay más de 6000 aplicaciones y firmas de consultoría listadas en el intercambio. Con tantas excelentes opciones disponibles, identificar
El adaptador de cable GraphQL está en fase piloto a partir de la versión Spring '23. Descubra cómo hace que acceder a los datos de los LWC sea más fácil que nunca.
Una de las cosas increíbles de estar involucrado en el ecosistema de Salesforce son los maravillosos eventos. Si desea asistir a algunos de los mejores eventos de Salesforce en 2023, estamos aquí para ayudarlo. Hemos reunido los eventos que no querrá perderse este año. Salesforce y Trailblazer Community organizan […]
La publicación Los mejores eventos de Salesforce para asistir en 2023 apareció primero en Inspire Planner.
Consulte la tercera y última publicación de blog de nuestra serie que relata el viaje de la CLI de sfdx hacia el código abierto, ahora con confiabilidad mejorada.
A menudo veo confusión en torno a esta nube, y con el cambio de nombre y las muchas mejoras que ha tenido con respecto a los lanzamientos, pensé, ¿por qué no tratar de arrojar algo de luz? ¿Por qué yo? Para los que no lo sepan, además de todo lo relacionado con Salesforce y Agile, mi enfoque es ayudar a las organizaciones a reducir el desperdicio. Residuos Lea más acerca de Desmitificar Net Zero Cloud[…]
Criar niños es fácil, hasta que finalmente decides tener uno. Luego es una experiencia muy diferente: de repente te das cuenta que nunca fuiste realmente el espero que pensase serias y que el consejo que le habías dado a tus amigos durante años en la teoría realmente no funciona en la práctica. Las razones para esto pueden ser muchas pero en esencia todas se reducen a una obvia razón: falla decomunicación. ¿Porqué los niños y los padres no hablan el mismo idioma en el mundo real, o si? En el libro de Adele Faber y Elaine Mazlish, “How to Talk So Kids Will Listen and Listen So Kids Will Talk,” demostraremos las habilidades de comunicación para los padres. Desde lidiar con las emociones negativas de tus niños a expresar tus sentimientos más honestos sin lastimarlos dirigiendo a tus niños hacia la autonomía y la auto disciplina correcta sin utilizar cualquier clase de castigo.
¿Suena demasiado ciencia ficción para ser creíble? Lo sabemos y aun millones de padres satisfechos rogaría ser diferentes. Veamos esto en nuestro resumen.
Ayudar A Los Niños A Lidiar Con Sus Sentimientos
Lamentablemente, la mayoría del tiempo tratamos a nuestros niños como ignorantes y sentimos que sabemos mucho más sobre el mundo que ellos,
Por alguna razón, el Mama hace calor aquí o Papá estoy cansado no significa nada para nosotros si lo sentimos de otro modo, por lo tanto con frecuencia respondemos diciendo cosas que demuestran indiferencia e incluso rechazo. tales como: Realmente hace frío hijo, No te saques el sweater o No puedes estar cansado: acabas de dormir una siesta.
Los niños necesitan tener sus sentimientos aceptados y respetados. sugieren los siguientes modos de alcanzarlos:
Escuchar atentamente y serenamente,
En vez de ignorar lo que tu hijo está diciendo o simplemente escuchar por la mitad sus quejas mientras observas el juego, escucha con suma atención y en silencio. A veces un silencio empático es todo lo que necesita tu hijo,
Reconoce los sentimientos de tus hijos con solo una palabra: En vez de preguntar, culpar o aconsejar a tu hijo, reconoce sus sentimientos con unas pocas palabras acompañadas con una actitud de cuidado, palabras como estas son invitación a que tu hijo explore sus propios sentimientos y pensamientos y posiblemente llegue a sus propias soluciones,
Nombra los sentimientos de tus niños: Trata de darles un nombre a sus sentimientos, decir algo como : Oh no! que Terrible o Es verdad eso es frustrante!,
Brinda los deseos de tu hijo en fantasía: En vez de utilizar la lógica para explicar porque tus hijos no pueden tener lo que quieren en un momento en particular, trata de apreciar sus deseos haciéndolos más tangibles mediante la fantasía: “Oh, cuánto desearía que pudiera hacer madurar la bañan para tu ahora!
Recuerda, incluso ciertas acciones deben ser limitadas, todos los sentimientos pueden ser aceptados
Para aclarar esto utilizaremos el ejemplo excelente de Faber y Mazlish: Veo que tan enojado estás con tu hermano» Dile lo que quiere con palabras, no con puños. Esta oración simple:
Reconoce los sentimientos de tu hijo, y
A la vez le marca el modo en el que los están expresando. Por lo tanto, puede funcionar al comienzo de una discusión
Involucra La Cooperación De Tus Hijos
La mayoría de los niños no quieren tomar baños de manera voluntaria y si se los deja solos probablemente nunca cambiarían su ropa interior. Es por eso que una de las frustraciones de la paternidad es la lucha diaria de hacer que tus hijos se comporten en modos que sean aceptables para ti y la sociedad.
Para lograr esto y para inculcar la cooperación de sus hijos, la mayoría de los padres recurren a los métodos del siglo 19:
Acusar: Hiciste esto, ¿no? Cual es tu problema?,
Nombrar: Mira el modo en el que comes! Eres desagradable.
Amenazas: Tocas la tablet una vez mas y te daré un chirlo.
Órdenes: Qué estás esperando? ¡Muévete!
Dando cátedra: Hacemos a los demás lo que nos gustaría que otros hicieran con nosotros.
Consejos: ¡Cuidado, Te atropellará un auto!
Declaraciones de Martyrdom: Qué estás tratando de hacer .. darme un ataque cardíaco?
Comparaciones: ¿Porqué no puedes ser más como tu hermano?
Sarcasmo: ¡Eso fue brillante lo que hiciste!
Profecía: Nadie va a querer jugar contigo.
Todos estos métodos hacen que tus hijos se sientan mal. Existen cinco mejores modos para entenderlos y ayudarlos de manera positiva:
Describe lo que ves, o describe el problema: Es más fácil concentrarse en el problema cuando alguien te lo describe” Hay una toalla mojada arriba de la cama,
Dar información: La información es mucho más fácil de aceptar que la acusación. También le da a los niños la oportunidad de descubrir que hacer: La toalla está mojando mi sabana,
Dilo con una palabra: A los niños no les gusta escuchar discursos, sermones y largas explicaciones. Para ellos a veces menos es más: Querido … la toalla,
Habla sobre tus sentimientos: En vez de hablar sobre el carácter de tu hijo comienza tus oraciones diciendo: Me gusta o Siento… De ese modo puedes ser genuino sin dañar al otro: ¡No me gusta dormir en una cámara húmeda!,
Escribe una nota: Sé creativo. Escribe este tipo de nota arriba de la toallas: Por favor puedes colgarme nuevamente para que pueda secarme! Gracias! Tu toalla!
Alternativas Al Castigo
Como saben la mayoría de los padres, los castigos no funcionan por lo general. Y la mayoría de los psicólogos de niños saben porque: los castigos son realmente distracciones ya que por lo general inspiran a los niños a reajustar a las circunstancias comenzar a pensar en términos de revancha en vez de hacer enmiendas.
En otras palabras, castigar a un niño realmente los priva del proceso interno muy importante de entregar su propio mal comportamiento
Afortunadamente existen diversas alternativas al castigo que deberían funcionar y que pueden utilizarse en aquellas situaciones tramposa cuando nada más ocurre:
Expresa tus sentimientos fuertemente – sin atacar el carácter: Estoy furiosa que mu nueva saw fue dejada afuera para arruinarse con la lluvia!,
Establece tus expectativas: Espero mis herramientas sean devueltas luego de que hayan sido prestadas,
Demuestra a tu niña como hacer enmiendas:Lo que está cierra necesita ahora es un poco de lana de acero y mucho trabajo,
Ofrece una opción: Puedes pedir prestadas las herramientas y regresarlas o puedes rendirte al privilegio de usarlas. Tu decides,
Toma acción: Niño: ¿Por qué está trabado la caja de herramientas? Padre: Tú dime por qué,
Problema-solución: ¿Qué podemos hacer para que puedas utilizar mis herramientas cuando las necesitemos y por lo tanto estoy seguro que están allí cuando las necesitamos?
Fomentar La Autonomía En Los Niños
Tan doloroso como pueda sonar y sentir tu objetivo como padre es fortalecer la independencia individual. En otras palabras, nunca olvides que todo amor y dedicación que inviertas en la paternidad debe resultar en la separación.
En consecuencia, en vez de presionar y tratar de obtener copias carbónicas de ti mismo, puede ser una buena idea comenzar a fortalecer la autonomía en tus hijos desde edad temprana
Así es cómo puedes lograrlo:
Permite a tus hijos tomar opciones donde sea posible: ¿Tienes ganas de ponerte tus pantalones grises o rojos?,
Demuestra respeto por la pelea de un hijo: Atarse los cordones lleva un gran trabajo de motricidad fina,
No hagas demasiadas preguntas: En vez de preguntar, ¿Cómo te gusta la composición? solo di “Me encanta verte! y abraza a tu hijo luego de la escuela,
No te apures a contestar las preguntas: Cuando los niños hacen preguntas, merecen la oportunidad de explorar la respuesta por ellos mismos primero. Permiteles simular sus pensamientos: ¿Por qué llueve? es una respuesta interesante. ¿Qué piensas?,
Anima a los niños a utilizar recursos fuera de casa: No hagas que tu hijo sea dependiente de til Permitirles experimentar el mundo, Cuando te pregunten: qué debería hacer con mi angelote: Luce enfermo, trata de decir algo como: Quizás el dueño de la tienda de mascotas debería tener una sugerencia, en vez de contestar.
No saques la esperanza: La peor cosa que puedes decir a un niño expresando su esperanza para una carrera en ingeniería es “ con notas de matemáticas como las tuyas, ¡Olvídate!
Tratar de protegerlos de la disolución es realmente protegerlos de la esperanza y de la lucha y a veces de alcanzar sus sueños. Una vez más, Ve por algo más estimulante: Entonces estás considerando una carrera como ingeniería?Cuéntame más.
Elogio y Autoestima
Nada es más importante que la autoestima de uno, la única clave más significante al comportamiento de uno,
De acuerdo al psicoterapeuta nortemaericano canadiense Nathaniel Branden:
Los niños no son una excepción a la regla sino que el elogiarlos puede tener efectos negativos también. Encontrar el equilibrio justo es tramposo pero alcanzable
De acuerdo a Faber y Mazlish:
La clave es ser descriptivo en tus elogios para tus hijos, en vez de simplemente evaluativo (Bien, Genial! Fantástico!) mientras que el último puede causar orgullo en exceso, el primero da el contexto y de este modo equilibrio
Todo esto se logra de la siguiente manera:
Describe lo que ves: Ves un piso limpio, una cama cómoda, y libros ordenados en el estante,
Describe lo que sientes: Es un placer caminar en este cuarto!,
Sintetiza el comportamiento loable de tu hijo con una palabra:Ordenaste tus legos, autos y animales de la granja y los pusiste en cajas separadas. Ahora eso es lo que llamó organización!
Libera A Los Niños De Los Juegos De Roles
El modo en que los padres ven a sus niños puede influenciar no solo el modo en que los niños ven a ellos mismos, sino también el modo en el que se comportan:
Piensa en ellos como una “molestia,” y se sentirán que tienen que clasificarlos;
Piensa en ellos como competentes y no se tentarán de rendirse al primer error,
En realidad, los niños son, o deberían poder ser todo eso, y más, en consecuencia, trátalos como seres humanos unidimensionales, limita su potencial y puede tener efectos desastrosos a largo plazo.
Los padres necesitan desarrollar las siguientes seis habilidades para poder liberarse de sus niños de la carga de etiquetas casualmente adquiridas (y por lo general no deseadas) y liberarlos de jugar roles:
Busca oportunidades para demostrar a tu niño una nueva imagen de ellos mismos: Has tenido ese juguete desde que tenias tres y luce como nuevo!,
Pon a los niños en situaciones donde puedan verse a ellos mismos de manera diferente: ¿Te gustaría llevar el destornillador y ajustar las manijas de esos cajones?,
Permite a los niños que escuchen decir algo positivo de ellos mismos: Dejó el brazo quieto aunque le dolió el pinchazo,
Modela el comportamiento que te gustaría ver: Es difícil perderse, pero tratará de ser un deporte sobre eso. Felicitaciones!,
Procura ser un cajón de los recuerdos para los momentos especiales de tu hijo: Recuerdo la vez en que . . ,
Cuando tu hijo se comporte de acuerdo a la edad, establece tus sentimientos y/o expectativas: No me gusta eso. A pesar de tus sentimientos fuertes, yo espero que seas un deportista.
Notas Finales
Cada padre desea criar a su hijo de manera feliz e independiente con la cantidad exacta de autoestima y determinación.
En vez de tomar todas estas decisiones cuando sea posible, ofrece a tus hijos opciones. ¡Y respétalas! Todos queremos ver a nuestros hijos felices y valorados. Lucha por ello!