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

0 votes

Guten Tag

Habe die Automatisierung von Erinnerungsserienmails per mailSchedule in den ursprünglichen Befragungen mit der Funktion mailSchedule(false, 9, 600) für ein zehnminütiges Intervall getestet. Hat grundsätzlich funktioniert, die Erinnerungsmail kam aber leider auch, wenn die ursprüngliche Befragung in der Zwischenzeit bereits ausgefüllt wurde.

Haben Sie eine Idee an was das liegen könnte?

Mit dieser Automatisierungsidee hängt auch noch ein anderes Problem zusammen: Wenn ich bei der Erinnerung so vorgehe wie beschrieben, werden ja auch nur solche Probanden erinnert, welche die ursprünglichen Befragungen zumindest mal aufgerufen haben, nicht aber solche, welche die ursprünglichen Befragungen gar nicht erst geöffnet haben.

Hätten Sie diesbezüglich auch noch einen Lösungsvorschlag? Oder bedeuten die beiden Probleme, dass ich wohl doch nicht um die visuelle Inspektion der Teilnahmestatus-Leuchten im Adresspanel herumkomme, wenn ich will, dass mit der Erinnerung alles einwandfrei klappt?

Besten Dank im Voraus.

Mit freundlichen Grüssen,

Patrick Bätschmann

in SoSci Survey (dt.) by s082566 (430 points)

1 Answer

0 votes

Die Funktion mailRevoke() liefert eine Lösung für das erste Problem: Ruft man mailRevoke() im zweiten Fragebogen auf, dann kann man damit den vorher mittels mailSchedule() geplanten Versand unterbinden.

Damit auch solche Probanden eine Erinnerung erhalten, die den ersten Fragebogen nicht ausgefüllt haben, müssten Sie mailSchedule()direkt dort aufrufen, wo Sie die E-Mail-Adresse der Teilnehmer erhalten. Wenn Sie dafür ein Opt-In verwenden finden Sie Details unter: Mehrwellige Befragungen bei Selbstrekrutierung

by SoSci Survey (229k points)
Erstmal danke. Die Lösung des ersten Problems mittels mailRevoke() funktioniert einwandfrei.

Bezüglich des zweiten Problems muss ich aber noch einmal nachhaken:
Grundsätzlich würde das einbauen von mailSchedule in frühere Befragungen, als diejeinige, an die erinnert werden soll, ja schon dazu führen, dass auch Probanden , welche die Befragung noch nicht geöffnet haben, erinnert werden.

Aber dann würde sich ja auch hier wieder das erste Problem ergeben, dass bei den so programmierten Erinnerungen keine Statusüberprüfung möglich wäre, Denn der Schedule-Befehl wäre ja in der früheren Befragung und der Revoke-Befehl, der von der späteren Befragung abhängig und daher dort platziert wäre, könnte folglich den Schedule-Befehl der früheren Befragung nicht aufheben. Also würden die Erinnerungen auch wieder versendet werden, wenn die spätere Befragung in der Zwischenzeit ausgefüllt worden wäre. Oder?

Um allenfalls doch eine Lösung zu finden für das zweite Problem bzw. Ziel, nämlich Erinnerungen für Befragungen zu automatisieren, welche noch gar nicht aufgerufen wurden, schildere ich Ihnen wie das Ganze bei uns aussieht.

Wir verwenden für die Rekrutierung kein opt-in, sondern haben die E-Mail-Adressen vorab und laden Sie inkl. Team-Nummer (zur Dyadenzuordnung) ins Panel. Dann kommen die Probanden mehrmals bei uns vorbei für klinische Interviews etc. Dabei sind die Intervalle zwischen den Terminen flexibel, d.h. nicht für alle Probanden genau gleich und die jeweilige Sosci-Befragung, darf jeweils erst nach dem jeweiligen Treffen versendet werden.
Aus diesen beiden Gründen, muss ich die jeweils erste Serienmail für eine Befragung individualisiert anstossen und zwar immer am Ende des persönlichen Treffens. Sobald die Probanden diesen jeweils ersten Einladungen zu einer Befragung einmal per Link gefolgt sind, klappt die automatisierte Erinnerungen ja einwandfrei mittels den in der zu erinnernden Befragung selbst platzierten mail-Schedule und MailRevoke-Befehlen.

