Ir al contenido

Webhook, enlaces y redirección

PLUS

Un front end generado de forma estática necesita saber cuándo han cambiado sus inmuebles para volver a generar las páginas afectadas. Para ello, WP-ImmoMakler llama a una dirección de su front end después de cada transferencia de su software CRM: el webhook. Las otras dos opciones de esta página se encargan de que los enlaces y los visitantes que aún llegan a WordPress acaben en el front end.

Encontrará todos los ajustes en el back end de su sitio web (wp-admin), en WP-ImmoMakler → Integraciones → Headless.

Active Enviar webhook e introduzca en Dirección del webhook la dirección que su front end ofrece para las notificaciones, por ejemplo https://www.su-dominio.es/api/revalidate/. Introduzca la dirección exactamente como la responde su front end, con barra final en el caso del starter de Astro: si el front end redirige, por ejemplo de una dirección sin barra final a otra con ella, WP-ImmoMakler no sigue la redirección y anota en el log “Headless webhook refused by the front end” junto con el estado de la redirección, por ejemplo 308. WP-ImmoMakler recopila los cambios y los envía agrupados: tras una importación que crea, modifica o elimina muchos inmuebles, se envía un único mensaje en cuanto transcurren sin más cambios los segundos indicados en “Wartezeit” (etiqueta en alemán, aún sin traducir) (por defecto: 60). Un inmueble publicado o eliminado manualmente se notifica del mismo modo.

El mensaje es un POST con un documento JSON:

{
"event": "properties.changed",
"api_version": 1,
"site": "https://wordpress.su-dominio.es/",
"api_base": "https://wordpress.su-dominio.es/wp-json/immomakler-headless/v1",
"sent_at": "2026-10-12T18:30:00+00:00",
"delivery_id": "6f1c…",
"import_counts": { "files_imported": 1, "created": 2, "updated": 14, "deleted": 1 },
"created": [ { "objektnr_extern": "WP1240", "post_id": 4711, "title": "…", "frontend_url": "https://www.su-dominio.es/inmuebles/…/" } ],
"updated": [ … ],
"deleted": [ { "objektnr_extern": "WP1101", "post_id": 0, "title": "…" } ],
"full_rebuild_hint": false
}

created, updated y deleted nombran los inmuebles afectados mediante su número de objeto; un front end vuelve a generar las páginas indicadas o inicia una compilación completa. full_rebuild_hint es true cuando ha cambiado algo que no se puede asignar a un único inmueble, por ejemplo ajustes que afectan a todas las páginas. Un front end debería responder con una compilación completa.

Cada mensaje lleva las cabeceras X-ImmoMakler-Event, X-ImmoMakler-Delivery (un identificador único), X-ImmoMakler-Timestamp (hora Unix del envío) y X-ImmoMakler-Signature. La firma es sha256= seguido del HMAC-SHA256 de marca de tiempo.cuerpo, con el secreto del webhook de los ajustes como clave. Su front end calcula el mismo valor sobre el cuerpo sin modificar y lo compara; si difiere o si la marca de tiempo tiene más de unos minutos de antigüedad, descarta el mensaje.

import { createHmac, timingSafeEqual } from 'node:crypto';
const expected = 'sha256=' + createHmac('sha256', secret).update(`${timestamp}.${rawBody}`).digest('hex');
const valid = timingSafeEqual(Buffer.from(expected), Buffer.from(signatureHeader));

WP-ImmoMakler genera el secreto al abrir los ajustes por primera vez; con Generar nuevo secreto lo sustituye, y a partir de entonces el front end también debe conocer el nuevo secreto.

Si su front end no responde con un estado 2xx o no responde en absoluto, WP-ImmoMakler repite la entrega después de 1, 5 y 30 minutos, y de 2 y 6 horas. Después desiste del mensaje y lo anota en el registro immomakler-headless-*.log del directorio de importación; el siguiente cambio empieza de nuevo. El estado de la última entrega se ve en los ajustes, en Webhook, y con Enviar mensaje de prueba envía un mensaje con el evento ping para comprobar la conexión.

Con Reescribir los enlaces hacia el frontend, todos los enlaces que WordPress genera hacia un inmueble, el listado de inmuebles o una categoría apuntan al front end: en los correos de las consultas de contacto y de las alertas de búsqueda, en los feeds, en los menús y en los enlaces “Ver” del back end. La propia interfaz sigue indicando la dirección de WordPress en wp_url.

En cuanto el front end sirva las páginas de los inmuebles, active Redirigir a los visitantes al frontend. Cuando un visitante o un buscador accede en su sitio web de WordPress a un inmueble, al listado de inmuebles o a una categoría, WP-ImmoMakler responde con una redirección permanente (301) a la página correspondiente del front end; los parámetros de búsqueda del listado de inmuebles se conservan. Así, las direcciones indexadas en los buscadores mantienen su valor.

No se redirigen el dosier en PDF, la imagen de vista previa para redes sociales, el código QR, los iframes de galería y de mapa, los feeds para Kyero y el catálogo de Facebook, las vistas previas ni los usuarios con sesión iniciada que pueden editar entradas. Una dirección con el parámetro ?noredirect también permanece en WordPress.