Saltar al contenido principal

Catálogo de eventos del sitio

Con la sincronización activada, el sitio conectado avisa a Joinotify de lo que pasa en él, un evento a la vez. Cada evento tiene un nombre con la forma <origen>.<objeto>.<lo que pasó> — wc.order.paid, wp.user.registered — y ese nombre es lo que escuchan el disparador Evento del sitio y el paso Esperar evento.

Los ejemplos de esta página son los mismos que el plugin informa al panel y que el editor muestra en Ejemplo del evento: valores inventados, con la forma exacta de los datos reales.

Qué eventos envía un sitio​

Cada origen solo envía si su plugin está activo en WordPress y la opción correspondiente está activada en la ventana de la sincronización (las etiquetas del plugin aparecen aquí en inglés, su idioma de origen):

OrigenNecesitaOpción de la sincronización
WooCommerceWooCommerceWooCommerce orders and customers
SuscripcionesWooCommerce SubscriptionsWooCommerce orders and customers
WordPress—WordPress users
FormulariosWPForms o Elementor ProForm submissions (desactivada por defecto)
Flexify CheckoutFlexify Checkout con la recuperación de carritosAbandoned carts
PersonalizadosTu propio código—

El sobre​

Cada evento llega con lo que pasó (data) y con a quién se refiere (contact):

{
"id": "5b0e7c3a-9f41-4d2a-8c7e-1f6a2b9d0e34",
"name": "wp.user.registered",
"occurred_at": "2026-09-24T12:00:00Z",
"schema_version": 1,
"site_url": "https://example.com",
"contact": {
"ref": { "kind": "wp_user", "id": "42" },
"phone": "+5511987654321",
"country": "BR",
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"attributes": {
"wp_registered_at": "2026-09-24T12:00:00Z",
"wp_role": "customer"
},
"tags": ["Mi Tienda"],
"consent": {
"status": "opted_in",
"evidence": "Quiero recibir ofertas por WhatsApp. — sign-up — example.com",
"at": "2026-09-24T12:00:00Z"
}
},
"data": {
"user": {
"id": 42,
"email": "[email protected]",
"first_name": "Ana",
"last_name": "Souza",
"roles": ["customer"],
"registered_at": "2026-09-24T12:00:00Z"
}
}
}
CampoQué es
idUn identificador que el sitio generó al registrar el evento. El mismo id enviado de nuevo se ignora
nameEl nombre del evento
occurred_atCuándo pasó en el sitio, en ISO 8601 y UTC
schema_versionLa versión de la forma de data — hoy, 1
site_urlLa dirección del sitio. Si es distinta de la dirección conectada, se rechaza el lote entero (ver copias de staging)
contactA quién se refiere el evento. Opcional
dataLos datos del evento — lo que describe cada sección de abajo

El bloque contact​

CampoQué es
refQuién es la persona en el sitio: { "kind": …, "id": … }
phone, countryEl teléfono y el país de facturación, que indica cómo leer un número sin código de país
first_name, last_name, emailNombre y correo
attributesLos campos de la tienda en el contacto: pedidos, total gastado, última compra…
tagsLa etiqueta de origen del sitio
consentEl consentimiento de marketing, cuando el sitio lo pide

El kind del ref es uno de estos:

kindEn el panelid
wp_userUsuario de WordPressEl id del usuario
wc_customerCliente de WooCommerceEl id de usuario del cliente
wc_guestComprador sin cuentaEl SHA-256 del correo en minúsculas (o del teléfono, si no hay correo)
leadLead de formulario o carritoEl mismo hash que el comprador sin cuenta

Joinotify busca el contacto primero por el ref y después por el teléfono — el ref es lo que mantiene como un solo contacto al cliente que cambió de número. Sin teléfono y sin un vínculo anterior, no se crea ningún contacto: el evento queda registrado con el estado Sin contacto.

Los attributes van a los campos de la tienda que la plataforma crea en la cuenta — Pedidos (wc_orders_count), Total gastado, Ticket medio, Primera compra, Última compra, Estado del último pedido, Ciudad, Estado/provincia, Registro en el sitio, Rol en el sitio y, con suscripciones, Estado de la suscripción y Próximo pago. Son una fotografía que calcula el sitio: reemplazan el valor anterior en lugar de sumarse.

El consent es { "status": "opted_in", "evidence": …, "at": … } cuando la persona marcó la casilla de marketing — la evidencia junta el texto de la casilla, dónde se marcó y el sitio — o { "status": "opted_out", "reason": "my_account" } cuando desmarcó la preferencia en Mi cuenta.

Los datos en el flujo​

El data de un evento es lo que el flujo lee en {{trigger.<ruta>}}:

