0 votes
in SoSci Survey (dt.) by s281699 (180 points)

Hallo zusammen,

jetzt habe ich noch eine Frage.

Ich habe folgendes Setup:
In der Eingangsdiagnostik schickt unsere Psychologin den Link zum ersten Fragebogen (A1), der dem Double Opt-in dient und den Link zu Fragenbogen A2 enthält. Innerhalb von Fragebogen A2 wird entschieden, ob die Person zur Wartelistengruppe oder zur Interventionsgruppe gehört. An dieser Stelle hänge ich jetzt:
- Ich möchte, dass die Person, die zur Interventionsgruppe gehört noch eine Serienmail erhält in der sofort der Zugang zu unseren Online-Kurs/ Programm gegeben wird. Nach 12 Wochen soll sie dann den Abschlussfragenbogen, auch per Serienmail erhalten.
- Die Interventionsgruppe erhält nach 12 Wochen den Abschlussfragebogen und im Anschluss auch Zugang zum Programm.

Kann ich das über Serienmails abbildung und wenn ja, wie geht das am besten?

Tausend Dank und liebe Grüße

by SoSci Survey (327k points)
Ich hatte dazu ja bereits unter https://support.soscisurvey.de/?qa=59329/studien-setup-mit-fragebogen-und-eingangsdiagnostik&show=59344#a59344 geantwortet. Wenn Sie beschreiben, was davon Sie brauchen können und wo es hakt, dann kann ich ei wenig konkreter antworten.
by s281699 (180 points)
Ich würde gerne erreichen, dass die Psychologinnen sich nicht in Sosci survey einloggen müssen, falls nicht unbedingt notwendig, daher hätte ich gern, dass nur ein Link verschickt werden muss. Aus der anderen Antwort lese ich, dass sie sich dann erneut einloggen müssen, oder ist das sowieso unumgänglich?
by SoSci Survey (327k points)
Einloggen müssten sie sich nicht - aber nach der skizzierten Idee müssten sie zumindest eine URL aufrufen, und dort die Kategorisierung eintragen.

Bitte beschreiben Sie kurz, wie Sie sich den Prozess optimal vorstellen würden, um die Information (Wartelistengruppe v. Interventionsgruppe) an Ihr Befragungsprojekt zu übermitteln. Wer würde diese Information eingeben?
by s281699 (180 points)
In meiner Vorstellung würde das so funktionieren, bzw. Teile davon funktionieren bereits so:
Die Personen kommen auf unsere Website und buchen die Eingangsdiagnostik (hier ist Soscisurvey noch nicht beteiligt). Während der Diagnostik wird entschieden, ob die Person an der Studie teilnehmen kann oder nicht. Die Psychologin schickt dann der Link zum Double-opt-in Prozess. Den Rest würde ich gern von Sosci survey automatisiert mit Serienmails handhaben lassen.
Im A2 Fragbogen wird dann die Einteilung in Intervention und Kontrollgruppe gemacht. Ich möchte dann auslesen, was das Ergebnis ist und auf Basis des Ergebnisses des Würfelwurfs entweder den Zugang zum Programm schicken, oder erst nach 12 Wochen den Endfragebogen und dann den Zugang zum Programm. Wenn ich das richtig verstanden habe, kann ich das alles über Serienmails und PHP Code lösen?

1 Answer

0 votes
by SoSci Survey (327k points)

Die Psychologin schickt dann der Link zum Double-opt-in Prozess.

SoSci Survey kommt also erst zum Einsatz, wenn der Double-Opt-In-Link verschickt wird. Soweit korrekt? Ist es hier schon wichtig, dass der Link nur einmal benutzt werden kann? Dafür würden sich Listen mit Teilnahme-URLs anbieten. Ansonsten ein öffentlicher Fragebogen.

Im A2 Fragbogen wird dann die Einteilung in Intervention und Kontrollgruppe gemacht.

Also Double Opt-In und eine anschließend Weiterleitung zu A2 oder eine E-Mail mit Link zu A2 ist erstmal keine Herausforderung für Sie, vermute ich.

Jetzt könnte man die Einteilung anhand eines Skalenmittelwertes o.ä. vornehmen. So etwas zu berechnen ist in SoSci Survey mittels valueMean() und einfachen Rechenoperationen möglich (siehe auch Punkte für Antworten zählen für nicht-lineare Möglichkeiten).

