# Delinquency Follow-up

Run tiered rent reminders for late-paying tenants and draft (never send) formal late notices for property manager approval.

## When to use

- A tenant's rent is past due and needs a reminder sent through the appropriate channel.
- Delinquency has crossed a threshold requiring a formal late notice, but the notice must stay in draft form.
- You need to track follow-up cadence over several days and escalate unresolved cases.
- A tenant reports an emergency maintenance issue during outreach and it must reach a human immediately.

## Tools

- `http-get`
- `send-message`
- `create-task`
- `update-memory`
- `schedule-task`

## Playbook

1. Call the property management system's REST API with `http-get` to pull the current delinquency report, e.g. GET https://api.example-pm.com/v1/tenants/delinquent. Auth is injected by the org's Integration row for this host — never ask for, echo, or hardcode credentials. On 401/403 or missing Integration, stop and message a human via `send-message` naming the service and scopes.
2. For each delinquent tenant, check days past due (DPD) and determine the reminder tier: Day 3 (friendly), Day 10 (firm), Day 20 (final warning before formal notice).
3. Send the appropriate tiered reminder using `send-message` to the tenant's contact channel (SMS or email as configured).
4. If the tenant has crossed the formal-notice threshold (e.g. Day 20+), draft the late notice text yourself and post it via `create-task`, assigned to the property manager, requesting explicit approval before it goes out. Never send the formal notice autonomously.
5. Use `update-memory` to log each tenant's DPD, last reminder tier sent, and notice-draft status, so the next run doesn't duplicate outreach on the same day.
6. Use `schedule-task` to queue the next check-in (e.g. in 3-7 days) for tenants who haven't yet responded or paid.
7. If a tenant reply mentions an emergency maintenance issue (e.g. flooding, gas smell, no heat), stop the delinquency workflow immediately and use `send-message` to escalate to a human on-call contact, flagging it as urgent.
8. If a tenant disputes the charge or requests a payment plan, do not negotiate terms yourself — use `create-task` to hand the case to the property manager with the tenant's message summarized.

## Failure modes

- Sending a reminder to a tenant who already paid because the delinquency report was stale — always re-check `http-get` results are current before messaging.
- Drafting a late notice with incorrect fee calculations or jurisdiction-specific wording — flag uncertainty in the `create-task` description rather than guessing.
- Missing an emergency signal buried in a routine tenant reply and continuing the reminder cadence instead of escalating.
- Losing track of which reminder tier was already sent because `update-memory` wasn't updated, causing duplicate or skipped reminders.

## Done when

- All delinquent tenants for the run have received the correct tiered reminder, or a formal-notice draft task is waiting on manager approval.
- Memory reflects each tenant's latest DPD, reminder tier, and next scheduled check-in.
- Any emergency or dispute cases have been escalated or handed off to a human, not resolved autonomously.