Optimización de tus flujos de trabajo

Cuando se crea un flujo de trabajo, hay que asegurarse de que funcione con la mayor eficacia posible. En este documento se describen las situaciones en las que los flujos de trabajo pueden verse limitados o agotar los límites de la API, así como consejos para resolver o solucionar estos problemas.

Problemas habituales de rendimiento

Esta sección describe escenarios comunes que pueden causar problemas de rendimiento en tus flujos de trabajo. Es posible tener más de un escenario al mismo tiempo, lo que aumentaría la probabilidad de que se observen problemas de rendimiento. Para errores relacionados con la configuración del editor o la limitación de velocidad, utiliza la guía de resolución de problemas.

Activador de gran volumen

Los activadores de gran volumen son aquellos en los que el evento subyacente ocurre con frecuencia. Por ejemplo, el activador Variante de producto cantidad de inventario modificada se ejecuta para cada cambio de inventario en una tienda. El volumen de un activador es como un multiplicador de cualquier problema en tu flujo de trabajo. Por ejemplo, si un flujo de trabajo obtiene 100 productos y se ejecuta 1000 veces por minuto, obtendrá 100 000 productos por minuto. Esto puede causar problemas de rendimiento.

Solución: Optimiza tus flujos de trabajo utilizando menos datos, o utiliza pasos de espera para particionar tu flujo de trabajo como se indica a continuación.

Muchos flujos de trabajo que utilizan el mismo activador

En Flow, puedes crear más de un flujo de trabajo utilizando el mismo activador. Estos flujos de trabajo se ejecutarán en paralelo entre sí cuando ocurra el evento. Esto puede ser problemático si ejecutas demasiados flujos de trabajo utilizando el mismo activador por las siguientes razones:

  • Los flujos de trabajo pueden entrar en conflicto entre sí.
  • Los flujos de trabajo están tratando de obtener datos y llamar a las API al mismo tiempo, y tu tienda está limitada en el número de solicitudes que puede manejar a la vez por Límites de la API de Shopify.

Solución: combina flujos de trabajo que utilizan el mismo activador en un solo flujo de trabajo. Esto también te permite controlar cuándo se ejecuta cada uno de ellos para que no entren en conflicto entre sí. Combinar flujos de trabajo es especialmente útil si los flujos de trabajo no recuperan muchos datos o los datos que recuperan son los mismos. Si los flujos de trabajo recuperan una gran cantidad de datos distintos, es posible que mantenerlos separados genere un mejor rendimiento.

Utilizar listas o datos erróneos

Al crear un flujo de trabajo, puedes utilizar una lista de objetos, como productos o pedidos. Si utilizas una lista de objetos, Flow obtendrá todos los objetos de la lista. Esto puede ser un problema cuando la lista contiene muchos datos.

Otro problema común es seleccionar accidentalmente datos incorrectos. Por ejemplo, para verificar los datos del producto en un pedido, es posible que hayas seleccionado order / publication / products / tags en lugar de order / line items / product / tags. El primer resultado suele ser incorrecto, ya que obtiene todos los productos de una publicación cuando la intención es comprobar los productos del pedido. La elección de una lista tan grande puede causar problemas de rendimiento y la elección de la lista equivocada puede dar lugar a que tu automatización ejecute lo incorrecto.

Solución: selecciona cuidadosamente los datos que necesitas y evita usar listas cuando no sea necesario. Prueba tus flujos de trabajo para asegurarte de que estén haciendo lo que esperas.

Metacampos

La obtención de datos de metacampos o metaobjetos individuales no debería causar problemas de rendimiento. Sin embargo, un problema común es elegir la lista metafields y recorrer todos los metacampos de un recurso. Si un campo value contiene una gran cantidad de datos, por ejemplo, cuando se utilizan objetos HTML, esto puede generar que se procesen muchos datos y potencialmente causar problemas de rendimiento.

Solución: utiliza el objeto metafield (docs) en lugar de metafields.

Uso excesivo de acciones Obtener datos

Los flujos de trabajo que utilizan una acción Obtener datos, como Obtener datos de pedidos, están diseñados para devolver un máximo de 100 objetos por flujo de trabajo desde acciones Obtener datos. Superar los 100 objetos puede causar problemas de rendimiento.

Solución: ejecuta el flujo de trabajo con más frecuencia para que tu consulta no tenga que devolver más de 100 resultados. Reutiliza la misma acción Obtener datos en lugar de realizar consultas repetidas.

No hay filtros de consulta en las acciones Obtener datos

Las acciones Obtener datos llaman a la API de Shopify. Si no hay ninguna consulta, la API devolverá todos los recursos o ninguno. Esto puede causar problemas de rendimiento, pero también puede provocar que se realicen acciones incorrectas en tu tienda si utilizas los datos devueltos más adelante en el flujo de trabajo.

Solución: incluye siempre filtros de consulta en tus acciones Obtener datos.

Filtros de consulta incorrectos en acciones Obtener datos

Las consultas Obtener datos admiten un conjunto limitado de filtros de consulta, una sintaxis específica y un conjunto específico de valores que se pueden usar en los filtros. Introducir un filtro, un valor de filtro o una sintaxis incorrectos puede provocar que se ignore toda la consulta, lo que puede causar problemas similares a cuando no hay ningún filtro de consulta presente.

Solución: utiliza la documentación proporcionada por la acción en Flow para encontrar la lista de filtros de consulta disponibles. Prueba siempre tus filtros de consulta para asegurarte de que devuelvan los datos esperados. Puedes utilizar una acción de Salida de Registro en Flow (para ver los datos devueltos), o puedes llamar a la API Shopify Admin directamente (a través de un cliente API como Postman o a través de la aplicación GraphiQL).

Soluciones adicionales para problemas de rendimiento comunes

Utiliza los pasos de espera para retrasar la obtención de datos

Los pasos de espera te permiten pausar un flujo de trabajo durante un periodo de tiempo específico, pero los pasos de espera también se pueden usar para optimizar tus flujos de trabajo. Cada paso de espera divide efectivamente la ejecución de tu flujo de trabajo en bloques separados. Cuando el flujo de trabajo se ejecuta, obtiene automáticamente los datos necesarios hasta el primer paso de espera (y vuelve a obtener datos después del paso de espera para el resto del flujo de trabajo). Si un flujo de trabajo utiliza un disparador de gran volumen y obtiene muchos datos, pero solo actuará ocasionalmente, puedes colocar cualquier dato o lógica compleja después de un par de pasos de condición y espera. Por ejemplo:

  1. Activador: Cantidad de inventario de la variante de producto modificada
  2. Condición: comprueba si el producto está en una colección
  3. Si es verdadero, Acción: Esperar 2 segundos
  4. Acción: enviar un correo electrónico al cliente (con muchos datos)

En este ejemplo, los datos necesarios para el paso 4 solo se consultan después de que se completa el paso Esperar. Si la condición suele ser falsa, significa que el flujo de trabajo se ejecutará más rápido y de manera más eficiente.

Qué no optimizar

Utilizar los mismos datos en múltiples acciones

Cuando utilizas el mismo campo en varios pasos, Flow analiza el uso de esos campos y solo obtiene esos datos una vez. Esto significa que puedes usar los datos tantas veces como quieras sin preocuparte por el rendimiento.

¿No encuentras las respuestas que estás buscando? Estamos aquí para ayudarte.