This is an old revision of the document!
If you want to use the serial mail function for a multi-wave survey, you actually need the email addresses of the respondents in advance. Eventually, respondents will need to be invited to participate in a subsequent wave of surveys at some point.
However, if participants are recruited through links on a website, social media or via advertising banners, their email addresses are not known in advance. This chapter shows a technical solution where respondents enter their email address in the first questionnaire and this is used to automatically send the invitation to the second questionnaire. To assign the data, pseudonyms are used so that the data set does not contain any personal data.
The e-mailadress is required via a question of the type Opt-In for mailing list. You should think early on where in the first questionnaire you would like to place this question. Of course, in any case, you should mention early on that this is a survey with multiple questionnaires and that the questionnaire will ask for the email address.
Some respondents do not want to provide their email address (whether due to spam/advertising concerns or privacy considerations) and thus cannot be invited to the second part of the survey.
Asking for the email address very early in the first questionnaire has the following advantages:
mailResume()
and breaker pages. This allows to collect all data of a participant in one data line. Otherwise, you will receive several data lines for each participant (one per questionnaire).Asking for the email address by the end of the first questionnaire has the following advantages:
A total of three questionnaires are required, hereafter referred to as “A1”, “A2” (for the first wave) and “B”. Create them under Compose questionnaire. Which identifiers you actually use for the questionnaires is irrelevant.
Unter Fragebogen zusammenstellen → Karteireiter Einstellugen legen Sie für die Fragebögen “A2” und “B” bitte den Zugriffsmodus “Serienmail” fest. So ist sichergestellt, dass sich nicht isoliert aufgerufen werden können.
Under Compose questionnaire → Manage questionnaires please select questionnaire A1 under Standard questionnaire and save this setting ()..
The questions for the first survey time point can be distributed between “A1” and “A2” as desired.
Create a question of type Opt-In for mailing list in the question catalog. Under Privacy in the tab Settings for the question “Pseudonym” must be entered here. At Functionality the default setting should be “Double Opt-In”. You must also enter at least a Subject and a Content of the Confirmation Mail. The latter text must have the wildcard %opt-in%
. At this point, the confirmation link is then inserted during the dispatch.
With double opt-in, a confirmation email is first sent to the registered email address. Only when the participant clicks on the link in the confirmation mail, the e-mail address will be added to the mail distribution list (Send invitations → Address list). This ensures that the email address is correct and that a third party does not simply register foreign email addresses for the study.
Then insert the opt-in question at an appropriate place in questionnaire A1.
Now select Send Invidation. There, SoSci Survey may first ask you to agree on an AVV. This is because e-mail addresses are personal data, which enjoy special protection under the DSGVO, among other things. You must comply with some information obligations (e.g. in the questionnaire) and you must agree on a GCU before using a subcontractor (e.g. Sosci Survey GmbH) to process such data. If you are unsure, please contact the data protection officer (DPO) at your university, institution or company.
Now please create two serial mails under Send invitations → Serial mails.
mailSchedule()
.Now please open the opt-in question again for editing. Under Additional settings, tab Confirmation select under Forward after confirmation → Questionnaire link off now please select the serial mail 1. Save this setting ().
The process so far is as follows:
Prinzipiell könnten Sie mit der bisherigen Lösung schon arbeiten. Die E-Mail-Adressen werden in der Adressliste gespeichert und Sie könnten die Serienmail Nr. 2 manuell versenden, um die Einladung zum zweiten Erhebungszeitpunkt zu versenden.
Oftmals soll der Versand der Einladung aber automatisiert erfolgen. Entweder zu einem vorab definierten Zeitpunkt oder eine bestimmte Zeitspanne nach dem Aufrunf von A2. Dafür wird im Fragebogen A2 PHP-Code verwendet, spezifisch der Befehl mailSchedule()
.
Fügen Sie auf der ersten Seite des Fragebogens A2 ein Element “PHP-Code” ein und darin den folgenden Befehl:
mailSchedule(false, 2, 7 * 24 * 3600);
Der Befehl mailSchedule()
hat drei Parameter.
false
vermerkt.strtotime('+7 days')
oder für einen vordefinierten Zeitpunkt strtotime('2020-10-31 08:00:00')
.Tipp: Tragen Sie zum Testen für den dritten Parameter einen kleinen Wert ein, z.B. 300 Sekunden (5 Minuten).
Tipp: Nutzen Sie zum Testen Wegwerf-Mailadressen (Chip: Wegwerf-Email-Adressen. Denn wenn eine E-Mail-Adresse schonmal per Opt-In eingetragen wurde, dann werden u.U. keine weiteren Bestätigungsmails mehr an diese Adresse versendet.
Man kann die Registrierung mit einer E-Mail-Adresse beliebig oft testen, sofern man die Adresse anschließend wieder aus der Adressliste löscht (Einladungen verschicken → Adressliste). Eine E-Mail-Adresse ist nach Versand der Opt-In-Mail für 10 Minuten blockiert, bevor eine weitere Opt-In-Mail versandt werden kann.
Tipp: Starten Sie den ersten Fragebogen unter Fragebogen zusammenstellen im Debug-Modus (). Dann können Sie auch außerhalb des in den Projekt-Einstellugen festgelegten Befragungszeitraums testen.
Wenn Sie nun den ersten Fragebogen aufrufen, dort eine E-Mail-Adresse eintragen und den Link in der Bestätigungsmail anklicken, dann können Sie unter Einladungen verschicken → Adressliste den neuen Adresseintrag sehen. Und unter Serienmail sehen Sie auch, dass der Versand der Serienmail an eine Adresse vorbereitet ist.
Wenn Sie mehrere Einladungen zu unterschiedlichen Zeitpunkten versenden möchten, dann wiederholen Sie den mailSchedule()
-Befehl einfach für jede Serienmail. Im folgenden Beispiel werden z.B. Einladungen nach 7, 14 und 21 Tagen versendet (Nummern 2, 3, 4) und jeweils eine Erinnerung (Nummern 5, 6, 7) am folgenden Tag.
// Einladungsmails mailSchedule(false, 2, 7 * 24 * 3600); mailSchedule(false, 3, 14 * 24 * 3600); mailSchedule(false, 4, 21 * 24 * 3600); // Erinnerungen mailSchedule(false, 5, 8 * 24 * 3600, ['status' => 'no-response']); mailSchedule(false, 6, 15 * 24 * 3600, ['status' => 'no-response']); mailSchedule(false, 7, 22 * 24 * 3600, ['status' => 'no-response']);
Eine Erinnerungsmails erstellen Sie genauso wie eine Serienmail. Anschließend wählen Sie im Karteireiter Erinnerung/Folgemail bei Erinnerung/Folgemail für bitte die Serienmail, an welche Sie den Teilnehmer erinnern möchten.
Im Fragebogen A1 sollten Sie den Teilnehmer auf Folgendes hinweisen:
Als Alternative zur automatisierten Vorbereitung des Versands von Serienmail Nr. 2 können Sie diese Serienmail auch manuell versenden – mailSchedule()
fällt dann weg und eventuell auch Fragebogen A2.
Dieses Vorgehen ist sinnvoll, wenn alle Teilnehmer den Fragebogen ungefähr zur selben Zeit ausfüllen sollen. Zwar erstreckt sich der Erhebungszeitraum weiterhin über mehrere Tage, weil nicht jeder sofort auf die E-Mail reagiert – gerade bei einer längeren Rekrutierung sind die Daten aber in zeitlicher Hinsicht besser vergleichbar als beim automatischen Versand (wo dafür der Zeitabstand zwischen den beiden Erhebungswellen gleich ist).
Im Datensatz haben Sie am Ende pro Teilnehmer drei Datenzeilen – zumindest wenn der Teilnehmer eine gültige E-Mail-Adresse angegeben und die Links in beiden E-Mails angeklickt hat:
Wenn alle Antworten später in der Statistik-Software zu einer Datenzeile verschmolzen werden sollen (MERGE), dann ist es zweckmäßig, in allen drei Fragebögen unterschiedliche Fragen zu verwenden, sodass die Variablen unterschiedliche Kennungen bekommen. Falls Fragen sowohl in “A” wie auch in “B” abgefragt werden sollen, kopieren Sie einfach die entsprechende Rubrik.
Statt unterschiedliche Fragebögen für “A2” und “B” zu verwenden, kann man die Fragen auch in einem Fragebogen platzieren und mit Unterbrecherseiten arbeiten. Das hat den Vorteil, dass die Daten in einer Datenzeile im Datensatz gespeichert werden. Außerdem können Filter in Teil “B” auf Antworten aus “A2” zurückgreifen. In diesem Fall kommt mailResume()
statt mailSchedule()
zum Einsatz.
Das folgende Beispiel demonstriert die Verwendung von mailResume()
und mailRevoke()
für eine Erhebung mit drei Messzeitpunkten, wobei alle Daten eines Teilnehmers in derselben Datenzeile gespeichert werden. Mögliche Einsatzbereiche sind z.B. eine Verlaufsmessung, Interventionsstudie oder Prä-/Post-Untersuchungen.
Alle Fragebogen-Teile werden in einem Fragebogen hintereinander angeordnet. Als Zugriffsmodus für den Fragebogen wird “Serienmail” eingestellt.
Falls die E-Mail-Adressen der Teilnehmer nicht vorab bekannt sind, wird ein zweiter Fragebogen mit einer Frage Opt-In für E-Mail-Verteiler erstellt. Für diesen Fragebogen wird der Zugriffsmodus “öffentlich” eingestellt.
Legen Sie eine Serienmail (im Beispiel ID 1) an, welche nach 7 Tagen als Einladung für den Messzeitpunkt 2 verschickt werden soll. Im Karteireiter “Erinnerungen/Folgemail” wird unter “Art der Folgemail“ eingestellt, dass es eine Erinnerung oder Fortsetzung ist. Im Text der E-Mail muss (wie üblich) der Platzhalter %link% verwendet werden.
Legen Sie zwei weitere Serienmails (im Beispiel ID 2 und 3) an. Diese dienen als Erinnerung, wenn der Teilnehmer den zweiten Fragebogen-Teil nach 9 bzw. 11 Tagen noch noch ausgefüllt hat (Einstellungen wie bei der Serienmail 1).
Legen Sie drei weitere Serienmails (im Beispiel ID 4-6) an: Eine Einladung zum dritten Teil und zwei Erinnerungen (Einstellungen wie bei der Serienmail 1).
Die Werte (Zahlen) im PHP-Code sind entsprechend der jeweiligen Studie anzupassen, insbesondere Zeitabstände und die Serienmail-IDs.
Zwischen dem ersten und zweiten Fragebogen-Teil wird beim Fragebogen zusammenstellen eine zusätzlich Seite eingefügt (Unterbrecherseite). Die Unterbrecherseite hat folgende Funktion:
mailResume()
die Einladung zum nächsten Fragebogen Teil.
Wichtig: Der Teilnehmer muss sich tatsächlich bis zu der Seite auf welcher der PHP-Code eingefügt wurde durchklicken. Ansonsten wird keine Einladungsmail verschickt. Ist die letzte Seite des ersten Fragebogens bereits eine Verabschiedung, kann auch diese Seite als Unterbrecherseite dienen. In diesem Fall benötigen Sie keine weitere Seite zwischen den beiden Fragebogen-Teilen. Beachten Sie dann aber bitte, dass die Verabschiedung nicht “in die Seite gezogen”, sondern mit dem Befehl text()
im PHP-Code angezeigt wird. Falls der Text bereits auf die Seite gezogen wurde, entfernen Sie ihn von der Seite bevor (oder nachdem) Sie den PHP-Code einfügen.
Beim Fragebogen zusammenstellen wird auf der Unterbrecherseite folgender PHP-Code platziert:
// Die Zeit des ersten Aufrufs der Unterbrecherseite wird in Variable $timepart1 gespeichert // isset() und registerVariable() verhindern, dass diese Zeit beim erneuten Aufruf der Seite (z.B. Neuladen der Seite) geändert wird und/oder dass E-Mails doppelt geplant werden if (!isset($timepart1)) { // Zeit speichern $timepart1 = time(); registerVariable($timepart1); // Einladung mit der Serienmail ID 1 zum zweiten Messzeitpunkt nach 7 Tagen senden // Der Zeitabstand wird jeweils in Sekunden angegeben: 7 x 24 x 3600 Sekunden = 7 Tage mailResume(false, 1, 7 * 24 * 3600); // Erste Erinnerungsmail mit Serienmail ID 2 nach 9 Tagen senden // (d.h. zwei Tage nach der ersten Einladung zum zweiten Messzeitpunkt) mailResume(false, 2, 9 * 24 * 3600); // Zweite Erinnerungsmail mit Serienmail ID 3 nach 11 Tagen senden // (d.h. vier Tage nach der ersten Einladung) mailResume(false, 3, 11 * 24 * 3600); } // Prüfen, wie viel Zeit seit dem ersten Aufruf der Seite vergangen ist if ((time() - $timepart1) < 7 * 24 * 3600) { // Unterbrecherseite anzeigen falls es weniger als 7 Tage sind, // damit Teilnehmer nicht schon früher die Fragen des zweiten Messzeitpunkts sehen können. option('resume', true); // Kein Hinweis, dass das Interview fortgesetzt wird option('nextbutton', false); // Weiter-Knopf ausblenden (Interview unterbrechen) text('ende1'); // Evtl. eine Verabschiedung zum ersten Fragebogen-Teil anzeigen } else { // Ist der Teilnehmer nach 7 Tagen zurückgekehrt und somit die aktuelle Zeit minus die neue Zeit-Variable // größer als 7 Tage ist, dann wird die Befragung auf der nächsten Seite fortgesetzt goToPage('next'); }
Zwischen dem zweiten und dritten Fragebogen-Teil wird erneut eine Unterbrecherseite platziert oder alternativ auf der letzten Seite des zweiten Fragebogen-Teils. Der PHP-Code entspricht weitgehend dem obigen Code. Allerdings sorgt mailRevoke() dafür, dass eventuell noch ausstehende Erinnerungen (Serienmails ID 2 und 3) nicht mehr versendet werden.
// Neue Zeit-Variable für die zweiten Zeitpunkt if (!isset($timepart2)) { $timepart2 = time(); registerVariable($timepart2); // Erinnerungsmails löschen, falls diese noch ausstehen mailRevoke(false, 2); mailRevoke(false, 3); // Einladung zum dritten Messzeitpunkt mit der Serienmail ID 4 nach 7 Tagen senden mailResume(false, 4, 7 * 24 * 3600); // Erste Erinnerungsmail nach 9 Tagen mailResume(false, 5, 9 * 24 * 3600); // Zweite Erinnerungsmail nach 11 Tagen mailResume(false, 6, 11 * 24 * 3600); } // Unterbrechung für 7 Tage if ((time() - $timepart2) < 7 * 24 * 3600) { option('resume', true); option('nextbutton', false); } else { goToPage('next'); }
Auf der vorletzten Seite des Fragebogens müssen noch die eventuell ausstehenden Erinnerungsmails gelöscht werden.
mailRevoke(false, 5); mailRevoke(false, 6);
Wichtig: Platzieren Sie auf den Unterbrecherseiten keine Fragen – der PHP-Code oben sieht lediglich einen Text vor (Danke, Verabschiedung und Hinweis auf den nächsten Messzeitpunkt).
Hinweis: Die Einladung zum dritten Fragebogen-Teil erfolgt relativ zu dem Zeitpunkt, wenn der Teilnehmer der Einladung zu Teil 2 gefolgt ist. Wenn er also Teil 2 erst 10 Tage nach Teil 1 ausfüllt, dann wird die Einladung zu Teil 3 erst 17 Tage nach dem Ausfüllen von Teil 1 verschickt. Alternativ könnte man alle (!) Einladungen und Erinnerungen gleich am Ende von Teil 1 einplanen. Der Filter am Ende von Teil 2 müsste sich dann auf $timepart1
statt $timepart2
beziehen.
Hinweis: In der Adressliste ist der Teilnahmestatus für die Fortsetzungs- und Erinnerungs-Serienmails nicht ersichtlich (graue Markierung für die Serienmails). Der Teilnahmestatus wird nur für eine eventuelle Opt-in Serienmail angezeigt. Um den Teilnahmestatus jedoch nachzuvollziehen kann man sich die bereits erhobenen Daten ansehen. Eine individuelle Zuordnung anhand der Variable SERIAL ist allerdings nur möglich, wenn die E-Mail-Adresse mit der Einstellung “Personalisierter Eintrag” für “Anonymität” importiert wurden.
Tipp: Man kann dieselben Erinnerungsmails mehrfach verwenden (mit einem allgemein gefassten Erinnerungstext). Im obigen Beispiel könnte man z.B. Serienmail ID 2 für alle Erinnerungen (also statt den Serienmails ID 3, 5 und 5) senden.