68 lines
2.4 KiB
Markdown
68 lines
2.4 KiB
Markdown
# 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
|
||
```
|