Cómo conectar Svix a Shopify Flow

Svix es la infraestructura de webhooks en la que se basan Clerk, Resend, Superwall y muchos otros productos. Si su remitente realiza envíos a través de Svix, esta configuración predeterminada lo verifica. Workflow Webhooks convierte esa llamada en un activador de Shopify Flow, de modo que su tienda pueda reaccionar ante ella: etiquetar a un cliente, añadir una nota al pedido, enviar un correo electrónico interno, actualizar un metacampo… cualquier cosa que Shopify Flow pueda hacer.

Esta guía establece todo el proceso - Svix envía, Workflow Webhooks recibe y verifica, Shopify Flow actúa - con la firma HMAC de Svix comprobada en cada solicitud, de modo que solo Svix puede iniciar su flujo de trabajo.

Lo que puede construir

  • Etiquete a un cliente de Shopify cuando Clerk le informe de que se ha registrado o ha verificado su correo electrónico en su aplicación.
  • Reaccione ante un evento de reenvío o de devolución y señale al cliente cuya dirección no sea válida.
  • Reciba mensajes desde cualquier producto basado en Svix sin necesidad de configurar una firma personalizada.

Eventos típicos que se pueden enviar: cualquier evento que defina el servicio de envío.

Este mismo ajuste preestablecido también verifica los webhooks de Clerk, Resend y Superwall.

Antes de empezar

  • Workflow Webhooks instalado en su tienda de Shopify.
  • Shopify Flow instalada, que se puede descargar de forma gratuita desde la App Store de Shopify.
  • Una cuenta en Svix con permiso para crear webhooks.

Paso 1: Cree el webhook en Workflow Webhooks

  1. Acceda a Workflow Webhooks -> Webhooks -> Crear webhook y asígnele un nombre que pueda reconocer en Shopify Flow, como, por ejemplo, Svix events.
  2. En «Autenticación», seleccione HMAC.
  3. En «Proveedor de firma», seleccione Svix. La aplicación rellena automáticamente el encabezado, el algoritmo, el payload firmado y la ventana de repetición; no es necesario configurar nada más.
  4. Deje el campo «Secreto» vacío por ahora y haga clic en «Guardar». Copie la URL del webhook que aparece en la página.

Consulte Autenticación para conocer los demás modos de autenticación, y Asignación de la carga útil y variables de flujo para seleccionar qué campos se envían a Shopify Flow.

Paso 2: Añada el punto final en Svix

Añada la URL como punto final en la configuración del webhook del servicio de envío y, a continuación, visualice y copie su secreto de firma (comienza por whsec_).

Cómo encontrar su secreto de firma de Svix

El secreto de firma del punto final que comienza por «whsec_», procedente de la configuración del webhook del servicio.

La propia documentación de Svix sobre las firmas de webhooks, disponible en, incluye el texto exacto y las capturas de pantalla correspondientes a su cuenta.

Pegue esa clave secreta en el campo «Secret» del webhook en Workflow Webhooks y guarde los cambios. A partir de ese momento, cada entrega de Svix se verificará antes de llegar a Shopify Flow.

Qué comprueba esto

¿Qué? Valor
Encabezado de la firma svix-signature
Dónde se coloca la firma El valor del encabezado, tras el prefijo v1,
¿Qué se ha firmado? {header:svix-id}.{timestamp}.{body}
Firma HMAC-SHA256, codificado en base64
Marca de tiempo El encabezado svix-timestamp, expresado en segundos de Unix
Protección contra la reproducción Se rechazan las solicitudes cuya marca de tiempo firmada se sitúe a más de 5 minutos del momento actual.
El secreto Se decodifica en Base64 antes de su uso. El prefijo whsec_ se elimina antes de la decodificación. Péguelo tal y como lo muestra el remitente.

En la carga útil firmada, {body} es el cuerpo de la solicitud sin procesar, byte a byte; {timestamp} es la marca de tiempo indicada anteriormente; y {header:svix-id} es el encabezado de solicitud svix-id.

