
A property manager's day is a queue nobody can see. Tenant requests arrive by phone, email, and WhatsApp. Work orders go to vendors by text. Status questions come back to the office because the tenant has no other way to ask. At month end, the vendor invoices arrive and nobody can say what a work order actually cost, because the request and the invoice never met in the same system.
Property management software exists, and much of it is good at accounting. The reason operators move the service side onto Salesforce is that the accounting system was never built to run a service queue, a vendor network, a leasing pipeline, and a tenant channel at the same time. Salesforce was.
This post covers how we set that up, where an Agentforce tenant service agent pays for itself, and the guardrails it needs before it is allowed near tenant data.
The service model: Case, Work Order, Vendor
Three objects carry the operation.
- Case is the tenant's request as the tenant sees it. A leaking tap, a broken access card, a noise complaint. It has a channel, a tenant, a unit, a priority, and an SLA clock that starts when the request lands, not when someone reads it.
- Work Order is the job as the vendor sees it. One Case can produce several Work Orders (a plumber and a painter for one leak), and each carries the trade, the vendor, the scheduled time, and the cost when the invoice arrives.
- Vendor is the account for each contractor, with trades, coverage area, SLA history, and a scorecard built from the Work Orders they completed. When the scorecard is a report, vendor renewals stop being a matter of who complained loudest.
With those three in place, cost per work order is a report: Work Order cost grouped by trade, by property, by vendor, by month. That single report is usually the thing that justifies the project to the owner.
Dispatch that does not depend on memory
Dispatch is where a manual operation leaks money. The wrong trade sent, the vendor who was closest not called, the emergency that waited because the text went to someone on leave.
On Salesforce, dispatch is a rule. A Work Order with a trade and a property looks up vendors who cover that trade and that area, ranks them by SLA performance and current load, and assigns. The vendor gets the job on their phone with the unit, the access instructions, and the tenant's preferred window. When the vendor marks it complete and attaches the invoice, the Work Order closes, the Case updates, and the tenant gets a message asking whether the problem is solved.
For operators with in-house technicians, Salesforce Field Service adds scheduling, routing, and a technician mobile app on top of the same objects. For operators who use vendors only, Flow automation on Work Order is enough and considerably cheaper.
Lead-to-lease on the same platform
The leasing side uses the objects Salesforce already has. A Lead is a prospective tenant. An Opportunity is an application for a specific unit, with stages for inquiry, tour, application, screening, approval, and lease signed. The Unit is a custom object shared with the service side, so the leasing team sees turn status and the service team sees move-in dates.
The reason to run leasing here rather than in a separate tool is the handoff. A signed lease creates the tenant record, the unit status flips to occupied, and the first service request from that tenant lands against a record that already knows who they are and where they live. Renewal risk scoring, which combines lease end date, open Cases, and payment history, only works when all three live in one system.
Where the Agentforce tenant agent earns its cost
An Agentforce agent is an AI agent that runs inside Salesforce, reads and writes records under your permission model, and hands off to a human when a rule says so. For property management, one agent covers the highest-volume, lowest-judgment work:
- Intake. The tenant describes the problem on WhatsApp, the portal, or email. The agent asks the two or three questions a good coordinator would ask (which room, is water actively leaking, is anyone in danger), creates the Case with the right priority and trade, and confirms to the tenant with a reference number.
- Status. "Is someone coming today" is answered from the Work Order, on the channel the tenant used, without a call to the office.
- Close the loop. When the vendor marks the job done, the agent asks the tenant whether it is resolved and reopens the Case if not.
- Reminders and notices. Inspection windows, planned maintenance, and renewal notices go out from the record and log the response.
The metric is the share of requests handled end to end without a human touching them, and cost per work order once vendor cost is on the record. If the agent does not move both, it is not paying for itself, and we say so.