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

# Communication Controls

> Jane wants payment reminders by email but not SMS.

## Real-World Example

Jane wants payment reminders by email but not SMS. She updates Communication Controls, verifies any changed contact method, and confirms the portal can use only the channels she approved.

## Visual Flow

```mermaid placement="top-right" actions={true} theme={"system"}
flowchart TD
    A["Consumer opens Communication Controls"] --> B["Portal loads permissions and contact details"]
    B --> C["Consumer changes preferences or contact info"]
    C --> D{"New contact verification needed?"}
    D -->|Yes| E["Portal sends OTP or verification"]
    D -->|No| F["Portal saves communication controls"]
    E --> F
    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,C actor;
    class B,E,F system;
    class D decision;
    class F outcome;
    linkStyle default stroke:#94A3B8,stroke-width:2px;
```

## How It Should Work

* It should let consumers control email, SMS, and related communication permissions.
* It should verify changed contact details before using them for future messages.
* It should keep automated campaigns, reminders, and follow-ups aligned with preferences.

## How It Should Not Work

* It should not send SMS or email through a channel the consumer has disabled when the feature is required to respect that preference.
* It should not mark new contact details verified without confirmation.
* It should not hide whether communication setup is complete.

## Developer Notes

* Communication controls affect campaign delivery, scheduled communications, and account reminders.
* The vCard/contact setup and confirmation state are part of this profile workflow.

## Related App Areas

* `app/Livewire/Consumer/Profile/CommunicationControls.php`
* `app/Livewire/Consumer/Forms/Profile/CommunicationControlsForm.php`
* `app/Services/ConsumerCommunicationService.php`
* `app/Jobs/SendSingleCampaignMessageJob.php`
