User Tools

Site Tools


offer-cube:howto:syscron

offer-cube / Zeitaktionen und Erinnerungs-Mails

Allgemeines / Zusammenfassung

Mit den sog. “Zeitaktionen” können automatisiert Erinnerungen hinterlegt werden, um bei Erreichen eines bestimmten Zeitpunktes eine Erinnerungs-Mail zu versenden.

Diese Email kann an eine fixe Email Adresse gerichtet sein oder an einen Benutzer des Systems (z.B. letzter Bearbeiter oder Versender eines Angebots) oder aber auch an einen Kunden bzw. Lieferanten.

Zusätzlich zu Emails lassen sich auch Hooks für Synchronisierungen auslösen, um z.B. mehrere Emails zu versenden oder Webservice Aufrufe durchzuführen (Slack Message, Teams Message, etc.)

Details: Einrichten der Mailvorlage

Um eine Email zu versenden, muss vorher eine Email Vorlage angelegt werden.

Unter Einstellungen –> Dokument Vorlagen wird eine neue Mail Vorlage angelegt.

Dokumente - Email Vorlage für Angebot Wiedervorlage

Im entsprechenden Textblock wird ebenfalls mit PDF Power User Variablen und Funktionen gearbeitet.

<p>Hallo [[$obj.modified_user__firstname]]&nbsp;[[$obj.modified_user__lastname]],</p>
<p>dias Angebot <strong>[[$obj._objref]]</strong>&nbsp;[[if $obj.summary != ""]]mit dem Titel "<strong>[[$obj.summary|escape]]</strong>" [[/if]]wurde am <strong>[[$obj.status_sent|ut2humandate:1]]</strong> versendet.</p>
<p>Das Datum für die Wiedervorlage [[$obj.reviewdate|ut2humandate:1]] <font color="#FF0000"><strong>wurde erreicht</strong></font>.</p>
<p>Bitte k&uuml;mmere Dich darum.</p>
<p>Link zum Angebot: <a id="" href="[[myurl absolute=true noGetParams=true script='b']]#/detail/offer/[[$payload.id]]">[[myurl absolute=true noGetParams=true script='b']]#/detail/offer/[[$payload.id]]</a></p>
<p>Weitere Daten:</p>
<p>Angebot: <strong>[[$payload._objref]]<em>&nbsp;[[$obj.summary|escape]]</em></strong><br />[[if $obj.status_sent != 0]]Gesendet am: <strong>[[$obj.status_sent|ut2humandate:1]]</strong><br />[[/if]] [[if $obj.reviewdate != 0]]Wiedervorlage am: <strong>[[$obj.reviewdate|ut2humandate:1]]</strong><br />[[/if]] [[if $payload.site_company != ""]]Kunde-Firma: <strong>[[$payload.site_company|escape]]</strong><br />[[/if]] [[if $payload.site_name != ""]]Kunde-Name: <strong>[[$payload.site_name|escape]]</strong><br />[[/if]] [[if $payload.site_email != ""]]Email: <strong>[[$payload.site_email|escape]]</strong><br />[[/if]] [[if $obj.site_phone != ""]]Telefon: <strong>[[$obj.site_phone|escape]]</strong><br />[[/if]] [[if $obj.site_mobile != ""]]Mobil: <strong>[[$obj.site_mobile|escape]]</strong><br />[[/if]] [[if $obj.customer != 0]]Kunde: <strong>[[$obj.customer___objref]] [[$obj.customer__comboname|escape]]</strong><br />Link zum Kunden: <a id="" href="[[myurl absolute=true noGetParams=true script='b']]#/detail/customer/[[$obj.customer]]">[[myurl absolute=true noGetParams=true script='b']]#/detail/customer/[[$obj.customer]]</a><br />[[/if]] <br />[[if $payload.annotation != ""]]Notiz: <br /><em>[[$payload.annotation|escape|nl2br]]</em>[[/if]]</p>
<p>&nbsp;</p>
<p>Mit freundlichen Gr&uuml;&szlig;en<br />[[$CONFIGURATION.ownCompany|escape]]</p>
<div class="footer" style="color: #8c8c8c; font-size: 0.8em;">[[$CONFIGURATION.ownCompany|escape|nl2br]] <br />[[$CONFIGURATION.ownOfferContact|escape|nl2br]]</div>

Email Textblock

Details: Einrichten der Zeitaktion

Unter Einstellungen –> Zeitaktionen wird eine neue Zeitaktion angelegt.

Aufgetretenes Event

Dieses Event löst die Zeitaktion aus.

Hierbei wird unterschieden zwischen der Durchführung eines Vorgangs (z.B. “Wiedervorlage Datum gesetzt”) und einem eventuell befüllten Datumsfeld (z.B. der tatsächliche Inhalt des Wiedervorlage Datums mit Event “Wiedervorlage Datum gesetzt und verwenden”).

Beispiel 1 “gesetzt”:

Event “Wiedervorlage Datum gesetzt” und Verzögerung +1 Tag –> Es wird 1 Tag nach dem Setzen des Datums (also der Zeitpunkt des Speicherns) die Email versendet.
Der Versand erfolgt völlig unabhängig des ausgefüllten Datums.

