Introducción
Si gestionamos un negocio sobre Stripe, lo normal es que tengamos varios flujos de pago en juego. Podemos tener un checkout completo de e-commerce en nuestra web y, además, enviar payment links a clientes por correo o por teléfono para ventas puntuales o presenciales. Las notificaciones por correo integradas en Stripe cubren todos los pagos correctos de la cuenta, pero ¿qué ocurre si solo queremos recibir aviso cuando se paga un payment link? Quizá los pedidos online ya tengan su propio flujo de cumplimentación, y un correo genérico de "ha recibido un pago" por cada transacción solo añade ruido.
Este es justo el reto al que se enfrentó hace poco un cliente nuestro. Querían que su equipo recibiera un correo cada vez que un cliente pagara mediante un payment link, para poder actuar de inmediato. Los pedidos web ya estaban resueltos, pero los payment links eran una incorporación más reciente, creados al vuelo para clientes telefónicos y presenciales, y necesitaban visibilidad sobre cuándo se completaban.
La buena noticia es que esto es totalmente posible dentro de Stripe, sin código, sin herramientas de terceros como Zapier y sin necesidad de tiempo de desarrollo. La herramienta que lo hace posible es Stripe Workflows.
¿Qué es Stripe Workflows?
Workflows es la herramienta nativa de automatización de Stripe. Nos permite definir reglas que reaccionan a eventos de la cuenta, del estilo "cuando ocurra X, haz Y". Es una alternativa nativa a construir listeners de webhooks de un solo uso o conectar plataformas de automatización de terceros.
Los workflows se construyen directamente en el dashboard de Stripe con un editor visual. Primero se elige un evento disparador, por ejemplo el éxito de un pago o la creación de una factura. Luego se añaden condiciones para filtrar los eventos que nos interesan, y se definen las acciones a realizar cuando se cumplen esas condiciones, como enviar un correo a un miembro del equipo, actualizar metadatos o editar un campo de un objeto.
Workflows es un producto relativamente reciente dentro de Stripe, pero su funcionalidad crece con rapidez. La idea es sustituir gran parte de la fontanería y de los listeners de webhooks de uso único que las empresas y los desarrolladores han tenido que construir y mantener por su cuenta. Para una notificación por correo tan dirigida como esta, encaja a la perfección.
El reto: filtrar pagos provenientes de payment links
Antes de meternos en la configuración, conviene entender por qué esto no se resuelve simplemente activando una notificación. Cuando un cliente completa un payment link, lo que ocurre por debajo es que Stripe crea una Checkout Session. Es el mismo mecanismo que utilizan a menudo los checkouts de la web, las altas de suscripciones y otros flujos de pago. Todos disparan el mismo evento checkout.session.completed en Stripe para indicar que se ha completado un flujo de Checkout.
Por tanto, si configuramos un workflow que se dispare con cada checkout.session.completed, recibiremos avisos de todos los pagos por checkout, no solo los de los payment links. Necesitamos una forma de decirle a nuestro workflow: "dispárate solo para los pagos de payment links".
El enfoque ideal sería añadir metadatos personalizados al payment link y filtrar por ellos. Si creamos los payment links vía API, esto es sencillo. Pero aquí queremos una solución sin código. El dashboard de Stripe no expone hoy un campo de metadatos al crear payment links desde la UI. Tenemos que tomar otro camino.
Aquí entra en juego el Client Reference ID.
Usar el Client Reference ID
Cuando creamos un payment link en el dashboard de Stripe, hay una pequeña pero potente funcionalidad escondida a la vista. Junto a la URL generada verá un botón "+ URL parameters".
Al pulsarlo se abre una ventana en la que podemos añadir parámetros adicionales al enlace, incluido un Client Reference ID. Estos parámetros son muy útiles para medir la efectividad de los payment links. El client reference ID es un campo de texto libre que se traslada a la checkout session cuando el cliente paga. Originalmente se diseñó para asociar pagos con referencias internas propias, pero funciona perfectamente como marcador sobre el que filtrar en nuestro workflow.
Al crear un payment link para un cliente, el proceso queda así:
- Crear el payment link de la forma habitual en el dashboard de Stripe
- Pulsar "+ URL parameters" junto al enlace generado
- Seleccionar "Client Reference ID" e introducir una referencia: el nombre del cliente, una referencia de pedido o las iniciales de la persona del equipo que lo crea
- Pulsar "Copy" para copiar la URL completa con el parámetro al portapapeles
- Enviar el enlace al cliente por correo, WhatsApp, etc.
La referencia que introducimos cumple una doble función: actúa como marcador que le dice al workflow "esto es un pago por payment link" y nos da una referencia útil dentro del correo de notificación, por ejemplo a qué cliente o a qué miembro del equipo se refiere.
Lo clave aquí es que las checkout sessions normales de la web no tendrán ese campo informado. Los payment links a los que hayamos añadido un client reference ID sí lo tendrán. Así diferenciaremos las transacciones en la configuración del workflow.
Otra cosa útil es que podemos cambiar estos parámetros cada vez que enviamos el enlace. Podemos vender por ejemplo un libro con un payment link buy.stripe.com/abcd y mandárselo al cliente 1 como buy.stripe.com/abcd?client_reference_id=customer_1 y al cliente 2 como buy.stripe.com/abcd?client_reference_id=customer_2. El mismo producto, un único payment link creado, pero los pagos de varios clientes seguidos individualmente a través de él.
Configurar el workflow
Con nuestros payment links llevando ya un client reference ID, podemos construir un workflow que solo se dispare para esos pagos. Así se configura:
1. Crear un nuevo workflow
Vaya a Workflows en el dashboard de Stripe y pulse "Create workflow". Pulse la etiqueta "Untitled Workflow" en la parte superior y póngale un nombre descriptivo.
2. Definir el disparador
Pulse "Add a trigger" en el centro de la pantalla. Le aparecerá una lista con todos los eventos posibles. Elija "Checkout session is complete" como evento disparador. Se dispara cada vez que se completa una checkout session en la cuenta.
3. Añadir una condición
Este es el paso clave. Tenemos que añadir una condición que compruebe si la checkout session tiene client reference ID. Al seleccionar "Checkout session is complete" en el paso anterior debería haber aparecido un menú "Trigger Conditions" a la derecha.
En el panel Trigger Conditions, pulse en el primer campo y seleccione Client Reference ID. En el siguiente desplegable elija "is not empty". No nos importa el contenido del campo, solo que no esté vacío. Así, el workflow solo seguirá adelante para checkout sessions con client reference ID, es decir, los pagos de payment links. Los pagos normales del checkout de la web no llevarán ese campo y se ignorarán.
4. Añadir la acción
Pulse "Add a Step" en la segunda casilla del centro de la pantalla y luego "Add Action". En la lista de acciones, seleccione "Email team member"; volverá a aparecer un panel lateral.
En el primer desplegable elija a tantas personas como quiera notificar. La lista la pueblan los usuarios de la cuenta de Stripe, es decir, no se puede mandar un correo a alguien que no esté en la cuenta. El campo Body permite introducir un mensaje con plantilla.
La sección que de verdad nos interesa es "Append data". Al pulsar "Add item" aparecen "My label" y "Value". Use Value para autocompletar campos como Client Reference ID, Amount, Customer Email y Name. El botón "Preview" muestra una vista previa del correo.
5. Publicar
Cuando estemos conformes con la configuración, pulse "Publish" en la parte superior de la página. El workflow ya está en marcha y enviará una notificación por correo cada vez que se complete un payment link con client reference ID.
¿Por qué no Zapier?
Esta fue de hecho la primera pregunta de nuestro cliente: "¿necesitamos Zapier para esto?". Es una suposición razonable, ya que Zapier y herramientas similares han sido la opción habitual para este tipo de automatizaciones con Stripe durante años.
La ventaja de usar Workflows es que todo se queda dentro de Stripe. Sin suscripción adicional, sin una cuenta de un tercero que mantener, sin preocuparse por límites de la API o cuotas de tareas de Zapier, y sin riesgo de que la integración se rompa porque un servicio externo cambie su API. Es nativo, gratuito (incluido en la cuenta de Stripe) y lo mantiene Stripe como parte de su plataforma central.
Para automatizaciones más complejas, las herramientas externas siguen teniendo todo el sentido. Pero para notificaciones tan dirigidas como esta, Workflows es la opción más simple y más fiable.
Para terminar
Resumen de la configuración completa:
- Crear los payment links de la forma habitual, pero añadiendo siempre un Client Reference ID a través de los URL parameters
- Crear un workflow disparado por "Checkout Session is complete"
- Añadir una condición que filtre por sessions cuyo Client Reference ID no esté vacío
- Añadir una acción de correo con el destinatario o destinatarios y los detalles del pago relevantes
- Publicar y listo
Stripe Workflows es todavía un producto relativamente nuevo, con nuevos disparadores, condiciones y acciones que se añaden con regularidad. Si nos hemos apoyado en scripts puntuales o integraciones de terceros para automatizaciones simples como esta, vale la pena revisar si Workflows ya las cubre de forma nativa. Lo más probable es que sí.