Um eigene Vorlagen zu verwenden, muss in der Systemkonfiguration eine Konfigurationsdatei angelegt werden mit dem Typen TECR_CONFIG
:
Dateiinhalt
Der Dateiinhalt kann Beispielsweise so aussehen:
{
"langConfigs": {
"0": {
"requestMailTemplateName": "Vorlagen/Terminanfrage/Anfrage.ftl",
"requestDeclinedMailTemplateName": "Vorlagen/Terminanfrage/Stornierung.ftl",
"requestReminderMailTemplateName": "Vorlagen/Terminanfrage/Erinnerung.ftl",
"requestInteractionAnswerMailTemplateName": "Vorlagen/Terminanfrage/Interaktions_Bestätigung.ftl",
"upcomingTaskTemplateName": "Vorlagen/Terminanfrage/Bevorstehender_Termin_Erinnerung.ftl",
"requestMailTemplateNameTxt": "Vorlagen/Terminanfrage/Anfrage_Txt.ftl",
"requestDeclinedMailTemplateNameTxt": "Vorlagen/Terminanfrage/Stornierung_Txt.ftl",
"requestReminderMailTemplateNameTxt": "Vorlagen/Terminanfrage/Erinnerung_Txt.ftl",
"requestInteractionAnswerMailTemplateNameTxt": "Vorlagen/Terminanfrage/Interaktions_Bestätigung_Txt.ftl",
"upcomingTaskTemplateNameTxt": "Vorlagen/Terminanfrage/Bevorstehender_Termin_Erinnerung_Txt.ftl"
},
"1": {
"requestMailTemplateName": "Vorlagen/Terminanfrage/Anfrage_De.ftl"
},
"2": {
"requestMailTemplateName": "Vorlagen/Terminanfrage/Anfrage_En.ftl"
}
}
}
Die Struktur ergibt sich wie Folgt:
langConfigs
: Hier werden die Vorlagen für die Sprachen der User definiert.
Achtung: Die Sprache der Vorlage bezieht sich auf die Sprache des Absender-User
Die Schlüssel 0, 1, 2, ...
entsprechen den Unterstützten Sprachen von Levatis
Aktuell unterstützte Werte
Innerhalb einer Sprachkonfiguration werden die Einzelnen Templates angegeben
Wenn eine Option nicht angegeben wird, wird sie zuerst in der Standard Sprach-Konfiguration (0
) gesucht, wird dort auch nichts gefunden, wird die Standard-Vorlage von Levatis verwendet.
Für jede Option gibt es einmal eine Normale Variante und eine mit dem Appendix Txt
Die Normale Option gibt die HTML Vorlage für die E-Mail an
Die Txt
Variante ist eine Reine Text Repräsentation die eventuell von manchen E-Mail Clients angezeigt wird, falls die Mail z.B. im Spam landet.
Folgende Optionen sind Verfügbar:
requestMailTemplateName
requestDeclinedMailTemplateName
requestReminderMailTemplateName
requestInteractionAnswerMailTemplateName
upcomingTaskTemplateName
requestMailTemplateNameTxt
requestDeclinedMailTemplateNameTxt
requestReminderMailTemplateNameTxt
requestInteractionAnswerMailTemplateNameTxt
upcomingTaskTemplateNameTxt
Die Werte der einzelnen Optionen gibt den Pfad der Vorlage an. Diese Bezieht sich auf Dokumente welche im LEVATIS_REGIE
Objekt hochgeladen wurden
Im Oben angeführten Beispiel liegen die Vorlagen alle in einem Unterordner Terminanfrage
im Vorlagen
Ordner
Die Datei Endung ist nicht relevant. FTL
ist das Technische Format (siehe Dokumentation) in welchem die Vorlagen vom System gelesen werden, jedoch ist z.B. .html
oder .txt
genauso möglich.
Weiters müssen die Vorlagen als Datei im LEVATIS_REGIE
Objekt als Dokument in einem beliebigen Ordner hochgeladen werden:
Vorlagen Inhalt
Die Vorlagen verwenden Apache FreeMarker um sie dynamisch mit Daten zu füllen.
In einer Vorlage können einige Referenzen auf den Termin verwendet werden.
task
: Aufgabe des Termins
company
: Eigener Mandant
user
: Aktuell eingeloggter Benutzer
recipients
: Liste der Empfänger Mails
internalProject
: LEVATIS_REGIE Objekt
Zusätzlich bei Terminanfrage, Terminanfrage-Erinnerung und Antwort auf Bestätigen/Ablehnen Aktion vom Kunden
Von diese Objekten können jeweils weitere Unter-Attribute referenziert werden.
Beispiele:
<h1>Sehr geehrter Kunde ${task.project.customer.lname}!</h1>
<p>Die Firma ${company.name} informiert Sie über die Einplanung ${(tes?size > 1)?then('folgender Termine', 'des folgenden Termins')}:</p>
<a href="mailto:${user.email}">${user.email}</a>
Des weiteren sollten die requestMailTemplateName
Vorlagen die folgenden zwei Blöcke in beliebiger Variation beinhalten. (Wichtig <lev-readonly id="..."></lev-readonly>
)
Standard Vorlagen
requestMailTemplateName
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="x-apple-disable-message-reformatting">
<!--[if !mso]><!--><meta http-equiv="X-UA-Compatible" content="IE=edge"><!--<![endif]-->
<title></title>
</head>
<body>
<div id="mailBody">
<h1>Sehr geehrter Kunde ${task.project.customer.lname}!</h1>
<p>Die Firma ${company.name} informiert Sie über die Einplanung ${(tes?size > 1)?then('folgender Termine', 'des folgenden Termins')}:</p>
<p>Arbeiten: <b>${task.subject}</b></p>
<ul>
<#list teTimes as te>
<li>${te}</li>
</#list>
</ul>
<br>
<lev-readonly id="interactions-container">
<div style="display: flex; flex-direction: column; gap: 10px;">
<span>Klicken Sie hier zum bestätigen: <a id="acceptBtn" target="_blank" href="${acceptLink}">Termin${(tes?size > 1)?then('e', '')} bestätigen</a></span>
<span>Klicken Sie hier zum ablehnen: <a id="declineBtn" target="_blank" href="${declineLink}">Termin${(tes?size > 1)?then('e', '')} ablehnen</a></span>
</div>
</lev-readonly>
<br>
<p>Bitte beachten Sie, dass es zu kurzfristigen Terminänderungen kommen kann.</p>
<p>Ihre Ansprechperson bei der Firma ${company.name}:</p>
<p>${user.name}</p>
<a href="mailto:${user.email}">${user.email}</a>
<p>Mit freundlichem Gruß</p>
<p>${company.name}</p>
<br>
<lev-readonly id="mail-receivers-wrapper">
<p>Diese Email wurde an folgende Email Addressen versendet:</p>
<div id="mail-receivers"></div>
</lev-readonly>
<br>
<p>Diese Nachricht wurde durch das levatis Personalplanungssystem erzeugt.</p>
<p><a href="https://www.levatis.at" target="_blank">www.levatis.at</a> / Bitte beim Beantworten der Email den Betreff nicht verändern.</p>
<p>Falls Sie künftig keine automatisch generierten Termin-Emails zu diesem Projekt erhalten möchten, aktivieren Sie bitte folgenden Link, um sich abzumelden:</p>
<a href="${unsubscribeLink}">Hier Abmelden</a>
</div>
</body>
</html>
requestMailTemplateNameTxt
Sehr geehrter Kunde ${task.project.customer.lname}!
Die Firma ${company.name} informiert Sie über die Einplanung ${(tes?size > 1)?then('folgender Termine', 'des folgenden Termins')}:
Arbeiten: ${task.subject}
<#list teTimes as te>
* ${te}
</#list>
Termin${(tes?size > 1)?then('e', '')} bestätigen: ${acceptLink}
Termin${(tes?size > 1)?then('e', '')} ablehnen: ${declineLink}
Bitte beachten Sie, dass es zu kurzfristigen Terminänderungen kommen kann.
Ihre Ansprechperson bei der Firma ${company.name}:
${user.name}
${user.email}
Mit freundlichem Gruß
${company.name}
Diese Nachricht wurde durch das levatis Personalplanungssystem erzeugt.
https://www.levatis.at / Bitte beim Beantworten der Email den Betreff nicht verändern.
Falls Sie künftig keine automatisch generierten Termin-Emails zu diesem Projekt erhalten möchten, aktivieren Sie bitte folgenden Link, um sich abzumelden:
Hier Abmelden: ${unsubscribeLink}
requestDeclinedMailTemplateName
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="x-apple-disable-message-reformatting">
<!--[if !mso]><!--><meta http-equiv="X-UA-Compatible" content="IE=edge"><!--<![endif]-->
<title></title>
</head>
<body>
<div>
<h1>Sehr geehrter Kunde ${task.project.customer.lname}!</h1>
<p>Die Firma ${company.name} informiert Sie über die Stornierung des Termin: <b>${task.subject}</b></p>
<ul>
<#list teTimes as te>
<li>${te}</li>
</#list>
</ul>
<p>Bitte beachten Sie, dass es zu kurzfristigen Terminänderungen kommen kann.</p>
<p>Ihre Ansprechperson bei der Firma ${company.name}:</p>
<p>${user.name}</p>
<a href="mailto:${user.email}">${user.email}</a>
<p>Mit freundlichem Gruß</p>
<p>${company.name}</p>
<p>Diese Nachricht wurde durch das levatis Personalplanungssystem erzeugt.</p>
<p><a href="https://www.levatis.at" target="_blank">www.levatis.at</a> / Bitte beim Beantworten der Email den Betreff nicht verändern.</p>
<p>Falls Sie künftig keine automatisch generierten Termin-Emails zu diesem Projekt erhalten möchten, aktivieren Sie bitte folgenden Link, um sich abzumelden:</p>
<a href="${unsubscribeLink}">Hier Abmelden</a>
</div>
</body>
</html>
requestDeclinedMailTemplateNameTxt
Sehr geehrter Kunde ${task.project.customer.lname}!
Die Firma ${company.name} informiert Sie über die Stornierung des Termin: ${task.subject}
<#list teTimes as te>
* ${te}
</#list>
Bitte beachten Sie, dass es zu kurzfristigen Terminänderungen kommen kann.
Ihre Ansprechperson bei der Firma ${company.name}:
${user.name}
${user.email}
Mit freundlichem Gruß
${company.name}
Diese Nachricht wurde durch das levatis Personalplanungssystem erzeugt.
https://www.levatis.at / Bitte beim Beantworten der Email den Betreff nicht verändern.
Falls Sie künftig keine automatisch generierten Termin-Emails zu diesem Projekt erhalten möchten, aktivieren Sie bitte folgenden Link, um sich abzumelden:
Hier Abmelden: ${unsubscribeLink}
requestReminderMailTemplateName
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="x-apple-disable-message-reformatting">
<!--[if !mso]><!--><meta http-equiv="X-UA-Compatible" content="IE=edge"><!--<![endif]-->
<title></title>
</head>
<body>
<div id="mailBody">
<h1>Sehr geehrter Kunde ${task.project.customer.lname}!</h1>
<p>Die Firma ${company.name} informiert Sie über die Einplanung ${(tes?size > 1)?then('folgender Termine', 'des folgenden Termins')}:</p>
<p>Arbeiten: <b>${task.subject}</b></p>
<ul>
<#list teTimes as te>
<li>${te}</li>
</#list>
</ul>
<br>
<div style="display: flex; flex-direction: column; gap: 10px;">
<span>Klicken Sie hier zum bestätigen: <a id="acceptBtn" target="_blank" href="${acceptLink}">Termin${(tes?size > 1)?then('e', '')} bestätigen</a></span>
<span>Klicken Sie hier zum ablehnen: <a id="declineBtn" target="_blank" href="${declineLink}">Termin${(tes?size > 1)?then('e', '')} ablehnen</a></span>
</div>
<br>
<p>Bitte beachten Sie, dass es zu kurzfristigen Terminänderungen kommen kann.</p>
<p>Ihre Ansprechperson bei der Firma ${company.name}:</p>
<p>${user.name}</p>
<a href="mailto:${user.email}">${user.email}</a>
<p>Mit freundlichem Gruß</p>
<p>${company.name}</p>
<br>
<p>Diese Email wurde an folgende Email Addressen versendet:</p>
<div id="mail-receivers">
<ul>
<#list recipients as recipient>
<li>${recipient}</li>
</#list>
</ul>
</div>
<p>Diese Nachricht wurde durch das levatis Personalplanungssystem erzeugt.</p>
<p><a href="https://www.levatis.at" target="_blank">www.levatis.at</a> / Bitte beim Beantworten der Email den Betreff nicht verändern.</p>
<p>Falls Sie künftig keine automatisch generierten Termin-Emails zu diesem Projekt erhalten möchten, aktivieren Sie bitte folgenden Link, um sich abzumelden:</p>
<a href="${unsubscribeLink}">Hier Abmelden</a>
</div>
</body>
</html>
requestReminderMailTemplateNameTxt
Sehr geehrter Kunde ${task.project.customer.lname}!
Die Firma ${company.name} informiert Sie über die Einplanung ${(tes?size > 1)?then('folgender Termine', 'des folgenden Termins')}:
Arbeiten: ${task.subject}
<#list teTimes as te>
* ${te}
</#list>
Wir bitten Sie, die Termindaten zu bestätigen:
Termin${(tes?size > 1)?then('e', '')} bestätigen: ${acceptLink}
Termin${(tes?size > 1)?then('e', '')} ablehnen: ${declineLink}
Bitte beachten Sie, dass es zu kurzfristigen Terminänderungen kommen kann.
Ihre Ansprechperson bei der Firma ${company.name}:
${user.name}
${user.email}
Mit freundlichem Gruß
${company.name}
Diese Nachricht wurde durch das levatis Personalplanungssystem erzeugt.
https://www.levatis.at / Bitte beim Beantworten der Email den Betreff nicht verändern.
Falls Sie künftig keine automatisch generierten Termin-Emails zu diesem Projekt erhalten möchten, aktivieren Sie bitte folgenden Link, um sich abzumelden:
Hier Abmelden: ${unsubscribeLink}
requestInteractionAnswerMailTemplateName
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="x-apple-disable-message-reformatting">
<!--[if !mso]><!--><meta http-equiv="X-UA-Compatible" content="IE=edge"><!--<![endif]-->
<title></title>
</head>
<body>
<div>
<h1>Sehr geehrter Kunde ${task.project.customer.lname}!</h1>
<#if answer == 'ACCEPTED'>
<p>Vielen dank für die Bestätigung ${(tes?size > 1)?then('folgender Termine', 'des folgenden Termins')}:</p>
<p>Arbeiten: ${task.subject}</p>
<ul>
<#list teTimes as te>
<li>${te}</li>
</#list>
</ul>
<p>Bitte beachten Sie, dass es zu kurzfristigen Terminänderungen kommen kann.</p>
</#if>
<#if answer == 'DECLINED'>
<p>Der Termin für ${task.subject} wurde erfolgreich abgelehnt.</p>
</#if>
<p>Ihre Ansprechperson bei der Firma ${company.name}:</p>
<p>${user.name}</p>
<a href="mailto:${user.email}">${user.email}</a>
<p>Mit freundlichem Gruß</p>
<p>${company.name}</p>
<p>Diese Nachricht wurde durch das levatis Personalplanungssystem erzeugt.</p>
<p><a href="https://www.levatis.at" target="_blank">www.levatis.at</a> / Bitte beim Beantworten der Email den Betreff nicht verändern.</p>
<p>Falls Sie künftig keine automatisch generierten Termin-Emails zu diesem Projekt erhalten möchten, aktivieren Sie bitte folgenden Link, um sich abzumelden:</p>
<a href="${unsubscribeLink}">Hier Abmelden</a>
</div>
</body>
</html>
requestInteractionAnswerMailTemplateNameTxt
Sehr geehrter Kunde ${task.project.customer.lname}!
<#if answer == 'ACCEPTED'>
Vielen dank für die Bestätigung ${(tes?size > 1)?then('folgender Termine', 'des folgenden Termins')}:
Arbeiten: ${task.subject}
<#list teTimes as te>
* ${te}
</#list>
Bitte beachten Sie, dass es zu kurzfristigen Terminänderungen kommen kann.
</#if>
<#if answer == 'DECLINED'>
Der Termin für ${task.subject} wurde erfolgreich abgelehnt.
</#if>
Ihre Ansprechperson bei der Firma ${company.name}:
${user.name}
${user.email}
Mit freundlichem Gruß
${company.name}
Diese Nachricht wurde durch das levatis Personalplanungssystem erzeugt.
https://www.levatis.at / Bitte beim Beantworten der Email den Betreff nicht verändern.
Falls Sie künftig keine automatisch generierten Termin-Emails zu diesem Projekt erhalten möchten, aktivieren Sie bitte folgenden Link, um sich abzumelden:
Hier Abmelden: ${unsubscribeLink}
upcomingTaskTemplateName
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="x-apple-disable-message-reformatting">
<!--[if !mso]><!--><meta http-equiv="X-UA-Compatible" content="IE=edge"><!--<![endif]-->
<title></title>
</head>
<body>
<div>
<h1>Sehr geehrter Kunde ${task.project.customer.lname}!</h1>
<p>Die Firma ${company.name} informiert Sie über den folgenden Termin:</p>
<p>Arbeiten: ${task.subject}</p>
<ul>
<#list teTimes as te>
<li>${te}</li>
</#list>
</ul>
<p>Bitte beachten Sie, dass es zu kurzfristigen Terminänderungen kommen kann.</p>
<p>Ihre Ansprechperson bei der Firma ${company.name}:</p>
<p>${user.name}</p>
<a href="mailto:${user.email}">${user.email}</a>
<p>Mit freundlichem Gruß</p>
<p>${company.name}</p>
<p>Diese Nachricht wurde durch das levatis Personalplanungssystem erzeugt.</p>
<p><a href="https://www.levatis.at" target="_blank">www.levatis.at</a> / Bitte beim Beantworten der Email den Betreff nicht verändern.</p>
<p>Falls Sie künftig keine automatisch generierten Termin-Emails zu diesem Projekt erhalten möchten, aktivieren Sie bitte folgenden Link, um sich abzumelden:</p>
<a href="${unsubscribeLink}">Hier Abmelden</a>
</div>
</body>
</html>
upcomingTaskTemplateNameTxt
Sehr geehrter Kunde ${task.project.customer.lname}!
Die Firma ${company.name} informiert Sie über den folgenden Termin:
Arbeiten: ${task.subject}
<#list teTimes as te>
* ${te}
</#list>
Bitte beachten Sie, dass es zu kurzfristigen Terminänderungen kommen kann.
Ihre Ansprechperson bei der Firma ${company.name}:
${user.name}
${user.email}
Mit freundlichem Gruß
${company.name}
Diese Nachricht wurde durch das levatis Personalplanungssystem erzeugt.
https://www.levatis.at / Bitte beim Beantworten der Email den Betreff nicht verändern.
Falls Sie künftig keine automatisch generierten Termin-Emails zu diesem Projekt erhalten möchten, aktivieren Sie bitte folgenden Link, um sich abzumelden:
Hier Abmelden: ${unsubscribeLink}
Bilder Einbinden
Um Bilder einzubinden muss einfach ein img
HTML Element in der Vorlage verwendet werden.
Beispiel:
...
<img src="https://www.levatis.com/wp-content/uploads/2020/06/main-logo.png" alt="Levatis Logo">
...
Wenn das Bild bei Levatis gehostet werden soll, muss es als Dokument hochgeladen werden.
Dann kann der Öffentliche Link über das Drei-Punkte-Menü in die Zwischenablage kopiert werden:
Benutzerdefiniertes Logo auf der Termin-Bestätigen/Ablehnen Seite
Um ein benutzerdefiniertes Logo auf der Seite anzuzeigen, muss von Levatis ein Optionales Feld
mit dem Schlüssel urlLogo
angelegt werden. Der Wert muss eine URL zum Logo (siehe Bilder Einbinden) sein.