VariableSale
{{trigger.order.number}}1234
{{trigger.order.total:money}}R$ 189,90
{{trigger.order.line_items[0].name}}Café especial 500 g
{{trigger.links.payment_url}}El enlace para pagar el pedido
{{trigger.customer.orders_count}}3

La plataforma añade dos claves a todo evento:

ClaveTraeEjemplo
$eventEl id, name y occurred_at del evento{{trigger.$event.name}}
$siteEl id, url y name del sitio conectado que lo envió{{trigger.$site.name}}

El bloque contact no queda en trigger: se convierte en el contacto de la ejecución, y el flujo lee a la persona con las variables del contacto — {{first_name}}, {{field.wc_total_spent}}. Las rutas del Filtro, de Actuar una vez por y de Esperar evento también parten de data: order.id, order.status, cart.id. La sintaxis completa está en Variables en los flujos.

Bloques que se repiten​

Los eventos de pedido, suscripción, usuario y carrito usan los mismos bloques. La forma es la de la API REST de WooCommerce, con valores crudos: totales como texto decimal ("189.90"), fechas en ISO 8601 y UTC, estados sin el prefijo wc-.

order​

{
"id": 1234,
"number": "1234",
"status": "pending",
"currency": "BRL",
"total": "189.90",
"subtotal": "179.90",
"discount_total": "10.00",
"shipping_total": "20.00",
"total_tax": "0.00",
"payment_method": "pix",
"payment_method_title": "Pix",
"date_created": "2026-09-24T12:00:00Z",
"date_paid": null,
"customer_id": 42,
"customer_note": "",
"billing": {
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping": {
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping_lines": [
{
"method_id": "flat_rate",
"method_title": "SEDEX",
"total": "20.00"
}
],
"line_items": [
{
"product_id": 77,
"variation_id": 0,
"sku": "CAFE-500",
"name": "Café especial 500 g",
"quantity": 2,
"price": "89.95",
"total": "179.90",
"categories": ["Cafés"]
}
],
"coupon_lines": [
{
"code": "BEMVINDO10",
"discount": "10.00"
}
]
}
  • line_items solo viene con la opción Send the items of each order (activada por defecto).
  • Facturación y envío traen ciudad, estado y país. Con Send billing and shipping addresses, billing suma company, address_1, address_2 y postcode, y shipping suma first_name, last_name, address_1, address_2, postcode y phone.
  • customer_id es 0 en un pedido sin cuenta.

customer​

{
"id": 42,
"orders_count": 3,
"total_spent": "540.90",
"avg_order_value": "180.30",
"first_order_at": "2026-03-02T15:10:00Z",
"last_order_at": "2026-09-24T12:00:00Z",
"last_order_status": "completed",
"is_first_order": false
}

La fotografía del historial del cliente en la tienda, calculada a partir de los pedidos pagados (los estados que WooCommerce cuenta como pagados — processing y completed, por defecto), con los reembolsos descontados de total_spent. Un comprador sin cuenta se reconoce por el correo de sus pedidos y viene con id 0. last_order_status es el estado del último pedido pagado.

is_first_order solo viene en los eventos de pedido: en un pedido pagado, es true cuando es el único pedido pagado del cliente; en un pedido todavía sin pagar, es true cuando el cliente no tiene ningún pedido pagado.

{
"payment_url": "https://example.com/checkout/order-pay/1234/?pay_for_order=true&key=wc_order_example",
"order_received_url": "https://example.com/checkout/order-received/1234/?key=wc_order_example",
"my_account_url": "https://example.com/minha-conta/view-order/1234/",
"review_urls": ["https://example.com/produto/cafe-especial/#reviews"]
}

payment_url paga un pedido pendiente, order_received_url y my_account_url muestran el pedido, y review_urls tiene la página de cada producto comprado, ya en la pestaña de reseñas.

subscription​

