> ## 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.

# Schedule Campaign

> ABC Collections schedules an email reminder for the "Payments Due Next Week" group. The campaign is scheduled for Monday at 9:00 AM.

## Real-World Example

ABC Collections schedules an email reminder for the "Payments Due Next Week" group. The campaign is scheduled for Monday at 9:00 AM.

The campaign should wait until Monday at 9:00 AM, then send only to the consumers in that group who are allowed to receive the selected communication. Consumers who opted out or do not match the audience should not receive it.

## Visual Flow

```mermaid placement="top-right" actions={true} theme={"system"}
flowchart TD
    A["Creditor selects audience"] --> B["Creditor selects template"]
    B --> C["Creditor chooses schedule time"]
    C --> D["Campaign waits until scheduled time"]
    D --> E["System checks communication eligibility"]
    E --> F["Message is sent to allowed consumers"]
    E --> G["Restricted consumers are skipped"]
    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 actor;
    class B,C,D,E system;
    class F outcome;
    class G risk;
    linkStyle default stroke:#94A3B8,stroke-width:2px;
```

## How It Should Work

* It should let the creditor select the audience, message/template, and schedule.
* It should send campaigns only according to the selected settings.
* It should respect consumer communication controls and opt-out rules.
* Scheduled campaign processing may happen in the background.

## How It Should Not Work

* It should not send a campaign before the scheduled time.
* It should not send to consumers outside the selected audience.
* It should not ignore communication restrictions.
* It should not send duplicate campaign messages for the same scheduled campaign.

## Developer Notes

* Always check audience, creditor ownership, template selection, and opt-out/communication rules before sending.
* Background campaign work should record enough status for the tracker to explain sent, pending, and failed activity.
* Provider delivery, email open, SMS delivery, and opt-out activity can arrive later through SendGrid and Twilio callbacks. See [Communication Delivery & Webhooks](/portals/creditor/background-processing/communication-delivery-and-webhooks).

## Related App Areas

* `routes/creditor/index.php`
* `app/Livewire/Creditor/Communications`
* `app/Console/Commands/RunCampaignCommand.php`
* `app/Jobs/SendCampaignEmailSmsOrELetterJob.php`
