> ## Documentation Index
> Fetch the complete documentation index at: https://docs.younegotiate.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Reminder Jobs

> Jane has an offer expiring soon and another payment due later this week.

## Real-World Example

Jane has an offer expiring soon and another payment due later this week. The portal should send the right reminders at scheduled times while respecting communication preferences and current account status.

## Visual Flow

```mermaid placement="top-right" actions={true} theme={"system"}
flowchart TD
    A["Scheduled reminder time arrives"] --> B["Command finds eligible consumers"]
    B --> C{"Consumer still eligible and opted in?"}
    C -->|Yes| D["Reminder communication is dispatched"]
    C -->|No| E["Reminder is skipped safely"]
    D --> F["Consumer receives timely reminder"]
    classDef default fill:#F8FAFC,stroke:#64748B,stroke-width:1.5px,color:#0F172A;
    classDef actor fill:#E0F2FE,stroke:#0284C7,stroke-width:2px,color:#0C4A6E;
    classDef system fill:#F8FAFC,stroke:#64748B,stroke-width:1.5px,color:#0F172A;
    classDef decision fill:#FEF3C7,stroke:#D97706,stroke-width:2px,color:#78350F;
    classDef risk fill:#FEE2E2,stroke:#DC2626,stroke-width:2px,color:#7F1D1D;
    classDef outcome fill:#DCFCE7,stroke:#16A34A,stroke-width:2px,color:#14532D;
    class A,B,D,E system;
    class C decision;
    class E risk;
    class F outcome;
    linkStyle default stroke:#94A3B8,stroke-width:2px;
```

## How It Should Work

* It should send offer expiration, payment, account expiration, and setup wizard reminders only when still relevant.
* It should respect consumer communication preferences and current account state.
* It should avoid duplicate or stale reminders after a consumer takes action.

## How It Should Not Work

* It should not remind consumers about expired, removed, paid, or resolved actions.
* It should not ignore opt-out rules.
* It should not send setup reminders to creditors who already completed setup.

## Developer Notes

* Reminder commands run on the scheduler and usually dispatch communication jobs.
* These jobs are important because they affect consumer trust even though they are not visible in the creditor sidebar.

## Related App Areas

* `app/Console/Commands/NotifyOfferExpiringSoon.php`
* `app/Console/Commands/NotifyUpcomingPaymentReminder.php`
* `app/Console/Commands/NotifyAccountExpirationReminder.php`
* `app/Console/Commands/NotifySetupWizardPendingReminder.php`
* `app/Jobs/TriggerEmailAndSmsServiceJob.php`
