# Automatische mails

### Wat kun je ermee?

**Voorbeelden:**

* Stuur 1 dag voor de voorstelling een herinnering met praktische info
* Vraag 2 dagen na de voorstelling om een review
* Stuur direct na aankoop een bedankmail met extra informatie
* Herinner bezoekers 1 week van tevoren dat de voorstelling buiten is

***

### Hoe werkt het?

Het systeem controleert **elke 15 minuten** automatisch welke herinneringen verstuurd moeten worden op basis van:

* De datum/tijd van de voorstelling
* De datum/tijd van de verkoop
* De instellingen die je hebt geconfigureerd

**Belangrijk:** Wijzigingen in je reminder configuratie werken direct - je hoeft niets opnieuw in te stellen.

***

### Reminder Aanmaken

#### Stap 1: Ga naar Reminders

Navigeer in het dashboard naar **E-mail > Automatische mails**

#### Stap 2: Nieuwe Reminder Toevoegen

Klik op **+ Nieuwe Herinnering**.

#### Stap 3: Configureer de Reminder

**Basisinstellingen:**

| Veld       | Uitleg                                                     |
| ---------- | ---------------------------------------------------------- |
| **Naam**   | Interne naam voor jezelf (bijv. "1 dag voor voorstelling") |
| **Type**   | **MAIL** (email) of **SMS** (tekstbericht)                 |
| **Actief** | Zet op **Ja** om de reminder in te schakelen               |

***

### Reminder Types

Je kunt kiezen uit 3 verschillende soorten herinneringen:

#### 1. BEFOREEVENT - Voor de voorstelling

Stuurt een herinnering **vóór** het evenement begint.

**Gebruik:**

* "1 dag voor voorstelling: niet vergeten!"
* "2 uur van tevoren: deuren gaan open"
* "1 week voor de show: praktische informatie"

**Tijdstip berekening:**

* Gebaseerd op **event datum + tijd**
* Stuurt X dagen/uren vóór de voorstelling

**Voorbeeld:**

```
Evenement: 24 december 2025, 20:00 uur
Reminder: 1 dag van tevoren
Wordt verstuurd: 23 december 2025, rond 20:00 uur
```

***

#### 2. AFTEREVENT - Na de voorstelling

Stuurt een herinnering **na** het evenement.

**Gebruik:**

* "1 dag na voorstelling: hoe vond je het?"
* "2 dagen later: deel je ervaring op social media"
* "3 dagen na: vraag om review"

**Tijdstip berekening:**

* Gebaseerd op **event datum + eindtijd** (of starttijd + 2 uur als geen eindtijd)
* Stuurt X dagen/uren ná de voorstelling

**Voorbeeld:**

```
Evenement: 20 december 2025, 20:00 - 22:00 uur
Reminder: 1 dag na afloop
Wordt verstuurd: 21 december 2025, rond 22:00 uur
```

***

#### 3. AFTERSALES - Na de aankoop

Stuurt een herinnering na de **verkoopdatum**, onafhankelijk van wanneer de voorstelling is.

**Gebruik:**

* "Direct na aankoop: bedankt voor je bestelling"
* "1 uur na verkoop: extra informatie over het event"
* "3 dagen na aankoop: vergeet niet je tickets te printen"

**Tijdstip berekening:**

* Gebaseerd op **order datum/tijd** (moment van betaling)
* Stuurt X dagen/uren na de verkoop

**Voorbeeld:**

```
Verkoopdatum: 1 december 2025, 14:30 uur
Reminder: 1 uur na verkoop
Wordt verstuurd: 1 december 2025, rond 15:30 uur
```

***

### Timing Instellen

**Kies hoeveel tijd er moet zitten tussen de trigger en de reminder:**

| Getal | Eenheid           | Voorbeeld             |
| ----- | ----------------- | --------------------- |
| `1`   | **HOUR** (uur)    | 1 uur van tevoren     |
| `7`   | **DAY** (dag)     | 7 dagen van tevoren   |
| `2`   | **MONTH** (maand) | 2 maanden van tevoren |

