0 votes
in SoSci Survey (dt.) by s086362 (120 points)

Guten Tag,

Ich mache eine Untersuchung in zwei Wellen. Dabei möchte ich NICHT mit Double-Opt-In arbeiten, sondern die Probanden sollen Ende des Fragebogens ihre E-Mail einfach eintragen und drei Tage später einen Link zum zweiten Fragebogen erhalten. Die Zuordnung mache ich dann im Nachhinein mit einer Tracking-Nummer, die die Leute selbst generieren und angeben.
Ich habe zwei Versuchsgruppen, die anfangs des Fragebogens mit Zufallgenerator zugeteilt wurden. Diese sollen dann auf zwei unterschiedliche Fragebögen weitergeleitet werden.

Ich habe auf einer Seite:

if (value('ZG01') == 1) {question('OI01');}
else {question('OI02');}

So sollten die Adressen ja in zwei Adresslisten eingetragen werden: OI01 und OI02. Diese leiten auf unterschiedliche Serienmails und so unterschiedliche Fragebögen.
Auf der nächsten Seite habe ich folgenden Code:

$personID = value('OI01');
$zeitpunkt = strtotime('+3 days'); 
mailSchedule($personID, 1, $zeitpunkt);

$personID = value('OI02');
$zeitpunkt = strtotime('+3 days'); 
mailSchedule($personID, 2, $zeitpunkt);

...und auf dieser Seite erhalte ich aber eine Fehlermeldung: "Dieses Interview wurde nicht in Verbindung mit einer Serienmail begonnen, daher kann mailSchedule() den passenden Adressaten nicht ermitteln."

Wissen Sie, woran das liegt? Ich wäre sehr froh um Ihre Hilfe!

1 Answer

0 votes
by SoSci Survey (327k points)

Das Problem liegt darin, dass Sie mailSchedule() zweimal aufrufen: Einmal mit der korrekten Seriennummer - beim zweiten Mal aber ohne Wert, denn es weurde ja nur eine der Fragen OI01 oder OI02 gestellt. Und entsprechend ist nur eine der beiden Variablen belegt.

Beim "anderen" mailSchedule() fehlt der erste Parameter und entsprechend versucht SoSci Survey vergeblich, den Start aus einer Serienmail-Einladung heraus zu finden. Die Lösung ist denkbar einfach: Verwenden Sie den Filter der ersten Seite auf der zweiten gleich nochmal:

if (value('ZG01') == 1) {
  $personID = value('OI01');
  $zeitpunkt = strtotime('+3 days'); 
  mailSchedule($personID, 1, $zeitpunkt);
} else {
  $personID = value('OI02');
  $zeitpunkt = strtotime('+3 days'); 
  mailSchedule($personID, 2, $zeitpunkt);
}
by s086362 (120 points)
edited by s086362
Danke für die Antwort! Ich habe genau den Code oben eingefügt.
Das ändert zwar etwas, aber löst es noch nicht ganz. Wenn ich jetzt den Fragebogen ausfülle und eine E-Mail angebe, kommt folgende Fehlermeldung:
Es konnte kein Empfänger zur angegeben Personen-Kennung VESZ11DQ8D ermittelt werden. Die Funktion mailSchedule() wird daher nicht ausgeführt.

...komischerweise erhalte ich aber einige Sekunden später auf die angegebene Adresse das entsprechende Serienmail/den Inhalt von OI01-E-Mail bzw. OI02-Mail.
Also liegt das Problem eigentlich nur noch in der Fehlermeldung und die Zeitverzögerung, die nicht gemacht wird. Gesendet wird das Mail aber.

Ich habe soeben auch versucht zu sehen, ob es die Adresse irgendwo speichert. Wenn ich nämlich den Fragebogen nochmals mit der gleichen E-Mail ausfülle, kommt das Mail nochmals, statt einer Fehlermeldung... Unter Adresslisten ist auch nichts gespeichert...
by SoSci Survey (327k points)
Kann es sein, dass OI01 und OI02 gar keine Fragen vom Typ "Opt-In" sind, sondern vom Typ "E-Mail an persönlichen Kontakt" ? Ansonsten muss ich das Problem nochmal en detail analysieren...
by s086362 (120 points)
Nein, sind beide Opt-In für E-Mail Verteiler.
Bei den Einstellungen der Opt-in Frage habe ich: Funktionalität "Double-Opt-In (Bestätigungsmail)", Anonymität ist "Anonymisierter Eintrag", Dubletten habe ich "Dubletten im Befragungsprojekt" verhindern. Im E-Mail-Text, also dem Inhalt der Bestätigungsmail habe ich meinen Text und den Befehl %opt-in%, wo dann auch der Link erscheint. Dieser ist im Reiter "Bestätigung" dann via das entsprechende Serienmail verlinkt.
Unter Variablen sehe ich nur:
OI02 Personenkennung (SERIAL)
Text/Zeichenkette

Vielleicht ist etwas im Serienmail falsch?
Ich habe dort im Reiter Fragebogen-Link halt den Fragebogen, dann Zugangscode "Sichere Codes und bei Mehrfachteilnahme "Einmaliges Ausfüllen mit dem personalisierten Link (inkl. Fortsetzung eines unterbrochenen Interviews)".

Vielleicht ist da etwas falsch?
Vielen Dank!!!
by SoSci Survey (327k points)
Alles klar ... Sie hätten eine neue Frage stellen sollen, statt hier unter der "alten" Frage zu kommentieren :) Denn in dieser Frage hier geht es explizit um eine Eintragung ohne (!) Double-Opt-In.

Das ist auch der Grund Ihres Problems: mailSchedule() ist erst möglich, nachdem die Mailadresse bestätigt wurde. Oder eben, wenn Sie auf das "Double" verzichten. Wie es mit Double-Opt-In klappt, steht hier beschrieben: https://www.soscisurvey.de/help/doku.php/de:survey:opt-in-live
by s086362 (120 points)
Entschuldige, aber ich dachte, es bleibt ja das gleiche Problem, und so bleibt es gerade kompakt, alle Infos in einem.
Ich will nach wie vor ohne Double-Opt-In. Ich habe Double-Opt-In nur angeklickt, weil ich sonst den Reiter "Opt-In E-Mail" und "Bestätigung" gar nicht bearbeiten konnte, also fast nichts bearbeiten konnte im Opt-In Fenster.
Wenn ich statt double-opt-in "Direkt speichern" klicke, was macht es dann? Erstellt es einfach eine Adressliste? Wie kann ich denn OHNE Double-Opt-In einstellen, dass es an die eben gespeicherte drei Tage später eine Mail schickt?

Tut mir leid für die Verwirrung.
Vielen vielen Dank für die schnellen Antworten.
by SoSci Survey (327k points)
> Wenn ich statt double-opt-in "Direkt speichern" klicke, was macht es dann? Erstellt es einfach eine Adressliste?

Jep. Ohne Opt-In-Mail und Rückfrage - deshalb kann man diese Einstellungen auch nicht mehr ändern.

> Wie kann ich denn OHNE Double-Opt-In einstellen, dass es an die eben gespeicherte drei Tage später eine Mail schickt?

Eigentlich genau so, wie Sie es machen wollten: Mit einem mailSchedule() auf der nächsten Seite im Fragebogen.
by s086362 (120 points)
Viiiielen Dank, jetzt funktioniert es endlich! :)

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

...