0 votes
ago in SoSci Survey (dt.) by s368379 (110 points)
edited ago by SoSci Survey

Hallo zusammen,

ich wende mich an Sie, da ich aktuell Schwierigkeiten bei der Umsetzung eines längsschnittlichen Studiendesigns mit Serienmails habe und die Reminder-Logik nicht wie gewünscht funktioniert.

Wir führen eine 14-tägige längsschnittliche Befragung durch. Die Teilnehmenden sollen täglich um 18:00 Uhr eine Einladung zur Kurzbefragung erhalten. Zusätzlich soll um 21:00 Uhr am selben Tag eine Erinnerungsmail versendet werden – allerdings nur an diejenigen Personen, die den Fragebogen bis dahin noch nicht vollständig ausgefüllt haben.

Bisherige Umsetzung:

  • Die Serienmails (Einladungen und Reminder) sind in SoSci Survey angelegt (separate Mail-IDs pro Tag).
  • Der Versandzeitpunkt wird über PHP mittels mailSchedule() gesteuert (zeitversetzter Versand über Delay).
  • Für die Reminder-Mails habe ich die Option
    'status' => 'incomplete'
    gesetzt, sodass diese nur an Personen gehen sollten, die den Fragebogen noch nicht abgeschlossen haben.

Das ist mein aktueller PHP Code:

$now = time();

// IDs der Serienmails (2 bis 14)
$seriesMailIds = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];

// IDs der Reminder-Mails (15 bis 27)
$reminderMailIds = [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27];

// Startzeit: morgen um 18:00 Uhr
$startTime = strtotime('tomorrow 18:00');
$delayToStart = $startTime - $now;

// =============================
// Hauptmails um 18:00 Uhr
// =============================
for ($i = 0; $i < count($seriesMailIds); $i++) {
    $delay = $delayToStart + ($i * 86400);
    mailSchedule(false, $seriesMailIds[$i], $delay);
}

// =============================
// Reminder um 21:00 Uhr
// nur wenn NICHT vollständig beantwortet
// =============================
for ($i = 0; $i < count($reminderMailIds); $i++) {
    $delay = $delayToStart + ($i * 86400) + (3 * 3600);

    mailSchedule(
        false,
        $reminderMailIds[$i],
        $delay,
        [
            'status' => 'incomplete'
        ]
    );
}

Die Erinnerungsmails werden so aber leider nicht verschickt. Wenn ich den Zusatz , dass sie nur an Status = incomplete weglasse, werden sie leider an alle Personen versendet, egal ob der Fragebogen schon ausgefüllt wurde oder nicht.
Separat unter den Versand Optionen kann ich die Einstellung leider nicht ändern, da ich sonst einen konkreten Versand-Zeitpunkt einstellen müsste, was ich aber ja über den PHP Code mache.

Ich wäre Ihnen sehr dankbar, wenn Sie mir kurz erläutern könnten, wo hier möglicherweise der Fehler liegt bzw. wie sich die gewünschte Logik korrekt umsetzen lässt.

Vielen Dank im Voraus für Ihre Unterstützung!

Mit freundlichen Grüßen

1 Answer

0 votes
ago by SoSci Survey (370k points)

Bitte überprüfen Sie, ...

... ob bei den "normalen" Einladungsmails jeweils eingestellt ist, dass es sich nicht um Erinnerung/Folgemails handelt und

... ob bei den Erinnerungsmails jeweils eingestellt ist, dass es sich um eine Folgemail zur jeweils zugehörigen Einladungsmails handelt.

Nur wenn das korrekt eingestellt ist, kann SoSci Survey den "status" korrekt ermitteln.

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...