**Let op:**

* Gebruik **DAY** voor de meeste herinneringen (1 dag, 7 dagen, etc.)
* Gebruik **HOUR** alleen voor korte termijn herinneringen (1 uur, 2 uur)
* **MONTH** is zelden nodig

***

### Email Template Koppelen

Koppel een **email template** aan je reminder:

1. Ga naar **E-mail > Templates**
2. Maak een nieuwe template aan (of kies een bestaande)
3. Gebruik variabelen zoals `%FIRSTNAME%`, `%EVENTNAME%`, `%EVENTDATE%`, etc.
4. Selecteer deze template bij **Template** in de reminder instellingen

Zie ook: E-mail Templates Aanpassen

***

### Filteren op Events of Locaties

**Standaard:** De reminder geldt voor **alle** bestellingen.

**Filteren:**

* **Specifieke events:** Kies één of meerdere events om de reminder alleen voor díe events te versturen
* **Specifieke locaties:** Kies één of meerdere locaties om de reminder alleen voor events op díe locaties te versturen

**Voorbeeld:**

```
Reminder: "Voorstelling is buiten"
Filter: Alleen "Openluchttheater - Zomerseizoen"
Resultaat: Alleen bezoekers van dat specifieke event krijgen de mail
```

***

### Belangrijke Informatie

#### Automatische Filtering

Het systeem stuurt **alleen reminders voor recente bestellingen**:

* Orders met events **tot 24 dagen geleden** of **in de toekomst**
* Alleen **betaalde** bestellingen (geen concepten of geannuleerde orders)
* Geen duplicaten (elke reminder wordt maximaal 1x per bestelling verstuurd)

#### Sending Window (24-uurs venster)

Reminders worden verstuurd als ze binnen een **24-uurs venster** vallen rond het gewenste tijdstip:

**Waarom?**

* Geeft ruimte voor retry's als een reminder eerder gefaald is
* Het systeem draait elke 15 minuten, dus er zijn \~96 kansen per dag
* In de praktijk worden reminders binnen enkele minuten verstuurd

**Voorbeeld:**

```
Gewenste tijd: Vandaag 14:30
Sending window: Gisteren 14:30 - Vandaag 14:30
Eerste check na 14:30 (bijv. 14:45): reminder wordt direct verstuurd
```

#### Grace Period (1 dag buffer)

* Als een reminder meer dan **1 dag te laat** zou zijn, wordt deze overgeslagen
* Dit voorkomt dat oude reminders alsnog verstuurd worden bij technische problemen

***

### Nieuwe Reminder op Bestaande Orders Toepassen

**Probleem:** Je maakt een nieuwe reminder aan (bijv. "1 dag voor voorstelling"), maar er zijn al 100 kaarten verkocht. Normaal krijgen alleen **nieuwe** bestellingen de reminder.

**Oplossing:** Dit is een **technische** functie die door support moet worden uitgevoerd via de command line. Het systeem voert een **backfill** uit waarbij de reminder eenmalig wordt toegepast op alle bestaande bestellingen.

**Procedure:**

1. Je maakt de reminder aan in het dashboard en zet deze op **Actief**
2. Neem contact op met support en vraag om backfill voor deze reminder
3. Support voert het command `php artisan reminders:process --backfill` uit
4. Alle eligible orders (van het afgelopen jaar) worden gecontroleerd
5. Reminders die **nu** verstuurd moeten worden, gaan direct de deur uit
6. Reminders die later verstuurd moeten worden, worden automatisch opgepikt door het systeem op het juiste moment

**Let op:**

* Backfill kijkt maximaal **1 jaar** terug (niet oneindig)
* Duplicaten worden voorkomen (geen dubbele mails)
* Reminders worden alleen verstuurd op het juiste tijdstip (niet te vroeg)
* Deze functie is **niet** beschikbaar in het dashboard (alleen via command line)

