What we are still missing from a property-manager perspective. Each gap names the pain, where it shows up, and what would close it.
| Priority | Gap | Who feels it | Blocks | Task |
|---|---|---|---|---|
| P1 | No payments dashboard | PM, accountant | Can't answer "did this resident pay this week" | #73 |
| P1 | AuthNet webhook → CRM not wired | PM, owner | CRM invoice marked-paid drifts from real settle | #102 |
| P1 | Move-in prep fan-out is manual | PM | PPSK, lock code, welcome email, first invoice — all PM does by hand | #105 |
| P1 | PM action queue not surfaced | PM | No single place to see "what needs my action today" | #79 |
| P1 | Resident portal does not exist | Resident, PM | Residents email PM for things they should self-serve | #84, #85 |
| P1 | Recurring invoice generator missing | PM, accountant | Rent + recurring fees billed manually each month | #138 |
| P2 | SMS/ACS numbers not provisioned | PM | No transactional SMS for tour confirms, payment receipts, NTV reminders | #178, #179 |
| P2 | Maintenance app on the wrong host | PM, tech | Lives on finrep LXC 114, not migrated; tech has no real workflow | #107–#109 |
| P2 | Documenso integration missing | PM | Lease send-out is a manual PDF email | #81, #104 |
| P2 | FB Leadgen webhook in flight | PM | Facebook ad leads land in a queue not in CRM | #175 |
| P2 | Zelle matcher not auto | Accountant | BC ↔ CRM delta is exposed but un-actioned | #136, #135 |
| P2 | Cash kiosk not portal-integrated | PM, resident | Reads from legacy /ckreports; residents have no visibility | #137 |
| P2 | Payment-application priority engine missing | PM | Partial payments don’t auto-apply rent → utilities → fees correctly | #139 |
| P2 | 3rd-party payer handling missing | PM, accountant | “Mom paid for me” Zelles get mis-credited | #140 |
| P3 | Funnel stage-conversion view missing | Owner | Can’t answer “where do leads die in the funnel” | #103 |
| P3 | Daily/weekly KPI rollup not built | Owner | No single morning email summarizing the day | — |
| P3 | Dashboards lack drill-through | Operator | Have to leave dashboard for a CRM tab to investigate a row | #129, #157 |
| P3 | Discount engine missing | PM | Specials are hand-applied at invoice time, not from the catalog rules | #44 |
| P3 | Damages-invoice generator missing | PM | SODA damage lines do not auto-bill | #112 |
| P3 | Ad pixels not wired | Marketing | Can’t close the loop on FB/Google ad spend | #46 |
customerpayment + AuthNet daily settle + Zelle (from BC) + kiosk + LiveWire checks, grouped by resident, with AR aging on the same row.salesinvoice isn’t updated until someone notices the email. Drift between portal “paid” flag and CRM aging is ≤ 24h but it shows up as ghost AR.POST /api/authnet/webhook (idempotent on transaction_id) that writes the portal payment row, fires the canonical application.fee_paid CRM sync event, and triggers the move-in prep fan-out where applicable.lease.signed event: PPSK → Assa Abloy → portal flip → welcome email → first invoice → CRM contact update. Idempotent, retry-able, surfaces failures to the action queue.apps/maintenance. Add technician model, per-site roster, assignment workflow. Inspection app with room/item checklist + photo capture to R2 + cleared/holds workflow. Cleaning catalog table (#115)./api/lead/facebook → write lead_inbound with channel=facebook → fire lead.inquired CRM sync event. Same path as the inquire form, different channel tag./ckreports. Residents cannot see “I paid at the kiosk yesterday” in the portal.payment table → CRM sync. Then deprecate Crosbyprodinternal legacy path.customerpayment rows in CRM with explicit invoice ref so revrec lines align with cash receipt order.payer_party separate from applied_to_lease, with a deliberate operator action “link this payer to lease X” that persists going forward.This page is hand-authored. If you spot a missing gap from the operator side, open an issue or add it directly here — the value is in capturing operator pain that does not have a task yet. See also the reports catalog for what exists today and the process map for how the pieces fit.