Beispiel 2 “gesetzt und verwenden”:

Event “Wiedervorlage Datum gesetzt und verwenden” und Verzögerung +1 Tag –> Es wird 1 Tag nach dem eingegebenen Datum (also Wiedervorlagedatum + 1 Tag) die Email versendet.
Der Versand hängt nur vom ausgefüllten Datum ab.

Nur 1 mal pro Objekt ausführen

Ist diese Option aktiv, so wird die Aktion nur 1 einziges Mal ausgeführt.

Beispiel:

Das Event “Wiedervorlage Datum gesetzt und verwenden” wurde gewählt und das Datum ist erreicht und die Benachrichtigung mit der Erinnerung wird an den Mitarbeiter versendet.
Nun öffnet der Mitarbeiter das Angebot, ruft den Kunden an und wählt ein neues Wiedervorlagedatum aus.
Ist die Option “Nur 1 mal pro Objekt ausführen” aktiviert, so wird die Erinnerung kein weiteres Mal versendet.
Ist die Option nicht aktiv, so wird erneut eine Erinnerungsmail basierend auf dem eingetragenen Wiedervorlagedatum versendet.

Zeitraum (Verzögerung) +/- Tage, Stunden, Minuten

Hiermit kann die Verzögerung für die Erinnerung eingestellt werden.

Beispiel:

Das Event “Wiedervorlage Datum gesetzt und verwenden” wurde gewählt und als Wiedervorlagedatum wurde der 21.11.2023 eingetragen.

Ist nun + 2 Tage als Verzögerung ausgewählt, so wird die Erinnerung am 23.11.2023 (also 21.11. + 2 Tage) versendet.
Ist nun - 1 Tag als Verzögerung ausgewählt, so wird die Erinnerung am 20.11.2023 (also 20.11. - 1 Tag, also 1 Tag vor dem eingetragenen Datum) versendet.

Hook aufrufen, Email senden

Mit Auswahl der Option “Hook aufrufen” wird der frei wählbare Hook-Code im Feld “Auszuführender Hook-Code” zum entsprechenden Zeitpunkt ausgelöst.
Hierzu muss eine entsprechende Synchronisierung für diesen Hook-Code angelegt sein.
Dort könnte dann ebenfalls eine Email versendet werden (z.B. über einen anderen SMTP-Server) oder per Webservice Aufruf ein Post in einen MS-Teams oder Slack-Channel ausgeführt werden.

Mit Auswahl der Option “Email senden” wird direkt die vorher angelegte Email Vorlage an die im Feld “Alternative Empfänger Email” hinterlegte Adresse versendet.

Auszuführender Hook-Code

Mit Auswahl der Option “Hook aufrufen” wird der frei wählbare Hook-Code im Feld “Auszuführender Hook-Code” zum entsprechenden Zeitpunkt ausgelöst.

Alternative Empfänger Email

Mit Auswahl der Option “Email senden” wird direkt die vorher angelegte Email Vorlage an die im Feld “Alternative Empfänger Email” hinterlegte Adresse versendet.

Als Email Adresse kann auch eine PDF Power User Variable oder Funktion verwendet werden:

Variable Bedeutung
[[$obj.modified_user__username]] UserID (=Email) des letzten Bearbeiter des Objekts
[[$obj.created_user__username]] UserID (=Email) des Users, der das Objekt angelegt hat
[[$obj.site_email]] Angebot, Auftrag, Rechnung eingetragene Email Adresse des Kunden
[[$obj.customer__email]] Angebot, Auftrag, Rechnung Email Adresse des Kunden-Stammdatensatzes

Beschreibung

Eine interne Beschreibung z.b. zwecks Dokumentation für diese Zeitaktion.

Script

Ein optionales Script, das die PDF Power User Variablen und Funktionen verwendet, um zum Zeitpunkt der Ausführung weitere Bedingungen zu prüfen.

Beispiel:

Es kann geprüft werden ob ein Datumsfeld gesetzt ist (gt = greater than = größer als 0).

 [[if $obj.deliverypln_dt gt 0]] LIEFERTERMIN GESETZT [[setskip]] [[/if]] 

Dieser Code prüft ob in den Lieferantenbestellungen das Feld Liefertermin “deliverypln_dt” gesetzt ist.
Falls dies zutrifft, wird mittels “[[setskip]]” die weitere Abarbeitung unterbrochen - das bedeutet, die Aktion (Versand einer Email) wird nicht ausgeführt.
Der zusätzliche Text (LIEFERTERMIN GESETZT) innerhalb der [[if]] Anweisung wird ignoriert und dient dem eigenen Verständnis.
Es kommt nur darauf an, ob die “[[setskip]]” Anweisung ausgeführt wird (Aktion z.B. Email Versand wird dann abgebrochen) oder nicht (Aktion z.B. Email Versand wird durchgeführt).

Zeitaktion anlegen

TODO Erinnerungs Email

Todo Erinnerung: Zeitaktion einrichten

