Realice una solicitud HTTP desde Shopify Flow
¿Por qué utilizar esto para las solicitudes HTTP?
Shopify Flow Incluye una acción integrada para enviar solicitudes HTTP, pero solo está disponible en determinados planes de Shopify. Si su tienda tiene el plan «Básico», puede seguir llamando a API externas utilizando Workflow Transactional Email en su lugar.
Usted crea la solicitud una vez en la aplicación y, a continuación, la selecciona dentro de su flujo de trabajo mediante la acción «Solicitud HTTP». Mantener la solicitud en la aplicación en lugar de en el flujo de trabajo también implica que las credenciales nunca quedan almacenadas en la configuración de Shopify Flow, y que dispone de un registro completo de las solicitudes y respuestas de forma gratuita.
Lo que va a desarrollar
Un flujo de trabajo que se ejecuta cada 10 minutos, busca productos que aún no figuran en Airtable y los envía allí.
Esto utiliza:
- Secretos para conservar el token y el ID de base de Airtable
- Solicitudes HTTP para definir la plantilla de solicitud
- La acción «Solicitud HTTP» en Shopify Flow para ejecutarla
- Historial para consultar el resultado
Guía en vídeo
Todo el proceso: la creación de las claves secretas, la solicitud HTTP y el flujo de trabajo. El vídeo no tiene sonido.
Antes de empezar
- Workflow Transactional Email está instalado.
- Tiene acceso a Shopify Flow.
- Dispone de un ID de base de Airtable y de una tabla preparada para recibir datos de productos.
- Dispone de un token de acceso de Airtable de con los permisos adecuados.
Paso 1: Guarde las credenciales como secretos
En lugar de introducir las credenciales en la solicitud, guárdelas una vez como «secretos» y haga referencia a ellas mediante {{ secrets.yourKeyName }}. Quedan cifradas en reposo, se pueden reutilizar en distintas solicitudes y no aparecen en su historial.
Acceda a «Secretos» y haga clic en «Crear secreto».

Introduzca la clave, el valor y una descripción; a continuación, guarde los datos.

En este ejemplo se almacenan dos datos confidenciales: el token de acceso personal y el identificador de la base de Airtable.
Paso 2: Crear la solicitud
En este ejemplo se utiliza , el punto final «create-records» de Airtable:.
Seleccione «Solicitudes HTTP» y haga clic en «Crear solicitud».

Asigne un nombre claro, como «Crear registro de producto en Airtable»; este será el nombre que buscará más adelante en Shopify Flow.
Establezca el método. Para crear registros en Airtable, se trata del método POST.
Introduzca el punto final en el campo «URL». El prefijo https:// es fijo, por lo que debe escribir el resto:
api.airtable.com/v0/{{ secrets.airTableProductsBaseId }}/Products
Esta imagen muestra cómo se asigna el punto final de Airtable a su base de datos, para que pueda adaptarlo a sus necesidades:

Añada los encabezados que requiere Airtable:
Authorization: Bearer {{ secrets.airtableAccessToken }}
Content-Type: application/json
En el cuerpo de la solicitud, utilice una variable para los registros, de modo que Shopify Flow pueda proporcionarlos:
{
"records": {{ variables.records }}
}
Airtable espera que dicha variable se resuelva en una matriz con la siguiente estructura:
"records": [
{
"fields": {
"Title": "Classic White T-Shirt",
"Handle": "classic-white-tshirt",
"Product ID": 1001
}
},
{
"fields": {
"Title": "Eco-Friendly Water Bottle",
"Handle": "eco-water-bottle",
"Product ID": 1002
}
}
]
Crearemos ese array en el flujo de trabajo en el siguiente paso.
La solicitud final tiene el siguiente aspecto:



Guarde la solicitud. Ahora podrá seleccionarla en la acción «Solicitud HTTP» en Shopify Flow.
Paso 3: Crear el flujo de trabajo
Acceda a Shopify Flow y cree un nuevo flujo de trabajo.
Elija un activador basado en una programación. En este ejemplo, la tarea se ejecuta cada 10 minutos con fines de demostración; elija una frecuencia adecuada para el entorno de producción.

Recupere los productos que aún no figuran en Airtable. Los productos que ya se han enviado reciben la etiqueta added-to-airtable en el paso final, por lo que esta consulta los excluye. Consulte la referencia de Shopify sobre el argumento de consulta en.

Ahora formatee los datos. El cuerpo de la solicitud espera una variable de tipo records, por lo que debe utilizar la acción «Ejecutar código» de Shopify Flow para organizar los productos recuperados en esa matriz.

Configure el paso de la siguiente manera:

La consulta:
query {
getProductData {
id
handle
title
}
}
El código:
export default function main(input) {
const records = input.getProductData.map((data) => {
const numericId = parseInt(data.id.replace("gid://shopify/Product/", ""));
return {
fields: {
"Product ID": numericId,
"Title": data.title,
"Handle": data.handle
}
};
});
return {
records: JSON.stringify(records)
};
}
El esquema de salida:
"The output of Run Code"
type Output {
"The message returned by the script"
records: String
}
Puede ver una vista previa del resultado a la derecha:

Añada la acción «Solicitud HTTP» que ofrece esta aplicación.

Cuando se le solicite, seleccione la solicitud que ha guardado - Crear registro de producto en Airtable - y, a continuación, guarde los cambios y vuelva al flujo de trabajo.

En el campo «Variables» de la acción, introduzca los registros que acaba de dar formato:
{
"records": "{{runCode.records}}"
}

Por último, recorra los productos recuperados y etiquételos con la etiqueta added-to-airtable para que, en la siguiente ejecución, no se vuelvan a incluir.

Guarde y active el flujo de trabajo.
Paso 4: Compruebe que ha funcionado
En el historial puede comprobar si la solicitud se ha realizado correctamente y qué respuesta ha devuelto Airtable.

Abra la entrada para examinar los datos de la solicitud, los datos de la respuesta y los tiempos.

Desde la página de edición de la solicitud, el botón «Historial de la solicitud» le lleva directamente al historial filtrado según esa solicitud concreta.
A quién no le permitirá llamar la aplicación
Las solicitudes configuradas por los comerciantes pasan por un filtro de seguridad. Se rechazan las solicitudes dirigidas a direcciones de red internas o privadas, incluidas localhost, los puntos finales de metadatos en la nube y cualquier dirección que resuelva a un rango privado, incluso a través de una redirección. Si observa un error en el que se menciona SSRF blocked, el destino figura en dicha lista. Además, las solicitudes pueden seguir un máximo de 5 redireccionamientos y el tamaño de la respuesta tiene un límite de 10 MB.
Shopify Flow La propia aplicación limita el tamaño de una respuesta de acción a 50 KB. Si una respuesta de prueba supera ese tamaño, la aplicación bloquea el guardado en lugar de permitir que el paso falle dentro de un flujo de trabajo en ejecución.
Buenas prácticas
- Utilice nombres de solicitudes claros para que sean fáciles de encontrar en Shopify Flow.
- Guarde los tokens de la API como secretos, en lugar de introducirlos en los encabezados.
- Céntrese en los campos que el destino realmente necesita.
- Compruebe el historial tras cualquier modificación para confirmar que la solicitud sigue realizándose correctamente.
- Añada una condición antes de la solicitud para que no se ejecute en ciclos vacíos.
Relacionado
- Secretos - el almacenamiento de credenciales.
- Variables y líquido - la referencia de la variable, incluida la sustitución en el cuerpo.
- Historial y resolución de problemas - leer una solicitud fallida.