Ich möchte dann auslesen, was das Ergebnis ist und auf Basis des Ergebnisses des Würfelwurfs entweder den Zugang zum Programm schicken, oder erst nach 12 Wochen den Endfragebogen und dann den Zugang zum Programm.

Gut, nicht ganz so elaboriert, aber für ein Experiment wesentlich sinnvoller :)

In beiden Fällen können Sie das Ergebnis verwenden, um mailSchedule() aufzurufen. Das könnte so aussehen:

if (value('RG01') == 1) {
  mailSchedule(false, 1, 0);  // Serienmail 1 sofort versenden
} else {
  mailSchedule(false, 2, 20 * 60);  // Serienmail 2 in 20 Minuten versenden
}

RG01 wäre hier die Zufallsvariable. Geht das in die Richtung, was Sie suchen?

by s281699 (180 points)
1. Der erste Fragebogen, den die Psychologin schickt ist ein öffentlicher Link, der auch gleich ist.
2. Erst danach beginnt der Teil mit den individuellen Links bzw. Serienmails, also ab Fragebogen A2.
3. Wir haben in dem Fragebogen A2 einen Würfel, der dann entscheidet, in welche Gruppe die Person eingeteilt wird. Ich möchte also nicht valueMean() nutzen, sondern den Würfel.
Das Ergebnis frage ich jetzt im A2 im PHP Teil so ab:
Wenn 1 gezogen wurde (Intervention), dann bekommen sie Zugang zum Kurs. Solange der Fragebogen nicht beantwortet wurde, kommt auch nicht die E-Mail mit dem Zugang (das ist E-Mail 5).
Wenn Kontrollgruppe (also nicht ==1), dann schick die Mail mit dem Endfragebogen (E-Mail 2 nach 12 Wochen), solange der Fragebogen nicht complete ist, schicke auch nicht den Zugang zum Kurs.

if (value('A601') == 1) {
  mailSchedule(false, 5, 0, ['status' => 'complete']);
} else {
  mailSchedule(false, 2, 85 * 24 * 3600, ['status' => 'complete']);
  mailSchedule(false, 5, 86 * 24 * 3600, ['status' => 'complete']);
}

Stimmt das so? Reicht es den PHP Code in den PHP Funktionen Teil von A2 zu schreiben, oder muss ich noch mehr machen?
by SoSci Survey (327k points)
Das mit dem "complete" funktioniert ein wenig anders. Und zwar würden Sie einfach das mailSchedule() auf die Seite des Fragebogens A2 setzen, ab welcher Sie den Fragebogen als komplett bearbeitet ansehen.

Ihr Code würde fix nach 86 Tagen versenden - und wenn die Seriemails Erinnerungs-/Folgemails wären, würde SoSci Survey kurz prüfen, ob der vorige Fragebogen (in der Serienmail-Reihe) abgeschlossen wurde und sonst den Vesand unterlassen.
by s281699 (180 points)
Was bedeutet denn das:
mailSchedule() auf die Seite des Fragebogens A2 setzen, ab welcher Sie den Fragebogen als komplett bearbeitet ansehen.
Es gibt doch nur ein PHP Reiter, in dem ich Code schreiben kann.
Ich habe jetzt im PHP Reiter das value() der letzte Frage des Fragebogens abgefragt und nutze das als Bedingung für mailschedule().

//Erinnerungsmail aka Serienmail 3 wird verschickt nach 5 Tagen
mailSchedule(false, 3, 5 * 24 * 3600, ['status' => 'no-response']);


// if: schicke Programm (SM 5, A3) an Interventionsgruppe, wenn letzte Frage A420 in A2 ausgefüllt wurde,
// außerdem starte die 12 Wochen und schicke SM 2 (B)
// elseif: schicke nach 12 Wochen Mail 2 (B) wenn Kontrollgruppe
// else: wenn A420 nicht ausgefüllt, schicke Reminder SM 3

if (value('A601') == 1 && value('A420') =! -9) {
  mailSchedule(false, 5, 0);
  mailSchedule(false, 2, 85 * 24 * 3600);
}  
elseif (value('A601') == 2 && value('A420') =! -9) {
  mailSchedule(false, 2, 85 * 24 * 3600);
}
else {
  mailSchedule(false, 3, 5 * 24 * 3600, ['status' => 'incomplete']);
}

Wie funktioniert denn complete?
by SoSci Survey (327k points)
> Es gibt doch nur ein PHP Reiter, in dem ich Code schreiben kann.

