Massenversand
Der Massenversand für E-Mails (Bulk-Versand) bietet die Möglichkeit, aus einer Vorlage generierte, personalisierte Emails an Hunderte/Tausende von Empfänger zu senden. Die E-Mails können dabei - ähnlich wie bei einem Serienbrief in Word - auf die Daten der Empfänger zugreifen, . Im Gegensatz zum Serienbrief in Word kann der Massenversand aber ohne menschliches Eingreifen vollkommen automatisch durchgeführt werden.
Mögliche Anwendungsfälle:
- Erinnerungs-E-Mail zu Kursbeginn an Teilnehmer
- E-Mail mit Link zur Abgabe von Feedback nach Kursende
- Internes Qualitäts-Management (E-Mail an Fachbereichsleiter, falls Workflow-Schritte oder andere Vorgaben nicht erfüllt sind)
- Auswertungen (z.B. zu Anmeldezahlen)
Abbildung: Beispiel-Email zur Abgabe des Kurs-Feedbacks
Die E-Mails werden mit der Standard-E-Mail-Routine verarbeitet. Dies bringt folgende Vorteile mit sich:
- Die E-Mails können an beliebige Empfänger aus der Datenbank des Kursverwaltungs-Programms geschickt werden, da Sie in einem konfigurierbaren SQL-Skript gesammelt werden.
- Die E-Mails greifen auf das itm:CONNECT-Layout zu und gewährleisten ein einheitliches Design (CI).
- Der Text und der grundsätzliche Aufbau der E-Mail kann ebenfalls frei konfiguriert werden.
- Es können Links generiert werden, die zur Anbindung von erweiterer Funktionalität (Feedback, Wartelisten-Upgrade, usw.) genutzt werden können.
- Die Jobs zum Massenversand können nachts durchgeführt werden, so dass während der Arbeitszeit keine aufwendigen Arbeiten den Server blockieren.
Konfiguration
Die Einstellungen, welche Massenversand-Jobs in welchen Zeitintervallen durchgeführt werden soll, kann im Konfigurations-Tool vhs.Connect.Webservice.Configuration.exe
durchgeführt werden. Die Einstellungen befinden sich unter NotificationOptions
->BulkNotifications
:
Abbildung: Konfiguration der Bulk-Jobs
Pro Massen-Versand sind folgende Einstellungen erforderlich:
Name
: Bezeichnung des JobsMailTemplate
: Name des Mail-Templates, das den Aufbau der E-Mail anhältSqlTemplate
: Name des SQL-TemplatesChronExpression
: Chron-Job-Ausdruck, der das zeitliche Intervall angibt, in dem der Job ausgeführt werden soll, z.B.0 5 1 * *
=> 5:00 Uhr am ersten Tag des MonatsEnabled
: Aktiv
In den weiteren Eigenschaften können einige Experten-Einstellungen vorgenommen werden.
TestRun
: Versand kann über die SQL-Variable@Top
auf wenige Datensätze eingeschränkt werden. Außerdem kann die Email-Adresse auf einen festen Wert gesetzt werden. Diese Einstellungen werden ausTestRunOptions
ausgelesen.ValidationScript
: Hier kann der Name eines C#-Skriptes angegeben werden, das zur Validierung der Empfänger-Datensätze verwendet werden kann. Der Dateiname des Skripts muss mit dem PräfixBulkValidation
beginnen.
Sql-Templates
Die SQL-Templates für den Bulk-Mail-Versand befinden sich im Verzeichnis SqlTemplates\BulkNotifications
.
Beispiel: Absage für Kurstermin (itm:MANAGER)
select @TOP
adr.EMAIL as MailTo
,adr.ADRESSEN_ID as PersonId
,k.KURS_ID as CourseId
,anm.ANMELD_ID as DataContextId
,anm.ANMELD_ID as InternalRegistrationId
,convert(varchar,t.[START],104) as Date
,left(convert(varchar,t.[START],8),5) as StartTime
,left(convert(varchar,t.[END],8),5) as EndTime
,(case
when adr.GESCHLECHT='M' then 'Sehr geehrter Herr'
when adr.GESCHLECHT='F' then 'Sehr geehrte Frau'
else 'Guten Tag ' + adr.[VORNAME] end
) +' '+ adr.[NAME] as Salutation
from
ANMELDUNG anm
inner join KURS k on k.KURS_ID=anm.KURS_ID
inner join ADRESSEN adr on adr.TEILN_ID=anm.TEILN_ID
inner join TERMINE t on k.kurs_id=t.sid
@where
and anm.[STATUS]='Angemeldet'
and len(adr.EMAIL)>0
and not exists (select * from EINWILLIGUNG e where e.[status]=0 and e.[TYP]='Terminabsage' and e.SID=adr.ADRESSEN_ID)
and anm.KURS_ID = @CourseId and t.id = @DateId
Anmerkungen:
- Das Skript kann beliebige Datensätze aus der Datenbank des Kursverwaltungs-Systems auslesen.
- Es kann analog zur Vorgehensweise im Listendruck auf die Variablen
@where
und@top
zugegriffen werden.@where
bietet dem Programm die Möglichkeit, weitere Selektionskriterien an das Skript zu übergeben. - Die Variablen
@CourseId
und@DateId
werden programmatisch übergeben. Bei einem regelmäßig ausgeführten Job sind derartige Angaben i.d.R. überflüssig. - Es gibt die Möglichkeit, ein PRE- und POST-Skript auszuführen. Die Arts des Skript wird über eine Namenskonvention abgeleitet.
- Selektionskriterien für Listendruck können Spalten übergeben werden. Namenskonvention:
__REP_FILTER_
Vergebene Spalten-Namen
Die folgenden Spalten erlauben, die Standard-Funktionalität per Datensatz zu ändern:
Feld | Pflicht | Funktion |
---|---|---|
MailTo |
ja | Empfänger-Adresse |
DataContextId |
ja | ID des Datensatzes (z.B. der Anmeldung, des Kurses) |
DataContextDescription |
nein | Beschreibung von Datensatz für Protokoll-Mail |
DueDate |
nein | Versand-Datum |
CustomMailTemplateName |
nein | Vom Mail-Template aus den Bulk-Mail-Einstellugen abweichendes Mail-Template |
CustomLogMailTemplateName |
nein | Individuelles Mail-Template für Log-Mail |
CustomLogMailTo |
nein | Abweichender Empfänger der Protokoll-Mails |
CustomLogGroupingKey |
nein | Gruppierungs-Wert für Protokoll-Mail: Alle Datensätze mit dem gleichen Wert werden in einer Protokoll-E-Mail zusammengefasst. |
ArchiveMailEnabled |
nein | Konfigurationswert für Mail-Archivierung überschreiben |
ArchiveMailCustomHeader |
nein | Überschrift für Mail-Archiv-Eintrag anpassen |
ArchiveMailCustomNote |
nein | Notiz für Mail-Archiv-Eintrag anpassen |
CourseId |
nein | Falls hier eine Kurs-ID übergeben wird, steht im Mail-Template die vollständigen Kursdaten unter Model.Course zur Verfügung. |
OrderId |
nein | Wenn hier die OrderId der Bestellung übergeben wird, steht im Mail-Template der vollständige Bestellung unter Model.Order zur Verfügung. |
VirtualOrderId |
nein | Wenn hier die ANMELD_ID bzw. BELEG_ID einer normalen Anmeldung übergeben wird, wird ein virtuelles Order-Objekt erstellt und im Mail-Template unter Model.Order zur Verfügung gestellt. |
Mail-Templates
Die Mail-Template unterscheiden von den normalen Mail-Templates, die bspw. beim Versand der Anmeldebestätigung verwendet werden, nur wenig.
Es kann allerdings über $!Model.Data.<Name>
direkt auf alle Felder aus dem SQL-Skript direkt zugegriffen werden. Anbei ein Auschnitt aus einem Mail-Template, dass auf diese Weise die Anrede für den Empfänger einbaut:
<table class="row">
<tr>
<th class="small-12 large-12 first columns">
#if ($!Model.Data.Salutation!="")
<p>$Model.Data.Salutation,</p>
#else
<p>Sehr geehrter Teilnehmer,</p>
#end
#set($course = $Model.Course)
<p>
Sie haben bei uns den Kurs "${course.Title}" besucht. Ihre Meinung ist uns wichtig. Mit einer Rückmeldung würden Sie uns helfen, die Qualität unserer Angebote wie gewohnt weiterzuentwickeln.
</p>
<p>
Bitte nehmen Sie sich kurz Zeit zum Ausfüllen des Feedbackbogens und lassen Sie uns diesen zukommen.
</p>
</th>
<th class="expander"></th>
</tr>
</table>
Manueller (Test-)Versand
Ab Version 3.1.0 kann der Versand zusätzlich zur automatischen zeitgesteuerten Ausführung auch manuell über das Konfigurations-Tool angestoßen werden:
Abbildung: Manueller Bulk-Mail-Versand
Über die Checkbox "Testlauf" kann der Versand im Test-Modus ausgeführt werden. Dabei werden alle E-Mails an die angegebene E-Mail-Adresse geschickt. Die Anzahl der E-Mails kann dabei eingeschränkt werden, solange im zugehörigen SQL-Template die @TOP
-Variable verwendet wird.
Abmeldung von automatischen Mail-Versand
Analog zur Abmeldung von einem Newsletter muss den Mail-Empfängern auch bei der Mail-Automation in den meisten Fällen die Möglichkeit geboten werden, sich von künftigen Mails abzumelden. Dazu muss der folgende Link in der E-Mail untergebracht werden:
``` html
Ich möchte keine Benachrichtigungen zu von mir gebuchten Veranstaltungen erhalten. Hier klicken.
```
Achtung: Der Aufbau des Links kann in Einzelfällen abweichen.
Über den Parameter topic
wird gesteuert, von welcher Mail-Automation die Abmeldung erfolgen soll. Bei Abindung von KuferSQL
wird hier die Kennung des Interessensgebiets, beim itm:MANAGER
die Bzeichnung der Einwilligung eingetragen
Beim Klick wird die Abmelde-Seite der Homepage geöffnet und die Abmeldung automatisch im Kursverwaltungsprogramm vermerkt:
Abbildung: Abmeldung von Mails in Kurs-Verwaltungs-Programm
In KuferSQL
wird dazu im Newsletter-Bereich ein Interessengebiet pro Mail-Automation angelegt, das die Abmeldung von der Massen-E-Mail verkörpern soll. Im itm:MANAGER
wird analog zu dieser Logik ein entsprechender Eintrag bei den Einwilligungen vermerkt.