Multifamily Marketing

Training · Systems that run without you · 7 min

When a workflow beats a prompt

The test: does this happen on a schedule, or when you remember? Only one is worth building.

Here's the test, up front, so you can apply it to whatever you were about to build this afternoon.

Does this task have a trigger that isn't you remembering?

If yes, build a workflow. If no, keep a prompt in a doc and paste it when you need it. That's the whole decision. Everything below is why it holds up, and how to actually build the workflow half.

Most marketing teams get this backwards. They automate the fun stuff, the one-off creative brief, the campaign concept, the thing they were kind of enjoying doing anyway, and they hand-run the boring recurring stuff forever. So you end up with a beautiful Zap that writes taglines nobody asked for, while somebody on your team still manually pulls the Monday lead report at 8:40am with a coffee going cold next to them.

Prompts are tools. Workflows are employees.

A prompt is something you pick up. You decide when. You bring the inputs, you read the output, you throw away the bad version and run it again. It's a hammer and it's genuinely great at being a hammer.

A workflow runs whether you're thinking about it or not. It has a trigger, it pulls its own inputs, it does the thing, and it puts the result somewhere a human will see it. The value isn't that it's faster per run. It's that it runs at all, on the Tuesday you're in market visits and the week your leasing director is out.

That distinction matters because building a workflow costs real hours. Connecting to your CRM's API, or getting an export to land in the right folder, or debugging why Zapier's parser thinks your Entrata report is one long string. If the task happens twice a year, you'll never earn that back. Just save the prompt.

Run the test on your actual list

Write down everything you or your team does with AI right now. Then sort:

Scheduled trigger. Monday lead-source recap. Month-end ILS cost-per-lease by community. Weekly Google Business Profile review sweep across the portfolio. Renewal-offer batch prep, 120 days out. Every one of these has a calendar behind it, and the calendar doesn't care if you're busy.

Event trigger. A new review posts. A tour is marked completed in the CRM. A guest card sits unworked past 24 hours. A unit's days-vacant crosses 30. A competitor changes a price on your comp set. Something happens in a system, and the system can tell you.

You remembered. Writing the lease-up launch email for a property that opens in March. Building the concession messaging for a one-off August push. Rewriting the amenity page after the pool renovation. These are real work, sometimes your best work, and they are terrible automation candidates because the trigger is your brain and your brain isn't an API.

Two things to watch for. First, some tasks look one-off but are actually a series: "write the lease-up launch email" happens once per lease-up, but if you open four communities a year, that's a template with a checklist, not a workflow and not a fresh prompt each time. Second, some tasks look recurring but the inputs change so much every time that automating them just means automating garbage. Be honest about which is which.

Build one: the Monday review response queue

Pick something with an event trigger and a boring output. Reviews are the easiest first win because they arrive on their own schedule, they need a response fast, and the draft-to-send gap is where the time goes.

The shape:

1. Trigger. Your reputation tool (Birdeye, Reputation.com, Grade.us, whatever you're paying for) fires a webhook on new review, or you poll Google Business Profile daily. If you have no tool, a daily scheduled pull is fine. 2. Filter. Split by star rating. Four and five stars get a short warm reply. One through three get a longer draft plus a Slack ping to the community manager, because those need a human read before anything goes out. 3. Enrich. Pull the property name, the reviewer's stated issue, and any open work order or CRM note if you can reach it. Context is what makes the draft not sound like a bot. 4. Generate. Run the prompt block below with those variables injected. 5. Route. Drafts land in a Slack channel or a Google Sheet with an approve button. Nothing auto-publishes. Ever. 6. Log. Append every draft, approved or not, to a sheet. That's your training data for tightening the prompt in month two.

Total build time on Zapier or Make: an afternoon if your reputation tool has a decent webhook, two afternoons if it doesn't. After that it runs on the Saturday a resident posts about the trash valet.

The approval gate is the whole design

The most common failure isn't a bad draft. It's a workflow that publishes one. Put a human between generation and anything public-facing: reviews, ad copy, listing descriptions, resident emails. The gate should take fifteen seconds per item, not fifteen minutes, or people stop using it and start ignoring the Slack channel.

Internal-only outputs are different. A Monday lead recap that lands in your inbox can run fully unattended, because the worst case is a wrong number you catch before the call.

One thing to tell every copy workflow

If a workflow touches listing descriptions, ad copy, or anything a prospect reads, add an explicit instruction: describe the unit and the community, never the person who should live there. Models default to writing about the resident. "Perfect for young professionals," "ideal for a growing family," "great for students." That is a fair housing problem, and at automation scale it's a fair housing problem repeated across every unit in your portfolio without anyone reading it first. The fix is one line in the system prompt, plus a human approval step before publication. Both, not either.

When to kill one

Review your workflows quarterly. If the approval gate has a 90% edit rate, the prompt is wrong, not the concept. If it has a 100% approve rate, you might be rubber-stamping, so spot check five. And if a workflow hasn't fired in sixty days, the trigger you built it on doesn't happen. Turn it off.

Build the ones with a trigger. Save the rest as prompts. That's the sort.

The prompt

SYSTEM / INSTRUCTIONS BLOCK (paste into your workflow's AI step)

You are drafting a public response to an online review for [MANAGEMENT COMPANY NAME], an apartment operator. Output the response text only, no preamble, no options, no commentary.

CONTEXT (injected by the workflow):
- Community name: {{property_name}}
- City/state: {{city_state}}
- Star rating: {{rating}}
- Review text: {{review_body}}
- Reviewer first name if available: {{reviewer_name}}
- Known internal context (work orders, CRM notes, leave blank if none): {{internal_context}}
- Signature name and title: [E.G. "Dana, Community Manager"]

RULES:
1. Length: 4 or 5 stars, 25-45 words. 1 to 3 stars, 60-90 words.
2. Name the community once. Never name the reviewer's unit, floor plan, or lease details.
3. For 1-3 stars: acknowledge the specific issue named in the review, state one concrete next step, and give a direct contact path: [EMAIL OR PHONE]. Do not apologize more than once. Do not promise a resolution or a timeline that we have not confirmed.
4. Never confirm or deny that the reviewer is or was a resident. Never reference anything not stated in the review, even if internal context contradicts it. Internal context is for tone only.
5. Never discuss rent amounts, concessions, deposits, screening decisions, evictions, lease violations, or any accommodation request.
6. Describe the property and the service, never the type of person who lives here or should live here. No references to family status, age, occupation, students, professionals, children, disability, national origin, religion, or "who this community is right for."
7. Voice: [PICK ONE: warm and plainspoken / polished and brief / friendly with a little personality]. No corporate filler. Do not use the words "valued," "delighted," "reach out," or "we strive."
8. No exclamation marks. No emoji.

FLAGS: If the review mentions any of the following, output the single line ESCALATE: LEGAL/COMPLIANCE followed by a one-sentence reason, and write no response draft. Triggers: discrimination, accommodation or service animal, injury, mold, habitability, illegal entry, harassment, security incident, threat of lawsuit or attorney involvement, or a named employee accused of misconduct.

Then output: DRAFT FOR APPROVAL, followed by the response text.