Der Reiter "PHP-Funktionen" (meinen Sie diesen?) ist dafür da, Funktionen zu definieren, die Sie auf anderen Seiten im Fragebogen verwenden. Die übliche Anwendung von PHP-Code ist es, dass man ein Element "PHP-Code" auf eine Seite des Fragebogens zieht, und dort den PHP-Code einträgt.

> Wie funktioniert denn complete?

Wenn Sie 'status' => 'complete' eintragen, wird die Folgemail nur an die Personen verschickt, welche zum Zeitpunkt wenn die E-Mail verschickt wird, den ursprünglichen Fragebogen bis zur letzten Seite ausgefüllt haben.
by s281699 (180 points)
Meine Serienmails werden nicht verschickt, ich weiß nicht, wo der Fehler ist und weiß auch nicht, wie ich das debuggen kann. Meine Variablen haben die richtigen Werte, aber es wird nichts verschickt, wenn ich den Fragebogen starte und ausfülle:

// if: schicke Programm (SM 5, A3) an Interventionsgruppe, wenn letzte Frage A703 in A2 ausgefüllt wurde,
// außerdem starte die 12 Wochen und schicke SM 2 (Fragebogen B_1)
// elseif: schicke nach 12 Wochen SM 7 (Fragebogen B_2) wenn Kontrollgruppe
// else: wenn A703 nicht ausgefüllt, schicke Reminder SM 3

if (value('A601') == 1 && value('A703') != -9) {
  mailSchedule(false, 5, 0);
  mailSchedule(false, 2, 85 * 24 * 3600);
}  
elseif (value('A601') == 2 && value('A703') != -9) {
  mailSchedule(false, 7, 85 * 24 * 3600);
}
else {
  mailSchedule(false, 3, 5 * 24 * 3600, ['status' => 'incomplete']);
}
by SoSci Survey (327k points)
Fügen Sie als allererstes bitte eine Zeile ein, damit Sie beim Ausfüllen im Debug-Modus sehen, ob der Code überhaupt ausgeführt wird, also z.B. am Anfang Ihres Codes:

debug('Code wird ausgeführt');

Das "Code wird ausgeführt" muss dann im Debug-Modus direkt im Fragebogen erscheinen. Wenn nicht, dann wird der PHP-Code nicht ausgeführt. Stellen Sie sicher, dass Sie ein Element "PHP-Code" in die Fragebogen-Seite gezogen und den Code darin platziert haben.

Im nächsten Schritt prüfen Sie bitte, was die Debug-Information (rechts oben) zu A601 und A703 sagt. Posten Sie gerne die vollständige Debug-Information von der Seite.
by s281699 (180 points)
edited by s281699
Der Code wird scheinbar nicht ausgeführt, jedenfalls erscheint Code wird ausgeführt nicht in meiner Debug Info. Ich habe den Code nicht auf der Fragebogenseite, sondern im PHP Reiter, dort steht, ja, dass der code im gesamten Fragebogen zur Verfügung steht, daher bin ich davon ausgegagen, dass es auch so funktioniert.

Ich habe den Code jetzt auf der Seite platziert, er wird jetzt auch ausgeführt. Jetzt habe ich nur noch das Problem, dass ich die E-Mail nur schicken, will, wenn die eine Frage ausgefüllt wird. Jedoch bekomme ich hier jedesmal diese Meldung:

Warnung (Seite 5)
Die Variable A703 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln.

Ich nutze diesen Wert erst auf Seite 5, und will ihn dann direkt abfragen. Wie kann ich das machen? Ist Value dafür nciht die richtige Funktion?
Danke
by SoSci Survey (327k points)
> ch habe den Code nicht auf der Fragebogenseite, sondern im PHP Reiter, dort steht, ja, dass der code im gesamten Fragebogen zur Verfügung steht

Er steht dort zur Verfügung, wird aber nicht ausgeführt. Sie können in diesem Karteireiter Funktionen definieren, z.B.

function abc() {
    html('<h1>Inhalt</h1>');
}

Und auf den Seiten selbst können Sie diese Funktionen dann innerhalb von "PHP-Code" Elementen aufrufen:

abc();

> Ich nutze diesen Wert erst auf Seite 5, und will ihn dann direkt abfragen.

Dann packen Sie den PHP-Code bitte auf Seite 6, denn die Antwort von Seite 5 wird erst mit dem Klick auf "Weiter" zum Server übermittelt.

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

...