🧩 Macros — propform y onOffice

Las macros son marcadores de posición que se sustituyen por valores reales en tiempo de ejecución, por ejemplo, el nombre de pila de una dirección cargada, el UUID de un inmueble o la fecha actual.

Contenido

---

¿Dónde se pueden utilizar las macros?

Posición ¿Macros activas?
Encabezado / Subencabezado del formulario
Etiqueta, nota, marcador de posición y información sobre herramientas del campo
Valor predeterminado, valor obligatorio
Campos de descripción (tipo especial) ✅ — incl. macros propform como _pfButton, _pfLink
Comentario de actividad
Asunto y descripción de la tarea
Destinatario del correo electrónico, CC, CCO
Asunto y cuerpo del correo electrónico
URL de la página de agradecimiento
Valores de destino de «Escribir valores»
Nombre del campo de carga de archivos
URL del botón de enlace
Nombre personalizado de descarga de archivo

✅ |

Macros estándar de onOffice |

| Encontrarás la lista oficial completa de macros en la Ayuda de onOffice.

> ⚠️ Atención a la ortografía: onOffice es inconsistente en el uso de mayúsculas y minúsculas. Las macros de direcciones suelen estar en CamelCase (primera letra mayúscula), mientras que las de inmuebles están en minúsculas. Sigue al pie de la letra la ortografía oficial; de lo contrario, la macro no se resolverá.

Macros de dirección (CamelCase)

Macro Significado
_Name Apellido
_Vorname Nombre
_Email Dirección de correo electrónico predeterminada
_Email(Art,n) Correo electrónico según tipo (empresarial/privado) y cargo
_Strasse Calle
_PLZ Código postal
_Ort Localidad/ciudad
_Telefon Número de teléfono predeterminado
_AdrDatensatznummer Número de registro de la dirección
_Uuidaddress UUID de la dirección
_Sonstige1 Contenido del campo «Otros 1»

Macros inmobiliarias (pequeñas)

Macro Significado
_objektart Tipo de inmueble (casa, piso, etc.)
_objekttyp Tipo de propiedad (vivienda unifamiliar, adosada, etc.)
_ort Localidad de la propiedad
_strasse Calle (solo si la opción «Compartir dirección» está activa en la propiedad)
_hausnummer Número de casa (solo si la opción «Compartir dirección» está activa en el inmueble)
_Objstrasse Calle — omite «No compartir dirección» (truco, solo para calle + número de casa)
_Objhausnummer Número de casa — omite «No compartir dirección»
_plz Código postal
_kaufpreis Precio de compra
_wohnflaeche Superficie habitable
_flaeche Superficie estándar por tipo de objeto
_ObjDatensatznummer Número de registro del inmueble
_Uuidestate UUID del inmueble

Macros de fecha y hora

Macro Significado
_Datum(format) Formato de fecha variable — _Datum(DD.MM.YYYY)
_KDatum Fecha actual (p. ej., 26.04.2026)
_Uhrzeit(Länge, Format, Zone) Hora actual

Macros de función (condiciones, cálculos)

Macro Ejemplo Significado
_calculate(...) _calculate([kaufpreis]*3) Cálculo matemático
_ifEmpty(_makro;"Text1";"Text2") _ifEmpty(_Sonstige1;"Standard";_Sonstige1) Si la macro está vacía → Texto1, si no Texto2 (también escrito como _if_empty(...))
_if(Bedingung;"Text1";"Text2") _if([objektart]="haus";"Haus-Anfrage";"Andere") Salida condicional
DATEADD([feld];n;"d") _calculate(DATEADD(TODAY();14;"d")) Sumar n días a la fecha (d/w/y)
TODAY() _calculate(TODAY()) Hoy

> 💡 _ifEmpty con campos de usuario — Patrón de múltiples oficinas: Si cada ubicación/oficina tiene su propio enlace de valoración, código telefónico o similar, crea un campo personalizado en el usuario (p. ej., Benutzerzusatz1Name) y utiliza: _ifEmpty(_OBJBetreuer_Benutzerzusatz1Name;"https://fallback-link.de";_OBJBetreuer_Benutzerzusatz1Name) — si el responsable tiene el campo vacío, se aplica el valor por defecto. Más breve y legible que _calculate(IF([feld]=null;"a";"b")) para comprobaciones de vacío puras.

Macros de usuario (empleado que realiza la acción)

Macro Significado
_UserAdr* Marcador de posición para cualquier macro de dirección del usuario actual — p. ej., _UserAdrName, _UserAdrEmail, _UserAdrTelefon
_Benutzervorname / _Uservorname Nombre del usuario
_Benutzername / _Username Apellidos del usuario
_Benutzeremail / _Useremail Correo electrónico del usuario