Cualquier solicitud que incumpla alguno de estos requisitos se rechaza con el código de error 401, se registra en Historial y resolución de problemas y nunca inicia un flujo de trabajo.

Paso 3: Crear el flujo de trabajo Shopify Flow

  1. En «Shopify Flow», cree un flujo de trabajo y seleccione el activador «Workflow Webhooks».
  2. Haga clic en «Grabar eventos» y, a continuación, envíe un evento de prueba desde Svix (o utilice la opción «Enviar prueba» en Workflow Webhooks) para que Shopify Flow aprenda la estructura de sus datos.
  3. Cada webhook del que disponga activa el mismo activador de Shopify Flow; por lo tanto, añada una primera condición basada en el identificador del webhook para que este flujo de trabajo se limite exclusivamente a Svix. El identificador aparece en la página del webhook.
  4. Añada sus acciones: etiquete a un cliente, añada una nota, envíe un correo electrónico interno, actualice un metacampo.
Shopify Flow
En Shopify Flow, seleccione «Select a trigger», abra Workflow Webhooks y elija «Webhook Trigger».
Condición de Shopify Flow: el ID del webhook es igual al ID de un webhook
El primer paso de cada flujo de trabajo: una condición basada en el ID del webhook, de modo que el flujo de trabajo solo se ejecute para este webhook.
El flujo de trabajo completo: activador de webhook, una condición basada en el ID del webhook y, a continuación, envío de un correo electrónico interno en la rama «True».
El flujo de trabajo completo: activador, condición basada en el ID del webhook y, a continuación, su acción en la rama «True».

Paso 4: Realice una prueba de extremo a extremo

Un activador de eventos reales en Svix. En Workflow Webhooks -> Historial debería ver la invocación con el estado «Éxito». Si la firma era incorrecta, aparecerá en su lugar una entrada con el estado «Fallido» y el motivo correspondiente; en Verificación de webhooks firmados se explica cómo funciona el verificador de firmas, que le muestra exactamente en qué paso se produjo el fallo.

Una invocación se ha abierto en «Historia» con sus encabezados de solicitud, su payload, su estado, su duración y sus identificadores
Un evento «entregado» en Historia: el estado «Éxito» significa que Shopify Flow lo ha aceptado.
La firma no coincide▾

En este pedido: el secreto (la causa más habitual - un espacio de más o una clave del entorno equivocado - ), si el remitente está utilizando el secreto de otro punto final y si algún elemento entre Svix y la aplicación reescribe el cuerpo del mensaje. Las firmas abarcan los bytes sin procesar, por lo que un proxy que reformatee el JSON las invalida. El verificador de firmas de la página de webhooks muestra el texto exacto que se ha firmado.

Me aparece el error 401 en todas las solicitudes▾

Compruebe que la autenticación del webhook esté configurada en HMAC con el proveedor Svix seleccionado, que se haya introducido el secreto y que Svix esté enviando la solicitud a la URL tal y como la muestra la aplicación, incluido el código al final.

No aparece nada en el historial▾

La solicitud nunca se recibió. Vuelva a comprobar la URL en Svix y consulte el propio registro de entrega de Svix para ver la respuesta que recibió. Un 404 indica que el webhook es incorrecto o ha sido eliminado, mientras que un 429 significa que ha superado el límite de invocaciones de su plan; consulte Planes y uso.

El flujo de trabajo se ejecuta para eventos incorrectos▾

Cada webhook de su tienda activa el mismo activador de Shopify Flow. Añada una condición basada en el ID del webhook como primer paso del flujo de trabajo, o limite los eventos que envía desde Svix.

Las solicitudes fallan con el mensaje «marca de tiempo fuera de los límites de tolerancia»▾

Svix incluye una marca de tiempo y la aplicación rechaza cualquier evento con más de 5 minutos de antigüedad. Normalmente, esto se debe a un problema con el reloj en el lado del remitente, o a que Svix ha vuelto a intentar el envío mucho más tarde con la marca de tiempo original. Los reintentos de la misma solicitud original no pueden pasar; pida a Svix que envíe un evento nuevo.

Relacionado