Was ich aber noch bräuchte wäre eine Möglichkeit, dass auch Erinnerungen für die  jeweils ersten Einladungen verschickt werden, wenn die Probanden den ersten Einladungen noch nicht gefolgt waren. Ideal wäre also die Möglichkeit im Serienmail-Bereich festlegen zu können, dass immer wenn eine erste Einladung zu einer Befragung rausgeht, nach bspw. 3 Tagen die entsprechende Erinnerungsserienmail nachfolgen würde für den Fall, dass der ersten Einladung noch nicht gefolgt wurde (also für den Status "noch keine Antwort"). Denn ab dem Punkt, an dem den ersten Einladungen einmal per Link gefolgt wurde, übernehmen ja wie gesagt die mailSchedule- und MailRevoke-Befehle im Fragebogen das Erinnern.

Gibt es dazu keine Möglichkeit? Müsste ich die Erinnerungen für den Fall, dass der jeweils ersten Erinnerung noch nicht gefolgt wurde, folglich auch individuell anstossen wenn ich die ersten Einladungen manuell versende?

Vielen, vielen Dank im Voraus.
> Aus diesen beiden Gründen, muss ich die jeweils erste Serienmail für eine Befragung individualisiert anstossen und zwar immer am Ende des persönlichen Treffens.

Nun, in diesem Fall könnten Sie die Erinnerung natürlich gleich zusammen mit der ursprünglichen Einladung anstoßen. Wenn Sie sich dafür einen gesonderten Mini-Fragebogen (zum Aufruf nur durch die Projektleiter) anlegen, wo Sie z.B. die Teilnehmerkennung abfragen und dann als ersten Parameter in mailSchedule() verwenden, können Sie beides in einem Aufwasch erledigen.
Ok, vielen Dank. Bei dieser Lösung ergäbe sich ja aber auch wieder das Problem, dass der Status nicht überprüft würde. Das heisst, dass die im Mini-Fragebogen programmierte Erinnerung auch dann kommen würde, wenn der Proband vor dem Termin der Erinnerung den Fragebogen bereits ausgefüllt hat. Oder?

Folglich wäre es wahrscheinlich dann doch besser, dass ich, wenn ich die ursprüngliche Serienmail individuell anstosse, die Erinnerung auch gleich individuell anstosse, aber im Serienmail-Bereich und nicht per Mini-Fragebogen. Denn im Serienmail-Bereich wird der Status ja überprüft bevor die Erinnerung versendet wird. Dies wäre also folglich die beste Lösung oder? Denn man kann ja im Serienmail-Bereich nicht festlegen, dass mit jedem Versand der ursprünglichen Einladung  automatisch eine Erinnerung rausgeht nach bspw. 3 Tagen oder?

Erneut danke!
Für diese Problematik gilt natürlich wieder die Lösung via mailRevoke(). Mit einen "Funktions-Fragebogen" nur zum Anlegen der Versand-Termine ließen sich dann mit einem Klick 2 Serienmails und 2-4 Erinnerungen vorbereiten.
Erneut danke für die Hilfestellung.

Ich verstehe aber nicht ganz, weshalb dies das Problem lösen kann. Denn ich kann die im "Funktionsfragebogen" spezifizierten mailSchedule-Befehle ja nur dann aufheben, wenn mailRevoke im selben Bogen platziert wird. Mail-Revoke wäre ja aber vom Fragebogen abhängig, zu dem ich die Probanden im "Funktionsfragebogen" eingeladen hätte. Daher hätte der Revoke-Befehl im Funktionsfragebogen ja nur die Funktion alle Mails zu wiederrufen, weil er ja nicht rausfinden kann, wer den richtigen (späteren) Fragebogen ausgefüllt hat. Oder was verstehe ich falsch?

Dazu verstehe ich auch nicht, wie das mit der Teilnehmerkennung-Abfrage und Funktionsfragebögen umzusetzen ist und habe auch nichts entsprechendes in der Anleitung gefunden. Könnten Sie mir da weiterhelfen oder mich verweisen?

Erneut vielen Dank!
Womöglich verstehe ich das Setting noch nicht ganz... Ich hatte es so verstanden, dass Sie eine Liste der Teilnehmer haben, diese ins Labor holen - und wenn die Leute im Labor waren, dann möchten Sie (für jede Person einzeln) die Einladungen/Erinnerungen für die Onlinebefragung(en) terminieren. Ist das soweit korrekt?