---

Macros específicas de propform

Estas macros están disponibles solo en propform.io, no en la versión estándar de onOffice. Funcionan en formularios, así como en actividades, tareas y correos electrónicos creados a través de propform (modo de resolución de macros «alternativo» en onOffice).

Botones y enlaces en campos de descripción

Macro Descripción
_pfButton("Label", "URL", "Style", "Target") Botón con estilo completo en diseño propform. Estilos: rounded, rounded-0, rounded-pill. Destino: _parent o _blank.
_pfLink("URL", "Label", "Target") Hipervínculo simple. Si no se especifica ningún texto, se utilizará la URL como texto del enlace.

Ejemplos:

_pfButton("Weiter zum Formular", "https://example.com", "rounded-pill", "_blank")
_pfLink("https://example.com", "Hier klicken", "_blank")

Macros de criterios de búsqueda

Macro Descripción
_pfGetSearchCriteriaInformation Muestra el criterio de búsqueda completo en forma de tabla.
_pfGetSearchCriteriaField(Feldname) Muestra un valor concreto del criterio de búsqueda, p. ej., _pfGetSearchCriteriaField(objektart)
_pfGetSearchCriteriaUUID UUID cifrado del criterio de búsqueda (para enlaces seguros entre formularios, p. ej., en los botones «Editar» y «Desactivar» de los correos de resumen)

> 💡 Patrón de autoservicio para perfiles de búsqueda: Las tres macros, junto con _pfButton(...) y el bucle _bScRek_("status:1"), conforman un flujo de trabajo de autoservicio completo: el correo de resumen muestra todos los perfiles de búsqueda activos + botones de un solo clic para editarlos o desactivarlos. Configuración completa en Editar/desactivar perfiles de búsqueda.

Macros de ruta de archivo (para imágenes/firmas en plantillas PDF)

Macro Descripción
_dateipfadAdressfeld(<Feldname>;<Breite>;<Höhe>;<Einheit>;<Typ>) Inserta la imagen de un campo de archivo de direcciones en la plantilla PDF (típico para firmas, escaneos de documentos de identidad)
_dateipfadObjektfeld(<Feldname>;<Breite>;<Höhe>;<Einheit>;<Typ>) Análogo para campos de archivo de inmuebles

Parámetros:

  • Nombre del campo: nombre interno de onOffice del campo del archivo (p. ej., unterschrift_kaeufer)
  • Ancho: valor en la unidad seleccionada (p. ej., 400 — valor predeterminado para firmas)
  • Altura: valor fijo o variabel para altura automática
  • Unidad: px o mm
  • Tipo: mail o html

Ejemplo — Insertar la firma del comprador:

_dateipfadAdressfeld(unterschrift_kaeufer;400;variabel;mail;html)

Patrón de firma múltiple para varios compradores/propietarios:

Dentro del bucle de direcciones (_buyerbrek_1__buyererek_1_, ver más abajo), puedes insertar un campo de archivo con la firma de cada comprador. Si no todos los compradores han firmado aún, siempre envuélvelo con _ifEmpty(...); de lo contrario, se creará un espacio en blanco en el PDF:

_buyerbrek_1_
_BuyerVorname _BuyerName
_ifEmpty(unterschrift_kaeufer;"";"_dateipfadAdressfeld(unterschrift_kaeufer;400;variabel;mail;html)")
_buyererek_1_

> 💡 Disponibilidad de los campos de archivo: Las macros de ruta de archivo solo funcionan si el archivo se encuentra en un campo de archivo de onOffice del registro, no en la pestaña general «Archivos». El campo de archivo debe crearse en la administración de onOffice antes de su uso.


Macros de actividades y citas

Macro Descripción
_pfGetAgentslogInformation Muestra en forma de tabla la actividad que se acaba de escribir a través de propform (tipo de acción, clase de acción, comentario)
_pfGetSellingPriceOffer Muestra la oferta de precio de compra realizada por el interesado
_pfGetCalendarUUID UUID cifrado de la cita actual (dentro del bucle del calendario)

Enlaces profundos a onOffice-enterprise

Macro Descripción
_getAddressLink Enlace profundo directo al registro de datos de contacto en onOffice — solo funciona para usuarios que hayan iniciado sesión
_getEstateLink Enlace profundo directo a la propiedad

Boletín informativo y acuerdo

