07 / Automation
Lifecycle Reengagement Automation
One reengagement engine that finds dormant records, writes to them, and sends on schedule, with the system of record swapped underneath.
Summary
The engine finds records that have gone quiet in whichever system holds them, generates outreach written to that specific record, and delivers it on a schedule. It runs today against Follow Up Boss, ResMan and AppFolio. It turns cold pipeline back into conversations without anyone being assigned to work the list.
Context
The pile of quiet contacts grows on its own in any business with inbound volume, and nobody has the hours to write to them one at a time, so the list sits there. The wrinkle here is that the records do not all live in the same place: leasing and property management run on their own platforms while the sales side runs on a CRM, so any solution that only spoke to one of them would only solve part of the problem.
What I built
- Dormancy detection measured against activity in the source system, so quiet is defined by what that system actually records
- A per-platform adapter for each system of record, so the same engine reads Follow Up Boss, ResMan and AppFolio
- Outreach generated per record with GPT against what that record contains, rather than filled into a template
- Scheduled delivery that spreads sends over time instead of firing a single blast
- Tracking of what was sent, per record
- Results written back to the source system, so a record that has been contacted stops looking dormant on the next pass
- Built in Google Apps Script
Diagram
How it works
01
Read
The engine pulls records through the adapter for whichever platform holds them.
02
Detect
Dormancy is measured against activity in that system, not against a separate copy of the data.
03
Personalize
GPT drafts the outreach against what the record actually contains.
04
Schedule
Delivery is spread over time instead of going out as one blast.
05
Send
The outreach goes out to the record.
06
Track
What was sent is tracked, and the outcome is written back to the source system so the record leaves the dormant pool.
Detail
The system of record is an input
The interesting part is not the generation, it is that the engine treats the system of record as an input. Reengagement logic, dormancy rules, generation and scheduling sit in one place, and each platform gets a thin adapter. Adding a fourth system is an adapter, not a rewrite. That is why the same engine covers a sales CRM and two property management platforms at once.
Outcome
Quiet records become conversations on a schedule with no one assigned to the list, and it runs the same way across three platforms.
My role
Designed and built it end to end.
Stack
- Google Apps Script
- GPT
- Follow Up Boss
- ResMan
- AppFolio