Meine Überlegung war, dass Sie sich die Personenkennung (SERIAL) der Person aus der Adresslsite holen, dann einen (zusätzlichen) Verwaltungs-Fragebogen aufrufen, dort in ein Textfeld die SERIAL eintragen, und mit diesem Wert dann mailSchedule() für alle möglichen Mails aufgerufen wird.

Wer dann den ersten Fragebogen z.B. ohne Reminder aufruft, für den wird die Erinnerung für die erste Einladung mittels mailRevoke() storniert. Die EInladung zu Fragebogen 2 bleibt erhalten.
Doch sie verstehen das Setting einwandfrei. Ihnen war nur nicht bewusst, dass ich noch nicht verstanden hatte, dass man Revoke-Befehle in späteren Fragebögen auch auf Schedule-Befehle in früheren Fragebögen beziehen kann. Daher hatte ich Sie im Laufe des Austauschs gefragt gehabt, ob Revoke-Befehle sich nur auf Schedule-Befehle beziehen können, die im selben Bogen platziert sind wie die Revoke-Befehle selbst.

Durch erneutes nachlesen ist mir nun aber klar, dass sich Revoke-Befehle auf in früheren Bögen platzierte Schedule-Befehle beziehen können. Und mit ihrem letzten Kommentar wurde mir auch klar, dass dies durch Einspeisung der SERIALS auch mit Verwaltungs-Fragebögen klappt. So sollte Ihre Lösung also wirklich funktionieren  :-)

Was das einspeisen der SERIAL angeht, muss diese ja den Parameter false ersetzen. Die Frage ist also nur noch wie ich dies genau umsetzen muss? Einfach SERIAL an dieselbe Stelle pasten oder muss noch zusätzlich irgendwie indiziert werden, dass es sich um eine SERIAL handelt?

Die funktionierende Lösung wäre dann ja demnach: im Verwaltungsbogen per MailSchedule Einladung und Erinnerungen programmieren, wobei false durch SERIAL ersetzt wird. Und im Probandenfragebogen, zu dem ich eingeladen habe, mailRevoke mit false. Dann sollten für den aktuellen Pb (false) alle im Verwaltungsfragebogen geplanten Erinnerungen widerrufen werden.

Erneut vielen Dank!
Ganz genau. Der erste Parameter von mailSchdule() bzw. mailRevoke() kann entweder false sein oder eine SERIAL. Wenn Sie false einsetzen, dann sieht SoSci Survey nach, wer den Fragebogen gerade ausfüllt - das klappt aber nur, wenn der Fragebogen auch per Serienmail gestartet wurde. Wenn das nicht der Fall ist, müssen Sie die passende Seriennummer des Teilnehmers verwenden - wo her auch immer diese stammt, z.B. aus einer offenen Texteingabe im Verwaltungsbogen. Im zweiten Fragebogen, wenn dieser per mailSchedule() und Serienmail aufgerufen wird, kann dann wieder false stehen.
Super. Danke vielmals.

Ich hatte ja noch gefragt, wie ich das Einspeisen der SERIALS in die Schedule-Befehle umsetzen muss. Gemäss der Anleitung Opt-In für Mail-Verteiler sollte dies ja mit einem Opt-In-Befehl möglich sein.

Nun frage ich mich dazu aber:

1. Werden dadurch die E-Mail-Adressen nicht automatisch nochmal ins Panel aufgenommen, was in unseren Fall, da wir diese bereits haben, nicht nur nicht nötig sondern auch unerwünscht ist?
2. Kann die SERIAL nicht einfach an die Stelle des false Parameters kopiert werden und es braucht gar kein Textfeld?

Danke
Nun, (2) wäre möglich, wenn Sie den Fragebogen jedes Mal ändern möchten.

Einfacher ist es, wenn Sie auf Seite 1 ein offenes textfeld (Fragetyp "offene Teteingabe") anlegen, das könnte z.B. die Kennung TX01_01 haben, und auf Seite 2 dann schrieben:

$code = value('TX01_01');
mailSchedule($code, 1, 0);

Nutzen Sie übrigens gerne das "ask related question", wenn es eine inhaltlich neue Frage ist. Die Kommentare hier werden langsam aber sicher ein wenig unübersichtlich :)
Danke für die prompte Antwort.

Mach Sinn. Werde nun alles mal dem technischen Funktionstest unterziehen und mich bei allfälligen Schwierigkeiten per related question erneut an Sie wenden :-)

Eine vorherige related question hab ich, wie Sie gleich sehen werden, jetzt schon in petto.
...