# Task F.5: Approval Automation (Reminder & Escalation) Foundation ## Status Planned ## Objective Build the Approval Automation Foundation that manages reminder scheduling, SLA monitoring, escalation policies, timeout handling, and automatic notification for approval workflows. This task extends the Notification Framework (F.4) by introducing time-based automation while keeping approval business logic unchanged. The goal is to support: * Approval SLA * Reminder policies * Escalation policies * Approval timeout handling * Automation scheduler * Approval queue monitoring * Notification integration This task does not implement Email, LINE OA, Webhook delivery, Delegation, Vacation replacement, or Analytics Dashboard. --- # Mandatory Review Review: * `AGENTS.md` * `docs/standards/project-foundations.md` * `docs/standards/task-catalog.md` * `docs/implementation/task-f2-approval-matrix-foundation.md` * `docs/implementation/task-f3-approval-workflow-builder-foundation.md` * `docs/implementation/task-f4-notification-framework-foundation.md` * Approval Runtime * Notification Framework * CRM Authorization Foundation * Audit Foundation --- # Current Foundation Already available: ```txt Approval Matrix Approval Workflow Builder Approval Runtime Notification Framework Audit Foundation ``` Current limitation: ```txt Approval waits forever until someone approves. ``` --- # Scope F.5.1 Approval SLA Each workflow step may define: ```txt SLA Hours Due Date Reminder Policy Escalation Policy Timeout Policy ``` Example: ```txt Sales Manager 24 Hours Department Manager 48 Hours CEO 72 Hours ``` --- # Scope F.5.2 Reminder Policy Create: ```txt crm_approval_reminder_policies ``` Example: ```txt Workflow A Reminder After 1 day After 3 days After 5 days ``` Rules: * Multiple reminder points * Prevent duplicate reminders * Configurable per workflow --- # Scope F.5.3 Escalation Policy Create: ```txt crm_approval_escalation_policies ``` Supported targets: ```txt Manager Requester Explicit User Role Permission Group ``` Example: ```txt After 3 days ↓ Notify Manager After 5 days ↓ Escalate Director ``` --- # Scope F.5.4 Timeout Policy Supported actions: ```txt None Auto Reject Auto Cancel Auto Escalate ``` Timeout actions must be configurable per workflow. --- # Scope F.5.5 Automation Scheduler Create: ```txt processApprovalAutomation() ``` Responsibilities: ```txt Find pending approvals ↓ Calculate SLA ↓ Send reminders ↓ Run escalation ↓ Execute timeout actions ↓ Publish notification events ``` Rules: * Idempotent * Safe to execute repeatedly * Transactional where required --- # Scope F.5.6 Approval Queue Monitor Add service: ```txt getPendingApprovalQueue() ``` Return: ```txt Pending Due Today Overdue Escalated Waiting Time Remaining SLA ``` --- # Scope F.5.7 Notification Integration Use existing: ```txt publishNotificationEvent() ``` Events: ```txt approval.reminder approval.escalated approval.timeout ``` No direct Email or LINE sending. --- # Scope F.5.8 Calendar Support Prepare business calendar support. For now support: ```txt Calendar Days ``` Future-ready for: ```txt Working Days Holiday Calendar Business Hours ``` --- # Scope F.5.9 APIs Create: ```txt GET /api/crm/approval/automation/pending POST /api/crm/approval/automation/run GET /api/crm/approval/reminder-policies POST /api/crm/approval/reminder-policies GET /api/crm/approval/escalation-policies POST /api/crm/approval/escalation-policies ``` Admin only. --- # Scope F.5.10 UI Add settings pages: ```txt Approval Reminder Policies Approval Escalation Policies ``` Features: * CRUD policies * SLA configuration * Reminder schedule * Escalation target * Timeout action Use existing design system. --- # Scope F.5.11 Audit Audit actions: ```txt approval_reminder_sent approval_escalated approval_timeout approval_policy_created approval_policy_updated approval_policy_deleted ``` --- # Scope F.5.12 Permissions Verify or add: ```txt crm.approval.automation.read crm.approval.automation.run crm.approval.reminder.manage crm.approval.escalation.manage ``` --- # Documentation Create: ```txt docs/implementation/task-f5-approval-automation-foundation.md ``` Document: ```txt SLA model Reminder model Escalation model Timeout model Automation scheduler Notification integration ``` --- # Explicit Non-Scope Do not implement: * SMTP Email * LINE OA * Webhook delivery * Vacation replacement * Delegate approval * AI reminder suggestions * Approval Analytics Dashboard * Real-time push notifications These belong to later tasks. --- # Verification Run: ```txt npm exec tsc --noEmit npm run build ``` Manual verification: ```txt Create reminder policy Create escalation policy Submit approval Reminder generated after SLA Escalation generated after configured threshold Timeout action executes correctly Notification created Approval remains consistent Audit logs created Scheduler safe to rerun ``` --- # Definition of Done Task is complete when: * Approval SLA exists * Reminder policies exist * Escalation policies exist * Timeout policies exist * Automation scheduler exists * Reminder notifications are generated * Escalation notifications are generated * Notification Framework is reused * Audit logs capture automation * Existing approval flow remains operational Result: ```txt Approval Automation Foundation = Established Reminder Engine = Operational Escalation Engine = Operational Ready for F.6 Approval Analytics & Dashboard ```