§Use caseOne operator

Offer viewings while they're warm

Enquiries all look the same in an inbox. A funded buyer with no chain who could view on Thursday sits in the same list as somebody fishing for a valuation, and whoever answers first usually gets the viewing. Below is the version I build: a readiness score with its reasons attached, two slots taken from your real diary, and a brief waiting for the negotiator before anyone has opened the inbox.

The real canvas, four nodes of it
The real canvas, four nodes of it
Four nodes of the workflow on the n8n canvas: read the viewing diary, propose two viewing slots, hold a tentative viewing, and the switch that decides whether the slots go out automatically.
All 21 nodes, and the setup written on the canvas beside them
All 21 nodes, and the setup written on the canvas beside them
The whole property enquiry workflow on the n8n canvas, twenty-one nodes with the setup written on it as sticky notes.

The questionHow do I qualify property enquiries and book viewings without reading every one myself?

How the working version is put together

  1. Take the enquiry through a locked webhook

    The form or portal feed posts straight into the workflow, and the webhook is locked with header authentication. Without that header, an open endpoint that calls a model is an invitation to spend your OpenAI credit on somebody else's traffic. Your form has to send the header on every post, which is the one setup step people miss.

  2. Flatten the enquiry into one fixed shape

    Portals and website forms name their fields however they like. A Code node writes one record instead, with the phone number normalised to E.164 so it is usable later. Everything downstream reads that record, so a portal renaming a field never breaks the rest.

  3. Score readiness, not interest

    An extractor with a model behind it reads the message and returns the transaction type, the budget, bedrooms, the areas they named, their timeframe, their finance position, their chain position and a readiness score. Interest is easy to fake and readiness is not. A cash buyer with a date is a different thing from somebody browsing on a Sunday, and the score is what separates them.

  4. Fail to a human, never to silence

    When the model call fails, the enquiry takes a fallback path and is marked UNSCORED. It still reaches the sheet and it still reaches your negotiator. This is the branch most builds leave out, and it decides whether a bad minute at an API costs you a score or costs you a buyer.

  5. Match against your own stock

    Your available properties come from a Google Sheet, and the matching is deterministic rather than another model call. Each property scores against the brief on budget, bedrooms, area and type. If they asked about a specific listing, that one goes straight to the top, because arguing with a buyer about what they meant is a poor way to open a relationship.

  6. Offer two real slots and hold the first

    A calendar read proposes two free slots inside your working hours, and a tentative event goes in against the top match. Two is deliberate. One slot reads as take it or leave it, and a long list invites somebody to think about it and reply never. When the diary will not read, the slots are labelled as placeholders rather than presented as real availability.

  7. Brief the negotiator before anyone is messaged

    Slack gets the brief with the match reasons, and the applicant is upserted into HubSpot. The WhatsApp offer to the applicant ships switched off. You read the first few briefs, decide you trust them, and then set one switch. Nobody outside your office hears from this until you say so.

The kit, instant download

Qualify property enquiries with AI and book viewings with Google Calendar, WhatsApp and HubSpot

I sell this one as an n8n workflow you import and own: 21 working nodes, the setup written on the canvas, and a setup guide that walks every node so you can hand it to an AI assistant if you would rather not read it yourself. Instant download, no subscription. If you would rather I set it up around your own forms and your own diary, start a brief instead.

Open the kit on Etsy

What actually loses you the viewing

It is rarely the property and it is rarely the fee. Somebody enquired on Thursday evening, heard nothing until Monday, and by then had booked two viewings with other agents. I am not going to quote you a speed-to-lead statistic, because I have not measured one on my own operations and I would only be borrowing somebody else's number.

What the sheet shows you after a fortnight is your own version of it: which enquiries scored high, which of those got a viewing, and how long each one waited.

The parts that break

The stock tab is the first one. If it is empty or unreadable the workflow returns a NO_STOCK verdict and still puts the enquiry in front of you, rather than pretending it found nothing suitable. An automation that silently reports no matches when it simply could not read the sheet is worse than one that stops.

The diary is the second. Calendar permissions lapse quietly, and a read that fails does not announce itself. So the fallback labels its slots as placeholders. An applicant offered a slot that was never actually free is a worse outcome than an applicant asked to suggest a time.

WhatsApp is the third, and it catches every build. Outside a 24-hour window from the applicant's last message, only a pre-approved template gets delivered. Getting one approved takes Meta a little while, so plan for the automatic offer to be a template with variables rather than freely worded.

What it costs to run

The model call is small, because one enquiry is a short prompt. What you pay for the automation platform will overtake the inference cost long before volume does. WhatsApp is the line worth checking, since Meta prices conversations rather than messages and the rate varies by country.

The real cost is attention. Somebody has to read the sheet occasionally and move the threshold. Any quote that assumes nobody looks at it again is a quote for something you switch off in a quarter.

Why take this from me

Because I build and run this class of system daily rather than describing it. The work below links to things that are actually running, including an operational brain that is open source, so you can read how I build before paying me anything.

The fair objection is that my proof is my own operation rather than a roster of agencies, and there are no reviews on this site because I do not have any yet. I would rather write that down than have you notice it.

Read this before you spend anything

Who should not buy this

If you take a handful of enquiries a week and you answer all of them the same day, this buys you nothing and I would say so rather than take the work. The value here is triage, and triage only matters once more arrives than one person can work through properly.

If your available properties do not live in a spreadsheet, the matching half has nothing to read and you are buying the scoring on its own. And if you need a direct integration with a specific portal rather than a feed that posts to a webhook, that is a different build and you should ask me about it instead.

What lands on your desk

  • I set it up inside your own n8n, on your own forms and your own calendar, under your own credentials
  • I write your stock sheet and your working hours into the settings with you, because the matching is only as good as that sheet
  • The UNSCORED fallback and the NO_STOCK verdict wired in, so a failure costs you a score and never an enquiry
  • A Google Sheet log of every enquiry with its readiness score and its reasons, which is how you move the threshold on evidence
  • A walkthrough I write down, so the next person to touch this is not dependent on me

Questions this page answers

Does it message the applicant automatically?
Not until you turn it on. The WhatsApp offer ships switched off, so you can read the first few negotiator briefs in Slack before anything reaches an applicant.
How does it know which properties to offer?
It reads your available properties from a Google Sheet and scores each one against the brief on budget, bedrooms, area and type. If the enquiry named a specific listing, that one goes to the top.
What happens when the calendar cannot be read?
The two slots are labelled as placeholders rather than offered as real availability, so nobody is given a time that was never free.
What if the scoring model fails?
The enquiry is marked UNSCORED. It still reaches the sheet and it still reaches your negotiator.

Want this built and handed over working?

One line is enough to start. You get an honest answer on fit, and a number rather than a discovery call.

Start a brief