***

### Veelgestelde Vragen

#### Kan ik een reminder testen?

Ja, je kunt dit **zelf** doen vanuit het dashboard:

1. Ga naar **E-mail > Automatische mails**
2. Selecteer de reminder
3. Klik op **Test Reminder**
4. Vul een test emailadres in en selecteer een order
5. Klik op **Verstuur Test**

De reminder wordt direct verstuurd naar het test emailadres met echte data van de geselecteerde order.

#### Kan ik een reminder aanpassen nadat deze actief is?

Ja! Wijzigingen werken **direct**. Alle toekomstige reminders gebruiken de nieuwe instellingen.

#### Wat gebeurt er als ik een reminder deactiveer?

De reminder wordt direct gestopt. Er worden geen nieuwe reminders meer verstuurd. Al verstuurde reminders blijven natuurlijk in de inbox van bezoekers staan.

#### Kan ik zien welke reminders zijn verstuurd?

Ja, in het systeem wordt bijgehouden welke reminders zijn verstuurd (reminder log). Neem contact op met support voor inzage.

#### Wat als een bezoeker meerdere events heeft geboekt?

Elke reminder wordt **per event** verstuurd. Als iemand 3 voorstellingen heeft geboekt, krijgt deze persoon 3 herinneringen (1 per voorstelling).

#### Kan ik SMS reminders gebruiken?

Ja, maar dit vereist extra configuratie. Neem contact op met support om SMS functionaliteit te activeren.

#### Hoe ver van tevoren kan ik een reminder instellen?

**BEFOREEVENT:** Tot maanden van tevoren (bijv. "2 maanden voor voorstelling") **AFTEREVENT:** Tot maanden na afloop (bijv. "1 maand na voorstelling") **AFTERSALES:** Tot maanden na verkoop (bijv. "3 maanden na aankoop")

Het systeem kijkt echter alleen naar orders/events binnen een redelijk bereik (zie "Automatische Filtering").

***

### Tips & Best Practices

#### 1. Test je templates

Voordat je een reminder activeert, test eerst de email template. Controleer of alle variabelen correct werken.

#### 2. Timing is belangrijk

* **1 dag van tevoren** is populair voor praktische info
* **2 uur van tevoren** kan te kort zijn (mensen checken niet altijd hun mail)
* **Direct na aankoop** is handig voor bevestiging + extra info

#### 3. Niet te veel reminders

Teveel herinneringen kunnen irritant zijn. Kies strategisch:

* Maximaal 1-2 reminders voor de voorstelling
* Maximaal 1 reminder na de voorstelling

#### 4. Personaliseer je berichten

Gebruik variabelen zoals `%FIRSTNAME%` en `%EVENTNAME%` om emails persoonlijker te maken.

#### 5. Duidelijke onderwerpregel

Let op de onderwerpregel van je template - deze bepaalt of mensen de mail openen.

***

### Troubleshooting

#### Reminder wordt niet verstuurd

**Check:**

1. Is de reminder op **Actief** gezet?
2. Valt het tijdstip binnen het 24-uurs sending window?
3. Is de bestelling **betaald**? (concepten krijgen geen reminders)
4. Is de reminder al eerder verstuurd? (geen duplicaten)
5. Matcht de bestelling de event/locatie filters?

**Hulp nodig?** Neem contact op met support.

#### Reminder komt te laat

Het systeem draait elke 15 minuten. In de praktijk betekent dit dat een reminder maximaal 15 minuten na het gewenste tijdstip verstuurd wordt (maar meestal binnen enkele minuten).

#### Reminder gaat naar verkeerd emailadres

Controleer in de bestelling of het emailadres correct is. Reminders gebruiken het emailadres uit de bestelling.

#### Template variabelen werken niet

Controleer of je de juiste syntax gebruikt (bijv. `%FIRSTNAME%` met hoofdletters en `%` tekens). Zie E-mail Templates voor alle beschikbare variabelen.
