# Email kampaně ## Přehled Systém podporuje hromadné emailové kampaně s plánováním, schvalováním, sledováním otevření a kliků. ## Klíčové modely | Model | Tabulka | Popis | |-------|---------|-------| | `EmailCampaign` | `email_campaigns` | Definice kampaně | | `EmailCampaignSend` | `email_campaign_sends` | Jeden naplánovaný email jednomu příjemci | | `EmailTemplate` | `email_templates` | HTML šablona emailu | | `EmailCategory` | `email_categories` | Kategorie (pro odhlašování per kategorie) | | `EmailCategoryUnsubscribe` | – | Odhlášení z konkrétní kategorie | | `ContactCampaignStat` | – | Statistiky kampaně per kontakt | | `CampaignEventStat` | – | Agregované statistiky eventů | | `CampaignCartDailyStat` | – | Denní statistiky košíků per kampaň | ## Životní cyklus kampaně ``` 1. Vytvoření kampaně (EmailCampaign) 2. Výběr segmentu + šablony 3. Naplánování (schedule) nebo odeslání ihned (send-now) 4. PrepareEmailCampaignSendsJob → vytvoří EmailCampaignSend záznamy 5. Schválení (approval workflow) 6. BatchSendEmailCampaignSendsJob → SendEmailCampaignSendJob → odeslání 7. Tracking otevření (pixel /e/o/{token}) 8. Tracking kliků (ftclid parametr v odkazech) ``` ## Odesílání Kampaně odesílá command `SendDueEmailCampaigns` (cron). Selhat může přes `RetryFailedEmailCampaignSends`. Podporované mail drivery: - **SMTP** – standardní Laravel mailer - **Microsoft Graph** – `MicrosoftGraphMailService` (přes Microsoft 365 API) ## Šablony Editor šablon je dostupný na `/admin/email-templates/editor/{id}`. Šablony podporují: - HTML s inline CSS (`tijsverkoyen/css-to-inline-styles`) - Placeholdery (`{{contact.email}}`, `{{contact.name}}` apod.) - Unsubscribe link ## Tracking - **Otevření** – 1×1px tracking pixel `/e/o/{token}` → `EmailOpenTrackingController` - **Kliky** – `ftclid` parametr v odkazech; při kliknutí `collect.js` automaticky identifikuje návštěvníka a propojí ho s kontaktem ## Schvalování Před odesláním může být vyžadováno schválení přes `EmailSendApprovalController`: - `GET /email-sends/pending` – seznam čekajících - `POST /email-sends/{send}/approve` – schválení - `POST /email-sends/{send}/reject` – zamítnutí ## Statistiky Rebuild statistik: ```bash php artisan rebuild:campaign-event-stats php artisan rebuild:campaign-cart-daily-stats php artisan rebuild:contact-campaign-stats ```