Macro Descripción
_NewsletterDOILink Macro estándar de onOffice: enlace de confirmación para el doble opt-in del boletín informativo. Si el campo del boletín informativo está configurado en 3 (DOI pendiente) y el usuario hace clic, se establece en 1 (confirmado). Uso en el correo electrónico de confirmación del boletín informativo.
_AgreementLink(Parameter1,Parameter2,...) Macro propform para el enlace de acuerdo (contrato/información sobre el derecho de desistimiento/protección de datos). Los parámetros controlan qué contenidos se muestran al abrir el acuerdo. Parámetros posibles: URL, Vertrag, Belehrung, Musterwiderruf, Datenschutzerklärung, Beginn, Eigentum, Finanzierung, Newsletter.
_NewsletterLink Estándar de onOffice: enlace de suscripción/cancelación de suscripción para la lista de distribución del boletín (al hacer clic se abre la página de suscripción/cancelación de suscripción en onOffice).

> 💡 Consejo sobre el enlace de acuerdo: en lugar de parámetros fijos en la plantilla de correo, puedes mantener un campo personalizadoen el inmueble (p. ej., agreement_link_parameter) y, mediante la fórmula _calculate(IF([provisionsfrei]=null;"Vertrag,Belehrung,Musterwiderruf,Datenschutzerklärung,Beginn,Eigentum,Finanzierung,Newsletter,URL";"URL")), proporcionar dinámicamente diferentes parámetros —p. ej., sin contrato/revocación en el caso de inmuebles sin comisión—. La plantilla de correo electrónico solo llamará entonces a _AgreementLink(_agreement_link_parameter).

Modo de resolución de macros de dirección «alternativo»

En la configuración de correo electrónico de propform existe el ajuste «Resolución de macros de dirección: normal vs. alternativa»:

Modo Efecto
Normal (Predeterminado) _Vorname, _Name, _Email, etc., se resuelven en el destinatario del correo
Alternativo La resolución se realiza en la dirección del formulario (= dirección que acaba de procesar el formulario)

¿Cuándo se utiliza la «alternativa»? Siempre que el correo se envíe a alguien que no sea el solicitante —por ejemplo, una notificación interna a contabilidad sobre una nueva dirección. De lo contrario, el correo contendría los datos de contabilidad en lugar de los del solicitante.


Bucles — Bucle de criterios de búsqueda

Con _bScRek_ y _eScRek_ se pueden recorrer todos los criterios de búsqueda de una dirección y generar macros para cada uno de ellos, de forma análoga a los conocidos bucles del libro de agentes inmobiliarios en onOffice.

Sintaxis

_bScRek_("filter")
   ... beliebige Suchkriterien-Makros ...
_eScRek_

Filtro opcional

Con el argumento de filtro, puedes restringir qué criterios de búsqueda se tienen en cuenta:

_bScRek_("status:1")

→ Solo criterios de búsqueda activos (estado = 1).

Ejemplo completo

_bScRek_("status:1")
Objektart: _pfGetSearchCriteriaField(objektart)
Ort: _pfGetSearchCriteriaField(ort)
Wohnfläche: _pfGetSearchCriteriaField(wohnflaeche)
Link: _pfLink("https://example.com?id=_pfGetSearchCriteriaUUID", "Suchkriterium öffnen")
_eScRek_

---

Bucles — Bucle de calendario

Con _bCalendarRek_ y _eCalendarRek_ se pueden recorrer las citas del periodo especificado, por ejemplo, para mostrar las franjas horarias libres en un formulario de reserva.

Sintaxis

_bCalendarRek_("startDate:YYYY-MM-DD;endDate:YYYY-MM-DD;weitere:filter")
   ... beliebige onOffice-Termin-Makros + _pfGetCalendarUUID ...
_eCalendarRek_

Filtro de ejemplo

_bCalendarRek_("startDate:2026-02-25;endDate:2026-12-31;subject:like:%TERMIN-SLOT%;estate.id:_Id")

→ Todas las citas del periodo cuyo asunto contenga «TERMIN-SLOT» y que estén vinculadas a la propiedad actual.

Más información

Encontrarás instrucciones detalladas con indicaciones para copiar y pegar en el blog: Guía de filtros de bucle de calendario.

---

Bucles — Bucle de direcciones (compradores / propietarios)

Con las macros de bucle de direcciones se puede recorrer todos los compradores o propietarios vinculados a la propiedad; un caso de uso típico es un formulario de resumen que enumera a todas las personas relacionadas con una propiedad, además de botones de «Editar» y «Vincular a otros».

Sintaxis

Bucle Inicio Fin
Comprador _buyerbrek_1_ _buyererek_1_
Propietario _ownerbrek_1_ _ownererek_1_