{
"id": 900,
"status": "pending",
"total": "59.90",
"currency": "BRL",
"billing_period": "month",
"billing_interval": 1,
"next_payment_at": "2026-10-24T12:00:00Z",
"customer_id": 42,
"billing": {
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"line_items": [
{
"product_id": 88,
"variation_id": 0,
"sku": "CLUBE-CAFE",
"name": "Clube do café",
"quantity": 1,
"price": "59.90",
"total": "59.90",
"categories": ["Assinaturas"]
}
]
}

user​

{
"id": 42,
"email": "[email protected]",
"first_name": "Ana",
"last_name": "Souza",
"roles": ["customer"],
"registered_at": "2026-09-24T12:00:00Z"
}

cart​

{
"id": 555,
"total": "189.90",
"currency": "BRL",
"recovery_url": "https://example.com/checkout/?recovery_cart=555",
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321"
}

WooCommerce​

EventoEn el panel
wc.order.createdPedido creado
wc.order.paidPedido pagado
wc.order.status_changedCambió el estado del pedido
wc.order.completedPedido completado
wc.order.cancelledPedido cancelado
wc.order.failedFalló el pago del pedido
wc.order.refundedPedido reembolsado
wc.customer.createdCliente registrado en la tienda

El contacto de los eventos de pedido es el comprador: wc_customer cuando tiene cuenta, wc_guest cuando no. El teléfono es el de facturación — o el de envío, si facturación no tiene.

wc.order.created​

Cuando el cliente cierra el pedido en el checkout, clásico o de bloques. Una vez por pedido.

Ejemplo de data
{
"order": {
"id": 1234,
"number": "1234",
"status": "pending",
"currency": "BRL",
"total": "189.90",
"subtotal": "179.90",
"discount_total": "10.00",
"shipping_total": "20.00",
"total_tax": "0.00",
"payment_method": "pix",
"payment_method_title": "Pix",
"date_created": "2026-09-24T12:00:00Z",
"date_paid": null,
"customer_id": 42,
"customer_note": "",
"billing": {
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping": {
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping_lines": [
{
"method_id": "flat_rate",
"method_title": "SEDEX",
"total": "20.00"
}
],
"line_items": [
{
"product_id": 77,
"variation_id": 0,
"sku": "CAFE-500",
"name": "Café especial 500 g",
"quantity": 2,
"price": "89.95",
"total": "179.90",
"categories": ["Cafés"]
}
],
"coupon_lines": [
{
"code": "BEMVINDO10",
"discount": "10.00"
}
]
},
"customer": {
"id": 42,
"orders_count": 3,
"total_spent": "540.90",
"avg_order_value": "180.30",
"first_order_at": "2026-03-02T15:10:00Z",
"last_order_at": "2026-09-24T12:00:00Z",
"last_order_status": "completed",
"is_first_order": false
},
"links": {
"payment_url": "https://example.com/checkout/order-pay/1234/?pay_for_order=true&key=wc_order_example",
"order_received_url": "https://example.com/checkout/order-received/1234/?key=wc_order_example",
"my_account_url": "https://example.com/minha-conta/view-order/1234/",
"review_urls": ["https://example.com/produto/cafe-especial/#reviews"]
}
}

wc.order.paid​

La primera vez que el pedido entra en un estado pagado, o cuando el medio de pago confirma el pago. Una vez por pedido, aunque el estado vaya y vuelva después.

Ejemplo de data
{
"order": {
"id": 1234,
"number": "1234",
"status": "processing",
"currency": "BRL",
"total": "189.90",
"subtotal": "179.90",
"discount_total": "10.00",
"shipping_total": "20.00",
"total_tax": "0.00",
"payment_method": "pix",
"payment_method_title": "Pix",
"date_created": "2026-09-24T12:00:00Z",
"date_paid": "2026-09-24T12:05:00Z",
"customer_id": 42,
"customer_note": "",
"billing": {
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping": {
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping_lines": [
{
"method_id": "flat_rate",
"method_title": "SEDEX",
"total": "20.00"
}
],
"line_items": [
{
"product_id": 77,
"variation_id": 0,
"sku": "CAFE-500",
"name": "Café especial 500 g",
"quantity": 2,
"price": "89.95",
"total": "179.90",
"categories": ["Cafés"]
}
],
"coupon_lines": [
{
"code": "BEMVINDO10",
"discount": "10.00"
}
]
},
"customer": {
"id": 42,
"orders_count": 3,
"total_spent": "540.90",
"avg_order_value": "180.30",
"first_order_at": "2026-03-02T15:10:00Z",
"last_order_at": "2026-09-24T12:00:00Z",
"last_order_status": "completed",
"is_first_order": false
},
"links": {
"payment_url": "https://example.com/checkout/order-pay/1234/?pay_for_order=true&key=wc_order_example",
"order_received_url": "https://example.com/checkout/order-received/1234/?key=wc_order_example",
"my_account_url": "https://example.com/minha-conta/view-order/1234/",
"review_urls": ["https://example.com/produto/cafe-especial/#reviews"]
}
}

wc.order.status_changed​

En cada cambio de estado, con el estado anterior en status_from y el nuevo en status_to. Para que el flujo actúe una sola vez por pedido, usa Actuar una vez por order.id en el disparador.

Ejemplo de data
{
"order": {
"id": 1234,
"number": "1234",
"status": "pending",
"currency": "BRL",
"total": "189.90",
"subtotal": "179.90",
"discount_total": "10.00",
"shipping_total": "20.00",
"total_tax": "0.00",
"payment_method": "pix",
"payment_method_title": "Pix",
"date_created": "2026-09-24T12:00:00Z",
"date_paid": null,
"customer_id": 42,
"customer_note": "",
"billing": {
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping": {
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping_lines": [
{
"method_id": "flat_rate",
"method_title": "SEDEX",
"total": "20.00"
}
],
"line_items": [
{
"product_id": 77,
"variation_id": 0,
"sku": "CAFE-500",
"name": "Café especial 500 g",
"quantity": 2,
"price": "89.95",
"total": "179.90",
"categories": ["Cafés"]
}
],
"coupon_lines": [
{
"code": "BEMVINDO10",
"discount": "10.00"
}
]
},
"status_from": "pending",
"status_to": "processing",
"customer": {
"id": 42,
"orders_count": 3,
"total_spent": "540.90",
"avg_order_value": "180.30",
"first_order_at": "2026-03-02T15:10:00Z",
"last_order_at": "2026-09-24T12:00:00Z",
"last_order_status": "completed",
"is_first_order": false
},
"links": {
"payment_url": "https://example.com/checkout/order-pay/1234/?pay_for_order=true&key=wc_order_example",
"order_received_url": "https://example.com/checkout/order-received/1234/?key=wc_order_example",
"my_account_url": "https://example.com/minha-conta/view-order/1234/",
"review_urls": ["https://example.com/produto/cafe-especial/#reviews"]
}
}

wc.order.completed​

Cada vez que el pedido entra en el estado completed.

Ejemplo de data
{
"order": {
"id": 1234,
"number": "1234",
"status": "completed",
"currency": "BRL",
"total": "189.90",
"subtotal": "179.90",
"discount_total": "10.00",
"shipping_total": "20.00",
"total_tax": "0.00",
"payment_method": "pix",
"payment_method_title": "Pix",
"date_created": "2026-09-24T12:00:00Z",
"date_paid": null,
"customer_id": 42,
"customer_note": "",
"billing": {
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping": {
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping_lines": [
{
"method_id": "flat_rate",
"method_title": "SEDEX",
"total": "20.00"
}
],
"line_items": [
{
"product_id": 77,
"variation_id": 0,
"sku": "CAFE-500",
"name": "Café especial 500 g",
"quantity": 2,
"price": "89.95",
"total": "179.90",
"categories": ["Cafés"]
}
],
"coupon_lines": [
{
"code": "BEMVINDO10",
"discount": "10.00"
}
]
},
"customer": {
"id": 42,
"orders_count": 3,
"total_spent": "540.90",
"avg_order_value": "180.30",
"first_order_at": "2026-03-02T15:10:00Z",
"last_order_at": "2026-09-24T12:00:00Z",
"last_order_status": "completed",
"is_first_order": false
},
"links": {
"payment_url": "https://example.com/checkout/order-pay/1234/?pay_for_order=true&key=wc_order_example",
"order_received_url": "https://example.com/checkout/order-received/1234/?key=wc_order_example",
"my_account_url": "https://example.com/minha-conta/view-order/1234/",
"review_urls": ["https://example.com/produto/cafe-especial/#reviews"]
}
}

wc.order.cancelled​

Cada vez que el pedido entra en el estado cancelled.

Ejemplo de data
{
"order": {
"id": 1234,
"number": "1234",
"status": "cancelled",
"currency": "BRL",
"total": "189.90",
"subtotal": "179.90",
"discount_total": "10.00",
"shipping_total": "20.00",
"total_tax": "0.00",
"payment_method": "pix",
"payment_method_title": "Pix",
"date_created": "2026-09-24T12:00:00Z",
"date_paid": null,
"customer_id": 42,
"customer_note": "",
"billing": {
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping": {
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping_lines": [
{
"method_id": "flat_rate",
"method_title": "SEDEX",
"total": "20.00"
}
],
"line_items": [
{
"product_id": 77,
"variation_id": 0,
"sku": "CAFE-500",
"name": "Café especial 500 g",
"quantity": 2,
"price": "89.95",
"total": "179.90",
"categories": ["Cafés"]
}
],
"coupon_lines": [
{
"code": "BEMVINDO10",
"discount": "10.00"
}
]
},
"customer": {
"id": 42,
"orders_count": 3,
"total_spent": "540.90",
"avg_order_value": "180.30",
"first_order_at": "2026-03-02T15:10:00Z",
"last_order_at": "2026-09-24T12:00:00Z",
"last_order_status": "completed",
"is_first_order": false
},
"links": {
"payment_url": "https://example.com/checkout/order-pay/1234/?pay_for_order=true&key=wc_order_example",
"order_received_url": "https://example.com/checkout/order-received/1234/?key=wc_order_example",
"my_account_url": "https://example.com/minha-conta/view-order/1234/",
"review_urls": ["https://example.com/produto/cafe-especial/#reviews"]
}
}

wc.order.failed​

Cada vez que el pedido entra en el estado failed.

Ejemplo de data
{
"order": {
"id": 1234,
"number": "1234",
"status": "failed",
"currency": "BRL",
"total": "189.90",
"subtotal": "179.90",
"discount_total": "10.00",
"shipping_total": "20.00",
"total_tax": "0.00",
"payment_method": "pix",
"payment_method_title": "Pix",
"date_created": "2026-09-24T12:00:00Z",
"date_paid": null,
"customer_id": 42,
"customer_note": "",
"billing": {
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping": {
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping_lines": [
{
"method_id": "flat_rate",
"method_title": "SEDEX",
"total": "20.00"
}
],
"line_items": [
{
"product_id": 77,
"variation_id": 0,
"sku": "CAFE-500",
"name": "Café especial 500 g",
"quantity": 2,
"price": "89.95",
"total": "179.90",
"categories": ["Cafés"]
}
],
"coupon_lines": [
{
"code": "BEMVINDO10",
"discount": "10.00"
}
]
},
"customer": {
"id": 42,
"orders_count": 3,
"total_spent": "540.90",
"avg_order_value": "180.30",
"first_order_at": "2026-03-02T15:10:00Z",
"last_order_at": "2026-09-24T12:00:00Z",
"last_order_status": "completed",
"is_first_order": false
},
"links": {
"payment_url": "https://example.com/checkout/order-pay/1234/?pay_for_order=true&key=wc_order_example",
"order_received_url": "https://example.com/checkout/order-received/1234/?key=wc_order_example",
"my_account_url": "https://example.com/minha-conta/view-order/1234/",
"review_urls": ["https://example.com/produto/cafe-especial/#reviews"]
}
}

wc.order.refunded​

En cada reembolso, parcial o total. refund.full es true cuando el importe reembolsado llega al total del pedido.

Ejemplo de data
{
"order": {
"id": 1234,
"number": "1234",
"status": "refunded",
"currency": "BRL",
"total": "189.90",
"subtotal": "179.90",
"discount_total": "10.00",
"shipping_total": "20.00",
"total_tax": "0.00",
"payment_method": "pix",
"payment_method_title": "Pix",
"date_created": "2026-09-24T12:00:00Z",
"date_paid": null,
"customer_id": 42,
"customer_note": "",
"billing": {
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping": {
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping_lines": [
{
"method_id": "flat_rate",
"method_title": "SEDEX",
"total": "20.00"
}
],
"line_items": [
{
"product_id": 77,
"variation_id": 0,
"sku": "CAFE-500",
"name": "Café especial 500 g",
"quantity": 2,
"price": "89.95",
"total": "179.90",
"categories": ["Cafés"]
}
],
"coupon_lines": [
{
"code": "BEMVINDO10",
"discount": "10.00"
}
]
},
"refund": {
"id": 1235,
"amount": "189.90",
"reason": "Produto com defeito",
"full": true
},
"customer": {
"id": 42,
"orders_count": 3,
"total_spent": "540.90",
"avg_order_value": "180.30",
"first_order_at": "2026-03-02T15:10:00Z",
"last_order_at": "2026-09-24T12:00:00Z",
"last_order_status": "completed",
"is_first_order": false
},
"links": {
"payment_url": "https://example.com/checkout/order-pay/1234/?pay_for_order=true&key=wc_order_example",
"order_received_url": "https://example.com/checkout/order-received/1234/?key=wc_order_example",
"my_account_url": "https://example.com/minha-conta/view-order/1234/",
"review_urls": ["https://example.com/produto/cafe-especial/#reviews"]
}
}

wc.customer.created​

Cuando WooCommerce crea la cuenta de un cliente — en el checkout o en el registro de Mi cuenta. El contacto viene como wc_customer. Con la opción de usuarios activada, el mismo registro también envía wp.user.registered.

Ejemplo de data
{
"customer": {
"id": 42,
"email": "[email protected]",
"first_name": "Ana",
"last_name": "Souza",
"roles": ["customer"],
"registered_at": "2026-09-24T12:00:00Z",
"orders_count": 0
}
}

Suscripciones​

Con WooCommerce Subscriptions activo. El contacto es el suscriptor, y los line_items de la suscripción siguen la misma opción que los artículos del pedido.

EventoEn el panel
wcs.subscription.createdSuscripción creada
wcs.subscription.activatedSuscripción activada
wcs.subscription.payment_completePago de la suscripción aprobado
wcs.subscription.payment_failedFalló el pago de la suscripción
wcs.subscription.expiredSuscripción vencida
wcs.subscription.cancelledSuscripción cancelada

wcs.subscription.created​

Cuando la suscripción se crea en el checkout, con el pedido que la creó en order.

Ejemplo de data
{
"subscription": {
"id": 900,
"status": "pending",
"total": "59.90",
"currency": "BRL",
"billing_period": "month",
"billing_interval": 1,
"next_payment_at": "2026-10-24T12:00:00Z",
"customer_id": 42,
"billing": {
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"line_items": [
{
"product_id": 88,
"variation_id": 0,
"sku": "CLUBE-CAFE",
"name": "Clube do café",
"quantity": 1,
"price": "59.90",
"total": "59.90",
"categories": ["Assinaturas"]
}
]
},
"order": {
"id": 1234,
"number": "1234",
"status": "pending",
"currency": "BRL",
"total": "189.90",
"subtotal": "179.90",
"discount_total": "10.00",
"shipping_total": "20.00",
"total_tax": "0.00",
"payment_method": "pix",
"payment_method_title": "Pix",
"date_created": "2026-09-24T12:00:00Z",
"date_paid": null,
"customer_id": 42,
"customer_note": "",
"billing": {
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping": {
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping_lines": [
{
"method_id": "flat_rate",
"method_title": "SEDEX",
"total": "20.00"
}
],
"line_items": [
{
"product_id": 77,
"variation_id": 0,
"sku": "CAFE-500",
"name": "Café especial 500 g",
"quantity": 2,
"price": "89.95",
"total": "179.90",
"categories": ["Cafés"]
}
],
"coupon_lines": [
{
"code": "BEMVINDO10",
"discount": "10.00"
}
]
}
}

wcs.subscription.activated​

Cada vez que la suscripción queda activa.

Ejemplo de data
{
"subscription": {
"id": 900,
"status": "active",
"total": "59.90",
"currency": "BRL",
"billing_period": "month",
"billing_interval": 1,
"next_payment_at": "2026-10-24T12:00:00Z",
"customer_id": 42,
"billing": {
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"line_items": [
{
"product_id": 88,
"variation_id": 0,
"sku": "CLUBE-CAFE",
"name": "Clube do café",
"quantity": 1,
"price": "59.90",
"total": "59.90",
"categories": ["Assinaturas"]
}
]
}
}

wcs.subscription.payment_complete​

En cada pago aprobado de la suscripción, con el pedido de ese pago en order.

Ejemplo de data
{
"subscription": {
"id": 900,
"status": "active",
"total": "59.90",
"currency": "BRL",
"billing_period": "month",
"billing_interval": 1,
"next_payment_at": "2026-10-24T12:00:00Z",
"customer_id": 42,
"billing": {
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"line_items": [
{
"product_id": 88,
"variation_id": 0,
"sku": "CLUBE-CAFE",
"name": "Clube do café",
"quantity": 1,
"price": "59.90",
"total": "59.90",
"categories": ["Assinaturas"]
}
]
},
"order": {
"id": 1234,
"number": "1234",
"status": "pending",
"currency": "BRL",
"total": "189.90",
"subtotal": "179.90",
"discount_total": "10.00",
"shipping_total": "20.00",
"total_tax": "0.00",
"payment_method": "pix",
"payment_method_title": "Pix",
"date_created": "2026-09-24T12:00:00Z",
"date_paid": null,
"customer_id": 42,
"customer_note": "",
"billing": {
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping": {
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping_lines": [
{
"method_id": "flat_rate",
"method_title": "SEDEX",
"total": "20.00"
}
],
"line_items": [
{
"product_id": 77,
"variation_id": 0,
"sku": "CAFE-500",
"name": "Café especial 500 g",
"quantity": 2,
"price": "89.95",
"total": "179.90",
"categories": ["Cafés"]
}
],
"coupon_lines": [
{
"code": "BEMVINDO10",
"discount": "10.00"
}
]
}
}

wcs.subscription.payment_failed​

Cuando falla un pago de la suscripción, con el pedido que quedó sin pagar y links.payment_url para pagarlo.

Ejemplo de data
{
"subscription": {
"id": 900,
"status": "on-hold",
"total": "59.90",
"currency": "BRL",
"billing_period": "month",
"billing_interval": 1,
"next_payment_at": "2026-10-24T12:00:00Z",
"customer_id": 42,
"billing": {
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"line_items": [
{
"product_id": 88,
"variation_id": 0,
"sku": "CLUBE-CAFE",
"name": "Clube do café",
"quantity": 1,
"price": "59.90",
"total": "59.90",
"categories": ["Assinaturas"]
}
]
},
"order": {
"id": 1234,
"number": "1234",
"status": "failed",
"currency": "BRL",
"total": "189.90",
"subtotal": "179.90",
"discount_total": "10.00",
"shipping_total": "20.00",
"total_tax": "0.00",
"payment_method": "pix",
"payment_method_title": "Pix",
"date_created": "2026-09-24T12:00:00Z",
"date_paid": null,
"customer_id": 42,
"customer_note": "",
"billing": {
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping": {
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping_lines": [
{
"method_id": "flat_rate",
"method_title": "SEDEX",
"total": "20.00"
}
],
"line_items": [
{
"product_id": 77,
"variation_id": 0,
"sku": "CAFE-500",
"name": "Café especial 500 g",
"quantity": 2,
"price": "89.95",
"total": "179.90",
"categories": ["Cafés"]
}
],
"coupon_lines": [
{
"code": "BEMVINDO10",
"discount": "10.00"
}
]
},
"links": {
"payment_url": "https://example.com/checkout/order-pay/1234/?pay_for_order=true&key=wc_order_example",
"order_received_url": "https://example.com/checkout/order-received/1234/?key=wc_order_example",
"my_account_url": "https://example.com/minha-conta/view-order/1234/",
"review_urls": ["https://example.com/produto/cafe-especial/#reviews"]
}
}

wcs.subscription.expired​

Cuando la suscripción vence.

Ejemplo de data
{
"subscription": {
"id": 900,
"status": "expired",
"total": "59.90",
"currency": "BRL",
"billing_period": "month",
"billing_interval": 1,
"next_payment_at": "2026-10-24T12:00:00Z",
"customer_id": 42,
"billing": {
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"line_items": [
{
"product_id": 88,
"variation_id": 0,
"sku": "CLUBE-CAFE",
"name": "Clube do café",
"quantity": 1,
"price": "59.90",
"total": "59.90",
"categories": ["Assinaturas"]
}
]
}
}

wcs.subscription.cancelled​

Cuando la suscripción se cancela.

Ejemplo de data
{
"subscription": {
"id": 900,
"status": "cancelled",
"total": "59.90",
"currency": "BRL",
"billing_period": "month",
"billing_interval": 1,
"next_payment_at": "2026-10-24T12:00:00Z",
"customer_id": 42,
"billing": {
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"line_items": [
{
"product_id": 88,
"variation_id": 0,
"sku": "CLUBE-CAFE",
"name": "Clube do café",
"quantity": 1,
"price": "59.90",
"total": "59.90",
"categories": ["Assinaturas"]
}
]
}
}

WordPress​

EventoEn el panel
wp.user.registeredUsuario registrado
wp.user.updatedPerfil del usuario actualizado

El contacto es el usuario (wp_user), con el teléfono de facturación de WooCommerce o el que guardó el inicio de sesión por código de Joinotify. Un usuario sin teléfono llega como evento, pero no crea contacto.

wp.user.registered​

Cuando alguien se registra en el sitio. El evento sale al final del registro, después de que WooCommerce y los formularios de perfil guardaron el teléfono y el nombre.

Ejemplo de data
{
"user": {
"id": 42,
"email": "[email protected]",
"first_name": "Ana",
"last_name": "Souza",
"roles": ["customer"],
"registered_at": "2026-09-24T12:00:00Z"
}
}

wp.user.updated​

Cuando el usuario cambia su teléfono, nombre, apellido o correo, o marca o desmarca la preferencia de marketing en Mi cuenta. changed dice qué cambió: phone, first_name, last_name, email, marketing_consent.

Ejemplo de data
{
"user": {
"id": 42,
"email": "[email protected]",
"first_name": "Ana",
"last_name": "Souza",
"roles": ["customer"],
"registered_at": "2026-09-24T12:00:00Z"
},
"changed": ["phone"]
}

Formularios​

EventoEn el panel
form.submittedFormulario enviado

form.submitted​

En cada envío de un formulario de WPForms o Elementor Pro que tenga teléfono o correo — sin ninguno de los dos, no se envía nada. Todos los campos del formulario van en fields, con la etiqueta como clave (en minúsculas, sin tildes, los espacios pasan a _). form.plugin es wpforms o elementor; entry_id viene vacío en Elementor, y page_url es la página desde la que se envió el formulario, cuando el navegador la informa.

El teléfono es el campo de tipo teléfono o, si no hay, el primero cuya etiqueta habla de teléfono, móvil o WhatsApp. El contacto es el usuario con sesión iniciada (wp_user) o, sin sesión, un lead.

Ejemplo de data
{
"form": {
"plugin": "wpforms",
"id": "12",
"title": "Fale conosco"
},
"entry_id": "345",
"fields": {
"name": "Ana Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"message": "Quero um orçamento"
},
"page_url": "https://example.com/contato"
}

Flexify Checkout​

Con la recuperación de carritos de Flexify Checkout activa. El contacto de un carrito es siempre un lead, identificado por el correo o el teléfono; Joinotify encuentra al cliente que ya existe por el teléfono.

EventoEn el panel
fcrc.lead.collectedContacto capturado en el checkout
fcrc.cart.abandonedCarrito abandonado
fcrc.cart.recoveredCarrito recuperado
fcrc.cart.lostCarrito perdido

fcrc.lead.collected​

Cuando Flexify Checkout captura el contacto de quien está en el checkout.

Ejemplo de data
{
"cart": {
"id": 555,
"total": "189.90",
"currency": "BRL",
"recovery_url": "https://example.com/checkout/?recovery_cart=555",
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321"
}
}

fcrc.cart.abandoned​

Cuando Flexify Checkout marca el carrito como abandonado. Si un pedido quedó sin pagar, viene en order, con links.payment_url.

Ejemplo de data
{
"cart": {
"id": 555,
"total": "189.90",
"currency": "BRL",
"recovery_url": "https://example.com/checkout/?recovery_cart=555",
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321"
},
"order": {
"id": 1234,
"number": "1234",
"status": "pending",
"currency": "BRL",
"total": "189.90",
"subtotal": "179.90",
"discount_total": "10.00",
"shipping_total": "20.00",
"total_tax": "0.00",
"payment_method": "pix",
"payment_method_title": "Pix",
"date_created": "2026-09-24T12:00:00Z",
"date_paid": null,
"customer_id": 42,
"customer_note": "",
"billing": {
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping": {
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping_lines": [
{
"method_id": "flat_rate",
"method_title": "SEDEX",
"total": "20.00"
}
],
"line_items": [
{
"product_id": 77,
"variation_id": 0,
"sku": "CAFE-500",
"name": "Café especial 500 g",
"quantity": 2,
"price": "89.95",
"total": "179.90",
"categories": ["Cafés"]
}
],
"coupon_lines": [
{
"code": "BEMVINDO10",
"discount": "10.00"
}
]
},
"links": {
"payment_url": "https://example.com/checkout/order-pay/1234/?pay_for_order=true&key=wc_order_example",
"order_received_url": "https://example.com/checkout/order-received/1234/?key=wc_order_example",
"my_account_url": "https://example.com/minha-conta/view-order/1234/",
"review_urls": ["https://example.com/produto/cafe-especial/#reviews"]
}
}

fcrc.cart.recovered​

Cuando el carrito se recupera, con el pedido en order.

Ejemplo de data
{
"cart": {
"id": 555,
"total": "189.90",
"currency": "BRL",
"recovery_url": "https://example.com/checkout/?recovery_cart=555",
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321"
},
"order": {
"id": 1234,
"number": "1234",
"status": "pending",
"currency": "BRL",
"total": "189.90",
"subtotal": "179.90",
"discount_total": "10.00",
"shipping_total": "20.00",
"total_tax": "0.00",
"payment_method": "pix",
"payment_method_title": "Pix",
"date_created": "2026-09-24T12:00:00Z",
"date_paid": null,
"customer_id": 42,
"customer_note": "",
"billing": {
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping": {
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"shipping_lines": [
{
"method_id": "flat_rate",
"method_title": "SEDEX",
"total": "20.00"
}
],
"line_items": [
{
"product_id": 77,
"variation_id": 0,
"sku": "CAFE-500",
"name": "Café especial 500 g",
"quantity": 2,
"price": "89.95",
"total": "179.90",
"categories": ["Cafés"]
}
],
"coupon_lines": [
{
"code": "BEMVINDO10",
"discount": "10.00"
}
]
}
}

fcrc.cart.lost​

Cuando Flexify Checkout da el carrito por perdido.

Ejemplo de data
{
"cart": {
"id": 555,
"total": "189.90",
"currency": "BRL",
"recovery_url": "https://example.com/checkout/?recovery_cart=555",
"first_name": "Ana",
"last_name": "Souza",
"email": "[email protected]",
"phone": "+5511987654321"
}
}

Eventos personalizados​

Tu código puede enviar eventos propios con joinotify_track(). El nombre empieza con custom. seguido de una a tres partes de letras minúsculas, números y _ — custom.quote.requested — y el data es lo que pases. En el disparador, elige Evento personalizado y escribe el nombre. Cómo enviarlos está en Conectar WordPress y WooCommerce.

Enviar por la API​

Los eventos llegan por POST /site-events, en lotes de hasta 100, y solo con la clave de un sitio conectado. Cada evento puede llevar hasta 64 kB de data y contact; un evento no válido se rechaza solo, sin tumbar el lote. Los detalles están en la referencia de la API.