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,

ich führe eine Tagebuchstudie durch, bei der die Teilnehmer 6 Befragungen pro Tag (T1-T6) zu (Versandzeitpunkte von T2-T6 in Abhängigkeit vom Ausfüllen der ersten Befragung) sehr pünktlich ausfüllen müssen. Wenn die Teilnehmer 5 Minuten nach 'mailsent' der Fragebögen T2-T6 den Link noch nicht geöffnet oder den Fragebogen zu weniger als 50% ausgefüllt haben, wollen wir die Teilnehmer anrufen und an die Bearbeitung des Fragebogens erinnern. Das ist nicht nur für die Teilnehmer ziemlich aufwändig, sondern auch für die Studienleitung aufwändig zu überwachen. Daher würde ich gern eine automatische Benachrichtigung installieren, sodass wir (die Studienleitung) automatisch eine Mail erhalten, wenn die o.g. Bedingungen nicht erfüllt sind.

T2-T6 werden per mailschedule() verschickt. Nun habe ich überlegt, eine extra Serienmail und einen extra Fragebogen einzurichten, der auch mit mailSchedule angewiesen und ggf. mit mailRevoke zurückgehalten wird. Ich habe allerdings meine Zweifel, dass nur die Studienleitung diese Mail erhält, sondern auch die Studientielnehmer. Oder kann man da bei mailSchedule auch eine E-Mail Adresse eingeben?

Hätten Sie noch eine Idee zur Lösung des Problems?

Ich bedanke mich im Voraus!

in SoSci Survey (dt.) by s068944 (390 points)

1 Answer

0 votes

Dafür habe ich spontan keine Lösung.

Der Haken dabei ist ja, wie Sie schon bemerken, dass die Mails an einen anderen Adressaten gehen müssen als an den aktuellen Interviewteilnehmer. Das hat mehrere Implikationen:

(a) Mit mailSchedule() würde die Serienmail überhaupt nur einmal verschickt, denn jede Serienmail wird an jeden Adressaten nur max. einmal verschickt. Stattdessen könnte man aber mailResume() verwenden.

(b) Die mittels mailResume() vorbereiteten Versendungen können nur im laufenden Interview mittels mailRevoke() storniert werden. Aber um Zeitpunkt wenn T2 ausgefüllt wird, läuft ja ein anderes Interview.

SoSci Survey fehlt beim Ausfüllen von T2 schlicht und ergreifend die Möglichkeit, die richtige Serienmail zu finden.

Ich könnte mir eine neue Funktion (z.B. mailNotification()) vorstellen, die wie mailSchedule() funktioniert, aber die Mail (nur) an die Projektleitung verschickt. In diesem Fall könnte man den Versandeintrag dennoch an den Teilnehmer binden und so gezielt mittels mailRevoke() stornieren. Allerdings müssten Sie ein wenig Zeit (1-3 Wochen) mitbringen, wenn Sie solch eine Funktion gerne hätten?

Die Alternative wäre, dass man einmal pro Tag die Adressliste abruft und prüft, wer seinen Link nicht angeklickt hat. Aber nachdem Sie den Versandzeitpunkt ja dynamisch ermitteln, wäre das eine wenig erfreulich Tätigkeit...

by SoSci Survey (79.6k points)
Könnten Sie bitte mitteilen (a) auf welchem Server Sie arbeiten (www.soscisurvey.de?) und (b) wie Ihr PHP-Code genau aussieht?

Die Personenkennung (SERIAL) des Teilnehmers müssten Sie mit dem Platzhalter %serial% oder %caseSerial% (da bin ich spontan nicht sicher) in die E-Mail schreiben können.
(a) www.soscisurvey.de
(b) hier mein Test-Code:
mailSchedule(false, -8, 60);
mailSchedule(false, 4, 120, array(
  'to.mail' => 'mused.studie@med.uni-heidelberg.de'));
mailSchedule(false, -9, 180);
mailSchedule(false, 5, 240, array(
  'to.mail' => 'mused.studie@med.uni-heidelberg.de'));
mailSchedule(false, -10, 300);
mailSchedule(false, 6, 360, array(
  'to.mail' => 'mused.studie@med.uni-heidelberg.de'));
mailSchedule(false, -11, 420);
mailSchedule(false, 7, 480, array(
  'to.mail' => 'mused.studie@med.uni-heidelberg.de'));
mailSchedule(false, 1, 540);

Ich habe dann für jede Befragung (für die Teilnehmer) und für jede Nachricht mit mailRevoke() an die Projektleitung einen extra Fragebogen und eine extra Serienmail angelegt.

Es kam schon öfter die Frage auf, warum ich negative IDs habe (weiß ich nicht), funktioniert sonst aber alles ganz ok so.

Zur SERIAL: also bei der Funktion mailSend z.B. muss ich die Info, die ich am Ende in der Mail stehen haben möchte ja im Fragebogen "vorbereiten", nämlich so: mailSend('mused.studie@med.uni-heidelberg.de', 9, 0, NULL, caseSerial(), value('ZS01_01')); und dann kann ich in meine Mail schreiben %custom1% usw.
Das müsste ich doch dann bei mailSchedule auch irgendwie machen, oder? Sonst weiß doch das System nicht, was ich will, oder?
Arg ... ich hatte in meiner Antwort oben einen Fehler. Es muss 'to.email' (mit "e") heißen, inzwischen auch in der Anleitung dokumentiert: https://www.soscisurvey.de/help/doku.php/de:create:functions:mailschedule

Und ich nehme aus Ihrer Rückfrage das Feedback mit, dass eine Fehlermeldung bei ungültigen Optionen hilfreich wäre.
Ich teste gerade und immerhin funktioniert es jetzt schon, dass die Mail an den Projektleiter gesendet werden - vielen Dank dafür! Allerdings wird die Mail auch dann versandt, wenn die Befragung bis zum Ende durchgeführt wurde. Ich möchte aber eigentlich nur dann benachrichtigt werden, wenn die Befragung NICHT oder nicht vollständig ausgeführt wurde.

Wenn ich noch eine Detailfrage hierzu stellen darf: ich möchte gern, dass die Nachricht an den Projektleiter nur dann versendet wird, wenn eine bestimmte Fragebogenseite noch nicht erreicht ist bzw. wenn ein bestimmtes Item noch nicht bearbeitet wurde. Ginge das auch?
> Allerdings wird die Mail auch dann versandt, wenn die Befragung bis zum Ende durchgeführt wurde. Ich möchte aber eigentlich nur dann benachrichtigt werden, wenn die Befragung NICHT oder nicht vollständig ausgeführt wurde.

Dann nutzen Sie bitte mailRevoke() in dem Fragebogen, der aufgerufen wird, wenn der Teilnehmer den Link verwendet.

Alternativ können Sie die Serienmail auch als Folgemail anlegen (z.B. Nr. 4 als Folgemail für Nr. -8) und in mailSchedule() einstellen, dass nur säumige Teilnehmer die Mail bekommen sollen.

>  ich möchte gern, dass die Nachricht an den Projektleiter nur dann versendet wird, wenn eine bestimmte Fragebogenseite noch nicht erreicht ist

Dann ist mailRevoke() das Mittel der Wahl.
...