Multifamily Marketing

Training · Systems that run without you · 12 min

Your first agent: review alerts

A working build that watches every property's reviews and drafts the response for you to approve.

You know the review you found three weeks late. Four stars, reasonable tone, one line about the trash valet that a prospect read on a Tuesday night while comparing you to the lease-up down the street. Nobody responded. It's still sitting there.

This lesson builds the thing that stops that. A small agent that checks every property's reviews on a schedule, writes a draft response in your voice, and drops it in front of a human to approve. You'll have it running today. No developer, no procurement cycle, no "let me check with IT."

What you're actually building

Four moving parts, and none of them are exotic.

A watcher. Something that pulls new reviews from Google Business Profile, Yelp, ApartmentRatings, and your ILS profiles, on a schedule you set.

A classifier. An AI step that reads each review and tags it: sentiment, topic (maintenance, noise, office staff, pricing, pests, parking), and whether it contains anything that should never get an automated reply.

A drafter. A second AI step that writes the response, using your brand voice and the property's actual context.

A human gate. The draft lands in Slack or email with an approve button. Nothing posts without a person clicking. This part is non-negotiable, and I'll explain why in a minute.

Stack options, pick one: Make.com or Zapier if you want visual and fast, n8n if you want to self-host and stop paying per task. All three have Google Business Profile connectors and all three can call OpenAI or Anthropic directly. Make.com is the sweet spot for most marketing teams: cheap, visual, and it won't fall over when you have 28 properties firing at once.

Build it: step by step

Step 1: The trigger. In Make, start a new scenario with a Google Business Profile module set to "Watch Reviews." Connect the Google account that owns your locations. If your properties live under a location group, you'll pull them all at once. Set the schedule to every 60 minutes. Every 15 if you're in lease-up and twitchy.

For platforms without a clean connector (ApartmentRatings, some ILS review feeds), use an RSS module if they publish one, or a simple scraping service like Browse AI on a daily run. Don't burn a week trying to automate a source that generates four reviews a quarter. Google is 80% of what a prospect actually reads.

Step 2: The classifier. Add an OpenAI module, "Create a Chat Completion." This is a separate step from the drafting on purpose. You want a structured output you can route on, not a paragraph you have to parse.

Ask it to return JSON: sentiment score, primary topic, secondary topic, urgency flag, and an escalate boolean. The escalate flag catches anything mentioning discrimination, harassment, injury, illegal activity, threatened legal action, or a named employee being accused of something. Those go to a human immediately with no draft attached. An AI-drafted reply to a fair housing complaint is a document that will be read out loud later.

Step 3: Router. Add a router with three paths. Escalate goes to your regional and to whoever owns risk, plain text, no draft. Negative and neutral go to the drafter with a longer, more careful prompt. Positive goes to the drafter with a short, warm prompt, because a four-sentence thank-you to a five-star review reads like you paid someone.

Step 4: The drafter. Second OpenAI module. This is where the prompt in this lesson goes. Feed it the review text, the star rating, the property name, the classifier's topic tags, and a short block of property context you maintain yourself: current renovation status, known issues, what actually changed since the complaint. That last piece is the difference between a response that sounds human and one that sounds like a warranty card.

Step 5: The gate. Slack module posting to a #review-responses channel. Include the review, the star rating, the property, the draft, and a direct link to the review so approval is one click away from posting. If your team lives in email, use a Gmail module with the same payload.

Do not auto-post. I know Make can do it. The failure mode is a model confidently apologizing for something that never happened, or thanking a resident for feedback about a pool at a property with no pool. Once a week that's a laugh in the group chat. Once a month in public, it's a screenshot.

The context file that makes this good

Most people build this, get generic output, and blame the AI. The AI is fine. You gave it nothing.

Build one doc per property, 300 words max, and pipe it into the drafter as context. What's in it: the property's actual voice (are you the polished downtown high-rise or the friendly suburban garden community), the community manager's first name for signing, known open issues and what's being done, recent capital work, and three response examples you actually like.

Update it monthly. Ten minutes per property. This is the whole ballgame: the difference between "We're sorry to hear about your experience" and "The valet trash vendor changed in March and we've been on them about the Sunday pickups. Come see Marcus in the office."

What to watch for

The model wants to over-apologize. Left alone, it will admit fault on things you never did, in writing, on a public page a prospect will read. Tell it explicitly: acknowledge the experience, never admit negligence, never discuss specific account or lease details, never promise a refund or concession.

Second thing. Reviews mentioning a resident's disability, family status, race, national origin, or religion need a human writing every word. Not a human editing a draft. A human writing it. Set the escalate rule wide, and accept the false positives.

Third: length. Prospects skim. Three sentences beats eight, every time.

Measuring whether it worked

Track response rate and median time to respond, by property, before and after. Google's own guidance says responding to reviews helps, and prospects filter by rating. You'll see the response rate move first, usually to near 100%, because the bottleneck was never willingness. It was that nobody had the tab open.

Then check your star average in 90 days. Responded-to negative reviews get edited upward more often than ignored ones. Not always. Enough.

Build the Google path first. Ship it for one property today, add the rest tomorrow.

The prompt

You are drafting a public response to an apartment community review. The response will be posted under the community's name on Google.

PROPERTY CONTEXT:
- Community name: [PROPERTY NAME]
- Voice: [e.g. warm and casual suburban garden community / polished urban high-rise / no-nonsense value community]
- Sign responses from: [FIRST NAME, TITLE, e.g. "Marcus, Community Manager"]
- Known open issues and what we're doing: [e.g. valet trash vendor replaced in March, Sunday pickups still inconsistent, new vendor onboarding in progress]
- Recent improvements worth mentioning: [e.g. dog park resurfaced, package room installed, new maintenance tech hired]
- Never mention: [e.g. pending litigation, the pool closure, pricing specifics]

THE REVIEW:
- Star rating: [X of 5]
- Review text: [PASTE FULL REVIEW]
- Topic tags from classifier: [e.g. maintenance response time, office communication]

RULES:
1. Three to five sentences. Shorter for positive reviews.
2. Acknowledge the specific thing they mentioned. Do not respond to a generic version of their complaint.
3. Never admit negligence, fault, or liability. Acknowledge the experience, not the blame.
4. Never reference lease terms, account balances, unit numbers, or anything about the reviewer's tenancy status.
5. Never promise a refund, concession, rent credit, or specific timeline you cannot control.
6. If the review mentions disability, familial status, race, religion, national origin, sex, or a request for accommodation, do not draft a response. Output only: ESCALATE - PROTECTED CLASS REFERENCE.
7. If the review alleges injury, illegal activity, harassment, or threatens legal action, output only: ESCALATE - LEGAL REVIEW.
8. Give one concrete next step: who to contact and how. Use the name in PROPERTY CONTEXT.
9. No corporate filler. Do not open with "We're sorry to hear" or "Thank you for your feedback."
10. Do not use exclamation marks.

Output the draft response only. Then, on a new line, output CONFIDENCE: HIGH / MEDIUM / LOW and one line explaining what a human should verify before posting.