Um eine TODO Erinnerung (z.B. 30 Minuten vor dem Erledigen bis Datum) zu versenden, muss folgende Zeitaktion eingerichtet werden:

Zeitaktion:

Aufgetretenes Event: Todo Erledigen bis Datum gesetzt und verwenden
Auszuführende Aktion: Hook aufrufen
Maximale Ausführungen pro Objekt: Beliebig oft
Auszuführender Hook-Code: syscron-remind-todo
Zeitraum - 30 Minuten

Der Hook-Code (in diesem Beispiel “syscron-remind-todo” kann frei gewählt werden.
Er muss exakt mit dem eigegebenen Hook-Code in der Synchronisierung Hook übereinstimmen.

Todo Erinnerung: Mailvorlage für Benachrichtigung (HTML)

Name der Email Vorlage z.B. Email Todo Erinnerung an User (muss dann im nächsten Schritt in der Synchronisierung ausgewählt werden).

Textblock:

<p>Hallo [[if $obj.user_assigned != 0]][[$obj.user_assigned__firstname|escape]] [[$obj.user_assigned__lastname|escape]][[else]][[$obj.modified_user__firstname|escape]] [[$obj.modified_user__lastname|escape]][[/if]],</p>
<p>das Todo [[$obj._objref]] mit dem Betreff "<strong>[[$obj.name|escape]]</strong>" ist heute ([[$obj.enddate|ut2humandate:1:1:0]]) f&auml;llig!</p>
<p>Link zum Todo: <a href="[[myurl absolute=true noGetParams=true script='b']]#/detail/todo/[[$obj.id]]">[[myurl absolute=true noGetParams=true script='b']]#/detail/todo/[[$obj.id]]</a><br /><br />
[[if $obj.customer != 0]]Kunde: [[$obj.customer___objref]] [[$obj.customer__comboname|escape]]<br />Link zum Kunden: [[myurl absolute=true noGetParams=true script='b']]#/detail/customer/[[$obj.customer]]<br />[[/if]]
[[if $obj._type == "customer"]]Kunde: [[$obj._objref]] [[$obj.comboname|escape]]<br />Link zum Kunden: [[myurl absolute=true noGetParams=true script='b']]#/detail/customer/[[$obj.id]]<br />[[/if]]
[[if $obj.offer != 0]]Angebot: [[$obj.offer___objref]] [[if $obj.offer__summary != ""]][[$obj.offer__summary|escape]][[/if]]<br />Link zum Angebot: [[myurl absolute=true noGetParams=true script='b']]#/detail/offer/[[$obj.offer]]<br />[[/if]]
[[if $obj.order != 0]]Auftrag: [[$obj.order___objref]] [[if $obj.order__summary != ""]][[$obj.order__summary|escape]][[/if]]<br />Link zum Auftrag: [[myurl absolute=true noGetParams=true script='b']]#/detail/order/[[$obj.order]]<br />[[/if]]
[[if $obj.invoice != 0]]Rechnung: [[$obj.invoice___objref]] [[if $obj.invoice__summary != ""]][[$obj.invoice__summary|escape]][[/if]]<br />Link zur Rechnung: [[myurl absolute=true noGetParams=true script='b']]#/detail/invoice/[[$obj.invoice]]<br />[[/if]]
[[if $obj.ticket != 0]]Ticket: [[$obj.ticket___objref]] [[if $obj.ticket__summary != ""]][[$obj.ticket__summary|escape]][[/if]]<br />Link zum Ticket: [[myurl absolute=true noGetParams=true script='b']]#/detail/ticket/[[$obj.ticket]]<br />[[/if]] 
<p>[[if strlen($obj.description) GT 0]]<br><strong>Beschreibung:</strong><br /><em>[[$obj.description|escape|nl2br]]</em><br>[[/if]]</p>
<p>Mit freundlichen Gr&uuml;&szlig;en<br />Ihr [[$CONFIGURATION.ownCompany|escape]] Team</p>
<div class="footer" style="color: #8c8c8c; font-size: 0.8em;">[[$CONFIGURATION.ownCompany|escape|nl2br]] <br />[[$CONFIGURATION.ownOfferContact|escape|nl2br]]</div>

Todo Erinnerung: Synchronisierung Hook einrichten

Nun eine Synchronisierung mit Typ "Hook" anlegen.

Als “Hook-Code” den in der Zeitaktion hinterlegten Hook-Code (in unserem Beispiel syscron-remind-todo) exakt identisch geschrieben eintragen.

Synchronisierung:

Bezeichnung: Email Todo Erinnerung an User
Typ: Hook
Hook-Code: syscron-remind-todo
Methodenname mail
Dokument Vorlage Email Todo Erinnerung an User (die vorher angelegte Mailvorlage auswählen)
Alternative Empfänger Email: [[$obj.user_assigned__username]]

Die Variable [[$obj.user_assigned__username]] wird dann durch die Email Adresse des zum Todo zugeordneten Benutzers ersetzt.

offer-cube/howto/syscron.txt · Last modified: 2024/01/08 12:50 (external edit)