> Dentro del bucle, utiliza las pre-macros _Buyer* o _Owner* (véase la siguiente sección). _1_ es un contador interno del bucle; solo lo debes incrementar si necesitas varios bucles independientes de compradores/propietarios en el mismo campo de descripción.

Ejemplo: enumerar todos los compradores de una propiedad

_buyerbrek_1_
_BuyerVorname _BuyerName, _BuyerStrasse, _BuyerPLZ _BuyerOrt, _BuyerEmail
_buyererek_1_

📖 Tutorial completo con formulario de resumen y edición, y ejemplos de código: Conectar varios registros con un formulario


Pre-macros (acceder a registros vinculados)

Las pre-macros acceden a registros de direcciones vinculados a una propiedad inmobiliaria, normalmente dentro de plantillas PDF, correos electrónicos o bucles de direcciones.

Pre-macros para compradores

| Macro | Significado | | _BuyerVorname | Nombre del comprador | | _BuyerName | Apellidos del comprador | | _BuyerTitel | Título (p. ej., Dr.) | | _BuyerStrasse, _BuyerPLZ, _BuyerOrt | Dirección | | _BuyerTelefon, _BuyerEmail | Contacto | | _BuyerName2, _BuyerVorname2, _BuyerStrasse2, etc. | Datos maestros 2 (segunda dirección dentro del registro — si está activada en onOffice) | | _BuyerUuidaddress | UUID del registro de datos de la dirección del comprador (para enlaces entre formularios) | | _Kaeufer / _Buyer | Prefijo de pre-macro en plantillas PDF, p. ej., _KaeuferVorname (sin guión bajo entre el prefijo y el nombre del campo) |

Pre-macros para propietarios

Macro Significado
_OwnerVorname Nombre del propietario
_OwnerName Apellidos del propietario
_OwnerTitel Título
_OwnerStrasse, _OwnerPLZ, _OwnerOrt Dirección
_OwnerTelefon, _OwnerEmail Contacto
_OwnerName2, _OwnerVorname2, _OwnerStrasse2, etc. Datos maestros 2
_OwnerUuidaddress UUID del registro de datos de dirección del propietario
_Eigent / _Owner Prefijo de pre-macro en plantillas PDF, p. ej., _EigentVorname (sin guión bajo entre el prefijo y el nombre del campo)
_Mieter / _Renter Prefijo de pre-macro para inquilinos, p. ej., _MieterVorname

> 💡 Buyer/Owner vs. Kaeufer/Eigent: _Buyer*/_Owner* se utilizan principalmente dentro de bucles de direcciones y en el campo de descripción. _Kaeufer*/_Eigent* (con nombres en alemán) son las pre-macros clásicas de las plantillas PDF que onOffice entiende directamente. Para plantillas PDF → véase Los valores no se transfieren al PDF.

---

Acceso directo a la vinculación de tipo de contacto

En lugar de recorrer todas las direcciones vinculadas a un inmueble, también puedes dirigirte directamente a un tipo de contacto concreto, por ejemplo, al notario o a la administración de dicho inmueble:

_XAPKontaktart#NAME#FELD
Ejemplo Significado
_XAPKontaktart#Notar#Name Apellido de la dirección vinculada al tipo de contacto «Notario»
_XAPKontaktart#Notar#Email Correo electrónico del notario
_XAPKontaktart#Notar#Uuidaddress UUID del registro de datos de la dirección del notario
_XAPKontaktart#Verwalter#Telefon Teléfono de la administración
_XAPKontaktart#indMulti28075Select28075#Firma1 Nombre de la empresa de la dirección con el valor clave concreto (en el caso de opciones de tipo de contacto propias)

> 💡 Encontrar el valor clave: Encontrarás el nombre exacto del tipo de contacto en onOffice en Extras → Ajustes → Administración → Direcciones → Campo «Tipo de contacto» → junto a la opción correspondiente aparece el valor clave (a menudo indXXXX).


Precargar el UUID sin campo en el formulario

Aunque un formulario no contenga campos de dirección o de inmuebles, puedes «incluir» un registro de datos mediante un parámetro de URL; la actividad creada tras el envío quedará entonces vinculada a este registro.

https://formular.deine-domain.de/dokumenten-upload?address[ID]=_Uuidaddress&estate[Id]=_Uuidestate

Caso de uso: un formulario de carga de documentos para un inquilino (dirección) que, sin embargo, debe mantener la referencia a la propiedad; el archivo cargado y la actividad se vinculan entonces a ambos registros, aunque en el propio formulario solo haya campos de carga de archivos.

> 💡 También funciona para llamadas a _AgreementLink y en todos los lugares donde propform espera parámetros UUID.


Continuar a Emojis y símbolos para onOffice 👉