Link records


Linking properties and addresses to activities, appointments or tasks

If you create or edit an address or property using a form, and you create or edit an activity, task or appointment using the same form, these will be linked automatically. The form automatically links these to the property and address records that have been loaded into the form or created by it.

> Search criteria are automatically linked to the address created or edited by the form.

---

Link property & address

To link an address and property record created or edited by the form, for example an owner or tenant, you must add the “Record Link” field to the form. It does not matter whether this field has the “Property” or “Address” field type.

The following record links can be selected in the form:

It makes sense to lock the record link field using the "Default value" or "Enforced values" function and to hide it in the form using the "Hide field" function.

The field can accept the following values:

  • estate:address:owner = Link property & owner
  • estate:address:buyer = Link property & buyer
  • estate:address:renter = Link property & tenant
  • estate:address:tenant = Link property & occupant/user
  • estate:address:contactPerson = Link property & estate agent as contact person
  • estate:address:contactPersonAll = Link property & contact persons
  • estate:address:interested = Link property & address as prospective buyer
  • calendar:address = Link appointment & address
  • calendar:estate = Link appointment & property
  • agentsLog:address = Link activity & address
  • agentsLog:estate = Link activity & property
  • address:estate:tipp = Link tipster & property
  • address:searchcriteria = Link address & search criteria
  • address:estate:offer = Link address & property listing
  • address:estate:contacted = Link contacted address & property
  • project:task:customer = Link project & task in customer database
  • project:agentslog = Link project & activity
  • project:calendar = Link project & appointment
  • project:address = Link project & address
  • project:estate = Link project & property
  • task:address = Link task & address
  • task:estate = Link task & property

Writing values between records

Sometimes a value from the form should not go into the main record, but into a linked one — e.g. the buyer’s purchase price offer into the address field instead of the property field.

Setup: Form settings → Further settings“Write values”.

There, you define the source field → target module → target field. Upon submission, propform copies the value.

Example: Purchase price offer pattern

  • In the form: “Purchase price offer” input field (property)
  • Write values rule: copy this value to an address field “offered purchase price” → this way, the offer is stored in the buyer’s record and can be evaluated/compared later

Use Cases:

  • Set evaluation status (“very good” / “average” / “poor”) in the record, triggered by an auto-submit form (see Auto-Submit & Routing)
  • Set lead status (“New” / “Qualified” / “Closed”)
  • Custom tags for sales workflows

> 💡 Full macro expansion is active in the target values — you can also calculate dynamic values (e.g. _calculate(...)) and write them to the target field.


Address Duplicate Check

Instead of creating a new address every time (even if the enquirer is already in the system), propform checks before creation whether the address already exists — and then uses it.

Setup: Form settings → Further settings → Enable “Address Duplicate Check” → Select fields.

Important: Fields are ADDITIVE

If you select multiple fields, ALL must match for a duplicate to be detected (AND operator). Example:

  • Email + First name + Surname → Duplicate only if all three are exactly the same
  • Email only → Duplicate if email matches (much more lenient)

Recommendation: Usually use only email. Multiple fields can quickly become too strict.

Special case: Custom user field as duplicate source

You can also use your own custom fields (e.g. ‘Contact person’ as a user selection field in the address) as a duplicate check field. In the form, the user selects the contact person via a single-select field → the duplicate check finds the address where this contact person is stored → no new address is created; instead, the existing one is linked.

Use case: Anne works in the back office; the form should ‘look up’ the contact person stored in the record rather than creating a new address.

---

Load linked records automatically

If a form receives only one address as a URL parameter (?address[ID]=...), it can automatically load the linked property from the address record into the form — e.g. to edit the most recently linked property.

Setup: Form settings → under “Edit property and address” → enable “Load property record” → Selection: first / second / third linked property.

> ⚠️ Caution regarding the acquisition workflow: If the address has already been linked to a property from a previous marketing campaign, the form will load that old property instead of creating a new one. This is usually not the desired behaviour for acquisition or initial appointment forms. > > If you want to be sure: Do not activate “Load property record”, but manually include the property UUID in the link.


Multiple records in a single form

By default, a propform form can process one address + one property. For more complex cases (multiple buyers, multiple owners, solicitor + administration, etc.), there is the Overview + Editing pattern with recursive address loops.

📖 Full guide with code examples: Linking multiple records to a single form.