--- id: lease-expiration-watch title: Lease expiration watch (monthly) enabled: true owner: goal:sales-weapon-ae-copilot mode: task schedule: kind: monthly timezone: America/New_York time: 08:00:00 dom: [1] delivery: - chat_id: ed71ac27-f2e4-4dc7-a4f7-45d96439bf9b metadata: originating_chat_context_json: '{"chat_id":"ed71ac27-f2e4-4dc7-a4f7-45d96439bf9b","origin_provider":"main","chat_kind":"direct","event_kind":"message","require_mention":false,"device_id":"11d6f508-35e2-48ec-9e92-39b4972d1a29"}' presentation_locale: en-US --- Lease expiration watch for Sean Mattsson (Stratix Systems). Goal: never get blindsided by a customer lease ending — time outreach 90/60/30 days out. 1. Read ~/workspace/goals/sales-weapon-ae-copilot/hidden_files/lease-expirations.json and ~/workspace/goals/sales-weapon-ae-copilot/hidden_files/campaign-opportunity-list.json (lease_expiration fields). 2. For each lease with an expiration date, compute days until expiry from today (America/New_York). 3. Flag anything in these windows: 90 days out (start planting the seed), 60 days (active outreach), 30 days (urgent — decision window closing). 4. ALSO scan Gmail (sean@seanmattsson.com) for new quote-builder intake emails (subject/body referencing the Stratix print builder or "quote request" from the site): if a customer submitted lease end dates, machine serials, or lease providers, capture them into lease-expirations.json and update the account's lease_expiration/lease_notes in campaign-opportunity-list.json. Report what you captured. 5. REPORTING (urgent-only, Sean's order 2026-10-05): post in the Work chat ONLY when a lease hits the 60-day or 30-day window (action needed), or when new lease data was captured from intake emails. Stay SILENT on 90-day seeds (logged to JSON only) and when nothing is expiring within 60 days. 6. Append a one-line note to ~/memory/YYYY-MM-DD.md. Lease data sources: Sean's manual updates, quote-builder intake emails, CRM. Never invent a lease date — only record dates from a real source, and note the source.